diff --git a/bench/abc/optimized/Glucose.cpp.ll b/bench/abc/optimized/Glucose.cpp.ll index 4f327b80087..f2bf222cfc0 100644 --- a/bench/abc/optimized/Glucose.cpp.ll +++ b/bench/abc/optimized/Glucose.cpp.ll @@ -9317,9 +9317,9 @@ _ZNK5Gluco6Solver12withinBudgetEv.exit.thread: ; preds = %109, %93, %_ZNK5Glu 181: ; preds = %180 %182 = getelementptr inbounds i8, ptr %0, i64 736 %183 = load i32, ptr %182, align 8 - %184 = sext i32 %183 to i64 + %184 = zext i32 %183 to i64 %185 = icmp slt i32 %183, 0 - %186 = shl nsw i64 %184, 2 + %186 = shl nuw nsw i64 %184, 2 %187 = select i1 %185, i64 -1, i64 %186 %188 = call noalias noundef nonnull ptr @_Znam(i64 noundef %187) #34 %189 = icmp sgt i32 %183, 0 @@ -9327,7 +9327,6 @@ _ZNK5Gluco6Solver12withinBudgetEv.exit.thread: ; preds = %109, %93, %_ZNK5Glu .lr.ph79: ; preds = %181 %190 = load ptr, ptr %13, align 8 - %wide.trip.count = zext nneg i32 %183 to i64 br label %191 191: ; preds = %.lr.ph79, %191 @@ -9339,7 +9338,7 @@ _ZNK5Gluco6Solver12withinBudgetEv.exit.thread: ; preds = %109, %93, %_ZNK5Glu %196 = getelementptr inbounds i32, ptr %188, i64 %indvars.iv82 store i32 %195, ptr %196, 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, %184 br i1 %exitcond.not, label %.loopexit, label %191, !llvm.loop !68 .loopexit: ; preds = %191, %181, %180 diff --git a/bench/abc/optimized/bmcBmc3.c.ll b/bench/abc/optimized/bmcBmc3.c.ll index 2b37797f8ce..cca89abe25a 100644 --- a/bench/abc/optimized/bmcBmc3.c.ll +++ b/bench/abc/optimized/bmcBmc3.c.ll @@ -3747,8 +3747,8 @@ Saig_ManBmcReduceTruth.exit: ; preds = %132 146: ; preds = %136 %147 = and i32 %137, 1 %.not97 = icmp eq i32 %147, 0 - %148 = and i32 %137, 65535 - %149 = xor i32 %148, 65535 + %148 = and i32 %137, 65534 + %149 = xor i32 %148, 65534 %150 = select i1 %.not97, i32 %137, i32 %149 %151 = getelementptr inbounds i8, ptr %4, i64 16 store i32 %150, ptr %151, align 16 diff --git a/bench/arrow/optimized/float16.cc.ll b/bench/arrow/optimized/float16.cc.ll index 74c1542b0b8..683f5abf9c2 100644 --- a/bench/arrow/optimized/float16.cc.ll +++ b/bench/arrow/optimized/float16.cc.ll @@ -74,7 +74,7 @@ entry: %conv.i = and i16 %1, -32768 %and1.i = and i32 %0, 2139095040 %shr2.i = lshr exact i32 %and1.i, 23 - %and8.i = and i32 %0, 8388607 + %and8.i = and i32 %0, 8376320 %cmp.i = icmp ugt i32 %and1.i, 1191182336 br i1 %cmp.i, label %if.then.i, label %if.end26.i @@ -133,7 +133,7 @@ if.end52.i: ; preds = %if.end26.i %conv64.i = and i32 %shr.i, 32768 %conv65.i = and i32 %shl.i, 64512 %add66.i = add nuw nsw i32 %conv65.i, %conv64.i - %add68.i = add nuw nsw i32 %add66.i, %shr62.i + %add68.i = or disjoint i32 %add66.i, %shr62.i %conv69.i = trunc i32 %add68.i to i16 br label %_ZN5arrow4util12_GLOBAL__N_115BinaryConverterIjE10ToBinary16Ej.exit @@ -216,7 +216,7 @@ entry: %and1.i = and i64 %0, 9218868437227405312 %shr2.i = lshr exact i64 %and1.i, 52 %conv3.i = trunc nuw nsw i64 %shr2.i to i16 - %and8.i = and i64 %0, 4503599627370495 + %and8.i = and i64 %0, 4497002557603840 %cmp.i = icmp ugt i64 %and1.i, 4674736413210574848 br i1 %cmp.i, label %if.then.i, label %if.end26.i @@ -274,7 +274,7 @@ if.end52.i: ; preds = %if.end26.i %conv63.i = trunc nuw nsw i64 %shr62.i to i16 %shl.i = or disjoint i16 %conv.i, 16384 %add66.i = add i16 %shl.i, %add.i - %add68.i = add i16 %add66.i, %conv63.i + %add68.i = or disjoint i16 %add66.i, %conv63.i br label %_ZN5arrow4util12_GLOBAL__N_115BinaryConverterImE10ToBinary16Em.exit _ZN5arrow4util12_GLOBAL__N_115BinaryConverterImE10ToBinary16Em.exit: ; preds = %if.then12.i, %if.end22.i, %if.then29.i, %if.end33.i, %if.end52.i diff --git a/bench/assimp/optimized/SMDLoader.cpp.ll b/bench/assimp/optimized/SMDLoader.cpp.ll index 39c45230fc0..97bddce658d 100644 --- a/bench/assimp/optimized/SMDLoader.cpp.ll +++ b/bench/assimp/optimized/SMDLoader.cpp.ll @@ -2784,7 +2784,7 @@ if.end: ; preds = %if.then.if.end_crit %6 = load ptr, ptr %pScene, align 8 %mNumAnimations = getelementptr inbounds i8, ptr %6, i64 48 store i32 1, ptr %mNumAnimations, align 8 - %7 = ashr exact i64 %sub.ptr.sub.i, 29 + %7 = lshr exact i64 %sub.ptr.sub.i, 29 %.inv = icmp sgt i64 %sub.ptr.sub.i, -1 %8 = select i1 %.inv, i64 %7, i64 -1 %call4 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %8) #27 @@ -2797,7 +2797,8 @@ invoke.cont3: ; preds = %if.end %10 = load ptr, ptr %pScene, align 8 %mAnimations7 = getelementptr inbounds i8, ptr %10, i64 56 %11 = load ptr, ptr %mAnimations7, align 8 - call void @llvm.memset.p0.i64(ptr align 8 %11, i8 0, i64 %7, i1 false) + %mul = ashr exact i64 %sub.ptr.sub.i, 29 + call void @llvm.memset.p0.i64(ptr align 8 %11, i8 0, i64 %mul, i1 false) call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9) #24 %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 diff --git a/bench/c3c/optimized/lexer.c.ll b/bench/c3c/optimized/lexer.c.ll index 58c73cefd3b..8ba844f2833 100644 --- a/bench/c3c/optimized/lexer.c.ll +++ b/bench/c3c/optimized/lexer.c.ll @@ -4869,66 +4869,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 2be236e0b27..c318802c947 100644 --- a/bench/casadi/optimized/tinyxml2.cpp.ll +++ b/bench/casadi/optimized/tinyxml2.cpp.ll @@ -1775,9 +1775,9 @@ _ZN8tinyxml27XMLUtil11StringEqualEPKcS2_i.exit.thread: ; preds = %_ZN8tinyxml27X 40: ; preds = %_ZN8tinyxml27XMLUtil11StringEqualEPKcS2_i.exit.thread %41 = shl i32 %37, 1 %42 = add i32 %41, 2 - %43 = sext i32 %42 to i64 + %43 = zext i32 %42 to i64 %44 = icmp slt i32 %37, -1 - %45 = shl nsw i64 %43, 3 + %45 = shl nuw nsw i64 %43, 3 %46 = select i1 %44, i64 -1, i64 %45 %47 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %46) #31 %48 = load ptr, ptr %35, align 8 @@ -1849,9 +1849,9 @@ _ZN8tinyxml27XMLUtil11StringEqualEPKcS2_i.exit32.thread: ; preds = %64, %_ZN8tin 79: ; preds = %_ZN8tinyxml27XMLUtil11StringEqualEPKcS2_i.exit32.thread %80 = shl i32 %76, 1 %81 = add i32 %80, 2 - %82 = sext i32 %81 to i64 + %82 = zext i32 %81 to i64 %83 = icmp slt i32 %76, -1 - %84 = shl nsw i64 %82, 3 + %84 = shl nuw nsw i64 %82, 3 %85 = select i1 %83, i64 -1, i64 %84 %86 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %85) #31 %87 = load ptr, ptr %74, align 8 @@ -1935,9 +1935,9 @@ _ZN8tinyxml27XMLUtil11StringEqualEPKcS2_i.exit41.thread: ; preds = %103, %_ZN8ti 124: ; preds = %_ZN8tinyxml27XMLUtil11StringEqualEPKcS2_i.exit41.thread %125 = shl i32 %121, 1 %126 = add i32 %125, 2 - %127 = sext i32 %126 to i64 + %127 = zext i32 %126 to i64 %128 = icmp slt i32 %121, -1 - %129 = shl nsw i64 %127, 3 + %129 = shl nuw nsw i64 %127, 3 %130 = select i1 %128, i64 -1, i64 %129 %131 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %130) #31 %132 = load ptr, ptr %119, align 8 @@ -2015,9 +2015,9 @@ _ZN8tinyxml27XMLUtil11StringEqualEPKcS2_i.exit50.thread: ; preds = %148, %_ZN8ti 164: ; preds = %_ZN8tinyxml27XMLUtil11StringEqualEPKcS2_i.exit50.thread %165 = shl i32 %161, 1 %166 = add i32 %165, 2 - %167 = sext i32 %166 to i64 + %167 = zext i32 %166 to i64 %168 = icmp slt i32 %161, -1 - %169 = shl nsw i64 %167, 3 + %169 = shl nuw nsw i64 %167, 3 %170 = select i1 %168, i64 -1, i64 %169 %171 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %170) #31 %172 = load ptr, ptr %159, align 8 @@ -2121,9 +2121,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) #31 %27 = load ptr, ptr %14, align 8 @@ -2183,9 +2183,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) #31 %21 = load ptr, ptr %8, align 8 @@ -4596,9 +4596,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) #31 %28 = load ptr, ptr %15, align 8 @@ -4957,9 +4957,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) #31 %22 = load ptr, ptr %9, align 8 @@ -5304,9 +5304,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) #31 %22 = load ptr, ptr %9, align 8 @@ -5647,9 +5647,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) #31 %22 = load ptr, ptr %9, align 8 @@ -8564,9 +8564,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) #31 %19 = load ptr, ptr %6, align 8 @@ -8681,9 +8681,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) #31 %22 = load ptr, ptr %9, align 8 @@ -11830,9 +11830,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) #31 %42 = load ptr, ptr %29, align 8 @@ -13410,9 +13410,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) #31 %19 = load ptr, ptr %6, align 8 @@ -13690,9 +13690,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) #31 %19 = load ptr, ptr %6, align 8 @@ -13883,9 +13883,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) #31 %19 = load ptr, ptr %6, align 8 diff --git a/bench/clap-rs/optimized/3b4nqkxyl1xqdcre.ll b/bench/clap-rs/optimized/3b4nqkxyl1xqdcre.ll index 06c641078ea..269947b1c98 100644 --- a/bench/clap-rs/optimized/3b4nqkxyl1xqdcre.ll +++ b/bench/clap-rs/optimized/3b4nqkxyl1xqdcre.ll @@ -10030,7 +10030,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/coreutils-rs/optimized/22bojphyikqmi872.ll b/bench/coreutils-rs/optimized/22bojphyikqmi872.ll index b934417f64a..08b9b4ea74c 100644 --- a/bench/coreutils-rs/optimized/22bojphyikqmi872.ll +++ b/bench/coreutils-rs/optimized/22bojphyikqmi872.ll @@ -1838,7 +1838,7 @@ define { i64, i64 } @_ZN6uucore8features6format10num_parser4Base5digit17hdc0d5ad 14: ; preds = %2 %15 = add i32 %1, -65 %.012 = icmp ult i32 %15, 26 - %16 = xor i32 %1, 32 + %16 = or disjoint i32 %1, 32 %.0 = select i1 %.012, i32 %16, i32 %1 %17 = add nsw i32 %.0, -48 %or.cond = icmp ult i32 %17, 10 @@ -2896,7 +2896,7 @@ _ZN4core3str7pattern7Pattern15strip_prefix_of17h5618b54020e83efeE.exit291: ; pre 271: ; preds = %"_ZN4core6option15Option$LT$T$GT$18get_or_insert_with17he5ccdd913858f6fbE.exit.thread523" %272 = add nsw i32 %261, -65 %.012.i = icmp ult i32 %272, 26 - %273 = xor i32 %261, 32 + %273 = or disjoint i32 %261, 32 %.0.i = select i1 %.012.i, i32 %273, i32 %261 %274 = add nsw i32 %.0.i, -48 %or.cond.i = icmp ult i32 %274, 10 @@ -3047,7 +3047,7 @@ _ZN4core3str7pattern7Pattern15strip_prefix_of17h5618b54020e83efeE.exit291: ; pre 339: ; preds = %"_ZN4core6option15Option$LT$T$GT$18get_or_insert_with17he5ccdd913858f6fbE.exit320.thread545" %340 = add nsw i32 %329, -65 %.012.i321 = icmp ult i32 %340, 26 - %341 = xor i32 %329, 32 + %341 = or disjoint i32 %329, 32 %.0.i322 = select i1 %.012.i321, i32 %341, i32 %329 %342 = add nsw i32 %.0.i322, -48 %or.cond.i323 = icmp ult i32 %342, 10 diff --git a/bench/coreutils-rs/optimized/3t7rjcjao5l6ltsf.ll b/bench/coreutils-rs/optimized/3t7rjcjao5l6ltsf.ll index b911e1e949c..c96e9cfa294 100644 --- a/bench/coreutils-rs/optimized/3t7rjcjao5l6ltsf.ll +++ b/bench/coreutils-rs/optimized/3t7rjcjao5l6ltsf.ll @@ -2925,9 +2925,9 @@ define noundef zeroext i1 @"_ZN87_$LT$uu_seq..extendedbigdecimal..ExtendedBigDec switch i64 %6, label %7 [ i64 0, label %8 i64 1, label %11 - i64 2, label %13 - i64 3, label %15 - i64 4, label %19 + i64 2, label %15 + i64 3, label %17 + i64 4, label %21 ] 7: ; preds = %2 @@ -2936,29 +2936,32 @@ define noundef zeroext i1 @"_ZN87_$LT$uu_seq..extendedbigdecimal..ExtendedBigDec 8: ; preds = %2 %9 = load i64, ptr %1, align 8, !range !241, !noundef !5 %10 = icmp sgt i64 %9, -9223372036854775805 - br i1 %10, label %17, label %19 + br i1 %10, label %19, label %21 11: ; preds = %2 %12 = load i64, ptr %1, align 8, !range !241, !noundef !5 - %switch113 = icmp eq i64 %12, -9223372036854775808 - br label %19 - -13: ; preds = %2 - %14 = load i64, ptr %1, align 8, !range !241, !noundef !5 - %switch412 = icmp eq i64 %14, -9223372036854775807 - br label %19 + %13 = icmp slt i64 %12, -9223372036854775804 + %14 = and i64 %12, 3 + %switch113 = icmp eq i64 %14, 0 + %switch1 = and i1 %13, %switch113 + br label %21 15: ; preds = %2 %16 = load i64, ptr %1, align 8, !range !241, !noundef !5 - %switch811 = icmp eq i64 %16, -9223372036854775806 - br label %19 + %switch412 = icmp eq i64 %16, -9223372036854775807 + br label %21 + +17: ; preds = %2 + %18 = load i64, ptr %1, align 8, !range !241, !noundef !5 + %switch811 = icmp eq i64 %18, -9223372036854775806 + br label %21 -17: ; preds = %8 - %18 = tail call noundef zeroext i1 @"_ZN63_$LT$bigdecimal..BigDecimal$u20$as$u20$core..cmp..PartialEq$GT$2eq17h8caa5bc484dacf9eE.llvm.15755512314762197099"(ptr noalias noundef nonnull readonly align 8 dereferenceable(40) %0, ptr noalias noundef nonnull readonly align 8 dereferenceable(40) %1) - br label %19 +19: ; preds = %8 + %20 = tail call noundef zeroext i1 @"_ZN63_$LT$bigdecimal..BigDecimal$u20$as$u20$core..cmp..PartialEq$GT$2eq17h8caa5bc484dacf9eE.llvm.15755512314762197099"(ptr noalias noundef nonnull readonly align 8 dereferenceable(40) %0, ptr noalias noundef nonnull readonly align 8 dereferenceable(40) %1) + br label %21 -19: ; preds = %15, %13, %11, %8, %2, %17 - %.0 = phi i1 [ %18, %17 ], [ false, %2 ], [ false, %8 ], [ %switch113, %11 ], [ %switch412, %13 ], [ %switch811, %15 ] +21: ; preds = %17, %15, %11, %8, %2, %19 + %.0 = phi i1 [ %20, %19 ], [ false, %2 ], [ false, %8 ], [ %switch1, %11 ], [ %switch412, %15 ], [ %switch811, %17 ] ret i1 %.0 } diff --git a/bench/coreutils-rs/optimized/53answdz4sycpjve.ll b/bench/coreutils-rs/optimized/53answdz4sycpjve.ll index 4a9056f7735..fe7e9bbc90c 100644 --- a/bench/coreutils-rs/optimized/53answdz4sycpjve.ll +++ b/bench/coreutils-rs/optimized/53answdz4sycpjve.ll @@ -117,23 +117,26 @@ define hidden noundef ptr @_ZN6uu_seq17write_value_float17h726b6951c92bfa22E(ptr store i64 %3, ptr %17, align 8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %16) %20 = load i64, ptr %1, align 8, !range !5, !noalias !6, !noundef !6 - %switch54 = icmp slt i64 %20, -9223372036854775806 - br i1 %switch54, label %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit37, label %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit + %21 = icmp slt i64 %20, -9223372036854775804 + %22 = and i64 %20, 2 + %switch54 = icmp eq i64 %22, 0 + %switch = and i1 %21, %switch54 + br i1 %switch, label %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit37, label %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit: ; preds = %4 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %13) - %21 = load ptr, ptr @_ZN4core3fmt2rt12USIZE_MARKER17hef2d4d0250b80c97E, align 8, !nonnull !6, !noundef !6 + %23 = load ptr, ptr @_ZN4core3fmt2rt12USIZE_MARKER17hef2d4d0250b80c97E, align 8, !nonnull !6, !noundef !6 store ptr %19, ptr %13, align 8 - %22 = getelementptr inbounds i8, ptr %13, i64 8 - store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h3a5416ec164008a5E", ptr %22, align 8 - %23 = getelementptr inbounds i8, ptr %13, i64 16 - store ptr %17, ptr %23, align 8 - %24 = getelementptr inbounds i8, ptr %13, i64 24 - store ptr %21, ptr %24, align 8 - %25 = getelementptr inbounds i8, ptr %13, i64 32 - store ptr %18, ptr %25, align 8 - %26 = getelementptr inbounds i8, ptr %13, i64 40 - store ptr %21, ptr %26, align 8 + %24 = getelementptr inbounds i8, ptr %13, i64 8 + store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h3a5416ec164008a5E", ptr %24, align 8 + %25 = getelementptr inbounds i8, ptr %13, i64 16 + store ptr %17, ptr %25, align 8 + %26 = getelementptr inbounds i8, ptr %13, i64 24 + store ptr %23, ptr %26, align 8 + %27 = getelementptr inbounds i8, ptr %13, i64 32 + store ptr %18, ptr %27, align 8 + %28 = getelementptr inbounds i8, ptr %13, i64 40 + store ptr %23, ptr %28, align 8 call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %12) store i64 1, ptr %12, align 8 %.sroa.414.0..sroa_idx = getelementptr inbounds i8, ptr %12, i64 8 @@ -166,22 +169,22 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit: ; preds = %4 call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %9), !noalias !10 call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %12) call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %13) - br label %35 + br label %37 _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit37: ; preds = %4 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %15) - %27 = load ptr, ptr @_ZN4core3fmt2rt12USIZE_MARKER17hef2d4d0250b80c97E, align 8, !nonnull !6, !noundef !6 + %29 = load ptr, ptr @_ZN4core3fmt2rt12USIZE_MARKER17hef2d4d0250b80c97E, align 8, !nonnull !6, !noundef !6 store ptr %19, ptr %15, align 8 - %28 = getelementptr inbounds i8, ptr %15, i64 8 - store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h3a5416ec164008a5E", ptr %28, align 8 - %29 = getelementptr inbounds i8, ptr %15, i64 16 - store ptr %17, ptr %29, align 8 - %30 = getelementptr inbounds i8, ptr %15, i64 24 - store ptr %27, ptr %30, align 8 - %31 = getelementptr inbounds i8, ptr %15, i64 32 - store ptr %18, ptr %31, align 8 - %32 = getelementptr inbounds i8, ptr %15, i64 40 - store ptr %27, ptr %32, align 8 + %30 = getelementptr inbounds i8, ptr %15, i64 8 + store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h3a5416ec164008a5E", ptr %30, align 8 + %31 = getelementptr inbounds i8, ptr %15, i64 16 + store ptr %17, ptr %31, align 8 + %32 = getelementptr inbounds i8, ptr %15, i64 24 + store ptr %29, ptr %32, align 8 + %33 = getelementptr inbounds i8, ptr %15, i64 32 + store ptr %18, ptr %33, align 8 + %34 = getelementptr inbounds i8, ptr %15, i64 40 + store ptr %29, ptr %34, align 8 call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %14) store i64 1, ptr %14, align 8 %.sroa.46.0..sroa_idx = getelementptr inbounds i8, ptr %14, i64 8 @@ -214,115 +217,115 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit37: ; preds = %4 call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %8), !noalias !22 call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %14) call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %15) - br label %35 + br label %37 -33: ; preds = %51, %49 - %34 = landingpad { ptr, i32 } +35: ; preds = %53, %51 + %36 = landingpad { ptr, i32 } cleanup br label %.body -.body: ; preds = %43, %33 - %eh.lpad-body = phi { ptr, i32 } [ %34, %33 ], [ %44, %43 ] +.body: ; preds = %45, %35 + %eh.lpad-body = phi { ptr, i32 } [ %36, %35 ], [ %46, %45 ] invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hcf783812d4bc82d4E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %16) #5 - to label %65 unwind label %63 + to label %67 unwind label %65 -35: ; preds = %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit, %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit37 +37: ; preds = %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit, %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit37 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %11) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) store ptr %16, ptr %10, align 8 - %36 = getelementptr inbounds i8, ptr %10, i64 8 - store ptr @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..fmt..Display$GT$3fmt17h940edd02ab5edd80E", ptr %36, align 8 + %38 = getelementptr inbounds i8, ptr %10, i64 8 + store ptr @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..fmt..Display$GT$3fmt17h940edd02ab5edd80E", ptr %38, align 8 store ptr @anon.6345ddd17ec831990ff496e3dd17b5af.9, ptr %11, align 8, !alias.scope !34, !noalias !37 - %37 = getelementptr inbounds i8, ptr %11, i64 8 - store i64 1, ptr %37, align 8, !alias.scope !34, !noalias !37 - %38 = getelementptr inbounds i8, ptr %11, i64 32 - store ptr null, ptr %38, align 8, !alias.scope !34, !noalias !37 - %39 = getelementptr inbounds i8, ptr %11, i64 16 - store ptr %10, ptr %39, align 8, !alias.scope !34, !noalias !37 - %40 = getelementptr inbounds i8, ptr %11, i64 24 - store i64 1, ptr %40, align 8, !alias.scope !34, !noalias !37 + %39 = getelementptr inbounds i8, ptr %11, i64 8 + store i64 1, ptr %39, align 8, !alias.scope !34, !noalias !37 + %40 = getelementptr inbounds i8, ptr %11, i64 32 + store ptr null, ptr %40, align 8, !alias.scope !34, !noalias !37 + %41 = getelementptr inbounds i8, ptr %11, i64 16 + store ptr %10, ptr %41, align 8, !alias.scope !34, !noalias !37 + %42 = getelementptr inbounds i8, ptr %11, i64 24 + store i64 1, ptr %42, align 8, !alias.scope !34, !noalias !37 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7), !noalias !39 store ptr %0, ptr %7, align 8, !noalias !39 - %41 = getelementptr inbounds i8, ptr %7, i64 8 - store ptr null, ptr %41, align 8, !noalias !39 - %42 = invoke noundef zeroext i1 @_ZN4core3fmt5write17he40921d4802ce2acE(ptr noundef nonnull align 1 %7, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.55cec760ead9d95b5652aef36820f46e.0.llvm.14168879113689993346, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %11) - to label %45 unwind label %43 + %43 = getelementptr inbounds i8, ptr %7, i64 8 + store ptr null, ptr %43, align 8, !noalias !39 + %44 = invoke noundef zeroext i1 @_ZN4core3fmt5write17he40921d4802ce2acE(ptr noundef nonnull align 1 %7, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.55cec760ead9d95b5652aef36820f46e.0.llvm.14168879113689993346, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %11) + to label %47 unwind label %45 -43: ; preds = %35 - %44 = landingpad { ptr, i32 } +45: ; preds = %37 + %46 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr89drop_in_place$LT$std..io..Write..write_fmt..Adapter$LT$std..io..stdio..StdoutLock$GT$$GT$17h88e756ac44728340E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %7) #5 - to label %.body unwind label %53, !noalias !43 + to label %.body unwind label %55, !noalias !43 -45: ; preds = %35 - %46 = load ptr, ptr %41, align 8, !noalias !39 - %.not.i = icmp eq ptr %46, null - br i1 %42, label %47, label %48 +47: ; preds = %37 + %48 = load ptr, ptr %43, align 8, !noalias !39 + %.not.i = icmp eq ptr %48, null + br i1 %44, label %49, label %50 -47: ; preds = %45 - %spec.select.i = select i1 %.not.i, ptr @anon.55cec760ead9d95b5652aef36820f46e.2.llvm.14168879113689993346, ptr %46 - br label %55 +49: ; preds = %47 + %spec.select.i = select i1 %.not.i, ptr @anon.55cec760ead9d95b5652aef36820f46e.2.llvm.14168879113689993346, ptr %48 + br label %57 -48: ; preds = %45 - br i1 %.not.i, label %55, label %49 +50: ; preds = %47 + br i1 %.not.i, label %57, label %51 -49: ; preds = %48 +51: ; preds = %50 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6), !noalias !44 - invoke void @_ZN3std2io5error14repr_bitpacked11decode_repr17hcb9b3b4992316bfaE.llvm.6590528771756919200(ptr noalias nocapture noundef nonnull sret({ i8, [15 x i8] }) align 8 dereferenceable(16) %6, ptr noundef nonnull %46) - to label %.noexc unwind label %33 + invoke void @_ZN3std2io5error14repr_bitpacked11decode_repr17hcb9b3b4992316bfaE.llvm.6590528771756919200(ptr noalias nocapture noundef nonnull sret({ i8, [15 x i8] }) align 8 dereferenceable(16) %6, ptr noundef nonnull %48) + to label %.noexc unwind label %35 -.noexc: ; preds = %49 - %50 = load i8, ptr %6, align 8, !range !53, !alias.scope !54, !noalias !44, !noundef !6 - %switch.not.i.i.i.i.i.i = icmp eq i8 %50, 3 - br i1 %switch.not.i.i.i.i.i.i, label %51, label %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h4eba6266c73a574aE.exit.i.i" +.noexc: ; preds = %51 + %52 = load i8, ptr %6, align 8, !range !53, !alias.scope !54, !noalias !44, !noundef !6 + %switch.not.i.i.i.i.i.i = icmp eq i8 %52, 3 + br i1 %switch.not.i.i.i.i.i.i, label %53, label %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h4eba6266c73a574aE.exit.i.i" -51: ; preds = %.noexc - %52 = getelementptr inbounds i8, ptr %6, i64 8 - invoke void @"_ZN4core3ptr68drop_in_place$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$17h88567b33bdd2c328E.llvm.6590528771756919200"(ptr noalias noundef nonnull align 8 dereferenceable(8) %52) - to label %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h4eba6266c73a574aE.exit.i.i" unwind label %33 +53: ; preds = %.noexc + %54 = getelementptr inbounds i8, ptr %6, i64 8 + invoke void @"_ZN4core3ptr68drop_in_place$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$17h88567b33bdd2c328E.llvm.6590528771756919200"(ptr noalias noundef nonnull align 8 dereferenceable(8) %54) + to label %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h4eba6266c73a574aE.exit.i.i" unwind label %35 -"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h4eba6266c73a574aE.exit.i.i": ; preds = %51, %.noexc +"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h4eba6266c73a574aE.exit.i.i": ; preds = %53, %.noexc call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6), !noalias !44 - br label %55 + br label %57 -53: ; preds = %43 - %54 = landingpad { ptr, i32 } +55: ; preds = %45 + %56 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #4, !noalias !43 unreachable -55: ; preds = %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h4eba6266c73a574aE.exit.i.i", %48, %47 - %.08.i = phi ptr [ null, %48 ], [ null, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h4eba6266c73a574aE.exit.i.i" ], [ %spec.select.i, %47 ] +57: ; preds = %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h4eba6266c73a574aE.exit.i.i", %50, %49 + %.08.i = phi ptr [ null, %50 ], [ null, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h4eba6266c73a574aE.exit.i.i" ], [ %spec.select.i, %49 ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7), !noalias !39 call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %11) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5), !noalias !57 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h6315a8ee5260d624E.llvm.6590528771756919200"(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) %16) - %56 = getelementptr inbounds i8, ptr %5, i64 8 - %57 = load i64, ptr %56, align 8, !range !66, !noalias !57, !noundef !6 - %.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$17hcf783812d4bc82d4E.exit", label %58 - -58: ; preds = %55 - %59 = load ptr, ptr %5, align 8, !noalias !57, !nonnull !6, !noundef !6 - %60 = getelementptr inbounds i8, ptr %5, i64 16 - %61 = load i64, ptr %60, align 8, !noalias !57, !noundef !6 - %62 = getelementptr inbounds i8, ptr %16, i64 16 - call void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h611556c63980c062E.llvm.6590528771756919200"(ptr noalias noundef nonnull readonly align 1 %62, ptr noundef nonnull %59, i64 noundef %57, i64 noundef %61) + %58 = getelementptr inbounds i8, ptr %5, i64 8 + %59 = load i64, ptr %58, align 8, !range !66, !noalias !57, !noundef !6 + %.not.i.i.i.i = icmp eq i64 %59, 0 + br i1 %.not.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hcf783812d4bc82d4E.exit", label %60 + +60: ; preds = %57 + %61 = load ptr, ptr %5, align 8, !noalias !57, !nonnull !6, !noundef !6 + %62 = getelementptr inbounds i8, ptr %5, i64 16 + %63 = load i64, ptr %62, align 8, !noalias !57, !noundef !6 + %64 = getelementptr inbounds i8, ptr %16, i64 16 + call void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h611556c63980c062E.llvm.6590528771756919200"(ptr noalias noundef nonnull readonly align 1 %64, ptr noundef nonnull %61, i64 noundef %59, i64 noundef %63) br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hcf783812d4bc82d4E.exit" -"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hcf783812d4bc82d4E.exit": ; preds = %55, %58 +"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hcf783812d4bc82d4E.exit": ; preds = %57, %60 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5), !noalias !57 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) ret ptr %.08.i -63: ; preds = %.body - %64 = landingpad { ptr, i32 } +65: ; preds = %.body + %66 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #4 unreachable -65: ; preds = %.body +67: ; preds = %.body resume { ptr, i32 } %eh.lpad-body } diff --git a/bench/coreutils-rs/optimized/czge978gjagq0cc.ll b/bench/coreutils-rs/optimized/czge978gjagq0cc.ll index 27156b424b9..434849a95b8 100644 --- a/bench/coreutils-rs/optimized/czge978gjagq0cc.ll +++ b/bench/coreutils-rs/optimized/czge978gjagq0cc.ll @@ -232,7 +232,7 @@ define hidden void @"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as store i64 %51, ptr %3, align 8, !alias.scope !94, !noalias !95 %52 = add nsw i32 %50, -65 %.0.i.i.i.i.i.i.i = icmp ult i32 %52, 26 - %53 = xor i32 %50, 32 + %53 = or disjoint i32 %50, 32 %.07.i.i.i.i.i.i.i = select i1 %.0.i.i.i.i.i.i.i, i32 %53, i32 %50 tail call void @_ZN5alloc6string6String4push17h1a3e9179dd826612E.llvm.16954148956069160696(ptr noalias noundef nonnull align 8 dereferenceable(24) %1, i32 noundef %.07.i.i.i.i.i.i.i), !noalias !96 %.not.i.i.i = icmp eq i64 %51, 0 @@ -443,7 +443,7 @@ define hidden void @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$ %48 = add i64 %7, -1 %49 = add nsw i32 %47, -65 %.0.i.i.i.i.i.i.i.i = icmp ult i32 %49, 26 - %50 = xor i32 %47, 32 + %50 = or disjoint i32 %47, 32 %.07.i.i.i.i.i.i.i.i = select i1 %.0.i.i.i.i.i.i.i.i, i32 %50, i32 %47 tail call void @_ZN5alloc6string6String4push17h1a3e9179dd826612E.llvm.16954148956069160696(ptr noalias noundef nonnull align 8 dereferenceable(24) %1, i32 noundef %.07.i.i.i.i.i.i.i.i), !noalias !184 %.not.i.i.i.i = icmp eq i64 %48, 0 @@ -2733,7 +2733,7 @@ define hidden void @_ZN4core4iter6traits8iterator8Iterator8for_each17hd4f77d4683 %48 = add i64 %7, -1 %49 = add nsw i32 %47, -65 %.0.i.i.i.i.i.i.i.i.i = icmp ult i32 %49, 26 - %50 = xor i32 %47, 32 + %50 = or disjoint i32 %47, 32 %.07.i.i.i.i.i.i.i.i.i = select i1 %.0.i.i.i.i.i.i.i.i.i, i32 %50, i32 %47 tail call void @_ZN5alloc6string6String4push17h1a3e9179dd826612E.llvm.16954148956069160696(ptr noalias noundef nonnull align 8 dereferenceable(24) %1, i32 noundef %.07.i.i.i.i.i.i.i.i.i), !noalias !786 %.not.i.i.i.i.i = icmp eq i64 %48, 0 @@ -4008,7 +4008,7 @@ define hidden void @"_ZN89_$LT$alloc..string..String$u20$as$u20$core..iter..trai %58 = add i64 %17, -1 %59 = add nsw i32 %57, -65 %.0.i.i.i.i.i.i.i.i.i.i = icmp ult i32 %59, 26 - %60 = xor i32 %57, 32 + %60 = or disjoint i32 %57, 32 %.07.i.i.i.i.i.i.i.i.i.i = select i1 %.0.i.i.i.i.i.i.i.i.i.i, i32 %60, i32 %57 tail call void @_ZN5alloc6string6String4push17h1a3e9179dd826612E.llvm.16954148956069160696(ptr noalias noundef nonnull align 8 dereferenceable(24) %0, i32 noundef %.07.i.i.i.i.i.i.i.i.i.i), !noalias !1069 %.not.i.i.i.i.i.i = icmp eq i64 %58, 0 @@ -4747,7 +4747,7 @@ define hidden void @"_ZN98_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$ store i64 %51, ptr %3, align 8, !alias.scope !1229, !noalias !1230 %52 = add nsw i32 %50, -65 %.0.i.i.i.i.i.i = icmp ult i32 %52, 26 - %53 = xor i32 %50, 32 + %53 = or disjoint i32 %50, 32 %.07.i.i.i.i.i.i = select i1 %.0.i.i.i.i.i.i, i32 %53, i32 %50 tail call void @_ZN5alloc6string6String4push17h1a3e9179dd826612E.llvm.16954148956069160696(ptr noalias noundef nonnull align 8 dereferenceable(24) %1, i32 noundef %.07.i.i.i.i.i.i), !noalias !1231 %.not.i.i = icmp eq i64 %51, 0 diff --git a/bench/cpython/optimized/obmalloc.ll b/bench/cpython/optimized/obmalloc.ll index bf4dc043cfa..6494ff79d79 100644 --- a/bench/cpython/optimized/obmalloc.ll +++ b/bench/cpython/optimized/obmalloc.ll @@ -10644,8 +10644,6 @@ entry: for.body.lr.ph: ; preds = %entry %cmp1.i.i = icmp eq i64 %count, 0 - %notmask.i.i = shl nsw i64 -1, %count - %sub.i.i = xor i64 %notmask.i.i, -1 %sub.i = sub i64 64, %count %cmp8.i = icmp eq i64 %count, 1 br i1 %cmp8.i, label %for.body.us, label %for.body.lr.ph.split @@ -10819,7 +10817,7 @@ if.end.i: ; preds = %for.body br i1 %cmp2.not22.i, label %for.inc, label %while.cond.outer.split.lr.ph.i while.cond.outer.split.lr.ph.i: ; preds = %if.end.i - %shl.i = shl i64 %sub.i.i, %18 + %shl.i = shl nuw i64 1, %18 br label %while.cond.outer.split.i while.cond.outer.split.i: ; preds = %while.cond.outer.split.lr.ph.i, %if.else7.i @@ -10879,12 +10877,12 @@ entry: for.body.lr.ph: ; preds = %entry %cmp.i.i = icmp ugt i64 %count, 63 - %notmask.i.i = shl nsw i64 -1, %count - %sub.i.i = xor i64 %notmask.i.i, -1 %sub.i = sub i64 64, %count %cmp8.i = icmp eq i64 %count, 1 %cmp3 = icmp eq ptr %pred_fun, null %cmp1.i.i13 = icmp eq i64 %count, 0 + %notmask.i.i15 = shl nsw i64 -1, %count + %sub.i.i16 = xor i64 %notmask.i.i15, -1 br i1 %cmp8.i, label %for.body.us, label %for.body.lr.ph.split for.body.us: ; preds = %for.body.lr.ph, %for.inc.us @@ -10940,7 +10938,7 @@ lor.lhs.false.us: ; preds = %if.then2.loopexit.u if.end6.us: ; preds = %lor.lhs.false.us %5 = load i64, ptr %bitmap_idx, align 8 %rem.i.i.us = and i64 %5, 63 - %shl4.i.i.us = shl nuw i64 %sub.i.i, %rem.i.i.us + %shl4.i.i.us = shl nuw i64 %sub.i.i16, %rem.i.i.us %6 = xor i64 %shl4.i.i.us, -1 %7 = select i1 %cmp1.i.i13, i64 -1, i64 %6 %div1.i.i.us = lshr i64 %5, 6 @@ -10966,7 +10964,7 @@ for.body.lr.ph.split: ; preds = %for.body.lr.ph br i1 %cmp3, label %for.body.lr.ph.split.split.us, label %for.body.preheader for.body.preheader: ; preds = %for.body.lr.ph.split - %retval.0.i.i = select i1 %cmp.i.i, i64 -1, i64 %sub.i.i + %retval.0.i.i = select i1 %cmp.i.i, i64 -1, i64 1 br label %for.body for.body.lr.ph.split.split.us: ; preds = %for.body.lr.ph.split @@ -11046,7 +11044,7 @@ if.end.i.us48: ; preds = %for.body.us40 br i1 %cmp2.not22.i.us54, label %for.inc.us57, label %while.cond.outer.split.lr.ph.i.us55 while.cond.outer.split.lr.ph.i.us55: ; preds = %if.end.i.us48 - %shl.i.us56 = shl i64 %sub.i.i, %17 + %shl.i.us56 = shl nuw i64 1, %17 br label %while.cond.outer.split.i.us while.cond.outer.split.i.us: ; preds = %if.else7.i.us, %while.cond.outer.split.lr.ph.i.us55 @@ -11152,7 +11150,7 @@ if.then2.loopexit25: ; preds = %if.then4.i if.end6: ; preds = %if.then2.loopexit25 %30 = load i64, ptr %bitmap_idx, align 8 %rem.i.i = and i64 %30, 63 - %shl4.i.i = shl i64 %sub.i.i, %rem.i.i + %shl4.i.i = shl i64 %sub.i.i16, %rem.i.i %31 = xor i64 %shl4.i.i, -1 %32 = select i1 %cmp1.i.i13, i64 -1, i64 %31 %div1.i.i = lshr i64 %30, 6 diff --git a/bench/delta-rs/optimized/5d242f2by7re2olg.ll b/bench/delta-rs/optimized/5d242f2by7re2olg.ll index 2657c210dd5..0891bc57bd9 100644 --- a/bench/delta-rs/optimized/5d242f2by7re2olg.ll +++ b/bench/delta-rs/optimized/5d242f2by7re2olg.ll @@ -14596,7 +14596,7 @@ define internal void @"_ZN4core3ptr72drop_in_place$LT$aws_sdk_dynamodb..operatio %9 = load i64, ptr %0, align 8, !range !2017, !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 @@ -15305,7 +15305,7 @@ define internal void @"_ZN4core3ptr78drop_in_place$LT$aws_sdk_dynamodb..operatio %9 = load i64, ptr %0, align 8, !range !2017, !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 @@ -19265,7 +19265,7 @@ define internal { ptr, ptr } @_ZN4core5error5Error5cause17h7c50fe35320f8b09E(ptr %2 = load i64, ptr %0, align 8, !range !2017, !alias.scope !2925, !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" @@ -19516,12 +19516,15 @@ 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 !2934, !noundef !5 - %switch1.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 - %4 = insertvalue { ptr, ptr } poison, ptr %spec.select.i, 0 - %5 = insertvalue { ptr, ptr } %4, ptr @anon.ef876e9a40f6761df4fa1e2b544b5407.544, 1 - ret { ptr, ptr } %5 + %3 = icmp slt i64 %2, -9223372036854775806 + %4 = and i64 %2, 1 + %switch1.i = icmp eq i64 %4, 0 + %switch.i = and i1 %3, %switch1.i + %5 = getelementptr inbounds i8, ptr %0, i64 8 + %spec.select.i = select i1 %switch.i, ptr %5, ptr null + %6 = insertvalue { ptr, ptr } poison, ptr %spec.select.i, 0 + %7 = insertvalue { ptr, ptr } %6, ptr @anon.ef876e9a40f6761df4fa1e2b544b5407.544, 1 + ret { ptr, ptr } %7 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable @@ -19579,7 +19582,7 @@ define internal { ptr, ptr } @_ZN4core5error5Error5cause17hb7fd9f860bfc039dE(ptr %2 = load i64, ptr %0, align 8, !range !2017, !alias.scope !2940, !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" @@ -24250,7 +24253,7 @@ define internal noundef zeroext i1 @"_ZN88_$LT$aws_sdk_dynamodb..operation..put_ %12 = load i64, ptr %0, align 8, !range !2017, !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 @@ -24647,7 +24650,7 @@ define internal { ptr, ptr } @"_ZN90_$LT$aws_sdk_dynamodb..operation..put_item.. %2 = load i64, ptr %0, align 8, !range !2017, !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 @@ -25351,7 +25354,7 @@ define internal noundef zeroext i1 @"_ZN94_$LT$aws_sdk_dynamodb..operation..upda %12 = load i64, ptr %0, align 8, !range !2017, !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 @@ -25717,7 +25720,7 @@ define internal { ptr, ptr } @"_ZN96_$LT$aws_sdk_dynamodb..operation..update_ite %2 = load i64, ptr %0, align 8, !range !2017, !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 @@ -27196,7 +27199,7 @@ define void @"_ZN137_$LT$deltalake_aws..errors..LockClientError$u20$as$u20$core. %8 = load i64, ptr %1, align 8, !range !2017, !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 @@ -27315,7 +27318,7 @@ define void @"_ZN143_$LT$deltalake_aws..errors..LockClientError$u20$as$u20$core. %9 = load i64, ptr %1, align 8, !range !2017, !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 @@ -27440,12 +27443,15 @@ 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 - %3 = getelementptr inbounds i8, ptr %0, i64 8 - %spec.select = select i1 %switch1, 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 + %3 = icmp slt i64 %2, -9223372036854775806 + %4 = and i64 %2, 1 + %switch1 = icmp eq i64 %4, 0 + %switch = and i1 %3, %switch1 + %5 = getelementptr inbounds i8, ptr %0, i64 8 + %spec.select = select i1 %switch, ptr %5, ptr null + %6 = insertvalue { ptr, ptr } poison, ptr %spec.select, 0 + %7 = insertvalue { ptr, ptr } %6, ptr @anon.ef876e9a40f6761df4fa1e2b544b5407.544, 1 + ret { ptr, ptr } %7 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/graphviz/optimized/generate-constraints.cpp.ll b/bench/graphviz/optimized/generate-constraints.cpp.ll index 3315472b3ed..1dad81e5929 100644 --- a/bench/graphviz/optimized/generate-constraints.cpp.ll +++ b/bench/graphviz/optimized/generate-constraints.cpp.ll @@ -2041,9 +2041,9 @@ _ZNSt6vectorIP10ConstraintSaIS1_EE9push_backEOS1_.exit284: ; preds = %_ZNSt6vect %769 = sub i64 %.sroa.13.0.lcssa, %768 %770 = lshr i64 %769, 3 %771 = trunc i64 %770 to i32 - %sext = shl i64 %769, 29 - %772 = ashr exact i64 %sext, 29 - %.inv = icmp sgt i64 %sext, -1 + %772 = and i64 %769, 34359738367 + %sext.mask = and i64 %769, 17179869184 + %.inv = icmp eq i64 %sext.mask, 0 %773 = select i1 %.inv, i64 %772, i64 -1 %774 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %773) #23 to label %775 unwind label %.loopexit.split-lp402.loopexit.split-lp.loopexit.split-lp @@ -3553,9 +3553,9 @@ _ZNSt6vectorIP10ConstraintSaIS1_EE9push_backEOS1_.exit118: ; 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) #23 to label %307 unwind label %.loopexit.split-lp diff --git a/bench/harfbuzz/optimized/harfbuzz.cc.ll b/bench/harfbuzz/optimized/harfbuzz.cc.ll index 3bd1942acad..47935f34009 100644 --- a/bench/harfbuzz/optimized/harfbuzz.cc.ll +++ b/bench/harfbuzz/optimized/harfbuzz.cc.ll @@ -125142,8 +125142,7 @@ if.end: ; preds = %entry %arrayidx3.i.i.i = getelementptr inbounds i8, ptr %this, i64 3 %5 = load i8, ptr %arrayidx3.i.i.i, align 1 %conv4.i.i.i = zext i8 %5 to i32 - %shl.i.i.masked.i = and i32 %shl.i.i.i, 32512 - %and.i = or disjoint i32 %shl.i.i.masked.i, %conv4.i.i.i + %and.i = or disjoint i32 %shl.i.i.i, %conv4.i.i.i %cond = select i1 %tobool.i, i32 %add.i.i31, i32 %and.i %conv.i.i.i.i.i = zext i8 %2 to i64 %conv4.i.i.i.i.i = zext i8 %3 to i64 @@ -125165,7 +125164,7 @@ if.end: ; preds = %entry for.body.preheader: ; preds = %if.end %arrayZ = getelementptr inbounds i8, ptr %this, i64 6 - %10 = or disjoint i32 %shl.i.i.masked.i, %conv4.i.i.i + %10 = or disjoint i32 %shl.i.i.i, %conv4.i.i.i %wide.trip.count = zext nneg i32 %10 to i64 br label %for.body diff --git a/bench/icu/optimized/ucnvbocu.ll b/bench/icu/optimized/ucnvbocu.ll index 9c451dbf3e8..d496cddfd65 100644 --- a/bench/icu/optimized/ucnvbocu.ll +++ b/bench/icu/optimized/ucnvbocu.ll @@ -1261,19 +1261,20 @@ cond.end120: ; preds = %cond.false118, %con if.else125: ; preds = %if.else91 %call126 = tail call fastcc noundef i32 @_ZL8packDiffi(i32 noundef %sub75) %cmp127 = icmp ult i32 %call126, 67108864 - %shr = ashr i32 %call126, 24 + %shr = lshr i32 %call126, 24 %cond131 = select i1 %cmp127, i32 %shr, i32 4 - %cmp132.not = icmp sgt i32 %cond131, %targetCapacity.5 + %cmp132.not = icmp ugt i32 %cond131, %targetCapacity.5 br i1 %cmp132.not, label %if.else147, label %if.then133 if.then133: ; preds = %if.else125 - switch i32 %cond131, label %sw.epilog [ - i32 4, label %sw.bb - i32 3, label %sw.bb137 + %trunc = trunc nuw i32 %cond131 to i8 + switch i8 %trunc, label %sw.epilog [ + i8 4, label %sw.bb + i8 3, label %sw.bb137 ] sw.bb: ; preds = %if.then133 - %conv135 = trunc nsw i32 %shr to i8 + %conv135 = trunc nuw i32 %shr to i8 %incdec.ptr136 = getelementptr inbounds i8, ptr %target.5, i64 1 store i8 %conv135, ptr %target.5, align 1 br label %sw.bb137 @@ -1720,20 +1721,21 @@ cond.end132: ; preds = %cond.false130, %con if.else139: ; preds = %if.else103 %call140 = tail call fastcc noundef i32 @_ZL8packDiffi(i32 noundef %sub85) %cmp141 = icmp ult i32 %call140, 67108864 - %shr = ashr i32 %call140, 24 + %shr = lshr i32 %call140, 24 %cond145 = select i1 %cmp141, i32 %shr, i32 4 - %cmp146.not = icmp sgt i32 %cond145, %targetCapacity.6 + %cmp146.not = icmp ugt i32 %cond145, %targetCapacity.6 br i1 %cmp146.not, label %if.else166, label %if.then147 if.then147: ; preds = %if.else139 - switch i32 %cond145, label %sw.epilog [ - i32 4, label %sw.bb - i32 3, label %sw.bb152 - i32 2, label %sw.bb157 + %trunc = trunc nuw i32 %cond145 to i8 + switch i8 %trunc, label %sw.epilog [ + i8 4, label %sw.bb + i8 3, label %sw.bb152 + i8 2, label %sw.bb157 ] sw.bb: ; preds = %if.then147 - %conv149 = trunc nsw i32 %shr to i8 + %conv149 = trunc nuw i32 %shr to i8 %incdec.ptr150 = getelementptr inbounds i8, ptr %target.5, i64 1 store i8 %conv149, ptr %target.5, align 1 %incdec.ptr151 = getelementptr inbounds i8, ptr %offsets.5, i64 4 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 f8a2993c5ac..8d35b83ec0c 100644 --- a/bench/image-rs/optimized/1njpscpjlgoe3i07.ll +++ b/bench/image-rs/optimized/1njpscpjlgoe3i07.ll @@ -23456,16 +23456,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 51773c9cc4f..4d295825037 100644 --- a/bench/image-rs/optimized/4srzh4wujeew249y.ll +++ b/bench/image-rs/optimized/4srzh4wujeew249y.ll @@ -27775,7 +27775,7 @@ define void @"_ZN5image6codecs4jpeg7decoder42_$LT$impl$u20$image..error..ImageEr call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %.sroa.0) br label %46 -29: ; preds = %51, %40 +29: ; preds = %55, %40 %30 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #25 @@ -27833,7 +27833,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) #24 - to label %49 unwind label %29 + to label %51 unwind label %29 42: ; preds = %2 %43 = getelementptr inbounds i8, ptr %1, i64 8 @@ -27847,28 +27847,34 @@ define void @"_ZN5image6codecs4jpeg7decoder42_$LT$impl$u20$image..error..ImageEr store i8 4, ptr %0, align 8 br label %.critedge -46: ; preds = %.critedge, %27, %48 +46: ; preds = %.critedge, %27, %50 ret void .critedge: ; preds = %42, %15, %39 %47 = phi i64 [ %10, %42 ], [ %10, %15 ], [ %.pre, %39 ] - %switch37 = icmp slt i64 %47, -9223372036854775805 - br i1 %switch37, label %46, label %48 + %48 = icmp slt i64 %47, -9223372036854775805 + %49 = and i64 %47, 3 + %switch37 = icmp ne i64 %49, 3 + %switch = and i1 %48, %switch37 + br i1 %switch, label %46, label %50 -48: ; preds = %.critedge +50: ; preds = %.critedge call fastcc void @"_ZN4core3ptr47drop_in_place$LT$jpeg_decoder..error..Error$GT$17habd25b08f00d446eE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %1) br label %46 -.body: ; preds = %.body.i, %49, %51 - %.pn34 = phi { ptr, i32 } [ %41, %49 ], [ %41, %51 ], [ %22, %.body.i ] +.body: ; preds = %.body.i, %51, %55 + %.pn34 = phi { ptr, i32 } [ %41, %51 ], [ %41, %55 ], [ %22, %.body.i ] resume { ptr, i32 } %.pn34 -49: ; preds = %40 - %50 = load i64, ptr %1, align 8, !range !2180, !noundef !9 - %switch1136 = icmp slt i64 %50, -9223372036854775805 - br i1 %switch1136, label %.body, label %51 +51: ; preds = %40 + %52 = load i64, ptr %1, align 8, !range !2180, !noundef !9 + %53 = icmp slt i64 %52, -9223372036854775805 + %54 = and i64 %52, 3 + %switch1136 = icmp ne i64 %54, 3 + %switch11 = and i1 %53, %switch1136 + br i1 %switch11, label %.body, label %55 -51: ; preds = %49 +55: ; preds = %51 invoke fastcc void @"_ZN4core3ptr47drop_in_place$LT$jpeg_decoder..error..Error$GT$17habd25b08f00d446eE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %1) #24 to label %.body unwind label %29 } diff --git a/bench/ipopt/optimized/IpEquilibrationScaling.ll b/bench/ipopt/optimized/IpEquilibrationScaling.ll index da281089632..f68d4f5946a 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) #18 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) #18 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) #18 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 @@ -1738,9 +1730,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) #18 tail call void @_ZN5Ipopt13TripletHelper20FillValuesFromVectorEiRKNS_6VectorEPd(i32 noundef %8, ptr noundef nonnull align 8 dereferenceable(205) %4, ptr noundef nonnull %13) @@ -1749,14 +1741,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 @@ -1767,7 +1755,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/IpGenAugSystemSolver.ll b/bench/ipopt/optimized/IpGenAugSystemSolver.ll index 1df56babcbf..47ffa266308 100644 --- a/bench/ipopt/optimized/IpGenAugSystemSolver.ll +++ b/bench/ipopt/optimized/IpGenAugSystemSolver.ll @@ -615,9 +615,9 @@ define noundef i32 @_ZN5Ipopt18GenAugSystemSolver10MultiSolveEPKNS_9SymMatrixEdP br label %75 75: ; preds = %74, %70 - %76 = sext i32 %44 to i64 + %76 = zext i32 %44 to i64 %77 = icmp slt i32 %44, 0 - %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) #19 store ptr %80, ptr %71, align 8 @@ -668,9 +668,9 @@ define noundef i32 @_ZN5Ipopt18GenAugSystemSolver10MultiSolveEPKNS_9SymMatrixEdP br label %101 101: ; preds = %100, %96 - %102 = sext i32 %56 to i64 + %102 = zext i32 %56 to i64 %103 = icmp slt i32 %56, 0 - %104 = shl nsw i64 %102, 3 + %104 = shl nuw nsw i64 %102, 3 %105 = select i1 %103, i64 -1, i64 %104 %106 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %105) #19 store ptr %106, ptr %97, align 8 @@ -721,9 +721,9 @@ define noundef i32 @_ZN5Ipopt18GenAugSystemSolver10MultiSolveEPKNS_9SymMatrixEdP br label %127 127: ; preds = %126, %122 - %128 = sext i32 %50 to i64 + %128 = zext i32 %50 to i64 %129 = icmp slt i32 %50, 0 - %130 = shl nsw i64 %128, 3 + %130 = shl nuw nsw i64 %128, 3 %131 = select i1 %129, i64 -1, i64 %130 %132 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %131) #19 store ptr %132, ptr %123, align 8 @@ -774,9 +774,9 @@ define noundef i32 @_ZN5Ipopt18GenAugSystemSolver10MultiSolveEPKNS_9SymMatrixEdP br label %153 153: ; preds = %152, %148 - %154 = sext i32 %56 to i64 + %154 = zext i32 %56 to i64 %155 = icmp slt i32 %56, 0 - %156 = shl nsw i64 %154, 3 + %156 = shl nuw nsw i64 %154, 3 %157 = select i1 %155, i64 -1, i64 %156 %158 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %157) #19 store ptr %158, ptr %149, align 8 @@ -794,9 +794,9 @@ define noundef i32 @_ZN5Ipopt18GenAugSystemSolver10MultiSolveEPKNS_9SymMatrixEdP %161 = add i32 %50, %44 %162 = add i32 %161, %factor %163 = mul nsw i32 %162, %38 - %164 = sext i32 %163 to i64 + %164 = zext i32 %163 to i64 %165 = icmp slt i32 %163, 0 - %166 = shl nsw i64 %164, 3 + %166 = shl nuw nsw i64 %164, 3 %167 = select i1 %165, i64 -1, i64 %166 %168 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %167) #19 %169 = icmp sgt i32 %38, 0 diff --git a/bench/ipopt/optimized/IpTripletHelper.ll b/bench/ipopt/optimized/IpTripletHelper.ll index ab51bd3aedc..9999b336e94 100644 --- a/bench/ipopt/optimized/IpTripletHelper.ll +++ b/bench/ipopt/optimized/IpTripletHelper.ll @@ -2786,9 +2786,9 @@ _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit: ; preds = %52, %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) #16 %69 = load ptr, ptr %39, align 8, !noalias !102 @@ -2958,9 +2958,9 @@ _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit67: ; preds = %145, %148 %153 = load ptr, ptr %152, align 8 %154 = getelementptr inbounds i8, ptr %153, i64 16 %155 = load i32, ptr %154, align 8 - %156 = sext i32 %155 to i64 + %156 = zext i32 %155 to i64 %157 = icmp slt i32 %155, 0 - %158 = shl nsw i64 %156, 3 + %158 = shl nuw nsw i64 %156, 3 %159 = select i1 %157, i64 -1, i64 %158 %160 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %159) #16 %161 = load ptr, ptr %39, align 8, !noalias !119 @@ -3170,9 +3170,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) #16 %69 = load ptr, ptr %39, align 8, !noalias !142 @@ -3902,7 +3902,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 %74, label %12 + br i1 %.not.i.i.i.i.i, label %72, label %12 12: ; preds = %3 %13 = getelementptr inbounds i8, ptr %11, i64 8 @@ -3914,7 +3914,7 @@ define void @_ZN5Ipopt13TripletHelper11FillValues_EiRKNS_25ExpandedMultiVectorMa %18 = getelementptr inbounds i8, ptr %17, i64 16 %19 = load i32, ptr %18, align 8 %.fr122 = freeze i32 %19 - %20 = zext nneg i32 %.fr122 to i64 + %20 = zext i32 %.fr122 to i64 %21 = icmp slt i32 %.fr122, 0 %22 = shl nuw nsw i64 %20, 3 %23 = select i1 %21, i64 -1, i64 %22 @@ -3931,74 +3931,72 @@ 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 %.fr122 to i64 - %29 = shl nuw nsw i64 %28, 3 - %30 = add nsw i32 %.fr122, -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 %.fr122, -1 + %29 = zext nneg i32 %28 to i64 + %30 = shl nuw nsw i64 %29, 3 + %31 = add nuw nsw i64 %30, 8 %wide.trip.count152 = 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.iv149 = phi i64 [ 0, %.lr.ph95.split.us.preheader ], [ %indvars.iv.next150, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45.us ] - %.03794.us = phi ptr [ %2, %.lr.ph95.split.us.preheader ], [ %.3.us161, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45.us ] - %34 = load ptr, ptr %26, align 8, !noalias !178 - %35 = getelementptr inbounds %"class.Ipopt::SmartPtr.6", ptr %34, i64 %indvars.iv149 - %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 %.fr122, ptr noundef nonnull align 8 dereferenceable(205) %36, ptr noundef nonnull %24) + %.03794.us = phi ptr [ %2, %.lr.ph95.split.us.preheader ], [ %.3.us162, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45.us ] + %32 = load ptr, ptr %26, align 8, !noalias !178 + %33 = getelementptr inbounds %"class.Ipopt::SmartPtr.6", ptr %32, i64 %indvars.iv149 + %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 %.fr122, 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.iv143 = phi i64 [ %indvars.iv.next144, %.preheader83.us ], [ 0, %37 ] - %.188.us = phi ptr [ %43, %.preheader83.us ], [ %.03794.us, %37 ] - %41 = getelementptr inbounds double, ptr %24, i64 %indvars.iv143 - %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.iv143 = phi i64 [ %indvars.iv.next144, %.preheader83.us ], [ 0, %35 ] + %.188.us = phi ptr [ %41, %.preheader83.us ], [ %.03794.us, %35 ] + %39 = getelementptr inbounds double, ptr %24, i64 %indvars.iv143 + %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.next144 = add nuw nsw i64 %indvars.iv143, 1 - %exitcond147.not = icmp eq i64 %indvars.iv.next144, %28 + %exitcond147.not = icmp eq i64 %indvars.iv.next144, %20 br i1 %exitcond147.not, label %.loopexit82.us, label %.preheader83.us, !llvm.loop !181 .loopexit82.us: ; preds = %.preheader83.us - br i1 %.not.i.i.i.i.us, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45.us, label %44 + br i1 %.not.i.i.i.i.us, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45.us, label %42 -44: ; preds = %.loopexit82.us - %45 = getelementptr inbounds i8, ptr %36, i64 8 - %46 = load i32, ptr %45, align 8 - %47 = add nsw i32 %46, -1 - store i32 %47, ptr %45, align 8 - %48 = icmp eq i32 %47, 0 - br i1 %48, label %49, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45.us - -49: ; preds = %44 - %50 = load ptr, ptr %36, align 8 - %51 = getelementptr inbounds i8, ptr %50, i64 8 - %52 = load ptr, ptr %51, align 8 - tail call void %52(ptr noundef nonnull align 8 dereferenceable(205) %36) #14 +42: ; preds = %.loopexit82.us + %43 = getelementptr inbounds i8, ptr %34, i64 8 + %44 = load i32, ptr %43, align 8 + %45 = add nsw i32 %44, -1 + store i32 %45, ptr %43, align 8 + %46 = icmp eq i32 %45, 0 + br i1 %46, label %47, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45.us + +47: ; preds = %42 + %48 = load ptr, ptr %34, align 8 + %49 = getelementptr inbounds i8, ptr %48, i64 8 + %50 = load ptr, ptr %49, align 8 + tail call void %50(ptr noundef nonnull align 8 dereferenceable(205) %34) #14 br label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45.us -_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45.us: ; preds = %.loopexit82.us.thread, %49, %44, %.loopexit82.us - %.3.us161 = phi ptr [ %scevgep148, %.loopexit82.us.thread ], [ %43, %49 ], [ %43, %44 ], [ %43, %.loopexit82.us ] +_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45.us: ; preds = %.loopexit82.us.thread, %47, %42, %.loopexit82.us + %.3.us162 = phi ptr [ %scevgep148, %.loopexit82.us.thread ], [ %41, %47 ], [ %41, %42 ], [ %41, %.loopexit82.us ] %indvars.iv.next150 = add nuw nsw i64 %indvars.iv149, 1 %exitcond153.not = icmp eq i64 %indvars.iv.next150, %wide.trip.count152 br i1 %exitcond153.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) - %scevgep148 = 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) + %scevgep148 = getelementptr i8, ptr %.03794.us, i64 %31 br label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45.us -.split.us: ; preds = %37 - %53 = landingpad { ptr, i32 } +.split.us: ; preds = %35 + %51 = landingpad { ptr, i32 } cleanup br label %.split @@ -4008,55 +4006,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 ] - %54 = load ptr, ptr %26, align 8, !noalias !178 - %55 = getelementptr inbounds %"class.Ipopt::SmartPtr.6", ptr %54, i64 %indvars.iv - %56 = load ptr, ptr %55, align 8, !noalias !178 - %.not.i.i.i.i = icmp eq ptr %56, null - br i1 %.not.i.i.i.i, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45, label %57 - -57: ; preds = %.lr.ph95.split.split - %58 = getelementptr inbounds i8, ptr %56, i64 8 - %59 = load i32, ptr %58, align 8, !noalias !178 - %60 = add nsw i32 %59, 1 - store i32 %60, ptr %58, align 8, !noalias !178 - invoke void @_ZN5Ipopt13TripletHelper20FillValuesFromVectorEiRKNS_6VectorEPd(i32 noundef %.fr122, ptr noundef nonnull align 8 dereferenceable(205) %56, ptr noundef nonnull %24) + %52 = load ptr, ptr %26, align 8, !noalias !178 + %53 = getelementptr inbounds %"class.Ipopt::SmartPtr.6", ptr %52, i64 %indvars.iv + %54 = load ptr, ptr %53, align 8, !noalias !178 + %.not.i.i.i.i = icmp eq ptr %54, null + br i1 %.not.i.i.i.i, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45, label %55 + +55: ; preds = %.lr.ph95.split.split + %56 = getelementptr inbounds i8, ptr %54, i64 8 + %57 = load i32, ptr %56, align 8, !noalias !178 + %58 = add nsw i32 %57, 1 + store i32 %58, ptr %56, align 8, !noalias !178 + invoke void @_ZN5Ipopt13TripletHelper20FillValuesFromVectorEiRKNS_6VectorEPd(i32 noundef %.fr122, ptr noundef nonnull align 8 dereferenceable(205) %54, ptr noundef nonnull %24) to label %.preheader81 unwind label %.split.split _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.thread: ; preds = %12 - %61 = landingpad { ptr, i32 } + %59 = landingpad { ptr, i32 } cleanup - br label %121 + br label %119 -.split.split: ; preds = %57 - %62 = landingpad { ptr, i32 } +.split.split: ; preds = %55 + %60 = landingpad { ptr, i32 } cleanup br label %.split .split: ; preds = %.split.split, %.split.us - %.us-phi = phi ptr [ %36, %.split.us ], [ %56, %.split.split ] - %.us-phi96 = phi { ptr, i32 } [ %53, %.split.us ], [ %62, %.split.split ] - %63 = getelementptr inbounds i8, ptr %.us-phi, i64 8 - %64 = load i32, ptr %63, align 8 - %65 = add nsw i32 %64, -1 - store i32 %65, ptr %63, align 8 - %66 = icmp eq i32 %65, 0 - br i1 %66, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.sink.split, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit - -.preheader81: ; preds = %57 - %67 = load i32, ptr %58, align 8 - %68 = add nsw i32 %67, -1 - store i32 %68, ptr %58, align 8 - %69 = icmp eq i32 %68, 0 - br i1 %69, label %70, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45 + %.us-phi = phi ptr [ %34, %.split.us ], [ %54, %.split.split ] + %.us-phi96 = phi { ptr, i32 } [ %51, %.split.us ], [ %60, %.split.split ] + %61 = getelementptr inbounds i8, ptr %.us-phi, i64 8 + %62 = load i32, ptr %61, align 8 + %63 = add nsw i32 %62, -1 + store i32 %63, ptr %61, align 8 + %64 = icmp eq i32 %63, 0 + br i1 %64, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.sink.split, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit + +.preheader81: ; preds = %55 + %65 = load i32, ptr %56, align 8 + %66 = add nsw i32 %65, -1 + store i32 %66, ptr %56, align 8 + %67 = icmp eq i32 %66, 0 + br i1 %67, label %68, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45 -70: ; preds = %.preheader81 - %71 = load ptr, ptr %56, align 8 - %72 = getelementptr inbounds i8, ptr %71, i64 8 - %73 = load ptr, ptr %72, align 8 - tail call void %73(ptr noundef nonnull align 8 dereferenceable(205) %56) #14 +68: ; preds = %.preheader81 + %69 = load ptr, ptr %54, align 8 + %70 = getelementptr inbounds i8, ptr %69, i64 8 + %71 = load ptr, ptr %70, align 8 + tail call void %71(ptr noundef nonnull align 8 dereferenceable(205) %54) #14 br label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45 -_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45: ; preds = %.lr.ph95.split.split, %.preheader81, %70 +_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45: ; preds = %.lr.ph95.split.split, %.preheader81, %68 %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 @@ -4065,137 +4063,137 @@ _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit45: ; preds = %.lr.ph95.split.spli tail call void @_ZdaPv(ptr noundef nonnull %24) #17 br label %.loopexit -74: ; preds = %3 - %75 = getelementptr inbounds i8, ptr %5, i64 16 - %76 = load i32, ptr %75, align 8 - %77 = icmp sgt i32 %7, 0 - br i1 %77, label %.lr.ph121, label %_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit - -.lr.ph121: ; preds = %74 - %78 = getelementptr inbounds i8, ptr %1, i64 80 - %79 = sext i32 %76 to i64 - %80 = icmp sgt i32 %76, 0 - %81 = zext i32 %76 to i64 - %82 = shl nuw nsw i64 %81, 3 - %83 = add i32 %76, -1 - %84 = zext i32 %83 to i64 - %85 = shl nuw nsw i64 %84, 3 - %86 = add nuw nsw i64 %85, 8 +72: ; preds = %3 + %73 = getelementptr inbounds i8, ptr %5, i64 16 + %74 = load i32, ptr %73, align 8 + %75 = icmp sgt i32 %7, 0 + br i1 %75, label %.lr.ph121, label %_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit + +.lr.ph121: ; preds = %72 + %76 = getelementptr inbounds i8, ptr %1, i64 80 + %77 = sext i32 %74 to i64 + %78 = icmp sgt i32 %74, 0 + %79 = zext i32 %74 to i64 + %80 = shl nuw nsw i64 %79, 3 + %81 = add i32 %74, -1 + %82 = zext i32 %81 to i64 + %83 = shl nuw nsw i64 %82, 3 + %84 = add nuw nsw i64 %83, 8 %wide.trip.count158 = zext nneg i32 %7 to i64 - br label %87 + br label %85 -87: ; preds = %.lr.ph121, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit51 +85: ; preds = %.lr.ph121, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit51 %indvars.iv155 = phi i64 [ 0, %.lr.ph121 ], [ %indvars.iv.next156, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit51 ] %.4118 = phi ptr [ %2, %.lr.ph121 ], [ %.677, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit51 ] - %88 = load ptr, ptr %78, align 8, !noalias !183 - %89 = getelementptr inbounds %"class.Ipopt::SmartPtr.6", ptr %88, i64 %indvars.iv155 - %90 = load ptr, ptr %89, align 8, !noalias !183 - %.not.i.i.i.i46 = icmp eq ptr %90, null - br i1 %.not.i.i.i.i46, label %.preheader, label %91 + %86 = load ptr, ptr %76, align 8, !noalias !183 + %87 = getelementptr inbounds %"class.Ipopt::SmartPtr.6", ptr %86, i64 %indvars.iv155 + %88 = load ptr, ptr %87, align 8, !noalias !183 + %.not.i.i.i.i46 = icmp eq ptr %88, null + br i1 %.not.i.i.i.i46, label %.preheader, label %89 -.preheader: ; preds = %87 - br i1 %80, label %.lr.ph.preheader, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit51 +.preheader: ; preds = %85 + br i1 %78, label %.lr.ph.preheader, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit51 .lr.ph.preheader: ; preds = %.preheader - tail call void @llvm.memset.p0.i64(ptr align 8 %.4118, i8 0, i64 %82, i1 false) - %scevgep154 = getelementptr i8, ptr %.4118, i64 %86 + tail call void @llvm.memset.p0.i64(ptr align 8 %.4118, i8 0, i64 %80, i1 false) + %scevgep154 = getelementptr i8, ptr %.4118, i64 %84 br label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit51 -91: ; preds = %87 - %92 = getelementptr inbounds i8, ptr %90, i64 8 - %93 = load i32, ptr %92, align 8, !noalias !183 - %94 = add nsw i32 %93, 1 - store i32 %94, ptr %92, align 8, !noalias !183 - invoke void @_ZN5Ipopt13TripletHelper20FillValuesFromVectorEiRKNS_6VectorEPd(i32 noundef %76, ptr noundef nonnull align 8 dereferenceable(205) %90, ptr noundef %.4118) - to label %.thread74 unwind label %99 - -.thread74: ; preds = %91 - %95 = getelementptr inbounds double, ptr %.4118, i64 %79 - %96 = load i32, ptr %92, align 8 - %97 = add nsw i32 %96, -1 - store i32 %97, ptr %92, align 8 - %98 = icmp eq i32 %97, 0 - br i1 %98, label %104, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit51 - -99: ; preds = %91 - %100 = landingpad { ptr, i32 } +89: ; preds = %85 + %90 = getelementptr inbounds i8, ptr %88, i64 8 + %91 = load i32, ptr %90, align 8, !noalias !183 + %92 = add nsw i32 %91, 1 + store i32 %92, ptr %90, align 8, !noalias !183 + invoke void @_ZN5Ipopt13TripletHelper20FillValuesFromVectorEiRKNS_6VectorEPd(i32 noundef %74, ptr noundef nonnull align 8 dereferenceable(205) %88, ptr noundef %.4118) + to label %.thread74 unwind label %97 + +.thread74: ; preds = %89 + %93 = getelementptr inbounds double, ptr %.4118, i64 %77 + %94 = load i32, ptr %90, align 8 + %95 = add nsw i32 %94, -1 + store i32 %95, ptr %90, align 8 + %96 = icmp eq i32 %95, 0 + br i1 %96, label %102, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit51 + +97: ; preds = %89 + %98 = landingpad { ptr, i32 } cleanup - %101 = load i32, ptr %92, align 8 - %102 = add nsw i32 %101, -1 - store i32 %102, ptr %92, align 8 - %103 = icmp eq i32 %102, 0 - br i1 %103, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.sink.split, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit - -104: ; preds = %.thread74 - %105 = load ptr, ptr %90, align 8 - %106 = getelementptr inbounds i8, ptr %105, i64 8 - %107 = load ptr, ptr %106, align 8 - tail call void %107(ptr noundef nonnull align 8 dereferenceable(205) %90) #14 + %99 = load i32, ptr %90, align 8 + %100 = add nsw i32 %99, -1 + store i32 %100, ptr %90, align 8 + %101 = icmp eq i32 %100, 0 + br i1 %101, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.sink.split, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit + +102: ; preds = %.thread74 + %103 = load ptr, ptr %88, align 8 + %104 = getelementptr inbounds i8, ptr %103, i64 8 + %105 = load ptr, ptr %104, align 8 + tail call void %105(ptr noundef nonnull align 8 dereferenceable(205) %88) #14 br label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit51 -_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit51: ; preds = %.lr.ph.preheader, %.preheader, %.thread74, %104 - %.677 = phi ptr [ %95, %.thread74 ], [ %95, %104 ], [ %.4118, %.preheader ], [ %scevgep154, %.lr.ph.preheader ] +_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit51: ; preds = %.lr.ph.preheader, %.preheader, %.thread74, %102 + %.677 = phi ptr [ %93, %.thread74 ], [ %93, %102 ], [ %.4118, %.preheader ], [ %scevgep154, %.lr.ph.preheader ] %indvars.iv.next156 = add nuw nsw i64 %indvars.iv155, 1 %exitcond159.not = icmp eq i64 %indvars.iv.next156, %wide.trip.count158 - br i1 %exitcond159.not, label %.loopexit, label %87, !llvm.loop !186 + br i1 %exitcond159.not, label %.loopexit, label %85, !llvm.loop !186 .loopexit: ; preds = %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit51, %._crit_edge - br i1 %.not.i.i.i.i.i, label %_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit, label %108 - -108: ; preds = %.loopexit - %109 = getelementptr inbounds i8, ptr %11, i64 8 - %110 = load i32, ptr %109, align 8 - %111 = add nsw i32 %110, -1 - store i32 %111, ptr %109, align 8 - %112 = icmp eq i32 %111, 0 - br i1 %112, label %113, label %_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit - -113: ; preds = %108 - %114 = load ptr, ptr %11, 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(80) %11) #14 + br i1 %.not.i.i.i.i.i, label %_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit, label %106 + +106: ; preds = %.loopexit + %107 = getelementptr inbounds i8, ptr %11, i64 8 + %108 = load i32, ptr %107, align 8 + %109 = add nsw i32 %108, -1 + store i32 %109, ptr %107, align 8 + %110 = icmp eq i32 %109, 0 + br i1 %110, label %111, label %_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit + +111: ; preds = %106 + %112 = load ptr, ptr %11, align 8 + %113 = getelementptr inbounds i8, ptr %112, i64 8 + %114 = load ptr, ptr %113, align 8 + tail call void %114(ptr noundef nonnull align 8 dereferenceable(80) %11) #14 br label %_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit -_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit: ; preds = %74, %.loopexit, %108, %113 +_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit: ; preds = %72, %.loopexit, %106, %111 ret void -_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.sink.split: ; preds = %99, %.split - %.lcssa163.sink171 = phi ptr [ %.us-phi, %.split ], [ %90, %99 ] - %.pn.ph = phi { ptr, i32 } [ %.us-phi96, %.split ], [ %100, %99 ] - %117 = load ptr, ptr %.lcssa163.sink171, align 8 - %118 = getelementptr inbounds i8, ptr %117, i64 8 - %119 = load ptr, ptr %118, align 8 - tail call void %119(ptr noundef nonnull align 8 dereferenceable(205) %.lcssa163.sink171) #14 +_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.sink.split: ; preds = %97, %.split + %.lcssa164.sink172 = phi ptr [ %.us-phi, %.split ], [ %88, %97 ] + %.pn.ph = phi { ptr, i32 } [ %.us-phi96, %.split ], [ %98, %97 ] + %115 = load ptr, ptr %.lcssa164.sink172, align 8 + %116 = getelementptr inbounds i8, ptr %115, i64 8 + %117 = load ptr, ptr %116, align 8 + tail call void %117(ptr noundef nonnull align 8 dereferenceable(205) %.lcssa164.sink172) #14 br label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit -_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit: ; preds = %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.sink.split, %99, %.split - %.pn = phi { ptr, i32 } [ %.us-phi96, %.split ], [ %100, %99 ], [ %.pn.ph, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.sink.split ] +_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit: ; preds = %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.sink.split, %97, %.split + %.pn = phi { ptr, i32 } [ %.us-phi96, %.split ], [ %98, %97 ], [ %.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 - %120 = add nsw i32 %.pre, -1 - br label %121 - -121: ; preds = %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit._crit_edge, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.thread - %122 = phi i32 [ %14, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.thread ], [ %120, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit._crit_edge ] - %.pn79 = phi { ptr, i32 } [ %61, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.thread ], [ %.pn, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit._crit_edge ] - %123 = getelementptr inbounds i8, ptr %11, i64 8 - store i32 %122, ptr %123, align 8 - %124 = icmp eq i32 %122, 0 - br i1 %124, label %125, label %_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit54 - -125: ; preds = %121 - %126 = load ptr, ptr %11, align 8 - %127 = getelementptr inbounds i8, ptr %126, i64 8 - %128 = load ptr, ptr %127, align 8 - tail call void %128(ptr noundef nonnull align 8 dereferenceable(80) %11) #14 + %118 = add nsw i32 %.pre, -1 + br label %119 + +119: ; preds = %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit._crit_edge, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.thread + %120 = phi i32 [ %14, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.thread ], [ %118, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit._crit_edge ] + %.pn79 = phi { ptr, i32 } [ %59, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit.thread ], [ %.pn, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit._crit_edge ] + %121 = getelementptr inbounds i8, ptr %11, i64 8 + store i32 %120, ptr %121, align 8 + %122 = icmp eq i32 %120, 0 + br i1 %122, label %123, label %_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit54 + +123: ; preds = %119 + %124 = load ptr, ptr %11, align 8 + %125 = getelementptr inbounds i8, ptr %124, i64 8 + %126 = load ptr, ptr %125, align 8 + tail call void %126(ptr noundef nonnull align 8 dereferenceable(80) %11) #14 br label %_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit54 -_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit54: ; preds = %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit, %121, %125 - %.pn80 = phi { ptr, i32 } [ %.pn, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit ], [ %.pn79, %121 ], [ %.pn79, %125 ] +_ZN5Ipopt8SmartPtrIKNS_15ExpansionMatrixEED2Ev.exit54: ; preds = %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit, %119, %123 + %.pn80 = phi { ptr, i32 } [ %.pn, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit ], [ %.pn79, %119 ], [ %.pn79, %123 ] resume { ptr, i32 } %.pn80 } diff --git a/bench/ipopt/optimized/SensIndexSchurData.ll b/bench/ipopt/optimized/SensIndexSchurData.ll index 4f8f3a8a153..cd7d1e5d497 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 ptr @_ZNK5Ipopt14IndexSchurData16GetVectorLengthsERKNS_14Iterates %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 62dc02646e7..d92fcff1ed1 100644 --- a/bench/just-rs/optimized/3022oi333lxf39jd.ll +++ b/bench/just-rs/optimized/3022oi333lxf39jd.ll @@ -5565,32 +5565,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 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 !1180, !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 !1181 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 !23, !noalias !1181, !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 !23, !noalias !1181, !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 !1181, !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 !1181, !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 !1181, !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 !1181, !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 !1181 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 f7038156877..0d036886b87 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 %17, label %14 14: ; preds = %2 - %15 = icmp slt i64 %7, %12 + %15 = icmp ult i64 %7, %12 %16 = icmp ne i64 %7, %12 %..i.i = zext i1 %16 to i8 %.04.i.i = select i1 %15, i8 -1, i8 %..i.i @@ -2196,19 +2196,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.i59 = icmp eq i64 %198, 0 br i1 %or.cond.i.i.i59, label %202, label %199 199: ; preds = %.lr.ph24.i - %200 = icmp slt i64 %192, %197 + %200 = icmp ult i64 %192, %197 %201 = icmp ne i64 %192, %197 %..i.i.i60 = zext i1 %201 to i8 %.04.i.i.i61 = select i1 %200, i8 -1, i8 %..i.i.i60 @@ -2321,19 +2321,19 @@ _ZN4core3ops8function5FnMut8call_mut17h8d77d178888f143fE.exit84: ; preds = %199, %252 = load i64, ptr %.02818.i, align 8, !range !14, !alias.scope !488, !noalias !489, !noundef !17 %253 = add i64 %252, 9223372036854775807 %254 = icmp ult i64 %253, 8 - %255 = xor i64 %252, -9223372036854775808 + %255 = and i64 %252, 15 %256 = select i1 %254, i64 %255, i64 0 %257 = load i64, ptr %.sroa.0.217.i, align 8, !range !14, !alias.scope !489, !noalias !488, !noundef !17 %258 = add i64 %257, 9223372036854775807 %259 = icmp ult i64 %258, 8 - %260 = xor i64 %257, -9223372036854775808 + %260 = and i64 %257, 15 %261 = select i1 %259, i64 %260, i64 0 %262 = or i64 %261, %256 %or.cond.i.i.i = icmp eq i64 %262, 0 br i1 %or.cond.i.i.i, label %266, label %263 263: ; preds = %.lr.ph.i54 - %264 = icmp slt i64 %256, %261 + %264 = icmp ult i64 %256, %261 %265 = icmp ne i64 %256, %261 %..i.i.i = zext i1 %265 to i8 %.04.i.i.i = select i1 %264, i8 -1, i8 %..i.i.i @@ -6934,7 +6934,7 @@ define internal fastcc void @_ZN4core5slice4sort25insertion_sort_shift_left17h05 %13 = icmp ne ptr %.sroa.5.0.copyload, null %14 = add i64 %.sroa.01.0.copyload.fr, 9223372036854775807 %15 = icmp ult i64 %14, 8 - %16 = xor i64 %.sroa.01.0.copyload.fr, -9223372036854775808 + %16 = and i64 %.sroa.01.0.copyload.fr, 15 %17 = select i1 %15, i64 %16, i64 0 %.not = icmp eq i64 %.sroa.01.0.copyload.fr, -9223372036854775808 %18 = icmp ne ptr %.sroa.7.0.copyload, null @@ -6950,11 +6950,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.us23 = icmp eq i64 %23, 0 + %or.cond.i.i.i.us = or i1 %22, %or.cond.i.i.i.us23 + br i1 %or.cond.i.i.i.us, label %26, label %24 -23: ; preds = %.lr.ph.i.us - %24 = and i64 %21, 9223372036854775807 - %25 = icmp slt i64 %17, %24 +24: ; preds = %.lr.ph.i.us + %25 = icmp ult i64 %17, %23 br i1 %25, label %_ZN4core3ops8function5FnMut8call_mut17h8d77d178888f143fE.exit.thread.us, label %.thread.i 26: ; preds = %.lr.ph.i.us @@ -6962,13 +6964,13 @@ define internal fastcc void @_ZN4core5slice4sort25insertion_sort_shift_left17h05 %.not24 = icmp eq i64 %21, -9223372036854775808 br i1 %.not24, label %.thread.i, label %_ZN4core3ops8function5FnMut8call_mut17h8d77d178888f143fE.exit.thread.us -_ZN4core3ops8function5FnMut8call_mut17h8d77d178888f143fE.exit.thread.us: ; preds = %26, %23 +_ZN4core3ops8function5FnMut8call_mut17h8d77d178888f143fE.exit.thread.us: ; preds = %26, %24 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %.sroa.5.07.i.us, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 48, i1 false), !alias.scope !994 %.not.i6.us = icmp eq i64 %19, 0 br i1 %.not.i6.us, label %.thread.i, label %.lr.ph.i.us -.thread.i: ; preds = %37, %_ZN4core3ops8function5FnMut8call_mut17h8d77d178888f143fE.exit, %_ZN4core3ops8function5FnMut8call_mut17h8d77d178888f143fE.exit.thread, %35, %58, %23, %26, %_ZN4core3ops8function5FnMut8call_mut17h8d77d178888f143fE.exit.thread.us, %11 - %.sroa.5.0.lcssa.i = phi ptr [ %9, %11 ], [ %.sroa.5.07.i.us, %26 ], [ %.sroa.5.07.i.us, %23 ], [ %0, %_ZN4core3ops8function5FnMut8call_mut17h8d77d178888f143fE.exit.thread.us ], [ %.sroa.5.07.i, %58 ], [ %.sroa.5.07.i, %35 ], [ %.sroa.5.07.i, %_ZN4core3ops8function5FnMut8call_mut17h8d77d178888f143fE.exit ], [ %0, %_ZN4core3ops8function5FnMut8call_mut17h8d77d178888f143fE.exit.thread ], [ %.sroa.5.07.i, %37 ] +.thread.i: ; preds = %37, %_ZN4core3ops8function5FnMut8call_mut17h8d77d178888f143fE.exit, %_ZN4core3ops8function5FnMut8call_mut17h8d77d178888f143fE.exit.thread, %35, %58, %24, %26, %_ZN4core3ops8function5FnMut8call_mut17h8d77d178888f143fE.exit.thread.us, %11 + %.sroa.5.0.lcssa.i = phi ptr [ %9, %11 ], [ %.sroa.5.07.i.us, %26 ], [ %.sroa.5.07.i.us, %24 ], [ %0, %_ZN4core3ops8function5FnMut8call_mut17h8d77d178888f143fE.exit.thread.us ], [ %.sroa.5.07.i, %58 ], [ %.sroa.5.07.i, %35 ], [ %.sroa.5.07.i, %_ZN4core3ops8function5FnMut8call_mut17h8d77d178888f143fE.exit ], [ %0, %_ZN4core3ops8function5FnMut8call_mut17h8d77d178888f143fE.exit.thread ], [ %.sroa.5.07.i, %37 ] store i64 %.sroa.01.0.copyload.fr, ptr %.sroa.5.0.lcssa.i, align 8 %.sroa.5.0..sroa.5.0.lcssa.i.sroa_idx = getelementptr inbounds i8, ptr %.sroa.5.0.lcssa.i, i64 8 store ptr %.sroa.5.0.copyload, ptr %.sroa.5.0..sroa.5.0.lcssa.i.sroa_idx, align 8 @@ -6998,14 +7000,14 @@ _ZN4core3ops8function5FnMut8call_mut17h8d77d178888f143fE.exit.thread.us: ; preds %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, %17 %or.cond.i.i.i = icmp eq i64 %34, 0 br i1 %or.cond.i.i.i, label %37, label %35 35: ; preds = %.lr.ph.i - %36 = icmp slt i64 %17, %33 + %36 = icmp ult i64 %17, %33 br i1 %36, label %_ZN4core3ops8function5FnMut8call_mut17h8d77d178888f143fE.exit.thread, label %.thread.i 37: ; preds = %.lr.ph.i diff --git a/bench/just-rs/optimized/53slus9exfz9w045.ll b/bench/just-rs/optimized/53slus9exfz9w045.ll index 5ae5aed0705..ba7757393db 100644 --- a/bench/just-rs/optimized/53slus9exfz9w045.ll +++ b/bench/just-rs/optimized/53slus9exfz9w045.ll @@ -2986,193 +2986,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) #31 + %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) #31 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) #31 +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) #31 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) #31 + 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) #31 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) #31 + %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) #31 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) #31 + 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) #31 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) #31 - 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) #31 + 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 - -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 + 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 + +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) #31 +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) #31 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 25a9bae2fea..44ec7973f44 100644 --- a/bench/just-rs/optimized/xt6bvrk4jdo7mpy.ll +++ b/bench/just-rs/optimized/xt6bvrk4jdo7mpy.ll @@ -2235,11 +2235,11 @@ define hidden void @"_ZN137_$LT$alloc..collections..btree..dedup_sorted_iter..De call void @llvm.experimental.noalias.scope.decl(metadata !327) %36 = add i64 %.sroa.013.117, 9223372036854775807 %37 = icmp ult i64 %36, 8 - %38 = xor i64 %.sroa.013.117, -9223372036854775808 + %38 = and i64 %.sroa.013.117, 15 %39 = select i1 %37, i64 %38, i64 0 %40 = add i64 %.sroa.0.0.copyload1.i.i.i, 9223372036854775807 %41 = icmp ult i64 %40, 8 - %42 = xor i64 %.sroa.0.0.copyload1.i.i.i, -9223372036854775808 + %42 = and i64 %.sroa.0.0.copyload1.i.i.i, 15 %43 = select i1 %41, i64 %42, i64 0 %44 = icmp eq i64 %39, %43 br i1 %44, label %45, 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 = %62, %45, %64 - %or.cond.i.i12 = icmp slt i64 %.sroa.013.117, 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 %65 - -65: ; preds = %.thread23 + %65 = icmp ugt i64 %.sroa.013.117, -9223372036854775808 + %cond1.i.i = icmp ne i64 %38, 0 + %cond.not2.i.i = and i1 %65, %cond1.i.i + %66 = icmp eq i64 %.sroa.013.117, -9223372036854775808 + %or.cond.i.i12 = or i1 %66, %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 %67 + +67: ; preds = %.thread23 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3), !noalias !345 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) - %66 = load i64, ptr %16, align 8, !range !182, !noalias !345, !noundef !4 - %.not.i.i.i.i.i.i.i.i = icmp eq i64 %66, 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 %67 - -67: ; preds = %65 - %68 = load i64, ptr %17, align 8, !noalias !345, !noundef !4 - %69 = icmp eq i64 %68, 0 - br i1 %69, label %"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i.i", label %70 - -70: ; preds = %67 - %71 = load ptr, ptr %3, align 8, !noalias !345, !nonnull !4, !noundef !4 - call void @__rust_dealloc(ptr noundef nonnull %71, i64 noundef %68, i64 noundef %66) #25 + %68 = load i64, ptr %16, align 8, !range !182, !noalias !345, !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 %17, align 8, !noalias !345, !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 !345, !nonnull !4, !noundef !4 + call void @__rust_dealloc(ptr noundef nonnull %73, i64 noundef %70, i64 noundef %68) #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 = %70, %67, %65 +"_ZN4core3ptr56drop_in_place$LT$just..string_literal..StringLiteral$GT$17h14ac5cb919066a83E.exit.i.i.i": ; preds = %72, %69, %67 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3), !noalias !345 br label %"_ZN4core3ptr103drop_in_place$LT$$LP$just..attribute..Attribute$C$alloc..collections..btree..set_val..SetValZST$RP$$GT$17h029c3e84f1c03636E.exit" @@ -2914,32 +2918,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 !445, !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 !446 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 !446, !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 !446, !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 !446, !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 !446, !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 !446, !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 !446, !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 !446 br label %"_ZN4core3ptr84drop_in_place$LT$core..option..Option$LT$just..string_literal..StringLiteral$GT$$GT$17h4c74f7e79d028ac1E.llvm.9118937971122011336.exit" } @@ -3038,33 +3047,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 !488, !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 !489 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 !489, !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 !489, !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 !489, !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 !489, !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 !489, !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 !489, !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 !489 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 } @@ -7068,7 +7086,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 @@ -7107,46 +7125,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 !957) %34 = load i64, ptr %2, align 8, !range !445, !alias.scope !957, !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 !960 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 !960, !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 !960, !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 !960, !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 !960, !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 !960, !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 !960, !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 !960 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 @@ -24776,7 +24799,7 @@ define hidden void @"_ZN96_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V %38 = load i64, ptr %36, align 8, !range !445, !alias.scope !3460, !noalias !3457, !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 @@ -25018,7 +25041,7 @@ define hidden void @"_ZN96_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V %110 = load i64, ptr %108, align 8, !range !445, !alias.scope !3476, !noalias !3473, !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 @@ -25305,7 +25328,7 @@ switch.lookup: %1 = load i64, ptr %0, align 8, !range !445, !alias.scope !3490, !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 @@ -25323,101 +25346,104 @@ define hidden void @_ZN4just9attribute9Attribute13with_argument17he7428cf7626fcb %7 = alloca { i64, [11 x i64] }, align 8 %8 = load i64, ptr %1, align 8, !range !445, !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 !3493 + %14 = invoke noundef ptr @_ZN5alloc5alloc15exchange_malloc17he27dc27497df8aaaE.llvm.13711779418236020091(i64 noundef 96, i64 noundef 8) + to label %.noexc unwind label %15, !noalias !3493 -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 !3504 + to label %.body unwind label %17, !noalias !3504 -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 !3504 unreachable -17: ; preds = %24, %20, %.noexc +19: ; preds = %26, %22, %.noexc call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6), !noalias !3505 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 !3504 +.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 !3504 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 !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) %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 !3505, !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 !3505, !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 !3505, !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 !3505, !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 !3505, !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 !3505, !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 !3516 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 !3516, !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 !3516, !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 !3516, !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 !3516, !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 !3516, !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 !3516, !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 !3516 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 @@ -25435,13 +25461,13 @@ switch.lookup: %8 = load i64, ptr %0, align 8, !range !445, !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 @@ -25460,37 +25486,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 !3537, !noalias !3540 - %23 = getelementptr inbounds i8, ptr %3, i64 8 - store i64 2, ptr %23, align 8, !alias.scope !3537, !noalias !3540 - %24 = getelementptr inbounds i8, ptr %3, i64 32 - store ptr null, ptr %24, align 8, !alias.scope !3537, !noalias !3540 - %25 = getelementptr inbounds i8, ptr %3, i64 16 - store ptr %2, ptr %25, align 8, !alias.scope !3537, !noalias !3540 - %26 = getelementptr inbounds i8, ptr %3, i64 24 - store i64 1, ptr %26, align 8, !alias.scope !3537, !noalias !3540 - %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 !3537, !noalias !3540 + %27 = getelementptr inbounds i8, ptr %3, i64 32 + store ptr null, ptr %27, align 8, !alias.scope !3537, !noalias !3540 + %28 = getelementptr inbounds i8, ptr %3, i64 16 + store ptr %2, ptr %28, align 8, !alias.scope !3537, !noalias !3540 + %29 = getelementptr inbounds i8, ptr %3, i64 24 + store i64 1, ptr %29, align 8, !alias.scope !3537, !noalias !3540 + %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 } @@ -28945,42 +28975,46 @@ switch.lookup: %2 = load i64, ptr %0, align 8, !range !445, !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 !4017 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 !4017, !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 !4017, !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 !4017, !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 !4017, !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 !4017, !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 !4017, !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 !4017 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 @@ -28989,7 +29023,7 @@ switch.lookup: %1 = load i64, ptr %0, align 8, !range !445, !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/linux/optimized/iov_iter.ll b/bench/linux/optimized/iov_iter.ll index 981151c8da4..7132b8547cf 100644 --- a/bench/linux/optimized/iov_iter.ll +++ b/bench/linux/optimized/iov_iter.ll @@ -741,7 +741,7 @@ define dso_local i64 @_copy_mc_to_iter(ptr noundef %0, i64 noundef %1, ptr nocap tail call void asm sideeffect "415: nop\0A\09.pushsection .discard.instr_begin\0A\09.long 415b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 415) #15, !srcloc !36 tail call void asm sideeffect "1:\09.byte 0x0f, 0x0b\0A.pushsection __bug_table,\22aw\22\0A2:\09.long 1b - .\09# bug_entry::bug_addr\0A\09.long ${0:c} - .\09# bug_entry::file\0A\09.word ${1:c}\09# bug_entry::line\0A\09.word ${2:c}\09# bug_entry::flags\0A\09.org 2b+${3:c}\0A.popsection\0A998:\0A\09.pushsection .discard.reachable\0A\09.long 998b\0A\09.popsection\0A\09", "i,i,i,i,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @.str, i32 237, i32 2307, i64 12) #15, !srcloc !37 tail call void asm sideeffect "416: nop\0A\09.pushsection .discard.instr_end\0A\09.long 416b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 416) #15, !srcloc !38 - br label %296 + br label %295 9: ; preds = %3 %10 = load i8, ptr %2, align 8 @@ -756,10 +756,10 @@ define dso_local i64 @_copy_mc_to_iter(ptr noundef %0, i64 noundef %1, ptr nocap 15: ; preds = %14, %9 %16 = phi i64 [ %12, %14 ], [ %1, %9 ] %17 = icmp eq i64 %16, 0 - br i1 %17, label %296, label %18, !prof !9 + br i1 %17, label %295, label %18, !prof !9 18: ; preds = %15 - switch i8 %10, label %294 [ + switch i8 %10, label %293 [ i8 0, label %19 i8 1, label %40 i8 2, label %93 @@ -796,7 +796,7 @@ define dso_local i64 @_copy_mc_to_iter(ptr noundef %0, i64 noundef %1, ptr nocap store i64 %38, ptr %22, align 8 %39 = sub i64 %34, %37 store i64 %39, ptr %11, align 8 - br label %296 + br label %295 40: ; preds = %18 %41 = getelementptr inbounds i8, ptr %2, i64 16 @@ -869,7 +869,7 @@ define dso_local i64 @_copy_mc_to_iter(ptr noundef %0, i64 noundef %1, ptr nocap %91 = load i64, ptr %11, align 8 %92 = sub i64 %91, %81 store i64 %92, ptr %11, align 8 - br label %296 + br label %295 93: ; preds = %18 %94 = getelementptr inbounds i8, ptr %2, i64 16 @@ -939,7 +939,7 @@ define dso_local i64 @_copy_mc_to_iter(ptr noundef %0, i64 noundef %1, ptr nocap %151 = load i64, ptr %11, align 8 %152 = sub i64 %151, %131 store i64 %152, ptr %11, align 8 - br label %296 + br label %295 153: ; preds = %18 %154 = getelementptr inbounds i8, ptr %2, i64 16 @@ -999,7 +999,7 @@ define dso_local i64 @_copy_mc_to_iter(ptr noundef %0, i64 noundef %1, ptr nocap %196 = load i64, ptr %11, align 8 %197 = sub i64 %196, %186 store i64 %197, ptr %11, align 8 - br label %296 + br label %295 198: ; preds = %18 %199 = getelementptr inbounds i8, ptr %2, i64 32 @@ -1027,7 +1027,7 @@ define dso_local i64 @_copy_mc_to_iter(ptr noundef %0, i64 noundef %1, ptr nocap .preheader: ; preds = %198, %.loopexit %213 = phi i64 [ %.ph15, %.loopexit ], [ %16, %198 ] - %214 = phi ptr [ %287, %.loopexit ], [ %211, %198 ] + %214 = phi ptr [ %286, %.loopexit ], [ %211, %198 ] %215 = phi i64 [ %.ph14, %.loopexit ], [ 0, %198 ] %216 = ptrtoint ptr %214 to i64 switch i64 %216, label %218 [ @@ -1106,10 +1106,10 @@ define dso_local i64 @_copy_mc_to_iter(ptr noundef %0, i64 noundef %1, ptr nocap br label %258 258: ; preds = %264, %253 - %259 = phi i64 [ %257, %253 ], [ %285, %264 ] - %260 = phi i64 [ %245, %253 ], [ %286, %264 ] - %261 = phi i64 [ %215, %253 ], [ %279, %264 ] - %262 = phi i64 [ %213, %253 ], [ %280, %264 ] + %259 = phi i64 [ %257, %253 ], [ %284, %264 ] + %260 = phi i64 [ %245, %253 ], [ %285, %264 ] + %261 = phi i64 [ %215, %253 ], [ %278, %264 ] + %262 = phi i64 [ %213, %253 ], [ %279, %264 ] %263 = icmp eq i64 %259, 0 br i1 %263, label %.loopexit, label %264 @@ -1127,44 +1127,43 @@ define dso_local i64 @_copy_mc_to_iter(ptr noundef %0, i64 noundef %1, ptr nocap %275 = getelementptr i8, ptr %0, i64 %261 %276 = trunc nuw nsw i64 %274 to i32 %277 = call i64 @copy_mc_to_kernel(ptr noundef %271, ptr noundef %275, i32 noundef %276) #15 - %278 = sub i64 %274, %277 - %279 = add i64 %278, %261 - %280 = sub i64 %262, %278 - %281 = icmp eq i64 %277, 0 - %282 = icmp ne i64 %280, 0 - %283 = select i1 %281, i1 %282, i1 false - %284 = select i1 %283, i64 %278, i64 0 - %285 = sub i64 %259, %284 - %286 = add i64 %284, %260 - br i1 %283, label %258, label %.loopexit17, !llvm.loop !34 + %278 = add i64 %274, %261 + %279 = sub i64 %262, %274 + %280 = icmp eq i64 %277, 0 + %281 = icmp ne i64 %279, 0 + %282 = select i1 %280, i1 %281, i1 false + %283 = select i1 %282, i64 %274, i64 0 + %284 = sub i64 %259, %283 + %285 = add i64 %283, %260 + br i1 %282, label %258, label %.loopexit17, !llvm.loop !34 .loopexit: ; preds = %258, %.preheader, %217 %.ph14 = phi i64 [ %215, %217 ], [ %215, %.preheader ], [ %261, %258 ] %.ph15 = phi i64 [ %213, %217 ], [ %213, %.preheader ], [ %262, %258 ] - %287 = call fastcc ptr @xas_next_entry(ptr noundef nonnull %4) - %288 = icmp eq ptr %287, null - br i1 %288, label %.loopexit17, label %.preheader, !llvm.loop !35 + %286 = call fastcc ptr @xas_next_entry(ptr noundef nonnull %4) + %287 = icmp eq ptr %286, null + br i1 %287, label %.loopexit17, label %.preheader, !llvm.loop !35 .loopexit17: ; preds = %.loopexit, %264, %198, %231, %221 - %289 = phi i64 [ 0, %198 ], [ %215, %221 ], [ %215, %231 ], [ %279, %264 ], [ %.ph14, %.loopexit ] + %288 = phi i64 [ 0, %198 ], [ %215, %221 ], [ %215, %231 ], [ %278, %264 ], [ %.ph14, %.loopexit ] call void @__rcu_read_unlock() #15 - %290 = load i64, ptr %201, align 8 - %291 = add i64 %290, %289 - store i64 %291, ptr %201, align 8 - %292 = load i64, ptr %11, align 8 - %293 = sub i64 %292, %289 - store i64 %293, ptr %11, align 8 + %289 = load i64, ptr %201, align 8 + %290 = add i64 %289, %288 + store i64 %290, ptr %201, align 8 + %291 = load i64, ptr %11, align 8 + %292 = sub i64 %291, %288 + store i64 %292, ptr %11, align 8 call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %4) #15 - br label %296 + br label %295 -294: ; preds = %18 - %295 = sub i64 %12, %16 - store i64 %295, ptr %11, align 8 - br label %296 +293: ; preds = %18 + %294 = sub i64 %12, %16 + store i64 %294, ptr %11, align 8 + br label %295 -296: ; preds = %294, %.loopexit17, %.thread13, %142, %.thread, %33, %15, %8 - %297 = phi i64 [ 0, %8 ], [ %37, %33 ], [ %81, %.thread ], [ %131, %142 ], [ %186, %.thread13 ], [ %289, %.loopexit17 ], [ %16, %294 ], [ 0, %15 ] - ret i64 %297 +295: ; preds = %293, %.loopexit17, %.thread13, %142, %.thread, %33, %15, %8 + %296 = phi i64 [ 0, %8 ], [ %37, %33 ], [ %81, %.thread ], [ %131, %142 ], [ %186, %.thread13 ], [ %288, %.loopexit17 ], [ %16, %293 ], [ 0, %15 ] + ret i64 %296 } ; Function Attrs: fn_ret_thunk_extern nounwind null_pointer_is_valid diff --git a/bench/linux/optimized/open.ll b/bench/linux/optimized/open.ll index 3baff7c0554..8f43742d565 100644 --- a/bench/linux/optimized/open.ll +++ b/bench/linux/optimized/open.ll @@ -1634,37 +1634,36 @@ define dso_local range(i64 -2147483648, 2147483648) i64 @__x64_sys_fchmodat2(ptr 17: ; preds = %1 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %2, i8 0, i64 16, i1 false), !annotation !6 %18 = lshr exact i32 %14, 8 - %19 = and i32 %18, 1 - %20 = xor i32 %19, 1 - %21 = icmp ult i32 %14, 4096 - %22 = or disjoint i32 %20, 16384 - %23 = select i1 %21, i32 %20, i32 %22 - %24 = call i32 @user_path_at_empty(i32 noundef %11, ptr noundef %12, i32 noundef %23, ptr noundef nonnull %2, ptr noundef null) #14 - %25 = icmp eq i32 %24, 0 - br i1 %25, label %26, label %do_fchmodat.exit + %19 = xor i32 %18, 1 + %20 = icmp ult i32 %14, 4096 + %21 = or disjoint i32 %19, 16384 + %22 = select i1 %20, i32 %19, i32 %21 + %23 = call i32 @user_path_at_empty(i32 noundef %11, ptr noundef %12, i32 noundef %22, ptr noundef nonnull %2, ptr noundef null) #14 + %24 = icmp eq i32 %23, 0 + br i1 %24, label %25, label %do_fchmodat.exit -26: ; preds = %17 - %27 = or disjoint i32 %23, 32 - br label %31 +25: ; preds = %17 + %26 = or disjoint i32 %22, 32 + br label %30 -28: ; preds = %31 - %29 = call i32 @user_path_at_empty(i32 noundef %11, ptr noundef %12, i32 noundef %27, ptr noundef nonnull %2, ptr noundef null) #14 - %30 = icmp eq i32 %29, 0 - br i1 %30, label %31, label %do_fchmodat.exit +27: ; preds = %30 + %28 = call i32 @user_path_at_empty(i32 noundef %11, ptr noundef %12, i32 noundef %26, ptr noundef nonnull %2, ptr noundef null) #14 + %29 = icmp eq i32 %28, 0 + br i1 %29, label %30, label %do_fchmodat.exit -31: ; preds = %28, %26 - %32 = phi i1 [ true, %26 ], [ false, %28 ] - %33 = call i32 @chmod_common(ptr noundef nonnull %2, i16 noundef zeroext %13) +30: ; preds = %27, %25 + %31 = phi i1 [ true, %25 ], [ false, %27 ] + %32 = call i32 @chmod_common(ptr noundef nonnull %2, i16 noundef zeroext %13) call void @path_put(ptr noundef nonnull %2) #14 - %34 = icmp eq i32 %33, -116 - %35 = and i1 %32, %34 - br i1 %35, label %28, label %do_fchmodat.exit + %33 = icmp eq i32 %32, -116 + %34 = and i1 %31, %33 + br i1 %34, label %27, label %do_fchmodat.exit -do_fchmodat.exit: ; preds = %28, %31, %1, %17 - %36 = phi i32 [ -22, %1 ], [ %24, %17 ], [ %29, %28 ], [ %33, %31 ] +do_fchmodat.exit: ; preds = %27, %30, %1, %17 + %35 = phi i32 [ -22, %1 ], [ %23, %17 ], [ %28, %27 ], [ %32, %30 ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #14 - %37 = sext i32 %36 to i64 - ret i64 %37 + %36 = sext i32 %35 to i64 + ret i64 %36 } ; Function Attrs: fn_ret_thunk_extern nounwind null_pointer_is_valid @@ -1691,37 +1690,36 @@ define dso_local range(i64 -2147483648, 2147483648) i64 @__ia32_sys_fchmodat2(pt 18: ; preds = %1 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %2, i8 0, i64 16, i1 false), !annotation !6 %19 = lshr exact i32 %15, 8 - %20 = and i32 %19, 1 - %21 = xor i32 %20, 1 - %22 = icmp ult i32 %15, 4096 - %23 = or disjoint i32 %21, 16384 - %24 = select i1 %22, i32 %21, i32 %23 - %25 = call i32 @user_path_at_empty(i32 noundef %12, ptr noundef %13, i32 noundef %24, ptr noundef nonnull %2, ptr noundef null) #14 - %26 = icmp eq i32 %25, 0 - br i1 %26, label %27, label %do_fchmodat.exit + %20 = xor i32 %19, 1 + %21 = icmp ult i32 %15, 4096 + %22 = or disjoint i32 %20, 16384 + %23 = select i1 %21, i32 %20, i32 %22 + %24 = call i32 @user_path_at_empty(i32 noundef %12, ptr noundef %13, i32 noundef %23, ptr noundef nonnull %2, ptr noundef null) #14 + %25 = icmp eq i32 %24, 0 + br i1 %25, label %26, label %do_fchmodat.exit -27: ; preds = %18 - %28 = or disjoint i32 %24, 32 - br label %32 +26: ; preds = %18 + %27 = or disjoint i32 %23, 32 + br label %31 -29: ; preds = %32 - %30 = call i32 @user_path_at_empty(i32 noundef %12, ptr noundef %13, i32 noundef %28, ptr noundef nonnull %2, ptr noundef null) #14 - %31 = icmp eq i32 %30, 0 - br i1 %31, label %32, label %do_fchmodat.exit +28: ; preds = %31 + %29 = call i32 @user_path_at_empty(i32 noundef %12, ptr noundef %13, i32 noundef %27, ptr noundef nonnull %2, ptr noundef null) #14 + %30 = icmp eq i32 %29, 0 + br i1 %30, label %31, label %do_fchmodat.exit -32: ; preds = %29, %27 - %33 = phi i1 [ true, %27 ], [ false, %29 ] - %34 = call i32 @chmod_common(ptr noundef nonnull %2, i16 noundef zeroext %14) +31: ; preds = %28, %26 + %32 = phi i1 [ true, %26 ], [ false, %28 ] + %33 = call i32 @chmod_common(ptr noundef nonnull %2, i16 noundef zeroext %14) call void @path_put(ptr noundef nonnull %2) #14 - %35 = icmp eq i32 %34, -116 - %36 = and i1 %33, %35 - br i1 %36, label %29, label %do_fchmodat.exit + %34 = icmp eq i32 %33, -116 + %35 = and i1 %32, %34 + br i1 %35, label %28, label %do_fchmodat.exit -do_fchmodat.exit: ; preds = %29, %32, %1, %18 - %37 = phi i32 [ -22, %1 ], [ %25, %18 ], [ %30, %29 ], [ %34, %32 ] +do_fchmodat.exit: ; preds = %28, %31, %1, %18 + %36 = phi i32 [ -22, %1 ], [ %24, %18 ], [ %29, %28 ], [ %33, %31 ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #14 - %38 = sext i32 %37 to i64 - ret i64 %38 + %37 = sext i32 %36 to i64 + ret i64 %37 } ; Function Attrs: fn_ret_thunk_extern nounwind null_pointer_is_valid @@ -2005,48 +2003,47 @@ define dso_local i32 @do_fchownat(i32 noundef %0, ptr noundef %1, i32 noundef %2 9: ; preds = %5 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %6, i8 0, i64 16, i1 false), !annotation !6 %10 = lshr exact i32 %4, 8 - %11 = and i32 %10, 1 - %12 = xor i32 %11, 1 - %13 = icmp ult i32 %4, 4096 - %14 = or disjoint i32 %12, 16384 - %15 = select i1 %13, i32 %12, i32 %14 - %16 = call i32 @user_path_at_empty(i32 noundef %0, ptr noundef %1, i32 noundef %15, ptr noundef nonnull %6, ptr noundef null) #14 - %17 = icmp eq i32 %16, 0 - br i1 %17, label %18, label %.loopexit + %11 = xor i32 %10, 1 + %12 = icmp ult i32 %4, 4096 + %13 = or disjoint i32 %11, 16384 + %14 = select i1 %12, i32 %11, i32 %13 + %15 = call i32 @user_path_at_empty(i32 noundef %0, ptr noundef %1, i32 noundef %14, ptr noundef nonnull %6, ptr noundef null) #14 + %16 = icmp eq i32 %15, 0 + br i1 %16, label %17, label %.loopexit -18: ; preds = %9 - %19 = or disjoint i32 %15, 32 - br label %23 +17: ; preds = %9 + %18 = or disjoint i32 %14, 32 + br label %22 -20: ; preds = %31 - %21 = call i32 @user_path_at_empty(i32 noundef %0, ptr noundef %1, i32 noundef %19, ptr noundef nonnull %6, ptr noundef null) #14 - %22 = icmp eq i32 %21, 0 - br i1 %22, label %23, label %.loopexit +19: ; preds = %30 + %20 = call i32 @user_path_at_empty(i32 noundef %0, ptr noundef %1, i32 noundef %18, ptr noundef nonnull %6, ptr noundef null) #14 + %21 = icmp eq i32 %20, 0 + br i1 %21, label %22, label %.loopexit -23: ; preds = %20, %18 - %24 = phi i1 [ true, %18 ], [ false, %20 ] - %25 = load ptr, ptr %6, align 8 - %26 = call i32 @mnt_want_write(ptr noundef %25) #14 - %27 = icmp eq i32 %26, 0 - br i1 %27, label %28, label %31 +22: ; preds = %19, %17 + %23 = phi i1 [ true, %17 ], [ false, %19 ] + %24 = load ptr, ptr %6, align 8 + %25 = call i32 @mnt_want_write(ptr noundef %24) #14 + %26 = icmp eq i32 %25, 0 + br i1 %26, label %27, label %30 -28: ; preds = %23 - %29 = call i32 @chown_common(ptr noundef nonnull %6, i32 noundef %2, i32 noundef %3) - %30 = load ptr, ptr %6, align 8 - call void @mnt_drop_write(ptr noundef %30) #14 - br label %31 +27: ; preds = %22 + %28 = call i32 @chown_common(ptr noundef nonnull %6, i32 noundef %2, i32 noundef %3) + %29 = load ptr, ptr %6, align 8 + call void @mnt_drop_write(ptr noundef %29) #14 + br label %30 -31: ; preds = %28, %23 - %32 = phi i32 [ %26, %23 ], [ %29, %28 ] +30: ; preds = %27, %22 + %31 = phi i32 [ %25, %22 ], [ %28, %27 ] call void @path_put(ptr noundef nonnull %6) #14 - %33 = icmp eq i32 %32, -116 - %34 = and i1 %24, %33 - br i1 %34, label %20, label %.loopexit + %32 = icmp eq i32 %31, -116 + %33 = and i1 %23, %32 + br i1 %33, label %19, label %.loopexit -.loopexit: ; preds = %31, %20, %9, %5 - %35 = phi i32 [ -22, %5 ], [ %16, %9 ], [ %21, %20 ], [ %32, %31 ] +.loopexit: ; preds = %30, %19, %9, %5 + %34 = phi i32 [ -22, %5 ], [ %15, %9 ], [ %20, %19 ], [ %31, %30 ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #14 - ret i32 %35 + ret i32 %34 } ; Function Attrs: fn_ret_thunk_extern nounwind null_pointer_is_valid diff --git a/bench/linux/optimized/utimes.ll b/bench/linux/optimized/utimes.ll index 10d7cb8d2b3..bf29c8ce453 100644 --- a/bench/linux/optimized/utimes.ll +++ b/bench/linux/optimized/utimes.ll @@ -204,25 +204,25 @@ define dso_local range(i64 -2147483648, 2147483648) i64 @do_utimes(i32 noundef % 9: ; preds = %4 %10 = icmp eq i32 %3, 0 - br i1 %10, label %11, label %45 + br i1 %10, label %11, label %44 11: ; preds = %9 %12 = tail call i64 @__fdget(i32 noundef %0) #7 %13 = and i64 %12, -4 %14 = inttoptr i64 %13 to ptr %15 = icmp eq i64 %13, 0 - br i1 %15, label %45, label %16 + br i1 %15, label %44, label %16 16: ; preds = %11 %17 = getelementptr inbounds i8, ptr %14, i64 152 %18 = tail call i32 @vfs_utimes(ptr noundef %17, ptr noundef %2) %19 = and i64 %12, 1 %20 = icmp eq i64 %19, 0 - br i1 %20, label %45, label %21 + br i1 %20, label %44, label %21 21: ; preds = %16 tail call void @fput(ptr noundef nonnull %14) #7 - br label %45 + br label %44 22: ; preds = %4 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #7 @@ -233,41 +233,40 @@ define dso_local range(i64 -2147483648, 2147483648) i64 @do_utimes(i32 noundef % 25: ; preds = %22 %26 = lshr exact i32 %3, 8 - %27 = and i32 %26, 1 - %28 = xor i32 %27, 1 - %29 = icmp ult i32 %3, 4096 - %30 = or disjoint i32 %28, 16384 - %31 = select i1 %29, i32 %28, i32 %30 - %32 = call i32 @user_path_at_empty(i32 noundef %0, ptr noundef %1, i32 noundef %31, ptr noundef nonnull %5, ptr noundef null) #7 - %33 = icmp eq i32 %32, 0 - br i1 %33, label %34, label %.loopexit + %27 = xor i32 %26, 1 + %28 = icmp ult i32 %3, 4096 + %29 = or disjoint i32 %27, 16384 + %30 = select i1 %28, i32 %27, i32 %29 + %31 = call i32 @user_path_at_empty(i32 noundef %0, ptr noundef %1, i32 noundef %30, ptr noundef nonnull %5, ptr noundef null) #7 + %32 = icmp eq i32 %31, 0 + br i1 %32, label %33, label %.loopexit -34: ; preds = %25 - %35 = or disjoint i32 %31, 32 - br label %39 +33: ; preds = %25 + %34 = or disjoint i32 %30, 32 + br label %38 -36: ; preds = %39 - %37 = call i32 @user_path_at_empty(i32 noundef %0, ptr noundef %1, i32 noundef %35, ptr noundef nonnull %5, ptr noundef null) #7 - %38 = icmp eq i32 %37, 0 - br i1 %38, label %39, label %.loopexit +35: ; preds = %38 + %36 = call i32 @user_path_at_empty(i32 noundef %0, ptr noundef %1, i32 noundef %34, ptr noundef nonnull %5, ptr noundef null) #7 + %37 = icmp eq i32 %36, 0 + br i1 %37, label %38, label %.loopexit -39: ; preds = %36, %34 - %40 = phi i1 [ true, %34 ], [ false, %36 ] - %41 = call i32 @vfs_utimes(ptr noundef nonnull %5, ptr noundef %2) +38: ; preds = %35, %33 + %39 = phi i1 [ true, %33 ], [ false, %35 ] + %40 = call i32 @vfs_utimes(ptr noundef nonnull %5, ptr noundef %2) call void @path_put(ptr noundef nonnull %5) #7 - %42 = icmp eq i32 %41, -116 - %43 = and i1 %40, %42 - br i1 %43, label %36, label %.loopexit + %41 = icmp eq i32 %40, -116 + %42 = and i1 %39, %41 + br i1 %42, label %35, label %.loopexit -.loopexit: ; preds = %39, %36, %25, %22 - %44 = phi i32 [ -22, %22 ], [ %32, %25 ], [ %37, %36 ], [ %41, %39 ] +.loopexit: ; preds = %38, %35, %25, %22 + %43 = phi i32 [ -22, %22 ], [ %31, %25 ], [ %36, %35 ], [ %40, %38 ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #7 - br label %45 + br label %44 -45: ; preds = %.loopexit, %21, %16, %11, %9 - %46 = phi i32 [ %44, %.loopexit ], [ -22, %9 ], [ -9, %11 ], [ %18, %16 ], [ %18, %21 ] - %47 = sext i32 %46 to i64 - ret i64 %47 +44: ; preds = %.loopexit, %21, %16, %11, %9 + %45 = phi i32 [ %43, %.loopexit ], [ -22, %9 ], [ -9, %11 ], [ %18, %16 ], [ %18, %21 ] + %46 = sext i32 %45 to i64 + ret i64 %46 } ; Function Attrs: fn_ret_thunk_extern nounwind null_pointer_is_valid diff --git a/bench/meilisearch-rs/optimized/134vr9xz294dqnvo.ll b/bench/meilisearch-rs/optimized/134vr9xz294dqnvo.ll index 414516c3df3..7b70197af24 100644 --- a/bench/meilisearch-rs/optimized/134vr9xz294dqnvo.ll +++ b/bench/meilisearch-rs/optimized/134vr9xz294dqnvo.ll @@ -23928,7 +23928,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 @@ -26051,7 +26051,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 @@ -26223,7 +26223,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 @@ -58907,7 +58907,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 @@ -126260,7 +126260,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 @@ -126935,7 +126935,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 @@ -148277,7 +148277,7 @@ define hidden void @"_ZN4core3ptr58drop_in_place$LT$$u5b$tracing_trace..entry..E %6 = load i64, ptr %4, align 8, !range !8474, !alias.scope !64126, !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 @@ -165121,125 +165121,128 @@ define hidden void @"_ZN4core3ptr66drop_in_place$LT$jsonwebtoken..validation..Cl tail call void @llvm.experimental.noalias.scope.decl(metadata !72926) %3 = load i64, ptr %2, align 8, !range !350, !alias.scope !72926, !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 !72929) - %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 !72932) tail call void @llvm.experimental.noalias.scope.decl(metadata !72935) tail call void @llvm.experimental.noalias.scope.decl(metadata !72938) tail call void @llvm.experimental.noalias.scope.decl(metadata !72941) - %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 !72944, !noalias !72947, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %10, i64 noundef %3, i64 noundef 1) #31, !noalias !72949 +"_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 !72944, !noalias !72947, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %11, i64 noundef %3, i64 noundef 1) #31, !noalias !72949 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 !72950) - %12 = load i64, ptr %11, align 8, !range !326, !alias.scope !72950, !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 !72950, !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 !72953) - %15 = load ptr, ptr %14, align 8, !alias.scope !72956, !noundef !4 - %16 = icmp eq ptr %15, null - br i1 %16, label %17, label %25 + %16 = load ptr, ptr %15, align 8, !alias.scope !72956, !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 !72957) - %19 = load i64, ptr %18, align 8, !range !1999, !alias.scope !72960, !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 !72960, !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 !72961) tail call void @llvm.experimental.noalias.scope.decl(metadata !72964) tail call void @llvm.experimental.noalias.scope.decl(metadata !72967) tail call void @llvm.experimental.noalias.scope.decl(metadata !72970) - %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 !72973, !noalias !72976, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %24, i64 noundef %19, i64 noundef 1) #31, !noalias !72978 +"_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 !72973, !noalias !72976, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %25, i64 noundef %20, i64 noundef 1) #31, !noalias !72978 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 !72979) - %31 = load i64, ptr %30, align 8, !range !326, !alias.scope !72979, !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 !72979, !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 !72982) - %34 = load ptr, ptr %33, align 8, !alias.scope !72985, !noundef !4 - %35 = icmp eq ptr %34, null - br i1 %35, label %36, label %44 + %35 = load ptr, ptr %34, align 8, !alias.scope !72985, !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 !72986) - %38 = load i64, ptr %37, align 8, !range !1999, !alias.scope !72989, !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 !72989, !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 !72990) tail call void @llvm.experimental.noalias.scope.decl(metadata !72993) tail call void @llvm.experimental.noalias.scope.decl(metadata !72996) tail call void @llvm.experimental.noalias.scope.decl(metadata !72999) - %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 !73002, !noalias !73005, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %43, i64 noundef %38, i64 noundef 1) #31, !noalias !73007 +"_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 !73002, !noalias !73005, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %44, i64 noundef %39, i64 noundef 1) #31, !noalias !73007 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 @@ -174816,7 +174819,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 !77833, !noalias !77824, !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 @@ -197610,7 +197613,7 @@ define hidden void @"_ZN4core3ptr86drop_in_place$LT$tokio..sync..mpsc..block..Re tail call void @llvm.experimental.noalias.scope.decl(metadata !88566) %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 @@ -202159,28 +202162,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 !90532) - %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 !90535) tail call void @llvm.experimental.noalias.scope.decl(metadata !90538) tail call void @llvm.experimental.noalias.scope.decl(metadata !90541) tail call void @llvm.experimental.noalias.scope.decl(metadata !90544) - %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 !90547, !noalias !90550, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %9, i64 noundef %2, i64 noundef 1) #31, !noalias !90552 +"_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 !90547, !noalias !90550, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %10, i64 noundef %2, i64 noundef 1) #31, !noalias !90552 br label %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17h1d8918db47169debE.llvm.4616129397091597767.exit" } @@ -216499,7 +216505,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 !94671, !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 @@ -231907,7 +231913,7 @@ define hidden void @"_ZN82_$LT$tokio..sync..mpsc..chan..Rx$LT$T$C$S$GT$$u20$as$u 21: ; preds = %17 %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 @@ -232413,7 +232419,7 @@ define hidden void @"_ZN84_$LT$tokio..sync..mpsc..chan..Chan$LT$T$C$S$GT$$u20$as %21 = phi i64 [ %4, %.lr.ph ], [ %49, %"_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" ] %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 70b28997018..f0b7c9dd122 100644 --- a/bench/mold/optimized/arch-riscv.cc.RV32BE.cc.ll +++ b/bench/mold/optimized/arch-riscv.cc.RV32BE.cc.ll @@ -5719,8 +5719,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.i323 = icmp eq ptr %2, %3 - br i1 %cmp.i323, label %cleanup.cont, label %for.body.lr.ph + %cmp.i319 = icmp eq ptr %2, %3 + br i1 %cmp.i319, 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 @@ -5745,15 +5745,15 @@ for.body.lr.ph: ; preds = %if.end br label %for.body for.body: ; preds = %for.body.lr.ph, %if.end53 - %stack.0335 = phi i64 [ -1, %for.body.lr.ph ], [ %stack.1, %if.end53 ] - %unaligned.0334 = phi i1 [ false, %for.body.lr.ph ], [ %spec.select, %if.end53 ] - %arch.sroa.0.0333 = phi ptr [ null, %for.body.lr.ph ], [ %arch.sroa.0.3, %if.end53 ] - %arch.sroa.16.0332 = phi ptr [ null, %for.body.lr.ph ], [ %arch.sroa.16.2, %if.end53 ] - %arch.sroa.29.0331 = phi ptr [ null, %for.body.lr.ph ], [ %arch.sroa.29.3, %if.end53 ] - %__begin2.sroa.0.0330 = phi ptr [ %2, %for.body.lr.ph ], [ %incdec.ptr.i, %if.end53 ] - %arch2.sroa.0.0329 = phi ptr [ undef, %for.body.lr.ph ], [ %arch2.sroa.0.7, %if.end53 ] - %arch2.sroa.12.0328 = phi ptr [ undef, %for.body.lr.ph ], [ %arch2.sroa.12.7, %if.end53 ] - %13 = load ptr, ptr %__begin2.sroa.0.0330, align 8 + %stack.0331 = phi i64 [ -1, %for.body.lr.ph ], [ %stack.1, %if.end53 ] + %unaligned.0330 = phi i1 [ false, %for.body.lr.ph ], [ %spec.select, %if.end53 ] + %arch.sroa.0.0329 = phi ptr [ null, %for.body.lr.ph ], [ %arch.sroa.0.3, %if.end53 ] + %arch.sroa.16.0328 = phi ptr [ null, %for.body.lr.ph ], [ %arch.sroa.16.2, %if.end53 ] + %arch.sroa.29.0327 = phi ptr [ null, %for.body.lr.ph ], [ %arch.sroa.29.3, %if.end53 ] + %__begin2.sroa.0.0326 = phi ptr [ %2, %for.body.lr.ph ], [ %incdec.ptr.i, %if.end53 ] + %arch2.sroa.0.0325 = phi ptr [ undef, %for.body.lr.ph ], [ %arch2.sroa.0.7, %if.end53 ] + %arch2.sroa.12.0324 = phi ptr [ undef, %for.body.lr.ph ], [ %arch2.sroa.12.7, %if.end53 ] + %13 = load ptr, ptr %__begin2.sroa.0.0326, 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 @@ -5762,8 +5762,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.0335, -1 - %cmp12.not = icmp eq i64 %stack.0335, %15 + %cmp.not = icmp eq i64 %stack.0331, -1 + %cmp12.not = icmp eq i64 %stack.0331, %15 %or.cond = select i1 %cmp.not, i1 true, i1 %cmp12.not br i1 %or.cond, label %if.end17, label %if.then13 @@ -5788,7 +5788,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.0335, %for.body ], [ %15, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRA40_KcEERS5_OT_.exit ], [ %15, %if.then8 ] + %stack.1 = phi i64 [ %stack.0331, %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 @@ -5844,8 +5844,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.1 = phi ptr [ %arch2.sroa.12.0328, %if.end23.i ], [ %arch2.sroa.12.2, %_ZNSt8optionalIN4mold3elf12_GLOBAL__N_14ExtnEED2Ev.exit.i ] - %arch2.sroa.0.1 = phi ptr [ %arch2.sroa.0.0329, %if.end23.i ], [ %arch2.sroa.0.2, %_ZNSt8optionalIN4mold3elf12_GLOBAL__N_14ExtnEED2Ev.exit.i ] + %arch2.sroa.12.1 = phi ptr [ %arch2.sroa.12.0324, %if.end23.i ], [ %arch2.sroa.12.2, %_ZNSt8optionalIN4mold3elf12_GLOBAL__N_14ExtnEED2Ev.exit.i ] + %arch2.sroa.0.1 = phi ptr [ %arch2.sroa.0.0325, %if.end23.i ], [ %arch2.sroa.0.2, %_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 @@ -5989,8 +5989,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.6288 = phi ptr [ null, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit.thread ], [ %arch2.sroa.0.5, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit ] - %arch2.sroa.12.6284 = phi ptr [ null, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit.thread ], [ %arch2.sroa.12.5, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit ] + %arch2.sroa.0.6284 = phi ptr [ null, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit.thread ], [ %arch2.sroa.0.5, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit ] + %arch2.sroa.12.6280 = phi ptr [ null, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit.thread ], [ %arch2.sroa.12.5, %_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 @@ -5998,14 +5998,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 - %.pr294 = load ptr, ptr %ref.tmp27, align 8 - %tobool.not.i.i69 = icmp eq ptr %.pr294, null + %.pr290 = load ptr, ptr %ref.tmp27, align 8 + %tobool.not.i.i69 = icmp eq ptr %.pr290, 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 - %.pr296 = load ptr, ptr %ref.tmp27, align 8 - %tobool.not.i.i73 = icmp eq ptr %.pr296, null + %.pr292 = load ptr, ptr %ref.tmp27, align 8 + %tobool.not.i.i73 = icmp eq ptr %.pr292, 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 @@ -6019,18 +6019,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.i63291 = phi i1 [ true, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit ], [ false, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit ] - %arch2.sroa.0.6287 = phi ptr [ %arch2.sroa.0.6288, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit ], [ %arch2.sroa.0.5, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit ] - %arch2.sroa.12.6283 = phi ptr [ %arch2.sroa.12.6284, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit ], [ %arch2.sroa.12.5, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit ] - %cmp.i.i76 = icmp eq ptr %arch.sroa.0.0333, %arch.sroa.16.0332 + %cmp.i.i63287 = phi i1 [ true, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit ], [ false, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit ] + %arch2.sroa.0.6283 = phi ptr [ %arch2.sroa.0.6284, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit ], [ %arch2.sroa.0.5, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit ] + %arch2.sroa.12.6279 = phi ptr [ %arch2.sroa.12.6280, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit ], [ %arch2.sroa.12.5, %_ZN4mold3elfL17parse_arch_stringESt17basic_string_viewIcSt11char_traitsIcEE.exit ] + %cmp.i.i76 = icmp eq ptr %arch.sroa.0.0329, %arch.sroa.16.0328 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.6283 to i64 - %sub.ptr.rhs.cast.i.i = ptrtoint ptr %arch2.sroa.0.6287 to i64 + %sub.ptr.lhs.cast.i.i = ptrtoint ptr %arch2.sroa.12.6279 to i64 + %sub.ptr.rhs.cast.i.i = ptrtoint ptr %arch2.sroa.0.6283 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.0331 to i64 - %sub.ptr.rhs.cast.i29.i = ptrtoint ptr %arch.sroa.0.0333 to i64 + %sub.ptr.lhs.cast.i28.i = ptrtoint ptr %arch.sroa.29.0327 to i64 + %sub.ptr.rhs.cast.i29.i = ptrtoint ptr %arch.sroa.0.0329 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 @@ -6046,26 +6046,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.i63291, 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.i63287, 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.6287, %_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.6283, %_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.6283 + %cmp.i.i.i.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i.i.i, %arch2.sroa.12.6279 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.0333, null + %tobool.not.i.i86 = icmp eq ptr %arch.sroa.0.0329, 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.0333) #30 + call void @_ZdlPv(ptr noundef nonnull %arch.sroa.0.0329) #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 @@ -6073,41 +6073,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.6283, %arch2.sroa.0.6287 + %cmp26.not.i.not = icmp eq ptr %arch2.sroa.12.6279, %arch2.sroa.0.6283 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.0332, %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.6287, %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.0328, %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.6283, %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.6283 + %cmp.not.i.i.i.i.i80 = icmp eq ptr %incdec.ptr.i.i.i.i73.i, %arch2.sroa.12.6279 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.1 = phi ptr [ %add.ptr.i, %_ZNSt12_Vector_baseIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EE13_M_deallocateEPS3_m.exit.i ], [ %arch.sroa.29.0331, %if.else.i ], [ %arch.sroa.29.0331, %for.body.i.i.i.i.i79 ] - %arch.sroa.0.1 = phi ptr [ %call5.i.i.i.i.i, %_ZNSt12_Vector_baseIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EE13_M_deallocateEPS3_m.exit.i ], [ %arch.sroa.0.0333, %if.else.i ], [ %arch.sroa.0.0333, %for.body.i.i.i.i.i79 ] + %arch.sroa.29.1 = phi ptr [ %add.ptr.i, %_ZNSt12_Vector_baseIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EE13_M_deallocateEPS3_m.exit.i ], [ %arch.sroa.29.0327, %if.else.i ], [ %arch.sroa.29.0327, %for.body.i.i.i.i.i79 ] + %arch.sroa.0.1 = phi ptr [ %call5.i.i.i.i.i, %_ZNSt12_Vector_baseIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EE13_M_deallocateEPS3_m.exit.i ], [ %arch.sroa.0.0329, %if.else.i ], [ %arch.sroa.0.0329, %for.body.i.i.i.i.i79 ] %add.ptr72.i = getelementptr inbounds i8, ptr %arch.sroa.0.1, i64 %sub.ptr.sub.i.i - br i1 %cmp.i.i63291, label %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i158, label %for.body.i.i.i.i149.preheader + br i1 %cmp.i.i63287, label %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i158, label %for.body.i.i.i.i149.preheader if.else: ; preds = %if.end34 - %sub.ptr.lhs.cast.i.i.i = ptrtoint ptr %arch.sroa.16.0332 to i64 - %sub.ptr.rhs.cast.i.i.i = ptrtoint ptr %arch.sroa.0.0333 to i64 + %sub.ptr.lhs.cast.i.i.i = ptrtoint ptr %arch.sroa.16.0328 to i64 + %sub.ptr.rhs.cast.i.i.i = ptrtoint ptr %arch.sroa.0.0329 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.6283 to i64 - %sub.ptr.rhs.cast.i.i.i92 = ptrtoint ptr %arch2.sroa.0.6287 to i64 + %sub.ptr.lhs.cast.i.i.i91 = ptrtoint ptr %arch2.sroa.12.6279 to i64 + %sub.ptr.rhs.cast.i.i.i92 = ptrtoint ptr %arch2.sroa.0.6283 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.0333, i64 8 + %_M_string_length.i.i.i = getelementptr inbounds i8, ptr %arch.sroa.0.0329, 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.6287, i64 8 + %_M_string_length.i4.i.i = getelementptr inbounds i8, ptr %arch2.sroa.0.6283, 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 @@ -6117,21 +6117,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.i3169.i = icmp eq ptr %arch2.sroa.12.6283, %arch2.sroa.0.6287 + %cmp.i3169.i = icmp eq ptr %arch2.sroa.12.6279, %arch2.sroa.0.6283 br i1 %cmp.i3169.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.6287, align 8, !noalias !31 - %37 = load ptr, ptr %arch.sroa.0.0333, align 8, !noalias !31 + %36 = load ptr, ptr %arch2.sroa.0.6283, align 8, !noalias !31 + %37 = load ptr, ptr %arch.sroa.0.0329, 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.074.i = phi i64 [ %x.sroa.13.1.i, %if.end33.i ], [ %sub.ptr.div.i.i.i, %while.cond.preheader.i ] - %x.sroa.0.073.i = phi ptr [ %x.sroa.0.1.i, %if.end33.i ], [ %arch.sroa.0.0333, %while.cond.preheader.i ] + %x.sroa.0.073.i = phi ptr [ %x.sroa.0.1.i, %if.end33.i ], [ %arch.sroa.0.0329, %while.cond.preheader.i ] %y.sroa.13.072.i = phi i64 [ %y.sroa.13.1.i, %if.end33.i ], [ %sub.ptr.div.i.i.i94, %while.cond.preheader.i ] - %y.sroa.0.071.i = phi ptr [ %y.sroa.0.1.i, %if.end33.i ], [ %arch2.sroa.0.6287, %while.cond.preheader.i ] + %y.sroa.0.071.i = phi ptr [ %y.sroa.0.1.i, %if.end33.i ], [ %arch2.sroa.0.6283, %while.cond.preheader.i ] %_M_string_length.i.i32.i = getelementptr inbounds i8, ptr %x.sroa.0.073.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.071.i, i64 8 @@ -6360,9 +6360,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.6287, %while.cond.preheader.i ], [ %y.sroa.0.1.i, %while.end.loopexit.i ] + %y.sroa.0.0.lcssa.i = phi ptr [ %arch2.sroa.0.6283, %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.0333, %while.cond.preheader.i ], [ %x.sroa.0.1.i, %while.end.loopexit.i ] + %x.sroa.0.0.lcssa.i = phi ptr [ %arch.sroa.0.0329, %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.i59.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.i59.i) @@ -6382,7 +6382,7 @@ _ZN4mold3elfL16merge_extensionsESt4spanINS0_12_GLOBAL__N_14ExtnELm18446744073709 br label %for.body.i.i.i.i.i.i111 for.body.i.i.i.i.i.i111: ; 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.i112, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i.i.i ], [ %arch.sroa.0.0333, %_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.i112, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i.i.i ], [ %arch.sroa.0.0329, %_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 @@ -6402,15 +6402,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.i112 = 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.i112, %arch.sroa.16.0332 + %cmp.not.i.i.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i.i112, %arch.sroa.16.0328 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.i111, !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.0333, null + %tobool.not.i.i.i.i.i = icmp eq ptr %arch.sroa.0.0329, null br i1 %tobool.not.i.i.i.i.i, label %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EED2Ev.exit, label %if.then.i.i.i.i.i113 if.then.i.i.i.i.i113: ; preds = %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i.i.i - call void @_ZdlPv(ptr noundef nonnull %arch.sroa.0.0333) #30 + call void @_ZdlPv(ptr noundef nonnull %arch.sroa.0.0329) #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.i113 @@ -6425,14 +6425,14 @@ if.then43: ; preds = %_ZNSt6vectorIN4mold _ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRNS1_10ObjectFileIS3_EEEERS5_OT_.exit134: ; preds = %if.then43 %call.i.i133 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4mold3elflsINS0_6RV32BEEEERSoS3_RKNS0_9InputFileIT_EE(ptr noundef nonnull align 8 dereferenceable(8) %add.ptr.i.i132, ptr noundef nonnull align 8 dereferenceable(280) %13) #21 - %.pr298 = load ptr, ptr %ref.tmp44, align 8 - %tobool.not.i.i135 = icmp eq ptr %.pr298, null + %.pr294 = load ptr, ptr %ref.tmp44, align 8 + %tobool.not.i.i135 = icmp eq ptr %.pr294, null br i1 %tobool.not.i.i135, label %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit146, label %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRA46_KcEERS5_OT_.exit _ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRA46_KcEERS5_OT_.exit: ; preds = %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRNS1_10ObjectFileIS3_EEEERS5_OT_.exit134 %call.i.i138 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %add.ptr.i.i132, ptr noundef nonnull @.str.16) #21 - %.pr300 = load ptr, ptr %ref.tmp44, align 8 - %tobool.not.i.i139 = icmp eq ptr %.pr300, null + %.pr296 = load ptr, ptr %ref.tmp44, align 8 + %tobool.not.i.i139 = icmp eq ptr %.pr296, null br i1 %tobool.not.i.i139, label %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit146, label %if.then.i.i140 if.then.i.i140: ; preds = %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRA46_KcEERS5_OT_.exit @@ -6443,19 +6443,19 @@ if.then.i.i140: ; preds = %_ZN4mold5ErrorINS_3 _ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit146: ; preds = %if.then43, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRNS1_10ObjectFileIS3_EEEERS5_OT_.exit134, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRA46_KcEERS5_OT_.exit, %if.then.i.i140 call void @_ZN4mold7SyncOutINS_3elf7ContextINS1_6RV32BEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(400) %ref.tmp44) #21 - br i1 %cmp.i.i63291, label %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i158, label %for.body.i.i.i.i149.preheader + br i1 %cmp.i.i63287, label %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i158, label %for.body.i.i.i.i149.preheader if.end52: ; preds = %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EED2Ev.exit - br i1 %cmp.i.i63291, label %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i158, label %for.body.i.i.i.i149.preheader + br i1 %cmp.i.i63287, label %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i158, label %for.body.i.i.i.i149.preheader for.body.i.i.i.i149.preheader: ; preds = %if.end52, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit146 - %arch.sroa.0.2316.ph = phi ptr [ %ref.tmp38.sroa.0.1, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit146 ], [ %arch.sroa.0.1, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit ], [ %ref.tmp38.sroa.0.1, %if.end52 ] - %arch.sroa.16.1314.ph = phi ptr [ %ref.tmp38.sroa.6.1, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit146 ], [ %add.ptr72.i, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit ], [ %ref.tmp38.sroa.6.1, %if.end52 ] - %arch.sroa.29.2312.ph = phi ptr [ %ref.tmp38.sroa.9.1, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit146 ], [ %arch.sroa.29.1, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit ], [ %ref.tmp38.sroa.9.1, %if.end52 ] + %arch.sroa.0.2312.ph = phi ptr [ %ref.tmp38.sroa.0.1, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit146 ], [ %arch.sroa.0.1, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit ], [ %ref.tmp38.sroa.0.1, %if.end52 ] + %arch.sroa.16.1310.ph = phi ptr [ %ref.tmp38.sroa.6.1, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit146 ], [ %add.ptr72.i, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit ], [ %ref.tmp38.sroa.6.1, %if.end52 ] + %arch.sroa.29.2308.ph = phi ptr [ %ref.tmp38.sroa.9.1, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit146 ], [ %arch.sroa.29.1, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit ], [ %ref.tmp38.sroa.9.1, %if.end52 ] br label %for.body.i.i.i.i149 for.body.i.i.i.i149: ; preds = %for.body.i.i.i.i149.preheader, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i153 - %__first.addr.04.i.i.i.i150 = phi ptr [ %incdec.ptr.i.i.i.i154, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i153 ], [ %arch2.sroa.0.6287, %for.body.i.i.i.i149.preheader ] + %__first.addr.04.i.i.i.i150 = phi ptr [ %incdec.ptr.i.i.i.i154, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i153 ], [ %arch2.sroa.0.6283, %for.body.i.i.i.i149.preheader ] %72 = load ptr, ptr %__first.addr.04.i.i.i.i150, align 8 %73 = getelementptr inbounds i8, ptr %__first.addr.04.i.i.i.i150, i64 16 %cmp.i.i.i.i.i.i.i.i.i.i151 = icmp eq ptr %72, %73 @@ -6475,37 +6475,37 @@ if.then.i.i.i.i.i.i.i.i.i152: ; preds = %for.body.i.i.i.i149 _ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i153: ; preds = %if.then.i.i.i.i.i.i.i.i.i152, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i.i.i162 call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__first.addr.04.i.i.i.i150) #21 %incdec.ptr.i.i.i.i154 = getelementptr inbounds i8, ptr %__first.addr.04.i.i.i.i150, i64 48 - %cmp.not.i.i.i.i155 = icmp eq ptr %incdec.ptr.i.i.i.i154, %arch2.sroa.12.6283 + %cmp.not.i.i.i.i155 = icmp eq ptr %incdec.ptr.i.i.i.i154, %arch2.sroa.12.6279 br i1 %cmp.not.i.i.i.i155, label %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i158, label %for.body.i.i.i.i149, !llvm.loop !28 _ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i158: ; preds = %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i153, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit146, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit, %if.end52 - %arch.sroa.0.2317 = phi ptr [ %arch.sroa.0.1, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit ], [ %ref.tmp38.sroa.0.1, %if.end52 ], [ %ref.tmp38.sroa.0.1, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit146 ], [ %arch.sroa.0.2316.ph, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i153 ] - %arch.sroa.16.1315 = phi ptr [ %add.ptr72.i, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit ], [ %ref.tmp38.sroa.6.1, %if.end52 ], [ %ref.tmp38.sroa.6.1, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit146 ], [ %arch.sroa.16.1314.ph, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i153 ] - %arch.sroa.29.2313 = phi ptr [ %arch.sroa.29.1, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit ], [ %ref.tmp38.sroa.9.1, %if.end52 ], [ %ref.tmp38.sroa.9.1, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit146 ], [ %arch.sroa.29.2312.ph, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i153 ] - %tobool.not.i.i.i160 = icmp eq ptr %arch2.sroa.0.6287, null + %arch.sroa.0.2313 = phi ptr [ %arch.sroa.0.1, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit ], [ %ref.tmp38.sroa.0.1, %if.end52 ], [ %ref.tmp38.sroa.0.1, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit146 ], [ %arch.sroa.0.2312.ph, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i153 ] + %arch.sroa.16.1311 = phi ptr [ %add.ptr72.i, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit ], [ %ref.tmp38.sroa.6.1, %if.end52 ], [ %ref.tmp38.sroa.6.1, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit146 ], [ %arch.sroa.16.1310.ph, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i153 ] + %arch.sroa.29.2309 = phi ptr [ %arch.sroa.29.1, %_ZNSt6vectorIN4mold3elf12_GLOBAL__N_14ExtnESaIS3_EEaSERKS5_.exit ], [ %ref.tmp38.sroa.9.1, %if.end52 ], [ %ref.tmp38.sroa.9.1, %_ZN4mold5ErrorINS_3elf7ContextINS1_6RV32BEEEEElsIRSt17basic_string_viewIcSt11char_traitsIcEEEERS5_OT_.exit146 ], [ %arch.sroa.29.2308.ph, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i153 ] + %tobool.not.i.i.i160 = icmp eq ptr %arch2.sroa.0.6283, null br i1 %tobool.not.i.i.i160, label %if.end53, label %if.then.i.i.i161 if.then.i.i.i161: ; preds = %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i158 - call void @_ZdlPv(ptr noundef nonnull %arch2.sroa.0.6287) #30 + call void @_ZdlPv(ptr noundef nonnull %arch2.sroa.0.6283) #30 br label %if.end53 if.end53: ; preds = %if.then.i.i.i161, %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i158, %if.end17 - %arch2.sroa.12.7 = phi ptr [ %arch2.sroa.12.0328, %if.end17 ], [ %arch2.sroa.12.6283, %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i158 ], [ %arch2.sroa.12.6283, %if.then.i.i.i161 ] - %arch2.sroa.0.7 = phi ptr [ %arch2.sroa.0.0329, %if.end17 ], [ null, %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i158 ], [ %arch2.sroa.0.6287, %if.then.i.i.i161 ] - %arch.sroa.29.3 = phi ptr [ %arch.sroa.29.0331, %if.end17 ], [ %arch.sroa.29.2313, %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i158 ], [ %arch.sroa.29.2313, %if.then.i.i.i161 ] - %arch.sroa.16.2 = phi ptr [ %arch.sroa.16.0332, %if.end17 ], [ %arch.sroa.16.1315, %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i158 ], [ %arch.sroa.16.1315, %if.then.i.i.i161 ] - %arch.sroa.0.3 = phi ptr [ %arch.sroa.0.0333, %if.end17 ], [ %arch.sroa.0.2317, %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i158 ], [ %arch.sroa.0.2317, %if.then.i.i.i161 ] + %arch2.sroa.12.7 = phi ptr [ %arch2.sroa.12.0324, %if.end17 ], [ %arch2.sroa.12.6279, %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i158 ], [ %arch2.sroa.12.6279, %if.then.i.i.i161 ] + %arch2.sroa.0.7 = phi ptr [ %arch2.sroa.0.0325, %if.end17 ], [ null, %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i158 ], [ %arch2.sroa.0.6283, %if.then.i.i.i161 ] + %arch.sroa.29.3 = phi ptr [ %arch.sroa.29.0327, %if.end17 ], [ %arch.sroa.29.2309, %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i158 ], [ %arch.sroa.29.2309, %if.then.i.i.i161 ] + %arch.sroa.16.2 = phi ptr [ %arch.sroa.16.0328, %if.end17 ], [ %arch.sroa.16.1311, %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i158 ], [ %arch.sroa.16.1311, %if.then.i.i.i161 ] + %arch.sroa.0.3 = phi ptr [ %arch.sroa.0.0329, %if.end17 ], [ %arch.sroa.0.2313, %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i158 ], [ %arch.sroa.0.2313, %if.then.i.i.i161 ] %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.0334 - %incdec.ptr.i = getelementptr inbounds i8, ptr %__begin2.sroa.0.0330, i64 8 + %spec.select = select i1 %tobool, i1 true, i1 %unaligned.0330 + %incdec.ptr.i = getelementptr inbounds i8, ptr %__begin2.sroa.0.0326, 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.i166 = icmp eq ptr %arch.sroa.0.3, %arch.sroa.16.2 - br i1 %cmp.i.i166, label %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i245, label %if.end60 + br i1 %cmp.i.i166, label %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i241, label %if.end60 if.end60: ; preds = %for.end %sub.ptr.lhs.cast.i.i.i167 = ptrtoint ptr %arch.sroa.16.2 to i64 @@ -6854,7 +6854,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.i196, label %do.body.i + br i1 %cmp71.not, label %do.body.i195, label %do.body.i do.body.i: ; preds = %_ZN4mold3elfL9to_stringB5cxx11ESt4spanINS0_12_GLOBAL__N_14ExtnELm18446744073709551615EE.exit store i8 4, ptr %add.ptr70, align 1 @@ -6862,44 +6862,43 @@ do.body.i: ; preds = %_ZN4mold3elfL9to_st br label %do.body.i185 do.body.i185: ; preds = %do.body.i185, %do.body.i - %i.0.i186 = phi i64 [ 0, %do.body.i ], [ %inc.i193, %do.body.i185 ] - %val.addr.0.i187 = phi i64 [ %stack.1, %do.body.i ], [ %shr.i189, %do.body.i185 ] + %i.0.i186 = phi i64 [ 0, %do.body.i ], [ %inc.i192, %do.body.i185 ] + %val.addr.0.i187 = phi i64 [ %stack.1, %do.body.i ], [ %shr.i188, %do.body.i185 ] %127 = trunc i64 %val.addr.0.i187 to i8 - %conv.i188 = and i8 %127, 127 - %shr.i189 = lshr i64 %val.addr.0.i187, 7 - %tobool.not.i190 = icmp ult i64 %val.addr.0.i187, 128 - %masksel.i191 = select i1 %tobool.not.i190, i8 0, i8 -128 - %cond.i192 = or disjoint i8 %conv.i188, %masksel.i191 - %inc.i193 = add nuw nsw i64 %i.0.i186, 1 - %arrayidx.i194 = getelementptr inbounds i8, ptr %add.ptr74, i64 %i.0.i186 - store i8 %cond.i192, ptr %arrayidx.i194, align 1 - br i1 %tobool.not.i190, label %_ZN4mold10write_ulebEPhm.exit195, label %do.body.i185, !llvm.loop !43 - -_ZN4mold10write_ulebEPhm.exit195: ; preds = %do.body.i185 - %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 ] + %shr.i188 = lshr i64 %val.addr.0.i187, 7 + %tobool.not.i189 = icmp ult i64 %val.addr.0.i187, 128 + %or.i190 = or i8 %127, -128 + %cond.i191 = select i1 %tobool.not.i189, i8 %127, i8 %or.i190 + %inc.i192 = add nuw nsw i64 %i.0.i186, 1 + %arrayidx.i193 = getelementptr inbounds i8, ptr %add.ptr74, i64 %i.0.i186 + store i8 %cond.i191, ptr %arrayidx.i193, align 1 + br i1 %tobool.not.i189, label %_ZN4mold10write_ulebEPhm.exit194, label %do.body.i185, !llvm.loop !43 + +_ZN4mold10write_ulebEPhm.exit194: ; preds = %do.body.i185 + %add.ptr76 = getelementptr inbounds i8, ptr %add.ptr74, i64 %inc.i192 + br label %do.body.i195 + +do.body.i195: ; preds = %_ZN4mold3elfL9to_stringB5cxx11ESt4spanINS0_12_GLOBAL__N_14ExtnELm18446744073709551615EE.exit, %_ZN4mold10write_ulebEPhm.exit194 + %p.0 = phi ptr [ %add.ptr76, %_ZN4mold10write_ulebEPhm.exit194 ], [ %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.i207 = getelementptr i8, ptr %add.ptr79, i64 %129 - store i8 0, ptr %add.ptr.i207, align 1 - %add.ptr83 = getelementptr i8, ptr %add.ptr.i207, i64 1 - br i1 %spec.select, label %do.body.i209, label %if.end90 + %add.ptr.i205 = getelementptr i8, ptr %add.ptr79, i64 %129 + store i8 0, ptr %add.ptr.i205, align 1 + %add.ptr83 = getelementptr i8, ptr %add.ptr.i205, i64 1 + br i1 %spec.select, label %do.body.i207, label %if.end90 -do.body.i209: ; preds = %do.body.i196 +do.body.i207: ; preds = %do.body.i195 store i8 6, ptr %add.ptr83, align 1 - %add.ptr87 = getelementptr i8, ptr %add.ptr.i207, i64 2 + %add.ptr87 = getelementptr i8, ptr %add.ptr.i205, i64 2 store i8 1, ptr %add.ptr87, align 1 - %add.ptr89 = getelementptr i8, ptr %add.ptr.i207, i64 3 + %add.ptr89 = getelementptr i8, ptr %add.ptr.i205, i64 3 br label %if.end90 -if.end90: ; preds = %do.body.i209, %do.body.i196 - %p.1 = phi ptr [ %add.ptr89, %do.body.i209 ], [ %add.ptr83, %do.body.i196 ] +if.end90: ; preds = %do.body.i207, %do.body.i195 + %p.1 = phi ptr [ %add.ptr89, %do.body.i207 ], [ %add.ptr83, %do.body.i195 ] %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 @@ -6919,56 +6918,56 @@ if.end90: ; preds = %do.body.i209, %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.i231 = icmp eq ptr %135, %136 - br i1 %cmp.i.i.i231, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i, label %if.then.i.i232 + %cmp.i.i.i227 = icmp eq ptr %135, %136 + br i1 %cmp.i.i.i227, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i, label %if.then.i.i228 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i: ; preds = %if.end90 %137 = load i64, ptr %_M_string_length.i, align 8 %cmp3.i.i.i = icmp ult i64 %137, 16 call void @llvm.assume(i1 %cmp3.i.i.i) - br label %for.body.i.i.i.i236.preheader + br label %for.body.i.i.i.i232.preheader -if.then.i.i232: ; preds = %if.end90 +if.then.i.i228: ; preds = %if.end90 call void @_ZdlPv(ptr noundef %135) #30 - br label %for.body.i.i.i.i236.preheader + br label %for.body.i.i.i.i232.preheader -for.body.i.i.i.i236.preheader: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i, %if.then.i.i232 +for.body.i.i.i.i232.preheader: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i, %if.then.i.i228 call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %arch_str) #21 - br label %for.body.i.i.i.i236 - -for.body.i.i.i.i236: ; preds = %for.body.i.i.i.i236.preheader, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i240 - %__first.addr.04.i.i.i.i237 = phi ptr [ %incdec.ptr.i.i.i.i241, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i240 ], [ %arch.sroa.0.3, %for.body.i.i.i.i236.preheader ] - %138 = load ptr, ptr %__first.addr.04.i.i.i.i237, align 8 - %139 = getelementptr inbounds i8, ptr %__first.addr.04.i.i.i.i237, i64 16 - %cmp.i.i.i.i.i.i.i.i.i.i238 = icmp eq ptr %138, %139 - br i1 %cmp.i.i.i.i.i.i.i.i.i.i238, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i.i.i249, label %if.then.i.i.i.i.i.i.i.i.i239 - -_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i.i.i249: ; preds = %for.body.i.i.i.i236 - %_M_string_length.i.i.i.i.i.i.i.i.i.i250 = getelementptr inbounds i8, ptr %__first.addr.04.i.i.i.i237, i64 8 - %140 = load i64, ptr %_M_string_length.i.i.i.i.i.i.i.i.i.i250, align 8 - %cmp3.i.i.i.i.i.i.i.i.i.i251 = icmp ult i64 %140, 16 - call void @llvm.assume(i1 %cmp3.i.i.i.i.i.i.i.i.i.i251) - br label %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i240 - -if.then.i.i.i.i.i.i.i.i.i239: ; preds = %for.body.i.i.i.i236 + br label %for.body.i.i.i.i232 + +for.body.i.i.i.i232: ; preds = %for.body.i.i.i.i232.preheader, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i236 + %__first.addr.04.i.i.i.i233 = phi ptr [ %incdec.ptr.i.i.i.i237, %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i236 ], [ %arch.sroa.0.3, %for.body.i.i.i.i232.preheader ] + %138 = load ptr, ptr %__first.addr.04.i.i.i.i233, align 8 + %139 = getelementptr inbounds i8, ptr %__first.addr.04.i.i.i.i233, i64 16 + %cmp.i.i.i.i.i.i.i.i.i.i234 = icmp eq ptr %138, %139 + br i1 %cmp.i.i.i.i.i.i.i.i.i.i234, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i.i.i245, label %if.then.i.i.i.i.i.i.i.i.i235 + +_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i.i.i245: ; preds = %for.body.i.i.i.i232 + %_M_string_length.i.i.i.i.i.i.i.i.i.i246 = getelementptr inbounds i8, ptr %__first.addr.04.i.i.i.i233, i64 8 + %140 = load i64, ptr %_M_string_length.i.i.i.i.i.i.i.i.i.i246, align 8 + %cmp3.i.i.i.i.i.i.i.i.i.i247 = icmp ult i64 %140, 16 + call void @llvm.assume(i1 %cmp3.i.i.i.i.i.i.i.i.i.i247) + br label %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i236 + +if.then.i.i.i.i.i.i.i.i.i235: ; preds = %for.body.i.i.i.i232 call void @_ZdlPv(ptr noundef %138) #30 - br label %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i240 + br label %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i236 -_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i240: ; preds = %if.then.i.i.i.i.i.i.i.i.i239, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i.i.i249 - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__first.addr.04.i.i.i.i237) #21 - %incdec.ptr.i.i.i.i241 = getelementptr inbounds i8, ptr %__first.addr.04.i.i.i.i237, i64 48 - %cmp.not.i.i.i.i242 = icmp eq ptr %incdec.ptr.i.i.i.i241, %arch.sroa.16.2 - br i1 %cmp.not.i.i.i.i242, label %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i245, label %for.body.i.i.i.i236, !llvm.loop !28 +_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i236: ; preds = %if.then.i.i.i.i.i.i.i.i.i235, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i.i.i.i.i245 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %__first.addr.04.i.i.i.i233) #21 + %incdec.ptr.i.i.i.i237 = getelementptr inbounds i8, ptr %__first.addr.04.i.i.i.i233, i64 48 + %cmp.not.i.i.i.i238 = icmp eq ptr %incdec.ptr.i.i.i.i237, %arch.sroa.16.2 + br i1 %cmp.not.i.i.i.i238, label %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i241, label %for.body.i.i.i.i232, !llvm.loop !28 -_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i245: ; preds = %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i240, %for.end - %tobool.not.i.i.i247 = icmp eq ptr %arch.sroa.0.3, null - br i1 %tobool.not.i.i.i247, label %cleanup.cont, label %if.then.i.i.i248 +_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i241: ; preds = %_ZSt8_DestroyIN4mold3elf12_GLOBAL__N_14ExtnEEvPT_.exit.i.i.i.i236, %for.end + %tobool.not.i.i.i243 = icmp eq ptr %arch.sroa.0.3, null + br i1 %tobool.not.i.i.i243, label %cleanup.cont, label %if.then.i.i.i244 -if.then.i.i.i248: ; preds = %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i245 +if.then.i.i.i244: ; preds = %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i241 call void @_ZdlPv(ptr noundef nonnull %arch.sroa.0.3) #30 br label %cleanup.cont -cleanup.cont: ; preds = %if.end, %if.then.i.i.i248, %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i245, %entry +cleanup.cont: ; preds = %if.end, %if.then.i.i.i244, %_ZSt8_DestroyIPN4mold3elf12_GLOBAL__N_14ExtnES3_EvT_S5_RSaIT0_E.exit.i241, %entry ret void } diff --git a/bench/ocio/optimized/MathUtils.cpp.ll b/bench/ocio/optimized/MathUtils.cpp.ll index 76a5c6d053a..c5c27454d86 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 @@ -279,9 +279,9 @@ _ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit: ; preds = %for.body.p %cmp3.i30.i.i = icmp slt i32 %7, 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 + %11 = 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 %11, i32 %sub.i.i %cmp33.i.i = icmp ult i32 %cond.i.i, 3 br i1 %cmp33.i.i, label %for.cond, label %return @@ -534,15 +534,15 @@ entry: br label %for.cond1.preheader for.cond1.preheader: ; preds = %entry, %for.inc12 - %indvars.iv33 = phi i64 [ 0, %entry ], [ %indvars.iv.next34, %for.inc12 ] - %cmp28 = phi i1 [ false, %entry ], [ %cmp, %for.inc12 ] - %arrayidx.idx = shl nsw i64 %indvars.iv33, 4 + %indvars.iv32 = phi i64 [ 0, %entry ], [ %indvars.iv.next33, %for.inc12 ] + %cmp27 = phi i1 [ false, %entry ], [ %cmp, %for.inc12 ] + %arrayidx.idx = shl nsw i64 %indvars.iv32, 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.iv33 + %cmp4 = icmp eq i64 %indvars.iv, %indvars.iv32 %gep = getelementptr inbounds float, ptr %invariant.gep, i64 %indvars.iv %0 = load float, ptr %gep, align 4 %1 = bitcast float %0 to i32 @@ -580,11 +580,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 @@ -592,14 +592,14 @@ 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.next34 = add nuw nsw i64 %indvars.iv33, 1 - %cmp = icmp ugt i64 %indvars.iv33, 2 - %exitcond36 = icmp eq i64 %indvars.iv.next34, 4 - br i1 %exitcond36, label %return, label %for.cond1.preheader, !llvm.loop !12 + %indvars.iv.next33 = add nuw nsw i64 %indvars.iv32, 1 + %cmp = icmp ugt i64 %indvars.iv32, 2 + %exitcond35 = icmp eq i64 %indvars.iv.next33, 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 [ %cmp28, %_ZN19OpenColorIO_v2_4dev18IsScalarEqualToOneIfEEbT_.exit ], [ %cmp28, %_ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit ], [ %cmp28, %if.then ], [ %cmp28, %if.else ], [ %cmp, %for.inc12 ] - ret i1 %cmp25 + %cmp24 = phi i1 [ %cmp27, %_ZN19OpenColorIO_v2_4dev18IsScalarEqualToOneIfEEbT_.exit ], [ %cmp27, %_ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit ], [ %cmp27, %if.then ], [ %cmp27, %if.else ], [ %cmp, %for.inc12 ] + ret i1 %cmp24 } ; Function Attrs: mustprogress uwtable @@ -687,7 +687,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) @@ -698,20 +698,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 @@ -744,9 +744,9 @@ _ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit: ; preds = %for.body %cmp3.i30.i.i = icmp slt i32 %2, 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 + %6 = 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 %6, i32 %sub.i.i %cmp33.i.i = icmp ult i32 %cond.i.i, 3 br i1 %cmp33.i.i, label %return, label %for.inc @@ -994,134 +994,134 @@ _ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit: ; preds = %for.end %cmp3.i30.i.i = icmp slt i32 %43, 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 + %47 = 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 %47, 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, %42 - %47 = fneg double %37 - %48 = insertelement <2 x double> poison, double %41, i64 1 - %49 = shufflevector <2 x double> %48, <2 x double> %36, <2 x i32> - %50 = fneg <2 x double> %49 - %51 = extractelement <2 x double> %50, i64 1 - %52 = fneg double %7 - %53 = fneg double %11 + %48 = fneg double %37 + %49 = insertelement <2 x double> poison, double %41, i64 1 + %50 = shufflevector <2 x double> %49, <2 x double> %36, <2 x i32> + %51 = fneg <2 x double> %50 + %52 = extractelement <2 x double> %51, i64 1 + %53 = fneg double %7 + %54 = fneg double %11 %neg112 = fneg double %4 - %54 = fneg double %2 - %55 = shufflevector <2 x double> %18, <2 x double> poison, <2 x i32> - %56 = shufflevector <2 x double> %55, <2 x double> %24, <2 x i32> - %57 = fmul <2 x double> %56, %50 - %58 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %36, <2 x double> %24, <2 x double> %57) - %59 = extractelement <2 x double> %58, i64 0 - %60 = shufflevector <2 x double> %58, <2 x double> poison, <2 x i32> - %61 = insertelement <2 x double> poison, double %13, i64 1 - %62 = insertelement <2 x double> %61, double %52, i64 0 - %63 = insertelement <2 x double> poison, double %2, i64 0 - %64 = insertelement <2 x double> %63, double %8, i64 1 - %65 = insertelement <2 x double> poison, double %11, i64 0 - %66 = insertelement <2 x double> %65, double %5, i64 1 - %67 = shufflevector <2 x double> %18, <2 x double> poison, <2 x i32> zeroinitializer - %68 = fmul <2 x double> %67, %50 - %69 = insertelement <2 x double> poison, double %23, i64 0 - %70 = shufflevector <2 x double> %69, <2 x double> poison, <2 x i32> zeroinitializer - %71 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %70, <2 x double> %24, <2 x double> %68) - %72 = extractelement <2 x double> %71, i64 0 - %73 = insertelement <2 x double> poison, double %53, i64 0 - %74 = insertelement <2 x double> %73, double %9, i64 1 - %75 = fmul <2 x double> %71, %74 - %76 = insertelement <2 x double> poison, double %7, i64 0 - %77 = insertelement <2 x double> %76, double %1, i64 1 - %78 = shufflevector <2 x double> %58, <2 x double> %71, <2 x i32> - %79 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %77, <2 x double> %78, <2 x double> %75) - %80 = insertelement <2 x double> poison, double %neg112, i64 0 - %81 = insertelement <2 x double> %80, double %12, i64 1 - %82 = shufflevector <2 x double> %60, <2 x double> %71, <2 x i32> - %83 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %81, <2 x double> %82, <2 x double> %79) + %55 = fneg double %2 + %56 = shufflevector <2 x double> %18, <2 x double> poison, <2 x i32> + %57 = shufflevector <2 x double> %56, <2 x double> %24, <2 x i32> + %58 = fmul <2 x double> %57, %51 + %59 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %36, <2 x double> %24, <2 x double> %58) + %60 = extractelement <2 x double> %59, i64 0 + %61 = shufflevector <2 x double> %59, <2 x double> poison, <2 x i32> + %62 = insertelement <2 x double> poison, double %13, i64 1 + %63 = insertelement <2 x double> %62, double %53, i64 0 + %64 = insertelement <2 x double> poison, double %2, i64 0 + %65 = insertelement <2 x double> %64, double %8, i64 1 + %66 = insertelement <2 x double> poison, double %11, i64 0 + %67 = insertelement <2 x double> %66, double %5, i64 1 + %68 = shufflevector <2 x double> %18, <2 x double> poison, <2 x i32> zeroinitializer + %69 = fmul <2 x double> %68, %51 + %70 = insertelement <2 x double> poison, double %23, i64 0 + %71 = shufflevector <2 x double> %70, <2 x double> poison, <2 x i32> zeroinitializer + %72 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %71, <2 x double> %24, <2 x double> %69) + %73 = extractelement <2 x double> %72, i64 0 + %74 = insertelement <2 x double> poison, double %54, i64 0 + %75 = insertelement <2 x double> %74, double %9, i64 1 + %76 = fmul <2 x double> %72, %75 + %77 = insertelement <2 x double> poison, double %7, i64 0 + %78 = insertelement <2 x double> %77, double %1, i64 1 + %79 = shufflevector <2 x double> %59, <2 x double> %72, <2 x i32> + %80 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %78, <2 x double> %79, <2 x double> %76) + %81 = insertelement <2 x double> poison, double %neg112, i64 0 + %82 = insertelement <2 x double> %81, double %12, i64 1 + %83 = shufflevector <2 x double> %61, <2 x double> %72, <2 x i32> + %84 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %82, <2 x double> %83, <2 x double> %80) %neg140 = fneg double %1 - %84 = insertelement <2 x double> %50, double %47, i64 0 - %85 = fmul <2 x double> %18, %84 - %86 = shufflevector <2 x double> %36, <2 x double> poison, <2 x i32> - %87 = insertelement <2 x double> %86, double %23, i64 0 - %88 = shufflevector <2 x double> %24, <2 x double> %18, <2 x i32> - %89 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %87, <2 x double> %88, <2 x double> %85) - %90 = extractelement <2 x double> %89, i64 0 - %neg121 = fmul double %90, %52 - %91 = shufflevector <2 x double> %60, <2 x double> %89, <2 x i32> - %92 = fmul <2 x double> %91, %62 - %93 = shufflevector <2 x double> %58, <2 x double> %91, <2 x i32> - %94 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %64, <2 x double> %93, <2 x double> %92) - %95 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %66, <2 x double> %58, <2 x double> %94) - %96 = tail call double @llvm.fmuladd.f64(double %2, double %72, double %neg121) - %97 = tail call double @llvm.fmuladd.f64(double %neg112, double %59, double %96) - %98 = shufflevector <2 x double> %71, <2 x double> poison, <2 x i32> - %99 = shufflevector <2 x double> %98, <2 x double> %89, <2 x i32> - %100 = insertelement <2 x double> %61, double %54, i64 0 - %101 = fmul <2 x double> %99, %100 - %102 = insertelement <2 x double> poison, double %4, i64 0 - %103 = insertelement <2 x double> %102, double %3, i64 1 - %104 = shufflevector <2 x double> %71, <2 x double> %89, <2 x i32> - %105 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %103, <2 x double> %104, <2 x double> %101) - %106 = insertelement <2 x double> %65, double %neg140, i64 1 - %107 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %106, <2 x double> %89, <2 x double> %105) - %neg149 = fmul double %15, %51 - %108 = tail call double @llvm.fmuladd.f64(double %39, double %16, double %neg149) - %109 = tail call double @llvm.fmuladd.f64(double %47, double %17, double %108) - %110 = extractelement <2 x double> %50, i64 0 - %neg155 = fmul double %14, %110 - %111 = tail call double @llvm.fmuladd.f64(double %23, double %17, double %neg155) - %112 = tail call double @llvm.fmuladd.f64(double %41, double %10, double %111) - %neg160 = fmul double %6, %51 - %113 = tail call double @llvm.fmuladd.f64(double %37, double %14, double %neg160) + %85 = insertelement <2 x double> %51, double %48, i64 0 + %86 = fmul <2 x double> %18, %85 + %87 = shufflevector <2 x double> %36, <2 x double> poison, <2 x i32> + %88 = insertelement <2 x double> %87, double %23, i64 0 + %89 = shufflevector <2 x double> %24, <2 x double> %18, <2 x i32> + %90 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %88, <2 x double> %89, <2 x double> %86) + %91 = extractelement <2 x double> %90, i64 0 + %neg121 = fmul double %91, %53 + %92 = shufflevector <2 x double> %61, <2 x double> %90, <2 x i32> + %93 = fmul <2 x double> %92, %63 + %94 = shufflevector <2 x double> %59, <2 x double> %92, <2 x i32> + %95 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %65, <2 x double> %94, <2 x double> %93) + %96 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %67, <2 x double> %59, <2 x double> %95) + %97 = tail call double @llvm.fmuladd.f64(double %2, double %73, double %neg121) + %98 = tail call double @llvm.fmuladd.f64(double %neg112, double %60, double %97) + %99 = shufflevector <2 x double> %72, <2 x double> poison, <2 x i32> + %100 = shufflevector <2 x double> %99, <2 x double> %90, <2 x i32> + %101 = insertelement <2 x double> %62, double %55, i64 0 + %102 = fmul <2 x double> %100, %101 + %103 = insertelement <2 x double> poison, double %4, i64 0 + %104 = insertelement <2 x double> %103, double %3, i64 1 + %105 = shufflevector <2 x double> %72, <2 x double> %90, <2 x i32> + %106 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %104, <2 x double> %105, <2 x double> %102) + %107 = insertelement <2 x double> %66, double %neg140, i64 1 + %108 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %107, <2 x double> %90, <2 x double> %106) + %neg149 = fmul double %15, %52 + %109 = tail call double @llvm.fmuladd.f64(double %39, double %16, double %neg149) + %110 = tail call double @llvm.fmuladd.f64(double %48, double %17, double %109) + %111 = extractelement <2 x double> %51, i64 0 + %neg155 = fmul double %14, %111 + %112 = tail call double @llvm.fmuladd.f64(double %23, double %17, double %neg155) + %113 = tail call double @llvm.fmuladd.f64(double %41, double %10, double %112) + %neg160 = fmul double %6, %52 + %114 = tail call double @llvm.fmuladd.f64(double %37, double %14, double %neg160) %neg162 = fneg double %23 - %114 = tail call double @llvm.fmuladd.f64(double %neg162, double %16, double %113) - %115 = insertelement <2 x double> %71, double %10, i64 1 - %116 = insertelement <2 x double> poison, double %5, i64 0 - %117 = insertelement <2 x double> %116, double %47, i64 1 - %118 = fmul <2 x double> %115, %117 - %119 = insertelement <2 x double> poison, double %1, i64 0 - %120 = insertelement <2 x double> %119, double %23, i64 1 - %121 = insertelement <2 x double> %58, double %15, i64 1 - %122 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %120, <2 x double> %121, <2 x double> %118) - %123 = insertelement <2 x double> poison, double %8, i64 0 - %124 = insertelement <2 x double> %123, double %6, i64 1 - %125 = shufflevector <2 x double> %89, <2 x double> %36, <2 x i32> - %126 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %124, <2 x double> %125, <2 x double> %122) - %127 = insertelement <4 x double> poison, double %div, i64 0 - %128 = shufflevector <4 x double> %127, <4 x double> poison, <4 x i32> zeroinitializer - %129 = insertelement <4 x double> poison, double %29, i64 0 - %130 = shufflevector <2 x double> %95, <2 x double> poison, <4 x i32> - %131 = shufflevector <4 x double> %129, <4 x double> %130, <4 x i32> - %132 = insertelement <4 x double> %131, double %109, i64 3 - %133 = fmul <4 x double> %128, %132 - %134 = fptrunc <4 x double> %133 to <4 x float> - store <4 x float> %134, ptr %inverse_out, align 4 + %115 = tail call double @llvm.fmuladd.f64(double %neg162, double %16, double %114) + %116 = insertelement <2 x double> %72, double %10, i64 1 + %117 = insertelement <2 x double> poison, double %5, i64 0 + %118 = insertelement <2 x double> %117, double %48, i64 1 + %119 = fmul <2 x double> %116, %118 + %120 = insertelement <2 x double> poison, double %1, i64 0 + %121 = insertelement <2 x double> %120, double %23, i64 1 + %122 = insertelement <2 x double> %59, double %15, i64 1 + %123 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %121, <2 x double> %122, <2 x double> %119) + %124 = insertelement <2 x double> poison, double %8, i64 0 + %125 = insertelement <2 x double> %124, double %6, i64 1 + %126 = shufflevector <2 x double> %90, <2 x double> %36, <2 x i32> + %127 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %125, <2 x double> %126, <2 x double> %123) + %128 = insertelement <4 x double> poison, double %div, i64 0 + %129 = shufflevector <4 x double> %128, <4 x double> poison, <4 x i32> zeroinitializer + %130 = insertelement <4 x double> poison, double %29, i64 0 + %131 = shufflevector <2 x double> %96, <2 x double> poison, <4 x i32> + %132 = shufflevector <4 x double> %130, <4 x double> %131, <4 x i32> + %133 = insertelement <4 x double> %132, double %110, i64 3 + %134 = fmul <4 x double> %129, %133 + %135 = fptrunc <4 x double> %134 to <4 x float> + store <4 x float> %135, ptr %inverse_out, align 4 %arrayidx181 = getelementptr inbounds i8, ptr %inverse_out, i64 16 - %135 = insertelement <4 x double> poison, double %32, i64 0 - %136 = shufflevector <2 x double> %83, <2 x double> poison, <4 x i32> - %137 = shufflevector <4 x double> %135, <4 x double> %136, <4 x i32> - %138 = insertelement <4 x double> %137, double %112, i64 3 - %139 = fmul <4 x double> %128, %138 - %140 = fptrunc <4 x double> %139 to <4 x float> - store <4 x float> %140, ptr %arrayidx181, align 4 + %136 = insertelement <4 x double> poison, double %32, i64 0 + %137 = shufflevector <2 x double> %84, <2 x double> poison, <4 x i32> + %138 = shufflevector <4 x double> %136, <4 x double> %137, <4 x i32> + %139 = insertelement <4 x double> %138, double %113, i64 3 + %140 = fmul <4 x double> %129, %139 + %141 = fptrunc <4 x double> %140 to <4 x float> + store <4 x float> %141, ptr %arrayidx181, align 4 %arrayidx193 = getelementptr inbounds i8, ptr %inverse_out, i64 32 - %141 = insertelement <4 x double> poison, double %33, i64 0 - %142 = shufflevector <2 x double> %107, <2 x double> poison, <4 x i32> - %143 = shufflevector <4 x double> %141, <4 x double> %142, <4 x i32> - %144 = insertelement <4 x double> %143, double %114, i64 3 - %145 = fmul <4 x double> %128, %144 - %146 = fptrunc <4 x double> %145 to <4 x float> - store <4 x float> %146, ptr %arrayidx193, align 4 + %142 = insertelement <4 x double> poison, double %33, i64 0 + %143 = shufflevector <2 x double> %108, <2 x double> poison, <4 x i32> + %144 = shufflevector <4 x double> %142, <4 x double> %143, <4 x i32> + %145 = insertelement <4 x double> %144, double %115, i64 3 + %146 = fmul <4 x double> %129, %145 + %147 = fptrunc <4 x double> %146 to <4 x float> + store <4 x float> %147, ptr %arrayidx193, align 4 %arrayidx205 = getelementptr inbounds i8, ptr %inverse_out, i64 48 - %147 = insertelement <4 x double> poison, double %35, i64 0 - %148 = insertelement <4 x double> %147, double %97, i64 1 - %149 = shufflevector <2 x double> %126, <2 x double> poison, <4 x i32> - %150 = shufflevector <4 x double> %148, <4 x double> %149, <4 x i32> - %151 = fmul <4 x double> %128, %150 - %152 = fptrunc <4 x double> %151 to <4 x float> - store <4 x float> %152, ptr %arrayidx205, align 4 + %148 = insertelement <4 x double> poison, double %35, i64 0 + %149 = insertelement <4 x double> %148, double %98, i64 1 + %150 = shufflevector <2 x double> %127, <2 x double> poison, <4 x i32> + %151 = shufflevector <4 x double> %149, <4 x double> %150, <4 x i32> + %152 = fmul <4 x double> %129, %151 + %153 = fptrunc <4 x double> %152 to <4 x float> + store <4 x float> %153, ptr %arrayidx205, align 4 br label %return return: ; preds = %_ZN19OpenColorIO_v2_4dev19IsScalarEqualToZeroIfEEbT_.exit, %if.end diff --git a/bench/oiio/optimized/maketexture.cpp.ll b/bench/oiio/optimized/maketexture.cpp.ll index e0e71375b37..1b3f5b229ac 100644 --- a/bench/oiio/optimized/maketexture.cpp.ll +++ b/bench/oiio/optimized/maketexture.cpp.ll @@ -24950,7 +24950,7 @@ cond.true: ; preds = %if.end43 %conv51 = fptrunc x86_fp80 %value to float %15 = bitcast float %conv51 to i32 %16 = and i32 %15, 8388607 - %and.i = zext nneg i32 %16 to i64 + %and.i = zext i32 %15 to i64 %cmp7.not.i = icmp ult i32 %15, 8388608 %shr.i = lshr i32 %15, 23 %add.i35 = or disjoint i64 %and.i, 8388608 @@ -41496,7 +41496,7 @@ cond.true: ; preds = %if.then74 %conv80 = fptrunc double %value to float %57 = bitcast float %conv80 to i32 %58 = and i32 %57, 8388607 - %and.i185 = zext nneg i32 %58 to i64 + %and.i185 = zext i32 %57 to i64 %cmp7.not.i = icmp ult i32 %57, 8388608 %shr.i187 = lshr i32 %57, 23 %add.i188 = or disjoint i64 %and.i185, 8388608 @@ -61329,9 +61329,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) #24 %call9 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %8) #24 @@ -61553,9 +61553,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) #24 %call9 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %8) #24 @@ -61784,9 +61784,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) #24 %call9 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %8) #24 @@ -62070,9 +62070,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) #24 %call9 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %8) #24 @@ -62301,9 +62301,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) #24 %call9 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %8) #24 @@ -62532,9 +62532,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) #24 %call9 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %8) #24 @@ -62763,9 +62763,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) #24 %call9 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %8) #24 @@ -62990,9 +62990,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) #24 %call9 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %8) #24 @@ -63217,9 +63217,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) #24 %call9 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %8) #24 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/openssl/optimized/sslapitest-bin-sslapitest.ll b/bench/openssl/optimized/sslapitest-bin-sslapitest.ll index f0c8fd4a087..023e16a4ff9 100644 --- a/bench/openssl/optimized/sslapitest-bin-sslapitest.ll +++ b/bench/openssl/optimized/sslapitest-bin-sslapitest.ll @@ -3430,22 +3430,23 @@ entry: store ptr null, ptr %sctx, align 8 store ptr null, ptr %clientssl, align 8 store ptr null, ptr %serverssl, align 8 - %conv = sext i32 %idx to i64 - %call = tail call i32 @test_size_t_le(ptr noundef nonnull @.str.14, i32 noundef 3138, ptr noundef nonnull @.str.281, ptr noundef nonnull @.str.282, i64 noundef %conv, i64 noundef 28) #23 + %0 = sext i32 %idx to i64 + %call = tail call i32 @test_size_t_le(ptr noundef nonnull @.str.14, i32 noundef 3138, ptr noundef nonnull @.str.281, ptr noundef nonnull @.str.282, i64 noundef %0, i64 noundef 28) #23 %tobool.not = icmp eq i32 %call, 0 br i1 %tobool.not, label %return, label %if.end if.end: ; preds = %entry + %conv = zext nneg i32 %idx to i64 %cmp = icmp ult i32 %idx, 14 - %sub = add nsw i64 %conv, -14 + %sub = add nsw i64 %0, -14 %conv.pn = select i1 %cmp, i64 %conv, i64 %sub %cond = getelementptr inbounds [14 x %struct.sigalgs_list], ptr @testsigalgs, i64 0, i64 %conv.pn - %0 = load ptr, ptr @libctx, align 8 + %1 = load ptr, ptr @libctx, align 8 %call6 = tail call ptr @TLS_server_method() #23 %call7 = tail call ptr @TLS_client_method() #23 - %1 = load ptr, ptr @cert, align 8 - %2 = load ptr, ptr @privkey, align 8 - %call8 = call i32 @create_ssl_ctx_pair(ptr noundef %0, ptr noundef %call6, ptr noundef %call7, i32 noundef 769, i32 noundef 0, ptr noundef nonnull %sctx, ptr noundef nonnull %cctx, ptr noundef %1, ptr noundef %2) #23 + %2 = load ptr, ptr @cert, align 8 + %3 = load ptr, ptr @privkey, align 8 + %call8 = call i32 @create_ssl_ctx_pair(ptr noundef %1, ptr noundef %call6, ptr noundef %call7, i32 noundef 769, i32 noundef 0, ptr noundef nonnull %sctx, ptr noundef nonnull %cctx, ptr noundef %2, ptr noundef %3) #23 %cmp9 = icmp ne i32 %call8, 0 %conv10 = zext i1 %cmp9 to i32 %call11 = call i32 @test_true(ptr noundef nonnull @.str.14, i32 noundef 3147, ptr noundef nonnull @.str.197, i32 noundef %conv10) #23 @@ -3453,35 +3454,35 @@ if.end: ; preds = %entry br i1 %tobool12.not, label %return, label %if.end14 if.end14: ; preds = %if.end - %3 = load ptr, ptr %cctx, align 8 - %call15 = call i64 @SSL_CTX_ctrl(ptr noundef %3, i32 noundef 124, i64 noundef 771, ptr noundef null) #23 + %4 = load ptr, ptr %cctx, align 8 + %call15 = call i64 @SSL_CTX_ctrl(ptr noundef %4, i32 noundef 124, i64 noundef 771, ptr noundef null) #23 br i1 %cmp, label %if.then17, label %if.end38 if.then17: ; preds = %if.end14 - %4 = load ptr, ptr %cond, align 16 - %cmp18.not = icmp eq ptr %4, null - %5 = load ptr, ptr %cctx, align 8 + %5 = load ptr, ptr %cond, align 16 + %cmp18.not = icmp eq ptr %5, null + %6 = load ptr, ptr %cctx, align 8 br i1 %cmp18.not, label %if.else, label %if.then20 if.then20: ; preds = %if.then17 %listlen = getelementptr inbounds i8, ptr %cond, i64 8 - %6 = load i64, ptr %listlen, align 8 - %call22 = call i64 @SSL_CTX_ctrl(ptr noundef %5, i32 noundef 97, i64 noundef %6, ptr noundef nonnull %4) #23 + %7 = load i64, ptr %listlen, align 8 + %call22 = call i64 @SSL_CTX_ctrl(ptr noundef %6, i32 noundef 97, i64 noundef %7, ptr noundef nonnull %5) #23 br label %if.end26 if.else: ; preds = %if.then17 %liststr = getelementptr inbounds i8, ptr %cond, i64 16 - %7 = load ptr, ptr %liststr, align 16 - %call24 = call i64 @SSL_CTX_ctrl(ptr noundef %5, i32 noundef 98, i64 noundef 0, ptr noundef %7) #23 + %8 = load ptr, ptr %liststr, align 16 + %call24 = call i64 @SSL_CTX_ctrl(ptr noundef %6, i32 noundef 98, i64 noundef 0, ptr noundef %8) #23 br label %if.end26 if.end26: ; preds = %if.else, %if.then20 %ret.0.in = phi i64 [ %call22, %if.then20 ], [ %call24, %if.else ] - %8 = and i64 %ret.0.in, 4294967295 - %tobool27.not = icmp eq i64 %8, 0 + %9 = and i64 %ret.0.in, 4294967295 + %tobool27.not = icmp eq i64 %9, 0 %valid = getelementptr inbounds i8, ptr %cond, i64 24 - %9 = load i32, ptr %valid, align 8 - %tobool29.not = icmp eq i32 %9, 0 + %10 = load i32, ptr %valid, align 8 + %tobool29.not = icmp eq i32 %10, 0 br i1 %tobool27.not, label %if.then28, label %if.end33 if.then28: ; preds = %if.end26 @@ -3499,9 +3500,9 @@ if.then36: ; preds = %if.end33 br label %end if.end38: ; preds = %if.end33, %if.end14 - %10 = load ptr, ptr %sctx, align 8 - %11 = load ptr, ptr %cctx, align 8 - %call39 = call i32 @create_ssl_objects(ptr noundef %10, ptr noundef %11, ptr noundef nonnull %serverssl, ptr noundef nonnull %clientssl, ptr noundef null, ptr noundef null) #23 + %11 = load ptr, ptr %sctx, align 8 + %12 = load ptr, ptr %cctx, align 8 + %call39 = call i32 @create_ssl_objects(ptr noundef %11, ptr noundef %12, ptr noundef nonnull %serverssl, ptr noundef nonnull %clientssl, ptr noundef null, ptr noundef null) #23 %cmp40 = icmp ne i32 %call39, 0 %conv41 = zext i1 %cmp40 to i32 %call42 = call i32 @test_true(ptr noundef nonnull @.str.14, i32 noundef 3174, ptr noundef nonnull @.str.148, i32 noundef %conv41) #23 @@ -3512,30 +3513,30 @@ if.end45: ; preds = %if.end38 br i1 %cmp, label %if.end74, label %if.then47 if.then47: ; preds = %if.end45 - %12 = load ptr, ptr %cond, align 16 - %cmp50.not = icmp eq ptr %12, null - %13 = load ptr, ptr %clientssl, align 8 + %13 = load ptr, ptr %cond, align 16 + %cmp50.not = icmp eq ptr %13, null + %14 = load ptr, ptr %clientssl, align 8 br i1 %cmp50.not, label %if.else57, label %if.then52 if.then52: ; preds = %if.then47 %listlen53 = getelementptr inbounds i8, ptr %cond, i64 8 - %14 = load i64, ptr %listlen53, align 8 - %call55 = call i64 @SSL_ctrl(ptr noundef %13, i32 noundef 97, i64 noundef %14, ptr noundef nonnull %12) #23 + %15 = load i64, ptr %listlen53, align 8 + %call55 = call i64 @SSL_ctrl(ptr noundef %14, i32 noundef 97, i64 noundef %15, ptr noundef nonnull %13) #23 br label %if.end61 if.else57: ; preds = %if.then47 %liststr58 = getelementptr inbounds i8, ptr %cond, i64 16 - %15 = load ptr, ptr %liststr58, align 16 - %call59 = call i64 @SSL_ctrl(ptr noundef %13, i32 noundef 98, i64 noundef 0, ptr noundef %15) #23 + %16 = load ptr, ptr %liststr58, align 16 + %call59 = call i64 @SSL_ctrl(ptr noundef %14, i32 noundef 98, i64 noundef 0, ptr noundef %16) #23 br label %if.end61 if.end61: ; preds = %if.else57, %if.then52 %ret48.0.in = phi i64 [ %call55, %if.then52 ], [ %call59, %if.else57 ] - %16 = and i64 %ret48.0.in, 4294967295 - %tobool62.not = icmp eq i64 %16, 0 + %17 = and i64 %ret48.0.in, 4294967295 + %tobool62.not = icmp eq i64 %17, 0 %valid64 = getelementptr inbounds i8, ptr %cond, i64 24 - %17 = load i32, ptr %valid64, align 8 - %tobool65.not = icmp eq i32 %17, 0 + %18 = load i32, ptr %valid64, align 8 + %tobool65.not = icmp eq i32 %18, 0 br i1 %tobool62.not, label %if.then63, label %if.end69 if.then63: ; preds = %if.end61 @@ -3549,26 +3550,26 @@ if.end69: ; preds = %if.end61 br i1 %tobool65.not, label %end, label %if.end74 if.end74: ; preds = %if.end69, %if.end45 - %18 = load ptr, ptr %serverssl, align 8 - %19 = load ptr, ptr %clientssl, align 8 - %call75 = call i32 @create_ssl_connection(ptr noundef %18, ptr noundef %19, i32 noundef 0) #23 + %19 = load ptr, ptr %serverssl, align 8 + %20 = load ptr, ptr %clientssl, align 8 + %call75 = call i32 @create_ssl_connection(ptr noundef %19, ptr noundef %20, i32 noundef 0) #23 %connsuccess = getelementptr inbounds i8, ptr %cond, i64 28 - %20 = load i32, ptr %connsuccess, align 4 - %call76 = call i32 @test_int_eq(ptr noundef nonnull @.str.14, i32 noundef 3197, ptr noundef nonnull @.str.149, ptr noundef nonnull @.str.286, i32 noundef %call75, i32 noundef %20) #23 + %21 = load i32, ptr %connsuccess, align 4 + %call76 = call i32 @test_int_eq(ptr noundef nonnull @.str.14, i32 noundef 3197, ptr noundef nonnull @.str.149, ptr noundef nonnull @.str.286, i32 noundef %call75, i32 noundef %21) #23 %tobool77.not = icmp ne i32 %call76, 0 %spec.select = zext i1 %tobool77.not to i32 br label %end end: ; preds = %if.end74, %if.then63, %if.then28, %if.end69, %if.then66, %if.end38, %if.then30, %if.then36 %testresult.0 = phi i32 [ 0, %if.end69 ], [ 0, %if.then66 ], [ 0, %if.end38 ], [ 0, %if.then36 ], [ 0, %if.then30 ], [ 1, %if.then28 ], [ 1, %if.then63 ], [ %spec.select, %if.end74 ] - %21 = load ptr, ptr %serverssl, align 8 - call void @SSL_free(ptr noundef %21) #23 - %22 = load ptr, ptr %clientssl, align 8 + %22 = load ptr, ptr %serverssl, align 8 call void @SSL_free(ptr noundef %22) #23 - %23 = load ptr, ptr %sctx, align 8 - call void @SSL_CTX_free(ptr noundef %23) #23 - %24 = load ptr, ptr %cctx, align 8 + %23 = load ptr, ptr %clientssl, align 8 + call void @SSL_free(ptr noundef %23) #23 + %24 = load ptr, ptr %sctx, align 8 call void @SSL_CTX_free(ptr noundef %24) #23 + %25 = load ptr, ptr %cctx, align 8 + call void @SSL_CTX_free(ptr noundef %25) #23 br label %return return: ; preds = %if.end, %entry, %end diff --git a/bench/protobuf/optimized/dynamic_message.cc.ll b/bench/protobuf/optimized/dynamic_message.cc.ll index d40b4285f8d..37d0654090e 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) #21 %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) #21 %cmp37151 = icmp sgt i32 %31, 0 br i1 %cmp37151, 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) #22 + tail call void @_ZdaPv(ptr noundef nonnull %35) #22 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.0155, 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.0155, 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.0155, %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 - %cmp79156 = icmp sgt i32 %42, 0 + %44 = getelementptr inbounds i8, ptr %call12, i64 12 + store i32 %.sink, ptr %44, align 4 + %cmp79156 = icmp sgt i32 %40, 0 br i1 %cmp79156, 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 ], [ %82, %for.inc92 ] - %47 = load i32, ptr %real_oneof_decl_count_.i, align 4 - %cmp98161 = icmp sgt i32 %47, 0 + %.lcssa149 = phi i32 [ %40, %if.end75 ], [ %80, %for.inc92 ] + %45 = load i32, ptr %real_oneof_decl_count_.i, align 4 + %cmp98161 = icmp sgt i32 %45, 0 br i1 %cmp98161, 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 ], [ %82, %for.inc92 ] + %47 = phi i32 [ %40, %for.body80.lr.ph ], [ %80, %for.inc92 ] %indvars.iv173 = phi i64 [ 0, %for.body80.lr.ph ], [ %indvars.iv.next174, %for.inc92 ] %size.3158 = 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.iv173 - %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.iv173 + %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,59 +1030,59 @@ 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 i32 %76, -1 - %77 = icmp ult i32 %switch.tableidx, 10 - br i1 %77, label %switch.lookup, label %if.end.i + %74 = load i32, ptr %arrayidx.i19.i, align 4 + %switch.tableidx = add i32 %74, -1 + %75 = icmp ult i32 %switch.tableidx, 10 + br i1 %75, label %switch.lookup, label %if.end.i if.end.i: ; preds = %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit23.i, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i br label %_ZN6google8protobuf12_GLOBAL__N_114FieldSpaceUsedEPKNS0_15FieldDescriptorE.exit switch.lookup: ; preds = %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit23.i - %78 = zext nneg i32 %switch.tableidx to i64 - %switch.gep = getelementptr inbounds [10 x i32], ptr @switch.table._ZN6google8protobuf21DynamicMessageFactory18GetPrototypeNoLockEPKNS0_10DescriptorE.2, i64 0, i64 %78 + %76 = zext nneg i32 %switch.tableidx to i64 + %switch.gep = getelementptr inbounds [10 x i32], ptr @switch.table._ZN6google8protobuf21DynamicMessageFactory18GetPrototypeNoLockEPKNS0_10DescriptorE.2, i64 0, i64 %76 %switch.load = load i32, ptr %switch.gep, align 4 - %79 = zext nneg i32 %switch.tableidx to i64 - %switch.gep199 = getelementptr inbounds [10 x i32], ptr @switch.table._ZN6google8protobuf21DynamicMessageFactory18GetPrototypeNoLockEPKNS0_10DescriptorE.2, i64 0, i64 %79 + %77 = zext nneg i32 %switch.tableidx to i64 + %switch.gep199 = getelementptr inbounds [10 x i32], ptr @switch.table._ZN6google8protobuf21DynamicMessageFactory18GetPrototypeNoLockEPKNS0_10DescriptorE.2, i64 0, i64 %77 %switch.load200 = load i32, ptr %switch.gep199, align 4 br label %_ZN6google8protobuf12_GLOBAL__N_114FieldSpaceUsedEPKNS0_15FieldDescriptorE.exit _ZN6google8protobuf12_GLOBAL__N_114FieldSpaceUsedEPKNS0_15FieldDescriptorE.exit: ; preds = %switch.lookup, %_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, %if.end.i %retval.0.i148 = phi i32 [ 0, %if.end.i ], [ %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, %switch.lookup ] - %80 = phi i32 [ 0, %if.end.i ], [ 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.load200, %switch.lookup ] + %78 = phi i32 [ 0, %if.end.i ], [ 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.load200, %switch.lookup ] %sub.i.i = add i32 %size.3158, -1 - %add.i.i = add i32 %sub.i.i, %80 - %81 = srem i32 %add.i.i, %80 - %mul.i = sub nsw i32 %add.i.i, %81 + %add.i.i = add i32 %sub.i.i, %78 + %79 = srem i32 %add.i.i, %78 + %mul.i = sub nsw i32 %add.i.i, %79 %arrayidx89 = getelementptr inbounds i32, ptr %call20, i64 %indvars.iv173 store i32 %mul.i, ptr %arrayidx89, align 4 %add90 = add nsw i32 %mul.i, %retval.0.i148 @@ -1092,19 +1090,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 - %82 = phi i32 [ %49, %_ZN6google8protobuf12_GLOBAL__N_111InRealOneofEPKNS0_15FieldDescriptorE.exit ], [ %.pre188, %_ZN6google8protobuf12_GLOBAL__N_114FieldSpaceUsedEPKNS0_15FieldDescriptorE.exit ], [ %49, %land.lhs.true.i.i ] + %80 = phi i32 [ %47, %_ZN6google8protobuf12_GLOBAL__N_111InRealOneofEPKNS0_15FieldDescriptorE.exit ], [ %.pre188, %_ZN6google8protobuf12_GLOBAL__N_114FieldSpaceUsedEPKNS0_15FieldDescriptorE.exit ], [ %47, %land.lhs.true.i.i ] %size.4 = phi i32 [ %size.3158, %_ZN6google8protobuf12_GLOBAL__N_111InRealOneofEPKNS0_15FieldDescriptorE.exit ], [ %add90, %_ZN6google8protobuf12_GLOBAL__N_114FieldSpaceUsedEPKNS0_15FieldDescriptorE.exit ], [ %size.3158, %land.lhs.true.i.i ] %indvars.iv.next174 = add nuw nsw i64 %indvars.iv173, 1 - %83 = sext i32 %82 to i64 - %cmp79 = icmp slt i64 %indvars.iv.next174, %83 + %81 = sext i32 %80 to i64 + %cmp79 = icmp slt i64 %indvars.iv.next174, %81 br i1 %cmp79, label %for.body80, label %for.cond96.preheader, !llvm.loop !15 for.body99: ; preds = %for.body99.preheader, %for.body99 %indvars.iv176 = phi i64 [ 0, %for.body99.preheader ], [ %indvars.iv.next177, %for.body99 ] %size.5163 = phi i32 [ %size.3.lcssa, %for.body99.preheader ], [ %add105, %for.body99 ] %add.i.i100 = add i32 %size.5163, 7 - %84 = srem i32 %add.i.i100, 8 - %mul.i101 = sub nsw i32 %add.i.i100, %84 + %82 = srem i32 %add.i.i100, 8 + %mul.i101 = sub nsw i32 %add.i.i100, %82 %gep = getelementptr i32, ptr %invariant.gep, i64 %indvars.iv176 store i32 %mul.i101, ptr %gep, align 4 %add105 = add nsw i32 %mul.i101, 8 @@ -1120,16 +1118,16 @@ for.end108: ; preds = %for.body99 for.cond116.preheader.lr.ph: ; preds = %for.end108 %oneof_decls_.i.i = getelementptr inbounds i8, ptr %type, i64 64 - %85 = load ptr, ptr %oneof_decls_.i.i, align 8 - %wide.trip.count186 = zext nneg i32 %47 to i64 + %83 = load ptr, ptr %oneof_decls_.i.i, align 8 + %wide.trip.count186 = zext nneg i32 %45 to i64 br label %for.cond116.preheader for.cond116.preheader: ; preds = %for.cond116.preheader.lr.ph, %for.inc129 %indvars.iv183 = phi i64 [ 0, %for.cond116.preheader.lr.ph ], [ %indvars.iv.next184, %for.inc129 ] - %add.ptr.i.i = getelementptr inbounds %"class.google::protobuf::OneofDescriptor", ptr %85, i64 %indvars.iv183 + %add.ptr.i.i = getelementptr inbounds %"class.google::protobuf::OneofDescriptor", ptr %83, i64 %indvars.iv183 %field_count_.i104 = getelementptr inbounds i8, ptr %add.ptr.i.i, i64 4 - %86 = load i32, ptr %field_count_.i104, align 4 - %cmp119166 = icmp sgt i32 %86, 0 + %84 = load i32, ptr %field_count_.i104, align 4 + %cmp119166 = icmp sgt i32 %84, 0 br i1 %cmp119166, label %for.body120.lr.ph, label %for.inc129 for.body120.lr.ph: ; preds = %for.cond116.preheader @@ -1138,51 +1136,51 @@ for.body120.lr.ph: ; preds = %for.cond116.prehead for.body120: ; preds = %for.body120.lr.ph, %_ZNK6google8protobuf15FieldDescriptor5indexEv.exit %indvars.iv180 = phi i64 [ 0, %for.body120.lr.ph ], [ %indvars.iv.next181, %_ZNK6google8protobuf15FieldDescriptor5indexEv.exit ] - %87 = load ptr, ptr %fields_.i108, align 8 - %add.ptr.i110 = getelementptr inbounds %"class.google::protobuf::FieldDescriptor", ptr %87, i64 %indvars.iv180 + %85 = load ptr, ptr %fields_.i108, align 8 + %add.ptr.i110 = getelementptr inbounds %"class.google::protobuf::FieldDescriptor", ptr %85, i64 %indvars.iv180 %is_extension_.i = getelementptr inbounds i8, ptr %add.ptr.i110, i64 1 %bf.load.i = load i8, ptr %is_extension_.i, align 1 - %88 = and i8 %bf.load.i, 8 - %bf.cast.not.i = icmp eq i8 %88, 0 + %86 = and i8 %bf.load.i, 8 + %bf.cast.not.i = icmp eq i8 %86, 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 - %89 = load ptr, ptr %containing_type_.i.i, align 8 - %fields_.i114 = getelementptr inbounds i8, ptr %89, i64 56 + %87 = load ptr, ptr %containing_type_.i.i, align 8 + %fields_.i114 = getelementptr inbounds i8, ptr %87, 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 - %90 = load ptr, ptr %scope_.i.i, align 8 - %cmp.not.i = icmp eq ptr %90, null + %88 = load ptr, ptr %scope_.i.i, align 8 + %cmp.not.i = icmp eq ptr %88, 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 %90, i64 96 + %extensions_.i = getelementptr inbounds i8, ptr %88, 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 - %91 = load ptr, ptr %file_.i112, align 8 - %extensions_11.i = getelementptr inbounds i8, ptr %91, i64 120 + %89 = load ptr, ptr %file_.i112, align 8 + %extensions_11.i = getelementptr inbounds i8, ptr %89, i64 120 br label %_ZNK6google8protobuf15FieldDescriptor5indexEv.exit _ZNK6google8protobuf15FieldDescriptor5indexEv.exit: ; preds = %if.then.i113, %_ZNK6google8protobuf15FieldDescriptor15extension_scopeEv.exit7.i, %if.else10.i %extensions_11.sink.i = phi ptr [ %extensions_11.i, %if.else10.i ], [ %extensions_.i, %_ZNK6google8protobuf15FieldDescriptor15extension_scopeEv.exit7.i ], [ %fields_.i114, %if.then.i113 ] - %92 = load ptr, ptr %extensions_11.sink.i, align 8 + %90 = load ptr, ptr %extensions_11.sink.i, align 8 %sub.ptr.lhs.cast12.i = ptrtoint ptr %add.ptr.i110 to i64 - %sub.ptr.rhs.cast13.i = ptrtoint ptr %92 to i64 + %sub.ptr.rhs.cast13.i = ptrtoint ptr %90 to i64 %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 - %93 = ashr exact i64 %sext, 30 - %arrayidx125 = getelementptr inbounds i8, ptr %call20, i64 %93 + %91 = ashr exact i64 %sext, 30 + %arrayidx125 = getelementptr inbounds i8, ptr %call20, i64 %91 store i32 1073741824, ptr %arrayidx125, align 4 %indvars.iv.next181 = add nuw nsw i64 %indvars.iv180, 1 - %94 = load i32, ptr %field_count_.i104, align 4 - %95 = sext i32 %94 to i64 - %cmp119 = icmp slt i64 %indvars.iv.next181, %95 + %92 = load i32, ptr %field_count_.i104, align 4 + %93 = sext i32 %92 to i64 + %cmp119 = icmp slt i64 %indvars.iv.next181, %93 br i1 %cmp119, label %for.body120, label %for.inc129, !llvm.loop !17 for.inc129: ; preds = %_ZNK6google8protobuf15FieldDescriptor5indexEv.exit, %for.cond116.preheader @@ -1206,27 +1204,27 @@ 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) - %96 = load ptr, ptr %prototype.i, align 8 - store ptr %96, ptr %schema, align 8 + %94 = load ptr, ptr %prototype.i, align 8 + store ptr %94, ptr %schema, align 8 %offsets_ = getelementptr inbounds i8, ptr %schema, i64 8 - %97 = load <2 x ptr>, ptr %offsets.i, align 8 - store <2 x ptr> %97, ptr %offsets_, align 8 + %95 = load <2 x ptr>, ptr %offsets.i, align 8 + store <2 x ptr> %95, ptr %offsets_, align 8 %has_bits_offset_ = getelementptr inbounds i8, ptr %schema, i64 24 - %98 = load i32, ptr %has_bits_offset, align 4 - store i32 %98, ptr %has_bits_offset_, align 8 + %96 = load i32, ptr %has_bits_offset, align 4 + store i32 %96, 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 %oneof_case_offset143 = getelementptr inbounds i8, ptr %call12, i64 8 - %99 = load <2 x i32>, ptr %oneof_case_offset143, align 8 - %100 = shufflevector <2 x i32> %99, <2 x i32> poison, <2 x i32> - store <2 x i32> %100, ptr %extensions_offset_, align 8 + %97 = load <2 x i32>, ptr %oneof_case_offset143, align 8 + %98 = shufflevector <2 x i32> %97, <2 x i32> poison, <2 x i32> + store <2 x i32> %98, ptr %extensions_offset_, align 8 %object_size_ = getelementptr inbounds i8, ptr %schema, i64 40 - %101 = load i32, ptr %call12, align 8 - store i32 %101, ptr %object_size_, align 8 + %99 = load i32, ptr %call12, align 8 + store i32 %99, ptr %object_size_, align 8 %weak_field_map_offset_ = getelementptr inbounds i8, ptr %schema, i64 44 - %102 = load i32, ptr %weak_field_map_offset194, align 8 - store i32 %102, ptr %weak_field_map_offset_, align 4 + %100 = load i32, ptr %weak_field_map_offset194, align 8 + store i32 %100, 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 @@ -1236,21 +1234,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) #21 - %103 = load ptr, ptr %type13, align 8 - %104 = load ptr, ptr %pool, align 8 - invoke void @_ZN6google8protobuf10ReflectionC1EPKNS0_10DescriptorERKNS0_8internal16ReflectionSchemaEPKNS0_14DescriptorPoolEPNS0_14MessageFactoryE(ptr noundef nonnull align 8 dereferenceable(112) %call146, ptr noundef %103, ptr noundef nonnull align 8 dereferenceable(72) %schema, ptr noundef %104, ptr noundef nonnull %this) + %101 = load ptr, ptr %type13, align 8 + %102 = load ptr, ptr %pool, align 8 + invoke void @_ZN6google8protobuf10ReflectionC1EPKNS0_10DescriptorERKNS0_8internal16ReflectionSchemaEPKNS0_14DescriptorPoolEPNS0_14MessageFactoryE(ptr noundef nonnull align 8 dereferenceable(112) %call146, ptr noundef %101, ptr noundef nonnull align 8 dereferenceable(72) %schema, ptr noundef %102, ptr noundef nonnull %this) to label %invoke.cont150 unwind label %lpad149 invoke.cont150: ; preds = %for.end131 %reflection = getelementptr inbounds i8, ptr %call12, i64 56 - %105 = load ptr, ptr %reflection, align 8 + %103 = load ptr, ptr %reflection, align 8 store ptr %call146, ptr %reflection, align 8 - %tobool.not.i.i115 = icmp eq ptr %105, null + %tobool.not.i.i115 = icmp eq ptr %103, 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) %105) #24 - call void @_ZdlPv(ptr noundef nonnull %105) #22 + call void @_ZN6google8protobuf10ReflectionD1Ev(ptr noundef nonnull align 8 dereferenceable(112) %103) #24 + call void @_ZdlPv(ptr noundef nonnull %103) #22 br label %_ZNSt10unique_ptrIKN6google8protobuf10ReflectionESt14default_deleteIS3_EE5resetEPS3_.exit _ZNSt10unique_ptrIKN6google8protobuf10ReflectionESt14default_deleteIS3_EE5resetEPS3_.exit: ; preds = %invoke.cont150, %_ZNKSt14default_deleteIKN6google8protobuf10ReflectionEEclEPS3_.exit.i.i @@ -1258,10 +1256,10 @@ _ZNSt10unique_ptrIKN6google8protobuf10ReflectionESt14default_deleteIS3_EE5resetE br label %return lpad149: ; preds = %for.end131 - %106 = landingpad { ptr, i32 } + %104 = landingpad { ptr, i32 } cleanup call void @_ZdlPv(ptr noundef nonnull %call146) #22 - resume { ptr, i32 } %106 + resume { ptr, i32 } %104 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 485e467975a..591d5143c79 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) #13 - %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) #13 + %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) #13 - %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) #13 - %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) #13 + %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) #13 - %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.1 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 i64 %host_last.0, %host_start.0 - %add91 = add i64 %reass.sub99, 1 + %reass.sub98 = sub 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.2 = phi i32 [ %inc96, %if.then87 ], [ %nranges.1, %if.end85 ] - %cmp10097 = icmp sgt i32 %nranges.2, 0 - br i1 %cmp10097, label %for.body101.preheader, label %for.end116 + %cmp10096 = icmp sgt i32 %nranges.2, 0 + br i1 %cmp10096, label %for.body101.preheader, label %for.end116 for.body101.preheader: ; preds = %if.end98.thread, %if.end98 - %nranges.2104 = phi i32 [ 1, %if.end98.thread ], [ %nranges.2, %if.end98 ] - %wide.trip.count = zext nneg i32 %nranges.2104 to i64 + %nranges.2103 = phi i32 [ 1, %if.end98.thread ], [ %nranges.2, %if.end98 ] + %wide.trip.count = zext nneg i32 %nranges.2103 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) #13 + %or.i80 = or i32 %and1.lobit.i, %and.i + %call110 = tail call i32 @mprotect(ptr noundef %18, i64 noundef %19, i32 noundef %or.i80) #13 %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) #14 @@ -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) #13 + %call.i82 = tail call i32 @pthread_mutex_unlock(ptr noundef nonnull @mmap_mutex) #13 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) #13 + %call75 = tail call ptr @mmap64(ptr noundef %18, i64 noundef %and70, i32 noundef %or.i158, i32 noundef %or74, i32 noundef -1, i64 noundef 0) #13 %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) #13 + %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) #13 %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) #13 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 uge i64 %add.i163, %start.addr.0 + %add.i162 = add i64 %reass.sub, 1 + %cmp7.i = icmp uge i64 %add.i162, %start.addr.0 %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) #13 %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 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) #13 + %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) #13 %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.1187 = phi i64 [ %start.addr.0, %the_end1.thread ], [ %start.addr.1, %the_end1 ] - %last.0185 = phi i64 [ %sub109, %the_end1.thread ], [ %last.0, %the_end1 ] - tail call void @page_set_flags(i64 noundef %start.addr.1187, i64 noundef %last.0185, i32 noundef %or237189) #13 + %or237188 = phi i32 [ %or237182, %the_end1.thread ], [ %or237, %the_end1 ] + %start.addr.1186 = phi i64 [ %start.addr.0, %the_end1.thread ], [ %start.addr.1, %the_end1 ] + %last.0184 = phi i64 [ %sub109, %the_end1.thread ], [ %last.0, %the_end1 ] + tail call void @page_set_flags(i64 noundef %start.addr.1186, i64 noundef %last.0184, i32 noundef %or237188) #13 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.1188 = phi i64 [ %start.addr.1, %if.end246 ], [ %start.addr.1, %if.then250 ], [ %start.addr.1187, %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.1188, i64 noundef %last.0186) + %start.addr.1187 = phi i64 [ %start.addr.1, %if.end246 ], [ %start.addr.1, %if.then250 ], [ %start.addr.1186, %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.1187, i64 noundef %last.0185) br label %the_end the_end: ; preds = %if.end161, %if.then164, %if.end253 - %start.addr.2 = phi i64 [ %start.addr.1188, %if.end253 ], [ %start.addr.0, %if.end161 ], [ %start.addr.0, %if.then164 ] + %start.addr.2 = phi i64 [ %start.addr.1187, %if.end253 ], [ %start.addr.0, %if.end161 ], [ %start.addr.0, %if.then164 ] tail call fastcc void @trace_target_mmap_complete(i64 noundef %start.addr.2) %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() #13 @@ -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) #14 @@ -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) #13 + %call.i172 = tail call i32 @pthread_mutex_unlock(ptr noundef nonnull @mmap_mutex) #13 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 8a0852fde92..64a65b161cf 100644 --- a/bench/qemu/optimized/linux-user_syscall.c.ll +++ b/bench/qemu/optimized/linux-user_syscall.c.ll @@ -4676,12 +4676,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.i1962 = tail call i64 (i64, ...) @syscall(i64 noundef 428, i32 noundef %conv333, ptr noundef nonnull %call323, i32 noundef %spec.select) #26 + %call.i1962 = tail call i64 (i64, ...) @syscall(i64 noundef 428, i32 noundef %conv333, ptr noundef nonnull %call323, i32 noundef %58) #26 %sext3867 = shl i64 %call.i1962, 32 %conv335 = ashr exact i64 %sext3867, 32 %cmp.i1964 = icmp eq i64 %sext3867, -4294967296 @@ -9870,7 +9866,7 @@ land.lhs.true3458: ; preds = %get_errno.exit3590 sw.bb3465: ; preds = %entry %474 = and i64 %arg1, 4294967264 %or.cond.i3596.not.not = icmp eq i64 %474, 212795392 - %and2.i3597 = and i64 %arg1, 65535 + %and2.i3597 = and i64 %arg1, 31 br i1 %or.cond.i3596.not.not, label %if.else3472, label %return if.else3472: ; preds = %sw.bb3465 @@ -12546,10 +12542,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 b395a604b2d..46cbd673589 100644 --- a/bench/regex-rs/optimized/11vfjke4utuj478u.ll +++ b/bench/regex-rs/optimized/11vfjke4utuj478u.ll @@ -9062,24 +9062,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 @@ -12966,14 +12970,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 @@ -13048,7 +13056,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 @@ -13093,196 +13101,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 b38264b0881..dc1d58aa7f2 100644 --- a/bench/regex-rs/optimized/6f4i3c8223u3bmw.ll +++ b/bench/regex-rs/optimized/6f4i3c8223u3bmw.ll @@ -545,84 +545,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 } @@ -1044,7 +1044,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 5847a52eae7..d1f3f9dd078 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 be7dbc77b19..4455b1dcb63 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 8aec15253bc..9e0a73e663a 100644 --- a/bench/rocksdb/optimized/manager.cc.ll +++ b/bench/rocksdb/optimized/manager.cc.ll @@ -1247,7 +1247,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 @@ -1261,13 +1261,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 %4 = icmp slt i32 %retval.0.i.fr, 0 %5 = shl nuw nsw i64 %conv, 3 %spec.select = select i1 %4, i64 -1, i64 %5 %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 @@ -1363,29 +1363,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 ], [ %cmp30, %_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 ], [ %cmp31, %_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 @@ -1416,7 +1415,7 @@ _ZN4toku16locktree_manager18escalate_locktreesEPPNS_8locktreeEi.exit: ; preds = %m_escalation_latest_result.i = getelementptr inbounds i8, ptr %this, i64 240 store i64 %31, 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 %32 = load <2 x i64>, ptr %t.i17, align 16 diff --git a/bench/ruby/optimized/io_buffer.ll b/bench/ruby/optimized/io_buffer.ll index 4aa4ef94d47..2380f14b276 100644 --- a/bench/ruby/optimized/io_buffer.ll +++ b/bench/ruby/optimized/io_buffer.ll @@ -3121,31 +3121,30 @@ io_buffer_validate.exit: ; preds = %io_buffer_validate_ %33 = load ptr, ptr %7, align 8 %34 = tail call fastcc i32 @io_buffer_validate_slice(i64 noundef %32, ptr noundef %33, i64 noundef %.val) %.not = icmp eq i32 %34, 0 - br i1 %.not, label %48, label %io_buffer_validate.exit.thread + br i1 %.not, label %46, label %io_buffer_validate.exit.thread io_buffer_validate.exit.thread: ; preds = %io_buffer_validate_range.exit, %io_buffer_validate.exit %35 = load ptr, ptr %7, align 8 %.not14 = icmp eq ptr %35, null - br i1 %.not14, label %48, label %36 + br i1 %.not14, label %46, label %36 36: ; preds = %io_buffer_validate.exit.thread - %37 = udiv i64 %25, %.013 - %38 = urem i64 %25, %.013 - %.not.i16 = icmp ne i64 %38, 0 - %39 = zext i1 %.not.i16 to i64 - %40 = add i64 %37, %39 - %41 = mul i64 %.013, 3 - %42 = add i64 %41, 13 - %43 = mul i64 %40, %42 - %44 = tail call i64 @llvm.usub.sat.i64(i64 %25, i64 1) - %spec.select.i = add i64 %43, %44 - %45 = tail call i64 @rb_str_buf_new(i64 noundef %spec.select.i) #20 - %46 = load ptr, ptr %7, align 8 - %47 = tail call fastcc i64 @io_buffer_hexdump(i64 noundef %45, i64 noundef %.013, ptr noundef %46, i64 noundef %27, i64 noundef %24, i32 noundef 1) - br label %48 - -48: ; preds = %36, %io_buffer_validate.exit.thread, %io_buffer_validate.exit - %.0 = phi i64 [ %45, %36 ], [ 4, %io_buffer_validate.exit.thread ], [ 4, %io_buffer_validate.exit ] + %37 = urem i64 %25, %.013 + %.not.not.i = icmp eq i64 %37, 0 + %38 = mul i64 %.013, 3 + %39 = add i64 %38, 13 + %40 = select i1 %.not.not.i, i64 0, i64 %39 + %.not14.i = icmp eq i64 %25, 0 + %41 = add i64 %25, -1 + %42 = add i64 %41, %40 + %spec.select.i = select i1 %.not14.i, i64 0, i64 %42 + %43 = tail call i64 @rb_str_buf_new(i64 noundef %spec.select.i) #20 + %44 = load ptr, ptr %7, align 8 + %45 = tail call fastcc i64 @io_buffer_hexdump(i64 noundef %43, i64 noundef %.013, ptr noundef %44, i64 noundef %27, i64 noundef %24, i32 noundef 1) + br label %46 + +46: ; preds = %36, %io_buffer_validate.exit.thread, %io_buffer_validate.exit + %.0 = phi i64 [ %43, %36 ], [ 4, %io_buffer_validate.exit.thread ], [ 4, %io_buffer_validate.exit ] ret i64 %.0 } @@ -7436,9 +7435,6 @@ declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #19 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.umax.i64(i64, i64) #18 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.usub.sat.i64(i64, i64) #18 - attributes #0 = { nounwind sspstrong uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nofree norecurse nosync nounwind sspstrong willreturn memory(argmem: read) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/ruby/optimized/ruby.ll b/bench/ruby/optimized/ruby.ll index 1d69cfe762c..d8018d65ebe 100644 --- a/bench/ruby/optimized/ruby.ll +++ b/bench/ruby/optimized/ruby.ll @@ -4365,7 +4365,7 @@ sub_1.i: ; preds = %sub_0.i %94 = sext i8 %93 to i32 %95 = add nsw i32 %94, -91 %96 = icmp ult i32 %95, -26 - %97 = or i32 %94, 32 + %97 = or disjoint i32 %94, 32 %98 = select i1 %96, i32 %94, i32 %97 %99 = load i8, ptr %.017.i.i, align 1 %100 = sext i8 %99 to i32 @@ -4387,7 +4387,7 @@ sub_1.i: ; preds = %sub_0.i %107 = sext i8 %106 to i32 %108 = add nsw i32 %107, -91 %109 = icmp ult i32 %108, -26 - %110 = or i32 %107, 32 + %110 = or disjoint i32 %107, 32 %111 = select i1 %109, i32 %107, i32 %110 %112 = load i8, ptr %104, align 1 %113 = sext i8 %112 to i32 @@ -4445,7 +4445,7 @@ name_match_p.exit.thread.i: ; preds = %123, %._crit_edge.i %130 = sext i8 %129 to i32 %131 = add nsw i32 %130, -91 %132 = icmp ult i32 %131, -26 - %133 = or i32 %130, 32 + %133 = or disjoint i32 %130, 32 %134 = select i1 %132, i32 %130, i32 %133 %135 = load i8, ptr %.017.i43.i, align 1 %136 = sext i8 %135 to i32 @@ -4467,7 +4467,7 @@ name_match_p.exit.thread.i: ; preds = %123, %._crit_edge.i %143 = sext i8 %142 to i32 %144 = add nsw i32 %143, -91 %145 = icmp ult i32 %144, -26 - %146 = or i32 %143, 32 + %146 = or disjoint i32 %143, 32 %147 = select i1 %145, i32 %143, i32 %146 %148 = load i8, ptr %140, align 1 %149 = sext i8 %148 to i32 @@ -4525,7 +4525,7 @@ name_match_p.exit.thread.i: ; preds = %123, %._crit_edge.i %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 %.017.i62.i, align 1 %173 = sext i8 %172 to i32 @@ -4547,7 +4547,7 @@ name_match_p.exit.thread.i: ; preds = %123, %._crit_edge.i %180 = sext i8 %179 to i32 %181 = add nsw i32 %180, -91 %182 = icmp ult i32 %181, -26 - %183 = or i32 %180, 32 + %183 = or disjoint i32 %180, 32 %184 = select i1 %182, i32 %180, i32 %183 %185 = load i8, ptr %177, align 1 %186 = sext i8 %185 to i32 @@ -6305,7 +6305,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 @@ -6327,7 +6327,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 @@ -6411,7 +6411,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 @@ -6433,7 +6433,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 @@ -6551,7 +6551,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 @@ -6573,7 +6573,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 @@ -6644,7 +6644,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 @@ -6666,7 +6666,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 @@ -6735,7 +6735,7 @@ name_match_p.exit111: ; preds = %90, %.lr.ph.i106 %102 = sext i8 %101 to i32 %103 = add nsw i32 %102, -91 %104 = icmp ult i32 %103, -26 - %105 = or i32 %102, 32 + %105 = or disjoint i32 %102, 32 %106 = select i1 %104, i32 %102, i32 %105 %107 = load i8, ptr %.017.i113, align 1 %108 = sext i8 %107 to i32 @@ -6757,7 +6757,7 @@ name_match_p.exit111: ; preds = %90, %.lr.ph.i106 %115 = sext i8 %114 to i32 %116 = add nsw i32 %115, -91 %117 = icmp ult i32 %116, -26 - %118 = or i32 %115, 32 + %118 = or disjoint i32 %115, 32 %119 = select i1 %117, i32 %115, i32 %118 %120 = load i8, ptr %112, align 1 %121 = sext i8 %120 to i32 @@ -6827,7 +6827,7 @@ name_match_p.exit130: ; preds = %132, %.lr.ph.i125 %143 = sext i8 %142 to i32 %144 = add nsw i32 %143, -91 %145 = icmp ult i32 %144, -26 - %146 = or i32 %143, 32 + %146 = or disjoint i32 %143, 32 %147 = select i1 %145, i32 %143, i32 %146 %148 = load i8, ptr %.017.i132, align 1 %149 = sext i8 %148 to i32 @@ -6849,7 +6849,7 @@ name_match_p.exit130: ; preds = %132, %.lr.ph.i125 %156 = sext i8 %155 to i32 %157 = add nsw i32 %156, -91 %158 = icmp ult i32 %157, -26 - %159 = or i32 %156, 32 + %159 = or disjoint i32 %156, 32 %160 = select i1 %158, i32 %156, i32 %159 %161 = load i8, ptr %153, align 1 %162 = sext i8 %161 to i32 @@ -6921,7 +6921,7 @@ name_match_p.exit149: ; preds = %173, %.lr.ph.i144 %187 = sext i8 %186 to i32 %188 = add nsw i32 %187, -91 %189 = icmp ult i32 %188, -26 - %190 = or i32 %187, 32 + %190 = or disjoint i32 %187, 32 %191 = select i1 %189, i32 %187, i32 %190 %192 = load i8, ptr %.017.i151, align 1 %193 = sext i8 %192 to i32 @@ -6943,7 +6943,7 @@ name_match_p.exit149: ; preds = %173, %.lr.ph.i144 %200 = sext i8 %199 to i32 %201 = add nsw i32 %200, -91 %202 = icmp ult i32 %201, -26 - %203 = or i32 %200, 32 + %203 = or disjoint i32 %200, 32 %204 = select i1 %202, i32 %200, i32 %203 %205 = load i8, ptr %197, align 1 %206 = sext i8 %205 to i32 @@ -7014,7 +7014,7 @@ name_match_p.exit168.thread: ; preds = %._crit_edge.i154, % %231 = sext i8 %230 to i32 %232 = add nsw i32 %231, -91 %233 = icmp ult i32 %232, -26 - %234 = or i32 %231, 32 + %234 = or disjoint i32 %231, 32 %235 = select i1 %233, i32 %231, i32 %234 %236 = load i8, ptr %.017.i170, align 1 %237 = sext i8 %236 to i32 @@ -7036,7 +7036,7 @@ name_match_p.exit168.thread: ; preds = %._crit_edge.i154, % %244 = sext i8 %243 to i32 %245 = add nsw i32 %244, -91 %246 = icmp ult i32 %245, -26 - %247 = or i32 %244, 32 + %247 = or disjoint i32 %244, 32 %248 = select i1 %246, i32 %244, i32 %247 %249 = load i8, ptr %241, align 1 %250 = sext i8 %249 to i32 @@ -7107,7 +7107,7 @@ name_match_p.exit187.thread: ; preds = %._crit_edge.i173, % %274 = sext i8 %273 to i32 %275 = add nsw i32 %274, -91 %276 = icmp ult i32 %275, -26 - %277 = or i32 %274, 32 + %277 = or disjoint i32 %274, 32 %278 = select i1 %276, i32 %274, i32 %277 %279 = load i8, ptr %.017.i189, align 1 %280 = sext i8 %279 to i32 @@ -7129,7 +7129,7 @@ name_match_p.exit187.thread: ; preds = %._crit_edge.i173, % %287 = sext i8 %286 to i32 %288 = add nsw i32 %287, -91 %289 = icmp ult i32 %288, -26 - %290 = or i32 %287, 32 + %290 = or disjoint i32 %287, 32 %291 = select i1 %289, i32 %287, i32 %290 %292 = load i8, ptr %284, align 1 %293 = sext i8 %292 to i32 @@ -7200,7 +7200,7 @@ name_match_p.exit206.thread: ; preds = %._crit_edge.i192, % %318 = sext i8 %317 to i32 %319 = add nsw i32 %318, -91 %320 = icmp ult i32 %319, -26 - %321 = or i32 %318, 32 + %321 = or disjoint i32 %318, 32 %322 = select i1 %320, i32 %318, i32 %321 %323 = load i8, ptr %.017.i208, align 1 %324 = sext i8 %323 to i32 @@ -7222,7 +7222,7 @@ name_match_p.exit206.thread: ; preds = %._crit_edge.i192, % %331 = sext i8 %330 to i32 %332 = add nsw i32 %331, -91 %333 = icmp ult i32 %332, -26 - %334 = or i32 %331, 32 + %334 = or disjoint i32 %331, 32 %335 = select i1 %333, i32 %331, i32 %334 %336 = load i8, ptr %328, align 1 %337 = sext i8 %336 to i32 @@ -7293,7 +7293,7 @@ name_match_p.exit225.thread: ; preds = %._crit_edge.i211, % %361 = sext i8 %360 to i32 %362 = add nsw i32 %361, -91 %363 = icmp ult i32 %362, -26 - %364 = or i32 %361, 32 + %364 = or disjoint i32 %361, 32 %365 = select i1 %363, i32 %361, i32 %364 %366 = load i8, ptr %.017.i227, align 1 %367 = sext i8 %366 to i32 @@ -7315,7 +7315,7 @@ name_match_p.exit225.thread: ; preds = %._crit_edge.i211, % %374 = sext i8 %373 to i32 %375 = add nsw i32 %374, -91 %376 = icmp ult i32 %375, -26 - %377 = or i32 %374, 32 + %377 = or disjoint i32 %374, 32 %378 = select i1 %376, i32 %374, i32 %377 %379 = load i8, ptr %371, align 1 %380 = sext i8 %379 to i32 @@ -7386,7 +7386,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 %.017.i246, align 1 %411 = sext i8 %410 to i32 @@ -7408,7 +7408,7 @@ name_match_p.exit244.thread: ; preds = %._crit_edge.i230, % %418 = sext i8 %417 to i32 %419 = add nsw i32 %418, -91 %420 = icmp ult i32 %419, -26 - %421 = or i32 %418, 32 + %421 = or disjoint i32 %418, 32 %422 = select i1 %420, i32 %418, i32 %421 %423 = load i8, ptr %415, align 1 %424 = sext i8 %423 to i32 @@ -7495,7 +7495,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 @@ -7517,7 +7517,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 @@ -7579,7 +7579,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 @@ -7601,7 +7601,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 @@ -7661,7 +7661,7 @@ name_match_p.exit.thread.thread: ; preds = %name_match_p.exit.t %84 = sext i8 %83 to i32 %85 = add nsw i32 %84, -91 %86 = icmp ult i32 %85, -26 - %87 = or i32 %84, 32 + %87 = or disjoint i32 %84, 32 %88 = select i1 %86, i32 %84, i32 %87 %89 = load i8, ptr %.017.i80, align 1 %90 = sext i8 %89 to i32 @@ -7683,7 +7683,7 @@ name_match_p.exit.thread.thread: ; preds = %name_match_p.exit.t %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 %94, align 1 %103 = sext i8 %102 to i32 @@ -7743,7 +7743,7 @@ name_match_p.exit97.thread.thread: ; preds = %name_match_p.exit97 %119 = sext i8 %118 to i32 %120 = add nsw i32 %119, -91 %121 = icmp ult i32 %120, -26 - %122 = or i32 %119, 32 + %122 = or disjoint i32 %119, 32 %123 = select i1 %121, i32 %119, i32 %122 %124 = load i8, ptr %.017.i99, align 1 %125 = sext i8 %124 to i32 @@ -7765,7 +7765,7 @@ name_match_p.exit97.thread.thread: ; preds = %name_match_p.exit97 %132 = sext i8 %131 to i32 %133 = add nsw i32 %132, -91 %134 = icmp ult i32 %133, -26 - %135 = or i32 %132, 32 + %135 = or disjoint i32 %132, 32 %136 = select i1 %134, i32 %132, i32 %135 %137 = load i8, ptr %129, align 1 %138 = sext i8 %137 to i32 @@ -7827,7 +7827,7 @@ name_match_p.exit97.thread.thread: ; preds = %name_match_p.exit97 %157 = sext i8 %156 to i32 %158 = add nsw i32 %157, -91 %159 = icmp ult i32 %158, -26 - %160 = or i32 %157, 32 + %160 = or disjoint i32 %157, 32 %161 = select i1 %159, i32 %157, i32 %160 %162 = load i8, ptr %.017.i118, align 1 %163 = sext i8 %162 to i32 @@ -7849,7 +7849,7 @@ name_match_p.exit97.thread.thread: ; preds = %name_match_p.exit97 %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 %167, align 1 %176 = sext i8 %175 to i32 @@ -7915,7 +7915,7 @@ name_match_p.exit97.thread.thread: ; preds = %name_match_p.exit97 %194 = sext i8 %193 to i32 %195 = add nsw i32 %194, -91 %196 = icmp ult i32 %195, -26 - %197 = or i32 %194, 32 + %197 = or disjoint i32 %194, 32 %198 = select i1 %196, i32 %194, i32 %197 %199 = load i8, ptr %.017.i137, align 1 %200 = sext i8 %199 to i32 @@ -7937,7 +7937,7 @@ name_match_p.exit97.thread.thread: ; preds = %name_match_p.exit97 %207 = sext i8 %206 to i32 %208 = add nsw i32 %207, -91 %209 = icmp ult i32 %208, -26 - %210 = or i32 %207, 32 + %210 = or disjoint i32 %207, 32 %211 = select i1 %209, i32 %207, i32 %210 %212 = load i8, ptr %204, align 1 %213 = sext i8 %212 to i32 @@ -7996,7 +7996,7 @@ name_match_p.exit97.thread.thread: ; preds = %name_match_p.exit97 %230 = sext i8 %229 to i32 %231 = add nsw i32 %230, -91 %232 = icmp ult i32 %231, -26 - %233 = or i32 %230, 32 + %233 = or disjoint i32 %230, 32 %234 = select i1 %232, i32 %230, i32 %233 %235 = load i8, ptr %.017.i156, align 1 %236 = sext i8 %235 to i32 @@ -8018,7 +8018,7 @@ name_match_p.exit97.thread.thread: ; preds = %name_match_p.exit97 %243 = sext i8 %242 to i32 %244 = add nsw i32 %243, -91 %245 = icmp ult i32 %244, -26 - %246 = or i32 %243, 32 + %246 = or disjoint i32 %243, 32 %247 = select i1 %245, i32 %243, i32 %246 %248 = load i8, ptr %240, align 1 %249 = sext i8 %248 to i32 @@ -8083,7 +8083,7 @@ name_match_p.exit97.thread.thread: ; preds = %name_match_p.exit97 %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.i175, align 1 %273 = sext i8 %272 to i32 @@ -8105,7 +8105,7 @@ name_match_p.exit97.thread.thread: ; preds = %name_match_p.exit97 %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 @@ -8161,7 +8161,7 @@ name_match_p.exit97.thread.thread: ; preds = %name_match_p.exit97 %302 = sext i8 %301 to i32 %303 = add nsw i32 %302, -91 %304 = icmp ult i32 %303, -26 - %305 = or i32 %302, 32 + %305 = or disjoint i32 %302, 32 %306 = select i1 %304, i32 %302, i32 %305 %307 = load i8, ptr %.017.i194, align 1 %308 = sext i8 %307 to i32 @@ -8183,7 +8183,7 @@ name_match_p.exit97.thread.thread: ; preds = %name_match_p.exit97 %315 = sext i8 %314 to i32 %316 = add nsw i32 %315, -91 %317 = icmp ult i32 %316, -26 - %318 = or i32 %315, 32 + %318 = or disjoint i32 %315, 32 %319 = select i1 %317, i32 %315, i32 %318 %320 = load i8, ptr %312, align 1 %321 = sext i8 %320 to i32 @@ -8304,7 +8304,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 @@ -8326,7 +8326,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/rust-analyzer-rs/optimized/1cf75p1eybr0uy0c.ll b/bench/rust-analyzer-rs/optimized/1cf75p1eybr0uy0c.ll index 2a5780c4f5a..68b76532870 100644 --- a/bench/rust-analyzer-rs/optimized/1cf75p1eybr0uy0c.ll +++ b/bench/rust-analyzer-rs/optimized/1cf75p1eybr0uy0c.ll @@ -12733,10 +12733,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 @@ -12789,17 +12789,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 ugt i32 %.07.i.i.i.i.i.i.i.i.i, %.07.i.i.i.i.i @@ -12807,7 +12807,7 @@ define hidden { i1, i8 } @_ZN4core4iter6traits8iterator12iter_compare17hb3a523cd %..i.i.i.i.i.i.i.i.i = zext i1 %92 to i8 %.0.i.i.i7.i.i.i.i.i.i = select i1 %91, i8 -1, i8 %..i.i.i.i.i.i.i.i.i %93 = icmp eq i8 %.0.i.i.i7.i.i.i.i.i.i, 0 - br i1 %93, label %"_ZN4core4iter8adapters3map12map_try_fold28_$u7b$$u7b$closure$u7d$$u7d$17hcdd9293affd9e335E.exit.i.i.i", label %.loopexit + br i1 %93, label %"_ZN4core4iter8adapters3map12map_try_fold28_$u7b$$u7b$closure$u7d$$u7d$17hcdd9293affd9e335E.exit.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" 94: ; 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" %95 = icmp ne ptr %3, null @@ -12818,74 +12818,55 @@ define hidden { i1, i8 } @_ZN4core4iter6traits8iterator12iter_compare17hb3a523cd 97: ; preds = %94 %98 = load i8, ptr %.sroa.06.0, align 1, !noalias !5323, !noundef !4 %99 = icmp sgt i8 %98, -1 - br i1 %99, label %110, 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 %99, 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 = %97 %100 = getelementptr inbounds i8, ptr %.sroa.06.0, i64 1 - %101 = and i8 %98, 31 - %102 = zext nneg i8 %101 to i32 - %103 = icmp ne ptr %100, %3 - tail call void @llvm.assume(i1 %103) - %104 = load i8, ptr %100, align 1, !noalias !5323, !noundef !4 - %105 = shl nuw nsw i32 %102, 6 - %106 = and i8 %104, 63 - %107 = zext nneg i8 %106 to i32 - %108 = or disjoint i32 %105, %107 - %109 = icmp ugt i8 %98, -33 - br i1 %109, 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" - -110: ; preds = %97 - %111 = zext nneg i8 %98 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" + %101 = zext i8 %98 to i32 + %102 = icmp ne ptr %100, %3 + tail call void @llvm.assume(i1 %102) + %103 = load i8, ptr %100, align 1, !noalias !5323, !noundef !4 + %104 = and i8 %103, 63 + %105 = zext nneg i8 %104 to i32 + %106 = icmp ugt i8 %98, -33 + br i1 %106, 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" - %112 = getelementptr inbounds i8, ptr %.sroa.06.0, i64 2 - %113 = icmp ne ptr %112, %3 - tail call void @llvm.assume(i1 %113) - %114 = load i8, ptr %112, align 1, !noalias !5323, !noundef !4 - %115 = shl nuw nsw i32 %107, 6 - %116 = and i8 %114, 63 - %117 = zext nneg i8 %116 to i32 - %118 = or disjoint i32 %115, %117 - %119 = shl nuw nsw i32 %102, 12 - %120 = or disjoint i32 %118, %119 - %121 = icmp ugt i8 %98, -17 - br i1 %121, 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" + %107 = getelementptr inbounds i8, ptr %.sroa.06.0, i64 2 + %108 = icmp ne ptr %107, %3 + tail call void @llvm.assume(i1 %108) + %109 = icmp ugt i8 %98, -17 + br i1 %109, 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" - %122 = getelementptr inbounds i8, ptr %.sroa.06.0, i64 3 - %123 = icmp ne ptr %122, %3 - tail call void @llvm.assume(i1 %123) - %124 = load i8, ptr %122, align 1, !noalias !5323, !noundef !4 - %125 = shl nuw nsw i32 %102, 18 - %126 = and i32 %125, 1835008 - %127 = shl nuw nsw i32 %118, 6 - %128 = and i8 %124, 63 - %129 = zext nneg i8 %128 to i32 - %130 = or disjoint i32 %127, %129 - %131 = or disjoint i32 %130, %126 - %132 = icmp eq i32 %131, 1114112 - br i1 %132, 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", %110, %"_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" - %133 = phi i32 [ %131, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.i" ], [ %111, %110 ], [ %120, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit15.i.i.i" ], [ %108, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h77f95ffa0e4a6a85E.exit13.i.i.i" ] - %134 = add nsw i32 %133, -65 - %.0.i.i.i = icmp ult i32 %134, 26 - %135 = xor i32 %133, 32 - %.07.i.i.i = select i1 %.0.i.i.i, i32 %135, i32 %133 - %.07.i.i.i.fr = freeze i32 %.07.i.i.i - %136 = icmp eq i32 %.07.i.i.i.fr, 1114112 - br i1 %136, 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 = %94, %"_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 + %110 = load i8, ptr %107, align 1, !noalias !5323, !noundef !4 + %111 = and i8 %110, 63 + %112 = zext nneg i8 %111 to i32 + %113 = getelementptr inbounds i8, ptr %.sroa.06.0, i64 3 + %114 = icmp ne ptr %113, %3 + tail call void @llvm.assume(i1 %114) + %115 = load i8, ptr %113, align 1, !noalias !5323, !noundef !4 + %116 = shl nuw nsw i32 %101, 18 + %117 = and i32 %116, 1835008 + %118 = shl nuw nsw i32 %105, 12 + %119 = shl nuw nsw i32 %112, 6 + %120 = or disjoint i32 %119, %118 + %121 = and i8 %115, 63 + %122 = zext nneg i8 %121 to i32 + %123 = or disjoint i32 %120, %122 + %124 = or disjoint i32 %123, %117 + %125 = icmp eq i32 %124, 1114112 + br i1 %125, 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 = %94, %"_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 = %"_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.i.i.i.i.i.i.i", %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.thread.i.i.i", %90, %"_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.i.i.i, %90 ], [ 1, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.thread.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, %"_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" ] - %.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, %90 ], [ false, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.thread.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, %"_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" ] - %137 = insertvalue { i1, i8 } poison, i1 %.sroa.0.0, 0 - %138 = insertvalue { i1, i8 } %137, i8 %.sroa.3.0, 1 - ret { i1, i8 } %138 +"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf00c2ab7df39b54eE.exit": ; 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", %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.i.i.i.i.i.i.i", %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.thread.i.i.i", %90, %"_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", %97, %"_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, %97 ], [ -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.i.i.i, %90 ], [ 1, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.thread.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, %"_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" ] + %.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, %97 ], [ 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, %90 ], [ false, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha3bb299ebebfcc3aE.exit.thread.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, %"_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" ] + %126 = insertvalue { i1, i8 } poison, i1 %.sroa.0.0, 0 + %127 = insertvalue { i1, i8 } %126, i8 %.sroa.3.0, 1 + ret { i1, i8 } %127 } ; Function Attrs: inlinehint nonlazybind uwtable diff --git a/bench/rust-analyzer-rs/optimized/4oth7q7qz5x90ygj.ll b/bench/rust-analyzer-rs/optimized/4oth7q7qz5x90ygj.ll index 509e8ab9f59..5cd90f30937 100644 --- a/bench/rust-analyzer-rs/optimized/4oth7q7qz5x90ygj.ll +++ b/bench/rust-analyzer-rs/optimized/4oth7q7qz5x90ygj.ll @@ -59663,7 +59663,7 @@ define hidden noundef zeroext i1 @_ZN11ide_assists8handlers12qualify_path12quali %.pn101 = phi { ptr, i32 } [ %57, %56 ], [ %.pn99232, %.thread227 ], [ %.pn91, %89 ], [ %lpad.thr_comm.split-lp, %90 ] %54 = load i64, ptr %36, align 8, !range !32, !noundef !4 %55 = icmp eq i64 %54, 0 - br i1 %55, label %462, label %464 + br i1 %55, label %463, label %465 56: ; preds = %58, %64, %42 %.167 = phi i8 [ %.268, %64 ], [ 1, %42 ], [ 1, %58 ] @@ -59772,7 +59772,7 @@ define hidden noundef zeroext i1 @_ZN11ide_assists8handlers12qualify_path12quali cleanup br label %.thread227 -90: ; preds = %422 +90: ; preds = %423 %lpad.thr_comm.split-lp = landingpad { ptr, i32 } cleanup br label %53 @@ -59804,7 +59804,7 @@ define hidden noundef zeroext i1 @_ZN11ide_assists8handlers12qualify_path12quali %101 = load i64, ptr %94, align 8, !range !15042, !noundef !4 %102 = add i64 %101, 9223372036854775807 %103 = icmp ult i64 %102, 2 - %104 = xor i64 %101, -9223372036854775808 + %104 = and i64 %101, 3 %105 = select i1 %103, i64 %104, i64 0 switch i64 %105, label %41 [ i64 0, label %108 @@ -60026,7 +60026,7 @@ define hidden noundef zeroext i1 @_ZN11ide_assists8handlers12qualify_path12quali call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) br label %335 -187: ; preds = %471, %451, %"_ZN4core3ptr66drop_in_place$LT$ide_db..imports..import_assets..LocatedImport$GT$17h811820cc9738d774E.exit", %384, %300, %287, %265, %249, %228, %201, %194, %171, %148, %135, %123, %464, %.thread227, %"_ZN4core3ptr105drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$ide_db..imports..import_assets..LocatedImport$GT$$GT$17h11e3ee2fbf7f6659E.exit", %385, %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit195" +187: ; preds = %472, %452, %"_ZN4core3ptr66drop_in_place$LT$ide_db..imports..import_assets..LocatedImport$GT$17h811820cc9738d774E.exit", %384, %300, %287, %265, %249, %228, %201, %194, %171, %148, %135, %123, %465, %.thread227, %"_ZN4core3ptr105drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$ide_db..imports..import_assets..LocatedImport$GT$$GT$17h11e3ee2fbf7f6659E.exit", %385, %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit195" %188 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #53 @@ -60501,8 +60501,8 @@ define hidden noundef zeroext i1 @_ZN11ide_assists8handlers12qualify_path12quali call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #53 unreachable -common.resume: ; preds = %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit195", %426, %434, %350, %358 - %common.resume.op = phi { ptr, i32 } [ %351, %358 ], [ %351, %350 ], [ %427, %434 ], [ %427, %426 ], [ %.pn103, %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit195" ] +common.resume: ; preds = %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit195", %427, %435, %350, %358 + %common.resume.op = phi { ptr, i32 } [ %351, %358 ], [ %351, %350 ], [ %428, %435 ], [ %428, %427 ], [ %.pn103, %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit195" ] resume { ptr, i32 } %common.resume.op "_ZN4core3ptr65drop_in_place$LT$ide_db..imports..import_assets..ImportAssets$GT$17h74c902956edc7254E.exit": ; preds = %359, %366 @@ -60526,8 +60526,8 @@ common.resume: ; preds = %"_ZN4core3ptr84drop invoke void @_ZN5rowan6cursor4free17ha2e1b2c8c83f79d6E(ptr noundef nonnull %375) to label %"_ZN4core3ptr192drop_in_place$LT$rowan..utility_types..NodeOrToken$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$C$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$$GT$17h5b8c8b877dff0639E.llvm.9930132259409388476.exit" unwind label %376 -"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit195": ; preds = %465, %471, %464, %462, %376 - %.pn103 = phi { ptr, i32 } [ %377, %376 ], [ %.pn101, %462 ], [ %.pn101, %464 ], [ %.pn101, %471 ], [ %.pn101, %465 ] +"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit195": ; preds = %466, %472, %465, %463, %376 + %.pn103 = phi { ptr, i32 } [ %377, %376 ], [ %.pn101, %463 ], [ %.pn101, %465 ], [ %.pn101, %472 ], [ %.pn101, %466 ] invoke void @"_ZN4core3ptr65drop_in_place$LT$ide_db..imports..import_assets..ImportAssets$GT$17h74c902956edc7254E"(ptr noalias noundef nonnull align 8 dereferenceable(80) %37) #55 to label %common.resume unwind label %187 @@ -60579,21 +60579,24 @@ common.resume: ; preds = %"_ZN4core3ptr84drop call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17), !noalias !15378 %390 = load i64, ptr %94, align 8, !range !15042, !alias.scope !15375, !noalias !15380, !noundef !4 %391 = icmp ult i64 %390, -9223372036854775807 - %.02.v.i = select i1 %391, i64 24, i64 8 + %392 = and i64 %390, 3 + %switch3.i = icmp eq i64 %392, 0 + %switch.i = or i1 %391, %switch3.i + %.02.v.i = select i1 %switch.i, i64 24, i64 8 %.02.i = getelementptr inbounds i8, ptr %94, i64 %.02.v.i - %392 = invoke { ptr, i64 } @_ZN6ide_db7imports13import_assets12NameToImport4text17hb96880d9e13cfac0E(ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %.02.i) + %393 = invoke { ptr, i64 } @_ZN6ide_db7imports13import_assets12NameToImport4text17hb96880d9e13cfac0E(ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %.02.i) to label %.noexc168 unwind label %386 .noexc168: ; preds = %389 - %393 = extractvalue { ptr, i64 } %392, 0 - %394 = extractvalue { ptr, i64 } %392, 1 - store ptr %393, ptr %17, align 8, !noalias !15378 - %395 = getelementptr inbounds i8, ptr %17, i64 8 - store i64 %394, ptr %395, align 8, !noalias !15378 + %394 = extractvalue { ptr, i64 } %393, 0 + %395 = extractvalue { ptr, i64 } %393, 1 + store ptr %394, ptr %17, align 8, !noalias !15378 + %396 = getelementptr inbounds i8, ptr %17, i64 8 + store i64 %395, ptr %396, align 8, !noalias !15378 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15), !noalias !15378 store ptr %17, ptr %15, align 8, !noalias !15378 - %396 = getelementptr inbounds i8, ptr %15, i64 8 - store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h248f9878cf6d1202E", ptr %396, align 8, !noalias !15378 + %397 = getelementptr inbounds i8, ptr %15, i64 8 + store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h248f9878cf6d1202E", ptr %397, align 8, !noalias !15378 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %14), !noalias !15381 store ptr @anon.2485526e7901583daa154d4fb54acfff.244, ptr %14, align 8, !noalias !15392 %.sroa.5.0..sroa_idx.i = getelementptr inbounds i8, ptr %14, i64 8 @@ -60605,19 +60608,19 @@ common.resume: ; preds = %"_ZN4core3ptr84drop %.sroa.10.0..sroa_idx.i = getelementptr inbounds i8, ptr %14, i64 32 store ptr null, ptr %.sroa.10.0..sroa_idx.i, align 8, !noalias !15392 invoke void @_ZN5alloc3fmt6format12format_inner17h20bbaee2ca87fbecE(ptr noalias nocapture noundef nonnull sret({ { { i64, ptr, {} }, i64 } }) align 8 dereferenceable(24) %16, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %14) - to label %399 unwind label %386 + to label %400 unwind label %386 -"_ZN4core3ptr105drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$ide_db..imports..import_assets..LocatedImport$GT$$GT$17h11e3ee2fbf7f6659E.exit": ; preds = %"_ZN4core3ptr66drop_in_place$LT$ide_db..imports..import_assets..LocatedImport$GT$17h811820cc9738d774E.exit", %397 - %.pn89 = phi { ptr, i32 } [ %398, %397 ], [ %.pn87, %"_ZN4core3ptr66drop_in_place$LT$ide_db..imports..import_assets..LocatedImport$GT$17h811820cc9738d774E.exit" ] +"_ZN4core3ptr105drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$ide_db..imports..import_assets..LocatedImport$GT$$GT$17h11e3ee2fbf7f6659E.exit": ; preds = %"_ZN4core3ptr66drop_in_place$LT$ide_db..imports..import_assets..LocatedImport$GT$17h811820cc9738d774E.exit", %398 + %.pn89 = phi { ptr, i32 } [ %399, %398 ], [ %.pn87, %"_ZN4core3ptr66drop_in_place$LT$ide_db..imports..import_assets..LocatedImport$GT$17h811820cc9738d774E.exit" ] invoke void @"_ZN4core3ptr48drop_in_place$LT$ide_db..assists..GroupLabel$GT$17h6d9e9a2eeeb58332E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %23) #55 to label %385 unwind label %187 -397: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit.thread" - %398 = landingpad { ptr, i32 } +398: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit.thread" + %399 = landingpad { ptr, i32 } cleanup br label %"_ZN4core3ptr105drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$ide_db..imports..import_assets..LocatedImport$GT$$GT$17h11e3ee2fbf7f6659E.exit" -399: ; preds = %.noexc168 +400: ; preds = %.noexc168 call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %14), !noalias !15381 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15), !noalias !15378 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %23, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 24, i1 false), !noalias !15375 @@ -60626,7 +60629,7 @@ common.resume: ; preds = %"_ZN4core3ptr84drop %.sroa.0213.0.copyload = load i64, ptr %34, align 8 %.sroa.4214.0.copyload = load ptr, ptr %336, align 8, !nonnull !4, !noundef !4 %.sroa.5215.0.copyload = load i64, ptr %59, align 8 - %400 = getelementptr inbounds { { { i8, [7 x i8] }, { i64, { [3 x i64] } } }, { i32, [4 x i32] }, { i32, [4 x i32] } }, ptr %.sroa.4214.0.copyload, i64 %.sroa.5215.0.copyload + %401 = getelementptr inbounds { { { i8, [7 x i8] }, { i64, { [3 x i64] } } }, { i32, [4 x i32] }, { i32, [4 x i32] } }, ptr %.sroa.4214.0.copyload, i64 %.sroa.5215.0.copyload call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) store ptr %.sroa.4214.0.copyload, ptr %22, align 8 %.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %22, i64 8 @@ -60634,63 +60637,63 @@ common.resume: ; preds = %"_ZN4core3ptr84drop %.sroa.5.0..sroa_idx = getelementptr inbounds i8, ptr %22, i64 16 store i64 %.sroa.0213.0.copyload, ptr %.sroa.5.0..sroa_idx, align 8 %.sroa.6.0..sroa_idx = getelementptr inbounds i8, ptr %22, i64 24 - store ptr %400, ptr %.sroa.6.0..sroa_idx, align 8 + store ptr %401, ptr %.sroa.6.0..sroa_idx, align 8 call void @llvm.lifetime.start.p0(i64 60, ptr nonnull %.sroa.0216) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %.sroa.7) - %401 = icmp eq i64 %.sroa.5215.0.copyload, 0 - br i1 %401, label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit.thread", label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit.lr.ph" + %402 = icmp eq i64 %.sroa.5215.0.copyload, 0 + br i1 %402, label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit.thread", label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit.lr.ph" -"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit.lr.ph": ; preds = %399 +"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit.lr.ph": ; preds = %400 %.sroa.5217.0..sroa_idx = getelementptr inbounds i8, ptr %21, i64 60 %.sroa.7.0..sroa_idx = getelementptr inbounds i8, ptr %21, i64 64 - %402 = getelementptr inbounds i8, ptr %20, i64 8 - %403 = getelementptr inbounds i8, ptr %20, i64 16 - %404 = getelementptr inbounds i8, ptr %10, i64 8 + %403 = getelementptr inbounds i8, ptr %20, i64 8 + %404 = getelementptr inbounds i8, ptr %20, i64 16 + %405 = getelementptr inbounds i8, ptr %10, i64 8 %.sroa.52.0..sroa_idx.i = getelementptr inbounds i8, ptr %8, i64 8 %.sroa.73.0..sroa_idx.i = getelementptr inbounds i8, ptr %8, i64 16 %.sroa.84.0..sroa_idx.i = getelementptr inbounds i8, ptr %8, i64 24 %.sroa.105.0..sroa_idx.i = getelementptr inbounds i8, ptr %8, i64 32 - %405 = getelementptr inbounds i8, ptr %12, i64 8 + %406 = getelementptr inbounds i8, ptr %12, i64 8 %.sroa.5.0..sroa_idx.i183 = getelementptr inbounds i8, ptr %7, i64 8 %.sroa.7.0..sroa_idx.i184 = getelementptr inbounds i8, ptr %7, i64 16 %.sroa.8.0..sroa_idx.i185 = getelementptr inbounds i8, ptr %7, i64 24 %.sroa.10.0..sroa_idx.i186 = getelementptr inbounds i8, ptr %7, i64 32 - %406 = getelementptr inbounds i8, ptr %32, i64 4 - %407 = getelementptr inbounds i8, ptr %21, i64 40 + %407 = getelementptr inbounds i8, ptr %32, i64 4 + %408 = getelementptr inbounds i8, ptr %21, i64 40 %.sroa.4222.0..sroa_idx = getelementptr inbounds i8, ptr %6, i64 8 %.sroa.5223.0..sroa_idx = getelementptr inbounds i8, ptr %6, i64 16 %.sroa.6224.0..sroa_idx = getelementptr inbounds i8, ptr %6, i64 24 - %408 = getelementptr inbounds i8, ptr %21, i64 8 + %409 = getelementptr inbounds i8, ptr %21, i64 8 br label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit" -"_ZN4core3ptr66drop_in_place$LT$ide_db..imports..import_assets..LocatedImport$GT$17h811820cc9738d774E.exit": ; preds = %451, %409 - %.pn87 = phi { ptr, i32 } [ %410, %409 ], [ %452, %451 ] +"_ZN4core3ptr66drop_in_place$LT$ide_db..imports..import_assets..LocatedImport$GT$17h811820cc9738d774E.exit": ; preds = %452, %410 + %.pn87 = phi { ptr, i32 } [ %411, %410 ], [ %453, %452 ] invoke void @"_ZN86_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd4ebadb0e44b0a68E.llvm.16532663377229269005"(ptr noalias noundef nonnull align 8 dereferenceable(32) %22) to label %"_ZN4core3ptr105drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$ide_db..imports..import_assets..LocatedImport$GT$$GT$17h11e3ee2fbf7f6659E.exit" unwind label %187 -409: ; preds = %458 - %410 = landingpad { ptr, i32 } +410: ; preds = %459 + %411 = landingpad { ptr, i32 } cleanup br label %"_ZN4core3ptr66drop_in_place$LT$ide_db..imports..import_assets..LocatedImport$GT$17h811820cc9738d774E.exit" "_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit": ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit.lr.ph", %"_ZN4core3ptr66drop_in_place$LT$ide_db..imports..import_assets..LocatedImport$GT$17h811820cc9738d774E.exit193" - %411 = phi ptr [ %.sroa.4214.0.copyload, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit.lr.ph" ], [ %460, %"_ZN4core3ptr66drop_in_place$LT$ide_db..imports..import_assets..LocatedImport$GT$17h811820cc9738d774E.exit193" ] + %412 = phi ptr [ %.sroa.4214.0.copyload, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit.lr.ph" ], [ %461, %"_ZN4core3ptr66drop_in_place$LT$ide_db..imports..import_assets..LocatedImport$GT$17h811820cc9738d774E.exit193" ] call void @llvm.experimental.noalias.scope.decl(metadata !15393) - %412 = getelementptr inbounds i8, ptr %411, i64 80 - store ptr %412, ptr %.sroa.4.0..sroa_idx, align 8, !alias.scope !15393, !noalias !15396 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(60) %.sroa.0216, ptr noundef nonnull align 8 dereferenceable(60) %411, i64 60, i1 false), !noalias !15393 - %.sroa.5217.0..sroa_idx218 = getelementptr inbounds i8, ptr %411, i64 60 + %413 = getelementptr inbounds i8, ptr %412, i64 80 + store ptr %413, ptr %.sroa.4.0..sroa_idx, align 8, !alias.scope !15393, !noalias !15396 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(60) %.sroa.0216, ptr noundef nonnull align 8 dereferenceable(60) %412, i64 60, i1 false), !noalias !15393 + %.sroa.5217.0..sroa_idx218 = getelementptr inbounds i8, ptr %412, i64 60 %.sroa.5217.0.copyload219 = load i32, ptr %.sroa.5217.0..sroa_idx218, align 4, !noalias !15393 - %.sroa.7.0..sroa_idx220 = getelementptr inbounds i8, ptr %411, i64 64 + %.sroa.7.0..sroa_idx220 = getelementptr inbounds i8, ptr %412, i64 64 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7.0..sroa_idx220, i64 16, i1 false), !noalias !15393 - %413 = icmp eq i32 %.sroa.5217.0.copyload219, 3 - br i1 %413, label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit.thread", label %453 + %414 = icmp eq i32 %.sroa.5217.0.copyload219, 3 + br i1 %414, label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit.thread", label %454 -"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit.thread": ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit", %"_ZN4core3ptr66drop_in_place$LT$ide_db..imports..import_assets..LocatedImport$GT$17h811820cc9738d774E.exit193", %399 +"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit.thread": ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit", %"_ZN4core3ptr66drop_in_place$LT$ide_db..imports..import_assets..LocatedImport$GT$17h811820cc9738d774E.exit193", %400 call void @llvm.lifetime.end.p0(i64 60, ptr nonnull %.sroa.0216) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %.sroa.7) invoke void @"_ZN86_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd4ebadb0e44b0a68E.llvm.16532663377229269005"(ptr noalias noundef nonnull align 8 dereferenceable(32) %22) - to label %"_ZN4core3ptr105drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$ide_db..imports..import_assets..LocatedImport$GT$$GT$17h11e3ee2fbf7f6659E.exit173" unwind label %397 + to label %"_ZN4core3ptr105drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$ide_db..imports..import_assets..LocatedImport$GT$$GT$17h11e3ee2fbf7f6659E.exit173" unwind label %398 "_ZN4core3ptr105drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$ide_db..imports..import_assets..LocatedImport$GT$$GT$17h11e3ee2fbf7f6659E.exit173": ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit.thread" call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) @@ -60699,134 +60702,134 @@ common.resume: ; preds = %"_ZN4core3ptr84drop to label %.noexc174 unwind label %386 .noexc174: ; preds = %"_ZN4core3ptr105drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$ide_db..imports..import_assets..LocatedImport$GT$$GT$17h11e3ee2fbf7f6659E.exit173" - %414 = getelementptr inbounds i8, ptr %13, i64 8 - %415 = load i64, ptr %414, align 8, !range !914, !noalias !15398, !noundef !4 - %.not.i.i.i.i.i = icmp eq i64 %415, 0 - br i1 %.not.i.i.i.i.i, label %422, label %416 - -416: ; preds = %.noexc174 - %417 = getelementptr inbounds i8, ptr %13, i64 16 - %418 = load i64, ptr %417, align 8, !noalias !15398, !noundef !4 - %419 = icmp eq i64 %418, 0 - br i1 %419, label %422, label %420 - -420: ; preds = %416 - %421 = load ptr, ptr %13, align 8, !noalias !15398, !nonnull !4, !noundef !4 - call void @__rust_dealloc(ptr noundef nonnull %421, i64 noundef %418, i64 noundef %415) #56 - br label %422 - -422: ; preds = %420, %416, %.noexc174 + %415 = getelementptr inbounds i8, ptr %13, i64 8 + %416 = load i64, ptr %415, align 8, !range !914, !noalias !15398, !noundef !4 + %.not.i.i.i.i.i = icmp eq i64 %416, 0 + br i1 %.not.i.i.i.i.i, label %423, label %417 + +417: ; preds = %.noexc174 + %418 = getelementptr inbounds i8, ptr %13, i64 16 + %419 = load i64, ptr %418, align 8, !noalias !15398, !noundef !4 + %420 = icmp eq i64 %419, 0 + br i1 %420, label %423, label %421 + +421: ; preds = %417 + %422 = load ptr, ptr %13, align 8, !noalias !15398, !nonnull !4, !noundef !4 + call void @__rust_dealloc(ptr noundef nonnull %422, i64 noundef %419, i64 noundef %416) #56 + br label %423 + +423: ; preds = %421, %417, %.noexc174 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13), !noalias !15398 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) invoke fastcc void @"_ZN4core3ptr74drop_in_place$LT$ide_assists..handlers..qualify_path..QualifyCandidate$GT$17ha83bf41b3abdb1dcE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %30) - to label %423 unwind label %90 + to label %424 unwind label %90 -423: ; preds = %422 +424: ; preds = %423 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %30) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %34) - %424 = load i64, ptr %36, align 8, !range !32, !noundef !4 - %425 = icmp eq i64 %424, 0 - br i1 %425, label %"_ZN4core3ptr192drop_in_place$LT$rowan..utility_types..NodeOrToken$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$C$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$$GT$17h5b8c8b877dff0639E.llvm.9930132259409388476.exit181", label %445 + %425 = load i64, ptr %36, align 8, !range !32, !noundef !4 + %426 = icmp eq i64 %425, 0 + br i1 %426, label %"_ZN4core3ptr192drop_in_place$LT$rowan..utility_types..NodeOrToken$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$C$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$$GT$17h5b8c8b877dff0639E.llvm.9930132259409388476.exit181", label %446 -"_ZN4core3ptr192drop_in_place$LT$rowan..utility_types..NodeOrToken$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$C$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$$GT$17h5b8c8b877dff0639E.llvm.9930132259409388476.exit181": ; preds = %445, %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit.sink.split.i178", %423 +"_ZN4core3ptr192drop_in_place$LT$rowan..utility_types..NodeOrToken$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$C$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$$GT$17h5b8c8b877dff0639E.llvm.9930132259409388476.exit181": ; preds = %446, %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit.sink.split.i178", %424 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %36) invoke void @"_ZN4core3ptr68drop_in_place$LT$ide_db..imports..import_assets..ImportCandidate$GT$17ha155945c5f15ee8fE.llvm.16532663377229269005"(ptr noalias noundef nonnull align 8 dereferenceable(56) %37) - to label %435 unwind label %426 + to label %436 unwind label %427 -426: ; preds = %"_ZN4core3ptr192drop_in_place$LT$rowan..utility_types..NodeOrToken$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$C$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$$GT$17h5b8c8b877dff0639E.llvm.9930132259409388476.exit181" - %427 = landingpad { ptr, i32 } +427: ; preds = %"_ZN4core3ptr192drop_in_place$LT$rowan..utility_types..NodeOrToken$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$C$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$$GT$17h5b8c8b877dff0639E.llvm.9930132259409388476.exit181" + %428 = landingpad { ptr, i32 } cleanup - %428 = getelementptr inbounds i8, ptr %37, i64 56 + %429 = getelementptr inbounds i8, ptr %37, i64 56 call void @llvm.experimental.noalias.scope.decl(metadata !15409) call void @llvm.experimental.noalias.scope.decl(metadata !15412) call void @llvm.experimental.noalias.scope.decl(metadata !15415) - %429 = load ptr, ptr %428, align 8, !alias.scope !15418, !nonnull !4, !noundef !4 - %430 = getelementptr inbounds i8, ptr %429, i64 48 - %431 = load i32, ptr %430, align 4, !noalias !15421, !noundef !4 - %432 = add i32 %431, -1 - store i32 %432, ptr %430, align 4, !noalias !15421 - %433 = icmp eq i32 %432, 0 - br i1 %433, label %434, label %common.resume - -434: ; preds = %426 - invoke void @_ZN5rowan6cursor4free17ha2e1b2c8c83f79d6E(ptr noundef nonnull %429) - to label %common.resume unwind label %443 - -435: ; preds = %"_ZN4core3ptr192drop_in_place$LT$rowan..utility_types..NodeOrToken$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$C$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$$GT$17h5b8c8b877dff0639E.llvm.9930132259409388476.exit181" - %436 = getelementptr inbounds i8, ptr %37, i64 56 + %430 = load ptr, ptr %429, align 8, !alias.scope !15418, !nonnull !4, !noundef !4 + %431 = getelementptr inbounds i8, ptr %430, i64 48 + %432 = load i32, ptr %431, align 4, !noalias !15421, !noundef !4 + %433 = add i32 %432, -1 + store i32 %433, ptr %431, align 4, !noalias !15421 + %434 = icmp eq i32 %433, 0 + br i1 %434, label %435, label %common.resume + +435: ; preds = %427 + invoke void @_ZN5rowan6cursor4free17ha2e1b2c8c83f79d6E(ptr noundef nonnull %430) + to label %common.resume unwind label %444 + +436: ; preds = %"_ZN4core3ptr192drop_in_place$LT$rowan..utility_types..NodeOrToken$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$C$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$$GT$17h5b8c8b877dff0639E.llvm.9930132259409388476.exit181" + %437 = getelementptr inbounds i8, ptr %37, i64 56 call void @llvm.experimental.noalias.scope.decl(metadata !15422) call void @llvm.experimental.noalias.scope.decl(metadata !15425) call void @llvm.experimental.noalias.scope.decl(metadata !15428) - %437 = load ptr, ptr %436, align 8, !alias.scope !15431, !nonnull !4, !noundef !4 - %438 = getelementptr inbounds i8, ptr %437, i64 48 - %439 = load i32, ptr %438, align 4, !noalias !15432, !noundef !4 - %440 = add i32 %439, -1 - store i32 %440, ptr %438, align 4, !noalias !15432 - %441 = icmp eq i32 %440, 0 - br i1 %441, label %442, label %"_ZN4core3ptr65drop_in_place$LT$ide_db..imports..import_assets..ImportAssets$GT$17h74c902956edc7254E.exit176" - -442: ; preds = %435 - call void @_ZN5rowan6cursor4free17ha2e1b2c8c83f79d6E(ptr noundef nonnull %437), !noalias !15432 + %438 = load ptr, ptr %437, align 8, !alias.scope !15431, !nonnull !4, !noundef !4 + %439 = getelementptr inbounds i8, ptr %438, i64 48 + %440 = load i32, ptr %439, align 4, !noalias !15432, !noundef !4 + %441 = add i32 %440, -1 + store i32 %441, ptr %439, align 4, !noalias !15432 + %442 = icmp eq i32 %441, 0 + br i1 %442, label %443, label %"_ZN4core3ptr65drop_in_place$LT$ide_db..imports..import_assets..ImportAssets$GT$17h74c902956edc7254E.exit176" + +443: ; preds = %436 + call void @_ZN5rowan6cursor4free17ha2e1b2c8c83f79d6E(ptr noundef nonnull %438), !noalias !15432 br label %"_ZN4core3ptr65drop_in_place$LT$ide_db..imports..import_assets..ImportAssets$GT$17h74c902956edc7254E.exit176" -443: ; preds = %434 - %444 = landingpad { ptr, i32 } +444: ; preds = %435 + %445 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #53 unreachable -"_ZN4core3ptr65drop_in_place$LT$ide_db..imports..import_assets..ImportAssets$GT$17h74c902956edc7254E.exit176": ; preds = %435, %442 +"_ZN4core3ptr65drop_in_place$LT$ide_db..imports..import_assets..ImportAssets$GT$17h74c902956edc7254E.exit176": ; preds = %436, %443 call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %37) br label %378 -445: ; preds = %423 +446: ; preds = %424 call void @llvm.experimental.noalias.scope.decl(metadata !15433) call void @llvm.experimental.noalias.scope.decl(metadata !15436) call void @llvm.experimental.noalias.scope.decl(metadata !15439) call void @llvm.experimental.noalias.scope.decl(metadata !15442) - %446 = load ptr, ptr %43, align 8, !alias.scope !15445, !nonnull !4, !noundef !4 - %447 = getelementptr inbounds i8, ptr %446, i64 48 - %448 = load i32, ptr %447, align 4, !noalias !15445, !noundef !4 - %449 = add i32 %448, -1 - store i32 %449, ptr %447, align 4, !noalias !15445 - %450 = icmp eq i32 %449, 0 - br i1 %450, label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit.sink.split.i178", label %"_ZN4core3ptr192drop_in_place$LT$rowan..utility_types..NodeOrToken$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$C$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$$GT$17h5b8c8b877dff0639E.llvm.9930132259409388476.exit181" - -"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit.sink.split.i178": ; preds = %445 - invoke void @_ZN5rowan6cursor4free17ha2e1b2c8c83f79d6E(ptr noundef nonnull %446) + %447 = load ptr, ptr %43, align 8, !alias.scope !15445, !nonnull !4, !noundef !4 + %448 = getelementptr inbounds i8, ptr %447, i64 48 + %449 = load i32, ptr %448, align 4, !noalias !15445, !noundef !4 + %450 = add i32 %449, -1 + store i32 %450, ptr %448, align 4, !noalias !15445 + %451 = icmp eq i32 %450, 0 + br i1 %451, label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit.sink.split.i178", label %"_ZN4core3ptr192drop_in_place$LT$rowan..utility_types..NodeOrToken$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$C$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$$GT$17h5b8c8b877dff0639E.llvm.9930132259409388476.exit181" + +"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit.sink.split.i178": ; preds = %446 + invoke void @_ZN5rowan6cursor4free17ha2e1b2c8c83f79d6E(ptr noundef nonnull %447) to label %"_ZN4core3ptr192drop_in_place$LT$rowan..utility_types..NodeOrToken$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$C$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$$GT$17h5b8c8b877dff0639E.llvm.9930132259409388476.exit181" unwind label %376 -451: ; preds = %_ZN11ide_assists8handlers12qualify_path5label17h2317b3ef1f88199aE.exit, %.noexc189, %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.llvm.9930132259409388476.exit7.i, %.noexc187, %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.llvm.9930132259409388476.exit.i - %452 = landingpad { ptr, i32 } +452: ; preds = %_ZN11ide_assists8handlers12qualify_path5label17h2317b3ef1f88199aE.exit, %.noexc189, %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.llvm.9930132259409388476.exit7.i, %.noexc187, %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.llvm.9930132259409388476.exit.i + %453 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN69_$LT$smallvec..SmallVec$LT$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hb62cec03974d62f6E.llvm.16532663377229269005"(ptr noalias noundef nonnull align 8 dereferenceable(32) %408) + invoke void @"_ZN69_$LT$smallvec..SmallVec$LT$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hb62cec03974d62f6E.llvm.16532663377229269005"(ptr noalias noundef nonnull align 8 dereferenceable(32) %409) to label %"_ZN4core3ptr66drop_in_place$LT$ide_db..imports..import_assets..LocatedImport$GT$17h811820cc9738d774E.exit" unwind label %187 -453: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit" +454: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit" call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %21) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(60) %21, ptr noundef nonnull align 8 dereferenceable(60) %.sroa.0216, i64 60, i1 false) store i32 %.sroa.5217.0.copyload219, ptr %.sroa.5217.0..sroa_idx, align 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7, i64 16, i1 false) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %20) store ptr @anon.2485526e7901583daa154d4fb54acfff.242, ptr %20, align 8 - store i64 12, ptr %402, align 8 - store i8 1, ptr %403, align 8 + store i64 12, ptr %403, align 8 + store i8 1, ptr %404, align 8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %19) - %454 = load ptr, ptr %44, align 8, !nonnull !4, !align !30, !noundef !4 + %455 = load ptr, ptr %44, align 8, !nonnull !4, !align !30, !noundef !4 %.val116 = load i64, ptr %94, align 8, !range !15042, !noundef !4 %.not.i = icmp eq i64 %.val116, -9223372036854775808 br i1 %.not.i, label %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.llvm.9930132259409388476.exit7.i, label %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.llvm.9930132259409388476.exit.i -_ZN5alloc3fmt6format17h7ead8f60e83381d7E.llvm.9930132259409388476.exit.i: ; preds = %453 +_ZN5alloc3fmt6format17h7ead8f60e83381d7E.llvm.9930132259409388476.exit.i: ; preds = %454 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10), !noalias !15446 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9), !noalias !15446 - invoke void @_ZN10hir_expand8mod_path7ModPath7display17h18259370b056891aE(ptr noalias nocapture noundef nonnull sret({ { ptr, ptr }, ptr }) align 8 dereferenceable(24) %9, ptr noalias noundef nonnull readonly align 8 dereferenceable(40) %21, ptr noundef nonnull align 1 %454, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.2485526e7901583daa154d4fb54acfff.5.llvm.9930132259409388476) - to label %.noexc187 unwind label %451 + invoke void @_ZN10hir_expand8mod_path7ModPath7display17h18259370b056891aE(ptr noalias nocapture noundef nonnull sret({ { ptr, ptr }, ptr }) align 8 dereferenceable(24) %9, ptr noalias noundef nonnull readonly align 8 dereferenceable(40) %21, ptr noundef nonnull align 1 %455, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.2485526e7901583daa154d4fb54acfff.5.llvm.9930132259409388476) + to label %.noexc187 unwind label %452 .noexc187: ; preds = %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.llvm.9930132259409388476.exit.i store ptr %9, ptr %10, align 8, !noalias !15446 - store ptr @"_ZN68_$LT$hir_expand..mod_path..Display$u20$as$u20$core..fmt..Display$GT$3fmt17he1cd70cce0e55e75E", ptr %404, align 8, !noalias !15446 + store ptr @"_ZN68_$LT$hir_expand..mod_path..Display$u20$as$u20$core..fmt..Display$GT$3fmt17he1cd70cce0e55e75E", ptr %405, align 8, !noalias !15446 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %8), !noalias !15450 store ptr @anon.2485526e7901583daa154d4fb54acfff.248, ptr %8, align 8, !noalias !15461 store i64 2, ptr %.sroa.52.0..sroa_idx.i, align 8, !noalias !15461 @@ -60834,7 +60837,7 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.llvm.9930132259409388476.exit.i: ; pred store i64 1, ptr %.sroa.84.0..sroa_idx.i, align 8, !noalias !15461 store ptr null, ptr %.sroa.105.0..sroa_idx.i, align 8, !noalias !15461 invoke void @_ZN5alloc3fmt6format12format_inner17h20bbaee2ca87fbecE(ptr noalias nocapture noundef nonnull sret({ { { i64, ptr, {} }, i64 } }) align 8 dereferenceable(24) %19, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %8) - to label %.noexc188 unwind label %451 + to label %.noexc188 unwind label %452 .noexc188: ; preds = %.noexc187 call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %8), !noalias !15450 @@ -60842,15 +60845,15 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.llvm.9930132259409388476.exit.i: ; pred call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10), !noalias !15446 br label %_ZN11ide_assists8handlers12qualify_path5label17h2317b3ef1f88199aE.exit -_ZN5alloc3fmt6format17h7ead8f60e83381d7E.llvm.9930132259409388476.exit7.i: ; preds = %453 +_ZN5alloc3fmt6format17h7ead8f60e83381d7E.llvm.9930132259409388476.exit7.i: ; preds = %454 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %12), !noalias !15446 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11), !noalias !15446 - invoke void @_ZN10hir_expand8mod_path7ModPath7display17h18259370b056891aE(ptr noalias nocapture noundef nonnull sret({ { ptr, ptr }, ptr }) align 8 dereferenceable(24) %11, ptr noalias noundef nonnull readonly align 8 dereferenceable(40) %21, ptr noundef nonnull align 1 %454, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.2485526e7901583daa154d4fb54acfff.5.llvm.9930132259409388476) - to label %.noexc189 unwind label %451 + invoke void @_ZN10hir_expand8mod_path7ModPath7display17h18259370b056891aE(ptr noalias nocapture noundef nonnull sret({ { ptr, ptr }, ptr }) align 8 dereferenceable(24) %11, ptr noalias noundef nonnull readonly align 8 dereferenceable(40) %21, ptr noundef nonnull align 1 %455, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.2485526e7901583daa154d4fb54acfff.5.llvm.9930132259409388476) + to label %.noexc189 unwind label %452 .noexc189: ; preds = %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.llvm.9930132259409388476.exit7.i store ptr %11, ptr %12, align 8, !noalias !15446 - store ptr @"_ZN68_$LT$hir_expand..mod_path..Display$u20$as$u20$core..fmt..Display$GT$3fmt17he1cd70cce0e55e75E", ptr %405, align 8, !noalias !15446 + store ptr @"_ZN68_$LT$hir_expand..mod_path..Display$u20$as$u20$core..fmt..Display$GT$3fmt17he1cd70cce0e55e75E", ptr %406, align 8, !noalias !15446 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %7), !noalias !15462 store ptr @anon.2485526e7901583daa154d4fb54acfff.246, ptr %7, align 8, !noalias !15473 store i64 2, ptr %.sroa.5.0..sroa_idx.i183, align 8, !noalias !15473 @@ -60858,7 +60861,7 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.llvm.9930132259409388476.exit7.i: ; pre store i64 1, ptr %.sroa.8.0..sroa_idx.i185, align 8, !noalias !15473 store ptr null, ptr %.sroa.10.0..sroa_idx.i186, align 8, !noalias !15473 invoke void @_ZN5alloc3fmt6format12format_inner17h20bbaee2ca87fbecE(ptr noalias nocapture noundef nonnull sret({ { { i64, ptr, {} }, i64 } }) align 8 dereferenceable(24) %19, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %7) - to label %.noexc190 unwind label %451 + to label %.noexc190 unwind label %452 .noexc190: ; preds = %.noexc189 call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %7), !noalias !15462 @@ -60867,39 +60870,39 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.llvm.9930132259409388476.exit7.i: ; pre br label %_ZN11ide_assists8handlers12qualify_path5label17h2317b3ef1f88199aE.exit _ZN11ide_assists8handlers12qualify_path5label17h2317b3ef1f88199aE.exit: ; preds = %.noexc190, %.noexc188 - %455 = load i32, ptr %32, align 8, !noundef !4 - %456 = load i32, ptr %406, align 4, !noundef !4 + %456 = load i32, ptr %32, align 8, !noundef !4 + %457 = load i32, ptr %407, align 4, !noundef !4 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6), !noalias !15474 store ptr %30, ptr %6, align 8, !noalias !15481 store ptr %32, ptr %.sroa.4222.0..sroa_idx, align 8, !noalias !15481 store ptr %21, ptr %.sroa.5223.0..sroa_idx, align 8, !noalias !15481 - store ptr %407, ptr %.sroa.6224.0..sroa_idx, align 8, !noalias !15481 + store ptr %408, ptr %.sroa.6224.0..sroa_idx, align 8, !noalias !15481 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5), !noalias !15474 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %19, i64 24, i1 false), !alias.scope !15482, !noalias !15489 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4), !noalias !15474 store ptr %6, ptr %4, align 8, !noalias !15474 - %457 = invoke noundef zeroext i1 @_ZN11ide_assists14assist_context7Assists8add_impl17hcb30d9a5208be882E(ptr noalias noundef nonnull align 8 dereferenceable(88) %0, ptr noalias noundef nonnull readonly align 8 dereferenceable_or_null(24) %23, ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %20, ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %5, i32 noundef %455, i32 noundef %456, ptr noundef nonnull align 1 %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.4010691b4cd8ffdd53d965728b4df033.220.llvm.16859448508238014806) - to label %458 unwind label %451 + %458 = invoke noundef zeroext i1 @_ZN11ide_assists14assist_context7Assists8add_impl17hcb30d9a5208be882E(ptr noalias noundef nonnull align 8 dereferenceable(88) %0, ptr noalias noundef nonnull readonly align 8 dereferenceable_or_null(24) %23, ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %20, ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %5, i32 noundef %456, i32 noundef %457, ptr noundef nonnull align 1 %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.4010691b4cd8ffdd53d965728b4df033.220.llvm.16859448508238014806) + to label %459 unwind label %452 -458: ; preds = %_ZN11ide_assists8handlers12qualify_path5label17h2317b3ef1f88199aE.exit +459: ; preds = %_ZN11ide_assists8handlers12qualify_path5label17h2317b3ef1f88199aE.exit call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5), !noalias !15474 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6), !noalias !15474 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4), !noalias !15474 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) - invoke void @"_ZN69_$LT$smallvec..SmallVec$LT$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hb62cec03974d62f6E.llvm.16532663377229269005"(ptr noalias noundef nonnull align 8 dereferenceable(32) %408) - to label %"_ZN4core3ptr66drop_in_place$LT$ide_db..imports..import_assets..LocatedImport$GT$17h811820cc9738d774E.exit193" unwind label %409 + invoke void @"_ZN69_$LT$smallvec..SmallVec$LT$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hb62cec03974d62f6E.llvm.16532663377229269005"(ptr noalias noundef nonnull align 8 dereferenceable(32) %409) + to label %"_ZN4core3ptr66drop_in_place$LT$ide_db..imports..import_assets..LocatedImport$GT$17h811820cc9738d774E.exit193" unwind label %410 -"_ZN4core3ptr66drop_in_place$LT$ide_db..imports..import_assets..LocatedImport$GT$17h811820cc9738d774E.exit193": ; preds = %458 +"_ZN4core3ptr66drop_in_place$LT$ide_db..imports..import_assets..LocatedImport$GT$17h811820cc9738d774E.exit193": ; preds = %459 call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %21) call void @llvm.lifetime.end.p0(i64 60, ptr nonnull %.sroa.0216) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %.sroa.7) call void @llvm.lifetime.start.p0(i64 60, ptr nonnull %.sroa.0216) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %.sroa.7) - %459 = load ptr, ptr %.sroa.6.0..sroa_idx, align 8, !alias.scope !15490, !noalias !15396, !nonnull !4, !noundef !4 - %460 = load ptr, ptr %.sroa.4.0..sroa_idx, align 8, !alias.scope !15490, !noalias !15396, !nonnull !4, !noundef !4 - %461 = icmp eq ptr %460, %459 - br i1 %461, label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit.thread", label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit" + %460 = load ptr, ptr %.sroa.6.0..sroa_idx, align 8, !alias.scope !15490, !noalias !15396, !nonnull !4, !noundef !4 + %461 = load ptr, ptr %.sroa.4.0..sroa_idx, align 8, !alias.scope !15490, !noalias !15396, !nonnull !4, !noundef !4 + %462 = icmp eq ptr %461, %460 + br i1 %462, label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit.thread", label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit" .thread227: ; preds = %"_ZN4core3ptr56drop_in_place$LT$syntax..ast..generated..nodes..Path$GT$17h156ae76580f00612E.exit156", %287, %"_ZN4core3ptr63drop_in_place$LT$syntax..ast..generated..nodes..PathSegment$GT$17h00e6f2e86dc0c42bE.exit147", %228, %"_ZN4core3ptr56drop_in_place$LT$syntax..ast..generated..nodes..Path$GT$17h156ae76580f00612E.exit122", %123, %379, %384, %.thread247, %.thread234, %89 %.pn99232 = phi { ptr, i32 } [ %.pn91, %89 ], [ %lpad.thr_comm, %.thread234 ], [ %lpad.thr_comm245, %.thread247 ], [ %lpad.thr_comm.split-lp246, %384 ], [ %lpad.thr_comm.split-lp246, %379 ], [ %.pn95, %123 ], [ %.pn95, %"_ZN4core3ptr56drop_in_place$LT$syntax..ast..generated..nodes..Path$GT$17h156ae76580f00612E.exit122" ], [ %.pn82, %228 ], [ %.pn82, %"_ZN4core3ptr63drop_in_place$LT$syntax..ast..generated..nodes..PathSegment$GT$17h00e6f2e86dc0c42bE.exit147" ], [ %.pn, %287 ], [ %.pn, %"_ZN4core3ptr56drop_in_place$LT$syntax..ast..generated..nodes..Path$GT$17h156ae76580f00612E.exit156" ] @@ -60907,28 +60910,28 @@ _ZN11ide_assists8handlers12qualify_path5label17h2317b3ef1f88199aE.exit: ; preds invoke void @"_ZN4core3ptr89drop_in_place$LT$alloc..vec..Vec$LT$ide_db..imports..import_assets..LocatedImport$GT$$GT$17ha1d3643b256ff7d9E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %34) #55 to label %53 unwind label %187 -462: ; preds = %53 - %463 = trunc nuw i8 %.066 to i1 - br i1 %463, label %465, label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit195" +463: ; preds = %53 + %464 = trunc nuw i8 %.066 to i1 + br i1 %464, label %466, label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit195" -464: ; preds = %53 +465: ; preds = %53 invoke void @"_ZN4core3ptr192drop_in_place$LT$rowan..utility_types..NodeOrToken$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$C$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$$GT$17h5b8c8b877dff0639E.llvm.9930132259409388476"(ptr noalias noundef nonnull align 8 dereferenceable(16) %36) #55 to label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit195" unwind label %187 -465: ; preds = %462 +466: ; preds = %463 call void @llvm.experimental.noalias.scope.decl(metadata !15492) call void @llvm.experimental.noalias.scope.decl(metadata !15495) call void @llvm.experimental.noalias.scope.decl(metadata !15498) - %466 = load ptr, ptr %43, align 8, !alias.scope !15501, !nonnull !4, !noundef !4 - %467 = getelementptr inbounds i8, ptr %466, i64 48 - %468 = load i32, ptr %467, align 4, !noalias !15501, !noundef !4 - %469 = add i32 %468, -1 - store i32 %469, ptr %467, align 4, !noalias !15501 - %470 = icmp eq i32 %469, 0 - br i1 %470, label %471, label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit195" - -471: ; preds = %465 - invoke void @_ZN5rowan6cursor4free17ha2e1b2c8c83f79d6E(ptr noundef nonnull %466) + %467 = load ptr, ptr %43, align 8, !alias.scope !15501, !nonnull !4, !noundef !4 + %468 = getelementptr inbounds i8, ptr %467, i64 48 + %469 = load i32, ptr %468, align 4, !noalias !15501, !noundef !4 + %470 = add i32 %469, -1 + store i32 %470, ptr %468, align 4, !noalias !15501 + %471 = icmp eq i32 %470, 0 + br i1 %471, label %472, label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit195" + +472: ; preds = %466 + invoke void @_ZN5rowan6cursor4free17ha2e1b2c8c83f79d6E(ptr noundef nonnull %467) to label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit195" unwind label %187 } diff --git a/bench/rust-analyzer-rs/optimized/k5mtltw7nxmadpl.ll b/bench/rust-analyzer-rs/optimized/k5mtltw7nxmadpl.ll index 803998ca2b3..2b6805230ef 100644 --- a/bench/rust-analyzer-rs/optimized/k5mtltw7nxmadpl.ll +++ b/bench/rust-analyzer-rs/optimized/k5mtltw7nxmadpl.ll @@ -41083,263 +41083,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 !7311, !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 !7312 - %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 !7316 - %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 !7320 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 !7324 - %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 !7320 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 !7325 - %48 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %48, ptr %18, align 8, !noalias !7325 - %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 !7325 + %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 !7325 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 !7325 store ptr %22, ptr %17, align 8, !noalias !7325 - %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 !7325 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 !7325 - %53 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %53, ptr %16, align 8, !noalias !7325 - %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 !7325 + %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 !7325 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 !7329 store ptr %22, ptr %15, align 8, !noalias !7329 - %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 !7329 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 !7329 - %61 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %61, ptr %14, align 8, !noalias !7329 - %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 !7329 + %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 !7329 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 !7329 - %64 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %64, ptr %13, align 8, !noalias !7329 - %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 !7329 + %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 !7329 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 !7329 - %67 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %67, ptr %12, align 8, !noalias !7329 - %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 !7329 + %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 !7329 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 !7329 - %70 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %70, ptr %11, align 8, !noalias !7329 - %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 !7329 + %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 !7329 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 !7329 - %73 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %73, ptr %10, align 8, !noalias !7329 - %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 !7329 + %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 !7329 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 !7329 - %76 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %76, ptr %9, align 8, !noalias !7329 - %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 !7329 + %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 !7329 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 !7329 - %79 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %79, ptr %8, align 8, !noalias !7329 - %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 !7329 + %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 !7329 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 !7329 - %82 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %82, ptr %7, align 8, !noalias !7329 - %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 !7329 + %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 !7329 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 !7333 +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 !7333 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 !7334) - %87 = load i64, ptr %22, align 8, !range !147, !alias.scope !7334, !noalias !7337, !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 !7334, !noalias !7337, !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 !7339 store ptr %22, ptr %6, align 8, !noalias !7339 - %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 !7339 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 !7339 - %92 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %92, ptr %5, align 8, !noalias !7339 - %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 !7339 + %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 !7339 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 !7340) - %99 = load i64, ptr %22, align 8, !range !1007, !alias.scope !7340, !noalias !7343, !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 !7340, !noalias !7343, !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 !7345 - %105 = getelementptr inbounds i8, ptr %0, i64 32 - store ptr %105, ptr %4, align 8, !noalias !7345 - %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 !7345 + %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 !7345 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 !7340 +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 !7340 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 !7340 +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 !7340 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 !7345 - %112 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %112, ptr %3, align 8, !noalias !7345 - %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 !7345 + %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 !7345 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 38ce7365480..96dd5da8b86 100644 --- a/bench/rust-analyzer-rs/optimized/lt4f7k28xei9pok.ll +++ b/bench/rust-analyzer-rs/optimized/lt4f7k28xei9pok.ll @@ -22553,7 +22553,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 @@ -50296,47 +50296,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 nonnull 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 nonnull 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 @@ -50345,47 +50348,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 nonnull 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 nonnull 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 @@ -50498,7 +50504,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 nonnull align 8 dereferenceable(40) %24) #37 - to label %common.resume unwind label %125 + to label %common.resume unwind label %126 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 } @@ -50554,12 +50560,12 @@ _ZN7tracing4span4Span7entered17h75bf4b6a528220f6E.exit: ; preds = %.thread, %38, 61: ; preds = %"_ZN4core3ptr51drop_in_place$LT$hir..semantics..SemanticsScope$GT$17hc22b3468f2b27dddE.exit47", %60 ret void -.body: ; preds = %80, %84, %62, %105 - %.pn = phi { ptr, i32 } [ %106, %105 ], [ %63, %62 ], [ %81, %80 ], [ %.pn.i, %84 ] +.body: ; preds = %80, %84, %62, %106 + %.pn = phi { ptr, i32 } [ %107, %106 ], [ %63, %62 ], [ %81, %80 ], [ %.pn.i, %84 ] 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 %125 + to label %"_ZN4core3ptr51drop_in_place$LT$hir..semantics..SemanticsScope$GT$17hc22b3468f2b27dddE.exit" unwind label %126 -62: ; preds = %.noexc44, %123, %"_ZN4core3ptr51drop_in_place$LT$hir..semantics..SemanticsScope$GT$17hc22b3468f2b27dddE.exit20.i", %73, %_ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit.thread.i, %_ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit.i, %56 +62: ; preds = %.noexc44, %124, %"_ZN4core3ptr51drop_in_place$LT$hir..semantics..SemanticsScope$GT$17hc22b3468f2b27dddE.exit20.i", %73, %_ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit.thread.i, %_ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit.i, %56 %63 = landingpad { ptr, i32 } cleanup br label %.body @@ -50718,50 +50724,53 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit.th call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) %102 = load i64, ptr %1, align 8, !range !2917, !noundef !4 %103 = icmp ult i64 %102, -9223372036854775807 - br i1 %103, label %104, label %110 + %104 = and i64 %102, 3 + %switch69 = icmp eq i64 %104, 0 + %switch = or i1 %103, %switch69 + br i1 %switch, label %105, label %111 -104: ; preds = %96 +105: ; preds = %96 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 %107 unwind label %105 + to label %108 unwind label %106 -105: ; preds = %107, %110, %104 - %106 = landingpad { ptr, i32 } +106: ; preds = %108, %111, %105 + %107 = 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) #37 - to label %.body unwind label %125 + to label %.body unwind label %126 -107: ; preds = %110, %104 +108: ; preds = %111, %105 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 %.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 !9367 - %108 = load <16 x i8>, ptr %.sroa.013.sroa.0.0.copyload, align 16, !noalias !9371 + %109 = load <16 x i8>, ptr %.sroa.013.sroa.0.0.copyload, align 16, !noalias !9371 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7), !noalias !9379 store ptr %.sroa.013.sroa.0.0.copyload, ptr %7, align 8, !noalias !9384 %.sroa.54.0..sroa_idx5.i34 = getelementptr inbounds i8, ptr %7, i64 8 - %109 = load <2 x i64>, ptr %.sroa.013.sroa.4.0..sroa_idx, align 8 - store <2 x i64> %109, ptr %.sroa.54.0..sroa_idx5.i34, align 8, !noalias !9384 + %110 = load <2 x i64>, ptr %.sroa.013.sroa.4.0..sroa_idx, align 8 + store <2 x i64> %110, ptr %.sroa.54.0..sroa_idx5.i34, align 8, !noalias !9384 %.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 !9384 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 %112 unwind label %105 + to label %113 unwind label %106 -110: ; preds = %96 +111: ; preds = %96 %.0 = getelementptr inbounds i8, ptr %1, i64 8 - %111 = icmp eq i64 %102, -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 %111, 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 - -112: ; preds = %107 - %113 = getelementptr inbounds i8, ptr %.sroa.013.sroa.0.0.copyload, i64 16 - %114 = icmp slt <16 x i8> %108, zeroinitializer - %115 = bitcast <16 x i1> %114 to i16 - %116 = xor i16 %115, -1 - %117 = extractelement <2 x i64> %109, i64 0 - %118 = getelementptr i8, ptr %.sroa.013.sroa.0.0.copyload, i64 %117 - %119 = getelementptr i8, ptr %118, i64 1 + %112 = icmp eq i64 %104, 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 %112, ptr noalias nocapture noundef nonnull align 8 dereferenceable(40) %17, ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %18) + to label %108 unwind label %106 + +113: ; preds = %108 + %114 = getelementptr inbounds i8, ptr %.sroa.013.sroa.0.0.copyload, i64 16 + %115 = icmp slt <16 x i8> %109, zeroinitializer + %116 = bitcast <16 x i1> %115 to i16 + %117 = xor i16 %116, -1 + %118 = extractelement <2 x i64> %110, i64 0 + %119 = getelementptr i8, ptr %.sroa.013.sroa.0.0.copyload, i64 %118 + %120 = getelementptr i8, ptr %119, i64 1 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7), !noalias !9379 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 !9367 @@ -50769,30 +50778,30 @@ _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 %113, ptr %.sroa.012.sroa.5.0..sroa_idx, align 8 + store ptr %114, 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 %119, ptr %.sroa.012.sroa.6.0..sroa_idx, align 8 + store ptr %120, 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 %116, ptr %.sroa.012.sroa.7.0..sroa_idx, align 8 + store i16 %117, 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) - %120 = getelementptr inbounds i8, ptr %18, i64 8 - %121 = load i64, ptr %120, align 8, !alias.scope !9385, !noalias !9398, !noundef !4 - %122 = icmp eq i64 %121, 0 - br i1 %122, 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 %123 + %121 = getelementptr inbounds i8, ptr %18, i64 8 + %122 = load i64, ptr %121, align 8, !alias.scope !9385, !noalias !9398, !noundef !4 + %123 = icmp eq i64 %122, 0 + br i1 %123, 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 %124 -123: ; preds = %112 +124: ; preds = %113 invoke void @_ZN9hashbrown3raw13RawTableInner13drop_elements17hbe73f7a267db6819E.llvm.17704032041304388331(ptr noalias noundef nonnull align 8 dereferenceable(32) %18) to label %.noexc44 unwind label %62 -.noexc44: ; preds = %123 - %124 = 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 %124, i64 noundef 20, i64 noundef 16) +.noexc44: ; preds = %124 + %125 = 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 %125, 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 %62 -"_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 = %112, %.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 = %113, %.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 @@ -50803,8 +50812,8 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit.th call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %24) br label %61 -125: ; preds = %.body, %105, %"_ZN4core3ptr51drop_in_place$LT$hir..semantics..SemanticsScope$GT$17hc22b3468f2b27dddE.exit" - %126 = landingpad { ptr, i32 } +126: ; preds = %.body, %106, %"_ZN4core3ptr51drop_in_place$LT$hir..semantics..SemanticsScope$GT$17hc22b3468f2b27dddE.exit" + %127 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #36 unreachable diff --git a/bench/rust-analyzer-rs/optimized/ri7xfiosbc1bsgh.ll b/bench/rust-analyzer-rs/optimized/ri7xfiosbc1bsgh.ll index 12478e858cd..8577cc8ec69 100644 --- a/bench/rust-analyzer-rs/optimized/ri7xfiosbc1bsgh.ll +++ b/bench/rust-analyzer-rs/optimized/ri7xfiosbc1bsgh.ll @@ -33024,13 +33024,13 @@ define hidden noundef zeroext i1 @_ZN11ide_assists8handlers11auto_import11auto_i call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %56) br label %335 -72: ; preds = %109, %427, %108, %75 - %.057 = phi i8 [ %.158, %75 ], [ %.360211, %427 ], [ %.663, %108 ], [ %.562, %109 ] - %.049 = phi i8 [ %.150, %75 ], [ %.352212, %427 ], [ %.655, %108 ], [ %.554, %109 ] - %.pn80 = phi { ptr, i32 } [ %76, %75 ], [ %.pn78213, %427 ], [ %.pn76, %108 ], [ %lpad.thr_comm.split-lp, %109 ] +72: ; preds = %109, %434, %108, %75 + %.057 = phi i8 [ %.158, %75 ], [ %.360211, %434 ], [ %.663, %108 ], [ %.562, %109 ] + %.049 = phi i8 [ %.150, %75 ], [ %.352212, %434 ], [ %.655, %108 ], [ %.554, %109 ] + %.pn80 = phi { ptr, i32 } [ %76, %75 ], [ %.pn78213, %434 ], [ %.pn76, %108 ], [ %lpad.thr_comm.split-lp, %109 ] %73 = load i64, ptr %57, align 8, !range !97, !noundef !9 %74 = icmp eq i64 %73, 0 - br i1 %74, label %428, label %430 + br i1 %74, label %435, label %437 75: ; preds = %77, %83, %62 %.158 = phi i8 [ %.259, %83 ], [ 1, %62 ], [ 1, %77 ] @@ -33054,11 +33054,11 @@ define hidden noundef zeroext i1 @_ZN11ide_assists8handlers11auto_import11auto_i %trunc = trunc nuw i64 %82 to i1 br i1 %trunc, label %86, label %84 -83: ; preds = %"_ZN98_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$GT$9from_iter17h337bb76c03edf7caE.exit", %385 - %.259 = phi i8 [ %.865, %385 ], [ 1, %"_ZN98_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$GT$9from_iter17h337bb76c03edf7caE.exit" ] - %.251 = phi i8 [ %.8, %385 ], [ 1, %"_ZN98_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$GT$9from_iter17h337bb76c03edf7caE.exit" ] +83: ; preds = %"_ZN98_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$GT$9from_iter17h337bb76c03edf7caE.exit", %392 + %.259 = phi i8 [ %.865, %392 ], [ 1, %"_ZN98_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$GT$9from_iter17h337bb76c03edf7caE.exit" ] + %.251 = phi i8 [ %.8, %392 ], [ 1, %"_ZN98_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$GT$9from_iter17h337bb76c03edf7caE.exit" ] invoke void @"_ZN4core3ptr89drop_in_place$LT$alloc..vec..Vec$LT$ide_db..imports..import_assets..LocatedImport$GT$$GT$17ha1d3643b256ff7d9E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %55) - to label %386 unwind label %75 + to label %393 unwind label %75 84: ; preds = %81 call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %53) @@ -33133,14 +33133,14 @@ define hidden noundef zeroext i1 @_ZN11ide_assists8handlers11auto_import11auto_i unreachable 108: ; preds = %"_ZN4core3ptr85drop_in_place$LT$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h0f6b849c6d556ca0E.exit" - br i1 %.248, label %427, label %72 + br i1 %.248, label %434, label %72 .thread214: ; preds = %114, %84, %94, %99, %104, %107, %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit.i, %.noexc99, %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit9.i, %.noexc101, %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit14.i, %.noexc103, %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit115" %.461.ph = phi i8 [ %.865, %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit115" ], [ 1, %.noexc103 ], [ 1, %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit14.i ], [ 1, %.noexc101 ], [ 1, %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit9.i ], [ 1, %.noexc99 ], [ 1, %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit.i ], [ 1, %107 ], [ 1, %104 ], [ 1, %99 ], [ 1, %94 ], [ 1, %84 ], [ 1, %114 ] %.453.ph = phi i8 [ %.8, %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit115" ], [ 1, %.noexc103 ], [ 1, %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit14.i ], [ 1, %.noexc101 ], [ 1, %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit9.i ], [ 1, %.noexc99 ], [ 1, %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit.i ], [ 1, %107 ], [ 1, %104 ], [ 1, %99 ], [ 1, %94 ], [ 1, %84 ], [ 1, %114 ] %lpad.thr_comm = landingpad { ptr, i32 } cleanup - br label %427 + br label %434 109: ; preds = %"_ZN4core3ptr61drop_in_place$LT$ide_db..imports..insert_use..ImportScope$GT$17hb1c489ec2db0297bE.exit137" %lpad.thr_comm.split-lp = landingpad { ptr, i32 } @@ -33167,7 +33167,7 @@ define hidden noundef zeroext i1 @_ZN11ide_assists8handlers11auto_import11auto_i %117 = load i64, ptr %115, align 8, !range !4821, !alias.scope !4818, !noalias !4822, !noundef !9 %118 = add i64 %117, 9223372036854775807 %119 = icmp ult i64 %118, 2 - %120 = xor i64 %117, -9223372036854775808 + %120 = and i64 %117, 3 %121 = select i1 %119, i64 %120, i64 0 switch i64 %121, label %122 [ i64 0, label %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit.i @@ -33335,7 +33335,7 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit14.i: ; preds = %116 162: ; preds = %156 invoke void @_ZN5rowan6cursor4free17ha2e1b2c8c83f79d6E(ptr noundef nonnull %143) - to label %"_ZN4core3ptr85drop_in_place$LT$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h0f6b849c6d556ca0E.exit" unwind label %372 + to label %"_ZN4core3ptr85drop_in_place$LT$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h0f6b849c6d556ca0E.exit" unwind label %379 163: ; preds = %149 %164 = extractvalue { i32, i1 } %152, 0 @@ -33370,7 +33370,7 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit14.i: ; preds = %116 %.248 = phi i1 [ %.3, %176 ], [ true, %162 ], [ true, %156 ], [ true, %185 ], [ true, %178 ], [ %.4, %"_ZN4core3ptr60drop_in_place$LT$syntax..ast..generated..nodes..StmtList$GT$17h41b9aeca87451f13E.exit.sink.split.i" ], [ %.4, %"_ZN4core3ptr85drop_in_place$LT$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h0f6b849c6d556ca0E.exit123" ] %.pn76 = phi { ptr, i32 } [ %177, %176 ], [ %157, %162 ], [ %157, %156 ], [ %179, %185 ], [ %179, %178 ], [ %.pn74, %"_ZN4core3ptr60drop_in_place$LT$syntax..ast..generated..nodes..StmtList$GT$17h41b9aeca87451f13E.exit.sink.split.i" ], [ %.pn74, %"_ZN4core3ptr85drop_in_place$LT$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h0f6b849c6d556ca0E.exit123" ] invoke void @"_ZN4core3ptr48drop_in_place$LT$ide_db..assists..GroupLabel$GT$17h6d9e9a2eeeb58332E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %52) #37 - to label %108 unwind label %372 + to label %108 unwind label %379 176: ; preds = %"_ZN4core3ptr60drop_in_place$LT$syntax..ast..generated..nodes..StmtList$GT$17h41b9aeca87451f13E.exit.sink.split.i135", %204, %175, %169 %.764 = phi i8 [ 1, %169 ], [ 1, %175 ], [ %.562, %204 ], [ %.562, %"_ZN4core3ptr60drop_in_place$LT$syntax..ast..generated..nodes..StmtList$GT$17h41b9aeca87451f13E.exit.sink.split.i135" ] @@ -33396,7 +33396,7 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit14.i: ; preds = %116 185: ; preds = %178 invoke void @_ZN5rowan6cursor4free17ha2e1b2c8c83f79d6E(ptr noundef nonnull %180) - to label %"_ZN4core3ptr85drop_in_place$LT$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h0f6b849c6d556ca0E.exit" unwind label %372 + to label %"_ZN4core3ptr85drop_in_place$LT$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h0f6b849c6d556ca0E.exit" unwind label %379 186: ; preds = %"_ZN4core3ptr85drop_in_place$LT$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h0f6b849c6d556ca0E.exit108" %187 = extractvalue { i64, ptr } %155, 0 @@ -33452,7 +33452,7 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit14.i: ; preds = %116 "_ZN4core3ptr60drop_in_place$LT$syntax..ast..generated..nodes..StmtList$GT$17h41b9aeca87451f13E.exit.sink.split.i": ; preds = %"_ZN4core3ptr85drop_in_place$LT$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h0f6b849c6d556ca0E.exit123" invoke void @_ZN5rowan6cursor4free17ha2e1b2c8c83f79d6E(ptr noundef nonnull %.val93) - to label %"_ZN4core3ptr85drop_in_place$LT$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h0f6b849c6d556ca0E.exit" unwind label %372 + to label %"_ZN4core3ptr85drop_in_place$LT$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h0f6b849c6d556ca0E.exit" unwind label %379 209: ; preds = %302, %251, %.noexc118, %215, %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit113", %197, %214 %.5 = phi i1 [ true, %214 ], [ true, %197 ], [ true, %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit113" ], [ true, %215 ], [ true, %.noexc118 ], [ true, %251 ], [ false, %302 ] @@ -33549,7 +33549,7 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit14.i: ; preds = %116 246: ; preds = %240 invoke void @_ZN5rowan6cursor4free17ha2e1b2c8c83f79d6E(ptr noundef nonnull %224) - to label %"_ZN4core3ptr85drop_in_place$LT$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h0f6b849c6d556ca0E.exit123" unwind label %372 + to label %"_ZN4core3ptr85drop_in_place$LT$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h0f6b849c6d556ca0E.exit123" unwind label %379 "_ZN5rowan3api20SyntaxToken$LT$L$GT$6parent17h54fc3953c7d7acbcE.exit121": ; preds = %237, %227 store ptr %229, ptr %49, align 8 @@ -33595,7 +33595,7 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit14.i: ; preds = %116 262: ; preds = %257 invoke void @_ZN5rowan6cursor4free17ha2e1b2c8c83f79d6E(ptr noundef nonnull %.val95) - to label %"_ZN4core3ptr85drop_in_place$LT$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h0f6b849c6d556ca0E.exit123" unwind label %372 + to label %"_ZN4core3ptr85drop_in_place$LT$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h0f6b849c6d556ca0E.exit123" unwind label %379 263: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit.thread", %271, %268, %252 %.7 = phi i1 [ true, %252 ], [ true, %268 ], [ true, %271 ], [ false, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit.thread" ] @@ -33703,15 +33703,15 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit14.i: ; preds = %116 "_ZN4core3ptr50drop_in_place$LT$hir_expand..mod_path..ModPath$GT$17hb964a80614b04140E.exit": ; preds = %336, %291 %.pn70 = phi { ptr, i32 } [ %292, %291 ], [ %.pn, %336 ] invoke void @"_ZN86_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd4ebadb0e44b0a68E.llvm.16532663377229269005"(ptr noalias noundef nonnull align 8 dereferenceable(32) %46) - to label %.body unwind label %372 + to label %.body unwind label %379 -291: ; preds = %349 +291: ; preds = %352 %292 = landingpad { ptr, i32 } cleanup br label %"_ZN4core3ptr50drop_in_place$LT$hir_expand..mod_path..ModPath$GT$17hb964a80614b04140E.exit" "_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit": ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit.lr.ph", %"_ZN4core3ptr50drop_in_place$LT$hir_expand..mod_path..ModPath$GT$17hb964a80614b04140E.exit144" - %293 = phi ptr [ %.sroa.4184.0.copyload, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit.lr.ph" ], [ %375, %"_ZN4core3ptr50drop_in_place$LT$hir_expand..mod_path..ModPath$GT$17hb964a80614b04140E.exit144" ] + %293 = phi ptr [ %.sroa.4184.0.copyload, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit.lr.ph" ], [ %382, %"_ZN4core3ptr50drop_in_place$LT$hir_expand..mod_path..ModPath$GT$17hb964a80614b04140E.exit144" ] call void @llvm.experimental.noalias.scope.decl(metadata !4957) %294 = getelementptr inbounds i8, ptr %293, i64 80 store ptr %294, ptr %.sroa.4.0..sroa_idx, align 8, !alias.scope !4957, !noalias !4960 @@ -33830,8 +33830,8 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit14.i: ; preds = %116 call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #38 unreachable -common.resume: ; preds = %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit173", %393, %401, %316, %324 - %common.resume.op = phi { ptr, i32 } [ %317, %324 ], [ %317, %316 ], [ %394, %401 ], [ %394, %393 ], [ %.pn82, %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit173" ] +common.resume: ; preds = %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit173", %400, %408, %316, %324 + %common.resume.op = phi { ptr, i32 } [ %317, %324 ], [ %317, %316 ], [ %401, %408 ], [ %401, %400 ], [ %.pn82, %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit173" ] resume { ptr, i32 } %common.resume.op "_ZN4core3ptr65drop_in_place$LT$ide_db..imports..import_assets..ImportAssets$GT$17h74c902956edc7254E.exit": ; preds = %325, %332 @@ -33842,12 +33842,12 @@ common.resume: ; preds = %"_ZN4core3ptr84drop %.1 = phi i1 [ false, %71 ], [ false, %"_ZN4core3ptr65drop_in_place$LT$ide_db..imports..import_assets..ImportAssets$GT$17h74c902956edc7254E.exit167" ], [ true, %"_ZN4core3ptr65drop_in_place$LT$ide_db..imports..import_assets..ImportAssets$GT$17h74c902956edc7254E.exit" ] ret i1 %.1 -336: ; preds = %359, %337 - %.pn = phi { ptr, i32 } [ %338, %337 ], [ %360, %359 ] +336: ; preds = %366, %337 + %.pn = phi { ptr, i32 } [ %338, %337 ], [ %367, %366 ] invoke void @"_ZN69_$LT$smallvec..SmallVec$LT$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hb62cec03974d62f6E.llvm.16532663377229269005"(ptr noalias noundef nonnull align 8 dereferenceable(32) %290) - to label %"_ZN4core3ptr50drop_in_place$LT$hir_expand..mod_path..ModPath$GT$17hb964a80614b04140E.exit" unwind label %372 + to label %"_ZN4core3ptr50drop_in_place$LT$hir_expand..mod_path..ModPath$GT$17hb964a80614b04140E.exit" unwind label %379 -337: ; preds = %364, %356, %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit, %341, %352, %350, %344, %339 +337: ; preds = %371, %363, %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit, %341, %355, %353, %344, %339 %338 = landingpad { ptr, i32 } cleanup br label %336 @@ -33907,38 +33907,46 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit: ; preds = %341 346: ; preds = %344 %347 = load i64, ptr %345, align 8, !range !4821, !noundef !9 %348 = add i64 %347, 9223372036854775807 - %switch90 = icmp ult i64 %348, 2 - br i1 %switch90, label %350, label %349 - -349: ; preds = %346, %371 + %349 = icmp ult i64 %348, 2 + %350 = and i64 %347, 3 + %351 = add nsw i64 %350, -1 + %switch90225 = icmp ult i64 %351, 2 + %switch90 = select i1 %349, i1 %switch90225, i1 false + br i1 %switch90, label %353, label %352 + +352: ; preds = %346, %378 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %44) invoke void @"_ZN69_$LT$smallvec..SmallVec$LT$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hb62cec03974d62f6E.llvm.16532663377229269005"(ptr noalias noundef nonnull align 8 dereferenceable(32) %290) to label %"_ZN4core3ptr50drop_in_place$LT$hir_expand..mod_path..ModPath$GT$17hb964a80614b04140E.exit144" unwind label %291 -350: ; preds = %346 - %351 = invoke noundef align 8 dereferenceable(56) ptr @_ZN6ide_db7imports13import_assets12ImportAssets16import_candidate17hb2af13da83692567E(ptr noalias noundef nonnull readonly align 8 dereferenceable(80) %58) - to label %352 unwind label %337 +353: ; preds = %346 + %354 = invoke noundef align 8 dereferenceable(56) ptr @_ZN6ide_db7imports13import_assets12ImportAssets16import_candidate17hb2af13da83692567E(ptr noalias noundef nonnull readonly align 8 dereferenceable(80) %58) + to label %355 unwind label %337 -352: ; preds = %350 +355: ; preds = %353 %.067 = getelementptr inbounds i8, ptr %345, i64 8 - %353 = load i64, ptr %351, align 8, !range !4821, !noundef !9 + %356 = load i64, ptr %354, align 8, !range !4821, !noundef !9 + %357 = add i64 %356, 9223372036854775807 + %358 = icmp ult i64 %357, 2 + %359 = and i64 %356, 3 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %39) - %354 = icmp eq i64 %353, -9223372036854775806 - %spec.select = select i1 %354, ptr @anon.a366366ced9f536ca000c5a8a0069d12.197, ptr @anon.a366366ced9f536ca000c5a8a0069d12.198 - %spec.select228 = select i1 %354, i64 6, i64 4 + %360 = icmp eq i64 %359, 2 + %361 = and i1 %358, %360 + %spec.select = select i1 %361, ptr @anon.a366366ced9f536ca000c5a8a0069d12.197, ptr @anon.a366366ced9f536ca000c5a8a0069d12.198 + %spec.select228 = select i1 %361, i64 6, i64 4 store ptr %spec.select, ptr %39, align 8 store i64 %spec.select228, ptr %282, align 8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %38) call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %35) - %355 = invoke { ptr, i64 } @_ZN6ide_db7imports13import_assets12NameToImport4text17hb96880d9e13cfac0E(ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %.067) - to label %356 unwind label %337 - -356: ; preds = %352 - %357 = extractvalue { ptr, i64 } %355, 0 - %358 = extractvalue { ptr, i64 } %355, 1 - store ptr %357, ptr %35, align 8 - store i64 %358, ptr %283, align 8 + %362 = invoke { ptr, i64 } @_ZN6ide_db7imports13import_assets12NameToImport4text17hb96880d9e13cfac0E(ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %.067) + to label %363 unwind label %337 + +363: ; preds = %355 + %364 = extractvalue { ptr, i64 } %362, 0 + %365 = extractvalue { ptr, i64 } %362, 1 + store ptr %364, ptr %35, align 8 + store i64 %365, ptr %283, align 8 store ptr %39, ptr %36, align 8 store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h248f9878cf6d1202E", ptr %284, align 8 store ptr %35, ptr %285, align 8 @@ -33950,15 +33958,15 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit: ; preds = %341 store i64 2, ptr %.sroa.8197.0..sroa_idx, align 8, !noalias !5043 store ptr null, ptr %.sroa.10198.0..sroa_idx, align 8, !noalias !5043 invoke void @_ZN5alloc3fmt6format12format_inner17h20bbaee2ca87fbecE(ptr noalias nocapture noundef nonnull sret({ { { i64, ptr, {} }, i64 } }) align 8 dereferenceable(24) %37, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %10) - to label %361 unwind label %337 + to label %368 unwind label %337 -359: ; preds = %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit158, %361 - %360 = landingpad { ptr, i32 } +366: ; preds = %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit158, %368 + %367 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr48drop_in_place$LT$ide_db..assists..GroupLabel$GT$17h6d9e9a2eeeb58332E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %38) #37 - to label %336 unwind label %372 + to label %336 unwind label %379 -361: ; preds = %356 +368: ; preds = %363 call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %10), !noalias !5032 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) @@ -33973,24 +33981,24 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit: ; preds = %341 store i64 1, ptr %.sroa.8203.0..sroa_idx, align 8, !noalias !5055 store ptr null, ptr %.sroa.10204.0..sroa_idx, align 8, !noalias !5055 invoke void @_ZN5alloc3fmt6format12format_inner17h20bbaee2ca87fbecE(ptr noalias nocapture noundef nonnull sret({ { { i64, ptr, {} }, i64 } }) align 8 dereferenceable(24) %34, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %9) - to label %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit158 unwind label %359 + to label %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit158 unwind label %366 -_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit158: ; preds = %361 +_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit158: ; preds = %368 call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %9), !noalias !5044 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) - %362 = load ptr, ptr %1, align 8, !nonnull !9, !align !64, !noundef !9 + %369 = load ptr, ptr %1, align 8, !nonnull !9, !align !64, !noundef !9 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8), !noalias !5056 store ptr %51, ptr %8, align 8, !noalias !5063 store ptr %45, ptr %.sroa.4207.0..sroa_idx, align 8, !noalias !5063 - store ptr %362, ptr %.sroa.5208.0..sroa_idx, align 8, !noalias !5063 + store ptr %369, ptr %.sroa.5208.0..sroa_idx, align 8, !noalias !5063 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7), !noalias !5056 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(24) %34, i64 24, i1 false), !alias.scope !5064, !noalias !5071 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6), !noalias !5056 store ptr %8, ptr %6, align 8, !noalias !5056 - %363 = invoke noundef zeroext i1 @_ZN11ide_assists14assist_context7Assists8add_impl17hcb30d9a5208be882E(ptr noalias noundef nonnull align 8 dereferenceable(88) %0, ptr noalias noundef nonnull readonly align 8 dereferenceable_or_null(24) %38, ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %43, ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %7, i32 noundef %.sroa.02.0, i32 noundef %.sroa.7.0, ptr noundef nonnull align 1 %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.4010691b4cd8ffdd53d965728b4df033.222.llvm.16859448508238014806) - to label %364 unwind label %359 + %370 = invoke noundef zeroext i1 @_ZN11ide_assists14assist_context7Assists8add_impl17hcb30d9a5208be882E(ptr noalias noundef nonnull align 8 dereferenceable(88) %0, ptr noalias noundef nonnull readonly align 8 dereferenceable_or_null(24) %38, ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %43, ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %7, i32 noundef %.sroa.02.0, i32 noundef %.sroa.7.0, ptr noundef nonnull align 1 %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.4010691b4cd8ffdd53d965728b4df033.222.llvm.16859448508238014806) + to label %371 unwind label %366 -364: ; preds = %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit158 +371: ; preds = %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit158 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7), !noalias !5056 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8), !noalias !5056 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6), !noalias !5056 @@ -33998,40 +34006,40 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit158: ; preds = %361 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h4f242a27d6d0fe5cE.llvm.16532663377229269005"(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) %38) to label %.noexc161 unwind label %337 -.noexc161: ; preds = %364 - %365 = load i64, ptr %288, align 8, !range !1091, !noalias !5072, !noundef !9 - %.not.i.i.i.i.i160 = icmp eq i64 %365, 0 - br i1 %.not.i.i.i.i.i160, label %371, label %366 +.noexc161: ; preds = %371 + %372 = load i64, ptr %288, align 8, !range !1091, !noalias !5072, !noundef !9 + %.not.i.i.i.i.i160 = icmp eq i64 %372, 0 + br i1 %.not.i.i.i.i.i160, label %378, label %373 -366: ; preds = %.noexc161 - %367 = load i64, ptr %289, align 8, !noalias !5072, !noundef !9 - %368 = icmp eq i64 %367, 0 - br i1 %368, label %371, label %369 +373: ; preds = %.noexc161 + %374 = load i64, ptr %289, align 8, !noalias !5072, !noundef !9 + %375 = icmp eq i64 %374, 0 + br i1 %375, label %378, label %376 -369: ; preds = %366 - %370 = load ptr, ptr %5, align 8, !noalias !5072, !nonnull !9, !noundef !9 - call void @__rust_dealloc(ptr noundef nonnull %370, i64 noundef %367, i64 noundef %365) #39 - br label %371 +376: ; preds = %373 + %377 = load ptr, ptr %5, align 8, !noalias !5072, !nonnull !9, !noundef !9 + call void @__rust_dealloc(ptr noundef nonnull %377, i64 noundef %374, i64 noundef %372) #39 + br label %378 -371: ; preds = %369, %366, %.noexc161 +378: ; preds = %376, %373, %.noexc161 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5), !noalias !5072 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %38) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) - br label %349 + br label %352 -372: ; preds = %.invoke, %336, %"_ZN4core3ptr50drop_in_place$LT$hir_expand..mod_path..ModPath$GT$17hb964a80614b04140E.exit", %262, %246, %"_ZN4core3ptr60drop_in_place$LT$syntax..ast..generated..nodes..StmtList$GT$17h41b9aeca87451f13E.exit.sink.split.i", %185, %162, %427, %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit173", %359, %"_ZN4core3ptr85drop_in_place$LT$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h0f6b849c6d556ca0E.exit" - %373 = landingpad { ptr, i32 } +379: ; preds = %.invoke, %336, %"_ZN4core3ptr50drop_in_place$LT$hir_expand..mod_path..ModPath$GT$17hb964a80614b04140E.exit", %262, %246, %"_ZN4core3ptr60drop_in_place$LT$syntax..ast..generated..nodes..StmtList$GT$17h41b9aeca87451f13E.exit.sink.split.i", %185, %162, %434, %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit173", %366, %"_ZN4core3ptr85drop_in_place$LT$rowan..api..SyntaxToken$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h0f6b849c6d556ca0E.exit" + %380 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #38 unreachable -"_ZN4core3ptr50drop_in_place$LT$hir_expand..mod_path..ModPath$GT$17hb964a80614b04140E.exit144": ; preds = %349 +"_ZN4core3ptr50drop_in_place$LT$hir_expand..mod_path..ModPath$GT$17hb964a80614b04140E.exit144": ; preds = %352 call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %45) call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %30) - %374 = load ptr, ptr %.sroa.6.0..sroa_idx, align 8, !alias.scope !5083, !noalias !4960, !nonnull !9, !noundef !9 - %375 = load ptr, ptr %.sroa.4.0..sroa_idx, align 8, !alias.scope !5083, !noalias !4960, !nonnull !9, !noundef !9 - %376 = icmp eq ptr %375, %374 - br i1 %376, label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit.thread", label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit" + %381 = load ptr, ptr %.sroa.6.0..sroa_idx, align 8, !alias.scope !5083, !noalias !4960, !nonnull !9, !noundef !9 + %382 = load ptr, ptr %.sroa.4.0..sroa_idx, align 8, !alias.scope !5083, !noalias !4960, !nonnull !9, !noundef !9 + %383 = icmp eq ptr %382, %381 + br i1 %383, label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit.thread", label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hdf7e32351bbf8863E.exit" "_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit115": ; preds = %175, %170, %198, %204 %.865 = phi i8 [ %.562, %204 ], [ %.562, %198 ], [ 1, %170 ], [ 1, %175 ] @@ -34043,174 +34051,174 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit158: ; preds = %361 to label %.noexc164 unwind label %.thread214 .noexc164: ; preds = %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit115" - %377 = getelementptr inbounds i8, ptr %4, i64 8 - %378 = load i64, ptr %377, align 8, !range !1091, !noalias !5085, !noundef !9 - %.not.i.i.i.i.i163 = icmp eq i64 %378, 0 - br i1 %.not.i.i.i.i.i163, label %385, label %379 - -379: ; preds = %.noexc164 - %380 = getelementptr inbounds i8, ptr %4, i64 16 - %381 = load i64, ptr %380, align 8, !noalias !5085, !noundef !9 - %382 = icmp eq i64 %381, 0 - br i1 %382, label %385, label %383 - -383: ; preds = %379 - %384 = load ptr, ptr %4, align 8, !noalias !5085, !nonnull !9, !noundef !9 - call void @__rust_dealloc(ptr noundef nonnull %384, i64 noundef %381, i64 noundef %378) #39 - br label %385 - -385: ; preds = %383, %379, %.noexc164 + %384 = getelementptr inbounds i8, ptr %4, i64 8 + %385 = load i64, ptr %384, align 8, !range !1091, !noalias !5085, !noundef !9 + %.not.i.i.i.i.i163 = icmp eq i64 %385, 0 + br i1 %.not.i.i.i.i.i163, label %392, label %386 + +386: ; preds = %.noexc164 + %387 = getelementptr inbounds i8, ptr %4, i64 16 + %388 = load i64, ptr %387, align 8, !noalias !5085, !noundef !9 + %389 = icmp eq i64 %388, 0 + br i1 %389, label %392, label %390 + +390: ; preds = %386 + %391 = load ptr, ptr %4, align 8, !noalias !5085, !nonnull !9, !noundef !9 + call void @__rust_dealloc(ptr noundef nonnull %391, i64 noundef %388, i64 noundef %385) #39 + br label %392 + +392: ; preds = %390, %386, %.noexc164 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4), !noalias !5085 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %52) br label %83 -386: ; preds = %83 +393: ; preds = %83 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %55) - %387 = load i64, ptr %57, align 8, !range !97, !noundef !9 - %388 = icmp eq i64 %387, 0 - br i1 %388, label %389, label %391 + %394 = load i64, ptr %57, align 8, !range !97, !noundef !9 + %395 = icmp eq i64 %394, 0 + br i1 %395, label %396, label %398 -389: ; preds = %386 - %390 = trunc nuw i8 %.259 to i1 - br i1 %390, label %412, label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit169" +396: ; preds = %393 + %397 = trunc nuw i8 %.259 to i1 + br i1 %397, label %419, label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit169" -391: ; preds = %386 - %392 = trunc nuw i8 %.251 to i1 - br i1 %392, label %420, label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit169" +398: ; preds = %393 + %399 = trunc nuw i8 %.251 to i1 + br i1 %399, label %427, label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit169" -"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit169": ; preds = %.invoke229, %420, %412, %391, %389 +"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit169": ; preds = %.invoke229, %427, %419, %398, %396 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %57) invoke void @"_ZN4core3ptr68drop_in_place$LT$ide_db..imports..import_assets..ImportCandidate$GT$17ha155945c5f15ee8fE.llvm.16532663377229269005"(ptr noalias noundef nonnull align 8 dereferenceable(56) %58) - to label %402 unwind label %393 + to label %409 unwind label %400 -393: ; preds = %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit169" - %394 = landingpad { ptr, i32 } +400: ; preds = %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit169" + %401 = landingpad { ptr, i32 } cleanup - %395 = getelementptr inbounds i8, ptr %58, i64 56 + %402 = getelementptr inbounds i8, ptr %58, i64 56 call void @llvm.experimental.noalias.scope.decl(metadata !5096) call void @llvm.experimental.noalias.scope.decl(metadata !5099) call void @llvm.experimental.noalias.scope.decl(metadata !5102) - %396 = load ptr, ptr %395, align 8, !alias.scope !5105, !nonnull !9, !noundef !9 - %397 = getelementptr inbounds i8, ptr %396, i64 48 - %398 = load i32, ptr %397, align 4, !noalias !5108, !noundef !9 - %399 = add i32 %398, -1 - store i32 %399, ptr %397, align 4, !noalias !5108 - %400 = icmp eq i32 %399, 0 - br i1 %400, label %401, label %common.resume - -401: ; preds = %393 - invoke void @_ZN5rowan6cursor4free17ha2e1b2c8c83f79d6E(ptr noundef nonnull %396) - to label %common.resume unwind label %410 - -402: ; preds = %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit169" - %403 = getelementptr inbounds i8, ptr %58, i64 56 + %403 = load ptr, ptr %402, align 8, !alias.scope !5105, !nonnull !9, !noundef !9 + %404 = getelementptr inbounds i8, ptr %403, i64 48 + %405 = load i32, ptr %404, align 4, !noalias !5108, !noundef !9 + %406 = add i32 %405, -1 + store i32 %406, ptr %404, align 4, !noalias !5108 + %407 = icmp eq i32 %406, 0 + br i1 %407, label %408, label %common.resume + +408: ; preds = %400 + invoke void @_ZN5rowan6cursor4free17ha2e1b2c8c83f79d6E(ptr noundef nonnull %403) + to label %common.resume unwind label %417 + +409: ; preds = %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit169" + %410 = getelementptr inbounds i8, ptr %58, i64 56 call void @llvm.experimental.noalias.scope.decl(metadata !5109) call void @llvm.experimental.noalias.scope.decl(metadata !5112) call void @llvm.experimental.noalias.scope.decl(metadata !5115) - %404 = load ptr, ptr %403, align 8, !alias.scope !5118, !nonnull !9, !noundef !9 - %405 = getelementptr inbounds i8, ptr %404, i64 48 - %406 = load i32, ptr %405, align 4, !noalias !5119, !noundef !9 - %407 = add i32 %406, -1 - store i32 %407, ptr %405, align 4, !noalias !5119 - %408 = icmp eq i32 %407, 0 - br i1 %408, label %409, label %"_ZN4core3ptr65drop_in_place$LT$ide_db..imports..import_assets..ImportAssets$GT$17h74c902956edc7254E.exit167" - -409: ; preds = %402 - call void @_ZN5rowan6cursor4free17ha2e1b2c8c83f79d6E(ptr noundef nonnull %404), !noalias !5119 + %411 = load ptr, ptr %410, align 8, !alias.scope !5118, !nonnull !9, !noundef !9 + %412 = getelementptr inbounds i8, ptr %411, i64 48 + %413 = load i32, ptr %412, align 4, !noalias !5119, !noundef !9 + %414 = add i32 %413, -1 + store i32 %414, ptr %412, align 4, !noalias !5119 + %415 = icmp eq i32 %414, 0 + br i1 %415, label %416, label %"_ZN4core3ptr65drop_in_place$LT$ide_db..imports..import_assets..ImportAssets$GT$17h74c902956edc7254E.exit167" + +416: ; preds = %409 + call void @_ZN5rowan6cursor4free17ha2e1b2c8c83f79d6E(ptr noundef nonnull %411), !noalias !5119 br label %"_ZN4core3ptr65drop_in_place$LT$ide_db..imports..import_assets..ImportAssets$GT$17h74c902956edc7254E.exit167" -410: ; preds = %401 - %411 = landingpad { ptr, i32 } +417: ; preds = %408 + %418 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #38 unreachable -"_ZN4core3ptr65drop_in_place$LT$ide_db..imports..import_assets..ImportAssets$GT$17h74c902956edc7254E.exit167": ; preds = %402, %409 +"_ZN4core3ptr65drop_in_place$LT$ide_db..imports..import_assets..ImportAssets$GT$17h74c902956edc7254E.exit167": ; preds = %409, %416 call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %58) br label %335 -412: ; preds = %389 +419: ; preds = %396 call void @llvm.experimental.noalias.scope.decl(metadata !5120) call void @llvm.experimental.noalias.scope.decl(metadata !5123) call void @llvm.experimental.noalias.scope.decl(metadata !5126) - %413 = load ptr, ptr %63, align 8, !alias.scope !5129, !nonnull !9, !noundef !9 - %414 = getelementptr inbounds i8, ptr %413, i64 48 - %415 = load i32, ptr %414, align 4, !noalias !5129, !noundef !9 - %416 = add i32 %415, -1 - store i32 %416, ptr %414, align 4, !noalias !5129 - %417 = icmp eq i32 %416, 0 - br i1 %417, label %.invoke229, label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit169" - -"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit173": ; preds = %.invoke, %438, %432, %430, %428, %418 - %.pn82 = phi { ptr, i32 } [ %419, %418 ], [ %.pn80, %428 ], [ %.pn80, %430 ], [ %.pn80, %432 ], [ %.pn80, %438 ], [ %.pn80, %.invoke ] + %420 = load ptr, ptr %63, align 8, !alias.scope !5129, !nonnull !9, !noundef !9 + %421 = getelementptr inbounds i8, ptr %420, i64 48 + %422 = load i32, ptr %421, align 4, !noalias !5129, !noundef !9 + %423 = add i32 %422, -1 + store i32 %423, ptr %421, align 4, !noalias !5129 + %424 = icmp eq i32 %423, 0 + br i1 %424, label %.invoke229, label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit169" + +"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit173": ; preds = %.invoke, %445, %439, %437, %435, %425 + %.pn82 = phi { ptr, i32 } [ %426, %425 ], [ %.pn80, %435 ], [ %.pn80, %437 ], [ %.pn80, %439 ], [ %.pn80, %445 ], [ %.pn80, %.invoke ] invoke void @"_ZN4core3ptr65drop_in_place$LT$ide_db..imports..import_assets..ImportAssets$GT$17h74c902956edc7254E"(ptr noalias noundef nonnull align 8 dereferenceable(80) %58) #37 - to label %common.resume unwind label %372 + to label %common.resume unwind label %379 -418: ; preds = %.invoke229 - %419 = landingpad { ptr, i32 } +425: ; preds = %.invoke229 + %426 = landingpad { ptr, i32 } cleanup br label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit173" -420: ; preds = %391 +427: ; preds = %398 call void @llvm.experimental.noalias.scope.decl(metadata !5130) call void @llvm.experimental.noalias.scope.decl(metadata !5133) call void @llvm.experimental.noalias.scope.decl(metadata !5136) - %421 = load ptr, ptr %63, align 8, !alias.scope !5139, !nonnull !9, !noundef !9 - %422 = getelementptr inbounds i8, ptr %421, i64 48 - %423 = load i32, ptr %422, align 4, !noalias !5139, !noundef !9 - %424 = add i32 %423, -1 - store i32 %424, ptr %422, align 4, !noalias !5139 - %425 = icmp eq i32 %424, 0 - br i1 %425, label %.invoke229, label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit169" - -.invoke229: ; preds = %412, %420 - %426 = phi ptr [ %421, %420 ], [ %413, %412 ] - invoke void @_ZN5rowan6cursor4free17ha2e1b2c8c83f79d6E(ptr noundef nonnull %426) - to label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit169" unwind label %418 - -427: ; preds = %.thread214, %108 + %428 = load ptr, ptr %63, align 8, !alias.scope !5139, !nonnull !9, !noundef !9 + %429 = getelementptr inbounds i8, ptr %428, i64 48 + %430 = load i32, ptr %429, align 4, !noalias !5139, !noundef !9 + %431 = add i32 %430, -1 + store i32 %431, ptr %429, align 4, !noalias !5139 + %432 = icmp eq i32 %431, 0 + br i1 %432, label %.invoke229, label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit169" + +.invoke229: ; preds = %419, %427 + %433 = phi ptr [ %428, %427 ], [ %420, %419 ] + invoke void @_ZN5rowan6cursor4free17ha2e1b2c8c83f79d6E(ptr noundef nonnull %433) + to label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit169" unwind label %425 + +434: ; preds = %.thread214, %108 %.pn78213 = phi { ptr, i32 } [ %.pn76, %108 ], [ %lpad.thr_comm, %.thread214 ] %.352212 = phi i8 [ %.655, %108 ], [ %.453.ph, %.thread214 ] %.360211 = phi i8 [ %.663, %108 ], [ %.461.ph, %.thread214 ] invoke void @"_ZN4core3ptr89drop_in_place$LT$alloc..vec..Vec$LT$ide_db..imports..import_assets..LocatedImport$GT$$GT$17ha1d3643b256ff7d9E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %55) #37 - to label %72 unwind label %372 + to label %72 unwind label %379 -428: ; preds = %72 - %429 = trunc nuw i8 %.057 to i1 - br i1 %429, label %432, label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit173" +435: ; preds = %72 + %436 = trunc nuw i8 %.057 to i1 + br i1 %436, label %439, label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit173" -430: ; preds = %72 - %431 = trunc nuw i8 %.049 to i1 - br i1 %431, label %438, label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit173" +437: ; preds = %72 + %438 = trunc nuw i8 %.049 to i1 + br i1 %438, label %445, label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit173" -432: ; preds = %428 +439: ; preds = %435 call void @llvm.experimental.noalias.scope.decl(metadata !5140) call void @llvm.experimental.noalias.scope.decl(metadata !5143) call void @llvm.experimental.noalias.scope.decl(metadata !5146) - %433 = load ptr, ptr %63, align 8, !alias.scope !5149, !nonnull !9, !noundef !9 - %434 = getelementptr inbounds i8, ptr %433, i64 48 - %435 = load i32, ptr %434, align 4, !noalias !5149, !noundef !9 - %436 = add i32 %435, -1 - store i32 %436, ptr %434, align 4, !noalias !5149 - %437 = icmp eq i32 %436, 0 - br i1 %437, label %.invoke, label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit173" - -438: ; preds = %430 + %440 = load ptr, ptr %63, align 8, !alias.scope !5149, !nonnull !9, !noundef !9 + %441 = getelementptr inbounds i8, ptr %440, i64 48 + %442 = load i32, ptr %441, align 4, !noalias !5149, !noundef !9 + %443 = add i32 %442, -1 + store i32 %443, ptr %441, align 4, !noalias !5149 + %444 = icmp eq i32 %443, 0 + br i1 %444, label %.invoke, label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit173" + +445: ; preds = %437 call void @llvm.experimental.noalias.scope.decl(metadata !5150) call void @llvm.experimental.noalias.scope.decl(metadata !5153) call void @llvm.experimental.noalias.scope.decl(metadata !5156) - %439 = load ptr, ptr %63, align 8, !alias.scope !5159, !nonnull !9, !noundef !9 - %440 = getelementptr inbounds i8, ptr %439, i64 48 - %441 = load i32, ptr %440, align 4, !noalias !5159, !noundef !9 - %442 = add i32 %441, -1 - store i32 %442, ptr %440, align 4, !noalias !5159 - %443 = icmp eq i32 %442, 0 - br i1 %443, label %.invoke, label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit173" - -.invoke: ; preds = %438, %432 - %444 = phi ptr [ %433, %432 ], [ %439, %438 ] - invoke void @_ZN5rowan6cursor4free17ha2e1b2c8c83f79d6E(ptr noundef nonnull %444) - to label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit173" unwind label %372 + %446 = load ptr, ptr %63, align 8, !alias.scope !5159, !nonnull !9, !noundef !9 + %447 = getelementptr inbounds i8, ptr %446, i64 48 + %448 = load i32, ptr %447, align 4, !noalias !5159, !noundef !9 + %449 = add i32 %448, -1 + store i32 %449, ptr %447, align 4, !noalias !5159 + %450 = icmp eq i32 %449, 0 + br i1 %450, label %.invoke, label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit173" + +.invoke: ; preds = %445, %439 + %451 = phi ptr [ %440, %439 ], [ %446, %445 ] + invoke void @_ZN5rowan6cursor4free17ha2e1b2c8c83f79d6E(ptr noundef nonnull %451) + to label %"_ZN4core3ptr84drop_in_place$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$17h96e144ffb0f33c83E.exit173" unwind label %379 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/rustfmt-rs/optimized/1mznjg1e09hdetpr.ll b/bench/rustfmt-rs/optimized/1mznjg1e09hdetpr.ll index e0a9aec4932..aa02b051e0c 100644 --- a/bench/rustfmt-rs/optimized/1mznjg1e09hdetpr.ll +++ b/bench/rustfmt-rs/optimized/1mznjg1e09hdetpr.ll @@ -596,7 +596,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 @@ -4140,7 +4140,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 @@ -22086,7 +22086,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 @@ -22095,7 +22095,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 @@ -22110,70 +22110,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 !3872 - %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 !3872 + %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 nonnull 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 nonnull 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 nonnull 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 nonnull 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/snappy/optimized/snappy.cc.ll b/bench/snappy/optimized/snappy.cc.ll index 21f5d14a7dd..60be682d40d 100644 --- a/bench/snappy/optimized/snappy.cc.ll +++ b/bench/snappy/optimized/snappy.cc.ll @@ -4866,31 +4866,32 @@ return: ; preds = %while.body, %while. ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr dso_local noundef ptr @_ZN6snappy19SnappySinkAllocator8AllocateEi(ptr noundef nonnull align 8 dereferenceable(32) %this, i32 noundef %size) local_unnamed_addr #2 comdat align 2 { entry: - %0 = sext i32 %size to i64 - %1 = icmp slt i32 %size, 0 - %2 = select i1 %1, i64 -1, i64 %0 - %call = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %2) #21 + %0 = zext nneg i32 %size to i64 + %1 = sext i32 %size to i64 + %2 = icmp slt i32 %size, 0 + %3 = select i1 %2, i64 -1, i64 %0 + %call = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %3) #21 %blocks_ = getelementptr inbounds i8, ptr %this, i64 8 %_M_finish.i = getelementptr inbounds i8, ptr %this, i64 16 - %3 = load ptr, ptr %_M_finish.i, align 8 + %4 = load ptr, ptr %_M_finish.i, align 8 %_M_end_of_storage.i = getelementptr inbounds i8, ptr %this, i64 24 - %4 = load ptr, ptr %_M_end_of_storage.i, align 8 - %cmp.not.i = icmp eq ptr %3, %4 + %5 = load ptr, ptr %_M_end_of_storage.i, align 8 + %cmp.not.i = icmp eq ptr %4, %5 br i1 %cmp.not.i, label %if.else.i, label %if.then.i if.then.i: ; preds = %entry - store ptr %call, ptr %3, align 8 - %block.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %3, i64 8 - store i64 %0, ptr %block.sroa.4.0..sroa_idx, align 8 - %5 = load ptr, ptr %_M_finish.i, align 8 - %incdec.ptr.i = getelementptr inbounds i8, ptr %5, i64 16 + store ptr %call, ptr %4, align 8 + %block.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %4, i64 8 + store i64 %1, ptr %block.sroa.4.0..sroa_idx, align 8 + %6 = load ptr, ptr %_M_finish.i, align 8 + %incdec.ptr.i = getelementptr inbounds i8, ptr %6, i64 16 store ptr %incdec.ptr.i, ptr %_M_finish.i, align 8 br label %_ZNSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE9push_backERKS2_.exit if.else.i: ; preds = %entry - %6 = load ptr, ptr %blocks_, align 8 - %sub.ptr.lhs.cast.i.i.i.i = ptrtoint ptr %3 to i64 - %sub.ptr.rhs.cast.i.i.i.i = ptrtoint ptr %6 to i64 + %7 = load ptr, ptr %blocks_, align 8 + %sub.ptr.lhs.cast.i.i.i.i = ptrtoint ptr %4 to i64 + %sub.ptr.rhs.cast.i.i.i.i = ptrtoint ptr %7 to i64 %sub.ptr.sub.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i %cmp.i.i.i = icmp eq i64 %sub.ptr.sub.i.i.i.i, 9223372036854775792 br i1 %cmp.i.i.i, label %if.then.i.i.i, label %_ZNKSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE12_M_check_lenEmPKc.exit.i.i @@ -4904,8 +4905,8 @@ _ZNKSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE12_M_check_lenEmPK %.sroa.speculated.i.i.i = tail call i64 @llvm.umax.i64(i64 %sub.ptr.div.i.i.i.i, i64 1) %add.i.i.i = add nsw i64 %.sroa.speculated.i.i.i, %sub.ptr.div.i.i.i.i %cmp7.i.i.i = icmp ult i64 %add.i.i.i, %sub.ptr.div.i.i.i.i - %7 = tail call i64 @llvm.umin.i64(i64 %add.i.i.i, i64 576460752303423487) - %cond.i.i.i = select i1 %cmp7.i.i.i, i64 576460752303423487, i64 %7 + %8 = tail call i64 @llvm.umin.i64(i64 %add.i.i.i, i64 576460752303423487) + %cond.i.i.i = select i1 %cmp7.i.i.i, i64 576460752303423487, i64 %8 %cmp.not.i.i.i = icmp eq i64 %cond.i.i.i, 0 br i1 %cmp.not.i.i.i, label %_ZNSt12_Vector_baseIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE11_M_allocateEm.exit.i.i, label %cond.true.i.i.i @@ -4919,27 +4920,27 @@ _ZNSt12_Vector_baseIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE11_M_allocat %add.ptr.i.i = getelementptr inbounds %"struct.snappy::SnappySinkAllocator::Datablock", ptr %cond.i10.i.i, i64 %sub.ptr.div.i.i.i.i store ptr %call, ptr %add.ptr.i.i, align 8 %block.sroa.4.0.add.ptr.i.i.sroa_idx = getelementptr inbounds i8, ptr %add.ptr.i.i, i64 8 - store i64 %0, ptr %block.sroa.4.0.add.ptr.i.i.sroa_idx, align 8 - %cmp.not5.i.i.i.i.i.i = icmp eq ptr %6, %3 + store i64 %1, ptr %block.sroa.4.0.add.ptr.i.i.sroa_idx, align 8 + %cmp.not5.i.i.i.i.i.i = icmp eq ptr %7, %4 br i1 %cmp.not5.i.i.i.i.i.i, label %_ZNSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit19.i.i, label %for.body.i.i.i.i.i.i for.body.i.i.i.i.i.i: ; preds = %_ZNSt12_Vector_baseIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE11_M_allocateEm.exit.i.i, %for.body.i.i.i.i.i.i %__cur.07.i.i.i.i.i.i = phi ptr [ %incdec.ptr1.i.i.i.i.i.i, %for.body.i.i.i.i.i.i ], [ %cond.i10.i.i, %_ZNSt12_Vector_baseIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE11_M_allocateEm.exit.i.i ] - %__first.addr.06.i.i.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i.i.i, %for.body.i.i.i.i.i.i ], [ %6, %_ZNSt12_Vector_baseIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE11_M_allocateEm.exit.i.i ] + %__first.addr.06.i.i.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i.i.i, %for.body.i.i.i.i.i.i ], [ %7, %_ZNSt12_Vector_baseIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE11_M_allocateEm.exit.i.i ] tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %__cur.07.i.i.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(16) %__first.addr.06.i.i.i.i.i.i, i64 16, i1 false), !alias.scope !52 %incdec.ptr.i.i.i.i.i.i = getelementptr inbounds i8, ptr %__first.addr.06.i.i.i.i.i.i, i64 16 %incdec.ptr1.i.i.i.i.i.i = getelementptr inbounds i8, ptr %__cur.07.i.i.i.i.i.i, i64 16 - %cmp.not.i.i.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i.i, %3 + %cmp.not.i.i.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i.i, %4 br i1 %cmp.not.i.i.i.i.i.i, label %_ZNSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit19.i.i, label %for.body.i.i.i.i.i.i, !llvm.loop !56 _ZNSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit19.i.i: ; preds = %for.body.i.i.i.i.i.i, %_ZNSt12_Vector_baseIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE11_M_allocateEm.exit.i.i %__cur.0.lcssa.i.i.i.i.i.i = phi ptr [ %cond.i10.i.i, %_ZNSt12_Vector_baseIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE11_M_allocateEm.exit.i.i ], [ %incdec.ptr1.i.i.i.i.i.i, %for.body.i.i.i.i.i.i ] %incdec.ptr.i.i = getelementptr i8, ptr %__cur.0.lcssa.i.i.i.i.i.i, i64 16 - %tobool.not.i.i.i = icmp eq ptr %6, null + %tobool.not.i.i.i = icmp eq ptr %7, null br i1 %tobool.not.i.i.i, label %_ZNSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_.exit.i, label %if.then.i20.i.i if.then.i20.i.i: ; preds = %_ZNSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit19.i.i - tail call void @_ZdlPv(ptr noundef nonnull %6) #22 + tail call void @_ZdlPv(ptr noundef nonnull %7) #22 br label %_ZNSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_.exit.i _ZNSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_.exit.i: ; preds = %if.then.i20.i.i, %_ZNSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit19.i.i diff --git a/bench/syn/optimized/2tga7oe2tfdpj05w.ll b/bench/syn/optimized/2tga7oe2tfdpj05w.ll index 1e0fc30f613..93e534e6f26 100644 --- a/bench/syn/optimized/2tga7oe2tfdpj05w.ll +++ b/bench/syn/optimized/2tga7oe2tfdpj05w.ll @@ -6143,14 +6143,14 @@ define hidden void @"_ZN3syn2ty7parsing42_$LT$impl$u20$syn..ty..TypeTraitObject$ %17 = getelementptr inbounds i8, ptr %0, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %17, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.7, i64 24, i1 false) store i64 -9223372036854775808, ptr %0, align 8 - br label %52 + br label %54 "_ZN4core3ptr79drop_in_place$LT$syn..punctuated..Iter$LT$syn..generics..TypeParamBound$GT$$GT$17h6a2f58822e4e817aE.exit": ; preds = %30, %18 %.pn = phi { ptr, i32 } [ %19, %18 ], [ %31, %30 ] invoke void @"_ZN4core3ptr104drop_in_place$LT$syn..punctuated..Punctuated$LT$syn..generics..TypeParamBound$C$syn..token..Plus$GT$$GT$17h43a64659d0857680E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %10) #28 - to label %56 unwind label %54 + to label %58 unwind label %56 -18: ; preds = %.noexc, %47, %33, %46, %14 +18: ; preds = %.noexc, %49, %33, %48, %14 %19 = landingpad { ptr, i32 } cleanup br label %"_ZN4core3ptr79drop_in_place$LT$syn..punctuated..Iter$LT$syn..generics..TypeParamBound$GT$$GT$17h6a2f58822e4e817aE.exit" @@ -6164,11 +6164,11 @@ define hidden void @"_ZN3syn2ty7parsing42_$LT$impl$u20$syn..ty..TypeTraitObject$ store ptr %22, ptr %23, align 8 br label %24 -24: ; preds = %43, %20 - %25 = phi ptr [ %22, %20 ], [ %.pre29, %43 ] - %26 = phi ptr [ %21, %20 ], [ %.pre, %43 ] - %.sroa.3.0 = phi i32 [ undef, %20 ], [ %.0, %43 ] - %switch19 = phi i1 [ true, %20 ], [ false, %43 ] +24: ; preds = %45, %20 + %25 = phi ptr [ %22, %20 ], [ %.pre29, %45 ] + %26 = phi ptr [ %21, %20 ], [ %.pre, %45 ] + %.sroa.3.0 = phi i32 [ undef, %20 ], [ %.0, %45 ] + %switch19 = phi i1 [ true, %20 ], [ false, %45 ] %27 = getelementptr inbounds i8, ptr %25, i64 24 %28 = load ptr, ptr %27, align 8, !invariant.load !7, !nonnull !7 %29 = invoke noundef align 8 dereferenceable_or_null(120) ptr %28(ptr noundef nonnull align 1 %26) @@ -6178,7 +6178,7 @@ define hidden void @"_ZN3syn2ty7parsing42_$LT$impl$u20$syn..ty..TypeTraitObject$ %31 = landingpad { ptr, i32 } cleanup invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h8c99367490058e10E.llvm.8351105841907204142"(ptr noalias noundef nonnull align 8 dereferenceable(16) %8) - to label %"_ZN4core3ptr79drop_in_place$LT$syn..punctuated..Iter$LT$syn..generics..TypeParamBound$GT$$GT$17h6a2f58822e4e817aE.exit" unwind label %54 + to label %"_ZN4core3ptr79drop_in_place$LT$syn..punctuated..Iter$LT$syn..generics..TypeParamBound$GT$$GT$17h6a2f58822e4e817aE.exit" unwind label %56 32: ; preds = %24 %.not = icmp eq ptr %29, null @@ -6190,83 +6190,86 @@ define hidden void @"_ZN3syn2ty7parsing42_$LT$impl$u20$syn..ty..TypeTraitObject$ 34: ; preds = %32 %35 = load i64, ptr %29, align 8, !range !77, !noundef !7 - %switch24 = icmp eq i64 %35, -9223372036854775808 - br i1 %switch24, label %36, label %33 + %36 = icmp slt i64 %35, -9223372036854775806 + %37 = and i64 %35, 1 + %switch24 = icmp eq i64 %37, 0 + %switch = and i1 %36, %switch24 + br i1 %switch, label %38, label %33 -36: ; preds = %34 - %37 = getelementptr inbounds i8, ptr %29, i64 8 - %38 = load i64, ptr %37, align 8, !range !64, !noundef !7 - %39 = icmp eq i64 %38, -9223372036854775808 - br i1 %39, label %40, label %43 +38: ; preds = %34 + %39 = getelementptr inbounds i8, ptr %29, i64 8 + %40 = load i64, ptr %39, align 8, !range !64, !noundef !7 + %41 = icmp eq i64 %40, -9223372036854775808 + br i1 %41, label %42, label %45 -40: ; preds = %36 - %41 = getelementptr inbounds i8, ptr %29, i64 20 - %42 = load i32, ptr %41, align 4, !range !165, !noundef !7 - br label %43 +42: ; preds = %38 + %43 = getelementptr inbounds i8, ptr %29, i64 20 + %44 = load i32, ptr %43, align 4, !range !165, !noundef !7 + br label %45 -43: ; preds = %36, %40 - %.0 = phi i32 [ %42, %40 ], [ 0, %36 ] +45: ; preds = %38, %42 + %.0 = phi i32 [ %44, %42 ], [ 0, %38 ] %.pre = load ptr, ptr %8, align 8 %.pre29 = load ptr, ptr %23, align 8 br label %24 "_ZN4core3ptr79drop_in_place$LT$syn..punctuated..Iter$LT$syn..generics..TypeParamBound$GT$$GT$17h6a2f58822e4e817aE.exit21": ; preds = %33 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) - br i1 %.not, label %44, label %45 + br i1 %.not, label %46, label %47 -44: ; preds = %"_ZN4core3ptr79drop_in_place$LT$syn..punctuated..Iter$LT$syn..generics..TypeParamBound$GT$$GT$17h6a2f58822e4e817aE.exit21" +46: ; preds = %"_ZN4core3ptr79drop_in_place$LT$syn..punctuated..Iter$LT$syn..generics..TypeParamBound$GT$$GT$17h6a2f58822e4e817aE.exit21" call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) - br i1 %switch19, label %46, label %47 + br i1 %switch19, label %48, label %49 -45: ; preds = %"_ZN4core3ptr79drop_in_place$LT$syn..punctuated..Iter$LT$syn..generics..TypeParamBound$GT$$GT$17h6a2f58822e4e817aE.exit21" +47: ; preds = %"_ZN4core3ptr79drop_in_place$LT$syn..punctuated..Iter$LT$syn..generics..TypeParamBound$GT$$GT$17h6a2f58822e4e817aE.exit21" call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %10, i64 32, i1 false) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) - br label %53 + br label %55 -46: ; preds = %44 +48: ; preds = %46 invoke void @_ZN4core9panicking5panic17hb837a5ebbbe5b188E(ptr noalias noundef nonnull readonly align 1 @anon.0d61064958a3722eac33af85cae8cb19.51, i64 noundef 43, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.0d61064958a3722eac33af85cae8cb19.53) #29 - to label %49 unwind label %18 + to label %51 unwind label %18 -47: ; preds = %44 +49: ; preds = %46 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) store ptr @anon.0d61064958a3722eac33af85cae8cb19.50, ptr %6, align 8, !noalias !1166 - %48 = getelementptr inbounds i8, ptr %6, i64 8 - store i64 49, ptr %48, align 8, !noalias !1166 + %50 = getelementptr inbounds i8, ptr %6, i64 8 + store i64 49, ptr %50, align 8, !noalias !1166 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5), !noalias !1166 invoke void @"_ZN45_$LT$T$u20$as$u20$alloc..string..ToString$GT$9to_string17h265cd8951d7e1d70E.llvm.17896666486873179654"(ptr noalias nocapture noundef nonnull sret({ { { i64, ptr }, i64 } }) align 8 dereferenceable(24) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %6) to label %.noexc unwind label %18 -.noexc: ; preds = %47 +.noexc: ; preds = %49 invoke void @_ZN3syn5error4new24new217h96c5231fddd86263E(ptr noalias nocapture noundef nonnull sret({ { { i64, ptr }, i64 } }) align 8 dereferenceable(24) %7, i32 noundef %1, i32 noundef %.sroa.3.0, ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %5) - to label %50 unwind label %18 + to label %52 unwind label %18 -49: ; preds = %46 +51: ; preds = %48 unreachable -50: ; preds = %.noexc +52: ; preds = %.noexc call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5), !noalias !1166 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) - %51 = getelementptr inbounds i8, ptr %0, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %51, ptr noundef nonnull align 8 dereferenceable(24) %7, i64 24, i1 false) + %53 = getelementptr inbounds i8, ptr %0, i64 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %53, ptr noundef nonnull align 8 dereferenceable(24) %7, i64 24, i1 false) store i64 -9223372036854775808, ptr %0, align 8 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) call void @"_ZN4core3ptr104drop_in_place$LT$syn..punctuated..Punctuated$LT$syn..generics..TypeParamBound$C$syn..token..Plus$GT$$GT$17h43a64659d0857680E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %10) - br label %52 + br label %54 -52: ; preds = %50, %16 +54: ; preds = %52, %16 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) - br label %53 + br label %55 -53: ; preds = %52, %45 +55: ; preds = %54, %47 ret void -54: ; preds = %30, %"_ZN4core3ptr79drop_in_place$LT$syn..punctuated..Iter$LT$syn..generics..TypeParamBound$GT$$GT$17h6a2f58822e4e817aE.exit" - %55 = landingpad { ptr, i32 } +56: ; preds = %30, %"_ZN4core3ptr79drop_in_place$LT$syn..punctuated..Iter$LT$syn..generics..TypeParamBound$GT$$GT$17h6a2f58822e4e817aE.exit" + %57 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #27 unreachable -56: ; preds = %"_ZN4core3ptr79drop_in_place$LT$syn..punctuated..Iter$LT$syn..generics..TypeParamBound$GT$$GT$17h6a2f58822e4e817aE.exit" +58: ; preds = %"_ZN4core3ptr79drop_in_place$LT$syn..punctuated..Iter$LT$syn..generics..TypeParamBound$GT$$GT$17h6a2f58822e4e817aE.exit" resume { ptr, i32 } %.pn } @@ -6330,7 +6333,7 @@ define hidden void @"_ZN3syn2ty7parsing40_$LT$impl$u20$syn..ty..TypeImplTrait$GT %.sroa.324.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.324.0..sroa_idx, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.324, i64 12, i1 false) store i64 -9223372036854775808, ptr %0, align 8 - br label %62 + br label %64 23: ; preds = %17 %.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 8 @@ -6343,14 +6346,14 @@ define hidden void @"_ZN3syn2ty7parsing40_$LT$impl$u20$syn..ty..TypeImplTrait$GT %26 = getelementptr inbounds i8, ptr %0, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %26, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.78, i64 24, i1 false) store i64 -9223372036854775808, ptr %0, align 8 - br label %61 + br label %63 "_ZN4core3ptr79drop_in_place$LT$syn..punctuated..Iter$LT$syn..generics..TypeParamBound$GT$$GT$17h6a2f58822e4e817aE.exit": ; preds = %39, %27 %.pn = phi { ptr, i32 } [ %28, %27 ], [ %40, %39 ] invoke void @"_ZN4core3ptr104drop_in_place$LT$syn..punctuated..Punctuated$LT$syn..generics..TypeParamBound$C$syn..token..Plus$GT$$GT$17h43a64659d0857680E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %11) #28 - to label %65 unwind label %63 + to label %67 unwind label %65 -27: ; preds = %.noexc, %56, %42, %55, %23 +27: ; preds = %.noexc, %58, %42, %57, %23 %28 = landingpad { ptr, i32 } cleanup br label %"_ZN4core3ptr79drop_in_place$LT$syn..punctuated..Iter$LT$syn..generics..TypeParamBound$GT$$GT$17h6a2f58822e4e817aE.exit" @@ -6364,11 +6367,11 @@ define hidden void @"_ZN3syn2ty7parsing40_$LT$impl$u20$syn..ty..TypeImplTrait$GT store ptr %31, ptr %32, align 8 br label %33 -33: ; preds = %52, %29 - %34 = phi ptr [ %31, %29 ], [ %.pre52, %52 ] - %35 = phi ptr [ %30, %29 ], [ %.pre, %52 ] - %switch38 = phi i1 [ true, %29 ], [ false, %52 ] - %.sroa.315.0 = phi i32 [ undef, %29 ], [ %.0, %52 ] +33: ; preds = %54, %29 + %34 = phi ptr [ %31, %29 ], [ %.pre52, %54 ] + %35 = phi ptr [ %30, %29 ], [ %.pre, %54 ] + %switch38 = phi i1 [ true, %29 ], [ false, %54 ] + %.sroa.315.0 = phi i32 [ undef, %29 ], [ %.0, %54 ] %36 = getelementptr inbounds i8, ptr %34, i64 24 %37 = load ptr, ptr %36, align 8, !invariant.load !7, !nonnull !7 %38 = invoke noundef align 8 dereferenceable_or_null(120) ptr %37(ptr noundef nonnull align 1 %35) @@ -6378,7 +6381,7 @@ define hidden void @"_ZN3syn2ty7parsing40_$LT$impl$u20$syn..ty..TypeImplTrait$GT %40 = landingpad { ptr, i32 } cleanup invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h8c99367490058e10E.llvm.8351105841907204142"(ptr noalias noundef nonnull align 8 dereferenceable(16) %9) - to label %"_ZN4core3ptr79drop_in_place$LT$syn..punctuated..Iter$LT$syn..generics..TypeParamBound$GT$$GT$17h6a2f58822e4e817aE.exit" unwind label %63 + to label %"_ZN4core3ptr79drop_in_place$LT$syn..punctuated..Iter$LT$syn..generics..TypeParamBound$GT$$GT$17h6a2f58822e4e817aE.exit" unwind label %65 41: ; preds = %33 %.not = icmp eq ptr %38, null @@ -6390,85 +6393,88 @@ define hidden void @"_ZN3syn2ty7parsing40_$LT$impl$u20$syn..ty..TypeImplTrait$GT 43: ; preds = %41 %44 = load i64, ptr %38, align 8, !range !77, !noundef !7 - %switch47 = icmp eq i64 %44, -9223372036854775808 - br i1 %switch47, label %45, label %42 - -45: ; preds = %43 - %46 = getelementptr inbounds i8, ptr %38, i64 8 - %47 = load i64, ptr %46, align 8, !range !64, !noundef !7 - %48 = icmp eq i64 %47, -9223372036854775808 - br i1 %48, label %49, label %52 - -49: ; preds = %45 - %50 = getelementptr inbounds i8, ptr %38, i64 20 - %51 = load i32, ptr %50, align 4, !range !165, !noundef !7 - br label %52 - -52: ; preds = %45, %49 - %.0 = phi i32 [ %51, %49 ], [ 0, %45 ] + %45 = icmp slt i64 %44, -9223372036854775806 + %46 = and i64 %44, 1 + %switch47 = icmp eq i64 %46, 0 + %switch = and i1 %45, %switch47 + br i1 %switch, label %47, label %42 + +47: ; preds = %43 + %48 = getelementptr inbounds i8, ptr %38, i64 8 + %49 = load i64, ptr %48, align 8, !range !64, !noundef !7 + %50 = icmp eq i64 %49, -9223372036854775808 + br i1 %50, label %51, label %54 + +51: ; preds = %47 + %52 = getelementptr inbounds i8, ptr %38, i64 20 + %53 = load i32, ptr %52, align 4, !range !165, !noundef !7 + br label %54 + +54: ; preds = %47, %51 + %.0 = phi i32 [ %53, %51 ], [ 0, %47 ] %.pre = load ptr, ptr %9, align 8 %.pre52 = load ptr, ptr %32, align 8 br label %33 "_ZN4core3ptr79drop_in_place$LT$syn..punctuated..Iter$LT$syn..generics..TypeParamBound$GT$$GT$17h6a2f58822e4e817aE.exit40": ; preds = %42 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) - br i1 %.not, label %53, label %54 + br i1 %.not, label %55, label %56 -53: ; preds = %"_ZN4core3ptr79drop_in_place$LT$syn..punctuated..Iter$LT$syn..generics..TypeParamBound$GT$$GT$17h6a2f58822e4e817aE.exit40" +55: ; preds = %"_ZN4core3ptr79drop_in_place$LT$syn..punctuated..Iter$LT$syn..generics..TypeParamBound$GT$$GT$17h6a2f58822e4e817aE.exit40" call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) - br i1 %switch38, label %55, label %56 + br i1 %switch38, label %57, label %58 -54: ; preds = %"_ZN4core3ptr79drop_in_place$LT$syn..punctuated..Iter$LT$syn..generics..TypeParamBound$GT$$GT$17h6a2f58822e4e817aE.exit40" +56: ; preds = %"_ZN4core3ptr79drop_in_place$LT$syn..punctuated..Iter$LT$syn..generics..TypeParamBound$GT$$GT$17h6a2f58822e4e817aE.exit40" call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %11, i64 32, i1 false) %.sroa.417.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 32 store i32 %16, ptr %.sroa.417.0..sroa_idx, align 8 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) - br label %62 + br label %64 -55: ; preds = %53 +57: ; preds = %55 invoke void @_ZN4core9panicking5panic17hb837a5ebbbe5b188E(ptr noalias noundef nonnull readonly align 1 @anon.0d61064958a3722eac33af85cae8cb19.51, i64 noundef 43, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.0d61064958a3722eac33af85cae8cb19.55) #29 - to label %58 unwind label %27 + to label %60 unwind label %27 -56: ; preds = %53 +58: ; preds = %55 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) store ptr @anon.0d61064958a3722eac33af85cae8cb19.54, ptr %5, align 8, !noalias !1177 - %57 = getelementptr inbounds i8, ptr %5, i64 8 - store i64 36, ptr %57, align 8, !noalias !1177 + %59 = getelementptr inbounds i8, ptr %5, i64 8 + store i64 36, ptr %59, align 8, !noalias !1177 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4), !noalias !1177 invoke void @"_ZN45_$LT$T$u20$as$u20$alloc..string..ToString$GT$9to_string17h265cd8951d7e1d70E.llvm.17896666486873179654"(ptr noalias nocapture noundef nonnull sret({ { { i64, ptr }, i64 } }) align 8 dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %5) to label %.noexc unwind label %27 -.noexc: ; preds = %56 +.noexc: ; preds = %58 invoke void @_ZN3syn5error4new24new217h96c5231fddd86263E(ptr noalias nocapture noundef nonnull sret({ { { i64, ptr }, i64 } }) align 8 dereferenceable(24) %8, i32 noundef %16, i32 noundef %.sroa.315.0, ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %4) - to label %59 unwind label %27 + to label %61 unwind label %27 -58: ; preds = %55 +60: ; preds = %57 unreachable -59: ; preds = %.noexc +61: ; preds = %.noexc call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4), !noalias !1177 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) - %60 = getelementptr inbounds i8, ptr %0, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %60, ptr noundef nonnull align 8 dereferenceable(24) %8, i64 24, i1 false) + %62 = getelementptr inbounds i8, ptr %0, i64 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %62, ptr noundef nonnull align 8 dereferenceable(24) %8, i64 24, i1 false) store i64 -9223372036854775808, ptr %0, align 8 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) call void @"_ZN4core3ptr104drop_in_place$LT$syn..punctuated..Punctuated$LT$syn..generics..TypeParamBound$C$syn..token..Plus$GT$$GT$17h43a64659d0857680E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %11) - br label %61 + br label %63 -61: ; preds = %59, %25 +63: ; preds = %61, %25 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) - br label %62 + br label %64 -62: ; preds = %61, %54, %21 +64: ; preds = %63, %56, %21 ret void -63: ; preds = %39, %"_ZN4core3ptr79drop_in_place$LT$syn..punctuated..Iter$LT$syn..generics..TypeParamBound$GT$$GT$17h6a2f58822e4e817aE.exit" - %64 = landingpad { ptr, i32 } +65: ; preds = %39, %"_ZN4core3ptr79drop_in_place$LT$syn..punctuated..Iter$LT$syn..generics..TypeParamBound$GT$$GT$17h6a2f58822e4e817aE.exit" + %66 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #27 unreachable -65: ; preds = %"_ZN4core3ptr79drop_in_place$LT$syn..punctuated..Iter$LT$syn..generics..TypeParamBound$GT$$GT$17h6a2f58822e4e817aE.exit" +67: ; preds = %"_ZN4core3ptr79drop_in_place$LT$syn..punctuated..Iter$LT$syn..generics..TypeParamBound$GT$$GT$17h6a2f58822e4e817aE.exit" resume { ptr, i32 } %.pn } diff --git a/bench/typst-rs/optimized/2d3c2n5y91mtl0x0.ll b/bench/typst-rs/optimized/2d3c2n5y91mtl0x0.ll index 3933f792efe..6d740bc380b 100644 --- a/bench/typst-rs/optimized/2d3c2n5y91mtl0x0.ll +++ b/bench/typst-rs/optimized/2d3c2n5y91mtl0x0.ll @@ -140468,7 +140468,7 @@ define hidden noundef range(i8 0, 3) i8 @"_ZN5typst6layout6inline9linebreak12hyp %18 = load i64, ptr %.sroa.0.010.i, align 8, !range !24558, !alias.scope !24559, !noalias !24552, !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 @@ -140508,56 +140508,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 !24558, !alias.scope !24562, !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 !24565 - 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 !24568 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 !24565 - %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 !24572 - %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 !24572 - %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 !24572 + %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 !24572 + %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 !24568 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4), !noalias !24565 - br label %44 + br label %46 -_ZN5typst11foundations6styles10StyleChain3get17h5a7a544ce9f998dfE.exit.i: ; preds = %36 - %42 = load i8, ptr %40, align 1, !range !1054, !alias.scope !24573, !noalias !24572, !noundef !7 +_ZN5typst11foundations6styles10StyleChain3get17h5a7a544ce9f998dfE.exit.i: ; preds = %38 + %44 = load i8, ptr %42, align 1, !range !1054, !alias.scope !24573, !noalias !24572, !noundef !7 call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %3), !noalias !24568 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4), !noalias !24565 - %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" - %.0 = 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" + %.0 = phi i8 [ %50, %"_ZN5typst4text1_39_$LT$impl$u20$typst..text..TextElem$GT$12hyphenate_in17hc356e554ca2d706bE.exit" ], [ 2, %33 ], [ 2, %_ZN5typst6layout6inline11Preparation4find17h09e09b87c2bfb9beE.exit.thread ] ret i8 %.0 } @@ -140577,7 +140580,7 @@ define hidden noundef range(i8 0, 36) i8 @_ZN5typst6layout6inline9linebreak7lang %trunc.i = trunc i40 %.sroa.03.0.copyload to i1 %extract32 = lshr i40 %.sroa.03.0.copyload, 8 %extract.t33 = trunc nuw i40 %extract32 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 @@ -140601,7 +140604,7 @@ define hidden noundef range(i8 0, 36) i8 @_ZN5typst6layout6inline9linebreak7lang %19 = load i64, ptr %.sroa.0.010.i.i.i, align 8, !range !24558, !alias.scope !24581, !noalias !24578, !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 @@ -140647,225 +140650,228 @@ _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 !24558, !alias.scope !24584, !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 !24587 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 !24593 - %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 !24593 - %.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 !24593 + %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 !24593 + %.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 !24594, !noalias !24593 +44: ; preds = %39 + %.sroa.0.0.copyload.i.i.i.i.i.i = load i32, ptr %43, align 1, !alias.scope !24594, !noalias !24593 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 !24587 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.t33, %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 !24599 - %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) #60, !noalias !24602 +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) #60, !noalias !24602 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 !1055, !alias.scope !24605, !noalias !24599, !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 !24605, !noalias !24599, !nonnull !7, !align !1035 - %51 = getelementptr inbounds i8, ptr %3, i64 16 - %52 = load i64, ptr %51, align 8, !alias.scope !24605, !noalias !24599 +_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 !1055, !alias.scope !24605, !noalias !24599, !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 !24605, !noalias !24599, !nonnull !7, !align !1035 + %53 = getelementptr inbounds i8, ptr %3, i64 16 + %54 = load i64, ptr %53, align 8, !alias.scope !24605, !noalias !24599 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3), !noalias !24599 - %53 = icmp ne i64 %52, 2 - %.not34 = select i1 %trunc.i.i, i1 true, i1 %53 - br i1 %.not34, label %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit", label %54 + %55 = icmp ne i64 %54, 2 + %.not34 = select i1 %trunc.i.i, i1 true, i1 %55 + br i1 %.not34, 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 !24608 +56: ; preds = %_ZN5typst4text4lang4Lang6as_str17hf466e15d647fc2eeE.exit + %.val.i = load i16, ptr %52, align 1, !alias.scope !24608 %.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 %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.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 %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.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 %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.exit + %60 = icmp ult i8 %switch.tableidx, 12 + br i1 %60, label %switch.lookup, label %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.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 %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.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 %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.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 %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.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 %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.exit -63: ; preds = %54 +65: ; preds = %56 switch i8 %.sroa.4.0.extract.trunc.i, label %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.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.tableidx47 = add i8 %.sroa.4.0.extract.trunc.i, -108 - %65 = icmp ult i8 %switch.tableidx47, 9 - br i1 %65, label %switch.lookup46, label %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.exit + %67 = icmp ult i8 %switch.tableidx47, 9 + br i1 %67, label %switch.lookup46, label %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.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 %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.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 %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.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 %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.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 %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.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 %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.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 %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.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 %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.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 %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.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 %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.exit -78: ; preds = %63 +80: ; preds = %65 br label %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.exit -79: ; preds = %63 +81: ; preds = %65 br label %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.exit -80: ; preds = %63 +82: ; preds = %65 br label %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.exit -81: ; preds = %63 +83: ; preds = %65 br label %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.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 %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.exit -switch.lookup46: ; preds = %64 - %83 = zext nneg i8 %switch.tableidx47 to i64 - %switch.gep48 = getelementptr inbounds [9 x i8], ptr @switch.table._ZN5typst6layout6inline9linebreak7lang_at17h4ab66f3f355bee1dE.664, i64 0, i64 %83 +switch.lookup46: ; preds = %66 + %85 = zext nneg i8 %switch.tableidx47 to i64 + %switch.gep48 = getelementptr inbounds [9 x i8], ptr @switch.table._ZN5typst6layout6inline9linebreak7lang_at17h4ab66f3f355bee1dE.664, i64 0, i64 %85 %switch.load49 = load i8, ptr %switch.gep48, align 1 br label %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.exit -_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.exit: ; preds = %switch.lookup46, %64, %switch.lookup, %57, %54, %55, %59, %60, %61, %62, %63, %66, %67, %68, %69, %70, %72, %73, %75, %76, %78, %79, %80, %81 - %.0.i = phi i8 [ 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.load49, %switch.lookup46 ] +_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.exit: ; preds = %switch.lookup46, %66, %switch.lookup, %59, %56, %57, %61, %62, %63, %64, %65, %68, %69, %70, %71, %72, %74, %75, %77, %78, %80, %81, %82, %83 + %.0.i = phi i8 [ 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.load49, %switch.lookup46 ] call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) - br label %84 + br label %86 -84: ; preds = %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit", %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.exit +86: ; preds = %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit", %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.exit %.0 = phi i8 [ 35, %"_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit" ], [ %.0.i, %_ZN6hypher4Lang8from_iso17hf954e9b16a7f5278E.exit ] ret i8 %.0 "_ZN4core6option15Option$LT$T$GT$7or_else17h2722ee6a32367be5E.exit": ; preds = %_ZN5typst4text4lang4Lang6as_str17hf466e15d647fc2eeE.exit, %34, %_ZN5typst6layout6inline11Preparation4find17h09e09b87c2bfb9beE.exit.thread.i.i call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) - br label %84 + br label %86 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable diff --git a/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll b/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll index 2cfd20f93a5..78469e8a39a 100644 --- a/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll +++ b/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll @@ -14464,7 +14464,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 !2793, !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 } @@ -14766,7 +14769,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 !2931, !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 } @@ -23583,7 +23589,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 !5034, !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/verilator/optimized/V3File.cpp.ll b/bench/verilator/optimized/V3File.cpp.ll index 659dbea77db..c91d5451983 100644 --- a/bench/verilator/optimized/V3File.cpp.ll +++ b/bench/verilator/optimized/V3File.cpp.ll @@ -9487,7 +9487,8 @@ define linkonce_odr dso_local void @_ZN12VInFilterImp10readBlocksEiiRNSt7__cxx11 %12 = sext i32 %2 to i64 %13 = add i32 %2, -1 %or.cond = icmp ult i32 %13, 65535 - %.018 = select i1 %or.cond, i64 %12, i64 65536 + %narrow = select i1 %or.cond, i32 %2, i32 65536 + %.018 = zext nneg i32 %narrow to i64 %14 = getelementptr inbounds i8, ptr %3, i64 16 br i1 %11, label %.lr.ph.lr.ph.split.us, label %.lr.ph diff --git a/bench/wasmtime-rs/optimized/18flldcd4wnig7ks.ll b/bench/wasmtime-rs/optimized/18flldcd4wnig7ks.ll index cfb3229fcad..61880dccaa7 100644 --- a/bench/wasmtime-rs/optimized/18flldcd4wnig7ks.ll +++ b/bench/wasmtime-rs/optimized/18flldcd4wnig7ks.ll @@ -3653,21 +3653,25 @@ define hidden noundef align 8 dereferenceable_or_null(56) ptr @"_ZN4core3ops8fun tail call void @llvm.experimental.noalias.scope.decl(metadata !1079) tail call void @llvm.experimental.noalias.scope.decl(metadata !1082) %4 = load i64, ptr %1, align 8, !range !1084, !alias.scope !1082, !noalias !1079, !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 !1079, !noalias !1082, !nonnull !9, !align !1085, !noundef !9 - %8 = getelementptr inbounds i8, ptr %1, i64 52 - %9 = load i32, ptr %8, align 4, !alias.scope !1082, !noalias !1079, !noundef !9 - %10 = load i32, ptr %7, align 4, !noalias !1086, !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 !1079, !noalias !1082, !nonnull !9, !align !1085, !noundef !9 + %12 = getelementptr inbounds i8, ptr %1, i64 52 + %13 = load i32, ptr %12, align 4, !alias.scope !1082, !noalias !1079, !noundef !9 + %14 = load i32, ptr %11, align 4, !noalias !1086, !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 } @@ -9206,21 +9210,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 !1084, !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 !1085, !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 !1085, !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 23765dbac75..e3df8d9c0c3 100644 --- a/bench/wasmtime-rs/optimized/21yfjujbida1k3g1.ll +++ b/bench/wasmtime-rs/optimized/21yfjujbida1k3g1.ll @@ -21167,7 +21167,7 @@ define hidden void @"_ZN4core3ptr479drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7709, !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 @@ -23869,7 +23869,7 @@ define hidden void @"_ZN4core3ptr514drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7709, !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 @@ -24010,7 +24010,7 @@ define hidden void @"_ZN4core3ptr518drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7709, !alias.scope !9201, !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 @@ -24672,7 +24672,7 @@ define hidden void @"_ZN4core3ptr527drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7709, !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 @@ -24803,7 +24803,7 @@ define hidden void @"_ZN4core3ptr529drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7709, !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 @@ -25042,7 +25042,7 @@ define hidden void @"_ZN4core3ptr530drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7709, !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 @@ -25153,7 +25153,7 @@ define hidden void @"_ZN4core3ptr531drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7709, !alias.scope !9751, !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 @@ -25340,7 +25340,7 @@ define hidden void @"_ZN4core3ptr532drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7709, !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 @@ -25397,7 +25397,7 @@ define hidden void @"_ZN4core3ptr532drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7709, !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 @@ -25520,7 +25520,7 @@ define hidden void @"_ZN4core3ptr533drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7709, !alias.scope !9940, !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 @@ -25748,7 +25748,7 @@ define hidden void @"_ZN4core3ptr534drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7709, !alias.scope !10028, !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 @@ -25919,7 +25919,7 @@ define hidden void @"_ZN4core3ptr536drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7709, !alias.scope !10155, !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 @@ -25979,7 +25979,7 @@ define hidden void @"_ZN4core3ptr536drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7709, !alias.scope !10202, !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 @@ -26931,7 +26931,7 @@ define hidden void @"_ZN4core3ptr544drop_in_place$LT$core..cell..UnsafeCell$LT$t %2 = load i64, ptr %0, align 8, !range !7709, !alias.scope !10768, !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 @@ -28126,7 +28126,7 @@ define hidden void @"_ZN4core3ptr557drop_in_place$LT$core..cell..UnsafeCell$LT$t %2 = load i64, ptr %0, align 8, !range !7709, !alias.scope !11473, !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 @@ -28349,7 +28349,7 @@ define hidden void @"_ZN4core3ptr559drop_in_place$LT$core..cell..UnsafeCell$LT$t %2 = load i64, ptr %0, align 8, !range !7709, !alias.scope !11593, !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 @@ -28813,7 +28813,7 @@ define hidden void @"_ZN4core3ptr560drop_in_place$LT$core..cell..UnsafeCell$LT$t %2 = load i64, ptr %0, align 8, !range !7709, !alias.scope !11766, !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 @@ -29139,7 +29139,7 @@ define hidden void @"_ZN4core3ptr562drop_in_place$LT$core..cell..UnsafeCell$LT$t %2 = load i64, ptr %0, align 8, !range !7709, !alias.scope !11974, !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 @@ -29197,7 +29197,7 @@ define hidden void @"_ZN4core3ptr562drop_in_place$LT$core..cell..UnsafeCell$LT$t %2 = load i64, ptr %0, align 8, !range !7709, !alias.scope !12014, !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 @@ -29262,7 +29262,7 @@ define hidden void @"_ZN4core3ptr563drop_in_place$LT$tokio..loom..std..unsafe_ce %2 = load i64, ptr %0, align 8, !range !7709, !alias.scope !12060, !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 @@ -29444,7 +29444,7 @@ define hidden void @"_ZN4core3ptr568drop_in_place$LT$tokio..runtime..task..core. %3 = load i64, ptr %2, align 8, !range !7709, !alias.scope !12189, !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 @@ -29554,7 +29554,7 @@ define hidden void @"_ZN4core3ptr568drop_in_place$LT$tokio..runtime..task..core. %3 = load i64, ptr %2, align 8, !range !7709, !alias.scope !12270, !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 @@ -30049,7 +30049,7 @@ define hidden void @"_ZN4core3ptr576drop_in_place$LT$tokio..loom..std..unsafe_ce %2 = load i64, ptr %0, align 8, !range !7709, !alias.scope !12542, !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 @@ -30117,7 +30117,7 @@ define hidden void @"_ZN4core3ptr578drop_in_place$LT$tokio..loom..std..unsafe_ce %2 = load i64, ptr %0, align 8, !range !7709, !alias.scope !12568, !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 @@ -30192,7 +30192,7 @@ define hidden void @"_ZN4core3ptr579drop_in_place$LT$tokio..loom..std..unsafe_ce %2 = load i64, ptr %0, align 8, !range !7709, !alias.scope !12602, !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 @@ -30787,7 +30787,7 @@ define hidden void @"_ZN4core3ptr581drop_in_place$LT$tokio..loom..std..unsafe_ce %2 = load i64, ptr %0, align 8, !range !7709, !alias.scope !12889, !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 @@ -30846,7 +30846,7 @@ define hidden void @"_ZN4core3ptr581drop_in_place$LT$tokio..loom..std..unsafe_ce %2 = load i64, ptr %0, align 8, !range !7709, !alias.scope !12933, !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 @@ -30904,7 +30904,7 @@ define hidden void @"_ZN4core3ptr581drop_in_place$LT$tokio..runtime..task..core. %3 = load i64, ptr %2, align 8, !range !7709, !alias.scope !12971, !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 @@ -31075,7 +31075,7 @@ define hidden void @"_ZN4core3ptr581drop_in_place$LT$tokio..runtime..task..core. %3 = load i64, ptr %2, align 8, !range !7709, !alias.scope !13080, !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 @@ -31210,7 +31210,7 @@ define hidden void @"_ZN4core3ptr583drop_in_place$LT$tokio..runtime..task..core. %3 = load i64, ptr %2, align 8, !range !7709, !alias.scope !13161, !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 @@ -31386,7 +31386,7 @@ define hidden void @"_ZN4core3ptr583drop_in_place$LT$tokio..runtime..task..core. %3 = load i64, ptr %2, align 8, !range !7709, !alias.scope !13272, !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 @@ -31506,7 +31506,7 @@ define hidden void @"_ZN4core3ptr584drop_in_place$LT$tokio..runtime..task..core. %3 = load i64, ptr %2, align 8, !range !7709, !alias.scope !13342, !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 @@ -31633,7 +31633,7 @@ define hidden void @"_ZN4core3ptr584drop_in_place$LT$tokio..runtime..task..core. %3 = load i64, ptr %2, align 8, !range !7709, !alias.scope !13444, !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 @@ -31846,7 +31846,7 @@ define hidden void @"_ZN4core3ptr586drop_in_place$LT$tokio..runtime..task..core. %3 = load i64, ptr %2, align 8, !range !7709, !alias.scope !13606, !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 @@ -31958,7 +31958,7 @@ define hidden void @"_ZN4core3ptr586drop_in_place$LT$tokio..runtime..task..core. %3 = load i64, ptr %2, align 8, !range !7709, !alias.scope !13693, !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 @@ -32069,7 +32069,7 @@ define hidden void @"_ZN4core3ptr586drop_in_place$LT$tokio..runtime..task..core. %3 = load i64, ptr %2, align 8, !range !7709, !alias.scope !13777, !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 @@ -32131,7 +32131,7 @@ define hidden void @"_ZN4core3ptr586drop_in_place$LT$tokio..runtime..task..core. %3 = load i64, ptr %2, align 8, !range !7709, !alias.scope !13827, !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 @@ -37499,7 +37499,7 @@ define hidden void @"_ZN4core3ptr707drop_in_place$LT$tokio..runtime..task..core. %2 = load i64, ptr %0, align 8, !range !7709, !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 612d922c1a7..60545368bbd 100644 --- a/bench/wasmtime-rs/optimized/2dcgoeji2y2j2nl0.ll +++ b/bench/wasmtime-rs/optimized/2dcgoeji2y2j2nl0.ll @@ -9560,7 +9560,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 @@ -9596,7 +9596,7 @@ define hidden void @"_ZN196_$LT$wasmtime_environ..component..info.._..$LT$impl$u %40 = getelementptr inbounds i8, ptr %0, i64 8 store ptr %.sink157, 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 ] @@ -9651,7 +9651,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 nonnull 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) @@ -9674,7 +9674,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.i70154155, 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 %.sink161 = phi ptr [ %52, %51 ], [ %58, %57 ] @@ -9683,41 +9683,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 + %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 -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 +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 @@ -22973,7 +22982,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 ] @@ -23107,7 +23116,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 nonnull 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 ] @@ -23151,7 +23160,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.i137138, 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 %.sink142 = phi ptr [ %.sroa.8.076.ph, %83 ], [ %86, %85 ] @@ -23160,41 +23169,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 @@ -24210,32 +24224,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 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" } @@ -24413,32 +24432,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 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 96ab630f9b6..c17a0769634 100644 --- a/bench/wasmtime-rs/optimized/2lz954crgst412nx.ll +++ b/bench/wasmtime-rs/optimized/2lz954crgst412nx.ll @@ -5814,7 +5814,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) @@ -5836,179 +5836,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 !792, !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 !793, !noalias !796 - %57 = getelementptr inbounds i8, ptr %17, i64 8 - store i64 2, ptr %57, align 8, !alias.scope !793, !noalias !796 - %58 = getelementptr inbounds i8, ptr %17, i64 32 - store ptr null, ptr %58, align 8, !alias.scope !793, !noalias !796 - %59 = getelementptr inbounds i8, ptr %17, i64 16 - store ptr %16, ptr %59, align 8, !alias.scope !793, !noalias !796 - %60 = getelementptr inbounds i8, ptr %17, i64 24 - store i64 2, ptr %60, align 8, !alias.scope !793, !noalias !796 + %58 = getelementptr inbounds i8, ptr %17, i64 8 + store i64 2, ptr %58, align 8, !alias.scope !793, !noalias !796 + %59 = getelementptr inbounds i8, ptr %17, i64 32 + store ptr null, ptr %59, align 8, !alias.scope !793, !noalias !796 + %60 = getelementptr inbounds i8, ptr %17, i64 16 + store ptr %16, ptr %60, align 8, !alias.scope !793, !noalias !796 + %61 = getelementptr inbounds i8, ptr %17, i64 24 + store i64 2, ptr %61, align 8, !alias.scope !793, !noalias !796 call fastcc void @_ZN5alloc3fmt6format17h7ead8f60e83381d7E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %18, ptr noalias nocapture noundef nonnull 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 !799, !noalias !802 - %71 = getelementptr inbounds i8, ptr %14, i64 8 - store i64 2, ptr %71, align 8, !alias.scope !799, !noalias !802 - %72 = getelementptr inbounds i8, ptr %14, i64 32 - store ptr null, ptr %72, align 8, !alias.scope !799, !noalias !802 - %73 = getelementptr inbounds i8, ptr %14, i64 16 - store ptr %13, ptr %73, align 8, !alias.scope !799, !noalias !802 - %74 = getelementptr inbounds i8, ptr %14, i64 24 - store i64 2, ptr %74, align 8, !alias.scope !799, !noalias !802 + %72 = getelementptr inbounds i8, ptr %14, i64 8 + store i64 2, ptr %72, align 8, !alias.scope !799, !noalias !802 + %73 = getelementptr inbounds i8, ptr %14, i64 32 + store ptr null, ptr %73, align 8, !alias.scope !799, !noalias !802 + %74 = getelementptr inbounds i8, ptr %14, i64 16 + store ptr %13, ptr %74, align 8, !alias.scope !799, !noalias !802 + %75 = getelementptr inbounds i8, ptr %14, i64 24 + store i64 2, ptr %75, align 8, !alias.scope !799, !noalias !802 call fastcc void @_ZN5alloc3fmt6format17h7ead8f60e83381d7E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %15, ptr noalias nocapture noundef nonnull 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 !805, !noalias !808 - %80 = getelementptr inbounds i8, ptr %11, i64 8 - store i64 2, ptr %80, align 8, !alias.scope !805, !noalias !808 - %81 = getelementptr inbounds i8, ptr %11, i64 32 - store ptr null, ptr %81, align 8, !alias.scope !805, !noalias !808 - %82 = getelementptr inbounds i8, ptr %11, i64 16 - store ptr %10, ptr %82, align 8, !alias.scope !805, !noalias !808 - %83 = getelementptr inbounds i8, ptr %11, i64 24 - store i64 2, ptr %83, align 8, !alias.scope !805, !noalias !808 + %81 = getelementptr inbounds i8, ptr %11, i64 8 + store i64 2, ptr %81, align 8, !alias.scope !805, !noalias !808 + %82 = getelementptr inbounds i8, ptr %11, i64 32 + store ptr null, ptr %82, align 8, !alias.scope !805, !noalias !808 + %83 = getelementptr inbounds i8, ptr %11, i64 16 + store ptr %10, ptr %83, align 8, !alias.scope !805, !noalias !808 + %84 = getelementptr inbounds i8, ptr %11, i64 24 + store i64 2, ptr %84, align 8, !alias.scope !805, !noalias !808 call fastcc void @_ZN5alloc3fmt6format17h7ead8f60e83381d7E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %12, ptr noalias nocapture noundef nonnull 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 39c1eb67b59..b9412fc80d6 100644 --- a/bench/wasmtime-rs/optimized/45190zkycf5izngt.ll +++ b/bench/wasmtime-rs/optimized/45190zkycf5izngt.ll @@ -2735,43 +2735,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" } @@ -2780,32 +2785,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 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 ce95f47b7ef..8aa578c8a4f 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) #45 +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) #45 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 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 - -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 + %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 -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) #45 +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 + +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) #45 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) #45 +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) #45 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 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 - -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 + %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 -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) #45 +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 + +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) #45 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() #47 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) #45 + 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) #45 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) #46 - 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() #47 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) #46 - 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) #46 + 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) #45 + 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) #45 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() #47 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 36dd72c9f75..ead5f47bba3 100644 --- a/bench/wasmtime-rs/optimized/joyny9bexuq72mb.ll +++ b/bench/wasmtime-rs/optimized/joyny9bexuq72mb.ll @@ -2948,7 +2948,7 @@ define hidden noalias noundef align 8 ptr @"_ZN16wasmtime_environ9component4info %.val24 = load i64, ptr %0, align 8, !range !1497, !alias.scope !2130, !noalias !2133, !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 @@ -3015,7 +3015,7 @@ define hidden noalias noundef align 8 ptr @"_ZN16wasmtime_environ9component4info %.val24 = load i64, ptr %0, align 8, !range !1497, !alias.scope !2197, !noalias !2200, !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 @@ -3141,7 +3141,7 @@ define hidden noalias noundef align 8 ptr @"_ZN16wasmtime_environ9component4info %.val23 = load i64, ptr %0, align 8, !range !1497, !alias.scope !2197, !noalias !2200, !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 @@ -3183,7 +3183,7 @@ define hidden noalias noundef align 8 ptr @"_ZN16wasmtime_environ9component4info %.val23 = load i64, ptr %0, align 8, !range !1497, !alias.scope !2130, !noalias !2133, !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 @@ -3223,7 +3223,7 @@ define hidden noundef align 8 ptr @"_ZN16wasmtime_environ9component4info1_104_$L %3 = load i64, ptr %0, align 8, !range !2296, !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 @@ -3410,7 +3410,7 @@ define hidden noundef align 8 ptr @"_ZN16wasmtime_environ9component4info1_104_$L %3 = load i64, ptr %0, align 8, !range !2296, !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 @@ -3485,7 +3485,7 @@ define hidden noundef align 8 ptr @"_ZN16wasmtime_environ9component4info1_104_$L %.val24.i.i26 = load i64, ptr %34, align 8, !range !1497, !alias.scope !2674, !noalias !2677, !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 @@ -3530,7 +3530,7 @@ define hidden noundef align 8 ptr @"_ZN16wasmtime_environ9component4info1_104_$L %.val23.i.i = load i64, ptr %53, align 8, !range !1497, !alias.scope !2699, !noalias !2702, !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 @@ -3598,27 +3598,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 !2738, !noalias !2740 %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 = 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 -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 !2741, !noalias !2738 +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 !2741, !noalias !2738 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 } @@ -3627,7 +3630,7 @@ define hidden noundef align 8 ptr @"_ZN16wasmtime_environ9component4info1_104_$L %3 = load i64, ptr %0, align 8, !range !2296, !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 @@ -3702,7 +3705,7 @@ define hidden noundef align 8 ptr @"_ZN16wasmtime_environ9component4info1_104_$L %.val24.i.i26 = load i64, ptr %34, align 8, !range !1497, !alias.scope !2816, !noalias !2819, !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 @@ -3747,7 +3750,7 @@ define hidden noundef align 8 ptr @"_ZN16wasmtime_environ9component4info1_104_$L %.val23.i.i = load i64, ptr %53, align 8, !range !1497, !alias.scope !2841, !noalias !2844, !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 @@ -3815,27 +3818,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 !2879, !noalias !2880 %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 = 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 -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 !2881, !noalias !2879 +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 !2881, !noalias !2879 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 } @@ -4559,7 +4565,7 @@ define hidden noundef align 8 ptr @"_ZN16wasmtime_environ9component4info1_93_$LT %.val87 = load i64, ptr %11, align 8, !range !1497, !alias.scope !3571, !noalias !3574, !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 @@ -4730,7 +4736,7 @@ define hidden noundef align 8 ptr @"_ZN16wasmtime_environ9component4info1_93_$LT %.val87 = load i64, ptr %11, align 8, !range !1497, !alias.scope !3649, !noalias !3652, !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 @@ -4888,7 +4894,7 @@ define hidden noundef align 8 ptr @"_ZN16wasmtime_environ9component4info1_94_$LT %3 = load i64, ptr %0, align 8, !range !1497, !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 @@ -4985,7 +4991,7 @@ define hidden noalias noundef align 8 ptr @"_ZN16wasmtime_environ9component4info %3 = load i64, ptr %0, align 8, !range !1497, !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 @@ -5036,7 +5042,7 @@ define hidden noalias noundef align 8 ptr @"_ZN16wasmtime_environ9component4info %3 = load i64, ptr %0, align 8, !range !1497, !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 @@ -5106,7 +5112,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 !3971 @@ -5118,27 +5124,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 !3974 - 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 !3974 + br label %24 -23: ; preds = %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17hcb759ec826dba247E.exit", %20 - %.0 = 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 + %.0 = 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 %.0 } @@ -5251,7 +5260,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 !4154 @@ -5263,27 +5272,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 !4157 - 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 !4157 + br label %24 -23: ; preds = %"_ZN83_$LT$bincode..ser..SizeCompound$LT$O$GT$$u20$as$u20$serde..ser..SerializeStruct$GT$15serialize_field17h225a7099f010c7dfE.exit", %20 - %.0 = 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 + %.0 = 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 %.0 } @@ -21396,7 +21408,7 @@ common.resume: ; preds = %.body, %37 call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #44, !noalias !10652 unreachable -.loopexit: ; preds = %79, %52, %89, %96 +.loopexit: ; preds = %79, %52, %92, %99 %lpad.loopexit = landingpad { ptr, i32 } cleanup br label %.body @@ -21409,7 +21421,7 @@ common.resume: ; preds = %.body, %37 .body: ; preds = %.loopexit, %.loopexit.split-lp, %62 %eh.lpad-body = phi { ptr, i32 } [ %63, %62 ], [ %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 %99 + to label %common.resume unwind label %102 _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 !10666 @@ -21431,7 +21443,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 %97, label %79 + br i1 %.not, label %100, label %79 .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 [ %61, %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i" ], [ %56, %"_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 ] @@ -21444,7 +21456,7 @@ _ZN5serde2de9MapAccess10next_entry17h12deb33aa6b87b57E.exit.thread43: ; preds = 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) call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %16) - br label %98 + br label %101 79: ; preds = %_ZN5serde2de9MapAccess10next_entry17h12deb33aa6b87b57E.exit.thread43 store i64 %.sroa.026.054, ptr %14, align 8 @@ -21473,59 +21485,64 @@ _ZN5serde2de9MapAccess10next_entry17h12deb33aa6b87b57E.exit.thread43: ; preds = %86 = select i1 %85, i64 %84, i64 3 switch i64 %86, label %"_ZN4core3ptr90drop_in_place$LT$core..option..Option$LT$wasmtime_environ..component..info..Export$GT$$GT$17hf117d3a8d006af3fE.exit" [ i64 0, label %87 - i64 3, label %96 + i64 3, label %99 ] 87: ; preds = %83 call void @llvm.experimental.noalias.scope.decl(metadata !10673) %88 = load i64, ptr %48, align 8, !range !1497, !alias.scope !10676, !noundef !16 - %or.cond.i.i.i = icmp slt i64 %88, 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 %89 + %89 = icmp ugt i64 %88, -9223372036854775808 + %90 = and i64 %88, 3 + %cond1.i.i.i = icmp ne i64 %90, 0 + %cond.not2.i.i.i = and i1 %89, %cond1.i.i.i + %91 = icmp eq i64 %88, -9223372036854775808 + %or.cond.i.i.i = or i1 %91, %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 %92 -89: ; preds = %87 +92: ; preds = %87 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5), !noalias !10677 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) %48) to label %.noexc23 unwind label %.loopexit -.noexc23: ; preds = %89 - %90 = load i64, ptr %49, align 8, !range !17, !noalias !10677, !noundef !16 - %.not.i.i.i.i.i.i.i.i.i = icmp eq i64 %90, 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 %91 +.noexc23: ; preds = %92 + %93 = load i64, ptr %49, align 8, !range !17, !noalias !10677, !noundef !16 + %.not.i.i.i.i.i.i.i.i.i = icmp eq i64 %93, 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 %94 -91: ; preds = %.noexc23 - %92 = load i64, ptr %50, align 8, !noalias !10677, !noundef !16 - %93 = icmp eq i64 %92, 0 - br i1 %93, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i.i", label %94 +94: ; preds = %.noexc23 + %95 = load i64, ptr %50, align 8, !noalias !10677, !noundef !16 + %96 = icmp eq i64 %95, 0 + br i1 %96, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i.i", label %97 -94: ; preds = %91 - %95 = load ptr, ptr %5, align 8, !noalias !10677, !nonnull !16, !noundef !16 - call void @__rust_dealloc(ptr noundef nonnull %95, i64 noundef %92, i64 noundef %90) #45 +97: ; preds = %94 + %98 = load ptr, ptr %5, align 8, !noalias !10677, !nonnull !16, !noundef !16 + call void @__rust_dealloc(ptr noundef nonnull %98, i64 noundef %95, i64 noundef %93) #45 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 = %94, %91, %.noexc23 +"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i.i": ; preds = %97, %94, %.noexc23 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5), !noalias !10677 br label %"_ZN4core3ptr90drop_in_place$LT$core..option..Option$LT$wasmtime_environ..component..info..Export$GT$$GT$17hf117d3a8d006af3fE.exit" -96: ; preds = %83 +99: ; preds = %83 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", %87, %83, %80, %96 +"_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", %87, %83, %80, %99 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 %51 -97: ; preds = %_ZN5serde2de9MapAccess10next_entry17h12deb33aa6b87b57E.exit.thread43 +100: ; 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) call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %16) - br label %98 + br label %101 -98: ; preds = %.loopexit66, %97 +101: ; preds = %.loopexit66, %100 ret void -99: ; preds = %.body - %100 = landingpad { ptr, i32 } +102: ; preds = %.body + %103 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #44 unreachable @@ -23173,7 +23190,7 @@ common.resume: ; preds = %.body, %37 call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #44, !noalias !10952 unreachable -.loopexit: ; preds = %78, %51, %81 +.loopexit: ; preds = %78, %51, %86 %lpad.loopexit = landingpad { ptr, i32 } cleanup br label %.body @@ -23186,7 +23203,7 @@ common.resume: ; preds = %.body, %37 .body: ; preds = %.loopexit, %.loopexit.split-lp, %61 %eh.lpad-body = phi { ptr, i32 } [ %62, %61 ], [ %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 %90 + to label %common.resume unwind label %95 _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 !10966 @@ -23208,7 +23225,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 %88, label %78 + br i1 %.not, label %93, label %78 .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 [ %60, %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i" ], [ %55, %"_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 ] @@ -23221,7 +23238,7 @@ _ZN5serde2de9MapAccess10next_entry17hd0a3f0f69bcb62a0E.exit.thread41: ; preds = 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) call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %16) - br label %89 + br label %94 78: ; preds = %_ZN5serde2de9MapAccess10next_entry17hd0a3f0f69bcb62a0E.exit.thread41 store i64 %.sroa.024.052, ptr %14, align 8 @@ -23240,49 +23257,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 !10967) %80 = load i64, ptr %15, align 8, !range !2739, !alias.scope !10967, !noundef !16 - %or.cond.i.i = icmp slt i64 %80, 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 %81 + %81 = icmp eq i64 %80, -9223372036854775805 + br i1 %81, label %"_ZN4core3ptr91drop_in_place$LT$core..option..Option$LT$wasmtime_environ..component..info..CoreDef$GT$$GT$17hec8f7a8242096e63E.exit", label %82 -81: ; preds = %79 +82: ; preds = %79 + %83 = icmp ugt i64 %80, -9223372036854775808 + %84 = and i64 %80, 3 + %cond1.i.i = icmp ne i64 %84, 0 + %cond.not2.i.i = and i1 %83, %cond1.i.i + %85 = icmp eq i64 %80, -9223372036854775808 + %or.cond.i.i = or i1 %85, %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 %86 + +86: ; preds = %82 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5), !noalias !10970 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 = %81 - %82 = load i64, ptr %48, align 8, !range !17, !noalias !10970, !noundef !16 - %.not.i.i.i.i.i.i.i.i = icmp eq i64 %82, 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 %83 +.noexc22: ; preds = %86 + %87 = load i64, ptr %48, align 8, !range !17, !noalias !10970, !noundef !16 + %.not.i.i.i.i.i.i.i.i = icmp eq i64 %87, 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 %88 -83: ; preds = %.noexc22 - %84 = load i64, ptr %49, align 8, !noalias !10970, !noundef !16 - %85 = icmp eq i64 %84, 0 - br i1 %85, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i", label %86 +88: ; preds = %.noexc22 + %89 = load i64, ptr %49, align 8, !noalias !10970, !noundef !16 + %90 = icmp eq i64 %89, 0 + br i1 %90, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i", label %91 -86: ; preds = %83 - %87 = load ptr, ptr %5, align 8, !noalias !10970, !nonnull !16, !noundef !16 - call void @__rust_dealloc(ptr noundef nonnull %87, i64 noundef %84, i64 noundef %82) #45 +91: ; preds = %88 + %92 = load ptr, ptr %5, align 8, !noalias !10970, !nonnull !16, !noundef !16 + call void @__rust_dealloc(ptr noundef nonnull %92, i64 noundef %89, i64 noundef %87) #45 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 = %86, %83, %.noexc22 +"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i.i.i.i": ; preds = %91, %88, %.noexc22 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5), !noalias !10970 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", %79 +"_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", %82, %79 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 %50 -88: ; preds = %_ZN5serde2de9MapAccess10next_entry17hd0a3f0f69bcb62a0E.exit.thread41 +93: ; 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) call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %16) - br label %89 + br label %94 -89: ; preds = %.loopexit64, %88 +94: ; preds = %.loopexit64, %93 ret void -90: ; preds = %.body - %91 = landingpad { ptr, i32 } +95: ; preds = %.body + %96 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #44 unreachable diff --git a/bench/wasmtime-rs/optimized/t1qxt6oh6s98so1.ll b/bench/wasmtime-rs/optimized/t1qxt6oh6s98so1.ll index 18a2b4e38ae..44119f18662 100644 --- a/bench/wasmtime-rs/optimized/t1qxt6oh6s98so1.ll +++ b/bench/wasmtime-rs/optimized/t1qxt6oh6s98so1.ll @@ -9209,43 +9209,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" } @@ -9254,32 +9259,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 = %1 +7: ; preds = %1 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !3993 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 !70, !noalias !3993, !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 !70, !noalias !3993, !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 !3993, !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 !3993, !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 !3993, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %12, i64 noundef %9, i64 noundef %6) #46 +14: ; preds = %10 + %15 = load ptr, ptr %2, align 8, !noalias !3993, !nonnull !4, !noundef !4 + tail call void @__rust_dealloc(ptr noundef nonnull %15, i64 noundef %12, i64 noundef %9) #46 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 !3993 br label %"_ZN4core3ptr101drop_in_place$LT$wasmtime_environ..component..info..CoreExport$LT$wasmtime_types..EntityIndex$GT$$GT$17ha68c621d7f1b535cE.exit" } diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index d8d993d1b31..5ba0f6e7d2e 100755 --- a/scripts/setup_pre_commit_patch.sh +++ b/scripts/setup_pre_commit_patch.sh @@ -2,7 +2,7 @@ set -euo pipefail shopt -s inherit_errexit -export GITHUB_PATCH_ID="/llvm-project/commit/" +export GITHUB_PATCH_ID="llvm/llvm-project/pull/97289" # Please rebase manually # git fetch origin