diff --git a/bench/abc/optimized/luckyFast16.ll b/bench/abc/optimized/luckyFast16.ll index 055ad18c45c..b4c63d9dcb6 100644 --- a/bench/abc/optimized/luckyFast16.ll +++ b/bench/abc/optimized/luckyFast16.ll @@ -2116,58 +2116,54 @@ minTemp2_fast_iVar5.exit: ; preds = %64, %58, %61 %72 = zext nneg i32 %71 to i64 %73 = getelementptr inbounds nuw [2 x i32], ptr %5, i64 0, i64 %72 %74 = load i32, ptr %73, align 4, !tbaa !6 - %75 = sub nsw i32 3, %74 - %76 = sub nsw i32 3, %70 - %77 = sext i32 %.sink.i56 to i64 - %78 = icmp eq i32 %70, 0 - %79 = icmp eq i32 %74, 1 - %or.cond.i = and i1 %78, %79 - br i1 %or.cond.i, label %arrangeQuoters_superFast_iVar5.exit, label %80 - -80: ; preds = %67 - %81 = icmp sgt i32 %.sink.i56, 1 - br i1 %81, label %.lr.ph.i63, label %._crit_edge.i - -.lr.ph.i63: ; preds = %80 - %82 = add nsw i32 %.sink.i56, -1 - %83 = getelementptr inbounds nuw i32, ptr %6, i64 %77 - %84 = sext i32 %70 to i64 + %75 = sext i32 %.sink.i56 to i64 + %76 = icmp eq i32 %70, 0 + %77 = icmp eq i32 %74, 1 + %or.cond.i = and i1 %76, %77 + br i1 %or.cond.i, label %arrangeQuoters_superFast_iVar5.exit, label %78 + +78:; preds = %67 + %79 = icmp sgt i32 %.sink.i56, 1 + br i1 %79, label %.lr.ph.i63, label %._crit_edge.i + +.lr.ph.i63: ; preds = %78 + %80 = add nsw i32 %.sink.i56, -1 + %81 = getelementptr inbounds nuw i32, ptr %6, i64 %75 + %82 = sext i32 %70 to i64 + %83 = sub nsw i64 0, %82 + %84 = sext i32 %74 to i64 %85 = sub nsw i64 0, %84 - %86 = sext i32 %74 to i64 - %87 = sub nsw i64 0, %86 - %88 = sext i32 %75 to i64 - %89 = sub nsw i64 0, %88 - %90 = sext i32 %76 to i64 - %91 = sub nsw i64 0, %90 - %92 = zext nneg i32 %82 to i64 - br label %93 - -93: ; preds = %93, %.lr.ph.i63 - %indvars.iv.i64 = phi i64 [ %92, %.lr.ph.i63 ], [ %indvars.iv.next.i65, %93 ] - %.041.i = phi ptr [ %83, %.lr.ph.i63 ], [ %104, %93 ] - %94 = getelementptr inbounds i8, ptr %.041.i, i64 -4 - %95 = getelementptr inbounds nuw i32, ptr %0, i64 %indvars.iv.i64 - %96 = getelementptr inbounds i32, ptr %95, i64 %85 - %97 = load i32, ptr %96, align 4 - store i32 %97, ptr %94, align 4 - %98 = getelementptr inbounds i8, ptr %.041.i, i64 -8 - %99 = getelementptr inbounds i32, ptr %95, i64 %87 - %100 = load i32, ptr %99, align 4 - store i32 %100, ptr %98, align 4 - %101 = getelementptr inbounds i8, ptr %.041.i, i64 -12 - %102 = getelementptr inbounds i32, ptr %95, i64 %89 + %86 = zext nneg i32 %80 to i64 + br label %87 + +87:; preds = %87, %.lr.ph.i63 + %indvars.iv.i64 = phi i64 [ %86, %.lr.ph.i63 ], [ %indvars.iv.next.i65, %87 ] + %.041.i = phi ptr [ %81, %.lr.ph.i63 ], [ %99, %87 ] + %88 = getelementptr inbounds i8, ptr %.041.i, i64 -4 + %89 = getelementptr inbounds nuw i32, ptr %0, i64 %indvars.iv.i64 + %90 = getelementptr inbounds i32, ptr %89, i64 %83 + %91 = load i32, ptr %90, align 4 + store i32 %91, ptr %88, align 4 + %92 = getelementptr inbounds i8, ptr %.041.i, i64 -8 + %94 = getelementptr inbounds i32, ptr %89, i64 %85 + %94 = load i32, ptr %93, align 4 + store i32 %94, ptr %92, align 4 + %95 = getelementptr inbounds i8, ptr %.041.i, i64 -12 + %96 = getelementptr i32, ptr %89, i64 %84 + %98 = getelementptr i8, ptr %96, i64 -12 + %98 = load i32, ptr %97, align 4 + store i32 %98, ptr %95, align 4 + %99 = getelementptr inbounds i8, ptr %.041.i, i64 -16 + %101 = getelementptr i32, ptr %89, i64 %82 + %102 = getelementptr i8, ptr %100, i64 -12 %103 = load i32, ptr %102, align 4 - store i32 %103, ptr %101, align 4 - %104 = getelementptr inbounds i8, ptr %.041.i, i64 -16 - %105 = getelementptr inbounds i32, ptr %95, i64 %91 - %106 = load i32, ptr %105, align 4 - store i32 %106, ptr %104, align 4 + store i32 %103, ptr %99, align 4 %indvars.iv.next.i65 = add nsw i64 %indvars.iv.i64, -4 %107 = icmp samesign ugt i64 %indvars.iv.i64, 4 - br i1 %107, label %93, label %._crit_edge.i, !llvm.loop !18 + br i1 %107, label %87, label %._crit_edge.i, !llvm.loop !18 -._crit_edge.i: ; preds = %93, %80 - %108 = shl nsw i64 %77, 2 +._crit_edge.i: ; preds = %87, %78 + %108 = shl nsw i64 %75, 2 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %0, ptr nonnull align 16 %6, i64 %108, i1 false) %109 = sub nsw i32 %70, %74 br label %arrangeQuoters_superFast_iVar5.exit.sink.split @@ -2199,8 +2195,8 @@ minTemp2_fast_iVar5.exit: ; preds = %64, %58, %61 br label %124 124: ; preds = %124, %.lr.ph.i68 - %indvars.iv.i69 = phi i64 [ %121, %.lr.ph.i68 ], [ %indvars.iv.next.i71, %124 ] - %.041.i70 = phi ptr [ %118, %.lr.ph.i68 ], [ %136, %124 ] + %indvars.iv.i69 = phi i64 [ %121, %.lr.ph.i68 ], [ %indvars.iv.next.i71, %120 ] + %.041.i70 = phi ptr [ %118, %.lr.ph.i68 ], [ %132, %120 ] %125 = getelementptr inbounds i8, ptr %.041.i70, i64 -4 %126 = getelementptr inbounds nuw i32, ptr %0, i64 %indvars.iv.i69 %127 = getelementptr inbounds i32, ptr %126, i64 %119 @@ -2208,18 +2204,18 @@ minTemp2_fast_iVar5.exit: ; preds = %64, %58, %61 store i32 %128, ptr %125, align 4 %129 = getelementptr inbounds i8, ptr %.041.i70, i64 -8 %130 = getelementptr inbounds i32, ptr %126, i64 %120 + %127 = load i32, ptr %126, align 4 + store i32 %127, ptr %125, align 4 + %128 = getelementptr inbounds i8, ptr %.041.i70, i64 -12 + %129 = getelementptr i32, ptr %122, i64 %118 + %130 = getelementptr i8, ptr %129, i64 -12 %131 = load i32, ptr %130, align 4 - store i32 %131, ptr %129, align 4 - %132 = getelementptr inbounds i8, ptr %.041.i70, i64 -12 - %133 = getelementptr i32, ptr %126, i64 %122 + store i32 %131, ptr %128, align 4 + %132 = getelementptr inbounds i8, ptr %.041.i70, i64 -16 + %133 = getelementptr i32, ptr %126, i64 %123 %134 = getelementptr i8, ptr %133, i64 -12 %135 = load i32, ptr %134, align 4 store i32 %135, ptr %132, align 4 - %136 = getelementptr inbounds i8, ptr %.041.i70, i64 -16 - %137 = getelementptr i32, ptr %126, i64 %123 - %138 = getelementptr i8, ptr %137, i64 -12 - %139 = load i32, ptr %138, align 4 - store i32 %139, ptr %136, align 4 %indvars.iv.next.i71 = add nsw i64 %indvars.iv.i69, -4 %140 = icmp samesign ugt i64 %indvars.iv.i69, 4 br i1 %140, label %124, label %._crit_edge.i67, !llvm.loop !18 @@ -2249,8 +2245,8 @@ minTemp2_fast_iVar5.exit: ; preds = %64, %58, %61 br label %154 154: ; preds = %154, %.lr.ph.i75 - %indvars.iv.i76 = phi i64 [ %151, %.lr.ph.i75 ], [ %indvars.iv.next.i78, %154 ] - %.041.i77 = phi ptr [ %148, %.lr.ph.i75 ], [ %166, %154 ] + %indvars.iv.i76 = phi i64 [ %151, %.lr.ph.i75 ], [ %indvars.iv.next.i78, %150 ] + %.041.i77 = phi ptr [ %148, %.lr.ph.i75 ], [ %162, %150 ] %155 = getelementptr inbounds i8, ptr %.041.i77, i64 -4 %156 = getelementptr inbounds nuw i32, ptr %0, i64 %indvars.iv.i76 %157 = getelementptr inbounds i32, ptr %156, i64 %149 @@ -2258,18 +2254,18 @@ minTemp2_fast_iVar5.exit: ; preds = %64, %58, %61 store i32 %158, ptr %155, align 4 %159 = getelementptr inbounds i8, ptr %.041.i77, i64 -8 %160 = getelementptr inbounds i32, ptr %156, i64 %150 + %157 = load i32, ptr %156, align 4 + store i32 %157, ptr %155, align 4 + %158 = getelementptr inbounds i8, ptr %.041.i77, i64 -12 + %159 = getelementptr i32, ptr %152, i64 %148 + %160 = getelementptr i8, ptr %159, i64 -12 %161 = load i32, ptr %160, align 4 - store i32 %161, ptr %159, align 4 - %162 = getelementptr inbounds i8, ptr %.041.i77, i64 -12 - %163 = getelementptr i32, ptr %156, i64 %152 + store i32 %161, ptr %158, align 4 + %162 = getelementptr inbounds i8, ptr %.041.i77, i64 -16 + %163 = getelementptr i32, ptr %156, i64 %153 %164 = getelementptr i8, ptr %163, i64 -12 %165 = load i32, ptr %164, align 4 store i32 %165, ptr %162, align 4 - %166 = getelementptr inbounds i8, ptr %.041.i77, i64 -16 - %167 = getelementptr i32, ptr %156, i64 %153 - %168 = getelementptr i8, ptr %167, i64 -12 - %169 = load i32, ptr %168, align 4 - store i32 %169, ptr %166, align 4 %indvars.iv.next.i78 = add nsw i64 %indvars.iv.i76, -4 %170 = icmp samesign ugt i64 %indvars.iv.i76, 4 br i1 %170, label %154, label %arrangeQuoters_superFast_iVar5.exit79, !llvm.loop !18 @@ -2284,69 +2280,65 @@ arrangeQuoters_superFast_iVar5.exit79: ; preds = %154, %143 br i1 %.not46, label %.lr.ph.preheader.i90, label %174 174: ; preds = %.thread, %173 - %.sink.i56167176 = phi i32 [ 0, %.thread ], [ %.sink.i56, %173 ] - %.0.i57168175 = phi i32 [ 0, %.thread ], [ %.0.i57, %173 ] + %.sink.i56167176 = phi i32 [ 0, %.thread ], [ %.sink.i56, %169 ] + %.0.i57168175 = phi i32 [ 0, %.thread ], [ %.0.i57, %169 ] %175 = zext nneg i32 %.0.i57168175 to i64 + %172 = getelementptr inbounds nuw [2 x i32], ptr %5, i64 0, i64 %171 + %173 = load i32, ptr %172, align 4, !tbaa !6 + %174 = xor i32 %.0.i57172179, 1 + %175 = zext nneg i32 %174 to i64 %176 = getelementptr inbounds nuw [2 x i32], ptr %5, i64 0, i64 %175 %177 = load i32, ptr %176, align 4, !tbaa !6 - %178 = xor i32 %.0.i57168175, 1 - %179 = zext nneg i32 %178 to i64 - %180 = getelementptr inbounds nuw [2 x i32], ptr %5, i64 0, i64 %179 - %181 = load i32, ptr %180, align 4, !tbaa !6 - %182 = sub nsw i32 3, %181 - %183 = sub nsw i32 3, %177 - %184 = sext i32 %.sink.i56167176 to i64 - %185 = icmp eq i32 %177, 0 - %186 = icmp eq i32 %181, 1 - %or.cond.i80 = and i1 %185, %186 - br i1 %or.cond.i80, label %arrangeQuoters_superFast_iVar5.exit, label %187 - -187: ; preds = %174 - %188 = icmp sgt i32 %.sink.i56167176, 1 - br i1 %188, label %.lr.ph.i82, label %._crit_edge.i81 - -.lr.ph.i82: ; preds = %187 - %189 = add nsw i32 %.sink.i56167176, -1 - %190 = getelementptr inbounds nuw i32, ptr %6, i64 %184 - %191 = sext i32 %177 to i64 - %192 = sub nsw i64 0, %191 - %193 = sext i32 %181 to i64 - %194 = sub nsw i64 0, %193 - %195 = sext i32 %182 to i64 - %196 = sub nsw i64 0, %195 - %197 = sext i32 %183 to i64 - %198 = sub nsw i64 0, %197 - %199 = zext nneg i32 %189 to i64 - br label %200 - -200: ; preds = %200, %.lr.ph.i82 - %indvars.iv.i83 = phi i64 [ %199, %.lr.ph.i82 ], [ %indvars.iv.next.i85, %200 ] - %.041.i84 = phi ptr [ %190, %.lr.ph.i82 ], [ %211, %200 ] - %201 = getelementptr inbounds i8, ptr %.041.i84, i64 -4 - %202 = getelementptr inbounds nuw i32, ptr %0, i64 %indvars.iv.i83 - %203 = getelementptr inbounds i32, ptr %202, i64 %192 - %204 = load i32, ptr %203, align 4 - store i32 %204, ptr %201, align 4 - %205 = getelementptr inbounds i8, ptr %.041.i84, i64 -8 - %206 = getelementptr inbounds i32, ptr %202, i64 %194 + %178 = sext i32 %.sink.i56167176 to i64 + %179 = icmp eq i32 %173, 0 + %180 = icmp eq i32 %177, 1 + %or.cond.i80 = and i1 %179, %180 + br i1 %or.cond.i80, label %arrangeQuoters_superFast_iVar5.exit, label %181 + +181:; preds = %174 + %185 = icmp sgt i32 %.sink.i56171180, 1 + br i1 %182, label %.lr.ph.i82, label %._crit_edge.i81 + +.lr.ph.i82: ; preds = %181 + %183 = add nsw i32 %.sink.i56171180, -1 + %184 = getelementptr inbounds nuw i32, ptr %6, i64 %178 + %185 = sext i32 %173 to i64 + %186 = sub nsw i64 0, %185 + %187 = sext i32 %177 to i64 + %188 = sub nsw i64 0, %187 + %189 = zext nneg i32 %183 to i64 + br label %190 + +190:; preds = %190, %.lr.ph.i82 + %indvars.iv.i83 = phi i64 [ %189, %.lr.ph.i82 ], [ %indvars.iv.next.i85, %190 ] + %.041.i84 = phi ptr [ %184, %.lr.ph.i82 ], [ %202, %190 ] + %191 = getelementptr inbounds i8, ptr %.041.i84, i64 -4 + %192 = getelementptr inbounds nuw i32, ptr %0, i64 %indvars.iv.i83 + %193 = getelementptr inbounds i32, ptr %192, i64 %186 + %194 = load i32, ptr %193, align 4 + store i32 %194, ptr %191, align 4 + %195 = getelementptr inbounds i8, ptr %.041.i84, i64 -8 + %196 = getelementptr inbounds i32, ptr %192, i64 %188 + %197 = load i32, ptr %196, align 4 + store i32 %197, ptr %195, align 4 + %198 = getelementptr inbounds i8, ptr %.041.i84, i64 -12 + %201 = getelementptr i32, ptr %192, i64 %187 + %202 = getelementptr i8, ptr %201, i64 -12 + %201 = load i32, ptr %202, align 4 + store i32 %201, ptr %198, align 4 + %202 = getelementptr inbounds i8, ptr %.041.i84, i64 -16 + %205 = getelementptr i32, ptr %192, i64 %185 + %206 = getelementptr i8, ptr %203, i64 -12 %207 = load i32, ptr %206, align 4 - store i32 %207, ptr %205, align 4 - %208 = getelementptr inbounds i8, ptr %.041.i84, i64 -12 - %209 = getelementptr inbounds i32, ptr %202, i64 %196 - %210 = load i32, ptr %209, align 4 - store i32 %210, ptr %208, align 4 - %211 = getelementptr inbounds i8, ptr %.041.i84, i64 -16 - %212 = getelementptr inbounds i32, ptr %202, i64 %198 - %213 = load i32, ptr %212, align 4 - store i32 %213, ptr %211, align 4 + store i32 %207, ptr %202, align 4 %indvars.iv.next.i85 = add nsw i64 %indvars.iv.i83, -4 %214 = icmp samesign ugt i64 %indvars.iv.i83, 4 - br i1 %214, label %200, label %._crit_edge.i81, !llvm.loop !18 + br i1 %214, label %190, label %._crit_edge.i81, !llvm.loop !18 -._crit_edge.i81: ; preds = %200, %187 - %215 = shl nsw i64 %184, 2 +._crit_edge.i81: ; preds = %190, %181 + %215 = shl nsw i64 %178, 2 call void @llvm.memcpy.p0.p0.i64(ptr align 4 %0, ptr nonnull align 16 %6, i64 %215, i1 false) - %216 = sub nsw i32 %177, %181 + %216 = sub nsw i32 %173, %177 br label %arrangeQuoters_superFast_iVar5.exit.sink.split .lr.ph.preheader.i90: ; preds = %173 @@ -2360,7 +2352,7 @@ arrangeQuoters_superFast_iVar5.exit79: ; preds = %154, %143 br label %.lr.ph.i91 .lr.ph.i91: ; preds = %238, %.lr.ph.preheader.i90 - %indvars.iv.i92 = phi i64 [ %220, %.lr.ph.preheader.i90 ], [ %indvars.iv.next.i94, %238 ] + %indvars.iv.i92 = phi i64 [ %220, %.lr.ph.preheader.i90 ], [ %indvars.iv.next.i94, %230 ] %224 = sub nsw i64 %indvars.iv.i92, %222 %225 = getelementptr inbounds i32, ptr %0, i64 %224 %226 = load i32, ptr %225, align 4, !tbaa !6 @@ -2370,7 +2362,7 @@ arrangeQuoters_superFast_iVar5.exit79: ; preds = %154, %143 %230 = load i32, ptr %229, align 4, !tbaa !6 %231 = zext i32 %230 to i64 %.0.i.i93 = tail call range(i32 -1, 2) i32 @llvm.ucmp.i32.i64(i64 %227, i64 %231) - switch i32 %.0.i.i93, label %235 [ + switch i32 %.0.i.i93, label %227 [ i32 0, label %238 i32 -1, label %232 ] @@ -2391,8 +2383,8 @@ arrangeQuoters_superFast_iVar5.exit79: ; preds = %154, %143 br i1 %.not.i, label %minTemp3_fast_iVar5.exit, label %.lr.ph.i91, !llvm.loop !22 minTemp3_fast_iVar5.exit: ; preds = %238, %232, %235 - %.sink.i88 = phi i32 [ %237, %235 ], [ %234, %232 ], [ 0, %238 ] - %.0.i89 = phi i32 [ 1, %235 ], [ 0, %232 ], [ 0, %238 ] + %.sink.i88 = phi i32 [ %237, %227 ], [ %234, %224 ], [ 0, %230 ] + %.0.i89 = phi i32 [ 1, %227 ], [ 0, %224 ], [ 0, %230 ] %239 = icmp sgt i32 %.sink.i88, %.sink.i56 %240 = sext i32 %.sink.i49 to i64 br i1 %239, label %241, label %282 @@ -2405,55 +2397,51 @@ minTemp3_fast_iVar5.exit: ; preds = %238, %232, %235 %246 = zext nneg i32 %.0.i89 to i64 %247 = getelementptr inbounds nuw [2 x i32], ptr %5, i64 0, i64 %246 %248 = load i32, ptr %247, align 4, !tbaa !6 - %249 = sub nsw i32 3, %248 - %250 = sub nsw i32 3, %245 - %251 = icmp eq i32 %245, 0 - %252 = icmp eq i32 %248, 1 - %or.cond.i95 = and i1 %251, %252 - br i1 %or.cond.i95, label %arrangeQuoters_superFast_iVar5.exit, label %253 - -253: ; preds = %241 - %254 = icmp sgt i32 %.sink.i49, 1 - br i1 %254, label %.lr.ph.i97, label %._crit_edge.i96 - -.lr.ph.i97: ; preds = %253 - %255 = getelementptr inbounds nuw i32, ptr %6, i64 %240 - %256 = sext i32 %245 to i64 + %241 = icmp eq i32 %245, 0 + %242 = icmp eq i32 %240, 1 + %or.cond.i95 = and i1 %241, %242 + br i1 %or.cond.i95, label %arrangeQuoters_superFast_iVar5.exit, label %243 + +243: ; preds = %233 + %244 = icmp sgt i32 %.sink.i49, 1 + br i1 %244, label %.lr.ph.i97, label %._crit_edge.i96 + +.lr.ph.i97: ; preds = %243 + %245 = getelementptr inbounds nuw i32, ptr %6, i64 %232 + %246 = sext i32 %237 to i64 + %247 = sub nsw i64 0, %246 + %256 = sext i32 %240 to i64 %257 = sub nsw i64 0, %256 - %258 = sext i32 %248 to i64 - %259 = sub nsw i64 0, %258 - %260 = sext i32 %249 to i64 - %261 = sub nsw i64 0, %260 - %262 = sext i32 %250 to i64 - %263 = sub nsw i64 0, %262 - %264 = zext nneg i32 %219 to i64 - br label %265 - -265: ; preds = %265, %.lr.ph.i97 - %indvars.iv.i98 = phi i64 [ %264, %.lr.ph.i97 ], [ %indvars.iv.next.i100, %265 ] - %.041.i99 = phi ptr [ %255, %.lr.ph.i97 ], [ %276, %265 ] - %266 = getelementptr inbounds i8, ptr %.041.i99, i64 -4 - %267 = getelementptr inbounds nuw i32, ptr %0, i64 %indvars.iv.i98 - %268 = getelementptr inbounds i32, ptr %267, i64 %257 - %269 = load i32, ptr %268, align 4 - store i32 %269, ptr %266, align 4 - %270 = getelementptr inbounds i8, ptr %.041.i99, i64 -8 - %271 = getelementptr inbounds i32, ptr %267, i64 %259 - %272 = load i32, ptr %271, align 4 - store i32 %272, ptr %270, align 4 - %273 = getelementptr inbounds i8, ptr %.041.i99, i64 -12 - %274 = getelementptr inbounds i32, ptr %267, i64 %261 + %250 = zext nneg i32 %211 to i64 + br label %251 + +251:; preds = %251, %.lr.ph.i97 + %indvars.iv.i98 = phi i64 [ %250, %.lr.ph.i97 ], [ %indvars.iv.next.i100, %251 ] + %.041.i99 = phi ptr [ %245, %.lr.ph.i97 ], [ %263, %251 ] + %252 = getelementptr inbounds i8, ptr %.041.i99, i64 -4 + %253 = getelementptr inbounds nuw i32, ptr %0, i64 %indvars.iv.i98 + %254 = getelementptr inbounds i32, ptr %253, i64 %247 + %255 = load i32, ptr %254, align 4 + store i32 %255, ptr %252, align 4 + %256 = getelementptr inbounds i8, ptr %.041.i99, i64 -8 + %266 = getelementptr inbounds i32, ptr %253, i64 %249 + %258 = load i32, ptr %257, align 4 + store i32 %258, ptr %256, align 4 + %259 = getelementptr inbounds i8, ptr %.041.i99, i64 -12 + %260 = getelementptr i32, ptr %253, i64 %248 + %270 = getelementptr i8, ptr %260, i64 -12 + %262 = load i32, ptr %261, align 4 + store i32 %262, ptr %259, align 4 + %263 = getelementptr inbounds i8, ptr %.041.i99, i64 -16 + %273 = getelementptr i32, ptr %253, i64 %246 + %274 = getelementptr i8, ptr %264, i64 -12 %275 = load i32, ptr %274, align 4 - store i32 %275, ptr %273, align 4 - %276 = getelementptr inbounds i8, ptr %.041.i99, i64 -16 - %277 = getelementptr inbounds i32, ptr %267, i64 %263 - %278 = load i32, ptr %277, align 4 - store i32 %278, ptr %276, align 4 + store i32 %275, ptr %263, align 4 %indvars.iv.next.i100 = add nsw i64 %indvars.iv.i98, -4 %279 = icmp samesign ugt i64 %indvars.iv.i98, 4 - br i1 %279, label %265, label %._crit_edge.i96, !llvm.loop !18 + br i1 %279, label %251, label %._crit_edge.i96, !llvm.loop !18 -._crit_edge.i96: ; preds = %265, %253 +._crit_edge.i96: ; preds = %251, %243 %280 = shl nsw i64 %240, 2 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %0, ptr nonnull align 16 %6, i64 %280, i1 false) %281 = sub nsw i32 %245, %248 @@ -2467,55 +2455,51 @@ minTemp3_fast_iVar5.exit: ; preds = %238, %232, %235 %287 = zext nneg i32 %286 to i64 %288 = getelementptr inbounds nuw [2 x i32], ptr %5, i64 0, i64 %287 %289 = load i32, ptr %288, align 4, !tbaa !6 - %290 = sub nsw i32 3, %289 - %291 = sub nsw i32 3, %285 - %292 = icmp eq i32 %285, 0 - %293 = icmp eq i32 %289, 1 - %or.cond.i102 = and i1 %292, %293 - br i1 %or.cond.i102, label %arrangeQuoters_superFast_iVar5.exit, label %294 - -294: ; preds = %282 - %295 = icmp sgt i32 %.sink.i49, 1 - br i1 %295, label %.lr.ph.i104, label %._crit_edge.i103 - -.lr.ph.i104: ; preds = %294 - %296 = getelementptr inbounds nuw i32, ptr %6, i64 %240 - %297 = sext i32 %285 to i64 + %278 = icmp eq i32 %273, 0 + %279 = icmp eq i32 %289, 1 + %or.cond.i102 = and i1 %278, %279 + br i1 %or.cond.i102, label %arrangeQuoters_superFast_iVar5.exit, label %280 + +280: ; preds = %270 + %281 = icmp sgt i32 %.sink.i49, 1 + br i1 %281, label %.lr.ph.i104, label %._crit_edge.i103 + +.lr.ph.i104: ; preds = %280 + %282 = getelementptr inbounds nuw i32, ptr %6, i64 %232 + %283 = sext i32 %273 to i64 + %284 = sub nsw i64 0, %283 + %297 = sext i32 %289 to i64 %298 = sub nsw i64 0, %297 - %299 = sext i32 %289 to i64 - %300 = sub nsw i64 0, %299 - %301 = sext i32 %290 to i64 - %302 = sub nsw i64 0, %301 - %303 = sext i32 %291 to i64 - %304 = sub nsw i64 0, %303 - %305 = zext nneg i32 %219 to i64 - br label %306 - -306: ; preds = %306, %.lr.ph.i104 - %indvars.iv.i105 = phi i64 [ %305, %.lr.ph.i104 ], [ %indvars.iv.next.i107, %306 ] - %.041.i106 = phi ptr [ %296, %.lr.ph.i104 ], [ %317, %306 ] - %307 = getelementptr inbounds i8, ptr %.041.i106, i64 -4 - %308 = getelementptr inbounds nuw i32, ptr %0, i64 %indvars.iv.i105 - %309 = getelementptr inbounds i32, ptr %308, i64 %298 - %310 = load i32, ptr %309, align 4 - store i32 %310, ptr %307, align 4 - %311 = getelementptr inbounds i8, ptr %.041.i106, i64 -8 - %312 = getelementptr inbounds i32, ptr %308, i64 %300 - %313 = load i32, ptr %312, align 4 - store i32 %313, ptr %311, align 4 - %314 = getelementptr inbounds i8, ptr %.041.i106, i64 -12 - %315 = getelementptr inbounds i32, ptr %308, i64 %302 + %287 = zext nneg i32 %219 to i64 + br label %288 + +288:; preds = %288, %.lr.ph.i104 + %indvars.iv.i105 = phi i64 [ %287, %.lr.ph.i104 ], [ %indvars.iv.next.i107, %288 ] + %.041.i106 = phi ptr [ %282, %.lr.ph.i104 ], [ %300, %288 ] + %289 = getelementptr inbounds i8, ptr %.041.i106, i64 -4 + %290 = getelementptr inbounds nuw i32, ptr %0, i64 %indvars.iv.i105 + %291 = getelementptr inbounds i32, ptr %290, i64 %284 + %292 = load i32, ptr %291, align 4 + store i32 %292, ptr %289, align 4 + %293 = getelementptr inbounds i8, ptr %.041.i106, i64 -8 + %307 = getelementptr inbounds i32, ptr %290, i64 %286 + %295 = load i32, ptr %307, align 4 + store i32 %295, ptr %293, align 4 + %296 = getelementptr inbounds i8, ptr %.041.i106, i64 -12 + %297 = getelementptr i32, ptr %290, i64 %285 + %311 = getelementptr i8, ptr %297, i64 -12 + %299 = load i32, ptr %298, align 4 + store i32 %299, ptr %296, align 4 + %300 = getelementptr inbounds i8, ptr %.041.i106, i64 -16 + %314 = getelementptr i32, ptr %290, i64 %283 + %315 = getelementptr i8, ptr %301, i64 -12 %316 = load i32, ptr %315, align 4 - store i32 %316, ptr %314, align 4 - %317 = getelementptr inbounds i8, ptr %.041.i106, i64 -16 - %318 = getelementptr inbounds i32, ptr %308, i64 %304 - %319 = load i32, ptr %318, align 4 - store i32 %319, ptr %317, align 4 + store i32 %316, ptr %300, align 4 %indvars.iv.next.i107 = add nsw i64 %indvars.iv.i105, -4 %320 = icmp samesign ugt i64 %indvars.iv.i105, 4 - br i1 %320, label %306, label %._crit_edge.i103, !llvm.loop !18 + br i1 %320, label %288, label %._crit_edge.i103, !llvm.loop !18 -._crit_edge.i103: ; preds = %306, %294 +._crit_edge.i103: ; preds = %288, %280 %321 = shl nsw i64 %240, 2 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %0, ptr nonnull align 16 %6, i64 %321, i1 false) %322 = sub nsw i32 %285, %289 @@ -2523,7 +2507,7 @@ minTemp3_fast_iVar5.exit: ; preds = %238, %232, %235 arrangeQuoters_superFast_iVar5.exit.sink.split: ; preds = %arrangeQuoters_superFast_iVar5.exit79, %._crit_edge.i, %._crit_edge.i67, %._crit_edge.i81, %._crit_edge.i96, %._crit_edge.i103 %.sink189 = phi i32 [ %322, %._crit_edge.i103 ], [ %281, %._crit_edge.i96 ], [ %216, %._crit_edge.i81 ], [ %142, %._crit_edge.i67 ], [ %109, %._crit_edge.i ], [ %172, %arrangeQuoters_superFast_iVar5.exit79 ] - %.sink188 = phi i32 [ %285, %._crit_edge.i103 ], [ %245, %._crit_edge.i96 ], [ %177, %._crit_edge.i81 ], [ %.0.i, %._crit_edge.i67 ], [ %70, %._crit_edge.i ], [ %.0.i50, %arrangeQuoters_superFast_iVar5.exit79 ] + %.sink188 = phi i32 [ %285, %._crit_edge.i103 ], [ %245, %._crit_edge.i96 ], [ %173, %._crit_edge.i81 ], [ %.0.i, %._crit_edge.i67 ], [ %70, %._crit_edge.i ], [ %.0.i50, %arrangeQuoters_superFast_iVar5.exit79 ] %.sink185 = load i32, ptr %3, align 4, !tbaa !6 %323 = tail call i32 @llvm.abs.i32(i32 %.sink189, i1 true) %324 = shl i32 %323, 2 diff --git a/bench/assimp/optimized/SpatialSort.ll b/bench/assimp/optimized/SpatialSort.ll index 1358628862d..fcdfbdb396c 100644 --- a/bench/assimp/optimized/SpatialSort.ll +++ b/bench/assimp/optimized/SpatialSort.ll @@ -816,26 +816,23 @@ _ZNSt6vectorIjSaIjEE6resizeEm.exit: ; preds = %3, %33 %93 = tail call float @llvm.fmuladd.f32(float %83, float %83, float %92) %94 = tail call noundef float @llvm.fmuladd.f32(float %91, float %91, float %93) %95 = bitcast float %94 to i32 - %96 = sub nsw i32 -2147483648, %95 - %.not1.i40 = icmp slt i32 %95, 0 - %.0.i41 = select i1 %.not1.i40, i32 %96, i32 %95 - %97 = icmp slt i32 %.0.i41, 7 - br i1 %97, label %98, label %_ZNSt6vectorIjSaIjEE9push_backERKj.exit - -98: ; preds = %79 - %99 = load ptr, ptr %73, align 8 - %.not.i = icmp eq ptr %75, %99 - br i1 %.not.i, label %104, label %100 - -100: ; preds = %98 - %101 = load i32, ptr %.sroa.044.0, align 4 - store i32 %101, ptr %75, align 4 - %102 = load ptr, ptr %30, align 8 - %103 = getelementptr inbounds nuw i8, ptr %102, i64 4 - store ptr %103, ptr %30, align 8 + %96 = icmp slt i32 %95, 7 + br i1 %96, label %97, label %_ZNSt6vectorIjSaIjEE9push_backERKj.exit + +97:; preds = %79 + %98 = load ptr, ptr %73, align 8 + %.not.i = icmp eq ptr %75, %98 + br i1 %.not.i, label %103, label %99 + +99:; preds = %97 + %100 = load i32, ptr %.sroa.044.0, align 4 + store i32 %100, ptr %75, align 4 + %101 = load ptr, ptr %30, align 8 + %102 = getelementptr inbounds nuw i8, ptr %101, i64 4 + store ptr %102, ptr %30, align 8 br label %_ZNSt6vectorIjSaIjEE9push_backERKj.exit -104: ; preds = %98 +104: ; preds = %97 %105 = load ptr, ptr %2, align 8 %106 = ptrtoint ptr %75 to i64 %107 = ptrtoint ptr %105 to i64 @@ -884,8 +881,8 @@ _ZNSt6vectorIjSaIjEE17_M_realloc_insertIJRKjEEEvN9__gnu_cxx17__normal_iteratorIP store ptr %124, ptr %73, align 8 br label %_ZNSt6vectorIjSaIjEE9push_backERKj.exit -_ZNSt6vectorIjSaIjEE9push_backERKj.exit: ; preds = %_ZNSt6vectorIjSaIjEE17_M_realloc_insertIJRKjEEEvN9__gnu_cxx17__normal_iteratorIPjS1_EEDpOT_.exit.i, %100, %79 - %125 = phi ptr [ %122, %_ZNSt6vectorIjSaIjEE17_M_realloc_insertIJRKjEEEvN9__gnu_cxx17__normal_iteratorIPjS1_EEDpOT_.exit.i ], [ %103, %100 ], [ %75, %79 ] +_ZNSt6vectorIjSaIjEE9push_backERKj.exit: ; preds = %_ZNSt6vectorIjSaIjEE17_M_realloc_insertIJRKjEEEvN9__gnu_cxx17__normal_iteratorIPjS1_EEDpOT_.exit.i, %99, %79 + %125 = phi ptr [ %122, %_ZNSt6vectorIjSaIjEE17_M_realloc_insertIJRKjEEEvN9__gnu_cxx17__normal_iteratorIPjS1_EEDpOT_.exit.i ], [ %102, %99 ], [ %75, %79 ] %126 = getelementptr inbounds nuw i8, ptr %.sroa.044.0, i64 20 %127 = load ptr, ptr %36, align 8 %128 = icmp eq ptr %126, %127 diff --git a/bench/boost/optimized/buffer_variable_width.ll b/bench/boost/optimized/buffer_variable_width.ll index c6cb0c1361c..29c82a910ba 100644 --- a/bench/boost/optimized/buffer_variable_width.ll +++ b/bench/boost/optimized/buffer_variable_width.ll @@ -185640,7 +185640,7 @@ _ZSt4moveIN9__gnu_cxx17__normal_iteratorIP14specific_pointSt6vectorIS2_SaIS2_EEE %34 = phi ptr [ %17, %27 ], [ %.pre13.i, %29 ] %35 = load ptr, ptr %0, align 8, !tbaa !174 %36 = icmp eq ptr %34, %35 - br i1 %36, label %37, label %50 + br i1 %36, label %37, label %49 37: ; preds = %_ZSt4moveIN9__gnu_cxx17__normal_iteratorIP14specific_pointSt6vectorIS2_SaIS2_EEEES7_ET0_T_S9_S8_.exit.i %38 = ptrtoint ptr %33 to i64 @@ -185656,38 +185656,26 @@ _ZSt4moveIN9__gnu_cxx17__normal_iteratorIP14specific_pointSt6vectorIS2_SaIS2_EEE %47 = sub nuw nsw i64 230584300921369395, %41 %48 = icmp ule i64 %45, %47 call void @llvm.assume(i1 %48) - %.not28.i.not = icmp eq i64 %44, -40 - br i1 %.not28.i.not, label %_ZNSt6vectorI14specific_pointSaIS0_EE17_M_default_appendEm.exit, label %49 - -49: ; preds = %37 call void @_ZSt20__throw_length_errorPKc(ptr noundef nonnull @.str.791) #55 unreachable -_ZNSt6vectorI14specific_pointSaIS0_EE17_M_default_appendEm.exit: ; preds = %37 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(18446744073709551576) %33, i8 0, i64 -40, i1 false) - %scevgep.i.i.i.i = getelementptr i8, ptr %33, i64 -40 - store ptr %scevgep.i.i.i.i, ptr %6, align 8, !tbaa !2498 - %.pre = load ptr, ptr %0, align 8, !tbaa !174 - br label %_ZN5boost8geometry5range5eraseIRNS0_5model4ringI14specific_pointLb1ELb1ESt6vectorSaEETnNSt9enable_ifIXntsr3std8is_constINSt16remove_referenceIT_E4typeEEE5valueEiE4typeELi0EEENS_14range_iteratorISB_vE4typeEOSB_SI_.exit - -50: ; preds = %_ZSt4moveIN9__gnu_cxx17__normal_iteratorIP14specific_pointSt6vectorIS2_SaIS2_EEEES7_ET0_T_S9_S8_.exit.i - %51 = ptrtoint ptr %34 to i64 - %52 = ptrtoint ptr %35 to i64 - %53 = sub i64 %51, %52 - %54 = getelementptr i8, ptr %35, i64 %53 - %55 = getelementptr i8, ptr %54, i64 -40 - %.not.i.i.i.i.i = icmp eq ptr %34, %55 - br i1 %.not.i.i.i.i.i, label %_ZN5boost8geometry5range5eraseIRNS0_5model4ringI14specific_pointLb1ELb1ESt6vectorSaEETnNSt9enable_ifIXntsr3std8is_constINSt16remove_referenceIT_E4typeEEE5valueEiE4typeELi0EEENS_14range_iteratorISB_vE4typeEOSB_SI_.exit, label %56 +_ZNSt6vectorI14specific_pointSaIS0_EE17_M_default_appendEm.exit: ; preds = %_ZSt4moveIN9__gnu_cxx17__normal_iteratorIP14specific_pointSt6vectorIS2_SaIS2_EEEES7_ET0_T_S9_S8_.exit.i + %50 = ptrtoint ptr %34 to i64 + %51 = ptrtoint ptr %35 to i64 + %52 = sub i64 %50, %51 + %53 = getelementptr i8, ptr %35, i64 %52 + %54 = getelementptr i8, ptr %53, i64 -40 + %.not.i.i.i.i.i = icmp eq ptr %34, %54 + br i1 %.not.i.i.i.i.i, label %_ZN5boost8geometry5range5eraseIRNS0_5model4ringI14specific_pointLb1ELb1ESt6vectorSaEETnNSt9enable_ifIXntsr3std8is_constINSt16remove_referenceIT_E4typeEEE5valueEiE4typeELi0EEENS_14range_iteratorISB_vE4typeEOSB_SI_.exit, label %55 -56: ; preds = %50 - store ptr %55, ptr %6, align 8, !tbaa !2498 +56: ; preds = %49 + store ptr %54, ptr %6, align 8, !tbaa !2498 br label %_ZN5boost8geometry5range5eraseIRNS0_5model4ringI14specific_pointLb1ELb1ESt6vectorSaEETnNSt9enable_ifIXntsr3std8is_constINSt16remove_referenceIT_E4typeEEE5valueEiE4typeELi0EEENS_14range_iteratorISB_vE4typeEOSB_SI_.exit -_ZN5boost8geometry5range5eraseIRNS0_5model4ringI14specific_pointLb1ELb1ESt6vectorSaEETnNSt9enable_ifIXntsr3std8is_constINSt16remove_referenceIT_E4typeEEE5valueEiE4typeELi0EEENS_14range_iteratorISB_vE4typeEOSB_SI_.exit: ; preds = %_ZNSt6vectorI14specific_pointSaIS0_EE17_M_default_appendEm.exit, %50, %56 - %57 = phi ptr [ %scevgep.i.i.i.i, %_ZNSt6vectorI14specific_pointSaIS0_EE17_M_default_appendEm.exit ], [ %33, %50 ], [ %55, %56 ] - %58 = phi ptr [ %.pre, %_ZNSt6vectorI14specific_pointSaIS0_EE17_M_default_appendEm.exit ], [ %35, %50 ], [ %35, %56 ] - %59 = icmp eq ptr %57, %58 - br i1 %59, label %60, label %61 +_ZN5boost8geometry5range5eraseIRNS0_5model4ringI14specific_pointLb1ELb1ESt6vectorSaEETnNSt9enable_ifIXntsr3std8is_constINSt16remove_referenceIT_E4typeEEE5valueEiE4typeELi0EEENS_14range_iteratorISB_vE4typeEOSB_SI_.exit: ; preds = %_ZNSt6vectorI14specific_pointSaIS0_EE17_M_default_appendEm.exit, %56 + %57 = phi ptr [ %33, %49 ], [ %54, %55 ] + %57 = icmp eq ptr %56, %35 + br i1 %57, label %58, label %59 60: ; preds = %_ZN5boost8geometry5range5eraseIRNS0_5model4ringI14specific_pointLb1ELb1ESt6vectorSaEETnNSt9enable_ifIXntsr3std8is_constINSt16remove_referenceIT_E4typeEEE5valueEiE4typeELi0EEENS_14range_iteratorISB_vE4typeEOSB_SI_.exit call void @_ZNSt6vectorI14specific_pointSaIS0_EE17_M_default_appendEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef -1) @@ -185697,20 +185685,19 @@ _ZN5boost8geometry5range5eraseIRNS0_5model4ringI14specific_pointLb1ELb1ESt6vecto 61: ; preds = %_ZN5boost8geometry5range5eraseIRNS0_5model4ringI14specific_pointLb1ELb1ESt6vectorSaEETnNSt9enable_ifIXntsr3std8is_constINSt16remove_referenceIT_E4typeEEE5valueEiE4typeELi0EEENS_14range_iteratorISB_vE4typeEOSB_SI_.exit %62 = ptrtoint ptr %57 to i64 - %63 = ptrtoint ptr %58 to i64 - %64 = sub i64 %62, %63 - %65 = getelementptr i8, ptr %58, i64 %64 - %66 = getelementptr i8, ptr %65, i64 -40 - %.not.i.i.i.i = icmp eq ptr %57, %66 - br i1 %.not.i.i.i.i, label %_ZN5boost8geometry5range6resizeIRNS0_5model4ringI14specific_pointLb1ELb1ESt6vectorSaEETnNSt9enable_ifIXntsr3std8is_constINSt16remove_referenceIT_E4typeEEE5valueEiE4typeELi0EEEvOSB_NS_10range_sizeISB_E4typeE.exit, label %67 + %61 = sub i64 %60, %51 + %62 = getelementptr i8, ptr %35, i64 %61 + %65 = getelementptr i8, ptr %62, i64 -40 + %.not.i.i.i.i = icmp eq ptr %56, %63 + br i1 %.not.i.i.i.i, label %_ZN5boost8geometry5range6resizeIRNS0_5model4ringI14specific_pointLb1ELb1ESt6vectorSaEETnNSt9enable_ifIXntsr3std8is_constINSt16remove_referenceIT_E4typeEEE5valueEiE4typeELi0EEEvOSB_NS_10range_sizeISB_E4typeE.exit, label %64 67: ; preds = %61 - store ptr %66, ptr %6, align 8, !tbaa !2498 + store ptr %63, ptr %6, align 8, !tbaa !2498 br label %_ZN5boost8geometry5range6resizeIRNS0_5model4ringI14specific_pointLb1ELb1ESt6vectorSaEETnNSt9enable_ifIXntsr3std8is_constINSt16remove_referenceIT_E4typeEEE5valueEiE4typeELi0EEEvOSB_NS_10range_sizeISB_E4typeE.exit _ZN5boost8geometry5range6resizeIRNS0_5model4ringI14specific_pointLb1ELb1ESt6vectorSaEETnNSt9enable_ifIXntsr3std8is_constINSt16remove_referenceIT_E4typeEEE5valueEiE4typeELi0EEEvOSB_NS_10range_sizeISB_E4typeE.exit: ; preds = %60, %61, %67 - %68 = phi ptr [ %.pre20, %60 ], [ %57, %61 ], [ %66, %67 ] - %69 = phi ptr [ %.pre19, %60 ], [ %58, %61 ], [ %58, %67 ] + %68 = phi ptr [ %.pre20, %58 ], [ %57, %59 ], [ %63, %64 ] + %69 = phi ptr [ %.pre19, %58 ], [ %35, %59 ], [ %35, %64 ] %70 = load ptr, ptr %13, align 8, !tbaa !1501 %.not.i.i.i = icmp eq ptr %68, %70 br i1 %.not.i.i.i, label %74, label %71 @@ -185770,8 +185757,8 @@ _ZNSt6vectorI14specific_pointSaIS0_EE17_M_realloc_insertIJRKS0_EEEvN9__gnu_cxx17 br label %_ZN5boost8geometry5range9push_backIRNS0_5model4ringI14specific_pointLb1ELb1ESt6vectorSaEETnNSt9enable_ifIXntsr3std8is_constINSt16remove_referenceIT_E4typeEEE5valueEiE4typeELi0EEEvOSB_RKNS_11range_valueISB_E4typeE.exit _ZN5boost8geometry5range9push_backIRNS0_5model4ringI14specific_pointLb1ELb1ESt6vectorSaEETnNSt9enable_ifIXntsr3std8is_constINSt16remove_referenceIT_E4typeEEE5valueEiE4typeELi0EEEvOSB_RKNS_11range_valueISB_E4typeE.exit: ; preds = %71, %_ZNSt6vectorI14specific_pointSaIS0_EE17_M_realloc_insertIJRKS0_EEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_.exit.i.i.i - %92 = phi ptr [ %73, %71 ], [ %90, %_ZNSt6vectorI14specific_pointSaIS0_EE17_M_realloc_insertIJRKS0_EEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_.exit.i.i.i ] - %93 = phi ptr [ %.pre21, %71 ], [ %86, %_ZNSt6vectorI14specific_pointSaIS0_EE17_M_realloc_insertIJRKS0_EEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_.exit.i.i.i ] + %92 = phi ptr [ %73, %68 ], [ %90, %_ZNSt6vectorI14specific_pointSaIS0_EE17_M_realloc_insertIJRKS0_EEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_.exit.i.i.i ] + %93 = phi ptr [ %.pre21, %68 ], [ %86, %_ZNSt6vectorI14specific_pointSaIS0_EE17_M_realloc_insertIJRKS0_EEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_.exit.i.i.i ] %94 = ptrtoint ptr %92 to i64 %95 = ptrtoint ptr %93 to i64 %96 = sub i64 %94, %95 diff --git a/bench/eastl/optimized/Int128_t.ll b/bench/eastl/optimized/Int128_t.ll index 0bc284da643..a8dd5d33b1c 100644 --- a/bench/eastl/optimized/Int128_t.ll +++ b/bench/eastl/optimized/Int128_t.ll @@ -2528,8 +2528,8 @@ if.then10.i: ; preds = %if.then8.i br label %if.then20 if.end22.thread: ; preds = %if.then8.i, %if.then8.i.thread - %20 = phi i64 [ %15, %if.then8.i.thread ], [ %19, %if.then8.i ] - %shl.i109117 = phi i64 [ %shl.i105, %if.then8.i.thread ], [ %shl.i, %if.then8.i ] + %20 = phi i64 [ %15, %if.else6.i.thread ], [ %19, %if.else6.i ] + %shl.i109117 = phi i64 [ %shl.i105, %if.else6.i.thread ], [ %shl.i, %if.else6.i ] %not15.i = xor i64 %shl.i109117, -1 %and16.i = and i64 %20, %not15.i store i64 %and16.i, ptr %mPart114.i, align 8 diff --git a/bench/ffmpeg/optimized/rgb2rgb.ll b/bench/ffmpeg/optimized/rgb2rgb.ll index 70ff6b92f0d..a3cb27c6c01 100644 --- a/bench/ffmpeg/optimized/rgb2rgb.ll +++ b/bench/ffmpeg/optimized/rgb2rgb.ll @@ -2003,17 +2003,21 @@ define internal void @rgb24tobgr24_c(ptr noundef readonly captures(none) %0, ptr ; Function Attrs: inlinehint nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable define internal void @shuffle_bytes_0321_c(ptr noundef readonly captures(none) %0, ptr noundef writeonly captures(none) %1, i32 noundef %2) #3 { - %4 = sub i32 15, %2 - %5 = sext i32 %4 to i64 - %6 = sub nsw i64 0, %5 - %7 = getelementptr inbounds i8, ptr %0, i64 %6 - %8 = getelementptr inbounds i8, ptr %1, i64 %6 - %9 = icmp sgt i32 %2, 0 - br i1 %9, label %.lr.ph, label %._crit_edge + %.neg = add nsw i32 %2, -15 + %5 = sext i32 %.neg to i64 + %5 = getelementptr inbounds i8, ptr %0, i64 %5 + %7 = getelementptr inbounds i8, ptr %1, i64 %4 + %7 = icmp sgt i32 %2, 0 + br i1 %7, label %.lr.ph, label %._crit_edge -.lr.ph: ; preds = %3, %.lr.ph - %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ %5, %3 ] - %10 = getelementptr inbounds i8, ptr %7, i64 %indvars.iv +.lr.ph: ; preds = %3 + %8 = sub nsw i32 15, %2 + %9 = sext i32 %8 to i64 + br label %.lr.ph + +.lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph + %indvars.iv = phi i64 [ %9, %.lr.ph.preheader ], [ %indvars.iv.next, %.lr.ph ] + %10 = getelementptr inbounds i8, ptr %5, i64 %indvars.iv %11 = load i32, ptr %10, align 4, !tbaa !4 %12 = and i32 %11, 16711935 %13 = and i32 %11, -16711936 @@ -2021,7 +2025,7 @@ define internal void @shuffle_bytes_0321_c(ptr noundef readonly captures(none) % %15 = or disjoint i32 %12, %14 %16 = shl i32 %13, 16 %17 = or disjoint i32 %15, %16 - %18 = getelementptr inbounds i8, ptr %8, i64 %indvars.iv + %18 = getelementptr inbounds i8, ptr %6, i64 %indvars.iv store i32 %17, ptr %18, align 4, !tbaa !4 %indvars.iv.next = add nsw i64 %indvars.iv, 4 %19 = icmp slt i64 %indvars.iv, 11 @@ -2033,17 +2037,21 @@ define internal void @shuffle_bytes_0321_c(ptr noundef readonly captures(none) % ; Function Attrs: inlinehint nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable define internal void @shuffle_bytes_2103_c(ptr noundef readonly captures(none) %0, ptr noundef writeonly captures(none) %1, i32 noundef %2) #3 { - %4 = sub i32 15, %2 - %5 = sext i32 %4 to i64 - %6 = sub nsw i64 0, %5 - %7 = getelementptr inbounds i8, ptr %0, i64 %6 - %8 = getelementptr inbounds i8, ptr %1, i64 %6 - %9 = icmp sgt i32 %2, 0 - br i1 %9, label %.lr.ph, label %._crit_edge + %.neg = add nsw i32 %2, -15 + %5 = sext i32 %.neg to i64 + %5 = getelementptr inbounds i8, ptr %0, i64 %5 + %7 = getelementptr inbounds i8, ptr %1, i64 %4 + %7 = icmp sgt i32 %2, 0 + br i1 %7, label %.lr.ph, label %._crit_edge -.lr.ph: ; preds = %3, %.lr.ph - %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ %5, %3 ] - %10 = getelementptr inbounds i8, ptr %7, i64 %indvars.iv +.lr.ph: ; preds = %3 + %8 = sub nsw i32 15, %2 + %9 = sext i32 %8 to i64 + br label %.lr.ph + +.lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph + %indvars.iv = phi i64 [ %9, %.lr.ph.preheader ], [ %indvars.iv.next, %.lr.ph ] + %10 = getelementptr inbounds i8, ptr %5, i64 %indvars.iv %11 = load i32, ptr %10, align 4, !tbaa !4 %12 = and i32 %11, -16711936 %13 = and i32 %11, 16711935 @@ -2051,7 +2059,7 @@ define internal void @shuffle_bytes_2103_c(ptr noundef readonly captures(none) % %15 = or disjoint i32 %12, %14 %16 = shl i32 %13, 16 %17 = or disjoint i32 %15, %16 - %18 = getelementptr inbounds i8, ptr %8, i64 %indvars.iv + %18 = getelementptr inbounds i8, ptr %6, i64 %indvars.iv store i32 %17, ptr %18, align 4, !tbaa !4 %indvars.iv.next = add nsw i64 %indvars.iv, 4 %19 = icmp slt i64 %indvars.iv, 11 diff --git a/bench/freetype/optimized/sfnt.ll b/bench/freetype/optimized/sfnt.ll index 49fbd496002..db027603513 100644 --- a/bench/freetype/optimized/sfnt.ll +++ b/bench/freetype/optimized/sfnt.ll @@ -18638,7 +18638,7 @@ define internal fastcc range(i32 0, 9) i32 @triplet_decode(ptr noundef readonly %.not.i = icmp eq i8 %31, 0 %32 = sub nsw i32 0, %30 %33 = select i1 %.not.i, i32 %32, i32 %30 - br label %142 + br label %146 34: ; preds = %23 %35 = icmp samesign ult i8 %12, 20 @@ -18783,32 +18783,32 @@ define internal fastcc range(i32 0, 9) i32 @triplet_decode(ptr noundef readonly %or.cond.i = select i1 %139, i1 %141, i1 false br i1 %or.cond.i, label %.thread131, label %142 -142: ; preds = %.thread, %138 - %.088123 = phi i32 [ 0, %.thread ], [ %.088, %138 ] - %.089121 = phi i32 [ %33, %.thread ], [ %.089, %138 ] +146: ; preds = %138 %143 = icmp slt i32 %.0115139, 0 - %144 = sub nsw i32 -2147483648, %.0115139 - %145 = icmp slt i32 %.088123, %144 + %144 = sub nsw i32 -2147483648, %.0115145 + %145 = icmp slt i32 %.088, %144 %or.cond12.i = select i1 %143, i1 %145, i1 false - br i1 %or.cond12.i, label %.thread131, label %146 - -146: ; preds = %142 - %147 = add nsw i32 %.088123, %.0115139 - %148 = icmp sgt i32 %.0114140, 0 - %149 = sub nuw nsw i32 2147483647, %.0114140 - %150 = icmp sgt i32 %.089121, %149 + br i1 %or.cond12.i, label %.thread137, label %146 + +146: ; preds = %.thread124, %142 + %.089121129 = phi i32 [ %33, %.thread124 ], [ %.089, %142 ] + %.088123128 = phi i32 [ 0, %.thread124 ], [ %.088, %142 ] + %147 = add nsw i32 %.088123128, %.0115145 + %148 = icmp sgt i32 %.0114146, 0 + %149 = sub nuw nsw i32 2147483647, %.0114146 + %150 = icmp sgt i32 %.089121129, %149 %or.cond.i107 = select i1 %148, i1 %150, i1 false br i1 %or.cond.i107, label %.thread131, label %151 151: ; preds = %146 %152 = icmp slt i32 %.0114140, 0 %153 = sub nsw i32 -2147483648, %.0114140 - %154 = icmp slt i32 %.089121, %153 + %154 = icmp slt i32 %.089121129, %153 %or.cond12.i108 = select i1 %152, i1 %154, i1 false br i1 %or.cond12.i108, label %.thread131, label %155 155: ; preds = %151 - %156 = add nsw i32 %.089121, %.0114140 + %156 = add nsw i32 %.089121129, %.0114140 %157 = getelementptr inbounds nuw %struct.WOFF2_PointRec_, ptr %4, i64 %8 store i32 %147, ptr %157, align 4, !tbaa !674 %158 = getelementptr inbounds nuw i8, ptr %157, i64 4 diff --git a/bench/icu/optimized/decNumber.ll b/bench/icu/optimized/decNumber.ll index d7b65a63060..a5839335340 100644 --- a/bench/icu/optimized/decNumber.ll +++ b/bench/icu/optimized/decNumber.ll @@ -4929,7 +4929,7 @@ _ZL15decShiftToLeastPhii.exit: ; preds = %304, %319, %.lr.ph7 .lr.ph700.preheader: ; preds = %_ZL15decShiftToLeastPhii.exit.thread, %_ZL15decShiftToLeastPhii.exit %328 = phi i32 [ %260, %_ZL15decShiftToLeastPhii.exit.thread ], [ %326, %_ZL15decShiftToLeastPhii.exit ] %329 = phi i32 [ %258, %_ZL15decShiftToLeastPhii.exit.thread ], [ %324, %_ZL15decShiftToLeastPhii.exit ] - %330 = sub i32 0, %.0432 + %330 = sub nsw i32 0, %.0432 %331 = sext i32 %330 to i64 %332 = getelementptr i8, ptr %.0417, i64 %331 %scevgep737 = getelementptr i8, ptr %332, i64 %194 diff --git a/bench/libjpeg-turbo/optimized/jdphuff.ll b/bench/libjpeg-turbo/optimized/jdphuff.ll index 0e9f81d9ae9..351667308c2 100644 --- a/bench/libjpeg-turbo/optimized/jdphuff.ll +++ b/bench/libjpeg-turbo/optimized/jdphuff.ll @@ -445,10 +445,10 @@ process_restart.exit.thread: ; preds = %._crit_edge.i, %41, %68 = zext nneg i32 %8 to i64 br label %69 -69: ; preds = %.lr.ph, %148 - %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %148 ] - %.086142 = phi i32 [ %57, %.lr.ph ], [ %.5133, %148 ] - %.090141 = phi i64 [ %55, %.lr.ph ], [ %.595130, %148 ] +69: ; preds = %.lr.ph, %144 + %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %144 ] + %.086142 = phi i32 [ %57, %.lr.ph ], [ %.5133, %144 ] + %.090141 = phi i64 [ %55, %.lr.ph ], [ %.595130, %144 ] %70 = getelementptr inbounds nuw ptr, ptr %1, i64 %indvars.iv %71 = load ptr, ptr %70, align 8, !tbaa !90 %72 = getelementptr inbounds nuw [10 x i32], ptr %62, i64 0, i64 %indvars.iv @@ -517,7 +517,7 @@ process_restart.exit.thread: ; preds = %._crit_edge.i, %41, .thread125: ; preds = %108 %109 = getelementptr inbounds [4 x i32], ptr %67, i64 0, i64 %74 %110 = load i32, ptr %109, align 4, !tbaa !42 - br label %136 + br label %144 111: ; preds = %108 %112 = icmp slt i32 %.288.ph, %.183.ph @@ -555,52 +555,42 @@ process_restart.exit.thread: ; preds = %._crit_edge.i, %41, %134 = sub nuw nsw i32 2147483647, %132 %135 = icmp sgt i32 %130, %134 %or.cond = select i1 %133, i1 %135, i1 false - br i1 %or.cond, label %142, label %136 - -136: ; preds = %.thread125, %118 - %137 = phi i32 [ %110, %.thread125 ], [ %132, %118 ] - %138 = phi ptr [ %109, %.thread125 ], [ %131, %118 ] - %.3138 = phi i32 [ 0, %.thread125 ], [ %130, %118 ] - %.5135 = phi i32 [ %.288.ph, %.thread125 ], [ %119, %118 ] - %.595132 = phi i64 [ %.292.ph, %.thread125 ], [ %.696, %118 ] - %139 = icmp slt i32 %137, 0 - %140 = sub nsw i32 -2147483648, %137 - %141 = icmp slt i32 %.3138, %140 - %or.cond115 = select i1 %139, i1 %141, i1 false - br i1 %or.cond115, label %142, label %148 - -142: ; preds = %136, %118 - %143 = phi i32 [ %137, %136 ], [ %132, %118 ] - %144 = phi ptr [ %138, %136 ], [ %131, %118 ] - %.3137 = phi i32 [ %.3138, %136 ], [ %130, %118 ] - %.5134 = phi i32 [ %.5135, %136 ], [ %119, %118 ] - %.595131 = phi i64 [ %.595132, %136 ], [ %.696, %118 ] - %145 = load ptr, ptr %0, align 8, !tbaa !50 - %146 = getelementptr inbounds nuw i8, ptr %145, i64 40 - store i32 6, ptr %146, align 8, !tbaa !51 - %147 = load ptr, ptr %145, align 8, !tbaa !54 - call void %147(ptr noundef nonnull %0) #6 - br label %148 - -148: ; preds = %142, %136 - %149 = phi i32 [ %143, %142 ], [ %137, %136 ] - %150 = phi ptr [ %144, %142 ], [ %138, %136 ] - %.3136 = phi i32 [ %.3137, %142 ], [ %.3138, %136 ] - %.5133 = phi i32 [ %.5134, %142 ], [ %.5135, %136 ] - %.595130 = phi i64 [ %.595131, %142 ], [ %.595132, %136 ] - %151 = add nsw i32 %.3136, %149 - store i32 %151, ptr %150, align 4, !tbaa !42 - %152 = zext i32 %151 to i64 - %153 = shl i64 %152, %68 - %154 = trunc i64 %153 to i16 - store i16 %154, ptr %71, align 2, !tbaa !94 + br i1 %or.cond, label %140, label %136 + +136: ; preds = %118 + %137 = icmp slt i32 %132, 0 + %138 = sub nsw i32 -2147483648, %132 + %139 = icmp slt i32 %130, %138 + %or.cond115 = select i1 %137, i1 %139, i1 false + br i1 %or.cond115, label %140, label %144 + +140:; preds = %136, %118 + %141 = load ptr, ptr %0, align 8, !tbaa !50 + %142 = getelementptr inbounds nuw i8, ptr %141, i64 40 + store i32 6, ptr %142, align 8, !tbaa !51 + %143 = load ptr, ptr %141, align 8, !tbaa !54 + call void %143(ptr noundef nonnull %0) #6 + br label %144 + +144:; preds = %.thread139, %140, %136 + %.5134 = phi i32 [ %132, %140 ], [ %132, %136 ], [ %110, %.thread139 ] + %.595131 = phi ptr [ %131, %140 ], [ %131, %136 ], [ %109, %.thread139 ] + %.3136 = phi i32 [ %130, %140 ], [ %130, %136 ], [ 0, %.thread139 ] + %.5133 = phi i32 [ %119, %140 ], [ %119, %136 ], [ %.288.ph, %.thread139 ] + %.595130 = phi i64 [ %.696, %140 ], [ %.696, %136 ], [ %.292.ph, %.thread139 ] + %147 = add nsw i32 %.3136, %.5134 + store i32 %147, ptr %146, align 4, !tbaa !42 + %148 = zext i32 %147 to i64 + %149 = shl i64 %148, %68 + %150 = trunc i64 %149 to i16 + store i16 %150, ptr %71, align 2, !tbaa !94 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %155 = load i32, ptr %59, align 8, !tbaa !89 %156 = sext i32 %155 to i64 %157 = icmp slt i64 %indvars.iv.next, %156 br i1 %157, label %69, label %._crit_edge.loopexit, !llvm.loop !95 -._crit_edge.loopexit: ; preds = %148 +._crit_edge.loopexit: ; preds = %144 %.pre = load ptr, ptr %3, align 8, !tbaa !85 %.pre146 = load ptr, ptr %48, align 8, !tbaa !82 %.pre147 = load i64, ptr %53, align 8, !tbaa !87 @@ -634,7 +624,7 @@ process_restart.exit.thread: ; preds = %._crit_edge.i, %41, br label %process_restart.exit process_restart.exit: ; preds = %83, %102, %113, %15, %162, %164 - %.0 = phi i32 [ 1, %164 ], [ 1, %162 ], [ 0, %15 ], [ 0, %113 ], [ 0, %102 ], [ 0, %83 ] + %.0 = phi i32 [ 1, %160 ], [ 1, %158 ], [ 0, %15 ], [ 0, %113 ], [ 0, %102 ], [ 0, %83 ] call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %4) #6 call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3) #6 ret i32 %.0 diff --git a/bench/libwebp/optimized/syntax_enc.ll b/bench/libwebp/optimized/syntax_enc.ll index 21ffa3704ea..0a2823d8ac9 100644 --- a/bench/libwebp/optimized/syntax_enc.ll +++ b/bench/libwebp/optimized/syntax_enc.ll @@ -257,9 +257,8 @@ PutFilterHeader.exit.i: ; preds = %87, %82, %PutSegmen %126 = add nsw i32 %108, 8 %127 = sext i32 %126 to i64 %128 = add i64 %125, %127 - %narrow.i = sub nsw i32 -8, %24 - %.neg.i = sext i32 %narrow.i to i64 - %.neg43.i = add nsw i64 %.neg.i, 7 + %narrow45.i = xor i32 %24, -1 + %.neg.i = sext i32 %narrow45.i to i64 %129 = shl i64 %30, 3 %130 = sub i64 %.neg43.i, %129 %131 = add i64 %130, %128 diff --git a/bench/lief/optimized/ripemd160.ll b/bench/lief/optimized/ripemd160.ll index 492139c353e..9ae8278776f 100644 --- a/bench/lief/optimized/ripemd160.ll +++ b/bench/lief/optimized/ripemd160.ll @@ -1903,9 +1903,9 @@ mbedtls_ripemd160_update.exit: ; preds = %._crit_edge.i, %._c br i1 %.not45.i34, label %mbedtls_ripemd160_free.exit, label %._crit_edge.thread.i35 ._crit_edge.thread.i35: ; preds = %47, %._crit_edge.i31, %48 - %.1.lcssa60.i36 = phi i64 [ %54, %._crit_edge.i31 ], [ 8, %48 ], [ 8, %47 ] - %.137.lcssa59.i37 = phi ptr [ %53, %._crit_edge.i31 ], [ %3, %48 ], [ %3, %47 ] - %.05358.i38 = phi i32 [ 0, %._crit_edge.i31 ], [ %39, %48 ], [ 0, %47 ] + %.1.lcssa60.i36 = phi i64 [ %54, %49 ], [ 8, %48 ], [ 8, %47 ] + %.137.lcssa59.i37 = phi ptr [ %53, %49 ], [ %3, %48 ], [ %3, %47 ] + %.05358.i38 = phi i32 [ 0, %49 ], [ %39, %48 ], [ 0, %47 ] %55 = getelementptr inbounds nuw i8, ptr %0, i64 28 %56 = zext nneg i32 %.05358.i38 to i64 %57 = getelementptr inbounds nuw i8, ptr %55, i64 %56 diff --git a/bench/lief/optimized/sha1.ll b/bench/lief/optimized/sha1.ll index 0616c0d6ba4..0a1bfa92534 100644 --- a/bench/lief/optimized/sha1.ll +++ b/bench/lief/optimized/sha1.ll @@ -1567,7 +1567,7 @@ mbedtls_sha1_update.exit42.loopexit: ; preds = %mbedtls_sha1_update br label %mbedtls_sha1_update.exit42 mbedtls_sha1_update.exit42: ; preds = %mbedtls_sha1_update.exit42.loopexit, %._crit_edge.thread.i35 - %51 = phi i32 [ %.pre, %mbedtls_sha1_update.exit42.loopexit ], [ %50, %._crit_edge.thread.i35 ] + %51 = phi i32 [ %.pre, %mbedtls_sha1_update.exit38.loopexit ], [ %50, %._crit_edge.thread.i34 ] %52 = and i32 %51, 63 %53 = zext nneg i32 %52 to i64 %54 = getelementptr inbounds nuw [64 x i8], ptr %11, i64 0, i64 %53 diff --git a/bench/llvm/optimized/RISCVISelLowering.ll b/bench/llvm/optimized/RISCVISelLowering.ll index fcad157ece5..430cd05411b 100644 --- a/bench/llvm/optimized/RISCVISelLowering.ll +++ b/bench/llvm/optimized/RISCVISelLowering.ll @@ -103780,8 +103780,8 @@ _ZN4llvm9KnownBitsD2Ev.exit223: ; preds = %_ZN4llvm5APIntD2Ev. br i1 %859, label %.split.us.i, label %.split.i .split.us.i: ; preds = %_ZN4llvm9KnownBitsD2Ev.exit223, %875 - %indvars.iv26.i = phi i64 [ %indvars.iv.next27.i, %875 ], [ 0, %_ZN4llvm9KnownBitsD2Ev.exit223 ] - %.01721.us.i = phi i64 [ %.1.us.i, %875 ], [ %863, %_ZN4llvm9KnownBitsD2Ev.exit223 ] + %indvars.iv26.i = phi i64 [ %indvars.iv.next27.i, %875 ], [ 0, %_ZN4llvm9KnownBitsD2Ev.exit222 ] + %.01721.us.i = phi i64 [ %.1.us.i, %875 ], [ %863, %_ZN4llvm9KnownBitsD2Ev.exit222 ] %.not19.us.i = icmp samesign ugt i64 %indvars.iv26.i, 2 br i1 %.not19.us.i, label %875, label %864 @@ -103806,8 +103806,8 @@ _ZN4llvm9KnownBitsD2Ev.exit223: ; preds = %_ZN4llvm5APIntD2Ev. br i1 %.not.us.i, label %_ZL17computeGREVOrGORCmjb.exit, label %.split.us.i, !llvm.loop !1626 .split.i: ; preds = %_ZN4llvm9KnownBitsD2Ev.exit223, %886 - %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %886 ], [ 0, %_ZN4llvm9KnownBitsD2Ev.exit223 ] - %.01721.i = phi i64 [ %.1.i, %886 ], [ %863, %_ZN4llvm9KnownBitsD2Ev.exit223 ] + %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %886 ], [ 0, %_ZN4llvm9KnownBitsD2Ev.exit222 ] + %.01721.i = phi i64 [ %.1.i, %886 ], [ %863, %_ZN4llvm9KnownBitsD2Ev.exit222 ] %.not19.i = icmp samesign ugt i64 %indvars.iv.i, 2 br i1 %.not19.i, label %886, label %876 @@ -103888,7 +103888,7 @@ _ZN4llvm5APIntaSEm.exit: ; preds = %_ZN4llvm5APInt15cle br label %916 916: ; preds = %905, %.split.us.i237 - %.1.us.i242 = phi i64 [ %spec.select.us.i241, %905 ], [ %.01721.us.i239, %.split.us.i237 ] + %.1.us.i242 = phi i64 [ %spec.select.us.i241, %905 ], [ %.01721.us.i239, %.split.us.i236 ] %indvars.iv.next27.i243 = add nuw nsw i64 %indvars.iv26.i238, 1 %.not.us.i244 = icmp eq i64 %indvars.iv.next27.i243, 6 br i1 %.not.us.i244, label %_ZL17computeGREVOrGORCmjb.exit245, label %.split.us.i237, !llvm.loop !1626 @@ -103913,7 +103913,7 @@ _ZN4llvm5APIntaSEm.exit: ; preds = %_ZN4llvm5APInt15cle br label %927 927: ; preds = %917, %.split.i228 - %.1.i233 = phi i64 [ %spec.select.i232, %917 ], [ %.01721.i230, %.split.i228 ] + %.1.i233 = phi i64 [ %spec.select.i232, %917 ], [ %.01721.i230, %.split.i227 ] %indvars.iv.next.i234 = add nuw nsw i64 %indvars.iv.i229, 1 %.not.i235 = icmp eq i64 %indvars.iv.next.i234, 6 br i1 %.not.i235, label %_ZL17computeGREVOrGORCmjb.exit245, label %.split.i228, !llvm.loop !1626 diff --git a/bench/llvm/optimized/X86FrameLowering.ll b/bench/llvm/optimized/X86FrameLowering.ll index 19c77d32aa5..a1abc990fd9 100644 --- a/bench/llvm/optimized/X86FrameLowering.ll +++ b/bench/llvm/optimized/X86FrameLowering.ll @@ -20368,9 +20368,9 @@ _ZNK4llvm19TargetRegisterClass8containsENS_8RegisterE.exit140.thread: ; preds = ret i1 true 259: ; preds = %.lr.ph217, %371 - %.0121215 = phi i32 [ 0, %.lr.ph217 ], [ %.1122, %371 ] - %.7213 = phi i32 [ %.6, %.lr.ph217 ], [ %.8, %371 ] - %.sroa.0162.0212 = phi ptr [ %253, %.lr.ph217 ], [ %260, %371 ] + %.0121215 = phi i32 [ 0, %.lr.ph216 ], [ %.1122, %369 ] + %.7213 = phi i32 [ %.6, %.lr.ph216 ], [ %.8, %369 ] + %.sroa.0162.0212 = phi ptr [ %253, %.lr.ph216 ], [ %260, %369 ] %260 = getelementptr inbounds i8, ptr %.sroa.0162.0212, i64 -12 %.sroa.0.0.copyload.i143 = load i32, ptr %260, align 4, !tbaa !403 %261 = add i32 %.sroa.0.0.copyload.i143, -1 @@ -20478,20 +20478,19 @@ _ZNK4llvm19TargetRegisterClass8containsENS_8RegisterE.exit152.thread: ; preds = %334 = call range(i64 0, 65) i64 @llvm.ctlz.i64(i64 %333, i1 false) %335 = trunc nuw nsw i64 %334 to i8 %336 = sub nsw i8 63, %335 - %337 = sub nsw i32 0, %.7213 - %338 = zext i32 %337 to i64 - %339 = zext nneg i8 %336 to i64 - %340 = shl nuw i64 1, %339 - %341 = add nuw nsw i64 %338, 4294967295 - %342 = add nuw i64 %341, %340 - %343 = sub i64 0, %340 - %344 = and i64 %342, %343 - %345 = trunc i64 %344 to i32 - %346 = add i32 %329, %345 - %347 = sub i32 0, %346 + %337 = zext nneg i8 %336 to i64 + %338 = shl nuw i64 1, %337 + %narrow = xor i32 %.7213, -1 + %339 = zext i32 %narrow to i64 + %341 = add nuw i64 %338, %339 + %341 = sub i64 0, %338 + %342 = and i64 %340, %341 + %343 = trunc i64 %342 to i32 + %344 = add i32 %329, %343 + %345 = sub i32 0, %344 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #24 %348 = zext nneg i32 %329 to i64 - %349 = sext i32 %347 to i64 + %349 = sext i32 %345 to i64 %350 = call noundef i32 @_ZN4llvm16MachineFrameInfo27CreateFixedSpillStackObjectEmlb(ptr noundef nonnull align 8 dereferenceable(696) %7, i64 noundef %348, i64 noundef %349, i1 noundef zeroext false) #24 store i32 %350, ptr %5, align 4, !tbaa !403 %351 = getelementptr inbounds i8, ptr %.sroa.0162.0212, i64 -8 @@ -20530,12 +20529,12 @@ _ZNK4llvm19TargetRegisterClass8containsENS_8RegisterE.exit155: ; preds = %353 br label %_ZNK4llvm19TargetRegisterClass8containsENS_8RegisterE.exit155.thread _ZNK4llvm19TargetRegisterClass8containsENS_8RegisterE.exit155.thread: ; preds = %353, %_ZNK4llvm19TargetRegisterClass8containsENS_8RegisterE.exit152.thread, %368, %_ZNK4llvm19TargetRegisterClass8containsENS_8RegisterE.exit155 - %.2123 = phi i32 [ %370, %368 ], [ %.0121215, %_ZNK4llvm19TargetRegisterClass8containsENS_8RegisterE.exit155 ], [ %.0121215, %_ZNK4llvm19TargetRegisterClass8containsENS_8RegisterE.exit152.thread ], [ %.0121215, %353 ] + %.2123 = phi i32 [ %370, %366 ], [ %.0121215, %_ZNK4llvm19TargetRegisterClass8containsENS_8RegisterE.exit155 ], [ %.0121215, %_ZNK4llvm19TargetRegisterClass8containsENS_8RegisterE.exit152.thread ], [ %.0121215, %351 ] call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #24 br label %371 371: ; preds = %_ZNK4llvm19TargetRegisterClass8containsENS_8RegisterE.exit146, %_ZNK4llvm19TargetRegisterClass8containsENS_8RegisterE.exit149, %_ZNK4llvm19TargetRegisterClass8containsENS_8RegisterE.exit155.thread - %.8 = phi i32 [ %347, %_ZNK4llvm19TargetRegisterClass8containsENS_8RegisterE.exit155.thread ], [ %.7213, %_ZNK4llvm19TargetRegisterClass8containsENS_8RegisterE.exit149 ], [ %.7213, %_ZNK4llvm19TargetRegisterClass8containsENS_8RegisterE.exit146 ] + %.8 = phi i32 [ %345, %_ZNK4llvm19TargetRegisterClass8containsENS_8RegisterE.exit155.thread ], [ %.7213, %_ZNK4llvm19TargetRegisterClass8containsENS_8RegisterE.exit149 ], [ %.7213, %_ZNK4llvm19TargetRegisterClass8containsENS_8RegisterE.exit146 ] %.1122 = phi i32 [ %.2123, %_ZNK4llvm19TargetRegisterClass8containsENS_8RegisterE.exit155.thread ], [ %.0121215, %_ZNK4llvm19TargetRegisterClass8containsENS_8RegisterE.exit149 ], [ %.0121215, %_ZNK4llvm19TargetRegisterClass8containsENS_8RegisterE.exit146 ] %.not191 = icmp eq ptr %260, %254 br i1 %.not191, label %._crit_edge218, label %259 diff --git a/bench/mitsuba3/optimized/grid.ll b/bench/mitsuba3/optimized/grid.ll index e532baf5825..0e924904298 100644 --- a/bench/mitsuba3/optimized/grid.ll +++ b/bench/mitsuba3/optimized/grid.ll @@ -3742,14 +3742,10 @@ _ZNK5drjit6TensorINS_12DynamicArrayIfEEE5shapeEm.exit: ; preds = %3 %12 = load i64, ptr %11, align 8 %13 = getelementptr inbounds nuw i8, ptr %0, i64 116 %14 = load i8, ptr %13, align 4 - %15 = getelementptr inbounds nuw i8, ptr %0, i64 108 - %16 = load i32, ptr %15, align 4 - %17 = getelementptr inbounds nuw i8, ptr %0, i64 112 - %18 = load i32, ptr %17, align 16 - %19 = icmp eq i64 %12, 0 - br i1 %19, label %20, label %21 - -20: ; preds = %_ZNK5drjit6TensorINS_12DynamicArrayIfEEE5shapeEm.exit + %15 = icmp eq i64 %12, 0 + br i1 %15, label %16, label %17 + +16:; preds = %_ZNK5drjit6TensorINS_12DynamicArrayIfEEE5shapeEm.exit tail call void (ptr, ...) @_ZN5drjit11drjit_raiseEPKcz(ptr noundef nonnull @.str.48) #34 unreachable @@ -3761,53 +3757,53 @@ _ZNK5drjit6TensorINS_12DynamicArrayIfEEE5shapeEm.exit: ; preds = %3 br label %25 25: ; preds = %_ZN5drjit7divisorIiiEC2Ei.exit.i, %21 - %.03236.i = phi i64 [ 0, %21 ], [ %57, %_ZN5drjit7divisorIiiEC2Ei.exit.i ] - %26 = phi i64 [ %12, %21 ], [ %56, %_ZN5drjit7divisorIiiEC2Ei.exit.i ] + %.03236.i = phi i64 [ 0, %17 ], [ %57, %_ZN5drjit7divisorIiiEC2Ei.exit.i ] + %26 = phi i64 [ %12, %17 ], [ %56, %_ZN5drjit7divisorIiiEC2Ei.exit.i ] %27 = getelementptr inbounds nuw i64, ptr %10, i64 %.03236.i %28 = load i64, ptr %27, align 8 + %25 = trunc i64 %24 to i32 + %26 = sub nuw nsw i64 2, %.03236.i + %27 = getelementptr inbounds nuw i32, ptr %19, i64 %26 + store i32 %25, ptr %27, align 4 + %28 = load i64, ptr %23, align 8 %29 = trunc i64 %28 to i32 - %30 = sub nuw nsw i64 2, %.03236.i - %31 = getelementptr inbounds nuw i32, ptr %23, i64 %30 - store i32 %29, ptr %31, align 4 - %32 = load i64, ptr %27, align 8 - %33 = trunc i64 %32 to i32 - %34 = tail call i32 @llvm.abs.i32(i32 %33, i1 true) - %.not.i.i = icmp eq i32 %33, 0 - %35 = tail call range(i32 1, 33) i32 @llvm.ctlz.i32(i32 %34, i1 true) - %36 = trunc nuw nsw i32 %35 to i8 - %37 = xor i8 %36, 31 - %38 = select i1 %.not.i.i, i8 -1, i8 %37 - %39 = tail call range(i32 0, 32) i32 @llvm.ctpop.i32(i32 %34) - %40 = icmp samesign ult i32 %39, 2 - br i1 %40, label %_ZN5drjit7divisorIiiEC2Ei.exit.i, label %41 - -41: ; preds = %25 - %42 = zext i8 %38 to i32 - %43 = add nsw i32 %42, -1 - %44 = shl nuw i32 1, %43 - %45 = zext i32 %44 to i64 - %46 = shl nuw i64 %45, 32 - %47 = zext nneg i32 %34 to i64 - %48 = udiv i64 %46, %47 - %49 = urem i64 %46, %47 - %.sroa.0.0.extract.trunc.i.i = trunc i64 %48 to i32 - %.sroa.2.0.extract.trunc.i.i = trunc nuw nsw i64 %49 to i32 - %50 = shl i32 %.sroa.0.0.extract.trunc.i.i, 1 - %51 = or disjoint i32 %50, 1 - %52 = shl nuw i32 %.sroa.2.0.extract.trunc.i.i, 1 - %.not17.not.i.i = icmp ult i32 %52, %34 - %53 = add nsw i32 %50, 2 - %spec.select.i = select i1 %.not17.not.i.i, i32 %51, i32 %53 + %30 = tail call i32 @llvm.abs.i32(i32 %29, i1 true) + %.not.i.i = icmp eq i32 %29, 0 + %31 = tail call range(i32 1, 33) i32 @llvm.ctlz.i32(i32 %30, i1 true) + %32 = trunc nuw nsw i32 %31 to i8 + %33 = xor i8 %32, 31 + %34 = select i1 %.not.i.i, i8 -1, i8 %33 + %35 = tail call range(i32 0, 32) i32 @llvm.ctpop.i32(i32 %30) + %36 = icmp samesign ult i32 %35, 2 + br i1 %36, label %_ZN5drjit7divisorIiiEC2Ei.exit.i, label %37 + +37:; preds = %21 + %38 = zext i8 %34 to i32 + %39 = add nsw i32 %38, -1 + %40 = shl nuw i32 1, %39 + %41 = zext i32 %40 to i64 + %42 = shl nuw i64 %41, 32 + %42 = zext nneg i32 %30 to i64 + %44 = udiv i64 %42, %43 + %45 = urem i64 %42, %43 + %.sroa.0.0.extract.trunc.i.i = trunc i64 %44 to i32 + %.sroa.2.0.extract.trunc.i.i = trunc nuw nsw i64 %45 to i32 + %46 = shl i32 %.sroa.0.0.extract.trunc.i.i, 1 + %47 = or disjoint i32 %46, 1 + %48 = shl nuw i32 %.sroa.2.0.extract.trunc.i.i, 1 + %.not17.not.i.i = icmp ult i32 %48, %30 + %49 = add nsw i32 %46, 2 + %spec.select.i = select i1 %.not17.not.i.i, i32 %47, i32 %49 br label %_ZN5drjit7divisorIiiEC2Ei.exit.i -_ZN5drjit7divisorIiiEC2Ei.exit.i: ; preds = %41, %25 - %.sroa.2.0.i = phi i32 [ 0, %25 ], [ %spec.select.i, %41 ] - %54 = getelementptr inbounds nuw [3 x %"struct.drjit::divisor"], ptr %24, i64 0, i64 %30 - store i32 %33, ptr %54, align 1 +_ZN5drjit7divisorIiiEC2Ei.exit.i: ; preds = %37, %25 + %.sroa.2.0.i = phi i32 [ 0, %21 ], [ %spec.select.i, %37 ] + %54 = getelementptr inbounds nuw [3 x %"struct.drjit::divisor"], ptr %24, i64 0, i64 %26 + store i32 %29, ptr %54, align 1 %.sroa.2.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %54, i64 4 store i32 %.sroa.2.0.i, ptr %.sroa.2.0..sroa_idx.i, align 1 %.sroa.5.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %54, i64 8 - store i8 %38, ptr %.sroa.5.0..sroa_idx.i, align 1 + store i8 %34, ptr %.sroa.5.0..sroa_idx.i, align 1 %55 = load i64, ptr %27, align 8 %56 = mul i64 %55, %26 store i64 %56, ptr %22, align 8 @@ -3818,21 +3814,19 @@ _ZN5drjit7divisorIiiEC2Ei.exit.i: ; preds = %41, %25 _ZN5drjit7TextureIfLm3EE4initEPKmmbNS_10FilterModeENS_8WrapModeEb.exit: ; preds = %_ZN5drjit7divisorIiiEC2Ei.exit.i %58 = and i8 %14, 1 store i8 %58, ptr %13, align 4 - store i32 %16, ptr %15, align 4 - store i32 %18, ptr %17, align 16 - br i1 %8, label %83, label %59 + br i1 %8, label %79, label %55 -59: ; preds = %_ZN5drjit7TextureIfLm3EE4initEPKmmbNS_10FilterModeENS_8WrapModeEb.exit - %60 = getelementptr inbounds nuw i8, ptr %1, i64 8 - %61 = load i64, ptr %60, align 8 - %.not.i7 = icmp eq i64 %61, %56 - br i1 %.not.i7, label %63, label %62 +55:; preds = %_ZN5drjit7TextureIfLm3EE4initEPKmmbNS_10FilterModeENS_8WrapModeEb.exit + %56 = getelementptr inbounds nuw i8, ptr %1, i64 8 + %57 = load i64, ptr %56, align 8 + %.not.i7 = icmp eq i64 %57, %52 + br i1 %.not.i7, label %63, label %58 -62: ; preds = %59 +62: ; preds = %55 tail call void (ptr, ...) @_ZN5drjit11drjit_raiseEPKcz(ptr noundef nonnull @.str.53) #34 unreachable -63: ; preds = %59 +63: ; preds = %55 %64 = icmp ugt i64 %56, 4611686018427387903 %65 = shl i64 %56, 2 %66 = select i1 %64, i64 -1, i64 %65 @@ -3845,7 +3839,7 @@ _ZN5drjit7TextureIfLm3EE4initEPKmmbNS_10FilterModeENS_8WrapModeEb.exit: ; preds br label %69 69: ; preds = %69, %.lr.ph.i.i - %.011.i.i = phi i64 [ 0, %.lr.ph.i.i ], [ %73, %69 ] + %.011.i.i = phi i64 [ 0, %.lr.ph.i.i ], [ %73, %65 ] %70 = getelementptr inbounds float, ptr %68, i64 %.011.i.i %71 = load float, ptr %70, align 4 %72 = getelementptr inbounds float, ptr %67, i64 %.011.i.i @@ -3867,11 +3861,11 @@ _ZN5drjit7TextureIfLm3EE4initEPKmmbNS_10FilterModeENS_8WrapModeEb.exit: ; preds 80: ; preds = %77 tail call void @_ZdaPv(ptr noundef nonnull %78) #35 - %.pre.i.i = load i64, ptr %60, align 8 + %.pre.i.i = load i64, ptr %56, align 8 br label %_ZN5drjit7TextureIfLm3EE9set_valueERKNS_12DynamicArrayIfEEb.exit _ZN5drjit7TextureIfLm3EE9set_valueERKNS_12DynamicArrayIfEEb.exit: ; preds = %._crit_edge.i.i, %77, %80 - %81 = phi i64 [ %56, %77 ], [ %.pre.i.i, %80 ], [ %56, %._crit_edge.i.i ] + %81 = phi i64 [ %56, %73 ], [ %.pre.i.i, %76 ], [ %56, %._crit_edge.i.i ] %82 = getelementptr inbounds nuw i8, ptr %0, i64 24 store i64 %81, ptr %82, align 8 store ptr %67, ptr %7, align 16 diff --git a/bench/mitsuba3/optimized/sdfgrid.ll b/bench/mitsuba3/optimized/sdfgrid.ll index 0ce5a517b1a..261c5b51574 100644 --- a/bench/mitsuba3/optimized/sdfgrid.ll +++ b/bench/mitsuba3/optimized/sdfgrid.ll @@ -3213,12 +3213,8 @@ _ZNK5drjit6TensorINS_12DynamicArrayIfEEE5shapeEm.exit: ; preds = %3 %12 = load i64, ptr %11, align 8 %13 = getelementptr inbounds nuw i8, ptr %0, i64 116 %14 = load i8, ptr %13, align 4 - %15 = getelementptr inbounds nuw i8, ptr %0, i64 108 - %16 = load i32, ptr %15, align 4 - %17 = getelementptr inbounds nuw i8, ptr %0, i64 112 - %18 = load i32, ptr %17, align 16 - %19 = icmp eq i64 %12, 0 - br i1 %19, label %20, label %21 + %15 = icmp eq i64 %12, 0 + br i1 %15, label %16, label %17 20: ; preds = %_ZNK5drjit6TensorINS_12DynamicArrayIfEEE5shapeEm.exit tail call void (ptr, ...) @_ZN5drjit11drjit_raiseEPKcz(ptr noundef nonnull @.str.28) #35 @@ -3232,53 +3228,53 @@ _ZNK5drjit6TensorINS_12DynamicArrayIfEEE5shapeEm.exit: ; preds = %3 br label %25 25: ; preds = %_ZN5drjit7divisorIiiEC2Ei.exit.i, %21 - %.03236.i = phi i64 [ 0, %21 ], [ %57, %_ZN5drjit7divisorIiiEC2Ei.exit.i ] - %26 = phi i64 [ %12, %21 ], [ %56, %_ZN5drjit7divisorIiiEC2Ei.exit.i ] + %.03236.i = phi i64 [ 0, %17 ], [ %57, %_ZN5drjit7divisorIiiEC2Ei.exit.i ] + %26 = phi i64 [ %12, %17 ], [ %56, %_ZN5drjit7divisorIiiEC2Ei.exit.i ] %27 = getelementptr inbounds nuw i64, ptr %10, i64 %.03236.i %28 = load i64, ptr %27, align 8 + %25 = trunc i64 %24 to i32 + %26 = sub nuw nsw i64 2, %.03236.i + %27 = getelementptr inbounds nuw i32, ptr %19, i64 %26 + store i32 %25, ptr %27, align 4 + %28 = load i64, ptr %23, align 8 %29 = trunc i64 %28 to i32 - %30 = sub nuw nsw i64 2, %.03236.i - %31 = getelementptr inbounds nuw i32, ptr %23, i64 %30 - store i32 %29, ptr %31, align 4 - %32 = load i64, ptr %27, align 8 - %33 = trunc i64 %32 to i32 - %34 = tail call i32 @llvm.abs.i32(i32 %33, i1 true) - %.not.i.i = icmp eq i32 %33, 0 - %35 = tail call range(i32 1, 33) i32 @llvm.ctlz.i32(i32 %34, i1 true) - %36 = trunc nuw nsw i32 %35 to i8 - %37 = xor i8 %36, 31 - %38 = select i1 %.not.i.i, i8 -1, i8 %37 - %39 = tail call range(i32 0, 32) i32 @llvm.ctpop.i32(i32 %34) - %40 = icmp samesign ult i32 %39, 2 - br i1 %40, label %_ZN5drjit7divisorIiiEC2Ei.exit.i, label %41 - -41: ; preds = %25 - %42 = zext i8 %38 to i32 - %43 = add nsw i32 %42, -1 - %44 = shl nuw i32 1, %43 - %45 = zext i32 %44 to i64 - %46 = shl nuw i64 %45, 32 - %47 = zext nneg i32 %34 to i64 - %48 = udiv i64 %46, %47 - %49 = urem i64 %46, %47 - %.sroa.0.0.extract.trunc.i.i = trunc i64 %48 to i32 - %.sroa.2.0.extract.trunc.i.i = trunc nuw nsw i64 %49 to i32 - %50 = shl i32 %.sroa.0.0.extract.trunc.i.i, 1 - %51 = or disjoint i32 %50, 1 - %52 = shl nuw i32 %.sroa.2.0.extract.trunc.i.i, 1 - %.not17.not.i.i = icmp ult i32 %52, %34 - %53 = add nsw i32 %50, 2 - %spec.select.i = select i1 %.not17.not.i.i, i32 %51, i32 %53 + %30 = tail call i32 @llvm.abs.i32(i32 %29, i1 true) + %.not.i.i = icmp eq i32 %29, 0 + %31 = tail call range(i32 1, 33) i32 @llvm.ctlz.i32(i32 %30, i1 true) + %32 = trunc nuw nsw i32 %31 to i8 + %33 = xor i8 %32, 31 + %34 = select i1 %.not.i.i, i8 -1, i8 %33 + %35 = tail call range(i32 0, 32) i32 @llvm.ctpop.i32(i32 %30) + %36 = icmp samesign ult i32 %35, 2 + br i1 %36, label %_ZN5drjit7divisorIiiEC2Ei.exit.i, label %37 + +37:; preds = %21 + %38 = zext i8 %34 to i32 + %39 = add nsw i32 %38, -1 + %40 = shl nuw i32 1, %39 + %41 = zext i32 %40 to i64 + %42 = shl nuw i64 %41, 32 + %42 = zext nneg i32 %30 to i64 + %44 = udiv i64 %42, %43 + %45 = urem i64 %42, %43 + %.sroa.0.0.extract.trunc.i.i = trunc i64 %44 to i32 + %.sroa.2.0.extract.trunc.i.i = trunc nuw nsw i64 %45 to i32 + %46 = shl i32 %.sroa.0.0.extract.trunc.i.i, 1 + %47 = or disjoint i32 %46, 1 + %48 = shl nuw i32 %.sroa.2.0.extract.trunc.i.i, 1 + %.not17.not.i.i = icmp ult i32 %48, %30 + %49 = add nsw i32 %46, 2 + %spec.select.i = select i1 %.not17.not.i.i, i32 %47, i32 %49 br label %_ZN5drjit7divisorIiiEC2Ei.exit.i -_ZN5drjit7divisorIiiEC2Ei.exit.i: ; preds = %41, %25 - %.sroa.2.0.i = phi i32 [ 0, %25 ], [ %spec.select.i, %41 ] - %54 = getelementptr inbounds nuw [3 x %"struct.drjit::divisor"], ptr %24, i64 0, i64 %30 - store i32 %33, ptr %54, align 1 +_ZN5drjit7divisorIiiEC2Ei.exit.i: ; preds = %37, %25 + %.sroa.2.0.i = phi i32 [ 0, %21 ], [ %spec.select.i, %37 ] + %54 = getelementptr inbounds nuw [3 x %"struct.drjit::divisor"], ptr %24, i64 0, i64 %26 + store i32 %29, ptr %54, align 1 %.sroa.2.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %54, i64 4 store i32 %.sroa.2.0.i, ptr %.sroa.2.0..sroa_idx.i, align 1 %.sroa.5.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %54, i64 8 - store i8 %38, ptr %.sroa.5.0..sroa_idx.i, align 1 + store i8 %34, ptr %.sroa.5.0..sroa_idx.i, align 1 %55 = load i64, ptr %27, align 8 %56 = mul i64 %55, %26 store i64 %56, ptr %22, align 8 @@ -3289,21 +3285,19 @@ _ZN5drjit7divisorIiiEC2Ei.exit.i: ; preds = %41, %25 _ZN5drjit7TextureIfLm3EE4initEPKmmbNS_10FilterModeENS_8WrapModeEb.exit: ; preds = %_ZN5drjit7divisorIiiEC2Ei.exit.i %58 = and i8 %14, 1 store i8 %58, ptr %13, align 4 - store i32 %16, ptr %15, align 4 - store i32 %18, ptr %17, align 16 - br i1 %8, label %83, label %59 + br i1 %8, label %79, label %55 -59: ; preds = %_ZN5drjit7TextureIfLm3EE4initEPKmmbNS_10FilterModeENS_8WrapModeEb.exit - %60 = getelementptr inbounds nuw i8, ptr %1, i64 8 - %61 = load i64, ptr %60, align 8 - %.not.i7 = icmp eq i64 %61, %56 - br i1 %.not.i7, label %63, label %62 +55:; preds = %_ZN5drjit7TextureIfLm3EE4initEPKmmbNS_10FilterModeENS_8WrapModeEb.exit + %56 = getelementptr inbounds nuw i8, ptr %1, i64 8 + %57 = load i64, ptr %56, align 8 + %.not.i7 = icmp eq i64 %57, %52 + br i1 %.not.i7, label %63, label %58 -62: ; preds = %59 +58:; preds = %55 tail call void (ptr, ...) @_ZN5drjit11drjit_raiseEPKcz(ptr noundef nonnull @.str.33) #35 unreachable -63: ; preds = %59 +63: ; preds = %55 %64 = icmp ugt i64 %56, 4611686018427387903 %65 = shl i64 %56, 2 %66 = select i1 %64, i64 -1, i64 %65 @@ -3316,7 +3310,7 @@ _ZN5drjit7TextureIfLm3EE4initEPKmmbNS_10FilterModeENS_8WrapModeEb.exit: ; preds br label %69 69: ; preds = %69, %.lr.ph.i.i - %.011.i.i = phi i64 [ 0, %.lr.ph.i.i ], [ %73, %69 ] + %.011.i.i = phi i64 [ 0, %.lr.ph.i.i ], [ %73, %65 ] %70 = getelementptr inbounds float, ptr %68, i64 %.011.i.i %71 = load float, ptr %70, align 4 %72 = getelementptr inbounds float, ptr %67, i64 %.011.i.i @@ -3338,11 +3332,11 @@ _ZN5drjit7TextureIfLm3EE4initEPKmmbNS_10FilterModeENS_8WrapModeEb.exit: ; preds 80: ; preds = %77 tail call void @_ZdaPv(ptr noundef nonnull %78) #36 - %.pre.i.i = load i64, ptr %60, align 8 + %.pre.i.i = load i64, ptr %56, align 8 br label %_ZN5drjit7TextureIfLm3EE9set_valueERKNS_12DynamicArrayIfEEb.exit _ZN5drjit7TextureIfLm3EE9set_valueERKNS_12DynamicArrayIfEEb.exit: ; preds = %._crit_edge.i.i, %77, %80 - %81 = phi i64 [ %56, %77 ], [ %.pre.i.i, %80 ], [ %56, %._crit_edge.i.i ] + %81 = phi i64 [ %56, %73 ], [ %.pre.i.i, %76 ], [ %56, %._crit_edge.i.i ] %82 = getelementptr inbounds nuw i8, ptr %0, i64 24 store i64 %81, ptr %82, align 8 store ptr %67, ptr %7, align 16 diff --git a/bench/ockam-rs/optimized/274k60s1efyiyv8u.ll b/bench/ockam-rs/optimized/274k60s1efyiyv8u.ll index fb1a37431b4..1d5b758ab7a 100644 --- a/bench/ockam-rs/optimized/274k60s1efyiyv8u.ll +++ b/bench/ockam-rs/optimized/274k60s1efyiyv8u.ll @@ -1765,7 +1765,7 @@ define hidden noundef zeroext i1 @"_ZN4hkdf17Hkdf$LT$H$C$I$GT$17expand_multi_inf br label %"_ZN12block_buffer35BlockBuffer$LT$BlockSize$C$Kind$GT$13digest_blocks17hf7d36ed7b905af22E.llvm.4054924361102640483.exit25" "_ZN12block_buffer35BlockBuffer$LT$BlockSize$C$Kind$GT$13digest_blocks17hf7d36ed7b905af22E.llvm.4054924361102640483.exit25": ; preds = %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i24", %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i18" - %storemerge.in.i22 = phi i8 [ 0, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i18" ], [ %47, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i24" ] + %storemerge.in.i22 = phi i8 [ 0, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i18" ], [ %47, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i23" ] store i8 %storemerge.in.i22, ptr %.sroa.2.0..sroa_idx.i, align 8, !alias.scope !530, !noalias !558 call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %.sroa.0) call void @llvm.lifetime.start.p0(i64 192, ptr nonnull %12) @@ -1794,8 +1794,8 @@ define hidden noundef zeroext i1 @"_ZN4hkdf17Hkdf$LT$H$C$I$GT$17expand_multi_inf br i1 %54, label %._crit_edge63, label %"_ZN96_$LT$core..slice..iter..ChunksMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf2e1df9a069d68a9E.exit.i" .lr.ph: ; preds = %40, %"_ZN12block_buffer35BlockBuffer$LT$BlockSize$C$Kind$GT$13digest_blocks17hf7d36ed7b905af22E.llvm.4054924361102640483.exit33" - %55 = phi i8 [ %storemerge.i31, %"_ZN12block_buffer35BlockBuffer$LT$BlockSize$C$Kind$GT$13digest_blocks17hf7d36ed7b905af22E.llvm.4054924361102640483.exit33" ], [ %41, %40 ] - %.sroa.040.059 = phi ptr [ %56, %"_ZN12block_buffer35BlockBuffer$LT$BlockSize$C$Kind$GT$13digest_blocks17hf7d36ed7b905af22E.llvm.4054924361102640483.exit33" ], [ %1, %40 ] + %55 = phi i8 [ %storemerge.i31, %"_ZN12block_buffer35BlockBuffer$LT$BlockSize$C$Kind$GT$13digest_blocks17hf7d36ed7b905af22E.llvm.4054924361102640483.exit31" ], [ %41, %40 ] + %.sroa.040.059 = phi ptr [ %56, %"_ZN12block_buffer35BlockBuffer$LT$BlockSize$C$Kind$GT$13digest_blocks17hf7d36ed7b905af22E.llvm.4054924361102640483.exit31" ], [ %1, %40 ] %56 = getelementptr inbounds nuw i8, ptr %.sroa.040.059, i64 16 %57 = load ptr, ptr %.sroa.040.059, align 8, !nonnull !32, !align !263, !noundef !32 %58 = getelementptr inbounds nuw i8, ptr %.sroa.040.059, i64 8 @@ -1820,8 +1820,8 @@ define hidden noundef zeroext i1 @"_ZN4hkdf17Hkdf$LT$H$C$I$GT$17expand_multi_inf br label %"_ZN12block_buffer35BlockBuffer$LT$BlockSize$C$Kind$GT$13digest_blocks17hf7d36ed7b905af22E.llvm.4054924361102640483.exit33" 68: ; preds = %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i26", %64 - %.sroa.5.0.i27 = phi i64 [ %59, %64 ], [ %74, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i26" ] - %.sroa.0.0.i28 = phi ptr [ %57, %64 ], [ %73, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i26" ] + %.sroa.5.0.i27 = phi i64 [ %59, %64 ], [ %74, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i25" ] + %.sroa.0.0.i28 = phi ptr [ %57, %64 ], [ %73, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i25" ] %69 = and i64 %.sroa.5.0.i27, -64 %70 = and i64 %.sroa.5.0.i27, 63 %71 = getelementptr inbounds i8, ptr %.sroa.0.0.i28, i64 %69 @@ -1852,7 +1852,7 @@ define hidden noundef zeroext i1 @"_ZN4hkdf17Hkdf$LT$H$C$I$GT$17expand_multi_inf br label %"_ZN12block_buffer35BlockBuffer$LT$BlockSize$C$Kind$GT$13digest_blocks17hf7d36ed7b905af22E.llvm.4054924361102640483.exit33" "_ZN12block_buffer35BlockBuffer$LT$BlockSize$C$Kind$GT$13digest_blocks17hf7d36ed7b905af22E.llvm.4054924361102640483.exit33": ; preds = %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i32", %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit46.i29" - %storemerge.in.i30 = phi i64 [ %70, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit46.i29" ], [ %67, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i32" ] + %storemerge.in.i30 = phi i64 [ %70, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit46.i" ], [ %67, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i30" ] %storemerge.i31 = trunc nuw nsw i64 %storemerge.in.i30 to i8 store i8 %storemerge.i31, ptr %.sroa.2.0..sroa_idx.i, align 8, !alias.scope !570, !noalias !598 %82 = icmp eq ptr %56, %26 @@ -5749,9 +5749,9 @@ common.resume: ; preds = %25, %16 br label %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit46.i.i24" "_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit46.i.i24": ; preds = %"_ZN82_$LT$digest..core_api..wrapper..CoreWrapper$LT$T$GT$$u20$as$u20$digest..Update$GT$6update17hcd06cf2ea5cb7eceE.llvm.4054924361102640483.exit20", %"_ZN82_$LT$digest..core_api..wrapper..CoreWrapper$LT$T$GT$$u20$as$u20$digest..Update$GT$6update17hcd06cf2ea5cb7eceE.llvm.4054924361102640483.exit20.thread", %.thread31 - %.sink = phi ptr [ %29, %.thread31 ], [ %36, %"_ZN82_$LT$digest..core_api..wrapper..CoreWrapper$LT$T$GT$$u20$as$u20$digest..Update$GT$6update17hcd06cf2ea5cb7eceE.llvm.4054924361102640483.exit20.thread" ], [ %45, %"_ZN82_$LT$digest..core_api..wrapper..CoreWrapper$LT$T$GT$$u20$as$u20$digest..Update$GT$6update17hcd06cf2ea5cb7eceE.llvm.4054924361102640483.exit20" ] - %52 = phi ptr [ %50, %.thread31 ], [ %21, %"_ZN82_$LT$digest..core_api..wrapper..CoreWrapper$LT$T$GT$$u20$as$u20$digest..Update$GT$6update17hcd06cf2ea5cb7eceE.llvm.4054924361102640483.exit20.thread" ], [ %21, %"_ZN82_$LT$digest..core_api..wrapper..CoreWrapper$LT$T$GT$$u20$as$u20$digest..Update$GT$6update17hcd06cf2ea5cb7eceE.llvm.4054924361102640483.exit20" ] - %53 = phi i64 [ %48, %.thread31 ], [ 0, %"_ZN82_$LT$digest..core_api..wrapper..CoreWrapper$LT$T$GT$$u20$as$u20$digest..Update$GT$6update17hcd06cf2ea5cb7eceE.llvm.4054924361102640483.exit20.thread" ], [ 0, %"_ZN82_$LT$digest..core_api..wrapper..CoreWrapper$LT$T$GT$$u20$as$u20$digest..Update$GT$6update17hcd06cf2ea5cb7eceE.llvm.4054924361102640483.exit20" ] + %.sink = phi ptr [ %29, %.thread27 ], [ %36, %"_ZN82_$LT$digest..core_api..wrapper..CoreWrapper$LT$T$GT$$u20$as$u20$digest..Update$GT$6update17hcd06cf2ea5cb7eceE.llvm.4054924361102640483.exit17.thread" ], [ %45, %"_ZN82_$LT$digest..core_api..wrapper..CoreWrapper$LT$T$GT$$u20$as$u20$digest..Update$GT$6update17hcd06cf2ea5cb7eceE.llvm.4054924361102640483.exit17" ] + %52 = phi ptr [ %50, %.thread27 ], [ %21, %"_ZN82_$LT$digest..core_api..wrapper..CoreWrapper$LT$T$GT$$u20$as$u20$digest..Update$GT$6update17hcd06cf2ea5cb7eceE.llvm.4054924361102640483.exit17.thread" ], [ %21, %"_ZN82_$LT$digest..core_api..wrapper..CoreWrapper$LT$T$GT$$u20$as$u20$digest..Update$GT$6update17hcd06cf2ea5cb7eceE.llvm.4054924361102640483.exit17" ] + %53 = phi i64 [ %48, %.thread27 ], [ 0, %"_ZN82_$LT$digest..core_api..wrapper..CoreWrapper$LT$T$GT$$u20$as$u20$digest..Update$GT$6update17hcd06cf2ea5cb7eceE.llvm.4054924361102640483.exit17.thread" ], [ 0, %"_ZN82_$LT$digest..core_api..wrapper..CoreWrapper$LT$T$GT$$u20$as$u20$digest..Update$GT$6update17hcd06cf2ea5cb7eceE.llvm.4054924361102640483.exit17" ] %54 = load i64, ptr %.sroa.0.sroa.4.0..sroa_idx.i.i.i.i, align 8, !alias.scope !1701, !noalias !1689, !noundef !32 %55 = add i64 %54, 1 store i64 %55, ptr %.sroa.0.sroa.4.0..sroa_idx.i.i.i.i, align 8, !alias.scope !1701, !noalias !1689 diff --git a/bench/ockam-rs/optimized/z0rkq6s90lca7cm.ll b/bench/ockam-rs/optimized/z0rkq6s90lca7cm.ll index 0d3f2a1f82b..d2bcec7122a 100644 --- a/bench/ockam-rs/optimized/z0rkq6s90lca7cm.ll +++ b/bench/ockam-rs/optimized/z0rkq6s90lca7cm.ll @@ -3350,7 +3350,7 @@ define hidden void @"_ZN7rfc697917HmacDrbg$LT$D$GT$10fill_bytes17h95be2fef704090 br label %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit41" "_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit41": ; preds = %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i.i.i40", %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i.i.i34" - %storemerge.in.i.i.i38 = phi i8 [ 0, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i.i.i34" ], [ %43, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i.i.i40" ] + %storemerge.in.i.i.i38 = phi i8 [ 0, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i.i.i34" ], [ %43, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i.i.i39" ] store i8 %storemerge.in.i.i.i38, ptr %27, align 8, !alias.scope !958, !noalias !957 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10), !noalias !959 @@ -3377,7 +3377,7 @@ define hidden void @"_ZN7rfc697917HmacDrbg$LT$D$GT$10fill_bytes17h95be2fef704090 br label %54 50: ; preds = %50, %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit41" - %.sroa.0.0.idx27.i = phi i64 [ 0, %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit41" ], [ %.sroa.0.0.add.i, %50 ] + %.sroa.0.0.idx27.i = phi i64 [ 0, %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit40" ], [ %.sroa.0.0.add.i, %50 ] %.sroa.0.0.ptr.i = getelementptr inbounds nuw i8, ptr %8, i64 %.sroa.0.0.idx27.i %.sroa.0.0.add.i = add nuw nsw i64 %.sroa.0.0.idx27.i, 1 %51 = load i8, ptr %.sroa.0.0.ptr.i, align 1, !noalias !970, !noundef !4 @@ -3441,7 +3441,7 @@ define hidden void @"_ZN7rfc697917HmacDrbg$LT$D$GT$10fill_bytes17h95be2fef704090 br label %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit49" "_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit49": ; preds = %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i.i.i48", %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i.i.i42" - %storemerge.in.i.i.i46 = phi i64 [ %68, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i.i.i42" ], [ %65, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i.i.i48" ] + %storemerge.in.i.i.i46 = phi i64 [ %68, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i.i.i41" ], [ %65, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i.i.i46" ] %storemerge.i.i.i47 = trunc nuw nsw i64 %storemerge.in.i.i.i46 to i8 store i8 %storemerge.i.i.i47, ptr %27, align 8, !alias.scope !1002, !noalias !1005 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %.sroa.05) @@ -3476,7 +3476,7 @@ define hidden void @"_ZN7rfc697917HmacDrbg$LT$D$GT$10fill_bytes17h95be2fef704090 br label %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit" "_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit": ; preds = %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i.i.i56", %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i.i.i50" - %storemerge.in.i.i.i54 = phi i64 [ %79, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i.i.i50" ], [ %76, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i.i.i56" ] + %storemerge.in.i.i.i54 = phi i64 [ %79, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i.i.i48" ], [ %76, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i.i.i53" ] %storemerge.i.i.i55 = trunc nuw nsw i64 %storemerge.in.i.i.i54 to i8 store i8 %storemerge.i.i.i55, ptr %16, align 8, !alias.scope !872, !noalias !875 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %.sroa.02) @@ -3562,7 +3562,7 @@ define hidden void @"_ZN7rfc697917HmacDrbg$LT$D$GT$3new17h6d92fe29c86a4cd3E"(ptr br label %51 51: ; preds = %"_ZN76_$LT$hmac..simple..SimpleHmac$LT$D$GT$$u20$as$u20$crypto_common..KeyInit$GT$3new17hd9059917ab405a50E.exit", %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit59" - %52 = phi i1 [ false, %"_ZN76_$LT$hmac..simple..SimpleHmac$LT$D$GT$$u20$as$u20$crypto_common..KeyInit$GT$3new17hd9059917ab405a50E.exit" ], [ true, %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit59" ] + %52 = phi i1 [ false, %"_ZN76_$LT$hmac..simple..SimpleHmac$LT$D$GT$$u20$as$u20$crypto_common..KeyInit$GT$3new17hd9059917ab405a50E.exit" ], [ true, %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit57" ] %spec.select73 = zext i1 %52 to i8 call void @llvm.experimental.noalias.scope.decl(metadata !1103) %53 = load i8, ptr %35, align 8, !alias.scope !1106, !noalias !1111, !noundef !4 @@ -3636,7 +3636,7 @@ define hidden void @"_ZN7rfc697917HmacDrbg$LT$D$GT$3new17h6d92fe29c86a4cd3E"(ptr br i1 %47, label %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i.i.i34", label %.thread83 "_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i.i.i34": ; preds = %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit27.thread", %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit27" - %76 = phi i64 [ 0, %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit27.thread" ], [ %70, %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit27" ] + %76 = phi i64 [ 0, %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit26.thread" ], [ %70, %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit26" ] %77 = getelementptr inbounds nuw i8, ptr %34, i64 %76 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %77, ptr nonnull readonly align 1 %1, i64 %2, i1 false), !alias.scope !1175, !noalias !1181 %78 = add nuw nsw i64 %2, %76 @@ -3658,10 +3658,10 @@ define hidden void @"_ZN7rfc697917HmacDrbg$LT$D$GT$3new17h6d92fe29c86a4cd3E"(ptr br i1 %88, label %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit46.i.i.i31", label %.thread83 .thread83: ; preds = %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit27.thread", %79 - %89 = phi ptr [ %87, %79 ], [ %50, %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit27.thread" ] - %90 = phi i64 [ %86, %79 ], [ %49, %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit27.thread" ] - %.sroa.0.0.i.i.i3087 = phi ptr [ %80, %79 ], [ %1, %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit27.thread" ] - %.sroa.5.0.i.i.i2986 = phi i64 [ %81, %79 ], [ %2, %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit27.thread" ] + %89 = phi ptr [ %87, %79 ], [ %50, %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit26.thread" ] + %90 = phi i64 [ %86, %79 ], [ %49, %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit26.thread" ] + %.sroa.0.0.i.i.i3087 = phi ptr [ %80, %79 ], [ %1, %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit26.thread" ] + %.sroa.5.0.i.i.i2986 = phi i64 [ %81, %79 ], [ %2, %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit26.thread" ] %91 = lshr i64 %.sroa.5.0.i.i.i2986, 6 %92 = load i64, ptr %36, align 8, !alias.scope !1201, !noalias !1206, !noundef !4 %93 = add i64 %92, %91 @@ -3670,13 +3670,13 @@ define hidden void @"_ZN7rfc697917HmacDrbg$LT$D$GT$3new17h6d92fe29c86a4cd3E"(ptr br label %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit46.i.i.i31" "_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit46.i.i.i31": ; preds = %.thread83, %79 - %94 = phi ptr [ %89, %.thread83 ], [ %87, %79 ] - %95 = phi i64 [ %90, %.thread83 ], [ %86, %79 ] + %94 = phi ptr [ %89, %.thread81 ], [ %87, %79 ] + %95 = phi i64 [ %90, %.thread81 ], [ %86, %79 ] call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 dereferenceable(65) %34, ptr nonnull readonly align 1 %94, i64 %95, i1 false), !alias.scope !1212, !noalias !1216 br label %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit35" "_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit35": ; preds = %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i.i.i34", %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit46.i.i.i31" - %storemerge.in.i.i.i32 = phi i64 [ %95, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit46.i.i.i31" ], [ %78, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i.i.i34" ] + %storemerge.in.i.i.i32 = phi i64 [ %95, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit46.i.i.i" ], [ %78, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i.i.i32" ] %storemerge.i.i.i33 = trunc nuw nsw i64 %storemerge.in.i.i.i32 to i8 store i8 %storemerge.i.i.i33, ptr %35, align 8, !alias.scope !1218, !noalias !1200 call void @llvm.experimental.noalias.scope.decl(metadata !1219) @@ -3700,8 +3700,8 @@ define hidden void @"_ZN7rfc697917HmacDrbg$LT$D$GT$3new17h6d92fe29c86a4cd3E"(ptr br label %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit43" 103: ; preds = %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i.i.i36", %99 - %.sroa.5.0.i.i.i37 = phi i64 [ %4, %99 ], [ %109, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i.i.i36" ] - %.sroa.0.0.i.i.i38 = phi ptr [ %3, %99 ], [ %108, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i.i.i36" ] + %.sroa.5.0.i.i.i37 = phi i64 [ %4, %99 ], [ %109, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i.i.i34" ] + %.sroa.0.0.i.i.i38 = phi ptr [ %3, %99 ], [ %108, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i.i.i34" ] %104 = and i64 %.sroa.5.0.i.i.i37, -64 %105 = and i64 %.sroa.5.0.i.i.i37, 63 %106 = getelementptr inbounds i8, ptr %.sroa.0.0.i.i.i38, i64 %104 @@ -3732,7 +3732,7 @@ define hidden void @"_ZN7rfc697917HmacDrbg$LT$D$GT$3new17h6d92fe29c86a4cd3E"(ptr br label %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit43" "_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit43": ; preds = %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i.i.i42", %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit46.i.i.i39" - %storemerge.in.i.i.i40 = phi i64 [ %105, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit46.i.i.i39" ], [ %102, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i.i.i42" ] + %storemerge.in.i.i.i40 = phi i64 [ %105, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit46.i.i.i37" ], [ %102, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i.i.i40" ] %storemerge.i.i.i41 = trunc nuw nsw i64 %storemerge.in.i.i.i40 to i8 store i8 %storemerge.i.i.i41, ptr %35, align 8, !alias.scope !1273, !noalias !1255 call void @llvm.experimental.noalias.scope.decl(metadata !1274) @@ -3756,8 +3756,8 @@ define hidden void @"_ZN7rfc697917HmacDrbg$LT$D$GT$3new17h6d92fe29c86a4cd3E"(ptr br label %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit51" 124: ; preds = %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i.i.i44", %120 - %.sroa.5.0.i.i.i45 = phi i64 [ %6, %120 ], [ %130, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i.i.i44" ] - %.sroa.0.0.i.i.i46 = phi ptr [ %5, %120 ], [ %129, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i.i.i44" ] + %.sroa.5.0.i.i.i45 = phi i64 [ %6, %120 ], [ %130, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i.i.i42" ] + %.sroa.0.0.i.i.i46 = phi ptr [ %5, %120 ], [ %129, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i.i.i42" ] %125 = and i64 %.sroa.5.0.i.i.i45, -64 %126 = and i64 %.sroa.5.0.i.i.i45, 63 %127 = getelementptr inbounds i8, ptr %.sroa.0.0.i.i.i46, i64 %125 @@ -3788,7 +3788,7 @@ define hidden void @"_ZN7rfc697917HmacDrbg$LT$D$GT$3new17h6d92fe29c86a4cd3E"(ptr br label %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit51" "_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit51": ; preds = %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i.i.i50", %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit46.i.i.i47" - %storemerge.in.i.i.i48 = phi i64 [ %126, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit46.i.i.i47" ], [ %123, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i.i.i50" ] + %storemerge.in.i.i.i48 = phi i64 [ %126, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit46.i.i.i45" ], [ %123, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i.i.i48" ] %storemerge.i.i.i49 = trunc nuw nsw i64 %storemerge.in.i.i.i48 to i8 store i8 %storemerge.i.i.i49, ptr %35, align 8, !alias.scope !1328, !noalias !1310 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) @@ -3851,7 +3851,7 @@ define hidden void @"_ZN7rfc697917HmacDrbg$LT$D$GT$3new17h6d92fe29c86a4cd3E"(ptr br label %142 138: ; preds = %138, %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit51" - %.sroa.0.0.idx27.i = phi i64 [ 0, %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit51" ], [ %.sroa.0.0.add.i, %138 ] + %.sroa.0.0.idx27.i = phi i64 [ 0, %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit49" ], [ %.sroa.0.0.add.i, %138 ] %.sroa.0.0.ptr.i = getelementptr inbounds nuw i8, ptr %12, i64 %.sroa.0.0.idx27.i %.sroa.0.0.add.i = add nuw nsw i64 %.sroa.0.0.idx27.i, 1 %139 = load i8, ptr %.sroa.0.0.ptr.i, align 1, !noalias !1384, !noundef !4 @@ -3911,7 +3911,7 @@ define hidden void @"_ZN7rfc697917HmacDrbg$LT$D$GT$3new17h6d92fe29c86a4cd3E"(ptr br label %"_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit59" "_ZN44_$LT$D$u20$as$u20$digest..digest..Digest$GT$6update17h11512bd44f1962b5E.exit59": ; preds = %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i.i.i58", %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i.i.i52" - %storemerge.in.i.i.i56 = phi i64 [ %154, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i.i.i52" ], [ %151, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i.i.i58" ] + %storemerge.in.i.i.i56 = phi i64 [ %154, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit43.i.i.i50" ], [ %151, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h1a571acdc65b7e18E.exit.i.i.i56" ] %storemerge.i.i.i57 = trunc nuw nsw i64 %storemerge.in.i.i.i56 to i8 store i8 %storemerge.i.i.i57, ptr %35, align 8, !alias.scope !1408, !noalias !1413 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9), !noalias !1428 diff --git a/bench/postgres/optimized/localtime.ll b/bench/postgres/optimized/localtime.ll index 82960afb6c6..9d09f940a04 100644 --- a/bench/postgres/optimized/localtime.ll +++ b/bench/postgres/optimized/localtime.ll @@ -3495,14 +3495,14 @@ leaps_thru_end_of.exit: ; preds = %67, %75 br label %.preheader48 .preheader48: ; preds = %.lr.ph69.preheader, %.preheader50 - %.183.lcssa = phi i64 [ %.082.lcssa, %.preheader50 ], [ %134, %.lr.ph69.preheader ] - %.181.lcssa = phi i32 [ %.080.lcssa, %.preheader50 ], [ %137, %.lr.ph69.preheader ] + %.183.lcssa = phi i64 [ %.082.lcssa, %.preheader53 ], [ %134, %.lr.ph72.preheader ] + %.181.lcssa = phi i32 [ %.080.lcssa, %.preheader53 ], [ %137, %.lr.ph72.preheader ] %138 = icmp slt i32 %.181.lcssa, 0 br i1 %138, label %.lr.ph74, label %.preheader.preheader .lr.ph74: ; preds = %.preheader48, %150 - %.273 = phi i32 [ %154, %150 ], [ %.181.lcssa, %.preheader48 ] - %.21872 = phi i32 [ %141, %150 ], [ %.016, %.preheader48 ] + %.273 = phi i32 [ %154, %150 ], [ %.181.lcssa, %.preheader51 ] + %.21872 = phi i32 [ %141, %150 ], [ %.016, %.preheader51 ] %139 = icmp eq i32 %.21872, -2147483648 br i1 %139, label %.thread, label %140 @@ -3532,8 +3532,8 @@ leaps_thru_end_of.exit: ; preds = %67, %75 br i1 %155, label %.lr.ph74, label %.preheader.preheader, !llvm.loop !51 .preheader.preheader: ; preds = %150, %.preheader48 - %.420.ph = phi i32 [ %.016, %.preheader48 ], [ %141, %150 ] - %.3.ph = phi i32 [ %.181.lcssa, %.preheader48 ], [ %154, %150 ] + %.420.ph = phi i32 [ %.016, %.preheader51 ], [ %141, %150 ] + %.3.ph = phi i32 [ %.181.lcssa, %.preheader51 ], [ %154, %150 ] br label %.preheader .preheader: ; preds = %.preheader.preheader, %increment_overflow.exit106 @@ -3572,7 +3572,7 @@ leaps_thru_end_of.exit: ; preds = %67, %75 br label %.thread30 .thread30: ; preds = %.thread109, %.thread28, %166 - %170 = phi i64 [ %169, %166 ], [ 0, %.thread28 ], [ 1, %.thread109 ] + %170 = phi i64 [ %169, %166 ], [ 0, %.thread28 ], [ 1, %.thread112 ] %171 = icmp eq i32 %.420, 2147483647 br i1 %171, label %.thread, label %increment_overflow.exit106 @@ -3659,9 +3659,9 @@ leaps_thru_end_of.exit109: ; preds = %183, %191 br i1 %.not9877, label %._crit_edge, label %.lr.ph80 .lr.ph80: ; preds = %219, %.lr.ph80 - %223 = phi i32 [ %228, %.lr.ph80 ], [ %222, %219 ] - %.479 = phi i32 [ %224, %.lr.ph80 ], [ %.3, %219 ] - %storemerge9778 = phi i32 [ %225, %.lr.ph80 ], [ 0, %219 ] + %223 = phi i32 [ %228, %.lr.ph83 ], [ %222, %219 ] + %.479 = phi i32 [ %224, %.lr.ph83 ], [ %.3, %219 ] + %storemerge9778 = phi i32 [ %225, %.lr.ph83 ], [ 0, %219 ] %224 = sub i32 %.479, %223 %225 = add i32 %storemerge9778, 1 %226 = sext i32 %225 to i64 @@ -3671,8 +3671,8 @@ leaps_thru_end_of.exit109: ; preds = %183, %191 br i1 %.not98, label %._crit_edge, label %.lr.ph80, !llvm.loop !53 ._crit_edge: ; preds = %.lr.ph80, %219 - %storemerge97.lcssa = phi i32 [ 0, %219 ], [ %225, %.lr.ph80 ] - %.4.lcssa = phi i32 [ %.3, %219 ], [ %224, %.lr.ph80 ] + %storemerge97.lcssa = phi i32 [ 0, %219 ], [ %225, %.lr.ph83 ] + %.4.lcssa = phi i32 [ %.3, %219 ], [ %224, %.lr.ph83 ] store i32 %storemerge97.lcssa, ptr getelementptr inbounds nuw (i8, ptr @tm, i64 16), align 8 %229 = add nsw i32 %.4.lcssa, 1 store i32 %229, ptr getelementptr inbounds nuw (i8, ptr @tm, i64 12), align 4 diff --git a/bench/postgres/optimized/zic.ll b/bench/postgres/optimized/zic.ll index bbc7d889348..3e372930a5d 100644 --- a/bench/postgres/optimized/zic.ll +++ b/bench/postgres/optimized/zic.ll @@ -7734,8 +7734,8 @@ define internal fastcc i64 @rpytime(ptr noundef readonly captures(none) %0, i64 br i1 %.not105, label %.lr.ph133.split.us.split.us, label %.lr.ph133.split.us.split .lr.ph133.split.us.split.us: ; preds = %.lr.ph133.split.us, %oadd.exit110.us.us - %.285132.us.us = phi i64 [ %38, %oadd.exit110.us.us ], [ %.184.lcssa, %.lr.ph133.split.us ] - %.090131.us.us = phi i32 [ %39, %oadd.exit110.us.us ], [ 0, %.lr.ph133.split.us ] + %.285132.us.us = phi i64 [ %38, %oadd.exit110.us.us ], [ %.184.lcssa, %.lr.ph135.split.us ] + %.090131.us.us = phi i32 [ %39, %oadd.exit110.us.us ], [ 0, %.lr.ph135.split.us ] %27 = sext i32 %.090131.us.us to i64 %28 = getelementptr inbounds [2 x [12 x i32]], ptr @len_months, i64 0, i64 %25, i64 %27 %29 = load i32, ptr %28, align 4 @@ -7760,8 +7760,8 @@ oadd.exit110.us.us: ; preds = %35, %32 br i1 %.not99.us.us, label %._crit_edge, label %.lr.ph133.split.us.split.us, !llvm.loop !81 .lr.ph133.split.us.split: ; preds = %.lr.ph133.split.us, %oadd.exit110.us - %.285132.us = phi i64 [ %51, %oadd.exit110.us ], [ %.184.lcssa, %.lr.ph133.split.us ] - %.090131.us = phi i32 [ %52, %oadd.exit110.us ], [ 0, %.lr.ph133.split.us ] + %.285132.us = phi i64 [ %51, %oadd.exit110.us ], [ %.184.lcssa, %.lr.ph135.split.us ] + %.090131.us = phi i32 [ %52, %oadd.exit110.us ], [ 0, %.lr.ph135.split.us ] %40 = sext i32 %.090131.us to i64 %41 = getelementptr inbounds [2 x [12 x i32]], ptr @len_months, i64 0, i64 1, i64 %40 %42 = load i32, ptr %41, align 4 @@ -7866,8 +7866,8 @@ oadd.exit: ; preds = %86, %89 br i1 %.not, label %.preheader, label %.lr.ph, !llvm.loop !82 .lr.ph133.split: ; preds = %.lr.ph133, %oadd.exit110 - %.285132 = phi i64 [ %105, %oadd.exit110 ], [ %.184.lcssa, %.lr.ph133 ] - %.090131 = phi i32 [ %106, %oadd.exit110 ], [ 0, %.lr.ph133 ] + %.285132 = phi i64 [ %105, %oadd.exit110 ], [ %.184.lcssa, %.lr.ph135 ] + %.090131 = phi i32 [ %106, %oadd.exit110 ], [ 0, %.lr.ph135 ] %94 = sext i32 %.090131 to i64 %95 = getelementptr inbounds [2 x [12 x i32]], ptr @len_months, i64 0, i64 0, i64 %94 %96 = load i32, ptr %95, align 4 @@ -7991,9 +7991,9 @@ oadd.exit111: ; preds = %127, %130 br i1 %150, label %.lr.ph144.split.us, label %.lr.ph144.split .lr.ph144.split.us: ; preds = %.lr.ph144, %oadd.exit112.us - %.1142.us = phi i64 [ %spec.store.select.us, %oadd.exit112.us ], [ %.0, %.lr.ph144 ] - %.4141.us = phi i64 [ %152, %oadd.exit112.us ], [ %134, %.lr.ph144 ] - %.288140.us = phi i32 [ %155, %oadd.exit112.us ], [ %124, %.lr.ph144 ] + %.1142.us = phi i64 [ %spec.store.select.us, %oadd.exit112.us ], [ %.0, %.lr.ph146 ] + %.4141.us = phi i64 [ %152, %oadd.exit112.us ], [ %134, %.lr.ph146 ] + %.288140.us = phi i32 [ %155, %oadd.exit112.us ], [ %124, %.lr.ph146 ] %151 = icmp eq i64 %.4141.us, 9223372036854775807 br i1 %151, label %.split149.us, label %oadd.exit112.us @@ -8007,9 +8007,9 @@ oadd.exit112.us: ; preds = %.lr.ph144.split.us br i1 %.not101.us, label %._crit_edge145, label %.lr.ph144.split.us, !llvm.loop !83 .lr.ph144.split: ; preds = %.lr.ph144, %oadd.exit113 - %.1142 = phi i64 [ %spec.store.select2, %oadd.exit113 ], [ %.0, %.lr.ph144 ] - %.4141 = phi i64 [ %158, %oadd.exit113 ], [ %134, %.lr.ph144 ] - %.288140 = phi i32 [ %161, %oadd.exit113 ], [ %124, %.lr.ph144 ] + %.1142 = phi i64 [ %spec.store.select2, %oadd.exit113 ], [ %.0, %.lr.ph146 ] + %.4141 = phi i64 [ %158, %oadd.exit113 ], [ %134, %.lr.ph146 ] + %.288140 = phi i32 [ %161, %oadd.exit113 ], [ %124, %.lr.ph146 ] %156 = icmp eq i64 %.4141, -9223372036854775808 br i1 %156, label %157, label %oadd.exit113 diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index c5409e09ef4..71dd2822926 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/143618 export COMPTIME_MODE=0 # Please rebase manually