diff --git a/bench/abc/optimized/Glucose.cpp.ll b/bench/abc/optimized/Glucose.cpp.ll index 83a314bd3c2..2ef8a4355c8 100644 --- a/bench/abc/optimized/Glucose.cpp.ll +++ b/bench/abc/optimized/Glucose.cpp.ll @@ -9333,9 +9333,9 @@ _ZNK5Gluco6Solver12withinBudgetEv.exit.thread: ; preds = %108, %93, %_ZNK5Glu 180: ; preds = %179 %181 = getelementptr inbounds i8, ptr %0, i64 736 %182 = load i32, ptr %181, align 8 - %183 = sext i32 %182 to i64 + %183 = zext i32 %182 to i64 %184 = icmp slt i32 %182, 0 - %185 = shl nsw i64 %183, 2 + %185 = shl nuw nsw i64 %183, 2 %186 = select i1 %184, i64 -1, i64 %185 %187 = call noalias noundef nonnull ptr @_Znam(i64 noundef %186) #35 %188 = icmp sgt i32 %182, 0 @@ -9343,7 +9343,6 @@ _ZNK5Gluco6Solver12withinBudgetEv.exit.thread: ; preds = %108, %93, %_ZNK5Glu .lr.ph79: ; preds = %180 %189 = load ptr, ptr %13, align 8 - %wide.trip.count = zext nneg i32 %182 to i64 br label %190 190: ; preds = %.lr.ph79, %190 @@ -9355,7 +9354,7 @@ _ZNK5Gluco6Solver12withinBudgetEv.exit.thread: ; preds = %108, %93, %_ZNK5Glu %195 = getelementptr inbounds i32, ptr %187, i64 %indvars.iv82 store i32 %194, ptr %195, align 4 %indvars.iv.next83 = add nuw nsw i64 %indvars.iv82, 1 - %exitcond.not = icmp eq i64 %indvars.iv.next83, %wide.trip.count + %exitcond.not = icmp eq i64 %indvars.iv.next83, %183 br i1 %exitcond.not, label %.loopexit, label %190, !llvm.loop !68 .loopexit: ; preds = %190, %180, %179 diff --git a/bench/assimp/optimized/SMDLoader.cpp.ll b/bench/assimp/optimized/SMDLoader.cpp.ll index 0b2e740aec3..071ab9c0177 100644 --- a/bench/assimp/optimized/SMDLoader.cpp.ll +++ b/bench/assimp/optimized/SMDLoader.cpp.ll @@ -2757,7 +2757,7 @@ if.end.thread: ; preds = %entry %1 = load ptr, ptr %pScene23, align 8 %mNumAnimations24 = getelementptr inbounds i8, ptr %1, i64 48 store i32 1, ptr %mNumAnimations24, align 8 - br label %9 + br label %10 if.then: ; preds = %entry invoke void @_ZN6Assimp11SMDImporter20GetAnimationFileListERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPNS_8IOSystemERSt6vectorISt5tupleIJS6_S6_EESaISD_EE(ptr nonnull align 8 poison, ptr noundef nonnull align 8 dereferenceable(32) %pFile, ptr noundef %pIOHandler, ptr noundef nonnull align 8 dereferenceable(24) %animFileList) @@ -2768,7 +2768,7 @@ lpad.loopexit: ; preds = %for.body, %invoke.c cleanup br label %ehcleanup30 -lpad.loopexit.split-lp: ; preds = %if.then, %9 +lpad.loopexit.split-lp: ; preds = %if.then, %10 %lpad.loopexit.split-lp15 = landingpad { ptr, i32 } cleanup br label %ehcleanup30 @@ -2788,27 +2788,28 @@ if.end: ; preds = %if.then %7 = load ptr, ptr %pScene, align 8 %mNumAnimations = getelementptr inbounds i8, ptr %7, i64 48 store i32 1, ptr %mNumAnimations, align 8 - %8 = ashr exact i64 %6, 29 + %8 = lshr exact i64 %6, 29 %.inv = icmp sgt i64 %6, -1 %spec.select = select i1 %.inv, i64 %8, i64 -1 - br label %9 + %9 = ashr exact i64 %6, 29 + br label %10 -9: ; preds = %if.end, %if.end.thread - %10 = phi i64 [ 8, %if.end.thread ], [ %8, %if.end ] - %pScene29 = phi ptr [ %pScene23, %if.end.thread ], [ %pScene, %if.end ] - %_M_finish.i27 = phi ptr [ %_M_finish.i22, %if.end.thread ], [ %_M_finish.i, %if.end ] +10: ; preds = %if.end, %if.end.thread + %pScene31 = phi ptr [ %pScene23, %if.end.thread ], [ %pScene, %if.end ] + %_M_finish.i29 = phi ptr [ %_M_finish.i22, %if.end.thread ], [ %_M_finish.i, %if.end ] + %sub.ptr.sub.i27 = phi i64 [ 8, %if.end.thread ], [ %9, %if.end ] %11 = phi i64 [ 8, %if.end.thread ], [ %spec.select, %if.end ] %call4 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %11) #29 to label %invoke.cont3 unwind label %lpad.loopexit.split-lp -invoke.cont3: ; preds = %9 - %12 = load ptr, ptr %pScene29, align 8 +invoke.cont3: ; preds = %10 + %12 = load ptr, ptr %pScene31, align 8 %mAnimations = getelementptr inbounds i8, ptr %12, i64 56 store ptr %call4, ptr %mAnimations, align 8 - %13 = load ptr, ptr %pScene29, align 8 + %13 = load ptr, ptr %pScene31, align 8 %mAnimations7 = getelementptr inbounds i8, ptr %13, i64 56 %14 = load ptr, ptr %mAnimations7, align 8 - call void @llvm.memset.p0.i64(ptr align 8 %14, i8 0, i64 %10, i1 false) + call void @llvm.memset.p0.i64(ptr align 8 %14, i8 0, i64 %sub.ptr.sub.i27, i1 false) call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9) #26 %call.i8 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) to label %call.i.noexc unwind label %lpad10 @@ -2835,7 +2836,7 @@ invoke.cont13: ; preds = %invoke.cont11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #26 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9) #26 %16 = load ptr, ptr %animFileList, align 8 - %17 = load ptr, ptr %_M_finish.i27, align 8 + %17 = load ptr, ptr %_M_finish.i29, align 8 %cmp.i.not16 = icmp eq ptr %16, %17 br i1 %cmp.i.not16, label %invoke.cont.i, label %for.body.lr.ph @@ -2909,7 +2910,7 @@ for.inc17.i: ; preds = %for.body12.i, %for. invoke.cont24: ; preds = %for.inc17.i store double %dMax.1.lcssa.i, ptr %dLengthOfAnim.i, align 8 - %26 = load ptr, ptr %pScene29, align 8 + %26 = load ptr, ptr %pScene31, align 8 %mNumAnimations26 = getelementptr inbounds i8, ptr %26, i64 48 %27 = load i32, ptr %mNumAnimations26, align 8 %inc = add i32 %27, 1 @@ -2925,7 +2926,7 @@ for.inc: ; preds = %invoke.cont24, %inv for.end: ; preds = %for.inc %.pre19 = load ptr, ptr %animFileList, align 8 - %.pre20 = load ptr, ptr %_M_finish.i27, align 8 + %.pre20 = load ptr, ptr %_M_finish.i29, align 8 %cmp.not3.i.i.i.i = icmp eq ptr %.pre19, %.pre20 br i1 %cmp.not3.i.i.i.i, label %invoke.cont.i, label %for.body.i.i.i.i diff --git a/bench/bullet3/optimized/btSoftBodyHelpers.ll b/bench/bullet3/optimized/btSoftBodyHelpers.ll index 750c2cb35de..b2b114d35a8 100644 --- a/bench/bullet3/optimized/btSoftBodyHelpers.ll +++ b/bench/bullet3/optimized/btSoftBodyHelpers.ll @@ -3408,8 +3408,8 @@ entry: %call10 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %8) #25 %call12 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %8) #25 %mul = shl nsw i32 %0, 1 - %conv13 = sext i32 %mul to i64 - %9 = shl nsw i64 %conv13, 4 + %conv13 = zext i32 %mul to i64 + %9 = shl nuw nsw i64 %conv13, 4 %10 = select i1 %6, i64 -1, i64 %9 %call14 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %10) #25 %11 = shl nsw i64 %conv7, 3 diff --git a/bench/c3c/optimized/lexer.c.ll b/bench/c3c/optimized/lexer.c.ll index 7308ac29623..7f2a4d9e058 100644 --- a/bench/c3c/optimized/lexer.c.ll +++ b/bench/c3c/optimized/lexer.c.ll @@ -4862,66 +4862,65 @@ define internal void @add_error_token_at(ptr nocapture noundef %0, ptr noundef % %.sroa.3.0.insert.shift = select i1 %17, i64 0, i64 %20 %.sroa.3.0.insert.insert = or disjoint i64 %.sroa.3.0.insert.shift, %.sroa.4.0.insert.shift %21 = shl nuw nsw i32 %2, 16 - %22 = and i32 %21, 16711680 - %23 = select i1 %8, i32 0, i32 %22 - %.sroa.2.0.insert.shift = zext nneg i32 %23 to i64 - %.sroa.2.0.insert.insert = or disjoint i64 %.sroa.3.0.insert.insert, %.sroa.2.0.insert.shift - %.sroa.0.0.insert.ext = zext i16 %11 to i64 - %.sroa.0.0.insert.insert = or disjoint i64 %.sroa.2.0.insert.insert, %.sroa.0.0.insert.ext + %22 = select i1 %8, i32 0, i32 %21 + %23 = zext i16 %11 to i32 + %24 = or disjoint i32 %22, %23 + %.sroa.2.0.insert.insert = zext nneg i32 %24 to i64 + %.sroa.0.0.insert.insert = or i64 %.sroa.3.0.insert.insert, %.sroa.2.0.insert.insert call void @sema_verror_range(i64 %.sroa.0.0.insert.insert, ptr noundef %3, ptr noundef nonnull %5) #10 call void @llvm.va_end.p0(ptr nonnull %5) - %24 = getelementptr inbounds i8, ptr %0, i64 112 - store i32 0, ptr %24, align 8 - %25 = getelementptr inbounds i8, ptr %0, i64 24 - %26 = load ptr, ptr %25, align 8 - %27 = getelementptr inbounds i8, ptr %0, i64 16 - %28 = load ptr, ptr %27, align 8 - %29 = ptrtoint ptr %26 to i64 - %30 = ptrtoint ptr %28 to i64 - %31 = sub i64 %29, %30 - %32 = getelementptr inbounds i8, ptr %0, i64 64 - %33 = getelementptr inbounds i8, ptr %0, i64 72 - store i64 %31, ptr %33, align 8 - store ptr %28, ptr %32, align 8 - %34 = getelementptr inbounds i8, ptr %0, i64 36 - %35 = load i32, ptr %34, align 4 - %36 = load i32, ptr %6, align 8 - %37 = icmp eq i32 %35, %36 - br i1 %37, label %38, label %48 - -38: ; preds = %4 - %39 = load ptr, ptr %12, align 8 - %40 = ptrtoint ptr %39 to i64 - %41 = sub i64 %30, %40 - %42 = icmp sgt i64 %41, 254 - %43 = trunc i64 %41 to i8 - %44 = add i8 %43, 1 - %.0.i.i = select i1 %42, i8 0, i8 %44 - %45 = icmp sgt i64 %31, 255 - %46 = trunc i64 %31 to i8 - %47 = select i1 %45, i8 0, i8 %46 + %25 = getelementptr inbounds i8, ptr %0, i64 112 + store i32 0, ptr %25, align 8 + %26 = getelementptr inbounds i8, ptr %0, i64 24 + %27 = load ptr, ptr %26, align 8 + %28 = getelementptr inbounds i8, ptr %0, i64 16 + %29 = load ptr, ptr %28, align 8 + %30 = ptrtoint ptr %27 to i64 + %31 = ptrtoint ptr %29 to i64 + %32 = sub i64 %30, %31 + %33 = getelementptr inbounds i8, ptr %0, i64 64 + %34 = getelementptr inbounds i8, ptr %0, i64 72 + store i64 %32, ptr %34, align 8 + store ptr %29, ptr %33, align 8 + %35 = getelementptr inbounds i8, ptr %0, i64 36 + %36 = load i32, ptr %35, align 4 + %37 = load i32, ptr %6, align 8 + %38 = icmp eq i32 %36, %37 + br i1 %38, label %39, label %49 + +39: ; preds = %4 + %40 = load ptr, ptr %12, align 8 + %41 = ptrtoint ptr %40 to i64 + %42 = sub i64 %31, %41 + %43 = icmp sgt i64 %42, 254 + %44 = trunc i64 %42 to i8 + %45 = add i8 %44, 1 + %.0.i.i = select i1 %43, i8 0, i8 %45 + %46 = icmp sgt i64 %32, 255 + %47 = trunc i64 %32 to i8 + %48 = select i1 %46, i8 0, i8 %47 br label %set_generic_token.exit -48: ; preds = %4 - %49 = getelementptr inbounds i8, ptr %0, i64 48 - %50 = load ptr, ptr %49, align 8 - %51 = ptrtoint ptr %50 to i64 - %52 = sub i64 %30, %51 - %53 = icmp sgt i64 %52, 254 - %54 = trunc i64 %52 to i8 - %55 = add i8 %54, 1 - %.0.i26.i = select i1 %53, i8 0, i8 %55 +49: ; preds = %4 + %50 = getelementptr inbounds i8, ptr %0, i64 48 + %51 = load ptr, ptr %50, align 8 + %52 = ptrtoint ptr %51 to i64 + %53 = sub i64 %31, %52 + %54 = icmp sgt i64 %53, 254 + %55 = trunc i64 %53 to i8 + %56 = add i8 %55, 1 + %.0.i26.i = select i1 %54, i8 0, i8 %56 br label %set_generic_token.exit -set_generic_token.exit: ; preds = %38, %48 - %.024.in.i = phi i8 [ %.0.i.i, %38 ], [ %.0.i26.i, %48 ] - %.0.i9 = phi i8 [ %47, %38 ], [ 1, %48 ] - %56 = getelementptr inbounds i8, ptr %0, i64 106 - store i8 %.0.i9, ptr %56, align 2 - %57 = getelementptr inbounds i8, ptr %0, i64 107 - store i8 %.024.in.i, ptr %57, align 1 - %58 = getelementptr inbounds i8, ptr %0, i64 108 - store i32 %35, ptr %58, align 4 +set_generic_token.exit: ; preds = %39, %49 + %.024.in.i = phi i8 [ %.0.i.i, %39 ], [ %.0.i26.i, %49 ] + %.0.i9 = phi i8 [ %48, %39 ], [ 1, %49 ] + %57 = getelementptr inbounds i8, ptr %0, i64 106 + store i8 %.0.i9, ptr %57, align 2 + %58 = getelementptr inbounds i8, ptr %0, i64 107 + store i8 %.024.in.i, ptr %58, align 1 + %59 = getelementptr inbounds i8, ptr %0, i64 108 + store i32 %36, ptr %59, align 4 ret void } diff --git a/bench/casadi/optimized/tinyxml2.cpp.ll b/bench/casadi/optimized/tinyxml2.cpp.ll index 53dd55d8dfd..877d50e02a9 100644 --- a/bench/casadi/optimized/tinyxml2.cpp.ll +++ b/bench/casadi/optimized/tinyxml2.cpp.ll @@ -1768,9 +1768,9 @@ _ZN8tinyxml27XMLUtil11StringEqualEPKcS2_i.exit.thread: ; preds = %_ZN8tinyxml27X 35: ; preds = %_ZN8tinyxml27XMLUtil11StringEqualEPKcS2_i.exit.thread %36 = shl i32 %32, 1 %37 = add i32 %36, 2 - %38 = sext i32 %37 to i64 + %38 = zext i32 %37 to i64 %39 = icmp slt i32 %32, -1 - %40 = shl nsw i64 %38, 3 + %40 = shl nuw nsw i64 %38, 3 %41 = select i1 %39, i64 -1, i64 %40 %42 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %41) #32 %43 = load ptr, ptr %30, align 8 @@ -1842,9 +1842,9 @@ _ZN8tinyxml27XMLUtil11StringEqualEPKcS2_i.exit32.thread: ; preds = %_ZN8tinyxml2 73: ; preds = %_ZN8tinyxml27XMLUtil11StringEqualEPKcS2_i.exit32.thread %74 = shl i32 %70, 1 %75 = add i32 %74, 2 - %76 = sext i32 %75 to i64 + %76 = zext i32 %75 to i64 %77 = icmp slt i32 %70, -1 - %78 = shl nsw i64 %76, 3 + %78 = shl nuw nsw i64 %76, 3 %79 = select i1 %77, i64 -1, i64 %78 %80 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %79) #32 %81 = load ptr, ptr %68, align 8 @@ -1928,9 +1928,9 @@ _ZN8tinyxml27XMLUtil11StringEqualEPKcS2_i.exit41.thread: ; preds = %97, %_ZN8tin 118: ; preds = %_ZN8tinyxml27XMLUtil11StringEqualEPKcS2_i.exit41.thread %119 = shl i32 %115, 1 %120 = add i32 %119, 2 - %121 = sext i32 %120 to i64 + %121 = zext i32 %120 to i64 %122 = icmp slt i32 %115, -1 - %123 = shl nsw i64 %121, 3 + %123 = shl nuw nsw i64 %121, 3 %124 = select i1 %122, i64 -1, i64 %123 %125 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %124) #32 %126 = load ptr, ptr %113, align 8 @@ -2007,9 +2007,9 @@ _ZN8tinyxml27XMLUtil11StringEqualEPKcS2_i.exit50.thread: ; preds = %142, %_ZN8ti 158: ; preds = %_ZN8tinyxml27XMLUtil11StringEqualEPKcS2_i.exit50.thread %159 = shl i32 %155, 1 %160 = add i32 %159, 2 - %161 = sext i32 %160 to i64 + %161 = zext i32 %160 to i64 %162 = icmp slt i32 %155, -1 - %163 = shl nsw i64 %161, 3 + %163 = shl nuw nsw i64 %161, 3 %164 = select i1 %162, i64 -1, i64 %163 %165 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %164) #32 %166 = load ptr, ptr %153, align 8 @@ -2113,9 +2113,9 @@ define linkonce_odr hidden noundef ptr @_ZN8tinyxml211XMLDocument18CreateUnlinke 19: ; preds = %2 %20 = shl i32 %16, 1 %21 = add i32 %20, 2 - %22 = sext i32 %21 to i64 + %22 = zext i32 %21 to i64 %23 = icmp slt i32 %16, -1 - %24 = shl nsw i64 %22, 3 + %24 = shl nuw nsw i64 %22, 3 %25 = select i1 %23, i64 -1, i64 %24 %26 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %25) #32 %27 = load ptr, ptr %14, align 8 @@ -2175,9 +2175,9 @@ define linkonce_odr hidden noundef ptr @_ZN8tinyxml211XMLDocument18CreateUnlinke 13: ; preds = %2 %14 = shl i32 %10, 1 %15 = add i32 %14, 2 - %16 = sext i32 %15 to i64 + %16 = zext i32 %15 to i64 %17 = icmp slt i32 %10, -1 - %18 = shl nsw i64 %16, 3 + %18 = shl nuw nsw i64 %16, 3 %19 = select i1 %17, i64 -1, i64 %18 %20 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %19) #32 %21 = load ptr, ptr %8, align 8 @@ -4580,9 +4580,9 @@ define noundef ptr @_ZN8tinyxml211XMLDocument7NewTextEPKc(ptr noundef nonnull al 20: ; preds = %2 %21 = shl i32 %17, 1 %22 = add i32 %21, 2 - %23 = sext i32 %22 to i64 + %23 = zext i32 %22 to i64 %24 = icmp slt i32 %17, -1 - %25 = shl nsw i64 %23, 3 + %25 = shl nuw nsw i64 %23, 3 %26 = select i1 %24, i64 -1, i64 %25 %27 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %26) #32 %28 = load ptr, ptr %15, align 8 @@ -4933,9 +4933,9 @@ define noundef ptr @_ZN8tinyxml211XMLDocument10NewCommentEPKc(ptr noundef nonnul 14: ; preds = %2 %15 = shl i32 %11, 1 %16 = add i32 %15, 2 - %17 = sext i32 %16 to i64 + %17 = zext i32 %16 to i64 %18 = icmp slt i32 %11, -1 - %19 = shl nsw i64 %17, 3 + %19 = shl nuw nsw i64 %17, 3 %20 = select i1 %18, i64 -1, i64 %19 %21 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %20) #32 %22 = load ptr, ptr %9, align 8 @@ -5280,9 +5280,9 @@ define noundef ptr @_ZN8tinyxml211XMLDocument14NewDeclarationEPKc(ptr noundef no 14: ; preds = %2 %15 = shl i32 %11, 1 %16 = add i32 %15, 2 - %17 = sext i32 %16 to i64 + %17 = zext i32 %16 to i64 %18 = icmp slt i32 %11, -1 - %19 = shl nsw i64 %17, 3 + %19 = shl nuw nsw i64 %17, 3 %20 = select i1 %18, i64 -1, i64 %19 %21 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %20) #32 %22 = load ptr, ptr %9, align 8 @@ -5623,9 +5623,9 @@ define noundef ptr @_ZN8tinyxml211XMLDocument10NewUnknownEPKc(ptr noundef nonnul 14: ; preds = %2 %15 = shl i32 %11, 1 %16 = add i32 %15, 2 - %17 = sext i32 %16 to i64 + %17 = zext i32 %16 to i64 %18 = icmp slt i32 %11, -1 - %19 = shl nsw i64 %17, 3 + %19 = shl nuw nsw i64 %17, 3 %20 = select i1 %18, i64 -1, i64 %19 %21 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %20) #32 %22 = load ptr, ptr %9, align 8 @@ -8556,9 +8556,9 @@ define linkonce_odr hidden noundef ptr @_ZN8tinyxml28MemPoolTILi80EE5AllocEv(ptr 11: ; preds = %4 %12 = shl i32 %8, 1 %13 = add i32 %12, 2 - %14 = sext i32 %13 to i64 + %14 = zext i32 %13 to i64 %15 = icmp slt i32 %8, -1 - %16 = shl nsw i64 %14, 3 + %16 = shl nuw nsw i64 %14, 3 %17 = select i1 %15, i64 -1, i64 %16 %18 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %17) #32 %19 = load ptr, ptr %6, align 8 @@ -8673,9 +8673,9 @@ define noundef ptr @_ZN8tinyxml211XMLDocument10NewElementEPKc(ptr noundef nonnul 14: ; preds = %2 %15 = shl i32 %11, 1 %16 = add i32 %15, 2 - %17 = sext i32 %16 to i64 + %17 = zext i32 %16 to i64 %18 = icmp slt i32 %11, -1 - %19 = shl nsw i64 %17, 3 + %19 = shl nuw nsw i64 %17, 3 %20 = select i1 %18, i64 -1, i64 %19 %21 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %20) #32 %22 = load ptr, ptr %9, align 8 @@ -11822,9 +11822,9 @@ _ZN8tinyxml210XMLPrinter17PrepareForNewNodeEb.exit: ; preds = %_ZN8tinyxml210XML 34: ; preds = %_ZN8tinyxml210XMLPrinter17PrepareForNewNodeEb.exit %35 = shl i32 %31, 1 %36 = add i32 %35, 2 - %37 = sext i32 %36 to i64 + %37 = zext i32 %36 to i64 %38 = icmp slt i32 %31, -1 - %39 = shl nsw i64 %37, 3 + %39 = shl nuw nsw i64 %37, 3 %40 = select i1 %38, i64 -1, i64 %39 %41 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %40) #32 %42 = load ptr, ptr %29, align 8 @@ -13402,9 +13402,9 @@ define linkonce_odr hidden noundef ptr @_ZN8tinyxml28MemPoolTILi120EE5AllocEv(pt 11: ; preds = %4 %12 = shl i32 %8, 1 %13 = add i32 %12, 2 - %14 = sext i32 %13 to i64 + %14 = zext i32 %13 to i64 %15 = icmp slt i32 %8, -1 - %16 = shl nsw i64 %14, 3 + %16 = shl nuw nsw i64 %14, 3 %17 = select i1 %15, i64 -1, i64 %16 %18 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %17) #32 %19 = load ptr, ptr %6, align 8 @@ -13682,9 +13682,9 @@ define linkonce_odr hidden noundef ptr @_ZN8tinyxml28MemPoolTILi112EE5AllocEv(pt 11: ; preds = %4 %12 = shl i32 %8, 1 %13 = add i32 %12, 2 - %14 = sext i32 %13 to i64 + %14 = zext i32 %13 to i64 %15 = icmp slt i32 %8, -1 - %16 = shl nsw i64 %14, 3 + %16 = shl nuw nsw i64 %14, 3 %17 = select i1 %15, i64 -1, i64 %16 %18 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %17) #32 %19 = load ptr, ptr %6, align 8 @@ -13875,9 +13875,9 @@ define linkonce_odr hidden noundef ptr @_ZN8tinyxml28MemPoolTILi104EE5AllocEv(pt 11: ; preds = %4 %12 = shl i32 %8, 1 %13 = add i32 %12, 2 - %14 = sext i32 %13 to i64 + %14 = zext i32 %13 to i64 %15 = icmp slt i32 %8, -1 - %16 = shl nsw i64 %14, 3 + %16 = shl nuw nsw i64 %14, 3 %17 = select i1 %15, i64 -1, i64 %16 %18 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %17) #32 %19 = load ptr, ptr %6, align 8 diff --git a/bench/clap-rs/optimized/3b4nqkxyl1xqdcre.ll b/bench/clap-rs/optimized/3b4nqkxyl1xqdcre.ll index b67b8c7378b..5b78fe980b4 100644 --- a/bench/clap-rs/optimized/3b4nqkxyl1xqdcre.ll +++ b/bench/clap-rs/optimized/3b4nqkxyl1xqdcre.ll @@ -10022,7 +10022,7 @@ define internal void @_ZN12clap_builder6output13help_template15option_sort_key17 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) %8 = add nsw i32 %6, -65 %.018 = icmp ult i32 %8, 26 - %9 = xor i32 %6, 32 + %9 = or disjoint i32 %6, 32 %.0 = select i1 %.018, i32 %9, i32 %6 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %.sroa.040) store i32 0, ptr %.sroa.040, align 4 diff --git a/bench/delta-rs/optimized/5d242f2by7re2olg.ll b/bench/delta-rs/optimized/5d242f2by7re2olg.ll index 95ec54e5259..4514ef3436f 100644 --- a/bench/delta-rs/optimized/5d242f2by7re2olg.ll +++ b/bench/delta-rs/optimized/5d242f2by7re2olg.ll @@ -14631,7 +14631,7 @@ define internal void @"_ZN4core3ptr72drop_in_place$LT$aws_sdk_dynamodb..operatio %9 = load i64, ptr %0, align 8, !range !2016, !noundef !5 %10 = add i64 %9, 9223372036854775807 %11 = icmp ult i64 %10, 8 - %12 = xor i64 %9, -9223372036854775808 + %12 = and i64 %9, 15 %13 = select i1 %11, i64 %12, i64 0 switch i64 %13, label %14 [ i64 0, label %30 @@ -15340,7 +15340,7 @@ define internal void @"_ZN4core3ptr78drop_in_place$LT$aws_sdk_dynamodb..operatio %9 = load i64, ptr %0, align 8, !range !2016, !noundef !5 %10 = add i64 %9, 9223372036854775807 %11 = icmp ult i64 %10, 8 - %12 = xor i64 %9, -9223372036854775808 + %12 = and i64 %9, 15 %13 = select i1 %11, i64 %12, i64 0 switch i64 %13, label %14 [ i64 0, label %30 @@ -19300,7 +19300,7 @@ define internal { ptr, ptr } @_ZN4core5error5Error5cause17h7c50fe35320f8b09E(ptr %2 = load i64, ptr %0, align 8, !range !2016, !alias.scope !2924, !noundef !5 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 8 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 15 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %7 [ i64 0, label %"_ZN96_$LT$aws_sdk_dynamodb..operation..update_item..UpdateItemError$u20$as$u20$core..error..Error$GT$6source17h4b51e0ba5ffd91d9E.exit" @@ -19551,9 +19551,9 @@ default.unreachable: ; preds = %1 ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable define hidden { ptr, ptr } @_ZN4core5error5Error5cause17hac34b842fd58f942E(ptr noalias noundef readonly align 8 dereferenceable(24) %0) unnamed_addr #0 { %2 = load i64, ptr %0, align 8, !range !37, !alias.scope !2933, !noundef !5 - %switch1.i = icmp eq i64 %2, -9223372036854775808 + %switch.i = icmp eq i64 %2, -9223372036854775808 %3 = getelementptr inbounds i8, ptr %0, i64 8 - %spec.select.i = select i1 %switch1.i, ptr %3, ptr null + %spec.select.i = select i1 %switch.i, ptr %3, ptr null %4 = insertvalue { ptr, ptr } poison, ptr %spec.select.i, 0 %5 = insertvalue { ptr, ptr } %4, ptr @anon.ef876e9a40f6761df4fa1e2b544b5407.544, 1 ret { ptr, ptr } %5 @@ -19614,7 +19614,7 @@ define internal { ptr, ptr } @_ZN4core5error5Error5cause17hb7fd9f860bfc039dE(ptr %2 = load i64, ptr %0, align 8, !range !2016, !alias.scope !2939, !noundef !5 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 8 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 15 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %7 [ i64 0, label %"_ZN90_$LT$aws_sdk_dynamodb..operation..put_item..PutItemError$u20$as$u20$core..error..Error$GT$6source17h4cb37dbd74d1c058E.exit" @@ -24295,7 +24295,7 @@ define internal noundef zeroext i1 @"_ZN88_$LT$aws_sdk_dynamodb..operation..put_ %12 = load i64, ptr %0, align 8, !range !2016, !noundef !5 %13 = add i64 %12, 9223372036854775807 %14 = icmp ult i64 %13, 8 - %15 = xor i64 %12, -9223372036854775808 + %15 = and i64 %12, 15 %16 = select i1 %14, i64 %15, i64 0 switch i64 %16, label %17 [ i64 0, label %18 @@ -24704,7 +24704,7 @@ define internal { ptr, ptr } @"_ZN90_$LT$aws_sdk_dynamodb..operation..put_item.. %2 = load i64, ptr %0, align 8, !range !2016, !noundef !5 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 8 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 15 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %7 [ i64 0, label %27 @@ -25408,7 +25408,7 @@ define internal noundef zeroext i1 @"_ZN94_$LT$aws_sdk_dynamodb..operation..upda %12 = load i64, ptr %0, align 8, !range !2016, !noundef !5 %13 = add i64 %12, 9223372036854775807 %14 = icmp ult i64 %13, 8 - %15 = xor i64 %12, -9223372036854775808 + %15 = and i64 %12, 15 %16 = select i1 %14, i64 %15, i64 0 switch i64 %16, label %17 [ i64 0, label %18 @@ -25774,7 +25774,7 @@ define internal { ptr, ptr } @"_ZN96_$LT$aws_sdk_dynamodb..operation..update_ite %2 = load i64, ptr %0, align 8, !range !2016, !noundef !5 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 8 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 15 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %7 [ i64 0, label %27 @@ -27261,7 +27261,7 @@ define void @"_ZN137_$LT$deltalake_aws..errors..LockClientError$u20$as$u20$core. %8 = load i64, ptr %1, align 8, !range !2016, !noundef !5 %9 = add i64 %8, 9223372036854775807 %10 = icmp ult i64 %9, 8 - %11 = xor i64 %8, -9223372036854775808 + %11 = and i64 %8, 15 %12 = select i1 %10, i64 %11, i64 0 switch i64 %12, label %13 [ i64 0, label %25 @@ -27380,7 +27380,7 @@ define void @"_ZN143_$LT$deltalake_aws..errors..LockClientError$u20$as$u20$core. %9 = load i64, ptr %1, align 8, !range !2016, !noundef !5 %10 = add i64 %9, 9223372036854775807 %11 = icmp ult i64 %10, 8 - %12 = xor i64 %9, -9223372036854775808 + %12 = and i64 %9, 15 %13 = select i1 %11, i64 %12, i64 0 switch i64 %13, label %14 [ i64 0, label %27 @@ -27505,9 +27505,9 @@ define internal noundef zeroext i1 @"_ZN80_$LT$deltalake_aws..credentials..NoOpC ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable define { ptr, ptr } @"_ZN81_$LT$deltalake_aws..errors..DynamoDbConfigError$u20$as$u20$core..error..Error$GT$6source17h5b252328eea633cbE"(ptr noalias noundef readonly align 8 dereferenceable(24) %0) unnamed_addr #0 { %2 = load i64, ptr %0, align 8, !range !37, !noundef !5 - %switch1 = icmp eq i64 %2, -9223372036854775808 + %switch = icmp eq i64 %2, -9223372036854775808 %3 = getelementptr inbounds i8, ptr %0, i64 8 - %spec.select = select i1 %switch1, ptr %3, ptr null + %spec.select = select i1 %switch, ptr %3, ptr null %4 = insertvalue { ptr, ptr } poison, ptr %spec.select, 0 %5 = insertvalue { ptr, ptr } %4, ptr @anon.ef876e9a40f6761df4fa1e2b544b5407.544, 1 ret { ptr, ptr } %5 diff --git a/bench/graphviz/optimized/generate-constraints.cpp.ll b/bench/graphviz/optimized/generate-constraints.cpp.ll index 6b7431fbbf8..9abf8a6b194 100644 --- a/bench/graphviz/optimized/generate-constraints.cpp.ll +++ b/bench/graphviz/optimized/generate-constraints.cpp.ll @@ -2029,9 +2029,9 @@ _ZNSt6vectorIP10ConstraintSaIS1_EE9push_backEOS1_.exit288: ; preds = %_ZNSt6vect %757 = sub i64 %.sroa.13.0.lcssa, %756 %758 = lshr i64 %757, 3 %759 = trunc i64 %758 to i32 - %sext = shl i64 %757, 29 - %760 = ashr exact i64 %sext, 29 - %.inv = icmp sgt i64 %sext, -1 + %760 = and i64 %757, 34359738367 + %sext.mask = and i64 %757, 17179869184 + %.inv = icmp eq i64 %sext.mask, 0 %761 = select i1 %.inv, i64 %760, i64 -1 %762 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %761) #24 to label %763 unwind label %.loopexit.split-lp404.loopexit.split-lp.loopexit.split-lp @@ -3544,9 +3544,9 @@ _ZNSt6vectorIP10ConstraintSaIS1_EE9push_backEOS1_.exit120: ; preds = %_ZNSt6vect %301 = sub i64 %.sroa.9.0.lcssa, %300 %302 = lshr i64 %301, 3 %303 = trunc i64 %302 to i32 - %sext = shl i64 %301, 29 - %304 = ashr exact i64 %sext, 29 - %.inv = icmp sgt i64 %sext, -1 + %304 = and i64 %301, 34359738367 + %sext.mask = and i64 %301, 17179869184 + %.inv = icmp eq i64 %sext.mask, 0 %305 = select i1 %.inv, i64 %304, i64 -1 %306 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %305) #24 to label %307 unwind label %.loopexit.split-lp diff --git a/bench/icu/optimized/collationdatabuilder.ll b/bench/icu/optimized/collationdatabuilder.ll index 4a6aabb8ce9..ab631e1d6df 100644 --- a/bench/icu/optimized/collationdatabuilder.ll +++ b/bench/icu/optimized/collationdatabuilder.ll @@ -3628,7 +3628,7 @@ if.else10: ; preds = %if.else %and12 = and i32 %conv1, 255 %cmp13 = icmp eq i32 %and12, 0 %or.cond = and i1 %cmp11, %cmp13 - %or1.i = or i32 %conv1, 194 + %or1.i = or disjoint i32 %conv1, 194 %spec.select = select i1 %or.cond, i32 %or1.i, i32 1 br label %return @@ -3661,7 +3661,7 @@ if.else10.i: ; preds = %if.else.i %and12.i = and i32 %conv1.i, 255 %cmp13.i = icmp eq i32 %and12.i, 0 %or.cond.i = and i1 %cmp11.i, %cmp13.i - %or1.i.i = or i32 %conv1.i, 194 + %or1.i.i = or disjoint i32 %conv1.i, 194 br i1 %or.cond.i, label %return, label %if.end _ZN6icu_7520CollationDataBuilder17encodeOneCEAsCE32El.exit: ; preds = %entry @@ -3865,7 +3865,7 @@ if.else10.i: ; preds = %if.else.i %and12.i = and i32 %conv1.i, 255 %cmp13.i = icmp eq i32 %and12.i, 0 %or.cond.i = and i1 %cmp11.i, %cmp13.i - %or1.i.i = or i32 %conv1.i, 194 + %or1.i.i = or disjoint i32 %conv1.i, 194 br i1 %or.cond.i, label %if.end50, label %for.end _ZN6icu_7520CollationDataBuilder17encodeOneCEAsCE32El.exit: ; preds = %if.end45 diff --git a/bench/icu/optimized/ustr.ll b/bench/icu/optimized/ustr.ll index 535b6f3d5cd..0c276354043 100644 --- a/bench/icu/optimized/ustr.ll +++ b/bench/icu/optimized/ustr.ll @@ -320,12 +320,12 @@ if.end: ; preds = %entry if.end.i: ; preds = %if.end %cmp3 = icmp slt i32 %len, 128 %mul = shl nsw i32 %len, 1 - %2 = and i32 %mul, -128 - %and = add nsw i32 %2, 128 + %2 = and i32 %mul, 2147483520 + %and = add nuw nsw i32 %2, 128 %cond = select i1 %cmp3, i32 128, i32 %and - %add.i = or disjoint i32 %cond, 1 - %conv.i = sext i32 %add.i to i64 - %mul.i = shl nsw i64 %conv.i, 1 + %add.i = shl nuw i32 %cond, 1 + %3 = or disjoint i32 %add.i, 2 + %mul.i = zext i32 %3 to i64 %call.i = tail call ptr @uprv_realloc_75(ptr noundef %.pre10, i64 noundef %mul.i) #8 store ptr %call.i, ptr %s, align 8 %cmp3.i = icmp eq ptr %call.i, null @@ -340,8 +340,8 @@ if.then5.i: ; preds = %if.end.i ustr_resize.exit: ; preds = %if.end.i, %if.then5.i %cond.sink = phi i32 [ 0, %if.then5.i ], [ %cond, %if.end.i ] store i32 %cond.sink, ptr %fCapacity, align 4 - %3 = load i32, ptr %status, align 4 - %cmp5 = icmp sgt i32 %3, 0 + %4 = load i32, ptr %status, align 4 + %cmp5 = icmp sgt i32 %4, 0 br i1 %cmp5, label %return, label %ustr_resize.exit.if.end8_crit_edge ustr_resize.exit.if.end8_crit_edge: ; preds = %ustr_resize.exit @@ -349,11 +349,11 @@ ustr_resize.exit.if.end8_crit_edge: ; preds = %ustr_resize.exit br label %if.end8 if.end8: ; preds = %ustr_resize.exit.if.end8_crit_edge, %if.end - %4 = phi ptr [ %.pre, %ustr_resize.exit.if.end8_crit_edge ], [ %.pre10, %if.end ] + %5 = phi ptr [ %.pre, %ustr_resize.exit.if.end8_crit_edge ], [ %.pre10, %if.end ] %fLength = getelementptr inbounds i8, ptr %s, i64 8 store i32 %len, ptr %fLength, align 8 %idxprom = sext i32 %len to i64 - %arrayidx = getelementptr inbounds i16, ptr %4, i64 %idxprom + %arrayidx = getelementptr inbounds i16, ptr %5, i64 %idxprom store i16 0, ptr %arrayidx, align 2 br label %return diff --git a/bench/image-rs/optimized/1njpscpjlgoe3i07.ll b/bench/image-rs/optimized/1njpscpjlgoe3i07.ll index 308f42486ab..2b7bd418279 100644 --- a/bench/image-rs/optimized/1njpscpjlgoe3i07.ll +++ b/bench/image-rs/optimized/1njpscpjlgoe3i07.ll @@ -23424,16 +23424,16 @@ define { i16, i16 } @_ZN5image6codecs3gif6Repeat11to_gif_enum17hec37d9fa9a5d5aab ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable define i48 @"_ZN5image6codecs3gif19GifEncoder$LT$W$GT$14gif_dimensions16inner_dimensions17hd3657403bd0340d1E"(i32 noundef %0, i32 noundef %1) unnamed_addr #18 { %3 = icmp ult i32 %0, 65536 - %4 = or i32 %0, %1 - %5 = icmp ult i32 %4, 65536 - %narrow19 = select i1 %5, i32 %1, i32 0 - %.sroa.5.0.insert.ext = zext nneg i32 %narrow19 to i48 + %4 = shl nuw i32 %0, 16 + %narrow = select i1 %3, i32 %4, i32 0 + %5 = or i32 %0, %1 + %6 = icmp ult i32 %5, 65536 + %narrow20 = select i1 %6, i32 %1, i32 0 + %.sroa.5.0.insert.ext = zext nneg i32 %narrow20 to i48 %.sroa.5.0.insert.shift = shl nuw i48 %.sroa.5.0.insert.ext, 32 - %6 = shl nuw i32 %0, 16 - %7 = select i1 %3, i32 %6, i32 0 - %.sroa.4.0.insert.shift = zext i32 %7 to i48 + %.sroa.4.0.insert.shift = zext i32 %narrow to i48 %.sroa.4.0.insert.insert = or disjoint i48 %.sroa.5.0.insert.shift, %.sroa.4.0.insert.shift - %.sroa.0.0.insert.ext = zext i1 %5 to i48 + %.sroa.0.0.insert.ext = zext i1 %6 to i48 %.sroa.0.0.insert.insert = or disjoint i48 %.sroa.4.0.insert.insert, %.sroa.0.0.insert.ext ret i48 %.sroa.0.0.insert.insert } diff --git a/bench/image-rs/optimized/4srzh4wujeew249y.ll b/bench/image-rs/optimized/4srzh4wujeew249y.ll index eef045e3a71..b75ae66c36c 100644 --- a/bench/image-rs/optimized/4srzh4wujeew249y.ll +++ b/bench/image-rs/optimized/4srzh4wujeew249y.ll @@ -27704,7 +27704,7 @@ define void @"_ZN5image6codecs4jpeg7decoder42_$LT$impl$u20$image..error..ImageEr store i8 4, ptr %0, align 8 br label %48 -29: ; preds = %53, %40 +29: ; preds = %57, %40 %30 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #24 @@ -27762,7 +27762,7 @@ define void @"_ZN5image6codecs4jpeg7decoder42_$LT$impl$u20$image..error..ImageEr %41 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr50drop_in_place$LT$image..error..ImageFormatHint$GT$17hb6ce94113d42d9faE.llvm.86838146618072286"(ptr noalias noundef nonnull align 8 dereferenceable(32) %7) #23 - to label %51 unwind label %29 + to label %53 unwind label %29 42: ; preds = %2 %43 = getelementptr inbounds i8, ptr %1, i64 8 @@ -27780,28 +27780,34 @@ define void @"_ZN5image6codecs4jpeg7decoder42_$LT$impl$u20$image..error..ImageEr store i8 4, ptr %0, align 8 br label %.critedge -48: ; preds = %.critedge, %27, %50 +48: ; preds = %.critedge, %27, %52 ret void .critedge: ; preds = %42, %15, %39 %49 = phi i64 [ %10, %42 ], [ %10, %15 ], [ %.pre, %39 ] - %switch37 = icmp slt i64 %49, -9223372036854775805 - br i1 %switch37, label %48, label %50 + %50 = icmp slt i64 %49, -9223372036854775805 + %51 = and i64 %49, 3 + %switch37 = icmp ne i64 %51, 3 + %switch = and i1 %50, %switch37 + br i1 %switch, label %48, label %52 -50: ; preds = %.critedge +52: ; preds = %.critedge call fastcc void @"_ZN4core3ptr47drop_in_place$LT$jpeg_decoder..error..Error$GT$17habd25b08f00d446eE"(ptr noalias noundef align 8 dereferenceable(24) %1) br label %48 -.body: ; preds = %.body.i, %51, %53 - %.pn34 = phi { ptr, i32 } [ %41, %51 ], [ %41, %53 ], [ %22, %.body.i ] +.body: ; preds = %.body.i, %53, %57 + %.pn34 = phi { ptr, i32 } [ %41, %53 ], [ %41, %57 ], [ %22, %.body.i ] resume { ptr, i32 } %.pn34 -51: ; preds = %40 - %52 = load i64, ptr %1, align 8, !range !2167, !noundef !9 - %switch1136 = icmp slt i64 %52, -9223372036854775805 - br i1 %switch1136, label %.body, label %53 +53: ; preds = %40 + %54 = load i64, ptr %1, align 8, !range !2167, !noundef !9 + %55 = icmp slt i64 %54, -9223372036854775805 + %56 = and i64 %54, 3 + %switch1136 = icmp ne i64 %56, 3 + %switch11 = and i1 %55, %switch1136 + br i1 %switch11, label %.body, label %57 -53: ; preds = %51 +57: ; preds = %53 invoke fastcc void @"_ZN4core3ptr47drop_in_place$LT$jpeg_decoder..error..Error$GT$17habd25b08f00d446eE"(ptr noalias noundef align 8 dereferenceable(24) %1) #23 to label %.body unwind label %29 } diff --git a/bench/ipopt/optimized/IpEquilibrationScaling.ll b/bench/ipopt/optimized/IpEquilibrationScaling.ll index c294362360f..519ba673cd2 100644 --- a/bench/ipopt/optimized/IpEquilibrationScaling.ll +++ b/bench/ipopt/optimized/IpEquilibrationScaling.ll @@ -722,9 +722,9 @@ _ZN5Ipopt8SmartPtrINS_14PointPerturberEEC2EPS1_.exit: ; preds = %228 %245 = load ptr, ptr %244, align 8, !noalias !4 %246 = getelementptr inbounds i8, ptr %245, i64 12 %247 = load i32, ptr %246, align 4, !noalias !4 - %248 = sext i32 %247 to i64 + %248 = zext i32 %247 to i64 %249 = icmp slt i32 %247, 0 - %250 = shl nsw i64 %248, 3 + %250 = shl nuw nsw i64 %248, 3 %251 = select i1 %249, i64 -1, i64 %250 %252 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %251) #20 to label %.noexc unwind label %.loopexit.split-lp.loopexit @@ -744,14 +744,10 @@ _ZN5Ipopt8SmartPtrINS_14PointPerturberEEC2EPS1_.exit: ; preds = %228 .noexc275: ; preds = %.noexc274 %255 = icmp sgt i32 %247, 0 - br i1 %255, label %.lr.ph.preheader.i, label %._crit_edge.i + br i1 %255, label %.lr.ph.i, label %._crit_edge.i -.lr.ph.preheader.i: ; preds = %.noexc275 - %wide.trip.count.i = zext nneg i32 %247 to i64 - br label %.lr.ph.i - -.lr.ph.i: ; preds = %.noexc276, %.lr.ph.preheader.i - %indvars.iv.i = phi i64 [ 0, %.lr.ph.preheader.i ], [ %indvars.iv.next.i, %.noexc276 ] +.lr.ph.i: ; preds = %.noexc275, %.noexc276 + %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %.noexc276 ], [ 0, %.noexc275 ] %256 = invoke noundef double @_ZN5Ipopt10IpRandom01Ev() to label %.noexc276 unwind label %.loopexit @@ -765,7 +761,7 @@ _ZN5Ipopt8SmartPtrINS_14PointPerturberEEC2EPS1_.exit: ; preds = %228 %263 = call double @llvm.fmuladd.f64(double %258, double %260, double %262) store double %263, ptr %261, align 8, !noalias !4 %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 - %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %wide.trip.count.i + %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %248 br i1 %exitcond.not.i, label %._crit_edge.i, label %.lr.ph.i, !llvm.loop !7 ._crit_edge.i: ; preds = %.noexc276, %.noexc275 @@ -1213,8 +1209,8 @@ _ZN5Ipopt8SmartPtrINS_6VectorEED2Ev.exit279: ; preds = %338, %343 424: ; preds = %422 %425 = mul nsw i32 %.sroa.speculated.i282, 5 - %426 = sext i32 %425 to i64 - %427 = shl nsw i64 %426, 2 + %426 = zext i32 %425 to i64 + %427 = shl nuw nsw i64 %426, 2 %428 = select i1 %418, i64 -1, i64 %427 %429 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %428) #20 to label %430 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp @@ -1240,9 +1236,9 @@ _ZN5Ipopt8SmartPtrINS_6VectorEED2Ev.exit279: ; preds = %338, %343 to label %440 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp 440: ; preds = %434 - %441 = sext i32 %212 to i64 + %441 = zext i32 %212 to i64 %442 = icmp slt i32 %212, 0 - %443 = shl nsw i64 %441, 3 + %443 = shl nuw nsw i64 %441, 3 %444 = select i1 %442, i64 -1, i64 %443 %445 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %444) #20 to label %.preheader361 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp @@ -1256,11 +1252,7 @@ _ZN5Ipopt8SmartPtrINS_6VectorEED2Ev.exit279: ; preds = %338, %343 br label %.lr.ph412 .preheader: ; preds = %.lr.ph412, %.preheader361 - br i1 %239, label %.lr.ph414.preheader, label %._crit_edge415 - -.lr.ph414.preheader: ; preds = %.preheader - %wide.trip.count471 = zext nneg i32 %212 to i64 - br label %.lr.ph414 + br i1 %239, label %.lr.ph414, label %._crit_edge415 .lr.ph412: ; preds = %.lr.ph412.preheader, %.lr.ph412 %indvars.iv463 = phi i64 [ 0, %.lr.ph412.preheader ], [ %indvars.iv.next464, %.lr.ph412 ] @@ -1274,8 +1266,8 @@ _ZN5Ipopt8SmartPtrINS_6VectorEED2Ev.exit279: ; preds = %338, %343 %exitcond467.not = icmp eq i64 %indvars.iv.next464, %wide.trip.count466 br i1 %exitcond467.not, label %.preheader, label %.lr.ph412, !llvm.loop !19 -.lr.ph414: ; preds = %.lr.ph414.preheader, %.lr.ph414 - %indvars.iv468 = phi i64 [ 0, %.lr.ph414.preheader ], [ %indvars.iv.next469, %.lr.ph414 ] +.lr.ph414: ; preds = %.preheader, %.lr.ph414 + %indvars.iv468 = phi i64 [ %indvars.iv.next469, %.lr.ph414 ], [ 0, %.preheader ] %451 = getelementptr inbounds float, ptr %423, i64 %indvars.iv468 %452 = load float, ptr %451, align 4 %453 = fpext float %452 to double @@ -1283,7 +1275,7 @@ _ZN5Ipopt8SmartPtrINS_6VectorEED2Ev.exit279: ; preds = %338, %343 %455 = getelementptr inbounds double, ptr %445, i64 %indvars.iv468 store double %454, ptr %455, align 8 %indvars.iv.next469 = add nuw nsw i64 %indvars.iv468, 1 - %exitcond472.not = icmp eq i64 %indvars.iv.next469, %wide.trip.count471 + %exitcond472.not = icmp eq i64 %indvars.iv.next469, %441 br i1 %exitcond472.not, label %._crit_edge415, label %.lr.ph414, !llvm.loop !20 ._crit_edge415: ; preds = %.lr.ph414, %.preheader @@ -1739,9 +1731,9 @@ define void @_ZNK5Ipopt14PointPerturber21MakeNewPerturbedPointEv(ptr dead_on_unw %6 = load ptr, ptr %5, align 8 %7 = getelementptr inbounds i8, ptr %6, i64 12 %8 = load i32, ptr %7, align 4 - %9 = sext i32 %8 to i64 + %9 = zext i32 %8 to i64 %10 = icmp slt i32 %8, 0 - %11 = shl nsw i64 %9, 3 + %11 = shl nuw nsw i64 %9, 3 %12 = select i1 %10, i64 -1, i64 %11 %13 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %12) #20 tail call void @_ZN5Ipopt13TripletHelper20FillValuesFromVectorEiRKNS_6VectorEPd(i32 noundef %8, ptr noundef nonnull align 8 dereferenceable(205) %4, ptr noundef nonnull %13) @@ -1750,14 +1742,10 @@ define void @_ZNK5Ipopt14PointPerturber21MakeNewPerturbedPointEv(ptr dead_on_unw %16 = load ptr, ptr %15, align 8 tail call void @_ZN5Ipopt13TripletHelper20FillValuesFromVectorEiRKNS_6VectorEPd(i32 noundef %8, ptr noundef nonnull align 8 dereferenceable(205) %16, ptr noundef nonnull %14) %17 = icmp sgt i32 %8, 0 - br i1 %17, label %.lr.ph.preheader, label %._crit_edge + br i1 %17, label %.lr.ph, label %._crit_edge -.lr.ph.preheader: ; preds = %2 - %wide.trip.count = zext nneg i32 %8 to i64 - br label %.lr.ph - -.lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph - %indvars.iv = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next, %.lr.ph ] +.lr.ph: ; preds = %2, %.lr.ph + %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %2 ] %18 = tail call noundef double @_ZN5Ipopt10IpRandom01Ev() %19 = fadd double %18, -5.000000e-01 %20 = fmul double %19, 2.000000e+00 @@ -1768,7 +1756,7 @@ define void @_ZNK5Ipopt14PointPerturber21MakeNewPerturbedPointEv(ptr dead_on_unw %25 = tail call double @llvm.fmuladd.f64(double %20, double %22, double %24) store double %25, ptr %23, align 8 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count + %exitcond.not = icmp eq i64 %indvars.iv.next, %9 br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !7 ._crit_edge: ; preds = %.lr.ph, %2 diff --git a/bench/ipopt/optimized/IpTripletHelper.ll b/bench/ipopt/optimized/IpTripletHelper.ll index 35cd6ace57a..4c40946158d 100644 --- a/bench/ipopt/optimized/IpTripletHelper.ll +++ b/bench/ipopt/optimized/IpTripletHelper.ll @@ -2787,9 +2787,9 @@ _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit: ; preds = %53, %56 %61 = load ptr, ptr %60, align 8 %62 = getelementptr inbounds i8, ptr %61, i64 12 %63 = load i32, ptr %62, align 4 - %64 = sext i32 %63 to i64 + %64 = zext i32 %63 to i64 %65 = icmp slt i32 %63, 0 - %66 = shl nsw i64 %64, 3 + %66 = shl nuw nsw i64 %64, 3 %67 = select i1 %65, i64 -1, i64 %66 %68 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %67) #18 %69 = load ptr, ptr %39, align 8, !noalias !102 @@ -2938,9 +2938,9 @@ _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit67: ; preds = %133, %136 %141 = load ptr, ptr %140, align 8 %142 = getelementptr inbounds i8, ptr %141, i64 16 %143 = load i32, ptr %142, align 8 - %144 = sext i32 %143 to i64 + %144 = zext i32 %143 to i64 %145 = icmp slt i32 %143, 0 - %146 = shl nsw i64 %144, 3 + %146 = shl nuw nsw i64 %144, 3 %147 = select i1 %145, i64 -1, i64 %146 %148 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %147) #18 %149 = load ptr, ptr %39, align 8, !noalias !119 @@ -3152,9 +3152,9 @@ _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit: ; preds = %53, %56 %61 = load ptr, ptr %60, align 8 %62 = getelementptr inbounds i8, ptr %61, i64 12 %63 = load i32, ptr %62, align 4 - %64 = sext i32 %63 to i64 + %64 = zext i32 %63 to i64 %65 = icmp slt i32 %63, 0 - %66 = shl nsw i64 %64, 3 + %66 = shl nuw nsw i64 %64, 3 %67 = select i1 %65, i64 -1, i64 %66 %68 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %67) #18 %69 = load ptr, ptr %39, align 8, !noalias !142 @@ -3872,7 +3872,7 @@ define void @_ZN5Ipopt13TripletHelper11FillValues_EiRKNS_25ExpandedMultiVectorMa %10 = getelementptr inbounds i8, ptr %9, i64 32 %11 = load ptr, ptr %10, align 8, !noalias !175 %.not.i.i.i.i.i = icmp eq ptr %11, null - br i1 %.not.i.i.i.i.i, label %73, label %12 + br i1 %.not.i.i.i.i.i, label %71, label %12 12: ; preds = %3 %13 = getelementptr inbounds i8, ptr %11, i64 8 @@ -3884,7 +3884,7 @@ define void @_ZN5Ipopt13TripletHelper11FillValues_EiRKNS_25ExpandedMultiVectorMa %18 = getelementptr inbounds i8, ptr %17, i64 16 %19 = load i32, ptr %18, align 8 %.fr121 = freeze i32 %19 - %20 = zext nneg i32 %.fr121 to i64 + %20 = zext i32 %.fr121 to i64 %21 = icmp slt i32 %.fr121, 0 %22 = shl nuw nsw i64 %20, 3 %23 = select i1 %21, i64 -1, i64 %22 @@ -3901,71 +3901,69 @@ define void @_ZN5Ipopt13TripletHelper11FillValues_EiRKNS_25ExpandedMultiVectorMa br i1 %27, label %.lr.ph95.split.us.preheader, label %.lr.ph95.split.split.preheader .lr.ph95.split.us.preheader: ; preds = %.lr.ph95 - %28 = zext nneg i32 %.fr121 to i64 - %29 = shl nuw nsw i64 %28, 3 - %30 = add nsw i32 %.fr121, -1 - %31 = zext nneg i32 %30 to i64 - %32 = shl nuw nsw i64 %31, 3 - %33 = add nuw nsw i64 %32, 8 + %28 = add nsw i32 %.fr121, -1 + %29 = zext nneg i32 %28 to i64 + %30 = shl nuw nsw i64 %29, 3 + %31 = add nuw nsw i64 %30, 8 %wide.trip.count151 = zext nneg i32 %7 to i64 br label %.lr.ph95.split.us .lr.ph95.split.us: ; preds = %.lr.ph95.split.us.preheader, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45.us %indvars.iv148 = phi i64 [ 0, %.lr.ph95.split.us.preheader ], [ %indvars.iv.next149, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45.us ] - %.03794.us = phi ptr [ %2, %.lr.ph95.split.us.preheader ], [ %.2.us160, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45.us ] - %34 = load ptr, ptr %26, align 8, !noalias !178 - %35 = getelementptr inbounds %"class.Ipopt::SmartPtr.6", ptr %34, i64 %indvars.iv148 - %36 = load ptr, ptr %35, align 8, !noalias !178 - %.not.i.i.i.i.us = icmp eq ptr %36, null - br i1 %.not.i.i.i.i.us, label %.loopexit82.us.thread, label %37 - -37: ; preds = %.lr.ph95.split.us - %38 = getelementptr inbounds i8, ptr %36, i64 8 - %39 = load i32, ptr %38, align 8, !noalias !178 - %40 = add nsw i32 %39, 1 - store i32 %40, ptr %38, align 8, !noalias !178 - invoke void @_ZN5Ipopt13TripletHelper20FillValuesFromVectorEiRKNS_6VectorEPd(i32 noundef %.fr121, ptr noundef nonnull align 8 dereferenceable(205) %36, ptr noundef nonnull %24) + %.03794.us = phi ptr [ %2, %.lr.ph95.split.us.preheader ], [ %.2.us161, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45.us ] + %32 = load ptr, ptr %26, align 8, !noalias !178 + %33 = getelementptr inbounds %"class.Ipopt::SmartPtr.6", ptr %32, i64 %indvars.iv148 + %34 = load ptr, ptr %33, align 8, !noalias !178 + %.not.i.i.i.i.us = icmp eq ptr %34, null + br i1 %.not.i.i.i.i.us, label %.loopexit82.us.thread, label %35 + +35: ; preds = %.lr.ph95.split.us + %36 = getelementptr inbounds i8, ptr %34, i64 8 + %37 = load i32, ptr %36, align 8, !noalias !178 + %38 = add nsw i32 %37, 1 + store i32 %38, ptr %36, align 8, !noalias !178 + invoke void @_ZN5Ipopt13TripletHelper20FillValuesFromVectorEiRKNS_6VectorEPd(i32 noundef %.fr121, ptr noundef nonnull align 8 dereferenceable(205) %34, ptr noundef nonnull %24) to label %.preheader83.us unwind label %.split.us -.preheader83.us: ; preds = %37, %.preheader83.us - %indvars.iv142 = phi i64 [ %indvars.iv.next143, %.preheader83.us ], [ 0, %37 ] - %.188.us = phi ptr [ %43, %.preheader83.us ], [ %.03794.us, %37 ] - %41 = getelementptr inbounds double, ptr %24, i64 %indvars.iv142 - %42 = load double, ptr %41, align 8 - %43 = getelementptr inbounds i8, ptr %.188.us, i64 8 - store double %42, ptr %.188.us, align 8 +.preheader83.us: ; preds = %35, %.preheader83.us + %indvars.iv142 = phi i64 [ %indvars.iv.next143, %.preheader83.us ], [ 0, %35 ] + %.188.us = phi ptr [ %41, %.preheader83.us ], [ %.03794.us, %35 ] + %39 = getelementptr inbounds double, ptr %24, i64 %indvars.iv142 + %40 = load double, ptr %39, align 8 + %41 = getelementptr inbounds i8, ptr %.188.us, i64 8 + store double %40, ptr %.188.us, align 8 %indvars.iv.next143 = add nuw nsw i64 %indvars.iv142, 1 - %exitcond146.not = icmp eq i64 %indvars.iv.next143, %28 + %exitcond146.not = icmp eq i64 %indvars.iv.next143, %20 br i1 %exitcond146.not, label %.loopexit82.us, label %.preheader83.us, !llvm.loop !181 .loopexit82.us: ; preds = %.preheader83.us - %44 = getelementptr inbounds i8, ptr %36, i64 8 - %45 = load i32, ptr %44, align 8 - %46 = add nsw i32 %45, -1 - store i32 %46, ptr %44, align 8 - %47 = icmp eq i32 %46, 0 - br i1 %47, label %48, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45.us - -48: ; preds = %.loopexit82.us - %49 = load ptr, ptr %36, align 8 - %50 = getelementptr inbounds i8, ptr %49, i64 8 - %51 = load ptr, ptr %50, align 8 - tail call void %51(ptr noundef nonnull align 8 dereferenceable(205) %36) #16 + %42 = getelementptr inbounds i8, ptr %34, i64 8 + %43 = load i32, ptr %42, align 8 + %44 = add nsw i32 %43, -1 + store i32 %44, ptr %42, align 8 + %45 = icmp eq i32 %44, 0 + br i1 %45, label %46, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45.us + +46: ; preds = %.loopexit82.us + %47 = load ptr, ptr %34, align 8 + %48 = getelementptr inbounds i8, ptr %47, i64 8 + %49 = load ptr, ptr %48, align 8 + tail call void %49(ptr noundef nonnull align 8 dereferenceable(205) %34) #16 br label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45.us -_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45.us: ; preds = %.loopexit82.us.thread, %48, %.loopexit82.us - %.2.us160 = phi ptr [ %scevgep147, %.loopexit82.us.thread ], [ %43, %48 ], [ %43, %.loopexit82.us ] +_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45.us: ; preds = %.loopexit82.us.thread, %46, %.loopexit82.us + %.2.us161 = phi ptr [ %scevgep147, %.loopexit82.us.thread ], [ %41, %46 ], [ %41, %.loopexit82.us ] %indvars.iv.next149 = add nuw nsw i64 %indvars.iv148, 1 %exitcond152.not = icmp eq i64 %indvars.iv.next149, %wide.trip.count151 br i1 %exitcond152.not, label %._crit_edge, label %.lr.ph95.split.us, !llvm.loop !182 .loopexit82.us.thread: ; preds = %.lr.ph95.split.us - tail call void @llvm.memset.p0.i64(ptr align 8 %.03794.us, i8 0, i64 %29, i1 false) - %scevgep147 = getelementptr i8, ptr %.03794.us, i64 %33 + tail call void @llvm.memset.p0.i64(ptr align 8 %.03794.us, i8 0, i64 %22, i1 false) + %scevgep147 = getelementptr i8, ptr %.03794.us, i64 %31 br label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45.us -.split.us: ; preds = %37 - %52 = landingpad { ptr, i32 } +.split.us: ; preds = %35 + %50 = landingpad { ptr, i32 } cleanup br label %.split @@ -3975,55 +3973,55 @@ _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45.us: ; preds = %.loopexit82.us.thre .lr.ph95.split.split: ; preds = %.lr.ph95.split.split.preheader, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45 %indvars.iv = phi i64 [ 0, %.lr.ph95.split.split.preheader ], [ %indvars.iv.next, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45 ] - %53 = load ptr, ptr %26, align 8, !noalias !178 - %54 = getelementptr inbounds %"class.Ipopt::SmartPtr.6", ptr %53, i64 %indvars.iv - %55 = load ptr, ptr %54, align 8, !noalias !178 - %.not.i.i.i.i = icmp eq ptr %55, null - br i1 %.not.i.i.i.i, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45, label %56 - -56: ; preds = %.lr.ph95.split.split - %57 = getelementptr inbounds i8, ptr %55, i64 8 - %58 = load i32, ptr %57, align 8, !noalias !178 - %59 = add nsw i32 %58, 1 - store i32 %59, ptr %57, align 8, !noalias !178 - invoke void @_ZN5Ipopt13TripletHelper20FillValuesFromVectorEiRKNS_6VectorEPd(i32 noundef %.fr121, ptr noundef nonnull align 8 dereferenceable(205) %55, ptr noundef nonnull %24) + %51 = load ptr, ptr %26, align 8, !noalias !178 + %52 = getelementptr inbounds %"class.Ipopt::SmartPtr.6", ptr %51, i64 %indvars.iv + %53 = load ptr, ptr %52, align 8, !noalias !178 + %.not.i.i.i.i = icmp eq ptr %53, null + br i1 %.not.i.i.i.i, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45, label %54 + +54: ; preds = %.lr.ph95.split.split + %55 = getelementptr inbounds i8, ptr %53, i64 8 + %56 = load i32, ptr %55, align 8, !noalias !178 + %57 = add nsw i32 %56, 1 + store i32 %57, ptr %55, align 8, !noalias !178 + invoke void @_ZN5Ipopt13TripletHelper20FillValuesFromVectorEiRKNS_6VectorEPd(i32 noundef %.fr121, ptr noundef nonnull align 8 dereferenceable(205) %53, ptr noundef nonnull %24) to label %.preheader81 unwind label %.split.split _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.thread: ; preds = %12 - %60 = landingpad { ptr, i32 } + %58 = landingpad { ptr, i32 } cleanup - br label %120 + br label %118 -.split.split: ; preds = %56 - %61 = landingpad { ptr, i32 } +.split.split: ; preds = %54 + %59 = landingpad { ptr, i32 } cleanup br label %.split .split: ; preds = %.split.split, %.split.us - %.us-phi = phi ptr [ %36, %.split.us ], [ %55, %.split.split ] - %.us-phi96 = phi { ptr, i32 } [ %52, %.split.us ], [ %61, %.split.split ] - %62 = getelementptr inbounds i8, ptr %.us-phi, i64 8 - %63 = load i32, ptr %62, align 8 - %64 = add nsw i32 %63, -1 - store i32 %64, ptr %62, align 8 - %65 = icmp eq i32 %64, 0 - br i1 %65, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.sink.split, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit - -.preheader81: ; preds = %56 - %66 = load i32, ptr %57, align 8 - %67 = add nsw i32 %66, -1 - store i32 %67, ptr %57, align 8 - %68 = icmp eq i32 %67, 0 - br i1 %68, label %69, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45 - -69: ; preds = %.preheader81 - %70 = load ptr, ptr %55, align 8 - %71 = getelementptr inbounds i8, ptr %70, i64 8 - %72 = load ptr, ptr %71, align 8 - tail call void %72(ptr noundef nonnull align 8 dereferenceable(205) %55) #16 + %.us-phi = phi ptr [ %34, %.split.us ], [ %53, %.split.split ] + %.us-phi96 = phi { ptr, i32 } [ %50, %.split.us ], [ %59, %.split.split ] + %60 = getelementptr inbounds i8, ptr %.us-phi, i64 8 + %61 = load i32, ptr %60, align 8 + %62 = add nsw i32 %61, -1 + store i32 %62, ptr %60, align 8 + %63 = icmp eq i32 %62, 0 + br i1 %63, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.sink.split, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit + +.preheader81: ; preds = %54 + %64 = load i32, ptr %55, align 8 + %65 = add nsw i32 %64, -1 + store i32 %65, ptr %55, align 8 + %66 = icmp eq i32 %65, 0 + br i1 %66, label %67, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45 + +67: ; preds = %.preheader81 + %68 = load ptr, ptr %53, align 8 + %69 = getelementptr inbounds i8, ptr %68, i64 8 + %70 = load ptr, ptr %69, align 8 + tail call void %70(ptr noundef nonnull align 8 dereferenceable(205) %53) #16 br label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45 -_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45: ; preds = %.lr.ph95.split.split, %.preheader81, %69 +_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45: ; preds = %.lr.ph95.split.split, %.preheader81, %67 %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 %._crit_edge, label %.lr.ph95.split.split, !llvm.loop !182 @@ -4032,137 +4030,137 @@ _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45: ; preds = %.lr.ph95.split.spli tail call void @_ZdaPv(ptr noundef nonnull %24) #19 br label %.loopexit -73: ; preds = %3 - %74 = getelementptr inbounds i8, ptr %5, i64 16 - %75 = load i32, ptr %74, align 8 - %76 = icmp sgt i32 %7, 0 - br i1 %76, label %.lr.ph120, label %_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit - -.lr.ph120: ; preds = %73 - %77 = getelementptr inbounds i8, ptr %1, i64 80 - %78 = sext i32 %75 to i64 - %79 = icmp sgt i32 %75, 0 - %80 = zext i32 %75 to i64 - %81 = shl nuw nsw i64 %80, 3 - %82 = add i32 %75, -1 - %83 = zext i32 %82 to i64 - %84 = shl nuw nsw i64 %83, 3 - %85 = add nuw nsw i64 %84, 8 +71: ; preds = %3 + %72 = getelementptr inbounds i8, ptr %5, i64 16 + %73 = load i32, ptr %72, align 8 + %74 = icmp sgt i32 %7, 0 + br i1 %74, label %.lr.ph120, label %_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit + +.lr.ph120: ; preds = %71 + %75 = getelementptr inbounds i8, ptr %1, i64 80 + %76 = sext i32 %73 to i64 + %77 = icmp sgt i32 %73, 0 + %78 = zext i32 %73 to i64 + %79 = shl nuw nsw i64 %78, 3 + %80 = add i32 %73, -1 + %81 = zext i32 %80 to i64 + %82 = shl nuw nsw i64 %81, 3 + %83 = add nuw nsw i64 %82, 8 %wide.trip.count157 = zext nneg i32 %7 to i64 - br label %86 + br label %84 -86: ; preds = %.lr.ph120, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit51 +84: ; preds = %.lr.ph120, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit51 %indvars.iv154 = phi i64 [ 0, %.lr.ph120 ], [ %indvars.iv.next155, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit51 ] %.4117 = phi ptr [ %2, %.lr.ph120 ], [ %.577, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit51 ] - %87 = load ptr, ptr %77, align 8, !noalias !183 - %88 = getelementptr inbounds %"class.Ipopt::SmartPtr.6", ptr %87, i64 %indvars.iv154 - %89 = load ptr, ptr %88, align 8, !noalias !183 - %.not.i.i.i.i46 = icmp eq ptr %89, null - br i1 %.not.i.i.i.i46, label %.preheader, label %90 + %85 = load ptr, ptr %75, align 8, !noalias !183 + %86 = getelementptr inbounds %"class.Ipopt::SmartPtr.6", ptr %85, i64 %indvars.iv154 + %87 = load ptr, ptr %86, align 8, !noalias !183 + %.not.i.i.i.i46 = icmp eq ptr %87, null + br i1 %.not.i.i.i.i46, label %.preheader, label %88 -.preheader: ; preds = %86 - br i1 %79, label %.lr.ph.preheader, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit51 +.preheader: ; preds = %84 + br i1 %77, label %.lr.ph.preheader, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit51 .lr.ph.preheader: ; preds = %.preheader - tail call void @llvm.memset.p0.i64(ptr align 8 %.4117, i8 0, i64 %81, i1 false) - %scevgep153 = getelementptr i8, ptr %.4117, i64 %85 + tail call void @llvm.memset.p0.i64(ptr align 8 %.4117, i8 0, i64 %79, i1 false) + %scevgep153 = getelementptr i8, ptr %.4117, i64 %83 br label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit51 -90: ; preds = %86 - %91 = getelementptr inbounds i8, ptr %89, i64 8 - %92 = load i32, ptr %91, align 8, !noalias !183 - %93 = add nsw i32 %92, 1 - store i32 %93, ptr %91, align 8, !noalias !183 - invoke void @_ZN5Ipopt13TripletHelper20FillValuesFromVectorEiRKNS_6VectorEPd(i32 noundef %75, ptr noundef nonnull align 8 dereferenceable(205) %89, ptr noundef %.4117) - to label %.thread74 unwind label %98 - -.thread74: ; preds = %90 - %94 = getelementptr inbounds double, ptr %.4117, i64 %78 - %95 = load i32, ptr %91, align 8 - %96 = add nsw i32 %95, -1 - store i32 %96, ptr %91, align 8 - %97 = icmp eq i32 %96, 0 - br i1 %97, label %103, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit51 - -98: ; preds = %90 - %99 = landingpad { ptr, i32 } +88: ; preds = %84 + %89 = getelementptr inbounds i8, ptr %87, i64 8 + %90 = load i32, ptr %89, align 8, !noalias !183 + %91 = add nsw i32 %90, 1 + store i32 %91, ptr %89, align 8, !noalias !183 + invoke void @_ZN5Ipopt13TripletHelper20FillValuesFromVectorEiRKNS_6VectorEPd(i32 noundef %73, ptr noundef nonnull align 8 dereferenceable(205) %87, ptr noundef %.4117) + to label %.thread74 unwind label %96 + +.thread74: ; preds = %88 + %92 = getelementptr inbounds double, ptr %.4117, i64 %76 + %93 = load i32, ptr %89, align 8 + %94 = add nsw i32 %93, -1 + store i32 %94, ptr %89, align 8 + %95 = icmp eq i32 %94, 0 + br i1 %95, label %101, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit51 + +96: ; preds = %88 + %97 = landingpad { ptr, i32 } cleanup - %100 = load i32, ptr %91, align 8 - %101 = add nsw i32 %100, -1 - store i32 %101, ptr %91, align 8 - %102 = icmp eq i32 %101, 0 - br i1 %102, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.sink.split, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit - -103: ; preds = %.thread74 - %104 = load ptr, ptr %89, align 8 - %105 = getelementptr inbounds i8, ptr %104, i64 8 - %106 = load ptr, ptr %105, align 8 - tail call void %106(ptr noundef nonnull align 8 dereferenceable(205) %89) #16 + %98 = load i32, ptr %89, align 8 + %99 = add nsw i32 %98, -1 + store i32 %99, ptr %89, align 8 + %100 = icmp eq i32 %99, 0 + br i1 %100, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.sink.split, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit + +101: ; preds = %.thread74 + %102 = load ptr, ptr %87, align 8 + %103 = getelementptr inbounds i8, ptr %102, i64 8 + %104 = load ptr, ptr %103, align 8 + tail call void %104(ptr noundef nonnull align 8 dereferenceable(205) %87) #16 br label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit51 -_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit51: ; preds = %.lr.ph.preheader, %.preheader, %.thread74, %103 - %.577 = phi ptr [ %94, %.thread74 ], [ %94, %103 ], [ %.4117, %.preheader ], [ %scevgep153, %.lr.ph.preheader ] +_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit51: ; preds = %.lr.ph.preheader, %.preheader, %.thread74, %101 + %.577 = phi ptr [ %92, %.thread74 ], [ %92, %101 ], [ %.4117, %.preheader ], [ %scevgep153, %.lr.ph.preheader ] %indvars.iv.next155 = add nuw nsw i64 %indvars.iv154, 1 %exitcond158.not = icmp eq i64 %indvars.iv.next155, %wide.trip.count157 - br i1 %exitcond158.not, label %.loopexit, label %86, !llvm.loop !186 + br i1 %exitcond158.not, label %.loopexit, label %84, !llvm.loop !186 .loopexit: ; preds = %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit51, %._crit_edge - br i1 %.not.i.i.i.i.i, label %_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit, label %107 + br i1 %.not.i.i.i.i.i, label %_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit, label %105 -107: ; preds = %.loopexit - %108 = getelementptr inbounds i8, ptr %11, i64 8 - %109 = load i32, ptr %108, align 8 - %110 = add nsw i32 %109, -1 - store i32 %110, ptr %108, align 8 - %111 = icmp eq i32 %110, 0 - br i1 %111, label %112, label %_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit +105: ; preds = %.loopexit + %106 = getelementptr inbounds i8, ptr %11, i64 8 + %107 = load i32, ptr %106, align 8 + %108 = add nsw i32 %107, -1 + store i32 %108, ptr %106, align 8 + %109 = icmp eq i32 %108, 0 + br i1 %109, label %110, label %_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit -112: ; preds = %107 - %113 = load ptr, ptr %11, align 8 - %114 = getelementptr inbounds i8, ptr %113, i64 8 - %115 = load ptr, ptr %114, align 8 - tail call void %115(ptr noundef nonnull align 8 dereferenceable(80) %11) #16 +110: ; preds = %105 + %111 = load ptr, ptr %11, align 8 + %112 = getelementptr inbounds i8, ptr %111, i64 8 + %113 = load ptr, ptr %112, align 8 + tail call void %113(ptr noundef nonnull align 8 dereferenceable(80) %11) #16 br label %_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit -_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit: ; preds = %73, %.loopexit, %107, %112 +_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit: ; preds = %71, %.loopexit, %105, %110 ret void -_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.sink.split: ; preds = %98, %.split - %.lcssa162.sink170 = phi ptr [ %.us-phi, %.split ], [ %89, %98 ] - %.pn.ph = phi { ptr, i32 } [ %.us-phi96, %.split ], [ %99, %98 ] - %116 = load ptr, ptr %.lcssa162.sink170, align 8 - %117 = getelementptr inbounds i8, ptr %116, i64 8 - %118 = load ptr, ptr %117, align 8 - tail call void %118(ptr noundef nonnull align 8 dereferenceable(205) %.lcssa162.sink170) #16 +_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.sink.split: ; preds = %96, %.split + %.lcssa163.sink171 = phi ptr [ %.us-phi, %.split ], [ %87, %96 ] + %.pn.ph = phi { ptr, i32 } [ %.us-phi96, %.split ], [ %97, %96 ] + %114 = load ptr, ptr %.lcssa163.sink171, align 8 + %115 = getelementptr inbounds i8, ptr %114, i64 8 + %116 = load ptr, ptr %115, align 8 + tail call void %116(ptr noundef nonnull align 8 dereferenceable(205) %.lcssa163.sink171) #16 br label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit -_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit: ; preds = %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.sink.split, %98, %.split - %.pn = phi { ptr, i32 } [ %.us-phi96, %.split ], [ %99, %98 ], [ %.pn.ph, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.sink.split ] +_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit: ; preds = %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.sink.split, %96, %.split + %.pn = phi { ptr, i32 } [ %.us-phi96, %.split ], [ %97, %96 ], [ %.pn.ph, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.sink.split ] br i1 %.not.i.i.i.i.i, label %_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit54, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit._crit_edge _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit._crit_edge: ; preds = %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit %.phi.trans.insert = getelementptr inbounds i8, ptr %11, i64 8 %.pre = load i32, ptr %.phi.trans.insert, align 8 - %119 = add nsw i32 %.pre, -1 - br label %120 - -120: ; preds = %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit._crit_edge, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.thread - %121 = phi i32 [ %14, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.thread ], [ %119, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit._crit_edge ] - %.pn79 = phi { ptr, i32 } [ %60, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.thread ], [ %.pn, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit._crit_edge ] - %122 = getelementptr inbounds i8, ptr %11, i64 8 - store i32 %121, ptr %122, align 8 - %123 = icmp eq i32 %121, 0 - br i1 %123, label %124, label %_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit54 - -124: ; preds = %120 - %125 = load ptr, ptr %11, align 8 - %126 = getelementptr inbounds i8, ptr %125, i64 8 - %127 = load ptr, ptr %126, align 8 - tail call void %127(ptr noundef nonnull align 8 dereferenceable(80) %11) #16 + %117 = add nsw i32 %.pre, -1 + br label %118 + +118: ; preds = %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit._crit_edge, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.thread + %119 = phi i32 [ %14, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.thread ], [ %117, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit._crit_edge ] + %.pn79 = phi { ptr, i32 } [ %58, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.thread ], [ %.pn, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit._crit_edge ] + %120 = getelementptr inbounds i8, ptr %11, i64 8 + store i32 %119, ptr %120, align 8 + %121 = icmp eq i32 %119, 0 + br i1 %121, label %122, label %_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit54 + +122: ; preds = %118 + %123 = load ptr, ptr %11, align 8 + %124 = getelementptr inbounds i8, ptr %123, i64 8 + %125 = load ptr, ptr %124, align 8 + tail call void %125(ptr noundef nonnull align 8 dereferenceable(80) %11) #16 br label %_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit54 -_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit54: ; preds = %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit, %120, %124 - %.pn80 = phi { ptr, i32 } [ %.pn, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit ], [ %.pn79, %120 ], [ %.pn79, %124 ] +_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit54: ; preds = %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit, %118, %122 + %.pn80 = phi { ptr, i32 } [ %.pn, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit ], [ %.pn79, %118 ], [ %.pn79, %122 ] resume { ptr, i32 } %.pn80 } diff --git a/bench/ipopt/optimized/SensIndexSchurData.ll b/bench/ipopt/optimized/SensIndexSchurData.ll index b7cd2d323ed..578c084bd7e 100644 --- a/bench/ipopt/optimized/SensIndexSchurData.ll +++ b/bench/ipopt/optimized/SensIndexSchurData.ll @@ -1158,9 +1158,9 @@ define void @_ZNK5Ipopt14IndexSchurData6GetRowEiRNS_14IteratesVectorE(ptr nocapt %5 = load ptr, ptr %4, align 8 %6 = getelementptr inbounds i8, ptr %5, i64 16 %7 = load i32, ptr %6, align 8 - %8 = sext i32 %7 to i64 + %8 = zext i32 %7 to i64 %9 = icmp slt i32 %7, 0 - %10 = shl nsw i64 %8, 2 + %10 = shl nuw nsw i64 %8, 2 %11 = select i1 %9, i64 -1, i64 %10 %12 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %11) #19 %13 = getelementptr inbounds i8, ptr %2, i64 208 @@ -1203,7 +1203,6 @@ _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.i: ; preds = %27, %_ZNK5Ipopt14Co .lr.ph.i: ; preds = %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.i %32 = getelementptr inbounds i8, ptr %2, i64 232 - %wide.trip.count.i = zext nneg i32 %7 to i64 br label %33 33: ; preds = %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit27.i, %.lr.ph.i @@ -1248,7 +1247,7 @@ _ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i20.i: ; preds = %_ZNK5Ipopt1 _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit27.i: ; preds = %52, %_ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i20.i %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 - %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %wide.trip.count.i + %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %8 br i1 %exitcond.not.i, label %_ZNK5Ipopt14IndexSchurData16GetVectorLengthsERKNS_14IteratesVectorE.exit, label %33, !llvm.loop !16 _ZNK5Ipopt14IndexSchurData16GetVectorLengthsERKNS_14IteratesVectorE.exit: ; preds = %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit27.i, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.i @@ -1433,9 +1432,9 @@ define noundef nonnull ptr @_ZNK5Ipopt14IndexSchurData16GetVectorLengthsERKNS_14 %4 = load ptr, ptr %3, align 8 %5 = getelementptr inbounds i8, ptr %4, i64 16 %6 = load i32, ptr %5, align 8 - %7 = sext i32 %6 to i64 + %7 = zext i32 %6 to i64 %8 = icmp slt i32 %6, 0 - %9 = shl nsw i64 %7, 2 + %9 = shl nuw nsw i64 %7, 2 %10 = select i1 %8, i64 -1, i64 %9 %11 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %10) #19 %12 = getelementptr inbounds i8, ptr %1, i64 208 @@ -1478,7 +1477,6 @@ _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit: ; preds = %_ZNK5Ipopt14Compoun .lr.ph: ; preds = %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit %31 = getelementptr inbounds i8, ptr %1, i64 232 - %wide.trip.count = zext nneg i32 %6 to i64 br label %32 32: ; preds = %.lr.ph, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit27 @@ -1523,7 +1521,7 @@ _ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i20: ; preds = %_ZNK5Ipopt14C _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit27: ; preds = %_ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i20, %51 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count + %exitcond.not = icmp eq i64 %indvars.iv.next, %7 br i1 %exitcond.not, label %._crit_edge, label %32, !llvm.loop !16 ._crit_edge: ; preds = %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit27, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit @@ -1749,9 +1747,9 @@ _ZN5Ipopt11DenseVector6ValuesEv.exit: ; preds = %15, %_ZNK5Ipopt16De %32 = load ptr, ptr %31, align 8 %33 = getelementptr inbounds i8, ptr %32, i64 16 %34 = load i32, ptr %33, align 8 - %35 = sext i32 %34 to i64 + %35 = zext i32 %34 to i64 %36 = icmp slt i32 %34, 0 - %37 = shl nsw i64 %35, 2 + %37 = shl nuw nsw i64 %35, 2 %38 = select i1 %36, i64 -1, i64 %37 %39 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %38) #19 %40 = getelementptr inbounds i8, ptr %1, i64 208 @@ -1794,7 +1792,6 @@ _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.i: ; preds = %54, %_ZNK5Ipopt14Co .lr.ph.i: ; preds = %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.i %59 = getelementptr inbounds i8, ptr %1, i64 232 - %wide.trip.count.i = zext nneg i32 %34 to i64 br label %60 60: ; preds = %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit27.i, %.lr.ph.i @@ -1839,7 +1836,7 @@ _ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i20.i: ; preds = %_ZNK5Ipopt1 _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit27.i: ; preds = %79, %_ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i20.i %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 - %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %wide.trip.count.i + %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %35 br i1 %exitcond.not.i, label %_ZNK5Ipopt14IndexSchurData16GetVectorLengthsERKNS_14IteratesVectorE.exit, label %60, !llvm.loop !16 _ZNK5Ipopt14IndexSchurData16GetVectorLengthsERKNS_14IteratesVectorE.exit: ; preds = %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit27.i, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.i diff --git a/bench/just-rs/optimized/3022oi333lxf39jd.ll b/bench/just-rs/optimized/3022oi333lxf39jd.ll index 297875a99e5..f1f6aef8a3e 100644 --- a/bench/just-rs/optimized/3022oi333lxf39jd.ll +++ b/bench/just-rs/optimized/3022oi333lxf39jd.ll @@ -5514,32 +5514,37 @@ define internal fastcc void @"_ZN4core3ptr160drop_in_place$LT$alloc..vec..in_pla define internal fastcc void @"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E"(ptr noalias noundef nonnull align 8 dereferenceable(48) %0) unnamed_addr #1 personality ptr @rust_eh_personality { %2 = alloca { [1 x i64], i64, [1 x i64] }, align 8 %3 = load i64, ptr %0, align 8, !range !1170, !noundef !16 - %or.cond = icmp slt i64 %3, 0 - br i1 %or.cond, label %"_ZN4core3ptr84drop_in_place$LT$core..option..Option$LT$just..string_literal..StringLiteral$GT$$GT$17h4c74f7e79d028ac1E.exit", label %4 + %4 = icmp ugt i64 %3, -9223372036854775808 + %5 = and i64 %3, 15 + %cond1 = icmp ne i64 %5, 0 + %cond.not2 = and i1 %4, %cond1 + %6 = icmp eq i64 %3, -9223372036854775808 + %or.cond = or i1 %6, %cond.not2 + br i1 %or.cond, label %"_ZN4core3ptr84drop_in_place$LT$core..option..Option$LT$just..string_literal..StringLiteral$GT$$GT$17h4c74f7e79d028ac1E.exit", label %7 "_ZN4core3ptr84drop_in_place$LT$core..option..Option$LT$just..string_literal..StringLiteral$GT$$GT$17h4c74f7e79d028ac1E.exit": ; preds = %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i", %1 ret void -4: ; preds = %1 +7: ; preds = %1 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !1171 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hb2fe6f6f3762db27E.llvm.1798434116971987782"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %0) - %5 = getelementptr inbounds i8, ptr %2, i64 8 - %6 = load i64, ptr %5, align 8, !range !18, !noalias !1171, !noundef !16 - %.not.i.i.i.i.i.i = icmp eq i64 %6, 0 - br i1 %.not.i.i.i.i.i.i, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i", label %7 + %8 = getelementptr inbounds i8, ptr %2, i64 8 + %9 = load i64, ptr %8, align 8, !range !18, !noalias !1171, !noundef !16 + %.not.i.i.i.i.i.i = icmp eq i64 %9, 0 + br i1 %.not.i.i.i.i.i.i, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i", label %10 + +10: ; preds = %7 + %11 = getelementptr inbounds i8, ptr %2, i64 16 + %12 = load i64, ptr %11, align 8, !noalias !1171, !noundef !16 + %13 = icmp eq i64 %12, 0 + br i1 %13, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i", label %14 -7: ; preds = %4 - %8 = getelementptr inbounds i8, ptr %2, i64 16 - %9 = load i64, ptr %8, align 8, !noalias !1171, !noundef !16 - %10 = icmp eq i64 %9, 0 - br i1 %10, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i", label %11 - -11: ; preds = %7 - %12 = load ptr, ptr %2, align 8, !noalias !1171, !nonnull !16, !noundef !16 - tail call void @__rust_dealloc(ptr noundef nonnull %12, i64 noundef %9, i64 noundef %6) #22 +14: ; preds = %10 + %15 = load ptr, ptr %2, align 8, !noalias !1171, !nonnull !16, !noundef !16 + tail call void @__rust_dealloc(ptr noundef nonnull %15, i64 noundef %12, i64 noundef %9) #22 br label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i" -"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i": ; preds = %11, %7, %4 +"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i": ; preds = %14, %10, %7 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2), !noalias !1171 br label %"_ZN4core3ptr84drop_in_place$LT$core..option..Option$LT$just..string_literal..StringLiteral$GT$$GT$17h4c74f7e79d028ac1E.exit" } diff --git a/bench/just-rs/optimized/3fhxcueg488gjpka.ll b/bench/just-rs/optimized/3fhxcueg488gjpka.ll index c599f6a9f6d..a1addd5fccc 100644 --- a/bench/just-rs/optimized/3fhxcueg488gjpka.ll +++ b/bench/just-rs/optimized/3fhxcueg488gjpka.ll @@ -38,19 +38,19 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 %3 = load i64, ptr %0, align 8, !range !14, !alias.scope !15, !noalias !16, !noundef !17 %4 = add i64 %3, 9223372036854775807 %5 = icmp ult i64 %4, 8 - %6 = xor i64 %3, -9223372036854775808 + %6 = and i64 %3, 15 %7 = select i1 %5, i64 %6, i64 0 %8 = load i64, ptr %1, align 8, !range !14, !alias.scope !16, !noalias !15, !noundef !17 %9 = add i64 %8, 9223372036854775807 %10 = icmp ult i64 %9, 8 - %11 = xor i64 %8, -9223372036854775808 + %11 = and i64 %8, 15 %12 = select i1 %10, i64 %11, i64 0 %13 = or i64 %12, %7 %or.cond.i.i = icmp eq i64 %13, 0 br i1 %or.cond.i.i, label %15, label %14 14: ; preds = %2 - %.04.i.i = tail call i8 @llvm.scmp.i8.i64(i64 %7, i64 %12) + %.04.i.i = tail call i8 @llvm.ucmp.i8.i64(i64 %7, i64 %12) br label %_ZN4core3cmp10PartialOrd2lt17h14bc09c7fe3972cbE.exit 15: ; preds = %2 @@ -2227,19 +2227,19 @@ _ZN4core5slice4sort20provide_sorted_batch17hc7a5229d5ab0b3c2E.exit: ; preds = %. %188 = load i64, ptr %186, align 8, !range !14, !alias.scope !447, !noalias !448, !noundef !17 %189 = add i64 %188, 9223372036854775807 %190 = icmp ult i64 %189, 8 - %191 = xor i64 %188, -9223372036854775808 + %191 = and i64 %188, 15 %192 = select i1 %190, i64 %191, i64 0 %193 = load i64, ptr %187, align 8, !range !14, !alias.scope !448, !noalias !447, !noundef !17 %194 = add i64 %193, 9223372036854775807 %195 = icmp ult i64 %194, 8 - %196 = xor i64 %193, -9223372036854775808 + %196 = and i64 %193, 15 %197 = select i1 %195, i64 %196, i64 0 %198 = or i64 %197, %192 %or.cond.i.i.i61 = icmp eq i64 %198, 0 br i1 %or.cond.i.i.i61, label %200, label %199 199: ; preds = %.lr.ph24.i - %.04.i.i.i62 = tail call i8 @llvm.scmp.i8.i64(i64 %192, i64 %197) + %.04.i.i.i62 = tail call i8 @llvm.ucmp.i8.i64(i64 %192, i64 %197) br label %_ZN4core3ops8function5FnMut8call_mut17h8d77d178888f143fE.exit83 200: ; preds = %.lr.ph24.i @@ -2343,19 +2343,19 @@ _ZN4core3ops8function5FnMut8call_mut17h8d77d178888f143fE.exit83: ; preds = %199, %246 = load i64, ptr %.02818.i, align 8, !range !14, !alias.scope !488, !noalias !489, !noundef !17 %247 = add i64 %246, 9223372036854775807 %248 = icmp ult i64 %247, 8 - %249 = xor i64 %246, -9223372036854775808 + %249 = and i64 %246, 15 %250 = select i1 %248, i64 %249, i64 0 %251 = load i64, ptr %.sroa.0.217.i, align 8, !range !14, !alias.scope !489, !noalias !488, !noundef !17 %252 = add i64 %251, 9223372036854775807 %253 = icmp ult i64 %252, 8 - %254 = xor i64 %251, -9223372036854775808 + %254 = and i64 %251, 15 %255 = select i1 %253, i64 %254, i64 0 %256 = or i64 %255, %250 %or.cond.i.i.i = icmp eq i64 %256, 0 br i1 %or.cond.i.i.i, label %258, label %257 257: ; preds = %.lr.ph.i56 - %.04.i.i.i = tail call i8 @llvm.scmp.i8.i64(i64 %250, i64 %255) + %.04.i.i.i = tail call i8 @llvm.ucmp.i8.i64(i64 %250, i64 %255) br label %_ZN4core3ops8function5FnMut8call_mut17h8d77d178888f143fE.exit 258: ; preds = %.lr.ph.i56 @@ -6940,7 +6940,7 @@ define internal fastcc void @_ZN4core5slice4sort25insertion_sort_shift_left17h05 .lr.ph.i: ; preds = %11 %13 = add i64 %.sroa.016.0.copyload.fr.i, 9223372036854775807 %14 = icmp ult i64 %13, 8 - %15 = xor i64 %.sroa.016.0.copyload.fr.i, -9223372036854775808 + %15 = and i64 %.sroa.016.0.copyload.fr.i, 15 %16 = select i1 %14, i64 %15, i64 0 %.not44.i = icmp eq i64 %.sroa.016.0.copyload.fr.i, -9223372036854775808 %17 = icmp ne ptr %.sroa.617.0.copyload.i, null @@ -6957,11 +6957,13 @@ define internal fastcc void @_ZN4core5slice4sort25insertion_sort_shift_left17h05 tail call void @llvm.experimental.noalias.scope.decl(metadata !1003) %21 = load i64, ptr %20, align 8, !range !14, !alias.scope !1006, !noalias !1007, !noundef !17 %22 = icmp ult i64 %21, -9223372036854775807 - br i1 %22, label %26, label %23 + %23 = and i64 %21, 15 + %or.cond.i.i.i.us45.i = icmp eq i64 %23, 0 + %or.cond.i.i.i.us.i = or i1 %22, %or.cond.i.i.i.us45.i + br i1 %or.cond.i.i.i.us.i, label %26, label %24 -23: ; preds = %.lr.ph.split.us.split.i - %24 = and i64 %21, 9223372036854775807 - %25 = icmp slt i64 %16, %24 +24: ; preds = %.lr.ph.split.us.split.i + %25 = icmp ult i64 %16, %23 br i1 %25, label %.thread26.us.i, label %.thread.i 26: ; preds = %.lr.ph.split.us.split.i @@ -6969,13 +6971,13 @@ define internal fastcc void @_ZN4core5slice4sort25insertion_sort_shift_left17h05 %.not46.i = icmp eq i64 %21, -9223372036854775808 br i1 %.not46.i, label %.thread.i, label %.thread26.us.i -.thread26.us.i: ; preds = %26, %23 +.thread26.us.i: ; preds = %26, %24 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %.sroa.5.031.us.i, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 48, i1 false), !alias.scope !994 %.not.us.i = icmp eq i64 %19, 0 br i1 %.not.us.i, label %.thread.i, label %.lr.ph.split.us.split.i -.thread.i: ; preds = %.thread26.i, %62, %36, %.thread26.us.i, %26, %23, %11 - %.sroa.5.0.lcssa.i = phi ptr [ %9, %11 ], [ %.sroa.5.031.us.i, %23 ], [ %0, %.thread26.us.i ], [ %.sroa.5.031.us.i, %26 ], [ %.sroa.5.031.i, %36 ], [ %.sroa.5.031.i, %62 ], [ %0, %.thread26.i ] +.thread.i: ; preds = %.thread26.i, %62, %36, %.thread26.us.i, %26, %24, %11 + %.sroa.5.0.lcssa.i = phi ptr [ %9, %11 ], [ %.sroa.5.031.us.i, %24 ], [ %0, %.thread26.us.i ], [ %.sroa.5.031.us.i, %26 ], [ %.sroa.5.031.i, %36 ], [ %.sroa.5.031.i, %62 ], [ %0, %.thread26.i ] store i64 %.sroa.016.0.copyload.fr.i, ptr %.sroa.5.0.lcssa.i, align 8, !alias.scope !994 %.sroa.6.0..sroa.5.0.sroa_idx.i = getelementptr inbounds i8, ptr %.sroa.5.0.lcssa.i, i64 8 store ptr %.sroa.4.0.copyload.i, ptr %.sroa.6.0..sroa.5.0.sroa_idx.i, align 8, !alias.scope !994 @@ -7005,14 +7007,14 @@ define internal fastcc void @_ZN4core5slice4sort25insertion_sort_shift_left17h05 %29 = load i64, ptr %28, align 8, !range !14, !alias.scope !1006, !noalias !1007, !noundef !17 %30 = add i64 %29, 9223372036854775807 %31 = icmp ult i64 %30, 8 - %32 = xor i64 %29, -9223372036854775808 + %32 = and i64 %29, 15 %33 = select i1 %31, i64 %32, i64 0 %34 = or i64 %33, %16 %or.cond.i.i.i.i = icmp eq i64 %34, 0 br i1 %or.cond.i.i.i.i, label %36, label %35 35: ; preds = %.lr.ph.split.i - %.04.i.i.i.i = tail call i8 @llvm.scmp.i8.i64(i64 %16, i64 %33) + %.04.i.i.i.i = tail call i8 @llvm.ucmp.i8.i64(i64 %16, i64 %33) br label %62 36: ; preds = %.lr.ph.split.i @@ -10750,6 +10752,9 @@ declare void @llvm.experimental.noalias.scope.decl(metadata) #22 ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #23 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i8 @llvm.ucmp.i8.i64(i64, i64) #24 + ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.umin.i64(i64, i64) #24 diff --git a/bench/just-rs/optimized/53slus9exfz9w045.ll b/bench/just-rs/optimized/53slus9exfz9w045.ll index 36d85579431..0e769f44e4f 100644 --- a/bench/just-rs/optimized/53slus9exfz9w045.ll +++ b/bench/just-rs/optimized/53slus9exfz9w045.ll @@ -2985,193 +2985,203 @@ define internal fastcc void @"_ZN4core3ptr63drop_in_place$LT$just..compile_error %12 = select i1 %11, i64 %10, i64 11 switch i64 %12, label %"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.exit" [ i64 0, label %13 - i64 28, label %76 - i64 24, label %64 - i64 3, label %25 - i64 4, label %35 - i64 16, label %54 - i64 11, label %45 + i64 28, label %82 + i64 24, label %67 + i64 3, label %28 + i64 4, label %38 + i64 16, label %57 + i64 11, label %48 ] -"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.exit": ; preds = %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i6", %64, %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i", %13, %"_ZN4core3ptr71drop_in_place$LT$alloc..vec..Vec$LT$just..token_kind..TokenKind$GT$$GT$17h511988218d149982E.exit", %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2f4461582ec6620eE.exit", %"_ZN4core3ptr66drop_in_place$LT$alloc..vec..Vec$LT$just..keyword..Keyword$GT$$GT$17hcb7e2ac355ee3b26E.exit", %"_ZN4core3ptr51drop_in_place$LT$alloc..vec..Vec$LT$$RF$str$GT$$GT$17he81090649fd5818bE.exit2", %"_ZN4core3ptr51drop_in_place$LT$alloc..vec..Vec$LT$$RF$str$GT$$GT$17he81090649fd5818bE.exit", %1 +"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.exit": ; preds = %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i8", %67, %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i", %13, %"_ZN4core3ptr71drop_in_place$LT$alloc..vec..Vec$LT$just..token_kind..TokenKind$GT$$GT$17h511988218d149982E.exit", %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2f4461582ec6620eE.exit", %"_ZN4core3ptr66drop_in_place$LT$alloc..vec..Vec$LT$just..keyword..Keyword$GT$$GT$17hcb7e2ac355ee3b26E.exit", %"_ZN4core3ptr51drop_in_place$LT$alloc..vec..Vec$LT$$RF$str$GT$$GT$17he81090649fd5818bE.exit2", %"_ZN4core3ptr51drop_in_place$LT$alloc..vec..Vec$LT$$RF$str$GT$$GT$17he81090649fd5818bE.exit", %1 ret void 13: ; preds = %1 %14 = getelementptr inbounds i8, ptr %0, i64 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !847) %15 = load i64, ptr %14, align 8, !range !850, !alias.scope !847, !noundef !4 - %or.cond.i = icmp slt i64 %15, 0 - br i1 %or.cond.i, label %"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.exit", label %16 - -16: ; preds = %13 + %16 = icmp ugt i64 %15, -9223372036854775808 + %17 = and i64 %15, 15 + %cond1.i = icmp ne i64 %17, 0 + %cond.not2.i = and i1 %16, %cond1.i + %18 = icmp eq i64 %15, -9223372036854775808 + %or.cond.i = or i1 %18, %cond.not2.i + br i1 %or.cond.i, label %"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.exit", label %19 + +19: ; preds = %13 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8), !noalias !851 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hb2fe6f6f3762db27E.llvm.1798434116971987782"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %8, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %14) - %17 = getelementptr inbounds i8, ptr %8, i64 8 - %18 = load i64, ptr %17, align 8, !range !216, !noalias !851, !noundef !4 - %.not.i.i.i.i.i.i.i = icmp eq i64 %18, 0 - br i1 %.not.i.i.i.i.i.i.i, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i", label %19 - -19: ; preds = %16 - %20 = getelementptr inbounds i8, ptr %8, i64 16 - %21 = load i64, ptr %20, align 8, !noalias !851, !noundef !4 - %22 = icmp eq i64 %21, 0 - br i1 %22, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i", label %23 - -23: ; preds = %19 - %24 = load ptr, ptr %8, align 8, !noalias !851, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %24, i64 noundef %21, i64 noundef %18) #30 + %20 = getelementptr inbounds i8, ptr %8, i64 8 + %21 = load i64, ptr %20, align 8, !range !216, !noalias !851, !noundef !4 + %.not.i.i.i.i.i.i.i = icmp eq i64 %21, 0 + br i1 %.not.i.i.i.i.i.i.i, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i", label %22 + +22: ; preds = %19 + %23 = getelementptr inbounds i8, ptr %8, i64 16 + %24 = load i64, ptr %23, align 8, !noalias !851, !noundef !4 + %25 = icmp eq i64 %24, 0 + br i1 %25, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i", label %26 + +26: ; preds = %22 + %27 = load ptr, ptr %8, align 8, !noalias !851, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %27, i64 noundef %24, i64 noundef %21) #30 br label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i" -"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i": ; preds = %23, %19, %16 +"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i": ; preds = %26, %22, %19 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8), !noalias !851 br label %"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.exit" -25: ; preds = %1 - %26 = getelementptr inbounds i8, ptr %0, i64 8 +28: ; preds = %1 + %29 = getelementptr inbounds i8, ptr %0, i64 8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7), !noalias !864 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h030ae8581307ecc0E.llvm.1798434116971987782"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %7, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %26) - %27 = getelementptr inbounds i8, ptr %7, i64 8 - %28 = load i64, ptr %27, align 8, !range !216, !noalias !864, !noundef !4 - %.not.i.i.i = icmp eq i64 %28, 0 - br i1 %.not.i.i.i, label %"_ZN4core3ptr51drop_in_place$LT$alloc..vec..Vec$LT$$RF$str$GT$$GT$17he81090649fd5818bE.exit", label %29 - -29: ; preds = %25 - %30 = getelementptr inbounds i8, ptr %7, i64 16 - %31 = load i64, ptr %30, align 8, !noalias !864, !noundef !4 - %32 = icmp eq i64 %31, 0 - br i1 %32, label %"_ZN4core3ptr51drop_in_place$LT$alloc..vec..Vec$LT$$RF$str$GT$$GT$17he81090649fd5818bE.exit", label %33 + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h030ae8581307ecc0E.llvm.1798434116971987782"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %7, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %29) + %30 = getelementptr inbounds i8, ptr %7, i64 8 + %31 = load i64, ptr %30, align 8, !range !216, !noalias !864, !noundef !4 + %.not.i.i.i = icmp eq i64 %31, 0 + br i1 %.not.i.i.i, label %"_ZN4core3ptr51drop_in_place$LT$alloc..vec..Vec$LT$$RF$str$GT$$GT$17he81090649fd5818bE.exit", label %32 + +32: ; preds = %28 + %33 = getelementptr inbounds i8, ptr %7, i64 16 + %34 = load i64, ptr %33, align 8, !noalias !864, !noundef !4 + %35 = icmp eq i64 %34, 0 + br i1 %35, label %"_ZN4core3ptr51drop_in_place$LT$alloc..vec..Vec$LT$$RF$str$GT$$GT$17he81090649fd5818bE.exit", label %36 -33: ; preds = %29 - %34 = load ptr, ptr %7, align 8, !noalias !864, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %34, i64 noundef %31, i64 noundef %28) #30 +36: ; preds = %32 + %37 = load ptr, ptr %7, align 8, !noalias !864, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %37, i64 noundef %34, i64 noundef %31) #30 br label %"_ZN4core3ptr51drop_in_place$LT$alloc..vec..Vec$LT$$RF$str$GT$$GT$17he81090649fd5818bE.exit" -"_ZN4core3ptr51drop_in_place$LT$alloc..vec..Vec$LT$$RF$str$GT$$GT$17he81090649fd5818bE.exit": ; preds = %25, %29, %33 +"_ZN4core3ptr51drop_in_place$LT$alloc..vec..Vec$LT$$RF$str$GT$$GT$17he81090649fd5818bE.exit": ; preds = %28, %32, %36 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7), !noalias !864 br label %"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.exit" -35: ; preds = %1 - %36 = getelementptr inbounds i8, ptr %0, i64 8 +38: ; preds = %1 + %39 = getelementptr inbounds i8, ptr %0, i64 8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6), !noalias !871 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h030ae8581307ecc0E.llvm.1798434116971987782"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %36) - %37 = getelementptr inbounds i8, ptr %6, i64 8 - %38 = load i64, ptr %37, align 8, !range !216, !noalias !871, !noundef !4 - %.not.i.i.i1 = icmp eq i64 %38, 0 - br i1 %.not.i.i.i1, label %"_ZN4core3ptr51drop_in_place$LT$alloc..vec..Vec$LT$$RF$str$GT$$GT$17he81090649fd5818bE.exit2", label %39 - -39: ; preds = %35 - %40 = getelementptr inbounds i8, ptr %6, i64 16 - %41 = load i64, ptr %40, align 8, !noalias !871, !noundef !4 - %42 = icmp eq i64 %41, 0 - br i1 %42, label %"_ZN4core3ptr51drop_in_place$LT$alloc..vec..Vec$LT$$RF$str$GT$$GT$17he81090649fd5818bE.exit2", label %43 - -43: ; preds = %39 - %44 = load ptr, ptr %6, align 8, !noalias !871, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %44, i64 noundef %41, i64 noundef %38) #30 + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h030ae8581307ecc0E.llvm.1798434116971987782"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %39) + %40 = getelementptr inbounds i8, ptr %6, i64 8 + %41 = load i64, ptr %40, align 8, !range !216, !noalias !871, !noundef !4 + %.not.i.i.i1 = icmp eq i64 %41, 0 + br i1 %.not.i.i.i1, label %"_ZN4core3ptr51drop_in_place$LT$alloc..vec..Vec$LT$$RF$str$GT$$GT$17he81090649fd5818bE.exit2", label %42 + +42: ; preds = %38 + %43 = getelementptr inbounds i8, ptr %6, i64 16 + %44 = load i64, ptr %43, align 8, !noalias !871, !noundef !4 + %45 = icmp eq i64 %44, 0 + br i1 %45, label %"_ZN4core3ptr51drop_in_place$LT$alloc..vec..Vec$LT$$RF$str$GT$$GT$17he81090649fd5818bE.exit2", label %46 + +46: ; preds = %42 + %47 = load ptr, ptr %6, align 8, !noalias !871, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %47, i64 noundef %44, i64 noundef %41) #30 br label %"_ZN4core3ptr51drop_in_place$LT$alloc..vec..Vec$LT$$RF$str$GT$$GT$17he81090649fd5818bE.exit2" -"_ZN4core3ptr51drop_in_place$LT$alloc..vec..Vec$LT$$RF$str$GT$$GT$17he81090649fd5818bE.exit2": ; preds = %35, %39, %43 +"_ZN4core3ptr51drop_in_place$LT$alloc..vec..Vec$LT$$RF$str$GT$$GT$17he81090649fd5818bE.exit2": ; preds = %38, %42, %46 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6), !noalias !871 br label %"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.exit" -45: ; preds = %1 +48: ; preds = %1 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5), !noalias !878 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17he4793db4b8a8f409E.llvm.1798434116971987782"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %0) - %46 = getelementptr inbounds i8, ptr %5, i64 8 - %47 = load i64, ptr %46, align 8, !range !216, !noalias !878, !noundef !4 - %.not.i.i.i3 = icmp eq i64 %47, 0 - br i1 %.not.i.i.i3, label %"_ZN4core3ptr66drop_in_place$LT$alloc..vec..Vec$LT$just..keyword..Keyword$GT$$GT$17hcb7e2ac355ee3b26E.exit", label %48 - -48: ; preds = %45 - %49 = getelementptr inbounds i8, ptr %5, i64 16 - %50 = load i64, ptr %49, align 8, !noalias !878, !noundef !4 - %51 = icmp eq i64 %50, 0 - br i1 %51, label %"_ZN4core3ptr66drop_in_place$LT$alloc..vec..Vec$LT$just..keyword..Keyword$GT$$GT$17hcb7e2ac355ee3b26E.exit", label %52 - -52: ; preds = %48 - %53 = load ptr, ptr %5, align 8, !noalias !878, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %53, i64 noundef %50, i64 noundef %47) #30 + %49 = getelementptr inbounds i8, ptr %5, i64 8 + %50 = load i64, ptr %49, align 8, !range !216, !noalias !878, !noundef !4 + %.not.i.i.i3 = icmp eq i64 %50, 0 + br i1 %.not.i.i.i3, label %"_ZN4core3ptr66drop_in_place$LT$alloc..vec..Vec$LT$just..keyword..Keyword$GT$$GT$17hcb7e2ac355ee3b26E.exit", label %51 + +51: ; preds = %48 + %52 = getelementptr inbounds i8, ptr %5, i64 16 + %53 = load i64, ptr %52, align 8, !noalias !878, !noundef !4 + %54 = icmp eq i64 %53, 0 + br i1 %54, label %"_ZN4core3ptr66drop_in_place$LT$alloc..vec..Vec$LT$just..keyword..Keyword$GT$$GT$17hcb7e2ac355ee3b26E.exit", label %55 + +55: ; preds = %51 + %56 = load ptr, ptr %5, align 8, !noalias !878, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %56, i64 noundef %53, i64 noundef %50) #30 br label %"_ZN4core3ptr66drop_in_place$LT$alloc..vec..Vec$LT$just..keyword..Keyword$GT$$GT$17hcb7e2ac355ee3b26E.exit" -"_ZN4core3ptr66drop_in_place$LT$alloc..vec..Vec$LT$just..keyword..Keyword$GT$$GT$17hcb7e2ac355ee3b26E.exit": ; preds = %45, %48, %52 +"_ZN4core3ptr66drop_in_place$LT$alloc..vec..Vec$LT$just..keyword..Keyword$GT$$GT$17hcb7e2ac355ee3b26E.exit": ; preds = %48, %51, %55 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5), !noalias !878 br label %"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.exit" -54: ; preds = %1 - %55 = getelementptr inbounds i8, ptr %0, i64 8 +57: ; preds = %1 + %58 = getelementptr inbounds i8, ptr %0, i64 8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4), !noalias !885 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hb2fe6f6f3762db27E.llvm.1798434116971987782"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %55) - %56 = getelementptr inbounds i8, ptr %4, i64 8 - %57 = load i64, ptr %56, align 8, !range !216, !noalias !885, !noundef !4 - %.not.i.i.i.i = icmp eq i64 %57, 0 - br i1 %.not.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2f4461582ec6620eE.exit", label %58 - -58: ; preds = %54 - %59 = getelementptr inbounds i8, ptr %4, i64 16 - %60 = load i64, ptr %59, align 8, !noalias !885, !noundef !4 - %61 = icmp eq i64 %60, 0 - br i1 %61, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2f4461582ec6620eE.exit", label %62 - -62: ; preds = %58 - %63 = load ptr, ptr %4, align 8, !noalias !885, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %63, i64 noundef %60, i64 noundef %57) #30 + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hb2fe6f6f3762db27E.llvm.1798434116971987782"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %58) + %59 = getelementptr inbounds i8, ptr %4, i64 8 + %60 = load i64, ptr %59, align 8, !range !216, !noalias !885, !noundef !4 + %.not.i.i.i.i = icmp eq i64 %60, 0 + br i1 %.not.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2f4461582ec6620eE.exit", label %61 + +61: ; preds = %57 + %62 = getelementptr inbounds i8, ptr %4, i64 16 + %63 = load i64, ptr %62, align 8, !noalias !885, !noundef !4 + %64 = icmp eq i64 %63, 0 + br i1 %64, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2f4461582ec6620eE.exit", label %65 + +65: ; preds = %61 + %66 = load ptr, ptr %4, align 8, !noalias !885, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %66, i64 noundef %63, i64 noundef %60) #30 br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2f4461582ec6620eE.exit" -"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2f4461582ec6620eE.exit": ; preds = %54, %58, %62 +"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2f4461582ec6620eE.exit": ; preds = %57, %61, %65 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4), !noalias !885 br label %"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.exit" -64: ; preds = %1 - %65 = getelementptr inbounds i8, ptr %0, i64 8 +67: ; preds = %1 + %68 = getelementptr inbounds i8, ptr %0, i64 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !894) - %66 = load i64, ptr %65, align 8, !range !850, !alias.scope !894, !noundef !4 - %or.cond.i4 = icmp slt i64 %66, 0 - br i1 %or.cond.i4, label %"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.exit", label %67 - -67: ; preds = %64 + %69 = load i64, ptr %68, align 8, !range !850, !alias.scope !894, !noundef !4 + %70 = icmp ugt i64 %69, -9223372036854775808 + %71 = and i64 %69, 15 + %cond1.i4 = icmp ne i64 %71, 0 + %cond.not2.i5 = and i1 %70, %cond1.i4 + %72 = icmp eq i64 %69, -9223372036854775808 + %or.cond.i6 = or i1 %72, %cond.not2.i5 + br i1 %or.cond.i6, label %"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.exit", label %73 + +73: ; preds = %67 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3), !noalias !897 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hb2fe6f6f3762db27E.llvm.1798434116971987782"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %65) - %68 = getelementptr inbounds i8, ptr %3, i64 8 - %69 = load i64, ptr %68, align 8, !range !216, !noalias !897, !noundef !4 - %.not.i.i.i.i.i.i.i5 = icmp eq i64 %69, 0 - br i1 %.not.i.i.i.i.i.i.i5, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i6", label %70 - -70: ; preds = %67 - %71 = getelementptr inbounds i8, ptr %3, i64 16 - %72 = load i64, ptr %71, align 8, !noalias !897, !noundef !4 - %73 = icmp eq i64 %72, 0 - br i1 %73, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i6", label %74 + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hb2fe6f6f3762db27E.llvm.1798434116971987782"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %68) + %74 = getelementptr inbounds i8, ptr %3, i64 8 + %75 = load i64, ptr %74, align 8, !range !216, !noalias !897, !noundef !4 + %.not.i.i.i.i.i.i.i7 = icmp eq i64 %75, 0 + br i1 %.not.i.i.i.i.i.i.i7, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i8", label %76 + +76: ; preds = %73 + %77 = getelementptr inbounds i8, ptr %3, i64 16 + %78 = load i64, ptr %77, align 8, !noalias !897, !noundef !4 + %79 = icmp eq i64 %78, 0 + br i1 %79, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i8", label %80 -74: ; preds = %70 - %75 = load ptr, ptr %3, align 8, !noalias !897, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %75, i64 noundef %72, i64 noundef %69) #30 - br label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i6" +80: ; preds = %76 + %81 = load ptr, ptr %3, align 8, !noalias !897, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %81, i64 noundef %78, i64 noundef %75) #30 + br label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i8" -"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i6": ; preds = %74, %70, %67 +"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i8": ; preds = %80, %76, %73 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3), !noalias !897 br label %"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.exit" -76: ; preds = %1 - %77 = getelementptr inbounds i8, ptr %0, i64 8 +82: ; preds = %1 + %83 = getelementptr inbounds i8, ptr %0, i64 8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !910 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hd17fe4fc9b4faddcE.llvm.1798434116971987782"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %77) - %78 = getelementptr inbounds i8, ptr %2, i64 8 - %79 = load i64, ptr %78, align 8, !range !216, !noalias !910, !noundef !4 - %.not.i.i.i8 = icmp eq i64 %79, 0 - br i1 %.not.i.i.i8, label %"_ZN4core3ptr71drop_in_place$LT$alloc..vec..Vec$LT$just..token_kind..TokenKind$GT$$GT$17h511988218d149982E.exit", label %80 + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hd17fe4fc9b4faddcE.llvm.1798434116971987782"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %83) + %84 = getelementptr inbounds i8, ptr %2, i64 8 + %85 = load i64, ptr %84, align 8, !range !216, !noalias !910, !noundef !4 + %.not.i.i.i10 = icmp eq i64 %85, 0 + br i1 %.not.i.i.i10, label %"_ZN4core3ptr71drop_in_place$LT$alloc..vec..Vec$LT$just..token_kind..TokenKind$GT$$GT$17h511988218d149982E.exit", label %86 -80: ; preds = %76 - %81 = getelementptr inbounds i8, ptr %2, i64 16 - %82 = load i64, ptr %81, align 8, !noalias !910, !noundef !4 - %83 = icmp eq i64 %82, 0 - br i1 %83, label %"_ZN4core3ptr71drop_in_place$LT$alloc..vec..Vec$LT$just..token_kind..TokenKind$GT$$GT$17h511988218d149982E.exit", label %84 +86: ; preds = %82 + %87 = getelementptr inbounds i8, ptr %2, i64 16 + %88 = load i64, ptr %87, align 8, !noalias !910, !noundef !4 + %89 = icmp eq i64 %88, 0 + br i1 %89, label %"_ZN4core3ptr71drop_in_place$LT$alloc..vec..Vec$LT$just..token_kind..TokenKind$GT$$GT$17h511988218d149982E.exit", label %90 -84: ; preds = %80 - %85 = load ptr, ptr %2, align 8, !noalias !910, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %85, i64 noundef %82, i64 noundef %79) #30 +90: ; preds = %86 + %91 = load ptr, ptr %2, align 8, !noalias !910, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %91, i64 noundef %88, i64 noundef %85) #30 br label %"_ZN4core3ptr71drop_in_place$LT$alloc..vec..Vec$LT$just..token_kind..TokenKind$GT$$GT$17h511988218d149982E.exit" -"_ZN4core3ptr71drop_in_place$LT$alloc..vec..Vec$LT$just..token_kind..TokenKind$GT$$GT$17h511988218d149982E.exit": ; preds = %76, %80, %84 +"_ZN4core3ptr71drop_in_place$LT$alloc..vec..Vec$LT$just..token_kind..TokenKind$GT$$GT$17h511988218d149982E.exit": ; preds = %82, %86, %90 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2), !noalias !910 br label %"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.exit" } diff --git a/bench/just-rs/optimized/xt6bvrk4jdo7mpy.ll b/bench/just-rs/optimized/xt6bvrk4jdo7mpy.ll index 1eee72d1153..d44e86a856b 100644 --- a/bench/just-rs/optimized/xt6bvrk4jdo7mpy.ll +++ b/bench/just-rs/optimized/xt6bvrk4jdo7mpy.ll @@ -2234,11 +2234,11 @@ define hidden void @"_ZN137_$LT$alloc..collections..btree..dedup_sorted_iter..De call void @llvm.experimental.noalias.scope.decl(metadata !327) %38 = add i64 %.sroa.013.017, 9223372036854775807 %39 = icmp ult i64 %38, 8 - %40 = xor i64 %.sroa.013.017, -9223372036854775808 + %40 = and i64 %.sroa.013.017, 15 %41 = select i1 %39, i64 %40, i64 0 %42 = add i64 %.sroa.0.0.copyload1.i.i.i, 9223372036854775807 %43 = icmp ult i64 %42, 8 - %44 = xor i64 %.sroa.0.0.copyload1.i.i.i, -9223372036854775808 + %44 = and i64 %.sroa.0.0.copyload1.i.i.i, 15 %45 = select i1 %43, i64 %44, i64 0 %46 = icmp eq i64 %41, %45 br i1 %46, label %47, label %.thread21 @@ -2296,27 +2296,31 @@ define hidden void @"_ZN137_$LT$alloc..collections..btree..dedup_sorted_iter..De br i1 %.mux.i.i, label %.thread23, label %.thread21 .thread23: ; preds = %64, %47, %66 - %or.cond.i.i12 = icmp slt i64 %.sroa.013.017, 0 - br i1 %or.cond.i.i12, label %"_ZN4core3ptr103drop_in_place$LT$$LP$just..attribute..Attribute$C$alloc..collections..btree..set_val..SetValZST$RP$$GT$17h029c3e84f1c03636E.exit", label %67 - -67: ; preds = %.thread23 + %67 = icmp ugt i64 %.sroa.013.017, -9223372036854775808 + %cond1.i.i = icmp ne i64 %40, 0 + %cond.not2.i.i = and i1 %67, %cond1.i.i + %68 = icmp eq i64 %.sroa.013.017, -9223372036854775808 + %or.cond.i.i12 = or i1 %68, %cond.not2.i.i + br i1 %or.cond.i.i12, label %"_ZN4core3ptr103drop_in_place$LT$$LP$just..attribute..Attribute$C$alloc..collections..btree..set_val..SetValZST$RP$$GT$17h029c3e84f1c03636E.exit", label %69 + +69: ; preds = %.thread23 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3), !noalias !347 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hb2fe6f6f3762db27E.llvm.1798434116971987782"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %4) - %68 = load i64, ptr %18, align 8, !range !182, !noalias !347, !noundef !4 - %.not.i.i.i.i.i.i.i.i = icmp eq i64 %68, 0 - br i1 %.not.i.i.i.i.i.i.i.i, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i.i", label %69 - -69: ; preds = %67 - %70 = load i64, ptr %19, align 8, !noalias !347, !noundef !4 - %71 = icmp eq i64 %70, 0 - br i1 %71, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i.i", label %72 - -72: ; preds = %69 - %73 = load ptr, ptr %3, align 8, !noalias !347, !nonnull !4, !noundef !4 - call void @__rust_dealloc(ptr noundef nonnull %73, i64 noundef %70, i64 noundef %68) #25 + %70 = load i64, ptr %18, align 8, !range !182, !noalias !347, !noundef !4 + %.not.i.i.i.i.i.i.i.i = icmp eq i64 %70, 0 + br i1 %.not.i.i.i.i.i.i.i.i, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i.i", label %71 + +71: ; preds = %69 + %72 = load i64, ptr %19, align 8, !noalias !347, !noundef !4 + %73 = icmp eq i64 %72, 0 + br i1 %73, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i.i", label %74 + +74: ; preds = %71 + %75 = load ptr, ptr %3, align 8, !noalias !347, !nonnull !4, !noundef !4 + call void @__rust_dealloc(ptr noundef nonnull %75, i64 noundef %72, i64 noundef %70) #25 br label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i.i" -"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i.i": ; preds = %72, %69, %67 +"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i.i": ; preds = %74, %71, %69 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3), !noalias !347 br label %"_ZN4core3ptr103drop_in_place$LT$$LP$just..attribute..Attribute$C$alloc..collections..btree..set_val..SetValZST$RP$$GT$17h029c3e84f1c03636E.exit" @@ -2936,32 +2940,37 @@ define internal void @"_ZN4core3ptr39drop_in_place$LT$just..token..Token$GT$17ha define hidden void @"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.llvm.9118937971122011336"(ptr noalias noundef align 8 dereferenceable(48) %0) unnamed_addr #0 personality ptr @rust_eh_personality { %2 = alloca { [1 x i64], i64, [1 x i64] }, align 8 %3 = load i64, ptr %0, align 8, !range !447, !noundef !4 - %or.cond = icmp slt i64 %3, 0 - br i1 %or.cond, label %"_ZN4core3ptr84drop_in_place$LT$core..option..Option$LT$just..string_literal..StringLiteral$GT$$GT$17h4c74f7e79d028ac1E.llvm.9118937971122011336.exit", label %4 + %4 = icmp ugt i64 %3, -9223372036854775808 + %5 = and i64 %3, 15 + %cond1 = icmp ne i64 %5, 0 + %cond.not2 = and i1 %4, %cond1 + %6 = icmp eq i64 %3, -9223372036854775808 + %or.cond = or i1 %6, %cond.not2 + br i1 %or.cond, label %"_ZN4core3ptr84drop_in_place$LT$core..option..Option$LT$just..string_literal..StringLiteral$GT$$GT$17h4c74f7e79d028ac1E.llvm.9118937971122011336.exit", label %7 "_ZN4core3ptr84drop_in_place$LT$core..option..Option$LT$just..string_literal..StringLiteral$GT$$GT$17h4c74f7e79d028ac1E.llvm.9118937971122011336.exit": ; preds = %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i", %1 ret void -4: ; preds = %1 +7: ; preds = %1 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !448 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hb2fe6f6f3762db27E.llvm.1798434116971987782"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %0) - %5 = getelementptr inbounds i8, ptr %2, i64 8 - %6 = load i64, ptr %5, align 8, !range !182, !noalias !448, !noundef !4 - %.not.i.i.i.i.i.i = icmp eq i64 %6, 0 - br i1 %.not.i.i.i.i.i.i, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i", label %7 + %8 = getelementptr inbounds i8, ptr %2, i64 8 + %9 = load i64, ptr %8, align 8, !range !182, !noalias !448, !noundef !4 + %.not.i.i.i.i.i.i = icmp eq i64 %9, 0 + br i1 %.not.i.i.i.i.i.i, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i", label %10 -7: ; preds = %4 - %8 = getelementptr inbounds i8, ptr %2, i64 16 - %9 = load i64, ptr %8, align 8, !noalias !448, !noundef !4 - %10 = icmp eq i64 %9, 0 - br i1 %10, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i", label %11 +10: ; preds = %7 + %11 = getelementptr inbounds i8, ptr %2, i64 16 + %12 = load i64, ptr %11, align 8, !noalias !448, !noundef !4 + %13 = icmp eq i64 %12, 0 + br i1 %13, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i", label %14 -11: ; preds = %7 - %12 = load ptr, ptr %2, align 8, !noalias !448, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %12, i64 noundef %9, i64 noundef %6) #25 +14: ; preds = %10 + %15 = load ptr, ptr %2, align 8, !noalias !448, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %15, i64 noundef %12, i64 noundef %9) #25 br label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i" -"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i": ; preds = %11, %7, %4 +"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i": ; preds = %14, %10, %7 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2), !noalias !448 br label %"_ZN4core3ptr84drop_in_place$LT$core..option..Option$LT$just..string_literal..StringLiteral$GT$$GT$17h4c74f7e79d028ac1E.llvm.9118937971122011336.exit" } @@ -3060,33 +3069,42 @@ define hidden void @"_ZN4core3ptr84drop_in_place$LT$core..option..Option$LT$just define hidden void @"_ZN4core3ptr95drop_in_place$LT$core..result..Result$LT$just..attribute..Attribute$C$strum..ParseError$GT$$GT$17h9e9ba2a4972918adE.llvm.9118937971122011336"(ptr noalias noundef align 8 dereferenceable(48) %0) unnamed_addr #0 personality ptr @rust_eh_personality { %2 = alloca { [1 x i64], i64, [1 x i64] }, align 8 %3 = load i64, ptr %0, align 8, !range !490, !noundef !4 - %or.cond.i = icmp slt i64 %3, 0 - br i1 %or.cond.i, label %"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.llvm.9118937971122011336.exit", label %4 + %.not = icmp eq i64 %3, -9223372036854775799 + br i1 %.not, label %"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.llvm.9118937971122011336.exit", label %4 4: ; preds = %1 + %5 = icmp ugt i64 %3, -9223372036854775808 + %6 = and i64 %3, 15 + %cond1.i = icmp ne i64 %6, 0 + %cond.not2.i = and i1 %5, %cond1.i + %7 = icmp eq i64 %3, -9223372036854775808 + %or.cond.i = or i1 %7, %cond.not2.i + br i1 %or.cond.i, label %"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.llvm.9118937971122011336.exit", label %8 + +8: ; preds = %4 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !491 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hb2fe6f6f3762db27E.llvm.1798434116971987782"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %0) - %5 = getelementptr inbounds i8, ptr %2, i64 8 - %6 = load i64, ptr %5, align 8, !range !182, !noalias !491, !noundef !4 - %.not.i.i.i.i.i.i.i = icmp eq i64 %6, 0 - br i1 %.not.i.i.i.i.i.i.i, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i", label %7 + %9 = getelementptr inbounds i8, ptr %2, i64 8 + %10 = load i64, ptr %9, align 8, !range !182, !noalias !491, !noundef !4 + %.not.i.i.i.i.i.i.i = icmp eq i64 %10, 0 + br i1 %.not.i.i.i.i.i.i.i, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i", label %11 -7: ; preds = %4 - %8 = getelementptr inbounds i8, ptr %2, i64 16 - %9 = load i64, ptr %8, align 8, !noalias !491, !noundef !4 - %10 = icmp eq i64 %9, 0 - br i1 %10, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i", label %11 +11: ; preds = %8 + %12 = getelementptr inbounds i8, ptr %2, i64 16 + %13 = load i64, ptr %12, align 8, !noalias !491, !noundef !4 + %14 = icmp eq i64 %13, 0 + br i1 %14, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i", label %15 -11: ; preds = %7 - %12 = load ptr, ptr %2, align 8, !noalias !491, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %12, i64 noundef %9, i64 noundef %6) #25 +15: ; preds = %11 + %16 = load ptr, ptr %2, align 8, !noalias !491, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %16, i64 noundef %13, i64 noundef %10) #25 br label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i" -"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i": ; preds = %11, %7, %4 +"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i": ; preds = %15, %11, %8 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2), !noalias !491 br label %"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.llvm.9118937971122011336.exit" -"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.llvm.9118937971122011336.exit": ; preds = %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i", %1 +"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.llvm.9118937971122011336.exit": ; preds = %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i", %4, %1 ret void } @@ -7096,7 +7114,7 @@ define hidden void @"_ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$ store ptr null, ptr %.sroa.5.0..sroa_idx, align 8 br label %"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.llvm.9118937971122011336.exit" -30: ; preds = %44 +30: ; preds = %47 %31 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #26 @@ -7135,46 +7153,51 @@ define hidden void @"_ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$ store i64 -9223372036854775799, ptr %0, align 8 call void @llvm.experimental.noalias.scope.decl(metadata !958) %34 = load i64, ptr %2, align 8, !range !447, !alias.scope !958, !noundef !4 - %or.cond.i = icmp slt i64 %34, 0 - br i1 %or.cond.i, label %"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.llvm.9118937971122011336.exit", label %35 - -35: ; preds = %.loopexit56 + %35 = icmp ugt i64 %34, -9223372036854775808 + %36 = and i64 %34, 15 + %cond1.i = icmp ne i64 %36, 0 + %cond.not2.i = and i1 %35, %cond1.i + %37 = icmp eq i64 %34, -9223372036854775808 + %or.cond.i = or i1 %37, %cond.not2.i + br i1 %or.cond.i, label %"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.llvm.9118937971122011336.exit", label %38 + +38: ; preds = %.loopexit56 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4), !noalias !961 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hb2fe6f6f3762db27E.llvm.1798434116971987782"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %2) - %36 = getelementptr inbounds i8, ptr %4, i64 8 - %37 = load i64, ptr %36, align 8, !range !182, !noalias !961, !noundef !4 - %.not.i.i.i.i.i.i.i = icmp eq i64 %37, 0 - br i1 %.not.i.i.i.i.i.i.i, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i", label %38 + %39 = getelementptr inbounds i8, ptr %4, i64 8 + %40 = load i64, ptr %39, align 8, !range !182, !noalias !961, !noundef !4 + %.not.i.i.i.i.i.i.i = icmp eq i64 %40, 0 + br i1 %.not.i.i.i.i.i.i.i, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i", label %41 -38: ; preds = %35 - %39 = getelementptr inbounds i8, ptr %4, i64 16 - %40 = load i64, ptr %39, align 8, !noalias !961, !noundef !4 - %41 = icmp eq i64 %40, 0 - br i1 %41, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i", label %42 - -42: ; preds = %38 - %43 = load ptr, ptr %4, align 8, !noalias !961, !nonnull !4, !noundef !4 - call void @__rust_dealloc(ptr noundef nonnull %43, i64 noundef %40, i64 noundef %37) #25 +41: ; preds = %38 + %42 = getelementptr inbounds i8, ptr %4, i64 16 + %43 = load i64, ptr %42, align 8, !noalias !961, !noundef !4 + %44 = icmp eq i64 %43, 0 + br i1 %44, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i", label %45 + +45: ; preds = %41 + %46 = load ptr, ptr %4, align 8, !noalias !961, !nonnull !4, !noundef !4 + call void @__rust_dealloc(ptr noundef nonnull %46, i64 noundef %43, i64 noundef %40) #25 br label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i" -"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i": ; preds = %42, %38, %35 +"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i": ; preds = %45, %41, %38 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4), !noalias !961 br label %"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.llvm.9118937971122011336.exit" -.thread: ; preds = %44 +.thread: ; preds = %47 resume { ptr, i32 } %lpad.phi .loopexit: ; preds = %18, %21 %lpad.loopexit = landingpad { ptr, i32 } cleanup - br label %44 + br label %47 .loopexit.split-lp: ; preds = %10 %lpad.loopexit.split-lp = landingpad { ptr, i32 } cleanup - br label %44 + br label %47 -44: ; preds = %.loopexit.split-lp, %.loopexit +47: ; preds = %.loopexit.split-lp, %.loopexit %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] invoke void @"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.llvm.9118937971122011336"(ptr noalias noundef nonnull align 8 dereferenceable(48) %2) #24 to label %.thread unwind label %30 @@ -24755,7 +24778,7 @@ define hidden void @"_ZN96_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V %38 = load i64, ptr %36, align 8, !range !447, !alias.scope !3450, !noalias !3447, !noundef !4 %39 = add i64 %38, 9223372036854775807 %40 = icmp ult i64 %39, 8 - %41 = xor i64 %38, -9223372036854775808 + %41 = and i64 %38, 15 %42 = select i1 %40, i64 %41, i64 0 switch i64 %42, label %43 [ i64 0, label %44 @@ -24997,7 +25020,7 @@ define hidden void @"_ZN96_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V %110 = load i64, ptr %108, align 8, !range !447, !alias.scope !3465, !noalias !3462, !noundef !4 %111 = add i64 %110, 9223372036854775807 %112 = icmp ult i64 %111, 8 - %113 = xor i64 %110, -9223372036854775808 + %113 = and i64 %110, 15 %114 = select i1 %112, i64 %113, i64 0 switch i64 %114, label %115 [ i64 0, label %116 @@ -25284,7 +25307,7 @@ switch.lookup: %1 = load i64, ptr %0, align 8, !range !447, !alias.scope !3479, !noundef !4 %2 = add i64 %1, 9223372036854775807 %3 = icmp ult i64 %2, 8 - %4 = xor i64 %1, -9223372036854775808 + %4 = and i64 %1, 15 %5 = select i1 %3, i64 %4, i64 0 %switch.gep = getelementptr inbounds [9 x i64], ptr @"switch.table._ZN4just9attribute95_$LT$impl$u20$core..convert..From$LT$$RF$just..attribute..Attribute$GT$$u20$for$u20$$RF$str$GT$4from17h6a7ec9a7873b2624E", i64 0, i64 %5 %switch.load = load i64, ptr %switch.gep, align 8 @@ -25302,101 +25325,104 @@ define hidden void @_ZN4just9attribute9Attribute13with_argument17he7428cf7626fcb %7 = alloca { i64, [11 x i64] }, align 8 %8 = load i64, ptr %1, align 8, !range !447, !noundef !4 %9 = icmp ugt i64 %8, -9223372036854775808 - br i1 %9, label %10, label %26 + %10 = and i64 %8, 15 + %11 = icmp ne i64 %10, 0 + %.not5 = and i1 %9, %11 + br i1 %.not5, label %12, label %28 -.body: ; preds = %13 +.body: ; preds = %15 invoke void @"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E"(ptr noalias noundef nonnull align 8 dereferenceable(48) %3) #24 - to label %39 unwind label %37 + to label %42 unwind label %40 -10: ; preds = %4 +12: ; preds = %4 call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %7) - %11 = getelementptr inbounds i8, ptr %7, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef nonnull align 8 dereferenceable(48) %1, i64 48, i1 false) + %13 = getelementptr inbounds i8, ptr %7, i64 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %13, ptr noundef nonnull align 8 dereferenceable(48) %1, i64 48, i1 false) store i64 -9223372036854775784, ptr %7, align 8 - %12 = invoke noundef ptr @_ZN5alloc5alloc15exchange_malloc17he27dc27497df8aaaE.llvm.13711779418236020091(i64 noundef 96, i64 noundef 8) - to label %.noexc unwind label %13, !noalias !3482 + %14 = invoke noundef ptr @_ZN5alloc5alloc15exchange_malloc17he27dc27497df8aaaE.llvm.13711779418236020091(i64 noundef 96, i64 noundef 8) + to label %.noexc unwind label %15, !noalias !3482 -13: ; preds = %10 - %14 = landingpad { ptr, i32 } +15: ; preds = %12 + %16 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr63drop_in_place$LT$just..compile_error_kind..CompileErrorKind$GT$17hbed5a2c9027d5efdE.llvm.13711779418236020091"(ptr noalias noundef nonnull align 8 dereferenceable(96) %7) #24 - to label %.body unwind label %15, !noalias !3493 + to label %.body unwind label %17, !noalias !3493 -15: ; preds = %13 - %16 = landingpad { ptr, i32 } +17: ; preds = %15 + %18 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #26, !noalias !3493 unreachable -17: ; preds = %24, %20, %.noexc +19: ; preds = %26, %22, %.noexc call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6), !noalias !3494 br label %"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.llvm.9118937971122011336.exit" -.noexc: ; preds = %10 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(96) %12, ptr noundef nonnull align 8 dereferenceable(96) %7, i64 96, i1 false), !noalias !3493 +.noexc: ; preds = %12 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(96) %14, ptr noundef nonnull align 8 dereferenceable(96) %7, i64 96, i1 false), !noalias !3493 call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %7) - store ptr %12, ptr %0, align 8 + store ptr %14, ptr %0, align 8 %.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 8 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %.sroa.4.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(72) %2, i64 72, i1 false) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6), !noalias !3494 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hb2fe6f6f3762db27E.llvm.1798434116971987782"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %3) - %18 = getelementptr inbounds i8, ptr %6, i64 8 - %19 = load i64, ptr %18, align 8, !range !182, !noalias !3494, !noundef !4 - %.not.i.i.i.i.i = icmp eq i64 %19, 0 - br i1 %.not.i.i.i.i.i, label %17, label %20 - -20: ; preds = %.noexc - %21 = getelementptr inbounds i8, ptr %6, i64 16 - %22 = load i64, ptr %21, align 8, !noalias !3494, !noundef !4 - %23 = icmp eq i64 %22, 0 - br i1 %23, label %17, label %24 - -24: ; preds = %20 - %25 = load ptr, ptr %6, align 8, !noalias !3494, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %25, i64 noundef %22, i64 noundef %19) #25 - br label %17 + %20 = getelementptr inbounds i8, ptr %6, i64 8 + %21 = load i64, ptr %20, align 8, !range !182, !noalias !3494, !noundef !4 + %.not.i.i.i.i.i = icmp eq i64 %21, 0 + br i1 %.not.i.i.i.i.i, label %19, label %22 + +22: ; preds = %.noexc + %23 = getelementptr inbounds i8, ptr %6, i64 16 + %24 = load i64, ptr %23, align 8, !noalias !3494, !noundef !4 + %25 = icmp eq i64 %24, 0 + br i1 %25, label %19, label %26 + +26: ; preds = %22 + %27 = load ptr, ptr %6, align 8, !noalias !3494, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %27, i64 noundef %24, i64 noundef %21) #25 + br label %19 -"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.llvm.9118937971122011336.exit": ; preds = %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i", %26, %17 +"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.llvm.9118937971122011336.exit": ; preds = %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i", %28, %19 ret void -26: ; preds = %4 +28: ; preds = %4 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull align 8 dereferenceable(48) %3, i64 48, i1 false) - %27 = getelementptr inbounds i8, ptr %0, i64 72 - store i8 34, ptr %27, align 8 - %or.cond.i = icmp slt i64 %8, 0 - br i1 %or.cond.i, label %"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.llvm.9118937971122011336.exit", label %28 + %29 = getelementptr inbounds i8, ptr %0, i64 72 + store i8 34, ptr %29, align 8 + %30 = icmp eq i64 %8, -9223372036854775808 + br i1 %30, label %"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.llvm.9118937971122011336.exit", label %31 -28: ; preds = %26 +31: ; preds = %28 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5), !noalias !3505 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hb2fe6f6f3762db27E.llvm.1798434116971987782"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %1) - %29 = getelementptr inbounds i8, ptr %5, i64 8 - %30 = load i64, ptr %29, align 8, !range !182, !noalias !3505, !noundef !4 - %.not.i.i.i.i.i.i.i = icmp eq i64 %30, 0 - br i1 %.not.i.i.i.i.i.i.i, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i", label %31 - -31: ; preds = %28 - %32 = getelementptr inbounds i8, ptr %5, i64 16 - %33 = load i64, ptr %32, align 8, !noalias !3505, !noundef !4 - %34 = icmp eq i64 %33, 0 - br i1 %34, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i", label %35 - -35: ; preds = %31 - %36 = load ptr, ptr %5, align 8, !noalias !3505, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %36, i64 noundef %33, i64 noundef %30) #25 + %32 = getelementptr inbounds i8, ptr %5, i64 8 + %33 = load i64, ptr %32, align 8, !range !182, !noalias !3505, !noundef !4 + %.not.i.i.i.i.i.i.i = icmp eq i64 %33, 0 + br i1 %.not.i.i.i.i.i.i.i, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i", label %34 + +34: ; preds = %31 + %35 = getelementptr inbounds i8, ptr %5, i64 16 + %36 = load i64, ptr %35, align 8, !noalias !3505, !noundef !4 + %37 = icmp eq i64 %36, 0 + br i1 %37, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i", label %38 + +38: ; preds = %34 + %39 = load ptr, ptr %5, align 8, !noalias !3505, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %39, i64 noundef %36, i64 noundef %33) #25 br label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i" -"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i": ; preds = %35, %31, %28 +"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i": ; preds = %38, %34, %31 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5), !noalias !3505 br label %"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.llvm.9118937971122011336.exit" -37: ; preds = %.body - %38 = landingpad { ptr, i32 } +40: ; preds = %.body + %41 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #26 unreachable -39: ; preds = %.body - resume { ptr, i32 } %14 +42: ; preds = %.body + resume { ptr, i32 } %16 } ; Function Attrs: nonlazybind uwtable @@ -25414,13 +25440,13 @@ switch.lookup: %8 = load i64, ptr %0, align 8, !range !447, !noundef !4 %9 = add i64 %8, 9223372036854775807 %10 = icmp ult i64 %9, 8 - %11 = xor i64 %8, -9223372036854775808 + %11 = and i64 %8, 15 %12 = select i1 %10, i64 %11, i64 0 %switch.gep = getelementptr inbounds [9 x i64], ptr @"switch.table._ZN4just9attribute95_$LT$impl$u20$core..convert..From$LT$$RF$just..attribute..Attribute$GT$$u20$for$u20$$RF$str$GT$4from17h6a7ec9a7873b2624E", i64 0, i64 %12 %switch.load = load i64, ptr %switch.gep, align 8 - %switch.gep13 = getelementptr inbounds [9 x ptr], ptr @"switch.table._ZN4just9attribute95_$LT$impl$u20$core..convert..From$LT$$RF$just..attribute..Attribute$GT$$u20$for$u20$$RF$str$GT$4from17h6a7ec9a7873b2624E.14", i64 0, i64 %12 - %switch.load14 = load ptr, ptr %switch.gep13, align 8 - store ptr %switch.load14, ptr %5, align 8 + %switch.gep16 = getelementptr inbounds [9 x ptr], ptr @"switch.table._ZN4just9attribute95_$LT$impl$u20$core..convert..From$LT$$RF$just..attribute..Attribute$GT$$u20$for$u20$$RF$str$GT$4from17h6a7ec9a7873b2624E.14", i64 0, i64 %12 + %switch.load17 = load ptr, ptr %switch.gep16, align 8 + store ptr %switch.load17, ptr %5, align 8 %13 = getelementptr inbounds i8, ptr %5, i64 8 store i64 %switch.load, ptr %13, align 8 store ptr %5, ptr %6, align 8 @@ -25439,37 +25465,41 @@ switch.lookup: call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %7) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) - br i1 %19, label %28, label %20 + br i1 %19, label %31, label %20 20: ; preds = %switch.lookup - %.not = icmp slt i64 %8, 0 - br i1 %.not, label %28, label %21 + %21 = icmp ugt i64 %8, -9223372036854775808 + %22 = icmp ne i64 %11, 0 + %.not15 = and i1 %21, %22 + %23 = icmp eq i64 %8, -9223372036854775808 + %.not = or i1 %23, %.not15 + br i1 %.not, label %31, label %24 -21: ; preds = %20 +24: ; preds = %20 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) store ptr %0, ptr %4, align 8 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %3) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) store ptr %4, ptr %2, align 8 - %22 = getelementptr inbounds i8, ptr %2, i64 8 - store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h28bc96b24dd64aedE", ptr %22, align 8 + %25 = getelementptr inbounds i8, ptr %2, i64 8 + store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h28bc96b24dd64aedE", ptr %25, align 8 store ptr @anon.1a7e3f89fdd1c4a5d945b914e4a08314.25, ptr %3, align 8, !alias.scope !3526, !noalias !3529 - %23 = getelementptr inbounds i8, ptr %3, i64 8 - store i64 2, ptr %23, align 8, !alias.scope !3526, !noalias !3529 - %24 = getelementptr inbounds i8, ptr %3, i64 32 - store ptr null, ptr %24, align 8, !alias.scope !3526, !noalias !3529 - %25 = getelementptr inbounds i8, ptr %3, i64 16 - store ptr %2, ptr %25, align 8, !alias.scope !3526, !noalias !3529 - %26 = getelementptr inbounds i8, ptr %3, i64 24 - store i64 1, ptr %26, align 8, !alias.scope !3526, !noalias !3529 - %27 = call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_fmt17ha383391698d817f8E(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %3) + %26 = getelementptr inbounds i8, ptr %3, i64 8 + store i64 2, ptr %26, align 8, !alias.scope !3526, !noalias !3529 + %27 = getelementptr inbounds i8, ptr %3, i64 32 + store ptr null, ptr %27, align 8, !alias.scope !3526, !noalias !3529 + %28 = getelementptr inbounds i8, ptr %3, i64 16 + store ptr %2, ptr %28, align 8, !alias.scope !3526, !noalias !3529 + %29 = getelementptr inbounds i8, ptr %3, i64 24 + store i64 1, ptr %29, align 8, !alias.scope !3526, !noalias !3529 + %30 = call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_fmt17ha383391698d817f8E(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %3) call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %3) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) - br label %28 + br label %31 -28: ; preds = %21, %switch.lookup, %20 - %.0 = phi i1 [ false, %20 ], [ true, %switch.lookup ], [ %27, %21 ] +31: ; preds = %24, %switch.lookup, %20 + %.0 = phi i1 [ false, %20 ], [ true, %switch.lookup ], [ %30, %24 ] ret i1 %.0 } @@ -28917,42 +28947,46 @@ switch.lookup: %2 = load i64, ptr %0, align 8, !range !447, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 8 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 15 %6 = select i1 %4, i64 %5, i64 0 %switch.gep = getelementptr inbounds [9 x i64], ptr @"switch.table._ZN4just9attribute95_$LT$impl$u20$core..convert..From$LT$$RF$just..attribute..Attribute$GT$$u20$for$u20$$RF$str$GT$4from17h6a7ec9a7873b2624E", i64 0, i64 %6 %switch.load = load i64, ptr %switch.gep, align 8 %switch.gep1 = getelementptr inbounds [9 x ptr], ptr @"switch.table._ZN4just9attribute95_$LT$impl$u20$core..convert..From$LT$$RF$just..attribute..Attribute$GT$$u20$for$u20$$RF$str$GT$4from17h6a7ec9a7873b2624E.14", i64 0, i64 %6 %switch.load2 = load ptr, ptr %switch.gep1, align 8 - %or.cond.i = icmp slt i64 %2, 0 - br i1 %or.cond.i, label %"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.llvm.9118937971122011336.exit", label %7 - -7: ; preds = %switch.lookup + %7 = icmp ugt i64 %2, -9223372036854775808 + %cond1.i = icmp ne i64 %5, 0 + %cond.not2.i = and i1 %7, %cond1.i + %8 = icmp eq i64 %2, -9223372036854775808 + %or.cond.i = or i1 %8, %cond.not2.i + br i1 %or.cond.i, label %"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.llvm.9118937971122011336.exit", label %9 + +9: ; preds = %switch.lookup call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %1), !noalias !4006 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hb2fe6f6f3762db27E.llvm.1798434116971987782"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %1, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %0) - %8 = getelementptr inbounds i8, ptr %1, i64 8 - %9 = load i64, ptr %8, align 8, !range !182, !noalias !4006, !noundef !4 - %.not.i.i.i.i.i.i.i = icmp eq i64 %9, 0 - br i1 %.not.i.i.i.i.i.i.i, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i", label %10 + %10 = getelementptr inbounds i8, ptr %1, i64 8 + %11 = load i64, ptr %10, align 8, !range !182, !noalias !4006, !noundef !4 + %.not.i.i.i.i.i.i.i = icmp eq i64 %11, 0 + br i1 %.not.i.i.i.i.i.i.i, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i", label %12 -10: ; preds = %7 - %11 = getelementptr inbounds i8, ptr %1, i64 16 - %12 = load i64, ptr %11, align 8, !noalias !4006, !noundef !4 - %13 = icmp eq i64 %12, 0 - br i1 %13, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i", label %14 +12: ; preds = %9 + %13 = getelementptr inbounds i8, ptr %1, i64 16 + %14 = load i64, ptr %13, align 8, !noalias !4006, !noundef !4 + %15 = icmp eq i64 %14, 0 + br i1 %15, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i", label %16 -14: ; preds = %10 - %15 = load ptr, ptr %1, align 8, !noalias !4006, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %15, i64 noundef %12, i64 noundef %9) #25 +16: ; preds = %12 + %17 = load ptr, ptr %1, align 8, !noalias !4006, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %17, i64 noundef %14, i64 noundef %11) #25 br label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i" -"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i": ; preds = %14, %10, %7 +"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i": ; preds = %16, %12, %9 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %1), !noalias !4006 br label %"_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.llvm.9118937971122011336.exit" "_ZN4core3ptr47drop_in_place$LT$just..attribute..Attribute$GT$17h3985bca9acb06605E.llvm.9118937971122011336.exit": ; preds = %switch.lookup, %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i" - %16 = insertvalue { ptr, i64 } poison, ptr %switch.load2, 0 - %17 = insertvalue { ptr, i64 } %16, i64 %switch.load, 1 - ret { ptr, i64 } %17 + %18 = insertvalue { ptr, i64 } poison, ptr %switch.load2, 0 + %19 = insertvalue { ptr, i64 } %18, i64 %switch.load, 1 + ret { ptr, i64 } %19 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable @@ -28961,7 +28995,7 @@ switch.lookup: %1 = load i64, ptr %0, align 8, !range !447, !noundef !4 %2 = add i64 %1, 9223372036854775807 %3 = icmp ult i64 %2, 8 - %4 = xor i64 %1, -9223372036854775808 + %4 = and i64 %1, 15 %5 = select i1 %3, i64 %4, i64 0 %switch.gep = getelementptr inbounds [9 x i64], ptr @"switch.table._ZN4just9attribute95_$LT$impl$u20$core..convert..From$LT$$RF$just..attribute..Attribute$GT$$u20$for$u20$$RF$str$GT$4from17h6a7ec9a7873b2624E", i64 0, i64 %5 %switch.load = load i64, ptr %switch.gep, align 8 diff --git a/bench/llvm/optimized/ASTReader.cpp.ll b/bench/llvm/optimized/ASTReader.cpp.ll index 08103be6d0f..7289a2307be 100644 --- a/bench/llvm/optimized/ASTReader.cpp.ll +++ b/bench/llvm/optimized/ASTReader.cpp.ll @@ -51168,7 +51168,7 @@ _ZN4llvm23SmallVectorTemplateBaseIN5clang12GlobalDeclIDELb1EE9push_backES2_.exit 701: ; preds = %700, %697 %702 = and i64 %695, 4294967295 %703 = icmp ult i64 %695, 4294967296 - %704 = add nsw i64 %702, -4040 + %704 = add nsw i64 %695, -4040 %spec.select.i = select i1 %703, i64 %704, i64 %702 br i1 %703, label %712, label %705 @@ -51255,7 +51255,7 @@ _ZN4llvm23SmallVectorTemplateBaseImLb1EE9push_backEm.exit: ; preds = %_ZNK5clang 745: ; preds = %744, %741 %746 = and i64 %739, 4294967295 %747 = icmp ult i64 %739, 4294967296 - %748 = add nsw i64 %746, -4040 + %748 = add nsw i64 %739, -4040 %spec.select.i493 = select i1 %747, i64 %748, i64 %746 br i1 %747, label %756, label %749 @@ -57057,7 +57057,7 @@ define dso_local noundef i64 @_ZNK5clang9ASTReader15getGlobalTypeIDERNS_13serial 10: ; preds = %9, %5 %11 = and i64 %2, 4294967295 %12 = icmp ult i64 %2, 4294967296 - %13 = add nsw i64 %11, -4040 + %13 = add nsw i64 %2, -4040 %spec.select = select i1 %12, i64 %13, i64 %11 br i1 %12, label %22, label %14 @@ -73402,7 +73402,7 @@ _ZNSt10unique_ptrIN4llvm13ErrorInfoBaseESt14default_deleteIS1_EED2Ev.exit.i17: ; 121: ; preds = %120, %116 %122 = and i64 %114, 4294967295 %123 = icmp ult i64 %114, 4294967296 - %124 = add nsw i64 %122, -4040 + %124 = add nsw i64 %114, -4040 %spec.select.i.i = select i1 %123, i64 %124, i64 %122 br i1 %123, label %133, label %125 @@ -77394,7 +77394,7 @@ _ZN5clang13TypeLocReader18readSourceLocationEv.exit16: ; preds = %_ZNK5clang9AST 200: ; preds = %199, %195 %201 = and i64 %193, 4294967295 %202 = icmp ult i64 %193, 4294967296 - %203 = add nsw i64 %201, -4040 + %203 = add nsw i64 %193, -4040 %spec.select.i.i.i = select i1 %202, i64 %203, i64 %201 br i1 %202, label %212, label %204 @@ -78076,7 +78076,7 @@ _ZN5clang13TypeLocReader18readSourceLocationEv.exit16: ; preds = %_ZNK5clang9AST 200: ; preds = %199, %195 %201 = and i64 %193, 4294967295 %202 = icmp ult i64 %193, 4294967296 - %203 = add nsw i64 %201, -4040 + %203 = add nsw i64 %193, -4040 %spec.select.i.i.i = select i1 %202, i64 %203, i64 %201 br i1 %202, label %212, label %204 @@ -82103,7 +82103,7 @@ _ZN5clang13TypeLocReader18readSourceLocationEv.exit20: ; preds = %_ZNK5clang9AST 164: ; preds = %163, %159 %165 = and i64 %157, 4294967295 %166 = icmp ult i64 %157, 4294967296 - %167 = add nsw i64 %165, -4040 + %167 = add nsw i64 %157, -4040 %spec.select.i.i.i = select i1 %166, i64 %167, i64 %165 br i1 %166, label %176, label %168 @@ -83522,7 +83522,7 @@ define dso_local noundef ptr @_ZN5clang15ASTRecordReader18readTypeSourceInfoEv(p 26: ; preds = %25, %21 %27 = and i64 %19, 4294967295 %28 = icmp ult i64 %19, 4294967296 - %29 = add nsw i64 %27, -4040 + %29 = add nsw i64 %19, -4040 %spec.select.i.i.i = select i1 %28, i64 %29, i64 %27 br i1 %28, label %38, label %30 @@ -83617,7 +83617,7 @@ define dso_local i64 @_ZN5clang9ASTReader12getLocalTypeERNS_13serialization10Mod 10: ; preds = %9, %5 %11 = and i64 %2, 4294967295 %12 = icmp ult i64 %2, 4294967296 - %13 = add nsw i64 %11, -4040 + %13 = add nsw i64 %2, -4040 %spec.select.i = select i1 %12, i64 %13, i64 %11 br i1 %12, label %22, label %14 @@ -83760,7 +83760,7 @@ define linkonce_odr hidden void @_ZN5clang13serialization15BasicReaderBaseINS_15 40: ; preds = %39, %35 %41 = and i64 %33, 4294967295 %42 = icmp ult i64 %33, 4294967296 - %43 = add nsw i64 %41, -4040 + %43 = add nsw i64 %33, -4040 %spec.select.i.i = select i1 %42, i64 %43, i64 %41 br i1 %42, label %52, label %44 @@ -83839,7 +83839,7 @@ _ZN5clang15ASTRecordReader8readTypeEv.exit: ; preds = %20, %_ZN5clang9ASTR 91: ; preds = %90, %86 %92 = and i64 %84, 4294967295 %93 = icmp ult i64 %84, 4294967296 - %94 = add nsw i64 %92, -4040 + %94 = add nsw i64 %84, -4040 %spec.select.i.i67 = select i1 %93, i64 %94, i64 %92 br i1 %93, label %103, label %95 @@ -83914,7 +83914,7 @@ _ZN5clang15ASTRecordReader8readTypeEv.exit60: ; preds = %67, %_ZN5clang9ASTR 138: ; preds = %137, %133 %139 = and i64 %131, 4294967295 %140 = icmp ult i64 %131, 4294967296 - %141 = add nsw i64 %139, -4040 + %141 = add nsw i64 %131, -4040 %spec.select.i.i70 = select i1 %140, i64 %141, i64 %139 br i1 %140, label %150, label %142 @@ -84009,7 +84009,7 @@ _ZN5clang15ASTRecordReader8readTypeEv.exit62: ; preds = %118, %_ZN5clang9AST 197: ; preds = %196, %192 %198 = and i64 %190, 4294967295 %199 = icmp ult i64 %190, 4294967296 - %200 = add nsw i64 %198, -4040 + %200 = add nsw i64 %190, -4040 %spec.select.i.i73 = select i1 %199, i64 %200, i64 %198 br i1 %199, label %209, label %201 @@ -84097,7 +84097,7 @@ _ZN5clang15ASTRecordReader8readTypeEv.exit64: ; preds = %165, %_ZN5clang9AST 251: ; preds = %250, %246 %252 = and i64 %244, 4294967295 %253 = icmp ult i64 %244, 4294967296 - %254 = add nsw i64 %252, -4040 + %254 = add nsw i64 %244, -4040 %spec.select.i.i76 = select i1 %253, i64 %254, i64 %252 br i1 %253, label %263, label %255 @@ -95985,7 +95985,7 @@ _ZN5clang15ASTRecordReader14readIdentifierEv.exit: ; preds = %12, %37 73: ; preds = %72, %68 %74 = and i64 %66, 4294967295 %75 = icmp ult i64 %66, 4294967296 - %76 = add nsw i64 %74, -4040 + %76 = add nsw i64 %66, -4040 %spec.select.i.i = select i1 %75, i64 %76, i64 %74 br i1 %75, label %85, label %77 @@ -96059,7 +96059,7 @@ _ZN5clang15ASTRecordReader8readTypeEv.exit: ; preds = %53, %_ZN5clang9ASTR 121: ; preds = %120, %116 %122 = and i64 %114, 4294967295 %123 = icmp ult i64 %114, 4294967296 - %124 = add nsw i64 %122, -4040 + %124 = add nsw i64 %114, -4040 %spec.select.i.i47 = select i1 %123, i64 %124, i64 %122 br i1 %123, label %133, label %125 @@ -96133,7 +96133,7 @@ _ZN5clang15ASTRecordReader8readTypeEv.exit44: ; preds = %101, %_ZN5clang9AST 169: ; preds = %168, %164 %170 = and i64 %162, 4294967295 %171 = icmp ult i64 %162, 4294967296 - %172 = add nsw i64 %170, -4040 + %172 = add nsw i64 %162, -4040 %spec.select.i.i50 = select i1 %171, i64 %172, i64 %170 br i1 %171, label %181, label %173 @@ -139732,7 +139732,7 @@ _ZNSt8optionalIN5clang8QualTypeEE7emplaceIJS1_EEENSt9enable_ifIX18is_constructib 505: ; preds = %504, %500 %506 = and i64 %498, 4294967295 %507 = icmp ult i64 %498, 4294967296 - %508 = add nsw i64 %506, -4040 + %508 = add nsw i64 %498, -4040 %spec.select.i.i = select i1 %507, i64 %508, i64 %506 br i1 %507, label %517, label %509 @@ -140529,7 +140529,7 @@ define linkonce_odr hidden void @_ZN5clang13serialization21DataStreamBasicReader 27: ; preds = %26, %22 %28 = and i64 %20, 4294967295 %29 = icmp ult i64 %20, 4294967296 - %30 = add nsw i64 %28, -4040 + %30 = add nsw i64 %20, -4040 %spec.select.i.i23 = select i1 %29, i64 %30, i64 %28 br i1 %29, label %39, label %31 @@ -141273,7 +141273,7 @@ _ZN5clang15ASTRecordReader14readIdentifierEv.exit: ; preds = %22, %45 83: ; preds = %82, %78 %84 = and i64 %76, 4294967295 %85 = icmp ult i64 %76, 4294967296 - %86 = add nsw i64 %84, -4040 + %86 = add nsw i64 %76, -4040 %spec.select.i.i = select i1 %85, i64 %86, i64 %84 br i1 %85, label %95, label %87 @@ -150205,7 +150205,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 26: ; preds = %25, %21 %27 = and i64 %19, 4294967295 %28 = icmp ult i64 %19, 4294967296 - %29 = add nsw i64 %27, -4040 + %29 = add nsw i64 %19, -4040 %spec.select.i.i = select i1 %28, i64 %29, i64 %27 br i1 %28, label %38, label %30 @@ -150272,7 +150272,7 @@ _ZN5clang15ASTRecordReader8readTypeEv.exit: ; preds = %1, %_ZN5clang9ASTRe 69: ; preds = %68, %64 %70 = and i64 %62, 4294967295 %71 = icmp ult i64 %62, 4294967296 - %72 = add nsw i64 %70, -4040 + %72 = add nsw i64 %62, -4040 %spec.select.i.i8 = select i1 %71, i64 %72, i64 %70 br i1 %71, label %81, label %73 @@ -150346,7 +150346,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 26: ; preds = %25, %21 %27 = and i64 %19, 4294967295 %28 = icmp ult i64 %19, 4294967296 - %29 = add nsw i64 %27, -4040 + %29 = add nsw i64 %19, -4040 %spec.select.i.i = select i1 %28, i64 %29, i64 %27 br i1 %28, label %38, label %30 @@ -150429,7 +150429,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 34: ; preds = %33, %29 %35 = and i64 %27, 4294967295 %36 = icmp ult i64 %27, 4294967296 - %37 = add nsw i64 %35, -4040 + %37 = add nsw i64 %27, -4040 %spec.select.i.i = select i1 %36, i64 %37, i64 %35 br i1 %36, label %46, label %38 @@ -150550,7 +150550,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 34: ; preds = %33, %29 %35 = and i64 %27, 4294967295 %36 = icmp ult i64 %27, 4294967296 - %37 = add nsw i64 %35, -4040 + %37 = add nsw i64 %27, -4040 %spec.select.i.i = select i1 %36, i64 %37, i64 %35 br i1 %36, label %46, label %38 @@ -150751,7 +150751,7 @@ _ZNK5clang9ASTReader30ReadUntranslatedSourceLocationEmPNS_22SourceLocationSequen 88: ; preds = %87, %83 %89 = and i64 %81, 4294967295 %90 = icmp ult i64 %81, 4294967296 - %91 = add nsw i64 %89, -4040 + %91 = add nsw i64 %81, -4040 %spec.select.i.i = select i1 %90, i64 %91, i64 %89 br i1 %90, label %100, label %92 @@ -150864,7 +150864,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 26: ; preds = %25, %21 %27 = and i64 %19, 4294967295 %28 = icmp ult i64 %19, 4294967296 - %29 = add nsw i64 %27, -4040 + %29 = add nsw i64 %19, -4040 %spec.select.i.i = select i1 %28, i64 %29, i64 %27 br i1 %28, label %38, label %30 @@ -151049,7 +151049,7 @@ _ZNK5clang9ASTReader30ReadUntranslatedSourceLocationEmPNS_22SourceLocationSequen 88: ; preds = %87, %83 %89 = and i64 %81, 4294967295 %90 = icmp ult i64 %81, 4294967296 - %91 = add nsw i64 %89, -4040 + %91 = add nsw i64 %81, -4040 %spec.select.i.i = select i1 %90, i64 %91, i64 %89 br i1 %90, label %100, label %92 @@ -151162,7 +151162,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 26: ; preds = %25, %21 %27 = and i64 %19, 4294967295 %28 = icmp ult i64 %19, 4294967296 - %29 = add nsw i64 %27, -4040 + %29 = add nsw i64 %19, -4040 %spec.select.i.i = select i1 %28, i64 %29, i64 %27 br i1 %28, label %38, label %30 @@ -151236,7 +151236,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 26: ; preds = %25, %21 %27 = and i64 %19, 4294967295 %28 = icmp ult i64 %19, 4294967296 - %29 = add nsw i64 %27, -4040 + %29 = add nsw i64 %19, -4040 %spec.select.i.i = select i1 %28, i64 %29, i64 %27 br i1 %28, label %38, label %30 @@ -151303,7 +151303,7 @@ _ZN5clang15ASTRecordReader8readTypeEv.exit: ; preds = %1, %_ZN5clang9ASTRe 69: ; preds = %68, %64 %70 = and i64 %62, 4294967295 %71 = icmp ult i64 %62, 4294967296 - %72 = add nsw i64 %70, -4040 + %72 = add nsw i64 %62, -4040 %spec.select.i.i8 = select i1 %71, i64 %72, i64 %70 br i1 %71, label %81, label %73 @@ -151390,7 +151390,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 28: ; preds = %27, %23 %29 = and i64 %21, 4294967295 %30 = icmp ult i64 %21, 4294967296 - %31 = add nsw i64 %29, -4040 + %31 = add nsw i64 %21, -4040 %spec.select.i.i = select i1 %30, i64 %31, i64 %29 br i1 %30, label %40, label %32 @@ -151493,7 +151493,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 26: ; preds = %25, %21 %27 = and i64 %19, 4294967295 %28 = icmp ult i64 %19, 4294967296 - %29 = add nsw i64 %27, -4040 + %29 = add nsw i64 %19, -4040 %spec.select.i.i = select i1 %28, i64 %29, i64 %27 br i1 %28, label %38, label %30 @@ -151569,7 +151569,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 28: ; preds = %27, %23 %29 = and i64 %21, 4294967295 %30 = icmp ult i64 %21, 4294967296 - %31 = add nsw i64 %29, -4040 + %31 = add nsw i64 %21, -4040 %spec.select.i.i = select i1 %30, i64 %31, i64 %29 br i1 %30, label %40, label %32 @@ -151713,7 +151713,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 26: ; preds = %25, %21 %27 = and i64 %19, 4294967295 %28 = icmp ult i64 %19, 4294967296 - %29 = add nsw i64 %27, -4040 + %29 = add nsw i64 %19, -4040 %spec.select.i.i = select i1 %28, i64 %29, i64 %27 br i1 %28, label %38, label %30 @@ -151787,7 +151787,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 26: ; preds = %25, %21 %27 = and i64 %19, 4294967295 %28 = icmp ult i64 %19, 4294967296 - %29 = add nsw i64 %27, -4040 + %29 = add nsw i64 %19, -4040 %spec.select.i.i = select i1 %28, i64 %29, i64 %27 br i1 %28, label %38, label %30 @@ -151870,7 +151870,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 29: ; preds = %28, %24 %30 = and i64 %22, 4294967295 %31 = icmp ult i64 %22, 4294967296 - %32 = add nsw i64 %30, -4040 + %32 = add nsw i64 %22, -4040 %spec.select.i.i.i = select i1 %31, i64 %32, i64 %30 br i1 %31, label %41, label %33 @@ -152038,7 +152038,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 31: ; preds = %30, %26 %32 = and i64 %24, 4294967295 %33 = icmp ult i64 %24, 4294967296 - %34 = add nsw i64 %32, -4040 + %34 = add nsw i64 %24, -4040 %spec.select.i.i = select i1 %33, i64 %34, i64 %32 br i1 %33, label %43, label %35 @@ -152124,7 +152124,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 26: ; preds = %25, %21 %27 = and i64 %19, 4294967295 %28 = icmp ult i64 %19, 4294967296 - %29 = add nsw i64 %27, -4040 + %29 = add nsw i64 %19, -4040 %spec.select.i.i = select i1 %28, i64 %29, i64 %27 br i1 %28, label %38, label %30 @@ -152343,7 +152343,7 @@ _ZN5clang15ASTRecordReader14readIdentifierEv.exit: ; preds = %1, %43 75: ; preds = %74, %70 %76 = and i64 %68, 4294967295 %77 = icmp ult i64 %68, 4294967296 - %78 = add nsw i64 %76, -4040 + %78 = add nsw i64 %68, -4040 %spec.select.i.i.i10 = select i1 %77, i64 %78, i64 %76 br i1 %77, label %87, label %79 @@ -152428,7 +152428,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 26: ; preds = %25, %21 %27 = and i64 %19, 4294967295 %28 = icmp ult i64 %19, 4294967296 - %29 = add nsw i64 %27, -4040 + %29 = add nsw i64 %19, -4040 %spec.select.i.i = select i1 %28, i64 %29, i64 %27 br i1 %28, label %38, label %30 @@ -152682,7 +152682,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 26: ; preds = %25, %21 %27 = and i64 %19, 4294967295 %28 = icmp ult i64 %19, 4294967296 - %29 = add nsw i64 %27, -4040 + %29 = add nsw i64 %19, -4040 %spec.select.i.i = select i1 %28, i64 %29, i64 %27 br i1 %28, label %38, label %30 @@ -152832,7 +152832,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 37: ; preds = %36, %32 %38 = and i64 %30, 4294967295 %39 = icmp ult i64 %30, 4294967296 - %40 = add nsw i64 %38, -4040 + %40 = add nsw i64 %30, -4040 %spec.select.i.i10 = select i1 %39, i64 %40, i64 %38 br i1 %39, label %49, label %41 @@ -152916,7 +152916,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 27: ; preds = %26, %22 %28 = and i64 %20, 4294967295 %29 = icmp ult i64 %20, 4294967296 - %30 = add nsw i64 %28, -4040 + %30 = add nsw i64 %20, -4040 %spec.select.i.i = select i1 %29, i64 %30, i64 %28 br i1 %29, label %39, label %31 @@ -153176,7 +153176,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 97: ; preds = %96, %92 %98 = and i64 %90, 4294967295 %99 = icmp ult i64 %90, 4294967296 - %100 = add nsw i64 %98, -4040 + %100 = add nsw i64 %90, -4040 %spec.select.i.i = select i1 %99, i64 %100, i64 %98 br i1 %99, label %109, label %101 @@ -153458,7 +153458,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 45: ; preds = %44, %40 %46 = and i64 %38, 4294967295 %47 = icmp ult i64 %38, 4294967296 - %48 = add nsw i64 %46, -4040 + %48 = add nsw i64 %38, -4040 %spec.select.i.i = select i1 %47, i64 %48, i64 %46 br i1 %47, label %57, label %49 @@ -153525,7 +153525,7 @@ _ZN5clang15ASTRecordReader8readTypeEv.exit: ; preds = %1, %_ZN5clang9ASTRe 88: ; preds = %87, %83 %89 = and i64 %81, 4294967295 %90 = icmp ult i64 %81, 4294967296 - %91 = add nsw i64 %89, -4040 + %91 = add nsw i64 %81, -4040 %spec.select.i.i9 = select i1 %90, i64 %91, i64 %89 br i1 %90, label %100, label %92 @@ -153613,7 +153613,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 34: ; preds = %33, %29 %35 = and i64 %27, 4294967295 %36 = icmp ult i64 %27, 4294967296 - %37 = add nsw i64 %35, -4040 + %37 = add nsw i64 %27, -4040 %spec.select.i.i = select i1 %36, i64 %37, i64 %35 br i1 %36, label %46, label %38 @@ -153785,7 +153785,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 26: ; preds = %25, %21 %27 = and i64 %19, 4294967295 %28 = icmp ult i64 %19, 4294967296 - %29 = add nsw i64 %27, -4040 + %29 = add nsw i64 %19, -4040 %spec.select.i.i = select i1 %28, i64 %29, i64 %27 br i1 %28, label %38, label %30 @@ -153935,7 +153935,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 44: ; preds = %43, %39 %45 = and i64 %37, 4294967295 %46 = icmp ult i64 %37, 4294967296 - %47 = add nsw i64 %45, -4040 + %47 = add nsw i64 %37, -4040 %spec.select.i.i = select i1 %46, i64 %47, i64 %45 br i1 %46, label %56, label %48 @@ -154064,7 +154064,7 @@ _ZNK5clang9ASTReader30ReadUntranslatedSourceLocationEmPNS_22SourceLocationSequen 66: ; preds = %65, %61 %67 = and i64 %59, 4294967295 %68 = icmp ult i64 %59, 4294967296 - %69 = add nsw i64 %67, -4040 + %69 = add nsw i64 %59, -4040 %spec.select.i.i = select i1 %68, i64 %69, i64 %67 br i1 %68, label %78, label %70 @@ -154144,7 +154144,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 26: ; preds = %25, %21 %27 = and i64 %19, 4294967295 %28 = icmp ult i64 %19, 4294967296 - %29 = add nsw i64 %27, -4040 + %29 = add nsw i64 %19, -4040 %spec.select.i.i = select i1 %28, i64 %29, i64 %27 br i1 %28, label %38, label %30 @@ -154209,7 +154209,7 @@ _ZN5clang15ASTRecordReader8readTypeEv.exit: ; preds = %1, %_ZN5clang9ASTRe 68: ; preds = %67, %63 %69 = and i64 %61, 4294967295 %70 = icmp ult i64 %61, 4294967296 - %71 = add nsw i64 %69, -4040 + %71 = add nsw i64 %61, -4040 %spec.select.i.i6 = select i1 %70, i64 %71, i64 %69 br i1 %70, label %80, label %72 @@ -154282,7 +154282,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 26: ; preds = %25, %21 %27 = and i64 %19, 4294967295 %28 = icmp ult i64 %19, 4294967296 - %29 = add nsw i64 %27, -4040 + %29 = add nsw i64 %19, -4040 %spec.select.i.i = select i1 %28, i64 %29, i64 %27 br i1 %28, label %38, label %30 @@ -154358,7 +154358,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 28: ; preds = %27, %23 %29 = and i64 %21, 4294967295 %30 = icmp ult i64 %21, 4294967296 - %31 = add nsw i64 %29, -4040 + %31 = add nsw i64 %21, -4040 %spec.select.i.i = select i1 %30, i64 %31, i64 %29 br i1 %30, label %40, label %32 @@ -154526,7 +154526,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 26: ; preds = %25, %21 %27 = and i64 %19, 4294967295 %28 = icmp ult i64 %19, 4294967296 - %29 = add nsw i64 %27, -4040 + %29 = add nsw i64 %19, -4040 %spec.select.i.i = select i1 %28, i64 %29, i64 %27 br i1 %28, label %38, label %30 @@ -154616,7 +154616,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 26: ; preds = %25, %21 %27 = and i64 %19, 4294967295 %28 = icmp ult i64 %19, 4294967296 - %29 = add nsw i64 %27, -4040 + %29 = add nsw i64 %19, -4040 %spec.select.i.i = select i1 %28, i64 %29, i64 %27 br i1 %28, label %38, label %30 @@ -154696,7 +154696,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 26: ; preds = %25, %21 %27 = and i64 %19, 4294967295 %28 = icmp ult i64 %19, 4294967296 - %29 = add nsw i64 %27, -4040 + %29 = add nsw i64 %19, -4040 %spec.select.i.i = select i1 %28, i64 %29, i64 %27 br i1 %28, label %38, label %30 @@ -154770,7 +154770,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 26: ; preds = %25, %21 %27 = and i64 %19, 4294967295 %28 = icmp ult i64 %19, 4294967296 - %29 = add nsw i64 %27, -4040 + %29 = add nsw i64 %19, -4040 %spec.select.i.i = select i1 %28, i64 %29, i64 %27 br i1 %28, label %38, label %30 @@ -154855,7 +154855,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 26: ; preds = %25, %21 %27 = and i64 %19, 4294967295 %28 = icmp ult i64 %19, 4294967296 - %29 = add nsw i64 %27, -4040 + %29 = add nsw i64 %19, -4040 %spec.select.i.i = select i1 %28, i64 %29, i64 %27 br i1 %28, label %38, label %30 @@ -154939,7 +154939,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 35: ; preds = %34, %30 %36 = and i64 %28, 4294967295 %37 = icmp ult i64 %28, 4294967296 - %38 = add nsw i64 %36, -4040 + %38 = add nsw i64 %28, -4040 %spec.select.i.i = select i1 %37, i64 %38, i64 %36 br i1 %37, label %47, label %39 @@ -155014,7 +155014,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 26: ; preds = %25, %21 %27 = and i64 %19, 4294967295 %28 = icmp ult i64 %19, 4294967296 - %29 = add nsw i64 %27, -4040 + %29 = add nsw i64 %19, -4040 %spec.select.i.i = select i1 %28, i64 %29, i64 %27 br i1 %28, label %38, label %30 @@ -155128,7 +155128,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 26: ; preds = %25, %21 %27 = and i64 %19, 4294967295 %28 = icmp ult i64 %19, 4294967296 - %29 = add nsw i64 %27, -4040 + %29 = add nsw i64 %19, -4040 %spec.select.i.i = select i1 %28, i64 %29, i64 %27 br i1 %28, label %38, label %30 @@ -155369,7 +155369,7 @@ _ZN5clang13serialization21DataStreamBasicReaderINS_15ASTRecordReaderEE9readArray 57: ; preds = %56, %52 %58 = and i64 %50, 4294967295 %59 = icmp ult i64 %50, 4294967296 - %60 = add nsw i64 %58, -4040 + %60 = add nsw i64 %50, -4040 %spec.select.i.i.i = select i1 %59, i64 %60, i64 %58 br i1 %59, label %69, label %61 @@ -155546,7 +155546,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 26: ; preds = %25, %21 %27 = and i64 %19, 4294967295 %28 = icmp ult i64 %19, 4294967296 - %29 = add nsw i64 %27, -4040 + %29 = add nsw i64 %19, -4040 %spec.select.i.i = select i1 %28, i64 %29, i64 %27 br i1 %28, label %38, label %30 @@ -155639,7 +155639,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 34: ; preds = %33, %29 %35 = and i64 %27, 4294967295 %36 = icmp ult i64 %27, 4294967296 - %37 = add nsw i64 %35, -4040 + %37 = add nsw i64 %27, -4040 %spec.select.i.i = select i1 %36, i64 %37, i64 %35 br i1 %36, label %46, label %38 @@ -155713,7 +155713,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 26: ; preds = %25, %21 %27 = and i64 %19, 4294967295 %28 = icmp ult i64 %19, 4294967296 - %29 = add nsw i64 %27, -4040 + %29 = add nsw i64 %19, -4040 %spec.select.i.i = select i1 %28, i64 %29, i64 %27 br i1 %28, label %38, label %30 @@ -155780,7 +155780,7 @@ _ZN5clang15ASTRecordReader8readTypeEv.exit: ; preds = %1, %_ZN5clang9ASTRe 69: ; preds = %68, %64 %70 = and i64 %62, 4294967295 %71 = icmp ult i64 %62, 4294967296 - %72 = add nsw i64 %70, -4040 + %72 = add nsw i64 %62, -4040 %spec.select.i.i8 = select i1 %71, i64 %72, i64 %70 br i1 %71, label %81, label %73 @@ -155888,7 +155888,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 34: ; preds = %33, %29 %35 = and i64 %27, 4294967295 %36 = icmp ult i64 %27, 4294967296 - %37 = add nsw i64 %35, -4040 + %37 = add nsw i64 %27, -4040 %spec.select.i.i = select i1 %36, i64 %37, i64 %35 br i1 %36, label %46, label %38 @@ -155962,7 +155962,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 26: ; preds = %25, %21 %27 = and i64 %19, 4294967295 %28 = icmp ult i64 %19, 4294967296 - %29 = add nsw i64 %27, -4040 + %29 = add nsw i64 %19, -4040 %spec.select.i.i = select i1 %28, i64 %29, i64 %27 br i1 %28, label %38, label %30 @@ -156058,7 +156058,7 @@ define linkonce_odr hidden i64 @_ZN5clang13serialization18AbstractTypeReaderINS_ 26: ; preds = %25, %21 %27 = and i64 %19, 4294967295 %28 = icmp ult i64 %19, 4294967296 - %29 = add nsw i64 %27, -4040 + %29 = add nsw i64 %19, -4040 %spec.select.i.i = select i1 %28, i64 %29, i64 %27 br i1 %28, label %38, label %30 @@ -156376,7 +156376,7 @@ _ZN4llvm15SmallVectorImplIN5clang8QualTypeEE7reserveEm.exit: ; preds = %2, %15 39: ; preds = %38, %34 %40 = and i64 %32, 4294967295 %41 = icmp ult i64 %32, 4294967296 - %42 = add nsw i64 %40, -4040 + %42 = add nsw i64 %32, -4040 %spec.select.i.i = select i1 %41, i64 %42, i64 %40 br i1 %41, label %51, label %43 diff --git a/bench/llvm/optimized/DbiStreamBuilder.cpp.ll b/bench/llvm/optimized/DbiStreamBuilder.cpp.ll index 9b774c24795..370f3f8e97f 100644 --- a/bench/llvm/optimized/DbiStreamBuilder.cpp.ll +++ b/bench/llvm/optimized/DbiStreamBuilder.cpp.ll @@ -3597,46 +3597,42 @@ define dso_local void @_ZN4llvm3pdb16DbiStreamBuilder16createSectionMapENS_8Arra br i1 %.not19, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %3, %.lr.ph - %.020 = phi ptr [ %22, %.lr.ph ], [ %1, %3 ] - %6 = phi i32 [ %21, %.lr.ph ], [ 0, %3 ] + %.020 = phi ptr [ %21, %.lr.ph ], [ %1, %3 ] + %6 = phi i32 [ %20, %.lr.ph ], [ 0, %3 ] %7 = call fastcc noundef nonnull align 1 dereferenceable(20) ptr @"_ZZN4llvm3pdb16DbiStreamBuilder16createSectionMapENS_8ArrayRefINS_6object12coff_sectionEEEENK3$_0clEv"(ptr nonnull %0, ptr nonnull %4) %8 = getelementptr inbounds nuw i8, ptr %.020, i64 36 call void @llvm.assume(i1 true) [ "align"(ptr %8, i64 1) ] %.0.copyload.i.i.i = load i32, ptr %8, align 1 %9 = lshr i32 %.0.copyload.i.i.i, 30 %10 = trunc nuw nsw i32 %9 to i16 - %spec.select.i = and i16 %10, 1 - %11 = or i16 %10, 2 - %.not1013.i = icmp slt i32 %.0.copyload.i.i.i, 0 - %.1.i = select i1 %.not1013.i, i16 %11, i16 %spec.select.i - %12 = lshr i32 %.0.copyload.i.i.i, 27 - %13 = trunc nuw nsw i32 %12 to i16 - %14 = and i16 %13, 4 - %.2.i = or disjoint i16 %.1.i, %14 - %15 = and i32 %.0.copyload.i.i.i, 131072 - %.not12.i = icmp eq i32 %15, 0 - %16 = or disjoint i16 %.2.i, 8 - %.3.i = select i1 %.not12.i, i16 %16, i16 %.2.i - %17 = or i16 %.3.i, 256 + %11 = lshr i32 %.0.copyload.i.i.i, 27 + %12 = trunc nuw nsw i32 %11 to i16 + %13 = and i16 %12, 4 + %.2.i = or disjoint i16 %13, %10 + %14 = and i32 %.0.copyload.i.i.i, 131072 + %.not12.i = icmp eq i32 %14, 0 + %15 = or disjoint i16 %.2.i, 8 + %.3.i = select i1 %.not12.i, i16 %15, i16 %.2.i + %16 = or disjoint i16 %.3.i, 256 call void @llvm.assume(i1 true) [ "align"(ptr %7, i64 1) ] - store i16 %17, ptr %7, align 1 - %18 = getelementptr inbounds nuw i8, ptr %.020, i64 8 - %19 = getelementptr inbounds nuw i8, ptr %7, i64 16 - %20 = load i32, ptr %18, align 1 - store i32 %20, ptr %19, align 1 - %21 = add nuw nsw i32 %6, 1 - store i32 %21, ptr %4, align 4 - %22 = getelementptr inbounds i8, ptr %.020, i64 40 - %.not = icmp eq ptr %22, %5 + store i16 %16, ptr %7, align 1 + %17 = getelementptr inbounds nuw i8, ptr %.020, i64 8 + %18 = getelementptr inbounds nuw i8, ptr %7, i64 16 + %19 = load i32, ptr %17, align 1 + store i32 %19, ptr %18, align 1 + %20 = add nuw nsw i32 %6, 1 + store i32 %20, ptr %4, align 4 + %21 = getelementptr inbounds i8, ptr %.020, i64 40 + %.not = icmp eq ptr %21, %5 br i1 %.not, label %._crit_edge, label %.lr.ph ._crit_edge: ; preds = %.lr.ph, %3 - %23 = call fastcc noundef nonnull align 1 dereferenceable(20) ptr @"_ZZN4llvm3pdb16DbiStreamBuilder16createSectionMapENS_8ArrayRefINS_6object12coff_sectionEEEENK3$_0clEv"(ptr nonnull %0, ptr nonnull %4) + %22 = call fastcc noundef nonnull align 1 dereferenceable(20) ptr @"_ZZN4llvm3pdb16DbiStreamBuilder16createSectionMapENS_8ArrayRefINS_6object12coff_sectionEEEENK3$_0clEv"(ptr nonnull %0, ptr nonnull %4) + call void @llvm.assume(i1 true) [ "align"(ptr %22, i64 1) ] + store i16 520, ptr %22, align 1 + %23 = getelementptr inbounds nuw i8, ptr %22, i64 16 call void @llvm.assume(i1 true) [ "align"(ptr %23, i64 1) ] - store i16 520, ptr %23, align 1 - %24 = getelementptr inbounds nuw i8, ptr %23, i64 16 - call void @llvm.assume(i1 true) [ "align"(ptr %24, i64 1) ] - store i32 -1, ptr %24, align 1 + store i32 -1, ptr %23, align 1 ret void } diff --git a/bench/llvm/optimized/Metadata.cpp.ll b/bench/llvm/optimized/Metadata.cpp.ll index 00c5b6d1aef..9c1868fa3d6 100644 --- a/bench/llvm/optimized/Metadata.cpp.ll +++ b/bench/llvm/optimized/Metadata.cpp.ll @@ -5925,19 +5925,16 @@ define dso_local noundef nonnull ptr @_ZN4llvm6MDNodenwEmmNS_8Metadata11StorageT %.not.i = icmp eq i32 %2, 0 %4 = select i1 %.not.i, i64 0, i64 2 %.sroa.speculated.i.i = tail call i64 @llvm.umax.i64(i64 %1, i64 %4) - %5 = shl i64 %.sroa.speculated.i.i, 3 - %6 = and i64 %5, 34359738360 %.inv.i = icmp ult i64 %1, 16 - %7 = add nuw nsw i64 %6, 15 - %8 = and i64 %7, 68719476728 - %9 = add nuw nsw i64 %8, 8 - %10 = select i1 %.inv.i, i64 %9, i64 32 - %11 = add i64 %10, %0 - %12 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %11) #26 - %13 = getelementptr inbounds i8, ptr %12, i64 %10 - %14 = getelementptr inbounds i8, ptr %13, i64 -16 - tail call void @_ZN4llvm6MDNode6HeaderC1EmNS_8Metadata11StorageTypeE(ptr noundef nonnull align 8 dereferenceable(12) %14, i64 noundef %1, i32 noundef %2) #23 - ret ptr %13 + %5 = shl i64 %.sroa.speculated.i.i, 3 + %6 = add i64 %5, 16 + %7 = select i1 %.inv.i, i64 %6, i64 32 + %8 = add i64 %7, %0 + %9 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %8) #26 + %10 = getelementptr inbounds i8, ptr %9, i64 %7 + %11 = getelementptr inbounds i8, ptr %10, i64 -16 + tail call void @_ZN4llvm6MDNode6HeaderC1EmNS_8Metadata11StorageTypeE(ptr noundef nonnull align 8 dereferenceable(12) %11, i64 noundef %1, i32 noundef %2) #23 + ret ptr %10 } ; Function Attrs: mustprogress nounwind uwtable @@ -6916,35 +6913,32 @@ _ZNK4llvm6MDNode10getContextEv.exit: ; preds = %_ZNK4llvm6MDNode8op %28 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %4) #23 call void @llvm.experimental.noalias.scope.decl(metadata !113) %.sroa.speculated.i.i.i.i.i = call i64 @llvm.umax.i64(i64 %28, i64 2) - %29 = shl i64 %.sroa.speculated.i.i.i.i.i, 3 - %30 = and i64 %29, 34359738360 %.inv.i.i.i.i = icmp ult i64 %28, 16 - %31 = add nuw nsw i64 %30, 15 - %32 = and i64 %31, 68719476728 - %33 = add nuw nsw i64 %32, 8 - %34 = select i1 %.inv.i.i.i.i, i64 %33, i64 32 - %35 = add nuw nsw i64 %34, 16 - %36 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %35) #26, !noalias !113 - %37 = getelementptr inbounds i8, ptr %36, i64 %34 - %38 = getelementptr inbounds i8, ptr %37, i64 -16 - call void @_ZN4llvm6MDNode6HeaderC1EmNS_8Metadata11StorageTypeE(ptr noundef nonnull align 8 dereferenceable(12) %38, i64 noundef %28, i32 noundef 2) #23, !noalias !113 + %29 = shl i64 %.sroa.speculated.i.i.i.i.i, 3 + %30 = add i64 %29, 16 + %31 = select i1 %.inv.i.i.i.i, i64 %30, i64 32 + %32 = add i64 %31, 16 + %33 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %32) #26, !noalias !113 + %34 = getelementptr inbounds i8, ptr %33, i64 %31 + %35 = getelementptr inbounds i8, ptr %34, i64 -16 + call void @_ZN4llvm6MDNode6HeaderC1EmNS_8Metadata11StorageTypeE(ptr noundef nonnull align 8 dereferenceable(12) %35, i64 noundef %28, i32 noundef 2) #23, !noalias !113 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3), !noalias !113 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %3, i8 0, i64 16, i1 false), !noalias !113 - call void @_ZN4llvm6MDNodeC2ERNS_11LLVMContextEjNS_8Metadata11StorageTypeENS_8ArrayRefIPS3_EES7_(ptr noundef nonnull align 8 dereferenceable(16) %37, ptr noundef nonnull align 8 dereferenceable(8) %.0.i.i, i32 noundef 5, i32 noundef 2, ptr %27, i64 %28, ptr noundef nonnull byval(%"class.llvm::ArrayRef") align 8 %3), !noalias !113 - %39 = getelementptr inbounds nuw i8, ptr %37, i64 4 - store i32 0, ptr %39, align 4, !noalias !113 + call void @_ZN4llvm6MDNodeC2ERNS_11LLVMContextEjNS_8Metadata11StorageTypeENS_8ArrayRefIPS3_EES7_(ptr noundef nonnull align 8 dereferenceable(16) %34, ptr noundef nonnull align 8 dereferenceable(8) %.0.i.i, i32 noundef 5, i32 noundef 2, ptr %27, i64 %28, ptr noundef nonnull byval(%"class.llvm::ArrayRef") align 8 %3), !noalias !113 + %36 = getelementptr inbounds nuw i8, ptr %34, i64 4 + store i32 0, ptr %36, align 4, !noalias !113 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3), !noalias !113 - store ptr %37, ptr %0, align 8, !alias.scope !113 - %40 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %4) #23 - %41 = load ptr, ptr %4, align 8 - %42 = icmp eq ptr %41, %25 - br i1 %42, label %_ZN4llvm11SmallVectorIPNS_8MetadataELj4EED2Ev.exit, label %43 - -43: ; preds = %_ZNK4llvm6MDNode10getContextEv.exit - call void @free(ptr noundef %41) #23 + store ptr %34, ptr %0, align 8, !alias.scope !113 + %37 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %4) #23 + %38 = load ptr, ptr %4, align 8 + %39 = icmp eq ptr %38, %25 + br i1 %39, label %_ZN4llvm11SmallVectorIPNS_8MetadataELj4EED2Ev.exit, label %40 + +40: ; preds = %_ZNK4llvm6MDNode10getContextEv.exit + call void @free(ptr noundef %38) #23 br label %_ZN4llvm11SmallVectorIPNS_8MetadataELj4EED2Ev.exit -_ZN4llvm11SmallVectorIPNS_8MetadataELj4EED2Ev.exit: ; preds = %_ZNK4llvm6MDNode10getContextEv.exit, %43 +_ZN4llvm11SmallVectorIPNS_8MetadataELj4EED2Ev.exit: ; preds = %_ZNK4llvm6MDNode10getContextEv.exit, %40 ret void } @@ -11367,42 +11361,41 @@ define dso_local void @_ZN4llvm6MDNode6HeaderC2EmNS_8Metadata11StorageTypeE(ptr %10 = select i1 %8, i64 2, i64 0 %.sroa.speculated.i = tail call i64 @llvm.umax.i64(i64 %1, i64 %10) %11 = shl i64 %.sroa.speculated.i, 2 - %12 = and i64 %11, 60 - %13 = select i1 %5, i64 %12, i64 8 - %14 = or disjoint i64 %13, %9 - %15 = or disjoint i64 %14, %7 - br i1 %5, label %20, label %16 - -16: ; preds = %3 - %17 = and i64 %15, -963 - %18 = or disjoint i64 %17, 2 - store i64 %18, ptr %0, align 8 - %19 = getelementptr inbounds i8, ptr %0, i64 -16 - tail call void @_ZN4llvm15SmallVectorBaseIjEC2EPvm(ptr noundef nonnull align 8 dereferenceable(16) %19, ptr noundef nonnull %0, i64 noundef 0) #23 - tail call void @_ZN4llvm15SmallVectorImplINS_9MDOperandEE10resizeImplILb0EEEvm(ptr noundef nonnull align 8 dereferenceable(16) %19, i64 noundef %1) + %12 = select i1 %5, i64 %11, i64 8 + %13 = or disjoint i64 %12, %9 + %14 = or disjoint i64 %13, %7 + br i1 %5, label %19, label %15 + +15: ; preds = %3 + %16 = and i64 %14, -963 + %17 = or disjoint i64 %16, 2 + store i64 %17, ptr %0, align 8 + %18 = getelementptr inbounds i8, ptr %0, i64 -16 + tail call void @_ZN4llvm15SmallVectorBaseIjEC2EPvm(ptr noundef nonnull align 8 dereferenceable(16) %18, ptr noundef nonnull %0, i64 noundef 0) #23 + tail call void @_ZN4llvm15SmallVectorImplINS_9MDOperandEE10resizeImplILb0EEEvm(ptr noundef nonnull align 8 dereferenceable(16) %18, i64 noundef %1) br label %.loopexit -20: ; preds = %3 - %21 = shl nuw nsw i64 %1, 6 - %22 = and i64 %15, -963 - %23 = or disjoint i64 %22, %21 - store i64 %23, ptr %0, align 8 +19: ; preds = %3 + %20 = shl nuw nsw i64 %1, 6 + %21 = and i64 %14, -963 + %22 = or disjoint i64 %21, %20 + store i64 %22, ptr %0, align 8 %.not910 = icmp eq i64 %.sroa.speculated.i, 0 br i1 %.not910, label %.loopexit, label %.lr.ph.preheader -.lr.ph.preheader: ; preds = %20 - %24 = sub nsw i64 0, %.sroa.speculated.i - %25 = getelementptr inbounds %"class.llvm::MDOperand", ptr %0, i64 %24 +.lr.ph.preheader: ; preds = %19 + %23 = sub nsw i64 0, %.sroa.speculated.i + %24 = getelementptr inbounds %"class.llvm::MDOperand", ptr %0, i64 %23 br label %.lr.ph .lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph - %.011 = phi ptr [ %26, %.lr.ph ], [ %25, %.lr.ph.preheader ] - %26 = getelementptr inbounds i8, ptr %.011, i64 8 + %.011 = phi ptr [ %25, %.lr.ph ], [ %24, %.lr.ph.preheader ] + %25 = getelementptr inbounds i8, ptr %.011, i64 8 store ptr null, ptr %.011, align 8 - %.not9 = icmp eq ptr %26, %0 + %.not9 = icmp eq ptr %25, %0 br i1 %.not9, label %.loopexit, label %.lr.ph, !llvm.loop !191 -.loopexit: ; preds = %.lr.ph, %20, %16 +.loopexit: ; preds = %.lr.ph, %19, %15 ret void } @@ -19045,159 +19038,153 @@ define dso_local noundef ptr @_ZN4llvm7MDTuple7getImplERNS_11LLVMContextENS_8Arr %10 = alloca %"class.llvm::ArrayRef", align 8 %11 = alloca %"struct.llvm::MDNodeKeyImpl", align 8 %12 = icmp eq i32 %3, 0 - br i1 %12, label %25, label %.split14 + br i1 %12, label %22, label %.split14 .split14: ; preds = %5 %.sroa.speculated.i.i.i = tail call i64 @llvm.umax.i64(i64 %2, i64 2) - %13 = shl i64 %.sroa.speculated.i.i.i, 3 - %14 = and i64 %13, 34359738360 %.inv.i.i = icmp ult i64 %2, 16 - %15 = add nuw nsw i64 %14, 15 - %16 = and i64 %15, 68719476728 - %17 = add nuw nsw i64 %16, 8 - %18 = select i1 %.inv.i.i, i64 %17, i64 32 - %19 = add nuw nsw i64 %18, 16 - %20 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %19) #26 - %21 = getelementptr inbounds i8, ptr %20, i64 %18 - %22 = getelementptr inbounds i8, ptr %21, i64 -16 - tail call void @_ZN4llvm6MDNode6HeaderC1EmNS_8Metadata11StorageTypeE(ptr noundef nonnull align 8 dereferenceable(12) %22, i64 noundef %2, i32 noundef %3) #23 + %13 = shl i64 %.sroa.speculated.i.i.i, 3 + %14 = add i64 %13, 16 + %15 = select i1 %.inv.i.i, i64 %14, i64 32 + %16 = add i64 %15, 16 + %17 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %16) #26 + %18 = getelementptr inbounds i8, ptr %17, i64 %15 + %19 = getelementptr inbounds i8, ptr %18, i64 -16 + tail call void @_ZN4llvm6MDNode6HeaderC1EmNS_8Metadata11StorageTypeE(ptr noundef nonnull align 8 dereferenceable(12) %19, i64 noundef %2, i32 noundef %3) #23 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %10, i8 0, i64 16, i1 false) - tail call void @_ZN4llvm6MDNodeC2ERNS_11LLVMContextEjNS_8Metadata11StorageTypeENS_8ArrayRefIPS3_EES7_(ptr noundef nonnull align 8 dereferenceable(16) %21, ptr noundef nonnull align 8 dereferenceable(8) %0, i32 noundef 5, i32 noundef %3, ptr %1, i64 %2, ptr noundef nonnull byval(%"class.llvm::ArrayRef") align 8 %10) - %23 = getelementptr inbounds nuw i8, ptr %21, i64 4 - store i32 0, ptr %23, align 4 + tail call void @_ZN4llvm6MDNodeC2ERNS_11LLVMContextEjNS_8Metadata11StorageTypeENS_8ArrayRefIPS3_EES7_(ptr noundef nonnull align 8 dereferenceable(16) %18, ptr noundef nonnull align 8 dereferenceable(8) %0, i32 noundef 5, i32 noundef %3, ptr %1, i64 %2, ptr noundef nonnull byval(%"class.llvm::ArrayRef") align 8 %10) + %20 = getelementptr inbounds nuw i8, ptr %18, i64 4 + store i32 0, ptr %20, align 4 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) %cond = icmp eq i32 %3, 1 - br i1 %cond, label %24, label %_ZN4llvm6MDNode9storeImplINS_7MDTupleENS_8DenseSetIPS2_NS_10MDNodeInfoIS2_EEEEEEPT_S9_NS_8Metadata11StorageTypeERT0_.exit + br i1 %cond, label %21, label %_ZN4llvm6MDNode9storeImplINS_7MDTupleENS_8DenseSetIPS2_NS_10MDNodeInfoIS2_EEEEEEPT_S9_NS_8Metadata11StorageTypeERT0_.exit -24: ; preds = %.split14 - tail call void @_ZN4llvm6MDNode22storeDistinctInContextEv(ptr noundef nonnull align 8 dereferenceable(16) %21) +21: ; preds = %.split14 + tail call void @_ZN4llvm6MDNode22storeDistinctInContextEv(ptr noundef nonnull align 8 dereferenceable(16) %18) br label %_ZN4llvm6MDNode9storeImplINS_7MDTupleENS_8DenseSetIPS2_NS_10MDNodeInfoIS2_EEEEEEPT_S9_NS_8Metadata11StorageTypeERT0_.exit -25: ; preds = %5 +22: ; preds = %5 store ptr %1, ptr %11, align 8 %.sroa.3.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %11, i64 8 store i64 %2, ptr %.sroa.3.0..sroa_idx.i.i, align 8 - %26 = getelementptr inbounds nuw i8, ptr %11, i64 16 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %26, i8 0, i64 16, i1 false) - %27 = getelementptr inbounds nuw i8, ptr %11, i64 32 - %28 = tail call noundef i32 @_ZN4llvm12MDNodeOpsKey13calculateHashENS_8ArrayRefIPNS_8MetadataEEE(ptr %1, i64 %2) #23 - store i32 %28, ptr %27, align 8 - %29 = load ptr, ptr %0, align 8 - %30 = getelementptr inbounds nuw i8, ptr %29, i64 576 - %31 = load ptr, ptr %30, align 8 - %32 = getelementptr inbounds nuw i8, ptr %29, i64 592 - %33 = load i32, ptr %32, align 8 - %34 = icmp eq i32 %33, 0 - br i1 %34, label %.loopexit.i.i.i, label %35 - -35: ; preds = %25 - %36 = add i32 %33, -1 - br label %37 - -37: ; preds = %44, %35 - %.pn.i.i.i.i = phi i32 [ %28, %35 ], [ %46, %44 ] - %.015.i.i.i.i = phi i32 [ 1, %35 ], [ %45, %44 ] - %.016.i.i.i.i = and i32 %.pn.i.i.i.i, %36 - %38 = zext i32 %.016.i.i.i.i to i64 - %39 = getelementptr inbounds %"class.llvm::detail::DenseSetPair.930", ptr %31, i64 %38 - %40 = load ptr, ptr %39, align 8 - %magicptr.i.i.i.i.i = ptrtoint ptr %40 to i64 + %23 = getelementptr inbounds nuw i8, ptr %11, i64 16 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %23, i8 0, i64 16, i1 false) + %24 = getelementptr inbounds nuw i8, ptr %11, i64 32 + %25 = tail call noundef i32 @_ZN4llvm12MDNodeOpsKey13calculateHashENS_8ArrayRefIPNS_8MetadataEEE(ptr %1, i64 %2) #23 + store i32 %25, ptr %24, align 8 + %26 = load ptr, ptr %0, align 8 + %27 = getelementptr inbounds nuw i8, ptr %26, i64 576 + %28 = load ptr, ptr %27, align 8 + %29 = getelementptr inbounds nuw i8, ptr %26, i64 592 + %30 = load i32, ptr %29, align 8 + %31 = icmp eq i32 %30, 0 + br i1 %31, label %.loopexit.i.i.i, label %32 + +32: ; preds = %22 + %33 = add i32 %30, -1 + br label %34 + +34: ; preds = %41, %32 + %.pn.i.i.i.i = phi i32 [ %25, %32 ], [ %43, %41 ] + %.015.i.i.i.i = phi i32 [ 1, %32 ], [ %42, %41 ] + %.016.i.i.i.i = and i32 %.pn.i.i.i.i, %33 + %35 = zext i32 %.016.i.i.i.i to i64 + %36 = getelementptr inbounds %"class.llvm::detail::DenseSetPair.930", ptr %28, i64 %35 + %37 = load ptr, ptr %36, align 8 + %magicptr.i.i.i.i.i = ptrtoint ptr %37 to i64 switch i64 %magicptr.i.i.i.i.i, label %_ZN4llvm10MDNodeInfoINS_7MDTupleEE7isEqualERKNS_13MDNodeKeyImplIS1_EEPKS1_.exit.i.i.i.i [ i64 -4096, label %_ZN4llvm10MDNodeInfoINS_7MDTupleEE7isEqualERKNS_13MDNodeKeyImplIS1_EEPKS1_.exit.thread.i.i.i.i i64 -8192, label %_ZN4llvm10MDNodeInfoINS_7MDTupleEE7isEqualERKNS_13MDNodeKeyImplIS1_EEPKS1_.exit.thread.i.i.i.i ] -_ZN4llvm10MDNodeInfoINS_7MDTupleEE7isEqualERKNS_13MDNodeKeyImplIS1_EEPKS1_.exit.i.i.i.i: ; preds = %37 - %41 = call noundef zeroext i1 @_ZNK4llvm12MDNodeOpsKey10compareOpsINS_7MDTupleEEEbPKT_j(ptr noundef nonnull align 8 dereferenceable(36) %11, ptr noundef %40, i32 noundef 0) - br i1 %41, label %_ZN4llvm6detail12DenseSetImplIPNS_7MDTupleENS_8DenseMapIS3_NS0_13DenseSetEmptyENS_10MDNodeInfoIS2_EENS0_12DenseSetPairIS3_EEEES7_E7find_asINS_13MDNodeKeyImplIS2_EEEENSB_8IteratorERKT_.exit.loopexit.i, label %_ZN4llvm10MDNodeInfoINS_7MDTupleEE7isEqualERKNS_13MDNodeKeyImplIS1_EEPKS1_.exit.threadthread-pre-split.i.i.i.i +_ZN4llvm10MDNodeInfoINS_7MDTupleEE7isEqualERKNS_13MDNodeKeyImplIS1_EEPKS1_.exit.i.i.i.i: ; preds = %34 + %38 = call noundef zeroext i1 @_ZNK4llvm12MDNodeOpsKey10compareOpsINS_7MDTupleEEEbPKT_j(ptr noundef nonnull align 8 dereferenceable(36) %11, ptr noundef %37, i32 noundef 0) + br i1 %38, label %_ZN4llvm6detail12DenseSetImplIPNS_7MDTupleENS_8DenseMapIS3_NS0_13DenseSetEmptyENS_10MDNodeInfoIS2_EENS0_12DenseSetPairIS3_EEEES7_E7find_asINS_13MDNodeKeyImplIS2_EEEENSB_8IteratorERKT_.exit.loopexit.i, label %_ZN4llvm10MDNodeInfoINS_7MDTupleEE7isEqualERKNS_13MDNodeKeyImplIS1_EEPKS1_.exit.threadthread-pre-split.i.i.i.i _ZN4llvm10MDNodeInfoINS_7MDTupleEE7isEqualERKNS_13MDNodeKeyImplIS1_EEPKS1_.exit.threadthread-pre-split.i.i.i.i: ; preds = %_ZN4llvm10MDNodeInfoINS_7MDTupleEE7isEqualERKNS_13MDNodeKeyImplIS1_EEPKS1_.exit.i.i.i.i - %.pr.i.i.i.i = load ptr, ptr %39, align 8 + %.pr.i.i.i.i = load ptr, ptr %36, align 8 br label %_ZN4llvm10MDNodeInfoINS_7MDTupleEE7isEqualERKNS_13MDNodeKeyImplIS1_EEPKS1_.exit.thread.i.i.i.i -_ZN4llvm10MDNodeInfoINS_7MDTupleEE7isEqualERKNS_13MDNodeKeyImplIS1_EEPKS1_.exit.thread.i.i.i.i: ; preds = %_ZN4llvm10MDNodeInfoINS_7MDTupleEE7isEqualERKNS_13MDNodeKeyImplIS1_EEPKS1_.exit.threadthread-pre-split.i.i.i.i, %37, %37 - %42 = phi ptr [ %.pr.i.i.i.i, %_ZN4llvm10MDNodeInfoINS_7MDTupleEE7isEqualERKNS_13MDNodeKeyImplIS1_EEPKS1_.exit.threadthread-pre-split.i.i.i.i ], [ %40, %37 ], [ %40, %37 ] - %43 = icmp eq ptr %42, inttoptr (i64 -4096 to ptr) - br i1 %43, label %.loopexit.loopexit.i.i.i, label %44 +_ZN4llvm10MDNodeInfoINS_7MDTupleEE7isEqualERKNS_13MDNodeKeyImplIS1_EEPKS1_.exit.thread.i.i.i.i: ; preds = %_ZN4llvm10MDNodeInfoINS_7MDTupleEE7isEqualERKNS_13MDNodeKeyImplIS1_EEPKS1_.exit.threadthread-pre-split.i.i.i.i, %34, %34 + %39 = phi ptr [ %.pr.i.i.i.i, %_ZN4llvm10MDNodeInfoINS_7MDTupleEE7isEqualERKNS_13MDNodeKeyImplIS1_EEPKS1_.exit.threadthread-pre-split.i.i.i.i ], [ %37, %34 ], [ %37, %34 ] + %40 = icmp eq ptr %39, inttoptr (i64 -4096 to ptr) + br i1 %40, label %.loopexit.loopexit.i.i.i, label %41 -44: ; preds = %_ZN4llvm10MDNodeInfoINS_7MDTupleEE7isEqualERKNS_13MDNodeKeyImplIS1_EEPKS1_.exit.thread.i.i.i.i - %45 = add i32 %.015.i.i.i.i, 1 - %46 = add i32 %.016.i.i.i.i, %.015.i.i.i.i - br label %37, !llvm.loop !225 +41: ; preds = %_ZN4llvm10MDNodeInfoINS_7MDTupleEE7isEqualERKNS_13MDNodeKeyImplIS1_EEPKS1_.exit.thread.i.i.i.i + %42 = add i32 %.015.i.i.i.i, 1 + %43 = add i32 %.016.i.i.i.i, %.015.i.i.i.i + br label %34, !llvm.loop !225 .loopexit.loopexit.i.i.i: ; preds = %_ZN4llvm10MDNodeInfoINS_7MDTupleEE7isEqualERKNS_13MDNodeKeyImplIS1_EEPKS1_.exit.thread.i.i.i.i - %.pre.i.i.i = load ptr, ptr %30, align 8 - %.pre12.i.i.i = load i32, ptr %32, align 8 - %47 = zext i32 %.pre12.i.i.i to i64 + %.pre.i.i.i = load ptr, ptr %27, align 8 + %.pre12.i.i.i = load i32, ptr %29, align 8 + %44 = zext i32 %.pre12.i.i.i to i64 br label %.loopexit.i.i.i -.loopexit.i.i.i: ; preds = %.loopexit.loopexit.i.i.i, %25 - %48 = phi i32 [ %.pre12.i.i.i, %.loopexit.loopexit.i.i.i ], [ 0, %25 ] - %49 = phi i64 [ %47, %.loopexit.loopexit.i.i.i ], [ 0, %25 ] - %50 = phi ptr [ %.pre.i.i.i, %.loopexit.loopexit.i.i.i ], [ %31, %25 ] - %51 = getelementptr inbounds %"class.llvm::detail::DenseSetPair.930", ptr %50, i64 %49 +.loopexit.i.i.i: ; preds = %.loopexit.loopexit.i.i.i, %22 + %45 = phi i32 [ %.pre12.i.i.i, %.loopexit.loopexit.i.i.i ], [ 0, %22 ] + %46 = phi i64 [ %44, %.loopexit.loopexit.i.i.i ], [ 0, %22 ] + %47 = phi ptr [ %.pre.i.i.i, %.loopexit.loopexit.i.i.i ], [ %28, %22 ] + %48 = getelementptr inbounds %"class.llvm::detail::DenseSetPair.930", ptr %47, i64 %46 br label %_ZN4llvm6detail12DenseSetImplIPNS_7MDTupleENS_8DenseMapIS3_NS0_13DenseSetEmptyENS_10MDNodeInfoIS2_EENS0_12DenseSetPairIS3_EEEES7_E7find_asINS_13MDNodeKeyImplIS2_EEEENSB_8IteratorERKT_.exit.i _ZN4llvm6detail12DenseSetImplIPNS_7MDTupleENS_8DenseMapIS3_NS0_13DenseSetEmptyENS_10MDNodeInfoIS2_EENS0_12DenseSetPairIS3_EEEES7_E7find_asINS_13MDNodeKeyImplIS2_EEEENSB_8IteratorERKT_.exit.loopexit.i: ; preds = %_ZN4llvm10MDNodeInfoINS_7MDTupleEE7isEqualERKNS_13MDNodeKeyImplIS1_EEPKS1_.exit.i.i.i.i - %.pre.i23 = load ptr, ptr %30, align 8 - %.pre7.i = load i32, ptr %32, align 8 + %.pre.i23 = load ptr, ptr %27, align 8 + %.pre7.i = load i32, ptr %29, align 8 br label %_ZN4llvm6detail12DenseSetImplIPNS_7MDTupleENS_8DenseMapIS3_NS0_13DenseSetEmptyENS_10MDNodeInfoIS2_EENS0_12DenseSetPairIS3_EEEES7_E7find_asINS_13MDNodeKeyImplIS2_EEEENSB_8IteratorERKT_.exit.i _ZN4llvm6detail12DenseSetImplIPNS_7MDTupleENS_8DenseMapIS3_NS0_13DenseSetEmptyENS_10MDNodeInfoIS2_EENS0_12DenseSetPairIS3_EEEES7_E7find_asINS_13MDNodeKeyImplIS2_EEEENSB_8IteratorERKT_.exit.i: ; preds = %_ZN4llvm6detail12DenseSetImplIPNS_7MDTupleENS_8DenseMapIS3_NS0_13DenseSetEmptyENS_10MDNodeInfoIS2_EENS0_12DenseSetPairIS3_EEEES7_E7find_asINS_13MDNodeKeyImplIS2_EEEENSB_8IteratorERKT_.exit.loopexit.i, %.loopexit.i.i.i - %52 = phi i32 [ %48, %.loopexit.i.i.i ], [ %.pre7.i, %_ZN4llvm6detail12DenseSetImplIPNS_7MDTupleENS_8DenseMapIS3_NS0_13DenseSetEmptyENS_10MDNodeInfoIS2_EENS0_12DenseSetPairIS3_EEEES7_E7find_asINS_13MDNodeKeyImplIS2_EEEENSB_8IteratorERKT_.exit.loopexit.i ] - %53 = phi ptr [ %50, %.loopexit.i.i.i ], [ %.pre.i23, %_ZN4llvm6detail12DenseSetImplIPNS_7MDTupleENS_8DenseMapIS3_NS0_13DenseSetEmptyENS_10MDNodeInfoIS2_EENS0_12DenseSetPairIS3_EEEES7_E7find_asINS_13MDNodeKeyImplIS2_EEEENSB_8IteratorERKT_.exit.loopexit.i ] - %.pn9.i.i.i = phi ptr [ %51, %.loopexit.i.i.i ], [ %39, %_ZN4llvm6detail12DenseSetImplIPNS_7MDTupleENS_8DenseMapIS3_NS0_13DenseSetEmptyENS_10MDNodeInfoIS2_EENS0_12DenseSetPairIS3_EEEES7_E7find_asINS_13MDNodeKeyImplIS2_EEEENSB_8IteratorERKT_.exit.loopexit.i ] - %54 = zext i32 %52 to i64 - %55 = getelementptr inbounds %"class.llvm::detail::DenseSetPair.930", ptr %53, i64 %54 - %56 = icmp eq ptr %.pn9.i.i.i, %55 - br i1 %56, label %_ZN4llvmL10getUniquedINS_7MDTupleENS_10MDNodeInfoIS1_EEEEPT_RNS_8DenseSetIS5_T0_EERKNS7_5KeyTyE.exit, label %57 - -57: ; preds = %_ZN4llvm6detail12DenseSetImplIPNS_7MDTupleENS_8DenseMapIS3_NS0_13DenseSetEmptyENS_10MDNodeInfoIS2_EENS0_12DenseSetPairIS3_EEEES7_E7find_asINS_13MDNodeKeyImplIS2_EEEENSB_8IteratorERKT_.exit.i - %58 = load ptr, ptr %.pn9.i.i.i, align 8 + %49 = phi i32 [ %45, %.loopexit.i.i.i ], [ %.pre7.i, %_ZN4llvm6detail12DenseSetImplIPNS_7MDTupleENS_8DenseMapIS3_NS0_13DenseSetEmptyENS_10MDNodeInfoIS2_EENS0_12DenseSetPairIS3_EEEES7_E7find_asINS_13MDNodeKeyImplIS2_EEEENSB_8IteratorERKT_.exit.loopexit.i ] + %50 = phi ptr [ %47, %.loopexit.i.i.i ], [ %.pre.i23, %_ZN4llvm6detail12DenseSetImplIPNS_7MDTupleENS_8DenseMapIS3_NS0_13DenseSetEmptyENS_10MDNodeInfoIS2_EENS0_12DenseSetPairIS3_EEEES7_E7find_asINS_13MDNodeKeyImplIS2_EEEENSB_8IteratorERKT_.exit.loopexit.i ] + %.pn9.i.i.i = phi ptr [ %48, %.loopexit.i.i.i ], [ %36, %_ZN4llvm6detail12DenseSetImplIPNS_7MDTupleENS_8DenseMapIS3_NS0_13DenseSetEmptyENS_10MDNodeInfoIS2_EENS0_12DenseSetPairIS3_EEEES7_E7find_asINS_13MDNodeKeyImplIS2_EEEENSB_8IteratorERKT_.exit.loopexit.i ] + %51 = zext i32 %49 to i64 + %52 = getelementptr inbounds %"class.llvm::detail::DenseSetPair.930", ptr %50, i64 %51 + %53 = icmp eq ptr %.pn9.i.i.i, %52 + br i1 %53, label %_ZN4llvmL10getUniquedINS_7MDTupleENS_10MDNodeInfoIS1_EEEEPT_RNS_8DenseSetIS5_T0_EERKNS7_5KeyTyE.exit, label %54 + +54: ; preds = %_ZN4llvm6detail12DenseSetImplIPNS_7MDTupleENS_8DenseMapIS3_NS0_13DenseSetEmptyENS_10MDNodeInfoIS2_EENS0_12DenseSetPairIS3_EEEES7_E7find_asINS_13MDNodeKeyImplIS2_EEEENSB_8IteratorERKT_.exit.i + %55 = load ptr, ptr %.pn9.i.i.i, align 8 br label %_ZN4llvmL10getUniquedINS_7MDTupleENS_10MDNodeInfoIS1_EEEEPT_RNS_8DenseSetIS5_T0_EERKNS7_5KeyTyE.exit -_ZN4llvmL10getUniquedINS_7MDTupleENS_10MDNodeInfoIS1_EEEEPT_RNS_8DenseSetIS5_T0_EERKNS7_5KeyTyE.exit: ; preds = %_ZN4llvm6detail12DenseSetImplIPNS_7MDTupleENS_8DenseMapIS3_NS0_13DenseSetEmptyENS_10MDNodeInfoIS2_EENS0_12DenseSetPairIS3_EEEES7_E7find_asINS_13MDNodeKeyImplIS2_EEEENSB_8IteratorERKT_.exit.i, %57 - %59 = phi ptr [ %58, %57 ], [ null, %_ZN4llvm6detail12DenseSetImplIPNS_7MDTupleENS_8DenseMapIS3_NS0_13DenseSetEmptyENS_10MDNodeInfoIS2_EENS0_12DenseSetPairIS3_EEEES7_E7find_asINS_13MDNodeKeyImplIS2_EEEENSB_8IteratorERKT_.exit.i ] - %.not = icmp eq ptr %59, null +_ZN4llvmL10getUniquedINS_7MDTupleENS_10MDNodeInfoIS1_EEEEPT_RNS_8DenseSetIS5_T0_EERKNS7_5KeyTyE.exit: ; preds = %_ZN4llvm6detail12DenseSetImplIPNS_7MDTupleENS_8DenseMapIS3_NS0_13DenseSetEmptyENS_10MDNodeInfoIS2_EENS0_12DenseSetPairIS3_EEEES7_E7find_asINS_13MDNodeKeyImplIS2_EEEENSB_8IteratorERKT_.exit.i, %54 + %56 = phi ptr [ %55, %54 ], [ null, %_ZN4llvm6detail12DenseSetImplIPNS_7MDTupleENS_8DenseMapIS3_NS0_13DenseSetEmptyENS_10MDNodeInfoIS2_EENS0_12DenseSetPairIS3_EEEES7_E7find_asINS_13MDNodeKeyImplIS2_EEEENSB_8IteratorERKT_.exit.i ] + %.not = icmp eq ptr %56, null %brmerge.not = and i1 %4, %.not br i1 %brmerge.not, label %.split, label %_ZN4llvm6MDNode9storeImplINS_7MDTupleENS_8DenseSetIPS2_NS_10MDNodeInfoIS2_EEEEEEPT_S9_NS_8Metadata11StorageTypeERT0_.exit .split: ; preds = %_ZN4llvmL10getUniquedINS_7MDTupleENS_10MDNodeInfoIS1_EEEEPT_RNS_8DenseSetIS5_T0_EERKNS7_5KeyTyE.exit - %60 = load i32, ptr %27, align 8 - %61 = shl i64 %2, 3 - %62 = and i64 %61, 34359738360 + %57 = load i32, ptr %24, align 8 %.inv.i.i25 = icmp ult i64 %2, 16 - %63 = add nuw nsw i64 %62, 15 - %64 = and i64 %63, 68719476728 - %65 = add nuw nsw i64 %64, 8 - %66 = select i1 %.inv.i.i25, i64 %65, i64 32 - %67 = add nuw nsw i64 %66, 16 - %68 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %67) #26 - %69 = getelementptr inbounds i8, ptr %68, i64 %66 - %70 = getelementptr inbounds i8, ptr %69, i64 -16 - call void @_ZN4llvm6MDNode6HeaderC1EmNS_8Metadata11StorageTypeE(ptr noundef nonnull align 8 dereferenceable(12) %70, i64 noundef %2, i32 noundef 0) #23 + %58 = shl i64 %2, 3 + %59 = add i64 %58, 16 + %60 = select i1 %.inv.i.i25, i64 %59, i64 32 + %61 = add i64 %60, 16 + %62 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %61) #26 + %63 = getelementptr inbounds i8, ptr %62, i64 %60 + %64 = getelementptr inbounds i8, ptr %63, i64 -16 + call void @_ZN4llvm6MDNode6HeaderC1EmNS_8Metadata11StorageTypeE(ptr noundef nonnull align 8 dereferenceable(12) %64, i64 noundef %2, i32 noundef 0) #23 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %9, i8 0, i64 16, i1 false) - call void @_ZN4llvm6MDNodeC2ERNS_11LLVMContextEjNS_8Metadata11StorageTypeENS_8ArrayRefIPS3_EES7_(ptr noundef nonnull align 8 dereferenceable(16) %69, ptr noundef nonnull align 8 dereferenceable(8) %0, i32 noundef 5, i32 noundef 0, ptr %1, i64 %2, ptr noundef nonnull byval(%"class.llvm::ArrayRef") align 8 %9) - %71 = getelementptr inbounds nuw i8, ptr %69, i64 4 - store i32 %60, ptr %71, align 4 + call void @_ZN4llvm6MDNodeC2ERNS_11LLVMContextEjNS_8Metadata11StorageTypeENS_8ArrayRefIPS3_EES7_(ptr noundef nonnull align 8 dereferenceable(16) %63, ptr noundef nonnull align 8 dereferenceable(8) %0, i32 noundef 5, i32 noundef 0, ptr %1, i64 %2, ptr noundef nonnull byval(%"class.llvm::ArrayRef") align 8 %9) + %65 = getelementptr inbounds nuw i8, ptr %63, i64 4 + store i32 %57, ptr %65, align 4 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) - %72 = load ptr, ptr %0, align 8 - %73 = getelementptr inbounds nuw i8, ptr %72, i64 576 + %66 = load ptr, ptr %0, align 8 + %67 = getelementptr inbounds nuw i8, ptr %66, i64 576 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) - store ptr %69, ptr %8, align 8 + store ptr %63, ptr %8, align 8 call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) - call void @_ZN4llvm12DenseMapBaseINS_8DenseMapIPNS_7MDTupleENS_6detail13DenseSetEmptyENS_10MDNodeInfoIS2_EENS4_12DenseSetPairIS3_EEEES3_S5_S7_S9_E11try_emplaceIJRS5_EEESt4pairINS_16DenseMapIteratorIS3_S5_S7_S9_Lb0EEEbERKS3_DpOT_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.927") align 8 %7, ptr noundef nonnull align 1 dereferenceable(1) %73, ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 1 dereferenceable(1) %6), !noalias !401 + call void @_ZN4llvm12DenseMapBaseINS_8DenseMapIPNS_7MDTupleENS_6detail13DenseSetEmptyENS_10MDNodeInfoIS2_EENS4_12DenseSetPairIS3_EEEES3_S5_S7_S9_E11try_emplaceIJRS5_EEESt4pairINS_16DenseMapIteratorIS3_S5_S7_S9_Lb0EEEbERKS3_DpOT_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.927") align 8 %7, ptr noundef nonnull align 1 dereferenceable(1) %67, ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 1 dereferenceable(1) %6), !noalias !401 call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) %.pre.i26 = load ptr, ptr %8, align 8 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) br label %_ZN4llvm6MDNode9storeImplINS_7MDTupleENS_8DenseSetIPS2_NS_10MDNodeInfoIS2_EEEEEEPT_S9_NS_8Metadata11StorageTypeERT0_.exit -_ZN4llvm6MDNode9storeImplINS_7MDTupleENS_8DenseSetIPS2_NS_10MDNodeInfoIS2_EEEEEEPT_S9_NS_8Metadata11StorageTypeERT0_.exit: ; preds = %24, %.split14, %_ZN4llvmL10getUniquedINS_7MDTupleENS_10MDNodeInfoIS1_EEEEPT_RNS_8DenseSetIS5_T0_EERKNS7_5KeyTyE.exit, %.split - %.0 = phi ptr [ %59, %_ZN4llvmL10getUniquedINS_7MDTupleENS_10MDNodeInfoIS1_EEEEPT_RNS_8DenseSetIS5_T0_EERKNS7_5KeyTyE.exit ], [ %.pre.i26, %.split ], [ %21, %.split14 ], [ %21, %24 ] +_ZN4llvm6MDNode9storeImplINS_7MDTupleENS_8DenseSetIPS2_NS_10MDNodeInfoIS2_EEEEEEPT_S9_NS_8Metadata11StorageTypeERT0_.exit: ; preds = %21, %.split14, %_ZN4llvmL10getUniquedINS_7MDTupleENS_10MDNodeInfoIS1_EEEEPT_RNS_8DenseSetIS5_T0_EERKNS7_5KeyTyE.exit, %.split + %.0 = phi ptr [ %56, %_ZN4llvmL10getUniquedINS_7MDTupleENS_10MDNodeInfoIS1_EEEEPT_RNS_8DenseSetIS5_T0_EERKNS7_5KeyTyE.exit ], [ %.pre.i26, %.split ], [ %18, %.split14 ], [ %18, %21 ] ret ptr %.0 } diff --git a/bench/meilisearch-rs/optimized/134vr9xz294dqnvo.ll b/bench/meilisearch-rs/optimized/134vr9xz294dqnvo.ll index fcf29715f2f..238cda3ff48 100644 --- a/bench/meilisearch-rs/optimized/134vr9xz294dqnvo.ll +++ b/bench/meilisearch-rs/optimized/134vr9xz294dqnvo.ll @@ -23588,7 +23588,7 @@ define hidden void @"_ZN4core3ptr114drop_in_place$LT$core..option..Option$LT$tok tail call void @llvm.experimental.noalias.scope.decl(metadata !7567) %6 = add i64 %2, 9223372036854775807 %7 = icmp ult i64 %6, 6 - %8 = xor i64 %2, -9223372036854775808 + %8 = and i64 %2, 7 %9 = select i1 %7, i64 %8, i64 0 switch i64 %9, label %"_ZN4core3ptr86drop_in_place$LT$tokio..sync..mpsc..block..Read$LT$tracing_trace..entry..Entry$GT$$GT$17he4c3a051556d7e1bE.llvm.4616129397091597767.exit" [ i64 0, label %10 @@ -25711,7 +25711,7 @@ common.ret: ; preds = %common.ret.sink.spl %12 = load i64, ptr %10, align 8, !range !8474, !alias.scope !8475, !noalias !8467, !noundef !4 %13 = add i64 %12, 9223372036854775807 %14 = icmp ult i64 %13, 6 - %15 = xor i64 %12, -9223372036854775808 + %15 = and i64 %12, 7 %16 = select i1 %14, i64 %15, i64 0 switch i64 %16, label %"_ZN4core3ptr48drop_in_place$LT$tracing_trace..entry..Entry$GT$17hf40ce887684ee90eE.llvm.4616129397091597767.exit.i.i.i" [ i64 0, label %17 @@ -25883,7 +25883,7 @@ common.resume: ; preds = %98, %103, %34, %94, %74 = load i64, ptr %72, align 8, !range !8474, !alias.scope !8573, !noalias !8566, !noundef !4 %75 = add i64 %74, 9223372036854775807 %76 = icmp ult i64 %75, 6 - %77 = xor i64 %74, -9223372036854775808 + %77 = and i64 %74, 7 %78 = select i1 %76, i64 %77, i64 0 switch i64 %78, label %"_ZN4core3ptr48drop_in_place$LT$tracing_trace..entry..Entry$GT$17hf40ce887684ee90eE.llvm.4616129397091597767.exit.i.i.i14" [ i64 0, label %79 @@ -58582,7 +58582,7 @@ define hidden void @"_ZN4core3ptr205drop_in_place$LT$$LP$tokio..sync..mpsc..unbo %13 = load i64, ptr %11, align 8, !range !8474, !alias.scope !22172, !noalias !22165, !noundef !4 %14 = add i64 %13, 9223372036854775807 %15 = icmp ult i64 %14, 6 - %16 = xor i64 %13, -9223372036854775808 + %16 = and i64 %13, 7 %17 = select i1 %15, i64 %16, i64 0 switch i64 %17, label %"_ZN4core3ptr48drop_in_place$LT$tracing_trace..entry..Entry$GT$17hf40ce887684ee90eE.llvm.4616129397091597767.exit.i.i.i" [ i64 0, label %18 @@ -125629,7 +125629,7 @@ define hidden void @"_ZN4core3ptr48drop_in_place$LT$tracing_trace..entry..Entry$ %2 = load i64, ptr %0, align 8, !range !8474, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 6 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 7 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN4core3ptr52drop_in_place$LT$tracing_trace..entry..NewThread$GT$17h1d47042e7dd800ceE.exit" [ i64 0, label %7 @@ -126304,7 +126304,7 @@ define internal fastcc void @"_ZN4core3ptr49drop_in_place$LT$flate2..gz..bufread %2 = load i64, ptr %0, align 8, !range !22835, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 4 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 7 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %7 [ i64 0, label %31 @@ -147642,7 +147642,7 @@ define hidden void @"_ZN4core3ptr58drop_in_place$LT$$u5b$tracing_trace..entry..E %6 = load i64, ptr %4, align 8, !range !8474, !alias.scope !64112, !noundef !4 %7 = add i64 %6, 9223372036854775807 %8 = icmp ult i64 %7, 6 - %9 = xor i64 %6, -9223372036854775808 + %9 = and i64 %6, 7 %10 = select i1 %8, i64 %9, i64 0 switch i64 %10, label %"_ZN4core3ptr48drop_in_place$LT$tracing_trace..entry..Entry$GT$17hf40ce887684ee90eE.llvm.4616129397091597767.exit" [ i64 0, label %11 @@ -164486,125 +164486,128 @@ define hidden void @"_ZN4core3ptr66drop_in_place$LT$jsonwebtoken..validation..Cl tail call void @llvm.experimental.noalias.scope.decl(metadata !72912) %3 = load i64, ptr %2, align 8, !range !350, !alias.scope !72912, !noundef !4 %4 = icmp ult i64 %3, -9223372036854775807 - br i1 %4, label %5, label %"_ZN4core3ptr92drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$alloc..borrow..Cow$LT$str$GT$$GT$$GT$17hfba4a7503b244ec7E.llvm.4616129397091597767.exit" + %5 = and i64 %3, 3 + %cond1.i = icmp eq i64 %5, 0 + %cond.i = or i1 %4, %cond1.i + br i1 %cond.i, label %6, label %"_ZN4core3ptr92drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$alloc..borrow..Cow$LT$str$GT$$GT$$GT$17hfba4a7503b244ec7E.llvm.4616129397091597767.exit" -5: ; preds = %1 +6: ; preds = %1 tail call void @llvm.experimental.noalias.scope.decl(metadata !72915) - %6 = icmp eq i64 %3, -9223372036854775808 - br i1 %6, label %"_ZN4core3ptr92drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$alloc..borrow..Cow$LT$str$GT$$GT$$GT$17hfba4a7503b244ec7E.llvm.4616129397091597767.exit", label %7 + %7 = icmp eq i64 %3, -9223372036854775808 + br i1 %7, label %"_ZN4core3ptr92drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$alloc..borrow..Cow$LT$str$GT$$GT$$GT$17hfba4a7503b244ec7E.llvm.4616129397091597767.exit", label %8 -7: ; preds = %5 +8: ; preds = %6 tail call void @llvm.experimental.noalias.scope.decl(metadata !72918) tail call void @llvm.experimental.noalias.scope.decl(metadata !72921) tail call void @llvm.experimental.noalias.scope.decl(metadata !72924) tail call void @llvm.experimental.noalias.scope.decl(metadata !72927) - %8 = icmp eq i64 %3, 0 - br i1 %8, label %"_ZN4core3ptr92drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$alloc..borrow..Cow$LT$str$GT$$GT$$GT$17hfba4a7503b244ec7E.llvm.4616129397091597767.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.4616129397091597767.exit.i.i1.i.i.i.i" + %9 = icmp eq i64 %3, 0 + br i1 %9, label %"_ZN4core3ptr92drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$alloc..borrow..Cow$LT$str$GT$$GT$$GT$17hfba4a7503b244ec7E.llvm.4616129397091597767.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.4616129397091597767.exit.i.i1.i.i.i.i" -"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.4616129397091597767.exit.i.i1.i.i.i.i": ; preds = %7 - %9 = getelementptr inbounds i8, ptr %0, i64 152 - %10 = load ptr, ptr %9, align 8, !alias.scope !72930, !noalias !72933, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %10, i64 noundef %3, i64 noundef 1) #31, !noalias !72935 +"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.4616129397091597767.exit.i.i1.i.i.i.i": ; preds = %8 + %10 = getelementptr inbounds i8, ptr %0, i64 152 + %11 = load ptr, ptr %10, align 8, !alias.scope !72930, !noalias !72933, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %11, i64 noundef %3, i64 noundef 1) #31, !noalias !72935 br label %"_ZN4core3ptr92drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$alloc..borrow..Cow$LT$str$GT$$GT$$GT$17hfba4a7503b244ec7E.llvm.4616129397091597767.exit" -"_ZN4core3ptr92drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$alloc..borrow..Cow$LT$str$GT$$GT$$GT$17hfba4a7503b244ec7E.llvm.4616129397091597767.exit": ; preds = %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.4616129397091597767.exit.i.i1.i.i.i.i", %7, %5, %1 - %11 = getelementptr inbounds i8, ptr %0, i64 32 +"_ZN4core3ptr92drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$alloc..borrow..Cow$LT$str$GT$$GT$$GT$17hfba4a7503b244ec7E.llvm.4616129397091597767.exit": ; preds = %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.4616129397091597767.exit.i.i1.i.i.i.i", %8, %6, %1 + %12 = getelementptr inbounds i8, ptr %0, i64 32 tail call void @llvm.experimental.noalias.scope.decl(metadata !72936) - %12 = load i64, ptr %11, align 8, !range !326, !alias.scope !72936, !noundef !4 - %cond.i = icmp eq i64 %12, 0 - br i1 %cond.i, label %13, label %"_ZN4core3ptr95drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$jsonwebtoken..validation..Issuer$GT$$GT$17h614b4468019df0f3E.llvm.4616129397091597767.exit" + %13 = load i64, ptr %12, align 8, !range !326, !alias.scope !72936, !noundef !4 + %cond.i2 = icmp eq i64 %13, 0 + br i1 %cond.i2, label %14, label %"_ZN4core3ptr95drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$jsonwebtoken..validation..Issuer$GT$$GT$17h614b4468019df0f3E.llvm.4616129397091597767.exit" -13: ; preds = %"_ZN4core3ptr92drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$alloc..borrow..Cow$LT$str$GT$$GT$$GT$17hfba4a7503b244ec7E.llvm.4616129397091597767.exit" - %14 = getelementptr inbounds i8, ptr %0, i64 40 +14: ; preds = %"_ZN4core3ptr92drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$alloc..borrow..Cow$LT$str$GT$$GT$$GT$17hfba4a7503b244ec7E.llvm.4616129397091597767.exit" + %15 = getelementptr inbounds i8, ptr %0, i64 40 tail call void @llvm.experimental.noalias.scope.decl(metadata !72939) - %15 = load ptr, ptr %14, align 8, !alias.scope !72942, !noundef !4 - %16 = icmp eq ptr %15, null - br i1 %16, label %17, label %25 + %16 = load ptr, ptr %15, align 8, !alias.scope !72942, !noundef !4 + %17 = icmp eq ptr %16, null + br i1 %17, label %18, label %26 -17: ; preds = %13 - %18 = getelementptr inbounds i8, ptr %0, i64 48 +18: ; preds = %14 + %19 = getelementptr inbounds i8, ptr %0, i64 48 tail call void @llvm.experimental.noalias.scope.decl(metadata !72943) - %19 = load i64, ptr %18, align 8, !range !1999, !alias.scope !72946, !noundef !4 - %20 = icmp eq i64 %19, -9223372036854775808 - br i1 %20, label %"_ZN4core3ptr95drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$jsonwebtoken..validation..Issuer$GT$$GT$17h614b4468019df0f3E.llvm.4616129397091597767.exit", label %21 + %20 = load i64, ptr %19, align 8, !range !1999, !alias.scope !72946, !noundef !4 + %21 = icmp eq i64 %20, -9223372036854775808 + br i1 %21, label %"_ZN4core3ptr95drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$jsonwebtoken..validation..Issuer$GT$$GT$17h614b4468019df0f3E.llvm.4616129397091597767.exit", label %22 -21: ; preds = %17 +22: ; preds = %18 tail call void @llvm.experimental.noalias.scope.decl(metadata !72947) tail call void @llvm.experimental.noalias.scope.decl(metadata !72950) tail call void @llvm.experimental.noalias.scope.decl(metadata !72953) tail call void @llvm.experimental.noalias.scope.decl(metadata !72956) - %22 = icmp eq i64 %19, 0 - br i1 %22, label %"_ZN4core3ptr95drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$jsonwebtoken..validation..Issuer$GT$$GT$17h614b4468019df0f3E.llvm.4616129397091597767.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.4616129397091597767.exit.i.i1.i.i.i.i.i" + %23 = icmp eq i64 %20, 0 + br i1 %23, label %"_ZN4core3ptr95drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$jsonwebtoken..validation..Issuer$GT$$GT$17h614b4468019df0f3E.llvm.4616129397091597767.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.4616129397091597767.exit.i.i1.i.i.i.i.i" -"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.4616129397091597767.exit.i.i1.i.i.i.i.i": ; preds = %21 - %23 = getelementptr inbounds i8, ptr %0, i64 56 - %24 = load ptr, ptr %23, align 8, !alias.scope !72959, !noalias !72962, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %24, i64 noundef %19, i64 noundef 1) #31, !noalias !72964 +"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.4616129397091597767.exit.i.i1.i.i.i.i.i": ; preds = %22 + %24 = getelementptr inbounds i8, ptr %0, i64 56 + %25 = load ptr, ptr %24, align 8, !alias.scope !72959, !noalias !72962, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %25, i64 noundef %20, i64 noundef 1) #31, !noalias !72964 br label %"_ZN4core3ptr95drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$jsonwebtoken..validation..Issuer$GT$$GT$17h614b4468019df0f3E.llvm.4616129397091597767.exit" -25: ; preds = %13 - %26 = getelementptr inbounds i8, ptr %0, i64 72 - invoke void @_ZN9hashbrown3raw13RawTableInner16drop_inner_table17h506a72297263410dE(ptr noalias noundef nonnull align 8 dereferenceable(32) %14, ptr noalias noundef nonnull readonly align 1 %26, i64 noundef 24, i64 noundef 16) - to label %"_ZN4core3ptr95drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$jsonwebtoken..validation..Issuer$GT$$GT$17h614b4468019df0f3E.llvm.4616129397091597767.exit" unwind label %27 +26: ; preds = %14 + %27 = getelementptr inbounds i8, ptr %0, i64 72 + invoke void @_ZN9hashbrown3raw13RawTableInner16drop_inner_table17h506a72297263410dE(ptr noalias noundef nonnull align 8 dereferenceable(32) %15, ptr noalias noundef nonnull readonly align 1 %27, i64 noundef 24, i64 noundef 16) + to label %"_ZN4core3ptr95drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$jsonwebtoken..validation..Issuer$GT$$GT$17h614b4468019df0f3E.llvm.4616129397091597767.exit" unwind label %28 -27: ; preds = %25 - %28 = landingpad { ptr, i32 } +28: ; preds = %26 + %29 = landingpad { ptr, i32 } cleanup - %29 = getelementptr inbounds i8, ptr %0, i64 88 - invoke void @"_ZN4core3ptr97drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$jsonwebtoken..validation..Audience$GT$$GT$17he1aa0dff2b8a2f92E.llvm.4616129397091597767"(ptr noalias noundef nonnull align 8 dereferenceable(56) %29) #33 - to label %48 unwind label %46 - -"_ZN4core3ptr95drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$jsonwebtoken..validation..Issuer$GT$$GT$17h614b4468019df0f3E.llvm.4616129397091597767.exit": ; preds = %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.4616129397091597767.exit.i.i1.i.i.i.i.i", %21, %17, %"_ZN4core3ptr92drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$alloc..borrow..Cow$LT$str$GT$$GT$$GT$17hfba4a7503b244ec7E.llvm.4616129397091597767.exit", %25 %30 = getelementptr inbounds i8, ptr %0, i64 88 + invoke void @"_ZN4core3ptr97drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$jsonwebtoken..validation..Audience$GT$$GT$17he1aa0dff2b8a2f92E.llvm.4616129397091597767"(ptr noalias noundef nonnull align 8 dereferenceable(56) %30) #33 + to label %49 unwind label %47 + +"_ZN4core3ptr95drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$jsonwebtoken..validation..Issuer$GT$$GT$17h614b4468019df0f3E.llvm.4616129397091597767.exit": ; preds = %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.4616129397091597767.exit.i.i1.i.i.i.i.i", %22, %18, %"_ZN4core3ptr92drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$alloc..borrow..Cow$LT$str$GT$$GT$$GT$17hfba4a7503b244ec7E.llvm.4616129397091597767.exit", %26 + %31 = getelementptr inbounds i8, ptr %0, i64 88 tail call void @llvm.experimental.noalias.scope.decl(metadata !72965) - %31 = load i64, ptr %30, align 8, !range !326, !alias.scope !72965, !noundef !4 - %cond.i2 = icmp eq i64 %31, 0 - br i1 %cond.i2, label %32, label %"_ZN4core3ptr97drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$jsonwebtoken..validation..Audience$GT$$GT$17he1aa0dff2b8a2f92E.llvm.4616129397091597767.exit" + %32 = load i64, ptr %31, align 8, !range !326, !alias.scope !72965, !noundef !4 + %cond.i3 = icmp eq i64 %32, 0 + br i1 %cond.i3, label %33, label %"_ZN4core3ptr97drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$jsonwebtoken..validation..Audience$GT$$GT$17he1aa0dff2b8a2f92E.llvm.4616129397091597767.exit" -32: ; preds = %"_ZN4core3ptr95drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$jsonwebtoken..validation..Issuer$GT$$GT$17h614b4468019df0f3E.llvm.4616129397091597767.exit" - %33 = getelementptr inbounds i8, ptr %0, i64 96 +33: ; preds = %"_ZN4core3ptr95drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$jsonwebtoken..validation..Issuer$GT$$GT$17h614b4468019df0f3E.llvm.4616129397091597767.exit" + %34 = getelementptr inbounds i8, ptr %0, i64 96 tail call void @llvm.experimental.noalias.scope.decl(metadata !72968) - %34 = load ptr, ptr %33, align 8, !alias.scope !72971, !noundef !4 - %35 = icmp eq ptr %34, null - br i1 %35, label %36, label %44 + %35 = load ptr, ptr %34, align 8, !alias.scope !72971, !noundef !4 + %36 = icmp eq ptr %35, null + br i1 %36, label %37, label %45 -36: ; preds = %32 - %37 = getelementptr inbounds i8, ptr %0, i64 104 +37: ; preds = %33 + %38 = getelementptr inbounds i8, ptr %0, i64 104 tail call void @llvm.experimental.noalias.scope.decl(metadata !72972) - %38 = load i64, ptr %37, align 8, !range !1999, !alias.scope !72975, !noundef !4 - %39 = icmp eq i64 %38, -9223372036854775808 - br i1 %39, label %"_ZN4core3ptr97drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$jsonwebtoken..validation..Audience$GT$$GT$17he1aa0dff2b8a2f92E.llvm.4616129397091597767.exit", label %40 + %39 = load i64, ptr %38, align 8, !range !1999, !alias.scope !72975, !noundef !4 + %40 = icmp eq i64 %39, -9223372036854775808 + br i1 %40, label %"_ZN4core3ptr97drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$jsonwebtoken..validation..Audience$GT$$GT$17he1aa0dff2b8a2f92E.llvm.4616129397091597767.exit", label %41 -40: ; preds = %36 +41: ; preds = %37 tail call void @llvm.experimental.noalias.scope.decl(metadata !72976) tail call void @llvm.experimental.noalias.scope.decl(metadata !72979) tail call void @llvm.experimental.noalias.scope.decl(metadata !72982) tail call void @llvm.experimental.noalias.scope.decl(metadata !72985) - %41 = icmp eq i64 %38, 0 - br i1 %41, label %"_ZN4core3ptr97drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$jsonwebtoken..validation..Audience$GT$$GT$17he1aa0dff2b8a2f92E.llvm.4616129397091597767.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.4616129397091597767.exit.i.i1.i.i.i.i.i3" + %42 = icmp eq i64 %39, 0 + br i1 %42, label %"_ZN4core3ptr97drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$jsonwebtoken..validation..Audience$GT$$GT$17he1aa0dff2b8a2f92E.llvm.4616129397091597767.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.4616129397091597767.exit.i.i1.i.i.i.i.i4" -"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.4616129397091597767.exit.i.i1.i.i.i.i.i3": ; preds = %40 - %42 = getelementptr inbounds i8, ptr %0, i64 112 - %43 = load ptr, ptr %42, align 8, !alias.scope !72988, !noalias !72991, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %43, i64 noundef %38, i64 noundef 1) #31, !noalias !72993 +"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.4616129397091597767.exit.i.i1.i.i.i.i.i4": ; preds = %41 + %43 = getelementptr inbounds i8, ptr %0, i64 112 + %44 = load ptr, ptr %43, align 8, !alias.scope !72988, !noalias !72991, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %44, i64 noundef %39, i64 noundef 1) #31, !noalias !72993 br label %"_ZN4core3ptr97drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$jsonwebtoken..validation..Audience$GT$$GT$17he1aa0dff2b8a2f92E.llvm.4616129397091597767.exit" -44: ; preds = %32 - %45 = getelementptr inbounds i8, ptr %0, i64 128 - tail call void @_ZN9hashbrown3raw13RawTableInner16drop_inner_table17h506a72297263410dE(ptr noalias noundef nonnull align 8 dereferenceable(32) %33, ptr noalias noundef nonnull readonly align 1 %45, i64 noundef 24, i64 noundef 16) +45: ; preds = %33 + %46 = getelementptr inbounds i8, ptr %0, i64 128 + tail call void @_ZN9hashbrown3raw13RawTableInner16drop_inner_table17h506a72297263410dE(ptr noalias noundef nonnull align 8 dereferenceable(32) %34, ptr noalias noundef nonnull readonly align 1 %46, i64 noundef 24, i64 noundef 16) br label %"_ZN4core3ptr97drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$jsonwebtoken..validation..Audience$GT$$GT$17he1aa0dff2b8a2f92E.llvm.4616129397091597767.exit" -"_ZN4core3ptr97drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$jsonwebtoken..validation..Audience$GT$$GT$17he1aa0dff2b8a2f92E.llvm.4616129397091597767.exit": ; preds = %"_ZN4core3ptr95drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$jsonwebtoken..validation..Issuer$GT$$GT$17h614b4468019df0f3E.llvm.4616129397091597767.exit", %36, %40, %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.4616129397091597767.exit.i.i1.i.i.i.i.i3", %44 +"_ZN4core3ptr97drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$jsonwebtoken..validation..Audience$GT$$GT$17he1aa0dff2b8a2f92E.llvm.4616129397091597767.exit": ; preds = %"_ZN4core3ptr95drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$jsonwebtoken..validation..Issuer$GT$$GT$17h614b4468019df0f3E.llvm.4616129397091597767.exit", %37, %41, %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.4616129397091597767.exit.i.i1.i.i.i.i.i4", %45 ret void -46: ; preds = %27 - %47 = landingpad { ptr, i32 } +47: ; preds = %28 + %48 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer tail call void @_ZN4core9panicking16panic_in_cleanup17hd62aa59d1fda1c9fE() #32 unreachable -48: ; preds = %27 - resume { ptr, i32 } %28 +49: ; preds = %28 + resume { ptr, i32 } %29 } ; Function Attrs: nounwind nonlazybind uwtable @@ -174181,7 +174184,7 @@ define hidden void @"_ZN4core3ptr71drop_in_place$LT$alloc..vec..Vec$LT$tracing_t %9 = load i64, ptr %7, align 8, !range !8474, !alias.scope !77819, !noalias !77810, !noundef !4 %10 = add i64 %9, 9223372036854775807 %11 = icmp ult i64 %10, 6 - %12 = xor i64 %9, -9223372036854775808 + %12 = and i64 %9, 7 %13 = select i1 %11, i64 %12, i64 0 switch i64 %13, label %"_ZN4core3ptr48drop_in_place$LT$tracing_trace..entry..Entry$GT$17hf40ce887684ee90eE.llvm.4616129397091597767.exit.i.i" [ i64 0, label %14 @@ -196975,7 +196978,7 @@ define hidden void @"_ZN4core3ptr86drop_in_place$LT$tokio..sync..mpsc..block..Re tail call void @llvm.experimental.noalias.scope.decl(metadata !88552) %4 = add i64 %2, 9223372036854775807 %5 = icmp ult i64 %4, 6 - %6 = xor i64 %2, -9223372036854775808 + %6 = and i64 %2, 7 %7 = select i1 %5, i64 %6, i64 0 switch i64 %7, label %"_ZN4core3ptr48drop_in_place$LT$tracing_trace..entry..Entry$GT$17hf40ce887684ee90eE.llvm.4616129397091597767.exit" [ i64 0, label %8 @@ -201524,28 +201527,31 @@ define hidden void @"_ZN4core3ptr92drop_in_place$LT$hashbrown..set..HashSet$LT$$ define hidden void @"_ZN4core3ptr92drop_in_place$LT$jsonwebtoken..validation..TryParse$LT$alloc..borrow..Cow$LT$str$GT$$GT$$GT$17hfba4a7503b244ec7E.llvm.4616129397091597767"(ptr noalias nocapture noundef readonly align 8 dereferenceable(24) %0) unnamed_addr #1 personality ptr @rust_eh_personality { %2 = load i64, ptr %0, align 8, !range !350, !noundef !4 %3 = icmp ult i64 %2, -9223372036854775807 - br i1 %3, label %4, label %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17h1d8918db47169debE.llvm.4616129397091597767.exit" + %4 = and i64 %2, 3 + %cond1 = icmp eq i64 %4, 0 + %cond = or i1 %3, %cond1 + br i1 %cond, label %5, label %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17h1d8918db47169debE.llvm.4616129397091597767.exit" -"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17h1d8918db47169debE.llvm.4616129397091597767.exit": ; preds = %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.4616129397091597767.exit.i.i1.i.i.i", %6, %4, %1 +"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17h1d8918db47169debE.llvm.4616129397091597767.exit": ; preds = %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.4616129397091597767.exit.i.i1.i.i.i", %7, %5, %1 ret void -4: ; preds = %1 +5: ; preds = %1 tail call void @llvm.experimental.noalias.scope.decl(metadata !90518) - %5 = icmp eq i64 %2, -9223372036854775808 - br i1 %5, label %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17h1d8918db47169debE.llvm.4616129397091597767.exit", label %6 + %6 = icmp eq i64 %2, -9223372036854775808 + br i1 %6, label %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17h1d8918db47169debE.llvm.4616129397091597767.exit", label %7 -6: ; preds = %4 +7: ; preds = %5 tail call void @llvm.experimental.noalias.scope.decl(metadata !90521) tail call void @llvm.experimental.noalias.scope.decl(metadata !90524) tail call void @llvm.experimental.noalias.scope.decl(metadata !90527) tail call void @llvm.experimental.noalias.scope.decl(metadata !90530) - %7 = icmp eq i64 %2, 0 - br i1 %7, label %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17h1d8918db47169debE.llvm.4616129397091597767.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.4616129397091597767.exit.i.i1.i.i.i" + %8 = icmp eq i64 %2, 0 + br i1 %8, label %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17h1d8918db47169debE.llvm.4616129397091597767.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.4616129397091597767.exit.i.i1.i.i.i" -"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.4616129397091597767.exit.i.i1.i.i.i": ; preds = %6 - %8 = getelementptr inbounds i8, ptr %0, i64 8 - %9 = load ptr, ptr %8, align 8, !alias.scope !90533, !noalias !90536, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %9, i64 noundef %2, i64 noundef 1) #31, !noalias !90538 +"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.4616129397091597767.exit.i.i1.i.i.i": ; preds = %7 + %9 = getelementptr inbounds i8, ptr %0, i64 8 + %10 = load ptr, ptr %9, align 8, !alias.scope !90533, !noalias !90536, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %10, i64 noundef %2, i64 noundef 1) #31, !noalias !90538 br label %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17h1d8918db47169debE.llvm.4616129397091597767.exit" } @@ -215918,7 +215924,7 @@ define hidden void @"_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops %9 = load i64, ptr %7, align 8, !range !8474, !alias.scope !94657, !noundef !4 %10 = add i64 %9, 9223372036854775807 %11 = icmp ult i64 %10, 6 - %12 = xor i64 %9, -9223372036854775808 + %12 = and i64 %9, 7 %13 = select i1 %11, i64 %12, i64 0 switch i64 %13, label %"_ZN4core3ptr48drop_in_place$LT$tracing_trace..entry..Entry$GT$17hf40ce887684ee90eE.llvm.4616129397091597767.exit.i" [ i64 0, label %14 @@ -231333,7 +231339,7 @@ define hidden void @"_ZN82_$LT$tokio..sync..mpsc..chan..Rx$LT$T$C$S$GT$$u20$as$u tail call void @llvm.experimental.noalias.scope.decl(metadata !97374) %22 = add i64 %18, 9223372036854775807 %23 = icmp ult i64 %22, 6 - %24 = xor i64 %18, -9223372036854775808 + %24 = and i64 %18, 7 %25 = select i1 %23, i64 %24, i64 0 switch i64 %25, label %"_ZN4core3ptr114drop_in_place$LT$core..option..Option$LT$tokio..sync..mpsc..block..Read$LT$tracing_trace..entry..Entry$GT$$GT$$GT$17h924fc0fec3a4d0b4E.llvm.4616129397091597767.exit4" [ i64 0, label %26 @@ -231860,7 +231866,7 @@ define hidden void @"_ZN84_$LT$tokio..sync..mpsc..chan..Chan$LT$T$C$S$GT$$u20$as tail call void @llvm.experimental.noalias.scope.decl(metadata !97578) %22 = add i64 %21, 9223372036854775807 %23 = icmp ult i64 %22, 6 - %24 = xor i64 %21, -9223372036854775808 + %24 = and i64 %21, 7 %25 = select i1 %23, i64 %24, i64 0 switch i64 %25, label %"_ZN4core3ptr114drop_in_place$LT$core..option..Option$LT$tokio..sync..mpsc..block..Read$LT$tracing_trace..entry..Entry$GT$$GT$$GT$17h924fc0fec3a4d0b4E.llvm.4616129397091597767.exit4" [ i64 0, label %26 diff --git a/bench/mold/optimized/arch-riscv.cc.RV32BE.cc.ll b/bench/mold/optimized/arch-riscv.cc.RV32BE.cc.ll index e74d5039e73..e1997c7e0a7 100644 --- a/bench/mold/optimized/arch-riscv.cc.RV32BE.cc.ll +++ b/bench/mold/optimized/arch-riscv.cc.RV32BE.cc.ll @@ -5728,8 +5728,8 @@ if.end: ; preds = %entry %2 = load ptr, ptr %objs, align 8 %_M_finish.i = getelementptr inbounds i8, ptr %ctx, i64 3288 %3 = load ptr, ptr %_M_finish.i, align 8 - %cmp.i324 = icmp eq ptr %2, %3 - br i1 %cmp.i324, label %cleanup.cont, label %for.body.lr.ph + %cmp.i320 = icmp eq ptr %2, %3 + br i1 %cmp.i320, label %cleanup.cont, label %for.body.lr.ph for.body.lr.ph: ; preds = %if.end %add.ptr.i.i = getelementptr inbounds i8, ptr %ref.tmp, i64 24 @@ -5754,15 +5754,15 @@ for.body.lr.ph: ; preds = %if.end br label %for.body for.body: ; preds = %for.body.lr.ph, %if.end53 - %stack.0332 = phi i64 [ -1, %for.body.lr.ph ], [ %stack.1, %if.end53 ] - %unaligned.0331 = phi i1 [ false, %for.body.lr.ph ], [ %spec.select, %if.end53 ] - %arch.sroa.0.0330 = phi ptr [ null, %for.body.lr.ph ], [ %arch.sroa.0.1, %if.end53 ] - %arch.sroa.16.0329 = phi ptr [ null, %for.body.lr.ph ], [ %arch.sroa.16.1, %if.end53 ] - %arch.sroa.29.0328 = phi ptr [ null, %for.body.lr.ph ], [ %arch.sroa.29.1, %if.end53 ] - %__begin2.sroa.0.0327 = phi ptr [ %2, %for.body.lr.ph ], [ %incdec.ptr.i, %if.end53 ] - %arch2.sroa.0.0326 = phi ptr [ undef, %for.body.lr.ph ], [ %arch2.sroa.0.1, %if.end53 ] - %arch2.sroa.12.0325 = phi ptr [ undef, %for.body.lr.ph ], [ %arch2.sroa.12.1, %if.end53 ] - %13 = load ptr, ptr %__begin2.sroa.0.0327, align 8 + %stack.0328 = phi i64 [ -1, %for.body.lr.ph ], [ %stack.1, %if.end53 ] + %unaligned.0327 = phi i1 [ false, %for.body.lr.ph ], [ %spec.select, %if.end53 ] + %arch.sroa.0.0326 = phi ptr [ null, %for.body.lr.ph ], [ %arch.sroa.0.1, %if.end53 ] + %arch.sroa.16.0325 = phi ptr [ null, %for.body.lr.ph ], [ %arch.sroa.16.1, %if.end53 ] + %arch.sroa.29.0324 = phi ptr [ null, %for.body.lr.ph ], [ %arch.sroa.29.1, %if.end53 ] + %__begin2.sroa.0.0323 = phi ptr [ %2, %for.body.lr.ph ], [ %incdec.ptr.i, %if.end53 ] + %arch2.sroa.0.0322 = phi ptr [ undef, %for.body.lr.ph ], [ %arch2.sroa.0.1, %if.end53 ] + %arch2.sroa.12.0321 = phi ptr [ undef, %for.body.lr.ph ], [ %arch2.sroa.12.1, %if.end53 ] + %13 = load ptr, ptr %__begin2.sroa.0.0323, align 8 %_M_engaged.i.i = getelementptr inbounds i8, ptr %13, i64 680 %14 = load i8, ptr %_M_engaged.i.i, align 8 %tobool.i.i = trunc i8 %14 to i1 @@ -5771,8 +5771,8 @@ for.body: ; preds = %for.body.lr.ph, %if if.then8: ; preds = %for.body %extra = getelementptr inbounds i8, ptr %13, i64 672 %15 = load i64, ptr %extra, align 8 - %cmp.not = icmp eq i64 %stack.0332, -1 - %cmp12.not = icmp eq i64 %stack.0332, %15 + %cmp.not = icmp eq i64 %stack.0328, -1 + %cmp12.not = icmp eq i64 %stack.0328, %15 %or.cond = select i1 %cmp.not, i1 true, i1 %cmp12.not br i1 %or.cond, label %if.end17, label %if.then13 @@ -5797,7 +5797,7 @@ _ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRA40_KcEERS5_OT_.exit: ; preds br label %if.end17 if.end17: ; preds = %if.then8, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRA40_KcEERS5_OT_.exit, %for.body - %stack.1 = phi i64 [ %stack.0332, %for.body ], [ %15, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRA40_KcEERS5_OT_.exit ], [ %15, %if.then8 ] + %stack.1 = phi i64 [ %stack.0328, %for.body ], [ %15, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRA40_KcEERS5_OT_.exit ], [ %15, %if.then8 ] %arch19 = getelementptr inbounds i8, ptr %13, i64 688 %_M_engaged.i.i58 = getelementptr inbounds i8, ptr %13, i64 704 %17 = load i8, ptr %_M_engaged.i.i58, align 8 @@ -5853,8 +5853,8 @@ if.end23.i: ; preds = %_ZNKSt17basic_strin br label %while.cond.i while.cond.i: ; preds = %_ZNSt8optionalIN4mold3elf12_GLOBAL__N_14ExtnEED2Ev.exit.i, %if.end23.i - %arch2.sroa.12.3 = phi ptr [ %arch2.sroa.12.0325, %if.end23.i ], [ %arch2.sroa.12.6, %_ZNSt8optionalIN4mold3elf12_GLOBAL__N_14ExtnEED2Ev.exit.i ] - %arch2.sroa.0.3 = phi ptr [ %arch2.sroa.0.0326, %if.end23.i ], [ %arch2.sroa.0.6, %_ZNSt8optionalIN4mold3elf12_GLOBAL__N_14ExtnEED2Ev.exit.i ] + %arch2.sroa.12.3 = phi ptr [ %arch2.sroa.12.0321, %if.end23.i ], [ %arch2.sroa.12.6, %_ZNSt8optionalIN4mold3elf12_GLOBAL__N_14ExtnEED2Ev.exit.i ] + %arch2.sroa.0.3 = phi ptr [ %arch2.sroa.0.0322, %if.end23.i ], [ %arch2.sroa.0.6, %_ZNSt8optionalIN4mold3elf12_GLOBAL__N_14ExtnEED2Ev.exit.i ] %19 = load i64, ptr %str.i, align 8, !noalias !24 %cmp.i38.i = icmp eq i64 %19, 0 br i1 %cmp.i38.i, label %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i.i.thread, label %while.body.i @@ -5998,8 +5998,8 @@ _ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit br i1 %cmp.i.i63, label %if.then26, label %if.end34 if.then26: ; preds = %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit.thread, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit - %arch2.sroa.0.7289 = phi ptr [ null, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit.thread ], [ %arch2.sroa.0.2, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit ] - %arch2.sroa.12.7285 = phi ptr [ null, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit.thread ], [ %arch2.sroa.12.2, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit ] + %arch2.sroa.0.7285 = phi ptr [ null, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit.thread ], [ %arch2.sroa.0.2, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit ] + %arch2.sroa.12.7281 = phi ptr [ null, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit.thread ], [ %arch2.sroa.12.2, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit ] call void @_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEEC2ERS4_(ptr noundef nonnull align 8 dereferenceable(400) %ref.tmp27, ptr noundef nonnull align 8 dereferenceable(4576) %ctx) %33 = load ptr, ptr %ref.tmp27, align 8 %tobool.not.i.i64 = icmp eq ptr %33, null @@ -6007,14 +6007,14 @@ if.then26: ; preds = %_ZN4mold3elfL17pars _ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRNS1_10ObjectFileIS3_EEEERS5_OT_.exit68: ; preds = %if.then26 %call.i.i67 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4mold3elflsINS0_6RV32BEEEERSoS3_RKNS0_9InputFileIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %add.ptr.i.i66, ptr noundef nonnull align 8 dereferenceable(280) %13) #21 - %.pr295 = load ptr, ptr %ref.tmp27, align 8 - %tobool.not.i.i69 = icmp eq ptr %.pr295, null + %.pr291 = load ptr, ptr %ref.tmp27, align 8 + %tobool.not.i.i69 = icmp eq ptr %.pr291, null br i1 %tobool.not.i.i69, label %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit, label %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRA43_KcEERS5_OT_.exit _ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRA43_KcEERS5_OT_.exit: ; preds = %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRNS1_10ObjectFileIS3_EEEERS5_OT_.exit68 %call.i.i72 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %add.ptr.i.i66, ptr noundef nonnull @.str.15) #21 - %.pr297 = load ptr, ptr %ref.tmp27, align 8 - %tobool.not.i.i73 = icmp eq ptr %.pr297, null + %.pr293 = load ptr, ptr %ref.tmp27, align 8 + %tobool.not.i.i73 = icmp eq ptr %.pr293, null br i1 %tobool.not.i.i73, label %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit, label %if.then.i.i74 if.then.i.i74: ; preds = %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRA43_KcEERS5_OT_.exit @@ -6028,18 +6028,18 @@ _ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11cha br label %if.end34 if.end34: ; preds = %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit - %cmp.i.i63292 = phi i1 [ true, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit ], [ false, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit ] - %arch2.sroa.0.7288 = phi ptr [ %arch2.sroa.0.7289, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit ], [ %arch2.sroa.0.2, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit ] - %arch2.sroa.12.7284 = phi ptr [ %arch2.sroa.12.7285, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit ], [ %arch2.sroa.12.2, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit ] - %cmp.i.i76 = icmp eq ptr %arch.sroa.0.0330, %arch.sroa.16.0329 + %cmp.i.i63288 = phi i1 [ true, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit ], [ false, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit ] + %arch2.sroa.0.7284 = phi ptr [ %arch2.sroa.0.7285, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit ], [ %arch2.sroa.0.2, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit ] + %arch2.sroa.12.7280 = phi ptr [ %arch2.sroa.12.7281, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit ], [ %arch2.sroa.12.2, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit ] + %cmp.i.i76 = icmp eq ptr %arch.sroa.0.0326, %arch.sroa.16.0325 br i1 %cmp.i.i76, label %if.then36, label %if.else if.then36: ; preds = %if.end34 - %sub.ptr.lhs.cast.i.i = ptrtoint ptr %arch2.sroa.12.7284 to i64 - %sub.ptr.rhs.cast.i.i = ptrtoint ptr %arch2.sroa.0.7288 to i64 + %sub.ptr.lhs.cast.i.i = ptrtoint ptr %arch2.sroa.12.7280 to i64 + %sub.ptr.rhs.cast.i.i = ptrtoint ptr %arch2.sroa.0.7284 to i64 %sub.ptr.sub.i.i = sub i64 %sub.ptr.lhs.cast.i.i, %sub.ptr.rhs.cast.i.i - %sub.ptr.lhs.cast.i28.i = ptrtoint ptr %arch.sroa.29.0328 to i64 - %sub.ptr.rhs.cast.i29.i = ptrtoint ptr %arch.sroa.0.0330 to i64 + %sub.ptr.lhs.cast.i28.i = ptrtoint ptr %arch.sroa.29.0324 to i64 + %sub.ptr.rhs.cast.i29.i = ptrtoint ptr %arch.sroa.0.0326 to i64 %sub.ptr.sub.i30.i = sub i64 %sub.ptr.lhs.cast.i28.i, %sub.ptr.rhs.cast.i29.i %cmp3.i = icmp ugt i64 %sub.ptr.sub.i.i, %sub.ptr.sub.i30.i br i1 %cmp3.i, label %cond.true.i.i.i, label %if.else.i @@ -6055,26 +6055,26 @@ if.then3.i.i.i.i.i: ; preds = %cond.true.i.i.i _ZNSt12_Vector_baseIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EE11_M_allocateEm.exit.i.i: ; preds = %cond.true.i.i.i %call5.i.i.i.i.i = call noalias noundef nonnull ptr @_Znwm(i64 noundef %sub.ptr.sub.i.i) #32 - br i1 %cmp.i.i63292, label %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i, label %for.body.i.i.i.i.i.i + br i1 %cmp.i.i63288, label %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i, label %for.body.i.i.i.i.i.i for.body.i.i.i.i.i.i: ; preds = %_ZNSt12_Vector_baseIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EE11_M_allocateEm.exit.i.i, %for.body.i.i.i.i.i.i %__cur.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 ], [ %call5.i.i.i.i.i, %_ZNSt12_Vector_baseIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EE11_M_allocateEm.exit.i.i ] - %__first.sroa.0.05.i.i.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i.i.i.i, %for.body.i.i.i.i.i.i ], [ %arch2.sroa.0.7288, %_ZNSt12_Vector_baseIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EE11_M_allocateEm.exit.i.i ] + %__first.sroa.0.05.i.i.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i.i.i.i, %for.body.i.i.i.i.i.i ], [ %arch2.sroa.0.7284, %_ZNSt12_Vector_baseIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EE11_M_allocateEm.exit.i.i ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %__cur.06.i.i.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(32) %__first.sroa.0.05.i.i.i.i.i.i) %major.i.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %__cur.06.i.i.i.i.i.i, i64 32 %major3.i.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %__first.sroa.0.05.i.i.i.i.i.i, i64 32 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %major.i.i.i.i.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(16) %major3.i.i.i.i.i.i.i.i, i64 16, i1 false) %incdec.ptr.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %__first.sroa.0.05.i.i.i.i.i.i, i64 48 %incdec.ptr.i.i.i.i.i.i = getelementptr inbounds i8, ptr %__cur.06.i.i.i.i.i.i, i64 48 - %cmp.i.i.i.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i.i.i, %arch2.sroa.12.7284 + %cmp.i.i.i.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i.i.i, %arch2.sroa.12.7280 br i1 %cmp.i.i.i.i.i.i.i, label %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i, label %for.body.i.i.i.i.i.i, !llvm.loop !29 _ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i: ; preds = %for.body.i.i.i.i.i.i, %_ZNSt12_Vector_baseIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EE11_M_allocateEm.exit.i.i - %tobool.not.i.i86 = icmp eq ptr %arch.sroa.0.0330, null + %tobool.not.i.i86 = icmp eq ptr %arch.sroa.0.0326, null br i1 %tobool.not.i.i86, label %_ZNSt12_Vector_baseIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EE13_M_deallocateEPS3_m.exit.i, label %if.then.i.i87 if.then.i.i87: ; preds = %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i - call void @_ZdlPv(ptr noundef nonnull %arch.sroa.0.0330) #30 + call void @_ZdlPv(ptr noundef nonnull %arch.sroa.0.0326) #30 br label %_ZNSt12_Vector_baseIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EE13_M_deallocateEPS3_m.exit.i _ZNSt12_Vector_baseIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EE13_M_deallocateEPS3_m.exit.i: ; preds = %if.then.i.i87, %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i @@ -6082,41 +6082,41 @@ _ZNSt12_Vector_baseIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EE13_M_deallocateEPS3_m. br label %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit if.else.i: ; preds = %if.then36 - %cmp26.not.i.not = icmp eq ptr %arch2.sroa.12.7284, %arch2.sroa.0.7288 + %cmp26.not.i.not = icmp eq ptr %arch2.sroa.12.7280, %arch2.sroa.0.7284 br i1 %cmp26.not.i.not, label %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit, label %for.body.i.i.i.i.i79 for.body.i.i.i.i.i79: ; preds = %if.else.i, %for.body.i.i.i.i.i79 - %__cur.07.i.i.i.i.i = phi ptr [ %incdec.ptr1.i.i.i.i.i, %for.body.i.i.i.i.i79 ], [ %arch.sroa.16.0329, %if.else.i ] - %__first.addr.06.i.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i73.i, %for.body.i.i.i.i.i79 ], [ %arch2.sroa.0.7288, %if.else.i ] + %__cur.07.i.i.i.i.i = phi ptr [ %incdec.ptr1.i.i.i.i.i, %for.body.i.i.i.i.i79 ], [ %arch.sroa.16.0325, %if.else.i ] + %__first.addr.06.i.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i73.i, %for.body.i.i.i.i.i79 ], [ %arch2.sroa.0.7284, %if.else.i ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %__cur.07.i.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(32) %__first.addr.06.i.i.i.i.i) %major.i.i.i.i.i.i71.i = getelementptr inbounds i8, ptr %__cur.07.i.i.i.i.i, i64 32 %major3.i.i.i.i.i.i72.i = getelementptr inbounds i8, ptr %__first.addr.06.i.i.i.i.i, i64 32 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %major.i.i.i.i.i.i71.i, ptr noundef nonnull align 8 dereferenceable(16) %major3.i.i.i.i.i.i72.i, i64 16, i1 false) %incdec.ptr.i.i.i.i73.i = getelementptr inbounds i8, ptr %__first.addr.06.i.i.i.i.i, i64 48 %incdec.ptr1.i.i.i.i.i = getelementptr inbounds i8, ptr %__cur.07.i.i.i.i.i, i64 48 - %cmp.not.i.i.i.i.i80 = icmp eq ptr %incdec.ptr.i.i.i.i73.i, %arch2.sroa.12.7284 + %cmp.not.i.i.i.i.i80 = icmp eq ptr %incdec.ptr.i.i.i.i73.i, %arch2.sroa.12.7280 br i1 %cmp.not.i.i.i.i.i80, label %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit, label %for.body.i.i.i.i.i79, !llvm.loop !30 _ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit: ; preds = %for.body.i.i.i.i.i79, %if.else.i, %_ZNSt12_Vector_baseIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EE13_M_deallocateEPS3_m.exit.i - %arch.sroa.29.3 = phi ptr [ %add.ptr.i, %_ZNSt12_Vector_baseIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EE13_M_deallocateEPS3_m.exit.i ], [ %arch.sroa.29.0328, %if.else.i ], [ %arch.sroa.29.0328, %for.body.i.i.i.i.i79 ] - %arch.sroa.0.3 = phi ptr [ %call5.i.i.i.i.i, %_ZNSt12_Vector_baseIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EE13_M_deallocateEPS3_m.exit.i ], [ %arch.sroa.0.0330, %if.else.i ], [ %arch.sroa.0.0330, %for.body.i.i.i.i.i79 ] + %arch.sroa.29.3 = phi ptr [ %add.ptr.i, %_ZNSt12_Vector_baseIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EE13_M_deallocateEPS3_m.exit.i ], [ %arch.sroa.29.0324, %if.else.i ], [ %arch.sroa.29.0324, %for.body.i.i.i.i.i79 ] + %arch.sroa.0.3 = phi ptr [ %call5.i.i.i.i.i, %_ZNSt12_Vector_baseIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EE13_M_deallocateEPS3_m.exit.i ], [ %arch.sroa.0.0326, %if.else.i ], [ %arch.sroa.0.0326, %for.body.i.i.i.i.i79 ] %add.ptr72.i = getelementptr inbounds i8, ptr %arch.sroa.0.3, i64 %sub.ptr.sub.i.i - br i1 %cmp.i.i63292, label %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i159, label %for.body.i.i.i.i150.preheader + br i1 %cmp.i.i63288, label %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i159, label %for.body.i.i.i.i150.preheader if.else: ; preds = %if.end34 - %sub.ptr.lhs.cast.i.i.i = ptrtoint ptr %arch.sroa.16.0329 to i64 - %sub.ptr.rhs.cast.i.i.i = ptrtoint ptr %arch.sroa.0.0330 to i64 + %sub.ptr.lhs.cast.i.i.i = ptrtoint ptr %arch.sroa.16.0325 to i64 + %sub.ptr.rhs.cast.i.i.i = ptrtoint ptr %arch.sroa.0.0326 to i64 %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 = sdiv exact i64 %sub.ptr.sub.i.i.i, 48 - %sub.ptr.lhs.cast.i.i.i91 = ptrtoint ptr %arch2.sroa.12.7284 to i64 - %sub.ptr.rhs.cast.i.i.i92 = ptrtoint ptr %arch2.sroa.0.7288 to i64 + %sub.ptr.lhs.cast.i.i.i91 = ptrtoint ptr %arch2.sroa.12.7280 to i64 + %sub.ptr.rhs.cast.i.i.i92 = ptrtoint ptr %arch2.sroa.0.7284 to i64 %sub.ptr.sub.i.i.i93 = sub i64 %sub.ptr.lhs.cast.i.i.i91, %sub.ptr.rhs.cast.i.i.i92 %sub.ptr.div.i.i.i94 = sdiv exact i64 %sub.ptr.sub.i.i.i93, 48 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %vec.i96) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %vec.i96, i8 0, i64 24, i1 false), !noalias !31 - %_M_string_length.i.i.i = getelementptr inbounds i8, ptr %arch.sroa.0.0330, i64 8 + %_M_string_length.i.i.i = getelementptr inbounds i8, ptr %arch.sroa.0.0326, i64 8 %34 = load i64, ptr %_M_string_length.i.i.i, align 8, !noalias !31 - %_M_string_length.i4.i.i = getelementptr inbounds i8, ptr %arch2.sroa.0.7288, i64 8 + %_M_string_length.i4.i.i = getelementptr inbounds i8, ptr %arch2.sroa.0.7284, i64 8 %35 = load i64, ptr %_M_string_length.i4.i.i, align 8, !noalias !31 %cmp.i.i97 = icmp eq i64 %34, %35 br i1 %cmp.i.i97, label %land.rhs.i.i, label %_ZN4mold3elfL16merge_extensionsESt4spanINS0_12_GLOBAL__N_14ExtnELm18446744073709551615EES4_.exit @@ -6126,21 +6126,21 @@ land.rhs.i.i: ; preds = %if.else br i1 %cmp.i.i.i99, label %while.cond.preheader.i, label %if.end.i.i.i while.cond.preheader.i: ; preds = %if.end.i.i.i, %land.rhs.i.i - %cmp.i3168.i = icmp eq ptr %arch2.sroa.12.7284, %arch2.sroa.0.7288 + %cmp.i3168.i = icmp eq ptr %arch2.sroa.12.7280, %arch2.sroa.0.7284 br i1 %cmp.i3168.i, label %while.end.i105, label %while.body.i101 if.end.i.i.i: ; preds = %land.rhs.i.i - %36 = load ptr, ptr %arch2.sroa.0.7288, align 8, !noalias !31 - %37 = load ptr, ptr %arch.sroa.0.0330, align 8, !noalias !31 + %36 = load ptr, ptr %arch2.sroa.0.7284, align 8, !noalias !31 + %37 = load ptr, ptr %arch.sroa.0.0326, align 8, !noalias !31 %bcmp.i.i100 = call i32 @bcmp(ptr %37, ptr %36, i64 %34), !noalias !31 %38 = icmp eq i32 %bcmp.i.i100, 0 br i1 %38, label %while.cond.preheader.i, label %_ZN4mold3elfL16merge_extensionsESt4spanINS0_12_GLOBAL__N_14ExtnELm18446744073709551615EES4_.exit while.body.i101: ; preds = %while.cond.preheader.i, %if.end33.i %x.sroa.13.073.i = phi i64 [ %x.sroa.13.1.i, %if.end33.i ], [ %sub.ptr.div.i.i.i, %while.cond.preheader.i ] - %x.sroa.0.072.i = phi ptr [ %x.sroa.0.1.i, %if.end33.i ], [ %arch.sroa.0.0330, %while.cond.preheader.i ] + %x.sroa.0.072.i = phi ptr [ %x.sroa.0.1.i, %if.end33.i ], [ %arch.sroa.0.0326, %while.cond.preheader.i ] %y.sroa.13.071.i = phi i64 [ %y.sroa.13.1.i, %if.end33.i ], [ %sub.ptr.div.i.i.i94, %while.cond.preheader.i ] - %y.sroa.0.070.i = phi ptr [ %y.sroa.0.1.i, %if.end33.i ], [ %arch2.sroa.0.7288, %while.cond.preheader.i ] + %y.sroa.0.070.i = phi ptr [ %y.sroa.0.1.i, %if.end33.i ], [ %arch2.sroa.0.7284, %while.cond.preheader.i ] %_M_string_length.i.i32.i = getelementptr inbounds i8, ptr %x.sroa.0.072.i, i64 8 %39 = load i64, ptr %_M_string_length.i.i32.i, align 8, !noalias !31 %_M_string_length.i4.i33.i = getelementptr inbounds i8, ptr %y.sroa.0.070.i, i64 8 @@ -6372,9 +6372,9 @@ while.end.loopexit.i: ; preds = %if.end33.i while.end.i105: ; preds = %while.end.loopexit.i, %while.cond.preheader.i %vec.val.i = phi ptr [ null, %while.cond.preheader.i ], [ %vec.val.pre.i, %while.end.loopexit.i ] - %y.sroa.0.0.lcssa.i = phi ptr [ %arch2.sroa.0.7288, %while.cond.preheader.i ], [ %y.sroa.0.1.i, %while.end.loopexit.i ] + %y.sroa.0.0.lcssa.i = phi ptr [ %arch2.sroa.0.7284, %while.cond.preheader.i ], [ %y.sroa.0.1.i, %while.end.loopexit.i ] %y.sroa.13.0.lcssa.i = phi i64 [ %sub.ptr.div.i.i.i94, %while.cond.preheader.i ], [ %y.sroa.13.1.i, %while.end.loopexit.i ] - %x.sroa.0.0.lcssa.i = phi ptr [ %arch.sroa.0.0330, %while.cond.preheader.i ], [ %x.sroa.0.1.i, %while.end.loopexit.i ] + %x.sroa.0.0.lcssa.i = phi ptr [ %arch.sroa.0.0326, %while.cond.preheader.i ], [ %x.sroa.0.1.i, %while.end.loopexit.i ] %x.sroa.13.0.lcssa.i = phi i64 [ %sub.ptr.div.i.i.i, %while.cond.preheader.i ], [ %x.sroa.13.1.i, %while.end.loopexit.i ] %add.ptr.i58.i = getelementptr inbounds %"struct.mold::elf::(anonymous namespace)::Extn", ptr %x.sroa.0.0.lcssa.i, i64 %x.sroa.13.0.lcssa.i call fastcc void @_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EE6insertIN9__gnu_cxx17__normal_iteratorIPS3_St4spanIS3_Lm18446744073709551615EEEEvEENS8_IS9_S5_EENS8_IPKS3_S5_EET_SH_(ptr noundef nonnull align 8 dereferenceable(24) %vec.i96, ptr %vec.val.i, ptr nonnull %x.sroa.0.0.lcssa.i, ptr %add.ptr.i58.i) @@ -6394,7 +6394,7 @@ _ZN4mold3elfL16merge_extensionsESt4spanINS0_12_GLOBAL__N_14ExtnELm18446744073709 br label %for.body.i.i.i.i.i.i112 for.body.i.i.i.i.i.i112: ; preds = %_ZN4mold3elfL16merge_extensionsESt4spanINS0_12_GLOBAL__N_14ExtnELm18446744073709551615EES4_.exit, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i.i.i - %__first.addr.04.i.i.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i.i.i113, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i.i.i ], [ %arch.sroa.0.0330, %_ZN4mold3elfL16merge_extensionsESt4spanINS0_12_GLOBAL__N_14ExtnELm18446744073709551615EES4_.exit ] + %__first.addr.04.i.i.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i.i.i113, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i.i.i ], [ %arch.sroa.0.0326, %_ZN4mold3elfL16merge_extensionsESt4spanINS0_12_GLOBAL__N_14ExtnELm18446744073709551615EES4_.exit ] %68 = load ptr, ptr %__first.addr.04.i.i.i.i.i.i, align 8 %69 = getelementptr inbounds i8, ptr %__first.addr.04.i.i.i.i.i.i, i64 16 %cmp.i.i.i.i.i.i.i.i.i.i.i.i = icmp eq ptr %68, %69 @@ -6414,15 +6414,15 @@ if.then.i.i.i.i.i.i.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i. _ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i.i.i.i.i, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i.i.i.i.i call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__first.addr.04.i.i.i.i.i.i) #21 %incdec.ptr.i.i.i.i.i.i113 = getelementptr inbounds i8, ptr %__first.addr.04.i.i.i.i.i.i, i64 48 - %cmp.not.i.i.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i.i113, %arch.sroa.16.0329 + %cmp.not.i.i.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i.i113, %arch.sroa.16.0325 br i1 %cmp.not.i.i.i.i.i.i, label %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i.i.i, label %for.body.i.i.i.i.i.i112, !llvm.loop !28 _ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i.i.i: ; preds = %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i.i.i - %tobool.not.i.i.i.i.i = icmp eq ptr %arch.sroa.0.0330, null + %tobool.not.i.i.i.i.i = icmp eq ptr %arch.sroa.0.0326, null br i1 %tobool.not.i.i.i.i.i, label %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EED2Ev.exit, label %if.then.i.i.i.i.i114 if.then.i.i.i.i.i114: ; preds = %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i.i.i - call void @_ZdlPv(ptr noundef nonnull %arch.sroa.0.0330) #30 + call void @_ZdlPv(ptr noundef nonnull %arch.sroa.0.0326) #30 br label %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EED2Ev.exit _ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EED2Ev.exit: ; preds = %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i.i.i, %if.then.i.i.i.i.i114 @@ -6437,14 +6437,14 @@ if.then43: ; preds = %_ZNSt6vectorIN4mold _ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRNS1_10ObjectFileIS3_EEEERS5_OT_.exit135: ; preds = %if.then43 %call.i.i134 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4mold3elflsINS0_6RV32BEEEERSoS3_RKNS0_9InputFileIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %add.ptr.i.i133, ptr noundef nonnull align 8 dereferenceable(280) %13) #21 - %.pr299 = load ptr, ptr %ref.tmp44, align 8 - %tobool.not.i.i136 = icmp eq ptr %.pr299, null + %.pr295 = load ptr, ptr %ref.tmp44, align 8 + %tobool.not.i.i136 = icmp eq ptr %.pr295, null br i1 %tobool.not.i.i136, label %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit147, label %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRA46_KcEERS5_OT_.exit _ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRA46_KcEERS5_OT_.exit: ; preds = %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRNS1_10ObjectFileIS3_EEEERS5_OT_.exit135 %call.i.i139 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %add.ptr.i.i133, ptr noundef nonnull @.str.16) #21 - %.pr301 = load ptr, ptr %ref.tmp44, align 8 - %tobool.not.i.i140 = icmp eq ptr %.pr301, null + %.pr297 = load ptr, ptr %ref.tmp44, align 8 + %tobool.not.i.i140 = icmp eq ptr %.pr297, null br i1 %tobool.not.i.i140, label %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit147, label %if.then.i.i141 if.then.i.i141: ; preds = %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRA46_KcEERS5_OT_.exit @@ -6455,19 +6455,19 @@ if.then.i.i141: ; preds = %_ZN4mold5ErrorINS_3 _ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit147: ; preds = %if.then43, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRNS1_10ObjectFileIS3_EEEERS5_OT_.exit135, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRA46_KcEERS5_OT_.exit, %if.then.i.i141 call void @_ZN4mold7SyncOutINS_3elf7ContextINS1_6RV32BEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(400) %ref.tmp44) #21 - br i1 %cmp.i.i63292, label %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i159, label %for.body.i.i.i.i150.preheader + br i1 %cmp.i.i63288, label %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i159, label %for.body.i.i.i.i150.preheader if.end52: ; preds = %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EED2Ev.exit - br i1 %cmp.i.i63292, label %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i159, label %for.body.i.i.i.i150.preheader + br i1 %cmp.i.i63288, label %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i159, label %for.body.i.i.i.i150.preheader for.body.i.i.i.i150.preheader: ; preds = %if.end52, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit147 - %arch.sroa.0.2317.ph = phi ptr [ %ref.tmp38.sroa.0.3, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit147 ], [ %arch.sroa.0.3, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit ], [ %ref.tmp38.sroa.0.3, %if.end52 ] - %arch.sroa.16.2315.ph = phi ptr [ %ref.tmp38.sroa.6.3, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit147 ], [ %add.ptr72.i, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit ], [ %ref.tmp38.sroa.6.3, %if.end52 ] - %arch.sroa.29.2313.ph = phi ptr [ %ref.tmp38.sroa.9.3, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit147 ], [ %arch.sroa.29.3, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit ], [ %ref.tmp38.sroa.9.3, %if.end52 ] + %arch.sroa.0.2313.ph = phi ptr [ %ref.tmp38.sroa.0.3, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit147 ], [ %arch.sroa.0.3, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit ], [ %ref.tmp38.sroa.0.3, %if.end52 ] + %arch.sroa.16.2311.ph = phi ptr [ %ref.tmp38.sroa.6.3, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit147 ], [ %add.ptr72.i, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit ], [ %ref.tmp38.sroa.6.3, %if.end52 ] + %arch.sroa.29.2309.ph = phi ptr [ %ref.tmp38.sroa.9.3, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit147 ], [ %arch.sroa.29.3, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit ], [ %ref.tmp38.sroa.9.3, %if.end52 ] br label %for.body.i.i.i.i150 for.body.i.i.i.i150: ; preds = %for.body.i.i.i.i150.preheader, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i154 - %__first.addr.04.i.i.i.i151 = phi ptr [ %incdec.ptr.i.i.i.i155, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i154 ], [ %arch2.sroa.0.7288, %for.body.i.i.i.i150.preheader ] + %__first.addr.04.i.i.i.i151 = phi ptr [ %incdec.ptr.i.i.i.i155, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i154 ], [ %arch2.sroa.0.7284, %for.body.i.i.i.i150.preheader ] %72 = load ptr, ptr %__first.addr.04.i.i.i.i151, align 8 %73 = getelementptr inbounds i8, ptr %__first.addr.04.i.i.i.i151, i64 16 %cmp.i.i.i.i.i.i.i.i.i.i152 = icmp eq ptr %72, %73 @@ -6487,37 +6487,37 @@ if.then.i.i.i.i.i.i.i.i.i153: ; preds = %for.body.i.i.i.i150 _ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i154: ; preds = %if.then.i.i.i.i.i.i.i.i.i153, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i.i.i163 call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__first.addr.04.i.i.i.i151) #21 %incdec.ptr.i.i.i.i155 = getelementptr inbounds i8, ptr %__first.addr.04.i.i.i.i151, i64 48 - %cmp.not.i.i.i.i156 = icmp eq ptr %incdec.ptr.i.i.i.i155, %arch2.sroa.12.7284 + %cmp.not.i.i.i.i156 = icmp eq ptr %incdec.ptr.i.i.i.i155, %arch2.sroa.12.7280 br i1 %cmp.not.i.i.i.i156, label %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i159, label %for.body.i.i.i.i150, !llvm.loop !28 _ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i159: ; preds = %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i154, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit147, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit, %if.end52 - %arch.sroa.0.2318 = phi ptr [ %arch.sroa.0.3, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit ], [ %ref.tmp38.sroa.0.3, %if.end52 ], [ %ref.tmp38.sroa.0.3, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit147 ], [ %arch.sroa.0.2317.ph, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i154 ] - %arch.sroa.16.2316 = phi ptr [ %add.ptr72.i, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit ], [ %ref.tmp38.sroa.6.3, %if.end52 ], [ %ref.tmp38.sroa.6.3, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit147 ], [ %arch.sroa.16.2315.ph, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i154 ] - %arch.sroa.29.2314 = phi ptr [ %arch.sroa.29.3, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit ], [ %ref.tmp38.sroa.9.3, %if.end52 ], [ %ref.tmp38.sroa.9.3, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit147 ], [ %arch.sroa.29.2313.ph, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i154 ] - %tobool.not.i.i.i161 = icmp eq ptr %arch2.sroa.0.7288, null + %arch.sroa.0.2314 = phi ptr [ %arch.sroa.0.3, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit ], [ %ref.tmp38.sroa.0.3, %if.end52 ], [ %ref.tmp38.sroa.0.3, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit147 ], [ %arch.sroa.0.2313.ph, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i154 ] + %arch.sroa.16.2312 = phi ptr [ %add.ptr72.i, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit ], [ %ref.tmp38.sroa.6.3, %if.end52 ], [ %ref.tmp38.sroa.6.3, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit147 ], [ %arch.sroa.16.2311.ph, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i154 ] + %arch.sroa.29.2310 = phi ptr [ %arch.sroa.29.3, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit ], [ %ref.tmp38.sroa.9.3, %if.end52 ], [ %ref.tmp38.sroa.9.3, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit147 ], [ %arch.sroa.29.2309.ph, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i154 ] + %tobool.not.i.i.i161 = icmp eq ptr %arch2.sroa.0.7284, null br i1 %tobool.not.i.i.i161, label %if.end53, label %if.then.i.i.i162 if.then.i.i.i162: ; preds = %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i159 - call void @_ZdlPv(ptr noundef nonnull %arch2.sroa.0.7288) #30 + call void @_ZdlPv(ptr noundef nonnull %arch2.sroa.0.7284) #30 br label %if.end53 if.end53: ; preds = %if.then.i.i.i162, %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i159, %if.end17 - %arch2.sroa.12.1 = phi ptr [ %arch2.sroa.12.0325, %if.end17 ], [ %arch2.sroa.12.7284, %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i159 ], [ %arch2.sroa.12.7284, %if.then.i.i.i162 ] - %arch2.sroa.0.1 = phi ptr [ %arch2.sroa.0.0326, %if.end17 ], [ null, %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i159 ], [ %arch2.sroa.0.7288, %if.then.i.i.i162 ] - %arch.sroa.29.1 = phi ptr [ %arch.sroa.29.0328, %if.end17 ], [ %arch.sroa.29.2314, %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i159 ], [ %arch.sroa.29.2314, %if.then.i.i.i162 ] - %arch.sroa.16.1 = phi ptr [ %arch.sroa.16.0329, %if.end17 ], [ %arch.sroa.16.2316, %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i159 ], [ %arch.sroa.16.2316, %if.then.i.i.i162 ] - %arch.sroa.0.1 = phi ptr [ %arch.sroa.0.0330, %if.end17 ], [ %arch.sroa.0.2318, %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i159 ], [ %arch.sroa.0.2318, %if.then.i.i.i162 ] + %arch2.sroa.12.1 = phi ptr [ %arch2.sroa.12.0321, %if.end17 ], [ %arch2.sroa.12.7280, %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i159 ], [ %arch2.sroa.12.7280, %if.then.i.i.i162 ] + %arch2.sroa.0.1 = phi ptr [ %arch2.sroa.0.0322, %if.end17 ], [ null, %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i159 ], [ %arch2.sroa.0.7284, %if.then.i.i.i162 ] + %arch.sroa.29.1 = phi ptr [ %arch.sroa.29.0324, %if.end17 ], [ %arch.sroa.29.2310, %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i159 ], [ %arch.sroa.29.2310, %if.then.i.i.i162 ] + %arch.sroa.16.1 = phi ptr [ %arch.sroa.16.0325, %if.end17 ], [ %arch.sroa.16.2312, %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i159 ], [ %arch.sroa.16.2312, %if.then.i.i.i162 ] + %arch.sroa.0.1 = phi ptr [ %arch.sroa.0.0326, %if.end17 ], [ %arch.sroa.0.2314, %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i159 ], [ %arch.sroa.0.2314, %if.then.i.i.i162 ] %unaligned_access = getelementptr inbounds i8, ptr %13, i64 712 %75 = load i8, ptr %unaligned_access, align 8 %tobool = trunc i8 %75 to i1 - %spec.select = select i1 %tobool, i1 true, i1 %unaligned.0331 - %incdec.ptr.i = getelementptr inbounds i8, ptr %__begin2.sroa.0.0327, i64 8 + %spec.select = select i1 %tobool, i1 true, i1 %unaligned.0327 + %incdec.ptr.i = getelementptr inbounds i8, ptr %__begin2.sroa.0.0323, i64 8 %cmp.i = icmp eq ptr %incdec.ptr.i, %3 br i1 %cmp.i, label %for.end, label %for.body for.end: ; preds = %if.end53 %cmp.i.i167 = icmp eq ptr %arch.sroa.0.1, %arch.sroa.16.1 - br i1 %cmp.i.i167, label %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i246, label %if.end60 + br i1 %cmp.i.i167, label %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i242, label %if.end60 if.end60: ; preds = %for.end %sub.ptr.lhs.cast.i.i.i168 = ptrtoint ptr %arch.sroa.16.1 to i64 @@ -6866,7 +6866,7 @@ _ZN4mold3elfL9to_stringB5cxx11ESt4spanINS0_12_GLOBAL__N_14ExtnELm184467440737095 store i8 1, ptr %add.ptr68, align 1 %add.ptr70 = getelementptr inbounds i8, ptr %126, i64 16 %cmp71.not = icmp eq i64 %stack.1, -1 - br i1 %cmp71.not, label %do.body.i197, label %do.body.i + br i1 %cmp71.not, label %do.body.i196, label %do.body.i do.body.i: ; preds = %_ZN4mold3elfL9to_stringB5cxx11ESt4spanINS0_12_GLOBAL__N_14ExtnELm18446744073709551615EE.exit store i8 4, ptr %add.ptr70, align 1 @@ -6874,44 +6874,43 @@ do.body.i: ; preds = %_ZN4mold3elfL9to_st br label %do.body.i186 do.body.i186: ; preds = %do.body.i186, %do.body.i - %i.0.i187 = phi i64 [ 0, %do.body.i ], [ %inc.i194, %do.body.i186 ] - %val.addr.0.i188 = phi i64 [ %stack.1, %do.body.i ], [ %shr.i190, %do.body.i186 ] + %i.0.i187 = phi i64 [ 0, %do.body.i ], [ %inc.i193, %do.body.i186 ] + %val.addr.0.i188 = phi i64 [ %stack.1, %do.body.i ], [ %shr.i189, %do.body.i186 ] %127 = trunc i64 %val.addr.0.i188 to i8 - %conv.i189 = and i8 %127, 127 - %shr.i190 = lshr i64 %val.addr.0.i188, 7 - %tobool.not.i191 = icmp ult i64 %val.addr.0.i188, 128 - %masksel.i192 = select i1 %tobool.not.i191, i8 0, i8 -128 - %cond.i193 = or disjoint i8 %conv.i189, %masksel.i192 - %inc.i194 = add nuw nsw i64 %i.0.i187, 1 - %arrayidx.i195 = getelementptr inbounds i8, ptr %add.ptr74, i64 %i.0.i187 - store i8 %cond.i193, ptr %arrayidx.i195, align 1 - br i1 %tobool.not.i191, label %_ZN4mold10write_ulebEPhm.exit196, label %do.body.i186, !llvm.loop !43 - -_ZN4mold10write_ulebEPhm.exit196: ; preds = %do.body.i186 - %add.ptr76 = getelementptr inbounds i8, ptr %add.ptr74, i64 %inc.i194 - br label %do.body.i197 - -do.body.i197: ; preds = %_ZN4mold3elfL9to_stringB5cxx11ESt4spanINS0_12_GLOBAL__N_14ExtnELm18446744073709551615EE.exit, %_ZN4mold10write_ulebEPhm.exit196 - %p.0 = phi ptr [ %add.ptr76, %_ZN4mold10write_ulebEPhm.exit196 ], [ %add.ptr70, %_ZN4mold3elfL9to_stringB5cxx11ESt4spanINS0_12_GLOBAL__N_14ExtnELm18446744073709551615EE.exit ] + %shr.i189 = lshr i64 %val.addr.0.i188, 7 + %tobool.not.i190 = icmp ult i64 %val.addr.0.i188, 128 + %or.i191 = or i8 %127, -128 + %cond.i192 = select i1 %tobool.not.i190, i8 %127, i8 %or.i191 + %inc.i193 = add nuw nsw i64 %i.0.i187, 1 + %arrayidx.i194 = getelementptr inbounds i8, ptr %add.ptr74, i64 %i.0.i187 + store i8 %cond.i192, ptr %arrayidx.i194, align 1 + br i1 %tobool.not.i190, label %_ZN4mold10write_ulebEPhm.exit195, label %do.body.i186, !llvm.loop !43 + +_ZN4mold10write_ulebEPhm.exit195: ; preds = %do.body.i186 + %add.ptr76 = getelementptr inbounds i8, ptr %add.ptr74, i64 %inc.i193 + br label %do.body.i196 + +do.body.i196: ; preds = %_ZN4mold3elfL9to_stringB5cxx11ESt4spanINS0_12_GLOBAL__N_14ExtnELm18446744073709551615EE.exit, %_ZN4mold10write_ulebEPhm.exit195 + %p.0 = phi ptr [ %add.ptr76, %_ZN4mold10write_ulebEPhm.exit195 ], [ %add.ptr70, %_ZN4mold3elfL9to_stringB5cxx11ESt4spanINS0_12_GLOBAL__N_14ExtnELm18446744073709551615EE.exit ] store i8 5, ptr %p.0, align 1 %add.ptr79 = getelementptr inbounds i8, ptr %p.0, i64 1 %128 = load ptr, ptr %arch_str, align 8 %129 = load i64, ptr %_M_string_length.i, align 8 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %add.ptr79, ptr align 1 %128, i64 %129, i1 false) - %add.ptr.i208 = getelementptr i8, ptr %add.ptr79, i64 %129 - store i8 0, ptr %add.ptr.i208, align 1 - %add.ptr83 = getelementptr i8, ptr %add.ptr.i208, i64 1 - br i1 %spec.select, label %do.body.i210, label %if.end90 + %add.ptr.i206 = getelementptr i8, ptr %add.ptr79, i64 %129 + store i8 0, ptr %add.ptr.i206, align 1 + %add.ptr83 = getelementptr i8, ptr %add.ptr.i206, i64 1 + br i1 %spec.select, label %do.body.i208, label %if.end90 -do.body.i210: ; preds = %do.body.i197 +do.body.i208: ; preds = %do.body.i196 store i8 6, ptr %add.ptr83, align 1 - %add.ptr87 = getelementptr i8, ptr %add.ptr.i208, i64 2 + %add.ptr87 = getelementptr i8, ptr %add.ptr.i206, i64 2 store i8 1, ptr %add.ptr87, align 1 - %add.ptr89 = getelementptr i8, ptr %add.ptr.i208, i64 3 + %add.ptr89 = getelementptr i8, ptr %add.ptr.i206, i64 3 br label %if.end90 -if.end90: ; preds = %do.body.i210, %do.body.i197 - %p.1 = phi ptr [ %add.ptr89, %do.body.i210 ], [ %add.ptr83, %do.body.i197 ] +if.end90: ; preds = %do.body.i208, %do.body.i196 + %p.1 = phi ptr [ %add.ptr89, %do.body.i208 ], [ %add.ptr83, %do.body.i196 ] %130 = load ptr, ptr %contents, align 8 %sub.ptr.lhs.cast = ptrtoint ptr %p.1 to i64 %sub.ptr.rhs.cast = ptrtoint ptr %130 to i64 @@ -6931,8 +6930,8 @@ if.end90: ; preds = %do.body.i210, %do.b store i32 %134, ptr %sh_size, align 4 %135 = load ptr, ptr %arch_str, align 8 %136 = getelementptr inbounds i8, ptr %arch_str, i64 16 - %cmp.i.i.i232 = icmp eq ptr %135, %136 - br i1 %cmp.i.i.i232, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i, label %if.then.i.i233 + %cmp.i.i.i228 = icmp eq ptr %135, %136 + br i1 %cmp.i.i.i228, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i, label %if.then.i.i229 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i: ; preds = %if.end90 %137 = load i64, ptr %_M_string_length.i, align 8 @@ -6940,47 +6939,47 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.threa call void @llvm.assume(i1 %cmp3.i.i.i) br label %cleanup -if.then.i.i233: ; preds = %if.end90 +if.then.i.i229: ; preds = %if.end90 call void @_ZdlPv(ptr noundef %135) #30 br label %cleanup -cleanup: ; preds = %if.then.i.i233, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i +cleanup: ; preds = %if.then.i.i229, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %arch_str) #21 - br label %for.body.i.i.i.i237 - -for.body.i.i.i.i237: ; preds = %cleanup, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i241 - %__first.addr.04.i.i.i.i238 = phi ptr [ %incdec.ptr.i.i.i.i242, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i241 ], [ %arch.sroa.0.1, %cleanup ] - %138 = load ptr, ptr %__first.addr.04.i.i.i.i238, align 8 - %139 = getelementptr inbounds i8, ptr %__first.addr.04.i.i.i.i238, i64 16 - %cmp.i.i.i.i.i.i.i.i.i.i239 = icmp eq ptr %138, %139 - br i1 %cmp.i.i.i.i.i.i.i.i.i.i239, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i.i.i250, label %if.then.i.i.i.i.i.i.i.i.i240 - -_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i.i.i250: ; preds = %for.body.i.i.i.i237 - %_M_string_length.i.i.i.i.i.i.i.i.i.i251 = getelementptr inbounds i8, ptr %__first.addr.04.i.i.i.i238, i64 8 - %140 = load i64, ptr %_M_string_length.i.i.i.i.i.i.i.i.i.i251, align 8 - %cmp3.i.i.i.i.i.i.i.i.i.i252 = icmp ult i64 %140, 16 - call void @llvm.assume(i1 %cmp3.i.i.i.i.i.i.i.i.i.i252) - br label %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i241 - -if.then.i.i.i.i.i.i.i.i.i240: ; preds = %for.body.i.i.i.i237 + br label %for.body.i.i.i.i233 + +for.body.i.i.i.i233: ; preds = %cleanup, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i237 + %__first.addr.04.i.i.i.i234 = phi ptr [ %incdec.ptr.i.i.i.i238, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i237 ], [ %arch.sroa.0.1, %cleanup ] + %138 = load ptr, ptr %__first.addr.04.i.i.i.i234, align 8 + %139 = getelementptr inbounds i8, ptr %__first.addr.04.i.i.i.i234, i64 16 + %cmp.i.i.i.i.i.i.i.i.i.i235 = icmp eq ptr %138, %139 + br i1 %cmp.i.i.i.i.i.i.i.i.i.i235, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i.i.i246, label %if.then.i.i.i.i.i.i.i.i.i236 + +_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i.i.i246: ; preds = %for.body.i.i.i.i233 + %_M_string_length.i.i.i.i.i.i.i.i.i.i247 = getelementptr inbounds i8, ptr %__first.addr.04.i.i.i.i234, i64 8 + %140 = load i64, ptr %_M_string_length.i.i.i.i.i.i.i.i.i.i247, align 8 + %cmp3.i.i.i.i.i.i.i.i.i.i248 = icmp ult i64 %140, 16 + call void @llvm.assume(i1 %cmp3.i.i.i.i.i.i.i.i.i.i248) + br label %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i237 + +if.then.i.i.i.i.i.i.i.i.i236: ; preds = %for.body.i.i.i.i233 call void @_ZdlPv(ptr noundef %138) #30 - br label %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i241 + br label %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i237 -_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i241: ; preds = %if.then.i.i.i.i.i.i.i.i.i240, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i.i.i250 - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__first.addr.04.i.i.i.i238) #21 - %incdec.ptr.i.i.i.i242 = getelementptr inbounds i8, ptr %__first.addr.04.i.i.i.i238, i64 48 - %cmp.not.i.i.i.i243 = icmp eq ptr %incdec.ptr.i.i.i.i242, %arch.sroa.16.1 - br i1 %cmp.not.i.i.i.i243, label %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i246, label %for.body.i.i.i.i237, !llvm.loop !28 +_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i237: ; preds = %if.then.i.i.i.i.i.i.i.i.i236, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i.i.i246 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__first.addr.04.i.i.i.i234) #21 + %incdec.ptr.i.i.i.i238 = getelementptr inbounds i8, ptr %__first.addr.04.i.i.i.i234, i64 48 + %cmp.not.i.i.i.i239 = icmp eq ptr %incdec.ptr.i.i.i.i238, %arch.sroa.16.1 + br i1 %cmp.not.i.i.i.i239, label %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i242, label %for.body.i.i.i.i233, !llvm.loop !28 -_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i246: ; preds = %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i241, %for.end - %tobool.not.i.i.i248 = icmp eq ptr %arch.sroa.0.1, null - br i1 %tobool.not.i.i.i248, label %cleanup.cont, label %if.then.i.i.i249 +_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i242: ; preds = %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i237, %for.end + %tobool.not.i.i.i244 = icmp eq ptr %arch.sroa.0.1, null + br i1 %tobool.not.i.i.i244, label %cleanup.cont, label %if.then.i.i.i245 -if.then.i.i.i249: ; preds = %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i246 +if.then.i.i.i245: ; preds = %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i242 call void @_ZdlPv(ptr noundef nonnull %arch.sroa.0.1) #30 br label %cleanup.cont -cleanup.cont: ; preds = %if.end, %if.then.i.i.i249, %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i246, %entry +cleanup.cont: ; preds = %if.end, %if.then.i.i.i245, %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i242, %entry ret void } diff --git a/bench/ocio/optimized/MathUtils.cpp.ll b/bench/ocio/optimized/MathUtils.cpp.ll index c5e7ddf1071..fdcc5fdeea0 100644 --- a/bench/ocio/optimized/MathUtils.cpp.ll +++ b/bench/ocio/optimized/MathUtils.cpp.ll @@ -58,9 +58,9 @@ if.end22.i: ; preds = %entry %cmp3.i30.i = icmp slt i32 %0, 0 %cond.i31.i = select i1 %cmp3.i30.i, i32 %sub.i29.i, i32 %add.i27.i %sub.i = sub nuw i32 -2147483648, %cond.i31.i - %sub32.i = xor i32 %cond.i31.i, -2147483648 + %4 = and i32 %cond.i31.i, 2147483647 %cmp31.i1 = icmp slt i32 %cond.i31.i, 0 - %cond.i = select i1 %cmp31.i1, i32 %sub32.i, i32 %sub.i + %cond.i = select i1 %cmp31.i1, i32 %4, i32 %sub.i %cmp33.i = icmp ult i32 %cond.i, 3 br label %_ZN19OpenColorIO_v2_4dev12FloatsDifferEffib.exit @@ -271,9 +271,9 @@ _ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit: ; preds = %for.body %cmp3.i30.i.i = icmp slt i32 %1, 0 %cond.i31.i.i = select i1 %cmp3.i30.i.i, i32 %sub.i29.i.i, i32 %add.i27.i.i %sub.i.i = sub nuw i32 -2147483648, %cond.i31.i.i - %sub32.i.i = xor i32 %cond.i31.i.i, -2147483648 + %5 = and i32 %cond.i31.i.i, 2147483647 %cmp31.i1.i = icmp slt i32 %cond.i31.i.i, 0 - %cond.i.i = select i1 %cmp31.i1.i, i32 %sub32.i.i, i32 %sub.i.i + %cond.i.i = select i1 %cmp31.i1.i, i32 %5, i32 %sub.i.i %cmp33.i.i = icmp ult i32 %cond.i.i, 3 br i1 %cmp33.i.i, label %for.cond, label %return @@ -500,14 +500,14 @@ entry: br label %for.cond1.preheader for.cond1.preheader: ; preds = %entry, %for.inc12 - %indvars.iv32 = phi i64 [ 0, %entry ], [ %indvars.iv.next33, %for.inc12 ] - %arrayidx.idx = shl nsw i64 %indvars.iv32, 4 + %indvars.iv31 = phi i64 [ 0, %entry ], [ %indvars.iv.next32, %for.inc12 ] + %arrayidx.idx = shl nsw i64 %indvars.iv31, 4 %invariant.gep = getelementptr inbounds i8, ptr %m44, i64 %arrayidx.idx br label %for.body3 for.body3: ; preds = %for.cond1.preheader, %for.inc %indvars.iv = phi i64 [ 0, %for.cond1.preheader ], [ %indvars.iv.next, %for.inc ] - %cmp4 = icmp eq i64 %indvars.iv, %indvars.iv32 + %cmp4 = icmp eq i64 %indvars.iv, %indvars.iv31 %gep = getelementptr inbounds float, ptr %invariant.gep, i64 %indvars.iv %0 = load float, ptr %gep, align 4 %1 = bitcast float %0 to i32 @@ -545,11 +545,11 @@ _ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit: ; preds = %if.else %cmp3.i30.i.i14 = icmp slt i32 %1, 0 %cond.i31.i.i15 = select i1 %cmp3.i30.i.i14, i32 %sub.i29.i.i13, i32 %add.i27.i.i11 %sub.i.i16 = sub nuw i32 -2147483648, %cond.i31.i.i15 - %sub32.i.i17 = xor i32 %cond.i31.i.i15, -2147483648 + %7 = and i32 %cond.i31.i.i15, 2147483647 %cmp31.i1.i = icmp slt i32 %cond.i31.i.i15, 0 - %cond.i.i18 = select i1 %cmp31.i1.i, i32 %sub32.i.i17, i32 %sub.i.i16 - %cmp33.i.i19 = icmp ult i32 %cond.i.i18, 3 - br i1 %cmp33.i.i19, label %for.inc, label %return + %cond.i.i17 = select i1 %cmp31.i1.i, i32 %7, i32 %sub.i.i16 + %cmp33.i.i18 = icmp ult i32 %cond.i.i17, 3 + br i1 %cmp33.i.i18, label %for.inc, label %return for.inc: ; preds = %_ZN19OpenColorIO_v2_4dev18IsScalarEqualToOneIfEEbT_.exit, %_ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 @@ -557,13 +557,13 @@ for.inc: ; preds = %_ZN19OpenColorIO_v2 br i1 %exitcond.not, label %for.inc12, label %for.body3, !llvm.loop !11 for.inc12: ; preds = %for.inc - %indvars.iv.next33 = add nuw nsw i64 %indvars.iv32, 1 - %exitcond36 = icmp eq i64 %indvars.iv.next33, 4 - br i1 %exitcond36, label %return, label %for.cond1.preheader, !llvm.loop !12 + %indvars.iv.next32 = add nuw nsw i64 %indvars.iv31, 1 + %exitcond35 = icmp eq i64 %indvars.iv.next32, 4 + br i1 %exitcond35, label %return, label %for.cond1.preheader, !llvm.loop !12 return: ; preds = %for.inc12, %if.else, %if.then, %_ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit, %_ZN19OpenColorIO_v2_4dev18IsScalarEqualToOneIfEEbT_.exit - %cmp25 = phi i1 [ false, %_ZN19OpenColorIO_v2_4dev18IsScalarEqualToOneIfEEbT_.exit ], [ false, %_ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit ], [ false, %if.then ], [ false, %if.else ], [ true, %for.inc12 ] - ret i1 %cmp25 + %cmp24 = phi i1 [ false, %_ZN19OpenColorIO_v2_4dev18IsScalarEqualToOneIfEEbT_.exit ], [ false, %_ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit ], [ false, %if.then ], [ false, %if.else ], [ true, %for.inc12 ] + ret i1 %cmp24 } ; Function Attrs: mustprogress uwtable @@ -649,7 +649,7 @@ entry: _ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit.thread: ; preds = %entry %div3 = fdiv float 1.000000e+00, %v - br label %5 + br label %6 _ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit: ; preds = %entry %2 = tail call float @llvm.fabs.f32(float %v) @@ -660,20 +660,20 @@ _ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit: ; preds = %entry %cmp3.i30.i.i = icmp slt i32 %0, 0 %cond.i31.i.i = select i1 %cmp3.i30.i.i, i32 %sub.i29.i.i, i32 %add.i27.i.i %sub.i.i = sub nuw i32 -2147483648, %cond.i31.i.i - %sub32.i.i = xor i32 %cond.i31.i.i, -2147483648 + %4 = and i32 %cond.i31.i.i, 2147483647 %cmp31.i1.i = icmp slt i32 %cond.i31.i.i, 0 - %cond.i.i = select i1 %cmp31.i1.i, i32 %sub32.i.i, i32 %sub.i.i + %cond.i.i = select i1 %cmp31.i1.i, i32 %4, i32 %sub.i.i %cond.i.i.fr = freeze i32 %cond.i.i %cmp33.i.i = icmp ult i32 %cond.i.i.fr, 3 %div = fdiv float 1.000000e+00, %v - br i1 %cmp33.i.i, label %4, label %5 + br i1 %cmp33.i.i, label %5, label %6 -4: ; preds = %_ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit - br label %5 +5: ; preds = %_ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit + br label %6 -5: ; preds = %_ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit.thread, %_ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit, %4 - %6 = phi float [ %defaultValue, %4 ], [ %div, %_ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit ], [ %div3, %_ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit.thread ] - ret float %6 +6: ; preds = %_ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit.thread, %_ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit, %5 + %7 = phi float [ %defaultValue, %5 ], [ %div, %_ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit ], [ %div3, %_ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit.thread ] + ret float %7 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) uwtable @@ -704,9 +704,9 @@ _ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit: ; preds = %for.body %cmp3.i30.i.i = icmp slt i32 %1, 0 %cond.i31.i.i = select i1 %cmp3.i30.i.i, i32 %sub.i29.i.i, i32 %add.i27.i.i %sub.i.i = sub nuw i32 -2147483648, %cond.i31.i.i - %sub32.i.i = xor i32 %cond.i31.i.i, -2147483648 + %5 = and i32 %cond.i31.i.i, 2147483647 %cmp31.i1.i = icmp slt i32 %cond.i31.i.i, 0 - %cond.i.i = select i1 %cmp31.i1.i, i32 %sub32.i.i, i32 %sub.i.i + %cond.i.i = select i1 %cmp31.i1.i, i32 %5, i32 %sub.i.i %cmp33.i.i = icmp ult i32 %cond.i.i, 3 br i1 %cmp33.i.i, label %return, label %for.inc @@ -951,86 +951,86 @@ _ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit: ; preds = %for.end %cmp3.i30.i.i = icmp slt i32 %41, 0 %cond.i31.i.i = select i1 %cmp3.i30.i.i, i32 %sub.i29.i.i, i32 %add.i27.i.i %sub.i.i = sub nuw i32 -2147483648, %cond.i31.i.i - %sub32.i.i = xor i32 %cond.i31.i.i, -2147483648 + %45 = and i32 %cond.i31.i.i, 2147483647 %cmp31.i1.i = icmp slt i32 %cond.i31.i.i, 0 - %cond.i.i = select i1 %cmp31.i1.i, i32 %sub32.i.i, i32 %sub.i.i + %cond.i.i = select i1 %cmp31.i1.i, i32 %45, i32 %sub.i.i %cmp33.i.i = icmp ult i32 %cond.i.i, 3 br i1 %cmp33.i.i, label %return, label %if.end if.end: ; preds = %for.end, %_ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit %div = fdiv double 1.000000e+00, %40 %neg71 = fmul double %35, %neg48 - %45 = tail call double @llvm.fmuladd.f64(double %34, double %18, double %neg71) + %46 = tail call double @llvm.fmuladd.f64(double %34, double %18, double %neg71) %neg77 = fmul double %37, %neg48 - %46 = tail call double @llvm.fmuladd.f64(double %34, double %19, double %neg77) + %47 = tail call double @llvm.fmuladd.f64(double %34, double %19, double %neg77) %neg83 = fmul double %39, %neg48 - %47 = tail call double @llvm.fmuladd.f64(double %34, double %22, double %neg83) - %48 = fneg double %18 - %neg89 = fmul double %37, %48 - %49 = tail call double @llvm.fmuladd.f64(double %35, double %19, double %neg89) - %neg95 = fmul double %39, %48 - %50 = tail call double @llvm.fmuladd.f64(double %35, double %22, double %neg95) - %51 = fneg double %19 - %neg101 = fmul double %39, %51 - %52 = tail call double @llvm.fmuladd.f64(double %37, double %22, double %neg101) - %53 = fneg double %50 - %neg105 = fmul double %7, %53 - %54 = tail call double @llvm.fmuladd.f64(double %2, double %52, double %neg105) - %55 = tail call double @llvm.fmuladd.f64(double %10, double %49, double %54) - %56 = fneg double %46 - %neg110 = fmul double %10, %56 - %57 = tail call double @llvm.fmuladd.f64(double %7, double %47, double %neg110) - %58 = tail call double @llvm.fmuladd.f64(double %5, double %52, double %57) - %59 = fneg double %47 - %neg116 = fmul double %2, %59 - %60 = tail call double @llvm.fmuladd.f64(double %4, double %50, double %neg116) - %61 = tail call double @llvm.fmuladd.f64(double %10, double %45, double %60) - %62 = fneg double %45 - %neg121 = fmul double %7, %62 - %63 = tail call double @llvm.fmuladd.f64(double %2, double %46, double %neg121) - %64 = tail call double @llvm.fmuladd.f64(double %5, double %49, double %63) - %65 = fneg double %49 - %neg127 = fmul double %11, %65 - %66 = tail call double @llvm.fmuladd.f64(double %8, double %50, double %neg127) + %48 = tail call double @llvm.fmuladd.f64(double %34, double %22, double %neg83) + %49 = fneg double %18 + %neg89 = fmul double %37, %49 + %50 = tail call double @llvm.fmuladd.f64(double %35, double %19, double %neg89) + %neg95 = fmul double %39, %49 + %51 = tail call double @llvm.fmuladd.f64(double %35, double %22, double %neg95) + %52 = fneg double %19 + %neg101 = fmul double %39, %52 + %53 = tail call double @llvm.fmuladd.f64(double %37, double %22, double %neg101) + %54 = fneg double %51 + %neg105 = fmul double %7, %54 + %55 = tail call double @llvm.fmuladd.f64(double %2, double %53, double %neg105) + %56 = tail call double @llvm.fmuladd.f64(double %10, double %50, double %55) + %57 = fneg double %47 + %neg110 = fmul double %10, %57 + %58 = tail call double @llvm.fmuladd.f64(double %7, double %48, double %neg110) + %59 = tail call double @llvm.fmuladd.f64(double %5, double %53, double %58) + %60 = fneg double %48 + %neg116 = fmul double %2, %60 + %61 = tail call double @llvm.fmuladd.f64(double %4, double %51, double %neg116) + %62 = tail call double @llvm.fmuladd.f64(double %10, double %46, double %61) + %63 = fneg double %46 + %neg121 = fmul double %7, %63 + %64 = tail call double @llvm.fmuladd.f64(double %2, double %47, double %neg121) + %65 = tail call double @llvm.fmuladd.f64(double %5, double %50, double %64) + %66 = fneg double %50 + %neg127 = fmul double %11, %66 + %67 = tail call double @llvm.fmuladd.f64(double %8, double %51, double %neg127) %neg129 = fneg double %3 - %67 = tail call double @llvm.fmuladd.f64(double %neg129, double %52, double %66) - %neg133 = fmul double %8, %59 - %68 = tail call double @llvm.fmuladd.f64(double %1, double %52, double %neg133) - %69 = tail call double @llvm.fmuladd.f64(double %11, double %46, double %68) - %neg138 = fmul double %11, %62 - %70 = tail call double @llvm.fmuladd.f64(double %3, double %47, double %neg138) + %68 = tail call double @llvm.fmuladd.f64(double %neg129, double %53, double %67) + %neg133 = fmul double %8, %60 + %69 = tail call double @llvm.fmuladd.f64(double %1, double %53, double %neg133) + %70 = tail call double @llvm.fmuladd.f64(double %11, double %47, double %69) + %neg138 = fmul double %11, %63 + %71 = tail call double @llvm.fmuladd.f64(double %3, double %48, double %neg138) %neg140 = fneg double %1 - %71 = tail call double @llvm.fmuladd.f64(double %neg140, double %50, double %70) - %neg144 = fmul double %3, %56 - %72 = tail call double @llvm.fmuladd.f64(double %1, double %49, double %neg144) - %73 = tail call double @llvm.fmuladd.f64(double %8, double %45, double %72) - %74 = fneg double %14 - %neg149 = fmul double %39, %74 - %75 = tail call double @llvm.fmuladd.f64(double %37, double %15, double %neg149) + %72 = tail call double @llvm.fmuladd.f64(double %neg140, double %51, double %71) + %neg144 = fmul double %3, %57 + %73 = tail call double @llvm.fmuladd.f64(double %1, double %50, double %neg144) + %74 = tail call double @llvm.fmuladd.f64(double %8, double %46, double %73) + %75 = fneg double %14 + %neg149 = fmul double %39, %75 + %76 = tail call double @llvm.fmuladd.f64(double %37, double %15, double %neg149) %neg151 = fneg double %35 - %76 = tail call double @llvm.fmuladd.f64(double %neg151, double %17, double %75) + %77 = tail call double @llvm.fmuladd.f64(double %neg151, double %17, double %76) %neg155 = fmul double %37, %28 - %77 = tail call double @llvm.fmuladd.f64(double %34, double %17, double %neg155) - %78 = tail call double @llvm.fmuladd.f64(double %39, double %9, double %77) + %78 = tail call double @llvm.fmuladd.f64(double %34, double %17, double %neg155) + %79 = tail call double @llvm.fmuladd.f64(double %39, double %9, double %78) %neg160 = fmul double %39, %31 - %79 = tail call double @llvm.fmuladd.f64(double %35, double %12, double %neg160) + %80 = tail call double @llvm.fmuladd.f64(double %35, double %12, double %neg160) %neg162 = fneg double %34 - %80 = tail call double @llvm.fmuladd.f64(double %neg162, double %15, double %79) + %81 = tail call double @llvm.fmuladd.f64(double %neg162, double %15, double %80) %neg166 = fmul double %35, %24 - %81 = tail call double @llvm.fmuladd.f64(double %34, double %14, double %neg166) - %82 = tail call double @llvm.fmuladd.f64(double %37, double %6, double %81) + %82 = tail call double @llvm.fmuladd.f64(double %34, double %14, double %neg166) + %83 = tail call double @llvm.fmuladd.f64(double %37, double %6, double %82) %mul = fmul double %23, %div %conv168 = fptrunc double %mul to float store float %conv168, ptr %inverse_out, align 4 - %mul170 = fmul double %div, %55 + %mul170 = fmul double %div, %56 %conv171 = fptrunc double %mul170 to float %arrayidx172 = getelementptr inbounds i8, ptr %inverse_out, i64 4 store float %conv171, ptr %arrayidx172, align 4 - %mul173 = fmul double %div, %67 + %mul173 = fmul double %div, %68 %conv174 = fptrunc double %mul173 to float %arrayidx175 = getelementptr inbounds i8, ptr %inverse_out, i64 8 store float %conv174, ptr %arrayidx175, align 4 - %mul176 = fmul double %76, %div + %mul176 = fmul double %77, %div %conv177 = fptrunc double %mul176 to float %arrayidx178 = getelementptr inbounds i8, ptr %inverse_out, i64 12 store float %conv177, ptr %arrayidx178, align 4 @@ -1038,15 +1038,15 @@ if.end: ; preds = %for.end, %_ZN19Open %conv180 = fptrunc double %mul179 to float %arrayidx181 = getelementptr inbounds i8, ptr %inverse_out, i64 16 store float %conv180, ptr %arrayidx181, align 4 - %mul182 = fmul double %div, %58 + %mul182 = fmul double %div, %59 %conv183 = fptrunc double %mul182 to float %arrayidx184 = getelementptr inbounds i8, ptr %inverse_out, i64 20 store float %conv183, ptr %arrayidx184, align 4 - %mul185 = fmul double %div, %69 + %mul185 = fmul double %div, %70 %conv186 = fptrunc double %mul185 to float %arrayidx187 = getelementptr inbounds i8, ptr %inverse_out, i64 24 store float %conv186, ptr %arrayidx187, align 4 - %mul188 = fmul double %78, %div + %mul188 = fmul double %79, %div %conv189 = fptrunc double %mul188 to float %arrayidx190 = getelementptr inbounds i8, ptr %inverse_out, i64 28 store float %conv189, ptr %arrayidx190, align 4 @@ -1054,15 +1054,15 @@ if.end: ; preds = %for.end, %_ZN19Open %conv192 = fptrunc double %mul191 to float %arrayidx193 = getelementptr inbounds i8, ptr %inverse_out, i64 32 store float %conv192, ptr %arrayidx193, align 4 - %mul194 = fmul double %div, %61 + %mul194 = fmul double %div, %62 %conv195 = fptrunc double %mul194 to float %arrayidx196 = getelementptr inbounds i8, ptr %inverse_out, i64 36 store float %conv195, ptr %arrayidx196, align 4 - %mul197 = fmul double %div, %71 + %mul197 = fmul double %div, %72 %conv198 = fptrunc double %mul197 to float %arrayidx199 = getelementptr inbounds i8, ptr %inverse_out, i64 40 store float %conv198, ptr %arrayidx199, align 4 - %mul200 = fmul double %80, %div + %mul200 = fmul double %81, %div %conv201 = fptrunc double %mul200 to float %arrayidx202 = getelementptr inbounds i8, ptr %inverse_out, i64 44 store float %conv201, ptr %arrayidx202, align 4 @@ -1070,15 +1070,15 @@ if.end: ; preds = %for.end, %_ZN19Open %conv204 = fptrunc double %mul203 to float %arrayidx205 = getelementptr inbounds i8, ptr %inverse_out, i64 48 store float %conv204, ptr %arrayidx205, align 4 - %mul206 = fmul double %64, %div + %mul206 = fmul double %65, %div %conv207 = fptrunc double %mul206 to float %arrayidx208 = getelementptr inbounds i8, ptr %inverse_out, i64 52 store float %conv207, ptr %arrayidx208, align 4 - %mul209 = fmul double %div, %73 + %mul209 = fmul double %div, %74 %conv210 = fptrunc double %mul209 to float %arrayidx211 = getelementptr inbounds i8, ptr %inverse_out, i64 56 store float %conv210, ptr %arrayidx211, align 4 - %mul212 = fmul double %82, %div + %mul212 = fmul double %83, %div %conv213 = fptrunc double %mul212 to float %arrayidx214 = getelementptr inbounds i8, ptr %inverse_out, i64 60 store float %conv213, ptr %arrayidx214, align 4 diff --git a/bench/oiio/optimized/maketexture.cpp.ll b/bench/oiio/optimized/maketexture.cpp.ll index 3e34b82106e..b5b62131af0 100644 --- a/bench/oiio/optimized/maketexture.cpp.ll +++ b/bench/oiio/optimized/maketexture.cpp.ll @@ -61743,9 +61743,9 @@ if.end: ; preds = %lor.lhs.false, %ent %5 = load i32, ptr %roi, align 8 %sub.i = sub nsw i32 %4, %5 %mul = mul nsw i32 %sub.i, %call6 - %conv = sext i32 %mul to i64 + %conv = zext i32 %mul to i64 %6 = icmp slt i32 %mul, 0 - %7 = shl nsw i64 %conv, 2 + %7 = shl nuw nsw i64 %conv, 2 %8 = select i1 %6, i64 -1, i64 %7 %call8 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %8) #26 %call9 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %8) #26 @@ -61967,9 +61967,9 @@ if.end: ; preds = %lor.lhs.false, %ent %5 = load i32, ptr %roi, align 8 %sub.i = sub nsw i32 %4, %5 %mul = mul nsw i32 %sub.i, %call6 - %conv = sext i32 %mul to i64 + %conv = zext i32 %mul to i64 %6 = icmp slt i32 %mul, 0 - %7 = shl nsw i64 %conv, 2 + %7 = shl nuw nsw i64 %conv, 2 %8 = select i1 %6, i64 -1, i64 %7 %call8 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %8) #26 %call9 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %8) #26 @@ -62198,9 +62198,9 @@ if.end: ; preds = %lor.lhs.false, %ent %5 = load i32, ptr %roi, align 8 %sub.i = sub nsw i32 %4, %5 %mul = mul nsw i32 %sub.i, %call6 - %conv = sext i32 %mul to i64 + %conv = zext i32 %mul to i64 %6 = icmp slt i32 %mul, 0 - %7 = shl nsw i64 %conv, 2 + %7 = shl nuw nsw i64 %conv, 2 %8 = select i1 %6, i64 -1, i64 %7 %call8 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %8) #26 %call9 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %8) #26 @@ -62475,9 +62475,9 @@ if.end: ; preds = %lor.lhs.false, %ent %5 = load i32, ptr %roi, align 8 %sub.i = sub nsw i32 %4, %5 %mul = mul nsw i32 %sub.i, %call6 - %conv = sext i32 %mul to i64 + %conv = zext i32 %mul to i64 %6 = icmp slt i32 %mul, 0 - %7 = shl nsw i64 %conv, 2 + %7 = shl nuw nsw i64 %conv, 2 %8 = select i1 %6, i64 -1, i64 %7 %call8 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %8) #26 %call9 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %8) #26 @@ -62706,9 +62706,9 @@ if.end: ; preds = %lor.lhs.false, %ent %5 = load i32, ptr %roi, align 8 %sub.i = sub nsw i32 %4, %5 %mul = mul nsw i32 %sub.i, %call6 - %conv = sext i32 %mul to i64 + %conv = zext i32 %mul to i64 %6 = icmp slt i32 %mul, 0 - %7 = shl nsw i64 %conv, 2 + %7 = shl nuw nsw i64 %conv, 2 %8 = select i1 %6, i64 -1, i64 %7 %call8 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %8) #26 %call9 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %8) #26 @@ -62937,9 +62937,9 @@ if.end: ; preds = %lor.lhs.false, %ent %5 = load i32, ptr %roi, align 8 %sub.i = sub nsw i32 %4, %5 %mul = mul nsw i32 %sub.i, %call6 - %conv = sext i32 %mul to i64 + %conv = zext i32 %mul to i64 %6 = icmp slt i32 %mul, 0 - %7 = shl nsw i64 %conv, 2 + %7 = shl nuw nsw i64 %conv, 2 %8 = select i1 %6, i64 -1, i64 %7 %call8 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %8) #26 %call9 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %8) #26 @@ -63168,9 +63168,9 @@ if.end: ; preds = %lor.lhs.false, %ent %5 = load i32, ptr %roi, align 8 %sub.i = sub nsw i32 %4, %5 %mul = mul nsw i32 %sub.i, %call6 - %conv = sext i32 %mul to i64 + %conv = zext i32 %mul to i64 %6 = icmp slt i32 %mul, 0 - %7 = shl nsw i64 %conv, 2 + %7 = shl nuw nsw i64 %conv, 2 %8 = select i1 %6, i64 -1, i64 %7 %call8 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %8) #26 %call9 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %8) #26 @@ -63395,9 +63395,9 @@ if.end: ; preds = %lor.lhs.false, %ent %5 = load i32, ptr %roi, align 8 %sub.i = sub nsw i32 %4, %5 %mul = mul nsw i32 %sub.i, %call6 - %conv = sext i32 %mul to i64 + %conv = zext i32 %mul to i64 %6 = icmp slt i32 %mul, 0 - %7 = shl nsw i64 %conv, 2 + %7 = shl nuw nsw i64 %conv, 2 %8 = select i1 %6, i64 -1, i64 %7 %call8 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %8) #26 %call9 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %8) #26 @@ -63622,9 +63622,9 @@ if.end: ; preds = %lor.lhs.false, %ent %5 = load i32, ptr %roi, align 8 %sub.i = sub nsw i32 %4, %5 %mul = mul nsw i32 %sub.i, %call6 - %conv = sext i32 %mul to i64 + %conv = zext i32 %mul to i64 %6 = icmp slt i32 %mul, 0 - %7 = shl nsw i64 %conv, 2 + %7 = shl nuw nsw i64 %conv, 2 %8 = select i1 %6, i64 -1, i64 %7 %call8 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %8) #26 %call9 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %8) #26 diff --git a/bench/opencv/optimized/linemod.cpp.ll b/bench/opencv/optimized/linemod.cpp.ll index ef3f1bcfced..3e1911103e2 100644 --- a/bench/opencv/optimized/linemod.cpp.ll +++ b/bench/opencv/optimized/linemod.cpp.ll @@ -3124,8 +3124,8 @@ _ZNSt6vectorI7CvPointSaIS0_EE9push_backERKS0_.exit.i: ; preds = %_ZNSt6vectorI7C %135 = ptrtoint ptr %134 to i64 %136 = ptrtoint ptr %133 to i64 %137 = sub i64 %135, %136 - %sext558.i = shl i64 %137, 29 - %138 = ashr i64 %sext558.i, 32 + %sext.i = shl i64 %137, 29 + %138 = ashr i64 %sext.i, 32 %139 = icmp slt i64 %indvars.iv.next497.i, %138 br i1 %139, label %.lr.ph430.i, label %._crit_edge.i, !llvm.loop !33 @@ -3216,13 +3216,13 @@ _ZNSt6vectorIN2cv7Point3_IdEESaIS2_EEC2EmRKS3_.exit.i: ; preds = %.noexc220.i, % .noexc221.i: ; preds = %155, %_ZNSt6vectorIN2cv7Point3_IdEESaIS2_EEC2EmRKS3_.exit.i, %.preheader401.i %180 = phi i1 [ false, %_ZNSt6vectorIN2cv7Point3_IdEESaIS2_EEC2EmRKS3_.exit.i ], [ false, %.preheader401.i ], [ true, %155 ] %181 = phi i32 [ %149, %_ZNSt6vectorIN2cv7Point3_IdEESaIS2_EEC2EmRKS3_.exit.i ], [ 0, %.preheader401.i ], [ %149, %155 ] - %.0.lcssa.i.i.i.i.i580.i = phi i64 [ %.0.lcssa.i.i.i.i.i.i, %_ZNSt6vectorIN2cv7Point3_IdEESaIS2_EEC2EmRKS3_.exit.i ], [ 0, %.preheader401.i ], [ %.0.lcssa.i.i.i.i.i.i, %155 ] - %.sroa.0339.2578.i = phi ptr [ %.sroa.0339.2.i, %_ZNSt6vectorIN2cv7Point3_IdEESaIS2_EEC2EmRKS3_.exit.i ], [ null, %.preheader401.i ], [ %.sroa.0339.2.i, %155 ] + %.0.lcssa.i.i.i.i.i579.i = phi i64 [ %.0.lcssa.i.i.i.i.i.i, %_ZNSt6vectorIN2cv7Point3_IdEESaIS2_EEC2EmRKS3_.exit.i ], [ 0, %.preheader401.i ], [ %.0.lcssa.i.i.i.i.i.i, %155 ] + %.sroa.0339.2577.i = phi ptr [ %.sroa.0339.2.i, %_ZNSt6vectorIN2cv7Point3_IdEESaIS2_EEC2EmRKS3_.exit.i ], [ null, %.preheader401.i ], [ %.sroa.0339.2.i, %155 ] %182 = phi i64 [ %143, %_ZNSt6vectorIN2cv7Point3_IdEESaIS2_EEC2EmRKS3_.exit.i ], [ 0, %.preheader401.i ], [ %143, %155 ] - %.sroa.0372.2.lcssa566573577.i = phi ptr [ %.sroa.0372.4.i, %_ZNSt6vectorIN2cv7Point3_IdEESaIS2_EEC2EmRKS3_.exit.i ], [ null, %.preheader401.i ], [ %.sroa.0372.4.i, %155 ] + %.sroa.0372.2.lcssa565572576.i = phi ptr [ %.sroa.0372.4.i, %_ZNSt6vectorIN2cv7Point3_IdEESaIS2_EEC2EmRKS3_.exit.i ], [ null, %.preheader401.i ], [ %.sroa.0372.4.i, %155 ] %183 = fdiv double 1.000000e+00, %3 - %184 = ptrtoint ptr %.sroa.0339.2578.i to i64 - %185 = sub i64 %.0.lcssa.i.i.i.i.i580.i, %184 + %184 = ptrtoint ptr %.sroa.0339.2577.i to i64 + %185 = sub i64 %.0.lcssa.i.i.i.i.i579.i, %184 %186 = sdiv exact i64 %185, 24 %187 = trunc i64 %186 to i32 %188 = icmp sgt i32 %187, 0 @@ -3235,7 +3235,7 @@ _ZNSt6vectorIN2cv7Point3_IdEESaIS2_EEC2EmRKS3_.exit.i: ; preds = %.noexc220.i, % .lr.ph.i.i: ; preds = %.lr.ph.i.i, %.lr.ph.i.preheader.i %indvars.iv.i.i = phi i64 [ %indvars.iv.next.i.i, %.lr.ph.i.i ], [ 0, %.lr.ph.i.preheader.i ] - %189 = getelementptr inbounds %"class.cv::Point3_", ptr %.sroa.0339.2578.i, i64 %indvars.iv.i.i + %189 = getelementptr inbounds %"class.cv::Point3_", ptr %.sroa.0339.2577.i, i64 %indvars.iv.i.i %190 = getelementptr inbounds i8, ptr %189, i64 16 %191 = load double, ptr %190, align 8 %192 = load double, ptr %189, align 8 @@ -3243,12 +3243,12 @@ _ZNSt6vectorIN2cv7Point3_IdEESaIS2_EEC2EmRKS3_.exit.i: ; preds = %.noexc220.i, % %194 = fmul double %183, %191 %195 = fmul double %194, %193 store double %195, ptr %189, align 8 - %196 = getelementptr inbounds %"class.cv::Point3_", ptr %.sroa.0339.2578.i, i64 %indvars.iv.i.i, i32 1 + %196 = getelementptr inbounds %"class.cv::Point3_", ptr %.sroa.0339.2577.i, i64 %indvars.iv.i.i, i32 1 %197 = load double, ptr %196, align 8 %198 = fadd double %197, -2.400000e+02 %199 = fmul double %194, %198 store double %199, ptr %196, align 8 - %200 = getelementptr inbounds %"class.cv::Point3_", ptr %.sroa.0339.2578.i, i64 %indvars.iv.i.i, i32 2 + %200 = getelementptr inbounds %"class.cv::Point3_", ptr %.sroa.0339.2577.i, i64 %indvars.iv.i.i, i32 2 store double %191, ptr %200, align 8 %indvars.iv.next.i.i = add nuw nsw i64 %indvars.iv.i.i, 1 %exitcond504.not.i = icmp eq i64 %indvars.iv.next.i.i, %umax.i @@ -3280,7 +3280,7 @@ _ZL15reprojectPointsRKSt6vectorIN2cv7Point3_IdEESaIS2_EERS4_d.exit.i: ; preds = .lr.ph438.i: ; preds = %.lr.ph438.i, %.lr.ph438.preheader.i %indvars.iv505.i = phi i64 [ 0, %.lr.ph438.preheader.i ], [ %indvars.iv.next506.i, %.lr.ph438.i ] - %209 = getelementptr inbounds %"class.cv::Point3_", ptr %.sroa.0339.2578.i, i64 %indvars.iv505.i + %209 = getelementptr inbounds %"class.cv::Point3_", ptr %.sroa.0339.2577.i, i64 %indvars.iv505.i %210 = load double, ptr %209, align 8 %211 = fptrunc double %210 to float %212 = load ptr, ptr %207, align 8 @@ -3437,9 +3437,9 @@ _ZL15reprojectPointsRKSt6vectorIN2cv7Point3_IdEESaIS2_EERS4_d.exit.i: ; preds = %307 = sub i32 %.0388.lcssa.i, %.0390.lcssa.i %308 = add i32 %307, 1 store i32 %299, ptr %10, align 4 - %sext.i = shl i64 %297, 29 - %309 = ashr exact i64 %sext.i, 29 - %.inv.i = icmp sgt i64 %sext.i, -1 + %309 = and i64 %297, 34359738367 + %sext.mask.i = and i64 %297, 17179869184 + %.inv.i = icmp eq i64 %sext.mask.i, 0 %310 = select i1 %.inv.i, i64 %309, i64 -1 %311 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %310) #24 to label %312 unwind label %178 @@ -3541,8 +3541,8 @@ _ZNSt6vectorIN2cv7Point3_IdEESaIS2_EEC2EmRKS3_.exit234.i: ; preds = %.noexc233.i %343 = sitofp i32 %342 to double %344 = mul nsw i64 %341, %340 %345 = getelementptr inbounds i8, ptr %336, i64 %344 - %sext559.i = shl i64 %.0197471.i, 32 - %346 = ashr exact i64 %sext559.i, 32 + %sext558.i = shl i64 %.0197471.i, 32 + %346 = ashr exact i64 %sext558.i, 32 br label %347 347: ; preds = %347, %.preheader398.i @@ -3633,8 +3633,8 @@ _ZL15reprojectPointsRKSt6vectorIN2cv7Point3_IdEESaIS2_EERS4_d.exit240.i: ; preds %.2484.i = phi i64 [ %429, %._crit_edge481.i ], [ 0, %.preheader397.preheader.i ] %385 = add nsw i32 %.0194485.i, %.0390.lcssa.i %386 = sitofp i32 %385 to double - %sext560.i = shl i64 %.2484.i, 32 - %387 = ashr exact i64 %sext560.i, 32 + %sext559.i = shl i64 %.2484.i, 32 + %387 = ashr exact i64 %sext559.i, 32 %388 = insertelement <2 x double> poison, double %386, i64 0 br label %389 @@ -3732,32 +3732,32 @@ _ZL15reprojectPointsRKSt6vectorIN2cv7Point3_IdEESaIS2_EERS4_d.exit240.i: ; preds br label %_ZNSt6vectorIN2cv7Point3_IdEESaIS2_EED2Ev.exit244.i _ZNSt6vectorIN2cv7Point3_IdEESaIS2_EED2Ev.exit244.i: ; preds = %435, %434 - %.not.i.i.i245.i = icmp eq ptr %.sroa.0339.2578.i, null + %.not.i.i.i245.i = icmp eq ptr %.sroa.0339.2577.i, null br i1 %.not.i.i.i245.i, label %_ZNSt6vectorIN2cv7Point3_IdEESaIS2_EED2Ev.exit246.i, label %436 436: ; preds = %_ZNSt6vectorIN2cv7Point3_IdEESaIS2_EED2Ev.exit244.i - call void @_ZdlPv(ptr noundef nonnull %.sroa.0339.2578.i) #25 + call void @_ZdlPv(ptr noundef nonnull %.sroa.0339.2577.i) #25 br label %_ZNSt6vectorIN2cv7Point3_IdEESaIS2_EED2Ev.exit246.i _ZNSt6vectorIN2cv7Point3_IdEESaIS2_EED2Ev.exit246.i: ; preds = %436, %_ZNSt6vectorIN2cv7Point3_IdEESaIS2_EED2Ev.exit244.i - %.not.i.i.i247.i = icmp eq ptr %.sroa.0372.2.lcssa566573577.i, null + %.not.i.i.i247.i = icmp eq ptr %.sroa.0372.2.lcssa565572576.i, null br i1 %.not.i.i.i247.i, label %_ZNSt6vectorIP9_IplImageSaIS1_EED2Ev.exit, label %437 437: ; preds = %_ZNSt6vectorIN2cv7Point3_IdEESaIS2_EED2Ev.exit246.i - call void @_ZdlPv(ptr noundef nonnull %.sroa.0372.2.lcssa566573577.i) #25 + call void @_ZdlPv(ptr noundef nonnull %.sroa.0372.2.lcssa565572576.i) #25 br label %_ZNSt6vectorIP9_IplImageSaIS1_EED2Ev.exit _ZNSt6vectorIN2cv7Point3_IdEESaIS2_EED2Ev.exit.i: ; preds = %428, %426, %357, %178 %.pn.i = phi { ptr, i32 } [ %179, %178 ], [ %358, %357 ], [ %427, %426 ], [ %427, %428 ] - %.not.i.i.i248.i = icmp eq ptr %.sroa.0339.2578.i, null + %.not.i.i.i248.i = icmp eq ptr %.sroa.0339.2577.i, null br i1 %.not.i.i.i248.i, label %_ZNSt6vectorIN2cv7Point3_IdEESaIS2_EED2Ev.exit249.i, label %438 438: ; preds = %_ZNSt6vectorIN2cv7Point3_IdEESaIS2_EED2Ev.exit.i - call void @_ZdlPv(ptr noundef nonnull %.sroa.0339.2578.i) #25 + call void @_ZdlPv(ptr noundef nonnull %.sroa.0339.2577.i) #25 br label %_ZNSt6vectorIN2cv7Point3_IdEESaIS2_EED2Ev.exit249.i _ZNSt6vectorIN2cv7Point3_IdEESaIS2_EED2Ev.exit249.i: ; preds = %438, %_ZNSt6vectorIN2cv7Point3_IdEESaIS2_EED2Ev.exit.i, %176, %.loopexit.split-lp.i, %.loopexit400.i - %.sroa.0372.1.i = phi ptr [ %.sroa.0372.4.i, %176 ], [ %.sroa.0372.2.lcssa566573577.i, %_ZNSt6vectorIN2cv7Point3_IdEESaIS2_EED2Ev.exit.i ], [ %.sroa.0372.2.lcssa566573577.i, %438 ], [ %.sroa.0372.3419.i, %.loopexit400.i ], [ %.sroa.0372.0.ph.i, %.loopexit.split-lp.i ] + %.sroa.0372.1.i = phi ptr [ %.sroa.0372.4.i, %176 ], [ %.sroa.0372.2.lcssa565572576.i, %_ZNSt6vectorIN2cv7Point3_IdEESaIS2_EED2Ev.exit.i ], [ %.sroa.0372.2.lcssa565572576.i, %438 ], [ %.sroa.0372.3419.i, %.loopexit400.i ], [ %.sroa.0372.0.ph.i, %.loopexit.split-lp.i ] %.pn215.i = phi { ptr, i32 } [ %177, %176 ], [ %.pn.i, %_ZNSt6vectorIN2cv7Point3_IdEESaIS2_EED2Ev.exit.i ], [ %.pn.i, %438 ], [ %lpad.loopexit.i, %.loopexit400.i ], [ %lpad.loopexit.split-lp.i, %.loopexit.split-lp.i ] %.not.i.i.i250.i = icmp eq ptr %.sroa.0372.1.i, null br i1 %.not.i.i.i250.i, label %.body.thread, label %439 diff --git a/bench/opencv/optimized/onnx_importer.cpp.ll b/bench/opencv/optimized/onnx_importer.cpp.ll index a527b1cce13..6739f09c650 100644 --- a/bench/opencv/optimized/onnx_importer.cpp.ll +++ b/bench/opencv/optimized/onnx_importer.cpp.ll @@ -27317,7 +27317,7 @@ _ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2cv3dnn14dnn4_v20 59: ; preds = %.noexc %60 = icmp slt i32 %54, 0 - %61 = ashr exact i64 %sext, 29 + %61 = lshr exact i64 %sext, 29 %62 = select i1 %60, i64 -1, i64 %61 %63 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %62) #29 to label %.noexc.i unwind label %71, !noalias !179 @@ -27622,7 +27622,7 @@ _ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2cv3dnn14dnn4_v20 67: ; preds = %.noexc %68 = icmp slt i32 %62, 0 - %69 = ashr exact i64 %sext, 29 + %69 = lshr exact i64 %sext, 29 %70 = select i1 %68, i64 -1, i64 %69 %71 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %70) #29 to label %.noexc.i unwind label %79, !noalias !182 @@ -27687,7 +27687,7 @@ _ZN2cv3dnn14dnn4_v202405219DictValue8arrayIntIPiEES2_T_i.exit: ; preds = %.lr.ph 87: ; preds = %.noexc38 %88 = icmp slt i32 %62, 0 - %89 = ashr exact i64 %sext, 29 + %89 = lshr exact i64 %sext, 29 %90 = select i1 %88, i64 -1, i64 %89 %91 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %90) #29 to label %.noexc.i37 unwind label %98, !noalias !185 @@ -39071,7 +39071,7 @@ _ZNK11opencv_onnx9NodeProto10input_sizeEv.exit: ; preds = %50 68: ; preds = %.noexc %69 = icmp slt i32 %63, 0 - %70 = ashr exact i64 %sext, 29 + %70 = lshr exact i64 %sext, 29 %71 = select i1 %69, i64 -1, i64 %70 %72 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %71) #29 to label %.noexc.i unwind label %80, !noalias !239 @@ -40646,7 +40646,7 @@ _ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2cv3MatESt4lessIS 72: ; preds = %.noexc %73 = icmp slt i32 %67, 0 - %74 = ashr exact i64 %sext, 29 + %74 = lshr exact i64 %sext, 29 %75 = select i1 %73, i64 -1, i64 %74 %76 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %75) #29 to label %.noexc.i unwind label %84, !noalias !256 @@ -41292,7 +41292,7 @@ _ZNK2cv3dnn14dnn4_v202405214Dict3getIiEET_RKNSt7__cxx1112basic_stringIcSt11char_ 121: ; preds = %.noexc90 %122 = icmp slt i32 %116, 0 - %123 = ashr exact i64 %sext, 29 + %123 = lshr exact i64 %sext, 29 %124 = select i1 %122, i64 -1, i64 %123 %125 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %124) #29 to label %.noexc.i unwind label %133, !noalias !259 @@ -42142,7 +42142,7 @@ _ZN2cv3MataSERKNS_7MatExprE.exit: ; preds = %56 74: ; preds = %.noexc37 %75 = icmp slt i32 %69, 0 - %76 = ashr exact i64 %sext, 29 + %76 = lshr exact i64 %sext, 29 %77 = select i1 %75, i64 -1, i64 %76 %78 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %77) #29 to label %.noexc.i unwind label %86, !noalias !266 diff --git a/bench/opencv/optimized/tf_importer.cpp.ll b/bench/opencv/optimized/tf_importer.cpp.ll index e51e55600b3..4f783abcd6b 100644 --- a/bench/opencv/optimized/tf_importer.cpp.ll +++ b/bench/opencv/optimized/tf_importer.cpp.ll @@ -6812,7 +6812,7 @@ _ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt 274: ; preds = %.noexc.i %275 = icmp slt i32 %269, 0 - %276 = ashr exact i64 %sext.i, 29 + %276 = lshr exact i64 %sext.i, 29 %277 = select i1 %275, i64 -1, i64 %276 %278 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %277) #29 to label %.noexc.i.i310 unwind label %286, !noalias !42 @@ -8556,7 +8556,7 @@ _ZN2cv3Mat2atIiEERT_i.exit384: ; preds = %_ZN2cv3Mat2atIiEERT 1119: ; preds = %.noexc394 %1120 = icmp slt i32 %1114, 0 - %1121 = ashr exact i64 %sext, 29 + %1121 = lshr exact i64 %sext, 29 %1122 = select i1 %1120, i64 -1, i64 %1121 %1123 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %1122) #29 to label %.noexc.i393 unwind label %1131, !noalias !50 @@ -13312,7 +13312,7 @@ _ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.e 212: ; preds = %.noexc83 %213 = icmp slt i32 %80, 0 - %214 = ashr exact i64 %sext, 29 + %214 = lshr exact i64 %sext, 29 %215 = select i1 %213, i64 -1, i64 %214 %216 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %215) #29 to label %.noexc.i unwind label %224, !noalias !105 @@ -14628,7 +14628,7 @@ _ZNK17opencv_tensorflow7NodeDef5inputB5cxx11Ei.exit: ; preds = %79 136: ; preds = %.noexc %137 = icmp slt i32 %131, 0 - %138 = ashr exact i64 %sext103, 29 + %138 = lshr exact i64 %sext103, 29 %139 = select i1 %137, i64 -1, i64 %138 %140 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %139) #29 to label %.noexc.i unwind label %148, !noalias !113 @@ -14886,7 +14886,7 @@ _ZNK17opencv_tensorflow7NodeDef5inputB5cxx11Ei.exit82: ; preds = %211 228: ; preds = %.noexc93 %229 = icmp slt i32 %223, 0 - %230 = ashr exact i64 %sext, 29 + %230 = lshr exact i64 %sext, 29 %231 = select i1 %229, i64 -1, i64 %230 %232 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %231) #29 to label %.noexc.i92 unwind label %240, !noalias !116 @@ -18138,7 +18138,7 @@ _ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt 183: ; preds = %.noexc51 %184 = icmp slt i32 %178, 0 - %185 = ashr exact i64 %sext, 29 + %185 = lshr exact i64 %sext, 29 %186 = select i1 %184, i64 -1, i64 %185 %187 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %186) #29 to label %.noexc.i unwind label %195, !noalias !124 @@ -18213,7 +18213,7 @@ _ZN2cv3dnn14dnn4_v202405219DictValue8arrayIntIPiEES2_T_i.exit: ; preds = %.lr.ph 209: ; preds = %.noexc62 %210 = icmp slt i32 %204, 0 - %211 = ashr exact i64 %sext67, 29 + %211 = lshr exact i64 %sext67, 29 %212 = select i1 %210, i64 -1, i64 %211 %213 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %212) #29 to label %.noexc.i61 unwind label %221, !noalias !127 @@ -19388,7 +19388,7 @@ _ZN2cv3Mat2atIiEERT_i.exit122: ; preds = %_ZN2cv3Mat2atIiEERT 548: ; preds = %.noexc123 %549 = icmp slt i32 %543, 0 - %550 = ashr exact i64 %sext177, 29 + %550 = lshr exact i64 %sext177, 29 %551 = select i1 %549, i64 -1, i64 %550 %552 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %551) #29 to label %.noexc.i unwind label %560, !noalias !131 @@ -19463,7 +19463,7 @@ _ZN2cv3dnn14dnn4_v202405219DictValue8arrayIntIPiEES2_T_i.exit: ; preds = %.lr.ph 574: ; preds = %.noexc134 %575 = icmp slt i32 %569, 0 - %576 = ashr exact i64 %sext178, 29 + %576 = lshr exact i64 %sext178, 29 %577 = select i1 %575, i64 -1, i64 %576 %578 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %577) #29 to label %.noexc.i133 unwind label %586, !noalias !134 @@ -28176,7 +28176,7 @@ define internal void @_ZN2cv3dnn14dnn4_v2024052112_GLOBAL__N_110TFImporter13pars 282: ; preds = %.noexc140 %283 = icmp slt i32 %277, 0 - %284 = ashr exact i64 %sext, 29 + %284 = lshr exact i64 %sext, 29 %285 = select i1 %283, i64 -1, i64 %284 %286 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %285) #29 to label %.noexc.i unwind label %293, !noalias !162 diff --git a/bench/openssl/optimized/libcrypto-lib-scalar.ll b/bench/openssl/optimized/libcrypto-lib-scalar.ll index c93428549a3..9a784f142bd 100644 --- a/bench/openssl/optimized/libcrypto-lib-scalar.ll +++ b/bench/openssl/optimized/libcrypto-lib-scalar.ll @@ -358,12 +358,12 @@ if.then: ; preds = %entry if.end: ; preds = %entry %rem = urem i64 %ser_len, 56 - %sub = sub nuw i64 %ser_len, %rem %cmp1 = icmp eq i64 %rem, 0 - %sub3 = add i64 %sub, -56 - %spec.select = select i1 %cmp1, i64 %sub3, i64 %sub + %0 = sub nsw i64 0, %rem + %spec.select.p = select i1 %cmp1, i64 -56, i64 %0 + %spec.select = add i64 %spec.select.p, %ser_len %arrayidx = getelementptr inbounds i8, ptr %ser, i64 %spec.select - %sub5 = sub i64 %ser_len, %spec.select + %sub5 = sub nsw i64 0, %spec.select.p br label %for.cond1.preheader.i for.cond1.preheader.i: ; preds = %for.end.i, %if.end @@ -377,8 +377,8 @@ for.body4.i: ; preds = %for.cond1.preheader %k.110.i = phi i64 [ %inc5.i, %for.body4.i ], [ %k.014.i, %for.cond1.preheader.i ] %j.09.i = phi i64 [ %inc.i, %for.body4.i ], [ 0, %for.cond1.preheader.i ] %arrayidx.i = getelementptr inbounds i8, ptr %arrayidx, i64 %k.110.i - %0 = load i8, ptr %arrayidx.i, align 1 - %conv.i = zext i8 %0 to i64 + %1 = load i8, ptr %arrayidx.i, align 1 + %conv.i = zext i8 %1 to i64 %mul.i = shl nuw nsw i64 %j.09.i, 3 %shl.i = shl nuw i64 %conv.i, %mul.i %or.i = or i64 %shl.i, %out.011.i @@ -386,8 +386,8 @@ for.body4.i: ; preds = %for.cond1.preheader %inc5.i = add nuw i64 %k.110.i, 1 %cmp2.i = icmp ult i64 %j.09.i, 7 %cmp3.i = icmp ult i64 %inc5.i, %sub5 - %1 = select i1 %cmp2.i, i1 %cmp3.i, i1 false - br i1 %1, label %for.body4.i, label %for.end.i, !llvm.loop !11 + %2 = select i1 %cmp2.i, i1 %cmp3.i, i1 false + br i1 %2, label %for.body4.i, label %for.end.i, !llvm.loop !11 for.end.i: ; preds = %for.body4.i, %for.cond1.preheader.i %k.1.lcssa.i = phi i64 [ %k.014.i, %for.cond1.preheader.i ], [ %inc5.i, %for.body4.i ] @@ -430,8 +430,8 @@ for.body4.i.i: ; preds = %for.cond1.preheader %k.110.i.i = phi i64 [ %inc5.i.i, %for.body4.i.i ], [ %k.014.i.i, %for.cond1.preheader.i.i ] %j.09.i.i = phi i64 [ %inc.i.i, %for.body4.i.i ], [ 0, %for.cond1.preheader.i.i ] %arrayidx.i.i = getelementptr inbounds i8, ptr %add.ptr, i64 %k.110.i.i - %2 = load i8, ptr %arrayidx.i.i, align 1 - %conv.i.i = zext i8 %2 to i64 + %3 = load i8, ptr %arrayidx.i.i, align 1 + %conv.i.i = zext i8 %3 to i64 %mul.i.i = shl nuw nsw i64 %j.09.i.i, 3 %shl.i.i = shl nuw i64 %conv.i.i, %mul.i.i %or.i.i = or i64 %shl.i.i, %out.011.i.i @@ -439,8 +439,8 @@ for.body4.i.i: ; preds = %for.cond1.preheader %inc5.i.i = add nuw nsw i64 %k.110.i.i, 1 %cmp2.i.i = icmp ult i64 %j.09.i.i, 7 %cmp3.i.i = icmp ult i64 %k.110.i.i, 55 - %3 = and i1 %cmp3.i.i, %cmp2.i.i - br i1 %3, label %for.body4.i.i, label %for.end.i.i, !llvm.loop !11 + %4 = and i1 %cmp3.i.i, %cmp2.i.i + br i1 %4, label %for.body4.i.i, label %for.end.i.i, !llvm.loop !11 for.end.i.i: ; preds = %for.body4.i.i, %for.cond1.preheader.i.i %k.1.lcssa.i.i = phi i64 [ %k.014.i.i, %for.cond1.preheader.i.i ], [ %inc5.i.i, %for.body4.i.i ] @@ -460,12 +460,12 @@ for.body.i19: ; preds = %for.body.i19, %for. %indvars.iv.i20 = phi i64 [ 0, %for.body.i.preheader ], [ %indvars.iv.next.i25, %for.body.i19 ] %chain.010.i = phi i128 [ 0, %for.body.i.preheader ], [ %shr.i24, %for.body.i19 ] %arrayidx.i21 = getelementptr inbounds [7 x i64], ptr %t1, i64 0, i64 %indvars.iv.i20 - %4 = load i64, ptr %arrayidx.i21, align 8 - %conv.i22 = zext i64 %4 to i128 + %5 = load i64, ptr %arrayidx.i21, align 8 + %conv.i22 = zext i64 %5 to i128 %add.i23 = add nuw nsw i128 %chain.010.i, %conv.i22 %arrayidx3.i = getelementptr inbounds [7 x i64], ptr %t2, i64 0, i64 %indvars.iv.i20 - %5 = load i64, ptr %arrayidx3.i, align 8 - %conv4.i = zext i64 %5 to i128 + %6 = load i64, ptr %arrayidx3.i, align 8 + %conv4.i = zext i64 %6 to i128 %add5.i = add nuw nsw i128 %add.i23, %conv4.i %conv6.i = trunc i128 %add5.i to i64 store i64 %conv6.i, ptr %arrayidx.i21, align 8 @@ -478,12 +478,12 @@ for.body.i.i: ; preds = %for.body.i19, %for. %indvars.iv.i.i = phi i64 [ %indvars.iv.next.i.i, %for.body.i.i ], [ 0, %for.body.i19 ] %chain.02.i.i = phi i128 [ %shr.i.i, %for.body.i.i ], [ 0, %for.body.i19 ] %arrayidx.i.i28 = getelementptr inbounds i64, ptr %t1, i64 %indvars.iv.i.i - %6 = load i64, ptr %arrayidx.i.i28, align 8 - %conv.i.i29 = zext i64 %6 to i128 + %7 = load i64, ptr %arrayidx.i.i28, align 8 + %conv.i.i29 = zext i64 %7 to i128 %add.i.i = add nsw i128 %chain.02.i.i, %conv.i.i29 %arrayidx2.i.i = getelementptr inbounds [7 x i64], ptr @sc_p, i64 0, i64 %indvars.iv.i.i - %7 = load i64, ptr %arrayidx2.i.i, align 8 - %conv3.i.i = zext i64 %7 to i128 + %8 = load i64, ptr %arrayidx2.i.i, align 8 + %conv3.i.i = zext i64 %8 to i128 %sub4.i.i = sub nsw i128 %add.i.i, %conv3.i.i %conv5.i.i = trunc i128 %sub4.i.i to i64 store i64 %conv5.i.i, ptr %arrayidx.i.i28, align 8 @@ -502,12 +502,12 @@ for.body14.i.i: ; preds = %for.body14.i.i, %fo %indvars.iv6.i.i = phi i64 [ 0, %for.end.i.i31 ], [ %indvars.iv.next7.i.i, %for.body14.i.i ] %chain.14.i.i = phi i128 [ 0, %for.end.i.i31 ], [ %shr29.i.i, %for.body14.i.i ] %arrayidx17.i.i = getelementptr inbounds [7 x i64], ptr %t1, i64 0, i64 %indvars.iv6.i.i - %8 = load i64, ptr %arrayidx17.i.i, align 8 - %conv18.i.i = zext i64 %8 to i128 + %9 = load i64, ptr %arrayidx17.i.i, align 8 + %conv18.i.i = zext i64 %9 to i128 %add19.i.i = add nuw nsw i128 %chain.14.i.i, %conv18.i.i %arrayidx22.i.i = getelementptr inbounds [7 x i64], ptr @sc_p, i64 0, i64 %indvars.iv6.i.i - %9 = load i64, ptr %arrayidx22.i.i, align 8 - %and.i.i = and i64 %9, %add10.i.i + %10 = load i64, ptr %arrayidx22.i.i, align 8 + %and.i.i = and i64 %10, %add10.i.i %conv23.i.i = zext i64 %and.i.i to i128 %add24.i.i = add nuw nsw i128 %add19.i.i, %conv23.i.i %conv25.i.i = trunc i128 %add24.i.i to i64 diff --git a/bench/openusd/optimized/parserHelpers.cpp.ll b/bench/openusd/optimized/parserHelpers.cpp.ll index 1dd53768c74..410d9031fd7 100644 --- a/bench/openusd/optimized/parserHelpers.cpp.ll +++ b/bench/openusd/optimized/parserHelpers.cpp.ll @@ -29743,7 +29743,7 @@ define linkonce_odr noundef zeroext i8 @_ZSt13__invoke_implIhRN32pxrInternal_v0_ %3 = load i64, ptr %1, align 8 %4 = icmp ugt i64 %3, 255 %5 = trunc nuw i64 %3 to i16 - %6 = or i16 %5, 256 + %6 = or disjoint i16 %5, 256 %.sroa.06.0.insert.insert.i.i.i = select i1 %4, i16 0, i16 %6 %7 = and i16 %.sroa.06.0.insert.insert.i.i.i, 256 %.not.i.i = icmp eq i16 %7, 0 @@ -29830,7 +29830,7 @@ define linkonce_odr noundef zeroext i8 @_ZSt13__invoke_implIhRN32pxrInternal_v0_ %3 = load i64, ptr %1, align 8 %4 = icmp ugt i64 %3, 255 %5 = trunc nuw i64 %3 to i16 - %6 = or i16 %5, 256 + %6 = or disjoint i16 %5, 256 %.sroa.06.0.insert.insert.i.i.i = select i1 %4, i16 0, i16 %6 %7 = and i16 %.sroa.06.0.insert.insert.i.i.i, 256 %.not.i.i = icmp eq i16 %7, 0 @@ -30946,7 +30946,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__12SdfAssetPathC2ERKS0_.exit.i.i.i: ; preds define linkonce_odr noundef i32 @_ZSt13__invoke_implIiRN32pxrInternal_v0_24__pxrReserved__17Sdf_ParserHelpers8_GetImplIivEEJRKmEET_St14__invoke_otherOT0_DpOT1_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef nonnull align 8 dereferenceable(8) %1) local_unnamed_addr #0 comdat personality ptr @__gxx_personality_v0 { %3 = load i64, ptr %1, align 8 %4 = icmp ugt i64 %3, 2147483647 - %5 = or i64 %3, 4294967296 + %5 = or disjoint i64 %3, 4294967296 %.sroa.06.0.insert.insert.i.i.i = select i1 %4, i64 0, i64 %5 %6 = and i64 %.sroa.06.0.insert.insert.i.i.i, 4294967296 %.not.i.i = icmp eq i64 %6, 0 @@ -32017,7 +32017,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__12SdfAssetPathC2ERKS0_.exit.i.i.i: ; preds define linkonce_odr noundef i32 @_ZSt13__invoke_implIjRN32pxrInternal_v0_24__pxrReserved__17Sdf_ParserHelpers8_GetImplIjvEEJRKmEET_St14__invoke_otherOT0_DpOT1_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef nonnull align 8 dereferenceable(8) %1) local_unnamed_addr #0 comdat personality ptr @__gxx_personality_v0 { %3 = load i64, ptr %1, align 8 %4 = icmp ugt i64 %3, 4294967295 - %5 = or i64 %3, 4294967296 + %5 = or disjoint i64 %3, 4294967296 %.sroa.06.0.insert.insert.i.i.i = select i1 %4, i64 0, i64 %5 %6 = and i64 %.sroa.06.0.insert.insert.i.i.i, 4294967296 %.not.i.i = icmp eq i64 %6, 0 @@ -32077,7 +32077,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__17Sdf_ParserHelpers8_GetImplIjvEclEm.exit: define linkonce_odr noundef i32 @_ZSt13__invoke_implIjRN32pxrInternal_v0_24__pxrReserved__17Sdf_ParserHelpers8_GetImplIjvEEJRKlEET_St14__invoke_otherOT0_DpOT1_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef nonnull align 8 dereferenceable(8) %1) local_unnamed_addr #0 comdat personality ptr @__gxx_personality_v0 { %3 = load i64, ptr %1, align 8 %4 = icmp ugt i64 %3, 4294967295 - %5 = or i64 %3, 4294967296 + %5 = or disjoint i64 %3, 4294967296 %.sroa.06.0.insert.insert.i.i.i = select i1 %4, i64 0, i64 %5 %6 = and i64 %.sroa.06.0.insert.insert.i.i.i, 4294967296 %.not.i.i = icmp eq i64 %6, 0 diff --git a/bench/protobuf/optimized/dynamic_message.cc.ll b/bench/protobuf/optimized/dynamic_message.cc.ll index 5a78cfa01c1..0a3c64e0804 100644 --- a/bench/protobuf/optimized/dynamic_message.cc.ll +++ b/bench/protobuf/optimized/dynamic_message.cc.ll @@ -743,9 +743,9 @@ cond.end: ; preds = %if.end11, %cond.tru %field_count_.i = getelementptr inbounds i8, ptr %type, i64 4 %23 = load i32, ptr %field_count_.i, align 4 %add = add nsw i32 %23, %22 - %conv = sext i32 %add to i64 + %conv = zext i32 %add to i64 %24 = icmp slt i32 %add, 0 - %25 = shl nsw i64 %conv, 2 + %25 = shl nuw nsw i64 %conv, 2 %26 = select i1 %24, i64 -1, i64 %25 %call20 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %26) #22 %27 = load ptr, ptr %offsets.i, align 8 @@ -786,43 +786,41 @@ if.then27: ; preds = %for.body if.then30: ; preds = %if.then27 store i32 32, ptr %has_bits_offset, align 4 %31 = load i32, ptr %field_count_.i, align 4 - %conv33 = sext i32 %31 to i64 + %conv33 = zext i32 %31 to i64 %32 = icmp slt i32 %31, 0 - %33 = shl nsw i64 %conv33, 2 + %33 = shl nuw nsw i64 %conv33, 2 %34 = select i1 %32, i64 -1, i64 %33 %call34 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %34) #22 %cmp37153 = icmp sgt i32 %31, 0 br i1 %cmp37153, label %for.body38.preheader, label %for.end for.body38.preheader: ; preds = %if.then30 - %35 = zext nneg i32 %31 to i64 - %36 = shl nuw nsw i64 %35, 2 - tail call void @llvm.memset.p0.i64(ptr nonnull align 4 %call34, i8 -1, i64 %36, i1 false) + tail call void @llvm.memset.p0.i64(ptr nonnull align 4 %call34, i8 -1, i64 %33, i1 false) br label %for.end for.end: ; preds = %for.body38.preheader, %if.then30 - %37 = load ptr, ptr %has_bits_indices39, align 8 + %35 = load ptr, ptr %has_bits_indices39, align 8 store ptr %call34, ptr %has_bits_indices39, align 8 - %tobool.not.i.i81 = icmp eq ptr %37, null + %tobool.not.i.i81 = icmp eq ptr %35, null br i1 %tobool.not.i.i81, label %if.end40, label %_ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i82 _ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i82: ; preds = %for.end - tail call void @_ZdaPv(ptr noundef nonnull %37) #23 + tail call void @_ZdaPv(ptr noundef nonnull %35) #23 br label %if.end40 if.end40: ; preds = %_ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i82, %for.end, %if.then27 %inc41 = add nsw i32 %max_hasbit.0157, 1 - %38 = load ptr, ptr %has_bits_indices39, align 8 - %arrayidx.i = getelementptr inbounds i32, ptr %38, i64 %indvars.iv + %36 = load ptr, ptr %has_bits_indices39, align 8 + %arrayidx.i = getelementptr inbounds i32, ptr %36, i64 %indvars.iv store i32 %max_hasbit.0157, ptr %arrayidx.i, align 4 br label %for.inc46 for.inc46: ; preds = %for.body, %if.end40 %max_hasbit.1 = phi i32 [ %inc41, %if.end40 ], [ %max_hasbit.0157, %for.body ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %39 = load i32, ptr %field_count_.i, align 4 - %40 = sext i32 %39 to i64 - %cmp24 = icmp slt i64 %indvars.iv.next, %40 + %37 = load i32, ptr %field_count_.i, align 4 + %38 = sext i32 %37 to i64 + %cmp24 = icmp slt i64 %indvars.iv.next, %38 br i1 %cmp24, label %for.body, label %for.end48, !llvm.loop !14 for.end48: ; preds = %for.inc46 @@ -834,12 +832,12 @@ if.then50: ; preds = %for.end48 %div.i = sdiv i32 %add.i, 32 %mul = shl nsw i32 %div.i, 2 %add.i.i.i = add nsw i32 %mul, 39 - %41 = srem i32 %add.i.i.i, 8 - %mul.i.i = sub nsw i32 %add.i.i.i, %41 + %39 = srem i32 %add.i.i.i, 8 + %mul.i.i = sub nsw i32 %add.i.i.i, %39 br label %if.end57 if.end57: ; preds = %_ZNSt10unique_ptrIA_jSt14default_deleteIS0_EE5resetIPjvEEvT_.exit, %if.then50, %for.end48 - %42 = phi i32 [ %39, %if.then50 ], [ %39, %for.end48 ], [ %28, %_ZNSt10unique_ptrIA_jSt14default_deleteIS0_EE5resetIPjvEEvT_.exit ] + %40 = phi i32 [ %37, %if.then50 ], [ %37, %for.end48 ], [ %28, %_ZNSt10unique_ptrIA_jSt14default_deleteIS0_EE5resetIPjvEEvT_.exit ] %size.0 = phi i32 [ %mul.i.i, %if.then50 ], [ 32, %for.end48 ], [ 32, %_ZNSt10unique_ptrIA_jSt14default_deleteIS0_EE5resetIPjvEEvT_.exit ] %cmp58 = icmp sgt i32 %22, 0 br i1 %cmp58, label %if.then59, label %if.end66 @@ -850,29 +848,29 @@ if.then59: ; preds = %if.end57 %mul61 = shl i32 %22, 2 %add63 = add i32 %mul61, 7 %add.i.i.i84 = add i32 %add63, %size.0 - %43 = srem i32 %add.i.i.i84, 8 - %mul.i.i85 = sub nsw i32 %add.i.i.i84, %43 + %41 = srem i32 %add.i.i.i84, 8 + %mul.i.i85 = sub nsw i32 %add.i.i.i84, %41 br label %if.end66 if.end66: ; preds = %if.then59, %if.end57 %size.1 = phi i32 [ %mul.i.i85, %if.then59 ], [ %size.0, %if.end57 ] %extension_range_count_.i = getelementptr inbounds i8, ptr %type, i64 136 - %44 = load i32, ptr %extension_range_count_.i, align 8 - %cmp68 = icmp sgt i32 %44, 0 + %42 = load i32, ptr %extension_range_count_.i, align 8 + %cmp68 = icmp sgt i32 %42, 0 br i1 %cmp68, label %if.then69, label %if.end75 if.then69: ; preds = %if.end66 %add.i.i.i86 = add i32 %size.1, 31 - %45 = srem i32 %add.i.i.i86, 8 - %mul.i.i87 = sub nsw i32 %add.i.i.i86, %45 + %43 = srem i32 %add.i.i.i86, 8 + %mul.i.i87 = sub nsw i32 %add.i.i.i86, %43 br label %if.end75 if.end75: ; preds = %if.end66, %if.then69 %.sink = phi i32 [ %size.1, %if.then69 ], [ -1, %if.end66 ] %size.2 = phi i32 [ %mul.i.i87, %if.then69 ], [ %size.1, %if.end66 ] - %46 = getelementptr inbounds i8, ptr %call12, i64 12 - store i32 %.sink, ptr %46, align 4 - %cmp79158 = icmp sgt i32 %42, 0 + %44 = getelementptr inbounds i8, ptr %call12, i64 12 + store i32 %.sink, ptr %44, align 4 + %cmp79158 = icmp sgt i32 %40, 0 br i1 %cmp79158, label %for.body80.lr.ph, label %for.cond96.preheader for.body80.lr.ph: ; preds = %if.end75 @@ -881,9 +879,9 @@ for.body80.lr.ph: ; preds = %if.end75 for.cond96.preheader: ; preds = %for.inc92, %if.end75 %size.3.lcssa = phi i32 [ %size.2, %if.end75 ], [ %size.4, %for.inc92 ] - %.lcssa149 = phi i32 [ %42, %if.end75 ], [ %81, %for.inc92 ] - %47 = load i32, ptr %real_oneof_decl_count_.i, align 4 - %cmp98163 = icmp sgt i32 %47, 0 + %.lcssa149 = phi i32 [ %40, %if.end75 ], [ %79, %for.inc92 ] + %45 = load i32, ptr %real_oneof_decl_count_.i, align 4 + %cmp98163 = icmp sgt i32 %45, 0 br i1 %cmp98163, label %for.body99.preheader, label %for.end108.thread for.end108.thread: ; preds = %for.cond96.preheader @@ -893,86 +891,86 @@ for.end108.thread: ; preds = %for.cond96.preheade br label %for.end131 for.body99.preheader: ; preds = %for.cond96.preheader - %48 = sext i32 %.lcssa149 to i64 - %wide.trip.count = zext nneg i32 %47 to i64 - %invariant.gep = getelementptr i32, ptr %call20, i64 %48 + %46 = sext i32 %.lcssa149 to i64 + %wide.trip.count = zext nneg i32 %45 to i64 + %invariant.gep = getelementptr i32, ptr %call20, i64 %46 br label %for.body99 for.body80: ; preds = %for.body80.lr.ph, %for.inc92 - %49 = phi i32 [ %42, %for.body80.lr.ph ], [ %81, %for.inc92 ] + %47 = phi i32 [ %40, %for.body80.lr.ph ], [ %79, %for.inc92 ] %indvars.iv175 = phi i64 [ 0, %for.body80.lr.ph ], [ %indvars.iv.next176, %for.inc92 ] %size.3160 = phi i32 [ %size.2, %for.body80.lr.ph ], [ %size.4, %for.inc92 ] - %50 = load ptr, ptr %fields_.i89, align 8 - %add.ptr.i91 = getelementptr inbounds %"class.google::protobuf::FieldDescriptor", ptr %50, i64 %indvars.iv175 - %51 = getelementptr i8, ptr %add.ptr.i91, i64 1 - %call81.val = load i8, ptr %51, align 1 - %52 = getelementptr i8, ptr %add.ptr.i91, i64 40 - %call81.val75 = load ptr, ptr %52, align 8 - %53 = and i8 %call81.val, 16 - %bf.cast.not.i.i.i = icmp eq i8 %53, 0 + %48 = load ptr, ptr %fields_.i89, align 8 + %add.ptr.i91 = getelementptr inbounds %"class.google::protobuf::FieldDescriptor", ptr %48, i64 %indvars.iv175 + %49 = getelementptr i8, ptr %add.ptr.i91, i64 1 + %call81.val = load i8, ptr %49, align 1 + %50 = getelementptr i8, ptr %add.ptr.i91, i64 40 + %call81.val75 = load ptr, ptr %50, align 8 + %51 = and i8 %call81.val, 16 + %bf.cast.not.i.i.i = icmp eq i8 %51, 0 %tobool.not5.i.i = icmp eq ptr %call81.val75, null %tobool.not.i.i92 = select i1 %bf.cast.not.i.i.i, i1 true, i1 %tobool.not5.i.i br i1 %tobool.not.i.i92, label %if.then83, label %land.lhs.true.i.i land.lhs.true.i.i: ; preds = %for.body80 %field_count_.i.i.i.i = getelementptr inbounds i8, ptr %call81.val75, i64 4 - %54 = load i32, ptr %field_count_.i.i.i.i, align 4 - %cmp.i.i.i = icmp eq i32 %54, 1 + %52 = load i32, ptr %field_count_.i.i.i.i, align 4 + %cmp.i.i.i = icmp eq i32 %52, 1 br i1 %cmp.i.i.i, label %_ZN6google8protobuf12_GLOBAL__N_111InRealOneofEPKNS0_15FieldDescriptorE.exit, label %for.inc92 _ZN6google8protobuf12_GLOBAL__N_111InRealOneofEPKNS0_15FieldDescriptorE.exit: ; preds = %land.lhs.true.i.i %fields_.i.i.i.i = getelementptr inbounds i8, ptr %call81.val75, i64 48 - %55 = load ptr, ptr %fields_.i.i.i.i, align 8 - %proto3_optional_.i.i.i = getelementptr inbounds i8, ptr %55, i64 1 + %53 = load ptr, ptr %fields_.i.i.i.i, align 8 + %proto3_optional_.i.i.i = getelementptr inbounds i8, ptr %53, i64 1 %bf.load.i3.i.i = load i8, ptr %proto3_optional_.i.i.i, align 1 %bf.load.i3.fr.i.i = freeze i8 %bf.load.i3.i.i - %56 = and i8 %bf.load.i3.fr.i.i, 2 - %bf.cast.i.not.i.i = icmp eq i8 %56, 0 + %54 = and i8 %bf.load.i3.fr.i.i, 2 + %bf.cast.i.not.i.i = icmp eq i8 %54, 0 br i1 %bf.cast.i.not.i.i, label %for.inc92, label %if.then83 if.then83: ; preds = %for.body80, %_ZN6google8protobuf12_GLOBAL__N_111InRealOneofEPKNS0_15FieldDescriptorE.exit - %57 = and i8 %call81.val, 96 - %cmp.i = icmp eq i8 %57, 96 + %55 = and i8 %call81.val, 96 + %cmp.i = icmp eq i8 %55, 96 %type_once_.i.i.i = getelementptr inbounds i8, ptr %add.ptr.i91, i64 24 - %58 = load ptr, ptr %type_once_.i.i.i, align 8 - %tobool.not.i.i.i = icmp eq ptr %58, null + %56 = load ptr, ptr %type_once_.i.i.i, align 8 + %tobool.not.i.i.i = icmp eq ptr %56, null br i1 %cmp.i, label %if.then.i, label %if.else16.i if.then.i: ; preds = %if.then83 br i1 %tobool.not.i.i.i, label %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i, label %if.then.i.i.i if.then.i.i.i: ; preds = %if.then.i - %59 = load atomic i32, ptr %58 acquire, align 4 - %cmp.not.i.i.i.i = icmp eq i32 %59, 221 + %57 = load atomic i32, ptr %56 acquire, align 4 + %cmp.not.i.i.i.i = icmp eq i32 %57, 221 br i1 %cmp.not.i.i.i.i, label %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i, label %if.then.i.i.i.i if.then.i.i.i.i: ; preds = %if.then.i.i.i - %60 = cmpxchg ptr %58, i32 0, i32 1707250555 monotonic monotonic, align 4 - %61 = extractvalue { i32, i1 } %60, 1 - br i1 %61, label %if.then.i.i.i.i.i, label %lor.lhs.false.i.i.i.i.i + %58 = cmpxchg ptr %56, i32 0, i32 1707250555 monotonic monotonic, align 4 + %59 = extractvalue { i32, i1 } %58, 1 + br i1 %59, label %if.then.i.i.i.i.i, label %lor.lhs.false.i.i.i.i.i lor.lhs.false.i.i.i.i.i: ; preds = %if.then.i.i.i.i - %call1.i.i.i.i.i = tail call noundef i32 @_ZN4absl12lts_2023080213base_internal12SpinLockWaitEPSt6atomicIjEiPKNS1_22SpinLockWaitTransitionENS1_14SchedulingModeE(ptr noundef nonnull %58, i32 noundef 3, ptr noundef nonnull @_ZZN4absl12lts_2023080213base_internal12CallOnceImplIPFvPKN6google8protobuf15FieldDescriptorEEJS7_EEEvPSt6atomicIjENS1_14SchedulingModeEOT_DpOT0_E5trans, i32 noundef 1) + %call1.i.i.i.i.i = tail call noundef i32 @_ZN4absl12lts_2023080213base_internal12SpinLockWaitEPSt6atomicIjEiPKNS1_22SpinLockWaitTransitionENS1_14SchedulingModeE(ptr noundef nonnull %56, i32 noundef 3, ptr noundef nonnull @_ZZN4absl12lts_2023080213base_internal12CallOnceImplIPFvPKN6google8protobuf15FieldDescriptorEEJS7_EEEvPSt6atomicIjENS1_14SchedulingModeEOT_DpOT0_E5trans, i32 noundef 1) %cmp.i.i.i.i.i = icmp eq i32 %call1.i.i.i.i.i, 0 br i1 %cmp.i.i.i.i.i, label %if.then.i.i.i.i.i, label %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i if.then.i.i.i.i.i: ; preds = %lor.lhs.false.i.i.i.i.i, %if.then.i.i.i.i tail call void @_ZN6google8protobuf15FieldDescriptor12TypeOnceInitEPKS1_(ptr noundef nonnull %add.ptr.i91) - %62 = atomicrmw xchg ptr %58, i32 221 release, align 4 - %cmp4.i.i.i.i.i = icmp eq i32 %62, 94570706 + %60 = atomicrmw xchg ptr %56, i32 221 release, align 4 + %cmp4.i.i.i.i.i = icmp eq i32 %60, 94570706 br i1 %cmp4.i.i.i.i.i, label %if.then5.i.i.i.i.i, label %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i if.then5.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i - tail call void @AbslInternalSpinLockWake_lts_20230802(ptr noundef nonnull %58, i1 noundef zeroext true) + tail call void @AbslInternalSpinLockWake_lts_20230802(ptr noundef nonnull %56, i1 noundef zeroext true) br label %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i _ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i: ; preds = %if.then5.i.i.i.i.i, %if.then.i.i.i.i.i, %lor.lhs.false.i.i.i.i.i, %if.then.i.i.i, %if.then.i %type_.i.i.i = getelementptr inbounds i8, ptr %add.ptr.i91, i64 2 - %63 = load i8, ptr %type_.i.i.i, align 2 - %idxprom.i.i = zext i8 %63 to i64 + %61 = load i8, ptr %type_.i.i.i, align 2 + %idxprom.i.i = zext i8 %61 to i64 %arrayidx.i.i = getelementptr inbounds [19 x i32], ptr @_ZN6google8protobuf15FieldDescriptor17kTypeToCppTypeMapE, i64 0, i64 %idxprom.i.i - %64 = load i32, ptr %arrayidx.i.i, align 4 - switch i32 %64, label %if.end.i [ + %62 = load i32, ptr %arrayidx.i.i, align 4 + switch i32 %62, label %if.end.i [ i32 1, label %_ZN6google8protobuf12_GLOBAL__N_114FieldSpaceUsedEPKNS0_15FieldDescriptorE.exit i32 2, label %_ZN6google8protobuf12_GLOBAL__N_114FieldSpaceUsedEPKNS0_15FieldDescriptorE.exit i32 3, label %_ZN6google8protobuf12_GLOBAL__N_114FieldSpaceUsedEPKNS0_15FieldDescriptorE.exit @@ -986,38 +984,38 @@ _ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i: ; preds = %if.then5.i.i ] sw.bb9.i: ; preds = %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i - %65 = load ptr, ptr %type_once_.i.i.i, align 8 - %tobool.not.i.i.i.i = icmp eq ptr %65, null + %63 = load ptr, ptr %type_once_.i.i.i, align 8 + %tobool.not.i.i.i.i = icmp eq ptr %63, null br i1 %tobool.not.i.i.i.i, label %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit.i.i.i, label %if.then.i.i.i7.i if.then.i.i.i7.i: ; preds = %sw.bb9.i - %66 = load atomic i32, ptr %65 acquire, align 4 - %cmp.not.i.i.i.i.i = icmp eq i32 %66, 221 + %64 = load atomic i32, ptr %63 acquire, align 4 + %cmp.not.i.i.i.i.i = icmp eq i32 %64, 221 br i1 %cmp.not.i.i.i.i.i, label %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit.i.i.i, label %if.then.i.i.i.i8.i if.then.i.i.i.i8.i: ; preds = %if.then.i.i.i7.i - %67 = cmpxchg ptr %65, i32 0, i32 1707250555 monotonic monotonic, align 4 - %68 = extractvalue { i32, i1 } %67, 1 - br i1 %68, label %if.then.i.i.i.i.i.i, label %lor.lhs.false.i.i.i.i.i.i + %65 = cmpxchg ptr %63, i32 0, i32 1707250555 monotonic monotonic, align 4 + %66 = extractvalue { i32, i1 } %65, 1 + br i1 %66, label %if.then.i.i.i.i.i.i, label %lor.lhs.false.i.i.i.i.i.i lor.lhs.false.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i8.i - %call1.i.i.i.i.i.i = tail call noundef i32 @_ZN4absl12lts_2023080213base_internal12SpinLockWaitEPSt6atomicIjEiPKNS1_22SpinLockWaitTransitionENS1_14SchedulingModeE(ptr noundef nonnull %65, i32 noundef 3, ptr noundef nonnull @_ZZN4absl12lts_2023080213base_internal12CallOnceImplIPFvPKN6google8protobuf15FieldDescriptorEEJS7_EEEvPSt6atomicIjENS1_14SchedulingModeEOT_DpOT0_E5trans, i32 noundef 1) + %call1.i.i.i.i.i.i = tail call noundef i32 @_ZN4absl12lts_2023080213base_internal12SpinLockWaitEPSt6atomicIjEiPKNS1_22SpinLockWaitTransitionENS1_14SchedulingModeE(ptr noundef nonnull %63, i32 noundef 3, ptr noundef nonnull @_ZZN4absl12lts_2023080213base_internal12CallOnceImplIPFvPKN6google8protobuf15FieldDescriptorEEJS7_EEEvPSt6atomicIjENS1_14SchedulingModeEOT_DpOT0_E5trans, i32 noundef 1) %cmp.i.i.i.i.i.i = icmp eq i32 %call1.i.i.i.i.i.i, 0 br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit.i.i.i if.then.i.i.i.i.i.i: ; preds = %lor.lhs.false.i.i.i.i.i.i, %if.then.i.i.i.i8.i tail call void @_ZN6google8protobuf15FieldDescriptor12TypeOnceInitEPKS1_(ptr noundef nonnull %add.ptr.i91) - %69 = atomicrmw xchg ptr %65, i32 221 release, align 4 - %cmp4.i.i.i.i.i.i = icmp eq i32 %69, 94570706 + %67 = atomicrmw xchg ptr %63, i32 221 release, align 4 + %cmp4.i.i.i.i.i.i = icmp eq i32 %67, 94570706 br i1 %cmp4.i.i.i.i.i.i, label %if.then5.i.i.i.i.i.i, label %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit.i.i.i if.then5.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i - tail call void @AbslInternalSpinLockWake_lts_20230802(ptr noundef nonnull %65, i1 noundef zeroext true) + tail call void @AbslInternalSpinLockWake_lts_20230802(ptr noundef nonnull %63, i1 noundef zeroext true) br label %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit.i.i.i _ZNK6google8protobuf15FieldDescriptor4typeEv.exit.i.i.i: ; preds = %if.then5.i.i.i.i.i.i, %if.then.i.i.i.i.i.i, %lor.lhs.false.i.i.i.i.i.i, %if.then.i.i.i7.i, %sw.bb9.i - %70 = load i8, ptr %type_.i.i.i, align 2 - %cmp.i.i.i96 = icmp eq i8 %70, 11 + %68 = load i8, ptr %type_.i.i.i, align 2 + %cmp.i.i.i96 = icmp eq i8 %68, 11 br i1 %cmp.i.i.i96, label %_ZN6google8protobuf12_GLOBAL__N_115IsMapFieldInApiEPKNS0_15FieldDescriptorE.exit.i, label %_ZN6google8protobuf12_GLOBAL__N_114FieldSpaceUsedEPKNS0_15FieldDescriptorE.exit _ZN6google8protobuf12_GLOBAL__N_115IsMapFieldInApiEPKNS0_15FieldDescriptorE.exit.i: ; preds = %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit.i.i.i @@ -1032,42 +1030,42 @@ if.else16.i: ; preds = %if.then83 br i1 %tobool.not.i.i.i, label %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit23.i, label %if.then.i.i11.i if.then.i.i11.i: ; preds = %if.else16.i - %71 = load atomic i32, ptr %58 acquire, align 4 - %cmp.not.i.i.i12.i = icmp eq i32 %71, 221 + %69 = load atomic i32, ptr %56 acquire, align 4 + %cmp.not.i.i.i12.i = icmp eq i32 %69, 221 br i1 %cmp.not.i.i.i12.i, label %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit23.i, label %if.then.i.i.i13.i if.then.i.i.i13.i: ; preds = %if.then.i.i11.i - %72 = cmpxchg ptr %58, i32 0, i32 1707250555 monotonic monotonic, align 4 - %73 = extractvalue { i32, i1 } %72, 1 - br i1 %73, label %if.then.i.i.i.i20.i, label %lor.lhs.false.i.i.i.i14.i + %70 = cmpxchg ptr %56, i32 0, i32 1707250555 monotonic monotonic, align 4 + %71 = extractvalue { i32, i1 } %70, 1 + br i1 %71, label %if.then.i.i.i.i20.i, label %lor.lhs.false.i.i.i.i14.i lor.lhs.false.i.i.i.i14.i: ; preds = %if.then.i.i.i13.i - %call1.i.i.i.i15.i = tail call noundef i32 @_ZN4absl12lts_2023080213base_internal12SpinLockWaitEPSt6atomicIjEiPKNS1_22SpinLockWaitTransitionENS1_14SchedulingModeE(ptr noundef nonnull %58, i32 noundef 3, ptr noundef nonnull @_ZZN4absl12lts_2023080213base_internal12CallOnceImplIPFvPKN6google8protobuf15FieldDescriptorEEJS7_EEEvPSt6atomicIjENS1_14SchedulingModeEOT_DpOT0_E5trans, i32 noundef 1) + %call1.i.i.i.i15.i = tail call noundef i32 @_ZN4absl12lts_2023080213base_internal12SpinLockWaitEPSt6atomicIjEiPKNS1_22SpinLockWaitTransitionENS1_14SchedulingModeE(ptr noundef nonnull %56, i32 noundef 3, ptr noundef nonnull @_ZZN4absl12lts_2023080213base_internal12CallOnceImplIPFvPKN6google8protobuf15FieldDescriptorEEJS7_EEEvPSt6atomicIjENS1_14SchedulingModeEOT_DpOT0_E5trans, i32 noundef 1) %cmp.i.i.i.i16.i = icmp eq i32 %call1.i.i.i.i15.i, 0 br i1 %cmp.i.i.i.i16.i, label %if.then.i.i.i.i20.i, label %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit23.i if.then.i.i.i.i20.i: ; preds = %lor.lhs.false.i.i.i.i14.i, %if.then.i.i.i13.i tail call void @_ZN6google8protobuf15FieldDescriptor12TypeOnceInitEPKS1_(ptr noundef nonnull %add.ptr.i91) - %74 = atomicrmw xchg ptr %58, i32 221 release, align 4 - %cmp4.i.i.i.i21.i = icmp eq i32 %74, 94570706 + %72 = atomicrmw xchg ptr %56, i32 221 release, align 4 + %cmp4.i.i.i.i21.i = icmp eq i32 %72, 94570706 br i1 %cmp4.i.i.i.i21.i, label %if.then5.i.i.i.i22.i, label %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit23.i if.then5.i.i.i.i22.i: ; preds = %if.then.i.i.i.i20.i - tail call void @AbslInternalSpinLockWake_lts_20230802(ptr noundef nonnull %58, i1 noundef zeroext true) + tail call void @AbslInternalSpinLockWake_lts_20230802(ptr noundef nonnull %56, i1 noundef zeroext true) br label %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit23.i _ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit23.i: ; preds = %if.then5.i.i.i.i22.i, %if.then.i.i.i.i20.i, %lor.lhs.false.i.i.i.i14.i, %if.then.i.i11.i, %if.else16.i %type_.i.i17.i = getelementptr inbounds i8, ptr %add.ptr.i91, i64 2 - %75 = load i8, ptr %type_.i.i17.i, align 2 - %idxprom.i18.i = zext i8 %75 to i64 + %73 = load i8, ptr %type_.i.i17.i, align 2 + %idxprom.i18.i = zext i8 %73 to i64 %arrayidx.i19.i = getelementptr inbounds [19 x i32], ptr @_ZN6google8protobuf15FieldDescriptor17kTypeToCppTypeMapE, i64 0, i64 %idxprom.i18.i - %76 = load i32, ptr %arrayidx.i19.i, align 4 - %switch.tableidx = add nsw i32 %76, -1 - %77 = sext i32 %switch.tableidx to i64 - %switch.gep = getelementptr inbounds [10 x i32], ptr @switch.table._ZN6google8protobuf21DynamicMessageFactory18GetPrototypeNoLockEPKNS0_10DescriptorE.2, i64 0, i64 %77 + %74 = load i32, ptr %arrayidx.i19.i, align 4 + %switch.tableidx = add nsw i32 %74, -1 + %75 = sext i32 %switch.tableidx to i64 + %switch.gep = getelementptr inbounds [10 x i32], ptr @switch.table._ZN6google8protobuf21DynamicMessageFactory18GetPrototypeNoLockEPKNS0_10DescriptorE.2, i64 0, i64 %75 %switch.load = load i32, ptr %switch.gep, align 4 - %78 = sext i32 %switch.tableidx to i64 - %switch.gep201 = getelementptr inbounds [10 x i32], ptr @switch.table._ZN6google8protobuf21DynamicMessageFactory18GetPrototypeNoLockEPKNS0_10DescriptorE.2, i64 0, i64 %78 + %76 = sext i32 %switch.tableidx to i64 + %switch.gep201 = getelementptr inbounds [10 x i32], ptr @switch.table._ZN6google8protobuf21DynamicMessageFactory18GetPrototypeNoLockEPKNS0_10DescriptorE.2, i64 0, i64 %76 %switch.load202 = load i32, ptr %switch.gep201, align 4 br label %_ZN6google8protobuf12_GLOBAL__N_114FieldSpaceUsedEPKNS0_15FieldDescriptorE.exit @@ -1076,11 +1074,11 @@ if.end.i: ; preds = %_ZNK6google8protobu _ZN6google8protobuf12_GLOBAL__N_114FieldSpaceUsedEPKNS0_15FieldDescriptorE.exit: ; preds = %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit23.i, %_ZN6google8protobuf12_GLOBAL__N_115IsMapFieldInApiEPKNS0_15FieldDescriptorE.exit.i, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit.i.i.i, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i, %sw.bb12.i %retval.0.i148 = phi i32 [ %spec.select.i, %_ZN6google8protobuf12_GLOBAL__N_115IsMapFieldInApiEPKNS0_15FieldDescriptorE.exit.i ], [ 24, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit.i.i.i ], [ 16, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 16, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 16, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 16, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 16, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 16, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 16, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 16, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 24, %sw.bb12.i ], [ %switch.load, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit23.i ] - %79 = phi i32 [ 8, %_ZN6google8protobuf12_GLOBAL__N_115IsMapFieldInApiEPKNS0_15FieldDescriptorE.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit.i.i.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %sw.bb12.i ], [ %switch.load202, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit23.i ] + %77 = phi i32 [ 8, %_ZN6google8protobuf12_GLOBAL__N_115IsMapFieldInApiEPKNS0_15FieldDescriptorE.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit.i.i.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %sw.bb12.i ], [ %switch.load202, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit23.i ] %sub.i.i = add i32 %size.3160, -1 - %add.i.i = add i32 %sub.i.i, %79 - %80 = srem i32 %add.i.i, %79 - %mul.i = sub nsw i32 %add.i.i, %80 + %add.i.i = add i32 %sub.i.i, %77 + %78 = srem i32 %add.i.i, %77 + %mul.i = sub nsw i32 %add.i.i, %78 %arrayidx89 = getelementptr inbounds i32, ptr %call20, i64 %indvars.iv175 store i32 %mul.i, ptr %arrayidx89, align 4 %add90 = add nsw i32 %mul.i, %retval.0.i148 @@ -1088,19 +1086,19 @@ _ZN6google8protobuf12_GLOBAL__N_114FieldSpaceUsedEPKNS0_15FieldDescriptorE.exit: br label %for.inc92 for.inc92: ; preds = %land.lhs.true.i.i, %_ZN6google8protobuf12_GLOBAL__N_111InRealOneofEPKNS0_15FieldDescriptorE.exit, %_ZN6google8protobuf12_GLOBAL__N_114FieldSpaceUsedEPKNS0_15FieldDescriptorE.exit - %81 = phi i32 [ %49, %_ZN6google8protobuf12_GLOBAL__N_111InRealOneofEPKNS0_15FieldDescriptorE.exit ], [ %.pre190, %_ZN6google8protobuf12_GLOBAL__N_114FieldSpaceUsedEPKNS0_15FieldDescriptorE.exit ], [ %49, %land.lhs.true.i.i ] + %79 = phi i32 [ %47, %_ZN6google8protobuf12_GLOBAL__N_111InRealOneofEPKNS0_15FieldDescriptorE.exit ], [ %.pre190, %_ZN6google8protobuf12_GLOBAL__N_114FieldSpaceUsedEPKNS0_15FieldDescriptorE.exit ], [ %47, %land.lhs.true.i.i ] %size.4 = phi i32 [ %size.3160, %_ZN6google8protobuf12_GLOBAL__N_111InRealOneofEPKNS0_15FieldDescriptorE.exit ], [ %add90, %_ZN6google8protobuf12_GLOBAL__N_114FieldSpaceUsedEPKNS0_15FieldDescriptorE.exit ], [ %size.3160, %land.lhs.true.i.i ] %indvars.iv.next176 = add nuw nsw i64 %indvars.iv175, 1 - %82 = sext i32 %81 to i64 - %cmp79 = icmp slt i64 %indvars.iv.next176, %82 + %80 = sext i32 %79 to i64 + %cmp79 = icmp slt i64 %indvars.iv.next176, %80 br i1 %cmp79, label %for.body80, label %for.cond96.preheader, !llvm.loop !15 for.body99: ; preds = %for.body99.preheader, %for.body99 %indvars.iv178 = phi i64 [ 0, %for.body99.preheader ], [ %indvars.iv.next179, %for.body99 ] %size.5165 = phi i32 [ %size.3.lcssa, %for.body99.preheader ], [ %add105, %for.body99 ] %add.i.i100 = add i32 %size.5165, 7 - %83 = srem i32 %add.i.i100, 8 - %mul.i101 = sub nsw i32 %add.i.i100, %83 + %81 = srem i32 %add.i.i100, 8 + %mul.i101 = sub nsw i32 %add.i.i100, %81 %gep = getelementptr i32, ptr %invariant.gep, i64 %indvars.iv178 store i32 %mul.i101, ptr %gep, align 4 %add105 = add nsw i32 %mul.i101, 8 @@ -1113,16 +1111,16 @@ for.end108: ; preds = %for.body99 store i32 -1, ptr %weak_field_map_offset, align 8 store i32 %add105, ptr %call12, align 8 %oneof_decls_.i.i = getelementptr inbounds i8, ptr %type, i64 64 - %84 = load ptr, ptr %oneof_decls_.i.i, align 8 - %wide.trip.count188 = zext nneg i32 %47 to i64 + %82 = load ptr, ptr %oneof_decls_.i.i, align 8 + %wide.trip.count188 = zext nneg i32 %45 to i64 br label %for.cond116.preheader for.cond116.preheader: ; preds = %for.end108, %for.inc129 %indvars.iv185 = phi i64 [ 0, %for.end108 ], [ %indvars.iv.next186, %for.inc129 ] - %add.ptr.i.i = getelementptr inbounds %"class.google::protobuf::OneofDescriptor", ptr %84, i64 %indvars.iv185 + %add.ptr.i.i = getelementptr inbounds %"class.google::protobuf::OneofDescriptor", ptr %82, i64 %indvars.iv185 %field_count_.i104 = getelementptr inbounds i8, ptr %add.ptr.i.i, i64 4 - %85 = load i32, ptr %field_count_.i104, align 4 - %cmp119168 = icmp sgt i32 %85, 0 + %83 = load i32, ptr %field_count_.i104, align 4 + %cmp119168 = icmp sgt i32 %83, 0 br i1 %cmp119168, label %for.body120.lr.ph, label %for.inc129 for.body120.lr.ph: ; preds = %for.cond116.preheader @@ -1131,34 +1129,34 @@ for.body120.lr.ph: ; preds = %for.cond116.prehead for.body120: ; preds = %for.body120.lr.ph, %_ZNK6google8protobuf15FieldDescriptor5indexEv.exit %indvars.iv182 = phi i64 [ 0, %for.body120.lr.ph ], [ %indvars.iv.next183, %_ZNK6google8protobuf15FieldDescriptor5indexEv.exit ] - %86 = load ptr, ptr %fields_.i108, align 8 - %add.ptr.i110 = getelementptr inbounds %"class.google::protobuf::FieldDescriptor", ptr %86, i64 %indvars.iv182 + %84 = load ptr, ptr %fields_.i108, align 8 + %add.ptr.i110 = getelementptr inbounds %"class.google::protobuf::FieldDescriptor", ptr %84, i64 %indvars.iv182 %is_extension_.i = getelementptr inbounds i8, ptr %add.ptr.i110, i64 1 %bf.load.i = load i8, ptr %is_extension_.i, align 1 - %87 = and i8 %bf.load.i, 8 - %bf.cast.not.i = icmp eq i8 %87, 0 + %85 = and i8 %bf.load.i, 8 + %bf.cast.not.i = icmp eq i8 %85, 0 br i1 %bf.cast.not.i, label %if.then.i113, label %_ZNK6google8protobuf15FieldDescriptor15extension_scopeEv.exit.i if.then.i113: ; preds = %for.body120 %containing_type_.i.i = getelementptr inbounds i8, ptr %add.ptr.i110, i64 32 - %88 = load ptr, ptr %containing_type_.i.i, align 8 - %fields_.i114 = getelementptr inbounds i8, ptr %88, i64 56 + %86 = load ptr, ptr %containing_type_.i.i, align 8 + %fields_.i114 = getelementptr inbounds i8, ptr %86, i64 56 br label %_ZNK6google8protobuf15FieldDescriptor5indexEv.exit _ZNK6google8protobuf15FieldDescriptor15extension_scopeEv.exit.i: ; preds = %for.body120 %scope_.i.i = getelementptr inbounds i8, ptr %add.ptr.i110, i64 40 - %89 = load ptr, ptr %scope_.i.i, align 8 - %cmp.not.i = icmp eq ptr %89, null + %87 = load ptr, ptr %scope_.i.i, align 8 + %cmp.not.i = icmp eq ptr %87, null br i1 %cmp.not.i, label %if.else10.i, label %_ZNK6google8protobuf15FieldDescriptor15extension_scopeEv.exit7.i _ZNK6google8protobuf15FieldDescriptor15extension_scopeEv.exit7.i: ; preds = %_ZNK6google8protobuf15FieldDescriptor15extension_scopeEv.exit.i - %extensions_.i = getelementptr inbounds i8, ptr %89, i64 96 + %extensions_.i = getelementptr inbounds i8, ptr %87, i64 96 br label %_ZNK6google8protobuf15FieldDescriptor5indexEv.exit if.else10.i: ; preds = %_ZNK6google8protobuf15FieldDescriptor15extension_scopeEv.exit.i %file_.i112 = getelementptr inbounds i8, ptr %add.ptr.i110, i64 16 - %90 = load ptr, ptr %file_.i112, align 8 - %extensions_11.i = getelementptr inbounds i8, ptr %90, i64 120 + %88 = load ptr, ptr %file_.i112, align 8 + %extensions_11.i = getelementptr inbounds i8, ptr %88, i64 120 br label %_ZNK6google8protobuf15FieldDescriptor5indexEv.exit _ZNK6google8protobuf15FieldDescriptor5indexEv.exit: ; preds = %if.then.i113, %_ZNK6google8protobuf15FieldDescriptor15extension_scopeEv.exit7.i, %if.else10.i @@ -1169,13 +1167,13 @@ _ZNK6google8protobuf15FieldDescriptor5indexEv.exit: ; preds = %if.then.i113, %_Z %sub.ptr.sub14.i = sub i64 %sub.ptr.lhs.cast12.i, %sub.ptr.rhs.cast13.i %retval.0.in.i = sdiv exact i64 %sub.ptr.sub14.i, 88 %sext = shl i64 %retval.0.in.i, 32 - %91 = ashr exact i64 %sext, 30 - %arrayidx125 = getelementptr inbounds i8, ptr %call20, i64 %91 + %89 = ashr exact i64 %sext, 30 + %arrayidx125 = getelementptr inbounds i8, ptr %call20, i64 %89 store i32 1073741824, ptr %arrayidx125, align 4 %indvars.iv.next183 = add nuw nsw i64 %indvars.iv182, 1 - %92 = load i32, ptr %field_count_.i104, align 4 - %93 = sext i32 %92 to i64 - %cmp119 = icmp slt i64 %indvars.iv.next183, %93 + %90 = load i32, ptr %field_count_.i104, align 4 + %91 = sext i32 %90 to i64 + %cmp119 = icmp slt i64 %indvars.iv.next183, %91 br i1 %cmp119, label %for.body120, label %for.inc129, !llvm.loop !17 for.inc129: ; preds = %_ZNK6google8protobuf15FieldDescriptor5indexEv.exit, %for.cond116.preheader @@ -1199,33 +1197,33 @@ for.end131: ; preds = %for.inc129, %for.en %prototype.i = getelementptr inbounds i8, ptr %call12, i64 64 store ptr %call133, ptr %prototype.i, align 8 tail call void @_ZN6google8protobuf14DynamicMessage10SharedCtorEb(ptr noundef nonnull align 8 dereferenceable(32) %call133, i1 noundef zeroext false) - %94 = load ptr, ptr %prototype.i, align 8 - store ptr %94, ptr %schema, align 8 + %92 = load ptr, ptr %prototype.i, align 8 + store ptr %92, ptr %schema, align 8 %offsets_ = getelementptr inbounds i8, ptr %schema, i64 8 - %95 = load ptr, ptr %offsets.i, align 8 - store ptr %95, ptr %offsets_, align 8 + %93 = load ptr, ptr %offsets.i, align 8 + store ptr %93, ptr %offsets_, align 8 %has_bit_indices_ = getelementptr inbounds i8, ptr %schema, i64 16 %has_bits_indices139 = getelementptr inbounds i8, ptr %call12, i64 48 - %96 = load ptr, ptr %has_bits_indices139, align 8 - store ptr %96, ptr %has_bit_indices_, align 8 + %94 = load ptr, ptr %has_bits_indices139, align 8 + store ptr %94, ptr %has_bit_indices_, align 8 %has_bits_offset_ = getelementptr inbounds i8, ptr %schema, i64 24 - %97 = load i32, ptr %has_bits_offset, align 4 - store i32 %97, ptr %has_bits_offset_, align 8 + %95 = load i32, ptr %has_bits_offset, align 4 + store i32 %95, ptr %has_bits_offset_, align 8 %metadata_offset_ = getelementptr inbounds i8, ptr %schema, i64 28 store i32 8, ptr %metadata_offset_, align 4 %extensions_offset_ = getelementptr inbounds i8, ptr %schema, i64 32 - %98 = load i32, ptr %46, align 4 - store i32 %98, ptr %extensions_offset_, align 8 + %96 = load i32, ptr %44, align 4 + store i32 %96, ptr %extensions_offset_, align 8 %oneof_case_offset_ = getelementptr inbounds i8, ptr %schema, i64 36 %oneof_case_offset143 = getelementptr inbounds i8, ptr %call12, i64 8 - %99 = load i32, ptr %oneof_case_offset143, align 8 - store i32 %99, ptr %oneof_case_offset_, align 4 + %97 = load i32, ptr %oneof_case_offset143, align 8 + store i32 %97, ptr %oneof_case_offset_, align 4 %object_size_ = getelementptr inbounds i8, ptr %schema, i64 40 - %100 = load i32, ptr %call12, align 8 - store i32 %100, ptr %object_size_, align 8 + %98 = load i32, ptr %call12, align 8 + store i32 %98, ptr %object_size_, align 8 %weak_field_map_offset_ = getelementptr inbounds i8, ptr %schema, i64 44 - %101 = load i32, ptr %weak_field_map_offset196, align 8 - store i32 %101, ptr %weak_field_map_offset_, align 4 + %99 = load i32, ptr %weak_field_map_offset196, align 8 + store i32 %99, ptr %weak_field_map_offset_, align 4 %inlined_string_indices_ = getelementptr inbounds i8, ptr %schema, i64 48 store ptr null, ptr %inlined_string_indices_, align 8 %inlined_string_donated_offset_ = getelementptr inbounds i8, ptr %schema, i64 56 @@ -1235,21 +1233,21 @@ for.end131: ; preds = %for.inc129, %for.en %sizeof_split_ = getelementptr inbounds i8, ptr %schema, i64 64 store i32 -1, ptr %sizeof_split_, align 8 %call146 = tail call noalias noundef nonnull dereferenceable(112) ptr @_Znwm(i64 noundef 112) #22 - %102 = load ptr, ptr %type13, align 8 - %103 = load ptr, ptr %pool, align 8 - invoke void @_ZN6google8protobuf10ReflectionC1EPKNS0_10DescriptorERKNS0_8internal16ReflectionSchemaEPKNS0_14DescriptorPoolEPNS0_14MessageFactoryE(ptr noundef nonnull align 8 dereferenceable(112) %call146, ptr noundef %102, ptr noundef nonnull align 8 dereferenceable(72) %schema, ptr noundef %103, ptr noundef nonnull %this) + %100 = load ptr, ptr %type13, align 8 + %101 = load ptr, ptr %pool, align 8 + invoke void @_ZN6google8protobuf10ReflectionC1EPKNS0_10DescriptorERKNS0_8internal16ReflectionSchemaEPKNS0_14DescriptorPoolEPNS0_14MessageFactoryE(ptr noundef nonnull align 8 dereferenceable(112) %call146, ptr noundef %100, ptr noundef nonnull align 8 dereferenceable(72) %schema, ptr noundef %101, ptr noundef nonnull %this) to label %invoke.cont150 unwind label %lpad149 invoke.cont150: ; preds = %for.end131 %reflection = getelementptr inbounds i8, ptr %call12, i64 56 - %104 = load ptr, ptr %reflection, align 8 + %102 = load ptr, ptr %reflection, align 8 store ptr %call146, ptr %reflection, align 8 - %tobool.not.i.i115 = icmp eq ptr %104, null + %tobool.not.i.i115 = icmp eq ptr %102, null br i1 %tobool.not.i.i115, label %_ZNSt10unique_ptrIKN6google8protobuf10ReflectionESt14default_deleteIS3_EE5resetEPS3_.exit, label %_ZNKSt14default_deleteIKN6google8protobuf10ReflectionEEclEPS3_.exit.i.i _ZNKSt14default_deleteIKN6google8protobuf10ReflectionEEclEPS3_.exit.i.i: ; preds = %invoke.cont150 - call void @_ZN6google8protobuf10ReflectionD1Ev(ptr noundef nonnull align 8 dereferenceable(112) %104) #25 - call void @_ZdlPv(ptr noundef nonnull %104) #23 + call void @_ZN6google8protobuf10ReflectionD1Ev(ptr noundef nonnull align 8 dereferenceable(112) %102) #25 + call void @_ZdlPv(ptr noundef nonnull %102) #23 br label %_ZNSt10unique_ptrIKN6google8protobuf10ReflectionESt14default_deleteIS3_EE5resetEPS3_.exit _ZNSt10unique_ptrIKN6google8protobuf10ReflectionESt14default_deleteIS3_EE5resetEPS3_.exit: ; preds = %invoke.cont150, %_ZNKSt14default_deleteIKN6google8protobuf10ReflectionEEclEPS3_.exit.i.i @@ -1257,10 +1255,10 @@ _ZNSt10unique_ptrIKN6google8protobuf10ReflectionESt14default_deleteIS3_EE5resetE br label %return lpad149: ; preds = %for.end131 - %105 = landingpad { ptr, i32 } + %103 = landingpad { ptr, i32 } cleanup call void @_ZdlPv(ptr noundef nonnull %call146) #23 - resume { ptr, i32 } %105 + resume { ptr, i32 } %103 return: ; preds = %if.then, %_ZNSt10unique_ptrIKN6google8protobuf10ReflectionESt14default_deleteIS3_EE5resetEPS3_.exit, %if.then10 %retval.0 = phi ptr [ %18, %if.then10 ], [ %call133, %_ZNSt10unique_ptrIKN6google8protobuf10ReflectionESt14default_deleteIS3_EE5resetEPS3_.exit ], [ %call4, %if.then ] diff --git a/bench/qemu/optimized/linux-user_mmap.c.ll b/bench/qemu/optimized/linux-user_mmap.c.ll index 4fc16fb1407..925f94089b8 100644 --- a/bench/qemu/optimized/linux-user_mmap.c.ll +++ b/bench/qemu/optimized/linux-user_mmap.c.ll @@ -207,8 +207,7 @@ trace_target_mprotect.exit: ; preds = %entry, %land.lhs.tr br i1 %cmp.not, label %if.end, label %return if.end: ; preds = %trace_target_mprotect.exit - %and.i = and i32 %target_prot, 7 - %or.i = or disjoint i32 %and.i, 8 + %or.i = or i32 %target_prot, 8 %tobool.not.i = icmp ugt i32 %target_prot, 15 %cond.i = select i1 %tobool.not.i, i32 0, i32 %or.i br i1 %tobool.not.i, label %return, label %if.end2 @@ -258,33 +257,33 @@ mmap_lock.exit: ; preds = %if.end9, %if.then.i %12 = phi i64 [ %9, %if.end9 ], [ %.pre, %if.then.i ] %sub18 = sub i64 %sub17, %and12 %cmp19 = icmp ult i64 %sub18, %12 - %cmp2189.not = icmp eq i64 %and12, %start + %cmp2188.not = icmp eq i64 %and12, %start br i1 %cmp19, label %for.cond.preheader, label %if.else for.cond.preheader: ; preds = %mmap_lock.exit - br i1 %cmp2189.not, label %for.cond25.preheader, label %for.body + br i1 %cmp2188.not, label %for.cond25.preheader, label %for.body for.cond25.preheader: ; preds = %for.body, %for.cond.preheader %prot1.0.lcssa = phi i32 [ %target_prot, %for.cond.preheader ], [ %or, %for.body ] - %cmp2693 = icmp ult i64 %sub11, %sub17 - br i1 %cmp2693, label %for.body27, label %if.end98.thread + %cmp2692 = icmp ult i64 %sub11, %sub17 + br i1 %cmp2692, label %for.body27, label %if.end98.thread for.body: ; preds = %for.cond.preheader, %for.body - %a.091 = phi i64 [ %add23, %for.body ], [ %and12, %for.cond.preheader ] - %prot1.090 = phi i32 [ %or, %for.body ], [ %target_prot, %for.cond.preheader ] - %call22 = tail call i32 @page_get_flags(i64 noundef %a.091) #14 - %or = or i32 %call22, %prot1.090 - %add23 = add i64 %a.091, 4096 + %a.090 = phi i64 [ %add23, %for.body ], [ %and12, %for.cond.preheader ] + %prot1.089 = phi i32 [ %or, %for.body ], [ %target_prot, %for.cond.preheader ] + %call22 = tail call i32 @page_get_flags(i64 noundef %a.090) #14 + %or = or i32 %call22, %prot1.089 + %add23 = add i64 %a.090, 4096 %cmp21 = icmp ult i64 %add23, %start br i1 %cmp21, label %for.body, label %for.cond25.preheader, !llvm.loop !5 for.body27: ; preds = %for.cond25.preheader, %for.body27 - %a24.095 = phi i64 [ %add32, %for.body27 ], [ %sub11, %for.cond25.preheader ] - %prot1.194 = phi i32 [ %or30, %for.body27 ], [ %prot1.0.lcssa, %for.cond25.preheader ] - %add28 = add nuw i64 %a24.095, 1 + %a24.094 = phi i64 [ %add32, %for.body27 ], [ %sub11, %for.cond25.preheader ] + %prot1.193 = phi i32 [ %or30, %for.body27 ], [ %prot1.0.lcssa, %for.cond25.preheader ] + %add28 = add nuw i64 %a24.094, 1 %call29 = tail call i32 @page_get_flags(i64 noundef %add28) #14 - %or30 = or i32 %call29, %prot1.194 - %add32 = add i64 %a24.095, 4096 + %or30 = or i32 %call29, %prot1.193 + %add32 = add i64 %a24.094, 4096 %cmp26 = icmp ult i64 %add32, %sub17 br i1 %cmp26, label %for.body27, label %if.end98.thread, !llvm.loop !7 @@ -297,14 +296,14 @@ if.end98.thread: ; preds = %for.body27, %for.co br label %for.body101.preheader if.else: ; preds = %mmap_lock.exit - br i1 %cmp2189.not, label %if.end60, label %for.body43 + br i1 %cmp2188.not, label %if.end60, label %for.body43 for.body43: ; preds = %if.else, %for.body43 - %a40.086 = phi i64 [ %add47, %for.body43 ], [ %and12, %if.else ] - %prot1.285 = phi i32 [ %or45, %for.body43 ], [ %target_prot, %if.else ] - %call44 = tail call i32 @page_get_flags(i64 noundef %a40.086) #14 - %or45 = or i32 %call44, %prot1.285 - %add47 = add i64 %a40.086, 4096 + %a40.085 = phi i64 [ %add47, %for.body43 ], [ %and12, %if.else ] + %prot1.284 = phi i32 [ %or45, %for.body43 ], [ %target_prot, %if.else ] + %call44 = tail call i32 @page_get_flags(i64 noundef %a40.085) #14 + %or45 = or i32 %call44, %prot1.284 + %add47 = add i64 %a40.085, 4096 %cmp42 = icmp ult i64 %add47, %start br i1 %cmp42, label %for.body43, label %for.end48, !llvm.loop !8 @@ -327,12 +326,12 @@ if.end60: ; preds = %for.end48, %if.then br i1 %cmp61, label %for.body66, label %if.end85 for.body66: ; preds = %if.end60, %for.body66 - %a63.088 = phi i64 [ %add71, %for.body66 ], [ %sub11, %if.end60 ] - %prot1.387 = phi i32 [ %or69, %for.body66 ], [ %target_prot, %if.end60 ] - %add67 = add nuw i64 %a63.088, 1 + %a63.087 = phi i64 [ %add71, %for.body66 ], [ %sub11, %if.end60 ] + %prot1.386 = phi i32 [ %or69, %for.body66 ], [ %target_prot, %if.end60 ] + %add67 = add nuw i64 %a63.087, 1 %call68 = tail call i32 @page_get_flags(i64 noundef %add67) #14 - %or69 = or i32 %call68, %prot1.387 - %add71 = add i64 %a63.088, 4096 + %or69 = or i32 %call68, %prot1.386 + %add71 = add i64 %a63.087, 4096 %cmp65 = icmp ult i64 %add71, %sub17 br i1 %cmp65, label %for.body66, label %for.end72, !llvm.loop !9 @@ -364,8 +363,8 @@ if.then87: ; preds = %if.end85 %idxprom88 = zext nneg i32 %nranges.2 to i64 %arrayidx89 = getelementptr [3 x i64], ptr %starts, i64 0, i64 %idxprom88 store i64 %host_start.0, ptr %arrayidx89, align 8 - %reass.sub99 = sub nuw i64 %host_last.0, %host_start.0 - %add91 = add i64 %reass.sub99, 1 + %reass.sub98 = sub nuw i64 %host_last.0, %host_start.0 + %add91 = add i64 %reass.sub98, 1 %arrayidx93 = getelementptr [3 x i64], ptr %lens, i64 0, i64 %idxprom88 store i64 %add91, ptr %arrayidx93, align 8 %arrayidx95 = getelementptr [3 x i32], ptr %prots, i64 0, i64 %idxprom88 @@ -375,12 +374,12 @@ if.then87: ; preds = %if.end85 if.end98: ; preds = %if.end85, %if.then87 %nranges.0 = phi i32 [ %inc96, %if.then87 ], [ %nranges.2, %if.end85 ] - %cmp10097 = icmp sgt i32 %nranges.0, 0 - br i1 %cmp10097, label %for.body101.preheader, label %for.end116 + %cmp10096 = icmp sgt i32 %nranges.0, 0 + br i1 %cmp10096, label %for.body101.preheader, label %for.end116 for.body101.preheader: ; preds = %if.end98.thread, %if.end98 - %nranges.0104 = phi i32 [ 1, %if.end98.thread ], [ %nranges.0, %if.end98 ] - %wide.trip.count = zext nneg i32 %nranges.0104 to i64 + %nranges.0103 = phi i32 [ 1, %if.end98.thread ], [ %nranges.0, %if.end98 ] + %wide.trip.count = zext nneg i32 %nranges.0103 to i64 br label %for.body101 for.cond99: ; preds = %for.body101 @@ -399,11 +398,11 @@ for.body101: ; preds = %for.body101.prehead %19 = load i64, ptr %arrayidx106, align 8 %arrayidx108 = getelementptr [3 x i32], ptr %prots, i64 0, i64 %indvars.iv %20 = load i32, ptr %arrayidx108, align 4 - %and.i80 = and i32 %20, 3 + %and.i = and i32 %20, 3 %and1.i = lshr i32 %20, 2 %and1.lobit.i = and i32 %and1.i, 1 - %or.i81 = or i32 %and1.lobit.i, %and.i80 - %call110 = tail call i32 @mprotect(ptr noundef %18, i64 noundef %19, i32 noundef %or.i81) #14 + %or.i80 = or i32 %and1.lobit.i, %and.i + %call110 = tail call i32 @mprotect(ptr noundef %18, i64 noundef %19, i32 noundef %or.i80) #14 %cmp111.not = icmp eq i32 %call110, 0 br i1 %cmp111.not, label %for.cond99, label %error @@ -414,8 +413,8 @@ for.end116: ; preds = %for.cond99, %if.end error: ; preds = %for.body101, %for.end116 %ret.0 = phi i32 [ 0, %for.end116 ], [ %call110, %for.body101 ] %21 = load i32, ptr %10, align 4 - %cmp.i82 = icmp sgt i32 %21, 0 - br i1 %cmp.i82, label %if.end.i, label %if.else.i + %cmp.i81 = icmp sgt i32 %21, 0 + br i1 %cmp.i81, label %if.end.i, label %if.else.i if.else.i: ; preds = %error tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 45, ptr noundef nonnull @__PRETTY_FUNCTION__.mmap_unlock) #15 @@ -428,7 +427,7 @@ if.end.i: ; preds = %error br i1 %cmp1.i, label %if.then2.i, label %return if.then2.i: ; preds = %if.end.i - %call.i83 = tail call i32 @pthread_mutex_unlock(ptr noundef nonnull @mmap_mutex) #14 + %call.i82 = tail call i32 @pthread_mutex_unlock(ptr noundef nonnull @mmap_mutex) #14 br label %return return: ; preds = %if.then2.i, %if.end.i, %if.end5, %if.end2, %if.end, %trace_target_mprotect.exit @@ -673,8 +672,7 @@ if.then: ; preds = %trace_target_mmap.e br label %fail if.end: ; preds = %trace_target_mmap.exit - %and.i = and i32 %target_prot, 7 - %or.i = or disjoint i32 %and.i, 8 + %or.i = or i32 %target_prot, 8 %tobool.not.i = icmp ugt i32 %target_prot, 15 br i1 %tobool.not.i, label %if.then3, label %if.end5 @@ -792,16 +790,16 @@ if.then64: ; preds = %if.end61 %sub68 = add i64 %add67, %15 %sub69 = sub i64 0, %15 %and70 = and i64 %sub68, %sub69 - %and.i158 = and i32 %target_prot, 3 + %and.i = and i32 %target_prot, 3 %and1.i = lshr i32 %target_prot, 2 %and1.lobit.i = and i32 %and1.i, 1 - %or.i159 = or i32 %and1.lobit.i, %and.i158 + %or.i158 = or i32 %and1.lobit.i, %and.i %17 = load i64, ptr @guest_base, align 8 %add.i = add i64 %17, %start.addr.0 %18 = inttoptr i64 %add.i to ptr %or73 = or disjoint i32 %flags, 16 %or74 = or i32 %flags, 48 - %call75 = tail call ptr @mmap64(ptr noundef %18, i64 noundef %and70, i32 noundef %or.i159, i32 noundef %or74, i32 noundef -1, i64 noundef 0) #14 + %call75 = tail call ptr @mmap64(ptr noundef %18, i64 noundef %and70, i32 noundef %or.i158, i32 noundef %or74, i32 noundef -1, i64 noundef 0) #14 %cmp76 = icmp eq ptr %call75, inttoptr (i64 -1 to ptr) br i1 %cmp76, label %fail, label %if.end78 @@ -811,16 +809,16 @@ if.end78: ; preds = %if.then64 if.then81: ; preds = %if.end78 %20 = load i64, ptr @guest_base, align 8 - %add.i160 = add i64 %20, %start.addr.0 - %21 = inttoptr i64 %add.i160 to ptr - %call84 = tail call ptr @mmap64(ptr noundef %21, i64 noundef %len.addr.0, i32 noundef %or.i159, i32 noundef %or73, i32 noundef %fd, i64 noundef %and25) #14 + %add.i159 = add i64 %20, %start.addr.0 + %21 = inttoptr i64 %add.i159 to ptr + %call84 = tail call ptr @mmap64(ptr noundef %21, i64 noundef %len.addr.0, i32 noundef %or.i158, i32 noundef %or73, i32 noundef %fd, i64 noundef %and25) #14 %cmp85 = icmp eq ptr %call84, inttoptr (i64 -1 to ptr) br i1 %cmp85, label %if.then86, label %if.end89 if.then86: ; preds = %if.then81 %22 = load i64, ptr @guest_base, align 8 - %add.i161 = add i64 %22, %start.addr.0 - %23 = inttoptr i64 %add.i161 to ptr + %add.i160 = add i64 %22, %start.addr.0 + %23 = inttoptr i64 %add.i160 to ptr %call88 = tail call i32 @munmap(ptr noundef %23, i64 noundef %and70) #14 br label %fail @@ -873,12 +871,12 @@ if.end107: ; preds = %if.else102 lor.lhs.false: ; preds = %if.end107 %sub.i = add i64 %len.addr.0, -1 %27 = load i64, ptr @reserved_va, align 8 - %tobool.not.i162 = icmp eq i64 %27, 0 - %..i = select i1 %tobool.not.i162, i64 -1, i64 %27 + %tobool.not.i161 = icmp eq i64 %27, 0 + %..i = select i1 %tobool.not.i161, i64 -1, i64 %27 %cmp.not.i = icmp ule i64 %sub.i, %..i %reass.sub = sub i64 %..i, %len.addr.0 - %add.i163 = add i64 %reass.sub, 1 - %cmp7.i = icmp ule i64 %start.addr.0, %add.i163 + %add.i162 = add i64 %reass.sub, 1 + %cmp7.i = icmp ule i64 %start.addr.0, %add.i162 %28 = select i1 %cmp.not.i, i1 %cmp7.i, i1 false br i1 %28, label %if.end119, label %if.then117 @@ -948,8 +946,8 @@ if.end148: ; preds = %if.then140 if.end156: ; preds = %if.end148 %33 = load i64, ptr @guest_base, align 8 - %add.i164 = add i64 %33, %start.addr.0 - %34 = inttoptr i64 %add.i164 to ptr + %add.i163 = add i64 %33, %start.addr.0 + %34 = inttoptr i64 %add.i163 to ptr %call158 = tail call i64 @pread64(i32 noundef %fd, ptr noundef %34, i64 noundef %len.addr.0, i64 noundef %offset) #14 %cmp159 = icmp eq i64 %call158, -1 br i1 %cmp159, label %fail, label %if.end161 @@ -1021,13 +1019,13 @@ if.then206: ; preds = %if.end203 %sub215 = sub nuw i64 %real_last.0, %real_start.0 %add216 = add i64 %sub215, 1 %39 = load i64, ptr @guest_base, align 8 - %add.i165 = add i64 %39, %real_start.0 - %40 = inttoptr i64 %add.i165 to ptr - %and.i166 = and i32 %target_prot, 3 - %and1.i167 = lshr i32 %target_prot, 2 - %and1.lobit.i168 = and i32 %and1.i167, 1 - %or.i169 = or i32 %and1.lobit.i168, %and.i166 - %call219 = tail call ptr @mmap64(ptr noundef %40, i64 noundef %add216, i32 noundef %or.i169, i32 noundef %flags.addr.0, i32 noundef %fd, i64 noundef %offset1.0) #14 + %add.i164 = add i64 %39, %real_start.0 + %40 = inttoptr i64 %add.i164 to ptr + %and.i165 = and i32 %target_prot, 3 + %and1.i166 = lshr i32 %target_prot, 2 + %and1.lobit.i167 = and i32 %and1.i166, 1 + %or.i168 = or i32 %and1.lobit.i167, %and.i165 + %call219 = tail call ptr @mmap64(ptr noundef %40, i64 noundef %add216, i32 noundef %or.i168, i32 noundef %flags.addr.0, i32 noundef %fd, i64 noundef %offset1.0) #14 %cmp220.not = icmp eq ptr %call219, %40 br i1 %cmp220.not, label %the_end1, label %if.then222 @@ -1042,10 +1040,10 @@ if.then225: ; preds = %if.then222 br label %fail the_end1.thread: ; preds = %if.then180, %if.end203 - %and232179 = shl i32 %flags.addr.0, 2 - %41 = and i32 %and232179, 128 - %spec.select182 = or disjoint i32 %or.i, %41 - %or237183 = or disjoint i32 %spec.select182, 64 + %and232178 = shl i32 %flags.addr.0, 2 + %41 = and i32 %and232178, 128 + %spec.select181 = or disjoint i32 %or.i, %41 + %or237182 = or disjoint i32 %spec.select181, 64 br label %if.then240 the_end1: ; preds = %if.then206, %if.end97 @@ -1062,10 +1060,10 @@ the_end1: ; preds = %if.then206, %if.end br i1 %cmp238, label %if.then240, label %if.else241 if.then240: ; preds = %the_end1.thread, %the_end1 - %or237189 = phi i32 [ %or237183, %the_end1.thread ], [ %or237, %the_end1 ] - %start.addr.2187 = phi i64 [ %start.addr.0, %the_end1.thread ], [ %start.addr.2, %the_end1 ] - %last.0185 = phi i64 [ %sub109, %the_end1.thread ], [ %last.0, %the_end1 ] - tail call void @page_set_flags(i64 noundef %start.addr.2187, i64 noundef %last.0185, i32 noundef %or237189) #14 + %or237188 = phi i32 [ %or237182, %the_end1.thread ], [ %or237, %the_end1 ] + %start.addr.2186 = phi i64 [ %start.addr.0, %the_end1.thread ], [ %start.addr.2, %the_end1 ] + %last.0184 = phi i64 [ %sub109, %the_end1.thread ], [ %last.0, %the_end1 ] + tail call void @page_set_flags(i64 noundef %start.addr.2186, i64 noundef %last.0184, i32 noundef %or237188) #14 br label %if.end253 if.else241: ; preds = %the_end1 @@ -1089,18 +1087,18 @@ if.then250: ; preds = %if.end246 br label %if.end253 if.end253: ; preds = %if.end246, %if.then250, %if.then240 - %start.addr.2188 = phi i64 [ %start.addr.2, %if.end246 ], [ %start.addr.2, %if.then250 ], [ %start.addr.2187, %if.then240 ] - %last.0186 = phi i64 [ %last.0, %if.end246 ], [ %last.0, %if.then250 ], [ %last.0185, %if.then240 ] - tail call fastcc void @shm_region_rm_complete(i64 noundef %start.addr.2188, i64 noundef %last.0186) + %start.addr.2187 = phi i64 [ %start.addr.2, %if.end246 ], [ %start.addr.2, %if.then250 ], [ %start.addr.2186, %if.then240 ] + %last.0185 = phi i64 [ %last.0, %if.end246 ], [ %last.0, %if.then250 ], [ %last.0184, %if.then240 ] + tail call fastcc void @shm_region_rm_complete(i64 noundef %start.addr.2187, i64 noundef %last.0185) br label %the_end the_end: ; preds = %if.end161, %if.then164, %if.end253 - %start.addr.1 = phi i64 [ %start.addr.2188, %if.end253 ], [ %start.addr.0, %if.end161 ], [ %start.addr.0, %if.then164 ] + %start.addr.1 = phi i64 [ %start.addr.2187, %if.end253 ], [ %start.addr.0, %if.end161 ], [ %start.addr.0, %if.then164 ] tail call fastcc void @trace_target_mmap_complete(i64 noundef %start.addr.1) %43 = load i32, ptr @qemu_loglevel, align 4 - %and.i170 = and i32 %43, 16384 - %cmp.i171.not = icmp eq i32 %and.i170, 0 - br i1 %cmp.i171.not, label %if.end261, label %if.then255 + %and.i169 = and i32 %43, 16384 + %cmp.i170.not = icmp eq i32 %and.i169, 0 + br i1 %cmp.i170.not, label %if.end261, label %if.then255 if.then255: ; preds = %the_end %call256 = tail call ptr @qemu_log_trylock() #14 @@ -1119,8 +1117,8 @@ if.end261: ; preds = %if.then255, %if.the fail: ; preds = %if.then222, %if.then225, %if.then194, %if.end184, %if.then180, %if.end156, %if.end148, %if.then64, %if.then44, %if.then146, %if.then124, %if.then117, %if.then105, %if.then86, %if.then36, %if.then12, %if.then7, %if.then3, %if.then %45 = load i32, ptr %0, align 4 - %cmp.i172 = icmp sgt i32 %45, 0 - br i1 %cmp.i172, label %if.end.i, label %if.else.i + %cmp.i171 = icmp sgt i32 %45, 0 + br i1 %cmp.i171, label %if.end.i, label %if.else.i if.else.i: ; preds = %fail tail call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 45, ptr noundef nonnull @__PRETTY_FUNCTION__.mmap_unlock) #15 @@ -1133,7 +1131,7 @@ if.end.i: ; preds = %fail br i1 %cmp1.i, label %if.then2.i, label %return if.then2.i: ; preds = %if.end.i - %call.i173 = tail call i32 @pthread_mutex_unlock(ptr noundef nonnull @mmap_mutex) #14 + %call.i172 = tail call i32 @pthread_mutex_unlock(ptr noundef nonnull @mmap_mutex) #14 br label %return return: ; preds = %if.then2.i, %if.end.i, %if.end261 diff --git a/bench/qemu/optimized/linux-user_syscall.c.ll b/bench/qemu/optimized/linux-user_syscall.c.ll index 99c4f63620b..52d22a1aed4 100644 --- a/bench/qemu/optimized/linux-user_syscall.c.ll +++ b/bench/qemu/optimized/linux-user_syscall.c.ll @@ -4673,12 +4673,8 @@ if.end322: ; preds = %sw.bb318 if.end326: ; preds = %if.end322 %58 = trunc i64 %arg3 to i32 - %conv328 = and i32 %58, -524289 - %and329 = and i64 %arg3, 524288 - %tobool330.not = icmp eq i64 %and329, 0 - %spec.select = select i1 %tobool330.not, i32 %conv328, i32 %58 %conv333 = trunc i64 %arg1 to i32 - %call.i1963 = tail call i64 (i64, ...) @syscall(i64 noundef 428, i32 noundef %conv333, ptr noundef nonnull %call323, i32 noundef %spec.select) #27 + %call.i1963 = tail call i64 (i64, ...) @syscall(i64 noundef 428, i32 noundef %conv333, ptr noundef nonnull %call323, i32 noundef %58) #27 %sext3868 = shl i64 %call.i1963, 32 %conv335 = ashr exact i64 %sext3868, 32 %cmp.i1965 = icmp eq i64 %sext3868, -4294967296 @@ -9979,7 +9975,7 @@ land.lhs.true3458: ; preds = %get_errno.exit3591 sw.bb3465: ; preds = %entry %469 = and i64 %arg1, 4294967264 %or.cond.i3597.not.not = icmp eq i64 %469, 212795392 - %and2.i3598 = and i64 %arg1, 65535 + %and2.i3598 = and i64 %arg1, 31 br i1 %or.cond.i3597.not.not, label %if.else3472, label %return if.else3472: ; preds = %sw.bb3465 @@ -12683,10 +12679,9 @@ entry: br i1 %tobool.not, label %if.end, label %return if.end: ; preds = %entry - %and1 = and i32 %flags, 2048 %tobool6.not = icmp ult i32 %flags, 524288 %or8 = or i32 %flags, 524288 - %host_flags.1 = select i1 %tobool6.not, i32 %and1, i32 %or8 + %host_flags.1 = select i1 %tobool6.not, i32 %flags, i32 %or8 %cmp = icmp eq i64 %target_addr, 0 br i1 %cmp, label %if.then10, label %if.end12 diff --git a/bench/regex-rs/optimized/11vfjke4utuj478u.ll b/bench/regex-rs/optimized/11vfjke4utuj478u.ll index 298330be5c6..5e2e9a67bf8 100644 --- a/bench/regex-rs/optimized/11vfjke4utuj478u.ll +++ b/bench/regex-rs/optimized/11vfjke4utuj478u.ll @@ -9111,24 +9111,28 @@ define { i32, i32 } @_ZN14regex_automata4meta5error10BuildError7pattern17he6c318 define { i64, i64 } @_ZN14regex_automata4meta5error10BuildError10size_limit17hc16b1da42b0a70f9E(ptr noalias nocapture noundef readonly align 8 dereferenceable(136) %0) unnamed_addr #4 { %2 = load i64, ptr %0, align 8, !range !1812, !noundef !5 %3 = icmp eq i64 %2, -9223372036854775807 - br i1 %3, label %4, label %10 + br i1 %3, label %4, label %14 4: ; preds = %1 %5 = getelementptr inbounds i8, ptr %0, i64 8 %6 = load i64, ptr %5, align 8, !range !1813, !alias.scope !1814, !noundef !5 - %7 = icmp eq i64 %6, -9223372036854775803 - %8 = getelementptr inbounds i8, ptr %0, i64 16 - %9 = load i64, ptr %8, align 8, !alias.scope !1814 - %.sroa.3.0.i = select i1 %7, i64 %9, i64 undef - %.sroa.0.0.i = zext i1 %7 to i64 - br label %10 + %7 = add i64 %6, 9223372036854775807 + %8 = icmp ult i64 %7, 7 + %9 = and i64 %6, 7 + %10 = icmp eq i64 %9, 5 + %11 = and i1 %8, %10 + %12 = getelementptr inbounds i8, ptr %0, i64 16 + %13 = load i64, ptr %12, align 8, !alias.scope !1814 + %.sroa.3.0.i = select i1 %11, i64 %13, i64 undef + %.sroa.0.0.i = zext i1 %11 to i64 + br label %14 -10: ; preds = %1, %4 +14: ; preds = %1, %4 %.sroa.3.0 = phi i64 [ %.sroa.3.0.i, %4 ], [ undef, %1 ] %.sroa.0.0 = phi i64 [ %.sroa.0.0.i, %4 ], [ 0, %1 ] - %11 = insertvalue { i64, i64 } poison, i64 %.sroa.0.0, 0 - %12 = insertvalue { i64, i64 } %11, i64 %.sroa.3.0, 1 - ret { i64, i64 } %12 + %15 = insertvalue { i64, i64 } poison, i64 %.sroa.0.0, 0 + %16 = insertvalue { i64, i64 } %15, i64 %.sroa.3.0, 1 + ret { i64, i64 } %16 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable @@ -13031,14 +13035,18 @@ define hidden noundef i64 @_ZN14regex_automata4meta8wrappers16ReverseDFAEngine12 ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable define { i64, i64 } @_ZN14regex_automata3nfa8thompson5error10BuildError10size_limit17he49c67fe27620edeE(ptr noalias nocapture noundef readonly align 8 dereferenceable(128) %0) unnamed_addr #4 { %2 = load i64, ptr %0, align 8, !range !1813, !noundef !5 - %3 = icmp eq i64 %2, -9223372036854775803 - %4 = getelementptr inbounds i8, ptr %0, i64 8 - %5 = load i64, ptr %4, align 8 - %.sroa.3.0 = select i1 %3, i64 %5, i64 undef - %.sroa.0.0 = zext i1 %3 to i64 - %6 = insertvalue { i64, i64 } poison, i64 %.sroa.0.0, 0 - %7 = insertvalue { i64, i64 } %6, i64 %.sroa.3.0, 1 - ret { i64, i64 } %7 + %3 = add i64 %2, 9223372036854775807 + %4 = icmp ult i64 %3, 7 + %5 = and i64 %2, 7 + %6 = icmp eq i64 %5, 5 + %7 = and i1 %4, %6 + %8 = getelementptr inbounds i8, ptr %0, i64 8 + %9 = load i64, ptr %8, align 8 + %.sroa.3.0 = select i1 %7, i64 %9, i64 undef + %.sroa.0.0 = zext i1 %7 to i64 + %10 = insertvalue { i64, i64 } poison, i64 %.sroa.0.0, 0 + %11 = insertvalue { i64, i64 } %10, i64 %.sroa.3.0, 1 + ret { i64, i64 } %11 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable @@ -13113,7 +13121,7 @@ define { ptr, ptr } @"_ZN87_$LT$regex_automata..nfa..thompson..error..BuildError %2 = load i64, ptr %0, align 8, !range !1813, !noundef !5 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 7 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 7 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %10 [ i64 0, label %7 @@ -13158,196 +13166,196 @@ define noundef zeroext i1 @"_ZN87_$LT$regex_automata..nfa..thompson..error..Buil %21 = load i64, ptr %0, align 8, !range !1813, !noundef !5 %22 = add i64 %21, 9223372036854775807 %23 = icmp ult i64 %22, 7 - %24 = xor i64 %21, -9223372036854775808 + %24 = and i64 %21, 7 %25 = select i1 %23, i64 %24, i64 0 - switch i64 %25, label %26 [ - i64 0, label %27 - i64 1, label %33 - i64 2, label %39 - i64 3, label %45 - i64 4, label %56 - i64 5, label %67 - i64 6, label %75 - i64 7, label %83 + switch i64 %25, label %default.unreachable [ + i64 0, label %26 + i64 1, label %32 + i64 2, label %38 + i64 3, label %44 + i64 4, label %55 + i64 5, label %66 + i64 6, label %74 + i64 7, label %82 ] -26: ; preds = %2 +default.unreachable: ; preds = %2 unreachable -27: ; preds = %2 +26: ; preds = %2 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %20) store ptr @anon.227420ea47fcf415024a4301e123f38b.150, ptr %20, align 8 - %28 = getelementptr inbounds i8, ptr %20, i64 8 - store i64 1, ptr %28, align 8 - %29 = getelementptr inbounds i8, ptr %20, i64 32 - store ptr null, ptr %29, align 8 - %30 = getelementptr inbounds i8, ptr %20, i64 16 - store ptr @anon.227420ea47fcf415024a4301e123f38b.2.llvm.4719928553755522418, ptr %30, align 8 - %31 = getelementptr inbounds i8, ptr %20, i64 24 - store i64 0, ptr %31, align 8 - %32 = call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_fmt17heacf5dba8c40948fE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %20) + %27 = getelementptr inbounds i8, ptr %20, i64 8 + store i64 1, ptr %27, align 8 + %28 = getelementptr inbounds i8, ptr %20, i64 32 + store ptr null, ptr %28, align 8 + %29 = getelementptr inbounds i8, ptr %20, i64 16 + store ptr @anon.227420ea47fcf415024a4301e123f38b.2.llvm.4719928553755522418, ptr %29, align 8 + %30 = getelementptr inbounds i8, ptr %20, i64 24 + store i64 0, ptr %30, align 8 + %31 = call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_fmt17heacf5dba8c40948fE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %20) call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %20) - br label %89 + br label %88 -33: ; preds = %2 +32: ; preds = %2 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %19) store ptr @anon.227420ea47fcf415024a4301e123f38b.152, ptr %19, align 8 - %34 = getelementptr inbounds i8, ptr %19, i64 8 - store i64 1, ptr %34, align 8 - %35 = getelementptr inbounds i8, ptr %19, i64 32 - store ptr null, ptr %35, align 8 - %36 = getelementptr inbounds i8, ptr %19, i64 16 - store ptr @anon.227420ea47fcf415024a4301e123f38b.2.llvm.4719928553755522418, ptr %36, align 8 - %37 = getelementptr inbounds i8, ptr %19, i64 24 - store i64 0, ptr %37, align 8 - %38 = call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_fmt17heacf5dba8c40948fE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %19) + %33 = getelementptr inbounds i8, ptr %19, i64 8 + store i64 1, ptr %33, align 8 + %34 = getelementptr inbounds i8, ptr %19, i64 32 + store ptr null, ptr %34, align 8 + %35 = getelementptr inbounds i8, ptr %19, i64 16 + store ptr @anon.227420ea47fcf415024a4301e123f38b.2.llvm.4719928553755522418, ptr %35, align 8 + %36 = getelementptr inbounds i8, ptr %19, i64 24 + store i64 0, ptr %36, align 8 + %37 = call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_fmt17heacf5dba8c40948fE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %19) call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %19) - br label %89 + br label %88 -39: ; preds = %2 +38: ; preds = %2 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %18) store ptr @anon.227420ea47fcf415024a4301e123f38b.154, ptr %18, align 8 - %40 = getelementptr inbounds i8, ptr %18, i64 8 - store i64 1, ptr %40, align 8 - %41 = getelementptr inbounds i8, ptr %18, i64 32 - store ptr null, ptr %41, align 8 - %42 = getelementptr inbounds i8, ptr %18, i64 16 - store ptr @anon.227420ea47fcf415024a4301e123f38b.2.llvm.4719928553755522418, ptr %42, align 8 - %43 = getelementptr inbounds i8, ptr %18, i64 24 - store i64 0, ptr %43, align 8 - %44 = call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_fmt17heacf5dba8c40948fE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %18) + %39 = getelementptr inbounds i8, ptr %18, i64 8 + store i64 1, ptr %39, align 8 + %40 = getelementptr inbounds i8, ptr %18, i64 32 + store ptr null, ptr %40, align 8 + %41 = getelementptr inbounds i8, ptr %18, i64 16 + store ptr @anon.227420ea47fcf415024a4301e123f38b.2.llvm.4719928553755522418, ptr %41, align 8 + %42 = getelementptr inbounds i8, ptr %18, i64 24 + store i64 0, ptr %42, align 8 + %43 = call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_fmt17heacf5dba8c40948fE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %18) call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %18) - br label %89 + br label %88 -45: ; preds = %2 +44: ; preds = %2 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) - %46 = getelementptr inbounds i8, ptr %0, i64 8 - store ptr %46, ptr %17, align 8 + %45 = getelementptr inbounds i8, ptr %0, i64 8 + store ptr %45, ptr %17, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) - %47 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %47, ptr %16, align 8 + %46 = getelementptr inbounds i8, ptr %0, i64 16 + store ptr %46, ptr %16, align 8 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %15) call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) store ptr %17, ptr %14, align 8 - %48 = getelementptr inbounds i8, ptr %14, i64 8 - store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h29b14156b8935f25E", ptr %48, align 8 - %49 = getelementptr inbounds i8, ptr %14, i64 16 - store ptr %16, ptr %49, align 8 - %50 = getelementptr inbounds i8, ptr %14, i64 24 - store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h29b14156b8935f25E", ptr %50, align 8 + %47 = getelementptr inbounds i8, ptr %14, i64 8 + store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h29b14156b8935f25E", ptr %47, align 8 + %48 = getelementptr inbounds i8, ptr %14, i64 16 + store ptr %16, ptr %48, align 8 + %49 = getelementptr inbounds i8, ptr %14, i64 24 + store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h29b14156b8935f25E", ptr %49, align 8 store ptr @anon.227420ea47fcf415024a4301e123f38b.157, ptr %15, align 8, !alias.scope !2873, !noalias !2876 - %51 = getelementptr inbounds i8, ptr %15, i64 8 - store i64 2, ptr %51, align 8, !alias.scope !2873, !noalias !2876 - %52 = getelementptr inbounds i8, ptr %15, i64 32 - store ptr null, ptr %52, align 8, !alias.scope !2873, !noalias !2876 - %53 = getelementptr inbounds i8, ptr %15, i64 16 - store ptr %14, ptr %53, align 8, !alias.scope !2873, !noalias !2876 - %54 = getelementptr inbounds i8, ptr %15, i64 24 - store i64 2, ptr %54, align 8, !alias.scope !2873, !noalias !2876 - %55 = call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_fmt17heacf5dba8c40948fE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %15) + %50 = getelementptr inbounds i8, ptr %15, i64 8 + store i64 2, ptr %50, align 8, !alias.scope !2873, !noalias !2876 + %51 = getelementptr inbounds i8, ptr %15, i64 32 + store ptr null, ptr %51, align 8, !alias.scope !2873, !noalias !2876 + %52 = getelementptr inbounds i8, ptr %15, i64 16 + store ptr %14, ptr %52, align 8, !alias.scope !2873, !noalias !2876 + %53 = getelementptr inbounds i8, ptr %15, i64 24 + store i64 2, ptr %53, align 8, !alias.scope !2873, !noalias !2876 + %54 = call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_fmt17heacf5dba8c40948fE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %15) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %15) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) - br label %89 + br label %88 -56: ; preds = %2 +55: ; preds = %2 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) - %57 = getelementptr inbounds i8, ptr %0, i64 8 - store ptr %57, ptr %13, align 8 + %56 = getelementptr inbounds i8, ptr %0, i64 8 + store ptr %56, ptr %13, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) - %58 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %58, ptr %12, align 8 + %57 = getelementptr inbounds i8, ptr %0, i64 16 + store ptr %57, ptr %12, align 8 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %11) call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) store ptr %13, ptr %10, align 8 - %59 = getelementptr inbounds i8, ptr %10, i64 8 - store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h29b14156b8935f25E", ptr %59, align 8 - %60 = getelementptr inbounds i8, ptr %10, i64 16 - store ptr %12, ptr %60, align 8 - %61 = getelementptr inbounds i8, ptr %10, i64 24 - store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h29b14156b8935f25E", ptr %61, align 8 + %58 = getelementptr inbounds i8, ptr %10, i64 8 + store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h29b14156b8935f25E", ptr %58, align 8 + %59 = getelementptr inbounds i8, ptr %10, i64 16 + store ptr %12, ptr %59, align 8 + %60 = getelementptr inbounds i8, ptr %10, i64 24 + store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h29b14156b8935f25E", ptr %60, align 8 store ptr @anon.227420ea47fcf415024a4301e123f38b.159, ptr %11, align 8, !alias.scope !2879, !noalias !2882 - %62 = getelementptr inbounds i8, ptr %11, i64 8 - store i64 2, ptr %62, align 8, !alias.scope !2879, !noalias !2882 - %63 = getelementptr inbounds i8, ptr %11, i64 32 - store ptr null, ptr %63, align 8, !alias.scope !2879, !noalias !2882 - %64 = getelementptr inbounds i8, ptr %11, i64 16 - store ptr %10, ptr %64, align 8, !alias.scope !2879, !noalias !2882 - %65 = getelementptr inbounds i8, ptr %11, i64 24 - store i64 2, ptr %65, align 8, !alias.scope !2879, !noalias !2882 - %66 = call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_fmt17heacf5dba8c40948fE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %11) + %61 = getelementptr inbounds i8, ptr %11, i64 8 + store i64 2, ptr %61, align 8, !alias.scope !2879, !noalias !2882 + %62 = getelementptr inbounds i8, ptr %11, i64 32 + store ptr null, ptr %62, align 8, !alias.scope !2879, !noalias !2882 + %63 = getelementptr inbounds i8, ptr %11, i64 16 + store ptr %10, ptr %63, align 8, !alias.scope !2879, !noalias !2882 + %64 = getelementptr inbounds i8, ptr %11, i64 24 + store i64 2, ptr %64, align 8, !alias.scope !2879, !noalias !2882 + %65 = call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_fmt17heacf5dba8c40948fE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %11) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %11) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) - br label %89 + br label %88 -67: ; preds = %2 +66: ; preds = %2 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) - %68 = getelementptr inbounds i8, ptr %0, i64 8 - store ptr %68, ptr %9, align 8 + %67 = getelementptr inbounds i8, ptr %0, i64 8 + store ptr %67, ptr %9, align 8 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %8) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) store ptr %9, ptr %7, align 8 - %69 = getelementptr inbounds i8, ptr %7, i64 8 - store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h29b14156b8935f25E", ptr %69, align 8 + %68 = getelementptr inbounds i8, ptr %7, i64 8 + store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h29b14156b8935f25E", ptr %68, align 8 store ptr @anon.227420ea47fcf415024a4301e123f38b.161, ptr %8, align 8, !alias.scope !2885, !noalias !2888 - %70 = getelementptr inbounds i8, ptr %8, i64 8 - store i64 1, ptr %70, align 8, !alias.scope !2885, !noalias !2888 - %71 = getelementptr inbounds i8, ptr %8, i64 32 - store ptr null, ptr %71, align 8, !alias.scope !2885, !noalias !2888 - %72 = getelementptr inbounds i8, ptr %8, i64 16 - store ptr %7, ptr %72, align 8, !alias.scope !2885, !noalias !2888 - %73 = getelementptr inbounds i8, ptr %8, i64 24 - store i64 1, ptr %73, align 8, !alias.scope !2885, !noalias !2888 - %74 = call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_fmt17heacf5dba8c40948fE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %8) + %69 = getelementptr inbounds i8, ptr %8, i64 8 + store i64 1, ptr %69, align 8, !alias.scope !2885, !noalias !2888 + %70 = getelementptr inbounds i8, ptr %8, i64 32 + store ptr null, ptr %70, align 8, !alias.scope !2885, !noalias !2888 + %71 = getelementptr inbounds i8, ptr %8, i64 16 + store ptr %7, ptr %71, align 8, !alias.scope !2885, !noalias !2888 + %72 = getelementptr inbounds i8, ptr %8, i64 24 + store i64 1, ptr %72, align 8, !alias.scope !2885, !noalias !2888 + %73 = call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_fmt17heacf5dba8c40948fE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %8) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %8) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) - br label %89 + br label %88 -75: ; preds = %2 +74: ; preds = %2 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) - %76 = getelementptr inbounds i8, ptr %0, i64 8 - store ptr %76, ptr %6, align 8 + %75 = getelementptr inbounds i8, ptr %0, i64 8 + store ptr %75, ptr %6, align 8 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %5) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) store ptr %6, ptr %4, align 8 - %77 = getelementptr inbounds i8, ptr %4, i64 8 - store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h3461779ef2c75f53E", ptr %77, align 8 + %76 = getelementptr inbounds i8, ptr %4, i64 8 + store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h3461779ef2c75f53E", ptr %76, align 8 store ptr @anon.227420ea47fcf415024a4301e123f38b.164, ptr %5, align 8, !alias.scope !2891, !noalias !2894 - %78 = getelementptr inbounds i8, ptr %5, i64 8 - store i64 2, ptr %78, align 8, !alias.scope !2891, !noalias !2894 - %79 = getelementptr inbounds i8, ptr %5, i64 32 - store ptr null, ptr %79, align 8, !alias.scope !2891, !noalias !2894 - %80 = getelementptr inbounds i8, ptr %5, i64 16 - store ptr %4, ptr %80, align 8, !alias.scope !2891, !noalias !2894 - %81 = getelementptr inbounds i8, ptr %5, i64 24 - store i64 1, ptr %81, align 8, !alias.scope !2891, !noalias !2894 - %82 = call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_fmt17heacf5dba8c40948fE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %5) + %77 = getelementptr inbounds i8, ptr %5, i64 8 + store i64 2, ptr %77, align 8, !alias.scope !2891, !noalias !2894 + %78 = getelementptr inbounds i8, ptr %5, i64 32 + store ptr null, ptr %78, align 8, !alias.scope !2891, !noalias !2894 + %79 = getelementptr inbounds i8, ptr %5, i64 16 + store ptr %4, ptr %79, align 8, !alias.scope !2891, !noalias !2894 + %80 = getelementptr inbounds i8, ptr %5, i64 24 + store i64 1, ptr %80, align 8, !alias.scope !2891, !noalias !2894 + %81 = call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_fmt17heacf5dba8c40948fE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %5) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %5) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) - br label %89 + br label %88 -83: ; preds = %2 +82: ; preds = %2 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %3) store ptr @anon.227420ea47fcf415024a4301e123f38b.166, ptr %3, align 8 - %84 = getelementptr inbounds i8, ptr %3, i64 8 - store i64 1, ptr %84, align 8 - %85 = getelementptr inbounds i8, ptr %3, i64 32 - store ptr null, ptr %85, align 8 - %86 = getelementptr inbounds i8, ptr %3, i64 16 - store ptr @anon.227420ea47fcf415024a4301e123f38b.2.llvm.4719928553755522418, ptr %86, align 8 - %87 = getelementptr inbounds i8, ptr %3, i64 24 - store i64 0, ptr %87, align 8 - %88 = call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_fmt17heacf5dba8c40948fE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %3) + %83 = getelementptr inbounds i8, ptr %3, i64 8 + store i64 1, ptr %83, align 8 + %84 = getelementptr inbounds i8, ptr %3, i64 32 + store ptr null, ptr %84, align 8 + %85 = getelementptr inbounds i8, ptr %3, i64 16 + store ptr @anon.227420ea47fcf415024a4301e123f38b.2.llvm.4719928553755522418, ptr %85, align 8 + %86 = getelementptr inbounds i8, ptr %3, i64 24 + store i64 0, ptr %86, align 8 + %87 = call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_fmt17heacf5dba8c40948fE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %3) call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %3) - br label %89 + br label %88 -89: ; preds = %83, %75, %67, %56, %45, %39, %33, %27 - %.0.in = phi i1 [ %88, %83 ], [ %82, %75 ], [ %74, %67 ], [ %66, %56 ], [ %55, %45 ], [ %44, %39 ], [ %38, %33 ], [ %32, %27 ] +88: ; preds = %82, %74, %66, %55, %44, %38, %32, %26 + %.0.in = phi i1 [ %87, %82 ], [ %81, %74 ], [ %73, %66 ], [ %65, %55 ], [ %54, %44 ], [ %43, %38 ], [ %37, %32 ], [ %31, %26 ] ret i1 %.0.in } diff --git a/bench/regex-rs/optimized/6f4i3c8223u3bmw.ll b/bench/regex-rs/optimized/6f4i3c8223u3bmw.ll index d90d9ec1502..a3d73e0e718 100644 --- a/bench/regex-rs/optimized/6f4i3c8223u3bmw.ll +++ b/bench/regex-rs/optimized/6f4i3c8223u3bmw.ll @@ -544,84 +544,84 @@ define hidden noundef zeroext i1 @"_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$G %11 = load i64, ptr %10, align 8, !range !48, !alias.scope !45, !noalias !49, !noundef !5 %12 = add i64 %11, 9223372036854775807 %13 = icmp ult i64 %12, 7 - %14 = xor i64 %11, -9223372036854775808 + %14 = and i64 %11, 7 %15 = select i1 %13, i64 %14, i64 0 - switch i64 %15, label %16 [ - i64 0, label %17 - i64 1, label %19 - i64 2, label %22 - i64 3, label %24 - i64 4, label %28 - i64 5, label %32 - i64 6, label %35 - i64 7, label %38 + switch i64 %15, label %default.unreachable [ + i64 0, label %16 + i64 1, label %18 + i64 2, label %21 + i64 3, label %23 + i64 4, label %27 + i64 5, label %31 + i64 6, label %34 + i64 7, label %37 ] -16: ; preds = %2 +default.unreachable: ; preds = %2 unreachable -17: ; preds = %2 +16: ; preds = %2 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9), !noalias !51 store ptr %10, ptr %9, align 8, !noalias !51 - %18 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2aec415592a2774eE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.219, i64 noundef 6, ptr noundef nonnull align 1 %9, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.8a1b429415f23bfa071ebb028a9ce5fa.220) + %17 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2aec415592a2774eE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.219, i64 noundef 6, ptr noundef nonnull align 1 %9, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.8a1b429415f23bfa071ebb028a9ce5fa.220) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9), !noalias !51 br label %"_ZN89_$LT$regex_automata..nfa..thompson..error..BuildErrorKind$u20$as$u20$core..fmt..Debug$GT$3fmt17hc19a331c79e786dfE.exit" -19: ; preds = %2 +18: ; preds = %2 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8), !noalias !51 - %20 = getelementptr inbounds i8, ptr %10, i64 8 - store ptr %20, ptr %8, align 8, !noalias !51 - %21 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2aec415592a2774eE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.221, i64 noundef 8, ptr noundef nonnull align 1 %8, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.8a1b429415f23bfa071ebb028a9ce5fa.222) + %19 = getelementptr inbounds i8, ptr %10, i64 8 + store ptr %19, ptr %8, align 8, !noalias !51 + %20 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2aec415592a2774eE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.221, i64 noundef 8, ptr noundef nonnull align 1 %8, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.8a1b429415f23bfa071ebb028a9ce5fa.222) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8), !noalias !51 br label %"_ZN89_$LT$regex_automata..nfa..thompson..error..BuildErrorKind$u20$as$u20$core..fmt..Debug$GT$3fmt17hc19a331c79e786dfE.exit" -22: ; preds = %2 +21: ; preds = %2 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7), !noalias !51 store ptr %10, ptr %7, align 8, !noalias !51 - %23 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2aec415592a2774eE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.223, i64 noundef 4, ptr noundef nonnull align 1 %7, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.8a1b429415f23bfa071ebb028a9ce5fa.224) + %22 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2aec415592a2774eE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.223, i64 noundef 4, ptr noundef nonnull align 1 %7, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.8a1b429415f23bfa071ebb028a9ce5fa.224) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7), !noalias !51 br label %"_ZN89_$LT$regex_automata..nfa..thompson..error..BuildErrorKind$u20$as$u20$core..fmt..Debug$GT$3fmt17hc19a331c79e786dfE.exit" -24: ; preds = %2 +23: ; preds = %2 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6), !noalias !51 - %25 = getelementptr inbounds i8, ptr %10, i64 16 - store ptr %25, ptr %6, align 8, !noalias !51 - %26 = getelementptr inbounds i8, ptr %10, i64 8 - %27 = call noundef zeroext i1 @_ZN4core3fmt9Formatter26debug_struct_field2_finish17hc92cc99514a1f43aE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.225, i64 noundef 15, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.226, i64 noundef 5, ptr noundef nonnull readonly align 1 %26, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.8a1b429415f23bfa071ebb028a9ce5fa.42, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.227, i64 noundef 5, ptr noundef nonnull align 1 %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.8a1b429415f23bfa071ebb028a9ce5fa.35) + %24 = getelementptr inbounds i8, ptr %10, i64 16 + store ptr %24, ptr %6, align 8, !noalias !51 + %25 = getelementptr inbounds i8, ptr %10, i64 8 + %26 = call noundef zeroext i1 @_ZN4core3fmt9Formatter26debug_struct_field2_finish17hc92cc99514a1f43aE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.225, i64 noundef 15, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.226, i64 noundef 5, ptr noundef nonnull readonly align 1 %25, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.8a1b429415f23bfa071ebb028a9ce5fa.42, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.227, i64 noundef 5, ptr noundef nonnull align 1 %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.8a1b429415f23bfa071ebb028a9ce5fa.35) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6), !noalias !51 br label %"_ZN89_$LT$regex_automata..nfa..thompson..error..BuildErrorKind$u20$as$u20$core..fmt..Debug$GT$3fmt17hc19a331c79e786dfE.exit" -28: ; preds = %2 +27: ; preds = %2 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5), !noalias !51 - %29 = getelementptr inbounds i8, ptr %10, i64 16 - store ptr %29, ptr %5, align 8, !noalias !51 - %30 = getelementptr inbounds i8, ptr %10, i64 8 - %31 = call noundef zeroext i1 @_ZN4core3fmt9Formatter26debug_struct_field2_finish17hc92cc99514a1f43aE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.228, i64 noundef 13, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.226, i64 noundef 5, ptr noundef nonnull readonly align 1 %30, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.8a1b429415f23bfa071ebb028a9ce5fa.42, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.227, i64 noundef 5, ptr noundef nonnull align 1 %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.8a1b429415f23bfa071ebb028a9ce5fa.35) + %28 = getelementptr inbounds i8, ptr %10, i64 16 + store ptr %28, ptr %5, align 8, !noalias !51 + %29 = getelementptr inbounds i8, ptr %10, i64 8 + %30 = call noundef zeroext i1 @_ZN4core3fmt9Formatter26debug_struct_field2_finish17hc92cc99514a1f43aE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.228, i64 noundef 13, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.226, i64 noundef 5, ptr noundef nonnull readonly align 1 %29, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.8a1b429415f23bfa071ebb028a9ce5fa.42, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.227, i64 noundef 5, ptr noundef nonnull align 1 %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.8a1b429415f23bfa071ebb028a9ce5fa.35) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5), !noalias !51 br label %"_ZN89_$LT$regex_automata..nfa..thompson..error..BuildErrorKind$u20$as$u20$core..fmt..Debug$GT$3fmt17hc19a331c79e786dfE.exit" -32: ; preds = %2 +31: ; preds = %2 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4), !noalias !51 - %33 = getelementptr inbounds i8, ptr %10, i64 8 - store ptr %33, ptr %4, align 8, !noalias !51 - %34 = call noundef zeroext i1 @_ZN4core3fmt9Formatter26debug_struct_field1_finish17hb215b1c4958a99bcE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.229, i64 noundef 17, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.227, i64 noundef 5, ptr noundef nonnull align 1 %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.8a1b429415f23bfa071ebb028a9ce5fa.35) + %32 = getelementptr inbounds i8, ptr %10, i64 8 + store ptr %32, ptr %4, align 8, !noalias !51 + %33 = call noundef zeroext i1 @_ZN4core3fmt9Formatter26debug_struct_field1_finish17hb215b1c4958a99bcE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.229, i64 noundef 17, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.227, i64 noundef 5, ptr noundef nonnull align 1 %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.8a1b429415f23bfa071ebb028a9ce5fa.35) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4), !noalias !51 br label %"_ZN89_$LT$regex_automata..nfa..thompson..error..BuildErrorKind$u20$as$u20$core..fmt..Debug$GT$3fmt17hc19a331c79e786dfE.exit" -35: ; preds = %2 +34: ; preds = %2 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3), !noalias !51 - %36 = getelementptr inbounds i8, ptr %10, i64 8 - store ptr %36, ptr %3, align 8, !noalias !51 - %37 = call noundef zeroext i1 @_ZN4core3fmt9Formatter26debug_struct_field1_finish17hb215b1c4958a99bcE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.230, i64 noundef 19, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.231, i64 noundef 5, ptr noundef nonnull align 1 %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.8a1b429415f23bfa071ebb028a9ce5fa.232) + %35 = getelementptr inbounds i8, ptr %10, i64 8 + store ptr %35, ptr %3, align 8, !noalias !51 + %36 = call noundef zeroext i1 @_ZN4core3fmt9Formatter26debug_struct_field1_finish17hb215b1c4958a99bcE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.230, i64 noundef 19, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.231, i64 noundef 5, ptr noundef nonnull align 1 %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.8a1b429415f23bfa071ebb028a9ce5fa.232) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3), !noalias !51 br label %"_ZN89_$LT$regex_automata..nfa..thompson..error..BuildErrorKind$u20$as$u20$core..fmt..Debug$GT$3fmt17hc19a331c79e786dfE.exit" -38: ; preds = %2 - %39 = tail call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_str17hff61c25f281f3854E(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.233, i64 noundef 19), !noalias !45 +37: ; preds = %2 + %38 = tail call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_str17hff61c25f281f3854E(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.8a1b429415f23bfa071ebb028a9ce5fa.233, i64 noundef 19), !noalias !45 br label %"_ZN89_$LT$regex_automata..nfa..thompson..error..BuildErrorKind$u20$as$u20$core..fmt..Debug$GT$3fmt17hc19a331c79e786dfE.exit" -"_ZN89_$LT$regex_automata..nfa..thompson..error..BuildErrorKind$u20$as$u20$core..fmt..Debug$GT$3fmt17hc19a331c79e786dfE.exit": ; preds = %17, %19, %22, %24, %28, %32, %35, %38 - %.0.in.i = phi i1 [ %39, %38 ], [ %37, %35 ], [ %34, %32 ], [ %31, %28 ], [ %27, %24 ], [ %23, %22 ], [ %21, %19 ], [ %18, %17 ] +"_ZN89_$LT$regex_automata..nfa..thompson..error..BuildErrorKind$u20$as$u20$core..fmt..Debug$GT$3fmt17hc19a331c79e786dfE.exit": ; preds = %16, %18, %21, %23, %27, %31, %34, %37 + %.0.in.i = phi i1 [ %38, %37 ], [ %36, %34 ], [ %33, %31 ], [ %30, %27 ], [ %26, %23 ], [ %22, %21 ], [ %20, %18 ], [ %17, %16 ] ret i1 %.0.in.i } @@ -1043,7 +1043,7 @@ define hidden { ptr, ptr } @_ZN4core5error5Error5cause17h56aa0e71151322e2E(ptr n %2 = load i64, ptr %0, align 8, !range !48, !alias.scope !70, !noundef !5 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 7 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 7 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN87_$LT$regex_automata..nfa..thompson..error..BuildError$u20$as$u20$core..error..Error$GT$6source17hb1a81d94066e497cE.exit" [ i64 0, label %7 diff --git a/bench/ripgrep-rs/optimized/2o34yknt0qgloo1w.ll b/bench/ripgrep-rs/optimized/2o34yknt0qgloo1w.ll index d5b36b4161a..dca8ccc9b2e 100644 --- a/bench/ripgrep-rs/optimized/2o34yknt0qgloo1w.ll +++ b/bench/ripgrep-rs/optimized/2o34yknt0qgloo1w.ll @@ -369,29 +369,32 @@ define hidden void @_ZN10grep_regex5error5Error5regex17h793efd7e76319135E(ptr no %10 = alloca i64, align 8 %11 = load i64, ptr %1, align 8, !range !36, !noundef !4 %12 = icmp eq i64 %11, -9223372036854775807 - %13 = getelementptr inbounds i8, ptr %1, i64 8 - %14 = load i64, ptr %13, align 8, !range !37 - %15 = icmp eq i64 %14, -9223372036854775803 - %or.cond = select i1 %12, i1 %15, i1 false - br i1 %or.cond, label %17, label %16 - -16: ; preds = %2 - br i1 %12, label %34, label %21 - -.body.thread16: ; preds = %17 + br i1 %12, label %13, label %25 + +13: ; preds = %2 + %14 = getelementptr inbounds i8, ptr %1, i64 8 + %15 = load i64, ptr %14, align 8, !range !37, !noundef !4 + %16 = add i64 %15, 9223372036854775807 + %17 = icmp ult i64 %16, 7 + %18 = and i64 %15, 7 + %19 = icmp eq i64 %18, 5 + %20 = and i1 %17, %19 + br i1 %20, label %21, label %38 + +.body.thread15: ; preds = %21 %lpad.thr_comm = landingpad { ptr, i32 } cleanup br label %.body.thread -17: ; preds = %2 - %18 = getelementptr inbounds i8, ptr %1, i64 16 - %19 = load i64, ptr %18, align 8 +21: ; preds = %13 + %22 = getelementptr inbounds i8, ptr %1, i64 16 + %23 = load i64, ptr %22, align 8, !noundef !4 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) - store i64 %19, ptr %10, align 8 + store i64 %23, ptr %10, align 8 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) store ptr %10, ptr %8, align 8 - %20 = getelementptr inbounds i8, ptr %8, i64 8 - store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17he756d3674ca19dc2E", ptr %20, align 8 + %24 = getelementptr inbounds i8, ptr %8, i64 8 + store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17he756d3674ca19dc2E", ptr %24, align 8 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %6), !noalias !38 store ptr @anon.a4f79ad12e064e7bfefb591ecc2ffa41.28, ptr %6, align 8, !noalias !49 %.sroa.5.0..sroa_idx = getelementptr inbounds i8, ptr %6, i64 8 @@ -403,9 +406,9 @@ define hidden void @_ZN10grep_regex5error5Error5regex17h793efd7e76319135E(ptr no %.sroa.10.0..sroa_idx = getelementptr inbounds i8, ptr %6, i64 32 store ptr null, ptr %.sroa.10.0..sroa_idx, align 8, !noalias !49 invoke void @_ZN5alloc3fmt6format12format_inner17h8acc7e10788d82b9E(ptr noalias nocapture noundef nonnull sret({ { { i64, ptr, {} }, i64 } }) align 8 dereferenceable(24) %9, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %6) - to label %.critedge unwind label %.body.thread16 + to label %.critedge unwind label %.body.thread15 -.critedge: ; preds = %17 +.critedge: ; preds = %21 call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %6), !noalias !38 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) %.sroa.2.8..sroa_idx = getelementptr inbounds i8, ptr %.sroa.2, i64 7 @@ -414,9 +417,9 @@ define hidden void @_ZN10grep_regex5error5Error5regex17h793efd7e76319135E(ptr no %.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 1 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(31) %.sroa.2.0..sroa_idx, ptr noundef nonnull align 1 dereferenceable(31) %.sroa.2, i64 31, i1 false) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) - br label %36 + br label %40 -21: ; preds = %16 +25: ; preds = %2 tail call void @llvm.experimental.noalias.scope.decl(metadata !50) call void @llvm.lifetime.start.p0(i64 31, ptr nonnull %.sroa.4.i) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %.sroa.0.i) @@ -427,46 +430,46 @@ define hidden void @_ZN10grep_regex5error5Error5regex17h793efd7e76319135E(ptr no %.sroa.5.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %5, i64 16 store i64 0, ptr %.sroa.5.0..sroa_idx.i.i, align 8, !noalias !53 call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %4), !noalias !53 - %22 = getelementptr inbounds i8, ptr %4, i64 52 - store i32 0, ptr %22, align 4, !noalias !53 - %23 = getelementptr inbounds i8, ptr %4, i64 48 - store i32 32, ptr %23, align 8, !noalias !53 - %24 = getelementptr inbounds i8, ptr %4, i64 56 - store i8 3, ptr %24, align 8, !noalias !53 + %26 = getelementptr inbounds i8, ptr %4, i64 52 + store i32 0, ptr %26, align 4, !noalias !53 + %27 = getelementptr inbounds i8, ptr %4, i64 48 + store i32 32, ptr %27, align 8, !noalias !53 + %28 = getelementptr inbounds i8, ptr %4, i64 56 + store i8 3, ptr %28, align 8, !noalias !53 store i64 0, ptr %4, align 8, !noalias !53 - %25 = getelementptr inbounds i8, ptr %4, i64 16 - store i64 0, ptr %25, align 8, !noalias !53 - %26 = getelementptr inbounds i8, ptr %4, i64 32 - store ptr %5, ptr %26, align 8, !noalias !53 - %27 = getelementptr inbounds i8, ptr %4, i64 40 - store ptr @anon.3c71ad614f1aca72cb4077cd0008e097.3.llvm.33321315554386762, ptr %27, align 8, !noalias !53 - %28 = invoke noundef zeroext i1 @"_ZN65_$LT$regex_syntax..error..Error$u20$as$u20$core..fmt..Display$GT$3fmt17h2e486e3db68d396eE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(128) %1, ptr noalias noundef nonnull align 8 dereferenceable(64) %4) - to label %"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h75176720e04ffaaaE.exit.i.i" unwind label %29, !noalias !53 - -29: ; preds = %31, %21 - %30 = landingpad { ptr, i32 } + %29 = getelementptr inbounds i8, ptr %4, i64 16 + store i64 0, ptr %29, align 8, !noalias !53 + %30 = getelementptr inbounds i8, ptr %4, i64 32 + store ptr %5, ptr %30, align 8, !noalias !53 + %31 = getelementptr inbounds i8, ptr %4, i64 40 + store ptr @anon.3c71ad614f1aca72cb4077cd0008e097.3.llvm.33321315554386762, ptr %31, align 8, !noalias !53 + %32 = invoke noundef zeroext i1 @"_ZN65_$LT$regex_syntax..error..Error$u20$as$u20$core..fmt..Display$GT$3fmt17h2e486e3db68d396eE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(128) %1, ptr noalias noundef nonnull align 8 dereferenceable(64) %4) + to label %"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h75176720e04ffaaaE.exit.i.i" unwind label %33, !noalias !53 + +33: ; preds = %35, %25 + %34 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hd7ba341d4f3346b7E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %5) #11 - to label %.body.thread unwind label %32, !noalias !53 + to label %.body.thread unwind label %36, !noalias !53 -"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h75176720e04ffaaaE.exit.i.i": ; preds = %21 +"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h75176720e04ffaaaE.exit.i.i": ; preds = %25 call void @llvm.lifetime.start.p0(i64 0, ptr nonnull %3), !noalias !53 - br i1 %28, label %31, label %.thread + br i1 %32, label %35, label %.thread18 -31: ; preds = %"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h75176720e04ffaaaE.exit.i.i" +35: ; preds = %"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h75176720e04ffaaaE.exit.i.i" invoke void @_ZN4core6result13unwrap_failed17hff299ec748d62aabE(ptr noalias noundef nonnull readonly align 1 @anon.3c71ad614f1aca72cb4077cd0008e097.5.llvm.33321315554386762, i64 noundef 55, ptr noundef nonnull align 1 %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.3c71ad614f1aca72cb4077cd0008e097.23.llvm.33321315554386762, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.3c71ad614f1aca72cb4077cd0008e097.7.llvm.33321315554386762) #12 - to label %.noexc.i.i unwind label %29, !noalias !53 + to label %.noexc.i.i unwind label %33, !noalias !53 -.noexc.i.i: ; preds = %31 +.noexc.i.i: ; preds = %35 unreachable -32: ; preds = %29 - %33 = landingpad { ptr, i32 } +36: ; preds = %33 + %37 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #13, !noalias !53 unreachable -.thread: ; preds = %"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h75176720e04ffaaaE.exit.i.i" +.thread18: ; preds = %"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h75176720e04ffaaaE.exit.i.i" call void @llvm.lifetime.end.p0(i64 0, ptr nonnull %3), !noalias !53 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0.i, ptr noundef nonnull align 8 dereferenceable(24) %5, i64 24, i1 false), !noalias !58 call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %4), !noalias !53 @@ -478,32 +481,32 @@ define hidden void @_ZN10grep_regex5error5Error5regex17h793efd7e76319135E(ptr no %.sroa.4.0..sroa_idx.i = getelementptr inbounds i8, ptr %0, i64 1 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(31) %.sroa.4.0..sroa_idx.i, ptr noundef nonnull align 1 dereferenceable(31) %.sroa.4.i, i64 31, i1 false), !noalias !60 call void @llvm.lifetime.end.p0(i64 31, ptr nonnull %.sroa.4.i) - br label %36 + br label %40 -34: ; preds = %16 +38: ; preds = %13 call void @llvm.lifetime.start.p0(i64 136, ptr nonnull %7) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(136) %7, ptr noundef nonnull align 8 dereferenceable(136) %1, i64 136, i1 false) call void @_ZN10grep_regex5error5Error7generic17hcff57281da312df0E(ptr noalias nocapture noundef nonnull sret({ { i8, [31 x i8] } }) align 8 dereferenceable(32) %0, ptr noalias nocapture noundef nonnull align 8 dereferenceable(136) %7) call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %7) - br label %35 + br label %39 -35: ; preds = %34, %36 +39: ; preds = %38, %40 ret void -36: ; preds = %.thread, %.critedge +40: ; preds = %.thread18, %.critedge call void @"_ZN4core3ptr64drop_in_place$LT$regex_automata..meta..error..BuildErrorKind$GT$17h3c3a32abb36cd0efE.llvm.8519985026491776260"(ptr noalias noundef nonnull align 8 dereferenceable(136) %1) - br label %35 + br label %39 "_ZN4core3ptr60drop_in_place$LT$regex_automata..meta..error..BuildError$GT$17h5777ba8215d729f7E.exit": ; preds = %.body.thread - resume { ptr, i32 } %eh.lpad-body15 + resume { ptr, i32 } %eh.lpad-body14 -.body.thread: ; preds = %29, %.body.thread16 - %eh.lpad-body15 = phi { ptr, i32 } [ %lpad.thr_comm, %.body.thread16 ], [ %30, %29 ] +.body.thread: ; preds = %33, %.body.thread15 + %eh.lpad-body14 = phi { ptr, i32 } [ %lpad.thr_comm, %.body.thread15 ], [ %34, %33 ] invoke void @"_ZN4core3ptr64drop_in_place$LT$regex_automata..meta..error..BuildErrorKind$GT$17h3c3a32abb36cd0efE.llvm.8519985026491776260"(ptr noalias noundef nonnull align 8 dereferenceable(136) %1) - to label %"_ZN4core3ptr60drop_in_place$LT$regex_automata..meta..error..BuildError$GT$17h5777ba8215d729f7E.exit" unwind label %37 + to label %"_ZN4core3ptr60drop_in_place$LT$regex_automata..meta..error..BuildError$GT$17h5777ba8215d729f7E.exit" unwind label %41 -37: ; preds = %.body.thread - %38 = landingpad { ptr, i32 } +41: ; preds = %.body.thread + %42 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #13 unreachable diff --git a/bench/ripgrep-rs/optimized/w48b1qsmd8jodkv.ll b/bench/ripgrep-rs/optimized/w48b1qsmd8jodkv.ll index 71cae2bfffd..a33c53feea6 100644 --- a/bench/ripgrep-rs/optimized/w48b1qsmd8jodkv.ll +++ b/bench/ripgrep-rs/optimized/w48b1qsmd8jodkv.ll @@ -398,84 +398,84 @@ define internal noundef zeroext i1 @"_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug %11 = load i64, ptr %10, align 8, !range !57, !alias.scope !54, !noalias !58, !noundef !7 %12 = add i64 %11, 9223372036854775807 %13 = icmp ult i64 %12, 7 - %14 = xor i64 %11, -9223372036854775808 + %14 = and i64 %11, 7 %15 = select i1 %13, i64 %14, i64 0 - switch i64 %15, label %16 [ - i64 0, label %17 - i64 1, label %19 - i64 2, label %22 - i64 3, label %24 - i64 4, label %28 - i64 5, label %32 - i64 6, label %35 - i64 7, label %38 + switch i64 %15, label %default.unreachable [ + i64 0, label %16 + i64 1, label %18 + i64 2, label %21 + i64 3, label %23 + i64 4, label %27 + i64 5, label %31 + i64 6, label %34 + i64 7, label %37 ] -16: ; preds = %2 +default.unreachable: ; preds = %2 unreachable -17: ; preds = %2 +16: ; preds = %2 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9), !noalias !60 store ptr %10, ptr %9, align 8, !noalias !60 - %18 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17hfe85b0e3bfc75452E(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.41, i64 noundef 6, ptr noundef nonnull align 1 %9, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d03df4cb5b8a134a5912212cfb6ef05b.45) + %17 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17hfe85b0e3bfc75452E(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.41, i64 noundef 6, ptr noundef nonnull align 1 %9, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d03df4cb5b8a134a5912212cfb6ef05b.45) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9), !noalias !60 br label %"_ZN89_$LT$regex_automata..nfa..thompson..error..BuildErrorKind$u20$as$u20$core..fmt..Debug$GT$3fmt17hb94a69749bc23255E.exit" -19: ; preds = %2 +18: ; preds = %2 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8), !noalias !60 - %20 = getelementptr inbounds i8, ptr %10, i64 8 - store ptr %20, ptr %8, align 8, !noalias !60 - %21 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17hfe85b0e3bfc75452E(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.56, i64 noundef 8, ptr noundef nonnull align 1 %8, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d03df4cb5b8a134a5912212cfb6ef05b.57) + %19 = getelementptr inbounds i8, ptr %10, i64 8 + store ptr %19, ptr %8, align 8, !noalias !60 + %20 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17hfe85b0e3bfc75452E(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.56, i64 noundef 8, ptr noundef nonnull align 1 %8, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d03df4cb5b8a134a5912212cfb6ef05b.57) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8), !noalias !60 br label %"_ZN89_$LT$regex_automata..nfa..thompson..error..BuildErrorKind$u20$as$u20$core..fmt..Debug$GT$3fmt17hb94a69749bc23255E.exit" -22: ; preds = %2 +21: ; preds = %2 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7), !noalias !60 store ptr %10, ptr %7, align 8, !noalias !60 - %23 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17hfe85b0e3bfc75452E(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.58, i64 noundef 4, ptr noundef nonnull align 1 %7, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d03df4cb5b8a134a5912212cfb6ef05b.59) + %22 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17hfe85b0e3bfc75452E(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.58, i64 noundef 4, ptr noundef nonnull align 1 %7, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d03df4cb5b8a134a5912212cfb6ef05b.59) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7), !noalias !60 br label %"_ZN89_$LT$regex_automata..nfa..thompson..error..BuildErrorKind$u20$as$u20$core..fmt..Debug$GT$3fmt17hb94a69749bc23255E.exit" -24: ; preds = %2 +23: ; preds = %2 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6), !noalias !60 - %25 = getelementptr inbounds i8, ptr %10, i64 16 - store ptr %25, ptr %6, align 8, !noalias !60 - %26 = getelementptr inbounds i8, ptr %10, i64 8 - %27 = call noundef zeroext i1 @_ZN4core3fmt9Formatter26debug_struct_field2_finish17h3f3e3e7d38ec950bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.60, i64 noundef 15, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.61, i64 noundef 5, ptr noundef nonnull readonly align 1 %26, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d03df4cb5b8a134a5912212cfb6ef05b.62, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.63, i64 noundef 5, ptr noundef nonnull align 1 %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d03df4cb5b8a134a5912212cfb6ef05b.21) + %24 = getelementptr inbounds i8, ptr %10, i64 16 + store ptr %24, ptr %6, align 8, !noalias !60 + %25 = getelementptr inbounds i8, ptr %10, i64 8 + %26 = call noundef zeroext i1 @_ZN4core3fmt9Formatter26debug_struct_field2_finish17h3f3e3e7d38ec950bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.60, i64 noundef 15, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.61, i64 noundef 5, ptr noundef nonnull readonly align 1 %25, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d03df4cb5b8a134a5912212cfb6ef05b.62, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.63, i64 noundef 5, ptr noundef nonnull align 1 %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d03df4cb5b8a134a5912212cfb6ef05b.21) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6), !noalias !60 br label %"_ZN89_$LT$regex_automata..nfa..thompson..error..BuildErrorKind$u20$as$u20$core..fmt..Debug$GT$3fmt17hb94a69749bc23255E.exit" -28: ; preds = %2 +27: ; preds = %2 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5), !noalias !60 - %29 = getelementptr inbounds i8, ptr %10, i64 16 - store ptr %29, ptr %5, align 8, !noalias !60 - %30 = getelementptr inbounds i8, ptr %10, i64 8 - %31 = call noundef zeroext i1 @_ZN4core3fmt9Formatter26debug_struct_field2_finish17h3f3e3e7d38ec950bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.64, i64 noundef 13, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.61, i64 noundef 5, ptr noundef nonnull readonly align 1 %30, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d03df4cb5b8a134a5912212cfb6ef05b.62, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.63, i64 noundef 5, ptr noundef nonnull align 1 %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d03df4cb5b8a134a5912212cfb6ef05b.21) + %28 = getelementptr inbounds i8, ptr %10, i64 16 + store ptr %28, ptr %5, align 8, !noalias !60 + %29 = getelementptr inbounds i8, ptr %10, i64 8 + %30 = call noundef zeroext i1 @_ZN4core3fmt9Formatter26debug_struct_field2_finish17h3f3e3e7d38ec950bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.64, i64 noundef 13, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.61, i64 noundef 5, ptr noundef nonnull readonly align 1 %29, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d03df4cb5b8a134a5912212cfb6ef05b.62, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.63, i64 noundef 5, ptr noundef nonnull align 1 %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d03df4cb5b8a134a5912212cfb6ef05b.21) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5), !noalias !60 br label %"_ZN89_$LT$regex_automata..nfa..thompson..error..BuildErrorKind$u20$as$u20$core..fmt..Debug$GT$3fmt17hb94a69749bc23255E.exit" -32: ; preds = %2 +31: ; preds = %2 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4), !noalias !60 - %33 = getelementptr inbounds i8, ptr %10, i64 8 - store ptr %33, ptr %4, align 8, !noalias !60 - %34 = call noundef zeroext i1 @_ZN4core3fmt9Formatter26debug_struct_field1_finish17h5e43d4be3efa18a7E(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.65, i64 noundef 17, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.63, i64 noundef 5, ptr noundef nonnull align 1 %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d03df4cb5b8a134a5912212cfb6ef05b.21) + %32 = getelementptr inbounds i8, ptr %10, i64 8 + store ptr %32, ptr %4, align 8, !noalias !60 + %33 = call noundef zeroext i1 @_ZN4core3fmt9Formatter26debug_struct_field1_finish17h5e43d4be3efa18a7E(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.65, i64 noundef 17, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.63, i64 noundef 5, ptr noundef nonnull align 1 %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d03df4cb5b8a134a5912212cfb6ef05b.21) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4), !noalias !60 br label %"_ZN89_$LT$regex_automata..nfa..thompson..error..BuildErrorKind$u20$as$u20$core..fmt..Debug$GT$3fmt17hb94a69749bc23255E.exit" -35: ; preds = %2 +34: ; preds = %2 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3), !noalias !60 - %36 = getelementptr inbounds i8, ptr %10, i64 8 - store ptr %36, ptr %3, align 8, !noalias !60 - %37 = call noundef zeroext i1 @_ZN4core3fmt9Formatter26debug_struct_field1_finish17h5e43d4be3efa18a7E(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.66, i64 noundef 19, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.67, i64 noundef 5, ptr noundef nonnull align 1 %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d03df4cb5b8a134a5912212cfb6ef05b.68) + %35 = getelementptr inbounds i8, ptr %10, i64 8 + store ptr %35, ptr %3, align 8, !noalias !60 + %36 = call noundef zeroext i1 @_ZN4core3fmt9Formatter26debug_struct_field1_finish17h5e43d4be3efa18a7E(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.66, i64 noundef 19, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.67, i64 noundef 5, ptr noundef nonnull align 1 %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d03df4cb5b8a134a5912212cfb6ef05b.68) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3), !noalias !60 br label %"_ZN89_$LT$regex_automata..nfa..thompson..error..BuildErrorKind$u20$as$u20$core..fmt..Debug$GT$3fmt17hb94a69749bc23255E.exit" -38: ; preds = %2 - %39 = tail call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_str17h614ed3390cd2c9c4E(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.69, i64 noundef 19), !noalias !54 +37: ; preds = %2 + %38 = tail call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_str17h614ed3390cd2c9c4E(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.d03df4cb5b8a134a5912212cfb6ef05b.69, i64 noundef 19), !noalias !54 br label %"_ZN89_$LT$regex_automata..nfa..thompson..error..BuildErrorKind$u20$as$u20$core..fmt..Debug$GT$3fmt17hb94a69749bc23255E.exit" -"_ZN89_$LT$regex_automata..nfa..thompson..error..BuildErrorKind$u20$as$u20$core..fmt..Debug$GT$3fmt17hb94a69749bc23255E.exit": ; preds = %17, %19, %22, %24, %28, %32, %35, %38 - %.0.in.i = phi i1 [ %39, %38 ], [ %37, %35 ], [ %34, %32 ], [ %31, %28 ], [ %27, %24 ], [ %23, %22 ], [ %21, %19 ], [ %18, %17 ] +"_ZN89_$LT$regex_automata..nfa..thompson..error..BuildErrorKind$u20$as$u20$core..fmt..Debug$GT$3fmt17hb94a69749bc23255E.exit": ; preds = %16, %18, %21, %23, %27, %31, %34, %37 + %.0.in.i = phi i1 [ %38, %37 ], [ %36, %34 ], [ %33, %31 ], [ %30, %27 ], [ %26, %23 ], [ %22, %21 ], [ %20, %18 ], [ %17, %16 ] ret i1 %.0.in.i } diff --git a/bench/rocksdb/optimized/manager.cc.ll b/bench/rocksdb/optimized/manager.cc.ll index 5c434fa99a0..5a2c1da7a87 100644 --- a/bench/rocksdb/optimized/manager.cc.ll +++ b/bench/rocksdb/optimized/manager.cc.ll @@ -1261,7 +1261,7 @@ if.else.i: ; preds = %entry br i1 %cmp.i.i.i, label %_ZNK4toku3omtIPNS_8locktreeES2_Lb0EE4sizeEv.exit.thread.thread, label %if.else.i.i _ZNK4toku3omtIPNS_8locktreeES2_Lb0EE4sizeEv.exit.thread.thread: ; preds = %if.else.i - %call335 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef 0) #14 + %call337 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef 0) #14 br label %for.end if.else.i.i: ; preds = %if.else.i @@ -1275,13 +1275,13 @@ _ZNK4toku3omtIPNS_8locktreeES2_Lb0EE4sizeEv.exit.thread: ; preds = %if.else.i.i, %retval.0.i.in = phi ptr [ %num_values.i, %if.then.i ], [ %weight.i.i, %if.else.i.i ] %retval.0.i = load i32, ptr %retval.0.i.in, align 4 %retval.0.i.fr = freeze i32 %retval.0.i - %conv = zext nneg i32 %retval.0.i.fr to i64 + %conv = zext i32 %retval.0.i.fr to i64 %5 = icmp slt i32 %retval.0.i.fr, 0 %6 = shl nuw nsw i64 %conv, 3 %spec.select = select i1 %5, i64 -1, i64 %6 %call3 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %spec.select) #14 - %cmp30 = icmp sgt i32 %retval.0.i.fr, 0 - br i1 %cmp30, label %for.body.lr.ph, label %for.end + %cmp31 = icmp sgt i32 %retval.0.i.fr, 0 + br i1 %cmp31, label %for.body.lr.ph, label %for.end for.body.lr.ph: ; preds = %_ZNK4toku3omtIPNS_8locktreeES2_Lb0EE4sizeEv.exit.thread %d2.i.i = getelementptr inbounds i8, ptr %this, i64 96 @@ -1377,29 +1377,28 @@ _ZNK4toku3omtIPNS_8locktreeES2_Lb0EE5fetchEjPS2_.exit: ; preds = %if.else.i.i10, br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !6 for.end: ; preds = %_ZNK4toku3omtIPNS_8locktreeES2_Lb0EE5fetchEjPS2_.exit, %_ZNK4toku3omtIPNS_8locktreeES2_Lb0EE4sizeEv.exit.thread.thread, %_ZNK4toku3omtIPNS_8locktreeES2_Lb0EE4sizeEv.exit.thread - %cmp3039 = phi i1 [ false, %_ZNK4toku3omtIPNS_8locktreeES2_Lb0EE4sizeEv.exit.thread.thread ], [ false, %_ZNK4toku3omtIPNS_8locktreeES2_Lb0EE4sizeEv.exit.thread ], [ true, %_ZNK4toku3omtIPNS_8locktreeES2_Lb0EE5fetchEjPS2_.exit ] - %call338 = phi ptr [ %call335, %_ZNK4toku3omtIPNS_8locktreeES2_Lb0EE4sizeEv.exit.thread.thread ], [ %call3, %_ZNK4toku3omtIPNS_8locktreeES2_Lb0EE4sizeEv.exit.thread ], [ %call3, %_ZNK4toku3omtIPNS_8locktreeES2_Lb0EE5fetchEjPS2_.exit ] - %retval.0.i2937 = phi i32 [ 0, %_ZNK4toku3omtIPNS_8locktreeES2_Lb0EE4sizeEv.exit.thread.thread ], [ %retval.0.i.fr, %_ZNK4toku3omtIPNS_8locktreeES2_Lb0EE4sizeEv.exit.thread ], [ %retval.0.i.fr, %_ZNK4toku3omtIPNS_8locktreeES2_Lb0EE5fetchEjPS2_.exit ] + %cmp3141 = phi i1 [ false, %_ZNK4toku3omtIPNS_8locktreeES2_Lb0EE4sizeEv.exit.thread.thread ], [ false, %_ZNK4toku3omtIPNS_8locktreeES2_Lb0EE4sizeEv.exit.thread ], [ true, %_ZNK4toku3omtIPNS_8locktreeES2_Lb0EE5fetchEjPS2_.exit ] + %call340 = phi ptr [ %call337, %_ZNK4toku3omtIPNS_8locktreeES2_Lb0EE4sizeEv.exit.thread.thread ], [ %call3, %_ZNK4toku3omtIPNS_8locktreeES2_Lb0EE4sizeEv.exit.thread ], [ %call3, %_ZNK4toku3omtIPNS_8locktreeES2_Lb0EE5fetchEjPS2_.exit ] + %conv3039 = phi i64 [ 0, %_ZNK4toku3omtIPNS_8locktreeES2_Lb0EE4sizeEv.exit.thread.thread ], [ %conv, %_ZNK4toku3omtIPNS_8locktreeES2_Lb0EE4sizeEv.exit.thread ], [ %conv, %_ZNK4toku3omtIPNS_8locktreeES2_Lb0EE5fetchEjPS2_.exit ] %call.i.i14 = tail call i32 @pthread_mutex_unlock(ptr noundef nonnull %m_mutex.i) #13 %23 = tail call { i32, i32 } asm sideeffect "rdtsc", "={ax},={dx},~{dirflag},~{fpsr},~{flags}"() #13, !srcloc !7 - br i1 %cmp3039, label %for.body.lr.ph.i, label %_ZN4toku16locktree_manager18escalate_locktreesEPPNS_8locktreeEi.exit + br i1 %cmp3141, label %for.body.lr.ph.i, label %_ZN4toku16locktree_manager18escalate_locktreesEPPNS_8locktreeEi.exit for.body.lr.ph.i: ; preds = %for.end %m_lt_escalate_callback.i = getelementptr inbounds i8, ptr %this, i64 72 %m_lt_escalate_callback_extra.i = getelementptr inbounds i8, ptr %this, i64 80 - %wide.trip.count.i = zext nneg i32 %retval.0.i2937 to i64 br label %for.body.i for.body.i: ; preds = %for.body.i, %for.body.lr.ph.i %indvars.iv.i = phi i64 [ 0, %for.body.lr.ph.i ], [ %indvars.iv.next.i, %for.body.i ] - %arrayidx.i = getelementptr inbounds ptr, ptr %call338, i64 %indvars.iv.i + %arrayidx.i = getelementptr inbounds ptr, ptr %call340, i64 %indvars.iv.i %24 = load ptr, ptr %arrayidx.i, align 8 %25 = load ptr, ptr %m_lt_escalate_callback.i, align 8 %26 = load ptr, ptr %m_lt_escalate_callback_extra.i, align 8 tail call void @_ZN4toku8locktree8escalateEPFvmPKS0_RKNS_12range_bufferEPvES6_(ptr noundef nonnull align 8 dereferenceable(400) %24, ptr noundef %25, ptr noundef %26) tail call void @_ZN4toku16locktree_manager10release_ltEPNS_8locktreeE(ptr noundef nonnull align 8 dereferenceable(392) %this, ptr noundef %24) %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 - %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %wide.trip.count.i + %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %conv3039 br i1 %exitcond.not.i, label %_ZN4toku16locktree_manager18escalate_locktreesEPPNS_8locktreeEi.exit, label %for.body.i, !llvm.loop !8 _ZN4toku16locktree_manager18escalate_locktreesEPPNS_8locktreeEi.exit: ; preds = %for.body.i, %for.end @@ -1433,7 +1432,7 @@ _ZN4toku16locktree_manager18escalate_locktreesEPPNS_8locktreeEi.exit: ; preds = %m_escalation_latest_result.i = getelementptr inbounds i8, ptr %this, i64 240 store i64 %30, ptr %m_escalation_latest_result.i, align 8 %call.i11.i = tail call i32 @pthread_mutex_unlock(ptr noundef nonnull %m_escalation_mutex.i) #13 - tail call void @_ZdaPv(ptr noundef nonnull %call338) #15 + tail call void @_ZdaPv(ptr noundef nonnull %call340) #15 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %t.i17) %call.i18 = call i32 @gettimeofday(ptr noundef nonnull %t.i17, ptr noundef null) #13 %31 = load i64, ptr %t.i17, align 8 diff --git a/bench/ruby/optimized/ruby.ll b/bench/ruby/optimized/ruby.ll index 34a22c0671c..1f9cdb91362 100644 --- a/bench/ruby/optimized/ruby.ll +++ b/bench/ruby/optimized/ruby.ll @@ -4369,7 +4369,7 @@ sub_1.i: ; preds = %sub_0.i %97 = sext i8 %96 to i32 %98 = add nsw i32 %97, -91 %99 = icmp ult i32 %98, -26 - %100 = or i32 %97, 32 + %100 = or disjoint i32 %97, 32 %101 = select i1 %99, i32 %97, i32 %100 %102 = load i8, ptr %.017.i.i, align 1 %103 = sext i8 %102 to i32 @@ -4391,7 +4391,7 @@ sub_1.i: ; preds = %sub_0.i %110 = sext i8 %109 to i32 %111 = add nsw i32 %110, -91 %112 = icmp ult i32 %111, -26 - %113 = or i32 %110, 32 + %113 = or disjoint i32 %110, 32 %114 = select i1 %112, i32 %110, i32 %113 %115 = load i8, ptr %107, align 1 %116 = sext i8 %115 to i32 @@ -4449,7 +4449,7 @@ name_match_p.exit.thread.i: ; preds = %126, %._crit_edge.i %133 = sext i8 %132 to i32 %134 = add nsw i32 %133, -91 %135 = icmp ult i32 %134, -26 - %136 = or i32 %133, 32 + %136 = or disjoint i32 %133, 32 %137 = select i1 %135, i32 %133, i32 %136 %138 = load i8, ptr %.017.i43.i, align 1 %139 = sext i8 %138 to i32 @@ -4471,7 +4471,7 @@ name_match_p.exit.thread.i: ; preds = %126, %._crit_edge.i %146 = sext i8 %145 to i32 %147 = add nsw i32 %146, -91 %148 = icmp ult i32 %147, -26 - %149 = or i32 %146, 32 + %149 = or disjoint i32 %146, 32 %150 = select i1 %148, i32 %146, i32 %149 %151 = load i8, ptr %143, align 1 %152 = sext i8 %151 to i32 @@ -4529,7 +4529,7 @@ name_match_p.exit.thread.i: ; preds = %126, %._crit_edge.i %170 = sext i8 %169 to i32 %171 = add nsw i32 %170, -91 %172 = icmp ult i32 %171, -26 - %173 = or i32 %170, 32 + %173 = or disjoint i32 %170, 32 %174 = select i1 %172, i32 %170, i32 %173 %175 = load i8, ptr %.017.i62.i, align 1 %176 = sext i8 %175 to i32 @@ -4551,7 +4551,7 @@ name_match_p.exit.thread.i: ; preds = %126, %._crit_edge.i %183 = sext i8 %182 to i32 %184 = add nsw i32 %183, -91 %185 = icmp ult i32 %184, -26 - %186 = or i32 %183, 32 + %186 = or disjoint i32 %183, 32 %187 = select i1 %185, i32 %183, i32 %186 %188 = load i8, ptr %180, align 1 %189 = sext i8 %188 to i32 @@ -6318,7 +6318,7 @@ define internal fastcc range(i32 0, 2) i32 @name_match_p(ptr nocapture noundef r %6 = sext i8 %5 to i32 %7 = add nsw i32 %6, -91 %8 = icmp ult i32 %7, -26 - %9 = or i32 %6, 32 + %9 = or disjoint i32 %6, 32 %10 = select i1 %8, i32 %6, i32 %9 %11 = load i8, ptr %.017, align 1 %12 = sext i8 %11 to i32 @@ -6340,7 +6340,7 @@ define internal fastcc range(i32 0, 2) i32 @name_match_p(ptr nocapture noundef r %19 = sext i8 %18 to i32 %20 = add nsw i32 %19, -91 %21 = icmp ult i32 %20, -26 - %22 = or i32 %19, 32 + %22 = or disjoint i32 %19, 32 %23 = select i1 %21, i32 %19, i32 %22 %24 = load i8, ptr %16, align 1 %25 = sext i8 %24 to i32 @@ -6424,7 +6424,7 @@ define internal void @debug_option(ptr noundef %0, i32 noundef %1, ptr nocapture %8 = sext i8 %7 to i32 %9 = add nsw i32 %8, -91 %10 = icmp ult i32 %9, -26 - %11 = or i32 %8, 32 + %11 = or disjoint i32 %8, 32 %12 = select i1 %10, i32 %8, i32 %11 %13 = load i8, ptr %.017.i, align 1 %14 = sext i8 %13 to i32 @@ -6446,7 +6446,7 @@ define internal void @debug_option(ptr noundef %0, i32 noundef %1, ptr nocapture %21 = sext i8 %20 to i32 %22 = add nsw i32 %21, -91 %23 = icmp ult i32 %22, -26 - %24 = or i32 %21, 32 + %24 = or disjoint i32 %21, 32 %25 = select i1 %23, i32 %21, i32 %24 %26 = load i8, ptr %18, align 1 %27 = sext i8 %26 to i32 @@ -6568,7 +6568,7 @@ memtermspn.exit: ; preds = %3 %17 = sext i8 %16 to i32 %18 = add nsw i32 %17, -91 %19 = icmp ult i32 %18, -26 - %20 = or i32 %17, 32 + %20 = or disjoint i32 %17, 32 %21 = select i1 %19, i32 %17, i32 %20 %22 = load i8, ptr %.017.i, align 1 %23 = sext i8 %22 to i32 @@ -6590,7 +6590,7 @@ memtermspn.exit: ; preds = %3 %30 = sext i8 %29 to i32 %31 = add nsw i32 %30, -91 %32 = icmp ult i32 %31, -26 - %33 = or i32 %30, 32 + %33 = or disjoint i32 %30, 32 %34 = select i1 %32, i32 %30, i32 %33 %35 = load i8, ptr %27, align 1 %36 = sext i8 %35 to i32 @@ -6661,7 +6661,7 @@ name_match_p.exit.thread.thread: ; preds = %name_match_p.exit.t %60 = sext i8 %59 to i32 %61 = add nsw i32 %60, -91 %62 = icmp ult i32 %61, -26 - %63 = or i32 %60, 32 + %63 = or disjoint i32 %60, 32 %64 = select i1 %62, i32 %60, i32 %63 %65 = load i8, ptr %.017.i94, align 1 %66 = sext i8 %65 to i32 @@ -6683,7 +6683,7 @@ name_match_p.exit.thread.thread: ; preds = %name_match_p.exit.t %73 = sext i8 %72 to i32 %74 = add nsw i32 %73, -91 %75 = icmp ult i32 %74, -26 - %76 = or i32 %73, 32 + %76 = or disjoint i32 %73, 32 %77 = select i1 %75, i32 %73, i32 %76 %78 = load i8, ptr %70, align 1 %79 = sext i8 %78 to i32 @@ -6749,7 +6749,7 @@ name_match_p.exit111: ; preds = %90, %.lr.ph.i106 %101 = sext i8 %100 to i32 %102 = add nsw i32 %101, -91 %103 = icmp ult i32 %102, -26 - %104 = or i32 %101, 32 + %104 = or disjoint i32 %101, 32 %105 = select i1 %103, i32 %101, i32 %104 %106 = load i8, ptr %.017.i113, align 1 %107 = sext i8 %106 to i32 @@ -6771,7 +6771,7 @@ name_match_p.exit111: ; preds = %90, %.lr.ph.i106 %114 = sext i8 %113 to i32 %115 = add nsw i32 %114, -91 %116 = icmp ult i32 %115, -26 - %117 = or i32 %114, 32 + %117 = or disjoint i32 %114, 32 %118 = select i1 %116, i32 %114, i32 %117 %119 = load i8, ptr %111, align 1 %120 = sext i8 %119 to i32 @@ -6837,7 +6837,7 @@ name_match_p.exit130: ; preds = %131, %.lr.ph.i125 %142 = sext i8 %141 to i32 %143 = add nsw i32 %142, -91 %144 = icmp ult i32 %143, -26 - %145 = or i32 %142, 32 + %145 = or disjoint i32 %142, 32 %146 = select i1 %144, i32 %142, i32 %145 %147 = load i8, ptr %.017.i132, align 1 %148 = sext i8 %147 to i32 @@ -6859,7 +6859,7 @@ name_match_p.exit130: ; preds = %131, %.lr.ph.i125 %155 = sext i8 %154 to i32 %156 = add nsw i32 %155, -91 %157 = icmp ult i32 %156, -26 - %158 = or i32 %155, 32 + %158 = or disjoint i32 %155, 32 %159 = select i1 %157, i32 %155, i32 %158 %160 = load i8, ptr %152, align 1 %161 = sext i8 %160 to i32 @@ -6930,7 +6930,7 @@ name_match_p.exit149: ; preds = %172, %.lr.ph.i144 %184 = sext i8 %183 to i32 %185 = add nsw i32 %184, -91 %186 = icmp ult i32 %185, -26 - %187 = or i32 %184, 32 + %187 = or disjoint i32 %184, 32 %188 = select i1 %186, i32 %184, i32 %187 %189 = load i8, ptr %.017.i151, align 1 %190 = sext i8 %189 to i32 @@ -6952,7 +6952,7 @@ name_match_p.exit149: ; preds = %172, %.lr.ph.i144 %197 = sext i8 %196 to i32 %198 = add nsw i32 %197, -91 %199 = icmp ult i32 %198, -26 - %200 = or i32 %197, 32 + %200 = or disjoint i32 %197, 32 %201 = select i1 %199, i32 %197, i32 %200 %202 = load i8, ptr %194, align 1 %203 = sext i8 %202 to i32 @@ -7022,7 +7022,7 @@ name_match_p.exit168.thread: ; preds = %._crit_edge.i154, % %226 = sext i8 %225 to i32 %227 = add nsw i32 %226, -91 %228 = icmp ult i32 %227, -26 - %229 = or i32 %226, 32 + %229 = or disjoint i32 %226, 32 %230 = select i1 %228, i32 %226, i32 %229 %231 = load i8, ptr %.017.i170, align 1 %232 = sext i8 %231 to i32 @@ -7044,7 +7044,7 @@ name_match_p.exit168.thread: ; preds = %._crit_edge.i154, % %239 = sext i8 %238 to i32 %240 = add nsw i32 %239, -91 %241 = icmp ult i32 %240, -26 - %242 = or i32 %239, 32 + %242 = or disjoint i32 %239, 32 %243 = select i1 %241, i32 %239, i32 %242 %244 = load i8, ptr %236, align 1 %245 = sext i8 %244 to i32 @@ -7113,7 +7113,7 @@ name_match_p.exit187.thread: ; preds = %._crit_edge.i173, % %267 = sext i8 %266 to i32 %268 = add nsw i32 %267, -91 %269 = icmp ult i32 %268, -26 - %270 = or i32 %267, 32 + %270 = or disjoint i32 %267, 32 %271 = select i1 %269, i32 %267, i32 %270 %272 = load i8, ptr %.017.i189, align 1 %273 = sext i8 %272 to i32 @@ -7135,7 +7135,7 @@ name_match_p.exit187.thread: ; preds = %._crit_edge.i173, % %280 = sext i8 %279 to i32 %281 = add nsw i32 %280, -91 %282 = icmp ult i32 %281, -26 - %283 = or i32 %280, 32 + %283 = or disjoint i32 %280, 32 %284 = select i1 %282, i32 %280, i32 %283 %285 = load i8, ptr %277, align 1 %286 = sext i8 %285 to i32 @@ -7205,7 +7205,7 @@ name_match_p.exit206.thread: ; preds = %._crit_edge.i192, % %309 = sext i8 %308 to i32 %310 = add nsw i32 %309, -91 %311 = icmp ult i32 %310, -26 - %312 = or i32 %309, 32 + %312 = or disjoint i32 %309, 32 %313 = select i1 %311, i32 %309, i32 %312 %314 = load i8, ptr %.017.i208, align 1 %315 = sext i8 %314 to i32 @@ -7227,7 +7227,7 @@ name_match_p.exit206.thread: ; preds = %._crit_edge.i192, % %322 = sext i8 %321 to i32 %323 = add nsw i32 %322, -91 %324 = icmp ult i32 %323, -26 - %325 = or i32 %322, 32 + %325 = or disjoint i32 %322, 32 %326 = select i1 %324, i32 %322, i32 %325 %327 = load i8, ptr %319, align 1 %328 = sext i8 %327 to i32 @@ -7296,7 +7296,7 @@ name_match_p.exit225.thread: ; preds = %._crit_edge.i211, % %350 = sext i8 %349 to i32 %351 = add nsw i32 %350, -91 %352 = icmp ult i32 %351, -26 - %353 = or i32 %350, 32 + %353 = or disjoint i32 %350, 32 %354 = select i1 %352, i32 %350, i32 %353 %355 = load i8, ptr %.017.i227, align 1 %356 = sext i8 %355 to i32 @@ -7318,7 +7318,7 @@ name_match_p.exit225.thread: ; preds = %._crit_edge.i211, % %363 = sext i8 %362 to i32 %364 = add nsw i32 %363, -91 %365 = icmp ult i32 %364, -26 - %366 = or i32 %363, 32 + %366 = or disjoint i32 %363, 32 %367 = select i1 %365, i32 %363, i32 %366 %368 = load i8, ptr %360, align 1 %369 = sext i8 %368 to i32 @@ -7388,7 +7388,7 @@ name_match_p.exit244.thread: ; preds = %._crit_edge.i230, % %392 = sext i8 %391 to i32 %393 = add nsw i32 %392, -91 %394 = icmp ult i32 %393, -26 - %395 = or i32 %392, 32 + %395 = or disjoint i32 %392, 32 %396 = select i1 %394, i32 %392, i32 %395 %397 = load i8, ptr %.017.i246, align 1 %398 = sext i8 %397 to i32 @@ -7410,7 +7410,7 @@ name_match_p.exit244.thread: ; preds = %._crit_edge.i230, % %405 = sext i8 %404 to i32 %406 = add nsw i32 %405, -91 %407 = icmp ult i32 %406, -26 - %408 = or i32 %405, 32 + %408 = or disjoint i32 %405, 32 %409 = select i1 %407, i32 %405, i32 %408 %410 = load i8, ptr %402, align 1 %411 = sext i8 %410 to i32 @@ -7497,7 +7497,7 @@ define internal fastcc void @feature_option(ptr noundef %0, i32 noundef %1, ptr %10 = sext i8 %9 to i32 %11 = add nsw i32 %10, -91 %12 = icmp ult i32 %11, -26 - %13 = or i32 %10, 32 + %13 = or disjoint i32 %10, 32 %14 = select i1 %12, i32 %10, i32 %13 %15 = load i8, ptr %.017.i, align 1 %16 = sext i8 %15 to i32 @@ -7519,7 +7519,7 @@ define internal fastcc void @feature_option(ptr noundef %0, i32 noundef %1, ptr %23 = sext i8 %22 to i32 %24 = add nsw i32 %23, -91 %25 = icmp ult i32 %24, -26 - %26 = or i32 %23, 32 + %26 = or disjoint i32 %23, 32 %27 = select i1 %25, i32 %23, i32 %26 %28 = load i8, ptr %20, align 1 %29 = sext i8 %28 to i32 @@ -7581,7 +7581,7 @@ name_match_p.exit.thread.thread: ; preds = %name_match_p.exit.t %47 = sext i8 %46 to i32 %48 = add nsw i32 %47, -91 %49 = icmp ult i32 %48, -26 - %50 = or i32 %47, 32 + %50 = or disjoint i32 %47, 32 %51 = select i1 %49, i32 %47, i32 %50 %52 = load i8, ptr %.017.i61, align 1 %53 = sext i8 %52 to i32 @@ -7603,7 +7603,7 @@ name_match_p.exit.thread.thread: ; preds = %name_match_p.exit.t %60 = sext i8 %59 to i32 %61 = add nsw i32 %60, -91 %62 = icmp ult i32 %61, -26 - %63 = or i32 %60, 32 + %63 = or disjoint i32 %60, 32 %64 = select i1 %62, i32 %60, i32 %63 %65 = load i8, ptr %57, align 1 %66 = sext i8 %65 to i32 @@ -7660,7 +7660,7 @@ name_match_p.exit.thread.thread: ; preds = %name_match_p.exit.t %83 = sext i8 %82 to i32 %84 = add nsw i32 %83, -91 %85 = icmp ult i32 %84, -26 - %86 = or i32 %83, 32 + %86 = or disjoint i32 %83, 32 %87 = select i1 %85, i32 %83, i32 %86 %88 = load i8, ptr %.017.i80, align 1 %89 = sext i8 %88 to i32 @@ -7682,7 +7682,7 @@ name_match_p.exit.thread.thread: ; preds = %name_match_p.exit.t %96 = sext i8 %95 to i32 %97 = add nsw i32 %96, -91 %98 = icmp ult i32 %97, -26 - %99 = or i32 %96, 32 + %99 = or disjoint i32 %96, 32 %100 = select i1 %98, i32 %96, i32 %99 %101 = load i8, ptr %93, align 1 %102 = sext i8 %101 to i32 @@ -7739,7 +7739,7 @@ name_match_p.exit97.thread: ; preds = %._crit_edge.i83, %1 %118 = sext i8 %117 to i32 %119 = add nsw i32 %118, -91 %120 = icmp ult i32 %119, -26 - %121 = or i32 %118, 32 + %121 = or disjoint i32 %118, 32 %122 = select i1 %120, i32 %118, i32 %121 %123 = load i8, ptr %.017.i99, align 1 %124 = sext i8 %123 to i32 @@ -7761,7 +7761,7 @@ name_match_p.exit97.thread: ; preds = %._crit_edge.i83, %1 %131 = sext i8 %130 to i32 %132 = add nsw i32 %131, -91 %133 = icmp ult i32 %132, -26 - %134 = or i32 %131, 32 + %134 = or disjoint i32 %131, 32 %135 = select i1 %133, i32 %131, i32 %134 %136 = load i8, ptr %128, align 1 %137 = sext i8 %136 to i32 @@ -7818,7 +7818,7 @@ name_match_p.exit97.thread: ; preds = %._crit_edge.i83, %1 %154 = sext i8 %153 to i32 %155 = add nsw i32 %154, -91 %156 = icmp ult i32 %155, -26 - %157 = or i32 %154, 32 + %157 = or disjoint i32 %154, 32 %158 = select i1 %156, i32 %154, i32 %157 %159 = load i8, ptr %.017.i118, align 1 %160 = sext i8 %159 to i32 @@ -7840,7 +7840,7 @@ name_match_p.exit97.thread: ; preds = %._crit_edge.i83, %1 %167 = sext i8 %166 to i32 %168 = add nsw i32 %167, -91 %169 = icmp ult i32 %168, -26 - %170 = or i32 %167, 32 + %170 = or disjoint i32 %167, 32 %171 = select i1 %169, i32 %167, i32 %170 %172 = load i8, ptr %164, align 1 %173 = sext i8 %172 to i32 @@ -7902,7 +7902,7 @@ name_match_p.exit97.thread: ; preds = %._crit_edge.i83, %1 %191 = sext i8 %190 to i32 %192 = add nsw i32 %191, -91 %193 = icmp ult i32 %192, -26 - %194 = or i32 %191, 32 + %194 = or disjoint i32 %191, 32 %195 = select i1 %193, i32 %191, i32 %194 %196 = load i8, ptr %.017.i137, align 1 %197 = sext i8 %196 to i32 @@ -7924,7 +7924,7 @@ name_match_p.exit97.thread: ; preds = %._crit_edge.i83, %1 %204 = sext i8 %203 to i32 %205 = add nsw i32 %204, -91 %206 = icmp ult i32 %205, -26 - %207 = or i32 %204, 32 + %207 = or disjoint i32 %204, 32 %208 = select i1 %206, i32 %204, i32 %207 %209 = load i8, ptr %201, align 1 %210 = sext i8 %209 to i32 @@ -7980,7 +7980,7 @@ name_match_p.exit97.thread: ; preds = %._crit_edge.i83, %1 %226 = sext i8 %225 to i32 %227 = add nsw i32 %226, -91 %228 = icmp ult i32 %227, -26 - %229 = or i32 %226, 32 + %229 = or disjoint i32 %226, 32 %230 = select i1 %228, i32 %226, i32 %229 %231 = load i8, ptr %.017.i156, align 1 %232 = sext i8 %231 to i32 @@ -8002,7 +8002,7 @@ name_match_p.exit97.thread: ; preds = %._crit_edge.i83, %1 %239 = sext i8 %238 to i32 %240 = add nsw i32 %239, -91 %241 = icmp ult i32 %240, -26 - %242 = or i32 %239, 32 + %242 = or disjoint i32 %239, 32 %243 = select i1 %241, i32 %239, i32 %242 %244 = load i8, ptr %236, align 1 %245 = sext i8 %244 to i32 @@ -8067,7 +8067,7 @@ name_match_p.exit97.thread: ; preds = %._crit_edge.i83, %1 %263 = sext i8 %262 to i32 %264 = add nsw i32 %263, -91 %265 = icmp ult i32 %264, -26 - %266 = or i32 %263, 32 + %266 = or disjoint i32 %263, 32 %267 = select i1 %265, i32 %263, i32 %266 %268 = load i8, ptr %.017.i175, align 1 %269 = sext i8 %268 to i32 @@ -8089,7 +8089,7 @@ name_match_p.exit97.thread: ; preds = %._crit_edge.i83, %1 %276 = sext i8 %275 to i32 %277 = add nsw i32 %276, -91 %278 = icmp ult i32 %277, -26 - %279 = or i32 %276, 32 + %279 = or disjoint i32 %276, 32 %280 = select i1 %278, i32 %276, i32 %279 %281 = load i8, ptr %273, align 1 %282 = sext i8 %281 to i32 @@ -8145,7 +8145,7 @@ name_match_p.exit97.thread: ; preds = %._crit_edge.i83, %1 %298 = sext i8 %297 to i32 %299 = add nsw i32 %298, -91 %300 = icmp ult i32 %299, -26 - %301 = or i32 %298, 32 + %301 = or disjoint i32 %298, 32 %302 = select i1 %300, i32 %298, i32 %301 %303 = load i8, ptr %.017.i194, align 1 %304 = sext i8 %303 to i32 @@ -8167,7 +8167,7 @@ name_match_p.exit97.thread: ; preds = %._crit_edge.i83, %1 %311 = sext i8 %310 to i32 %312 = add nsw i32 %311, -91 %313 = icmp ult i32 %312, -26 - %314 = or i32 %311, 32 + %314 = or disjoint i32 %311, 32 %315 = select i1 %313, i32 %311, i32 %314 %316 = load i8, ptr %308, align 1 %317 = sext i8 %316 to i32 @@ -8288,7 +8288,7 @@ memtermspn.exit: ; preds = %10, %12 %27 = sext i8 %26 to i32 %28 = add nsw i32 %27, -91 %29 = icmp ult i32 %28, -26 - %30 = or i32 %27, 32 + %30 = or disjoint i32 %27, 32 %31 = select i1 %29, i32 %27, i32 %30 %32 = load i8, ptr %.017.i, align 1 %33 = sext i8 %32 to i32 @@ -8310,7 +8310,7 @@ memtermspn.exit: ; preds = %10, %12 %40 = sext i8 %39 to i32 %41 = add nsw i32 %40, -91 %42 = icmp ult i32 %41, -26 - %43 = or i32 %40, 32 + %43 = or disjoint i32 %40, 32 %44 = select i1 %42, i32 %40, i32 %43 %45 = load i8, ptr %37, align 1 %46 = sext i8 %45 to i32 diff --git a/bench/ruby/optimized/string.ll b/bench/ruby/optimized/string.ll index 6ad96ab2993..3d91d492dc6 100644 --- a/bench/ruby/optimized/string.ll +++ b/bench/ruby/optimized/string.ll @@ -31146,11 +31146,11 @@ get_encoding.exit.i94: ; preds = %38, %34 %49 = zext i8 %45 to i32 %50 = add nsw i32 %49, -91 %51 = icmp ult i32 %50, -26 - %52 = or i32 %49, 32 + %52 = or disjoint i32 %49, 32 %53 = select i1 %51, i32 %49, i32 %52 %54 = add nsw i32 %48, -91 %55 = icmp ult i32 %54, -26 - %56 = or i32 %48, 32 + %56 = or disjoint i32 %48, 32 %57 = select i1 %55, i32 %48, i32 %56 %.not82 = icmp eq i32 %53, %57 br i1 %.not82, label %.critedge, label %58 @@ -31187,11 +31187,11 @@ get_encoding.exit.i94: ; preds = %38, %34 74: ; preds = %.lr.ph %75 = add nsw i32 %70, -91 %76 = icmp ult i32 %75, -26 - %77 = or i32 %70, 32 + %77 = or disjoint i32 %70, 32 %78 = select i1 %76, i32 %70, i32 %77 %79 = add nsw i32 %71, -91 %80 = icmp ult i32 %79, -26 - %81 = or i32 %71, 32 + %81 = or disjoint i32 %71, 32 %82 = select i1 %80, i32 %71, i32 %81 %.not80 = icmp eq i32 %78, %82 br i1 %.not80, label %._crit_edge, label %83 diff --git a/bench/rust-analyzer-rs/optimized/1cf75p1eybr0uy0c.ll b/bench/rust-analyzer-rs/optimized/1cf75p1eybr0uy0c.ll index a6f2c047f8b..37e2453d21e 100644 --- a/bench/rust-analyzer-rs/optimized/1cf75p1eybr0uy0c.ll +++ b/bench/rust-analyzer-rs/optimized/1cf75p1eybr0uy0c.ll @@ -12750,10 +12750,10 @@ define hidden { i1, i8 } @_ZN4core4iter6traits8iterator12iter_compare17hb3a523cd %45 = phi i32 [ %43, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.i.i.i" ], [ %23, %22 ], [ %32, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit15.i.i.i.i.i" ], [ %20, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit13.i.i.i.i.i" ] %46 = add nsw i32 %45, -65 %.0.i.i.i.i.i = icmp ult i32 %46, 26 - %47 = xor i32 %45, 32 + %47 = or disjoint i32 %45, 32 %.07.i.i.i.i.i = select i1 %.0.i.i.i.i.i, i32 %47, i32 %45 %48 = icmp eq ptr %.sroa.06.0, %3 - br i1 %48, label %.loopexit, label %49 + br i1 %48, label %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit", label %49 49: ; preds = %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.thread.i.i.i" %50 = getelementptr inbounds i8, ptr %.sroa.06.0, i64 1 @@ -12806,17 +12806,17 @@ define hidden { i1, i8 } @_ZN4core4iter6traits8iterator12iter_compare17hb3a523cd %83 = or disjoint i32 %80, %82 %84 = or disjoint i32 %83, %79 %85 = icmp eq i32 %84, 1114112 - br i1 %85, label %.loopexit, label %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit.i.i.i.i.i.i" + br i1 %85, label %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit", label %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit.i.i.i.i.i.i" "_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit.i.i.i.i.i.i": ; preds = %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.i.i.i.i.i.i.i", %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit15.i.i.i.i.i.i.i.i.i", %63, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit13.i.i.i.i.i.i.i.i.i" %.sroa.06.1 = phi ptr [ %50, %63 ], [ %76, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.i.i.i.i.i.i.i" ], [ %66, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit15.i.i.i.i.i.i.i.i.i" ], [ %56, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit13.i.i.i.i.i.i.i.i.i" ] %86 = phi i32 [ %64, %63 ], [ %84, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.i.i.i.i.i.i.i" ], [ %73, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit15.i.i.i.i.i.i.i.i.i" ], [ %61, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit13.i.i.i.i.i.i.i.i.i" ] %87 = add nsw i32 %86, -65 %.0.i.i.i.i.i.i.i.i.i = icmp ult i32 %87, 26 - %88 = xor i32 %86, 32 + %88 = or disjoint i32 %86, 32 %.07.i.i.i.i.i.i.i.i.i = select i1 %.0.i.i.i.i.i.i.i.i.i, i32 %88, i32 %86 %89 = icmp eq i32 %.07.i.i.i.i.i.i.i.i.i, 1114112 - br i1 %89, label %.loopexit, label %90 + br i1 %89, label %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit", label %90 90: ; preds = %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit.i.i.i.i.i.i" %91 = icmp eq i32 %.07.i.i.i.i.i, %.07.i.i.i.i.i.i.i.i.i @@ -12824,7 +12824,7 @@ define hidden { i1, i8 } @_ZN4core4iter6traits8iterator12iter_compare17hb3a523cd "_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.thread8.split.loop.exit20.i.i.i": ; preds = %90 %.0.i.i.i7.i.i.i.le.i.i.i = tail call noundef range(i8 -1, 2) i8 @llvm.ucmp.i8.i32(i32 %.07.i.i.i.i.i, i32 %.07.i.i.i.i.i.i.i.i.i) - br label %.loopexit + br label %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit" 92: ; preds = %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.i.i.i", %"_ZN4core4iter8adapters3map12map_try_fold28_$u7b$$u7b$closure$u7d$$u7d$17hcdd9293affd9e335E.exit.i.i.i" %93 = icmp ne ptr %3, null @@ -12835,74 +12835,55 @@ define hidden { i1, i8 } @_ZN4core4iter6traits8iterator12iter_compare17hb3a523cd 95: ; preds = %92 %96 = load i8, ptr %.sroa.06.0, align 1, !noalias !5311, !noundef !4 %97 = icmp sgt i8 %96, -1 - br i1 %97, label %108, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit13.i.i.i" + br i1 %97, label %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit", label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit13.i.i.i" "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit13.i.i.i": ; preds = %95 %98 = getelementptr inbounds i8, ptr %.sroa.06.0, i64 1 - %99 = and i8 %96, 31 - %100 = zext nneg i8 %99 to i32 - %101 = icmp ne ptr %98, %3 - tail call void @llvm.assume(i1 %101) - %102 = load i8, ptr %98, align 1, !noalias !5311, !noundef !4 - %103 = shl nuw nsw i32 %100, 6 - %104 = and i8 %102, 63 - %105 = zext nneg i8 %104 to i32 - %106 = or disjoint i32 %103, %105 - %107 = icmp ugt i8 %96, -33 - br i1 %107, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit15.i.i.i", label %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit" - -108: ; preds = %95 - %109 = zext nneg i8 %96 to i32 - br label %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit" + %99 = zext i8 %96 to i32 + %100 = icmp ne ptr %98, %3 + tail call void @llvm.assume(i1 %100) + %101 = load i8, ptr %98, align 1, !noalias !5311, !noundef !4 + %102 = and i8 %101, 63 + %103 = zext nneg i8 %102 to i32 + %104 = icmp ugt i8 %96, -33 + br i1 %104, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit15.i.i.i", label %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit" "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit15.i.i.i": ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit13.i.i.i" - %110 = getelementptr inbounds i8, ptr %.sroa.06.0, i64 2 - %111 = icmp ne ptr %110, %3 - tail call void @llvm.assume(i1 %111) - %112 = load i8, ptr %110, align 1, !noalias !5311, !noundef !4 - %113 = shl nuw nsw i32 %105, 6 - %114 = and i8 %112, 63 - %115 = zext nneg i8 %114 to i32 - %116 = or disjoint i32 %113, %115 - %117 = shl nuw nsw i32 %100, 12 - %118 = or disjoint i32 %116, %117 - %119 = icmp ugt i8 %96, -17 - br i1 %119, label %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.i", label %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit" + %105 = getelementptr inbounds i8, ptr %.sroa.06.0, i64 2 + %106 = icmp ne ptr %105, %3 + tail call void @llvm.assume(i1 %106) + %107 = icmp ugt i8 %96, -17 + br i1 %107, label %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.i", label %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit" "_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.i": ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit15.i.i.i" - %120 = getelementptr inbounds i8, ptr %.sroa.06.0, i64 3 - %121 = icmp ne ptr %120, %3 - tail call void @llvm.assume(i1 %121) - %122 = load i8, ptr %120, align 1, !noalias !5311, !noundef !4 - %123 = shl nuw nsw i32 %100, 18 - %124 = and i32 %123, 1835008 - %125 = shl nuw nsw i32 %116, 6 - %126 = and i8 %122, 63 - %127 = zext nneg i8 %126 to i32 - %128 = or disjoint i32 %125, %127 - %129 = or disjoint i32 %128, %124 - %130 = icmp eq i32 %129, 1114112 - br i1 %130, label %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit.thread", label %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit" - -"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit": ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit13.i.i.i", %108, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit15.i.i.i", %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.i" - %131 = phi i32 [ %129, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.i" ], [ %109, %108 ], [ %118, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit15.i.i.i" ], [ %106, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit13.i.i.i" ] - %132 = add nsw i32 %131, -65 - %.0.i.i.i = icmp ult i32 %132, 26 - %133 = xor i32 %131, 32 - %.07.i.i.i = select i1 %.0.i.i.i, i32 %133, i32 %131 - %.07.i.i.i.fr = freeze i32 %.07.i.i.i - %134 = icmp eq i32 %.07.i.i.i.fr, 1114112 - br i1 %134, label %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit.thread", label %.loopexit - -"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit.thread": ; preds = %92, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.i", %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit" - br label %.loopexit + %108 = load i8, ptr %105, align 1, !noalias !5311, !noundef !4 + %109 = and i8 %108, 63 + %110 = zext nneg i8 %109 to i32 + %111 = getelementptr inbounds i8, ptr %.sroa.06.0, i64 3 + %112 = icmp ne ptr %111, %3 + tail call void @llvm.assume(i1 %112) + %113 = load i8, ptr %111, align 1, !noalias !5311, !noundef !4 + %114 = shl nuw nsw i32 %99, 18 + %115 = and i32 %114, 1835008 + %116 = shl nuw nsw i32 %103, 12 + %117 = shl nuw nsw i32 %110, 6 + %118 = or disjoint i32 %117, %116 + %119 = and i8 %113, 63 + %120 = zext nneg i8 %119 to i32 + %121 = or disjoint i32 %118, %120 + %122 = or disjoint i32 %121, %115 + %123 = icmp eq i32 %122, 1114112 + br i1 %123, label %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit.thread", label %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit" + +"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit.thread": ; preds = %92, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.i" + br label %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit" -.loopexit: ; preds = %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.thread.i.i.i", %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.i.i.i.i.i.i.i", %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit.i.i.i.i.i.i", %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.thread8.split.loop.exit20.i.i.i", %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit.thread", %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit" - %.sroa.3.0 = phi i8 [ 0, %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit.thread" ], [ -1, %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit" ], [ %.0.i.i.i7.i.i.i.le.i.i.i, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.thread8.split.loop.exit20.i.i.i" ], [ 1, %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit.i.i.i.i.i.i" ], [ 1, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.i.i.i.i.i.i.i" ], [ 1, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.thread.i.i.i" ] - %.sroa.0.0 = phi i1 [ false, %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit.thread" ], [ false, %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit" ], [ true, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.thread8.split.loop.exit20.i.i.i" ], [ false, %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit.i.i.i.i.i.i" ], [ false, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.i.i.i.i.i.i.i" ], [ false, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.thread.i.i.i" ] - %135 = insertvalue { i1, i8 } poison, i1 %.sroa.0.0, 0 - %136 = insertvalue { i1, i8 } %135, i8 %.sroa.3.0, 1 - ret { i1, i8 } %136 +"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit": ; preds = %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.thread.i.i.i", %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.i.i.i.i.i.i.i", %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit.i.i.i.i.i.i", %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.thread8.split.loop.exit20.i.i.i", %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.i", %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit15.i.i.i", %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit13.i.i.i", %95, %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit.thread" + %.sroa.3.0 = phi i8 [ 0, %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit.thread" ], [ -1, %95 ], [ -1, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit13.i.i.i" ], [ -1, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit15.i.i.i" ], [ -1, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.i" ], [ %.0.i.i.i7.i.i.i.le.i.i.i, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.thread8.split.loop.exit20.i.i.i" ], [ 1, %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit.i.i.i.i.i.i" ], [ 1, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.i.i.i.i.i.i.i" ], [ 1, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.thread.i.i.i" ] + %.sroa.0.0 = phi i1 [ false, %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit.thread" ], [ false, %95 ], [ false, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit13.i.i.i" ], [ false, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit15.i.i.i" ], [ false, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.i" ], [ true, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.thread8.split.loop.exit20.i.i.i" ], [ false, %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit.i.i.i.i.i.i" ], [ false, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.i.i.i.i.i.i.i" ], [ false, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.thread.i.i.i" ] + %124 = insertvalue { i1, i8 } poison, i1 %.sroa.0.0, 0 + %125 = insertvalue { i1, i8 } %124, i8 %.sroa.3.0, 1 + ret { i1, i8 } %125 } ; Function Attrs: inlinehint nonlazybind uwtable diff --git a/bench/rust-analyzer-rs/optimized/k5mtltw7nxmadpl.ll b/bench/rust-analyzer-rs/optimized/k5mtltw7nxmadpl.ll index 7e24a29cafa..2178e57ad98 100644 --- a/bench/rust-analyzer-rs/optimized/k5mtltw7nxmadpl.ll +++ b/bench/rust-analyzer-rs/optimized/k5mtltw7nxmadpl.ll @@ -41201,263 +41201,265 @@ define noundef zeroext i1 @"_ZN68_$LT$rust_analyzer..main_loop..Event$u20$as$u20 switch i64 %21, label %default.unreachable17 [ i64 0, label %23 i64 1, label %26 - i64 2, label %86 - i64 3, label %94 - i64 4, label %96 - i64 5, label %98 + i64 2, label %88 + i64 3, label %96 + i64 4, label %98 + i64 5, label %100 ] 23: ; preds = %2 %24 = load i64, ptr %22, align 8, !range !765, !noundef !4 %25 = icmp eq i64 %24, -9223372036854775805 - br i1 %25, label %29, label %"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit9.thread" + br i1 %25, label %32, label %"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit9.thread" 26: ; preds = %2 %27 = load i64, ptr %22, align 8, !range !7319, !noundef !4 %28 = icmp ult i64 %27, -9223372036854775807 - br i1 %28, label %38, label %55 - -29: ; preds = %23 - %30 = getelementptr inbounds i8, ptr %0, i64 16 - %31 = getelementptr inbounds i8, ptr %0, i64 24 - %.val3 = load ptr, ptr %31, align 8, !nonnull !4, !noundef !4 - %32 = getelementptr inbounds i8, ptr %0, i64 32 - %.val4 = load i64, ptr %32, align 8, !noundef !4 + %29 = and i64 %27, 15 + %30 = icmp eq i64 %29, 0 + %31 = or i1 %28, %30 + br i1 %31, label %41, label %58 + +32: ; preds = %23 + %33 = getelementptr inbounds i8, ptr %0, i64 16 + %34 = getelementptr inbounds i8, ptr %0, i64 24 + %.val3 = load ptr, ptr %34, align 8, !nonnull !4, !noundef !4 + %35 = getelementptr inbounds i8, ptr %0, i64 32 + %.val4 = load i64, ptr %35, align 8, !noundef !4 switch i64 %.val4, label %"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit9.thread" [ i64 20, label %"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit" i64 22, label %"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit9" ] -"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit": ; preds = %29 +"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit": ; preds = %32 %bcmp.i.i = tail call i32 @bcmp(ptr noundef nonnull readonly dereferenceable(20) %.val3, ptr noundef nonnull readonly dereferenceable(20) @anon.91380dbf7fcc3cee666491d632c78d8e.487, i64 20), !alias.scope !7320 - %33 = icmp eq i32 %bcmp.i.i, 0 - br i1 %33, label %35, label %"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit9.thread" + %36 = icmp eq i32 %bcmp.i.i, 0 + br i1 %36, label %38, label %"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit9.thread" -"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit9": ; preds = %29 +"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit9": ; preds = %32 %bcmp.i.i8 = tail call i32 @bcmp(ptr noundef nonnull readonly dereferenceable(22) %.val3, ptr noundef nonnull readonly dereferenceable(22) @anon.91380dbf7fcc3cee666491d632c78d8e.489, i64 22), !alias.scope !7324 - %34 = icmp eq i32 %bcmp.i.i8, 0 - br i1 %34, label %35, label %"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit9.thread" + %37 = icmp eq i32 %bcmp.i.i8, 0 + br i1 %37, label %38, label %"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit9.thread" -35: ; preds = %"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit", %"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit9" +38: ; preds = %"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit", %"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit9" call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19), !noalias !7328 call void @_ZN4core3fmt9Formatter12debug_struct17h3837a5fa9bacb5d1E(ptr noalias nocapture noundef nonnull sret({ ptr, i8, i8, [6 x i8] }) align 8 dereferenceable(16) %19, ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.123, i64 noundef 12), !noalias !7332 - %36 = call noundef align 8 dereferenceable(16) ptr @_ZN4core3fmt8builders11DebugStruct5field17h9485b9119de058a4E(ptr noalias noundef nonnull align 8 dereferenceable(16) %19, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.127.llvm.3663151438746104753, i64 noundef 6, ptr noundef nonnull readonly align 1 %30, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.128) - %37 = call noundef zeroext i1 @_ZN4core3fmt8builders11DebugStruct6finish17h084be9f45499029bE(ptr noalias noundef nonnull align 8 dereferenceable(16) %36) + %39 = call noundef align 8 dereferenceable(16) ptr @_ZN4core3fmt8builders11DebugStruct5field17h9485b9119de058a4E(ptr noalias noundef nonnull align 8 dereferenceable(16) %19, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.127.llvm.3663151438746104753, i64 noundef 6, ptr noundef nonnull readonly align 1 %33, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.128) + %40 = call noundef zeroext i1 @_ZN4core3fmt8builders11DebugStruct6finish17h084be9f45499029bE(ptr noalias noundef nonnull align 8 dereferenceable(16) %39) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19), !noalias !7328 br label %"_ZN61_$LT$lsp_server..msg..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h631c2df5e2055d05E.exit" -"_ZN61_$LT$lsp_server..msg..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h631c2df5e2055d05E.exit": ; preds = %111, %109, %107, %104, %91, %89, %84, %81, %78, %75, %72, %69, %66, %63, %60, %58, %52, %50, %47, %96, %94, %38, %35 - %.0.in = phi i1 [ %97, %96 ], [ %95, %94 ], [ %42, %38 ], [ %37, %35 ], [ %54, %52 ], [ %51, %50 ], [ %49, %47 ], [ %85, %84 ], [ %83, %81 ], [ %80, %78 ], [ %77, %75 ], [ %74, %72 ], [ %71, %69 ], [ %68, %66 ], [ %65, %63 ], [ %62, %60 ], [ %59, %58 ], [ %93, %91 ], [ %90, %89 ], [ %113, %111 ], [ %110, %109 ], [ %108, %107 ], [ %106, %104 ] +"_ZN61_$LT$lsp_server..msg..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h631c2df5e2055d05E.exit": ; preds = %113, %111, %109, %106, %93, %91, %86, %83, %80, %77, %74, %71, %68, %65, %62, %60, %55, %53, %50, %98, %96, %41, %38 + %.0.in = phi i1 [ %99, %98 ], [ %97, %96 ], [ %45, %41 ], [ %40, %38 ], [ %57, %55 ], [ %54, %53 ], [ %52, %50 ], [ %87, %86 ], [ %85, %83 ], [ %82, %80 ], [ %79, %77 ], [ %76, %74 ], [ %73, %71 ], [ %70, %68 ], [ %67, %65 ], [ %64, %62 ], [ %61, %60 ], [ %95, %93 ], [ %92, %91 ], [ %115, %113 ], [ %112, %111 ], [ %110, %109 ], [ %108, %106 ] ret i1 %.0.in -38: ; preds = %26 +41: ; preds = %26 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %20) call void @_ZN4core3fmt9Formatter12debug_struct17h3837a5fa9bacb5d1E(ptr noalias nocapture noundef nonnull sret({ ptr, i8, i8, [6 x i8] }) align 8 dereferenceable(16) %20, ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.121, i64 noundef 8) - %39 = call noundef align 8 dereferenceable(16) ptr @_ZN4core3fmt8builders11DebugStruct5field17h9485b9119de058a4E(ptr noalias noundef nonnull align 8 dereferenceable(16) %20, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.125, i64 noundef 2, ptr noundef nonnull align 1 %22, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.126) - %40 = getelementptr inbounds i8, ptr %0, i64 32 - %41 = call noundef align 8 dereferenceable(16) ptr @_ZN4core3fmt8builders11DebugStruct5field17h9485b9119de058a4E(ptr noalias noundef nonnull align 8 dereferenceable(16) %39, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.135, i64 noundef 5, ptr noundef nonnull align 1 %40, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.491) - %42 = call noundef zeroext i1 @_ZN4core3fmt8builders11DebugStruct6finish17h084be9f45499029bE(ptr noalias noundef nonnull align 8 dereferenceable(16) %41) + %42 = call noundef align 8 dereferenceable(16) ptr @_ZN4core3fmt8builders11DebugStruct5field17h9485b9119de058a4E(ptr noalias noundef nonnull align 8 dereferenceable(16) %20, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.125, i64 noundef 2, ptr noundef nonnull align 1 %22, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.126) + %43 = getelementptr inbounds i8, ptr %0, i64 32 + %44 = call noundef align 8 dereferenceable(16) ptr @_ZN4core3fmt8builders11DebugStruct5field17h9485b9119de058a4E(ptr noalias noundef nonnull align 8 dereferenceable(16) %42, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.135, i64 noundef 5, ptr noundef nonnull align 1 %43, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.491) + %45 = call noundef zeroext i1 @_ZN4core3fmt8builders11DebugStruct6finish17h084be9f45499029bE(ptr noalias noundef nonnull align 8 dereferenceable(16) %44) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) br label %"_ZN61_$LT$lsp_server..msg..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h631c2df5e2055d05E.exit" default.unreachable17: ; preds = %2 unreachable -"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit9.thread": ; preds = %29, %"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit", %"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit9", %23 - %43 = add i64 %24, 9223372036854775807 - %44 = icmp ult i64 %43, 3 - %45 = select i1 %44, i64 %43, i64 1 - switch i64 %45, label %46 [ - i64 0, label %47 - i64 1, label %50 - i64 2, label %52 +"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit9.thread": ; preds = %32, %"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit", %"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit9", %23 + %46 = add i64 %24, 9223372036854775807 + %47 = icmp ult i64 %46, 3 + %48 = select i1 %47, i64 %46, i64 1 + switch i64 %48, label %49 [ + i64 0, label %50 + i64 1, label %53 + i64 2, label %55 ] -46: ; preds = %"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit9.thread" +49: ; preds = %"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit9.thread" unreachable -47: ; preds = %"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit9.thread" +50: ; preds = %"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit9.thread" call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18), !noalias !7333 - %48 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %48, ptr %18, align 8, !noalias !7333 - %49 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.119, i64 noundef 7, ptr noundef nonnull align 1 %18, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.120) + %51 = getelementptr inbounds i8, ptr %0, i64 16 + store ptr %51, ptr %18, align 8, !noalias !7333 + %52 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.119, i64 noundef 7, ptr noundef nonnull align 1 %18, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.120) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18), !noalias !7333 br label %"_ZN61_$LT$lsp_server..msg..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h631c2df5e2055d05E.exit" -50: ; preds = %"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit9.thread" +53: ; preds = %"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit9.thread" call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17), !noalias !7333 store ptr %22, ptr %17, align 8, !noalias !7333 - %51 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.121, i64 noundef 8, ptr noundef nonnull align 1 %17, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.122) + %54 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.121, i64 noundef 8, ptr noundef nonnull align 1 %17, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.122) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17), !noalias !7333 br label %"_ZN61_$LT$lsp_server..msg..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h631c2df5e2055d05E.exit" -52: ; preds = %"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit9.thread" +55: ; preds = %"_ZN77_$LT$alloc..string..String$u20$as$u20$core..cmp..PartialEq$LT$$RF$str$GT$$GT$2eq17hbf10c5827acb7f69E.exit9.thread" call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16), !noalias !7333 - %53 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %53, ptr %16, align 8, !noalias !7333 - %54 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.123, i64 noundef 12, ptr noundef nonnull align 1 %16, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.124) + %56 = getelementptr inbounds i8, ptr %0, i64 16 + store ptr %56, ptr %16, align 8, !noalias !7333 + %57 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.123, i64 noundef 12, ptr noundef nonnull align 1 %16, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.124) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16), !noalias !7333 br label %"_ZN61_$LT$lsp_server..msg..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h631c2df5e2055d05E.exit" -55: ; preds = %26 - %56 = and i64 %27, 9223372036854775807 - switch i64 %56, label %57 [ - i64 0, label %58 - i64 1, label %60 - i64 2, label %63 - i64 3, label %66 - i64 4, label %69 - i64 5, label %72 - i64 6, label %75 - i64 7, label %78 - i64 8, label %81 - i64 9, label %84 +58: ; preds = %26 + switch i64 %29, label %59 [ + i64 0, label %60 + i64 1, label %62 + i64 2, label %65 + i64 3, label %68 + i64 4, label %71 + i64 5, label %74 + i64 6, label %77 + i64 7, label %80 + i64 8, label %83 + i64 9, label %86 ] -57: ; preds = %55 +59: ; preds = %58 unreachable -58: ; preds = %55 +60: ; preds = %58 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15), !noalias !7337 store ptr %22, ptr %15, align 8, !noalias !7337 - %59 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.121, i64 noundef 8, ptr noundef nonnull align 1 %15, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.122) + %61 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.121, i64 noundef 8, ptr noundef nonnull align 1 %15, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.122) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15), !noalias !7337 br label %"_ZN61_$LT$lsp_server..msg..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h631c2df5e2055d05E.exit" -60: ; preds = %55 +62: ; preds = %58 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14), !noalias !7337 - %61 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %61, ptr %14, align 8, !noalias !7337 - %62 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.917, i64 noundef 18, ptr noundef nonnull align 1 %14, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.918) + %63 = getelementptr inbounds i8, ptr %0, i64 16 + store ptr %63, ptr %14, align 8, !noalias !7337 + %64 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.917, i64 noundef 18, ptr noundef nonnull align 1 %14, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.918) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14), !noalias !7337 br label %"_ZN61_$LT$lsp_server..msg..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h631c2df5e2055d05E.exit" -63: ; preds = %55 +65: ; preds = %58 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13), !noalias !7337 - %64 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %64, ptr %13, align 8, !noalias !7337 - %65 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.919, i64 noundef 5, ptr noundef nonnull align 1 %13, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.120) + %66 = getelementptr inbounds i8, ptr %0, i64 16 + store ptr %66, ptr %13, align 8, !noalias !7337 + %67 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.919, i64 noundef 5, ptr noundef nonnull align 1 %13, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.120) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13), !noalias !7337 br label %"_ZN61_$LT$lsp_server..msg..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h631c2df5e2055d05E.exit" -66: ; preds = %55 +68: ; preds = %58 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12), !noalias !7337 - %67 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %67, ptr %12, align 8, !noalias !7337 - %68 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.920, i64 noundef 11, ptr noundef nonnull align 1 %12, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.921) + %69 = getelementptr inbounds i8, ptr %0, i64 16 + store ptr %69, ptr %12, align 8, !noalias !7337 + %70 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.920, i64 noundef 11, ptr noundef nonnull align 1 %12, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.921) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12), !noalias !7337 br label %"_ZN61_$LT$lsp_server..msg..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h631c2df5e2055d05E.exit" -69: ; preds = %55 +71: ; preds = %58 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11), !noalias !7337 - %70 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %70, ptr %11, align 8, !noalias !7337 - %71 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.922, i64 noundef 12, ptr noundef nonnull align 1 %11, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.923) + %72 = getelementptr inbounds i8, ptr %0, i64 16 + store ptr %72, ptr %11, align 8, !noalias !7337 + %73 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.922, i64 noundef 12, ptr noundef nonnull align 1 %11, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.923) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11), !noalias !7337 br label %"_ZN61_$LT$lsp_server..msg..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h631c2df5e2055d05E.exit" -72: ; preds = %55 +74: ; preds = %58 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10), !noalias !7337 - %73 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %73, ptr %10, align 8, !noalias !7337 - %74 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.924, i64 noundef 11, ptr noundef nonnull align 1 %10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.925) + %75 = getelementptr inbounds i8, ptr %0, i64 16 + store ptr %75, ptr %10, align 8, !noalias !7337 + %76 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.924, i64 noundef 11, ptr noundef nonnull align 1 %10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.925) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10), !noalias !7337 br label %"_ZN61_$LT$lsp_server..msg..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h631c2df5e2055d05E.exit" -75: ; preds = %55 +77: ; preds = %58 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9), !noalias !7337 - %76 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %76, ptr %9, align 8, !noalias !7337 - %77 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.926, i64 noundef 14, ptr noundef nonnull align 1 %9, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.927) + %78 = getelementptr inbounds i8, ptr %0, i64 16 + store ptr %78, ptr %9, align 8, !noalias !7337 + %79 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.926, i64 noundef 14, ptr noundef nonnull align 1 %9, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.927) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9), !noalias !7337 br label %"_ZN61_$LT$lsp_server..msg..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h631c2df5e2055d05E.exit" -78: ; preds = %55 +80: ; preds = %58 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8), !noalias !7337 - %79 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %79, ptr %8, align 8, !noalias !7337 - %80 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.928, i64 noundef 14, ptr noundef nonnull align 1 %8, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.929) + %81 = getelementptr inbounds i8, ptr %0, i64 16 + store ptr %81, ptr %8, align 8, !noalias !7337 + %82 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.928, i64 noundef 14, ptr noundef nonnull align 1 %8, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.929) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8), !noalias !7337 br label %"_ZN61_$LT$lsp_server..msg..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h631c2df5e2055d05E.exit" -81: ; preds = %55 +83: ; preds = %58 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7), !noalias !7337 - %82 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %82, ptr %7, align 8, !noalias !7337 - %83 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.930, i64 noundef 14, ptr noundef nonnull align 1 %7, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.931) + %84 = getelementptr inbounds i8, ptr %0, i64 16 + store ptr %84, ptr %7, align 8, !noalias !7337 + %85 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.930, i64 noundef 14, ptr noundef nonnull align 1 %7, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.931) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7), !noalias !7337 br label %"_ZN61_$LT$lsp_server..msg..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h631c2df5e2055d05E.exit" -84: ; preds = %55 - %85 = tail call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_str17h1ee02ebd428ca6deE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.932, i64 noundef 20), !noalias !7341 +86: ; preds = %58 + %87 = tail call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_str17h1ee02ebd428ca6deE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.932, i64 noundef 20), !noalias !7341 br label %"_ZN61_$LT$lsp_server..msg..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h631c2df5e2055d05E.exit" -86: ; preds = %2 +88: ; preds = %2 tail call void @llvm.experimental.noalias.scope.decl(metadata !7342) - %87 = load i64, ptr %22, align 8, !range !147, !alias.scope !7342, !noalias !7345, !noundef !4 - %88 = icmp eq i64 %87, -9223372036854775808 - br i1 %88, label %91, label %89 + %89 = load i64, ptr %22, align 8, !range !147, !alias.scope !7342, !noalias !7345, !noundef !4 + %90 = icmp eq i64 %89, -9223372036854775808 + br i1 %90, label %93, label %91 -89: ; preds = %86 +91: ; preds = %88 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6), !noalias !7347 store ptr %22, ptr %6, align 8, !noalias !7347 - %90 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.914, i64 noundef 14, ptr noundef nonnull align 1 %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.226) + %92 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.914, i64 noundef 14, ptr noundef nonnull align 1 %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.226) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6), !noalias !7347 br label %"_ZN61_$LT$lsp_server..msg..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h631c2df5e2055d05E.exit" -91: ; preds = %86 +93: ; preds = %88 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5), !noalias !7347 - %92 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %92, ptr %5, align 8, !noalias !7347 - %93 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.915, i64 noundef 21, ptr noundef nonnull align 1 %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.916) + %94 = getelementptr inbounds i8, ptr %0, i64 16 + store ptr %94, ptr %5, align 8, !noalias !7347 + %95 = call noundef zeroext i1 @_ZN4core3fmt9Formatter25debug_tuple_field1_finish17h2963dbee503a3d8bE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.915, i64 noundef 21, ptr noundef nonnull align 1 %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.916) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5), !noalias !7347 br label %"_ZN61_$LT$lsp_server..msg..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h631c2df5e2055d05E.exit" -94: ; preds = %2 - %95 = tail call noundef zeroext i1 @"_ZN57_$LT$vfs..loader..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h55185b5ee747952cE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %22, ptr noalias noundef nonnull align 8 dereferenceable(64) %1) - br label %"_ZN61_$LT$lsp_server..msg..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h631c2df5e2055d05E.exit" - 96: ; preds = %2 - %97 = tail call noundef zeroext i1 @"_ZN54_$LT$flycheck..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17hb49b50f5cddfb53cE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(184) %22, ptr noalias noundef nonnull align 8 dereferenceable(64) %1) + %97 = tail call noundef zeroext i1 @"_ZN57_$LT$vfs..loader..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h55185b5ee747952cE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %22, ptr noalias noundef nonnull align 8 dereferenceable(64) %1) br label %"_ZN61_$LT$lsp_server..msg..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h631c2df5e2055d05E.exit" 98: ; preds = %2 + %99 = tail call noundef zeroext i1 @"_ZN54_$LT$flycheck..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17hb49b50f5cddfb53cE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(184) %22, ptr noalias noundef nonnull align 8 dereferenceable(64) %1) + br label %"_ZN61_$LT$lsp_server..msg..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h631c2df5e2055d05E.exit" + +100: ; preds = %2 tail call void @llvm.experimental.noalias.scope.decl(metadata !7348) - %99 = load i64, ptr %22, align 8, !range !1007, !alias.scope !7348, !noalias !7351, !noundef !4 - %100 = icmp slt i64 %99, -9223372036854775805 - %101 = add i64 %99, -9223372036854775807 - %102 = select i1 %100, i64 %101, i64 0 - switch i64 %102, label %103 [ - i64 0, label %104 - i64 1, label %107 - i64 2, label %109 - i64 3, label %111 + %101 = load i64, ptr %22, align 8, !range !1007, !alias.scope !7348, !noalias !7351, !noundef !4 + %102 = icmp slt i64 %101, -9223372036854775805 + %103 = add i64 %101, -9223372036854775807 + %104 = select i1 %102, i64 %103, i64 0 + switch i64 %104, label %105 [ + i64 0, label %106 + i64 1, label %109 + i64 2, label %111 + i64 3, label %113 ] -103: ; preds = %98 +105: ; preds = %100 unreachable -104: ; preds = %98 +106: ; preds = %100 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4), !noalias !7353 - %105 = getelementptr inbounds i8, ptr %0, i64 32 - store ptr %105, ptr %4, align 8, !noalias !7353 - %106 = call noundef zeroext i1 @_ZN4core3fmt9Formatter26debug_struct_field2_finish17hf1936b528a094049E(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.247, i64 noundef 4, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.26.llvm.3663151438746104753, i64 noundef 4, ptr noundef nonnull readonly align 1 %22, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.128, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.248, i64 noundef 5, ptr noundef nonnull align 1 %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.249) + %107 = getelementptr inbounds i8, ptr %0, i64 32 + store ptr %107, ptr %4, align 8, !noalias !7353 + %108 = call noundef zeroext i1 @_ZN4core3fmt9Formatter26debug_struct_field2_finish17hf1936b528a094049E(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.247, i64 noundef 4, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.26.llvm.3663151438746104753, i64 noundef 4, ptr noundef nonnull readonly align 1 %22, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.128, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.248, i64 noundef 5, ptr noundef nonnull align 1 %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.249) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4), !noalias !7353 br label %"_ZN61_$LT$lsp_server..msg..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h631c2df5e2055d05E.exit" -107: ; preds = %98 - %108 = tail call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_str17h1ee02ebd428ca6deE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.250, i64 noundef 5), !noalias !7348 +109: ; preds = %100 + %110 = tail call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_str17h1ee02ebd428ca6deE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.250, i64 noundef 5), !noalias !7348 br label %"_ZN61_$LT$lsp_server..msg..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h631c2df5e2055d05E.exit" -109: ; preds = %98 - %110 = tail call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_str17h1ee02ebd428ca6deE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.251, i64 noundef 8), !noalias !7348 +111: ; preds = %100 + %112 = tail call noundef zeroext i1 @_ZN4core3fmt9Formatter9write_str17h1ee02ebd428ca6deE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.251, i64 noundef 8), !noalias !7348 br label %"_ZN61_$LT$lsp_server..msg..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h631c2df5e2055d05E.exit" -111: ; preds = %98 +113: ; preds = %100 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3), !noalias !7353 - %112 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %112, ptr %3, align 8, !noalias !7353 - %113 = call noundef zeroext i1 @_ZN4core3fmt9Formatter26debug_struct_field1_finish17ha337af91ec8b34c9E(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.252, i64 noundef 6, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.253, i64 noundef 4, ptr noundef nonnull align 1 %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.118) + %114 = getelementptr inbounds i8, ptr %0, i64 16 + store ptr %114, ptr %3, align 8, !noalias !7353 + %115 = call noundef zeroext i1 @_ZN4core3fmt9Formatter26debug_struct_field1_finish17ha337af91ec8b34c9E(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.252, i64 noundef 6, ptr noalias noundef nonnull readonly align 1 @anon.91380dbf7fcc3cee666491d632c78d8e.253, i64 noundef 4, ptr noundef nonnull align 1 %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.91380dbf7fcc3cee666491d632c78d8e.118) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3), !noalias !7353 br label %"_ZN61_$LT$lsp_server..msg..Message$u20$as$u20$core..fmt..Debug$GT$3fmt17h631c2df5e2055d05E.exit" } diff --git a/bench/rust-analyzer-rs/optimized/lt4f7k28xei9pok.ll b/bench/rust-analyzer-rs/optimized/lt4f7k28xei9pok.ll index b69213d10c5..13a9402d84f 100644 --- a/bench/rust-analyzer-rs/optimized/lt4f7k28xei9pok.ll +++ b/bench/rust-analyzer-rs/optimized/lt4f7k28xei9pok.ll @@ -22803,7 +22803,7 @@ define internal fastcc void @"_ZN4core3ptr68drop_in_place$LT$ide_db..imports..im %2 = load i64, ptr %0, align 8, !range !2917, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 2 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 3 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %7 [ i64 0, label %14 @@ -50577,47 +50577,50 @@ define void @_ZN6ide_db7imports13import_assets12ImportAssets25path_fuzzy_name_to %.sroa.0 = alloca { { i64, ptr, {} }, i64 }, align 8 %2 = load i64, ptr %0, align 8, !range !2917, !noundef !4 %3 = icmp ult i64 %2, -9223372036854775807 - %4 = getelementptr inbounds i8, ptr %0, i64 24 - %5 = load i8, ptr %4, align 8, !range !118 - %6 = icmp eq i8 %5, 2 - %or.cond = select i1 %3, i1 %6, i1 false - br i1 %or.cond, label %8, label %7 + %4 = and i64 %2, 3 + %5 = icmp eq i64 %4, 0 + %6 = or i1 %3, %5 + %7 = getelementptr inbounds i8, ptr %0, i64 24 + %8 = load i8, ptr %7, align 8, !range !118 + %9 = icmp eq i8 %8, 2 + %or.cond = select i1 %6, i1 %9, i1 false + br i1 %or.cond, label %11, label %10 -7: ; preds = %14, %1 +10: ; preds = %17, %1 ret void -8: ; preds = %1 - %9 = getelementptr inbounds i8, ptr %0, i64 32 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 24, i1 false) - store i64 0, ptr %9, align 8 +11: ; preds = %1 + %12 = getelementptr inbounds i8, ptr %0, i64 32 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0, ptr noundef nonnull align 8 dereferenceable(24) %12, i64 24, i1 false) + store i64 0, ptr %12, align 8 %.sroa.09.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 40 store ptr inttoptr (i64 1 to ptr), ptr %.sroa.09.sroa.2.0..sroa_idx, align 8 %.sroa.09.sroa.3.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 48 store i64 0, ptr %.sroa.09.sroa.3.0..sroa_idx, align 8 - %10 = getelementptr inbounds i8, ptr %0, i64 25 - %11 = load i8, ptr %10, align 1, !range !1492, !noundef !4 + %13 = getelementptr inbounds i8, ptr %0, i64 25 + %14 = load i8, ptr %13, align 1, !range !1492, !noundef !4 call void @llvm.lifetime.start.p0(i64 30, ptr nonnull %.sroa.6) %.sroa.6.8..sroa_idx = getelementptr inbounds i8, ptr %.sroa.6, i64 6 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(24) %.sroa.6.8..sroa_idx, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0, i64 24, i1 false) - invoke fastcc void @"_ZN4core3ptr65drop_in_place$LT$ide_db..imports..import_assets..NameToImport$GT$17h4e25feaebc85e9b8E"(ptr noalias noundef align 8 dereferenceable(32) %4) - to label %14 unwind label %12 + invoke fastcc void @"_ZN4core3ptr65drop_in_place$LT$ide_db..imports..import_assets..NameToImport$GT$17h4e25feaebc85e9b8E"(ptr noalias noundef align 8 dereferenceable(32) %7) + to label %17 unwind label %15 -12: ; preds = %8 - %13 = landingpad { ptr, i32 } +15: ; preds = %11 + %16 = landingpad { ptr, i32 } cleanup - store i8 1, ptr %4, align 8 - store i8 %11, ptr %10, align 1 + store i8 1, ptr %7, align 8 + store i8 %14, ptr %13, align 1 %.sroa.6.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 26 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(30) %.sroa.6.0..sroa_idx, ptr noundef nonnull align 2 dereferenceable(30) %.sroa.6, i64 30, i1 false) - resume { ptr, i32 } %13 + resume { ptr, i32 } %16 -14: ; preds = %8 - store i8 1, ptr %4, align 8 - store i8 %11, ptr %10, align 1 +17: ; preds = %11 + store i8 1, ptr %7, align 8 + store i8 %14, ptr %13, align 1 %.sroa.6.0..sroa_idx8 = getelementptr inbounds i8, ptr %0, i64 26 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(30) %.sroa.6.0..sroa_idx8, ptr noundef nonnull align 2 dereferenceable(30) %.sroa.6, i64 30, i1 false) call void @llvm.lifetime.end.p0(i64 30, ptr nonnull %.sroa.6) - br label %7 + br label %10 } ; Function Attrs: nonlazybind uwtable @@ -50626,47 +50629,50 @@ define void @_ZN6ide_db7imports13import_assets12ImportAssets24path_fuzzy_name_to %.sroa.0 = alloca { { i64, ptr, {} }, i64 }, align 8 %2 = load i64, ptr %0, align 8, !range !2917, !noundef !4 %3 = icmp ult i64 %2, -9223372036854775807 - %4 = getelementptr inbounds i8, ptr %0, i64 24 - %5 = load i8, ptr %4, align 8, !range !118 - %6 = icmp eq i8 %5, 2 - %or.cond = select i1 %3, i1 %6, i1 false - br i1 %or.cond, label %8, label %7 + %4 = and i64 %2, 3 + %5 = icmp eq i64 %4, 0 + %6 = or i1 %3, %5 + %7 = getelementptr inbounds i8, ptr %0, i64 24 + %8 = load i8, ptr %7, align 8, !range !118 + %9 = icmp eq i8 %8, 2 + %or.cond = select i1 %6, i1 %9, i1 false + br i1 %or.cond, label %11, label %10 -7: ; preds = %14, %1 +10: ; preds = %17, %1 ret void -8: ; preds = %1 - %9 = getelementptr inbounds i8, ptr %0, i64 32 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 24, i1 false) - store i64 0, ptr %9, align 8 +11: ; preds = %1 + %12 = getelementptr inbounds i8, ptr %0, i64 32 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0, ptr noundef nonnull align 8 dereferenceable(24) %12, i64 24, i1 false) + store i64 0, ptr %12, align 8 %.sroa.09.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 40 store ptr inttoptr (i64 1 to ptr), ptr %.sroa.09.sroa.2.0..sroa_idx, align 8 %.sroa.09.sroa.3.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 48 store i64 0, ptr %.sroa.09.sroa.3.0..sroa_idx, align 8 - %10 = getelementptr inbounds i8, ptr %0, i64 25 - %11 = load i8, ptr %10, align 1, !range !1492, !noundef !4 + %13 = getelementptr inbounds i8, ptr %0, i64 25 + %14 = load i8, ptr %13, align 1, !range !1492, !noundef !4 call void @llvm.lifetime.start.p0(i64 30, ptr nonnull %.sroa.6) %.sroa.6.8..sroa_idx = getelementptr inbounds i8, ptr %.sroa.6, i64 6 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(24) %.sroa.6.8..sroa_idx, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0, i64 24, i1 false) - invoke fastcc void @"_ZN4core3ptr65drop_in_place$LT$ide_db..imports..import_assets..NameToImport$GT$17h4e25feaebc85e9b8E"(ptr noalias noundef align 8 dereferenceable(32) %4) - to label %14 unwind label %12 + invoke fastcc void @"_ZN4core3ptr65drop_in_place$LT$ide_db..imports..import_assets..NameToImport$GT$17h4e25feaebc85e9b8E"(ptr noalias noundef align 8 dereferenceable(32) %7) + to label %17 unwind label %15 -12: ; preds = %8 - %13 = landingpad { ptr, i32 } +15: ; preds = %11 + %16 = landingpad { ptr, i32 } cleanup - store i8 0, ptr %4, align 8 - store i8 %11, ptr %10, align 1 + store i8 0, ptr %7, align 8 + store i8 %14, ptr %13, align 1 %.sroa.6.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 26 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(30) %.sroa.6.0..sroa_idx, ptr noundef nonnull align 2 dereferenceable(30) %.sroa.6, i64 30, i1 false) - resume { ptr, i32 } %13 + resume { ptr, i32 } %16 -14: ; preds = %8 - store i8 0, ptr %4, align 8 - store i8 %11, ptr %10, align 1 +17: ; preds = %11 + store i8 0, ptr %7, align 8 + store i8 %14, ptr %13, align 1 %.sroa.6.0..sroa_idx8 = getelementptr inbounds i8, ptr %0, i64 26 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(30) %.sroa.6.0..sroa_idx8, ptr noundef nonnull align 2 dereferenceable(30) %.sroa.6, i64 30, i1 false) call void @llvm.lifetime.end.p0(i64 30, ptr nonnull %.sroa.6) - br label %7 + br label %10 } ; Function Attrs: nonlazybind uwtable @@ -50779,7 +50785,7 @@ _ZN7tracing4span4Span7entered17h75bf4b6a528220f6E.exit: ; preds = %.thread, %38, "_ZN4core3ptr51drop_in_place$LT$hir..semantics..SemanticsScope$GT$17hc22b3468f2b27dddE.exit": ; preds = %.body, %51 %.pn18 = phi { ptr, i32 } [ %52, %51 ], [ %.pn, %.body ] invoke fastcc void @"_ZN4core3ptr47drop_in_place$LT$tracing..span..EnteredSpan$GT$17h849efa82548aed5dE"(ptr noalias noundef align 8 dereferenceable(40) %24) #36 - to label %common.resume unwind label %122 + to label %common.resume unwind label %123 51: ; preds = %"_ZN4core3ptr139drop_in_place$LT$std..collections..hash..set..HashSet$LT$hir..ScopeDef$C$core..hash..BuildHasherDefault$LT$rustc_hash..FxHasher$GT$$GT$$GT$17hc84c59d2aba24413E.exit", %59, %_ZN7tracing4span4Span7entered17h75bf4b6a528220f6E.exit %52 = landingpad { ptr, i32 } @@ -50835,12 +50841,12 @@ _ZN7tracing4span4Span7entered17h75bf4b6a528220f6E.exit: ; preds = %.thread, %38, call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %24) ret void -.body: ; preds = %79, %83, %61, %104 - %.pn = phi { ptr, i32 } [ %105, %104 ], [ %62, %61 ], [ %80, %79 ], [ %.pn.i, %83 ] +.body: ; preds = %79, %83, %61, %105 + %.pn = phi { ptr, i32 } [ %106, %105 ], [ %62, %61 ], [ %80, %79 ], [ %.pn.i, %83 ] invoke void @"_ZN4core3ptr48drop_in_place$LT$hir_def..resolver..Resolver$GT$17hec550e80cf267c9aE.llvm.17272167133303916261"(ptr noalias noundef nonnull align 8 dereferenceable(40) %21) - to label %"_ZN4core3ptr51drop_in_place$LT$hir..semantics..SemanticsScope$GT$17hc22b3468f2b27dddE.exit" unwind label %122 + to label %"_ZN4core3ptr51drop_in_place$LT$hir..semantics..SemanticsScope$GT$17hc22b3468f2b27dddE.exit" unwind label %123 -61: ; preds = %.noexc44, %120, %"_ZN4core3ptr51drop_in_place$LT$hir..semantics..SemanticsScope$GT$17hc22b3468f2b27dddE.exit20.i", %72, %_ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit.thread.i, %_ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit.i, %56 +61: ; preds = %.noexc44, %121, %"_ZN4core3ptr51drop_in_place$LT$hir..semantics..SemanticsScope$GT$17hc22b3468f2b27dddE.exit20.i", %72, %_ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit.thread.i, %_ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit.i, %56 %62 = landingpad { ptr, i32 } cleanup br label %.body @@ -50999,19 +51005,22 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit.th call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) %101 = load i64, ptr %1, align 8, !range !2917, !noundef !4 %102 = icmp ult i64 %101, -9223372036854775807 - br i1 %102, label %103, label %108 + %103 = and i64 %101, 3 + %switch69 = icmp eq i64 %103, 0 + %switch = or i1 %102, %switch69 + br i1 %switch, label %104, label %109 -103: ; preds = %95 +104: ; preds = %95 invoke void @_ZN6ide_db7imports13import_assets23path_applicable_imports17h2d071535baddcd6eE(ptr noalias nocapture noundef nonnull sret({ { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }) align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 %2, i32 noundef %58, ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %1, ptr noalias nocapture noundef nonnull align 8 dereferenceable(40) %17, ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %18) - to label %106 unwind label %104 + to label %107 unwind label %105 -104: ; preds = %106, %108, %103 - %105 = landingpad { ptr, i32 } +105: ; preds = %107, %109, %104 + %106 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr139drop_in_place$LT$std..collections..hash..set..HashSet$LT$hir..ScopeDef$C$core..hash..BuildHasherDefault$LT$rustc_hash..FxHasher$GT$$GT$$GT$17hc84c59d2aba24413E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %18) #36 - to label %.body unwind label %122 + to label %.body unwind label %123 -106: ; preds = %108, %103 +107: ; preds = %109, %104 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %.sroa.012.sroa.0) %.sroa.013.sroa.0.0.copyload = load ptr, ptr %16, align 8, !nonnull !4, !noundef !4 %.sroa.013.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %16, i64 8 @@ -51021,7 +51030,7 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit.th %.sroa.013.sroa.6.0..sroa_idx = getelementptr inbounds i8, ptr %16, i64 24 %.sroa.013.sroa.6.0.copyload = load i64, ptr %.sroa.013.sroa.6.0..sroa_idx, align 8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %.sroa.0.i26), !noalias !9370 - %107 = load <16 x i8>, ptr %.sroa.013.sroa.0.0.copyload, align 16, !noalias !9374 + %108 = load <16 x i8>, ptr %.sroa.013.sroa.0.0.copyload, align 16, !noalias !9374 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7), !noalias !9382 store ptr %.sroa.013.sroa.0.0.copyload, ptr %7, align 8, !noalias !9387 %.sroa.54.0..sroa_idx5.i34 = getelementptr inbounds i8, ptr %7, i64 8 @@ -51031,21 +51040,21 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit.th %.sroa.610.0..sroa_idx11.i36 = getelementptr inbounds i8, ptr %7, i64 24 store i64 %.sroa.013.sroa.6.0.copyload, ptr %.sroa.610.0..sroa_idx11.i36, align 8, !noalias !9387 invoke void @"_ZN9hashbrown3raw21RawTable$LT$T$C$A$GT$15into_allocation17h60f4063d839ac24eE.llvm.17704032041304388331"(ptr noalias nocapture noundef nonnull sret({ i64, [2 x i64] }) align 8 dereferenceable(24) %.sroa.0.i26, ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %7) - to label %110 unwind label %104 + to label %111 unwind label %105 -108: ; preds = %95 +109: ; preds = %95 %.0 = getelementptr inbounds i8, ptr %1, i64 8 - %109 = icmp eq i64 %101, -9223372036854775807 - invoke void @_ZN6ide_db7imports13import_assets22trait_applicable_items17h3a939dea6c4a50c1E(ptr noalias nocapture noundef nonnull sret({ { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }) align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 %2, i32 noundef %58, ptr noalias noundef nonnull readonly align 8 dereferenceable(64) %21, ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %.0, i1 noundef zeroext %109, ptr noalias nocapture noundef nonnull align 8 dereferenceable(40) %17, ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %18) - to label %106 unwind label %104 - -110: ; preds = %106 - %111 = getelementptr inbounds i8, ptr %.sroa.013.sroa.0.0.copyload, i64 16 - %112 = icmp slt <16 x i8> %107, zeroinitializer - %113 = bitcast <16 x i1> %112 to i16 - %114 = xor i16 %113, -1 - %115 = getelementptr i8, ptr %.sroa.013.sroa.0.0.copyload, i64 %.sroa.013.sroa.4.0.copyload - %116 = getelementptr i8, ptr %115, i64 1 + %110 = icmp eq i64 %103, 1 + invoke void @_ZN6ide_db7imports13import_assets22trait_applicable_items17h3a939dea6c4a50c1E(ptr noalias nocapture noundef nonnull sret({ { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }) align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 %2, i32 noundef %58, ptr noalias noundef nonnull readonly align 8 dereferenceable(64) %21, ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %.0, i1 noundef zeroext %110, ptr noalias nocapture noundef nonnull align 8 dereferenceable(40) %17, ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %18) + to label %107 unwind label %105 + +111: ; preds = %107 + %112 = getelementptr inbounds i8, ptr %.sroa.013.sroa.0.0.copyload, i64 16 + %113 = icmp slt <16 x i8> %108, zeroinitializer + %114 = bitcast <16 x i1> %113 to i16 + %115 = xor i16 %114, -1 + %116 = getelementptr i8, ptr %.sroa.013.sroa.0.0.copyload, i64 %.sroa.013.sroa.4.0.copyload + %117 = getelementptr i8, ptr %116, i64 1 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7), !noalias !9382 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.012.sroa.0, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0.i26, i64 24, i1 false) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %.sroa.0.i26), !noalias !9370 @@ -51053,36 +51062,36 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit.th %.sroa.012.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 24 store ptr %.sroa.013.sroa.0.0.copyload, ptr %.sroa.012.sroa.4.0..sroa_idx, align 8 %.sroa.012.sroa.5.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 32 - store ptr %111, ptr %.sroa.012.sroa.5.0..sroa_idx, align 8 + store ptr %112, ptr %.sroa.012.sroa.5.0..sroa_idx, align 8 %.sroa.012.sroa.6.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 40 - store ptr %116, ptr %.sroa.012.sroa.6.0..sroa_idx, align 8 + store ptr %117, ptr %.sroa.012.sroa.6.0..sroa_idx, align 8 %.sroa.012.sroa.7.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 48 - store i16 %114, ptr %.sroa.012.sroa.7.0..sroa_idx, align 8 + store i16 %115, ptr %.sroa.012.sroa.7.0..sroa_idx, align 8 %.sroa.012.sroa.9.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 56 store i64 %.sroa.013.sroa.6.0.copyload, ptr %.sroa.012.sroa.9.0..sroa_idx, align 8 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %.sroa.012.sroa.0) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) - %117 = getelementptr inbounds i8, ptr %18, i64 8 - %118 = load i64, ptr %117, align 8, !alias.scope !9388, !noalias !9401, !noundef !4 - %119 = icmp eq i64 %118, 0 - br i1 %119, label %"_ZN4core3ptr139drop_in_place$LT$std..collections..hash..set..HashSet$LT$hir..ScopeDef$C$core..hash..BuildHasherDefault$LT$rustc_hash..FxHasher$GT$$GT$$GT$17hc84c59d2aba24413E.exit", label %120 + %118 = getelementptr inbounds i8, ptr %18, i64 8 + %119 = load i64, ptr %118, align 8, !alias.scope !9388, !noalias !9401, !noundef !4 + %120 = icmp eq i64 %119, 0 + br i1 %120, label %"_ZN4core3ptr139drop_in_place$LT$std..collections..hash..set..HashSet$LT$hir..ScopeDef$C$core..hash..BuildHasherDefault$LT$rustc_hash..FxHasher$GT$$GT$$GT$17hc84c59d2aba24413E.exit", label %121 -120: ; preds = %110 +121: ; preds = %111 invoke void @_ZN9hashbrown3raw13RawTableInner13drop_elements17hbe73f7a267db6819E.llvm.17704032041304388331(ptr noalias noundef nonnull align 8 dereferenceable(32) %18) to label %.noexc44 unwind label %61 -.noexc44: ; preds = %120 - %121 = getelementptr inbounds i8, ptr %18, i64 32 - invoke void @_ZN9hashbrown3raw13RawTableInner12free_buckets17hc25e2363fe78fcf7E.llvm.17704032041304388331(ptr noalias noundef nonnull align 8 dereferenceable(32) %18, ptr noalias noundef nonnull readonly align 1 %121, i64 noundef 20, i64 noundef 16) +.noexc44: ; preds = %121 + %122 = getelementptr inbounds i8, ptr %18, i64 32 + invoke void @_ZN9hashbrown3raw13RawTableInner12free_buckets17hc25e2363fe78fcf7E.llvm.17704032041304388331(ptr noalias noundef nonnull align 8 dereferenceable(32) %18, ptr noalias noundef nonnull readonly align 1 %122, i64 noundef 20, i64 noundef 16) to label %"_ZN4core3ptr139drop_in_place$LT$std..collections..hash..set..HashSet$LT$hir..ScopeDef$C$core..hash..BuildHasherDefault$LT$rustc_hash..FxHasher$GT$$GT$$GT$17hc84c59d2aba24413E.exit" unwind label %61 -"_ZN4core3ptr139drop_in_place$LT$std..collections..hash..set..HashSet$LT$hir..ScopeDef$C$core..hash..BuildHasherDefault$LT$rustc_hash..FxHasher$GT$$GT$$GT$17hc84c59d2aba24413E.exit": ; preds = %110, %.noexc44 +"_ZN4core3ptr139drop_in_place$LT$std..collections..hash..set..HashSet$LT$hir..ScopeDef$C$core..hash..BuildHasherDefault$LT$rustc_hash..FxHasher$GT$$GT$$GT$17hc84c59d2aba24413E.exit": ; preds = %111, %.noexc44 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) invoke void @"_ZN4core3ptr48drop_in_place$LT$hir_def..resolver..Resolver$GT$17hec550e80cf267c9aE.llvm.17272167133303916261"(ptr noalias noundef nonnull align 8 dereferenceable(40) %21) to label %"_ZN4core3ptr51drop_in_place$LT$hir..semantics..SemanticsScope$GT$17hc22b3468f2b27dddE.exit47" unwind label %51 -122: ; preds = %.body, %104, %"_ZN4core3ptr51drop_in_place$LT$hir..semantics..SemanticsScope$GT$17hc22b3468f2b27dddE.exit" - %123 = landingpad { ptr, i32 } +123: ; preds = %.body, %105, %"_ZN4core3ptr51drop_in_place$LT$hir..semantics..SemanticsScope$GT$17hc22b3468f2b27dddE.exit" + %124 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #35 unreachable diff --git a/bench/rustfmt-rs/optimized/1mznjg1e09hdetpr.ll b/bench/rustfmt-rs/optimized/1mznjg1e09hdetpr.ll index b5368724153..0b37c1162f0 100644 --- a/bench/rustfmt-rs/optimized/1mznjg1e09hdetpr.ll +++ b/bench/rustfmt-rs/optimized/1mznjg1e09hdetpr.ll @@ -600,7 +600,7 @@ define hidden void @_RNvXsR_CsdF516cSs19B_10rustc_spanNtB5_8FileNameNtNtCs9nhK3F %5 = load i64, ptr %1, align 8, !range !14, !noundef !8 %6 = add i64 %5, 9223372036854775807 %7 = icmp ult i64 %6, 8 - %8 = xor i64 %5, -9223372036854775808 + %8 = and i64 %5, 15 %9 = select i1 %7, i64 %8, i64 0 switch i64 %9, label %10 [ i64 0, label %11 @@ -4146,7 +4146,7 @@ define internal fastcc void @"_ZN4core3ptr41drop_in_place$LT$rustc_span..FileNam %4 = load i64, ptr %0, align 8, !range !14, !noundef !8 %5 = add i64 %4, 9223372036854775807 %6 = icmp ult i64 %5, 8 - %7 = xor i64 %4, -9223372036854775808 + %7 = and i64 %4, 15 %8 = select i1 %6, i64 %7, i64 0 switch i64 %8, label %9 [ i64 0, label %10 @@ -22038,7 +22038,7 @@ define void @"_ZN113_$LT$rustfmt_nightly..config..file_lines..FileName$u20$as$u2 %3 = load i64, ptr %1, align 8, !range !14, !noundef !8 %4 = add i64 %3, 9223372036854775807 %5 = icmp ult i64 %4, 8 - %6 = xor i64 %3, -9223372036854775808 + %6 = and i64 %3, 15 %7 = select i1 %5, i64 %6, i64 0 switch i64 %7, label %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h884929514755f779E.exit.thread" [ i64 0, label %8 @@ -22047,7 +22047,7 @@ define void @"_ZN113_$LT$rustfmt_nightly..config..file_lines..FileName$u20$as$u2 "_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h884929514755f779E.exit.thread": ; preds = %10, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h884929514755f779E.exit", %8, %2 invoke void @_ZN4core9panicking5panic17hbd449742545cb8d5E(ptr noalias noundef nonnull readonly align 1 @anon.ac9b56db96481140084a14b3a62254c9.217.llvm.17476841346288807550, i64 noundef 40, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.ac9b56db96481140084a14b3a62254c9.245) #50 - to label %28 unwind label %16 + to label %33 unwind label %18 8: ; preds = %2 %9 = icmp eq i64 %3, -9223372036854775808 @@ -22062,70 +22062,75 @@ define void @"_ZN113_$LT$rustfmt_nightly..config..file_lines..FileName$u20$as$u2 .thread11: ; preds = %8 %13 = getelementptr inbounds i8, ptr %1, i64 8 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %13, i64 24, i1 false) - br label %26 + br label %31 14: ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h884929514755f779E.exit" store i64 -9223372036854775808, ptr %0, align 8 %15 = icmp ult i64 %3, -9223372036854775807 - br i1 %15, label %23, label %25 + %16 = icmp eq i64 %6, 0 + %17 = or i1 %15, %16 + br i1 %17, label %28, label %30 -16: ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h884929514755f779E.exit.thread" - %17 = landingpad { ptr, i32 } +18: ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h884929514755f779E.exit.thread" + %19 = landingpad { ptr, i32 } cleanup - %18 = load i64, ptr %1, align 8, !range !14, !noundef !8 - %19 = icmp ult i64 %18, -9223372036854775807 - br i1 %19, label %29, label %31 + %20 = load i64, ptr %1, align 8, !range !14, !noundef !8 + %21 = icmp ult i64 %20, -9223372036854775807 + %22 = and i64 %20, 15 + %23 = icmp eq i64 %22, 0 + %24 = or i1 %21, %23 + br i1 %24, label %34, label %36 "_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h884929514755f779E.exit": ; preds = %10 - %20 = getelementptr inbounds i8, ptr %1, i64 16 - %21 = load ptr, ptr %20, align 8, !nonnull !8, !noundef !8 - %bcmp.i = tail call i32 @bcmp(ptr noundef nonnull readonly dereferenceable(5) %21, ptr noundef nonnull readonly dereferenceable(5) @anon.ac9b56db96481140084a14b3a62254c9.242, i64 5), !alias.scope !3834 - %22 = icmp eq i32 %bcmp.i, 0 - br i1 %22, label %14, label %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h884929514755f779E.exit.thread" + %25 = getelementptr inbounds i8, ptr %1, i64 16 + %26 = load ptr, ptr %25, align 8, !nonnull !8, !noundef !8 + %bcmp.i = tail call i32 @bcmp(ptr noundef nonnull readonly dereferenceable(5) %26, ptr noundef nonnull readonly dereferenceable(5) @anon.ac9b56db96481140084a14b3a62254c9.242, i64 5), !alias.scope !3834 + %27 = icmp eq i32 %bcmp.i, 0 + br i1 %27, label %14, label %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h884929514755f779E.exit.thread" -23: ; preds = %14 - %24 = icmp eq i64 %3, -9223372036854775808 - br i1 %24, label %26, label %27 +28: ; preds = %14 + %29 = icmp eq i64 %3, -9223372036854775808 + br i1 %29, label %31, label %32 -25: ; preds = %14 +30: ; preds = %14 tail call fastcc void @"_ZN4core3ptr41drop_in_place$LT$rustc_span..FileName$GT$17h3412e72dfa202629E"(ptr noalias noundef align 8 dereferenceable(48) %1) - br label %26 + br label %31 -26: ; preds = %.thread11, %27, %25, %23 +31: ; preds = %.thread11, %32, %30, %28 ret void -27: ; preds = %23 +32: ; preds = %28 tail call fastcc void @"_ZN4core3ptr45drop_in_place$LT$rustc_span..RealFileName$GT$17h44a2681868c9b82bE"(ptr noalias noundef align 8 dereferenceable(48) %1) - br label %26 + br label %31 -28: ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h884929514755f779E.exit.thread" +33: ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h884929514755f779E.exit.thread" unreachable -29: ; preds = %16 - %30 = icmp eq i64 %18, -9223372036854775808 - br i1 %30, label %32, label %34 +34: ; preds = %18 + %35 = icmp eq i64 %20, -9223372036854775808 + br i1 %35, label %37, label %39 -31: ; preds = %16 +36: ; preds = %18 invoke fastcc void @"_ZN4core3ptr41drop_in_place$LT$rustc_span..FileName$GT$17h3412e72dfa202629E"(ptr noalias noundef align 8 dereferenceable(48) %1) #48 - to label %37 unwind label %35 + to label %42 unwind label %40 -32: ; preds = %29 - %33 = getelementptr inbounds i8, ptr %1, i64 8 - invoke void @"_ZN4core3ptr39drop_in_place$LT$std..path..PathBuf$GT$17h2740da28ff94c641E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %33) #48 - to label %37 unwind label %35 +37: ; preds = %34 + %38 = getelementptr inbounds i8, ptr %1, i64 8 + invoke void @"_ZN4core3ptr39drop_in_place$LT$std..path..PathBuf$GT$17h2740da28ff94c641E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %38) #48 + to label %42 unwind label %40 -34: ; preds = %29 +39: ; preds = %34 invoke fastcc void @"_ZN4core3ptr45drop_in_place$LT$rustc_span..RealFileName$GT$17h44a2681868c9b82bE"(ptr noalias noundef align 8 dereferenceable(48) %1) #48 - to label %37 unwind label %35 + to label %42 unwind label %40 -35: ; preds = %34, %32, %31 - %36 = landingpad { ptr, i32 } +40: ; preds = %39, %37, %36 + %41 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer tail call void @_ZN4core9panicking16panic_in_cleanup17h7bbd4fcd6f160435E() #49 unreachable -37: ; preds = %34, %32, %31 - resume { ptr, i32 } %17 +42: ; preds = %39, %37, %36 + resume { ptr, i32 } %19 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/typst-rs/optimized/2d3c2n5y91mtl0x0.ll b/bench/typst-rs/optimized/2d3c2n5y91mtl0x0.ll index 68ec624d1ed..7e8fe9d6e11 100644 --- a/bench/typst-rs/optimized/2d3c2n5y91mtl0x0.ll +++ b/bench/typst-rs/optimized/2d3c2n5y91mtl0x0.ll @@ -140715,7 +140715,7 @@ define hidden noundef range(i8 0, 3) i8 @"_ZN5typst6layout6inline9linebreak12hyp %18 = load i64, ptr %.sroa.0.010.i, align 8, !range !24564, !alias.scope !24565, !noalias !24558, !noundef !7 %19 = add i64 %18, 9223372036854775807 %20 = icmp ult i64 %19, 4 - %21 = xor i64 %18, -9223372036854775808 + %21 = and i64 %18, 7 %22 = select i1 %20, i64 %21, i64 0 switch i64 %22, label %23 [ i64 0, label %24 @@ -140755,56 +140755,59 @@ _ZN5typst6layout6inline4Item3len17h247497bfffa351a7E.llvm.9217674556973953327.ex _ZN5typst6layout6inline11Preparation4find17h09e09b87c2bfb9beE.exit.thread: ; preds = %31, %2 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) - br label %49 + br label %51 33: ; preds = %_ZN5typst6layout6inline4Item3len17h247497bfffa351a7E.llvm.9217674556973953327.exit.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) %34 = load i64, ptr %.sroa.0.010.i, align 8, !range !24564, !alias.scope !24568, !noundef !7 %35 = icmp ugt i64 %34, -9223372036854775808 - br i1 %35, label %49, label %36 + %36 = and i64 %34, 7 + %37 = icmp ne i64 %36, 0 + %.not13 = and i1 %35, %37 + br i1 %.not13, label %51, label %38 -36: ; preds = %33 +38: ; preds = %33 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) - %37 = getelementptr inbounds i8, ptr %.sroa.0.010.i, i64 40 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(24) %37, i64 24, i1 false) + %39 = getelementptr inbounds i8, ptr %.sroa.0.010.i, i64 40 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(24) %39, i64 24, i1 false) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4), !noalias !24571 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(24) %37, i64 24, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(24) %39, i64 24, i1 false) call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %3), !noalias !24574 call void @_ZN5typst11foundations6styles10StyleChain10properties17hafbd6c22163077baE.llvm.4622153547959463051(ptr noalias nocapture noundef nonnull sret({ { i64, [1 x i64] }, { ptr, [8 x i64] } }) align 8 dereferenceable(88) %3, ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 @"_ZN5typst4text1_94_$LT$impl$u20$typst..foundations..element..NativeElement$u20$for$u20$typst..text..TextElem$GT$4data4DATA17h23ec8ea186ccda7fE.llvm.7325118056162354838", i8 noundef 19, ptr noalias noundef readonly align 1 dereferenceable_or_null(1) null), !noalias !24571 - %38 = call noundef align 1 dereferenceable_or_null(1) ptr @_ZN4core4iter8adapters5chain17and_then_or_clear17h1d0446bdd5413977E.llvm.4622153547959463051(ptr noalias noundef nonnull align 8 dereferenceable(16) %3), !noalias !24578 - %39 = getelementptr inbounds i8, ptr %3, i64 16 - %40 = call noundef align 1 dereferenceable_or_null(1) ptr @"_ZN4core6option15Option$LT$T$GT$7or_else17hc199e1365d6705dcE.llvm.4622153547959463051"(ptr noalias noundef readonly align 1 dereferenceable_or_null(1) %38, ptr noalias noundef nonnull align 8 dereferenceable(72) %39), !noalias !24578 - %41 = icmp eq ptr %40, null - br i1 %41, label %_ZN5typst11foundations6styles10StyleChain3get17h5a7a544ce9f998dfE.exit.thread.i, label %_ZN5typst11foundations6styles10StyleChain3get17h5a7a544ce9f998dfE.exit.i + %40 = call noundef align 1 dereferenceable_or_null(1) ptr @_ZN4core4iter8adapters5chain17and_then_or_clear17h1d0446bdd5413977E.llvm.4622153547959463051(ptr noalias noundef nonnull align 8 dereferenceable(16) %3), !noalias !24578 + %41 = getelementptr inbounds i8, ptr %3, i64 16 + %42 = call noundef align 1 dereferenceable_or_null(1) ptr @"_ZN4core6option15Option$LT$T$GT$7or_else17hc199e1365d6705dcE.llvm.4622153547959463051"(ptr noalias noundef readonly align 1 dereferenceable_or_null(1) %40, ptr noalias noundef nonnull align 8 dereferenceable(72) %41), !noalias !24578 + %43 = icmp eq ptr %42, null + br i1 %43, label %_ZN5typst11foundations6styles10StyleChain3get17h5a7a544ce9f998dfE.exit.thread.i, label %_ZN5typst11foundations6styles10StyleChain3get17h5a7a544ce9f998dfE.exit.i -_ZN5typst11foundations6styles10StyleChain3get17h5a7a544ce9f998dfE.exit.thread.i: ; preds = %36 +_ZN5typst11foundations6styles10StyleChain3get17h5a7a544ce9f998dfE.exit.thread.i: ; preds = %38 call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %3), !noalias !24574 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4), !noalias !24571 - br label %44 + br label %46 -_ZN5typst11foundations6styles10StyleChain3get17h5a7a544ce9f998dfE.exit.i: ; preds = %36 - %42 = load i8, ptr %40, align 1, !range !1056, !alias.scope !24579, !noalias !24578, !noundef !7 +_ZN5typst11foundations6styles10StyleChain3get17h5a7a544ce9f998dfE.exit.i: ; preds = %38 + %44 = load i8, ptr %42, align 1, !range !1056, !alias.scope !24579, !noalias !24578, !noundef !7 call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %3), !noalias !24574 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4), !noalias !24571 - %43 = icmp eq i8 %42, 2 - br i1 %43, label %44, label %46 + %45 = icmp eq i8 %44, 2 + br i1 %45, label %46, label %48 -44: ; preds = %_ZN5typst11foundations6styles10StyleChain3get17h5a7a544ce9f998dfE.exit.i, %_ZN5typst11foundations6styles10StyleChain3get17h5a7a544ce9f998dfE.exit.thread.i - %45 = call noundef zeroext i1 @_ZN5typst11foundations6styles10StyleChain3get17h58455a33994e0a25E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 @"_ZN5typst5model3par1_99_$LT$impl$u20$typst..foundations..element..NativeElement$u20$for$u20$typst..model..par..ParElem$GT$4data4DATA17h36ec998510842b56E.llvm.12850028421071809815", i8 noundef 1, ptr noalias noundef readonly align 1 dereferenceable_or_null(1) null) +46: ; preds = %_ZN5typst11foundations6styles10StyleChain3get17h5a7a544ce9f998dfE.exit.i, %_ZN5typst11foundations6styles10StyleChain3get17h5a7a544ce9f998dfE.exit.thread.i + %47 = call noundef zeroext i1 @_ZN5typst11foundations6styles10StyleChain3get17h58455a33994e0a25E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 @"_ZN5typst5model3par1_99_$LT$impl$u20$typst..foundations..element..NativeElement$u20$for$u20$typst..model..par..ParElem$GT$4data4DATA17h36ec998510842b56E.llvm.12850028421071809815", i8 noundef 1, ptr noalias noundef readonly align 1 dereferenceable_or_null(1) null) br label %"_ZN5typst4text1_39_$LT$impl$u20$typst..text..TextElem$GT$12hyphenate_in17hc356e554ca2d706bE.exit" -46: ; preds = %_ZN5typst11foundations6styles10StyleChain3get17h5a7a544ce9f998dfE.exit.i - %47 = trunc i8 %42 to i1 +48: ; preds = %_ZN5typst11foundations6styles10StyleChain3get17h5a7a544ce9f998dfE.exit.i + %49 = trunc i8 %44 to i1 br label %"_ZN5typst4text1_39_$LT$impl$u20$typst..text..TextElem$GT$12hyphenate_in17hc356e554ca2d706bE.exit" -"_ZN5typst4text1_39_$LT$impl$u20$typst..text..TextElem$GT$12hyphenate_in17hc356e554ca2d706bE.exit": ; preds = %44, %46 - %.0.i.i = phi i1 [ %45, %44 ], [ %47, %46 ] +"_ZN5typst4text1_39_$LT$impl$u20$typst..text..TextElem$GT$12hyphenate_in17hc356e554ca2d706bE.exit": ; preds = %46, %48 + %.0.i.i = phi i1 [ %47, %46 ], [ %49, %48 ] call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) - %48 = zext i1 %.0.i.i to i8 - br label %49 + %50 = zext i1 %.0.i.i to i8 + br label %51 -49: ; preds = %_ZN5typst6layout6inline11Preparation4find17h09e09b87c2bfb9beE.exit.thread, %33, %"_ZN5typst4text1_39_$LT$impl$u20$typst..text..TextElem$GT$12hyphenate_in17hc356e554ca2d706bE.exit" - %.1 = phi i8 [ %48, %"_ZN5typst4text1_39_$LT$impl$u20$typst..text..TextElem$GT$12hyphenate_in17hc356e554ca2d706bE.exit" ], [ 2, %33 ], [ 2, %_ZN5typst6layout6inline11Preparation4find17h09e09b87c2bfb9beE.exit.thread ] +51: ; preds = %_ZN5typst6layout6inline11Preparation4find17h09e09b87c2bfb9beE.exit.thread, %33, %"_ZN5typst4text1_39_$LT$impl$u20$typst..text..TextElem$GT$12hyphenate_in17hc356e554ca2d706bE.exit" + %.1 = phi i8 [ %50, %"_ZN5typst4text1_39_$LT$impl$u20$typst..text..TextElem$GT$12hyphenate_in17hc356e554ca2d706bE.exit" ], [ 2, %33 ], [ 2, %_ZN5typst6layout6inline11Preparation4find17h09e09b87c2bfb9beE.exit.thread ] ret i8 %.1 } @@ -140824,7 +140827,7 @@ define hidden noundef range(i8 0, 36) i8 @_ZN5typst6layout6inline9linebreak7lang %trunc.i = trunc i40 %.sroa.03.0.copyload to i1 %extract31 = lshr i40 %.sroa.03.0.copyload, 8 %extract.t32 = trunc nuw i40 %extract31 to i32 - br i1 %trunc.i, label %43, label %11 + br i1 %trunc.i, label %45, label %11 11: ; preds = %2 %12 = getelementptr inbounds i8, ptr %0, i64 104 @@ -140848,7 +140851,7 @@ define hidden noundef range(i8 0, 36) i8 @_ZN5typst6layout6inline9linebreak7lang %19 = load i64, ptr %.sroa.0.010.i.i.i, align 8, !range !24564, !alias.scope !24587, !noalias !24584, !noundef !7 %20 = add i64 %19, 9223372036854775807 %21 = icmp ult i64 %20, 4 - %22 = xor i64 %19, -9223372036854775808 + %22 = and i64 %19, 7 %23 = select i1 %21, i64 %22, i64 0 switch i64 %23, label %24 [ i64 0, label %25 @@ -140894,215 +140897,218 @@ _ZN5typst6layout6inline11Preparation4find17h09e09b87c2bfb9beE.exit.thread.i.i: ; call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) %35 = load i64, ptr %.sroa.0.010.i.i.i, align 8, !range !24564, !alias.scope !24590, !noundef !7 %36 = icmp ugt i64 %35, -9223372036854775808 - br i1 %36, label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit", label %37 + %37 = and i64 %35, 7 + %38 = icmp ne i64 %37, 0 + %.not3.i.i = and i1 %36, %38 + br i1 %.not3.i.i, label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit", label %39 -37: ; preds = %34 +39: ; preds = %34 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) - %38 = getelementptr inbounds i8, ptr %.sroa.0.010.i.i.i, i64 40 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(24) %38, i64 24, i1 false) + %40 = getelementptr inbounds i8, ptr %.sroa.0.010.i.i.i, i64 40 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(24) %40, i64 24, i1 false) call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %4), !noalias !24593 call void @_ZN5typst11foundations6styles10StyleChain10properties17h8be7ba6a562c03d5E.llvm.4622153547959463051(ptr noalias nocapture noundef nonnull sret({ { i64, [1 x i64] }, { ptr, [8 x i64] } }) align 8 dereferenceable(88) %4, ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 @"_ZN5typst4text1_94_$LT$impl$u20$typst..foundations..element..NativeElement$u20$for$u20$typst..text..TextElem$GT$4data4DATA17h23ec8ea186ccda7fE.llvm.7325118056162354838", i8 noundef 15, ptr noalias noundef readonly align 1 dereferenceable_or_null(4) null) - %39 = call noundef align 1 dereferenceable_or_null(4) ptr @_ZN4core4iter8adapters5chain17and_then_or_clear17h5c15a2952d2b4912E.llvm.4622153547959463051(ptr noalias noundef nonnull align 8 dereferenceable(16) %4), !noalias !24599 - %40 = getelementptr inbounds i8, ptr %4, i64 16 - %41 = call noundef align 1 dereferenceable_or_null(4) ptr @"_ZN4core6option15Option$LT$T$GT$7or_else17hcc973a10563c9433E.llvm.4622153547959463051"(ptr noalias noundef readonly align 1 dereferenceable_or_null(4) %39, ptr noalias noundef nonnull align 8 dereferenceable(72) %40), !noalias !24599 - %.not.i.i.i.i = icmp eq ptr %41, null - br i1 %.not.i.i.i.i, label %"_ZN5typst4text1_39_$LT$impl$u20$typst..text..TextElem$GT$7lang_in17h823c2bf91c5289ecE.exit.i.i", label %42 + %41 = call noundef align 1 dereferenceable_or_null(4) ptr @_ZN4core4iter8adapters5chain17and_then_or_clear17h5c15a2952d2b4912E.llvm.4622153547959463051(ptr noalias noundef nonnull align 8 dereferenceable(16) %4), !noalias !24599 + %42 = getelementptr inbounds i8, ptr %4, i64 16 + %43 = call noundef align 1 dereferenceable_or_null(4) ptr @"_ZN4core6option15Option$LT$T$GT$7or_else17hcc973a10563c9433E.llvm.4622153547959463051"(ptr noalias noundef readonly align 1 dereferenceable_or_null(4) %41, ptr noalias noundef nonnull align 8 dereferenceable(72) %42), !noalias !24599 + %.not.i.i.i.i = icmp eq ptr %43, null + br i1 %.not.i.i.i.i, label %"_ZN5typst4text1_39_$LT$impl$u20$typst..text..TextElem$GT$7lang_in17h823c2bf91c5289ecE.exit.i.i", label %44 -42: ; preds = %37 - %.sroa.0.0.copyload.i.i.i.i.i.i = load i32, ptr %41, align 1, !alias.scope !24600, !noalias !24599 +44: ; preds = %39 + %.sroa.0.0.copyload.i.i.i.i.i.i = load i32, ptr %43, align 1, !alias.scope !24600, !noalias !24599 br label %"_ZN5typst4text1_39_$LT$impl$u20$typst..text..TextElem$GT$7lang_in17h823c2bf91c5289ecE.exit.i.i" -"_ZN5typst4text1_39_$LT$impl$u20$typst..text..TextElem$GT$7lang_in17h823c2bf91c5289ecE.exit.i.i": ; preds = %42, %37 - %.sroa.02.0.i.i.i.i.i = phi i32 [ %.sroa.0.0.copyload.i.i.i.i.i.i, %42 ], [ 35679845, %37 ] +"_ZN5typst4text1_39_$LT$impl$u20$typst..text..TextElem$GT$7lang_in17h823c2bf91c5289ecE.exit.i.i": ; preds = %44, %39 + %.sroa.02.0.i.i.i.i.i = phi i32 [ %.sroa.0.0.copyload.i.i.i.i.i.i, %44 ], [ 35679845, %39 ] call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %4), !noalias !24593 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) - br label %43 + br label %45 -43: ; preds = %2, %"_ZN5typst4text1_39_$LT$impl$u20$typst..text..TextElem$GT$7lang_in17h823c2bf91c5289ecE.exit.i.i" +45: ; preds = %2, %"_ZN5typst4text1_39_$LT$impl$u20$typst..text..TextElem$GT$7lang_in17h823c2bf91c5289ecE.exit.i.i" %.sroa.05.0.i.off8.ph = phi i32 [ %.sroa.02.0.i.i.i.i.i, %"_ZN5typst4text1_39_$LT$impl$u20$typst..text..TextElem$GT$7lang_in17h823c2bf91c5289ecE.exit.i.i" ], [ %extract.t32, %2 ] store i32 %.sroa.05.0.i.off8.ph, ptr %8, align 4 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3), !noalias !24605 - %44 = lshr i32 %.sroa.05.0.i.off8.ph, 24 - %45 = zext nneg i32 %44 to i64 - %46 = icmp ugt i32 %.sroa.05.0.i.off8.ph, 67108863 - br i1 %46, label %47, label %_ZN5typst4text4lang4Lang6as_str17hf466e15d647fc2eeE.exit + %46 = lshr i32 %.sroa.05.0.i.off8.ph, 24 + %47 = zext nneg i32 %46 to i64 + %48 = icmp ugt i32 %.sroa.05.0.i.off8.ph, 67108863 + br i1 %48, label %49, label %_ZN5typst4text4lang4Lang6as_str17hf466e15d647fc2eeE.exit -47: ; preds = %43 - call void @_ZN4core5slice5index24slice_end_index_len_fail17h332fde1d59776f82E(i64 noundef %45, i64 noundef 3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.152f57749fcdf0a673d809c4f4545e7f.531.llvm.3683678558897460461) #59, !noalias !24608 +49: ; preds = %45 + call void @_ZN4core5slice5index24slice_end_index_len_fail17h332fde1d59776f82E(i64 noundef %47, i64 noundef 3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.152f57749fcdf0a673d809c4f4545e7f.531.llvm.3683678558897460461) #59, !noalias !24608 unreachable -_ZN5typst4text4lang4Lang6as_str17hf466e15d647fc2eeE.exit: ; preds = %43 - call void @_ZN4core3str8converts9from_utf817h017986454711f672E(ptr noalias nocapture noundef nonnull sret({ i64, [2 x i64] }) align 8 dereferenceable(24) %3, ptr noalias noundef nonnull readonly align 1 %8, i64 noundef %45) - %48 = load i64, ptr %3, align 8, !range !1057, !alias.scope !24611, !noalias !24605, !noundef !7 - %trunc.i.i = trunc nuw i64 %48 to i1 - %49 = getelementptr inbounds i8, ptr %3, i64 8 - %50 = load ptr, ptr %49, align 8, !alias.scope !24611, !noalias !24605, !nonnull !7, !align !1037 - %51 = getelementptr inbounds i8, ptr %3, i64 16 - %52 = load i64, ptr %51, align 8, !alias.scope !24611, !noalias !24605 +_ZN5typst4text4lang4Lang6as_str17hf466e15d647fc2eeE.exit: ; preds = %45 + call void @_ZN4core3str8converts9from_utf817h017986454711f672E(ptr noalias nocapture noundef nonnull sret({ i64, [2 x i64] }) align 8 dereferenceable(24) %3, ptr noalias noundef nonnull readonly align 1 %8, i64 noundef %47) + %50 = load i64, ptr %3, align 8, !range !1057, !alias.scope !24611, !noalias !24605, !noundef !7 + %trunc.i.i = trunc nuw i64 %50 to i1 + %51 = getelementptr inbounds i8, ptr %3, i64 8 + %52 = load ptr, ptr %51, align 8, !alias.scope !24611, !noalias !24605, !nonnull !7, !align !1037 + %53 = getelementptr inbounds i8, ptr %3, i64 16 + %54 = load i64, ptr %53, align 8, !alias.scope !24611, !noalias !24605 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3), !noalias !24605 - %53 = icmp ne i64 %52, 2 - %.not33 = select i1 %trunc.i.i, i1 true, i1 %53 - br i1 %.not33, label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit", label %54 + %55 = icmp ne i64 %54, 2 + %.not33 = select i1 %trunc.i.i, i1 true, i1 %55 + br i1 %.not33, label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit", label %56 -54: ; preds = %_ZN5typst4text4lang4Lang6as_str17hf466e15d647fc2eeE.exit - %.val.i = load i16, ptr %50, align 1, !alias.scope !24614 +56: ; preds = %_ZN5typst4text4lang4Lang6as_str17hf466e15d647fc2eeE.exit + %.val.i = load i16, ptr %52, align 1, !alias.scope !24614 %.sroa.017.0.extract.trunc.i = trunc i16 %.val.i to i8 %.sroa.4.0.extract.shift.i = lshr i16 %.val.i, 8 %.sroa.4.0.extract.trunc.i = trunc nuw i16 %.sroa.4.0.extract.shift.i to i8 switch i8 %.sroa.017.0.extract.trunc.i, label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit" [ - i8 97, label %55 - i8 115, label %57 - i8 98, label %59 - i8 99, label %60 - i8 104, label %61 - i8 100, label %62 - i8 110, label %63 - i8 101, label %64 - i8 102, label %66 - i8 107, label %67 - i8 105, label %68 - i8 108, label %69 - i8 109, label %70 - i8 112, label %72 - i8 114, label %73 - i8 116, label %75 - i8 117, label %76 + i8 97, label %57 + i8 115, label %59 + i8 98, label %61 + i8 99, label %62 + i8 104, label %63 + i8 100, label %64 + i8 110, label %65 + i8 101, label %66 + i8 102, label %68 + i8 107, label %69 + i8 105, label %70 + i8 108, label %71 + i8 109, label %72 + i8 112, label %74 + i8 114, label %75 + i8 116, label %77 + i8 117, label %78 ] -55: ; preds = %54 - %56 = icmp eq i16 %.sroa.4.0.extract.shift.i, 102 - %spec.select.i = select i1 %56, i8 0, i8 35 +57: ; preds = %56 + %58 = icmp eq i16 %.sroa.4.0.extract.shift.i, 102 + %spec.select.i = select i1 %58, i8 0, i8 35 br label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit" -57: ; preds = %54 +59: ; preds = %56 %switch.tableidx = add i8 %.sroa.4.0.extract.trunc.i, -107 - %58 = icmp ult i8 %switch.tableidx, 12 - br i1 %58, label %switch.lookup, label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit" + %60 = icmp ult i8 %switch.tableidx, 12 + br i1 %60, label %switch.lookup, label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit" -59: ; preds = %54 +61: ; preds = %56 %switch.selectcmp.i = icmp eq i16 %.sroa.4.0.extract.shift.i, 103 %switch.select.i = select i1 %switch.selectcmp.i, i8 3, i8 35 %switch.selectcmp18.i = icmp eq i16 %.sroa.4.0.extract.shift.i, 101 %switch.select19.i = select i1 %switch.selectcmp18.i, i8 2, i8 %switch.select.i br label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit" -60: ; preds = %54 +62: ; preds = %56 %switch.selectcmp20.i = icmp eq i16 %.sroa.4.0.extract.shift.i, 115 %switch.select21.i = select i1 %switch.selectcmp20.i, i8 6, i8 35 %switch.selectcmp22.i = icmp eq i16 %.sroa.4.0.extract.shift.i, 97 %switch.select23.i = select i1 %switch.selectcmp22.i, i8 4, i8 %switch.select21.i br label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit" -61: ; preds = %54 +63: ; preds = %56 %switch.selectcmp24.i = icmp eq i16 %.sroa.4.0.extract.shift.i, 117 %switch.select25.i = select i1 %switch.selectcmp24.i, i8 16, i8 35 %switch.selectcmp26.i = icmp eq i16 %.sroa.4.0.extract.shift.i, 114 %switch.select27.i = select i1 %switch.selectcmp26.i, i8 5, i8 %switch.select25.i br label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit" -62: ; preds = %54 +64: ; preds = %56 %switch.selectcmp28.i = icmp eq i16 %.sroa.4.0.extract.shift.i, 101 %switch.select29.i = select i1 %switch.selectcmp28.i, i8 14, i8 35 %switch.selectcmp30.i = icmp eq i16 %.sroa.4.0.extract.shift.i, 97 %switch.select31.i = select i1 %switch.selectcmp30.i, i8 7, i8 %switch.select29.i br label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit" -63: ; preds = %54 +65: ; preds = %56 switch i8 %.sroa.4.0.extract.trunc.i, label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit" [ - i8 108, label %78 - i8 111, label %79 - i8 98, label %80 - i8 110, label %81 + i8 108, label %80 + i8 111, label %81 + i8 98, label %82 + i8 110, label %83 ] -64: ; preds = %54 +66: ; preds = %56 %switch.tableidx46 = add i8 %.sroa.4.0.extract.trunc.i, -108 - %65 = icmp ult i8 %switch.tableidx46, 9 - br i1 %65, label %switch.lookup45, label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit" + %67 = icmp ult i8 %switch.tableidx46, 9 + br i1 %67, label %switch.lookup45, label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit" -66: ; preds = %54 +68: ; preds = %56 %switch.selectcmp32.i = icmp eq i16 %.sroa.4.0.extract.shift.i, 114 %switch.select33.i = select i1 %switch.selectcmp32.i, i8 12, i8 35 %switch.selectcmp34.i = icmp eq i16 %.sroa.4.0.extract.shift.i, 105 %switch.select35.i = select i1 %switch.selectcmp34.i, i8 11, i8 %switch.select33.i br label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit" -67: ; preds = %54 +69: ; preds = %56 %switch.selectcmp36.i = icmp eq i16 %.sroa.4.0.extract.shift.i, 117 %switch.select37.i = select i1 %switch.selectcmp36.i, i8 19, i8 35 %switch.selectcmp38.i = icmp eq i16 %.sroa.4.0.extract.shift.i, 97 %switch.select39.i = select i1 %switch.selectcmp38.i, i8 13, i8 %switch.select37.i br label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit" -68: ; preds = %54 +70: ; preds = %56 %switch.selectcmp40.i = icmp eq i16 %.sroa.4.0.extract.shift.i, 116 %switch.select41.i = select i1 %switch.selectcmp40.i, i8 18, i8 35 %switch.selectcmp42.i = icmp eq i16 %.sroa.4.0.extract.shift.i, 115 %switch.select43.i = select i1 %switch.selectcmp42.i, i8 17, i8 %switch.select41.i br label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit" -69: ; preds = %54 +71: ; preds = %56 %switch.selectcmp44.i = icmp eq i16 %.sroa.4.0.extract.shift.i, 116 %switch.select45.i = select i1 %switch.selectcmp44.i, i8 21, i8 35 %switch.selectcmp46.i = icmp eq i16 %.sroa.4.0.extract.shift.i, 97 %switch.select47.i = select i1 %switch.selectcmp46.i, i8 20, i8 %switch.select45.i br label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit" -70: ; preds = %54 - %71 = icmp eq i16 %.sroa.4.0.extract.shift.i, 110 - %spec.select48.i = select i1 %71, i8 22, i8 35 +72: ; preds = %56 + %73 = icmp eq i16 %.sroa.4.0.extract.shift.i, 110 + %spec.select48.i = select i1 %73, i8 22, i8 35 br label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit" -72: ; preds = %54 +74: ; preds = %56 %switch.selectcmp49.i = icmp eq i16 %.sroa.4.0.extract.shift.i, 116 %switch.select50.i = select i1 %switch.selectcmp49.i, i8 25, i8 35 %switch.selectcmp51.i = icmp eq i16 %.sroa.4.0.extract.shift.i, 108 %switch.select52.i = select i1 %switch.selectcmp51.i, i8 24, i8 %switch.select50.i br label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit" -73: ; preds = %54 - %74 = icmp eq i16 %.sroa.4.0.extract.shift.i, 117 - %spec.select53.i = select i1 %74, i8 26, i8 35 +75: ; preds = %56 + %76 = icmp eq i16 %.sroa.4.0.extract.shift.i, 117 + %spec.select53.i = select i1 %76, i8 26, i8 35 br label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit" -75: ; preds = %54 +77: ; preds = %56 %switch.selectcmp54.i = icmp eq i16 %.sroa.4.0.extract.shift.i, 107 %switch.select55.i = select i1 %switch.selectcmp54.i, i8 33, i8 35 %switch.selectcmp56.i = icmp eq i16 %.sroa.4.0.extract.shift.i, 114 %switch.select57.i = select i1 %switch.selectcmp56.i, i8 32, i8 %switch.select55.i br label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit" -76: ; preds = %54 - %77 = icmp eq i16 %.sroa.4.0.extract.shift.i, 107 - %spec.select58.i = select i1 %77, i8 34, i8 35 +78: ; preds = %56 + %79 = icmp eq i16 %.sroa.4.0.extract.shift.i, 107 + %spec.select58.i = select i1 %79, i8 34, i8 35 br label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit" -78: ; preds = %63 +80: ; preds = %65 br label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit" -79: ; preds = %63 +81: ; preds = %65 br label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit" -80: ; preds = %63 +82: ; preds = %65 br label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit" -81: ; preds = %63 +83: ; preds = %65 br label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit" -switch.lookup: ; preds = %57 - %82 = zext nneg i8 %switch.tableidx to i64 - %switch.gep = getelementptr inbounds [12 x i8], ptr @switch.table._ZN5typst6layout6inline9linebreak7lang_at17h4ab66f3f355bee1dE, i64 0, i64 %82 +switch.lookup: ; preds = %59 + %84 = zext nneg i8 %switch.tableidx to i64 + %switch.gep = getelementptr inbounds [12 x i8], ptr @switch.table._ZN5typst6layout6inline9linebreak7lang_at17h4ab66f3f355bee1dE, i64 0, i64 %84 %switch.load = load i8, ptr %switch.gep, align 1 br label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit" -switch.lookup45: ; preds = %64 - %83 = zext nneg i8 %switch.tableidx46 to i64 - %switch.gep47 = getelementptr inbounds [9 x i8], ptr @switch.table._ZN5typst6layout6inline9linebreak7lang_at17h4ab66f3f355bee1dE.663, i64 0, i64 %83 +switch.lookup45: ; preds = %66 + %85 = zext nneg i8 %switch.tableidx46 to i64 + %switch.gep47 = getelementptr inbounds [9 x i8], ptr @switch.table._ZN5typst6layout6inline9linebreak7lang_at17h4ab66f3f355bee1dE.663, i64 0, i64 %85 %switch.load48 = load i8, ptr %switch.gep47, align 1 br label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit" -"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit": ; preds = %switch.lookup45, %64, %switch.lookup, %57, %81, %80, %79, %78, %76, %75, %73, %72, %70, %69, %68, %67, %66, %63, %62, %61, %60, %59, %55, %54, %_ZN5typst6layout6inline11Preparation4find17h09e09b87c2bfb9beE.exit.thread.i.i, %34, %_ZN5typst4text4lang4Lang6as_str17hf466e15d647fc2eeE.exit - %.1 = phi i8 [ 35, %_ZN5typst4text4lang4Lang6as_str17hf466e15d647fc2eeE.exit ], [ 35, %34 ], [ 35, %_ZN5typst6layout6inline11Preparation4find17h09e09b87c2bfb9beE.exit.thread.i.i ], [ 23, %81 ], [ 23, %80 ], [ 23, %79 ], [ 8, %78 ], [ 35, %64 ], [ 35, %63 ], [ 35, %57 ], [ 35, %54 ], [ %switch.select19.i, %59 ], [ %switch.select23.i, %60 ], [ %switch.select27.i, %61 ], [ %switch.select31.i, %62 ], [ %switch.select35.i, %66 ], [ %switch.select39.i, %67 ], [ %switch.select43.i, %68 ], [ %switch.select47.i, %69 ], [ %switch.select52.i, %72 ], [ %switch.select57.i, %75 ], [ %spec.select.i, %55 ], [ %spec.select48.i, %70 ], [ %spec.select53.i, %73 ], [ %spec.select58.i, %76 ], [ %switch.load, %switch.lookup ], [ %switch.load48, %switch.lookup45 ] +"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit": ; preds = %switch.lookup45, %66, %switch.lookup, %59, %83, %82, %81, %80, %78, %77, %75, %74, %72, %71, %70, %69, %68, %65, %64, %63, %62, %61, %57, %56, %_ZN5typst6layout6inline11Preparation4find17h09e09b87c2bfb9beE.exit.thread.i.i, %34, %_ZN5typst4text4lang4Lang6as_str17hf466e15d647fc2eeE.exit + %.1 = phi i8 [ 35, %_ZN5typst4text4lang4Lang6as_str17hf466e15d647fc2eeE.exit ], [ 35, %34 ], [ 35, %_ZN5typst6layout6inline11Preparation4find17h09e09b87c2bfb9beE.exit.thread.i.i ], [ 23, %83 ], [ 23, %82 ], [ 23, %81 ], [ 8, %80 ], [ 35, %66 ], [ 35, %65 ], [ 35, %59 ], [ 35, %56 ], [ %switch.select19.i, %61 ], [ %switch.select23.i, %62 ], [ %switch.select27.i, %63 ], [ %switch.select31.i, %64 ], [ %switch.select35.i, %68 ], [ %switch.select39.i, %69 ], [ %switch.select43.i, %70 ], [ %switch.select47.i, %71 ], [ %switch.select52.i, %74 ], [ %switch.select57.i, %77 ], [ %spec.select.i, %57 ], [ %spec.select48.i, %72 ], [ %spec.select53.i, %75 ], [ %spec.select58.i, %78 ], [ %switch.load, %switch.lookup ], [ %switch.load48, %switch.lookup45 ] call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) ret i8 %.1 } diff --git a/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll b/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll index e79a2affb31..0e8d1eff657 100644 --- a/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll +++ b/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll @@ -14367,7 +14367,10 @@ define hidden void @"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..funct define hidden noundef align 8 dereferenceable_or_null(104) ptr @"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h8fc3ecd293aca552E"(ptr noalias nocapture noundef readonly align 8 dereferenceable(8) %0, ptr noalias noundef readonly align 8 dereferenceable(104) %1) unnamed_addr #8 { %3 = load i64, ptr %1, align 8, !range !477, !alias.scope !2765, !noundef !4 %4 = icmp ult i64 %3, -9223372036854775807 - %..i.i.i.i.i = select i1 %4, ptr %1, ptr null + %5 = and i64 %3, 7 + %6 = icmp eq i64 %5, 0 + %7 = or i1 %4, %6 + %..i.i.i.i.i = select i1 %7, ptr %1, ptr null ret ptr %..i.i.i.i.i } @@ -14669,7 +14672,10 @@ define hidden noundef zeroext i1 @"_ZN4core3ops8function5impls79_$LT$impl$u20$co define hidden noundef align 8 dereferenceable_or_null(104) ptr @"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17ha62c5fe86cf9cd89E"(ptr noalias nocapture noundef readonly align 8 dereferenceable(8) %0, ptr noalias noundef readonly align 8 dereferenceable(104) %1) unnamed_addr #8 { %3 = load i64, ptr %1, align 8, !range !477, !alias.scope !2903, !noundef !4 %4 = icmp ult i64 %3, -9223372036854775807 - %..i.i.i.i = select i1 %4, ptr %1, ptr null + %5 = and i64 %3, 7 + %6 = icmp eq i64 %5, 0 + %7 = or i1 %4, %6 + %..i.i.i.i = select i1 %7, ptr %1, ptr null ret ptr %..i.i.i.i } @@ -23559,7 +23565,10 @@ define hidden noundef align 8 dereferenceable_or_null(32) ptr @"_ZN4core4iter6tr define hidden noundef align 8 dereferenceable_or_null(104) ptr @"_ZN4core4iter6traits8iterator8Iterator8find_map5check28_$u7b$$u7b$closure$u7d$$u7d$17h6b2b61bd0dda2af1E.llvm.16978709814855407318"(ptr noalias nocapture noundef readnone align 8 dereferenceable(8) %0, ptr noalias noundef readonly align 8 dereferenceable(104) %1) unnamed_addr #17 { %3 = load i64, ptr %1, align 8, !range !477, !alias.scope !5005, !noundef !4 %4 = icmp ult i64 %3, -9223372036854775807 - %..i.i.i = select i1 %4, ptr %1, ptr null + %5 = and i64 %3, 7 + %6 = icmp eq i64 %5, 0 + %7 = or i1 %4, %6 + %..i.i.i = select i1 %7, ptr %1, ptr null ret ptr %..i.i.i } diff --git a/bench/wasmtime-rs/optimized/18flldcd4wnig7ks.ll b/bench/wasmtime-rs/optimized/18flldcd4wnig7ks.ll index 2c645d2dd85..2d285a63edd 100644 --- a/bench/wasmtime-rs/optimized/18flldcd4wnig7ks.ll +++ b/bench/wasmtime-rs/optimized/18flldcd4wnig7ks.ll @@ -3635,21 +3635,25 @@ define hidden noundef align 8 dereferenceable_or_null(56) ptr @"_ZN4core3ops8fun tail call void @llvm.experimental.noalias.scope.decl(metadata !1081) tail call void @llvm.experimental.noalias.scope.decl(metadata !1084) %4 = load i64, ptr %1, align 8, !range !1086, !alias.scope !1084, !noalias !1081, !noundef !9 - %5 = icmp eq i64 %4, -9223372036854775803 - br i1 %5, label %6, label %"_ZN18wasmtime_cranelift8compiler9component18TrampolineCompiler23translate_resource_drop28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17he2e5a719c0545446E.llvm.12599983639457799574.exit" + %5 = add i64 %4, 9223372036854775807 + %6 = icmp ult i64 %5, 5 + %7 = and i64 %4, 7 + %8 = icmp eq i64 %7, 5 + %9 = and i1 %6, %8 + br i1 %9, label %10, label %"_ZN18wasmtime_cranelift8compiler9component18TrampolineCompiler23translate_resource_drop28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17he2e5a719c0545446E.llvm.12599983639457799574.exit" -6: ; preds = %2 - %7 = load ptr, ptr %3, align 8, !alias.scope !1081, !noalias !1084, !nonnull !9, !align !1087, !noundef !9 - %8 = getelementptr inbounds i8, ptr %1, i64 52 - %9 = load i32, ptr %8, align 4, !alias.scope !1084, !noalias !1081, !noundef !9 - %10 = load i32, ptr %7, align 4, !noalias !1088, !noundef !9 - %11 = icmp eq i32 %9, %10 - %12 = getelementptr inbounds i8, ptr %1, i64 8 - %spec.select.i = select i1 %11, ptr %12, ptr null +10: ; preds = %2 + %11 = load ptr, ptr %3, align 8, !alias.scope !1081, !noalias !1084, !nonnull !9, !align !1087, !noundef !9 + %12 = getelementptr inbounds i8, ptr %1, i64 52 + %13 = load i32, ptr %12, align 4, !alias.scope !1084, !noalias !1081, !noundef !9 + %14 = load i32, ptr %11, align 4, !noalias !1088, !noundef !9 + %15 = icmp eq i32 %13, %14 + %16 = getelementptr inbounds i8, ptr %1, i64 8 + %spec.select.i = select i1 %15, ptr %16, ptr null br label %"_ZN18wasmtime_cranelift8compiler9component18TrampolineCompiler23translate_resource_drop28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17he2e5a719c0545446E.llvm.12599983639457799574.exit" -"_ZN18wasmtime_cranelift8compiler9component18TrampolineCompiler23translate_resource_drop28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17he2e5a719c0545446E.llvm.12599983639457799574.exit": ; preds = %2, %6 - %.0.i = phi ptr [ null, %2 ], [ %spec.select.i, %6 ] +"_ZN18wasmtime_cranelift8compiler9component18TrampolineCompiler23translate_resource_drop28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17he2e5a719c0545446E.llvm.12599983639457799574.exit": ; preds = %2, %10 + %.0.i = phi ptr [ null, %2 ], [ %spec.select.i, %10 ] ret ptr %.0.i } @@ -9159,21 +9163,25 @@ _ZN18wasmtime_cranelift17compiled_function20collect_address_maps3cvt17h2f35d1067 ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(read, inaccessiblemem: none) uwtable define hidden noundef align 8 dereferenceable_or_null(56) ptr @"_ZN18wasmtime_cranelift8compiler9component18TrampolineCompiler23translate_resource_drop28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17he2e5a719c0545446E.llvm.12599983639457799574"(ptr noalias nocapture noundef readonly align 8 dereferenceable(8) %0, ptr noalias noundef readonly align 8 dereferenceable(80) %1) unnamed_addr #19 { %3 = load i64, ptr %1, align 8, !range !1086, !noundef !9 - %4 = icmp eq i64 %3, -9223372036854775803 - br i1 %4, label %5, label %12 + %4 = add i64 %3, 9223372036854775807 + %5 = icmp ult i64 %4, 5 + %6 = and i64 %3, 7 + %7 = icmp eq i64 %6, 5 + %8 = and i1 %5, %7 + br i1 %8, label %9, label %16 -5: ; preds = %2 - %6 = load ptr, ptr %0, align 8, !nonnull !9, !align !1087, !noundef !9 - %7 = getelementptr inbounds i8, ptr %1, i64 52 - %8 = load i32, ptr %7, align 4, !noundef !9 - %9 = load i32, ptr %6, align 4, !noundef !9 - %10 = icmp eq i32 %8, %9 - %11 = getelementptr inbounds i8, ptr %1, i64 8 - %spec.select = select i1 %10, ptr %11, ptr null - br label %12 +9: ; preds = %2 + %10 = load ptr, ptr %0, align 8, !nonnull !9, !align !1087, !noundef !9 + %11 = getelementptr inbounds i8, ptr %1, i64 52 + %12 = load i32, ptr %11, align 4, !noundef !9 + %13 = load i32, ptr %10, align 4, !noundef !9 + %14 = icmp eq i32 %12, %13 + %15 = getelementptr inbounds i8, ptr %1, i64 8 + %spec.select = select i1 %14, ptr %15, ptr null + br label %16 -12: ; preds = %5, %2 - %.0 = phi ptr [ null, %2 ], [ %spec.select, %5 ] +16: ; preds = %9, %2 + %.0 = phi ptr [ null, %2 ], [ %spec.select, %9 ] ret ptr %.0 } diff --git a/bench/wasmtime-rs/optimized/21yfjujbida1k3g1.ll b/bench/wasmtime-rs/optimized/21yfjujbida1k3g1.ll index 6a82d71d86c..69498f60b5d 100644 --- a/bench/wasmtime-rs/optimized/21yfjujbida1k3g1.ll +++ b/bench/wasmtime-rs/optimized/21yfjujbida1k3g1.ll @@ -21083,7 +21083,7 @@ define hidden void @"_ZN4core3ptr479drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7705, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 2 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 3 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN4core3ptr438drop_in_place$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..File.._spawn_blocking$LT$$LT$wasmtime_wasi..preview1..WasiP1Ctx$u20$as$u20$wasmtime_wasi..preview1..wasi_snapshot_preview1..WasiSnapshotPreview1$GT$..fd_write..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$usize$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17h9738f08e4e3f76a6E.exit" [ i64 0, label %7 @@ -23777,7 +23777,7 @@ define hidden void @"_ZN4core3ptr514drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7705, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 2 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 3 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN4core3ptr473drop_in_place$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..File.._spawn_blocking$LT$$LT$wasmtime_wasi..preview1..WasiP1Ctx$u20$as$u20$wasmtime_wasi..preview1..wasi_snapshot_preview1..WasiSnapshotPreview1$GT$..fd_read..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$alloc..vec..Vec$LT$u8$GT$$C$wasmtime_wasi..preview1..types..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17h6f9fbdfe117f43a1E.exit" [ i64 0, label %7 @@ -23918,7 +23918,7 @@ define hidden void @"_ZN4core3ptr518drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7705, !alias.scope !9197, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 2 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 3 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN4core3ptr563drop_in_place$LT$tokio..loom..std..unsafe_cell..UnsafeCell$LT$tokio..runtime..task..core..Stage$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..File.._spawn_blocking$LT$$LT$wasmtime_wasi..preview1..WasiP1Ctx$u20$as$u20$wasmtime_wasi..preview1..wasi_snapshot_preview1..WasiSnapshotPreview1$GT$..fd_read..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$alloc..vec..Vec$LT$u8$GT$$C$wasmtime_wasi..preview1..types..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$$GT$17h51e29e02cfa3286bE.llvm.10377456559187600216.exit" [ i64 0, label %7 @@ -24580,7 +24580,7 @@ define hidden void @"_ZN4core3ptr527drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7705, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 2 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 3 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN4core3ptr486drop_in_place$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..link_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17h6a4da4d8d87e26faE.exit" [ i64 0, label %7 @@ -24711,7 +24711,7 @@ define hidden void @"_ZN4core3ptr529drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7705, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 2 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 3 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN4core3ptr488drop_in_place$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..rename_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17h7acc1cded5a4011aE.exit" [ i64 0, label %7 @@ -24950,7 +24950,7 @@ define hidden void @"_ZN4core3ptr530drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7705, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 2 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 3 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN4core3ptr489drop_in_place$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..symlink_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17haabab2d4c9a1521dE.exit" [ i64 0, label %7 @@ -25061,7 +25061,7 @@ define hidden void @"_ZN4core3ptr531drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7705, !alias.scope !9747, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 2 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 3 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN4core3ptr576drop_in_place$LT$tokio..loom..std..unsafe_cell..UnsafeCell$LT$tokio..runtime..task..core..Stage$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..link_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$$GT$17h82e9f6619ad3ab03E.llvm.10377456559187600216.exit" [ i64 0, label %7 @@ -25248,7 +25248,7 @@ define hidden void @"_ZN4core3ptr532drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7705, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 2 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 3 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN4core3ptr491drop_in_place$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..set_times_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17h95616539bf3e8516E.exit" [ i64 0, label %7 @@ -25305,7 +25305,7 @@ define hidden void @"_ZN4core3ptr532drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7705, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 2 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 3 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN4core3ptr491drop_in_place$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..set_times_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17h0127aa0f2577831cE.exit" [ i64 0, label %7 @@ -25428,7 +25428,7 @@ define hidden void @"_ZN4core3ptr533drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7705, !alias.scope !9936, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 2 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 3 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN4core3ptr578drop_in_place$LT$tokio..loom..std..unsafe_cell..UnsafeCell$LT$tokio..runtime..task..core..Stage$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..rename_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$$GT$17hc5434f48026b23afE.llvm.10377456559187600216.exit" [ i64 0, label %7 @@ -25652,7 +25652,7 @@ define hidden void @"_ZN4core3ptr534drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7705, !alias.scope !10024, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 2 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 3 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN4core3ptr579drop_in_place$LT$tokio..loom..std..unsafe_cell..UnsafeCell$LT$tokio..runtime..task..core..Stage$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..symlink_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$$GT$17h3ef988e70bf88e22E.llvm.10377456559187600216.exit" [ i64 0, label %7 @@ -25823,7 +25823,7 @@ define hidden void @"_ZN4core3ptr536drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7705, !alias.scope !10151, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 2 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 3 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN4core3ptr581drop_in_place$LT$tokio..loom..std..unsafe_cell..UnsafeCell$LT$tokio..runtime..task..core..Stage$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..set_times_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$$GT$17hb2698ff7d7d76925E.llvm.10377456559187600216.exit" [ i64 0, label %7 @@ -25883,7 +25883,7 @@ define hidden void @"_ZN4core3ptr536drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7705, !alias.scope !10198, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 2 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 3 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN4core3ptr581drop_in_place$LT$tokio..loom..std..unsafe_cell..UnsafeCell$LT$tokio..runtime..task..core..Stage$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..set_times_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$$GT$17he70c317b97f4146fE.llvm.10377456559187600216.exit" [ i64 0, label %7 @@ -26835,7 +26835,7 @@ define hidden void @"_ZN4core3ptr544drop_in_place$LT$core..cell..UnsafeCell$LT$t %2 = load i64, ptr %0, align 8, !range !7705, !alias.scope !10764, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 2 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 3 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN4core3ptr514drop_in_place$LT$tokio..runtime..task..core..Stage$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..File.._spawn_blocking$LT$$LT$wasmtime_wasi..preview1..WasiP1Ctx$u20$as$u20$wasmtime_wasi..preview1..wasi_snapshot_preview1..WasiSnapshotPreview1$GT$..fd_read..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$alloc..vec..Vec$LT$u8$GT$$C$wasmtime_wasi..preview1..types..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$17h57c2aa51f64412abE.llvm.10377456559187600216.exit" [ i64 0, label %7 @@ -28030,7 +28030,7 @@ define hidden void @"_ZN4core3ptr557drop_in_place$LT$core..cell..UnsafeCell$LT$t %2 = load i64, ptr %0, align 8, !range !7705, !alias.scope !11469, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 2 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 3 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN4core3ptr527drop_in_place$LT$tokio..runtime..task..core..Stage$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..link_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$17h216fe2d252f8b37dE.llvm.10377456559187600216.exit" [ i64 0, label %7 @@ -28253,7 +28253,7 @@ define hidden void @"_ZN4core3ptr559drop_in_place$LT$core..cell..UnsafeCell$LT$t %2 = load i64, ptr %0, align 8, !range !7705, !alias.scope !11589, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 2 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 3 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN4core3ptr529drop_in_place$LT$tokio..runtime..task..core..Stage$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..rename_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$17hd72629ec5352a8a4E.llvm.10377456559187600216.exit" [ i64 0, label %7 @@ -28717,7 +28717,7 @@ define hidden void @"_ZN4core3ptr560drop_in_place$LT$core..cell..UnsafeCell$LT$t %2 = load i64, ptr %0, align 8, !range !7705, !alias.scope !11762, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 2 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 3 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN4core3ptr530drop_in_place$LT$tokio..runtime..task..core..Stage$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..symlink_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$17h346b26c5b625d6cbE.llvm.10377456559187600216.exit" [ i64 0, label %7 @@ -29043,7 +29043,7 @@ define hidden void @"_ZN4core3ptr562drop_in_place$LT$core..cell..UnsafeCell$LT$t %2 = load i64, ptr %0, align 8, !range !7705, !alias.scope !11970, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 2 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 3 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN4core3ptr532drop_in_place$LT$tokio..runtime..task..core..Stage$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..set_times_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$17hfce7cec927eb43e7E.llvm.10377456559187600216.exit" [ i64 0, label %7 @@ -29101,7 +29101,7 @@ define hidden void @"_ZN4core3ptr562drop_in_place$LT$core..cell..UnsafeCell$LT$t %2 = load i64, ptr %0, align 8, !range !7705, !alias.scope !12010, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 2 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 3 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN4core3ptr532drop_in_place$LT$tokio..runtime..task..core..Stage$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..set_times_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$17hf2f3117842361332E.llvm.10377456559187600216.exit" [ i64 0, label %7 @@ -29166,7 +29166,7 @@ define hidden void @"_ZN4core3ptr563drop_in_place$LT$tokio..loom..std..unsafe_ce %2 = load i64, ptr %0, align 8, !range !7705, !alias.scope !12056, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 2 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 3 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN4core3ptr544drop_in_place$LT$core..cell..UnsafeCell$LT$tokio..runtime..task..core..Stage$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..File.._spawn_blocking$LT$$LT$wasmtime_wasi..preview1..WasiP1Ctx$u20$as$u20$wasmtime_wasi..preview1..wasi_snapshot_preview1..WasiSnapshotPreview1$GT$..fd_read..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$alloc..vec..Vec$LT$u8$GT$$C$wasmtime_wasi..preview1..types..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$$GT$17hc7f40ebf91f6087eE.llvm.10377456559187600216.exit" [ i64 0, label %7 @@ -29348,7 +29348,7 @@ define hidden void @"_ZN4core3ptr568drop_in_place$LT$tokio..runtime..task..core. %3 = load i64, ptr %2, align 8, !range !7705, !alias.scope !12185, !noundef !4 %4 = add i64 %3, 9223372036854775807 %5 = icmp ult i64 %4, 2 - %6 = xor i64 %3, -9223372036854775808 + %6 = and i64 %3, 3 %7 = select i1 %5, i64 %6, i64 0 switch i64 %7, label %"_ZN4core3ptr568drop_in_place$LT$tokio..runtime..task..core..Core$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..File.._spawn_blocking$LT$$LT$wasmtime_wasi..preview1..WasiP1Ctx$u20$as$u20$wasmtime_wasi..preview1..wasi_snapshot_preview1..WasiSnapshotPreview1$GT$..fd_read..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$alloc..vec..Vec$LT$u8$GT$$C$wasmtime_wasi..preview1..types..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$$C$tokio..runtime..blocking..schedule..BlockingSchedule$GT$$GT$17he4792c8fe62c5c03E.llvm.10377456559187600216.exit" [ i64 0, label %8 @@ -29458,7 +29458,7 @@ define hidden void @"_ZN4core3ptr568drop_in_place$LT$tokio..runtime..task..core. %3 = load i64, ptr %2, align 8, !range !7705, !alias.scope !12266, !noundef !4 %4 = add i64 %3, 9223372036854775807 %5 = icmp ult i64 %4, 2 - %6 = xor i64 %3, -9223372036854775808 + %6 = and i64 %3, 3 %7 = select i1 %5, i64 %6, i64 0 switch i64 %7, label %"_ZN4core3ptr518drop_in_place$LT$tokio..runtime..task..core..CoreStage$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..File.._spawn_blocking$LT$$LT$wasmtime_wasi..preview1..WasiP1Ctx$u20$as$u20$wasmtime_wasi..preview1..wasi_snapshot_preview1..WasiSnapshotPreview1$GT$..fd_read..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$alloc..vec..Vec$LT$u8$GT$$C$wasmtime_wasi..preview1..types..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$17h52f9e7b961f421aaE.llvm.10377456559187600216.exit" [ i64 0, label %8 @@ -29953,7 +29953,7 @@ define hidden void @"_ZN4core3ptr576drop_in_place$LT$tokio..loom..std..unsafe_ce %2 = load i64, ptr %0, align 8, !range !7705, !alias.scope !12538, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 2 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 3 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN4core3ptr557drop_in_place$LT$core..cell..UnsafeCell$LT$tokio..runtime..task..core..Stage$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..link_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$$GT$17h508274484d3682e5E.llvm.10377456559187600216.exit" [ i64 0, label %7 @@ -30021,7 +30021,7 @@ define hidden void @"_ZN4core3ptr578drop_in_place$LT$tokio..loom..std..unsafe_ce %2 = load i64, ptr %0, align 8, !range !7705, !alias.scope !12564, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 2 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 3 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN4core3ptr559drop_in_place$LT$core..cell..UnsafeCell$LT$tokio..runtime..task..core..Stage$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..rename_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$$GT$17h3b2444fc1611d2ffE.llvm.10377456559187600216.exit" [ i64 0, label %7 @@ -30096,7 +30096,7 @@ define hidden void @"_ZN4core3ptr579drop_in_place$LT$tokio..loom..std..unsafe_ce %2 = load i64, ptr %0, align 8, !range !7705, !alias.scope !12598, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 2 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 3 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN4core3ptr560drop_in_place$LT$core..cell..UnsafeCell$LT$tokio..runtime..task..core..Stage$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..symlink_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$$GT$17h56c62ec72b94020bE.llvm.10377456559187600216.exit" [ i64 0, label %7 @@ -30687,7 +30687,7 @@ define hidden void @"_ZN4core3ptr581drop_in_place$LT$tokio..loom..std..unsafe_ce %2 = load i64, ptr %0, align 8, !range !7705, !alias.scope !12885, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 2 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 3 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN4core3ptr562drop_in_place$LT$core..cell..UnsafeCell$LT$tokio..runtime..task..core..Stage$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..set_times_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$$GT$17h61fd60f6e82984d7E.llvm.10377456559187600216.exit" [ i64 0, label %7 @@ -30746,7 +30746,7 @@ define hidden void @"_ZN4core3ptr581drop_in_place$LT$tokio..loom..std..unsafe_ce %2 = load i64, ptr %0, align 8, !range !7705, !alias.scope !12929, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 2 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 3 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN4core3ptr562drop_in_place$LT$core..cell..UnsafeCell$LT$tokio..runtime..task..core..Stage$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..set_times_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$$GT$17hbb548e505444bd3eE.llvm.10377456559187600216.exit" [ i64 0, label %7 @@ -30804,7 +30804,7 @@ define hidden void @"_ZN4core3ptr581drop_in_place$LT$tokio..runtime..task..core. %3 = load i64, ptr %2, align 8, !range !7705, !alias.scope !12967, !noundef !4 %4 = add i64 %3, 9223372036854775807 %5 = icmp ult i64 %4, 2 - %6 = xor i64 %3, -9223372036854775808 + %6 = and i64 %3, 3 %7 = select i1 %5, i64 %6, i64 0 switch i64 %7, label %"_ZN4core3ptr581drop_in_place$LT$tokio..runtime..task..core..Core$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..link_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$C$tokio..runtime..blocking..schedule..BlockingSchedule$GT$$GT$17hd234d337f201f91bE.llvm.10377456559187600216.exit" [ i64 0, label %8 @@ -30975,7 +30975,7 @@ define hidden void @"_ZN4core3ptr581drop_in_place$LT$tokio..runtime..task..core. %3 = load i64, ptr %2, align 8, !range !7705, !alias.scope !13076, !noundef !4 %4 = add i64 %3, 9223372036854775807 %5 = icmp ult i64 %4, 2 - %6 = xor i64 %3, -9223372036854775808 + %6 = and i64 %3, 3 %7 = select i1 %5, i64 %6, i64 0 switch i64 %7, label %"_ZN4core3ptr531drop_in_place$LT$tokio..runtime..task..core..CoreStage$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..link_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$17hede2f1ccc35c1d39E.llvm.10377456559187600216.exit" [ i64 0, label %8 @@ -31110,7 +31110,7 @@ define hidden void @"_ZN4core3ptr583drop_in_place$LT$tokio..runtime..task..core. %3 = load i64, ptr %2, align 8, !range !7705, !alias.scope !13157, !noundef !4 %4 = add i64 %3, 9223372036854775807 %5 = icmp ult i64 %4, 2 - %6 = xor i64 %3, -9223372036854775808 + %6 = and i64 %3, 3 %7 = select i1 %5, i64 %6, i64 0 switch i64 %7, label %"_ZN4core3ptr583drop_in_place$LT$tokio..runtime..task..core..Core$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..rename_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$C$tokio..runtime..blocking..schedule..BlockingSchedule$GT$$GT$17ha884f5ec8937501aE.llvm.10377456559187600216.exit" [ i64 0, label %8 @@ -31286,7 +31286,7 @@ define hidden void @"_ZN4core3ptr583drop_in_place$LT$tokio..runtime..task..core. %3 = load i64, ptr %2, align 8, !range !7705, !alias.scope !13268, !noundef !4 %4 = add i64 %3, 9223372036854775807 %5 = icmp ult i64 %4, 2 - %6 = xor i64 %3, -9223372036854775808 + %6 = and i64 %3, 3 %7 = select i1 %5, i64 %6, i64 0 switch i64 %7, label %"_ZN4core3ptr533drop_in_place$LT$tokio..runtime..task..core..CoreStage$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..rename_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$17h47cf6199921cd3eaE.llvm.10377456559187600216.exit" [ i64 0, label %8 @@ -31406,7 +31406,7 @@ define hidden void @"_ZN4core3ptr584drop_in_place$LT$tokio..runtime..task..core. %3 = load i64, ptr %2, align 8, !range !7705, !alias.scope !13338, !noundef !4 %4 = add i64 %3, 9223372036854775807 %5 = icmp ult i64 %4, 2 - %6 = xor i64 %3, -9223372036854775808 + %6 = and i64 %3, 3 %7 = select i1 %5, i64 %6, i64 0 switch i64 %7, label %"_ZN4core3ptr584drop_in_place$LT$tokio..runtime..task..core..Core$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..symlink_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$C$tokio..runtime..blocking..schedule..BlockingSchedule$GT$$GT$17h5e892feb9fa36f5cE.llvm.10377456559187600216.exit" [ i64 0, label %8 @@ -31533,7 +31533,7 @@ define hidden void @"_ZN4core3ptr584drop_in_place$LT$tokio..runtime..task..core. %3 = load i64, ptr %2, align 8, !range !7705, !alias.scope !13440, !noundef !4 %4 = add i64 %3, 9223372036854775807 %5 = icmp ult i64 %4, 2 - %6 = xor i64 %3, -9223372036854775808 + %6 = and i64 %3, 3 %7 = select i1 %5, i64 %6, i64 0 switch i64 %7, label %"_ZN4core3ptr534drop_in_place$LT$tokio..runtime..task..core..CoreStage$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..symlink_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$17h5d96a2106bf9948dE.llvm.10377456559187600216.exit" [ i64 0, label %8 @@ -31746,7 +31746,7 @@ define hidden void @"_ZN4core3ptr586drop_in_place$LT$tokio..runtime..task..core. %3 = load i64, ptr %2, align 8, !range !7705, !alias.scope !13602, !noundef !4 %4 = add i64 %3, 9223372036854775807 %5 = icmp ult i64 %4, 2 - %6 = xor i64 %3, -9223372036854775808 + %6 = and i64 %3, 3 %7 = select i1 %5, i64 %6, i64 0 switch i64 %7, label %"_ZN4core3ptr586drop_in_place$LT$tokio..runtime..task..core..Core$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..set_times_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$C$tokio..runtime..blocking..schedule..BlockingSchedule$GT$$GT$17h281fd20d8debf9d0E.llvm.10377456559187600216.exit" [ i64 0, label %8 @@ -31858,7 +31858,7 @@ define hidden void @"_ZN4core3ptr586drop_in_place$LT$tokio..runtime..task..core. %3 = load i64, ptr %2, align 8, !range !7705, !alias.scope !13689, !noundef !4 %4 = add i64 %3, 9223372036854775807 %5 = icmp ult i64 %4, 2 - %6 = xor i64 %3, -9223372036854775808 + %6 = and i64 %3, 3 %7 = select i1 %5, i64 %6, i64 0 switch i64 %7, label %"_ZN4core3ptr586drop_in_place$LT$tokio..runtime..task..core..Core$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..set_times_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$C$tokio..runtime..blocking..schedule..BlockingSchedule$GT$$GT$17h11c5a80c50a2cd55E.llvm.10377456559187600216.exit" [ i64 0, label %8 @@ -31969,7 +31969,7 @@ define hidden void @"_ZN4core3ptr586drop_in_place$LT$tokio..runtime..task..core. %3 = load i64, ptr %2, align 8, !range !7705, !alias.scope !13773, !noundef !4 %4 = add i64 %3, 9223372036854775807 %5 = icmp ult i64 %4, 2 - %6 = xor i64 %3, -9223372036854775808 + %6 = and i64 %3, 3 %7 = select i1 %5, i64 %6, i64 0 switch i64 %7, label %"_ZN4core3ptr536drop_in_place$LT$tokio..runtime..task..core..CoreStage$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..set_times_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$17h197feadd5d782e10E.llvm.10377456559187600216.exit" [ i64 0, label %8 @@ -32031,7 +32031,7 @@ define hidden void @"_ZN4core3ptr586drop_in_place$LT$tokio..runtime..task..core. %3 = load i64, ptr %2, align 8, !range !7705, !alias.scope !13823, !noundef !4 %4 = add i64 %3, 9223372036854775807 %5 = icmp ult i64 %4, 2 - %6 = xor i64 %3, -9223372036854775808 + %6 = and i64 %3, 3 %7 = select i1 %5, i64 %6, i64 0 switch i64 %7, label %"_ZN4core3ptr536drop_in_place$LT$tokio..runtime..task..core..CoreStage$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..set_times_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$17h4eafe03dc00115e8E.llvm.10377456559187600216.exit" [ i64 0, label %8 @@ -37363,7 +37363,7 @@ define hidden void @"_ZN4core3ptr707drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7705, !noundef !4 %3 = add i64 %2, 9223372036854775807 %4 = icmp ult i64 %3, 2 - %5 = xor i64 %2, -9223372036854775808 + %5 = and i64 %2, 3 %6 = select i1 %4, i64 %5, i64 0 switch i64 %6, label %"_ZN4core3ptr666drop_in_place$LT$tokio..runtime..blocking..task..BlockingTask$LT$wasmtime_wasi..filesystem..Dir..spawn_blocking$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$wasmtime_wasi..preview1..WasiP1Ctx$GT$..open_at..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$C$core..result..Result$LT$wasmtime_wasi..host..filesystem..$LT$impl$u20$wasmtime_wasi..bindings..async_io..wasi..filesystem..types..HostDescriptor$u20$for$u20$T$GT$..open_at..$u7b$$u7b$closure$u7d$$u7d$..OpenResult$C$std..io..error..Error$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17h38c86d2dceac0449E.exit" [ i64 0, label %7 diff --git a/bench/wasmtime-rs/optimized/2dcgoeji2y2j2nl0.ll b/bench/wasmtime-rs/optimized/2dcgoeji2y2j2nl0.ll index 255c9695323..727fa4b6629 100644 --- a/bench/wasmtime-rs/optimized/2dcgoeji2y2j2nl0.ll +++ b/bench/wasmtime-rs/optimized/2dcgoeji2y2j2nl0.ll @@ -9540,7 +9540,7 @@ define hidden void @"_ZN196_$LT$wasmtime_environ..component..info.._..$LT$impl$u %27 = getelementptr inbounds i8, ptr %0, i64 8 store ptr %.sink, ptr %27, align 8 store i64 -9223372036854775804, ptr %0, align 8 - br label %75 + br label %80 28: ; preds = %21 %29 = icmp eq i32 %.sroa.08.0.copyload.i.i, 15 @@ -9576,7 +9576,7 @@ define hidden void @"_ZN196_$LT$wasmtime_environ..component..info.._..$LT$impl$u %40 = getelementptr inbounds i8, ptr %0, i64 8 store ptr %.sink158, ptr %40, align 8 store i64 -9223372036854775804, ptr %0, align 8 - br label %75 + br label %80 41: ; preds = %37, %31 %.sroa.083.0.ph = phi i64 [ -9223372036854775804, %31 ], [ %33, %37 ] @@ -9631,7 +9631,7 @@ define hidden void @"_ZN196_$LT$wasmtime_environ..component..info.._..$LT$impl$u %56 = landingpad { ptr, i32 } cleanup invoke fastcc void @"_ZN4core3ptr91drop_in_place$LT$core..option..Option$LT$wasmtime_environ..component..info..CoreDef$GT$$GT$17hec8f7a8242096e63E"(ptr noalias noundef align 8 dereferenceable(32) %7) #41 - to label %12 unwind label %76 + to label %12 unwind label %81 57: ; preds = %47 %58 = invoke noundef nonnull align 8 ptr @_ZN5serde2de5Error14invalid_length17h5c6ba956d722bf3aE(i64 noundef 3, ptr noundef nonnull align 1 @anon.5912f35052aa1229303be24c35c14530.47, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.5912f35052aa1229303be24c35c14530.6) @@ -9654,7 +9654,7 @@ define hidden void @"_ZN196_$LT$wasmtime_environ..component..info.._..$LT$impl$u %.sroa.732.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 48 store i32 %.sroa.0.0.copyload.i.i.i.i.i.i.i.i.i70155156, ptr %.sroa.732.0..sroa_idx, align 8 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) - br label %75 + br label %80 63: ; preds = %57, %51 %.sink162 = phi ptr [ %52, %51 ], [ %58, %57 ] @@ -9663,41 +9663,50 @@ define hidden void @"_ZN196_$LT$wasmtime_environ..component..info.._..$LT$impl$u store i64 -9223372036854775804, ptr %0, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !5044) %65 = load i64, ptr %7, align 8, !range !1334, !alias.scope !5044, !noundef !4 - %or.cond.i.i = icmp slt i64 %65, 0 - br i1 %or.cond.i.i, label %"_ZN4core3ptr91drop_in_place$LT$core..option..Option$LT$wasmtime_environ..component..info..CoreDef$GT$$GT$17hec8f7a8242096e63E.exit", label %66 - -66: ; preds = %63 + %66 = icmp eq i64 %65, -9223372036854775805 + br i1 %66, label %"_ZN4core3ptr91drop_in_place$LT$core..option..Option$LT$wasmtime_environ..component..info..CoreDef$GT$$GT$17hec8f7a8242096e63E.exit", label %67 + +67: ; preds = %63 + %68 = icmp ugt i64 %65, -9223372036854775808 + %69 = and i64 %65, 3 + %cond1.i.i = icmp ne i64 %69, 0 + %cond.not2.i.i = and i1 %68, %cond1.i.i + %70 = icmp eq i64 %65, -9223372036854775808 + %or.cond.i.i = or i1 %70, %cond.not2.i.i + br i1 %or.cond.i.i, label %"_ZN4core3ptr91drop_in_place$LT$core..option..Option$LT$wasmtime_environ..component..info..CoreDef$GT$$GT$17hec8f7a8242096e63E.exit", label %71 + +71: ; preds = %67 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4), !noalias !5047 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h94a57ea85edebb10E.llvm.5456684732158232753"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %7) - %67 = getelementptr inbounds i8, ptr %4, i64 8 - %68 = load i64, ptr %67, align 8, !range !878, !noalias !5047, !noundef !4 - %.not.i.i.i.i.i.i.i.i = icmp eq i64 %68, 0 - br i1 %.not.i.i.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i", label %69 - -69: ; preds = %66 - %70 = getelementptr inbounds i8, ptr %4, i64 16 - %71 = load i64, ptr %70, align 8, !noalias !5047, !noundef !4 - %72 = icmp eq i64 %71, 0 - br i1 %72, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i", label %73 - -73: ; preds = %69 - %74 = load ptr, ptr %4, align 8, !noalias !5047, !nonnull !4, !noundef !4 - call void @__rust_dealloc(ptr noundef nonnull %74, i64 noundef %71, i64 noundef %68) #40 + %72 = getelementptr inbounds i8, ptr %4, i64 8 + %73 = load i64, ptr %72, align 8, !range !878, !noalias !5047, !noundef !4 + %.not.i.i.i.i.i.i.i.i = icmp eq i64 %73, 0 + br i1 %.not.i.i.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i", label %74 + +74: ; preds = %71 + %75 = getelementptr inbounds i8, ptr %4, i64 16 + %76 = load i64, ptr %75, align 8, !noalias !5047, !noundef !4 + %77 = icmp eq i64 %76, 0 + br i1 %77, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i", label %78 + +78: ; preds = %74 + %79 = load ptr, ptr %4, align 8, !noalias !5047, !nonnull !4, !noundef !4 + call void @__rust_dealloc(ptr noundef nonnull %79, i64 noundef %76, i64 noundef %73) #40 br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i" -"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i": ; preds = %73, %69, %66 +"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i": ; preds = %78, %74, %71 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4), !noalias !5047 br label %"_ZN4core3ptr91drop_in_place$LT$core..option..Option$LT$wasmtime_environ..component..info..CoreDef$GT$$GT$17hec8f7a8242096e63E.exit" -75: ; preds = %26, %39, %"_ZN4core3ptr91drop_in_place$LT$core..option..Option$LT$wasmtime_environ..component..info..CoreDef$GT$$GT$17hec8f7a8242096e63E.exit", %59 +80: ; preds = %26, %39, %"_ZN4core3ptr91drop_in_place$LT$core..option..Option$LT$wasmtime_environ..component..info..CoreDef$GT$$GT$17hec8f7a8242096e63E.exit", %59 ret void -"_ZN4core3ptr91drop_in_place$LT$core..option..Option$LT$wasmtime_environ..component..info..CoreDef$GT$$GT$17hec8f7a8242096e63E.exit": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i", %63, %53 +"_ZN4core3ptr91drop_in_place$LT$core..option..Option$LT$wasmtime_environ..component..info..CoreDef$GT$$GT$17hec8f7a8242096e63E.exit": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i", %67, %63, %53 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) - br label %75 + br label %80 -76: ; preds = %55 - %77 = landingpad { ptr, i32 } +81: ; preds = %55 + %82 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #42 unreachable @@ -22781,7 +22790,7 @@ define hidden void @"_ZN255_$LT$$LT$wasmtime_environ..component..info.._..$LT$im %32 = getelementptr inbounds i8, ptr %0, i64 8 store ptr %.sink, ptr %32, align 8 store i64 -9223372036854775803, ptr %0, align 8 - br label %100 + br label %103 33: ; preds = %29, %20 %.sroa.6.075.ph = phi ptr [ undef, %20 ], [ %28, %29 ] @@ -22915,7 +22924,7 @@ define hidden void @"_ZN255_$LT$$LT$wasmtime_environ..component..info.._..$LT$im %80 = landingpad { ptr, i32 } cleanup invoke fastcc void @"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E"(ptr noalias noundef align 8 dereferenceable(32) %10) #41 - to label %15 unwind label %101 + to label %15 unwind label %104 81: ; preds = %39, %73 %.sroa.16.0 = phi i8 [ %53, %73 ], [ undef, %39 ] @@ -22959,7 +22968,7 @@ define hidden void @"_ZN255_$LT$$LT$wasmtime_environ..component..info.._..$LT$im %.sroa.936.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 72 store i32 %.sroa.0.0.copyload.i.i.i.i.i.i.i.i.i138139, ptr %.sroa.936.0..sroa_idx, align 8 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) - br label %100 + br label %103 88: ; preds = %85, %83 %.sink143 = phi ptr [ %.sroa.8.076.ph, %83 ], [ %86, %85 ] @@ -22968,41 +22977,46 @@ define hidden void @"_ZN255_$LT$$LT$wasmtime_environ..component..info.._..$LT$im store i64 -9223372036854775803, ptr %0, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !12392) %90 = load i64, ptr %10, align 8, !range !8308, !alias.scope !12392, !noundef !4 - %or.cond.i = icmp slt i64 %90, 0 - br i1 %or.cond.i, label %"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E.exit", label %91 - -91: ; preds = %88 + %91 = icmp ugt i64 %90, -9223372036854775808 + %92 = and i64 %90, 3 + %cond1.i = icmp ne i64 %92, 0 + %cond.not2.i = and i1 %91, %cond1.i + %93 = icmp eq i64 %90, -9223372036854775808 + %or.cond.i = or i1 %93, %cond.not2.i + br i1 %or.cond.i, label %"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E.exit", label %94 + +94: ; preds = %88 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4), !noalias !12395 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h94a57ea85edebb10E.llvm.5456684732158232753"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %10) - %92 = getelementptr inbounds i8, ptr %4, i64 8 - %93 = load i64, ptr %92, align 8, !range !878, !noalias !12395, !noundef !4 - %.not.i.i.i.i.i.i.i = icmp eq i64 %93, 0 - br i1 %.not.i.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i", label %94 - -94: ; preds = %91 - %95 = getelementptr inbounds i8, ptr %4, i64 16 - %96 = load i64, ptr %95, align 8, !noalias !12395, !noundef !4 - %97 = icmp eq i64 %96, 0 - br i1 %97, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i", label %98 - -98: ; preds = %94 - %99 = load ptr, ptr %4, align 8, !noalias !12395, !nonnull !4, !noundef !4 - call void @__rust_dealloc(ptr noundef nonnull %99, i64 noundef %96, i64 noundef %93) #40 + %95 = getelementptr inbounds i8, ptr %4, i64 8 + %96 = load i64, ptr %95, align 8, !range !878, !noalias !12395, !noundef !4 + %.not.i.i.i.i.i.i.i = icmp eq i64 %96, 0 + br i1 %.not.i.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i", label %97 + +97: ; preds = %94 + %98 = getelementptr inbounds i8, ptr %4, i64 16 + %99 = load i64, ptr %98, align 8, !noalias !12395, !noundef !4 + %100 = icmp eq i64 %99, 0 + br i1 %100, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i", label %101 + +101: ; preds = %97 + %102 = load ptr, ptr %4, align 8, !noalias !12395, !nonnull !4, !noundef !4 + call void @__rust_dealloc(ptr noundef nonnull %102, i64 noundef %99, i64 noundef %96) #40 br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i" -"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i": ; preds = %98, %94, %91 +"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i": ; preds = %101, %97, %94 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4), !noalias !12395 br label %"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E.exit" -100: ; preds = %31, %"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E.exit", %87 +103: ; preds = %31, %"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E.exit", %87 ret void "_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E.exit": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i", %88, %77 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) - br label %100 + br label %103 -101: ; preds = %79 - %102 = landingpad { ptr, i32 } +104: ; preds = %79 + %105 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #42 unreachable @@ -24018,32 +24032,37 @@ define internal void @"_ZN4core3ptr52drop_in_place$LT$$RF$core..str..error..Utf8 define internal fastcc void @"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %0) unnamed_addr #1 personality ptr @rust_eh_personality { %2 = alloca { [1 x i64], i64, [1 x i64] }, align 8 %3 = load i64, ptr %0, align 8, !range !8308, !noundef !4 - %or.cond = icmp slt i64 %3, 0 - br i1 %or.cond, label %"_ZN4core3ptr101drop_in_place$LT$wasmtime_environ..component..info..CoreExport$LT$wasmtime_types..EntityIndex$GT$$GT$17ha68c621d7f1b535cE.exit", label %4 + %4 = icmp ugt i64 %3, -9223372036854775808 + %5 = and i64 %3, 3 + %cond1 = icmp ne i64 %5, 0 + %cond.not2 = and i1 %4, %cond1 + %6 = icmp eq i64 %3, -9223372036854775808 + %or.cond = or i1 %6, %cond.not2 + br i1 %or.cond, label %"_ZN4core3ptr101drop_in_place$LT$wasmtime_environ..component..info..CoreExport$LT$wasmtime_types..EntityIndex$GT$$GT$17ha68c621d7f1b535cE.exit", label %7 "_ZN4core3ptr101drop_in_place$LT$wasmtime_environ..component..info..CoreExport$LT$wasmtime_types..EntityIndex$GT$$GT$17ha68c621d7f1b535cE.exit": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i", %1 ret void -4: ; preds = %1 +7: ; preds = %1 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !12957 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h94a57ea85edebb10E.llvm.5456684732158232753"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %0) - %5 = getelementptr inbounds i8, ptr %2, i64 8 - %6 = load i64, ptr %5, align 8, !range !878, !noalias !12957, !noundef !4 - %.not.i.i.i.i.i.i = icmp eq i64 %6, 0 - br i1 %.not.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i", label %7 + %8 = getelementptr inbounds i8, ptr %2, i64 8 + %9 = load i64, ptr %8, align 8, !range !878, !noalias !12957, !noundef !4 + %.not.i.i.i.i.i.i = icmp eq i64 %9, 0 + br i1 %.not.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i", label %10 -7: ; preds = %4 - %8 = getelementptr inbounds i8, ptr %2, i64 16 - %9 = load i64, ptr %8, align 8, !noalias !12957, !noundef !4 - %10 = icmp eq i64 %9, 0 - br i1 %10, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i", label %11 +10: ; preds = %7 + %11 = getelementptr inbounds i8, ptr %2, i64 16 + %12 = load i64, ptr %11, align 8, !noalias !12957, !noundef !4 + %13 = icmp eq i64 %12, 0 + br i1 %13, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i", label %14 -11: ; preds = %7 - %12 = load ptr, ptr %2, align 8, !noalias !12957, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %12, i64 noundef %9, i64 noundef %6) #40 +14: ; preds = %10 + %15 = load ptr, ptr %2, align 8, !noalias !12957, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %15, i64 noundef %12, i64 noundef %9) #40 br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i" -"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i": ; preds = %11, %7, %4 +"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i": ; preds = %14, %10, %7 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2), !noalias !12957 br label %"_ZN4core3ptr101drop_in_place$LT$wasmtime_environ..component..info..CoreExport$LT$wasmtime_types..EntityIndex$GT$$GT$17ha68c621d7f1b535cE.exit" } @@ -24221,32 +24240,41 @@ define hidden void @"_ZN4core3ptr87drop_in_place$LT$alloc..sync..Arc$LT$wasmtime define internal fastcc void @"_ZN4core3ptr91drop_in_place$LT$core..option..Option$LT$wasmtime_environ..component..info..CoreDef$GT$$GT$17hec8f7a8242096e63E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %0) unnamed_addr #1 personality ptr @rust_eh_personality { %2 = alloca { [1 x i64], i64, [1 x i64] }, align 8 %3 = load i64, ptr %0, align 8, !range !1334, !noundef !4 - %or.cond.i = icmp slt i64 %3, 0 - br i1 %or.cond.i, label %"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E.exit", label %4 + %4 = icmp eq i64 %3, -9223372036854775805 + br i1 %4, label %"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E.exit", label %5 -"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E.exit": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i", %1 +"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E.exit": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i", %5, %1 ret void -4: ; preds = %1 +5: ; preds = %1 + %6 = icmp ugt i64 %3, -9223372036854775808 + %7 = and i64 %3, 3 + %cond1.i = icmp ne i64 %7, 0 + %cond.not2.i = and i1 %6, %cond1.i + %8 = icmp eq i64 %3, -9223372036854775808 + %or.cond.i = or i1 %8, %cond.not2.i + br i1 %or.cond.i, label %"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E.exit", label %9 + +9: ; preds = %5 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !13014 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h94a57ea85edebb10E.llvm.5456684732158232753"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %0) - %5 = getelementptr inbounds i8, ptr %2, i64 8 - %6 = load i64, ptr %5, align 8, !range !878, !noalias !13014, !noundef !4 - %.not.i.i.i.i.i.i.i = icmp eq i64 %6, 0 - br i1 %.not.i.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i", label %7 + %10 = getelementptr inbounds i8, ptr %2, i64 8 + %11 = load i64, ptr %10, align 8, !range !878, !noalias !13014, !noundef !4 + %.not.i.i.i.i.i.i.i = icmp eq i64 %11, 0 + br i1 %.not.i.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i", label %12 -7: ; preds = %4 - %8 = getelementptr inbounds i8, ptr %2, i64 16 - %9 = load i64, ptr %8, align 8, !noalias !13014, !noundef !4 - %10 = icmp eq i64 %9, 0 - br i1 %10, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i", label %11 +12: ; preds = %9 + %13 = getelementptr inbounds i8, ptr %2, i64 16 + %14 = load i64, ptr %13, align 8, !noalias !13014, !noundef !4 + %15 = icmp eq i64 %14, 0 + br i1 %15, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i", label %16 -11: ; preds = %7 - %12 = load ptr, ptr %2, align 8, !noalias !13014, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %12, i64 noundef %9, i64 noundef %6) #40 +16: ; preds = %12 + %17 = load ptr, ptr %2, align 8, !noalias !13014, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %17, i64 noundef %14, i64 noundef %11) #40 br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i" -"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i": ; preds = %11, %7, %4 +"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i": ; preds = %16, %12, %9 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2), !noalias !13014 br label %"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E.exit" } diff --git a/bench/wasmtime-rs/optimized/2lz954crgst412nx.ll b/bench/wasmtime-rs/optimized/2lz954crgst412nx.ll index 731fde9ca58..e4db5d975a0 100644 --- a/bench/wasmtime-rs/optimized/2lz954crgst412nx.ll +++ b/bench/wasmtime-rs/optimized/2lz954crgst412nx.ll @@ -5845,7 +5845,7 @@ _ZN16wasmtime_runtime8instance9allocator7pooling24PoolingInstanceAllocator32vali call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) %30 = call noundef nonnull ptr @"_ZN6anyhow5error31_$LT$impl$u20$anyhow..Error$GT$3msg17he21d583fd4e270a6E"(ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %9) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) - br label %85 + br label %86 31: ; preds = %5 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) @@ -5867,179 +5867,182 @@ _ZN16wasmtime_runtime8instance9allocator7pooling24PoolingInstanceAllocator32vali %36 = getelementptr inbounds i8, ptr %4, i64 40 br label %41 -._crit_edge: ; preds = %89 +._crit_edge: ; preds = %90 %37 = getelementptr inbounds i8, ptr %0, i64 536 %38 = load i32, ptr %37, align 8, !noundef !4 %39 = zext i32 %38 to i64 - %40 = icmp ugt i64 %92, %39 - br i1 %40, label %53, label %48 - -41: ; preds = %.lr.ph, %89 - %42 = phi i64 [ 0, %.lr.ph ], [ %90, %89 ] - %43 = phi i64 [ 0, %.lr.ph ], [ %91, %89 ] - %44 = phi i64 [ 0, %.lr.ph ], [ %92, %89 ] - %.sroa.0.042 = phi ptr [ %.val34, %.lr.ph ], [ %45, %89 ] + %40 = icmp ugt i64 %93, %39 + br i1 %40, label %54, label %49 + +41: ; preds = %.lr.ph, %90 + %42 = phi i64 [ 0, %.lr.ph ], [ %91, %90 ] + %43 = phi i64 [ 0, %.lr.ph ], [ %92, %90 ] + %44 = phi i64 [ 0, %.lr.ph ], [ %93, %90 ] + %.sroa.0.042 = phi ptr [ %.val34, %.lr.ph ], [ %45, %90 ] %45 = getelementptr inbounds i8, ptr %.sroa.0.042, i64 80 %46 = load i64, ptr %.sroa.0.042, align 8, !range !794, !noundef !4 %47 = icmp ult i64 %46, -9223372036854775807 - br i1 %47, label %87, label %89 - -48: ; preds = %._crit_edge - %49 = getelementptr inbounds i8, ptr %0, i64 540 - %50 = load i32, ptr %49, align 4, !noundef !4 - %51 = zext i32 %50 to i64 - %52 = icmp ugt i64 %91, %51 - br i1 %52, label %67, label %62 - -53: ; preds = %._crit_edge + %48 = and i64 %46, 7 + %switch40 = icmp eq i64 %48, 0 + %switch = or i1 %47, %switch40 + br i1 %switch, label %88, label %90 + +49: ; preds = %._crit_edge + %50 = getelementptr inbounds i8, ptr %0, i64 540 + %51 = load i32, ptr %50, align 4, !noundef !4 + %52 = zext i32 %51 to i64 + %53 = icmp ugt i64 %92, %52 + br i1 %53, label %68, label %63 + +54: ; preds = %._crit_edge call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %17) call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) store ptr %22, ptr %16, align 8 - %54 = getelementptr inbounds i8, ptr %16, i64 8 - store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h0516a742b2dd93cdE", ptr %54, align 8 - %55 = getelementptr inbounds i8, ptr %16, i64 16 - store ptr %37, ptr %55, align 8 - %56 = getelementptr inbounds i8, ptr %16, i64 24 - store ptr @"_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h4b9fb787c4dcbeb9E", ptr %56, align 8 + %55 = getelementptr inbounds i8, ptr %16, i64 8 + store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h0516a742b2dd93cdE", ptr %55, align 8 + %56 = getelementptr inbounds i8, ptr %16, i64 16 + store ptr %37, ptr %56, align 8 + %57 = getelementptr inbounds i8, ptr %16, i64 24 + store ptr @"_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h4b9fb787c4dcbeb9E", ptr %57, align 8 store ptr @anon.48a310daf047e914c00cc15599afb284.157, ptr %17, align 8, !alias.scope !795, !noalias !798 - %57 = getelementptr inbounds i8, ptr %17, i64 8 - store i64 2, ptr %57, align 8, !alias.scope !795, !noalias !798 - %58 = getelementptr inbounds i8, ptr %17, i64 32 - store ptr null, ptr %58, align 8, !alias.scope !795, !noalias !798 - %59 = getelementptr inbounds i8, ptr %17, i64 16 - store ptr %16, ptr %59, align 8, !alias.scope !795, !noalias !798 - %60 = getelementptr inbounds i8, ptr %17, i64 24 - store i64 2, ptr %60, align 8, !alias.scope !795, !noalias !798 + %58 = getelementptr inbounds i8, ptr %17, i64 8 + store i64 2, ptr %58, align 8, !alias.scope !795, !noalias !798 + %59 = getelementptr inbounds i8, ptr %17, i64 32 + store ptr null, ptr %59, align 8, !alias.scope !795, !noalias !798 + %60 = getelementptr inbounds i8, ptr %17, i64 16 + store ptr %16, ptr %60, align 8, !alias.scope !795, !noalias !798 + %61 = getelementptr inbounds i8, ptr %17, i64 24 + store i64 2, ptr %61, align 8, !alias.scope !795, !noalias !798 call fastcc void @_ZN5alloc3fmt6format17h7ead8f60e83381d7E(ptr noalias nocapture noundef align 8 dereferenceable(24) %18, ptr noalias nocapture noundef align 8 dereferenceable(48) %17) call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %17) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) - %61 = call noundef nonnull ptr @"_ZN6anyhow5error31_$LT$impl$u20$anyhow..Error$GT$3msg17he21d583fd4e270a6E"(ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %18) - br label %86 + %62 = call noundef nonnull ptr @"_ZN6anyhow5error31_$LT$impl$u20$anyhow..Error$GT$3msg17he21d583fd4e270a6E"(ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %18) + br label %87 -62: ; preds = %48 - %63 = getelementptr inbounds i8, ptr %0, i64 544 - %64 = load i32, ptr %63, align 8, !noundef !4 - %65 = zext i32 %64 to i64 - %66 = icmp ugt i64 %90, %65 - br i1 %66, label %76, label %.thread43 +63: ; preds = %49 + %64 = getelementptr inbounds i8, ptr %0, i64 544 + %65 = load i32, ptr %64, align 8, !noundef !4 + %66 = zext i32 %65 to i64 + %67 = icmp ugt i64 %91, %66 + br i1 %67, label %77, label %.thread43 -67: ; preds = %48 +68: ; preds = %49 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %14) call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) store ptr %21, ptr %13, align 8 - %68 = getelementptr inbounds i8, ptr %13, i64 8 - store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h0516a742b2dd93cdE", ptr %68, align 8 - %69 = getelementptr inbounds i8, ptr %13, i64 16 - store ptr %49, ptr %69, align 8 - %70 = getelementptr inbounds i8, ptr %13, i64 24 - store ptr @"_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h4b9fb787c4dcbeb9E", ptr %70, align 8 + %69 = getelementptr inbounds i8, ptr %13, i64 8 + store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h0516a742b2dd93cdE", ptr %69, align 8 + %70 = getelementptr inbounds i8, ptr %13, i64 16 + store ptr %50, ptr %70, align 8 + %71 = getelementptr inbounds i8, ptr %13, i64 24 + store ptr @"_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h4b9fb787c4dcbeb9E", ptr %71, align 8 store ptr @anon.48a310daf047e914c00cc15599afb284.155, ptr %14, align 8, !alias.scope !801, !noalias !804 - %71 = getelementptr inbounds i8, ptr %14, i64 8 - store i64 2, ptr %71, align 8, !alias.scope !801, !noalias !804 - %72 = getelementptr inbounds i8, ptr %14, i64 32 - store ptr null, ptr %72, align 8, !alias.scope !801, !noalias !804 - %73 = getelementptr inbounds i8, ptr %14, i64 16 - store ptr %13, ptr %73, align 8, !alias.scope !801, !noalias !804 - %74 = getelementptr inbounds i8, ptr %14, i64 24 - store i64 2, ptr %74, align 8, !alias.scope !801, !noalias !804 + %72 = getelementptr inbounds i8, ptr %14, i64 8 + store i64 2, ptr %72, align 8, !alias.scope !801, !noalias !804 + %73 = getelementptr inbounds i8, ptr %14, i64 32 + store ptr null, ptr %73, align 8, !alias.scope !801, !noalias !804 + %74 = getelementptr inbounds i8, ptr %14, i64 16 + store ptr %13, ptr %74, align 8, !alias.scope !801, !noalias !804 + %75 = getelementptr inbounds i8, ptr %14, i64 24 + store i64 2, ptr %75, align 8, !alias.scope !801, !noalias !804 call fastcc void @_ZN5alloc3fmt6format17h7ead8f60e83381d7E(ptr noalias nocapture noundef align 8 dereferenceable(24) %15, ptr noalias nocapture noundef align 8 dereferenceable(48) %14) call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %14) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) - %75 = call noundef nonnull ptr @"_ZN6anyhow5error31_$LT$impl$u20$anyhow..Error$GT$3msg17he21d583fd4e270a6E"(ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %15) - br label %86 + %76 = call noundef nonnull ptr @"_ZN6anyhow5error31_$LT$impl$u20$anyhow..Error$GT$3msg17he21d583fd4e270a6E"(ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %15) + br label %87 -.thread43: ; preds = %31, %62 +.thread43: ; preds = %31, %63 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) - br label %85 + br label %86 -76: ; preds = %62 +77: ; preds = %63 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %11) call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) store ptr %20, ptr %10, align 8 - %77 = getelementptr inbounds i8, ptr %10, i64 8 - store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h0516a742b2dd93cdE", ptr %77, align 8 - %78 = getelementptr inbounds i8, ptr %10, i64 16 - store ptr %63, ptr %78, align 8 - %79 = getelementptr inbounds i8, ptr %10, i64 24 - store ptr @"_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h4b9fb787c4dcbeb9E", ptr %79, align 8 + %78 = getelementptr inbounds i8, ptr %10, i64 8 + store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h0516a742b2dd93cdE", ptr %78, align 8 + %79 = getelementptr inbounds i8, ptr %10, i64 16 + store ptr %64, ptr %79, align 8 + %80 = getelementptr inbounds i8, ptr %10, i64 24 + store ptr @"_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17h4b9fb787c4dcbeb9E", ptr %80, align 8 store ptr @anon.48a310daf047e914c00cc15599afb284.153, ptr %11, align 8, !alias.scope !807, !noalias !810 - %80 = getelementptr inbounds i8, ptr %11, i64 8 - store i64 2, ptr %80, align 8, !alias.scope !807, !noalias !810 - %81 = getelementptr inbounds i8, ptr %11, i64 32 - store ptr null, ptr %81, align 8, !alias.scope !807, !noalias !810 - %82 = getelementptr inbounds i8, ptr %11, i64 16 - store ptr %10, ptr %82, align 8, !alias.scope !807, !noalias !810 - %83 = getelementptr inbounds i8, ptr %11, i64 24 - store i64 2, ptr %83, align 8, !alias.scope !807, !noalias !810 + %81 = getelementptr inbounds i8, ptr %11, i64 8 + store i64 2, ptr %81, align 8, !alias.scope !807, !noalias !810 + %82 = getelementptr inbounds i8, ptr %11, i64 32 + store ptr null, ptr %82, align 8, !alias.scope !807, !noalias !810 + %83 = getelementptr inbounds i8, ptr %11, i64 16 + store ptr %10, ptr %83, align 8, !alias.scope !807, !noalias !810 + %84 = getelementptr inbounds i8, ptr %11, i64 24 + store i64 2, ptr %84, align 8, !alias.scope !807, !noalias !810 call fastcc void @_ZN5alloc3fmt6format17h7ead8f60e83381d7E(ptr noalias nocapture noundef align 8 dereferenceable(24) %12, ptr noalias nocapture noundef align 8 dereferenceable(48) %11) call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %11) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) - %84 = call noundef nonnull ptr @"_ZN6anyhow5error31_$LT$impl$u20$anyhow..Error$GT$3msg17he21d583fd4e270a6E"(ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %12) - br label %86 + %85 = call noundef nonnull ptr @"_ZN6anyhow5error31_$LT$impl$u20$anyhow..Error$GT$3msg17he21d583fd4e270a6E"(ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %12) + br label %87 -85: ; preds = %_ZN16wasmtime_runtime8instance9allocator7pooling24PoolingInstanceAllocator32validate_component_instance_size17hcf0a5c44b5b19f29E.exit, %86, %.thread43 - %.0 = phi ptr [ %.1, %86 ], [ null, %.thread43 ], [ %30, %_ZN16wasmtime_runtime8instance9allocator7pooling24PoolingInstanceAllocator32validate_component_instance_size17hcf0a5c44b5b19f29E.exit ] +86: ; preds = %_ZN16wasmtime_runtime8instance9allocator7pooling24PoolingInstanceAllocator32validate_component_instance_size17hcf0a5c44b5b19f29E.exit, %87, %.thread43 + %.0 = phi ptr [ %.1, %87 ], [ null, %.thread43 ], [ %30, %_ZN16wasmtime_runtime8instance9allocator7pooling24PoolingInstanceAllocator32validate_component_instance_size17hcf0a5c44b5b19f29E.exit ] ret ptr %.0 -86: ; preds = %117, %76, %67, %53 - %.1 = phi ptr [ %61, %53 ], [ %75, %67 ], [ %84, %76 ], [ %99, %117 ] +87: ; preds = %118, %77, %68, %54 + %.1 = phi ptr [ %62, %54 ], [ %76, %68 ], [ %85, %77 ], [ %100, %118 ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) - br label %85 - -87: ; preds = %41 - %88 = icmp eq i64 %46, -9223372036854775808 - br i1 %88, label %94, label %101 - -89: ; preds = %41, %103, %101 - %90 = phi i64 [ %42, %41 ], [ %116, %103 ], [ %42, %101 ] - %91 = phi i64 [ %43, %41 ], [ %110, %103 ], [ %43, %101 ] - %92 = phi i64 [ %44, %41 ], [ %104, %103 ], [ %102, %101 ] - %93 = icmp eq ptr %45, %34 - br i1 %93, label %._crit_edge, label %41 - -94: ; preds = %87 - %95 = getelementptr inbounds i8, ptr %.sroa.0.042, i64 24 - %96 = load i32, ptr %95, align 8, !noundef !4 - %97 = load ptr, ptr %36, align 8, !invariant.load !4, !nonnull !4 - %98 = call noundef align 8 dereferenceable(464) ptr %97(ptr noundef nonnull align 1 %3, i32 noundef %96) + br label %86 + +88: ; preds = %41 + %89 = icmp eq i64 %46, -9223372036854775808 + br i1 %89, label %95, label %102 + +90: ; preds = %41, %104, %102 + %91 = phi i64 [ %42, %41 ], [ %117, %104 ], [ %42, %102 ] + %92 = phi i64 [ %43, %41 ], [ %111, %104 ], [ %43, %102 ] + %93 = phi i64 [ %44, %41 ], [ %105, %104 ], [ %103, %102 ] + %94 = icmp eq ptr %45, %34 + br i1 %94, label %._crit_edge, label %41 + +95: ; preds = %88 + %96 = getelementptr inbounds i8, ptr %.sroa.0.042, i64 24 + %97 = load i32, ptr %96, align 8, !noundef !4 + %98 = load ptr, ptr %36, align 8, !invariant.load !4, !nonnull !4 + %99 = call noundef align 8 dereferenceable(464) ptr %98(ptr noundef nonnull align 1 %3, i32 noundef %97) call void @llvm.lifetime.start.p0(i64 116, ptr nonnull %19) - call void @"_ZN16wasmtime_environ9vmoffsets18VMOffsets$LT$P$GT$3new17h10d406b46629e5c2E"(ptr noalias nocapture noundef nonnull sret({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, {} }) align 4 dereferenceable(116) %19, ptr noalias noundef nonnull readonly align 8 dereferenceable(464) %98) - %99 = call noundef ptr @"_ZN153_$LT$wasmtime_runtime..instance..allocator..pooling..PoolingInstanceAllocator$u20$as$u20$wasmtime_runtime..instance..allocator..InstanceAllocatorImpl$GT$20validate_module_impl17hee3d4b4f500cb25fE"(ptr noundef nonnull align 8 %0, ptr noalias noundef nonnull readonly align 8 dereferenceable(464) %98, ptr noalias noundef nonnull readonly align 4 dereferenceable(116) %19) - %100 = icmp eq ptr %99, null - br i1 %100, label %103, label %117 - -101: ; preds = %87 - %102 = add i64 %44, 1 - store i64 %102, ptr %22, align 8 - br label %89 - -103: ; preds = %94 - %104 = add i64 %44, 1 - store i64 %104, ptr %22, align 8 - %105 = getelementptr inbounds i8, ptr %98, i64 288 - %106 = load i64, ptr %105, align 8, !noundef !4 - %107 = getelementptr inbounds i8, ptr %98, i64 440 - %108 = load i64, ptr %107, align 8, !noundef !4 - %109 = sub i64 %106, %108 - %110 = add i64 %109, %43 - store i64 %110, ptr %21, align 8 - %111 = getelementptr inbounds i8, ptr %98, i64 264 - %112 = load i64, ptr %111, align 8, !noundef !4 - %113 = getelementptr inbounds i8, ptr %98, i64 432 - %114 = load i64, ptr %113, align 8, !noundef !4 - %115 = sub i64 %112, %114 - %116 = add i64 %115, %42 - store i64 %116, ptr %20, align 8 + call void @"_ZN16wasmtime_environ9vmoffsets18VMOffsets$LT$P$GT$3new17h10d406b46629e5c2E"(ptr noalias nocapture noundef nonnull sret({ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, {} }) align 4 dereferenceable(116) %19, ptr noalias noundef nonnull readonly align 8 dereferenceable(464) %99) + %100 = call noundef ptr @"_ZN153_$LT$wasmtime_runtime..instance..allocator..pooling..PoolingInstanceAllocator$u20$as$u20$wasmtime_runtime..instance..allocator..InstanceAllocatorImpl$GT$20validate_module_impl17hee3d4b4f500cb25fE"(ptr noundef nonnull align 8 %0, ptr noalias noundef nonnull readonly align 8 dereferenceable(464) %99, ptr noalias noundef nonnull readonly align 4 dereferenceable(116) %19) + %101 = icmp eq ptr %100, null + br i1 %101, label %104, label %118 + +102: ; preds = %88 + %103 = add i64 %44, 1 + store i64 %103, ptr %22, align 8 + br label %90 + +104: ; preds = %95 + %105 = add i64 %44, 1 + store i64 %105, ptr %22, align 8 + %106 = getelementptr inbounds i8, ptr %99, i64 288 + %107 = load i64, ptr %106, align 8, !noundef !4 + %108 = getelementptr inbounds i8, ptr %99, i64 440 + %109 = load i64, ptr %108, align 8, !noundef !4 + %110 = sub i64 %107, %109 + %111 = add i64 %110, %43 + store i64 %111, ptr %21, align 8 + %112 = getelementptr inbounds i8, ptr %99, i64 264 + %113 = load i64, ptr %112, align 8, !noundef !4 + %114 = getelementptr inbounds i8, ptr %99, i64 432 + %115 = load i64, ptr %114, align 8, !noundef !4 + %116 = sub i64 %113, %115 + %117 = add i64 %116, %42 + store i64 %117, ptr %20, align 8 call void @llvm.lifetime.end.p0(i64 116, ptr nonnull %19) - br label %89 + br label %90 -117: ; preds = %94 +118: ; preds = %95 call void @llvm.lifetime.end.p0(i64 116, ptr nonnull %19) - br label %86 + br label %87 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/wasmtime-rs/optimized/45190zkycf5izngt.ll b/bench/wasmtime-rs/optimized/45190zkycf5izngt.ll index 6b883e92388..42957ac55f9 100644 --- a/bench/wasmtime-rs/optimized/45190zkycf5izngt.ll +++ b/bench/wasmtime-rs/optimized/45190zkycf5izngt.ll @@ -2731,43 +2731,48 @@ define internal fastcc void @"_ZN4core3ptr62drop_in_place$LT$wasmtime_environ..c %6 = select i1 %5, i64 %4, i64 3 switch i64 %6, label %"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E.exit" [ i64 0, label %7 - i64 3, label %19 + i64 3, label %22 ] -"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E.exit": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i", %7, %19, %1 +"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E.exit": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i", %7, %22, %1 ret void 7: ; preds = %1 %8 = getelementptr inbounds i8, ptr %0, i64 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !682) %9 = load i64, ptr %8, align 8, !range !685, !alias.scope !682, !noundef !4 - %or.cond.i = icmp slt i64 %9, 0 - br i1 %or.cond.i, label %"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E.exit", label %10 - -10: ; preds = %7 + %10 = icmp ugt i64 %9, -9223372036854775808 + %11 = and i64 %9, 3 + %cond1.i = icmp ne i64 %11, 0 + %cond.not2.i = and i1 %10, %cond1.i + %12 = icmp eq i64 %9, -9223372036854775808 + %or.cond.i = or i1 %12, %cond.not2.i + br i1 %or.cond.i, label %"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E.exit", label %13 + +13: ; preds = %7 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !686 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h94a57ea85edebb10E.llvm.5456684732158232753"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %8) - %11 = getelementptr inbounds i8, ptr %2, i64 8 - %12 = load i64, ptr %11, align 8, !range !67, !noalias !686, !noundef !4 - %.not.i.i.i.i.i.i.i = icmp eq i64 %12, 0 - br i1 %.not.i.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i", label %13 + %14 = getelementptr inbounds i8, ptr %2, i64 8 + %15 = load i64, ptr %14, align 8, !range !67, !noalias !686, !noundef !4 + %.not.i.i.i.i.i.i.i = icmp eq i64 %15, 0 + br i1 %.not.i.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i", label %16 -13: ; preds = %10 - %14 = getelementptr inbounds i8, ptr %2, i64 16 - %15 = load i64, ptr %14, align 8, !noalias !686, !noundef !4 - %16 = icmp eq i64 %15, 0 - br i1 %16, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i", label %17 +16: ; preds = %13 + %17 = getelementptr inbounds i8, ptr %2, i64 16 + %18 = load i64, ptr %17, align 8, !noalias !686, !noundef !4 + %19 = icmp eq i64 %18, 0 + br i1 %19, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i", label %20 -17: ; preds = %13 - %18 = load ptr, ptr %2, align 8, !noalias !686, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %18, i64 noundef %15, i64 noundef %12) #61 +20: ; preds = %16 + %21 = load ptr, ptr %2, align 8, !noalias !686, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %21, i64 noundef %18, i64 noundef %15) #61 br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i" -"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i": ; preds = %17, %13, %10 +"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i": ; preds = %20, %16, %13 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2), !noalias !686 br label %"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E.exit" -19: ; preds = %1 +22: ; preds = %1 tail call void @"_ZN4core3ptr127drop_in_place$LT$indexmap..map..core..IndexMapCore$LT$alloc..string..String$C$wasmtime_environ..component..info..Export$GT$$GT$17hfb450d59ec2c3a60E.llvm.5456684732158232753"(ptr noalias noundef nonnull align 8 dereferenceable(56) %0) br label %"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E.exit" } @@ -2776,32 +2781,37 @@ define internal fastcc void @"_ZN4core3ptr62drop_in_place$LT$wasmtime_environ..c define internal fastcc void @"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %0) unnamed_addr #1 personality ptr @rust_eh_personality { %2 = alloca { [1 x i64], i64, [1 x i64] }, align 8 %3 = load i64, ptr %0, align 8, !range !685, !noundef !4 - %or.cond = icmp slt i64 %3, 0 - br i1 %or.cond, label %"_ZN4core3ptr101drop_in_place$LT$wasmtime_environ..component..info..CoreExport$LT$wasmtime_types..EntityIndex$GT$$GT$17ha68c621d7f1b535cE.exit", label %4 + %4 = icmp ugt i64 %3, -9223372036854775808 + %5 = and i64 %3, 3 + %cond1 = icmp ne i64 %5, 0 + %cond.not2 = and i1 %4, %cond1 + %6 = icmp eq i64 %3, -9223372036854775808 + %or.cond = or i1 %6, %cond.not2 + br i1 %or.cond, label %"_ZN4core3ptr101drop_in_place$LT$wasmtime_environ..component..info..CoreExport$LT$wasmtime_types..EntityIndex$GT$$GT$17ha68c621d7f1b535cE.exit", label %7 "_ZN4core3ptr101drop_in_place$LT$wasmtime_environ..component..info..CoreExport$LT$wasmtime_types..EntityIndex$GT$$GT$17ha68c621d7f1b535cE.exit": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i", %1 ret void -4: ; preds = %1 +7: ; preds = %1 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !699 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h94a57ea85edebb10E.llvm.5456684732158232753"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %0) - %5 = getelementptr inbounds i8, ptr %2, i64 8 - %6 = load i64, ptr %5, align 8, !range !67, !noalias !699, !noundef !4 - %.not.i.i.i.i.i.i = icmp eq i64 %6, 0 - br i1 %.not.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i", label %7 + %8 = getelementptr inbounds i8, ptr %2, i64 8 + %9 = load i64, ptr %8, align 8, !range !67, !noalias !699, !noundef !4 + %.not.i.i.i.i.i.i = icmp eq i64 %9, 0 + br i1 %.not.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i", label %10 -7: ; preds = %4 - %8 = getelementptr inbounds i8, ptr %2, i64 16 - %9 = load i64, ptr %8, align 8, !noalias !699, !noundef !4 - %10 = icmp eq i64 %9, 0 - br i1 %10, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i", label %11 +10: ; preds = %7 + %11 = getelementptr inbounds i8, ptr %2, i64 16 + %12 = load i64, ptr %11, align 8, !noalias !699, !noundef !4 + %13 = icmp eq i64 %12, 0 + br i1 %13, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i", label %14 -11: ; preds = %7 - %12 = load ptr, ptr %2, align 8, !noalias !699, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %12, i64 noundef %9, i64 noundef %6) #61 +14: ; preds = %10 + %15 = load ptr, ptr %2, align 8, !noalias !699, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %15, i64 noundef %12, i64 noundef %9) #61 br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i" -"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i": ; preds = %11, %7, %4 +"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i": ; preds = %14, %10, %7 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2), !noalias !699 br label %"_ZN4core3ptr101drop_in_place$LT$wasmtime_environ..component..info..CoreExport$LT$wasmtime_types..EntityIndex$GT$$GT$17ha68c621d7f1b535cE.exit" } diff --git a/bench/wasmtime-rs/optimized/4d0kq0wivbp8j3p.ll b/bench/wasmtime-rs/optimized/4d0kq0wivbp8j3p.ll index e356bb0f831..0da0f290f82 100644 --- a/bench/wasmtime-rs/optimized/4d0kq0wivbp8j3p.ll +++ b/bench/wasmtime-rs/optimized/4d0kq0wivbp8j3p.ll @@ -1914,43 +1914,48 @@ define internal fastcc void @"_ZN4core3ptr61drop_in_place$LT$wasmtime_environ..c %6 = select i1 %5, i64 %4, i64 3 switch i64 %6, label %"_ZN4core3ptr62drop_in_place$LT$wasmtime_environ..component..dfg..CoreDef$GT$17hd43e1f71f0421802E.exit" [ i64 0, label %7 - i64 3, label %19 + i64 3, label %22 ] -"_ZN4core3ptr62drop_in_place$LT$wasmtime_environ..component..dfg..CoreDef$GT$17hd43e1f71f0421802E.exit": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i.i", %7, %19, %1 +"_ZN4core3ptr62drop_in_place$LT$wasmtime_environ..component..dfg..CoreDef$GT$17hd43e1f71f0421802E.exit": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i.i", %7, %22, %1 ret void 7: ; preds = %1 %8 = getelementptr inbounds i8, ptr %0, i64 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !457) %9 = load i64, ptr %8, align 8, !range !460, !alias.scope !457, !noundef !4 - %or.cond.i = icmp slt i64 %9, 0 - br i1 %or.cond.i, label %"_ZN4core3ptr62drop_in_place$LT$wasmtime_environ..component..dfg..CoreDef$GT$17hd43e1f71f0421802E.exit", label %10 - -10: ; preds = %7 + %10 = icmp ugt i64 %9, -9223372036854775808 + %11 = and i64 %9, 3 + %cond1.i = icmp ne i64 %11, 0 + %cond.not2.i = and i1 %10, %cond1.i + %12 = icmp eq i64 %9, -9223372036854775808 + %or.cond.i = or i1 %12, %cond.not2.i + br i1 %or.cond.i, label %"_ZN4core3ptr62drop_in_place$LT$wasmtime_environ..component..dfg..CoreDef$GT$17hd43e1f71f0421802E.exit", label %13 + +13: ; preds = %7 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !461 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hef593d674f7cb77fE.llvm.11357125133562502446"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %8) - %11 = getelementptr inbounds i8, ptr %2, i64 8 - %12 = load i64, ptr %11, align 8, !range !474, !noalias !461, !noundef !4 - %.not.i.i.i.i.i.i.i = icmp eq i64 %12, 0 - br i1 %.not.i.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i.i", label %13 + %14 = getelementptr inbounds i8, ptr %2, i64 8 + %15 = load i64, ptr %14, align 8, !range !474, !noalias !461, !noundef !4 + %.not.i.i.i.i.i.i.i = icmp eq i64 %15, 0 + br i1 %.not.i.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i.i", label %16 -13: ; preds = %10 - %14 = getelementptr inbounds i8, ptr %2, i64 16 - %15 = load i64, ptr %14, align 8, !noalias !461, !noundef !4 - %16 = icmp eq i64 %15, 0 - br i1 %16, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i.i", label %17 +16: ; preds = %13 + %17 = getelementptr inbounds i8, ptr %2, i64 16 + %18 = load i64, ptr %17, align 8, !noalias !461, !noundef !4 + %19 = icmp eq i64 %18, 0 + br i1 %19, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i.i", label %20 -17: ; preds = %13 - %18 = load ptr, ptr %2, align 8, !noalias !461, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %18, i64 noundef %15, i64 noundef %12) #44 +20: ; preds = %16 + %21 = load ptr, ptr %2, align 8, !noalias !461, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %21, i64 noundef %18, i64 noundef %15) #44 br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i.i" -"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i.i": ; preds = %17, %13, %10 +"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i.i": ; preds = %20, %16, %13 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2), !noalias !461 br label %"_ZN4core3ptr62drop_in_place$LT$wasmtime_environ..component..dfg..CoreDef$GT$17hd43e1f71f0421802E.exit" -19: ; preds = %1 +22: ; preds = %1 tail call void @"_ZN4core3ptr126drop_in_place$LT$indexmap..map..core..IndexMapCore$LT$alloc..string..String$C$wasmtime_environ..component..dfg..Export$GT$$GT$17h273480a883fb2470E.llvm.11357125133562502446"(ptr noalias noundef nonnull align 8 dereferenceable(56) %0) br label %"_ZN4core3ptr62drop_in_place$LT$wasmtime_environ..component..dfg..CoreDef$GT$17hd43e1f71f0421802E.exit" } @@ -1959,32 +1964,37 @@ define internal fastcc void @"_ZN4core3ptr61drop_in_place$LT$wasmtime_environ..c define internal fastcc void @"_ZN4core3ptr62drop_in_place$LT$wasmtime_environ..component..dfg..CoreDef$GT$17hd43e1f71f0421802E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %0) unnamed_addr #3 personality ptr @rust_eh_personality { %2 = alloca { [1 x i64], i64, [1 x i64] }, align 8 %3 = load i64, ptr %0, align 8, !range !460, !noundef !4 - %or.cond = icmp slt i64 %3, 0 - br i1 %or.cond, label %"_ZN4core3ptr100drop_in_place$LT$wasmtime_environ..component..dfg..CoreExport$LT$wasmtime_types..EntityIndex$GT$$GT$17h30a5854aef9ce596E.exit", label %4 + %4 = icmp ugt i64 %3, -9223372036854775808 + %5 = and i64 %3, 3 + %cond1 = icmp ne i64 %5, 0 + %cond.not2 = and i1 %4, %cond1 + %6 = icmp eq i64 %3, -9223372036854775808 + %or.cond = or i1 %6, %cond.not2 + br i1 %or.cond, label %"_ZN4core3ptr100drop_in_place$LT$wasmtime_environ..component..dfg..CoreExport$LT$wasmtime_types..EntityIndex$GT$$GT$17h30a5854aef9ce596E.exit", label %7 "_ZN4core3ptr100drop_in_place$LT$wasmtime_environ..component..dfg..CoreExport$LT$wasmtime_types..EntityIndex$GT$$GT$17h30a5854aef9ce596E.exit": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i", %1 ret void -4: ; preds = %1 +7: ; preds = %1 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !475 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hef593d674f7cb77fE.llvm.11357125133562502446"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %0) - %5 = getelementptr inbounds i8, ptr %2, i64 8 - %6 = load i64, ptr %5, align 8, !range !474, !noalias !475, !noundef !4 - %.not.i.i.i.i.i.i = icmp eq i64 %6, 0 - br i1 %.not.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i", label %7 + %8 = getelementptr inbounds i8, ptr %2, i64 8 + %9 = load i64, ptr %8, align 8, !range !474, !noalias !475, !noundef !4 + %.not.i.i.i.i.i.i = icmp eq i64 %9, 0 + br i1 %.not.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i", label %10 -7: ; preds = %4 - %8 = getelementptr inbounds i8, ptr %2, i64 16 - %9 = load i64, ptr %8, align 8, !noalias !475, !noundef !4 - %10 = icmp eq i64 %9, 0 - br i1 %10, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i", label %11 +10: ; preds = %7 + %11 = getelementptr inbounds i8, ptr %2, i64 16 + %12 = load i64, ptr %11, align 8, !noalias !475, !noundef !4 + %13 = icmp eq i64 %12, 0 + br i1 %13, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i", label %14 -11: ; preds = %7 - %12 = load ptr, ptr %2, align 8, !noalias !475, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %12, i64 noundef %9, i64 noundef %6) #44 +14: ; preds = %10 + %15 = load ptr, ptr %2, align 8, !noalias !475, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %15, i64 noundef %12, i64 noundef %9) #44 br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i" -"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i": ; preds = %11, %7, %4 +"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i": ; preds = %14, %10, %7 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2), !noalias !475 br label %"_ZN4core3ptr100drop_in_place$LT$wasmtime_environ..component..dfg..CoreExport$LT$wasmtime_types..EntityIndex$GT$$GT$17h30a5854aef9ce596E.exit" } @@ -1998,43 +2008,48 @@ define internal fastcc void @"_ZN4core3ptr62drop_in_place$LT$wasmtime_environ..c %6 = select i1 %5, i64 %4, i64 3 switch i64 %6, label %"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h8f4440973ed26bfeE.exit" [ i64 0, label %7 - i64 3, label %19 + i64 3, label %22 ] -"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h8f4440973ed26bfeE.exit": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i.i", %7, %19, %1 +"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h8f4440973ed26bfeE.exit": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i.i", %7, %22, %1 ret void 7: ; preds = %1 %8 = getelementptr inbounds i8, ptr %0, i64 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !488) %9 = load i64, ptr %8, align 8, !range !491, !alias.scope !488, !noundef !4 - %or.cond.i = icmp slt i64 %9, 0 - br i1 %or.cond.i, label %"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h8f4440973ed26bfeE.exit", label %10 - -10: ; preds = %7 + %10 = icmp ugt i64 %9, -9223372036854775808 + %11 = and i64 %9, 3 + %cond1.i = icmp ne i64 %11, 0 + %cond.not2.i = and i1 %10, %cond1.i + %12 = icmp eq i64 %9, -9223372036854775808 + %or.cond.i = or i1 %12, %cond.not2.i + br i1 %or.cond.i, label %"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h8f4440973ed26bfeE.exit", label %13 + +13: ; preds = %7 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !492 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hef593d674f7cb77fE.llvm.11357125133562502446"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %8) - %11 = getelementptr inbounds i8, ptr %2, i64 8 - %12 = load i64, ptr %11, align 8, !range !474, !noalias !492, !noundef !4 - %.not.i.i.i.i.i.i.i = icmp eq i64 %12, 0 - br i1 %.not.i.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i.i", label %13 + %14 = getelementptr inbounds i8, ptr %2, i64 8 + %15 = load i64, ptr %14, align 8, !range !474, !noalias !492, !noundef !4 + %.not.i.i.i.i.i.i.i = icmp eq i64 %15, 0 + br i1 %.not.i.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i.i", label %16 -13: ; preds = %10 - %14 = getelementptr inbounds i8, ptr %2, i64 16 - %15 = load i64, ptr %14, align 8, !noalias !492, !noundef !4 - %16 = icmp eq i64 %15, 0 - br i1 %16, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i.i", label %17 +16: ; preds = %13 + %17 = getelementptr inbounds i8, ptr %2, i64 16 + %18 = load i64, ptr %17, align 8, !noalias !492, !noundef !4 + %19 = icmp eq i64 %18, 0 + br i1 %19, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i.i", label %20 -17: ; preds = %13 - %18 = load ptr, ptr %2, align 8, !noalias !492, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %18, i64 noundef %15, i64 noundef %12) #44 +20: ; preds = %16 + %21 = load ptr, ptr %2, align 8, !noalias !492, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %21, i64 noundef %18, i64 noundef %15) #44 br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i.i" -"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i.i": ; preds = %17, %13, %10 +"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i.i": ; preds = %20, %16, %13 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2), !noalias !492 br label %"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h8f4440973ed26bfeE.exit" -19: ; preds = %1 +22: ; preds = %1 tail call void @"_ZN4core3ptr127drop_in_place$LT$indexmap..map..core..IndexMapCore$LT$alloc..string..String$C$wasmtime_environ..component..info..Export$GT$$GT$17h8438fd024c94c3a8E.llvm.11357125133562502446"(ptr noalias noundef nonnull align 8 dereferenceable(56) %0) br label %"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h8f4440973ed26bfeE.exit" } @@ -2043,32 +2058,37 @@ define internal fastcc void @"_ZN4core3ptr62drop_in_place$LT$wasmtime_environ..c define internal fastcc void @"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h8f4440973ed26bfeE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %0) unnamed_addr #3 personality ptr @rust_eh_personality { %2 = alloca { [1 x i64], i64, [1 x i64] }, align 8 %3 = load i64, ptr %0, align 8, !range !491, !noundef !4 - %or.cond = icmp slt i64 %3, 0 - br i1 %or.cond, label %"_ZN4core3ptr101drop_in_place$LT$wasmtime_environ..component..info..CoreExport$LT$wasmtime_types..EntityIndex$GT$$GT$17hebed139244309372E.exit", label %4 + %4 = icmp ugt i64 %3, -9223372036854775808 + %5 = and i64 %3, 3 + %cond1 = icmp ne i64 %5, 0 + %cond.not2 = and i1 %4, %cond1 + %6 = icmp eq i64 %3, -9223372036854775808 + %or.cond = or i1 %6, %cond.not2 + br i1 %or.cond, label %"_ZN4core3ptr101drop_in_place$LT$wasmtime_environ..component..info..CoreExport$LT$wasmtime_types..EntityIndex$GT$$GT$17hebed139244309372E.exit", label %7 "_ZN4core3ptr101drop_in_place$LT$wasmtime_environ..component..info..CoreExport$LT$wasmtime_types..EntityIndex$GT$$GT$17hebed139244309372E.exit": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i", %1 ret void -4: ; preds = %1 +7: ; preds = %1 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !505 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hef593d674f7cb77fE.llvm.11357125133562502446"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %0) - %5 = getelementptr inbounds i8, ptr %2, i64 8 - %6 = load i64, ptr %5, align 8, !range !474, !noalias !505, !noundef !4 - %.not.i.i.i.i.i.i = icmp eq i64 %6, 0 - br i1 %.not.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i", label %7 + %8 = getelementptr inbounds i8, ptr %2, i64 8 + %9 = load i64, ptr %8, align 8, !range !474, !noalias !505, !noundef !4 + %.not.i.i.i.i.i.i = icmp eq i64 %9, 0 + br i1 %.not.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i", label %10 -7: ; preds = %4 - %8 = getelementptr inbounds i8, ptr %2, i64 16 - %9 = load i64, ptr %8, align 8, !noalias !505, !noundef !4 - %10 = icmp eq i64 %9, 0 - br i1 %10, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i", label %11 +10: ; preds = %7 + %11 = getelementptr inbounds i8, ptr %2, i64 16 + %12 = load i64, ptr %11, align 8, !noalias !505, !noundef !4 + %13 = icmp eq i64 %12, 0 + br i1 %13, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i", label %14 -11: ; preds = %7 - %12 = load ptr, ptr %2, align 8, !noalias !505, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %12, i64 noundef %9, i64 noundef %6) #44 +14: ; preds = %10 + %15 = load ptr, ptr %2, align 8, !noalias !505, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %15, i64 noundef %12, i64 noundef %9) #44 br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i" -"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i": ; preds = %11, %7, %4 +"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i": ; preds = %14, %10, %7 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2), !noalias !505 br label %"_ZN4core3ptr101drop_in_place$LT$wasmtime_environ..component..info..CoreExport$LT$wasmtime_types..EntityIndex$GT$$GT$17hebed139244309372E.exit" } @@ -2210,10 +2230,10 @@ define internal fastcc void @"_ZN4core3ptr85drop_in_place$LT$wasmtime_environ..c i64 0, label %10 i64 1, label %12 i64 2, label %35 - i64 3, label %71 + i64 3, label %74 ] -"_ZN4core3ptr89drop_in_place$LT$wasmtime_environ..component..translate..inline..ComponentInstanceDef$GT$17hbf9d780f179afd51E.exit": ; preds = %"_ZN4core3ptr79drop_in_place$LT$wasmtime_environ..component..translate..inline..ImportPath$GT$17haf9335a6ec1345fcE.exit.i6", %71, %"_ZN4core3ptr62drop_in_place$LT$wasmtime_environ..component..dfg..CoreDef$GT$17hd43e1f71f0421802E.exit.i", %"_ZN4core3ptr79drop_in_place$LT$wasmtime_environ..component..translate..inline..ImportPath$GT$17haf9335a6ec1345fcE.exit.i3", %34, %"_ZN4core3ptr79drop_in_place$LT$wasmtime_environ..component..translate..inline..ImportPath$GT$17haf9335a6ec1345fcE.exit.i", %10, %1 +"_ZN4core3ptr89drop_in_place$LT$wasmtime_environ..component..translate..inline..ComponentInstanceDef$GT$17hbf9d780f179afd51E.exit": ; preds = %"_ZN4core3ptr79drop_in_place$LT$wasmtime_environ..component..translate..inline..ImportPath$GT$17haf9335a6ec1345fcE.exit.i6", %74, %"_ZN4core3ptr62drop_in_place$LT$wasmtime_environ..component..dfg..CoreDef$GT$17hd43e1f71f0421802E.exit.i", %"_ZN4core3ptr79drop_in_place$LT$wasmtime_environ..component..translate..inline..ImportPath$GT$17haf9335a6ec1345fcE.exit.i3", %34, %"_ZN4core3ptr79drop_in_place$LT$wasmtime_environ..component..translate..inline..ImportPath$GT$17haf9335a6ec1345fcE.exit.i", %10, %1 ret void 10: ; preds = %1 @@ -2270,8 +2290,8 @@ define internal fastcc void @"_ZN4core3ptr85drop_in_place$LT$wasmtime_environ..c tail call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #46 unreachable -common.resume: ; preds = %80, %43, %67, %22 - %common.resume.op = phi { ptr, i32 } [ %23, %22 ], [ %44, %43 ], [ %68, %67 ], [ %81, %80 ] +common.resume: ; preds = %83, %43, %70, %22 + %common.resume.op = phi { ptr, i32 } [ %23, %22 ], [ %44, %43 ], [ %71, %70 ], [ %84, %83 ] resume { ptr, i32 } %common.resume.op "_ZN4core3ptr79drop_in_place$LT$wasmtime_environ..component..translate..inline..ImportPath$GT$17haf9335a6ec1345fcE.exit.i": ; preds = %30, %26, %"_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h08716c21af72e8e9E.llvm.11357125133562502446.exit.i.i.i" @@ -2337,100 +2357,105 @@ common.resume: ; preds = %80, %43, %67, %22 %56 = getelementptr inbounds i8, ptr %0, i64 104 tail call void @llvm.experimental.noalias.scope.decl(metadata !587) %57 = load i64, ptr %56, align 8, !range !460, !alias.scope !590, !noundef !4 - %or.cond.i.i = icmp slt i64 %57, 0 - br i1 %or.cond.i.i, label %"_ZN4core3ptr62drop_in_place$LT$wasmtime_environ..component..dfg..CoreDef$GT$17hd43e1f71f0421802E.exit.i", label %58 - -58: ; preds = %55 + %58 = icmp ugt i64 %57, -9223372036854775808 + %59 = and i64 %57, 3 + %cond1.i.i = icmp ne i64 %59, 0 + %cond.not2.i.i = and i1 %58, %cond1.i.i + %60 = icmp eq i64 %57, -9223372036854775808 + %or.cond.i.i = or i1 %60, %cond.not2.i.i + br i1 %or.cond.i.i, label %"_ZN4core3ptr62drop_in_place$LT$wasmtime_environ..component..dfg..CoreDef$GT$17hd43e1f71f0421802E.exit.i", label %61 + +61: ; preds = %55 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3), !noalias !591 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hef593d674f7cb77fE.llvm.11357125133562502446"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %56) - to label %.noexc.i unwind label %67 - -.noexc.i: ; preds = %58 - %59 = getelementptr inbounds i8, ptr %3, i64 8 - %60 = load i64, ptr %59, align 8, !range !474, !noalias !591, !noundef !4 - %.not.i.i.i.i.i.i.i.i = icmp eq i64 %60, 0 - br i1 %.not.i.i.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i.i.i", label %61 - -61: ; preds = %.noexc.i - %62 = getelementptr inbounds i8, ptr %3, i64 16 - %63 = load i64, ptr %62, align 8, !noalias !591, !noundef !4 - %64 = icmp eq i64 %63, 0 - br i1 %64, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i.i.i", label %65 - -65: ; preds = %61 - %66 = load ptr, ptr %3, align 8, !noalias !591, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %66, i64 noundef %63, i64 noundef %60) #44 + to label %.noexc.i unwind label %70 + +.noexc.i: ; preds = %61 + %62 = getelementptr inbounds i8, ptr %3, i64 8 + %63 = load i64, ptr %62, align 8, !range !474, !noalias !591, !noundef !4 + %.not.i.i.i.i.i.i.i.i = icmp eq i64 %63, 0 + br i1 %.not.i.i.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i.i.i", label %64 + +64: ; preds = %.noexc.i + %65 = getelementptr inbounds i8, ptr %3, i64 16 + %66 = load i64, ptr %65, align 8, !noalias !591, !noundef !4 + %67 = icmp eq i64 %66, 0 + br i1 %67, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i.i.i", label %68 + +68: ; preds = %64 + %69 = load ptr, ptr %3, align 8, !noalias !591, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %69, i64 noundef %66, i64 noundef %63) #44 br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i.i.i" -"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i.i.i": ; preds = %65, %61, %.noexc.i +"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i.i.i": ; preds = %68, %64, %.noexc.i call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3), !noalias !591 br label %"_ZN4core3ptr62drop_in_place$LT$wasmtime_environ..component..dfg..CoreDef$GT$17hd43e1f71f0421802E.exit.i" -67: ; preds = %58 - %68 = landingpad { ptr, i32 } +70: ; preds = %61 + %71 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr82drop_in_place$LT$wasmtime_environ..component..translate..adapt..AdapterOptions$GT$17hce5c2a29d6aab1b1E"(ptr noalias noundef nonnull align 8 dereferenceable(104) %0) #45 - to label %common.resume unwind label %69 + to label %common.resume unwind label %72 "_ZN4core3ptr62drop_in_place$LT$wasmtime_environ..component..dfg..CoreDef$GT$17hd43e1f71f0421802E.exit.i": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h2c22d33eaacbbdacE.exit.i.i.i.i", %55 tail call void @"_ZN4core3ptr82drop_in_place$LT$wasmtime_environ..component..translate..adapt..AdapterOptions$GT$17hce5c2a29d6aab1b1E"(ptr noalias noundef nonnull align 8 dereferenceable(104) %0) br label %"_ZN4core3ptr89drop_in_place$LT$wasmtime_environ..component..translate..inline..ComponentInstanceDef$GT$17hbf9d780f179afd51E.exit" -69: ; preds = %67 - %70 = landingpad { ptr, i32 } +72: ; preds = %70 + %73 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer tail call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #46 unreachable -71: ; preds = %1 - %72 = getelementptr inbounds i8, ptr %0, i64 8 +74: ; preds = %1 + %75 = getelementptr inbounds i8, ptr %0, i64 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !604) - %73 = load i64, ptr %72, align 8, !range !474, !alias.scope !604, !noundef !4 - %74 = icmp eq i64 %73, -9223372036854775808 - br i1 %74, label %"_ZN4core3ptr89drop_in_place$LT$wasmtime_environ..component..translate..inline..ComponentInstanceDef$GT$17hbf9d780f179afd51E.exit", label %75 + %76 = load i64, ptr %75, align 8, !range !474, !alias.scope !604, !noundef !4 + %77 = icmp eq i64 %76, -9223372036854775808 + br i1 %77, label %"_ZN4core3ptr89drop_in_place$LT$wasmtime_environ..component..translate..inline..ComponentInstanceDef$GT$17hbf9d780f179afd51E.exit", label %78 -75: ; preds = %71 +78: ; preds = %74 tail call void @llvm.experimental.noalias.scope.decl(metadata !607) tail call void @llvm.experimental.noalias.scope.decl(metadata !610) - %76 = getelementptr inbounds i8, ptr %0, i64 16 - %77 = load ptr, ptr %76, align 8, !alias.scope !613, !nonnull !4, !noundef !4 - %78 = getelementptr inbounds i8, ptr %0, i64 24 - %79 = load i64, ptr %78, align 8, !alias.scope !613, !noundef !4 - invoke void @"_ZN4core3ptr60drop_in_place$LT$$u5b$alloc..borrow..Cow$LT$str$GT$$u5d$$GT$17haecda856b5723f3dE.llvm.11357125133562502446"(ptr noalias noundef nonnull align 8 %77, i64 noundef %79) - to label %"_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h08716c21af72e8e9E.llvm.11357125133562502446.exit.i.i.i4" unwind label %80, !noalias !616 - -80: ; preds = %75 - %81 = landingpad { ptr, i32 } + %79 = getelementptr inbounds i8, ptr %0, i64 16 + %80 = load ptr, ptr %79, align 8, !alias.scope !613, !nonnull !4, !noundef !4 + %81 = getelementptr inbounds i8, ptr %0, i64 24 + %82 = load i64, ptr %81, align 8, !alias.scope !613, !noundef !4 + invoke void @"_ZN4core3ptr60drop_in_place$LT$$u5b$alloc..borrow..Cow$LT$str$GT$$u5d$$GT$17haecda856b5723f3dE.llvm.11357125133562502446"(ptr noalias noundef nonnull align 8 %80, i64 noundef %82) + to label %"_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h08716c21af72e8e9E.llvm.11357125133562502446.exit.i.i.i4" unwind label %83, !noalias !616 + +83: ; preds = %78 + %84 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr80drop_in_place$LT$alloc..raw_vec..RawVec$LT$alloc..borrow..Cow$LT$str$GT$$GT$$GT$17h2140404673532e42E.llvm.11357125133562502446"(ptr noalias noundef nonnull align 8 dereferenceable(16) %72) #45 - to label %common.resume unwind label %90 + invoke void @"_ZN4core3ptr80drop_in_place$LT$alloc..raw_vec..RawVec$LT$alloc..borrow..Cow$LT$str$GT$$GT$$GT$17h2140404673532e42E.llvm.11357125133562502446"(ptr noalias noundef nonnull align 8 dereferenceable(16) %75) #45 + to label %common.resume unwind label %93 -"_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h08716c21af72e8e9E.llvm.11357125133562502446.exit.i.i.i4": ; preds = %75 +"_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h08716c21af72e8e9E.llvm.11357125133562502446.exit.i.i.i4": ; preds = %78 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !617 - call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h817d92a37f3afebbE.llvm.11357125133562502446"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %72) - %82 = getelementptr inbounds i8, ptr %2, i64 8 - %83 = load i64, ptr %82, align 8, !range !474, !noalias !617, !noundef !4 - %.not.i.i.i.i.i5 = icmp eq i64 %83, 0 - br i1 %.not.i.i.i.i.i5, label %"_ZN4core3ptr79drop_in_place$LT$wasmtime_environ..component..translate..inline..ImportPath$GT$17haf9335a6ec1345fcE.exit.i6", label %84 - -84: ; preds = %"_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h08716c21af72e8e9E.llvm.11357125133562502446.exit.i.i.i4" - %85 = getelementptr inbounds i8, ptr %2, i64 16 - %86 = load i64, ptr %85, align 8, !noalias !617, !noundef !4 - %87 = icmp eq i64 %86, 0 - br i1 %87, label %"_ZN4core3ptr79drop_in_place$LT$wasmtime_environ..component..translate..inline..ImportPath$GT$17haf9335a6ec1345fcE.exit.i6", label %88 - -88: ; preds = %84 - %89 = load ptr, ptr %2, align 8, !noalias !617, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %89, i64 noundef %86, i64 noundef %83) #44 + call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h817d92a37f3afebbE.llvm.11357125133562502446"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %75) + %85 = getelementptr inbounds i8, ptr %2, i64 8 + %86 = load i64, ptr %85, align 8, !range !474, !noalias !617, !noundef !4 + %.not.i.i.i.i.i5 = icmp eq i64 %86, 0 + br i1 %.not.i.i.i.i.i5, label %"_ZN4core3ptr79drop_in_place$LT$wasmtime_environ..component..translate..inline..ImportPath$GT$17haf9335a6ec1345fcE.exit.i6", label %87 + +87: ; preds = %"_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h08716c21af72e8e9E.llvm.11357125133562502446.exit.i.i.i4" + %88 = getelementptr inbounds i8, ptr %2, i64 16 + %89 = load i64, ptr %88, align 8, !noalias !617, !noundef !4 + %90 = icmp eq i64 %89, 0 + br i1 %90, label %"_ZN4core3ptr79drop_in_place$LT$wasmtime_environ..component..translate..inline..ImportPath$GT$17haf9335a6ec1345fcE.exit.i6", label %91 + +91: ; preds = %87 + %92 = load ptr, ptr %2, align 8, !noalias !617, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %92, i64 noundef %89, i64 noundef %86) #44 br label %"_ZN4core3ptr79drop_in_place$LT$wasmtime_environ..component..translate..inline..ImportPath$GT$17haf9335a6ec1345fcE.exit.i6" -90: ; preds = %80 - %91 = landingpad { ptr, i32 } +93: ; preds = %83 + %94 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer tail call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #46 unreachable -"_ZN4core3ptr79drop_in_place$LT$wasmtime_environ..component..translate..inline..ImportPath$GT$17haf9335a6ec1345fcE.exit.i6": ; preds = %88, %84, %"_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h08716c21af72e8e9E.llvm.11357125133562502446.exit.i.i.i4" +"_ZN4core3ptr79drop_in_place$LT$wasmtime_environ..component..translate..inline..ImportPath$GT$17haf9335a6ec1345fcE.exit.i6": ; preds = %91, %87, %"_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h08716c21af72e8e9E.llvm.11357125133562502446.exit.i.i.i4" call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2), !noalias !617 br label %"_ZN4core3ptr89drop_in_place$LT$wasmtime_environ..component..translate..inline..ComponentInstanceDef$GT$17hbf9d780f179afd51E.exit" } diff --git a/bench/wasmtime-rs/optimized/joyny9bexuq72mb.ll b/bench/wasmtime-rs/optimized/joyny9bexuq72mb.ll index 4423c81531d..5aa9c823d4f 100644 --- a/bench/wasmtime-rs/optimized/joyny9bexuq72mb.ll +++ b/bench/wasmtime-rs/optimized/joyny9bexuq72mb.ll @@ -2965,7 +2965,7 @@ define hidden noalias noundef align 8 ptr @"_ZN16wasmtime_environ9component4info %.val24 = load i64, ptr %0, align 8, !range !1514, !alias.scope !2147, !noalias !2150, !noundef !16 %5 = add i64 %.val24, 9223372036854775807 %6 = icmp ult i64 %5, 2 - %7 = xor i64 %.val24, -9223372036854775808 + %7 = and i64 %.val24, 3 %8 = select i1 %6, i64 %7, i64 0 switch i64 %8, label %9 [ i64 0, label %10 @@ -3032,7 +3032,7 @@ define hidden noalias noundef align 8 ptr @"_ZN16wasmtime_environ9component4info %.val24 = load i64, ptr %0, align 8, !range !1514, !alias.scope !2214, !noalias !2217, !noundef !16 %5 = add i64 %.val24, 9223372036854775807 %6 = icmp ult i64 %5, 2 - %7 = xor i64 %.val24, -9223372036854775808 + %7 = and i64 %.val24, 3 %8 = select i1 %6, i64 %7, i64 0 switch i64 %8, label %9 [ i64 0, label %10 @@ -3158,7 +3158,7 @@ define hidden noalias noundef align 8 ptr @"_ZN16wasmtime_environ9component4info %.val23 = load i64, ptr %0, align 8, !range !1514, !alias.scope !2214, !noalias !2217, !noundef !16 %5 = add i64 %.val23, 9223372036854775807 %6 = icmp ult i64 %5, 2 - %7 = xor i64 %.val23, -9223372036854775808 + %7 = and i64 %.val23, 3 %8 = select i1 %6, i64 %7, i64 0 switch i64 %8, label %9 [ i64 0, label %10 @@ -3200,7 +3200,7 @@ define hidden noalias noundef align 8 ptr @"_ZN16wasmtime_environ9component4info %.val23 = load i64, ptr %0, align 8, !range !1514, !alias.scope !2147, !noalias !2150, !noundef !16 %5 = add i64 %.val23, 9223372036854775807 %6 = icmp ult i64 %5, 2 - %7 = xor i64 %.val23, -9223372036854775808 + %7 = and i64 %.val23, 3 %8 = select i1 %6, i64 %7, i64 0 switch i64 %8, label %9 [ i64 0, label %10 @@ -3240,7 +3240,7 @@ define hidden noundef align 8 ptr @"_ZN16wasmtime_environ9component4info1_104_$L %3 = load i64, ptr %0, align 8, !range !2313, !noundef !16 %4 = add i64 %3, 9223372036854775807 %5 = icmp ult i64 %4, 5 - %6 = xor i64 %3, -9223372036854775808 + %6 = and i64 %3, 7 %7 = select i1 %5, i64 %6, i64 0 switch i64 %7, label %8 [ i64 0, label %9 @@ -3427,7 +3427,7 @@ define hidden noundef align 8 ptr @"_ZN16wasmtime_environ9component4info1_104_$L %3 = load i64, ptr %0, align 8, !range !2313, !noundef !16 %4 = add i64 %3, 9223372036854775807 %5 = icmp ult i64 %4, 5 - %6 = xor i64 %3, -9223372036854775808 + %6 = and i64 %3, 7 %7 = select i1 %5, i64 %6, i64 0 switch i64 %7, label %8 [ i64 0, label %9 @@ -3502,7 +3502,7 @@ define hidden noundef align 8 ptr @"_ZN16wasmtime_environ9component4info1_104_$L %.val24.i.i26 = load i64, ptr %34, align 8, !range !1514, !alias.scope !2691, !noalias !2694, !noundef !16 %37 = add i64 %.val24.i.i26, 9223372036854775807 %38 = icmp ult i64 %37, 2 - %39 = xor i64 %.val24.i.i26, -9223372036854775808 + %39 = and i64 %.val24.i.i26, 3 %40 = select i1 %38, i64 %39, i64 0 switch i64 %40, label %41 [ i64 0, label %42 @@ -3547,7 +3547,7 @@ define hidden noundef align 8 ptr @"_ZN16wasmtime_environ9component4info1_104_$L %.val23.i.i = load i64, ptr %53, align 8, !range !1514, !alias.scope !2716, !noalias !2719, !noundef !16 %56 = add i64 %.val23.i.i, 9223372036854775807 %57 = icmp ult i64 %56, 2 - %58 = xor i64 %.val23.i.i, -9223372036854775808 + %58 = and i64 %.val23.i.i, 3 %59 = select i1 %57, i64 %58, i64 0 switch i64 %59, label %60 [ i64 0, label %61 @@ -3615,27 +3615,30 @@ define hidden noundef align 8 ptr @"_ZN16wasmtime_environ9component4info1_104_$L %82 = getelementptr inbounds i8, ptr %0, i64 24 %.val40.i.i = load i64, ptr %82, align 8, !alias.scope !2755, !noalias !2757 %83 = icmp eq i64 %.val39.i.i, -9223372036854775805 - br i1 %83, label %90, label %84 + br i1 %83, label %91, label %84 84: ; preds = %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17h225a7099f010c7dfE.exit.thread.i.i" %85 = icmp ult i64 %.val39.i.i, -9223372036854775807 - br i1 %85, label %86, label %90 - -86: ; preds = %84 - %87 = icmp eq i64 %.val39.i.i, -9223372036854775808 - %88 = add i64 %.val40.i.i, 21 - %89 = select i1 %87, i64 21, i64 %88 - br label %90 - -90: ; preds = %86, %84, %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17h225a7099f010c7dfE.exit.thread.i.i" - %.sink.i.i.i = phi i64 [ %89, %86 ], [ 1, %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17h225a7099f010c7dfE.exit.thread.i.i" ], [ 9, %84 ] - %91 = add i64 %81, 4 - %92 = add i64 %91, %.sink.i.i.i - store i64 %92, ptr %73, align 8, !alias.scope !2758, !noalias !2755 + %86 = and i64 %.val39.i.i, 3 + %switch3.i.i.i = icmp eq i64 %86, 0 + %switch.i.i.i = or i1 %85, %switch3.i.i.i + br i1 %switch.i.i.i, label %87, label %91 + +87: ; preds = %84 + %88 = icmp eq i64 %.val39.i.i, -9223372036854775808 + %89 = add i64 %.val40.i.i, 21 + %90 = select i1 %88, i64 21, i64 %89 + br label %91 + +91: ; preds = %87, %84, %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17h225a7099f010c7dfE.exit.thread.i.i" + %.sink.i.i.i = phi i64 [ %90, %87 ], [ 1, %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17h225a7099f010c7dfE.exit.thread.i.i" ], [ 9, %84 ] + %92 = add i64 %81, 4 + %93 = add i64 %92, %.sink.i.i.i + store i64 %93, ptr %73, align 8, !alias.scope !2758, !noalias !2755 br label %"_ZN89_$LT$$RF$mut$u20$bincode..ser..SizeChecker$LT$O$GT$$u20$as$u20$serde..ser..Serializer$GT$25serialize_newtype_variant17h2abe31c03023c118E.exit" -"_ZN89_$LT$$RF$mut$u20$bincode..ser..SizeChecker$LT$O$GT$$u20$as$u20$serde..ser..Serializer$GT$25serialize_newtype_variant17h2abe31c03023c118E.exit": ; preds = %90, %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17h225a7099f010c7dfE.exit.i.i", %18, %14, %20, %"_ZN89_$LT$$RF$mut$u20$bincode..ser..SizeChecker$LT$O$GT$$u20$as$u20$serde..ser..Serializer$GT$25serialize_newtype_variant17h2630fc673eff8563E.exit", %"_ZN89_$LT$$RF$mut$u20$bincode..ser..SizeChecker$LT$O$GT$$u20$as$u20$serde..ser..Serializer$GT$25serialize_newtype_variant17he48217817b94ed7aE.exit", %24 - %.0 = phi ptr [ null, %"_ZN89_$LT$$RF$mut$u20$bincode..ser..SizeChecker$LT$O$GT$$u20$as$u20$serde..ser..Serializer$GT$25serialize_newtype_variant17h2630fc673eff8563E.exit" ], [ null, %"_ZN89_$LT$$RF$mut$u20$bincode..ser..SizeChecker$LT$O$GT$$u20$as$u20$serde..ser..Serializer$GT$25serialize_newtype_variant17he48217817b94ed7aE.exit" ], [ null, %24 ], [ null, %20 ], [ %17, %14 ], [ %19, %18 ], [ null, %90 ], [ %79, %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17h225a7099f010c7dfE.exit.i.i" ] +"_ZN89_$LT$$RF$mut$u20$bincode..ser..SizeChecker$LT$O$GT$$u20$as$u20$serde..ser..Serializer$GT$25serialize_newtype_variant17h2abe31c03023c118E.exit": ; preds = %91, %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17h225a7099f010c7dfE.exit.i.i", %18, %14, %20, %"_ZN89_$LT$$RF$mut$u20$bincode..ser..SizeChecker$LT$O$GT$$u20$as$u20$serde..ser..Serializer$GT$25serialize_newtype_variant17h2630fc673eff8563E.exit", %"_ZN89_$LT$$RF$mut$u20$bincode..ser..SizeChecker$LT$O$GT$$u20$as$u20$serde..ser..Serializer$GT$25serialize_newtype_variant17he48217817b94ed7aE.exit", %24 + %.0 = phi ptr [ null, %"_ZN89_$LT$$RF$mut$u20$bincode..ser..SizeChecker$LT$O$GT$$u20$as$u20$serde..ser..Serializer$GT$25serialize_newtype_variant17h2630fc673eff8563E.exit" ], [ null, %"_ZN89_$LT$$RF$mut$u20$bincode..ser..SizeChecker$LT$O$GT$$u20$as$u20$serde..ser..Serializer$GT$25serialize_newtype_variant17he48217817b94ed7aE.exit" ], [ null, %24 ], [ null, %20 ], [ %17, %14 ], [ %19, %18 ], [ null, %91 ], [ %79, %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17h225a7099f010c7dfE.exit.i.i" ] ret ptr %.0 } @@ -3644,7 +3647,7 @@ define hidden noundef align 8 ptr @"_ZN16wasmtime_environ9component4info1_104_$L %3 = load i64, ptr %0, align 8, !range !2313, !noundef !16 %4 = add i64 %3, 9223372036854775807 %5 = icmp ult i64 %4, 5 - %6 = xor i64 %3, -9223372036854775808 + %6 = and i64 %3, 7 %7 = select i1 %5, i64 %6, i64 0 switch i64 %7, label %8 [ i64 0, label %9 @@ -3719,7 +3722,7 @@ define hidden noundef align 8 ptr @"_ZN16wasmtime_environ9component4info1_104_$L %.val24.i.i26 = load i64, ptr %34, align 8, !range !1514, !alias.scope !2833, !noalias !2836, !noundef !16 %37 = add i64 %.val24.i.i26, 9223372036854775807 %38 = icmp ult i64 %37, 2 - %39 = xor i64 %.val24.i.i26, -9223372036854775808 + %39 = and i64 %.val24.i.i26, 3 %40 = select i1 %38, i64 %39, i64 0 switch i64 %40, label %41 [ i64 0, label %42 @@ -3764,7 +3767,7 @@ define hidden noundef align 8 ptr @"_ZN16wasmtime_environ9component4info1_104_$L %.val23.i.i = load i64, ptr %53, align 8, !range !1514, !alias.scope !2858, !noalias !2861, !noundef !16 %56 = add i64 %.val23.i.i, 9223372036854775807 %57 = icmp ult i64 %56, 2 - %58 = xor i64 %.val23.i.i, -9223372036854775808 + %58 = and i64 %.val23.i.i, 3 %59 = select i1 %57, i64 %58, i64 0 switch i64 %59, label %60 [ i64 0, label %61 @@ -3832,27 +3835,30 @@ define hidden noundef align 8 ptr @"_ZN16wasmtime_environ9component4info1_104_$L %82 = getelementptr inbounds i8, ptr %0, i64 24 %.val40.i.i = load i64, ptr %82, align 8, !alias.scope !2896, !noalias !2897 %83 = icmp eq i64 %.val39.i.i, -9223372036854775805 - br i1 %83, label %90, label %84 + br i1 %83, label %91, label %84 84: ; preds = %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hcb759ec826dba247E.exit.thread.i.i" %85 = icmp ult i64 %.val39.i.i, -9223372036854775807 - br i1 %85, label %86, label %90 - -86: ; preds = %84 - %87 = icmp eq i64 %.val39.i.i, -9223372036854775808 - %88 = add i64 %.val40.i.i, 21 - %89 = select i1 %87, i64 21, i64 %88 - br label %90 - -90: ; preds = %86, %84, %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hcb759ec826dba247E.exit.thread.i.i" - %.sink.i.i.i = phi i64 [ %89, %86 ], [ 1, %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hcb759ec826dba247E.exit.thread.i.i" ], [ 9, %84 ] - %91 = add i64 %81, 4 - %92 = add i64 %91, %.sink.i.i.i - store i64 %92, ptr %73, align 8, !alias.scope !2898, !noalias !2896 + %86 = and i64 %.val39.i.i, 3 + %switch3.i.i.i = icmp eq i64 %86, 0 + %switch.i.i.i = or i1 %85, %switch3.i.i.i + br i1 %switch.i.i.i, label %87, label %91 + +87: ; preds = %84 + %88 = icmp eq i64 %.val39.i.i, -9223372036854775808 + %89 = add i64 %.val40.i.i, 21 + %90 = select i1 %88, i64 21, i64 %89 + br label %91 + +91: ; preds = %87, %84, %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hcb759ec826dba247E.exit.thread.i.i" + %.sink.i.i.i = phi i64 [ %90, %87 ], [ 1, %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hcb759ec826dba247E.exit.thread.i.i" ], [ 9, %84 ] + %92 = add i64 %81, 4 + %93 = add i64 %92, %.sink.i.i.i + store i64 %93, ptr %73, align 8, !alias.scope !2898, !noalias !2896 br label %"_ZN89_$LT$$RF$mut$u20$bincode..ser..SizeChecker$LT$O$GT$$u20$as$u20$serde..ser..Serializer$GT$25serialize_newtype_variant17hf5f625327f37b402E.exit" -"_ZN89_$LT$$RF$mut$u20$bincode..ser..SizeChecker$LT$O$GT$$u20$as$u20$serde..ser..Serializer$GT$25serialize_newtype_variant17hf5f625327f37b402E.exit": ; preds = %90, %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hcb759ec826dba247E.exit.i.i", %18, %14, %20, %"_ZN89_$LT$$RF$mut$u20$bincode..ser..SizeChecker$LT$O$GT$$u20$as$u20$serde..ser..Serializer$GT$25serialize_newtype_variant17h3c8eae9e4a4019fbE.exit", %"_ZN89_$LT$$RF$mut$u20$bincode..ser..SizeChecker$LT$O$GT$$u20$as$u20$serde..ser..Serializer$GT$25serialize_newtype_variant17hf7267a4d5174e4dbE.exit", %24 - %.0 = phi ptr [ null, %"_ZN89_$LT$$RF$mut$u20$bincode..ser..SizeChecker$LT$O$GT$$u20$as$u20$serde..ser..Serializer$GT$25serialize_newtype_variant17h3c8eae9e4a4019fbE.exit" ], [ null, %"_ZN89_$LT$$RF$mut$u20$bincode..ser..SizeChecker$LT$O$GT$$u20$as$u20$serde..ser..Serializer$GT$25serialize_newtype_variant17hf7267a4d5174e4dbE.exit" ], [ null, %24 ], [ null, %20 ], [ %17, %14 ], [ %19, %18 ], [ null, %90 ], [ %79, %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hcb759ec826dba247E.exit.i.i" ] +"_ZN89_$LT$$RF$mut$u20$bincode..ser..SizeChecker$LT$O$GT$$u20$as$u20$serde..ser..Serializer$GT$25serialize_newtype_variant17hf5f625327f37b402E.exit": ; preds = %91, %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hcb759ec826dba247E.exit.i.i", %18, %14, %20, %"_ZN89_$LT$$RF$mut$u20$bincode..ser..SizeChecker$LT$O$GT$$u20$as$u20$serde..ser..Serializer$GT$25serialize_newtype_variant17h3c8eae9e4a4019fbE.exit", %"_ZN89_$LT$$RF$mut$u20$bincode..ser..SizeChecker$LT$O$GT$$u20$as$u20$serde..ser..Serializer$GT$25serialize_newtype_variant17hf7267a4d5174e4dbE.exit", %24 + %.0 = phi ptr [ null, %"_ZN89_$LT$$RF$mut$u20$bincode..ser..SizeChecker$LT$O$GT$$u20$as$u20$serde..ser..Serializer$GT$25serialize_newtype_variant17h3c8eae9e4a4019fbE.exit" ], [ null, %"_ZN89_$LT$$RF$mut$u20$bincode..ser..SizeChecker$LT$O$GT$$u20$as$u20$serde..ser..Serializer$GT$25serialize_newtype_variant17hf7267a4d5174e4dbE.exit" ], [ null, %24 ], [ null, %20 ], [ %17, %14 ], [ %19, %18 ], [ null, %91 ], [ %79, %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hcb759ec826dba247E.exit.i.i" ] ret ptr %.0 } @@ -4580,7 +4586,7 @@ define hidden noundef align 8 ptr @"_ZN16wasmtime_environ9component4info1_93_$LT %.val87 = load i64, ptr %11, align 8, !range !1514, !alias.scope !3588, !noalias !3591, !noundef !16 %12 = add i64 %.val87, 9223372036854775807 %13 = icmp ult i64 %12, 2 - %14 = xor i64 %.val87, -9223372036854775808 + %14 = and i64 %.val87, 3 %15 = select i1 %13, i64 %14, i64 0 switch i64 %15, label %54 [ i64 0, label %55 @@ -4751,7 +4757,7 @@ define hidden noundef align 8 ptr @"_ZN16wasmtime_environ9component4info1_93_$LT %.val87 = load i64, ptr %11, align 8, !range !1514, !alias.scope !3666, !noalias !3669, !noundef !16 %12 = add i64 %.val87, 9223372036854775807 %13 = icmp ult i64 %12, 2 - %14 = xor i64 %.val87, -9223372036854775808 + %14 = and i64 %.val87, 3 %15 = select i1 %13, i64 %14, i64 0 switch i64 %15, label %54 [ i64 0, label %55 @@ -4909,7 +4915,7 @@ define hidden noundef align 8 ptr @"_ZN16wasmtime_environ9component4info1_94_$LT %3 = load i64, ptr %0, align 8, !range !1514, !noundef !16 %4 = add i64 %3, 9223372036854775807 %5 = icmp ult i64 %4, 2 - %6 = xor i64 %3, -9223372036854775808 + %6 = and i64 %3, 3 %7 = select i1 %5, i64 %6, i64 0 switch i64 %7, label %8 [ i64 0, label %9 @@ -5006,7 +5012,7 @@ define hidden noalias noundef align 8 ptr @"_ZN16wasmtime_environ9component4info %3 = load i64, ptr %0, align 8, !range !1514, !noundef !16 %4 = add i64 %3, 9223372036854775807 %5 = icmp ult i64 %4, 2 - %6 = xor i64 %3, -9223372036854775808 + %6 = and i64 %3, 3 %7 = select i1 %5, i64 %6, i64 0 switch i64 %7, label %8 [ i64 0, label %9 @@ -5057,7 +5063,7 @@ define hidden noalias noundef align 8 ptr @"_ZN16wasmtime_environ9component4info %3 = load i64, ptr %0, align 8, !range !1514, !noundef !16 %4 = add i64 %3, 9223372036854775807 %5 = icmp ult i64 %4, 2 - %6 = xor i64 %3, -9223372036854775808 + %6 = and i64 %3, 3 %7 = select i1 %5, i64 %6, i64 0 switch i64 %7, label %8 [ i64 0, label %9 @@ -5127,7 +5133,7 @@ define hidden noundef align 8 ptr @"_ZN16wasmtime_environ9component4info1_95_$LT "_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hcb759ec826dba247E.exit": ; preds = %2 %9 = tail call noundef align 8 ptr @"_ZN14wasmtime_types1_79_$LT$impl$u20$serde..ser..Serialize$u20$for$u20$wasmtime_types..WasmRefType$GT$9serialize17h043b47999654e357E"(ptr noalias noundef nonnull readonly align 4 dereferenceable(12) %5, ptr noalias noundef nonnull align 8 dereferenceable(16) %1) %10 = icmp eq ptr %9, null - br i1 %10, label %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hcb759ec826dba247E.exit._ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hcb759ec826dba247E.exit.thread_crit_edge", label %23 + br i1 %10, label %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hcb759ec826dba247E.exit._ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hcb759ec826dba247E.exit.thread_crit_edge", label %24 "_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hcb759ec826dba247E.exit._ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hcb759ec826dba247E.exit.thread_crit_edge": ; preds = %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hcb759ec826dba247E.exit" %.pre = load i64, ptr %3, align 8, !alias.scope !3988 @@ -5139,27 +5145,30 @@ define hidden noundef align 8 ptr @"_ZN16wasmtime_environ9component4info1_95_$LT %12 = getelementptr inbounds i8, ptr %0, i64 16 %.val40 = load i64, ptr %12, align 8 %13 = icmp eq i64 %.val39, -9223372036854775805 - br i1 %13, label %20, label %14 + br i1 %13, label %21, label %14 14: ; preds = %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hcb759ec826dba247E.exit.thread" %15 = icmp ult i64 %.val39, -9223372036854775807 - br i1 %15, label %16, label %20 - -16: ; preds = %14 - %17 = icmp eq i64 %.val39, -9223372036854775808 - %18 = add i64 %.val40, 21 - %19 = select i1 %17, i64 21, i64 %18 - br label %20 + %16 = and i64 %.val39, 3 + %switch3.i = icmp eq i64 %16, 0 + %switch.i = or i1 %15, %switch3.i + br i1 %switch.i, label %17, label %21 + +17: ; preds = %14 + %18 = icmp eq i64 %.val39, -9223372036854775808 + %19 = add i64 %.val40, 21 + %20 = select i1 %18, i64 21, i64 %19 + br label %21 -20: ; preds = %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hcb759ec826dba247E.exit.thread", %14, %16 - %.sink.i = phi i64 [ %19, %16 ], [ 1, %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hcb759ec826dba247E.exit.thread" ], [ 9, %14 ] - %21 = add i64 %11, 4 - %22 = add i64 %21, %.sink.i - store i64 %22, ptr %3, align 8, !alias.scope !3991 - br label %23 +21: ; preds = %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hcb759ec826dba247E.exit.thread", %14, %17 + %.sink.i = phi i64 [ %20, %17 ], [ 1, %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hcb759ec826dba247E.exit.thread" ], [ 9, %14 ] + %22 = add i64 %11, 4 + %23 = add i64 %22, %.sink.i + store i64 %23, ptr %3, align 8, !alias.scope !3991 + br label %24 -23: ; preds = %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hcb759ec826dba247E.exit", %20 - %.1 = phi ptr [ null, %20 ], [ %9, %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hcb759ec826dba247E.exit" ] +24: ; preds = %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hcb759ec826dba247E.exit", %21 + %.1 = phi ptr [ null, %21 ], [ %9, %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hcb759ec826dba247E.exit" ] ret ptr %.1 } @@ -5272,7 +5281,7 @@ define hidden noundef align 8 ptr @"_ZN16wasmtime_environ9component4info1_95_$LT "_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17h225a7099f010c7dfE.exit": ; preds = %2 %9 = tail call noundef align 8 ptr @"_ZN14wasmtime_types1_79_$LT$impl$u20$serde..ser..Serialize$u20$for$u20$wasmtime_types..WasmRefType$GT$9serialize17h5afd5b4bee0a29edE"(ptr noalias noundef nonnull readonly align 4 dereferenceable(12) %5, ptr noalias noundef nonnull align 8 dereferenceable(16) %1) %10 = icmp eq ptr %9, null - br i1 %10, label %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17h225a7099f010c7dfE.exit._ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17h225a7099f010c7dfE.exit.thread_crit_edge", label %23 + br i1 %10, label %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17h225a7099f010c7dfE.exit._ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17h225a7099f010c7dfE.exit.thread_crit_edge", label %24 "_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17h225a7099f010c7dfE.exit._ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17h225a7099f010c7dfE.exit.thread_crit_edge": ; preds = %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17h225a7099f010c7dfE.exit" %.pre = load i64, ptr %3, align 8, !alias.scope !4171 @@ -5284,27 +5293,30 @@ define hidden noundef align 8 ptr @"_ZN16wasmtime_environ9component4info1_95_$LT %12 = getelementptr inbounds i8, ptr %0, i64 16 %.val40 = load i64, ptr %12, align 8 %13 = icmp eq i64 %.val39, -9223372036854775805 - br i1 %13, label %20, label %14 + br i1 %13, label %21, label %14 14: ; preds = %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17h225a7099f010c7dfE.exit.thread" %15 = icmp ult i64 %.val39, -9223372036854775807 - br i1 %15, label %16, label %20 - -16: ; preds = %14 - %17 = icmp eq i64 %.val39, -9223372036854775808 - %18 = add i64 %.val40, 21 - %19 = select i1 %17, i64 21, i64 %18 - br label %20 + %16 = and i64 %.val39, 3 + %switch3.i = icmp eq i64 %16, 0 + %switch.i = or i1 %15, %switch3.i + br i1 %switch.i, label %17, label %21 + +17: ; preds = %14 + %18 = icmp eq i64 %.val39, -9223372036854775808 + %19 = add i64 %.val40, 21 + %20 = select i1 %18, i64 21, i64 %19 + br label %21 -20: ; preds = %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17h225a7099f010c7dfE.exit.thread", %14, %16 - %.sink.i = phi i64 [ %19, %16 ], [ 1, %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17h225a7099f010c7dfE.exit.thread" ], [ 9, %14 ] - %21 = add i64 %11, 4 - %22 = add i64 %21, %.sink.i - store i64 %22, ptr %3, align 8, !alias.scope !4174 - br label %23 +21: ; preds = %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17h225a7099f010c7dfE.exit.thread", %14, %17 + %.sink.i = phi i64 [ %20, %17 ], [ 1, %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17h225a7099f010c7dfE.exit.thread" ], [ 9, %14 ] + %22 = add i64 %11, 4 + %23 = add i64 %22, %.sink.i + store i64 %23, ptr %3, align 8, !alias.scope !4174 + br label %24 -23: ; preds = %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17h225a7099f010c7dfE.exit", %20 - %.1 = phi ptr [ null, %20 ], [ %9, %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17h225a7099f010c7dfE.exit" ] +24: ; preds = %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17h225a7099f010c7dfE.exit", %21 + %.1 = phi ptr [ null, %21 ], [ %9, %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17h225a7099f010c7dfE.exit" ] ret ptr %.1 } @@ -21585,7 +21597,7 @@ common.resume: ; preds = %.body, %35 call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #42, !noalias !10794 unreachable -.loopexit: ; preds = %77, %50, %87, %94 +.loopexit: ; preds = %77, %50, %90, %97 %lpad.loopexit = landingpad { ptr, i32 } cleanup br label %.body @@ -21598,7 +21610,7 @@ common.resume: ; preds = %.body, %35 .body: ; preds = %.loopexit, %.loopexit.split-lp, %60 %eh.lpad-body = phi { ptr, i32 } [ %61, %60 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] invoke void @"_ZN4core3ptr127drop_in_place$LT$indexmap..map..core..IndexMapCore$LT$alloc..string..String$C$wasmtime_environ..component..info..Export$GT$$GT$17hfb450d59ec2c3a60E.llvm.5456684732158232753"(ptr noalias noundef nonnull align 8 dereferenceable(56) %16) - to label %common.resume unwind label %97 + to label %common.resume unwind label %100 _ZN5serde2de9MapAccess10next_entry17h12deb33aa6b87b57E.exit: ; preds = %.noexc.i.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %.sroa.14, ptr noundef nonnull align 8 dereferenceable(64) %.sroa.5.0..sroa_idx.i7.i.i, i64 64, i1 false), !noalias !10808 @@ -21620,7 +21632,7 @@ _ZN5serde2de9MapAccess10next_entry17h12deb33aa6b87b57E.exit.thread43: ; preds = call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %.sroa.11, ptr noundef nonnull align 8 dereferenceable(64) %.sroa.14, i64 64, i1 false) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %.sroa.14) %.not = icmp eq i64 %.sroa.026.054, -9223372036854775808 - br i1 %.not, label %95, label %77 + br i1 %.not, label %98, label %77 .loopexit66: ; preds = %_ZN5serde2de9MapAccess10next_entry17h12deb33aa6b87b57E.exit, %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i", %"_ZN172_$LT$$LT$$RF$mut$u20$bincode..de..Deserializer$LT$R$C$O$GT$$u20$as$u20$serde..de..Deserializer$GT$..deserialize_map..Access$LT$R$C$O$GT$$u20$as$u20$serde..de..MapAccess$GT$13next_key_seed17hee11f6e680e19c3cE.exit.i.i" %.sroa.7.139 = phi ptr [ %59, %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i" ], [ %54, %"_ZN172_$LT$$LT$$RF$mut$u20$bincode..de..Deserializer$LT$R$C$O$GT$$u20$as$u20$serde..de..Deserializer$GT$..deserialize_map..Access$LT$R$C$O$GT$$u20$as$u20$serde..de..MapAccess$GT$13next_key_seed17hee11f6e680e19c3cE.exit.i.i" ], [ %.sroa.7.0.copyload, %_ZN5serde2de9MapAccess10next_entry17h12deb33aa6b87b57E.exit ] @@ -21632,7 +21644,7 @@ _ZN5serde2de9MapAccess10next_entry17h12deb33aa6b87b57E.exit.thread43: ; preds = store i64 -9223372036854775808, ptr %0, align 8 call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %.sroa.11) call void @"_ZN4core3ptr127drop_in_place$LT$indexmap..map..core..IndexMapCore$LT$alloc..string..String$C$wasmtime_environ..component..info..Export$GT$$GT$17hfb450d59ec2c3a60E.llvm.5456684732158232753"(ptr noalias noundef nonnull align 8 dereferenceable(56) %16) - br label %96 + br label %99 77: ; preds = %_ZN5serde2de9MapAccess10next_entry17h12deb33aa6b87b57E.exit.thread43 store i64 %.sroa.026.054, ptr %14, align 8 @@ -21661,59 +21673,64 @@ _ZN5serde2de9MapAccess10next_entry17h12deb33aa6b87b57E.exit.thread43: ; preds = %84 = select i1 %83, i64 %82, i64 3 switch i64 %84, label %"_ZN4core3ptr90drop_in_place$LT$core..option..Option$LT$wasmtime_environ..component..info..Export$GT$$GT$17hf117d3a8d006af3fE.exit" [ i64 0, label %85 - i64 3, label %94 + i64 3, label %97 ] 85: ; preds = %81 call void @llvm.experimental.noalias.scope.decl(metadata !10815) %86 = load i64, ptr %46, align 8, !range !1514, !alias.scope !10818, !noundef !16 - %or.cond.i.i.i = icmp slt i64 %86, 0 - br i1 %or.cond.i.i.i, label %"_ZN4core3ptr90drop_in_place$LT$core..option..Option$LT$wasmtime_environ..component..info..Export$GT$$GT$17hf117d3a8d006af3fE.exit", label %87 - -87: ; preds = %85 + %87 = icmp ugt i64 %86, -9223372036854775808 + %88 = and i64 %86, 3 + %cond1.i.i.i = icmp ne i64 %88, 0 + %cond.not2.i.i.i = and i1 %87, %cond1.i.i.i + %89 = icmp eq i64 %86, -9223372036854775808 + %or.cond.i.i.i = or i1 %89, %cond.not2.i.i.i + br i1 %or.cond.i.i.i, label %"_ZN4core3ptr90drop_in_place$LT$core..option..Option$LT$wasmtime_environ..component..info..Export$GT$$GT$17hf117d3a8d006af3fE.exit", label %90 + +90: ; preds = %85 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5), !noalias !10819 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h94a57ea85edebb10E.llvm.5456684732158232753"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %46) to label %.noexc23 unwind label %.loopexit -.noexc23: ; preds = %87 - %88 = load i64, ptr %47, align 8, !range !17, !noalias !10819, !noundef !16 - %.not.i.i.i.i.i.i.i.i.i = icmp eq i64 %88, 0 - br i1 %.not.i.i.i.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i.i", label %89 +.noexc23: ; preds = %90 + %91 = load i64, ptr %47, align 8, !range !17, !noalias !10819, !noundef !16 + %.not.i.i.i.i.i.i.i.i.i = icmp eq i64 %91, 0 + br i1 %.not.i.i.i.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i.i", label %92 -89: ; preds = %.noexc23 - %90 = load i64, ptr %48, align 8, !noalias !10819, !noundef !16 - %91 = icmp eq i64 %90, 0 - br i1 %91, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i.i", label %92 +92: ; preds = %.noexc23 + %93 = load i64, ptr %48, align 8, !noalias !10819, !noundef !16 + %94 = icmp eq i64 %93, 0 + br i1 %94, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i.i", label %95 -92: ; preds = %89 - %93 = load ptr, ptr %5, align 8, !noalias !10819, !nonnull !16, !noundef !16 - call void @__rust_dealloc(ptr noundef nonnull %93, i64 noundef %90, i64 noundef %88) #43 +95: ; preds = %92 + %96 = load ptr, ptr %5, align 8, !noalias !10819, !nonnull !16, !noundef !16 + call void @__rust_dealloc(ptr noundef nonnull %96, i64 noundef %93, i64 noundef %91) #43 br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i.i" -"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i.i": ; preds = %92, %89, %.noexc23 +"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i.i": ; preds = %95, %92, %.noexc23 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5), !noalias !10819 br label %"_ZN4core3ptr90drop_in_place$LT$core..option..Option$LT$wasmtime_environ..component..info..Export$GT$$GT$17hf117d3a8d006af3fE.exit" -94: ; preds = %81 +97: ; preds = %81 invoke void @"_ZN4core3ptr127drop_in_place$LT$indexmap..map..core..IndexMapCore$LT$alloc..string..String$C$wasmtime_environ..component..info..Export$GT$$GT$17hfb450d59ec2c3a60E.llvm.5456684732158232753"(ptr noalias noundef nonnull align 8 dereferenceable(56) %15) to label %"_ZN4core3ptr90drop_in_place$LT$core..option..Option$LT$wasmtime_environ..component..info..Export$GT$$GT$17hf117d3a8d006af3fE.exit" unwind label %.loopexit -"_ZN4core3ptr90drop_in_place$LT$core..option..Option$LT$wasmtime_environ..component..info..Export$GT$$GT$17hf117d3a8d006af3fE.exit": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i.i", %85, %81, %78, %94 +"_ZN4core3ptr90drop_in_place$LT$core..option..Option$LT$wasmtime_environ..component..info..Export$GT$$GT$17hf117d3a8d006af3fE.exit": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i.i", %85, %81, %78, %97 call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %15) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %.sroa.11) br label %49 -95: ; preds = %_ZN5serde2de9MapAccess10next_entry17h12deb33aa6b87b57E.exit.thread43 +98: ; preds = %_ZN5serde2de9MapAccess10next_entry17h12deb33aa6b87b57E.exit.thread43 call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %.sroa.11) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %0, ptr noundef nonnull align 8 dereferenceable(72) %16, i64 72, i1 false) - br label %96 + br label %99 -96: ; preds = %.loopexit66, %95 +99: ; preds = %.loopexit66, %98 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %16) ret void -97: ; preds = %.body - %98 = landingpad { ptr, i32 } +100: ; preds = %.body + %101 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #42 unreachable @@ -23296,7 +23313,7 @@ common.resume: ; preds = %.body, %35 call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #42, !noalias !11094 unreachable -.loopexit: ; preds = %76, %49, %79 +.loopexit: ; preds = %76, %49, %84 %lpad.loopexit = landingpad { ptr, i32 } cleanup br label %.body @@ -23309,7 +23326,7 @@ common.resume: ; preds = %.body, %35 .body: ; preds = %.loopexit, %.loopexit.split-lp, %59 %eh.lpad-body = phi { ptr, i32 } [ %60, %59 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] invoke void @"_ZN4core3ptr128drop_in_place$LT$indexmap..map..core..IndexMapCore$LT$alloc..string..String$C$wasmtime_environ..component..info..CoreDef$GT$$GT$17he1b7deaf1d79be7dE.llvm.5456684732158232753"(ptr noalias noundef nonnull align 8 dereferenceable(56) %16) - to label %common.resume unwind label %88 + to label %common.resume unwind label %93 _ZN5serde2de9MapAccess10next_entry17hd0a3f0f69bcb62a0E.exit: ; preds = %.noexc.i.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.14, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.5.0..sroa_idx.i7.i.i, i64 16, i1 false), !noalias !11108 @@ -23331,7 +23348,7 @@ _ZN5serde2de9MapAccess10next_entry17hd0a3f0f69bcb62a0E.exit.thread41: ; preds = call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.11, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.14, i64 16, i1 false) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %.sroa.14) %.not = icmp eq i64 %.sroa.024.052, -9223372036854775808 - br i1 %.not, label %86, label %76 + br i1 %.not, label %91, label %76 .loopexit64: ; preds = %_ZN5serde2de9MapAccess10next_entry17hd0a3f0f69bcb62a0E.exit, %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i", %"_ZN172_$LT$$LT$$RF$mut$u20$bincode..de..Deserializer$LT$R$C$O$GT$$u20$as$u20$serde..de..Deserializer$GT$..deserialize_map..Access$LT$R$C$O$GT$$u20$as$u20$serde..de..MapAccess$GT$13next_key_seed17hee11f6e680e19c3cE.exit.i.i" %.sroa.7.137 = phi ptr [ %58, %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i" ], [ %53, %"_ZN172_$LT$$LT$$RF$mut$u20$bincode..de..Deserializer$LT$R$C$O$GT$$u20$as$u20$serde..de..Deserializer$GT$..deserialize_map..Access$LT$R$C$O$GT$$u20$as$u20$serde..de..MapAccess$GT$13next_key_seed17hee11f6e680e19c3cE.exit.i.i" ], [ %.sroa.7.0.copyload, %_ZN5serde2de9MapAccess10next_entry17hd0a3f0f69bcb62a0E.exit ] @@ -23343,7 +23360,7 @@ _ZN5serde2de9MapAccess10next_entry17hd0a3f0f69bcb62a0E.exit.thread41: ; preds = store i64 -9223372036854775808, ptr %0, align 8 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %.sroa.11) call void @"_ZN4core3ptr128drop_in_place$LT$indexmap..map..core..IndexMapCore$LT$alloc..string..String$C$wasmtime_environ..component..info..CoreDef$GT$$GT$17he1b7deaf1d79be7dE.llvm.5456684732158232753"(ptr noalias noundef nonnull align 8 dereferenceable(56) %16) - br label %87 + br label %92 76: ; preds = %_ZN5serde2de9MapAccess10next_entry17hd0a3f0f69bcb62a0E.exit.thread41 store i64 %.sroa.024.052, ptr %14, align 8 @@ -23362,49 +23379,58 @@ _ZN5serde2de9MapAccess10next_entry17hd0a3f0f69bcb62a0E.exit.thread41: ; preds = call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) call void @llvm.experimental.noalias.scope.decl(metadata !11109) %78 = load i64, ptr %15, align 8, !range !2756, !alias.scope !11109, !noundef !16 - %or.cond.i.i = icmp slt i64 %78, 0 - br i1 %or.cond.i.i, label %"_ZN4core3ptr91drop_in_place$LT$core..option..Option$LT$wasmtime_environ..component..info..CoreDef$GT$$GT$17hec8f7a8242096e63E.exit", label %79 + %79 = icmp eq i64 %78, -9223372036854775805 + br i1 %79, label %"_ZN4core3ptr91drop_in_place$LT$core..option..Option$LT$wasmtime_environ..component..info..CoreDef$GT$$GT$17hec8f7a8242096e63E.exit", label %80 -79: ; preds = %77 +80: ; preds = %77 + %81 = icmp ugt i64 %78, -9223372036854775808 + %82 = and i64 %78, 3 + %cond1.i.i = icmp ne i64 %82, 0 + %cond.not2.i.i = and i1 %81, %cond1.i.i + %83 = icmp eq i64 %78, -9223372036854775808 + %or.cond.i.i = or i1 %83, %cond.not2.i.i + br i1 %or.cond.i.i, label %"_ZN4core3ptr91drop_in_place$LT$core..option..Option$LT$wasmtime_environ..component..info..CoreDef$GT$$GT$17hec8f7a8242096e63E.exit", label %84 + +84: ; preds = %80 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5), !noalias !11112 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h94a57ea85edebb10E.llvm.5456684732158232753"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %15) to label %.noexc22 unwind label %.loopexit -.noexc22: ; preds = %79 - %80 = load i64, ptr %46, align 8, !range !17, !noalias !11112, !noundef !16 - %.not.i.i.i.i.i.i.i.i = icmp eq i64 %80, 0 - br i1 %.not.i.i.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i", label %81 +.noexc22: ; preds = %84 + %85 = load i64, ptr %46, align 8, !range !17, !noalias !11112, !noundef !16 + %.not.i.i.i.i.i.i.i.i = icmp eq i64 %85, 0 + br i1 %.not.i.i.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i", label %86 -81: ; preds = %.noexc22 - %82 = load i64, ptr %47, align 8, !noalias !11112, !noundef !16 - %83 = icmp eq i64 %82, 0 - br i1 %83, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i", label %84 +86: ; preds = %.noexc22 + %87 = load i64, ptr %47, align 8, !noalias !11112, !noundef !16 + %88 = icmp eq i64 %87, 0 + br i1 %88, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i", label %89 -84: ; preds = %81 - %85 = load ptr, ptr %5, align 8, !noalias !11112, !nonnull !16, !noundef !16 - call void @__rust_dealloc(ptr noundef nonnull %85, i64 noundef %82, i64 noundef %80) #43 +89: ; preds = %86 + %90 = load ptr, ptr %5, align 8, !noalias !11112, !nonnull !16, !noundef !16 + call void @__rust_dealloc(ptr noundef nonnull %90, i64 noundef %87, i64 noundef %85) #43 br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i" -"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i": ; preds = %84, %81, %.noexc22 +"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i": ; preds = %89, %86, %.noexc22 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5), !noalias !11112 br label %"_ZN4core3ptr91drop_in_place$LT$core..option..Option$LT$wasmtime_environ..component..info..CoreDef$GT$$GT$17hec8f7a8242096e63E.exit" -"_ZN4core3ptr91drop_in_place$LT$core..option..Option$LT$wasmtime_environ..component..info..CoreDef$GT$$GT$17hec8f7a8242096e63E.exit": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i", %77 +"_ZN4core3ptr91drop_in_place$LT$core..option..Option$LT$wasmtime_environ..component..info..CoreDef$GT$$GT$17hec8f7a8242096e63E.exit": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i", %80, %77 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %.sroa.11) br label %48 -86: ; preds = %_ZN5serde2de9MapAccess10next_entry17hd0a3f0f69bcb62a0E.exit.thread41 +91: ; preds = %_ZN5serde2de9MapAccess10next_entry17hd0a3f0f69bcb62a0E.exit.thread41 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %.sroa.11) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %0, ptr noundef nonnull align 8 dereferenceable(72) %16, i64 72, i1 false) - br label %87 + br label %92 -87: ; preds = %.loopexit64, %86 +92: ; preds = %.loopexit64, %91 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %16) ret void -88: ; preds = %.body - %89 = landingpad { ptr, i32 } +93: ; preds = %.body + %94 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #42 unreachable diff --git a/bench/wasmtime-rs/optimized/t1qxt6oh6s98so1.ll b/bench/wasmtime-rs/optimized/t1qxt6oh6s98so1.ll index a45e738a098..8c7c5703c81 100644 --- a/bench/wasmtime-rs/optimized/t1qxt6oh6s98so1.ll +++ b/bench/wasmtime-rs/optimized/t1qxt6oh6s98so1.ll @@ -9222,43 +9222,48 @@ define hidden void @"_ZN4core3ptr62drop_in_place$LT$wasmtime_environ..component. %6 = select i1 %5, i64 %4, i64 3 switch i64 %6, label %"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E.llvm.15361297093319246575.exit" [ i64 0, label %7 - i64 3, label %19 + i64 3, label %22 ] -"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E.llvm.15361297093319246575.exit": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i", %7, %19, %1 +"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E.llvm.15361297093319246575.exit": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i", %7, %22, %1 ret void 7: ; preds = %1 %8 = getelementptr inbounds i8, ptr %0, i64 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !3977) %9 = load i64, ptr %8, align 8, !range !3966, !alias.scope !3977, !noundef !4 - %or.cond.i = icmp slt i64 %9, 0 - br i1 %or.cond.i, label %"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E.llvm.15361297093319246575.exit", label %10 - -10: ; preds = %7 + %10 = icmp ugt i64 %9, -9223372036854775808 + %11 = and i64 %9, 3 + %cond1.i = icmp ne i64 %11, 0 + %cond.not2.i = and i1 %10, %cond1.i + %12 = icmp eq i64 %9, -9223372036854775808 + %or.cond.i = or i1 %12, %cond.not2.i + br i1 %or.cond.i, label %"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E.llvm.15361297093319246575.exit", label %13 + +13: ; preds = %7 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !3980 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h94a57ea85edebb10E.llvm.5456684732158232753"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %8) - %11 = getelementptr inbounds i8, ptr %2, i64 8 - %12 = load i64, ptr %11, align 8, !range !70, !noalias !3980, !noundef !4 - %.not.i.i.i.i.i.i.i = icmp eq i64 %12, 0 - br i1 %.not.i.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i", label %13 - -13: ; preds = %10 - %14 = getelementptr inbounds i8, ptr %2, i64 16 - %15 = load i64, ptr %14, align 8, !noalias !3980, !noundef !4 - %16 = icmp eq i64 %15, 0 - br i1 %16, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i", label %17 + %14 = getelementptr inbounds i8, ptr %2, i64 8 + %15 = load i64, ptr %14, align 8, !range !70, !noalias !3980, !noundef !4 + %.not.i.i.i.i.i.i.i = icmp eq i64 %15, 0 + br i1 %.not.i.i.i.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i", label %16 -17: ; preds = %13 - %18 = load ptr, ptr %2, align 8, !noalias !3980, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %18, i64 noundef %15, i64 noundef %12) #46 +16: ; preds = %13 + %17 = getelementptr inbounds i8, ptr %2, i64 16 + %18 = load i64, ptr %17, align 8, !noalias !3980, !noundef !4 + %19 = icmp eq i64 %18, 0 + br i1 %19, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i", label %20 + +20: ; preds = %16 + %21 = load ptr, ptr %2, align 8, !noalias !3980, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %21, i64 noundef %18, i64 noundef %15) #46 br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i" -"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i": ; preds = %17, %13, %10 +"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i": ; preds = %20, %16, %13 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2), !noalias !3980 br label %"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E.llvm.15361297093319246575.exit" -19: ; preds = %1 +22: ; preds = %1 tail call void @"_ZN4core3ptr127drop_in_place$LT$indexmap..map..core..IndexMapCore$LT$alloc..string..String$C$wasmtime_environ..component..info..Export$GT$$GT$17hfb450d59ec2c3a60E.llvm.5456684732158232753"(ptr noalias noundef nonnull align 8 dereferenceable(56) %0) br label %"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E.llvm.15361297093319246575.exit" } @@ -9267,32 +9272,37 @@ define hidden void @"_ZN4core3ptr62drop_in_place$LT$wasmtime_environ..component. define hidden void @"_ZN4core3ptr63drop_in_place$LT$wasmtime_environ..component..info..CoreDef$GT$17h510674b56cbf1984E.llvm.15361297093319246575"(ptr noalias noundef align 8 dereferenceable(32) %0) unnamed_addr #6 personality ptr @rust_eh_personality { %2 = alloca { [1 x i64], i64, [1 x i64] }, align 8 %3 = load i64, ptr %0, align 8, !range !3966, !noundef !4 - %or.cond = icmp slt i64 %3, 0 - br i1 %or.cond, label %"_ZN4core3ptr101drop_in_place$LT$wasmtime_environ..component..info..CoreExport$LT$wasmtime_types..EntityIndex$GT$$GT$17ha68c621d7f1b535cE.exit", label %4 + %4 = icmp ugt i64 %3, -9223372036854775808 + %5 = and i64 %3, 3 + %cond1 = icmp ne i64 %5, 0 + %cond.not2 = and i1 %4, %cond1 + %6 = icmp eq i64 %3, -9223372036854775808 + %or.cond = or i1 %6, %cond.not2 + br i1 %or.cond, label %"_ZN4core3ptr101drop_in_place$LT$wasmtime_environ..component..info..CoreExport$LT$wasmtime_types..EntityIndex$GT$$GT$17ha68c621d7f1b535cE.exit", label %7 "_ZN4core3ptr101drop_in_place$LT$wasmtime_environ..component..info..CoreExport$LT$wasmtime_types..EntityIndex$GT$$GT$17ha68c621d7f1b535cE.exit": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i", %1 ret void -4: ; preds = {"code":"internal","msg":"git-diff-tree: context deadline exceeded","meta":{"cause":"*fmt.wrapError"}}