diff --git a/bench/graphviz/optimized/matrix_ops.c.ll b/bench/graphviz/optimized/matrix_ops.c.ll index 1b94545a309..303097cb7c0 100644 --- a/bench/graphviz/optimized/matrix_ops.c.ll +++ b/bench/graphviz/optimized/matrix_ops.c.ll @@ -17,25 +17,25 @@ define zeroext i1 @power_iteration(ptr nocapture noundef readonly %0, i32 nounde %9 = mul nsw i32 %1, 30 %spec.select = tail call i32 @llvm.smin.i32(i32 %2, i32 %1) %10 = icmp sgt i32 %spec.select, 0 - br i1 %10, label %.lr.ph315, label %.loopexit + br i1 %10, label %.lr.ph318, label %.loopexit -.lr.ph315: ; preds = %5 +.lr.ph318: ; preds = %5 %wide.trip.count.i = zext i32 %1 to i64 %.not7.i = icmp eq i32 %1, 0 %11 = shl nuw nsw i64 %wide.trip.count.i, 3 - %wide.trip.count370 = zext nneg i32 %spec.select to i64 + %wide.trip.count373 = zext nneg i32 %spec.select to i64 br label %12 -12: ; preds = %.lr.ph315, %82 - %indvars.iv367 = phi i64 [ 0, %.lr.ph315 ], [ %indvars.iv.next368, %82 ] - %13 = getelementptr inbounds ptr, ptr %3, i64 %indvars.iv367 +12: ; preds = %.lr.ph318, %82 + %indvars.iv370 = phi i64 [ 0, %.lr.ph318 ], [ %indvars.iv.next371, %82 ] + %13 = getelementptr inbounds ptr, ptr %3, i64 %indvars.iv370 %14 = load ptr, ptr %13, align 8 - %.not = icmp eq i64 %indvars.iv367, 0 + %.not = icmp eq i64 %indvars.iv370, 0 %brmerge = or i1 %.not, %.not7.i br label %.lr.ph .preheader292: ; preds = %.lr.ph - br i1 %brmerge, label %.lr.ph.i.i.preheader, label %.lr.ph.preheader.i + br i1 %brmerge, label %.lr.ph.i.i.preheader, label %.lr.ph.i.preheader .lr.ph: ; preds = %.lr.ph.backedge, %12 %indvars.iv = phi i64 [ 0, %12 ], [ %indvars.iv.be, %.lr.ph.backedge ] @@ -48,19 +48,19 @@ define zeroext i1 @power_iteration(ptr nocapture noundef readonly %0, i32 nounde %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count.i br i1 %exitcond.not, label %.preheader292, label %.lr.ph.backedge -.lr.ph.backedge: ; preds = %.lr.ph, %norm.exit.loopexit - %indvars.iv.be = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %norm.exit.loopexit ] +.lr.ph.backedge: ; preds = %.lr.ph, %norm.exit + %indvars.iv.be = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %norm.exit ] br label %.lr.ph -.lr.ph.preheader.i: ; preds = %.preheader292, %scadd.exit.loopexit - %indvars.iv357 = phi i64 [ %indvars.iv.next358, %scadd.exit.loopexit ], [ 0, %.preheader292 ] - %19 = getelementptr inbounds ptr, ptr %3, i64 %indvars.iv357 +.lr.ph.i.preheader: ; preds = %.preheader292, %scadd.exit.loopexit + %indvars.iv360 = phi i64 [ %indvars.iv.next361, %scadd.exit.loopexit ], [ 0, %.preheader292 ] + %19 = getelementptr inbounds ptr, ptr %3, i64 %indvars.iv360 %20 = load ptr, ptr %19, align 8 br label %.lr.ph.i -.lr.ph.i: ; preds = %.lr.ph.i, %.lr.ph.preheader.i - %indvars.iv.i = phi i64 [ 0, %.lr.ph.preheader.i ], [ %indvars.iv.next.i, %.lr.ph.i ] - %.010.i = phi double [ 0.000000e+00, %.lr.ph.preheader.i ], [ %25, %.lr.ph.i ] +.lr.ph.i: ; preds = %.lr.ph.i.preheader, %.lr.ph.i + %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %.lr.ph.i ], [ 0, %.lr.ph.i.preheader ] + %.010.i = phi double [ %25, %.lr.ph.i ], [ 0.000000e+00, %.lr.ph.i.preheader ] %21 = getelementptr inbounds double, ptr %20, i64 %indvars.iv.i %22 = load double, ptr %21, align 8 %23 = getelementptr inbounds double, ptr %14, i64 %indvars.iv.i @@ -68,16 +68,16 @@ define zeroext i1 @power_iteration(ptr nocapture noundef readonly %0, i32 nounde %25 = tail call double @llvm.fmuladd.f64(double %22, double %24, double %.010.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 - br i1 %exitcond.not.i, label %vectors_inner_product.exit.loopexit, label %.lr.ph.i + br i1 %exitcond.not.i, label %vectors_inner_product.exit, label %.lr.ph.i -vectors_inner_product.exit.loopexit: ; preds = %.lr.ph.i +vectors_inner_product.exit: ; preds = %.lr.ph.i %26 = fneg double %25 br label %.lr.ph.i170 -.lr.ph.i170: ; preds = %vectors_inner_product.exit.loopexit, %.lr.ph.i170 - %.010.i171 = phi i32 [ %32, %.lr.ph.i170 ], [ %1, %vectors_inner_product.exit.loopexit ] - %.059.i = phi ptr [ %27, %.lr.ph.i170 ], [ %20, %vectors_inner_product.exit.loopexit ] - %.068.i = phi ptr [ %29, %.lr.ph.i170 ], [ %14, %vectors_inner_product.exit.loopexit ] +.lr.ph.i170: ; preds = %vectors_inner_product.exit, %.lr.ph.i170 + %.010.i171 = phi i32 [ %32, %.lr.ph.i170 ], [ %1, %vectors_inner_product.exit ] + %.059.i = phi ptr [ %27, %.lr.ph.i170 ], [ %20, %vectors_inner_product.exit ] + %.068.i = phi ptr [ %29, %.lr.ph.i170 ], [ %14, %vectors_inner_product.exit ] %27 = getelementptr inbounds i8, ptr %.059.i, i64 8 %28 = load double, ptr %.059.i, align 8 %29 = getelementptr inbounds i8, ptr %.068.i, i64 8 @@ -89,9 +89,9 @@ vectors_inner_product.exit.loopexit: ; preds = %.lr.ph.i br i1 %.not.i, label %scadd.exit.loopexit, label %.lr.ph.i170 scadd.exit.loopexit: ; preds = %.lr.ph.i170 - %indvars.iv.next358 = add nuw nsw i64 %indvars.iv357, 1 - %exitcond361.not = icmp eq i64 %indvars.iv.next358, %indvars.iv367 - br i1 %exitcond361.not, label %.lr.ph.i.i.preheader, label %.lr.ph.preheader.i + %indvars.iv.next361 = add nuw nsw i64 %indvars.iv360, 1 + %exitcond364.not = icmp eq i64 %indvars.iv.next361, %indvars.iv370 + br i1 %exitcond364.not, label %.lr.ph.i.i.preheader, label %.lr.ph.i.preheader .lr.ph.i.i.preheader: ; preds = %scadd.exit.loopexit, %.preheader292 br label %.lr.ph.i.i @@ -104,71 +104,71 @@ scadd.exit.loopexit: ; preds = %.lr.ph.i170 %35 = tail call double @llvm.fmuladd.f64(double %34, double %34, double %.010.i.i) %indvars.iv.next.i.i = add nuw nsw i64 %indvars.iv.i.i, 1 %exitcond.not.i.i = icmp eq i64 %indvars.iv.next.i.i, %wide.trip.count.i - br i1 %exitcond.not.i.i, label %norm.exit.loopexit, label %.lr.ph.i.i + br i1 %exitcond.not.i.i, label %norm.exit, label %.lr.ph.i.i -norm.exit.loopexit: ; preds = %.lr.ph.i.i +norm.exit: ; preds = %.lr.ph.i.i %36 = tail call double @sqrt(double noundef %35) #18 %37 = fcmp olt double %36, 1.000000e-10 - br i1 %37, label %.lr.ph.backedge, label %.lr.ph.preheader.i172 + br i1 %37, label %.lr.ph.backedge, label %.lr.ph.i174.preheader -.lr.ph.preheader.i172: ; preds = %norm.exit.loopexit +.lr.ph.i174.preheader: ; preds = %norm.exit %38 = fdiv double 1.000000e+00, %36 br label %.lr.ph.i174 -.lr.ph.i174: ; preds = %.lr.ph.i174, %.lr.ph.preheader.i172 - %indvars.iv.i175 = phi i64 [ 0, %.lr.ph.preheader.i172 ], [ %indvars.iv.next.i176, %.lr.ph.i174 ] +.lr.ph.i174: ; preds = %.lr.ph.i174.preheader, %.lr.ph.i174 + %indvars.iv.i175 = phi i64 [ %indvars.iv.next.i176, %.lr.ph.i174 ], [ 0, %.lr.ph.i174.preheader ] %39 = getelementptr inbounds double, ptr %14, i64 %indvars.iv.i175 %40 = load double, ptr %39, align 8 %41 = fmul double %38, %40 store double %41, ptr %39, align 8 %indvars.iv.next.i176 = add nuw nsw i64 %indvars.iv.i175, 1 %exitcond.not.i177 = icmp eq i64 %indvars.iv.next.i176, %wide.trip.count.i - br i1 %exitcond.not.i177, label %.lr.ph.preheader.i178, label %.lr.ph.i174 + br i1 %exitcond.not.i177, label %.lr.ph.i180.preheader, label %.lr.ph.i174 -.lr.ph.preheader.i178: ; preds = %.lr.ph.i174, %vectors_inner_product.exit235.loopexit - %.1154 = phi i32 [ %51, %vectors_inner_product.exit235.loopexit ], [ 0, %.lr.ph.i174 ] +.lr.ph.i180.preheader: ; preds = %.lr.ph.i174, %vectors_inner_product.exit235 + %.1154 = phi i32 [ %42, %vectors_inner_product.exit235 ], [ 0, %.lr.ph.i174 ] + %42 = add nuw nsw i32 %.1154, 1 tail call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr nonnull align 8 %14, i64 %11, i1 false) br label %.preheader.us.i -.preheader.us.i: ; preds = %.lr.ph.preheader.i178, %._crit_edge.us.i - %indvars.iv23.i = phi i64 [ %indvars.iv.next24.i, %._crit_edge.us.i ], [ 0, %.lr.ph.preheader.i178 ] - %42 = getelementptr inbounds ptr, ptr %0, i64 %indvars.iv23.i - %43 = load ptr, ptr %42, align 8 - br label %44 - -44: ; preds = %44, %.preheader.us.i - %indvars.iv.i185 = phi i64 [ 0, %.preheader.us.i ], [ %indvars.iv.next.i186, %44 ] - %.017.us.i = phi double [ 0.000000e+00, %.preheader.us.i ], [ %49, %44 ] - %45 = getelementptr inbounds double, ptr %43, i64 %indvars.iv.i185 - %46 = load double, ptr %45, align 8 - %47 = getelementptr inbounds double, ptr %14, i64 %indvars.iv.i185 - %48 = load double, ptr %47, align 8 - %49 = tail call double @llvm.fmuladd.f64(double %46, double %48, double %.017.us.i) +.preheader.us.i: ; preds = %.lr.ph.i180.preheader, %._crit_edge.us.i + %indvars.iv23.i = phi i64 [ %indvars.iv.next24.i, %._crit_edge.us.i ], [ 0, %.lr.ph.i180.preheader ] + %43 = getelementptr inbounds ptr, ptr %0, i64 %indvars.iv23.i + %44 = load ptr, ptr %43, align 8 + br label %45 + +45: ; preds = %45, %.preheader.us.i + %indvars.iv.i185 = phi i64 [ 0, %.preheader.us.i ], [ %indvars.iv.next.i186, %45 ] + %.017.us.i = phi double [ 0.000000e+00, %.preheader.us.i ], [ %50, %45 ] + %46 = getelementptr inbounds double, ptr %44, i64 %indvars.iv.i185 + %47 = load double, ptr %46, align 8 + %48 = getelementptr inbounds double, ptr %14, i64 %indvars.iv.i185 + %49 = load double, ptr %48, align 8 + %50 = tail call double @llvm.fmuladd.f64(double %47, double %49, double %.017.us.i) %indvars.iv.next.i186 = add nuw nsw i64 %indvars.iv.i185, 1 %exitcond.not.i187 = icmp eq i64 %indvars.iv.next.i186, %wide.trip.count.i - br i1 %exitcond.not.i187, label %._crit_edge.us.i, label %44 + br i1 %exitcond.not.i187, label %._crit_edge.us.i, label %45 -._crit_edge.us.i: ; preds = %44 - %50 = getelementptr inbounds double, ptr %7, i64 %indvars.iv23.i - store double %49, ptr %50, align 8 +._crit_edge.us.i: ; preds = %45 + %51 = getelementptr inbounds double, ptr %7, i64 %indvars.iv23.i + store double %50, ptr %51, align 8 %indvars.iv.next24.i = add nuw nsw i64 %indvars.iv23.i, 1 %exitcond27.not.i = icmp eq i64 %indvars.iv.next24.i, %wide.trip.count.i - br i1 %exitcond27.not.i, label %.lr.ph.i190.preheader, label %.preheader.us.i + br i1 %exitcond27.not.i, label %copy_vector.exit194, label %.preheader.us.i -.lr.ph.i190.preheader: ; preds = %._crit_edge.us.i +copy_vector.exit194: ; preds = %._crit_edge.us.i tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %14, ptr nonnull align 8 %7, i64 %11, i1 false) - %51 = add nuw nsw i32 %.1154, 1 - br i1 %.not, label %.lr.ph.i.i214.preheader, label %.lr.ph.preheader.i196 + br i1 %.not, label %.lr.ph.i.i214.preheader, label %.lr.ph.i198.preheader -.lr.ph.preheader.i196: ; preds = %.lr.ph.i190.preheader, %scadd.exit210 - %indvars.iv362 = phi i64 [ %indvars.iv.next363, %scadd.exit210 ], [ 0, %.lr.ph.i190.preheader ] - %52 = getelementptr inbounds ptr, ptr %3, i64 %indvars.iv362 +.lr.ph.i198.preheader: ; preds = %copy_vector.exit194, %scadd.exit210 + %indvars.iv365 = phi i64 [ %indvars.iv.next366, %scadd.exit210 ], [ 0, %copy_vector.exit194 ] + %52 = getelementptr inbounds ptr, ptr %3, i64 %indvars.iv365 %53 = load ptr, ptr %52, align 8 br label %.lr.ph.i198 -.lr.ph.i198: ; preds = %.lr.ph.i198, %.lr.ph.preheader.i196 - %indvars.iv.i199 = phi i64 [ 0, %.lr.ph.preheader.i196 ], [ %indvars.iv.next.i201, %.lr.ph.i198 ] - %.010.i200 = phi double [ 0.000000e+00, %.lr.ph.preheader.i196 ], [ %58, %.lr.ph.i198 ] +.lr.ph.i198: ; preds = %.lr.ph.i198.preheader, %.lr.ph.i198 + %indvars.iv.i199 = phi i64 [ %indvars.iv.next.i201, %.lr.ph.i198 ], [ 0, %.lr.ph.i198.preheader ] + %.010.i200 = phi double [ %58, %.lr.ph.i198 ], [ 0.000000e+00, %.lr.ph.i198.preheader ] %54 = getelementptr inbounds double, ptr %53, i64 %indvars.iv.i199 %55 = load double, ptr %54, align 8 %56 = getelementptr inbounds double, ptr %14, i64 %indvars.iv.i199 @@ -176,16 +176,16 @@ norm.exit.loopexit: ; preds = %.lr.ph.i.i %58 = tail call double @llvm.fmuladd.f64(double %55, double %57, double %.010.i200) %indvars.iv.next.i201 = add nuw nsw i64 %indvars.iv.i199, 1 %exitcond.not.i202 = icmp eq i64 %indvars.iv.next.i201, %wide.trip.count.i - br i1 %exitcond.not.i202, label %vectors_inner_product.exit203.loopexit, label %.lr.ph.i198 + br i1 %exitcond.not.i202, label %vectors_inner_product.exit203, label %.lr.ph.i198 -vectors_inner_product.exit203.loopexit: ; preds = %.lr.ph.i198 +vectors_inner_product.exit203: ; preds = %.lr.ph.i198 %59 = fneg double %58 br i1 %.not7.i, label %scadd.exit210, label %.lr.ph.i205 -.lr.ph.i205: ; preds = %vectors_inner_product.exit203.loopexit, %.lr.ph.i205 - %.010.i206 = phi i32 [ %65, %.lr.ph.i205 ], [ %1, %vectors_inner_product.exit203.loopexit ] - %.059.i207 = phi ptr [ %60, %.lr.ph.i205 ], [ %53, %vectors_inner_product.exit203.loopexit ] - %.068.i208 = phi ptr [ %62, %.lr.ph.i205 ], [ %14, %vectors_inner_product.exit203.loopexit ] +.lr.ph.i205: ; preds = %vectors_inner_product.exit203, %.lr.ph.i205 + %.010.i206 = phi i32 [ %65, %.lr.ph.i205 ], [ %1, %vectors_inner_product.exit203 ] + %.059.i207 = phi ptr [ %60, %.lr.ph.i205 ], [ %53, %vectors_inner_product.exit203 ] + %.068.i208 = phi ptr [ %62, %.lr.ph.i205 ], [ %14, %vectors_inner_product.exit203 ] %60 = getelementptr inbounds i8, ptr %.059.i207, i64 8 %61 = load double, ptr %.059.i207, align 8 %62 = getelementptr inbounds i8, ptr %.068.i208, i64 8 @@ -196,12 +196,12 @@ vectors_inner_product.exit203.loopexit: ; preds = %.lr.ph.i198 %.not.i209 = icmp eq i32 %65, 0 br i1 %.not.i209, label %scadd.exit210, label %.lr.ph.i205 -scadd.exit210: ; preds = %.lr.ph.i205, %vectors_inner_product.exit203.loopexit - %indvars.iv.next363 = add nuw nsw i64 %indvars.iv362, 1 - %exitcond366.not = icmp eq i64 %indvars.iv.next363, %indvars.iv367 - br i1 %exitcond366.not, label %.lr.ph.i.i214.preheader, label %.lr.ph.preheader.i196 +scadd.exit210: ; preds = %.lr.ph.i205, %vectors_inner_product.exit203 + %indvars.iv.next366 = add nuw nsw i64 %indvars.iv365, 1 + %exitcond369.not = icmp eq i64 %indvars.iv.next366, %indvars.iv370 + br i1 %exitcond369.not, label %.lr.ph.i.i214.preheader, label %.lr.ph.i198.preheader -.lr.ph.i.i214.preheader: ; preds = %scadd.exit210, %.lr.ph.i190.preheader +.lr.ph.i.i214.preheader: ; preds = %scadd.exit210, %copy_vector.exit194 br label %.lr.ph.i.i214 .lr.ph.i.i214: ; preds = %.lr.ph.i.i214.preheader, %.lr.ph.i.i214 @@ -212,21 +212,21 @@ scadd.exit210: ; preds = %.lr.ph.i205, %vecto %68 = tail call double @llvm.fmuladd.f64(double %67, double %67, double %.010.i.i216) %indvars.iv.next.i.i217 = add nuw nsw i64 %indvars.iv.i.i215, 1 %exitcond.not.i.i218 = icmp eq i64 %indvars.iv.next.i.i217, %wide.trip.count.i - br i1 %exitcond.not.i.i218, label %norm.exit219.loopexit, label %.lr.ph.i.i214 + br i1 %exitcond.not.i.i218, label %norm.exit219, label %.lr.ph.i.i214 -norm.exit219.loopexit: ; preds = %.lr.ph.i.i214 +norm.exit219: ; preds = %.lr.ph.i.i214 %69 = tail call double @sqrt(double noundef %68) #18 %70 = fcmp uge double %69, 1.000000e-10 %.not168 = icmp slt i32 %.1154, %9 %or.cond = select i1 %70, i1 %.not168, i1 false - br i1 %or.cond, label %.lr.ph.preheader.i220, label %.loopexit.loopexit + br i1 %or.cond, label %.lr.ph.i222.preheader, label %.loopexit.loopexit -.lr.ph.preheader.i220: ; preds = %norm.exit219.loopexit +.lr.ph.i222.preheader: ; preds = %norm.exit219 %71 = fdiv double 1.000000e+00, %69 br label %.lr.ph.i222 -.lr.ph.i222: ; preds = %.lr.ph.i222, %.lr.ph.preheader.i220 - %indvars.iv.i223 = phi i64 [ 0, %.lr.ph.preheader.i220 ], [ %indvars.iv.next.i224, %.lr.ph.i222 ] +.lr.ph.i222: ; preds = %.lr.ph.i222.preheader, %.lr.ph.i222 + %indvars.iv.i223 = phi i64 [ %indvars.iv.next.i224, %.lr.ph.i222 ], [ 0, %.lr.ph.i222.preheader ] %72 = getelementptr inbounds double, ptr %14, i64 %indvars.iv.i223 %73 = load double, ptr %72, align 8 %74 = fmul double %71, %73 @@ -245,77 +245,77 @@ norm.exit219.loopexit: ; preds = %.lr.ph.i.i214 %79 = tail call double @llvm.fmuladd.f64(double %76, double %78, double %.010.i232) %indvars.iv.next.i233 = add nuw nsw i64 %indvars.iv.i231, 1 %exitcond.not.i234 = icmp eq i64 %indvars.iv.next.i233, %wide.trip.count.i - br i1 %exitcond.not.i234, label %vectors_inner_product.exit235.loopexit, label %.lr.ph.i230 + br i1 %exitcond.not.i234, label %vectors_inner_product.exit235, label %.lr.ph.i230 -vectors_inner_product.exit235.loopexit: ; preds = %.lr.ph.i230 +vectors_inner_product.exit235: ; preds = %.lr.ph.i230 %80 = tail call double @llvm.fabs.f64(double %79) %81 = fcmp olt double %80, 0x3FEFF7CED916872B - br i1 %81, label %.lr.ph.preheader.i178, label %82 + br i1 %81, label %.lr.ph.i180.preheader, label %82 -82: ; preds = %vectors_inner_product.exit235.loopexit +82: ; preds = %vectors_inner_product.exit235 %83 = fmul double %69, %79 - %84 = getelementptr inbounds double, ptr %4, i64 %indvars.iv367 + %84 = getelementptr inbounds double, ptr %4, i64 %indvars.iv370 store double %83, ptr %84, align 8 - %indvars.iv.next368 = add nuw nsw i64 %indvars.iv367, 1 - %exitcond371.not = icmp eq i64 %indvars.iv.next368, %wide.trip.count370 - br i1 %exitcond371.not, label %.preheader, label %12 + %indvars.iv.next371 = add nuw nsw i64 %indvars.iv370, 1 + %exitcond374.not = icmp eq i64 %indvars.iv.next371, %wide.trip.count373 + br i1 %exitcond374.not, label %.preheader, label %12 -.loopexit.loopexit: ; preds = %norm.exit219.loopexit - %85 = trunc nuw nsw i64 %indvars.iv367 to i32 +.loopexit.loopexit: ; preds = %norm.exit219 + %85 = trunc nuw nsw i64 %indvars.iv370 to i32 br label %.loopexit .loopexit: ; preds = %.loopexit.loopexit, %5 - %.0148307 = phi i32 [ 0, %5 ], [ %85, %.loopexit.loopexit ] - %.2155 = phi i32 [ 0, %5 ], [ %51, %.loopexit.loopexit ] - %86 = icmp slt i32 %.0148307, %spec.select - br i1 %86, label %.lr.ph325, label %.preheader + %.0148308 = phi i32 [ 0, %5 ], [ %85, %.loopexit.loopexit ] + %.2155 = phi i32 [ 0, %5 ], [ %42, %.loopexit.loopexit ] + %86 = icmp slt i32 %.0148308, %spec.select + br i1 %86, label %.lr.ph328, label %.preheader -.lr.ph325: ; preds = %.loopexit +.lr.ph328: ; preds = %.loopexit %87 = icmp sgt i32 %1, 0 %wide.trip.count.i238 = zext i32 %1 to i64 %.not7.i245 = icmp eq i32 %1, 0 - %88 = zext nneg i32 %.0148307 to i64 - %wide.trip.count385 = zext i32 %spec.select to i64 + %88 = zext nneg i32 %.0148308 to i64 + %wide.trip.count388 = zext i32 %spec.select to i64 br label %114 -.preheader: ; preds = %82, %vectors_scalar_mult.exit267.loopexit, %.loopexit - %.2155413 = phi i32 [ %.2155, %.loopexit ], [ %.2155, %vectors_scalar_mult.exit267.loopexit ], [ %51, %82 ] +.preheader: ; preds = %82, %vectors_scalar_mult.exit267, %.loopexit + %.2155416 = phi i32 [ %.2155, %.loopexit ], [ %.2155, %vectors_scalar_mult.exit267 ], [ %42, %82 ] %89 = add i32 %spec.select, -1 %90 = icmp sgt i32 %spec.select, 1 - br i1 %90, label %.lr.ph335, label %._crit_edge336 + br i1 %90, label %.lr.ph338, label %._crit_edge339 -.lr.ph335: ; preds = %.preheader +.lr.ph338: ; preds = %.preheader %91 = icmp sgt i32 %1, 0 %wide.trip.count.i269 = zext i32 %1 to i64 - br i1 %91, label %.lr.ph335.split.us.preheader, label %.lr.ph335.split.preheader + br i1 %91, label %.lr.ph338.split.us.preheader, label %.lr.ph338.split.preheader -.lr.ph335.split.preheader: ; preds = %.lr.ph335 - %wide.trip.count392 = zext nneg i32 %spec.select to i64 +.lr.ph338.split.preheader: ; preds = %.lr.ph338 + %wide.trip.count395 = zext nneg i32 %spec.select to i64 %92 = load double, ptr %4, align 8 - br label %.lr.ph330 + br label %.lr.ph333 -.lr.ph335.split.us.preheader: ; preds = %.lr.ph335 +.lr.ph338.split.us.preheader: ; preds = %.lr.ph338 %93 = shl nuw nsw i64 %wide.trip.count.i269, 3 - %wide.trip.count409 = zext nneg i32 %89 to i64 - %wide.trip.count404 = zext nneg i32 %spec.select to i64 - br label %.lr.ph330.us.preheader - -.lr.ph330.us.preheader: ; preds = %109, %.lr.ph335.split.us.preheader - %indvars.iv406 = phi i64 [ 0, %.lr.ph335.split.us.preheader ], [ %indvars.iv.next407, %109 ] - %indvars.iv399 = phi i64 [ 1, %.lr.ph335.split.us.preheader ], [ %indvars.iv.next400, %109 ] - %94 = getelementptr inbounds double, ptr %4, i64 %indvars.iv406 - %indvars.iv.next407 = add nuw nsw i64 %indvars.iv406, 1 - %95 = trunc nuw nsw i64 %indvars.iv406 to i32 + %wide.trip.count412 = zext nneg i32 %89 to i64 + %wide.trip.count407 = zext nneg i32 %spec.select to i64 + br label %.lr.ph333.us.preheader + +.lr.ph333.us.preheader: ; preds = %109, %.lr.ph338.split.us.preheader + %indvars.iv409 = phi i64 [ 0, %.lr.ph338.split.us.preheader ], [ %indvars.iv.next410, %109 ] + %indvars.iv402 = phi i64 [ 1, %.lr.ph338.split.us.preheader ], [ %indvars.iv.next403, %109 ] + %94 = getelementptr inbounds double, ptr %4, i64 %indvars.iv409 + %indvars.iv.next410 = add nuw nsw i64 %indvars.iv409, 1 + %95 = trunc nuw nsw i64 %indvars.iv409 to i32 %96 = load double, ptr %94, align 8 - br label %.lr.ph330.us + br label %.lr.ph333.us -._crit_edge331.us: ; preds = %.lr.ph330.us +._crit_edge334.us: ; preds = %.lr.ph333.us %97 = zext i32 %.1152.us to i64 - %.not169.us = icmp eq i64 %indvars.iv406, %97 + %.not169.us = icmp eq i64 %indvars.iv409, %97 br i1 %.not169.us, label %109, label %.lr.ph.preheader.i268.us -.lr.ph.preheader.i268.us: ; preds = %._crit_edge331.us - %98 = getelementptr inbounds ptr, ptr %3, i64 %indvars.iv406 +.lr.ph.preheader.i268.us: ; preds = %._crit_edge334.us + %98 = getelementptr inbounds ptr, ptr %3, i64 %indvars.iv409 %99 = load ptr, ptr %98, align 8 tail call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %99, i64 %93, i1 false) %100 = sext i32 %.1152.us to i64 @@ -342,55 +342,55 @@ copy_vector.exit281.us: ; preds = %.lr.ph.i277.us store double %.1150.us, ptr %94, align 8 br label %109 -109: ; preds = %copy_vector.exit281.us, %._crit_edge331.us - %indvars.iv.next400 = add nuw nsw i64 %indvars.iv399, 1 - %exitcond410.not = icmp eq i64 %indvars.iv.next407, %wide.trip.count409 - br i1 %exitcond410.not, label %._crit_edge336, label %.lr.ph330.us.preheader +109: ; preds = %copy_vector.exit281.us, %._crit_edge334.us + %indvars.iv.next403 = add nuw nsw i64 %indvars.iv402, 1 + %exitcond413.not = icmp eq i64 %indvars.iv.next410, %wide.trip.count412 + br i1 %exitcond413.not, label %._crit_edge339, label %.lr.ph333.us.preheader -.lr.ph330.us: ; preds = %.lr.ph330.us.preheader, %.lr.ph330.us - %indvars.iv401 = phi i64 [ %indvars.iv399, %.lr.ph330.us.preheader ], [ %indvars.iv.next402, %.lr.ph330.us ] - %.0149328.us = phi double [ %96, %.lr.ph330.us.preheader ], [ %.1150.us, %.lr.ph330.us ] - %.0151327.us = phi i32 [ %95, %.lr.ph330.us.preheader ], [ %.1152.us, %.lr.ph330.us ] - %110 = getelementptr inbounds double, ptr %4, i64 %indvars.iv401 +.lr.ph333.us: ; preds = %.lr.ph333.us.preheader, %.lr.ph333.us + %indvars.iv404 = phi i64 [ %indvars.iv402, %.lr.ph333.us.preheader ], [ %indvars.iv.next405, %.lr.ph333.us ] + %.0149331.us = phi double [ %96, %.lr.ph333.us.preheader ], [ %.1150.us, %.lr.ph333.us ] + %.0151330.us = phi i32 [ %95, %.lr.ph333.us.preheader ], [ %.1152.us, %.lr.ph333.us ] + %110 = getelementptr inbounds double, ptr %4, i64 %indvars.iv404 %111 = load double, ptr %110, align 8 - %112 = fcmp olt double %.0149328.us, %111 - %113 = trunc nuw nsw i64 %indvars.iv401 to i32 - %.1152.us = select i1 %112, i32 %113, i32 %.0151327.us - %.1150.us = select i1 %112, double %111, double %.0149328.us - %indvars.iv.next402 = add nuw nsw i64 %indvars.iv401, 1 - %exitcond405.not = icmp eq i64 %indvars.iv.next402, %wide.trip.count404 - br i1 %exitcond405.not, label %._crit_edge331.us, label %.lr.ph330.us - -114: ; preds = %.lr.ph325, %vectors_scalar_mult.exit267.loopexit - %indvars.iv382 = phi i64 [ %88, %.lr.ph325 ], [ %indvars.iv.next383, %vectors_scalar_mult.exit267.loopexit ] - %115 = getelementptr inbounds ptr, ptr %3, i64 %indvars.iv382 + %112 = fcmp olt double %.0149331.us, %111 + %113 = trunc nuw nsw i64 %indvars.iv404 to i32 + %.1152.us = select i1 %112, i32 %113, i32 %.0151330.us + %.1150.us = select i1 %112, double %111, double %.0149331.us + %indvars.iv.next405 = add nuw nsw i64 %indvars.iv404, 1 + %exitcond408.not = icmp eq i64 %indvars.iv.next405, %wide.trip.count407 + br i1 %exitcond408.not, label %._crit_edge334.us, label %.lr.ph333.us + +114: ; preds = %.lr.ph328, %vectors_scalar_mult.exit267 + %indvars.iv385 = phi i64 [ %88, %.lr.ph328 ], [ %indvars.iv.next386, %vectors_scalar_mult.exit267 ] + %115 = getelementptr inbounds ptr, ptr %3, i64 %indvars.iv385 %116 = load ptr, ptr %115, align 8 - br i1 %87, label %.lr.ph319, label %.preheader291 + br i1 %87, label %.lr.ph322, label %.preheader291 -.preheader291: ; preds = %.lr.ph319, %114 - %.not338 = icmp eq i64 %indvars.iv382, 0 - br i1 %.not338, label %.lr.ph.i.i255.preheader, label %.lr.ph321 +.preheader291: ; preds = %.lr.ph322, %114 + %.not341 = icmp eq i64 %indvars.iv385, 0 + br i1 %.not341, label %._crit_edge325, label %.lr.ph324 -.lr.ph319: ; preds = %114, %.lr.ph319 - %indvars.iv372 = phi i64 [ %indvars.iv.next373, %.lr.ph319 ], [ 0, %114 ] +.lr.ph322: ; preds = %114, %.lr.ph322 + %indvars.iv375 = phi i64 [ %indvars.iv.next376, %.lr.ph322 ], [ 0, %114 ] %117 = tail call i32 @rand() #18 %118 = srem i32 %117, 100 %119 = sitofp i32 %118 to double - %120 = getelementptr inbounds double, ptr %116, i64 %indvars.iv372 + %120 = getelementptr inbounds double, ptr %116, i64 %indvars.iv375 store double %119, ptr %120, align 8 - %indvars.iv.next373 = add nuw nsw i64 %indvars.iv372, 1 - %exitcond376.not = icmp eq i64 %indvars.iv.next373, %wide.trip.count.i238 - br i1 %exitcond376.not, label %.preheader291, label %.lr.ph319 + %indvars.iv.next376 = add nuw nsw i64 %indvars.iv375, 1 + %exitcond379.not = icmp eq i64 %indvars.iv.next376, %wide.trip.count.i238 + br i1 %exitcond379.not, label %.preheader291, label %.lr.ph322 -.lr.ph321: ; preds = %.preheader291, %scadd.exit251 - %indvars.iv377 = phi i64 [ %indvars.iv.next378, %scadd.exit251 ], [ 0, %.preheader291 ] - %121 = getelementptr inbounds ptr, ptr %3, i64 %indvars.iv377 +.lr.ph324: ; preds = %.preheader291, %scadd.exit251 + %indvars.iv380 = phi i64 [ %indvars.iv.next381, %scadd.exit251 ], [ 0, %.preheader291 ] + %121 = getelementptr inbounds ptr, ptr %3, i64 %indvars.iv380 %122 = load ptr, ptr %121, align 8 br i1 %87, label %.lr.ph.i239, label %vectors_inner_product.exit244 -.lr.ph.i239: ; preds = %.lr.ph321, %.lr.ph.i239 - %indvars.iv.i240 = phi i64 [ %indvars.iv.next.i242, %.lr.ph.i239 ], [ 0, %.lr.ph321 ] - %.010.i241 = phi double [ %127, %.lr.ph.i239 ], [ 0.000000e+00, %.lr.ph321 ] +.lr.ph.i239: ; preds = %.lr.ph324, %.lr.ph.i239 + %indvars.iv.i240 = phi i64 [ %indvars.iv.next.i242, %.lr.ph.i239 ], [ 0, %.lr.ph324 ] + %.010.i241 = phi double [ %127, %.lr.ph.i239 ], [ 0.000000e+00, %.lr.ph324 ] %123 = getelementptr inbounds double, ptr %122, i64 %indvars.iv.i240 %124 = load double, ptr %123, align 8 %125 = getelementptr inbounds double, ptr %116, i64 %indvars.iv.i240 @@ -400,8 +400,8 @@ copy_vector.exit281.us: ; preds = %.lr.ph.i277.us %exitcond.not.i243 = icmp eq i64 %indvars.iv.next.i242, %wide.trip.count.i238 br i1 %exitcond.not.i243, label %vectors_inner_product.exit244, label %.lr.ph.i239 -vectors_inner_product.exit244: ; preds = %.lr.ph.i239, %.lr.ph321 - %.0.lcssa.i236 = phi double [ 0.000000e+00, %.lr.ph321 ], [ %127, %.lr.ph.i239 ] +vectors_inner_product.exit244: ; preds = %.lr.ph.i239, %.lr.ph324 + %.0.lcssa.i236 = phi double [ 0.000000e+00, %.lr.ph324 ], [ %127, %.lr.ph.i239 ] %128 = fneg double %.0.lcssa.i236 br i1 %.not7.i245, label %scadd.exit251, label %.lr.ph.i246 @@ -420,16 +420,16 @@ vectors_inner_product.exit244: ; preds = %.lr.ph.i239, %.lr.p br i1 %.not.i250, label %scadd.exit251, label %.lr.ph.i246 scadd.exit251: ; preds = %.lr.ph.i246, %vectors_inner_product.exit244 - %indvars.iv.next378 = add nuw nsw i64 %indvars.iv377, 1 - %exitcond381.not = icmp eq i64 %indvars.iv.next378, %indvars.iv382 - br i1 %exitcond381.not, label %.lr.ph.i.i255.preheader, label %.lr.ph321 + %indvars.iv.next381 = add nuw nsw i64 %indvars.iv380, 1 + %exitcond384.not = icmp eq i64 %indvars.iv.next381, %indvars.iv385 + br i1 %exitcond384.not, label %._crit_edge325, label %.lr.ph324 -.lr.ph.i.i255.preheader: ; preds = %scadd.exit251, %.preheader291 - br label %.lr.ph.i.i255 +._crit_edge325: ; preds = %scadd.exit251, %.preheader291 + br i1 %87, label %.lr.ph.i.i255, label %vectors_scalar_mult.exit267 -.lr.ph.i.i255: ; preds = %.lr.ph.i.i255.preheader, %.lr.ph.i.i255 - %indvars.iv.i.i256 = phi i64 [ %indvars.iv.next.i.i258, %.lr.ph.i.i255 ], [ 0, %.lr.ph.i.i255.preheader ] - %.010.i.i257 = phi double [ %137, %.lr.ph.i.i255 ], [ 0.000000e+00, %.lr.ph.i.i255.preheader ] +.lr.ph.i.i255: ; preds = %._crit_edge325, %.lr.ph.i.i255 + %indvars.iv.i.i256 = phi i64 [ %indvars.iv.next.i.i258, %.lr.ph.i.i255 ], [ 0, %._crit_edge325 ] + %.010.i.i257 = phi double [ %137, %.lr.ph.i.i255 ], [ 0.000000e+00, %._crit_edge325 ] %135 = getelementptr inbounds double, ptr %116, i64 %indvars.iv.i.i256 %136 = load double, ptr %135, align 8 %137 = tail call double @llvm.fmuladd.f64(double %136, double %136, double %.010.i.i257) @@ -450,44 +450,44 @@ norm.exit260: ; preds = %.lr.ph.i.i255 store double %142, ptr %140, align 8 %indvars.iv.next.i265 = add nuw nsw i64 %indvars.iv.i264, 1 %exitcond.not.i266 = icmp eq i64 %indvars.iv.next.i265, %wide.trip.count.i238 - br i1 %exitcond.not.i266, label %vectors_scalar_mult.exit267.loopexit, label %.lr.ph.i263 + br i1 %exitcond.not.i266, label %vectors_scalar_mult.exit267, label %.lr.ph.i263 -vectors_scalar_mult.exit267.loopexit: ; preds = %.lr.ph.i263 - %143 = getelementptr inbounds double, ptr %4, i64 %indvars.iv382 +vectors_scalar_mult.exit267: ; preds = %.lr.ph.i263, %._crit_edge325 + %143 = getelementptr inbounds double, ptr %4, i64 %indvars.iv385 store double 0.000000e+00, ptr %143, align 8 - %indvars.iv.next383 = add nuw nsw i64 %indvars.iv382, 1 - %exitcond386.not = icmp eq i64 %indvars.iv.next383, %wide.trip.count385 - br i1 %exitcond386.not, label %.preheader, label %114 - -.lr.ph330: ; preds = %.lr.ph335.split.preheader, %.lr.ph330 - %indvars.iv389 = phi i64 [ 1, %.lr.ph335.split.preheader ], [ %indvars.iv.next390, %.lr.ph330 ] - %.0149328 = phi double [ %92, %.lr.ph335.split.preheader ], [ %.1150, %.lr.ph330 ] - %.0151327 = phi i32 [ 0, %.lr.ph335.split.preheader ], [ %.1152, %.lr.ph330 ] - %144 = getelementptr inbounds double, ptr %4, i64 %indvars.iv389 + %indvars.iv.next386 = add nuw nsw i64 %indvars.iv385, 1 + %exitcond389.not = icmp eq i64 %indvars.iv.next386, %wide.trip.count388 + br i1 %exitcond389.not, label %.preheader, label %114 + +.lr.ph333: ; preds = %.lr.ph338.split.preheader, %.lr.ph333 + %indvars.iv392 = phi i64 [ 1, %.lr.ph338.split.preheader ], [ %indvars.iv.next393, %.lr.ph333 ] + %.0149331 = phi double [ %92, %.lr.ph338.split.preheader ], [ %.1150, %.lr.ph333 ] + %.0151330 = phi i32 [ 0, %.lr.ph338.split.preheader ], [ %.1152, %.lr.ph333 ] + %144 = getelementptr inbounds double, ptr %4, i64 %indvars.iv392 %145 = load double, ptr %144, align 8 - %146 = fcmp olt double %.0149328, %145 - %147 = trunc nuw nsw i64 %indvars.iv389 to i32 - %.1152 = select i1 %146, i32 %147, i32 %.0151327 - %.1150 = select i1 %146, double %145, double %.0149328 - %indvars.iv.next390 = add nuw nsw i64 %indvars.iv389, 1 - %exitcond393.not = icmp eq i64 %indvars.iv.next390, %wide.trip.count392 - br i1 %exitcond393.not, label %._crit_edge331, label %.lr.ph330 - -._crit_edge331: ; preds = %.lr.ph330 + %146 = fcmp olt double %.0149331, %145 + %147 = trunc nuw nsw i64 %indvars.iv392 to i32 + %.1152 = select i1 %146, i32 %147, i32 %.0151330 + %.1150 = select i1 %146, double %145, double %.0149331 + %indvars.iv.next393 = add nuw nsw i64 %indvars.iv392, 1 + %exitcond396.not = icmp eq i64 %indvars.iv.next393, %wide.trip.count395 + br i1 %exitcond396.not, label %._crit_edge334, label %.lr.ph333 + +._crit_edge334: ; preds = %.lr.ph333 %.not169 = icmp eq i32 %.1152, 0 - br i1 %.not169, label %._crit_edge336, label %copy_vector.exit274.thread + br i1 %.not169, label %._crit_edge339, label %copy_vector.exit274.thread -copy_vector.exit274.thread: ; preds = %._crit_edge331 +copy_vector.exit274.thread: ; preds = %._crit_edge334 %148 = sext i32 %.1152 to i64 %149 = getelementptr inbounds double, ptr %4, i64 %148 store double %92, ptr %149, align 8 store double %.1150, ptr %4, align 8 - br label %._crit_edge336 + br label %._crit_edge339 -._crit_edge336: ; preds = %109, %._crit_edge331, %copy_vector.exit274.thread, %.preheader +._crit_edge339: ; preds = %109, %._crit_edge334, %copy_vector.exit274.thread, %.preheader tail call void @free(ptr noundef %7) #18 tail call void @free(ptr noundef %8) #18 - %150 = icmp sle i32 %.2155413, %9 + %150 = icmp sle i32 %.2155416, %9 ret i1 %150 } diff --git a/bench/libwebp/optimized/huffman_encode_utils.c.ll b/bench/libwebp/optimized/huffman_encode_utils.c.ll index 253da5c8364..510876cc682 100644 --- a/bench/libwebp/optimized/huffman_encode_utils.c.ll +++ b/bench/libwebp/optimized/huffman_encode_utils.c.ll @@ -11,23 +11,23 @@ target triple = "x86_64-pc-linux-gnu" define hidden i32 @VP8LCreateCompressedHuffmanTree(ptr nocapture noundef readonly %0, ptr noundef %1, i32 noundef %2) local_unnamed_addr #0 { %4 = load i32, ptr %0, align 8 %5 = icmp sgt i32 %4, 0 - br i1 %5, label %.lr.ph60, label %._crit_edge + br i1 %5, label %.lr.ph68, label %._crit_edge -.lr.ph60: ; preds = %3 +.lr.ph68: ; preds = %3 %6 = getelementptr inbounds i8, ptr %0, i64 8 %7 = zext nneg i32 %4 to i64 br label %8 -8: ; preds = %.lr.ph60, %CodeRepeatedZeros.exit - %.059 = phi ptr [ %1, %.lr.ph60 ], [ %.1, %CodeRepeatedZeros.exit ] - %.02958 = phi i32 [ 8, %.lr.ph60 ], [ %.130, %CodeRepeatedZeros.exit ] - %.03157 = phi i32 [ 0, %.lr.ph60 ], [ %.028.lcssa, %CodeRepeatedZeros.exit ] +8: ; preds = %.lr.ph68, %CodeRepeatedZeros.exit + %.067 = phi ptr [ %1, %.lr.ph68 ], [ %.1, %CodeRepeatedZeros.exit ] + %.02966 = phi i32 [ 8, %.lr.ph68 ], [ %.130, %CodeRepeatedZeros.exit ] + %.03165 = phi i32 [ 0, %.lr.ph68 ], [ %.028.lcssa, %CodeRepeatedZeros.exit ] %9 = load ptr, ptr %6, align 8 - %10 = sext i32 %.03157 to i64 + %10 = sext i32 %.03165 to i64 %11 = getelementptr inbounds i8, ptr %9, i64 %10 %12 = load i8, ptr %11, align 1 %13 = zext i8 %12 to i32 - %14 = add nsw i32 %.03157, 1 + %14 = add nsw i32 %.03165, 1 %smax = tail call i32 @llvm.smax.i32(i32 %4, i32 %14) br label %15 @@ -41,17 +41,17 @@ define hidden i32 @VP8LCreateCompressedHuffmanTree(ptr nocapture noundef readonl %18 = getelementptr inbounds i8, ptr %9, i64 %indvars.iv.next %19 = load i8, ptr %18, align 1 %20 = icmp eq i8 %19, %12 - br i1 %20, label %15, label %.critedge.split.loop.exit97, !llvm.loop !4 + br i1 %20, label %15, label %.critedge.split.loop.exit87, !llvm.loop !4 -.critedge.split.loop.exit97: ; preds = %17 +.critedge.split.loop.exit87: ; preds = %17 %21 = trunc nsw i64 %indvars.iv.next to i32 br label %.critedge -.critedge: ; preds = %15, %.critedge.split.loop.exit97 - %.028.lcssa = phi i32 [ %21, %.critedge.split.loop.exit97 ], [ %smax, %15 ] - %22 = sub i32 %.028.lcssa, %.03157 +.critedge: ; preds = %15, %.critedge.split.loop.exit87 + %.028.lcssa = phi i32 [ %21, %.critedge.split.loop.exit87 ], [ %smax, %15 ] + %22 = sub i32 %.028.lcssa, %.03165 %23 = icmp eq i8 %12, 0 - br i1 %23, label %24, label %55 + br i1 %23, label %24, label %53 24: ; preds = %.critedge %25 = icmp sgt i32 %22, 0 @@ -60,143 +60,149 @@ define hidden i32 @VP8LCreateCompressedHuffmanTree(ptr nocapture noundef readonl .lr.ph.preheader.i: ; preds = %24 %26 = add nsw i32 %22, -1 %27 = urem i32 %26, 138 - %28 = zext nneg i32 %26 to i64 - %29 = shl nuw nsw i64 %28, 1 - %30 = getelementptr i8, ptr %.059, i64 %29 - %scevgep.i = getelementptr i8, ptr %30, i64 2 - %31 = udiv i32 %26, 138 - %wide.trip.count = zext nneg i32 %31 to i64 - br label %.lr.ph.i - -.lr.ph.i: ; preds = %50, %.lr.ph.preheader.i - %indvars.iv.i = phi ptr [ %scevgep.i, %.lr.ph.preheader.i ], [ %scevgep48.i, %50 ] - %indvar.i = phi i64 [ 0, %.lr.ph.preheader.i ], [ %indvar.next.i, %50 ] - %.02232.i = phi ptr [ %.059, %.lr.ph.preheader.i ], [ %52, %50 ] - %.02331.i = phi i32 [ %22, %.lr.ph.preheader.i ], [ %53, %50 ] - %32 = icmp samesign ult i32 %.02331.i, 3 - br i1 %32, label %.lr.ph35.preheader.i, label %37 - -.lr.ph35.preheader.i: ; preds = %.lr.ph.i - %33 = shl nuw i32 %22, 1 - %34 = zext i32 %33 to i64 - %35 = mul nsw i64 %indvar.i, -276 - %36 = add i64 %35, %34 - tail call void @llvm.memset.p0.i64(ptr align 1 %.02232.i, i8 0, i64 %36, i1 false) + %28 = udiv i32 %26, 138 + %29 = zext nneg i32 %26 to i64 + %30 = shl nuw nsw i64 %29, 1 + %31 = getelementptr i8, ptr %.067, i64 %30 + %scevgep.i = getelementptr i8, ptr %31, i64 2 + %32 = icmp samesign ult i32 %22, 3 + br i1 %32, label %.lr.ph35.preheader.i, label %.lr.ph61.preheader + +.lr.ph61.preheader: ; preds = %.lr.ph.preheader.i + %wide.trip.count = zext nneg i32 %28 to i64 + br label %.lr.ph61 + +.lr.ph35.preheader.i.loopexit: ; preds = %.lr.ph.i + %33 = mul nsw i64 %indvar.next.i, -276 + br label %.lr.ph35.preheader.i + +.lr.ph35.preheader.i: ; preds = %.lr.ph35.preheader.i.loopexit, %.lr.ph.preheader.i + %indvars.iv.i.lcssa = phi ptr [ %scevgep.i, %.lr.ph.preheader.i ], [ %scevgep48.i, %.lr.ph35.preheader.i.loopexit ] + %indvar.i.lcssa = phi i64 [ 0, %.lr.ph.preheader.i ], [ %33, %.lr.ph35.preheader.i.loopexit ] + %.02232.i.lcssa = phi ptr [ %.067, %.lr.ph.preheader.i ], [ %50, %.lr.ph35.preheader.i.loopexit ] + %34 = shl nuw i32 %22, 1 + %35 = zext i32 %34 to i64 + %36 = add i64 %indvar.i.lcssa, %35 + tail call void @llvm.memset.p0.i64(ptr align 1 %.02232.i.lcssa, i8 0, i64 %36, i1 false) br label %CodeRepeatedZeros.exit -37: ; preds = %.lr.ph.i - %38 = icmp samesign ult i32 %.02331.i, 11 - br i1 %38, label %39, label %44 - -39: ; preds = %37 - store i8 17, ptr %.02232.i, align 1 - %40 = trunc nuw i32 %.02331.i to i8 - %41 = add nsw i8 %40, -3 - %42 = getelementptr inbounds i8, ptr %.02232.i, i64 1 - store i8 %41, ptr %42, align 1 - %43 = getelementptr inbounds i8, ptr %.02232.i, i64 2 +.lr.ph61: ; preds = %.lr.ph61.preheader, %.lr.ph.i + %.02331.i60 = phi i32 [ %51, %.lr.ph.i ], [ %22, %.lr.ph61.preheader ] + %.02232.i59 = phi ptr [ %50, %.lr.ph.i ], [ %.067, %.lr.ph61.preheader ] + %indvar.i58 = phi i64 [ %indvar.next.i, %.lr.ph.i ], [ 0, %.lr.ph61.preheader ] + %indvars.iv.i57 = phi ptr [ %scevgep48.i, %.lr.ph.i ], [ %scevgep.i, %.lr.ph61.preheader ] + %37 = icmp samesign ult i32 %.02331.i60, 11 + br i1 %37, label %38, label %43 + +38: ; preds = %.lr.ph61 + store i8 17, ptr %.02232.i59, align 1 + %39 = trunc nuw i32 %.02331.i60 to i8 + %40 = add nsw i8 %39, -3 + %41 = getelementptr inbounds i8, ptr %.02232.i59, i64 1 + store i8 %40, ptr %41, align 1 + %42 = getelementptr inbounds i8, ptr %.02232.i59, i64 2 br label %CodeRepeatedZeros.exit -44: ; preds = %37 - %exitcond = icmp eq i64 %indvar.i, %wide.trip.count - store i8 18, ptr %.02232.i, align 1 - br i1 %exitcond, label %45, label %50 - -45: ; preds = %44 - %46 = trunc nuw i32 %27 to i8 - %47 = add i8 %46, -10 - %48 = getelementptr inbounds i8, ptr %.02232.i, i64 1 - store i8 %47, ptr %48, align 1 - %49 = getelementptr inbounds i8, ptr %.02232.i, i64 2 +43: ; preds = %.lr.ph61 + %exitcond = icmp eq i64 %indvar.i58, %wide.trip.count + store i8 18, ptr %.02232.i59, align 1 + br i1 %exitcond, label %44, label %.lr.ph.i + +44: ; preds = %43 + %45 = trunc nuw i32 %27 to i8 + %46 = add i8 %45, -10 + %47 = getelementptr inbounds i8, ptr %.02232.i59, i64 1 + store i8 %46, ptr %47, align 1 + %48 = getelementptr inbounds i8, ptr %.02232.i59, i64 2 br label %CodeRepeatedZeros.exit -50: ; preds = %44 - %51 = getelementptr inbounds i8, ptr %.02232.i, i64 1 - store i8 127, ptr %51, align 1 - %52 = getelementptr i8, ptr %.02232.i, i64 2 - %53 = add nsw i32 %.02331.i, -138 - %54 = icmp sgt i32 %.02331.i, 138 - %indvar.next.i = add nuw nsw i64 %indvar.i, 1 - %scevgep48.i = getelementptr i8, ptr %indvars.iv.i, i64 -274 - br i1 %54, label %.lr.ph.i, label %CodeRepeatedZeros.exit, !llvm.loop !6 - -55: ; preds = %.critedge - %.not.i = icmp eq i32 %.02958, %13 - br i1 %.not.i, label %60, label %56 - -56: ; preds = %55 - store i8 %12, ptr %.059, align 1 - %57 = getelementptr inbounds i8, ptr %.059, i64 1 - store i8 0, ptr %57, align 1 - %58 = getelementptr inbounds i8, ptr %.059, i64 2 - %59 = add nsw i32 %22, -1 - br label %60 - -60: ; preds = %56, %55 - %.026.i = phi ptr [ %58, %56 ], [ %.059, %55 ] - %.025.i = phi i32 [ %59, %56 ], [ %22, %55 ] - %61 = icmp sgt i32 %.025.i, 0 - br i1 %61, label %.lr.ph.preheader.i34, label %CodeRepeatedZeros.exit - -.lr.ph.preheader.i34: ; preds = %60 - %62 = add nsw i32 %.025.i, -1 - %63 = urem i32 %62, 6 - %64 = icmp samesign ult i32 %.025.i, 3 - br i1 %64, label %.lr.ph38.i.preheader, label %.lr.ph +.lr.ph.i: ; preds = %43 + %49 = getelementptr inbounds i8, ptr %.02232.i59, i64 1 + store i8 127, ptr %49, align 1 + %50 = getelementptr i8, ptr %.02232.i59, i64 2 + %51 = add nsw i32 %.02331.i60, -138 + %indvar.next.i = add nuw nsw i64 %indvar.i58, 1 + %scevgep48.i = getelementptr i8, ptr %indvars.iv.i57, i64 -274 + %52 = icmp samesign ult i32 %51, 3 + br i1 %52, label %.lr.ph35.preheader.i.loopexit, label %.lr.ph61 + +53: ; preds = %.critedge + %.not.i = icmp eq i32 %.02966, %13 + br i1 %.not.i, label %58, label %54 + +54: ; preds = %53 + store i8 %12, ptr %.067, align 1 + %55 = getelementptr inbounds i8, ptr %.067, i64 1 + store i8 0, ptr %55, align 1 + %56 = getelementptr inbounds i8, ptr %.067, i64 2 + %57 = add nsw i32 %22, -1 + br label %58 + +58: ; preds = %54, %53 + %.026.i = phi ptr [ %56, %54 ], [ %.067, %53 ] + %.025.i = phi i32 [ %57, %54 ], [ %22, %53 ] + %59 = icmp sgt i32 %.025.i, 0 + br i1 %59, label %.lr.ph.preheader.i34, label %CodeRepeatedZeros.exit + +.lr.ph.preheader.i34: ; preds = %58 + %60 = add nsw i32 %.025.i, -1 + %61 = urem i32 %60, 6 + %62 = icmp samesign ult i32 %.025.i, 3 + br i1 %62, label %.lr.ph38.i.preheader, label %.lr.ph .lr.ph38.i.preheader: ; preds = %.lr.ph.i36, %.lr.ph.preheader.i34 - %.135.i.lcssa = phi i32 [ %.025.i, %.lr.ph.preheader.i34 ], [ %76, %.lr.ph.i36 ] - %.12734.i.lcssa = phi ptr [ %.026.i, %.lr.ph.preheader.i34 ], [ %75, %.lr.ph.i36 ] + %.135.i.lcssa = phi i32 [ %.025.i, %.lr.ph.preheader.i34 ], [ %74, %.lr.ph.i36 ] + %.12734.i.lcssa = phi ptr [ %.026.i, %.lr.ph.preheader.i34 ], [ %73, %.lr.ph.i36 ] br label %.lr.ph38.i .lr.ph38.i: ; preds = %.lr.ph38.i.preheader, %.lr.ph38.i - %.037.i = phi i32 [ %67, %.lr.ph38.i ], [ 0, %.lr.ph38.i.preheader ] - %.336.i = phi ptr [ %66, %.lr.ph38.i ], [ %.12734.i.lcssa, %.lr.ph38.i.preheader ] + %.037.i = phi i32 [ %65, %.lr.ph38.i ], [ 0, %.lr.ph38.i.preheader ] + %.336.i = phi ptr [ %64, %.lr.ph38.i ], [ %.12734.i.lcssa, %.lr.ph38.i.preheader ] store i8 %12, ptr %.336.i, align 1 - %65 = getelementptr inbounds i8, ptr %.336.i, i64 1 - store i8 0, ptr %65, align 1 - %66 = getelementptr inbounds i8, ptr %.336.i, i64 2 - %67 = add nuw nsw i32 %.037.i, 1 - %exitcond.not.i = icmp eq i32 %67, %.135.i.lcssa - br i1 %exitcond.not.i, label %CodeRepeatedZeros.exit, label %.lr.ph38.i, !llvm.loop !7 + %63 = getelementptr inbounds i8, ptr %.336.i, i64 1 + store i8 0, ptr %63, align 1 + %64 = getelementptr inbounds i8, ptr %.336.i, i64 2 + %65 = add nuw nsw i32 %.037.i, 1 + %exitcond.not.i = icmp eq i32 %65, %.135.i.lcssa + br i1 %exitcond.not.i, label %CodeRepeatedZeros.exit, label %.lr.ph38.i, !llvm.loop !6 .lr.ph: ; preds = %.lr.ph.preheader.i34, %.lr.ph.i36 - %.12734.i55 = phi ptr [ %75, %.lr.ph.i36 ], [ %.026.i, %.lr.ph.preheader.i34 ] - %.135.i54 = phi i32 [ %76, %.lr.ph.i36 ], [ %.025.i, %.lr.ph.preheader.i34 ] - %68 = icmp samesign ult i32 %.135.i54, 7 + %.12734.i55 = phi ptr [ %73, %.lr.ph.i36 ], [ %.026.i, %.lr.ph.preheader.i34 ] + %.135.i54 = phi i32 [ %74, %.lr.ph.i36 ], [ %.025.i, %.lr.ph.preheader.i34 ] + %66 = icmp samesign ult i32 %.135.i54, 7 store i8 16, ptr %.12734.i55, align 1 - br i1 %68, label %69, label %.lr.ph.i36 + br i1 %66, label %67, label %.lr.ph.i36 + +67: ; preds = %.lr.ph + %68 = trunc nuw nsw i32 %61 to i8 + %69 = add nsw i8 %68, -2 + %70 = getelementptr inbounds i8, ptr %.12734.i55, i64 1 + store i8 %69, ptr %70, align 1 + %71 = getelementptr inbounds i8, ptr %.12734.i55, i64 2 + br label %CodeRepeatedZeros.exit -69: ; preds = %.lr.ph - %70 = trunc nuw nsw i32 %63 to i8 - %71 = add nsw i8 %70, -2 +.lr.ph.i36: ; preds = %.lr.ph %72 = getelementptr inbounds i8, ptr %.12734.i55, i64 1 - store i8 %71, ptr %72, align 1 + store i8 3, ptr %72, align 1 %73 = getelementptr inbounds i8, ptr %.12734.i55, i64 2 - br label %CodeRepeatedZeros.exit + %74 = add nsw i32 %.135.i54, -6 + %75 = icmp samesign ult i32 %74, 3 + br i1 %75, label %.lr.ph38.i.preheader, label %.lr.ph, !llvm.loop !7 -.lr.ph.i36: ; preds = %.lr.ph - %74 = getelementptr inbounds i8, ptr %.12734.i55, i64 1 - store i8 3, ptr %74, align 1 - %75 = getelementptr inbounds i8, ptr %.12734.i55, i64 2 - %76 = add nsw i32 %.135.i54, -6 - %77 = icmp samesign ult i32 %76, 3 - br i1 %77, label %.lr.ph38.i.preheader, label %.lr.ph, !llvm.loop !8 - -CodeRepeatedZeros.exit: ; preds = %.lr.ph38.i, %50, %69, %60, %45, %39, %.lr.ph35.preheader.i, %24 - %.130 = phi i32 [ %.02958, %24 ], [ %.02958, %.lr.ph35.preheader.i ], [ %.02958, %39 ], [ %.02958, %45 ], [ %13, %60 ], [ %13, %69 ], [ %.02958, %50 ], [ %13, %.lr.ph38.i ] - %.1 = phi ptr [ %.059, %24 ], [ %indvars.iv.i, %.lr.ph35.preheader.i ], [ %43, %39 ], [ %49, %45 ], [ %.026.i, %60 ], [ %73, %69 ], [ %52, %50 ], [ %66, %.lr.ph38.i ] - %78 = icmp slt i32 %.028.lcssa, %4 - br i1 %78, label %8, label %._crit_edge, !llvm.loop !9 +CodeRepeatedZeros.exit: ; preds = %.lr.ph38.i, %67, %58, %44, %38, %.lr.ph35.preheader.i, %24 + %.130 = phi i32 [ %.02966, %24 ], [ %.02966, %.lr.ph35.preheader.i ], [ %.02966, %38 ], [ %.02966, %44 ], [ %13, %58 ], [ %13, %67 ], [ %13, %.lr.ph38.i ] + %.1 = phi ptr [ %.067, %24 ], [ %indvars.iv.i.lcssa, %.lr.ph35.preheader.i ], [ %42, %38 ], [ %48, %44 ], [ %.026.i, %58 ], [ %71, %67 ], [ %64, %.lr.ph38.i ] + %76 = icmp slt i32 %.028.lcssa, %4 + br i1 %76, label %8, label %._crit_edge, !llvm.loop !8 ._crit_edge: ; preds = %CodeRepeatedZeros.exit, %3 %.0.lcssa = phi ptr [ %1, %3 ], [ %.1, %CodeRepeatedZeros.exit ] - %79 = ptrtoint ptr %.0.lcssa to i64 - %80 = ptrtoint ptr %1 to i64 - %81 = sub i64 %79, %80 - %82 = lshr exact i64 %81, 1 - %83 = trunc i64 %82 to i32 - ret i32 %83 + %77 = ptrtoint ptr %.0.lcssa to i64 + %78 = ptrtoint ptr %1 to i64 + %79 = sub i64 %77, %78 + %80 = lshr exact i64 %79, 1 + %81 = trunc i64 %80 to i32 + ret i32 %81 } ; Function Attrs: nofree nounwind uwtable @@ -294,7 +300,7 @@ OptimizeHuffmanForRle.exit.thread: ; preds = %5 %.195.i = phi i32 [ 1, %34 ], [ 1, %.loopexit121.i ], [ %38, %37 ] %indvar.next.i = add nuw nsw i64 %indvar.i, 1 %exitcond.not.i = icmp eq i64 %indvar.next.i, %wide.trip.count.i - br i1 %exitcond.not.i, label %._crit_edge139.i, label %.lr.ph138.i, !llvm.loop !10 + br i1 %exitcond.not.i, label %._crit_edge139.i, label %.lr.ph138.i, !llvm.loop !9 ._crit_edge139.i: ; preds = %39 %40 = load i32, ptr %0, align 4 @@ -364,7 +370,7 @@ OptimizeHuffmanForRle.exit.thread: ; preds = %5 store i32 %spec.store.select6.i, ptr %73, align 4 %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 %exitcond155.not.i = icmp eq i64 %indvars.iv.next.i, %wide.trip.count154.i - br i1 %exitcond155.not.i, label %.loopexit.i, label %69, !llvm.loop !11 + br i1 %exitcond155.not.i, label %.loopexit.i, label %69, !llvm.loop !10 .loopexit.i: ; preds = %69, %60 %74 = icmp slt i64 %indvars.iv156.i, %42 @@ -422,7 +428,7 @@ OptimizeHuffmanForRle.exit.thread: ; preds = %5 %.2.i = phi i32 [ %99, %101 ], [ %99, %97 ], [ 0, %94 ], [ %96, %.thread117.i ] %indvars.iv.next157.i = add nuw nsw i64 %indvars.iv156.i, 1 %exitcond160.not.i = icmp eq i64 %indvars.iv.next157.i, %wide.trip.count.i - br i1 %exitcond160.not.i, label %OptimizeHuffmanForRle.exit, label %43, !llvm.loop !12 + br i1 %exitcond160.not.i, label %OptimizeHuffmanForRle.exit, label %43, !llvm.loop !11 OptimizeHuffmanForRle.exit: ; preds = %.lr.ph.i, %105 %107 = getelementptr inbounds i8, ptr %4, i64 8 @@ -441,7 +447,7 @@ OptimizeHuffmanForRle.exit: ; preds = %.lr.ph.i, %105 %spec.select.i = add i32 %.093109.i, %111 %indvars.iv.next.i16 = add nuw nsw i64 %indvars.iv.i14, 1 %exitcond.not.i17 = icmp eq i64 %indvars.iv.next.i16, %wide.trip.count.i12 - br i1 %exitcond.not.i17, label %._crit_edge.i18, label %.lr.ph.i13, !llvm.loop !13 + br i1 %exitcond.not.i17, label %._crit_edge.i18, label %.lr.ph.i13, !llvm.loop !12 ._crit_edge.i18: ; preds = %.lr.ph.i13 %112 = icmp eq i32 %spec.select.i, 0 @@ -492,7 +498,7 @@ OptimizeHuffmanForRle.exit: ; preds = %.lr.ph.i, %105 %spec.select107.us.i = tail call i32 @llvm.umax.i32(i32 %.0125.us.i, i32 %128) %indvars.iv.next196.i = add nuw nsw i64 %indvars.iv195.i, 1 %exitcond199.not.i = icmp eq i64 %indvars.iv.next196.i, %wide.trip.count.i12 - br i1 %exitcond199.not.i, label %._crit_edge128.us.i, label %.lr.ph127.us.i, !llvm.loop !14 + br i1 %exitcond199.not.i, label %._crit_edge128.us.i, label %.lr.ph127.us.i, !llvm.loop !13 129: ; preds = %._crit_edge118.us.i, %.preheader.us.i %indvars.iv188.i = phi i64 [ %121, %.preheader.us.i ], [ %indvars.iv.next189.i, %._crit_edge118.us.i ] @@ -545,12 +551,12 @@ OptimizeHuffmanForRle.exit: ; preds = %.lr.ph.i, %105 store i32 %151, ptr %150, align 4 %indvars.iv.next189.i = add nsw i64 %indvars.iv188.i, -1 %indvars.iv.next185.i = add nsw i64 %indvars.iv184.i, -1 - br i1 %138, label %129, label %122, !llvm.loop !15 + br i1 %138, label %129, label %122, !llvm.loop !14 152: ; preds = %.lr.ph117.us.i %indvars.iv.next178.i = add nuw nsw i64 %indvars.iv177.i, 1 %exitcond183.not.i = icmp eq i64 %indvars.iv.next178.i, %indvars.iv184.i - br i1 %exitcond183.not.i, label %._crit_edge118.us.loopexit.i, label %.lr.ph117.us.i, !llvm.loop !16 + br i1 %exitcond183.not.i, label %._crit_edge118.us.loopexit.i, label %.lr.ph117.us.i, !llvm.loop !15 .lr.ph113.us.i: ; preds = %163, %.split.us.i %indvars.iv172.i = phi i64 [ %indvars.iv.next173.i, %163 ], [ 0, %.split.us.i ] @@ -579,7 +585,7 @@ OptimizeHuffmanForRle.exit: ; preds = %.lr.ph.i, %105 %.198.us.i = phi i32 [ %162, %155 ], [ %.097110.us.i, %.lr.ph113.us.i ] %indvars.iv.next173.i = add nuw nsw i64 %indvars.iv172.i, 1 %exitcond176.not.i = icmp eq i64 %indvars.iv.next173.i, %wide.trip.count.i12 - br i1 %exitcond176.not.i, label %.preheader.us.i, label %.lr.ph113.us.i, !llvm.loop !17 + br i1 %exitcond176.not.i, label %.preheader.us.i, label %.lr.ph113.us.i, !llvm.loop !16 .lr.ph113.us141.i: ; preds = %113, %._crit_edge128.us144.i %.091.us130.i = phi i32 [ %171, %._crit_edge128.us144.i ], [ 1, %113 ] @@ -612,7 +618,7 @@ OptimizeHuffmanForRle.exit: ; preds = %.lr.ph.i, %105 %spec.select107.us135.i = tail call i32 @llvm.umax.i32(i32 %.0125.us133.i, i32 %174) %indvars.iv.next168.i = add nuw nsw i64 %indvars.iv167.i, 1 %exitcond171.not.i = icmp eq i64 %indvars.iv.next168.i, %wide.trip.count.i12 - br i1 %exitcond171.not.i, label %._crit_edge128.us144.i, label %.lr.ph127.us143.i, !llvm.loop !14 + br i1 %exitcond171.not.i, label %._crit_edge128.us144.i, label %.lr.ph127.us143.i, !llvm.loop !13 175: ; preds = %186, %.lr.ph113.us141.i %indvars.iv162.i = phi i64 [ 0, %.lr.ph113.us141.i ], [ %indvars.iv.next163.i, %186 ] @@ -641,7 +647,7 @@ OptimizeHuffmanForRle.exit: ; preds = %.lr.ph.i, %105 %.198.us140.i = phi i32 [ %185, %178 ], [ %.097110.us137.i, %175 ] %indvars.iv.next163.i = add nuw nsw i64 %indvars.iv162.i, 1 %exitcond166.not.i = icmp eq i64 %indvars.iv.next163.i, %wide.trip.count.i12 - br i1 %exitcond166.not.i, label %._crit_edge114.us142.i, label %175, !llvm.loop !17 + br i1 %exitcond166.not.i, label %._crit_edge114.us142.i, label %175, !llvm.loop !16 ._crit_edge114.us142.i: ; preds = %186 tail call void @qsort(ptr noundef %3, i64 noundef %114, i64 noundef 16, ptr noundef nonnull @CompareHuffmanTrees) #10 @@ -672,7 +678,7 @@ GenerateOptimalTree.exit: ; preds = %._crit_edge128.us14 store i32 %197, ptr %195, align 4 %indvars.iv.next.i24 = add nuw nsw i64 %indvars.iv.i23, 1 %exitcond.not.i25 = icmp eq i64 %indvars.iv.next.i24, %wide.trip.count.i22 - br i1 %exitcond.not.i25, label %._crit_edge.i20, label %191, !llvm.loop !18 + br i1 %exitcond.not.i25, label %._crit_edge.i20, label %191, !llvm.loop !17 ._crit_edge.i20: ; preds = %191, %GenerateOptimalTree.exit store i32 0, ptr %7, align 16 @@ -699,7 +705,7 @@ GenerateOptimalTree.exit: ; preds = %._crit_edge128.us14 store i32 %204, ptr %205, align 4 %indvars.iv.next31.i = add nuw nsw i64 %indvars.iv30.i, 1 %exitcond33.not.i = icmp eq i64 %indvars.iv.next31.i, 16 - br i1 %exitcond33.not.i, label %.preheader.i, label %199, !llvm.loop !19 + br i1 %exitcond33.not.i, label %.preheader.i, label %199, !llvm.loop !18 206: ; preds = %ReverseBits.exit.i, %.lr.ph27.i %indvars.iv34.i = phi i64 [ 0, %.lr.ph27.i ], [ %indvars.iv.next35.i, %ReverseBits.exit.i ] @@ -730,7 +736,7 @@ GenerateOptimalTree.exit: ; preds = %._crit_edge128.us14 %223 = or i32 %222, %.01014.i.i %224 = lshr i32 %.01113.i.i, 4 %225 = icmp samesign ult i32 %215, %210 - br i1 %225, label %.lr.ph.i.i, label %ReverseBits.exit.i, !llvm.loop !20 + br i1 %225, label %.lr.ph.i.i, label %ReverseBits.exit.i, !llvm.loop !19 ReverseBits.exit.i: ; preds = %.lr.ph.i.i, %206 %.010.lcssa.i.i = phi i32 [ 0, %206 ], [ %223, %.lr.ph.i.i ] @@ -742,7 +748,7 @@ ReverseBits.exit.i: ; preds = %.lr.ph.i.i, %206 store i16 %228, ptr %230, align 2 %indvars.iv.next35.i = add nuw nsw i64 %indvars.iv34.i, 1 %exitcond38.not.i = icmp eq i64 %indvars.iv.next35.i, %wide.trip.count37.i - br i1 %exitcond38.not.i, label %ConvertBitDepthsToSymbols.exit, label %206, !llvm.loop !21 + br i1 %exitcond38.not.i, label %ConvertBitDepthsToSymbols.exit, label %206, !llvm.loop !20 ConvertBitDepthsToSymbols.exit: ; preds = %ReverseBits.exit.i, %.preheader.i call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %6) @@ -873,4 +879,3 @@ attributes #10 = { nounwind } !18 = distinct !{!18, !5} !19 = distinct !{!19, !5} !20 = distinct !{!20, !5} -!21 = distinct !{!21, !5} diff --git a/bench/wireshark/optimized/packet-wccp.c.ll b/bench/wireshark/optimized/packet-wccp.c.ll index 08ff6acd44c..2842cf5b6ae 100644 --- a/bench/wireshark/optimized/packet-wccp.c.ll +++ b/bench/wireshark/optimized/packet-wccp.c.ll @@ -3438,29 +3438,29 @@ define internal fastcc i32 @dissect_wccp2_mask_value_set_list(ptr noundef %0, i3 %16 = call ptr @proto_tree_add_item(ptr noundef %13, i32 noundef %15, ptr noundef %0, i32 noundef %1, i32 noundef 4, i32 noundef 0) #7 %17 = add nsw i32 %2, -4 %18 = add i32 %1, 4 - %.not42 = icmp eq i32 %14, 0 - br i1 %.not42, label %._crit_edge, label %.lr.ph + %.not38 = icmp eq i32 %14, 0 + br i1 %.not38, label %._crit_edge, label %.lr.ph -19: ; preds = %93 - %20 = add nuw i32 %.03938, 1 +19: ; preds = %91 + %20 = add nuw i32 %.03934, 1 %exitcond.not = icmp eq i32 %20, %14 br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !24 .lr.ph: ; preds = %11, %19 - %.03740 = phi i32 [ %95, %19 ], [ %18, %11 ] - %.03839 = phi i32 [ %.0.i4, %19 ], [ %17, %11 ] - %.03938 = phi i32 [ %20, %19 ], [ 0, %11 ] + %.03736 = phi i32 [ %93, %19 ], [ %18, %11 ] + %.03835 = phi i32 [ %.0.i4, %19 ], [ %17, %11 ] + %.03934 = phi i32 [ %20, %19 ], [ 0, %11 ] call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) %21 = load i32, ptr @ett_mv_set_element, align 4 - %22 = call ptr (ptr, ptr, i32, i32, i32, ptr, ptr, ...) @proto_tree_add_subtree_format(ptr noundef %13, ptr noundef %0, i32 noundef %.03740, i32 noundef 0, i32 noundef %21, ptr noundef nonnull %6, ptr noundef nonnull @.str.420, i32 noundef %.03938) #7 - %23 = call fastcc i32 @dissect_wccp2_mask_element(ptr noundef %0, i32 noundef %.03740, i32 noundef range(i32 0, -2147483648) %.03839, ptr noundef %22) + %22 = call ptr (ptr, ptr, i32, i32, i32, ptr, ptr, ...) @proto_tree_add_subtree_format(ptr noundef %13, ptr noundef %0, i32 noundef %.03736, i32 noundef 0, i32 noundef %21, ptr noundef nonnull %6, ptr noundef nonnull @.str.420, i32 noundef %.03934) #7 + %23 = call fastcc i32 @dissect_wccp2_mask_element(ptr noundef %0, i32 noundef %.03736, i32 noundef range(i32 0, -2147483648) %.03835, ptr noundef %22) %24 = icmp slt i32 %23, 0 br i1 %24, label %dissect_wccp2_mask_value_set_element.exit.thread, label %25 25: ; preds = %.lr.ph - %26 = sub nsw i32 %.03839, %23 - %27 = add i32 %26, %.03740 - %.not.i = icmp slt i32 %.03740, %27 + %26 = sub nsw i32 %.03835, %23 + %27 = add i32 %26, %.03736 + %.not.i = icmp slt i32 %.03736, %27 br i1 %.not.i, label %28, label %dissect_wccp2_mask_value_set_element.exit 28: ; preds = %25 @@ -3487,10 +3487,10 @@ define internal fastcc i32 @dissect_wccp2_mask_value_set_list(ptr noundef %0, i3 %41 = sub i32 %38, %40 br label %.lr.ph.i -.lr.ph.i: ; preds = %87, %.lr.ph.preheader.i - %.05410.i = phi i32 [ %88, %87 ], [ %39, %.lr.ph.preheader.i ] - %.0559.i = phi i32 [ %89, %87 ], [ 0, %.lr.ph.preheader.i ] - %.0568.i = phi i32 [ %84, %87 ], [ %38, %.lr.ph.preheader.i ] +.lr.ph.i: ; preds = %84, %.lr.ph.preheader.i + %.05410.i = phi i32 [ %86, %84 ], [ %39, %.lr.ph.preheader.i ] + %.0559.i = phi i32 [ %87, %84 ], [ 0, %.lr.ph.preheader.i ] + %.0568.i = phi i32 [ %85, %84 ], [ %38, %.lr.ph.preheader.i ] %42 = icmp samesign ult i32 %.0568.i, 4 br i1 %42, label %43, label %45 @@ -3554,33 +3554,29 @@ dissect_wccp2_value_element.exit.i: ; preds = %74 %81 = load i32, ptr @hf_value_element_web_cache_ipv4, align 4 %82 = load i32, ptr @hf_value_element_web_cache_ipv6, align 4 %83 = call fastcc ptr @wccp_add_ipaddress_item(ptr noundef %37, i32 noundef %80, i32 noundef %81, i32 noundef %82, ptr noundef %0, i32 noundef %49, ptr noundef readonly %4) - %84 = add nsw i32 %.0568.i, -16 - %85 = icmp slt i32 %.0568.i, 16 - br i1 %85, label %dissect_wccp2_mask_value_set_element.exit, label %86 - -86: ; preds = %dissect_wccp2_value_element.exit.i %.not63.i = icmp slt i32 %.05410.i, 2147483632 - br i1 %.not63.i, label %87, label %dissect_wccp2_mask_value_set_element.exit.thread2 + br i1 %.not63.i, label %84, label %dissect_wccp2_mask_value_set_element.exit.thread2 -dissect_wccp2_mask_value_set_element.exit.thread2: ; preds = %86 +dissect_wccp2_mask_value_set_element.exit.thread2: ; preds = %dissect_wccp2_value_element.exit.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) - br label %93 + br label %91 -87: ; preds = %86 - %88 = add nsw i32 %.05410.i, 16 - %89 = add nuw nsw i32 %.0559.i, 1 - %exitcond.not.i = icmp eq i32 %89, %33 +84: ; preds = %dissect_wccp2_value_element.exit.i + %85 = add nsw i32 %.0568.i, -16 + %86 = add nsw i32 %.05410.i, 16 + %87 = add nuw nsw i32 %.0559.i, 1 + %exitcond.not.i = icmp eq i32 %87, %33 br i1 %exitcond.not.i, label %._crit_edge.loopexit.i, label %.lr.ph.i, !llvm.loop !25 -._crit_edge.loopexit.i: ; preds = %87 - %90 = add i32 %40, 16 +._crit_edge.loopexit.i: ; preds = %84 + %88 = add i32 %40, 16 br label %._crit_edge.i ._crit_edge.i: ; preds = %._crit_edge.loopexit.i, %32 - %.pre-phi.i = phi i32 [ %90, %._crit_edge.loopexit.i ], [ 16, %32 ] + %.pre-phi.i = phi i32 [ %88, %._crit_edge.loopexit.i ], [ 16, %32 ] %.056.lcssa.i = phi i32 [ %41, %._crit_edge.loopexit.i ], [ %38, %32 ] - %91 = load ptr, ptr %6, align 8 - call void @proto_item_set_len(ptr noundef %91, i32 noundef %.pre-phi.i) #7 + %89 = load ptr, ptr %6, align 8 + call void @proto_item_set_len(ptr noundef %89, i32 noundef %.pre-phi.i) #7 br label %dissect_wccp2_mask_value_set_element.exit dissect_wccp2_mask_value_set_element.exit.thread: ; preds = %.lr.ph, %30, %78, %72, %66, %57, %43 @@ -3588,29 +3584,29 @@ dissect_wccp2_mask_value_set_element.exit.thread: ; preds = %.lr.ph, %30, %78, % call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) br label %.loopexit -dissect_wccp2_mask_value_set_element.exit: ; preds = %dissect_wccp2_value_element.exit.i, %25, %._crit_edge.i - %.0.i = phi i32 [ %.056.lcssa.i, %._crit_edge.i ], [ %26, %25 ], [ %84, %dissect_wccp2_value_element.exit.i ] +dissect_wccp2_mask_value_set_element.exit: ; preds = %25, %._crit_edge.i + %.0.i = phi i32 [ %.056.lcssa.i, %._crit_edge.i ], [ %26, %25 ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) - %92 = icmp slt i32 %.0.i, 0 - br i1 %92, label %.loopexit, label %93 + %90 = icmp slt i32 %.0.i, 0 + br i1 %90, label %.loopexit, label %91 -93: ; preds = %dissect_wccp2_mask_value_set_element.exit.thread2, %dissect_wccp2_mask_value_set_element.exit +91: ; preds = %dissect_wccp2_mask_value_set_element.exit.thread2, %dissect_wccp2_mask_value_set_element.exit %.0.i4 = phi i32 [ 16, %dissect_wccp2_mask_value_set_element.exit.thread2 ], [ %.0.i, %dissect_wccp2_mask_value_set_element.exit ] - %94 = sub nsw i32 %.03839, %.0.i4 - %95 = add i32 %94, %.03740 - %.not = icmp slt i32 %.03740, %95 + %92 = sub nsw i32 %.03835, %.0.i4 + %93 = add i32 %92, %.03736 + %.not = icmp slt i32 %.03736, %93 br i1 %.not, label %19, label %.loopexit ._crit_edge: ; preds = %19, %11 %.038.lcssa = phi i32 [ %17, %11 ], [ %.0.i4, %19 ] - %.037.lcssa = phi i32 [ %18, %11 ], [ %95, %19 ] - %96 = load ptr, ptr %7, align 8 - %97 = sub i32 %.037.lcssa, %1 - call void @proto_item_set_len(ptr noundef %96, i32 noundef %97) #7 + %.037.lcssa = phi i32 [ %18, %11 ], [ %93, %19 ] + %94 = load ptr, ptr %7, align 8 + %95 = sub i32 %.037.lcssa, %1 + call void @proto_item_set_len(ptr noundef %94, i32 noundef %95) #7 br label %.loopexit -.loopexit: ; preds = %93, %dissect_wccp2_mask_value_set_element.exit, %dissect_wccp2_mask_value_set_element.exit.thread, %._crit_edge, %9 - %.0 = phi i32 [ %10, %9 ], [ %.038.lcssa, %._crit_edge ], [ %.0.i.ph, %dissect_wccp2_mask_value_set_element.exit.thread ], [ %94, %93 ], [ %.0.i, %dissect_wccp2_mask_value_set_element.exit ] +.loopexit: ; preds = %91, %dissect_wccp2_mask_value_set_element.exit, %dissect_wccp2_mask_value_set_element.exit.thread, %._crit_edge, %9 + %.0 = phi i32 [ %10, %9 ], [ %.038.lcssa, %._crit_edge ], [ %.0.i.ph, %dissect_wccp2_mask_value_set_element.exit.thread ], [ %92, %91 ], [ %.0.i, %dissect_wccp2_mask_value_set_element.exit ] ret i32 %.0 } diff --git a/bench/zstd/optimized/divsufsort.c.ll b/bench/zstd/optimized/divsufsort.c.ll index af96e2c8dff..770cf8490ea 100644 --- a/bench/zstd/optimized/divsufsort.c.ll +++ b/bench/zstd/optimized/divsufsort.c.ll @@ -1218,8 +1218,8 @@ tr_ilg.exit.i: ; preds = %cond.false19.i.i289 %cond28.i.i226 = phi i32 [ %add.i.i225, %cond.true3.i.i221 ], [ %add9.i.i281, %cond.false.i.i277 ], [ %add18.i.i288, %cond.true13.i.i284 ], [ %85, %cond.false19.i.i289 ] %sub.i = sub nsw i32 0, %sub55 %86 = load i32, ptr %SA, align 4 - %cmp299.i = icmp sgt i32 %86, %sub.i - br i1 %cmp299.i, label %do.body.preheader.lr.ph.i, label %trsort.exit + %cmp291.i = icmp sgt i32 %86, %sub.i + br i1 %cmp291.i, label %do.body.preheader.lr.ph.i, label %trsort.exit do.body.preheader.lr.ph.i: ; preds = %tr_ilg.exit.i %add.ptr.i227 = getelementptr inbounds i8, ptr %add.ptr101, i64 4 @@ -1232,10 +1232,10 @@ do.body.preheader.lr.ph.i: ; preds = %tr_ilg.exit.i do.body.preheader.i: ; preds = %for.inc.i, %do.body.preheader.lr.ph.i %87 = phi i32 [ %86, %do.body.preheader.lr.ph.i ], [ %391, %for.inc.i ] - %ISAd.0302.i = phi ptr [ %add.ptr.i227, %do.body.preheader.lr.ph.i ], [ %add.ptr53.i, %for.inc.i ] - %budget.sroa.0.0301.i = phi i32 [ %div.i, %do.body.preheader.lr.ph.i ], [ %budget.sroa.0.2243258.i, %for.inc.i ] - %budget.sroa.7.0300.i = phi i32 [ %sub55, %do.body.preheader.lr.ph.i ], [ %budget.sroa.7.2241259.i, %for.inc.i ] - %sub.ptr.lhs.cast.i.i229 = ptrtoint ptr %ISAd.0302.i to i64 + %ISAd.0294.i = phi ptr [ %add.ptr.i227, %do.body.preheader.lr.ph.i ], [ %add.ptr53.i, %for.inc.i ] + %budget.sroa.0.0293.i = phi i32 [ %div.i, %do.body.preheader.lr.ph.i ], [ %budget.sroa.0.2243258.i, %for.inc.i ] + %budget.sroa.7.0292.i = phi i32 [ %sub55, %do.body.preheader.lr.ph.i ], [ %budget.sroa.7.2241259.i, %for.inc.i ] + %sub.ptr.lhs.cast.i.i229 = ptrtoint ptr %ISAd.0294.i to i64 %sub.ptr.sub.i.i230 = sub i64 %sub.ptr.lhs.cast.i.i229, %sub.ptr.rhs.cast.i.i %sext445.i.i = shl i64 %sub.ptr.sub.i.i230, 30 %idx.ext733.i.i = ashr i64 %sext445.i.i, 32 @@ -1253,8 +1253,8 @@ do.bodythread-pre-split.i: ; preds = %do.cond.thread.i, % do.body.i: ; preds = %do.bodythread-pre-split.i, %do.body.preheader.i %88 = phi i32 [ %.pr.i, %do.bodythread-pre-split.i ], [ %87, %do.body.preheader.i ] - %budget.sroa.7.1.i = phi i32 [ %budget.sroa.7.2242.i, %do.bodythread-pre-split.i ], [ %budget.sroa.7.0300.i, %do.body.preheader.i ] - %budget.sroa.0.1.i = phi i32 [ %budget.sroa.0.2244.i, %do.bodythread-pre-split.i ], [ %budget.sroa.0.0301.i, %do.body.preheader.i ] + %budget.sroa.7.1.i = phi i32 [ %budget.sroa.7.2242.i, %do.bodythread-pre-split.i ], [ %budget.sroa.7.0292.i, %do.body.preheader.i ] + %budget.sroa.0.1.i = phi i32 [ %budget.sroa.0.2244.i, %do.bodythread-pre-split.i ], [ %budget.sroa.0.0293.i, %do.body.preheader.i ] %first.0.i = phi ptr [ %first.1246.i, %do.bodythread-pre-split.i ], [ %SA, %do.body.preheader.i ] %skip.0.i = phi i32 [ %skip.3248.i, %do.bodythread-pre-split.i ], [ 0, %do.body.preheader.i ] %unsorted.0.i = phi i32 [ %unsorted.2250.i, %do.bodythread-pre-split.i ], [ 0, %do.body.preheader.i ] @@ -1345,12 +1345,12 @@ for.cond.outer.i.i: ; preds = %for.cond.outer.i.i. %budget.sroa.0.3.i = phi i32 [ %budget.sroa.0.1.i, %for.cond.outer.i.i.preheader ], [ %budget.sroa.0.3.i.be, %for.cond.outer.i.i.backedge ] %last.addr.0.ph.i.i = phi ptr [ %gep.i235, %for.cond.outer.i.i.preheader ], [ %last.addr.0.ph.i.i.be, %for.cond.outer.i.i.backedge ] %first.addr.0.ph.i.i = phi ptr [ %first.0.i, %for.cond.outer.i.i.preheader ], [ %first.addr.0.ph.i.i.be, %for.cond.outer.i.i.backedge ] - %ISAd.addr.0.ph.i.i = phi ptr [ %ISAd.0302.i, %for.cond.outer.i.i.preheader ], [ %ISAd.addr.0.ph.i.i.be, %for.cond.outer.i.i.backedge ] + %ISAd.addr.0.ph.i.i = phi ptr [ %ISAd.0294.i, %for.cond.outer.i.i.preheader ], [ %ISAd.addr.0.ph.i.i.be, %for.cond.outer.i.i.backedge ] %limit.0.ph.i.i = phi i32 [ %limit.0.ph.i.i.ph, %for.cond.outer.i.i.preheader ], [ %limit.0.ph.i.i.be, %for.cond.outer.i.i.backedge ] %ssize.0.ph.i.i = phi i32 [ 0, %for.cond.outer.i.i.preheader ], [ %ssize.0.ph.i.i.be, %for.cond.outer.i.i.backedge ] %trlink.0.ph.i.i = phi i32 [ -1, %for.cond.outer.i.i.preheader ], [ %trlink.0.ph.i.i.be, %for.cond.outer.i.i.backedge ] - %cmp811.i.i = icmp slt i32 %limit.0.ph.i.i, 0 - br i1 %cmp811.i.i, label %if.then.i.i, label %if.end511.lr.ph.i.i + %cmp820.i.i = icmp slt i32 %limit.0.ph.i.i, 0 + br i1 %cmp820.i.i, label %if.then.i.i, label %if.end511.lr.ph.i.i if.end511.lr.ph.i.i: ; preds = %for.cond.outer.i.i %sub.ptr.lhs.cast512.i.i = ptrtoint ptr %last.addr.0.ph.i.i to i64 @@ -1368,7 +1368,7 @@ if.end511.lr.ph.i.i: ; preds = %for.cond.outer.i.i %idxprom3.i669.i.i = sext i32 %dec.i.i.i to i64 %arrayidx4.i670.i.i = getelementptr inbounds i32, ptr %first.addr.0.ph.i.i, i64 %idxprom3.i669.i.i %add.ptr529.i.i = getelementptr inbounds i8, ptr %last.addr.0.ph.i.i, i64 -4 - %cmp531808.i.i = icmp ult ptr %first.addr.0.ph.i.i, %add.ptr529.i.i + %cmp531817.i.i = icmp ult ptr %first.addr.0.ph.i.i, %add.ptr529.i.i br i1 %cmp516.i.i, label %if.end511.lr.ph.split.us.i.i, label %if.end511.i.i if.end511.lr.ph.split.us.i.i: ; preds = %if.end511.lr.ph.i.i @@ -1740,16 +1740,16 @@ if.then17.i.i: ; preds = %tr_partition.exit21 %sub.ptr.div21.i.i = lshr exact i64 %sub.ptr.sub20.i.i, 2 %133 = trunc i64 %sub.ptr.div21.i.i to i32 %conv23.i.i = add i32 %133, -1 - %cmp25827.i.i = icmp ult ptr %first.addr.0.ph.i.i, %first.addr.0.i104.i - br i1 %cmp25827.i.i, label %for.body.i.i274, label %if.end.i.i271 + %cmp25836.i.i = icmp ult ptr %first.addr.0.ph.i.i, %first.addr.0.i104.i + br i1 %cmp25836.i.i, label %for.body.i.i274, label %if.end.i.i271 for.body.i.i274: ; preds = %if.then17.i.i, %for.body.i.i274 - %c.0828.i.i = phi ptr [ %incdec.ptr.i.i275, %for.body.i.i274 ], [ %first.addr.0.ph.i.i, %if.then17.i.i ] - %134 = load i32, ptr %c.0828.i.i, align 4 + %c.0837.i.i = phi ptr [ %incdec.ptr.i.i275, %for.body.i.i274 ], [ %first.addr.0.ph.i.i, %if.then17.i.i ] + %134 = load i32, ptr %c.0837.i.i, align 4 %idxprom.i36.i = sext i32 %134 to i64 %arrayidx.i37.i = getelementptr inbounds i32, ptr %add.ptr101, i64 %idxprom.i36.i store i32 %conv23.i.i, ptr %arrayidx.i37.i, align 4 - %incdec.ptr.i.i275 = getelementptr inbounds i8, ptr %c.0828.i.i, i64 4 + %incdec.ptr.i.i275 = getelementptr inbounds i8, ptr %c.0837.i.i, i64 4 %cmp25.i.i = icmp ult ptr %incdec.ptr.i.i275, %first.addr.0.i104.i br i1 %cmp25.i.i, label %for.body.i.i274, label %if.end.i.i271, !llvm.loop !39 @@ -1763,16 +1763,16 @@ if.then29.i.i: ; preds = %if.end.i.i271 %sub.ptr.div33.i.i = lshr exact i64 %sub.ptr.sub32.i.i, 2 %135 = trunc i64 %sub.ptr.div33.i.i to i32 %conv35.i.i = add i32 %135, -1 - %cmp37829.i.i = icmp ult ptr %first.addr.0.i104.i, %last.addr.0.i103.i - br i1 %cmp37829.i.i, label %for.body39.i.i, label %if.end45.i.i + %cmp37838.i.i = icmp ult ptr %first.addr.0.i104.i, %last.addr.0.i103.i + br i1 %cmp37838.i.i, label %for.body39.i.i, label %if.end45.i.i for.body39.i.i: ; preds = %if.then29.i.i, %for.body39.i.i - %c.1830.i.i = phi ptr [ %incdec.ptr43.i.i, %for.body39.i.i ], [ %first.addr.0.i104.i, %if.then29.i.i ] - %136 = load i32, ptr %c.1830.i.i, align 4 + %c.1839.i.i = phi ptr [ %incdec.ptr43.i.i, %for.body39.i.i ], [ %first.addr.0.i104.i, %if.then29.i.i ] + %136 = load i32, ptr %c.1839.i.i, align 4 %idxprom40.i.i = sext i32 %136 to i64 %arrayidx41.i.i = getelementptr inbounds i32, ptr %add.ptr101, i64 %idxprom40.i.i store i32 %conv35.i.i, ptr %arrayidx41.i.i, align 4 - %incdec.ptr43.i.i = getelementptr inbounds i8, ptr %c.1830.i.i, i64 4 + %incdec.ptr43.i.i = getelementptr inbounds i8, ptr %c.1839.i.i, i64 4 %cmp37.i.i = icmp ult ptr %incdec.ptr43.i.i, %last.addr.0.i103.i br i1 %cmp37.i.i, label %for.body39.i.i, label %if.end45.i.i, !llvm.loop !40 @@ -2425,15 +2425,15 @@ if.else310.i.i: ; preds = %for.inc551.i.i, %if do.body314.i.i: ; preds = %if.else310.i.i, %land.rhs.i.i257 %194 = phi i32 [ %195, %land.rhs.i.i257 ], [ %193, %if.else310.i.i ] - %incdec.ptr322831.i.i = phi ptr [ %incdec.ptr322.i.i, %land.rhs.i.i257 ], [ %first.addr.0.ph.i.i, %if.else310.i.i ] - %sub.ptr.lhs.cast315.i.i = ptrtoint ptr %incdec.ptr322831.i.i to i64 + %incdec.ptr322840.i.i = phi ptr [ %incdec.ptr322.i.i, %land.rhs.i.i257 ], [ %first.addr.0.ph.i.i, %if.else310.i.i ] + %sub.ptr.lhs.cast315.i.i = ptrtoint ptr %incdec.ptr322840.i.i to i64 %sub.ptr.sub317.i.i = sub i64 %sub.ptr.lhs.cast315.i.i, %sub.ptr.rhs.cast587.i.i %sub.ptr.div318.i.i = lshr exact i64 %sub.ptr.sub317.i.i, 2 %conv319.i.i = trunc i64 %sub.ptr.div318.i.i to i32 %idxprom320.i.i = zext nneg i32 %194 to i64 %arrayidx321.i.i = getelementptr inbounds i32, ptr %add.ptr101, i64 %idxprom320.i.i store i32 %conv319.i.i, ptr %arrayidx321.i.i, align 4 - %incdec.ptr322.i.i = getelementptr inbounds i8, ptr %incdec.ptr322831.i.i, i64 4 + %incdec.ptr322.i.i = getelementptr inbounds i8, ptr %incdec.ptr322840.i.i, i64 4 %cmp323.i.i = icmp ult ptr %incdec.ptr322.i.i, %last.addr.0.ph.i.i br i1 %cmp323.i.i, label %land.rhs.i.i257, label %if.end328.i.i @@ -2448,15 +2448,15 @@ if.end328.i.i: ; preds = %land.rhs.i.i257, %d br i1 %cmp329.i.i, label %if.then331.i.i, label %do.body485.i.i if.then331.i.i: ; preds = %if.end328.i.i - %.pre854.i.i = load i32, ptr %first.addr.2.i.i, align 4 + %.pre863.i.i = load i32, ptr %first.addr.2.i.i, align 4 br label %do.body332.i.i do.body332.i.i: ; preds = %do.body332.i.i, %if.then331.i.i - %196 = phi i32 [ %197, %do.body332.i.i ], [ %.pre854.i.i, %if.then331.i.i ] - %incdec.ptr334835.i.i = phi ptr [ %incdec.ptr334.i.i, %do.body332.i.i ], [ %first.addr.2.i.i, %if.then331.i.i ] + %196 = phi i32 [ %197, %do.body332.i.i ], [ %.pre863.i.i, %if.then331.i.i ] + %incdec.ptr334844.i.i = phi ptr [ %incdec.ptr334.i.i, %do.body332.i.i ], [ %first.addr.2.i.i, %if.then331.i.i ] %not.i.i = xor i32 %196, -1 - store i32 %not.i.i, ptr %incdec.ptr334835.i.i, align 4 - %incdec.ptr334.i.i = getelementptr inbounds i8, ptr %incdec.ptr334835.i.i, i64 4 + store i32 %not.i.i, ptr %incdec.ptr334844.i.i, align 4 + %incdec.ptr334.i.i = getelementptr inbounds i8, ptr %incdec.ptr334844.i.i, i64 4 %197 = load i32, ptr %incdec.ptr334.i.i, align 4 %cmp335.i.i = icmp slt i32 %197, 0 br i1 %cmp335.i.i, label %do.body332.i.i, label %do.end337.i.i, !llvm.loop !47 @@ -2520,7 +2520,7 @@ cond.false19.i650.i.i: ; preds = %cond.false10.i643.i cond.end.i.i: ; preds = %cond.false19.i650.i.i, %cond.true13.i645.i.i, %cond.false.i638.i.i, %cond.true3.i632.i.i, %do.end337.i.i %cond.i.i255 = phi i32 [ -1, %do.end337.i.i ], [ %add.i636.i.i, %cond.true3.i632.i.i ], [ %add9.i642.i.i, %cond.false.i638.i.i ], [ %add18.i649.i.i, %cond.true13.i645.i.i ], [ %204, %cond.false19.i650.i.i ] - %incdec.ptr350.i.i = getelementptr inbounds i8, ptr %incdec.ptr334835.i.i, i64 8 + %incdec.ptr350.i.i = getelementptr inbounds i8, ptr %incdec.ptr334844.i.i, i64 8 %cmp351.i.i = icmp ult ptr %incdec.ptr350.i.i, %last.addr.0.ph.i.i %sub.ptr.lhs.cast354.i.i = ptrtoint ptr %incdec.ptr350.i.i to i64 br i1 %cmp351.i.i, label %if.then353.i.i, label %if.end369.i.i @@ -2530,16 +2530,16 @@ if.then353.i.i: ; preds = %cond.end.i.i %sub.ptr.div357.i.i = lshr exact i64 %sub.ptr.sub356.i.i, 2 %205 = trunc i64 %sub.ptr.div357.i.i to i32 %conv359.i.i = add i32 %205, -1 - %cmp361837.i.i = icmp ult ptr %first.addr.2.i.i, %incdec.ptr350.i.i - br i1 %cmp361837.i.i, label %for.body363.i.i, label %if.end369.i.i + %cmp361846.i.i = icmp ult ptr %first.addr.2.i.i, %incdec.ptr350.i.i + br i1 %cmp361846.i.i, label %for.body363.i.i, label %if.end369.i.i for.body363.i.i: ; preds = %if.then353.i.i, %for.body363.i.i - %incdec.ptr367836838.i.i = phi ptr [ %incdec.ptr367.i.i, %for.body363.i.i ], [ %first.addr.2.i.i, %if.then353.i.i ] - %206 = load i32, ptr %incdec.ptr367836838.i.i, align 4 + %incdec.ptr367845847.i.i = phi ptr [ %incdec.ptr367.i.i, %for.body363.i.i ], [ %first.addr.2.i.i, %if.then353.i.i ] + %206 = load i32, ptr %incdec.ptr367845847.i.i, align 4 %idxprom364.i.i = sext i32 %206 to i64 %arrayidx365.i.i = getelementptr inbounds i32, ptr %add.ptr101, i64 %idxprom364.i.i store i32 %conv359.i.i, ptr %arrayidx365.i.i, align 4 - %incdec.ptr367.i.i = getelementptr inbounds i8, ptr %incdec.ptr367836838.i.i, i64 4 + %incdec.ptr367.i.i = getelementptr inbounds i8, ptr %incdec.ptr367845847.i.i, i64 4 %cmp361.i.i = icmp ult ptr %incdec.ptr367.i.i, %incdec.ptr350.i.i br i1 %cmp361.i.i, label %for.body363.i.i, label %if.end369.i.i, !llvm.loop !48 @@ -2795,7 +2795,7 @@ for.body.i51.i.i.i: ; preds = %do.body26.i.i.i258, br i1 %cmp12.not.i65.i.i.i, label %for.inc.i66.i.i.i, label %for.body.i51.i.tr_fixdown.exit76.loopexit.i_crit_edge.i.i for.body.i51.i.tr_fixdown.exit76.loopexit.i_crit_edge.i.i: ; preds = %for.body.i51.i.i.i - %.pre857.i.i = zext nneg i32 %i.addr.021.i54.i.i.i to i64 + %.pre866.i.i = zext nneg i32 %i.addr.021.i54.i.i.i to i64 br label %tr_fixdown.exit76.i.i.i for.inc.i66.i.i.i: ; preds = %for.body.i51.i.i.i @@ -2813,7 +2813,7 @@ for.inc.i66.i.i.i: ; preds = %for.body.i51.i.i.i br i1 %cmp.i75.i.i.i, label %for.body.i51.i.i.i, label %tr_fixdown.exit76.i.i.i, !llvm.loop !49 tr_fixdown.exit76.i.i.i: ; preds = %for.inc.i66.i.i.i, %for.body.i51.i.tr_fixdown.exit76.loopexit.i_crit_edge.i.i, %do.body26.i.i.i258 - %i.addr.0.lcssa.i48.i.i.i = phi i64 [ 0, %do.body26.i.i.i258 ], [ %.pre857.i.i, %for.body.i51.i.tr_fixdown.exit76.loopexit.i_crit_edge.i.i ], [ %idxprom15.i69.i.i.i, %for.inc.i66.i.i.i ] + %i.addr.0.lcssa.i48.i.i.i = phi i64 [ 0, %do.body26.i.i.i258 ], [ %.pre866.i.i, %for.body.i51.i.tr_fixdown.exit76.loopexit.i_crit_edge.i.i ], [ %idxprom15.i69.i.i.i, %for.inc.i66.i.i.i ] %arrayidx20.i50.i.i.i = getelementptr inbounds i32, ptr %first.addr.0.ph.i.i, i64 %i.addr.0.lcssa.i48.i.i.i store i32 %237, ptr %arrayidx20.i50.i.i.i, align 4 br label %if.end34.i.i.i @@ -2823,34 +2823,34 @@ if.end34.i.i.i: ; preds = %tr_fixdown.exit76.i for.body38.preheader.i.i.i: ; preds = %if.end34.i.i.i %244 = zext nneg i32 %m.0.i.i.i to i64 - %indvars.iv.next118.i.i291.i = add nsw i64 %244, -1 + %indvars.iv.next118.i804.i.i = add nsw i64 %244, -1 %245 = load i32, ptr %first.addr.0.ph.i.i, align 4 - %arrayidx41.i.i292.i = getelementptr inbounds i32, ptr %first.addr.0.ph.i.i, i64 %indvars.iv.next118.i.i291.i - %246 = load i32, ptr %arrayidx41.i.i292.i, align 4 + %arrayidx41.i805.i.i = getelementptr inbounds i32, ptr %first.addr.0.ph.i.i, i64 %indvars.iv.next118.i804.i.i + %246 = load i32, ptr %arrayidx41.i805.i.i, align 4 store i32 %246, ptr %first.addr.0.ph.i.i, align 4 - %cmp20.i80.i.i295.i = icmp samesign ugt i64 %indvars.iv.next118.i.i291.i, 1 - br i1 %cmp20.i80.i.i295.i, label %for.body.i84.i.i.preheader.i, label %tr_fixdown.exit109.thread.i.i.i + %cmp20.i80.i808.i.i = icmp samesign ugt i64 %indvars.iv.next118.i804.i.i, 1 + br i1 %cmp20.i80.i808.i.i, label %for.body.i84.i.preheader.i.i, label %tr_fixdown.exit109.thread.i.i.i -for.body.i84.i.i.preheader.i: ; preds = %for.body38.preheader.i.i.i, %tr_fixdown.exit109.i.i.i +for.body.i84.i.preheader.i.i: ; preds = %for.body38.preheader.i.i.i, %tr_fixdown.exit109.i.i.i %247 = phi i32 [ %257, %tr_fixdown.exit109.i.i.i ], [ %246, %for.body38.preheader.i.i.i ] - %arrayidx41.i.i297.i = phi ptr [ %arrayidx41.i.i.i, %tr_fixdown.exit109.i.i.i ], [ %arrayidx41.i.i292.i, %for.body38.preheader.i.i.i ] + %arrayidx41.i810.i.i = phi ptr [ %arrayidx41.i.i.i, %tr_fixdown.exit109.i.i.i ], [ %arrayidx41.i805.i.i, %for.body38.preheader.i.i.i ] %248 = phi i32 [ %256, %tr_fixdown.exit109.i.i.i ], [ %245, %for.body38.preheader.i.i.i ] - %indvars.iv.next118.i.i296.i = phi i64 [ %indvars.iv.next118.i.i.i, %tr_fixdown.exit109.i.i.i ], [ %indvars.iv.next118.i.i291.i, %for.body38.preheader.i.i.i ] - %idxprom1.i78.i.i.pn.i = sext i32 %247 to i64 - %.in.i = getelementptr inbounds i32, ptr %ISAd.addr.0.ph.i.i, i64 %idxprom1.i78.i.i.pn.i - %249 = load i32, ptr %.in.i, align 4 + %indvars.iv.next118.i809.i.i = phi i64 [ %indvars.iv.next118.i.i.i, %tr_fixdown.exit109.i.i.i ], [ %indvars.iv.next118.i804.i.i, %for.body38.preheader.i.i.i ] + %idxprom1.i78.i.pn.i.i = sext i32 %247 to i64 + %.in.i.i = getelementptr inbounds i32, ptr %ISAd.addr.0.ph.i.i, i64 %idxprom1.i78.i.pn.i.i + %249 = load i32, ptr %.in.i.i, align 4 br label %for.body.i84.i.i.i tr_fixdown.exit109.thread.i.i.i: ; preds = %tr_fixdown.exit109.i.i.i, %for.body38.preheader.i.i.i - %.lcssa274.i = phi i32 [ %245, %for.body38.preheader.i.i.i ], [ %256, %tr_fixdown.exit109.i.i.i ] - %arrayidx41.i.i.lcssa.i = phi ptr [ %arrayidx41.i.i292.i, %for.body38.preheader.i.i.i ], [ %arrayidx41.i.i.i, %tr_fixdown.exit109.i.i.i ] - store i32 %.lcssa274.i, ptr %arrayidx41.i.i.lcssa.i, align 4 + %.lcssa.i.i = phi i32 [ %245, %for.body38.preheader.i.i.i ], [ %256, %tr_fixdown.exit109.i.i.i ] + %arrayidx41.i.lcssa.i.i = phi ptr [ %arrayidx41.i805.i.i, %for.body38.preheader.i.i.i ], [ %arrayidx41.i.i.i, %tr_fixdown.exit109.i.i.i ] + store i32 %.lcssa.i.i, ptr %arrayidx41.i.lcssa.i.i, align 4 br label %tr_heapsort.exit.i.i -for.body.i84.i.i.i: ; preds = %for.inc.i99.i.i.i, %for.body.i84.i.i.preheader.i - %add23.i85.i.i.i = phi i32 [ %add.i107.i.i.i, %for.inc.i99.i.i.i ], [ 1, %for.body.i84.i.i.preheader.i ] - %mul22.i86.i.i.i = phi i32 [ %mul.i106.i.i.i, %for.inc.i99.i.i.i ], [ 0, %for.body.i84.i.i.preheader.i ] - %i.addr.021.i87.i.i.i = phi i32 [ %spec.select.i101.i.i.i, %for.inc.i99.i.i.i ], [ 0, %for.body.i84.i.i.preheader.i ] +for.body.i84.i.i.i: ; preds = %for.inc.i99.i.i.i, %for.body.i84.i.preheader.i.i + %add23.i85.i.i.i = phi i32 [ %add.i107.i.i.i, %for.inc.i99.i.i.i ], [ 1, %for.body.i84.i.preheader.i.i ] + %mul22.i86.i.i.i = phi i32 [ %mul.i106.i.i.i, %for.inc.i99.i.i.i ], [ 0, %for.body.i84.i.preheader.i.i ] + %i.addr.021.i87.i.i.i = phi i32 [ %spec.select.i101.i.i.i, %for.inc.i99.i.i.i ], [ 0, %for.body.i84.i.preheader.i.i ] %inc.i88.i.i.i = add nuw nsw i32 %mul22.i86.i.i.i, 2 %idxprom3.i89.i.i.i = zext nneg i32 %add23.i85.i.i.i to i64 %arrayidx4.i90.i.i.i = getelementptr inbounds i32, ptr %first.addr.0.ph.i.i, i64 %idxprom3.i89.i.i.i @@ -2869,7 +2869,7 @@ for.body.i84.i.i.i: ; preds = %for.inc.i99.i.i.i, br i1 %cmp12.not.i98.i.i.i, label %for.inc.i99.i.i.i, label %for.body.i84.i.tr_fixdown.exit109.i_crit_edge.i.i for.body.i84.i.tr_fixdown.exit109.i_crit_edge.i.i: ; preds = %for.body.i84.i.i.i - %.pre858.i.i = zext nneg i32 %i.addr.021.i87.i.i.i to i64 + %.pre867.i.i = zext nneg i32 %i.addr.021.i87.i.i.i to i64 br label %tr_fixdown.exit109.i.i.i for.inc.i99.i.i.i: ; preds = %for.body.i84.i.i.i @@ -2884,37 +2884,37 @@ for.inc.i99.i.i.i: ; preds = %for.body.i84.i.i.i %mul.i106.i.i.i = shl nuw nsw i32 %spec.select.i101.i.i.i, 1 %add.i107.i.i.i = or disjoint i32 %mul.i106.i.i.i, 1 %255 = zext nneg i32 %add.i107.i.i.i to i64 - %cmp.i108.i.i.i = icmp sgt i64 %indvars.iv.next118.i.i296.i, %255 + %cmp.i108.i.i.i = icmp sgt i64 %indvars.iv.next118.i809.i.i, %255 br i1 %cmp.i108.i.i.i, label %for.body.i84.i.i.i, label %tr_fixdown.exit109.i.i.i, !llvm.loop !49 tr_fixdown.exit109.i.i.i: ; preds = %for.inc.i99.i.i.i, %for.body.i84.i.tr_fixdown.exit109.i_crit_edge.i.i - %.pre-phi859.i.i = phi i64 [ %.pre858.i.i, %for.body.i84.i.tr_fixdown.exit109.i_crit_edge.i.i ], [ %idxprom15.i102.i.i.i, %for.inc.i99.i.i.i ] - %arrayidx20.i83.i.i.i = getelementptr inbounds i32, ptr %first.addr.0.ph.i.i, i64 %.pre-phi859.i.i + %.pre-phi868.i.i = phi i64 [ %.pre867.i.i, %for.body.i84.i.tr_fixdown.exit109.i_crit_edge.i.i ], [ %idxprom15.i102.i.i.i, %for.inc.i99.i.i.i ] + %arrayidx20.i83.i.i.i = getelementptr inbounds i32, ptr %first.addr.0.ph.i.i, i64 %.pre-phi868.i.i store i32 %247, ptr %arrayidx20.i83.i.i.i, align 4 - store i32 %248, ptr %arrayidx41.i.i297.i, align 4 - %indvars.iv.next118.i.i.i = add nsw i64 %indvars.iv.next118.i.i296.i, -1 + store i32 %248, ptr %arrayidx41.i810.i.i, align 4 + %indvars.iv.next118.i.i.i = add nsw i64 %indvars.iv.next118.i809.i.i, -1 %256 = load i32, ptr %first.addr.0.ph.i.i, align 4 %arrayidx41.i.i.i = getelementptr inbounds i32, ptr %first.addr.0.ph.i.i, i64 %indvars.iv.next118.i.i.i %257 = load i32, ptr %arrayidx41.i.i.i, align 4 store i32 %257, ptr %first.addr.0.ph.i.i, align 4 %cmp20.i80.i.i.i = icmp samesign ugt i64 %indvars.iv.next118.i.i.i, 1 - br i1 %cmp20.i80.i.i.i, label %for.body.i84.i.i.preheader.i, label %tr_fixdown.exit109.thread.i.i.i + br i1 %cmp20.i80.i.i.i, label %for.body.i84.i.preheader.i.i, label %tr_fixdown.exit109.thread.i.i.i tr_heapsort.exit.i.i: ; preds = %tr_fixdown.exit109.thread.i.i.i, %if.end34.i.i.i - br i1 %cmp531808.i.i, label %for.body533.i.i, label %if.else310.i.i + br i1 %cmp531817.i.i, label %for.body533.i.i, label %if.else310.i.i for.body533.i.i: ; preds = %tr_heapsort.exit.i.i, %for.inc551.i.i - %storemerge809.i.i = phi ptr [ %storemerge448.lcssa.i.i, %for.inc551.i.i ], [ %add.ptr529.i.i, %tr_heapsort.exit.i.i ] - %258 = load i32, ptr %storemerge809.i.i, align 4 + %storemerge818.i.i = phi ptr [ %storemerge448.lcssa.i.i, %for.inc551.i.i ], [ %add.ptr529.i.i, %tr_heapsort.exit.i.i ] + %258 = load i32, ptr %storemerge818.i.i, align 4 %idxprom534.i.i = sext i32 %258 to i64 %arrayidx535.i.i = getelementptr inbounds i32, ptr %ISAd.addr.0.ph.i.i, i64 %idxprom534.i.i %259 = load i32, ptr %arrayidx535.i.i, align 4 - %storemerge448804.i.i = getelementptr inbounds i8, ptr %storemerge809.i.i, i64 -4 - %cmp538.not805.i.i = icmp ugt ptr %first.addr.0.ph.i.i, %storemerge448804.i.i - br i1 %cmp538.not805.i.i, label %for.inc551.i.i, label %land.rhs540.i.i + %storemerge448812.i.i = getelementptr inbounds i8, ptr %storemerge818.i.i, i64 -4 + %cmp538.not813.i.i = icmp ugt ptr %first.addr.0.ph.i.i, %storemerge448812.i.i + br i1 %cmp538.not813.i.i, label %for.inc551.i.i, label %land.rhs540.i.i land.rhs540.i.i: ; preds = %for.body533.i.i, %for.body546.i.i - %b.i.0.i = phi ptr [ %storemerge448.i.i, %for.body546.i.i ], [ %storemerge448804.i.i, %for.body533.i.i ] + %b.i.0.i = phi ptr [ %storemerge448.i.i, %for.body546.i.i ], [ %storemerge448812.i.i, %for.body533.i.i ] %260 = load i32, ptr %b.i.0.i, align 4 %idxprom541.i.i = sext i32 %260 to i64 %arrayidx542.i.i = getelementptr inbounds i32, ptr %ISAd.addr.0.ph.i.i, i64 %idxprom541.i.i @@ -2930,7 +2930,7 @@ for.body546.i.i: ; preds = %land.rhs540.i.i br i1 %cmp538.not.i.i, label %for.inc551.i.i, label %land.rhs540.i.i, !llvm.loop !51 for.inc551.i.i: ; preds = %for.body546.i.i, %land.rhs540.i.i, %for.body533.i.i - %storemerge448.lcssa.i.i = phi ptr [ %storemerge448804.i.i, %for.body533.i.i ], [ %b.i.0.i, %land.rhs540.i.i ], [ %storemerge448.i.i, %for.body546.i.i ] + %storemerge448.lcssa.i.i = phi ptr [ %storemerge448812.i.i, %for.body533.i.i ], [ %b.i.0.i, %land.rhs540.i.i ], [ %storemerge448.i.i, %for.body546.i.i ] %cmp531.i.i = icmp ult ptr %first.addr.0.ph.i.i, %storemerge448.lcssa.i.i br i1 %cmp531.i.i, label %for.body533.i.i, label %if.else310.i.i, !llvm.loop !52 @@ -3481,10 +3481,10 @@ tr_partition.exit.i: ; preds = %do.body130.i.i, %fo %idx.neg146.i.i = sub nsw i64 0, %sub.ptr.div112.i.i %add.ptr147.i.i = getelementptr inbounds i32, ptr %last.addr.0.ph.i.i, i64 %idx.neg146.i.i %.pre.i248 = ptrtoint ptr %add.ptr147.i.i to i64 - %.pre335.i = ptrtoint ptr %add.ptr141.i.i to i64 - %.pre336.i = sub i64 %.pre.i248, %.pre335.i - %.pre337.i = ashr exact i64 %.pre336.i, 2 - %cmp569.not.i.i = icmp eq i64 %sub.ptr.div515.i.i, %.pre337.i + %.pre326.i = ptrtoint ptr %add.ptr141.i.i to i64 + %.pre327.i = sub i64 %.pre.i248, %.pre326.i + %.pre328.i = ashr exact i64 %.pre327.i, 2 + %cmp569.not.i.i = icmp eq i64 %sub.ptr.div515.i.i, %.pre328.i br i1 %cmp569.not.i.i, label %if.else1230.i.i, label %if.then571.i.i if.then571.i.i: ; preds = %tr_partition.exit.i @@ -3496,7 +3496,7 @@ if.then571.i.i: ; preds = %tr_partition.exit.i br i1 %cmp574.not.i.i, label %cond.end584.i.i, label %cond.true576.i.i cond.true576.i.i: ; preds = %if.then571.i.i - %conv581.i.i = trunc i64 %.pre337.i to i32 + %conv581.i.i = trunc i64 %.pre328.i to i32 %tobool.not.i701.i.i = icmp ult i32 %conv581.i.i, 65536 br i1 %tobool.not.i701.i.i, label %cond.false10.i715.i.i, label %cond.true.i702.i.i @@ -3505,7 +3505,7 @@ cond.true.i702.i.i: ; preds = %cond.true576.i.i br i1 %tobool2.not.i703.i.i, label %cond.false.i710.i.i, label %cond.true3.i704.i.i cond.true3.i704.i.i: ; preds = %cond.true.i702.i.i - %shr.i705.i.i = lshr i64 %.pre337.i, 24 + %shr.i705.i.i = lshr i64 %.pre328.i, 24 %idxprom.i706.i.i = and i64 %shr.i705.i.i, 255 %arrayidx.i707.i.i = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %idxprom.i706.i.i %364 = load i32, ptr %arrayidx.i707.i.i, align 4 @@ -3513,7 +3513,7 @@ cond.true3.i704.i.i: ; preds = %cond.true.i702.i.i br label %cond.end584.i.i cond.false.i710.i.i: ; preds = %cond.true.i702.i.i - %shr5.i711.i.i = lshr i64 %.pre337.i, 16 + %shr5.i711.i.i = lshr i64 %.pre328.i, 16 %idxprom7.i712.i.i = and i64 %shr5.i711.i.i, 255 %arrayidx8.i713.i.i = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %idxprom7.i712.i.i %365 = load i32, ptr %arrayidx8.i713.i.i, align 4 @@ -3525,7 +3525,7 @@ cond.false10.i715.i.i: ; preds = %cond.true576.i.i br i1 %tobool12.not.i716.i.i, label %cond.false19.i722.i.i, label %cond.true13.i717.i.i cond.true13.i717.i.i: ; preds = %cond.false10.i715.i.i - %shr14.i718.i.i = lshr i64 %.pre337.i, 8 + %shr14.i718.i.i = lshr i64 %.pre328.i, 8 %idxprom16.i719.i.i = and i64 %shr14.i718.i.i, 255 %arrayidx17.i720.i.i = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %idxprom16.i719.i.i %366 = load i32, ptr %arrayidx17.i720.i.i, align 4 @@ -3533,27 +3533,27 @@ cond.true13.i717.i.i: ; preds = %cond.false10.i715.i br label %cond.end584.i.i cond.false19.i722.i.i: ; preds = %cond.false10.i715.i.i - %idxprom22.i723.i.i = and i64 %.pre337.i, 255 + %idxprom22.i723.i.i = and i64 %.pre328.i, 255 %arrayidx23.i724.i.i = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %idxprom22.i723.i.i %367 = load i32, ptr %arrayidx23.i724.i.i, align 4 br label %cond.end584.i.i cond.end584.i.i: ; preds = %cond.false19.i722.i.i, %cond.true13.i717.i.i, %cond.false.i710.i.i, %cond.true3.i704.i.i, %if.then571.i.i %cond585.i.i = phi i32 [ -1, %if.then571.i.i ], [ %add.i708.i.i, %cond.true3.i704.i.i ], [ %add9.i714.i.i, %cond.false.i710.i.i ], [ %add18.i721.i.i, %cond.true13.i717.i.i ], [ %367, %cond.false19.i722.i.i ] - %sub.ptr.sub588.i.i = sub i64 %.pre335.i, %sub.ptr.rhs.cast587.i.i + %sub.ptr.sub588.i.i = sub i64 %.pre326.i, %sub.ptr.rhs.cast587.i.i %sub.ptr.div589.i.i = lshr exact i64 %sub.ptr.sub588.i.i, 2 %368 = trunc i64 %sub.ptr.div589.i.i to i32 %conv591.i.i = add i32 %368, -1 - %cmp593823.i.i = icmp sgt i64 %sub.ptr.sub92.i.i, 0 - br i1 %cmp593823.i.i, label %for.body595.i.i, label %for.end600.i.i + %cmp593832.i.i = icmp sgt i64 %sub.ptr.sub92.i.i, 0 + br i1 %cmp593832.i.i, label %for.body595.i.i, label %for.end600.i.i for.body595.i.i: ; preds = %cond.end584.i.i, %for.body595.i.i - %c.2824.i.i = phi ptr [ %incdec.ptr599.i.i, %for.body595.i.i ], [ %first.addr.0.ph.i.i, %cond.end584.i.i ] - %369 = load i32, ptr %c.2824.i.i, align 4 + %c.2833.i.i = phi ptr [ %incdec.ptr599.i.i, %for.body595.i.i ], [ %first.addr.0.ph.i.i, %cond.end584.i.i ] + %369 = load i32, ptr %c.2833.i.i, align 4 %idxprom596.i.i = sext i32 %369 to i64 %arrayidx597.i.i = getelementptr inbounds i32, ptr %add.ptr101, i64 %idxprom596.i.i store i32 %conv591.i.i, ptr %arrayidx597.i.i, align 4 - %incdec.ptr599.i.i = getelementptr inbounds i8, ptr %c.2824.i.i, i64 4 + %incdec.ptr599.i.i = getelementptr inbounds i8, ptr %c.2833.i.i, i64 4 %cmp593.i.i = icmp ult ptr %incdec.ptr599.i.i, %add.ptr141.i.i br i1 %cmp593.i.i, label %for.body595.i.i, label %for.end600.i.i, !llvm.loop !53 @@ -3566,25 +3566,25 @@ if.then603.i.i: ; preds = %for.end600.i.i %sub.ptr.div607.i.i = lshr exact i64 %sub.ptr.sub606.i.i, 2 %370 = trunc i64 %sub.ptr.div607.i.i to i32 %conv609.i.i = add i32 %370, -1 - %cmp611825.i.i = icmp ult ptr %add.ptr141.i.i, %add.ptr147.i.i - br i1 %cmp611825.i.i, label %for.body613.i.i, label %if.end619.i.i + %cmp611834.i.i = icmp ult ptr %add.ptr141.i.i, %add.ptr147.i.i + br i1 %cmp611834.i.i, label %for.body613.i.i, label %if.end619.i.i for.body613.i.i: ; preds = %if.then603.i.i, %for.body613.i.i - %c.3826.i.i = phi ptr [ %incdec.ptr617.i.i, %for.body613.i.i ], [ %add.ptr141.i.i, %if.then603.i.i ] - %371 = load i32, ptr %c.3826.i.i, align 4 + %c.3835.i.i = phi ptr [ %incdec.ptr617.i.i, %for.body613.i.i ], [ %add.ptr141.i.i, %if.then603.i.i ] + %371 = load i32, ptr %c.3835.i.i, align 4 %idxprom614.i.i = sext i32 %371 to i64 %arrayidx615.i.i = getelementptr inbounds i32, ptr %add.ptr101, i64 %idxprom614.i.i store i32 %conv609.i.i, ptr %arrayidx615.i.i, align 4 - %incdec.ptr617.i.i = getelementptr inbounds i8, ptr %c.3826.i.i, i64 4 + %incdec.ptr617.i.i = getelementptr inbounds i8, ptr %c.3835.i.i, i64 4 %cmp611.i.i = icmp ult ptr %incdec.ptr617.i.i, %add.ptr147.i.i br i1 %cmp611.i.i, label %for.body613.i.i, label %if.end619.i.i, !llvm.loop !54 if.end619.i.i: ; preds = %for.body613.i.i, %if.then603.i.i, %for.end600.i.i - %cmp624.i.i = icmp sgt i64 %.pre337.i, 1 + %cmp624.i.i = icmp sgt i64 %.pre328.i, 1 br i1 %cmp624.i.i, label %land.lhs.true.i.i, label %if.else1081.i.i land.lhs.true.i.i: ; preds = %if.end619.i.i - %conv630.i.i = trunc i64 %.pre337.i to i32 + %conv630.i.i = trunc i64 %.pre328.i to i32 %cmp.not.i727.i.i = icmp slt i32 %budget.sroa.7.3.i, %conv630.i.i br i1 %cmp.not.i727.i.i, label %if.end.i731.i.i, label %if.then633.i.i @@ -3610,7 +3610,7 @@ if.then633.i.i: ; preds = %if.end4.i733.i.i, % br i1 %cmp642.not.i.i, label %if.else862.i.i, label %if.then644.i.i if.then644.i.i: ; preds = %if.then633.i.i - %cmp653.not.i.i = icmp sgt i64 %sub.ptr.div112.i.i, %.pre337.i + %cmp653.not.i.i = icmp sgt i64 %sub.ptr.div112.i.i, %.pre328.i br i1 %cmp653.not.i.i, label %if.else737.i.i, label %if.then655.i.i if.then655.i.i: ; preds = %if.then644.i.i @@ -3666,7 +3666,7 @@ do.body711.i.i: ; preds = %if.else703.i.i br label %for.cond.outer.i.i.backedge if.else737.i.i: ; preds = %if.then644.i.i - %cmp746.not.i.i = icmp sgt i64 %sub.ptr.div637.i.i, %.pre337.i + %cmp746.not.i.i = icmp sgt i64 %sub.ptr.div637.i.i, %.pre328.i br i1 %cmp746.not.i.i, label %do.body820.i.i, label %if.then748.i.i if.then748.i.i: ; preds = %if.else737.i.i @@ -3730,7 +3730,7 @@ do.body820.i.i: ; preds = %if.else737.i.i br label %for.cond.outer.i.i.backedge if.else862.i.i: ; preds = %if.then633.i.i - %cmp871.not.i.i = icmp sgt i64 %sub.ptr.div637.i.i, %.pre337.i + %cmp871.not.i.i = icmp sgt i64 %sub.ptr.div637.i.i, %.pre328.i br i1 %cmp871.not.i.i, label %if.else955.i.i, label %if.then873.i.i if.then873.i.i: ; preds = %if.else862.i.i @@ -3786,7 +3786,7 @@ do.body929.i.i: ; preds = %if.else921.i.i br label %for.cond.outer.i.i.backedge if.else955.i.i: ; preds = %if.else862.i.i - %cmp964.not.i.i = icmp sgt i64 %sub.ptr.div112.i.i, %.pre337.i + %cmp964.not.i.i = icmp sgt i64 %sub.ptr.div112.i.i, %.pre328.i br i1 %cmp964.not.i.i, label %do.body1038.i.i, label %if.then966.i.i if.then966.i.i: ; preds = %if.else955.i.i @@ -3851,7 +3851,7 @@ do.body1038.i.i: ; preds = %if.else955.i.i if.else1081.i.i: ; preds = %trbudget_check.exit741.i.i, %if.end619.i.i %budget.sroa.21.1.i = phi i32 [ %add.i740.i.i, %trbudget_check.exit741.i.i ], [ %budget.sroa.21.0.i, %if.end619.i.i ] - %cmp1086.i.i = icmp sgt i64 %.pre336.i, 4 + %cmp1086.i.i = icmp sgt i64 %.pre327.i, 4 %cmp1089.i.i = icmp sgt i32 %trlink.0.ph.i.i, -1 %or.cond.i.i249 = select i1 %cmp1086.i.i, i1 %cmp1089.i.i, i1 false br i1 %or.cond.i.i249, label %if.then1091.i.i, label %if.end1095.i.i @@ -4106,7 +4106,7 @@ if.end44.i: ; preds = %do.cond.thread.i, % for.inc.i: ; preds = %if.end44.i %sub.ptr.div52.i = ashr exact i64 %sub.ptr.sub.i.i230, 2 - %add.ptr53.i = getelementptr inbounds i32, ptr %ISAd.0302.i, i64 %sub.ptr.div52.i + %add.ptr53.i = getelementptr inbounds i32, ptr %ISAd.0294.i, i64 %sub.ptr.div52.i %391 = load i32, ptr %SA, align 4 %cmp.i = icmp sgt i32 %391, %sub.i br i1 %cmp.i, label %do.body.preheader.i, label %trsort.exit, !llvm.loop !56 @@ -5037,7 +5037,7 @@ cond.true.i.i: ; preds = %for.end.i.i cond.true.i.cond.true24.i_crit_edge.i: ; preds = %cond.true.i.i %.pre39.i = load i8, ptr %U1.0.lcssa.i.i, align 1 - %.pre736 = load i8, ptr %U2.0.lcssa.i.i, align 1 + %.pre747 = load i8, ptr %U2.0.lcssa.i.i, align 1 br label %ss_compare.exit.i ss_compare.exit.thread.i: ; preds = %for.end.i.i @@ -5045,7 +5045,7 @@ ss_compare.exit.thread.i: ; preds = %for.end.i.i br label %for.end.i ss_compare.exit.i: ; preds = %land.rhs.i.i, %cond.true.i.cond.true24.i_crit_edge.i - %9 = phi i8 [ %.pre736, %cond.true.i.cond.true24.i_crit_edge.i ], [ %8, %land.rhs.i.i ] + %9 = phi i8 [ %.pre747, %cond.true.i.cond.true24.i_crit_edge.i ], [ %8, %land.rhs.i.i ] %10 = phi i8 [ %.pre39.i, %cond.true.i.cond.true24.i_crit_edge.i ], [ %7, %land.rhs.i.i ] %conv25.i.i = zext i8 %10 to i32 %conv26.i.i = zext i8 %9 to i32 @@ -5279,7 +5279,7 @@ for.body.i57.i: ; preds = %do.body34.i, %for.i br i1 %cmp22.not.i75.i, label %for.inc.i76.i, label %for.body.i57.i.ss_fixdown.exit86.loopexit.i_crit_edge for.body.i57.i.ss_fixdown.exit86.loopexit.i_crit_edge: ; preds = %for.body.i57.i - %.pre738 = zext nneg i32 %i.addr.022.i60.i to i64 + %.pre749 = zext nneg i32 %i.addr.022.i60.i to i64 br label %ss_fixdown.exit86.i for.inc.i76.i: ; preds = %for.body.i57.i @@ -5297,7 +5297,7 @@ for.inc.i76.i: ; preds = %for.body.i57.i br i1 %cmp.i85.i, label %for.body.i57.i, label %ss_fixdown.exit86.i, !llvm.loop !73 ss_fixdown.exit86.i: ; preds = %for.inc.i76.i, %for.body.i57.i.ss_fixdown.exit86.loopexit.i_crit_edge, %do.body34.i - %i.addr.0.lcssa.i54.i = phi i64 [ 0, %do.body34.i ], [ %.pre738, %for.body.i57.i.ss_fixdown.exit86.loopexit.i_crit_edge ], [ %idxprom26.i79.i, %for.inc.i76.i ] + %i.addr.0.lcssa.i54.i = phi i64 [ 0, %do.body34.i ], [ %.pre749, %for.body.i57.i.ss_fixdown.exit86.loopexit.i_crit_edge ], [ %idxprom26.i79.i, %for.inc.i76.i ] %arrayidx31.i56.i = getelementptr inbounds i32, ptr %first.addr.0, i64 %i.addr.0.lcssa.i54.i store i32 %43, ptr %arrayidx31.i56.i, align 4 br label %if.end42.i @@ -5307,30 +5307,30 @@ if.end42.i: ; preds = %ss_fixdown.exit86.i for.body47.preheader.i: ; preds = %if.end42.i %53 = zext nneg i32 %m.0.i to i64 - %indvars.iv.next134.i29 = add nsw i64 %53, -1 + %indvars.iv.next134.i642 = add nsw i64 %53, -1 %54 = load i32, ptr %first.addr.0, align 4 - %arrayidx50.i30 = getelementptr inbounds i32, ptr %first.addr.0, i64 %indvars.iv.next134.i29 - %55 = load i32, ptr %arrayidx50.i30, align 4 + %arrayidx50.i643 = getelementptr inbounds i32, ptr %first.addr.0, i64 %indvars.iv.next134.i642 + %55 = load i32, ptr %arrayidx50.i643, align 4 store i32 %55, ptr %first.addr.0, align 4 - %cmp21.i92.i35 = icmp samesign ugt i64 %indvars.iv.next134.i29, 1 - br i1 %cmp21.i92.i35, label %for.body.i96.i.preheader, label %ss_fixdown.exit125.thread.i + %cmp21.i92.i648 = icmp samesign ugt i64 %indvars.iv.next134.i642, 1 + br i1 %cmp21.i92.i648, label %for.body.i96.i.preheader, label %ss_fixdown.exit125.thread.i for.body.i96.i.preheader: ; preds = %for.body47.preheader.i, %ss_fixdown.exit125.i %56 = phi i32 [ %68, %ss_fixdown.exit125.i ], [ %55, %for.body47.preheader.i ] - %arrayidx50.i37 = phi ptr [ %arrayidx50.i, %ss_fixdown.exit125.i ], [ %arrayidx50.i30, %for.body47.preheader.i ] + %arrayidx50.i650 = phi ptr [ %arrayidx50.i, %ss_fixdown.exit125.i ], [ %arrayidx50.i643, %for.body47.preheader.i ] %57 = phi i32 [ %67, %ss_fixdown.exit125.i ], [ %54, %for.body47.preheader.i ] - %indvars.iv.next134.i36 = phi i64 [ %indvars.iv.next134.i, %ss_fixdown.exit125.i ], [ %indvars.iv.next134.i29, %for.body47.preheader.i ] - %idxprom1.i88.i31.pn = sext i32 %56 to i64 - %idxprom3.i90.i33.pn.in.in = getelementptr inbounds i32, ptr %PA, i64 %idxprom1.i88.i31.pn - %idxprom3.i90.i33.pn.in = load i32, ptr %idxprom3.i90.i33.pn.in.in, align 4 - %idxprom3.i90.i33.pn = sext i32 %idxprom3.i90.i33.pn.in to i64 - %.in = getelementptr inbounds i8, ptr %add.ptr, i64 %idxprom3.i90.i33.pn + %indvars.iv.next134.i649 = phi i64 [ %indvars.iv.next134.i, %ss_fixdown.exit125.i ], [ %indvars.iv.next134.i642, %for.body47.preheader.i ] + %idxprom1.i88.i.pn = sext i32 %56 to i64 + %idxprom3.i90.i.pn.in.in = getelementptr inbounds i32, ptr %PA, i64 %idxprom1.i88.i.pn + %idxprom3.i90.i.pn.in = load i32, ptr %idxprom3.i90.i.pn.in.in, align 4 + %idxprom3.i90.i.pn = sext i32 %idxprom3.i90.i.pn.in to i64 + %.in = getelementptr inbounds i8, ptr %add.ptr, i64 %idxprom3.i90.i.pn %58 = load i8, ptr %.in, align 1 br label %for.body.i96.i ss_fixdown.exit125.thread.i: ; preds = %ss_fixdown.exit125.i, %for.body47.preheader.i %.lcssa = phi i32 [ %54, %for.body47.preheader.i ], [ %67, %ss_fixdown.exit125.i ] - %arrayidx50.i.lcssa = phi ptr [ %arrayidx50.i30, %for.body47.preheader.i ], [ %arrayidx50.i, %ss_fixdown.exit125.i ] + %arrayidx50.i.lcssa = phi ptr [ %arrayidx50.i643, %for.body47.preheader.i ], [ %arrayidx50.i, %ss_fixdown.exit125.i ] store i32 %.lcssa, ptr %arrayidx50.i.lcssa, align 4 br label %if.end37 @@ -5362,7 +5362,7 @@ for.body.i96.i: ; preds = %for.body.i96.i.preh br i1 %cmp22.not.i114.i, label %for.inc.i115.i, label %for.body.i96.i.ss_fixdown.exit125.i_crit_edge for.body.i96.i.ss_fixdown.exit125.i_crit_edge: ; preds = %for.body.i96.i - %.pre740 = zext nneg i32 %i.addr.022.i99.i to i64 + %.pre751 = zext nneg i32 %i.addr.022.i99.i to i64 br label %ss_fixdown.exit125.i for.inc.i115.i: ; preds = %for.body.i96.i @@ -5377,15 +5377,15 @@ for.inc.i115.i: ; preds = %for.body.i96.i %mul.i122.i = shl nuw nsw i32 %spec.select.i117.i, 1 %add.i123.i = or disjoint i32 %mul.i122.i, 1 %66 = zext nneg i32 %add.i123.i to i64 - %cmp.i124.i = icmp sgt i64 %indvars.iv.next134.i36, %66 + %cmp.i124.i = icmp sgt i64 %indvars.iv.next134.i649, %66 br i1 %cmp.i124.i, label %for.body.i96.i, label %ss_fixdown.exit125.i, !llvm.loop !73 ss_fixdown.exit125.i: ; preds = %for.inc.i115.i, %for.body.i96.i.ss_fixdown.exit125.i_crit_edge - %.pre-phi741 = phi i64 [ %.pre740, %for.body.i96.i.ss_fixdown.exit125.i_crit_edge ], [ %idxprom26.i118.i, %for.inc.i115.i ] - %arrayidx31.i95.i = getelementptr inbounds i32, ptr %first.addr.0, i64 %.pre-phi741 + %.pre-phi752 = phi i64 [ %.pre751, %for.body.i96.i.ss_fixdown.exit125.i_crit_edge ], [ %idxprom26.i118.i, %for.inc.i115.i ] + %arrayidx31.i95.i = getelementptr inbounds i32, ptr %first.addr.0, i64 %.pre-phi752 store i32 %56, ptr %arrayidx31.i95.i, align 4 - store i32 %57, ptr %arrayidx50.i37, align 4 - %indvars.iv.next134.i = add nsw i64 %indvars.iv.next134.i36, -1 + store i32 %57, ptr %arrayidx50.i650, align 4 + %indvars.iv.next134.i = add nsw i64 %indvars.iv.next134.i649, -1 %67 = load i32, ptr %first.addr.0, align 4 %arrayidx50.i = getelementptr inbounds i32, ptr %first.addr.0, i64 %indvars.iv.next134.i %68 = load i32, ptr %arrayidx50.i, align 4 @@ -5406,15 +5406,15 @@ if.then40: ; preds = %if.end37 %arrayidx45 = getelementptr inbounds i8, ptr %add.ptr, i64 %idxprom44 %71 = load i8, ptr %arrayidx45, align 1 %conv46 = zext i8 %71 to i32 - %a.0689 = getelementptr inbounds i8, ptr %first.addr.0, i64 4 - %cmp48690 = icmp ult ptr %a.0689, %last.addr.0 - br i1 %cmp48690, label %for.body, label %for.end + %a.0700 = getelementptr inbounds i8, ptr %first.addr.0, i64 4 + %cmp48701 = icmp ult ptr %a.0700, %last.addr.0 + br i1 %cmp48701, label %for.body, label %for.end for.body: ; preds = %if.then40, %for.inc - %a.0693 = phi ptr [ %a.0, %for.inc ], [ %a.0689, %if.then40 ] - %v.0692 = phi i32 [ %v.1, %for.inc ], [ %conv46, %if.then40 ] - %first.addr.1691 = phi ptr [ %first.addr.2, %for.inc ], [ %first.addr.0, %if.then40 ] - %72 = load i32, ptr %a.0693, align 4 + %a.0704 = phi ptr [ %a.0, %for.inc ], [ %a.0700, %if.then40 ] + %v.0703 = phi i32 [ %v.1, %for.inc ], [ %conv46, %if.then40 ] + %first.addr.1702 = phi ptr [ %first.addr.2, %for.inc ], [ %first.addr.0, %if.then40 ] + %72 = load i32, ptr %a.0704, align 4 %idxprom50 = sext i32 %72 to i64 %arrayidx51 = getelementptr inbounds i32, ptr %PA, i64 %idxprom50 %73 = load i32, ptr %arrayidx51, align 4 @@ -5422,39 +5422,39 @@ for.body: ; preds = %if.then40, %for.inc %arrayidx53 = getelementptr inbounds i8, ptr %add.ptr, i64 %idxprom52 %74 = load i8, ptr %arrayidx53, align 1 %conv54 = zext i8 %74 to i32 - %cmp55.not = icmp eq i32 %v.0692, %conv54 + %cmp55.not = icmp eq i32 %v.0703, %conv54 br i1 %cmp55.not, label %for.inc, label %if.then57 if.then57: ; preds = %for.body - %sub.ptr.lhs.cast58 = ptrtoint ptr %a.0693 to i64 - %sub.ptr.rhs.cast59 = ptrtoint ptr %first.addr.1691 to i64 + %sub.ptr.lhs.cast58 = ptrtoint ptr %a.0704 to i64 + %sub.ptr.rhs.cast59 = ptrtoint ptr %first.addr.1702 to i64 %sub.ptr.sub60 = sub i64 %sub.ptr.lhs.cast58, %sub.ptr.rhs.cast59 %cmp62 = icmp sgt i64 %sub.ptr.sub60, 4 br i1 %cmp62, label %for.end.loopexit, label %for.inc for.inc: ; preds = %if.then57, %for.body - %first.addr.2 = phi ptr [ %first.addr.1691, %for.body ], [ %a.0693, %if.then57 ] - %v.1 = phi i32 [ %v.0692, %for.body ], [ %conv54, %if.then57 ] - %a.0 = getelementptr inbounds i8, ptr %a.0693, i64 4 + %first.addr.2 = phi ptr [ %first.addr.1702, %for.body ], [ %a.0704, %if.then57 ] + %v.1 = phi i32 [ %v.0703, %for.body ], [ %conv54, %if.then57 ] + %a.0 = getelementptr inbounds i8, ptr %a.0704, i64 4 %cmp48 = icmp ult ptr %a.0, %last.addr.0 br i1 %cmp48, label %for.body, label %for.end.loopexit, !llvm.loop !75 for.end.loopexit: ; preds = %if.then57, %for.inc - %first.addr.1.lcssa.ph = phi ptr [ %first.addr.2, %for.inc ], [ %first.addr.1691, %if.then57 ] - %v.0.lcssa.ph = phi i32 [ %v.1, %for.inc ], [ %v.0692, %if.then57 ] - %a.0.lcssa.ph = phi ptr [ %a.0, %for.inc ], [ %a.0693, %if.then57 ] + %first.addr.1.lcssa.ph = phi ptr [ %first.addr.2, %for.inc ], [ %first.addr.1702, %if.then57 ] + %v.0.lcssa.ph = phi i32 [ %v.1, %for.inc ], [ %v.0703, %if.then57 ] + %a.0.lcssa.ph = phi ptr [ %a.0, %for.inc ], [ %a.0704, %if.then57 ] %.pre = load i32, ptr %first.addr.1.lcssa.ph, align 4 %idxprom67.phi.trans.insert = sext i32 %.pre to i64 %arrayidx68.phi.trans.insert = getelementptr inbounds i32, ptr %PA, i64 %idxprom67.phi.trans.insert - %.pre735 = load i32, ptr %arrayidx68.phi.trans.insert, align 4 - %.pre737 = sext i32 %.pre735 to i64 + %.pre746 = load i32, ptr %arrayidx68.phi.trans.insert, align 4 + %.pre748 = sext i32 %.pre746 to i64 br label %for.end for.end: ; preds = %for.end.loopexit, %if.then40 - %.pre-phi = phi i64 [ %.pre737, %for.end.loopexit ], [ %idxprom44, %if.then40 ] + %.pre-phi = phi i64 [ %.pre748, %for.end.loopexit ], [ %idxprom44, %if.then40 ] %first.addr.1.lcssa = phi ptr [ %first.addr.1.lcssa.ph, %for.end.loopexit ], [ %first.addr.0, %if.then40 ] %v.0.lcssa = phi i32 [ %v.0.lcssa.ph, %for.end.loopexit ], [ %conv46, %if.then40 ] - %a.0.lcssa = phi ptr [ %a.0.lcssa.ph, %for.end.loopexit ], [ %a.0689, %if.then40 ] + %a.0.lcssa = phi ptr [ %a.0.lcssa.ph, %for.end.loopexit ], [ %a.0700, %if.then40 ] %75 = getelementptr i8, ptr %add.ptr, i64 %.pre-phi %arrayidx70 = getelementptr i8, ptr %75, i64 -1 %76 = load i8, ptr %arrayidx70, align 1 @@ -6046,14 +6046,14 @@ for.end177: ; preds = %land.rhs br i1 %cmp180, label %for.cond183.preheader, label %if.end205 for.cond183.preheader: ; preds = %for.end177 - %incdec.ptr184642 = getelementptr inbounds i8, ptr %b.0, i64 8 - %cmp185643 = icmp ult ptr %incdec.ptr184642, %last.addr.0 - br i1 %cmp185643, label %land.rhs187, label %if.end205 + %incdec.ptr184652 = getelementptr inbounds i8, ptr %b.0, i64 8 + %cmp185653 = icmp ult ptr %incdec.ptr184652, %last.addr.0 + br i1 %cmp185653, label %land.rhs187, label %if.end205 land.rhs187: ; preds = %for.cond183.preheader, %if.end203 - %incdec.ptr184645 = phi ptr [ %incdec.ptr184, %if.end203 ], [ %incdec.ptr184642, %for.cond183.preheader ] - %a.2644 = phi ptr [ %a.3, %if.end203 ], [ %incdec.ptr166, %for.cond183.preheader ] - %210 = load i32, ptr %incdec.ptr184645, align 4 + %incdec.ptr184655 = phi ptr [ %incdec.ptr184, %if.end203 ], [ %incdec.ptr184652, %for.cond183.preheader ] + %a.2654 = phi ptr [ %a.3, %if.end203 ], [ %incdec.ptr166, %for.cond183.preheader ] + %210 = load i32, ptr %incdec.ptr184655, align 4 %idxprom188 = sext i32 %210 to i64 %arrayidx189 = getelementptr inbounds i32, ptr %PA, i64 %idxprom188 %211 = load i32, ptr %arrayidx189, align 4 @@ -6068,21 +6068,21 @@ for.body196: ; preds = %land.rhs187 br i1 %cmp197, label %do.body200, label %if.end203 do.body200: ; preds = %for.body196 - %213 = load i32, ptr %a.2644, align 4 - store i32 %213, ptr %incdec.ptr184645, align 4 - store i32 %210, ptr %a.2644, align 4 - %incdec.ptr202 = getelementptr inbounds i8, ptr %a.2644, i64 4 + %213 = load i32, ptr %a.2654, align 4 + store i32 %213, ptr %incdec.ptr184655, align 4 + store i32 %210, ptr %a.2654, align 4 + %incdec.ptr202 = getelementptr inbounds i8, ptr %a.2654, i64 4 br label %if.end203 if.end203: ; preds = %do.body200, %for.body196 - %a.3 = phi ptr [ %incdec.ptr202, %do.body200 ], [ %a.2644, %for.body196 ] - %incdec.ptr184 = getelementptr inbounds i8, ptr %incdec.ptr184645, i64 4 + %a.3 = phi ptr [ %incdec.ptr202, %do.body200 ], [ %a.2654, %for.body196 ] + %incdec.ptr184 = getelementptr inbounds i8, ptr %incdec.ptr184655, i64 4 %cmp185 = icmp ult ptr %incdec.ptr184, %last.addr.0 br i1 %cmp185, label %land.rhs187, label %if.end205, !llvm.loop !79 if.end205: ; preds = %for.cond165, %if.end203, %land.rhs187, %for.cond183.preheader, %for.end177 - %a.1 = phi ptr [ %incdec.ptr166, %for.end177 ], [ %incdec.ptr166, %for.cond183.preheader ], [ %a.3, %if.end203 ], [ %a.2644, %land.rhs187 ], [ %incdec.ptr166, %for.cond165 ] - %b.1 = phi ptr [ %incdec.ptr166, %for.end177 ], [ %incdec.ptr184642, %for.cond183.preheader ], [ %incdec.ptr184, %if.end203 ], [ %incdec.ptr184645, %land.rhs187 ], [ %incdec.ptr166, %for.cond165 ] + %a.1 = phi ptr [ %incdec.ptr166, %for.end177 ], [ %incdec.ptr166, %for.cond183.preheader ], [ %a.3, %if.end203 ], [ %a.2654, %land.rhs187 ], [ %incdec.ptr166, %for.cond165 ] + %b.1 = phi ptr [ %incdec.ptr166, %for.end177 ], [ %incdec.ptr184652, %for.cond183.preheader ], [ %incdec.ptr184, %if.end203 ], [ %incdec.ptr184655, %land.rhs187 ], [ %incdec.ptr166, %for.cond165 ] br label %for.cond206 for.cond206: ; preds = %land.rhs210, %if.end205 @@ -6107,14 +6107,14 @@ for.end220: ; preds = %land.rhs210 br i1 %cmp224, label %for.cond227.preheader, label %if.end249 for.cond227.preheader: ; preds = %for.end220 - %incdec.ptr228649 = getelementptr inbounds i8, ptr %c.0, i64 -8 - %cmp229650 = icmp ult ptr %b.1, %incdec.ptr228649 - br i1 %cmp229650, label %land.rhs231, label %if.end249 + %incdec.ptr228660 = getelementptr inbounds i8, ptr %c.0, i64 -8 + %cmp229661 = icmp ult ptr %b.1, %incdec.ptr228660 + br i1 %cmp229661, label %land.rhs231, label %if.end249 land.rhs231: ; preds = %for.cond227.preheader, %if.end247 - %incdec.ptr228652 = phi ptr [ %incdec.ptr228, %if.end247 ], [ %incdec.ptr228649, %for.cond227.preheader ] - %d.1651 = phi ptr [ %d.2, %if.end247 ], [ %incdec.ptr207, %for.cond227.preheader ] - %217 = load i32, ptr %incdec.ptr228652, align 4 + %incdec.ptr228663 = phi ptr [ %incdec.ptr228, %if.end247 ], [ %incdec.ptr228660, %for.cond227.preheader ] + %d.1662 = phi ptr [ %d.2, %if.end247 ], [ %incdec.ptr207, %for.cond227.preheader ] + %217 = load i32, ptr %incdec.ptr228663, align 4 %idxprom232 = sext i32 %217 to i64 %arrayidx233 = getelementptr inbounds i32, ptr %PA, i64 %idxprom232 %218 = load i32, ptr %arrayidx233, align 4 @@ -6129,41 +6129,41 @@ for.body240: ; preds = %land.rhs231 br i1 %cmp241, label %do.body244, label %if.end247 do.body244: ; preds = %for.body240 - %220 = load i32, ptr %d.1651, align 4 - store i32 %220, ptr %incdec.ptr228652, align 4 - store i32 %217, ptr %d.1651, align 4 - %incdec.ptr246 = getelementptr inbounds i8, ptr %d.1651, i64 -4 + %220 = load i32, ptr %d.1662, align 4 + store i32 %220, ptr %incdec.ptr228663, align 4 + store i32 %217, ptr %d.1662, align 4 + %incdec.ptr246 = getelementptr inbounds i8, ptr %d.1662, i64 -4 br label %if.end247 if.end247: ; preds = %do.body244, %for.body240 - %d.2 = phi ptr [ %incdec.ptr246, %do.body244 ], [ %d.1651, %for.body240 ] - %incdec.ptr228 = getelementptr inbounds i8, ptr %incdec.ptr228652, i64 -4 + %d.2 = phi ptr [ %incdec.ptr246, %do.body244 ], [ %d.1662, %for.body240 ] + %incdec.ptr228 = getelementptr inbounds i8, ptr %incdec.ptr228663, i64 -4 %cmp229 = icmp ult ptr %b.1, %incdec.ptr228 br i1 %cmp229, label %land.rhs231, label %if.end249, !llvm.loop !81 if.end249: ; preds = %for.cond206, %if.end247, %land.rhs231, %for.cond227.preheader, %for.end220 - %c.1 = phi ptr [ %incdec.ptr207, %for.end220 ], [ %incdec.ptr228649, %for.cond227.preheader ], [ %incdec.ptr228, %if.end247 ], [ %incdec.ptr228652, %land.rhs231 ], [ %incdec.ptr207, %for.cond206 ] - %d.0 = phi ptr [ %incdec.ptr207, %for.end220 ], [ %incdec.ptr207, %for.cond227.preheader ], [ %d.2, %if.end247 ], [ %d.1651, %land.rhs231 ], [ %incdec.ptr207, %for.cond206 ] - %cmp251673 = icmp ult ptr %b.1, %c.1 - br i1 %cmp251673, label %do.body254, label %for.end300 + %c.1 = phi ptr [ %incdec.ptr207, %for.end220 ], [ %incdec.ptr228660, %for.cond227.preheader ], [ %incdec.ptr228, %if.end247 ], [ %incdec.ptr228663, %land.rhs231 ], [ %incdec.ptr207, %for.cond206 ] + %d.0 = phi ptr [ %incdec.ptr207, %for.end220 ], [ %incdec.ptr207, %for.cond227.preheader ], [ %d.2, %if.end247 ], [ %d.1662, %land.rhs231 ], [ %incdec.ptr207, %for.cond206 ] + %cmp251684 = icmp ult ptr %b.1, %c.1 + br i1 %cmp251684, label %do.body254, label %for.end300 do.body254: ; preds = %if.end249, %for.end299 - %d.3677 = phi ptr [ %d.4.lcssa, %for.end299 ], [ %d.0, %if.end249 ] - %c.3676 = phi ptr [ %incdec.ptr279.lcssa, %for.end299 ], [ %c.1, %if.end249 ] - %b.3675 = phi ptr [ %incdec.ptr257.lcssa, %for.end299 ], [ %b.1, %if.end249 ] - %a.4674 = phi ptr [ %a.5.lcssa, %for.end299 ], [ %a.1, %if.end249 ] - %221 = load i32, ptr %b.3675, align 4 - %222 = load i32, ptr %c.3676, align 4 - store i32 %222, ptr %b.3675, align 4 - store i32 %221, ptr %c.3676, align 4 - %incdec.ptr257657 = getelementptr inbounds i8, ptr %b.3675, i64 4 - %cmp258658 = icmp ult ptr %incdec.ptr257657, %c.3676 - br i1 %cmp258658, label %land.rhs260, label %for.end277 + %d.3688 = phi ptr [ %d.4.lcssa, %for.end299 ], [ %d.0, %if.end249 ] + %c.3687 = phi ptr [ %incdec.ptr279.lcssa, %for.end299 ], [ %c.1, %if.end249 ] + %b.3686 = phi ptr [ %incdec.ptr257.lcssa, %for.end299 ], [ %b.1, %if.end249 ] + %a.4685 = phi ptr [ %a.5.lcssa, %for.end299 ], [ %a.1, %if.end249 ] + %221 = load i32, ptr %b.3686, align 4 + %222 = load i32, ptr %c.3687, align 4 + store i32 %222, ptr %b.3686, align 4 + store i32 %221, ptr %c.3687, align 4 + %incdec.ptr257668 = getelementptr inbounds i8, ptr %b.3686, i64 4 + %cmp258669 = icmp ult ptr %incdec.ptr257668, %c.3687 + br i1 %cmp258669, label %land.rhs260, label %for.end277 land.rhs260: ; preds = %do.body254, %if.end276 - %incdec.ptr257660 = phi ptr [ %incdec.ptr257, %if.end276 ], [ %incdec.ptr257657, %do.body254 ] - %a.5659 = phi ptr [ %a.6, %if.end276 ], [ %a.4674, %do.body254 ] - %223 = load i32, ptr %incdec.ptr257660, align 4 + %incdec.ptr257671 = phi ptr [ %incdec.ptr257, %if.end276 ], [ %incdec.ptr257668, %do.body254 ] + %a.5670 = phi ptr [ %a.6, %if.end276 ], [ %a.4685, %do.body254 ] + %223 = load i32, ptr %incdec.ptr257671, align 4 %idxprom261 = sext i32 %223 to i64 %arrayidx262 = getelementptr inbounds i32, ptr %PA, i64 %idxprom261 %224 = load i32, ptr %arrayidx262, align 4 @@ -6178,29 +6178,29 @@ for.body269: ; preds = %land.rhs260 br i1 %cmp270, label %do.body273, label %if.end276 do.body273: ; preds = %for.body269 - %226 = load i32, ptr %a.5659, align 4 - store i32 %226, ptr %incdec.ptr257660, align 4 - store i32 %223, ptr %a.5659, align 4 - %incdec.ptr275 = getelementptr inbounds i8, ptr %a.5659, i64 4 + %226 = load i32, ptr %a.5670, align 4 + store i32 %226, ptr %incdec.ptr257671, align 4 + store i32 %223, ptr %a.5670, align 4 + %incdec.ptr275 = getelementptr inbounds i8, ptr %a.5670, i64 4 br label %if.end276 if.end276: ; preds = %do.body273, %for.body269 - %a.6 = phi ptr [ %incdec.ptr275, %do.body273 ], [ %a.5659, %for.body269 ] - %incdec.ptr257 = getelementptr inbounds i8, ptr %incdec.ptr257660, i64 4 - %cmp258 = icmp ult ptr %incdec.ptr257, %c.3676 + %a.6 = phi ptr [ %incdec.ptr275, %do.body273 ], [ %a.5670, %for.body269 ] + %incdec.ptr257 = getelementptr inbounds i8, ptr %incdec.ptr257671, i64 4 + %cmp258 = icmp ult ptr %incdec.ptr257, %c.3687 br i1 %cmp258, label %land.rhs260, label %for.end277, !llvm.loop !82 for.end277: ; preds = %land.rhs260, %if.end276, %do.body254 - %a.5.lcssa = phi ptr [ %a.4674, %do.body254 ], [ %a.6, %if.end276 ], [ %a.5659, %land.rhs260 ] - %incdec.ptr257.lcssa = phi ptr [ %incdec.ptr257657, %do.body254 ], [ %incdec.ptr257, %if.end276 ], [ %incdec.ptr257660, %land.rhs260 ] - %incdec.ptr279665 = getelementptr inbounds i8, ptr %c.3676, i64 -4 - %cmp280666 = icmp ult ptr %incdec.ptr257.lcssa, %incdec.ptr279665 - br i1 %cmp280666, label %land.rhs282, label %for.end299 + %a.5.lcssa = phi ptr [ %a.4685, %do.body254 ], [ %a.6, %if.end276 ], [ %a.5670, %land.rhs260 ] + %incdec.ptr257.lcssa = phi ptr [ %incdec.ptr257668, %do.body254 ], [ %incdec.ptr257, %if.end276 ], [ %incdec.ptr257671, %land.rhs260 ] + %incdec.ptr279676 = getelementptr inbounds i8, ptr %c.3687, i64 -4 + %cmp280677 = icmp ult ptr %incdec.ptr257.lcssa, %incdec.ptr279676 + br i1 %cmp280677, label %land.rhs282, label %for.end299 land.rhs282: ; preds = %for.end277, %if.end298 - %incdec.ptr279668 = phi ptr [ %incdec.ptr279, %if.end298 ], [ %incdec.ptr279665, %for.end277 ] - %d.4667 = phi ptr [ %d.5, %if.end298 ], [ %d.3677, %for.end277 ] - %227 = load i32, ptr %incdec.ptr279668, align 4 + %incdec.ptr279679 = phi ptr [ %incdec.ptr279, %if.end298 ], [ %incdec.ptr279676, %for.end277 ] + %d.4678 = phi ptr [ %d.5, %if.end298 ], [ %d.3688, %for.end277 ] + %227 = load i32, ptr %incdec.ptr279679, align 4 %idxprom283 = sext i32 %227 to i64 %arrayidx284 = getelementptr inbounds i32, ptr %PA, i64 %idxprom283 %228 = load i32, ptr %arrayidx284, align 4 @@ -6215,21 +6215,21 @@ for.body291: ; preds = %land.rhs282 br i1 %cmp292, label %do.body295, label %if.end298 do.body295: ; preds = %for.body291 - %230 = load i32, ptr %d.4667, align 4 - store i32 %230, ptr %incdec.ptr279668, align 4 - store i32 %227, ptr %d.4667, align 4 - %incdec.ptr297 = getelementptr inbounds i8, ptr %d.4667, i64 -4 + %230 = load i32, ptr %d.4678, align 4 + store i32 %230, ptr %incdec.ptr279679, align 4 + store i32 %227, ptr %d.4678, align 4 + %incdec.ptr297 = getelementptr inbounds i8, ptr %d.4678, i64 -4 br label %if.end298 if.end298: ; preds = %do.body295, %for.body291 - %d.5 = phi ptr [ %incdec.ptr297, %do.body295 ], [ %d.4667, %for.body291 ] - %incdec.ptr279 = getelementptr inbounds i8, ptr %incdec.ptr279668, i64 -4 + %d.5 = phi ptr [ %incdec.ptr297, %do.body295 ], [ %d.4678, %for.body291 ] + %incdec.ptr279 = getelementptr inbounds i8, ptr %incdec.ptr279679, i64 -4 %cmp280 = icmp ult ptr %incdec.ptr257.lcssa, %incdec.ptr279 br i1 %cmp280, label %land.rhs282, label %for.end299, !llvm.loop !83 for.end299: ; preds = %land.rhs282, %if.end298, %for.end277 - %d.4.lcssa = phi ptr [ %d.3677, %for.end277 ], [ %d.5, %if.end298 ], [ %d.4667, %land.rhs282 ] - %incdec.ptr279.lcssa = phi ptr [ %incdec.ptr279665, %for.end277 ], [ %incdec.ptr279, %if.end298 ], [ %incdec.ptr279668, %land.rhs282 ] + %d.4.lcssa = phi ptr [ %d.3688, %for.end277 ], [ %d.5, %if.end298 ], [ %d.4678, %land.rhs282 ] + %incdec.ptr279.lcssa = phi ptr [ %incdec.ptr279676, %for.end277 ], [ %incdec.ptr279, %if.end298 ], [ %incdec.ptr279679, %land.rhs282 ] %cmp251 = icmp ult ptr %incdec.ptr257.lcssa, %incdec.ptr279.lcssa br i1 %cmp251, label %do.body254, label %for.end300, !llvm.loop !84 @@ -6251,8 +6251,8 @@ if.then303: ; preds = %for.end300 %sub.ptr.div313 = ashr exact i64 %sub.ptr.sub312, 2 %conv314 = trunc i64 %sub.ptr.div313 to i32 %spec.select = tail call i32 @llvm.smin.i32(i32 %conv309, i32 %conv314) - %cmp322681 = icmp sgt i32 %spec.select, 0 - br i1 %cmp322681, label %do.body325.preheader, label %for.end331 + %cmp322692 = icmp sgt i32 %spec.select, 0 + br i1 %cmp322692, label %do.body325.preheader, label %for.end331 do.body325.preheader: ; preds = %if.then303 %idx.ext319 = zext nneg i32 %spec.select to i64 @@ -6261,17 +6261,17 @@ do.body325.preheader: ; preds = %if.then303 br label %do.body325 do.body325: ; preds = %do.body325.preheader, %do.body325 - %s.1684 = phi i32 [ %dec328, %do.body325 ], [ %spec.select, %do.body325.preheader ] - %f.0683 = phi ptr [ %incdec.ptr330, %do.body325 ], [ %add.ptr320, %do.body325.preheader ] - %e.0682 = phi ptr [ %incdec.ptr329, %do.body325 ], [ %first.addr.0, %do.body325.preheader ] - %231 = load i32, ptr %e.0682, align 4 - %232 = load i32, ptr %f.0683, align 4 - store i32 %232, ptr %e.0682, align 4 - store i32 %231, ptr %f.0683, align 4 - %dec328 = add nsw i32 %s.1684, -1 - %incdec.ptr329 = getelementptr inbounds i8, ptr %e.0682, i64 4 - %incdec.ptr330 = getelementptr inbounds i8, ptr %f.0683, i64 4 - %cmp322 = icmp samesign ugt i32 %s.1684, 1 + %s.1695 = phi i32 [ %dec328, %do.body325 ], [ %spec.select, %do.body325.preheader ] + %f.0694 = phi ptr [ %incdec.ptr330, %do.body325 ], [ %add.ptr320, %do.body325.preheader ] + %e.0693 = phi ptr [ %incdec.ptr329, %do.body325 ], [ %first.addr.0, %do.body325.preheader ] + %231 = load i32, ptr %e.0693, align 4 + %232 = load i32, ptr %f.0694, align 4 + store i32 %232, ptr %e.0693, align 4 + store i32 %231, ptr %f.0694, align 4 + %dec328 = add nsw i32 %s.1695, -1 + %incdec.ptr329 = getelementptr inbounds i8, ptr %e.0693, i64 4 + %incdec.ptr330 = getelementptr inbounds i8, ptr %f.0694, i64 4 + %cmp322 = icmp samesign ugt i32 %s.1695, 1 br i1 %cmp322, label %do.body325, label %for.end331, !llvm.loop !85 for.end331: ; preds = %do.body325, %if.then303 @@ -6285,8 +6285,8 @@ for.end331: ; preds = %do.body325, %if.the %233 = trunc i64 %sub.ptr.div340 to i32 %conv342 = add i32 %233, -1 %spec.select361 = tail call i32 @llvm.smin.i32(i32 %conv342, i32 %conv336) - %cmp351685 = icmp sgt i32 %spec.select361, 0 - br i1 %cmp351685, label %do.body354.preheader, label %for.end360 + %cmp351696 = icmp sgt i32 %spec.select361, 0 + br i1 %cmp351696, label %do.body354.preheader, label %for.end360 do.body354.preheader: ; preds = %for.end331 %idx.ext347 = zext nneg i32 %spec.select361 to i64 @@ -6295,17 +6295,17 @@ do.body354.preheader: ; preds = %for.end331 br label %do.body354 do.body354: ; preds = %do.body354.preheader, %do.body354 - %s.3688 = phi i32 [ %dec357, %do.body354 ], [ %spec.select361, %do.body354.preheader ] - %f.1687 = phi ptr [ %incdec.ptr359, %do.body354 ], [ %add.ptr349, %do.body354.preheader ] - %e.1686 = phi ptr [ %incdec.ptr358, %do.body354 ], [ %b.3.lcssa, %do.body354.preheader ] - %234 = load i32, ptr %e.1686, align 4 - %235 = load i32, ptr %f.1687, align 4 - store i32 %235, ptr %e.1686, align 4 - store i32 %234, ptr %f.1687, align 4 - %dec357 = add nsw i32 %s.3688, -1 - %incdec.ptr358 = getelementptr inbounds i8, ptr %e.1686, i64 4 - %incdec.ptr359 = getelementptr inbounds i8, ptr %f.1687, i64 4 - %cmp351 = icmp samesign ugt i32 %s.3688, 1 + %s.3699 = phi i32 [ %dec357, %do.body354 ], [ %spec.select361, %do.body354.preheader ] + %f.1698 = phi ptr [ %incdec.ptr359, %do.body354 ], [ %add.ptr349, %do.body354.preheader ] + %e.1697 = phi ptr [ %incdec.ptr358, %do.body354 ], [ %b.3.lcssa, %do.body354.preheader ] + %234 = load i32, ptr %e.1697, align 4 + %235 = load i32, ptr %f.1698, align 4 + store i32 %235, ptr %e.1697, align 4 + store i32 %234, ptr %f.1698, align 4 + %dec357 = add nsw i32 %s.3699, -1 + %incdec.ptr358 = getelementptr inbounds i8, ptr %e.1697, i64 4 + %incdec.ptr359 = getelementptr inbounds i8, ptr %f.1698, i64 4 + %cmp351 = icmp samesign ugt i32 %s.3699, 1 br i1 %cmp351, label %do.body354, label %for.end360, !llvm.loop !86 for.end360: ; preds = %do.body354, %for.end331 diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index 820278fb20a..7545aeca34d 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/115893 # Please rebase manually # git fetch origin