diff --git a/bench/assimp/optimized/zip.ll b/bench/assimp/optimized/zip.ll index 9693db70ad8..2858c5ddefd 100644 --- a/bench/assimp/optimized/zip.ll +++ b/bench/assimp/optimized/zip.ll @@ -12645,7 +12645,7 @@ mz_zip_set_error.exit: ; preds = %344 br label %mz_zip_set_error.exit287 .thread399: ; preds = %mz_zip_set_error.exit257, %mz_zip_set_error.exit259, %mz_zip_set_error.exit261, %.thread428, %mz_zip_set_error.exit263, %mz_zip_set_error.exit251, %mz_zip_set_error.exit265, %mz_zip_set_error.exit267, %mz_zip_set_error.exit269 - %.sroa.0.1396 = phi ptr [ %.sroa.0.1.ph, %mz_zip_set_error.exit251 ], [ %.sroa.0.1.ph, %mz_zip_set_error.exit265 ], [ %.sroa.0.1.ph, %mz_zip_set_error.exit267 ], [ null, %mz_zip_set_error.exit269 ], [ %.sroa.0.1.ph, %mz_zip_set_error.exit263 ], [ %.sroa.0.1.ph, %.thread428 ], [ %.sroa.0.1.ph, %mz_zip_set_error.exit261 ], [ %.sroa.0.1.ph, %mz_zip_set_error.exit259 ], [ %.sroa.0.1.ph, %mz_zip_set_error.exit257 ] + %.sroa.0.1396 = phi ptr [ %.sroa.0.1.ph, %mz_zip_set_error.exit251 ], [ %.sroa.0.1.ph, %mz_zip_set_error.exit265 ], [ %.sroa.0.1.ph, %mz_zip_set_error.exit267 ], [ null, %mz_zip_set_error.exit269 ], [ %.sroa.0.1.ph, %mz_zip_set_error.exit263 ], [ %.sroa.0.1.ph, %.thread426 ], [ %.sroa.0.1.ph, %mz_zip_set_error.exit261 ], [ %.sroa.0.1.ph, %mz_zip_set_error.exit259 ], [ %.sroa.0.1.ph, %mz_zip_set_error.exit257 ] %347 = load ptr, ptr %16, align 8 %348 = getelementptr inbounds nuw i8, ptr %0, i64 64 %349 = load ptr, ptr %348, align 8 @@ -12653,7 +12653,7 @@ mz_zip_set_error.exit: ; preds = %344 br label %mz_zip_set_error.exit287 mz_zip_set_error.exit287: ; preds = %21, %3, %335, %344, %342, %39, %mz_zip_get_cdh.exit, %.thread399, %mz_zip_set_error.exit, %mz_zip_set_error.exit271, %mz_zip_set_error.exit273, %mz_zip_set_error.exit275, %mz_zip_set_error.exit277, %mz_zip_set_error.exit279, %mz_zip_set_error.exit281, %mz_zip_set_error.exit283, %mz_zip_set_error.exit285 - %.0 = phi i32 [ 0, %mz_zip_set_error.exit285 ], [ 0, %mz_zip_set_error.exit283 ], [ 0, %mz_zip_set_error.exit281 ], [ 0, %mz_zip_set_error.exit277 ], [ 0, %mz_zip_set_error.exit275 ], [ 0, %mz_zip_set_error.exit273 ], [ 0, %mz_zip_set_error.exit271 ], [ 0, %.thread399 ], [ 0, %mz_zip_set_error.exit ], [ 0, %mz_zip_set_error.exit279 ], [ 0, %mz_zip_get_cdh.exit ], [ 1, %39 ], [ 0, %342 ], [ 1, %344 ], [ 1, %335 ], [ 0, %3 ], [ 0, %21 ] + %.0 = phi i32 [ 0, %mz_zip_set_error.exit285 ], [ 0, %mz_zip_set_error.exit283 ], [ 0, %mz_zip_set_error.exit281 ], [ 0, %mz_zip_set_error.exit277 ], [ 0, %mz_zip_set_error.exit275 ], [ 0, %mz_zip_set_error.exit273 ], [ 0, %mz_zip_set_error.exit271 ], [ 0, %.thread397 ], [ 0, %mz_zip_set_error.exit ], [ 0, %mz_zip_set_error.exit279 ], [ 0, %mz_zip_get_cdh.exit ], [ 1, %39 ], [ 0, %342 ], [ 1, %344 ], [ 1, %335 ], [ 0, %3 ], [ 0, %21 ] call void @llvm.lifetime.end.p0(ptr nonnull %7) call void @llvm.lifetime.end.p0(ptr nonnull %6) call void @llvm.lifetime.end.p0(ptr nonnull %5) diff --git a/bench/ceres/optimized/block_sparse_matrix.ll b/bench/ceres/optimized/block_sparse_matrix.ll index 49264133c32..e39f561c449 100644 --- a/bench/ceres/optimized/block_sparse_matrix.ll +++ b/bench/ceres/optimized/block_sparse_matrix.ll @@ -3884,9 +3884,9 @@ _ZN5Eigen9DenseBaseINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideIL ret void 41: ; preds = %.lr.ph75, %._crit_edge - %42 = phi ptr [ %35, %.lr.ph75 ], [ %56, %._crit_edge ] - %indvars.iv = phi i64 [ 0, %.lr.ph75 ], [ %indvars.iv.next, %._crit_edge ] - %43 = phi ptr [ %39, %.lr.ph75 ], [ %60, %._crit_edge ] + %42 = phi ptr [ %35, %.lr.ph76 ], [ %56, %._crit_edge ] + %indvars.iv = phi i64 [ 0, %.lr.ph76 ], [ %indvars.iv.next, %._crit_edge ] + %43 = phi ptr [ %39, %.lr.ph76 ], [ %60, %._crit_edge ] %44 = getelementptr inbounds nuw %"struct.ceres::internal::CompressedList", ptr %43, i64 %indvars.iv %45 = getelementptr inbounds nuw i8, ptr %44, i64 8 %46 = load ptr, ptr %45, align 8, !tbaa !44 diff --git a/bench/cmake/optimized/cmComputeLinkDepends.ll b/bench/cmake/optimized/cmComputeLinkDepends.ll index 90805dcef74..b78ffca38f7 100644 --- a/bench/cmake/optimized/cmComputeLinkDepends.ll +++ b/bench/cmake/optimized/cmComputeLinkDepends.ll @@ -8599,11 +8599,11 @@ define dso_local void @_ZN20cmComputeLinkDepends20CleanConstraintGraphEv(ptr nou %40 = load ptr, ptr %32, align 8, !tbaa !369 %41 = getelementptr inbounds nuw i8, ptr %40, i64 16 %42 = load ptr, ptr %41, align 8 - tail call void %42(ptr noundef nonnull align 8 dereferenceable(16) %32) #30 + tail call void %43(ptr noundef nonnull align 8 dereferenceable(16) %32) #30 %43 = load ptr, ptr %32, align 8, !tbaa !369 %44 = getelementptr inbounds nuw i8, ptr %43, i64 24 %45 = load ptr, ptr %44, align 8 - tail call void %45(ptr noundef nonnull align 8 dereferenceable(16) %32) #30 + tail call void %46(ptr noundef nonnull align 8 dereferenceable(16) %32) #30 br label %_ZN11cmGraphEdgeaSEOS_.exit.i 46: ; preds = %33 @@ -8661,11 +8661,11 @@ _ZN11cmGraphEdgeaSEOS_.exit.i: ; preds = %53, %_ZN9__gnu_cxx2 %64 = load ptr, ptr %.pre.i, align 8, !tbaa !369 %65 = getelementptr inbounds nuw i8, ptr %64, i64 16 %66 = load ptr, ptr %65, align 8 - tail call void %66(ptr noundef nonnull align 8 dereferenceable(16) %.pre.i) #30 + tail call void %67(ptr noundef nonnull align 8 dereferenceable(16) %.pre.i) #30 %67 = load ptr, ptr %.pre.i, align 8, !tbaa !369 %68 = getelementptr inbounds nuw i8, ptr %67, i64 24 %69 = load ptr, ptr %68, align 8 - tail call void %69(ptr noundef nonnull align 8 dereferenceable(16) %.pre.i) #30 + tail call void %70(ptr noundef nonnull align 8 dereferenceable(16) %.pre.i) #30 br label %_ZSt25__unguarded_linear_insertIN9__gnu_cxx17__normal_iteratorIP11cmGraphEdgeSt6vectorIS2_SaIS2_EEEENS0_5__ops14_Val_less_iterEEvT_T0_.exit 70: ; preds = %57 @@ -8683,7 +8683,7 @@ _ZN11cmGraphEdgeaSEOS_.exit.i: ; preds = %53, %_ZN9__gnu_cxx2 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i3.i _ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i3.i: ; preds = %74, %72 - %.0.i.i.i.i.i.i.i.i.i4.i = phi i32 [ %61, %72 ], [ %75, %74 ] + %.0.i.i.i.i.i.i.i.i.i4.i = phi i32 [ %61, %73 ], [ %75, %75 ] %76 = icmp eq i32 %.0.i.i.i.i.i.i.i.i.i4.i, 1 br i1 %76, label %77, label %_ZSt25__unguarded_linear_insertIN9__gnu_cxx17__normal_iteratorIP11cmGraphEdgeSt6vectorIS2_SaIS2_EEEENS0_5__ops14_Val_less_iterEEvT_T0_.exit, !prof !372 @@ -8707,7 +8707,7 @@ _ZSt4sortIN9__gnu_cxx17__normal_iteratorIP11cmGraphEdgeSt6vectorIS2_SaIS2_EEEEEv br i1 %82, label %_ZSt6uniqueIN9__gnu_cxx17__normal_iteratorIP11cmGraphEdgeSt6vectorIS2_SaIS2_EEEEET_S8_S8_.exit, label %.preheader.i.i.i .preheader.i.i.i: ; preds = %_ZSt4sortIN9__gnu_cxx17__normal_iteratorIP11cmGraphEdgeSt6vectorIS2_SaIS2_EEEEEvT_S8_.exit, %84 - %.sroa.09.0.i.i.i = phi ptr [ %83, %84 ], [ %80, %_ZSt4sortIN9__gnu_cxx17__normal_iteratorIP11cmGraphEdgeSt6vectorIS2_SaIS2_EEEEEvT_S8_.exit ] + %.sroa.09.0.i.i.i = phi ptr [ %83, %85 ], [ %80, %_ZSt4sortIN9__gnu_cxx17__normal_iteratorIP11cmGraphEdgeSt6vectorIS2_SaIS2_EEEEEvT_S8_.exit ] %83 = getelementptr inbounds nuw i8, ptr %.sroa.09.0.i.i.i, i64 32 %.not.i.i.i = icmp eq ptr %83, %81 br i1 %.not.i.i.i, label %_ZSt6uniqueIN9__gnu_cxx17__normal_iteratorIP11cmGraphEdgeSt6vectorIS2_SaIS2_EEEEET_S8_S8_.exit, label %84 @@ -8762,11 +8762,11 @@ _ZSt15__adjacent_findIN9__gnu_cxx17__normal_iteratorIP11cmGraphEdgeSt6vectorIS2_ %109 = load ptr, ptr %101, align 8, !tbaa !369 %110 = getelementptr inbounds nuw i8, ptr %109, i64 16 %111 = load ptr, ptr %110, align 8 - tail call void %111(ptr noundef nonnull align 8 dereferenceable(16) %101) #30 + tail call void %112(ptr noundef nonnull align 8 dereferenceable(16) %101) #30 %112 = load ptr, ptr %101, align 8, !tbaa !369 %113 = getelementptr inbounds nuw i8, ptr %112, i64 24 %114 = load ptr, ptr %113, align 8 - tail call void %114(ptr noundef nonnull align 8 dereferenceable(16) %101) #30 + tail call void %115(ptr noundef nonnull align 8 dereferenceable(16) %101) #30 br label %_ZN11cmGraphEdgeaSEOS_.exit.i.i 115: ; preds = %102 @@ -8784,7 +8784,7 @@ _ZSt15__adjacent_findIN9__gnu_cxx17__normal_iteratorIP11cmGraphEdgeSt6vectorIS2_ br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i.i _ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i.i: ; preds = %119, %117 - %.0.i.i.i.i.i.i.i.i.i.i.i = phi i32 [ %106, %117 ], [ %120, %119 ] + %.0.i.i.i.i.i.i.i.i.i.i.i = phi i32 [ %106, %118 ], [ %120, %120 ] %121 = icmp eq i32 %.0.i.i.i.i.i.i.i.i.i.i.i, 1 br i1 %121, label %122, label %_ZN11cmGraphEdgeaSEOS_.exit.i.i, !prof !372 @@ -8793,7 +8793,7 @@ _ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i.i: ; preds br label %_ZN11cmGraphEdgeaSEOS_.exit.i.i _ZN11cmGraphEdgeaSEOS_.exit.i.i: ; preds = %122, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i.i, %107, %93, %.lr.ph.i.i - %.sroa.0.1.i.i = phi ptr [ %.sroa.0.020.i.i, %.lr.ph.i.i ], [ %94, %93 ], [ %94, %107 ], [ %94, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i.i ], [ %94, %122 ] + %.sroa.0.1.i.i = phi ptr [ %.sroa.0.020.i.i, %.lr.ph.i.i ], [ %94, %94 ], [ %94, %108 ], [ %94, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i.i ], [ %94, %123 ] %123 = getelementptr inbounds nuw i8, ptr %89, i64 32 %.not.i.i13 = icmp eq ptr %123, %81 br i1 %.not.i.i13, label %._crit_edge.i.i.loopexit, label %.lr.ph.i.i, !llvm.loop !687 @@ -36411,11 +36411,11 @@ define linkonce_odr dso_local void @_ZSt25__unguarded_linear_insertIN9__gnu_cxx1 %24 = load ptr, ptr %16, align 8, !tbaa !369 %25 = getelementptr inbounds nuw i8, ptr %24, i64 16 %26 = load ptr, ptr %25, align 8 - tail call void %26(ptr noundef nonnull align 8 dereferenceable(16) %16) #30 + tail call void %27(ptr noundef nonnull align 8 dereferenceable(16) %16) #30 %27 = load ptr, ptr %16, align 8, !tbaa !369 %28 = getelementptr inbounds nuw i8, ptr %27, i64 24 %29 = load ptr, ptr %28, align 8 - tail call void %29(ptr noundef nonnull align 8 dereferenceable(16) %16) #30 + tail call void %30(ptr noundef nonnull align 8 dereferenceable(16) %16) #30 br label %_ZN11cmGraphEdgeaSEOS_.exit 30: ; preds = %17 @@ -36474,11 +36474,11 @@ _ZN11cmGraphEdgeaSEOS_.exit: ; preds = %.lr.ph, %22, %_ZN9_ %49 = load ptr, ptr %.pre, align 8, !tbaa !369 %50 = getelementptr inbounds nuw i8, ptr %49, i64 16 %51 = load ptr, ptr %50, align 8 - tail call void %51(ptr noundef nonnull align 8 dereferenceable(16) %.pre) #30 + tail call void %52(ptr noundef nonnull align 8 dereferenceable(16) %.pre) #30 %52 = load ptr, ptr %.pre, align 8, !tbaa !369 %53 = getelementptr inbounds nuw i8, ptr %52, i64 24 %54 = load ptr, ptr %53, align 8 - tail call void %54(ptr noundef nonnull align 8 dereferenceable(16) %.pre) #30 + tail call void %55(ptr noundef nonnull align 8 dereferenceable(16) %.pre) #30 br label %_ZN11cmGraphEdgeD2Ev.exit 55: ; preds = %42 @@ -36496,7 +36496,7 @@ _ZN11cmGraphEdgeaSEOS_.exit: ; preds = %.lr.ph, %22, %_ZN9_ br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i3 _ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i3: ; preds = %59, %57 - %.0.i.i.i.i.i.i.i.i.i4 = phi i32 [ %46, %57 ], [ %60, %59 ] + %.0.i.i.i.i.i.i.i.i.i4 = phi i32 [ %46, %58 ], [ %60, %59 ] %61 = icmp eq i32 %.0.i.i.i.i.i.i.i.i.i4, 1 br i1 %61, label %62, label %_ZN11cmGraphEdgeD2Ev.exit, !prof !372 diff --git a/bench/faiss/optimized/Clustering.ll b/bench/faiss/optimized/Clustering.ll index de04d7c2c94..857bd7a2d49 100644 --- a/bench/faiss/optimized/Clustering.ll +++ b/bench/faiss/optimized/Clustering.ll @@ -528,7 +528,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit248: ; preds = %78 br label %_ZNSt10unique_ptrIA_hSt14default_deleteIS0_EED2Ev.exit379 83: ; preds = %._crit_edge783, %52 - %84 = phi i64 [ %.pre, %._crit_edge783 ], [ %55, %52 ] + %84 = phi i64 [ %.pre, %._crit_edge784 ], [ %55, %52 ] %85 = getelementptr inbounds nuw i8, ptr %4, i64 8 %86 = load i32, ptr %85, align 8, !tbaa !58 %87 = sext i32 %86 to i64 @@ -612,7 +612,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit252: ; preds = %10 br i1 %exitcond.not, label %.loopexit497, label %.lr.ph, !llvm.loop !61 .lr.ph: ; preds = %.preheader496, %121 - %.0181642 = phi i64 [ %122, %121 ], [ 0, %.preheader496 ] + %.0181642 = phi i64 [ %122, %121 ], [ 0, %.preheader497 ] %123 = getelementptr inbounds nuw float, ptr %2, i64 %.0181642 %124 = load float, ptr %123, align 4, !tbaa !47 %125 = tail call float @llvm.fabs.f32(float %124) @@ -687,7 +687,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit256: ; preds = %14 br label %154 154: ; preds = %147, %.loopexit497.thread - %155 = phi i64 [ %153, %.loopexit497.thread ], [ %151, %147 ] + %155 = phi i64 [ %153, %.loopexit498.thread ], [ %151, %147 ] %156 = load i64, ptr %28, align 8, !tbaa !37 %157 = getelementptr inbounds nuw i8, ptr %0, i64 8 %158 = getelementptr inbounds nuw i8, ptr %0, i64 28 @@ -1165,7 +1165,7 @@ _ZNSt6vectorIfSaIfEEC2EmRKS0_.exit: ; preds = %_ZSt6fill_nIPfmfET_ br label %397 397: ; preds = %395, %.lr.ph661.split.us - %398 = phi i64 [ %.pre792, %395 ], [ %355, %.lr.ph661.split.us ] + %398 = phi i64 [ %.pre792, %395 ], [ %355, %.lr.ph662.split.us ] %399 = load i64, ptr %28, align 8, !tbaa !37 %400 = mul i64 %399, %398 %401 = load ptr, ptr %288, align 8, !tbaa !46 @@ -1193,7 +1193,7 @@ _ZNSt6vectorIfSaIfEEC2EmRKS0_.exit: ; preds = %_ZSt6fill_nIPfmfET_ 413: ; preds = %397 %414 = sub nuw i64 %400, %406 invoke void @_ZNSt6vectorIfSaIfEE17_M_default_appendEm(ptr noundef nonnull align 8 dereferenceable(24) %287, i64 noundef %414) - to label %.split665.us unwind label %.split.us + to label %.split666.us unwind label %.split.us .split.us: ; preds = %413 %415 = landingpad { ptr, i32 } @@ -1210,12 +1210,12 @@ _ZNSt6vectorIfSaIfEEC2EmRKS0_.exit: ; preds = %_ZSt6fill_nIPfmfET_ br label %_ZNSt6vectorIfSaIfEED2Ev.exit363 .lr.ph661.split: ; preds = %.lr.ph661, %_ZNSt6vectorIiSaIiEED2Ev.exit - %.pre26.i = phi ptr [ %881, %_ZNSt6vectorIiSaIiEED2Ev.exit ], [ null, %.lr.ph661 ] - %419 = phi ptr [ %882, %_ZNSt6vectorIiSaIiEED2Ev.exit ], [ null, %.lr.ph661 ] - %indvars.iv780 = phi i64 [ %indvars.iv.next781, %_ZNSt6vectorIiSaIiEED2Ev.exit ], [ 0, %.lr.ph661 ] - %420 = phi i32 [ %887, %_ZNSt6vectorIiSaIiEED2Ev.exit ], [ %370, %.lr.ph661 ] - %.0179659 = phi double [ %.1180.lcssa, %_ZNSt6vectorIiSaIiEED2Ev.exit ], [ 0.000000e+00, %.lr.ph661 ] - %.0183658 = phi float [ %.1184, %_ZNSt6vectorIiSaIiEED2Ev.exit ], [ %286, %.lr.ph661 ] + %.pre26.i = phi ptr [ %881, %_ZNSt6vectorIiSaIiEED2Ev.exit ], [ null, %.lr.ph662 ] + %419 = phi ptr [ %882, %_ZNSt6vectorIiSaIiEED2Ev.exit ], [ null, %.lr.ph662 ] + %indvars.iv780 = phi i64 [ %indvars.iv.next781, %_ZNSt6vectorIiSaIiEED2Ev.exit ], [ 0, %.lr.ph662 ] + %420 = phi i32 [ %887, %_ZNSt6vectorIiSaIiEED2Ev.exit ], [ %370, %.lr.ph662 ] + %.0179659 = phi double [ %.1180.lcssa, %_ZNSt6vectorIiSaIiEED2Ev.exit ], [ 0.000000e+00, %.lr.ph662 ] + %.0183658 = phi float [ %.1184, %_ZNSt6vectorIiSaIiEED2Ev.exit ], [ %286, %.lr.ph662 ] %421 = load i8, ptr %180, align 8, !tbaa !66, !range !43, !noundef !44 %422 = trunc nuw i8 %421 to i1 %423 = icmp sgt i32 %420, 1 @@ -1319,7 +1319,7 @@ _ZNSt6vectorIiSaIiEEC2EmRKS0_.exit: ; preds = %_ZSt6fill_nIPimiET_ br label %_ZNSt6vectorIfSaIfEED2Ev.exit326 .lr.ph646: ; preds = %455, %.lr.ph646 - %indvars.iv773 = phi i64 [ %indvars.iv.next774, %.lr.ph646 ], [ %375, %455 ] + %indvars.iv773 = phi i64 [ %indvars.iv.next774, %.lr.ph647 ], [ %375, %455 ] %458 = load i64, ptr %88, align 8, !tbaa !29 %459 = mul i64 %458, %indvars.iv773 %460 = load ptr, ptr %287, align 8, !tbaa !13 @@ -1367,7 +1367,7 @@ _ZNSt6vectorIfSaIfEED2Ev.exit326.thread: ; preds = %.lr.ph644 br label %890 .loopexit484: ; preds = %482, %.lr.ph646, %469, %455 - %486 = phi i64 [ %453, %469 ], [ %453, %455 ], [ %467, %.lr.ph646 ], [ %483, %482 ] + %486 = phi i64 [ %453, %469 ], [ %453, %455 ], [ %467, %.lr.ph647 ], [ %483, %482 ] %487 = load i8, ptr %376, align 1, !tbaa !42, !range !43, !noundef !44 %488 = trunc nuw i8 %487 to i1 br i1 %488, label %489, label %.noexc277 @@ -1430,7 +1430,7 @@ _ZN5faiss10Clustering22post_process_centroidsEv.exit: ; preds = %.lr.ph.i, %.pre %514 = getelementptr inbounds nuw i8, ptr %513, i64 16 %515 = load ptr, ptr %514, align 8 invoke void %515(ptr noundef nonnull align 8 dereferenceable(36) %4, i64 noundef %.pre787, ptr noundef %.pre789) - to label %._crit_edge785 unwind label %456 + to label %._crit_edge786 unwind label %456 ._crit_edge785: ; preds = %512 %.pre786 = load i64, ptr %28, align 8, !tbaa !37 @@ -1438,13 +1438,13 @@ _ZN5faiss10Clustering22post_process_centroidsEv.exit: ; preds = %.lr.ph.i, %.pre br label %516 516: ; preds = %._crit_edge785, %509 - %517 = phi ptr [ %.pre788, %._crit_edge785 ], [ %.pre789, %509 ] - %518 = phi i64 [ %.pre786, %._crit_edge785 ], [ %.pre787, %509 ] + %517 = phi ptr [ %.pre788, %._crit_edge786 ], [ %.pre789, %509 ] + %518 = phi i64 [ %.pre786, %._crit_edge786 ], [ %.pre787, %509 ] %519 = load ptr, ptr %4, align 8, !tbaa !4 %520 = getelementptr inbounds nuw i8, ptr %519, i64 24 %521 = load ptr, ptr %520, align 8 invoke void %521(ptr noundef nonnull align 8 dereferenceable(36) %4, i64 noundef %518, ptr noundef %517) - to label %.preheader474 unwind label %456 + to label %.preheader475 unwind label %456 .preheader474: ; preds = %516 %522 = load i32, ptr %157, align 8, !tbaa !17 @@ -1452,15 +1452,15 @@ _ZN5faiss10Clustering22post_process_centroidsEv.exit: ; preds = %.lr.ph.i, %.pre br i1 %523, label %.lr.ph654, label %._crit_edge655 ._crit_edge655: ; preds = %_ZNSt6vectorIfSaIfEED2Ev.exit, %.preheader474 - %.1180.lcssa = phi double [ %.0179659, %.preheader474 ], [ %565, %_ZNSt6vectorIfSaIfEED2Ev.exit ] - %.0174.lcssa = phi float [ 0.000000e+00, %.preheader474 ], [ %.1175.lcssa, %_ZNSt6vectorIfSaIfEED2Ev.exit ] + %.1180.lcssa = phi double [ %.0179659, %.preheader475 ], [ %565, %_ZNSt6vectorIfSaIfEED2Ev.exit ] + %.0174.lcssa = phi float [ 0.000000e+00, %.preheader475 ], [ %.1175.lcssa, %_ZNSt6vectorIfSaIfEED2Ev.exit ] %524 = load i8, ptr %180, align 8, !tbaa !66, !range !43, !noundef !44 %525 = trunc nuw i8 %524 to i1 br i1 %525, label %791, label %792 .lr.ph654: ; preds = %.preheader474, %_ZNSt6vectorIfSaIfEED2Ev.exit - %.0173653 = phi i32 [ %785, %_ZNSt6vectorIfSaIfEED2Ev.exit ], [ 0, %.preheader474 ] - %.1180652 = phi double [ %565, %_ZNSt6vectorIfSaIfEED2Ev.exit ], [ %.0179659, %.preheader474 ] + %.0173653 = phi i32 [ %785, %_ZNSt6vectorIfSaIfEED2Ev.exit ], [ 0, %.preheader475 ] + %.1180652 = phi double [ %565, %_ZNSt6vectorIfSaIfEED2Ev.exit ], [ %.0179659, %.preheader475 ] %526 = invoke noundef double @_ZN5faiss12getmillisecsEv() to label %527 unwind label %532 @@ -1472,7 +1472,7 @@ _ZN5faiss10Clustering22post_process_centroidsEv.exit: ; preds = %.lr.ph.i, %.pre %530 = getelementptr inbounds nuw i8, ptr %529, i64 40 %531 = load ptr, ptr %530, align 8 invoke void %531(ptr noundef nonnull align 8 dereferenceable(36) %4, i64 noundef %.0, ptr noundef %.0182, i64 noundef 1, ptr noundef nonnull %279, ptr noundef nonnull %274, ptr noundef null) - to label %.loopexit473 unwind label %532 + to label %.loopexit474 unwind label %532 532: ; preds = %561, %.loopexit473, %528, %.lr.ph654 %533 = landingpad { ptr, i32 } @@ -1499,8 +1499,8 @@ _ZN5faiss10Clustering22post_process_centroidsEv.exit: ; preds = %.lr.ph.i, %.pre br label %_ZNSt6vectorIfSaIfEED2Ev.exit326 .lr.ph648: ; preds = %.lr.ph648.preheader, %555 - %541 = phi i64 [ %556, %555 ], [ %.pre790, %.lr.ph648.preheader ] - %.0147647 = phi i64 [ %557, %555 ], [ 0, %.lr.ph648.preheader ] + %541 = phi i64 [ %556, %555 ], [ %.pre790, %.lr.ph649.preheader ] + %.0147647 = phi i64 [ %557, %555 ], [ 0, %.lr.ph649.preheader ] %542 = add i64 %541, %.0147647 %spec.select = call i64 @llvm.umin.i64(i64 %542, i64 %.0) %543 = sub nsw i64 %spec.select, %.0147647 @@ -1546,7 +1546,7 @@ _ZN5faiss10Clustering22post_process_centroidsEv.exit: ; preds = %.lr.ph.i, %.pre br i1 %380, label %.lr.ph651, label %._crit_edge ._crit_edge: ; preds = %.lr.ph651, %563 - %.1175.lcssa = phi float [ 0.000000e+00, %563 ], [ %578, %.lr.ph651 ] + %.1175.lcssa = phi float [ 0.000000e+00, %563 ], [ %578, %.lr.ph652 ] %566 = load i64, ptr %28, align 8, !tbaa !37 %567 = icmp ugt i64 %566, 2305843009213693951 br i1 %567, label %568, label %_ZNSt6vectorIfSaIfEE17_S_check_init_lenEmRKS0_.exit.i278 @@ -1581,8 +1581,8 @@ _ZSt6fill_nIPfmfET_S1_T0_RKT1_.exit.loopexit.i.i.i.i.i280: ; preds = %.noexc285 br label %_ZNSt6vectorIfSaIfEEC2EmRKS0_.exit286 .lr.ph651: ; preds = %563, %.lr.ph651 - %indvars.iv776 = phi i64 [ %indvars.iv.next777, %.lr.ph651 ], [ 0, %563 ] - %.1175649 = phi float [ %578, %.lr.ph651 ], [ 0.000000e+00, %563 ] + %indvars.iv776 = phi i64 [ %indvars.iv.next777, %.lr.ph652 ], [ 0, %563 ] + %.1175649 = phi float [ %578, %.lr.ph652 ], [ 0.000000e+00, %563 ] %576 = getelementptr inbounds nuw float, ptr %279, i64 %indvars.iv776 %577 = load float, ptr %576, align 4, !tbaa !47 %578 = fadd float %.1175649, %577 @@ -2138,7 +2138,7 @@ _ZNSt6vectorIfSaIfEED2Ev.exit: ; preds = %780, %781 br i1 %787, label %.lr.ph654, label %._crit_edge655, !llvm.loop !88 .loopexit.split-lp: ; preds = %.loopexit479, %.loopexit.split-lp480, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %740 - %.pn214.pn = phi { ptr, i32 } [ %741, %740 ], [ %lpad.loopexit.split-lp470, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ], [ %lpad.loopexit481, %.loopexit479 ], [ %lpad.loopexit.split-lp482, %.loopexit.split-lp480 ] + %.pn214.pn = phi { ptr, i32 } [ %741, %740 ], [ %lpad.loopexit.split-lp470, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ], [ %lpad.loopexit482, %.loopexit480 ], [ %lpad.loopexit.split-lp483, %.loopexit.split-lp481 ] %.not.i.i.i325 = icmp eq ptr %.sroa.0395.2, null br i1 %.not.i.i.i325, label %_ZNSt6vectorIfSaIfEED2Ev.exit326, label %.loopexit.split-lp.thread @@ -2410,7 +2410,7 @@ _ZNSt6vectorIiSaIiEED2Ev.exit: ; preds = %880, %883 br i1 %889, label %.lr.ph661.split, label %._crit_edge662, !llvm.loop !90 _ZNSt6vectorIfSaIfEED2Ev.exit326: ; preds = %.loopexit491, %.loopexit.split-lp492, %.loopexit475, %.loopexit.split-lp476, %.loopexit.split-lp, %.loopexit.split-lp.thread, %539, %559, %532, %456 - %.pn222 = phi { ptr, i32 } [ %457, %456 ], [ %533, %532 ], [ %560, %559 ], [ %540, %539 ], [ %.pn214.pn, %.loopexit.split-lp ], [ %.pn214.pn893, %.loopexit.split-lp.thread ], [ %lpad.loopexit477, %.loopexit475 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp476 ], [ %lpad.loopexit493, %.loopexit491 ], [ %lpad.loopexit.split-lp494, %.loopexit.split-lp492 ] + %.pn222 = phi { ptr, i32 } [ %457, %456 ], [ %533, %532 ], [ %560, %559 ], [ %540, %539 ], [ %.pn214.pn, %.loopexit.split-lp ], [ %.pn214.pn893, %.loopexit.split-lp.thread ], [ %lpad.loopexit477, %.loopexit476 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp477 ], [ %lpad.loopexit494, %.loopexit492 ], [ %lpad.loopexit.split-lp495, %.loopexit.split-lp493 ] %.not.i.i.i349 = icmp eq ptr %.sroa.0405.1, null br i1 %.not.i.i.i349, label %_ZNSt6vectorIiSaIiEED2Ev.exit350, label %890 @@ -2445,7 +2445,7 @@ _ZNSt6vectorIfSaIfEED2Ev.exit326: ; preds = %.loopexit491, %.loo %907 = getelementptr inbounds nuw i8, ptr %906, i64 24 %908 = load ptr, ptr %907, align 8 invoke void %908(ptr noundef nonnull align 8 dereferenceable(36) %4, i64 noundef %904, ptr noundef %905) - to label %._crit_edge662.thread unwind label %909 + to label %._crit_edge663.thread unwind label %909 909: ; preds = %903, %899, %896, %894 %910 = landingpad { ptr, i32 } @@ -2518,7 +2518,7 @@ _ZNSt10unique_ptrIA_hSt14default_deleteIS0_EED2Ev.exit: ; preds = %_ZNSt10unique ret void _ZNSt6vectorIiSaIiEED2Ev.exit350: ; preds = %.loopexit486, %.loopexit.split-lp487, %.split, %.split.us, %_ZNSt6vectorIfSaIfEED2Ev.exit326, %890, %909 - %.pn222.pn.pn.pn = phi { ptr, i32 } [ %910, %909 ], [ %.pn222, %_ZNSt6vectorIfSaIfEED2Ev.exit326 ], [ %.pn222451, %890 ], [ %427, %.split ], [ %415, %.split.us ], [ %lpad.loopexit488, %.loopexit486 ], [ %lpad.loopexit.split-lp489, %.loopexit.split-lp487 ] + %.pn222.pn.pn.pn = phi { ptr, i32 } [ %910, %909 ], [ %.pn222, %_ZNSt6vectorIfSaIfEED2Ev.exit326 ], [ %.pn222451, %890 ], [ %427, %.split ], [ %415, %.split.us ], [ %lpad.loopexit488, %.loopexit487 ], [ %lpad.loopexit.split-lp489, %.loopexit.split-lp488 ] %.not.i.i.i362 = icmp eq ptr %.sroa.0416.0, null br i1 %.not.i.i.i362, label %_ZNSt6vectorIfSaIfEED2Ev.exit363, label %930 diff --git a/bench/g2o/optimized/edge_project_xyz.ll b/bench/g2o/optimized/edge_project_xyz.ll index 4bd9889a3cc..ce9d8929e00 100644 --- a/bench/g2o/optimized/edge_project_xyz.ll +++ b/bench/g2o/optimized/edge_project_xyz.ll @@ -666,15 +666,22 @@ define void @_ZN3g2o17EdgeSE3ProjectXYZ14linearizeOplusEv(ptr noundef nonnull re %68 = fmul double %.sroa.7.0.copyload, %59 %69 = fadd double %66, %68 %70 = fsub double 1.000000e+00, %69 + %.sroa.0.sroa.0.0.vec.insert = insertelement <1 x double> poison, double %70, i64 0 %71 = fsub double %64, %62 + %.sroa.0.sroa.8.24.vec.insert = insertelement <1 x double> poison, double %71, i64 0 %72 = fadd double %65, %61 + %.sroa.0.sroa.14.48.vec.insert = insertelement <1 x double> poison, double %72, i64 0 %73 = fadd double %64, %62 + %.sroa.0.sroa.4.8.vec.insert = insertelement <1 x double> poison, double %73, i64 0 %74 = fadd double %63, %68 %75 = fsub double 1.000000e+00, %74 + %.sroa.0.sroa.10.32.vec.insert = insertelement <1 x double> poison, double %75, i64 0 %76 = fsub double %67, %60 %.sroa.0.sroa.16.56.vec.insert = insertelement <2 x double> poison, double %76, i64 0 %77 = fsub double %65, %61 + %.sroa.0.sroa.6.16.vec.insert = insertelement <1 x double> poison, double %77, i64 0 %78 = fadd double %67, %60 + %.sroa.0.sroa.12.40.vec.insert = insertelement <1 x double> poison, double %78, i64 0 %79 = fadd double %63, %66 %80 = fsub double 1.000000e+00, %79 %81 = getelementptr inbounds nuw i8, ptr %0, i64 312 @@ -690,51 +697,44 @@ define void @_ZN3g2o17EdgeSE3ProjectXYZ14linearizeOplusEv(ptr noundef nonnull re %85 = shufflevector <2 x double> %.sroa.2.i.i.i.i.i.i.i.i.i.i.0..sroa.2.i.i.i.i.i.i.i.i.i.i.0..sroa.2.i.i.i.i.i.i.i.i.i.i.0..sroa.2.i.i.i.i.i.i.i.i.i.0..sroa.2.i.i.i.i.i.i.i.i.i.0..sroa.2.i.i.i.i.i.i.i.i.0..sroa.2.i.i.i.i.i.i.i.i.0..sroa.2.i.i.i.i.i.i.i.0..sroa.2.i.i.i.i.i.i.i.0..sroa.2.i.i.i.i.i.i.0..sroa.2.i.i.i.i.i.i.0..sroa.2.i.i.i.i.i.0..sroa.2.i.i.i.i.i.0..sroa.2.i.i.i.i.0..sroa.2.i.i.i.i.0..sroa.2.i.i.i.0..sroa.2.i.i.i.0..sroa.2.i.i.0..sroa.2.i.i.0..sroa.2.i.0..sroa.2.i.0..sroa.2.0..sroa.2.0..sroa.2.16..i.i.i.i.i.i.i.i.i.i, <2 x double> poison, <2 x i32> zeroinitializer %86 = load <2 x double>, ptr %84, align 1, !tbaa !115 %87 = fmul <2 x double> %85, %86 - %88 = bitcast double %70 to <1 x double> - %89 = shufflevector <1 x double> %88, <1 x double> poison, <2 x i32> zeroinitializer - %90 = fmul <2 x double> %87, %89 - %91 = getelementptr inbounds nuw i8, ptr %84, i64 16 - %92 = load <2 x double>, ptr %91, align 1, !tbaa !115 - %93 = fmul <2 x double> %85, %92 - %94 = bitcast double %73 to <1 x double> - %95 = shufflevector <1 x double> %94, <1 x double> poison, <2 x i32> zeroinitializer - %96 = fmul <2 x double> %93, %95 - %97 = fadd <2 x double> %90, %96 - %98 = getelementptr inbounds nuw i8, ptr %84, i64 32 - %99 = load <2 x double>, ptr %98, align 1, !tbaa !115 - %100 = fmul <2 x double> %85, %99 - %101 = bitcast double %77 to <1 x double> - %102 = shufflevector <1 x double> %101, <1 x double> poison, <2 x i32> zeroinitializer - %103 = fmul <2 x double> %100, %102 - %104 = fadd <2 x double> %97, %103 - %105 = bitcast double %71 to <1 x double> - %106 = shufflevector <1 x double> %105, <1 x double> poison, <2 x i32> zeroinitializer - %107 = fmul <2 x double> %87, %106 - %108 = bitcast double %75 to <1 x double> - %109 = shufflevector <1 x double> %108, <1 x double> poison, <2 x i32> zeroinitializer - %110 = fmul <2 x double> %93, %109 - %111 = fadd <2 x double> %107, %110 - %112 = bitcast double %78 to <1 x double> - %113 = shufflevector <1 x double> %112, <1 x double> poison, <2 x i32> zeroinitializer - %114 = fmul <2 x double> %100, %113 - %115 = fadd <2 x double> %111, %114 - %116 = bitcast double %72 to <1 x double> - %117 = shufflevector <1 x double> %116, <1 x double> poison, <2 x i32> zeroinitializer - %118 = fmul <2 x double> %87, %117 - %119 = shufflevector <2 x double> %.sroa.0.sroa.16.56.vec.insert, <2 x double> poison, <2 x i32> zeroinitializer - %120 = fmul <2 x double> %93, %119 - %121 = fadd <2 x double> %118, %120 - %122 = insertelement <2 x double> poison, double %80, i64 0 - %123 = shufflevector <2 x double> %122, <2 x double> poison, <2 x i32> zeroinitializer - %124 = fmul <2 x double> %100, %123 - %125 = fadd <2 x double> %124, %121 + %88 = shufflevector <1 x double> %.sroa.0.sroa.0.0.vec.insert, <1 x double> poison, <2 x i32> zeroinitializer + %89 = fmul <2 x double> %87, %88 + %90 = getelementptr inbounds nuw i8, ptr %84, i64 16 + %91 = load <2 x double>, ptr %90, align 1, !tbaa !115 + %92 = fmul <2 x double> %85, %91 + %93 = shufflevector <1 x double> %.sroa.0.sroa.4.8.vec.insert, <1 x double> poison, <2 x i32> zeroinitializer + %94 = fmul <2 x double> %92, %93 + %95 = fadd <2 x double> %89, %94 + %96 = getelementptr inbounds nuw i8, ptr %84, i64 32 + %97 = load <2 x double>, ptr %96, align 1, !tbaa !115 + %98 = fmul <2 x double> %85, %97 + %99 = shufflevector <1 x double> %.sroa.0.sroa.6.16.vec.insert, <1 x double> poison, <2 x i32> zeroinitializer + %100 = fmul <2 x double> %98, %99 + %101 = fadd <2 x double> %95, %100 + %102 = shufflevector <1 x double> %.sroa.0.sroa.8.24.vec.insert, <1 x double> poison, <2 x i32> zeroinitializer + %103 = fmul <2 x double> %87, %102 + %104 = shufflevector <1 x double> %.sroa.0.sroa.10.32.vec.insert, <1 x double> poison, <2 x i32> zeroinitializer + %105 = fmul <2 x double> %92, %104 + %106 = fadd <2 x double> %103, %105 + %107 = shufflevector <1 x double> %.sroa.0.sroa.12.40.vec.insert, <1 x double> poison, <2 x i32> zeroinitializer + %108 = fmul <2 x double> %98, %107 + %109 = fadd <2 x double> %106, %108 + %110 = shufflevector <1 x double> %.sroa.0.sroa.14.48.vec.insert, <1 x double> poison, <2 x i32> zeroinitializer + %111 = fmul <2 x double> %87, %110 + %112 = shufflevector <2 x double> %.sroa.0.sroa.16.56.vec.insert, <2 x double> poison, <2 x i32> zeroinitializer + %113 = fmul <2 x double> %92, %112 + %114 = fadd <2 x double> %111, %113 + %115 = insertelement <2 x double> poison, double %80, i64 0 + %116 = shufflevector <2 x double> %115, <2 x double> poison, <2 x i32> zeroinitializer + %117 = fmul <2 x double> %98, %116 + %118 = fadd <2 x double> %117, %114 call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.2.i.i.i.i.i.i.i.i.i.i) %126 = load ptr, ptr %82, align 8, !tbaa !161 - store <2 x double> %104, ptr %126, align 16, !tbaa !115 + store <2 x double> %101, ptr %126, align 16, !tbaa !115 %127 = getelementptr i8, ptr %126, i64 16 - store <2 x double> %115, ptr %127, align 16, !tbaa !115 + store <2 x double> %109, ptr %127, align 16, !tbaa !115 %128 = getelementptr i8, ptr %126, i64 32 - store <2 x double> %125, ptr %128, align 16, !tbaa !115 + store <2 x double> %118, ptr %128, align 16, !tbaa !115 %129 = fmul double %.sroa.037.0.vec.extract, %.sroa.037.8.vec.extract %130 = fdiv double %129, %40 %131 = load double, ptr %41, align 8, !tbaa !51 @@ -748,54 +748,54 @@ define void @_ZN3g2o17EdgeSE3ProjectXYZ14linearizeOplusEv(ptr noundef nonnull re %137 = fdiv double %136, %40 %138 = fadd double %137, 1.000000e+00 %139 = fneg double %138 + %133 = load double, ptr %41, align 8, !tbaa !51 + %134 = fmul double %133, %132 + %135 = getelementptr i8, ptr %128, i64 16 + store double %134, ptr %135, align 8, !tbaa !111 + %136 = fdiv double %.sroa.037.8.vec.extract, %39 + %137 = load double, ptr %41, align 8, !tbaa !51 + %138 = fmul double %136, %137 + %139 = getelementptr i8, ptr %128, i64 32 + store double %138, ptr %139, align 8, !tbaa !111 %140 = load double, ptr %41, align 8, !tbaa !51 - %141 = fmul double %140, %139 - %142 = getelementptr i8, ptr %135, i64 16 + %141 = fmul double %56, %140 + %142 = getelementptr i8, ptr %135, i64 48 store double %141, ptr %142, align 8, !tbaa !111 - %143 = fdiv double %.sroa.037.8.vec.extract, %39 - %144 = load double, ptr %41, align 8, !tbaa !51 - %145 = fmul double %143, %144 - %146 = getelementptr i8, ptr %135, i64 32 - store double %145, ptr %146, align 8, !tbaa !111 - %147 = load double, ptr %41, align 8, !tbaa !51 - %148 = fmul double %56, %147 - %149 = getelementptr i8, ptr %135, i64 48 - store double %148, ptr %149, align 8, !tbaa !111 - %150 = getelementptr i8, ptr %135, i64 64 - store double 0.000000e+00, ptr %150, align 8, !tbaa !111 - %151 = fdiv double %.sroa.037.0.vec.extract, %40 - %152 = load double, ptr %41, align 8, !tbaa !51 - %153 = fmul double %151, %152 - %154 = getelementptr i8, ptr %135, i64 80 - store double %153, ptr %154, align 8, !tbaa !111 - %155 = fmul double %.sroa.037.8.vec.extract, %.sroa.037.8.vec.extract - %156 = fdiv double %155, %40 - %157 = fadd double %156, 1.000000e+00 - %158 = load double, ptr %49, align 16, !tbaa !95 - %159 = fmul double %157, %158 - %160 = getelementptr i8, ptr %135, i64 8 - store double %159, ptr %160, align 8, !tbaa !111 - %161 = fmul double %.sroa.037.8.vec.extract, %44 - %162 = fdiv double %161, %40 + %143 = getelementptr i8, ptr %135, i64 64 + store double 0.000000e+00, ptr %143, align 8, !tbaa !111 + %144 = fdiv double %.sroa.037.0.vec.extract, %40 + %145 = load double, ptr %41, align 8, !tbaa !51 + %146 = fmul double %144, %145 + %147 = getelementptr i8, ptr %135, i64 80 + store double %146, ptr %147, align 8, !tbaa !111 + %148 = fmul double %.sroa.037.8.vec.extract, %.sroa.037.8.vec.extract + %149 = fdiv double %148, %40 + %150 = fadd double %149, 1.000000e+00 + %151 = load double, ptr %49, align 16, !tbaa !95 + %152 = fmul double %150, %151 + %153 = getelementptr i8, ptr %135, i64 8 + store double %152, ptr %153, align 8, !tbaa !111 + %154 = fmul double %.sroa.037.8.vec.extract, %44 + %155 = fdiv double %154, %40 + %156 = load double, ptr %49, align 16, !tbaa !95 + %157 = fmul double %155, %156 + %158 = getelementptr i8, ptr %128, i64 24 + store double %157, ptr %158, align 8, !tbaa !111 + %159 = load double, ptr %49, align 16, !tbaa !95 + %160 = fmul double %45, %159 + %161 = getelementptr i8, ptr %128, i64 40 + store double %160, ptr %161, align 8, !tbaa !111 + %162 = getelementptr i8, ptr %128, i64 56 + store double 0.000000e+00, ptr %162, align 8, !tbaa !111 %163 = load double, ptr %49, align 16, !tbaa !95 - %164 = fmul double %162, %163 - %165 = getelementptr i8, ptr %135, i64 24 + %164 = fmul double %56, %163 + %165 = getelementptr i8, ptr %135, i64 72 store double %164, ptr %165, align 8, !tbaa !111 - %166 = load double, ptr %49, align 16, !tbaa !95 - %167 = fmul double %45, %166 - %168 = getelementptr i8, ptr %135, i64 40 - store double %167, ptr %168, align 8, !tbaa !111 - %169 = getelementptr i8, ptr %135, i64 56 - store double 0.000000e+00, ptr %169, align 8, !tbaa !111 - %170 = load double, ptr %49, align 16, !tbaa !95 - %171 = fmul double %56, %170 - %172 = getelementptr i8, ptr %135, i64 72 - store double %171, ptr %172, align 8, !tbaa !111 - %173 = fdiv double %.sroa.037.8.vec.extract, %40 - %174 = load double, ptr %49, align 16, !tbaa !95 - %175 = fmul double %173, %174 - %176 = getelementptr i8, ptr %135, i64 88 - store double %175, ptr %176, align 8, !tbaa !111 + %166 = fdiv double %.sroa.037.8.vec.extract, %40 + %167 = load double, ptr %49, align 16, !tbaa !95 + %168 = fmul double %166, %167 + %169 = getelementptr i8, ptr %128, i64 88 + store double %168, ptr %169, align 8, !tbaa !111 call void @llvm.lifetime.end.p0(ptr nonnull %2) ret void } diff --git a/bench/g2o/optimized/optimizable_graph.ll b/bench/g2o/optimized/optimizable_graph.ll index eca4333a62c..90e54e38e9c 100644 --- a/bench/g2o/optimized/optimizable_graph.ll +++ b/bench/g2o/optimized/optimizable_graph.ll @@ -16029,8 +16029,8 @@ define linkonce_odr void @_ZN5Eigen8internal32triangular_matrix_vector_productIl ret void 15: ; preds = %.lr.ph146, %104 - %indvars.iv = phi i64 [ %.sroa.speculated133, %.lr.ph146 ], [ %indvars.iv.next, %104 ] - %.0144 = phi i64 [ 0, %.lr.ph146 ], [ %105, %104 ] + %indvars.iv = phi i64 [ %.sroa.speculated133, %.lr.ph143 ], [ %indvars.iv.next, %104 ] + %.0144 = phi i64 [ 0, %.lr.ph143 ], [ %105, %104 ] %16 = call i64 @llvm.smax.i64(i64 %indvars.iv, i64 1) %17 = call i64 @llvm.umin.i64(i64 %16, i64 8) %18 = sub nsw i64 %.sroa.speculated133, %.0144 diff --git a/bench/g2o/optimized/optimization_algorithm_dogleg.ll b/bench/g2o/optimized/optimization_algorithm_dogleg.ll index 67d3ef7a912..9f4865fd389 100644 --- a/bench/g2o/optimized/optimization_algorithm_dogleg.ll +++ b/bench/g2o/optimized/optimization_algorithm_dogleg.ll @@ -1006,7 +1006,7 @@ _ZN5Eigen9DenseBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEE7setZeroEv.exit: ; pred br label %184 184: ; preds = %177, %._crit_edge.i.i.i.i.i, %.loopexit513 - %.072.i.i.i.i.i = phi <2 x double> [ %152, %.loopexit513 ], [ %183, %177 ], [ %161, %._crit_edge.i.i.i.i.i ] + %.072.i.i.i.i.i = phi <2 x double> [ %152, %.loopexit511 ], [ %183, %177 ], [ %161, %._crit_edge.i.i.i.i.i ] %shift601 = shufflevector <2 x double> %.072.i.i.i.i.i, <2 x double> poison, <2 x i32> %foldExtExtBinop602 = fadd <2 x double> %.072.i.i.i.i.i, %shift601 %185 = extractelement <2 x double> %foldExtExtBinop602, i64 0 @@ -1360,7 +1360,7 @@ _ZNK5Eigen10MatrixBaseINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEEE4normEv.exit: ; pred br label %.thread .thread: ; preds = %.lr.ph85.i.i.i.i.i103, %367, %359, %.loopexit512 - %.0.i.i.i101 = phi double [ 0.000000e+00, %.loopexit512 ], [ %369, %367 ], [ %360, %359 ], [ %365, %.lr.ph85.i.i.i.i.i103 ] + %.0.i.i.i101 = phi double [ 0.000000e+00, %.loopexit510 ], [ %369, %367 ], [ %360, %359 ], [ %365, %.lr.ph85.i.i.i.i.i103 ] %.scalar.i102 = tail call noundef double @llvm.sqrt.f64(double %.0.i.i.i101) br label %371 @@ -1668,7 +1668,7 @@ _ZN5Eigen6MatrixIdLin1ELi1ELi0ELin1ELi1EEaSINS_13CwiseBinaryOpINS_8internal20sca br label %526 526: ; preds = %521, %._crit_edge.i.i.i.i170, %.loopexit511 - %.072.i.i.i.i164 = phi <2 x double> [ %502, %.loopexit511 ], [ %525, %521 ], [ %509, %._crit_edge.i.i.i.i170 ] + %.072.i.i.i.i164 = phi <2 x double> [ %502, %.loopexit509 ], [ %525, %521 ], [ %509, %._crit_edge.i.i.i.i170 ] %shift613 = shufflevector <2 x double> %.072.i.i.i.i164, <2 x double> poison, <2 x i32> %foldExtExtBinop614 = fadd <2 x double> %.072.i.i.i.i164, %shift613 %527 = extractelement <2 x double> %foldExtExtBinop614, i64 0 diff --git a/bench/g2o/optimized/slam2d_linear.ll b/bench/g2o/optimized/slam2d_linear.ll index a262ef73f09..476e9c810ab 100644 --- a/bench/g2o/optimized/slam2d_linear.ll +++ b/bench/g2o/optimized/slam2d_linear.ll @@ -11242,8 +11242,8 @@ define linkonce_odr void @_ZNK5Eigen22SimplicialCholeskyBaseINS_13SimplicialLLTI br label %36 36: ; preds = %36, %.lr.ph97.i - %37 = phi double [ %.pre.i, %.lr.ph97.i ], [ %39, %36 ] - %.03496.i = phi i64 [ %.03492.i, %.lr.ph97.i ], [ %.034.i, %36 ] + %37 = phi double [ %.pre.i, %.lr.ph93.i ], [ %39, %36 ] + %.03496.i = phi i64 [ %.03492.i, %.lr.ph93.i ], [ %.034.i, %36 ] %38 = getelementptr inbounds double, ptr %13, i64 %.03496.i %39 = load double, ptr %38, align 8, !tbaa !173 store double %37, ptr %38, align 8, !tbaa !173 @@ -11335,7 +11335,7 @@ _ZN5Eigen8internal31unaligned_dense_assignment_loopILb0EE3runINS0_31generic_dens %78 = icmp slt i64 %77, %62 br i1 %78, label %.lr.ph.i.i.i.i.i.i.i, label %._crit_edge.i.i.i.i.i.i.i, !llvm.loop !406 -_ZN5Eigen8internal26permutation_matrix_productINS_3MapIKNS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELi1ELb0ENS_10DenseShapeEE3runINS2_IS4_Li0ES7_EENS_17PermutationMatrixILin1ELin1EiEEEEvRT_RKT0_RKS8_.exit: ; preds = %.lr.ph.i17.i.i.i.i.i.i.i, %41, %._crit_edge.i.i.i.i.i.i.i, %.critedge.i, %.preheader83.i +_ZN5Eigen8internal26permutation_matrix_productINS_3MapIKNS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELi1ELb0ENS_10DenseShapeEE3runINS2_IS4_Li0ES7_EENS_17PermutationMatrixILin1ELin1EiEEEEvRT_RKT0_RKS8_.exit: ; preds = %.lr.ph.i17.i.i.i.i.i.i.i, %41, %.critedge.i, %.preheader83.i, %._crit_edge.i.i.i.i.i.i.i %79 = getelementptr inbounds nuw i8, ptr %0, i64 16 %80 = getelementptr inbounds nuw i8, ptr %0, i64 48 %81 = load ptr, ptr %80, align 8, !tbaa !150 @@ -11795,8 +11795,8 @@ _ZNK5Eigen20SparseCompressedBaseINS_12SparseMatrixIdLi0EiEEE8nonZerosEv.exit58.t br label %306 306: ; preds = %306, %.lr.ph97.i77 - %307 = phi double [ %.pre.i78, %.lr.ph97.i77 ], [ %309, %306 ] - %.03496.i79 = phi i64 [ %.03492.i75, %.lr.ph97.i77 ], [ %.034.i82, %306 ] + %307 = phi double [ %.pre.i78, %.lr.ph93.i77 ], [ %309, %306 ] + %.03496.i79 = phi i64 [ %.03492.i75, %.lr.ph93.i77 ], [ %.034.i82, %306 ] %308 = getelementptr inbounds double, ptr %.sroa.4.8.copyload, i64 %.03496.i79 %309 = load double, ptr %308, align 8, !tbaa !173 store double %307, ptr %308, align 8, !tbaa !173 diff --git a/bench/hdf5/optimized/sio_perf.ll b/bench/hdf5/optimized/sio_perf.ll index 494a11df3af..d390eed4a70 100644 --- a/bench/hdf5/optimized/sio_perf.ll +++ b/bench/hdf5/optimized/sio_perf.ll @@ -1724,8 +1724,8 @@ print_indent.exit89: ; preds = %.lr.ph.i87 %.sink127 = phi ptr [ %.064, %103 ], [ %14, %78 ] %.sink126 = phi ptr [ %.063, %103 ], [ %15, %78 ] %.sink = phi ptr [ %.0, %103 ], [ %16, %78 ] + call void @free(ptr noundef %.sink128) #19 call void @free(ptr noundef %.sink127) #19 - call void @free(ptr noundef %.sink126) #19 call void @free(ptr noundef %.sink) #19 call void @llvm.lifetime.end.p0(ptr nonnull %4) ret void diff --git a/bench/libigl/optimized/eigs.ll b/bench/libigl/optimized/eigs.ll index ac71f816435..039780ec2b9 100644 --- a/bench/libigl/optimized/eigs.ll +++ b/bench/libigl/optimized/eigs.ll @@ -26293,7 +26293,7 @@ define linkonce_odr dso_local noundef zeroext i1 @_ZNK5Eigen8SparseLUINS_12Spars br i1 %12, label %.split, label %.preheader91.i.us .preheader91.i.us: ; preds = %3 - br i1 %13, label %.split98.us, label %.lr.ph.i.us + br i1 %13, label %.split96.us, label %.lr.ph.i.us .lr.ph.i.us: ; preds = %.preheader91.i.us, %.lr.ph.i.us %.094.i.us = phi i64 [ %23, %.lr.ph.i.us ], [ 0, %.preheader91.i.us ] @@ -26306,21 +26306,21 @@ define linkonce_odr dso_local noundef zeroext i1 @_ZNK5Eigen8SparseLUINS_12Spars store double %22, ptr %21, align 8, !tbaa !4 %23 = add nuw nsw i64 %.094.i.us, 1 %exitcond.not.i.us = icmp eq i64 %23, %.fr150 - br i1 %exitcond.not.i.us, label %.split98.us, label %.lr.ph.i.us, !llvm.loop !792 + br i1 %exitcond.not.i.us, label %.split96.us, label %.lr.ph.i.us, !llvm.loop !792 .split: ; preds = %3 %24 = icmp sgt i64 %.fr, 0 %25 = icmp eq ptr %9, %7 - br i1 %24, label %.split.split.us.preheader, label %.split.split.split + br i1 %24, label %.split.split.us.preheader, label %.split.split .split.split.us.preheader: ; preds = %.split br i1 %25, label %33, label %.preheader91.i.us110 .preheader91.i.us110: ; preds = %.split.split.us.preheader - br i1 %13, label %.split98.us, label %.lr.ph.i.us111 + br i1 %13, label %.split96.us, label %.lr.ph.i.us111 .lr.ph.i.us111: ; preds = %.preheader91.i.us110, %.lr.ph.i.us111 - %.094.i.us112 = phi i64 [ %32, %.lr.ph.i.us111 ], [ 0, %.preheader91.i.us110 ] + %.094.i.us112 = phi i64 [ %32, %.lr.ph.i.us99 ], [ 0, %.preheader91.i.us98 ] %26 = getelementptr inbounds nuw double, ptr %7, i64 %.094.i.us112 %27 = getelementptr inbounds nuw i32, ptr %14, i64 %.094.i.us112 %28 = load i32, ptr %27, align 4, !tbaa !107 @@ -26330,7 +26330,7 @@ define linkonce_odr dso_local noundef zeroext i1 @_ZNK5Eigen8SparseLUINS_12Spars store double %31, ptr %30, align 8, !tbaa !4 %32 = add nuw nsw i64 %.094.i.us112, 1 %exitcond.not.i.us113 = icmp eq i64 %32, %.fr150 - br i1 %exitcond.not.i.us113, label %.split98.us, label %.lr.ph.i.us111, !llvm.loop !792 + br i1 %exitcond.not.i.us113, label %.split96.us, label %.lr.ph.i.us111, !llvm.loop !792 33: ; preds = %.split.split.us.preheader %calloc.i.us = tail call ptr @calloc(i64 1, i64 %.fr) @@ -26389,14 +26389,31 @@ define linkonce_odr dso_local noundef zeroext i1 @_ZNK5Eigen8SparseLUINS_12Spars .critedge.i.us: ; preds = %.loopexit.i.us, %48 tail call void @free(ptr noundef %calloc.i.us) #36 - br label %.split98.us + br label %.split96.us -.split98.us: ; preds = %.lr.ph.i.us, %.lr.ph.i, %.lr.ph.i.us111, %.preheader91.i.us110, %.critedge.i.us, %.split.split.split, %.preheader91.i.us - %51 = getelementptr inbounds nuw i8, ptr %0, i64 120 - tail call void @_ZNK5Eigen8internal22MappedSuperNodalMatrixIdiE12solveInPlaceINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEEEEvRNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(72) %51, ptr noundef nonnull align 1 dereferenceable(1) %2) +.split98.us: ; preds = %.split + %or.cond = select i1 %13, i1 true, i1 %25 + br i1 %or.cond, label %.split96.us, label %.preheader91.i.us106 + +.preheader91.i.us106: ; preds = %.split.split, %.preheader91.i.us106 + %.094.i.us108 = phi i64 [ %57, %.preheader91.i.us106 ], [ 0, %.split.split ] + %51 = getelementptr inbounds nuw double, ptr %7, i64 %.094.i.us108 + %52 = getelementptr inbounds nuw i32, ptr %14, i64 %.094.i.us108 + %53 = load i32, ptr %52, align 4, !tbaa !107 + %54 = sext i32 %53 to i64 + %55 = getelementptr inbounds double, ptr %9, i64 %54 + %56 = load double, ptr %51, align 8, !tbaa !4 + store double %56, ptr %55, align 8, !tbaa !4 + %57 = add nuw nsw i64 %.094.i.us108, 1 + %exitcond.not.i.us109 = icmp eq i64 %57, %.fr126 + br i1 %exitcond.not.i.us109, label %.split96.us, label %.preheader91.i.us106, !llvm.loop !792 + +.split96.us: ; preds = %.lr.ph.i.us, %.preheader91.i.us106, %.lr.ph.i.us99, %.split.split, %.preheader91.i.us98, %.critedge.i.us, %.preheader91.i.us + %58 = getelementptr inbounds nuw i8, ptr %0, i64 120 + tail call void @_ZNK5Eigen8internal22MappedSuperNodalMatrixIdiE12solveInPlaceINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEEEEvRNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(72) %58, ptr noundef nonnull align 1 dereferenceable(1) %2) call void @llvm.lifetime.start.p0(ptr nonnull %4) %52 = getelementptr inbounds nuw i8, ptr %0, i64 192 - store ptr %51, ptr %4, align 8 + store ptr %58, ptr %4, align 8 %53 = getelementptr inbounds nuw i8, ptr %4, i64 8 store ptr %52, ptr %53, align 8 call void @_ZNK5Eigen25SparseLUMatrixUReturnTypeINS_8internal22MappedSuperNodalMatrixIdiEENS_18MappedSparseMatrixIdLi0EiEEE12solveInPlaceINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEEEEvRNS_10MatrixBaseIT_EE(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 1 dereferenceable(1) %2) @@ -26406,9 +26423,9 @@ define linkonce_odr dso_local noundef zeroext i1 @_ZNK5Eigen8SparseLUINS_12Spars %56 = getelementptr inbounds nuw i8, ptr %0, i64 264 %57 = load i64, ptr %56, align 8, !tbaa !105 %58 = icmp sgt i64 %57, 0 - br i1 %58, label %.split140.us.split, label %.split142 + br i1 %58, label %.split140.us.split, label %.split122 -.split140.us.split: ; preds = %.split98.us +.split140.us.split: ; preds = %.split96.us %calloc.i24.us = call ptr @calloc(i64 1, i64 %57) %59 = icmp eq ptr %calloc.i24.us, null br i1 %59, label %.noexc.i.i31, label %.preheader.lr.ph.i25.us @@ -26435,8 +26452,8 @@ define linkonce_odr dso_local noundef zeroext i1 @_ZNK5Eigen8SparseLUINS_12Spars br i1 %.not42100.i.us, label %.loopexit.i30.us, label %.lr.ph103.i.us .lr.ph103.i.us: ; preds = %64, %.lr.ph103.i.us - %.034102.i.us = phi i64 [ %.034.i29.us, %.lr.ph103.i.us ], [ %.03499.i.us, %64 ] - %.035101.i.us = phi i64 [ %.034102.i.us, %.lr.ph103.i.us ], [ %.13896.i.us, %64 ] + %.034102.i.us = phi i64 [ %.034.i29.us, %.lr.ph103.i.us ], [ %.03499.i.us, %71 ] + %.035101.i.us = phi i64 [ %.034102.i.us, %.lr.ph103.i.us ], [ %.13896.i.us, %71 ] %67 = getelementptr inbounds double, ptr %55, i64 %.034102.i.us %68 = getelementptr inbounds double, ptr %55, i64 %.035101.i.us %69 = load double, ptr %67, align 8, !tbaa !4 @@ -26461,16 +26478,12 @@ define linkonce_odr dso_local noundef zeroext i1 @_ZNK5Eigen8SparseLUINS_12Spars br i1 %75, label %.preheader.i26.us.backedge, label %_ZN5Eigen8internal26permutation_matrix_productINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELin1ELi1ELb1EEELi1ELb1ENS_10DenseShapeEE3runIS9_NS_17PermutationMatrixILin1ELin1EiEEEEvRT_RKT0_RKS9_.exit.us .preheader.i26.us.backedge: ; preds = %73, %.loopexit.i30.us - %.13896.i.us.be = phi i64 [ %74, %73 ], [ %66, %.loopexit.i30.us ] + %.13896.i.us.be = phi i64 [ %74, %80 ], [ %66, %.loopexit.i30.us ] br label %.preheader.i26.us, !llvm.loop !799 _ZN5Eigen8internal26permutation_matrix_productINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELin1ELi1ELb1EEELi1ELb1ENS_10DenseShapeEE3runIS9_NS_17PermutationMatrixILin1ELin1EiEEEEvRT_RKT0_RKS9_.exit.us: ; preds = %.loopexit.i30.us, %73 call void @free(ptr noundef %calloc.i24.us) #36 - br label %.split142 - -.split.split.split: ; preds = %.split - %brmerge = or i1 %25, %13 - br i1 %brmerge, label %.split98.us, label %.lr.ph.i + br label %.split122 .noexc.i.i: ; preds = %33 %76 = tail call ptr @__cxa_allocate_exception(i64 8) #36 @@ -26478,20 +26491,7 @@ _ZN5Eigen8internal26permutation_matrix_productINS_5BlockINS_3MapINS_6MatrixIdLin tail call void @__cxa_throw(ptr nonnull %76, ptr nonnull @_ZTISt9bad_alloc, ptr nonnull @_ZNSt9bad_allocD1Ev) #37 unreachable -.lr.ph.i: ; preds = %.split.split.split, %.lr.ph.i - %.094.i = phi i64 [ %83, %.lr.ph.i ], [ 0, %.split.split.split ] - %77 = getelementptr inbounds nuw double, ptr %7, i64 %.094.i - %78 = getelementptr inbounds nuw i32, ptr %14, i64 %.094.i - %79 = load i32, ptr %78, align 4, !tbaa !107 - %80 = sext i32 %79 to i64 - %81 = getelementptr inbounds double, ptr %9, i64 %80 - %82 = load double, ptr %77, align 8, !tbaa !4 - store double %82, ptr %81, align 8, !tbaa !4 - %83 = add nuw nsw i64 %.094.i, 1 - %exitcond.not.i = icmp eq i64 %83, %.fr150 - br i1 %exitcond.not.i, label %.split98.us, label %.lr.ph.i, !llvm.loop !792 - -.split142: ; preds = %.split98.us, %_ZN5Eigen8internal26permutation_matrix_productINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELin1ELi1ELb1EEELi1ELb1ENS_10DenseShapeEE3runIS9_NS_17PermutationMatrixILin1ELin1EiEEEEvRT_RKT0_RKS9_.exit.us +.lr.ph.i: ; preds = %.split96.us, %_ZN5Eigen8internal26permutation_matrix_productINS_5BlockINS_3MapINS_6MatrixIdLin1ELi1ELi0ELin1ELi1EEELi0ENS_6StrideILi0ELi0EEEEELin1ELi1ELb1EEELi1ELb1ENS_10DenseShapeEE3runIS9_NS_17PermutationMatrixILin1ELin1EiEEEEvRT_RKT0_RKS9_.exit.us ret i1 true .noexc.i.i31: ; preds = %.split140.us.split @@ -41845,8 +41845,8 @@ thread-pre-split.i.i.i.i.i.i: ; preds = %_ZN5Eigen15PlainObj call void @llvm.lifetime.end.p0(ptr nonnull %8) br label %249 -249: ; preds = %63, %.body, %244 - %.pn25.pn.pn = phi { ptr, i32 } [ %.pn23, %.body ], [ %245, %244 ], [ %64, %63 ] +249: ; preds = %.body, %244, %63 + %.pn25.pn.pn = phi { ptr, i32 } [ %64, %63 ], [ %.pn23, %.body ], [ %245, %244 ] %250 = load ptr, ptr %3, align 8, !tbaa !78 call void @free(ptr noundef %250) #36 call void @llvm.lifetime.end.p0(ptr nonnull %3) diff --git a/bench/llvm/optimized/MsgPackDocument.ll b/bench/llvm/optimized/MsgPackDocument.ll index 771ed00917c..19b091d2d2e 100644 --- a/bench/llvm/optimized/MsgPackDocument.ll +++ b/bench/llvm/optimized/MsgPackDocument.ll @@ -493,15 +493,13 @@ define dso_local ptr @_ZN4llvm7msgpack10MapDocNode4findENS_9StringRefE(ptr nound %4 = load ptr, ptr %0, align 8, !tbaa !3 %5 = load ptr, ptr %4, align 8, !tbaa !9 %6 = getelementptr inbounds nuw i8, ptr %5, i64 176 - %7 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %8 = load ptr, ptr %7, align 8, !tbaa !35 - %9 = getelementptr inbounds nuw i8, ptr %8, i64 16 - %10 = load ptr, ptr %9, align 8, !tbaa !83 - %11 = getelementptr inbounds nuw i8, ptr %8, i64 8 - %.not10.i.i.i.i = icmp eq ptr %10, null - %12 = ptrtoint ptr %.fr83 to i64 - %13 = bitcast i64 %12 to double - %14 = trunc i64 %12 to i8 + %7 = ptrtoint ptr %.fr82 to i64 + %8 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %9 = load ptr, ptr %8, align 8, !tbaa !36 + %10 = getelementptr inbounds nuw i8, ptr %9, i64 16 + %11 = load ptr, ptr %10, align 8, !tbaa !83 + %12 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %.not10.i.i.i.i = icmp eq ptr %11, null br i1 %.not10.i.i.i.i, label %_ZN4llvm7msgpack10MapDocNode4findENS0_7DocNodeE.exit, label %_ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i6.preheader _ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i6.preheader: ; preds = %3 @@ -509,18 +507,20 @@ _ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i6.preheader: ; preds = %3 %16 = load i8, ptr %15, align 8, !tbaa !84 %.fr80 = freeze i8 %16 %17 = icmp eq i8 %.fr80, 10 - br i1 %17, label %_ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i6.us, label %_ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i6 + %16 = bitcast i64 %7 to double + %.sroa.5.8.extract.trunc36 = trunc i64 %7 to i8 + br i1 %15, label %_ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i6.us, label %_ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i6 _ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i6.us: ; preds = %_ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i6.preheader, %_ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i6.us - %.012.i.i.i.i.us = phi ptr [ %.1.i.i.i.i.us, %_ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i6.us ], [ %10, %_ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i6.preheader ] + %.012.i.i.i.i.us = phi ptr [ %.1.i.i.i.i.us, %_ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i6.us ], [ %11, %_ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i6.preheader ] %.1.in.i.i.i.i.us = getelementptr inbounds nuw i8, ptr %.012.i.i.i.i.us, i64 16 %.1.i.i.i.i.us = load ptr, ptr %.1.in.i.i.i.i.us, align 8, !tbaa !85 %.not.i.i.i.i.us = icmp eq ptr %.1.i.i.i.i.us, null br i1 %.not.i.i.i.i.us, label %_ZNSt8_Rb_treeIN4llvm7msgpack7DocNodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS5_EPSt18_Rb_tree_node_baseRS4_.exit.i.i.i, label %_ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i6.us, !llvm.loop !86 _ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i6: ; preds = %_ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i6.preheader, %.thread - %.012.i.i.i.i = phi ptr [ %.1.i.i.i.i, %.thread ], [ %10, %_ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i6.preheader ] - %.0811.i.i.i.i = phi ptr [ %51, %.thread ], [ %11, %_ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i6.preheader ] + %.012.i.i.i.i = phi ptr [ %.1.i.i.i.i, %.thread ], [ %11, %_ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i6.preheader ] + %.0811.i.i.i.i = phi ptr [ %51, %.thread ], [ %12, %_ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i6.preheader ] %18 = getelementptr inbounds nuw i8, ptr %.012.i.i.i.i, i64 32 %19 = load ptr, ptr %18, align 8, !tbaa !3 %.not.i7 = icmp eq ptr %19, %6 @@ -533,7 +533,7 @@ _ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i6: ; preds = %_ZNK4llvm7msgpack7D 21: ; preds = %_ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i6 %22 = getelementptr inbounds nuw i8, ptr %19, i64 8 %23 = load i8, ptr %22, align 8, !tbaa !84 - switch i8 %23, label %46 [ + switch i8 %23, label %45 [ i8 0, label %24 i8 1, label %28 i8 2, label %.thread @@ -547,27 +547,27 @@ _ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i6: ; preds = %_ZNK4llvm7msgpack7D %25 = getelementptr inbounds nuw i8, ptr %.012.i.i.i.i, i64 40 %26 = load i64, ptr %25, align 8, !tbaa !35 %.fr84 = freeze i64 %26 - %27 = icmp slt i64 %.fr84, %12 + %27 = icmp slt i64 %.fr84, %7 br i1 %27, label %_ZN4llvm7msgpackltERKNS0_7DocNodeES3_.exit27.thread41.thread, label %.thread 28: ; preds = %21 %29 = getelementptr inbounds nuw i8, ptr %.012.i.i.i.i, i64 40 %30 = load i64, ptr %29, align 8, !tbaa !35 %.fr82 = freeze i64 %30 - %31 = icmp ult i64 %.fr82, %12 + %31 = icmp ult i64 %.fr82, %7 br i1 %31, label %_ZN4llvm7msgpackltERKNS0_7DocNodeES3_.exit27.thread41.thread, label %.thread 32: ; preds = %21 %33 = getelementptr inbounds nuw i8, ptr %.012.i.i.i.i, i64 40 %34 = load i8, ptr %33, align 8, !tbaa !35, !range !87, !noundef !88 - %35 = icmp ult i8 %34, %14 + %35 = icmp ult i8 %34, %.sroa.5.8.extract.trunc36 br i1 %35, label %_ZN4llvm7msgpackltERKNS0_7DocNodeES3_.exit27.thread41.thread, label %.thread 36: ; preds = %21 %37 = getelementptr inbounds nuw i8, ptr %.012.i.i.i.i, i64 40 %38 = load double, ptr %37, align 8, !tbaa !35 %.fr81 = freeze double %38 - %39 = fcmp olt double %.fr81, %13 + %39 = fcmp olt double %.fr81, %16 br i1 %39, label %_ZN4llvm7msgpackltERKNS0_7DocNodeES3_.exit27.thread41.thread, label %.thread 40: ; preds = %21, %21 @@ -609,8 +609,8 @@ _ZN4llvm7msgpackltERKNS0_7DocNodeES3_.exit27.thread41.thread: ; preds = %_ZN4llv br label %.thread .thread: ; preds = %_ZN4llvm7msgpackltERKNS0_7DocNodeES3_.exit27, %24, %28, %32, %36, %_ZN4llvmltENS_9StringRefES0_.exit.i24, %.thread.i.i.i26, %21, %_ZN4llvm7msgpackltERKNS0_7DocNodeES3_.exit27.thread41.thread - %51 = phi ptr [ %.0811.i.i.i.i, %_ZN4llvm7msgpackltERKNS0_7DocNodeES3_.exit27.thread41.thread ], [ %.012.i.i.i.i, %21 ], [ %.012.i.i.i.i, %.thread.i.i.i26 ], [ %.012.i.i.i.i, %_ZN4llvmltENS_9StringRefES0_.exit.i24 ], [ %.012.i.i.i.i, %36 ], [ %.012.i.i.i.i, %32 ], [ %.012.i.i.i.i, %28 ], [ %.012.i.i.i.i, %24 ], [ %.012.i.i.i.i, %_ZN4llvm7msgpackltERKNS0_7DocNodeES3_.exit27 ] - %52 = phi i64 [ 24, %_ZN4llvm7msgpackltERKNS0_7DocNodeES3_.exit27.thread41.thread ], [ 16, %21 ], [ 16, %.thread.i.i.i26 ], [ 16, %_ZN4llvmltENS_9StringRefES0_.exit.i24 ], [ 16, %36 ], [ 16, %32 ], [ 16, %28 ], [ 16, %24 ], [ 16, %_ZN4llvm7msgpackltERKNS0_7DocNodeES3_.exit27 ] + %51 = phi ptr [ %.0811.i.i.i.i, %_ZN4llvm7msgpackltERKNS0_7DocNodeES3_.exit27.thread41.thread ], [ %.012.i.i.i.i, %20 ], [ %.012.i.i.i.i, %.thread.i.i.i26 ], [ %.012.i.i.i.i, %_ZN4llvmltENS_9StringRefES0_.exit.i24 ], [ %.012.i.i.i.i, %35 ], [ %.012.i.i.i.i, %31 ], [ %.012.i.i.i.i, %27 ], [ %.012.i.i.i.i, %23 ], [ %.012.i.i.i.i, %_ZN4llvm7msgpackltERKNS0_7DocNodeES3_.exit27 ] + %52 = phi i64 [ 24, %_ZN4llvm7msgpackltERKNS0_7DocNodeES3_.exit27.thread41.thread ], [ 16, %20 ], [ 16, %.thread.i.i.i26 ], [ 16, %_ZN4llvmltENS_9StringRefES0_.exit.i24 ], [ 16, %35 ], [ 16, %31 ], [ 16, %27 ], [ 16, %23 ], [ 16, %_ZN4llvm7msgpackltERKNS0_7DocNodeES3_.exit27 ] %.1.in.i.i.i.i = getelementptr inbounds nuw i8, ptr %.012.i.i.i.i, i64 %52 %.1.i.i.i.i = load ptr, ptr %.1.in.i.i.i.i, align 8, !tbaa !85 %.not.i.i.i.i = icmp eq ptr %.1.i.i.i.i, null @@ -618,7 +618,7 @@ _ZN4llvm7msgpackltERKNS0_7DocNodeES3_.exit27.thread41.thread: ; preds = %_ZN4llv _ZNSt8_Rb_treeIN4llvm7msgpack7DocNodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS5_EPSt18_Rb_tree_node_baseRS4_.exit.i.i.i: ; preds = %.thread, %_ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i6.us %.us-phi = phi ptr [ %.012.i.i.i.i.us, %_ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i6.us ], [ %51, %.thread ] - %53 = icmp eq ptr %.us-phi, %11 + %53 = icmp eq ptr %.us-phi, %12 br i1 %53, label %_ZN4llvm7msgpack10MapDocNode4findENS0_7DocNodeE.exit, label %54 54: ; preds = %_ZNSt8_Rb_treeIN4llvm7msgpack7DocNodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS5_EPSt18_Rb_tree_node_baseRS4_.exit.i.i.i @@ -639,7 +639,7 @@ _ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i: ; preds = %54 br i1 %.not.i, label %61, label %_ZN4llvm7msgpackltERKNS0_7DocNodeES3_.exit 61: ; preds = %60 - switch i8 %.fr80, label %84 [ + switch i8 %.fr80, label %83 [ i8 0, label %62 i8 1, label %66 i8 2, label %_ZN4llvm7msgpack10MapDocNode4findENS0_7DocNodeE.exit @@ -653,27 +653,27 @@ _ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i: ; preds = %54 %63 = getelementptr inbounds nuw i8, ptr %.us-phi, i64 40 %64 = load i64, ptr %63, align 8, !tbaa !35 %.fr90 = freeze i64 %64 - %65 = icmp sgt i64 %.fr90, %12 + %65 = icmp sgt i64 %.fr90, %7 br i1 %65, label %_ZN4llvmltENS_9StringRefES0_.exit.i.thread75, label %_ZN4llvm7msgpack10MapDocNode4findENS0_7DocNodeE.exit 66: ; preds = %61 %67 = getelementptr inbounds nuw i8, ptr %.us-phi, i64 40 %68 = load i64, ptr %67, align 8, !tbaa !35 %.fr89 = freeze i64 %68 - %69 = icmp ugt i64 %.fr89, %12 + %69 = icmp ugt i64 %.fr89, %7 br i1 %69, label %_ZN4llvmltENS_9StringRefES0_.exit.i.thread75, label %_ZN4llvm7msgpack10MapDocNode4findENS0_7DocNodeE.exit 70: ; preds = %61 %71 = getelementptr inbounds nuw i8, ptr %.us-phi, i64 40 %72 = load i8, ptr %71, align 8, !tbaa !35, !range !87, !noundef !88 - %73 = icmp ugt i8 %72, %14 + %73 = icmp ugt i8 %72, %.sroa.5.8.extract.trunc36 br i1 %73, label %_ZN4llvmltENS_9StringRefES0_.exit.i.thread75, label %_ZN4llvm7msgpack10MapDocNode4findENS0_7DocNodeE.exit 74: ; preds = %61 %75 = getelementptr inbounds nuw i8, ptr %.us-phi, i64 40 %76 = load double, ptr %75, align 8, !tbaa !35 %.fr88 = freeze double %76 - %77 = fcmp ogt double %.fr88, %13 + %77 = fcmp ogt double %.fr88, %16 br i1 %77, label %_ZN4llvmltENS_9StringRefES0_.exit.i.thread75, label %_ZN4llvm7msgpack10MapDocNode4findENS0_7DocNodeE.exit 78: ; preds = %61, %61 @@ -711,7 +711,7 @@ _ZN4llvmltENS_9StringRefES0_.exit.i.thread75: ; preds = %.thread.i.i.i, %_ZN br label %_ZN4llvm7msgpack10MapDocNode4findENS0_7DocNodeE.exit _ZN4llvm7msgpack10MapDocNode4findENS0_7DocNodeE.exit: ; preds = %.thread.i.i.i, %54, %61, %_ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i, %_ZN4llvmltENS_9StringRefES0_.exit.i.thread75, %_ZN4llvm7msgpackltERKNS0_7DocNodeES3_.exit, %62, %66, %70, %74, %_ZN4llvmltENS_9StringRefES0_.exit.i, %3, %_ZNSt8_Rb_treeIN4llvm7msgpack7DocNodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS5_EPSt18_Rb_tree_node_baseRS4_.exit.i.i.i - %.sroa.0.0.i.i.i = phi ptr [ %11, %_ZNSt8_Rb_treeIN4llvm7msgpack7DocNodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS5_EPSt18_Rb_tree_node_baseRS4_.exit.i.i.i ], [ %11, %3 ], [ %11, %_ZN4llvmltENS_9StringRefES0_.exit.i.thread75 ], [ %.us-phi, %_ZN4llvm7msgpackltERKNS0_7DocNodeES3_.exit ], [ %.us-phi, %62 ], [ %.us-phi, %66 ], [ %.us-phi, %70 ], [ %.us-phi, %74 ], [ %.us-phi, %_ZN4llvmltENS_9StringRefES0_.exit.i ], [ %.us-phi, %_ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i ], [ %.us-phi, %61 ], [ %.us-phi, %54 ], [ %.us-phi, %.thread.i.i.i ] + %.sroa.0.0.i.i.i = phi ptr [ %12, %_ZNSt8_Rb_treeIN4llvm7msgpack7DocNodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS5_EPSt18_Rb_tree_node_baseRS4_.exit.i.i.i ], [ %12, %3 ], [ %12, %_ZN4llvmltENS_9StringRefES0_.exit.i.thread75 ], [ %.us-phi, %_ZN4llvm7msgpackltERKNS0_7DocNodeES3_.exit ], [ %.us-phi, %61 ], [ %.us-phi, %65 ], [ %.us-phi, %69 ], [ %.us-phi, %73 ], [ %.us-phi, %_ZN4llvmltENS_9StringRefES0_.exit.i ], [ %.us-phi, %_ZNK4llvm7msgpack7DocNode7isEmptyEv.exit.i ], [ %.us-phi, %60 ], [ %.us-phi, %53 ], [ %.us-phi, %.thread.i.i.i ] ret ptr %.sroa.0.0.i.i.i } diff --git a/bench/meshlab/optimized/edit_align.ll b/bench/meshlab/optimized/edit_align.ll index b4805538206..b2ce1c1e120 100644 --- a/bench/meshlab/optimized/edit_align.ll +++ b/bench/meshlab/optimized/edit_align.ll @@ -10831,8 +10831,8 @@ define linkonce_odr void @_ZN5Eigen8internal13trmv_selectorILi6ELi1EE3runINS_9Tr br label %35 35: ; preds = %.noexc, %.lr.ph149.i - %indvars.iv.i = phi i64 [ %.sroa.speculated136.i, %.lr.ph149.i ], [ %indvars.iv.next.i, %.noexc ] - %.0147.i = phi i64 [ 0, %.lr.ph149.i ], [ %116, %.noexc ] + %indvars.iv.i = phi i64 [ %.sroa.speculated136.i, %.lr.ph148.i ], [ %indvars.iv.next.i, %.noexc ] + %.0147.i = phi i64 [ 0, %.lr.ph148.i ], [ %116, %.noexc ] %36 = call i64 @llvm.smax.i64(i64 %indvars.iv.i, i64 1) %37 = call i64 @llvm.umin.i64(i64 %36, i64 8) %38 = sub nsw i64 %.sroa.speculated136.i, %.0147.i diff --git a/bench/meshlab/optimized/shell.ll b/bench/meshlab/optimized/shell.ll index d12ff3979c8..03d83be5a3f 100644 --- a/bench/meshlab/optimized/shell.ll +++ b/bench/meshlab/optimized/shell.ll @@ -825,8 +825,8 @@ _ZL5BuildR4MeshR9FaceGroup.exit: ; preds = %60, %62 br label %137 137: ; preds = %.lr.ph169, %346 - %.054167 = phi double [ 0.000000e+00, %.lr.ph169 ], [ %342, %346 ] - %.sroa.0145.0166 = phi ptr [ %111, %.lr.ph169 ], [ %376, %346 ] + %.054167 = phi double [ 0.000000e+00, %.lr.ph169 ], [ %342, %343 ] + %.sroa.0145.0166 = phi ptr [ %111, %.lr.ph169 ], [ %376, %343 ] %138 = load ptr, ptr %120, align 8 %139 = load ptr, ptr %138, align 8 %140 = ptrtoint ptr %.sroa.0145.0166 to i64 @@ -983,24 +983,24 @@ _Z13LocalIsometryIN3vcg6Point3IdEENS0_6Point2IdEEEvRKT_S7_RT0_S9_.exit: ; preds %259 = fdiv double 1.000000e+00, %258 %260 = fmul double %255, %259 %261 = fmul double %259, -0.000000e+00 + %.sroa.2.i.i.i.i.i.i.i.i.i.sroa.0.0.vec.insert = insertelement <1 x double> poison, double %261, i64 0 %262 = fmul double %259, %256 + %.sroa.2.i.i.i.i.i.i.i.i.i.sroa.4.8.vec.insert = insertelement <1 x double> poison, double %262, i64 0 %263 = fmul double %.025.i, %259 + %.sroa.2.i.i.i.i.i.i.i.i.i.sroa.6.16.vec.insert = insertelement <1 x double> poison, double %263, i64 0 %264 = insertelement <2 x double> poison, double %260, i64 0 %265 = shufflevector <2 x double> %264, <2 x double> poison, <2 x i32> zeroinitializer %266 = fmul <2 x double> %265, %.sroa.0.8.vec.insert - %267 = insertelement <1 x double> poison, double %261, i64 0 - %268 = shufflevector <1 x double> %267, <1 x double> poison, <2 x i32> zeroinitializer - %269 = fmul <2 x double> %.sroa.5.24.vec.insert, %268 - %270 = fadd <2 x double> %266, %269 - store <2 x double> %270, ptr %5, align 16, !alias.scope !14 - %271 = insertelement <1 x double> poison, double %262, i64 0 - %272 = shufflevector <1 x double> %271, <1 x double> poison, <2 x i32> zeroinitializer - %273 = fmul <2 x double> %.sroa.0.8.vec.insert, %272 - %274 = insertelement <1 x double> poison, double %263, i64 0 - %275 = shufflevector <1 x double> %274, <1 x double> poison, <2 x i32> zeroinitializer - %276 = fmul <2 x double> %.sroa.5.24.vec.insert, %275 - %277 = fadd <2 x double> %273, %276 - store <2 x double> %277, ptr %123, align 16, !alias.scope !14 + %267 = shufflevector <1 x double> %.sroa.2.i.i.i.i.i.i.i.i.i.sroa.0.0.vec.insert, <1 x double> poison, <2 x i32> zeroinitializer + %268 = fmul <2 x double> %.sroa.5.24.vec.insert, %267 + %269 = fadd <2 x double> %266, %268 + store <2 x double> %269, ptr %5, align 16, !alias.scope !14 + %270 = shufflevector <1 x double> %.sroa.2.i.i.i.i.i.i.i.i.i.sroa.4.8.vec.insert, <1 x double> poison, <2 x i32> zeroinitializer + %271 = fmul <2 x double> %.sroa.0.8.vec.insert, %270 + %272 = shufflevector <1 x double> %.sroa.2.i.i.i.i.i.i.i.i.i.sroa.6.16.vec.insert, <1 x double> poison, <2 x i32> zeroinitializer + %273 = fmul <2 x double> %.sroa.5.24.vec.insert, %272 + %274 = fadd <2 x double> %271, %273 + store <2 x double> %274, ptr %123, align 16, !alias.scope !14 store i32 0, ptr %125, align 4 call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(11) %124, i8 0, i64 11, i1 false) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %126, i8 -1, i64 16, i1 false) @@ -1059,13 +1059,13 @@ _Z13LocalIsometryIN3vcg6Point3IdEENS0_6Point2IdEEEvRKT_S7_RT0_S9_.exit: ; preds br label %316 316: ; preds = %282, %179 - %.sroa.0140.0 = phi double [ %180, %179 ], [ 0.000000e+00, %282 ] - %.sroa.5.0 = phi double [ %181, %179 ], [ 0.000000e+00, %282 ] - %.sroa.9.0 = phi double [ %132, %179 ], [ 0.000000e+00, %282 ] - %.sroa.13.0 = phi double [ %182, %179 ], [ %.sroa.084.0.vec.extract, %282 ] - %.sroa.16.0 = phi double [ %183, %179 ], [ %.sroa.084.8.vec.extract, %282 ] - %.sroa.22.0 = phi double [ %184, %179 ], [ %.sroa.081.0.vec.extract, %282 ] - %.sroa.25.0 = phi double [ %185, %179 ], [ %.sroa.081.8.vec.extract, %282 ] + %.sroa.0140.0 = phi double [ %180, %179 ], [ 0.000000e+00, %279 ] + %.sroa.5.0 = phi double [ %181, %179 ], [ 0.000000e+00, %279 ] + %.sroa.9.0 = phi double [ %132, %179 ], [ 0.000000e+00, %279 ] + %.sroa.13.0 = phi double [ %182, %179 ], [ %.sroa.084.0.vec.extract, %279 ] + %.sroa.16.0 = phi double [ %183, %179 ], [ %.sroa.084.8.vec.extract, %279 ] + %.sroa.22.0 = phi double [ %184, %179 ], [ %.sroa.081.0.vec.extract, %279 ] + %.sroa.25.0 = phi double [ %185, %179 ], [ %.sroa.081.8.vec.extract, %279 ] %317 = load ptr, ptr %134, align 8 %318 = load ptr, ptr %317, align 8 %319 = ptrtoint ptr %318 to i64 diff --git a/bench/nlohmann_json/optimized/diag_on.ll b/bench/nlohmann_json/optimized/diag_on.ll index cb0f34b9e20..003d0d6be64 100644 --- a/bench/nlohmann_json/optimized/diag_on.ll +++ b/bench/nlohmann_json/optimized/diag_on.ll @@ -7210,8 +7210,8 @@ _ZNSt10unique_ptrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEZN8nlohman 67: ; preds = %2 %68 = getelementptr inbounds nuw i8, ptr %1, i64 8 %69 = load i64, ptr %68, align 8, !tbaa !12 - %70 = inttoptr i64 %69 to ptr store i64 %69, ptr %5, align 8, !tbaa !12 + %70 = inttoptr i64 %69 to ptr br label %thread-pre-split 71: ; preds = %2 diff --git a/bench/nori/optimized/accel.ll b/bench/nori/optimized/accel.ll index eed86504566..5324d07d2c3 100644 --- a/bench/nori/optimized/accel.ll +++ b/bench/nori/optimized/accel.ll @@ -679,14 +679,17 @@ declare noundef zeroext i1 @_ZNK4nori4Mesh12rayIntersectEjRKNS_4TRayINS_6TPointI define linkonce_odr hidden void @_ZNK5Eigen10MatrixBaseINS_13CwiseBinaryOpINS_8internal13scalar_sum_opIffEEKNS1_IS4_KNS1_INS2_17scalar_product_opIffEEKNS_14CwiseNullaryOpINS2_18scalar_constant_opIfEEKNS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEEEEKNS_5BlockIKNSA_IfLin1ELin1ELi0ELin1ELin1EEELin1ELi1ELb1EEEEESL_EESL_EEE10normalizedEv(ptr dead_on_unwind noalias writable sret(%"class.Eigen::Matrix.95") align 8 %0, ptr noundef nonnull align 1 dereferenceable(1) %1) local_unnamed_addr #7 comdat align 2 personality ptr @__gxx_personality_v0 { %3 = getelementptr inbounds nuw i8, ptr %1, i64 36 %4 = load float, ptr %3, align 4 + %.sroa.0.i.i.i.i.i.i.sroa.0.0.vec.insert = insertelement <1 x float> poison, float %4, i64 0 %5 = getelementptr inbounds nuw i8, ptr %1, i64 40 %6 = load ptr, ptr %5, align 8 %7 = getelementptr inbounds nuw i8, ptr %1, i64 124 %8 = load float, ptr %7, align 4 + %.sroa.7.i.i.i.i.i.i.sroa.0.0.vec.insert = insertelement <1 x float> poison, float %8, i64 0 %9 = getelementptr inbounds nuw i8, ptr %1, i64 128 %10 = load ptr, ptr %9, align 8 %11 = getelementptr inbounds nuw i8, ptr %1, i64 220 %12 = load float, ptr %11, align 4 + %.sroa.14.i.i.i.i.i.i.sroa.0.0.vec.insert = insertelement <1 x float> poison, float %12, i64 0 %13 = getelementptr inbounds nuw i8, ptr %1, i64 224 %14 = load ptr, ptr %13, align 8 %15 = getelementptr inbounds nuw i8, ptr %1, i64 232 @@ -732,32 +735,29 @@ _ZN5Eigen12DenseStorageIfLin1ELin1ELi1ELi0EE6resizeElll.exit: ; preds = %23 br i1 %29, label %.lr.ph.i.preheader.i.i.i.i.i.i, label %._crit_edge.i.i.i.i.i.i.i .lr.ph.i.preheader.i.i.i.i.i.i: ; preds = %_ZN5Eigen12DenseStorageIfLin1ELin1ELi1ELi0EE6resizeElll.exit - %30 = insertelement <1 x float> poison, float %4, i64 0 - %31 = shufflevector <1 x float> %30, <1 x float> poison, <4 x i32> zeroinitializer - %32 = insertelement <1 x float> poison, float %8, i64 0 - %33 = shufflevector <1 x float> %32, <1 x float> poison, <4 x i32> zeroinitializer - %34 = insertelement <1 x float> poison, float %12, i64 0 - %35 = shufflevector <1 x float> %34, <1 x float> poison, <4 x i32> zeroinitializer + %30 = shufflevector <1 x float> %.sroa.0.i.i.i.i.i.i.sroa.0.0.vec.insert, <1 x float> poison, <4 x i32> zeroinitializer + %31 = shufflevector <1 x float> %.sroa.7.i.i.i.i.i.i.sroa.0.0.vec.insert, <1 x float> poison, <4 x i32> zeroinitializer + %32 = shufflevector <1 x float> %.sroa.14.i.i.i.i.i.i.sroa.0.0.vec.insert, <1 x float> poison, <4 x i32> zeroinitializer br label %.lr.ph.i.i.i.i.i.i.i .lr.ph.i.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i.i.i, %.lr.ph.i.preheader.i.i.i.i.i.i - %.011.i.i.i.i.i.i.i = phi i64 [ %48, %.lr.ph.i.i.i.i.i.i.i ], [ 0, %.lr.ph.i.preheader.i.i.i.i.i.i ] + %.011.i.i.i.i.i.i.i = phi i64 [ %45, %.lr.ph.i.i.i.i.i.i.i ], [ 0, %.lr.ph.i.preheader.i.i.i.i.i.i ] %36 = getelementptr inbounds nuw float, ptr %25, i64 %.011.i.i.i.i.i.i.i %37 = getelementptr inbounds nuw float, ptr %6, i64 %.011.i.i.i.i.i.i.i + %35 = load <4 x float>, ptr %34, align 1 + %36 = fmul <4 x float> %30, %35 + %37 = getelementptr inbounds nuw float, ptr %10, i64 %.011.i.i.i.i.i.i.i %38 = load <4 x float>, ptr %37, align 1 %39 = fmul <4 x float> %31, %38 - %40 = getelementptr inbounds nuw float, ptr %10, i64 %.011.i.i.i.i.i.i.i - %41 = load <4 x float>, ptr %40, align 1 - %42 = fmul <4 x float> %33, %41 - %43 = fadd <4 x float> %39, %42 - %44 = getelementptr inbounds nuw float, ptr %14, i64 %.011.i.i.i.i.i.i.i - %45 = load <4 x float>, ptr %44, align 1 - %46 = fmul <4 x float> %35, %45 - %47 = fadd <4 x float> %43, %46 - store <4 x float> %47, ptr %36, align 16 - %48 = add nuw nsw i64 %.011.i.i.i.i.i.i.i, 4 - %49 = icmp samesign ult i64 %48, %28 - br i1 %49, label %.lr.ph.i.i.i.i.i.i.i, label %._crit_edge.i.i.i.i.i.i.i, !llvm.loop !22 + %40 = fadd <4 x float> %36, %39 + %41 = getelementptr inbounds nuw float, ptr %14, i64 %.011.i.i.i.i.i.i.i + %42 = load <4 x float>, ptr %41, align 1 + %43 = fmul <4 x float> %32, %42 + %44 = fadd <4 x float> %40, %43 + store <4 x float> %44, ptr %33, align 16 + %45 = add nuw nsw i64 %.011.i.i.i.i.i.i.i, 4 + %46 = icmp samesign ult i64 %45, %28 + br i1 %46, label %.lr.ph.i.i.i.i.i.i.i, label %._crit_edge.i.i.i.i.i.i.i, !llvm.loop !22 ._crit_edge.i.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i.i.i, %_ZN5Eigen12DenseStorageIfLin1ELin1ELi1ELi0EE6resizeElll.exit.thread, %_ZN5Eigen12DenseStorageIfLin1ELin1ELi1ELi0EE6resizeElll.exit %50 = phi i64 [ %19, %_ZN5Eigen12DenseStorageIfLin1ELin1ELi1ELi0EE6resizeElll.exit.thread ], [ %28, %_ZN5Eigen12DenseStorageIfLin1ELin1ELi1ELi0EE6resizeElll.exit ], [ %28, %.lr.ph.i.i.i.i.i.i.i ] @@ -766,22 +766,22 @@ _ZN5Eigen12DenseStorageIfLin1ELin1ELi1ELi0EE6resizeElll.exit: ; preds = %23 br i1 %51, label %.lr.ph.i.i.i.i.i.i.i.i, label %_ZN5Eigen6MatrixIfLin1ELi1ELi0ELin1ELi1EEC2INS_13CwiseBinaryOpINS_8internal13scalar_sum_opIffEEKNS3_IS6_KNS3_INS4_17scalar_product_opIffEEKNS_14CwiseNullaryOpINS4_18scalar_constant_opIfEEKS1_EEKNS_5BlockIKNS0_IfLin1ELin1ELi0ELin1ELin1EEELin1ELi1ELb1EEEEESL_EESL_EEEERKT_.exit .lr.ph.i.i.i.i.i.i.i.i: ; preds = %._crit_edge.i.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i.i.i - %.05.i.i.i.i.i.i.i.i = phi i64 [ %64, %.lr.ph.i.i.i.i.i.i.i.i ], [ %50, %._crit_edge.i.i.i.i.i.i.i ] + %.05.i.i.i.i.i.i.i.i = phi i64 [ %61, %.lr.ph.i.i.i.i.i.i.i.i ], [ %50, %._crit_edge.i.i.i.i.i.i.i ] %52 = getelementptr inbounds float, ptr %.sink.i23, i64 %.05.i.i.i.i.i.i.i.i %53 = getelementptr inbounds float, ptr %6, i64 %.05.i.i.i.i.i.i.i.i + %51 = load float, ptr %50, align 4 + %52 = fmul float %4, %51 + %53 = getelementptr inbounds float, ptr %10, i64 %.05.i.i.i.i.i.i.i.i %54 = load float, ptr %53, align 4 - %55 = fmul float %4, %54 - %56 = getelementptr inbounds float, ptr %10, i64 %.05.i.i.i.i.i.i.i.i - %57 = load float, ptr %56, align 4 - %58 = fmul float %8, %57 - %59 = fadd float %55, %58 - %60 = getelementptr inbounds float, ptr %14, i64 %.05.i.i.i.i.i.i.i.i - %61 = load float, ptr %60, align 4 - %62 = fmul float %12, %61 - %63 = fadd float %59, %62 - store float %63, ptr %52, align 4 - %64 = add nsw i64 %.05.i.i.i.i.i.i.i.i, 1 - %exitcond.not.i.i.i.i.i.i.i.i = icmp eq i64 %64, %16 + %55 = fmul float %8, %54 + %56 = fadd float %52, %55 + %57 = getelementptr inbounds float, ptr %14, i64 %.05.i.i.i.i.i.i.i.i + %58 = load float, ptr %57, align 4 + %59 = fmul float %12, %58 + %60 = fadd float %56, %59 + store float %60, ptr %49, align 4 + %61 = add nsw i64 %.05.i.i.i.i.i.i.i.i, 1 + %exitcond.not.i.i.i.i.i.i.i.i = icmp eq i64 %61, %16 br i1 %exitcond.not.i.i.i.i.i.i.i.i, label %_ZN5Eigen6MatrixIfLin1ELi1ELi0ELin1ELi1EEC2INS_13CwiseBinaryOpINS_8internal13scalar_sum_opIffEEKNS3_IS6_KNS3_INS4_17scalar_product_opIffEEKNS_14CwiseNullaryOpINS4_18scalar_constant_opIfEEKS1_EEKNS_5BlockIKNS0_IfLin1ELin1ELi0ELin1ELin1EEELin1ELi1ELb1EEEEESL_EESL_EEEERKT_.exit, label %.lr.ph.i.i.i.i.i.i.i.i, !llvm.loop !23 _ZN5Eigen6MatrixIfLin1ELi1ELi0ELin1ELi1EEC2INS_13CwiseBinaryOpINS_8internal13scalar_sum_opIffEEKNS3_IS6_KNS3_INS4_17scalar_product_opIffEEKNS_14CwiseNullaryOpINS4_18scalar_constant_opIfEEKS1_EEKNS_5BlockIKNS0_IfLin1ELin1ELi0ELin1ELin1EEELin1ELi1ELb1EEEEESL_EESL_EEEERKT_.exit: ; preds = %.lr.ph.i.i.i.i.i.i.i.i, %._crit_edge.i.i.i.i.i.i.i @@ -807,10 +807,10 @@ _ZN5Eigen6MatrixIfLin1ELi1ELi0ELin1ELi1EEC2INS_13CwiseBinaryOpINS_8internal13sca br i1 %77, label %.lr.ph.i.i.i.i, label %._crit_edge.i.i.i.i .lr.ph.i.i.i.i: ; preds = %73, %.lr.ph.i.i.i.i - %.05478.i.i.i.i = phi i64 [ %.054.i.i.i.i, %.lr.ph.i.i.i.i ], [ 8, %73 ] - %.054.in77.i.i.i.i = phi i64 [ %.05478.i.i.i.i, %.lr.ph.i.i.i.i ], [ 0, %73 ] - %storemerge76.i.i.i.i = phi <4 x float> [ %86, %.lr.ph.i.i.i.i ], [ %76, %73 ] - %.17375.i.i.i.i = phi <4 x float> [ %81, %.lr.ph.i.i.i.i ], [ %71, %73 ] + %.05478.i.i.i.i = phi i64 [ %.054.i.i.i.i, %.lr.ph.i.i.i.i ], [ 8, %70 ] + %.054.in77.i.i.i.i = phi i64 [ %.05478.i.i.i.i, %.lr.ph.i.i.i.i ], [ 0, %70 ] + %storemerge76.i.i.i.i = phi <4 x float> [ %86, %.lr.ph.i.i.i.i ], [ %76, %70 ] + %.17375.i.i.i.i = phi <4 x float> [ %81, %.lr.ph.i.i.i.i ], [ %71, %70 ] %78 = getelementptr inbounds nuw float, ptr %.sink.i23, i64 %.05478.i.i.i.i %79 = load <4 x float>, ptr %78, align 16 %80 = fmul <4 x float> %79, %79 @@ -825,8 +825,8 @@ _ZN5Eigen6MatrixIfLin1ELi1ELi0ELin1ELi1EEC2INS_13CwiseBinaryOpINS_8internal13sca br i1 %87, label %.lr.ph.i.i.i.i, label %._crit_edge.i.i.i.i, !llvm.loop !24 ._crit_edge.i.i.i.i: ; preds = %.lr.ph.i.i.i.i, %73 - %.173.lcssa.i.i.i.i = phi <4 x float> [ %71, %73 ], [ %81, %.lr.ph.i.i.i.i ] - %storemerge.lcssa.i.i.i.i = phi <4 x float> [ %76, %73 ], [ %86, %.lr.ph.i.i.i.i ] + %.173.lcssa.i.i.i.i = phi <4 x float> [ %71, %70 ], [ %81, %.lr.ph.i.i.i.i ] + %storemerge.lcssa.i.i.i.i = phi <4 x float> [ %76, %70 ], [ %86, %.lr.ph.i.i.i.i ] %88 = fadd <4 x float> %.173.lcssa.i.i.i.i, %storemerge.lcssa.i.i.i.i %89 = icmp sgt i64 %68, %66 br i1 %89, label %90, label %95 @@ -839,7 +839,7 @@ _ZN5Eigen6MatrixIfLin1ELi1ELi0ELin1ELi1EEC2INS_13CwiseBinaryOpINS_8internal13sca br label %95 95: ; preds = %90, %._crit_edge.i.i.i.i, %69 - %.072.i.i.i.i = phi <4 x float> [ %94, %90 ], [ %88, %._crit_edge.i.i.i.i ], [ %71, %69 ] + %.072.i.i.i.i = phi <4 x float> [ %94, %87 ], [ %88, %._crit_edge.i.i.i.i ], [ %71, %66 ] %96 = shufflevector <4 x float> %.072.i.i.i.i, <4 x float> poison, <4 x i32> %97 = fadd <4 x float> %.072.i.i.i.i, %96 %shift = shufflevector <4 x float> %97, <4 x float> poison, <4 x i32> @@ -849,8 +849,8 @@ _ZN5Eigen6MatrixIfLin1ELi1ELi0ELin1ELi1EEC2INS_13CwiseBinaryOpINS_8internal13sca br i1 %99, label %.lr.ph83.i.i.i.i, label %_ZNK5Eigen10MatrixBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEEE11squaredNormEv.exit .lr.ph83.i.i.i.i: ; preds = %95, %.lr.ph83.i.i.i.i - %.05281.i.i.i.i = phi i64 [ %104, %.lr.ph83.i.i.i.i ], [ %68, %95 ] - %.180.i.i.i.i = phi float [ %103, %.lr.ph83.i.i.i.i ], [ %98, %95 ] + %.05281.i.i.i.i = phi i64 [ %104, %.lr.ph83.i.i.i.i ], [ %68, %92 ] + %.180.i.i.i.i = phi float [ %103, %.lr.ph83.i.i.i.i ], [ %98, %92 ] %100 = getelementptr inbounds float, ptr %.sink.i23, i64 %.05281.i.i.i.i %101 = load float, ptr %100, align 4 %102 = fmul float %101, %101 @@ -866,8 +866,8 @@ _ZN5Eigen6MatrixIfLin1ELi1ELi0ELin1ELi1EEC2INS_13CwiseBinaryOpINS_8internal13sca br i1 %108, label %.lr.ph88.i.i.i.i, label %_ZNK5Eigen10MatrixBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEEE11squaredNormEv.exit .lr.ph88.i.i.i.i: ; preds = %105, %.lr.ph88.i.i.i.i - %.086.i.i.i.i = phi i64 [ %113, %.lr.ph88.i.i.i.i ], [ 1, %105 ] - %.385.i.i.i.i = phi float [ %112, %.lr.ph88.i.i.i.i ], [ %107, %105 ] + %.086.i.i.i.i = phi i64 [ %113, %.lr.ph88.i.i.i.i ], [ 1, %102 ] + %.385.i.i.i.i = phi float [ %112, %.lr.ph88.i.i.i.i ], [ %107, %102 ] %109 = getelementptr inbounds nuw float, ptr %.sink.i23, i64 %.086.i.i.i.i %110 = load float, ptr %109, align 4 %111 = fmul float %110, %110 @@ -877,7 +877,7 @@ _ZN5Eigen6MatrixIfLin1ELi1ELi0ELin1ELi1EEC2INS_13CwiseBinaryOpINS_8internal13sca br i1 %exitcond94.not.i.i.i.i, label %_ZNK5Eigen10MatrixBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEEE11squaredNormEv.exit, label %.lr.ph88.i.i.i.i, !llvm.loop !26 _ZNK5Eigen10MatrixBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEEE11squaredNormEv.exit: ; preds = %.lr.ph83.i.i.i.i, %.lr.ph88.i.i.i.i, %105, %95 - %.0.i.i = phi float [ %107, %105 ], [ %98, %95 ], [ %112, %.lr.ph88.i.i.i.i ], [ %103, %.lr.ph83.i.i.i.i ] + %.0.i.i = phi float [ %107, %102 ], [ %98, %92 ], [ %112, %.lr.ph88.i.i.i.i ], [ %103, %.lr.ph83.i.i.i.i ] %114 = fcmp ogt float %.0.i.i, 0.000000e+00 br i1 %114, label %115, label %_ZNK5Eigen10MatrixBaseINS_6MatrixIfLin1ELi1ELi0ELin1ELi1EEEE11squaredNormEv.exit.thread diff --git a/bench/ockam-rs/optimized/1411u8drt798uxi8.ll b/bench/ockam-rs/optimized/1411u8drt798uxi8.ll index 0913ca82065..6cb7d4c5c86 100644 --- a/bench/ockam-rs/optimized/1411u8drt798uxi8.ll +++ b/bench/ockam-rs/optimized/1411u8drt798uxi8.ll @@ -78696,7 +78696,7 @@ define hidden void @"_ZN89_$LT$minicbor..bytes..ByteArray$LT$_$GT$$u20$as$u20$mi br i1 %.not.not, label %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h13ce806abcadf202E.exit.thread", label %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h13ce806abcadf202E.exit" "_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h13ce806abcadf202E.exit.thread": ; preds = %14 - %.val.i61 = load <4 x i8>, ptr %11, align 1, !alias.scope !10896 + %.val.i61 = load i32, ptr %11, align 1, !alias.scope !10896 br label %17 "_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h13ce806abcadf202E.exit": ; preds = %14 @@ -78707,7 +78707,7 @@ define hidden void @"_ZN89_$LT$minicbor..bytes..ByteArray$LT$_$GT$$u20$as$u20$mi call void @llvm.lifetime.end.p0(ptr nonnull %4), !noalias !10902 %.sroa.0.0.copyload = load i64, ptr %5, align 8 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 8 - %.sroa.5.0.copyload = load <4 x i8>, ptr %.sroa.5.0..sroa_idx, align 8 + %.sroa.5.0.copyload = load i32, ptr %.sroa.5.0..sroa_idx, align 8 %.sroa.8.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 12 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(52) %.sroa.8, ptr noundef nonnull align 4 dereferenceable(52) %.sroa.8.0..sroa_idx, i64 52, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %5), !noalias !10899 @@ -78727,11 +78727,11 @@ define hidden void @"_ZN89_$LT$minicbor..bytes..ByteArray$LT$_$GT$$u20$as$u20$mi call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.sroa.431.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(40) %.sroa.431, i64 40, i1 false) br label %20 -17: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h13ce806abcadf202E.exit.thread", %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h13ce806abcadf202E.exit" - %.sroa.5.055.ph = phi <4 x i8> [ %.sroa.5.0.copyload, %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h13ce806abcadf202E.exit" ], [ %.val.i61, %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h13ce806abcadf202E.exit.thread" ] +17: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h13ce806abcadf202E.exit", %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h13ce806abcadf202E.exit.thread" + %.sroa.5.055.ph = phi i32 [ %.val.i, %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h13ce806abcadf202E.exit.thread" ], [ %.sroa.5.0.copyload, %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h13ce806abcadf202E.exit" ] call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.8) %18 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store <4 x i8> %.sroa.5.055.ph, ptr %18, align 8 + store i32 %.sroa.5.055.ph, ptr %18, align 8 store i64 2, ptr %0, align 8 br label %20 @@ -78740,7 +78740,7 @@ define hidden void @"_ZN89_$LT$minicbor..bytes..ByteArray$LT$_$GT$$u20$as$u20$mi call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.8) store i64 %.sroa.0.0.copyload, ptr %0, align 8 %.sroa.240.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 - store <4 x i8> %.sroa.5.0.copyload, ptr %.sroa.240.0..sroa_idx, align 8 + store i32 %.sroa.5.0.copyload, ptr %.sroa.240.0..sroa_idx, align 8 %.sroa.341.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 12 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(52) %.sroa.341.0..sroa_idx, ptr noundef nonnull align 4 dereferenceable(52) %.sroa.341, i64 52, i1 false) br label %20 diff --git a/bench/open3d/optimized/Geometry3D.ll b/bench/open3d/optimized/Geometry3D.ll index e51814de1a4..ed734b80af9 100644 --- a/bench/open3d/optimized/Geometry3D.ll +++ b/bench/open3d/optimized/Geometry3D.ll @@ -525,15 +525,17 @@ define void @_ZNK6open3d8geometry10Geometry3D15TransformPointsERKN5Eigen6MatrixI %.sroa.018.022 = phi ptr [ %4, %.lr.ph ], [ %46, %14 ] %15 = getelementptr inbounds nuw i8, ptr %.sroa.018.022, i64 8 %16 = getelementptr inbounds nuw i8, ptr %.sroa.018.022, i64 16 - %17 = load <1 x double>, ptr %.sroa.018.022, align 8, !tbaa !16 - %18 = load <1 x double>, ptr %15, align 8, !tbaa !16 + %17 = load double, ptr %.sroa.018.022, align 8, !tbaa !16 + %.sroa.0.sroa.0.0.vec.insert = insertelement <1 x double> poison, double %17, i64 0 + %18 = load double, ptr %15, align 8, !tbaa !16 + %.sroa.0.sroa.4.8.vec.insert = insertelement <1 x double> poison, double %18, i64 0 %19 = load double, ptr %16, align 8, !tbaa !16 %.sroa.0.sroa.6.24.vec.insert = insertelement <2 x double> poison, double %19, i64 0 %20 = load <2 x double>, ptr %1, align 16, !tbaa !11 - %21 = shufflevector <1 x double> %17, <1 x double> poison, <2 x i32> zeroinitializer + %21 = shufflevector <1 x double> %.sroa.0.sroa.0.0.vec.insert, <1 x double> poison, <2 x i32> zeroinitializer %22 = fmul <2 x double> %20, %21 %23 = load <2 x double>, ptr %7, align 16, !tbaa !11 - %24 = shufflevector <1 x double> %18, <1 x double> poison, <2 x i32> zeroinitializer + %24 = shufflevector <1 x double> %.sroa.0.sroa.4.8.vec.insert, <1 x double> poison, <2 x i32> zeroinitializer %25 = fmul <2 x double> %23, %24 %26 = fadd <2 x double> %22, %25 %27 = load <2 x double>, ptr %8, align 16, !tbaa !11 diff --git a/bench/open3d/optimized/VoxelGrid.ll b/bench/open3d/optimized/VoxelGrid.ll index 0b2760e9318..f96807a1005 100644 --- a/bench/open3d/optimized/VoxelGrid.ll +++ b/bench/open3d/optimized/VoxelGrid.ll @@ -35029,11 +35029,10 @@ define noundef nonnull align 8 dereferenceable(136) ptr @_ZN6open3d8geometry9Vox %146 = shufflevector <1 x double> %145, <1 x double> poison, <2 x i32> %147 = fmul <2 x double> %82, %146 %148 = fadd <2 x double> %147, %144 - %149 = bitcast double %142 to <1 x double> - %150 = shufflevector <1 x double> %149, <1 x double> poison, <2 x i32> - %151 = fmul <2 x double> %83, %150 - %152 = fadd <2 x double> %151, %148 - %153 = extractelement <2 x double> %152, i64 1 + %149 = extractelement <2 x double> %83, i64 1 + %150 = fmul double %149, %142 + %151 = extractelement <2 x double> %148, i64 1 + %152 = fadd double %150, %152 call void @llvm.lifetime.end.p0(ptr nonnull %5) %154 = fdiv double %122, %92 %155 = fdiv double %153, %92 @@ -35255,8 +35254,8 @@ define noundef nonnull align 8 dereferenceable(136) ptr @_ZN6open3d8geometry9Vox br i1 %.not109110, label %.critedge, label %.lr.ph .lr.ph: ; preds = %45, %160 - %.028112 = phi i1 [ %spec.select, %160 ], [ true, %45 ] - %.sroa.084.0111 = phi ptr [ %163, %160 ], [ %47, %45 ] + %.028112 = phi i1 [ %spec.select, %159 ], [ true, %45 ] + %.sroa.084.0111 = phi ptr [ %163, %159 ], [ %47, %45 ] call void @llvm.lifetime.start.p0(ptr nonnull %7) store ptr %28, ptr %7, align 8, !tbaa !827 call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.2.i.i.i.i.i.i.i.sroa.0) @@ -35376,14 +35375,13 @@ define noundef nonnull align 8 dereferenceable(136) ptr @_ZN6open3d8geometry9Vox %144 = shufflevector <1 x double> %143, <1 x double> poison, <2 x i32> %145 = fmul <2 x double> %80, %144 %146 = fadd <2 x double> %145, %142 - %147 = bitcast double %140 to <1 x double> - %148 = shufflevector <1 x double> %147, <1 x double> poison, <2 x i32> - %149 = fmul <2 x double> %81, %148 - %150 = fadd <2 x double> %149, %146 - %151 = extractelement <2 x double> %150, i64 1 + %147 = extractelement <2 x double> %81, i64 1 + %148 = fmul double %147, %140 + %149 = extractelement <2 x double> %146, i64 1 + %150 = fadd double %148, %149 call void @llvm.lifetime.end.p0(ptr nonnull %5) %152 = fdiv double %120, %90 - %153 = fdiv double %151, %90 + %153 = fdiv double %150, %90 %154 = invoke { i8, double } @_ZNK6open3d8geometry5Image12FloatValueAtEdd(ptr noundef nonnull align 8 dereferenceable(88) %1, double noundef %152, double noundef %153) to label %155 unwind label %158 @@ -35446,41 +35444,41 @@ _ZNSt10_HashtableIN5Eigen6MatrixIiLi3ELi1ELi0ELi3ELi1EEESt4pairIKS2_N6open3d8geo %.not9.i.i.i.i.i = icmp eq i64 %179, %167 br i1 %.not9.i.i.i.i.i, label %192, label %180 -180: ; preds = %176 - %181 = getelementptr inbounds nuw ptr, ptr %168, i64 %179 - store ptr %170, ptr %181, align 8, !tbaa !64 +183: ; preds = %175 + %180 = getelementptr inbounds nuw ptr, ptr %167, i64 %178 + store ptr %169, ptr %180, align 8, !tbaa !64 br label %._crit_edge.i.i.i.i.i -._crit_edge.i.i.i.i.i: ; preds = %180, %175 - %182 = icmp eq ptr %25, %170 - br i1 %182, label %183, label %184 +184: ; preds = %180, %174 + %181 = icmp eq ptr %25, %169 + br i1 %181, label %182, label %183 -183: ; preds = %._crit_edge.i.i.i.i.i - store ptr %174, ptr %25, align 8, !tbaa !7 - br label %184 +185: ; preds = %._crit_edge.i.i.i.i.i + store ptr %173, ptr %25, align 8, !tbaa !7 + br label %183 -184: ; preds = %183, %._crit_edge.i.i.i.i.i - store ptr null, ptr %169, align 8, !tbaa !64 +186: ; preds = %185, %184 + store ptr null, ptr %168, align 8, !tbaa !64 br label %192 -185: ; preds = %_ZNSt10_HashtableIN5Eigen6MatrixIiLi3ELi1ELi0ELi3ELi1EEESt4pairIKS2_N6open3d8geometry5VoxelEESaIS8_ENSt8__detail10_Select1stESt8equal_toIS2_ENS5_7utility10hash_eigenIS2_EENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE20_M_get_previous_nodeEmPNSA_10_Hash_nodeIS8_Lb1EEE.exit.i.i.i - br i1 %.not18.i.i.i.i, label %192, label %186 +190: ; preds = %_ZNSt10_HashtableIN5Eigen6MatrixIiLi3ELi1ELi0ELi3ELi1EEESt4pairIKS2_N6open3d8geometry5VoxelEESaIS8_ENSt8__detail10_Select1stESt8equal_toIS2_ENS5_7utility10hash_eigenIS2_EENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE20_M_get_previous_nodeEmPNSA_10_Hash_nodeIS8_Lb1EEE.exit.i.i.i + br i1 %.not18.i.i.i.i, label %192, label %185 -186: ; preds = %185 - %187 = getelementptr inbounds nuw i8, ptr %174, i64 64 - %188 = load i64, ptr %187, align 8, !tbaa !62 - %189 = urem i64 %188, %164 - %.not17.i.i.i.i = icmp eq i64 %189, %167 - br i1 %.not17.i.i.i.i, label %192, label %190 +192: ; preds = %184 + %186 = getelementptr inbounds nuw i8, ptr %173, i64 64 + %187 = load i64, ptr %186, align 8, !tbaa !62 + %188 = urem i64 %187, %163 + %.not17.i.i.i.i = icmp eq i64 %188, %166 + br i1 %.not17.i.i.i.i, label %191, label %189 -190: ; preds = %186 - %191 = getelementptr inbounds nuw ptr, ptr %168, i64 %189 - store ptr %.0.i.i.i.i, ptr %191, align 8, !tbaa !64 - br label %192 +189: ; preds = %185 + %190 = getelementptr inbounds nuw ptr, ptr %167, i64 %188 + store ptr %.0.i.i.i.i, ptr %190, align 8, !tbaa !64 + br label %191 -192: ; preds = %190, %186, %185, %184, %176 - %193 = load ptr, ptr %.sroa.088.0116, align 8, !tbaa !18 - store ptr %193, ptr %.0.i.i.i.i, align 8, !tbaa !18 +191: ; preds = %189, %185, %184, %183, %175 + %192 = load ptr, ptr %.sroa.088.0116, align 8, !tbaa !18 + store ptr %192, ptr %.0.i.i.i.i, align 8, !tbaa !18 call void @_ZdlPvm(ptr noundef nonnull %.sroa.088.0116, i64 noundef 72) #37 %194 = load i64, ptr %43, align 8, !tbaa !28 %195 = add i64 %194, -1 @@ -35492,7 +35490,7 @@ _ZNSt10_HashtableIN5Eigen6MatrixIiLi3ELi1ELi0ELi3ELi1EEESt4pairIKS2_N6open3d8geo br label %197 197: ; preds = %.thread106, %192 - %.sroa.088.1 = phi ptr [ %193, %192 ], [ %196, %.thread106 ] + %.sroa.088.1 = phi ptr [ %193, %191 ], [ %196, %.thread106 ] %198 = load ptr, ptr %9, align 8, !tbaa !691 %.not.i.i.i = icmp eq ptr %198, null br i1 %.not.i.i.i, label %_ZNSt6vectorIN5Eigen6MatrixIdLi3ELi1ELi0ELi3ELi1EEESaIS2_EED2Ev.exit, label %199 diff --git a/bench/opencv/optimized/gfluidbackend.ll b/bench/opencv/optimized/gfluidbackend.ll index 7d3c84b4cb5..f565793d2d4 100644 --- a/bench/opencv/optimized/gfluidbackend.ll +++ b/bench/opencv/optimized/gfluidbackend.ll @@ -5079,7 +5079,7 @@ _ZNSt5stackIN3ade6HandleINS0_4NodeEEESt5dequeIS3_SaIS3_EEE4pushERKS3_.exit: ; pr br i1 %narrow.i.i.i.i.i.i.i, label %_ZNK3ade4util5Range13IterableRangeINS1_8ZipRangeIJNS1_9IotaRangeImLi1EEERSt6vectorINS_6HandleINS_4NodeEEESaIS9_EEEEEE8iteratorneERKSF_.exit.preheader, label %192 458: ; preds = %.lr.ph1222, %_ZN3ade6HandleINS_4NodeEED2Ev.exit634 - %459 = phi ptr [ %156, %.lr.ph1222 ], [ %1819, %_ZN3ade6HandleINS_4NodeEED2Ev.exit634 ] + %459 = phi ptr [ %156, %.lr.ph1221 ], [ %1819, %_ZN3ade6HandleINS_4NodeEED2Ev.exit634 ] %460 = load ptr, ptr %159, align 8, !tbaa !366, !noalias !367 %461 = icmp eq ptr %459, %460 br i1 %461, label %462, label %_ZNSt5stackIN3ade6HandleINS0_4NodeEEESt5dequeIS3_SaIS3_EEE3topEv.exit @@ -5820,7 +5820,7 @@ _ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i306: ; preds = %765 br label %778 778: ; preds = %.lr.ph1219, %_ZN3ade6HandleINS_4EdgeEED2Ev.exit - %779 = phi ptr [ %772, %.lr.ph1219 ], [ %1759, %_ZN3ade6HandleINS_4EdgeEED2Ev.exit ] + %779 = phi ptr [ %772, %.lr.ph1218 ], [ %1759, %_ZN3ade6HandleINS_4EdgeEED2Ev.exit ] %780 = load i8, ptr %170, align 8, !tbaa !395, !range !103, !noundef !53 %781 = trunc nuw i8 %780 to i1 %or.cond = select i1 %781, i1 %775, i1 false diff --git a/bench/openvdb/optimized/Prune.ll b/bench/openvdb/optimized/Prune.ll index cd45bdbc500..4b134afb0ba 100644 --- a/bench/openvdb/optimized/Prune.ll +++ b/bench/openvdb/optimized/Prune.ll @@ -40573,8 +40573,8 @@ if.else.i: ; preds = %for.body.i br i1 %cmp.i.i10.i.i, label %while.body.i.i15, label %_ZSt25__unguarded_linear_insertIPN7openvdb5v11_04tree9NodeUnionIfNS2_8LeafNodeIfLj3EEEvEEN9__gnu_cxx5__ops14_Val_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_.exit.i while.body.i.i15: ; preds = %if.else.i, %while.body.i.i15 - %__next.012.i.i = phi ptr [ %__next.0.i.i, %while.body.i.i15 ], [ %__first.pn15.i, %if.else.i ] - %__last.addr.011.i.i = phi ptr [ %__next.012.i.i, %while.body.i.i15 ], [ %__i.016.i, %if.else.i ] + %__next.012.i.i = phi ptr [ %__next.0.i.i, %while.body.i.i16 ], [ %__first.pn15.i, %if.else.i ] + %__last.addr.011.i.i = phi ptr [ %__next.012.i.i, %while.body.i.i16 ], [ %__i.016.i, %if.else.i ] %18 = load i64, ptr %__next.012.i.i, align 8 store i64 %18, ptr %__last.addr.011.i.i, align 8 %__next.0.i.i = getelementptr inbounds i8, ptr %__next.012.i.i, i64 -8 @@ -40583,7 +40583,7 @@ while.body.i.i15: ; preds = %if.else.i, %while.b br i1 %cmp.i.i.i.i16, label %while.body.i.i15, label %_ZSt25__unguarded_linear_insertIPN7openvdb5v11_04tree9NodeUnionIfNS2_8LeafNodeIfLj3EEEvEEN9__gnu_cxx5__ops14_Val_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_.exit.i, !llvm.loop !522 _ZSt25__unguarded_linear_insertIPN7openvdb5v11_04tree9NodeUnionIfNS2_8LeafNodeIfLj3EEEvEEN9__gnu_cxx5__ops14_Val_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_.exit.i: ; preds = %while.body.i.i15, %if.else.i - %__last.addr.0.lcssa.i.i = phi ptr [ %__i.016.i, %if.else.i ], [ %__next.012.i.i, %while.body.i.i15 ] + %__last.addr.0.lcssa.i.i = phi ptr [ %__i.016.i, %if.else.i ], [ %__next.012.i.i, %while.body.i.i16 ] store float %14, ptr %__last.addr.0.lcssa.i.i, align 8 %__last.addr.0.sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %__last.addr.0.lcssa.i.i, i64 4 store i32 %16, ptr %__last.addr.0.sroa_idx.i.i, align 4 @@ -41684,8 +41684,8 @@ if.else.i: ; preds = %for.body.i br i1 %cmp.i.i10.i.i, label %while.body.i.i15, label %_ZSt25__unguarded_linear_insertIPN7openvdb5v11_04tree9NodeUnionIfNS2_12InternalNodeINS2_8LeafNodeIfLj3EEELj4EEEvEEN9__gnu_cxx5__ops14_Val_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_.exit.i while.body.i.i15: ; preds = %if.else.i, %while.body.i.i15 - %__next.012.i.i = phi ptr [ %__next.0.i.i, %while.body.i.i15 ], [ %__first.pn15.i, %if.else.i ] - %__last.addr.011.i.i = phi ptr [ %__next.012.i.i, %while.body.i.i15 ], [ %__i.016.i, %if.else.i ] + %__next.012.i.i = phi ptr [ %__next.0.i.i, %while.body.i.i16 ], [ %__first.pn15.i, %if.else.i ] + %__last.addr.011.i.i = phi ptr [ %__next.012.i.i, %while.body.i.i16 ], [ %__i.016.i, %if.else.i ] %18 = load i64, ptr %__next.012.i.i, align 8 store i64 %18, ptr %__last.addr.011.i.i, align 8 %__next.0.i.i = getelementptr inbounds i8, ptr %__next.012.i.i, i64 -8 @@ -41694,7 +41694,7 @@ while.body.i.i15: ; preds = %if.else.i, %while.b br i1 %cmp.i.i.i.i16, label %while.body.i.i15, label %_ZSt25__unguarded_linear_insertIPN7openvdb5v11_04tree9NodeUnionIfNS2_12InternalNodeINS2_8LeafNodeIfLj3EEELj4EEEvEEN9__gnu_cxx5__ops14_Val_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_.exit.i, !llvm.loop !541 _ZSt25__unguarded_linear_insertIPN7openvdb5v11_04tree9NodeUnionIfNS2_12InternalNodeINS2_8LeafNodeIfLj3EEELj4EEEvEEN9__gnu_cxx5__ops14_Val_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_.exit.i: ; preds = %while.body.i.i15, %if.else.i - %__last.addr.0.lcssa.i.i = phi ptr [ %__i.016.i, %if.else.i ], [ %__next.012.i.i, %while.body.i.i15 ] + %__last.addr.0.lcssa.i.i = phi ptr [ %__i.016.i, %if.else.i ], [ %__next.012.i.i, %while.body.i.i16 ] store float %14, ptr %__last.addr.0.lcssa.i.i, align 8 %__last.addr.0.sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %__last.addr.0.lcssa.i.i, i64 4 store i32 %16, ptr %__last.addr.0.sroa_idx.i.i, align 4 @@ -50194,13 +50194,16 @@ if.then10.i: ; preds = %while.end.i if.end17.i: ; preds = %if.then10.i, %while.end.i %__holeIndex.addr.1.i = phi i64 [ %sub13.i, %if.then10.i ], [ %__holeIndex.addr.0.lcssa.i, %while.end.i ] - %cmp13.i.i = icmp samesign ugt i64 %__holeIndex.addr.1.i, %div13 %6 = ptrtoint ptr %__value.sroa.0.0.copyload10 to i64 + %cmp12.i.i = icmp samesign ugt i64 %__holeIndex.addr.1.i, %div13 + br i1 %cmp12.i.i, label %land.rhs.lr.ph.i.i, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit + +land.rhs.lr.ph.i.i: ; preds = %if.end17.i %7 = bitcast i64 %6 to double - br i1 %cmp13.i.i, label %land.rhs.i.i, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit + br label %land.rhs.i.i -land.rhs.i.i: ; preds = %if.end17.i, %while.body.i.i - %__holeIndex.addr.014.i.i = phi i64 [ %__parent.015.i.i65, %while.body.i.i ], [ %__holeIndex.addr.1.i, %if.end17.i ] +land.rhs.i.i: ; preds = %while.body.i.i, %land.rhs.lr.ph.i.i + %__holeIndex.addr.014.i.i = phi i64 [ %__holeIndex.addr.1.i, %land.rhs.lr.ph.i.i ], [ %__parent.015.i.i65, %while.body.i.i ] %__parent.015.in.i.i = add nsw i64 %__holeIndex.addr.014.i.i, -1 %__parent.015.i.i65 = lshr i64 %__parent.015.in.i.i, 1 %add.ptr.i.i = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.837", ptr %__first, i64 %__parent.015.i.i65 @@ -50231,8 +50234,8 @@ if.end9.split.preheader: ; preds = %if.end9.split.lr.ph %add.ptr15.i43 = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.837", ptr %__first, i64 %div8.i37 br label %if.end9.split -if.end9.split.us: ; preds = %if.end9.split.lr.ph, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us - %__parent.061.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us ], [ %div13, %if.end9.split.lr.ph ] +if.end9.split.us: ; preds = %if.end9.split.lr.ph, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57.us + %__parent.061.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57.us ], [ %div13, %if.end9.split.lr.ph ] %dec.us = add nsw i64 %__parent.061.us, -1 %add.ptr11.us = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.837", ptr %__first, i64 %dec.us %__value.sroa.0.0.copyload12.us = load ptr, ptr %add.ptr11.us, align 8 @@ -50241,10 +50244,10 @@ if.end9.split.us: ; preds = %if.end9.split.lr.ph while.end.i17.us.thread: ; preds = %if.end9.split.us %9 = ptrtoint ptr %__value.sroa.0.0.copyload12.us to i64 - br label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us + br label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57.us while.body.i44.us: ; preds = %if.end9.split.us, %while.body.i44.us - %__holeIndex.addr.024.i45.us = phi i64 [ %spec.select.i52.us, %while.body.i44.us ], [ %dec.us, %if.end9.split.us ] + %__holeIndex.addr.024.i45.us = phi i64 [ %spec.select.i52.us, %while.body.i45.us ], [ %dec.us, %if.end9.split.us ] %add.i46.us = shl i64 %__holeIndex.addr.024.i45.us, 1 %mul.i47.us = add i64 %add.i46.us, 2 %add.ptr.i48.us = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.837", ptr %__first, i64 %mul.i47.us @@ -50263,36 +50266,39 @@ while.body.i44.us: ; preds = %if.end9.split.us, % br i1 %cmp.i55.us, label %while.body.i44.us, label %while.end.i17.us, !llvm.loop !621 while.end.i17.us: ; preds = %while.body.i44.us - %cmp13.i.i23.not.us = icmp slt i64 %spec.select.i52.us, %__parent.061.us %14 = ptrtoint ptr %__value.sroa.0.0.copyload12.us to i64 - %15 = bitcast i64 %14 to double - br i1 %cmp13.i.i23.not.us, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us, label %land.rhs.i.i26.us + %cmp12.i.i23.not.us = icmp slt i64 %spec.select.i53.us, %__parent.062.us + br i1 %cmp12.i.i23.not.us, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57.us, label %land.rhs.i.i26.us -land.rhs.i.i26.us: ; preds = %while.end.i17.us, %while.body.i.i32.us - %__holeIndex.addr.014.i.i27.us = phi i64 [ %__parent.015.i.i29.us66, %while.body.i.i32.us ], [ %spec.select.i52.us, %while.end.i17.us ] - %__parent.015.in.i.i28.us = add nsw i64 %__holeIndex.addr.014.i.i27.us, -1 - %__parent.015.i.i29.us66 = lshr i64 %__parent.015.in.i.i28.us, 1 - %add.ptr.i.i30.us = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.837", ptr %__first, i64 %__parent.015.i.i29.us66 - %16 = load double, ptr %add.ptr.i.i30.us, align 8 - %cmp.i.i.i.i31.us = fcmp olt double %16, %15 - br i1 %cmp.i.i.i.i31.us, label %while.body.i.i32.us, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us - -while.body.i.i32.us: ; preds = %land.rhs.i.i26.us - %add.ptr3.i.i33.us = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.837", ptr %__first, i64 %__holeIndex.addr.014.i.i27.us - store double %16, ptr %add.ptr3.i.i33.us, align 8 - %cmp.i.i34.not.us = icmp slt i64 %__parent.015.i.i29.us66, %__parent.061.us - br i1 %cmp.i.i34.not.us, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us, label %land.rhs.i.i26.us, !llvm.loop !622 - -_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us: ; preds = %land.rhs.i.i26.us, %while.body.i.i32.us, %while.end.i17.us.thread, %while.end.i17.us - %17 = phi i64 [ %14, %while.end.i17.us ], [ %9, %while.end.i17.us.thread ], [ %14, %while.body.i.i32.us ], [ %14, %land.rhs.i.i26.us ] - %__holeIndex.addr.0.lcssa.i.i24.us = phi i64 [ %spec.select.i52.us, %while.end.i17.us ], [ %dec.us, %while.end.i17.us.thread ], [ %__holeIndex.addr.014.i.i27.us, %land.rhs.i.i26.us ], [ %__parent.015.i.i29.us66, %while.body.i.i32.us ] +while.body.i.i32.us: ; preds = %while.end.i17.us + %15 = bitcast i64 %14 to double + br label %land.rhs.i.i27.us + +land.rhs.i.i27.us:; preds = %while.body.i.i33.us, %land.rhs.i.i26.us + %__holeIndex.addr.013.i.i28.us = phi i64 [ %spec.select.i53.us, %land.rhs.lr.ph.i.i26.us ], [ %__parent.014.i.i30.us67, %while.body.i.i33.us ] + %__parent.014.in.i.i29.us = add nsw i64 %__holeIndex.addr.013.i.i28.us, -1 + %__parent.014.i.i30.us67 = lshr i64 %__parent.014.in.i.i29.us, 1 + %add.ptr.i.i31.us = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.837", ptr %__first, i64 %__parent.014.i.i30.us67 + %16 = load double, ptr %add.ptr.i.i31.us, align 8 + %cmp.i.i.i.i32.us = fcmp olt double %16, %15 + br i1 %cmp.i.i.i.i32.us, label %while.body.i.i33.us, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57.us + +while.body.i.i33.us: ; preds = %land.rhs.i.i27.us + %add.ptr3.i.i34.us = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.837", ptr %__first, i64 %__holeIndex.addr.013.i.i28.us + store double %16, ptr %add.ptr3.i.i34.us, align 8 + %cmp.i.i35.not.us = icmp slt i64 %__parent.014.i.i30.us67, %__parent.062.us + br i1 %cmp.i.i35.not.us, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57.us, label %land.rhs.i.i27.us, !llvm.loop !622 + +_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57.us: ; preds = %land.rhs.i.i27.us, %while.body.i.i33.us, %while.end.i17.us.thread, %while.end.i17.us + %17 = phi i64 [ %14, %while.end.i17.us ], [ %9, %while.end.i17.us.thread ], [ %14, %while.body.i.i33.us ], [ %14, %land.rhs.i.i27.us ] + %__holeIndex.addr.0.lcssa.i.i24.us = phi i64 [ %spec.select.i53.us, %while.end.i17.us ], [ %dec.us, %while.end.i17.us.thread ], [ %__holeIndex.addr.013.i.i28.us, %land.rhs.i.i27.us ], [ %__parent.014.i.i30.us67, %while.body.i.i33.us ] %add.ptr6.i.i25.us = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.837", ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i24.us store i64 %17, ptr %add.ptr6.i.i25.us, align 8 %cmp7.us = icmp eq i64 %dec.us, 0 br i1 %cmp7.us, label %return, label %if.end9.split.us, !llvm.loop !624 -if.end9.split: ; preds = %if.end9.split.preheader, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56 - %__parent.061 = phi i64 [ %dec, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56 ], [ %div13, %if.end9.split.preheader ] +if.end9.split: ; preds = %if.end9.split.preheader, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57 + %__parent.061 = phi i64 [ %dec, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57 ], [ %div13, %if.end9.split.preheader ] %dec = add nsw i64 %__parent.061, -1 %add.ptr11 = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.837", ptr %__first, i64 %dec %__value.sroa.0.0.copyload12 = load ptr, ptr %add.ptr11, align 8 @@ -50300,7 +50306,7 @@ if.end9.split: ; preds = %if.end9.split.prehe br i1 %cmp23.i16.not, label %while.end.i17, label %while.body.i44 while.body.i44: ; preds = %if.end9.split, %while.body.i44 - %__holeIndex.addr.024.i45 = phi i64 [ %spec.select.i52, %while.body.i44 ], [ %dec, %if.end9.split ] + %__holeIndex.addr.024.i45 = phi i64 [ %spec.select.i52, %while.body.i45 ], [ %dec, %if.end9.split ] %add.i46 = shl i64 %__holeIndex.addr.024.i45, 1 %mul.i47 = add i64 %add.i46, 2 %add.ptr.i48 = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.837", ptr %__first, i64 %mul.i47 @@ -50319,7 +50325,7 @@ while.body.i44: ; preds = %if.end9.split, %whi br i1 %cmp.i55, label %while.body.i44, label %while.end.i17, !llvm.loop !621 while.end.i17: ; preds = %while.body.i44, %if.end9.split - %__holeIndex.addr.0.lcssa.i18 = phi i64 [ %dec, %if.end9.split ], [ %spec.select.i52, %while.body.i44 ] + %__holeIndex.addr.0.lcssa.i18 = phi i64 [ %dec, %if.end9.split ], [ %spec.select.i52, %while.body.i45 ] %cmp9.i38 = icmp eq i64 %__holeIndex.addr.0.lcssa.i18, %div8.i37 br i1 %cmp9.i38, label %if.then10.i39, label %if.end17.i21 @@ -50329,35 +50335,38 @@ if.then10.i39: ; preds = %while.end.i17 br label %if.end17.i21 if.end17.i21: ; preds = %if.then10.i39, %while.end.i17 - %__holeIndex.addr.1.i22 = phi i64 [ %sub13.i41, %if.then10.i39 ], [ %__holeIndex.addr.0.lcssa.i18, %while.end.i17 ] - %cmp13.i.i23.not = icmp slt i64 %__holeIndex.addr.1.i22, %__parent.061 + %__holeIndex.addr.1.i22 = phi i64 [ %sub13.i41, %if.then10.i40 ], [ %__holeIndex.addr.0.lcssa.i18, %while.end.i17 ] %23 = ptrtoint ptr %__value.sroa.0.0.copyload12 to i64 - %24 = bitcast i64 %23 to double - br i1 %cmp13.i.i23.not, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56, label %land.rhs.i.i26 - -land.rhs.i.i26: ; preds = %if.end17.i21, %while.body.i.i32 - %__holeIndex.addr.014.i.i27 = phi i64 [ %__parent.015.i.i2967, %while.body.i.i32 ], [ %__holeIndex.addr.1.i22, %if.end17.i21 ] - %__parent.015.in.i.i28 = add nsw i64 %__holeIndex.addr.014.i.i27, -1 - %__parent.015.i.i2967 = lshr i64 %__parent.015.in.i.i28, 1 - %add.ptr.i.i30 = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.837", ptr %__first, i64 %__parent.015.i.i2967 - %25 = load double, ptr %add.ptr.i.i30, align 8 - %cmp.i.i.i.i31 = fcmp olt double %25, %24 - br i1 %cmp.i.i.i.i31, label %while.body.i.i32, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56 - -while.body.i.i32: ; preds = %land.rhs.i.i26 - %add.ptr3.i.i33 = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.837", ptr %__first, i64 %__holeIndex.addr.014.i.i27 - store double %25, ptr %add.ptr3.i.i33, align 8 - %cmp.i.i34.not = icmp slt i64 %__parent.015.i.i2967, %__parent.061 - br i1 %cmp.i.i34.not, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56, label %land.rhs.i.i26, !llvm.loop !622 + %cmp12.i.i23.not = icmp slt i64 %__holeIndex.addr.1.i22, %__parent.062 + br i1 %cmp12.i.i23.not, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57, label %land.rhs.i.i26 -_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56: ; preds = %land.rhs.i.i26, %while.body.i.i32, %if.end17.i21 - %__holeIndex.addr.0.lcssa.i.i24 = phi i64 [ %__holeIndex.addr.1.i22, %if.end17.i21 ], [ %__parent.015.i.i2967, %while.body.i.i32 ], [ %__holeIndex.addr.014.i.i27, %land.rhs.i.i26 ] +while.body.i.i32: ; preds = %if.end17.i21 + %24 = bitcast i64 %23 to double + br label %land.rhs.i.i27 + +land.rhs.i.i27:; preds = %while.body.i.i33, %land.rhs.i.i26 + %__holeIndex.addr.013.i.i28 = phi i64 [ %__holeIndex.addr.1.i22, %land.rhs.lr.ph.i.i26 ], [ %__parent.014.i.i3068, %while.body.i.i33 ] + %__parent.014.in.i.i29 = add nsw i64 %__holeIndex.addr.013.i.i28, -1 + %__parent.014.i.i3068 = lshr i64 %__parent.014.in.i.i29, 1 + %add.ptr.i.i31 = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.837", ptr %__first, i64 %__parent.014.i.i3068 + %25 = load double, ptr %add.ptr.i.i31, align 8 + %cmp.i.i.i.i32 = fcmp olt double %25, %24 + br i1 %cmp.i.i.i.i32, label %while.body.i.i33, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57 + +while.body.i.i33: ; preds = %land.rhs.i.i27 + %add.ptr3.i.i34 = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.837", ptr %__first, i64 %__holeIndex.addr.013.i.i28 + store double %25, ptr %add.ptr3.i.i34, align 8 + %cmp.i.i35.not = icmp slt i64 %__parent.014.i.i3068, %__parent.062 + br i1 %cmp.i.i35.not, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57, label %land.rhs.i.i27, !llvm.loop !622 + +_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57: ; preds = %land.rhs.i.i27, %while.body.i.i33, %if.end17.i21 + %__holeIndex.addr.0.lcssa.i.i24 = phi i64 [ %__holeIndex.addr.1.i22, %if.end17.i21 ], [ %__parent.014.i.i3068, %while.body.i.i33 ], [ %__holeIndex.addr.013.i.i28, %land.rhs.i.i27 ] %add.ptr6.i.i25 = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.837", ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i24 store i64 %23, ptr %add.ptr6.i.i25, align 8 %cmp7 = icmp eq i64 %dec, 0 br i1 %cmp7, label %return, label %if.end9.split, !llvm.loop !624 -return: ; preds = %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit, %entry +return: ; preds = %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57.us, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit, %entry ret void } @@ -51273,13 +51282,16 @@ if.then10.i: ; preds = %while.end.i if.end17.i: ; preds = %if.then10.i, %while.end.i %__holeIndex.addr.1.i = phi i64 [ %sub13.i, %if.then10.i ], [ %__holeIndex.addr.0.lcssa.i, %while.end.i ] - %cmp13.i.i = icmp samesign ugt i64 %__holeIndex.addr.1.i, %div13 %6 = ptrtoint ptr %__value.sroa.0.0.copyload10 to i64 + %cmp12.i.i = icmp samesign ugt i64 %__holeIndex.addr.1.i, %div13 + br i1 %cmp12.i.i, label %land.rhs.lr.ph.i.i, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit + +land.rhs.lr.ph.i.i: ; preds = %if.end17.i %7 = bitcast i64 %6 to double - br i1 %cmp13.i.i, label %land.rhs.i.i, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit + br label %land.rhs.i.i -land.rhs.i.i: ; preds = %if.end17.i, %while.body.i.i - %__holeIndex.addr.014.i.i = phi i64 [ %__parent.015.i.i65, %while.body.i.i ], [ %__holeIndex.addr.1.i, %if.end17.i ] +land.rhs.i.i: ; preds = %while.body.i.i, %land.rhs.lr.ph.i.i + %__holeIndex.addr.014.i.i = phi i64 [ %__holeIndex.addr.1.i, %land.rhs.lr.ph.i.i ], [ %__parent.015.i.i65, %while.body.i.i ] %__parent.015.in.i.i = add nsw i64 %__holeIndex.addr.014.i.i, -1 %__parent.015.i.i65 = lshr i64 %__parent.015.in.i.i, 1 %add.ptr.i.i = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.826", ptr %__first, i64 %__parent.015.i.i65 @@ -51310,8 +51322,8 @@ if.end9.split.preheader: ; preds = %if.end9.split.lr.ph %add.ptr15.i43 = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.826", ptr %__first, i64 %div8.i37 br label %if.end9.split -if.end9.split.us: ; preds = %if.end9.split.lr.ph, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us - %__parent.061.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us ], [ %div13, %if.end9.split.lr.ph ] +if.end9.split.us: ; preds = %if.end9.split.lr.ph, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57.us + %__parent.061.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57.us ], [ %div13, %if.end9.split.lr.ph ] %dec.us = add nsw i64 %__parent.061.us, -1 %add.ptr11.us = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.826", ptr %__first, i64 %dec.us %__value.sroa.0.0.copyload12.us = load ptr, ptr %add.ptr11.us, align 8 @@ -51320,10 +51332,10 @@ if.end9.split.us: ; preds = %if.end9.split.lr.ph while.end.i17.us.thread: ; preds = %if.end9.split.us %9 = ptrtoint ptr %__value.sroa.0.0.copyload12.us to i64 - br label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us + br label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57.us while.body.i44.us: ; preds = %if.end9.split.us, %while.body.i44.us - %__holeIndex.addr.024.i45.us = phi i64 [ %spec.select.i52.us, %while.body.i44.us ], [ %dec.us, %if.end9.split.us ] + %__holeIndex.addr.024.i45.us = phi i64 [ %spec.select.i52.us, %while.body.i45.us ], [ %dec.us, %if.end9.split.us ] %add.i46.us = shl i64 %__holeIndex.addr.024.i45.us, 1 %mul.i47.us = add i64 %add.i46.us, 2 %add.ptr.i48.us = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.826", ptr %__first, i64 %mul.i47.us @@ -51342,36 +51354,39 @@ while.body.i44.us: ; preds = %if.end9.split.us, % br i1 %cmp.i55.us, label %while.body.i44.us, label %while.end.i17.us, !llvm.loop !640 while.end.i17.us: ; preds = %while.body.i44.us - %cmp13.i.i23.not.us = icmp slt i64 %spec.select.i52.us, %__parent.061.us %14 = ptrtoint ptr %__value.sroa.0.0.copyload12.us to i64 - %15 = bitcast i64 %14 to double - br i1 %cmp13.i.i23.not.us, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us, label %land.rhs.i.i26.us - -land.rhs.i.i26.us: ; preds = %while.end.i17.us, %while.body.i.i32.us - %__holeIndex.addr.014.i.i27.us = phi i64 [ %__parent.015.i.i29.us66, %while.body.i.i32.us ], [ %spec.select.i52.us, %while.end.i17.us ] - %__parent.015.in.i.i28.us = add nsw i64 %__holeIndex.addr.014.i.i27.us, -1 - %__parent.015.i.i29.us66 = lshr i64 %__parent.015.in.i.i28.us, 1 - %add.ptr.i.i30.us = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.826", ptr %__first, i64 %__parent.015.i.i29.us66 - %16 = load double, ptr %add.ptr.i.i30.us, align 8 - %cmp.i.i.i.i31.us = fcmp olt double %16, %15 - br i1 %cmp.i.i.i.i31.us, label %while.body.i.i32.us, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us + %cmp12.i.i23.not.us = icmp slt i64 %spec.select.i53.us, %__parent.062.us + br i1 %cmp12.i.i23.not.us, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57.us, label %land.rhs.i.i26.us -while.body.i.i32.us: ; preds = %land.rhs.i.i26.us - %add.ptr3.i.i33.us = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.826", ptr %__first, i64 %__holeIndex.addr.014.i.i27.us - store double %16, ptr %add.ptr3.i.i33.us, align 8 - %cmp.i.i34.not.us = icmp slt i64 %__parent.015.i.i29.us66, %__parent.061.us - br i1 %cmp.i.i34.not.us, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us, label %land.rhs.i.i26.us, !llvm.loop !641 - -_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us: ; preds = %land.rhs.i.i26.us, %while.body.i.i32.us, %while.end.i17.us.thread, %while.end.i17.us - %17 = phi i64 [ %14, %while.end.i17.us ], [ %9, %while.end.i17.us.thread ], [ %14, %while.body.i.i32.us ], [ %14, %land.rhs.i.i26.us ] - %__holeIndex.addr.0.lcssa.i.i24.us = phi i64 [ %spec.select.i52.us, %while.end.i17.us ], [ %dec.us, %while.end.i17.us.thread ], [ %__holeIndex.addr.014.i.i27.us, %land.rhs.i.i26.us ], [ %__parent.015.i.i29.us66, %while.body.i.i32.us ] +land.rhs.i.i26.us: ; preds = %while.end.i17.us + %15 = bitcast i64 %14 to double + br label %land.rhs.i.i27.us + +land.rhs.i.i27.us:; preds = %while.body.i.i33.us, %land.rhs.i.i26.us + %__holeIndex.addr.013.i.i28.us = phi i64 [ %spec.select.i53.us, %land.rhs.lr.ph.i.i26.us ], [ %__parent.014.i.i30.us67, %while.body.i.i33.us ] + %__parent.014.in.i.i29.us = add nsw i64 %__holeIndex.addr.013.i.i28.us, -1 + %__parent.014.i.i30.us67 = lshr i64 %__parent.014.in.i.i29.us, 1 + %add.ptr.i.i31.us = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.826", ptr %__first, i64 %__parent.014.i.i30.us67 + %16 = load double, ptr %add.ptr.i.i31.us, align 8 + %cmp.i.i.i.i32.us = fcmp olt double %16, %15 + br i1 %cmp.i.i.i.i32.us, label %while.body.i.i33.us, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57.us + +while.body.i.i33.us:; preds = %land.rhs.i.i27.us + %add.ptr3.i.i34.us = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.826", ptr %__first, i64 %__holeIndex.addr.013.i.i28.us + store double %16, ptr %add.ptr3.i.i34.us, align 8 + %cmp.i.i35.not.us = icmp slt i64 %__parent.014.i.i30.us67, %__parent.062.us + br i1 %cmp.i.i35.not.us, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57.us, label %land.rhs.i.i27.us, !llvm.loop !641 + +_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57.us: ; preds = %land.rhs.i.i27.us, %while.body.i.i33.us, %while.end.i17.us.thread, %while.end.i17.us + %17 = phi i64 [ %14, %while.end.i17.us ], [ %9, %while.end.i17.us.thread ], [ %14, %while.body.i.i33.us ], [ %14, %land.rhs.i.i27.us ] + %__holeIndex.addr.0.lcssa.i.i24.us = phi i64 [ %spec.select.i53.us, %while.end.i17.us ], [ %dec.us, %while.end.i17.us.thread ], [ %__holeIndex.addr.013.i.i28.us, %land.rhs.i.i27.us ], [ %__parent.014.i.i30.us67, %while.body.i.i33.us ] %add.ptr6.i.i25.us = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.826", ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i24.us store i64 %17, ptr %add.ptr6.i.i25.us, align 8 %cmp7.us = icmp eq i64 %dec.us, 0 br i1 %cmp7.us, label %return, label %if.end9.split.us, !llvm.loop !643 -if.end9.split: ; preds = %if.end9.split.preheader, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56 - %__parent.061 = phi i64 [ %dec, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56 ], [ %div13, %if.end9.split.preheader ] +if.end9.split: ; preds = %if.end9.split.preheader, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57 + %__parent.061 = phi i64 [ %dec, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57 ], [ %div13, %if.end9.split.preheader ] %dec = add nsw i64 %__parent.061, -1 %add.ptr11 = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.826", ptr %__first, i64 %dec %__value.sroa.0.0.copyload12 = load ptr, ptr %add.ptr11, align 8 @@ -51379,7 +51394,7 @@ if.end9.split: ; preds = %if.end9.split.prehe br i1 %cmp23.i16.not, label %while.end.i17, label %while.body.i44 while.body.i44: ; preds = %if.end9.split, %while.body.i44 - %__holeIndex.addr.024.i45 = phi i64 [ %spec.select.i52, %while.body.i44 ], [ %dec, %if.end9.split ] + %__holeIndex.addr.024.i45 = phi i64 [ %spec.select.i52, %while.body.i45 ], [ %dec, %if.end9.split ] %add.i46 = shl i64 %__holeIndex.addr.024.i45, 1 %mul.i47 = add i64 %add.i46, 2 %add.ptr.i48 = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.826", ptr %__first, i64 %mul.i47 @@ -51398,7 +51413,7 @@ while.body.i44: ; preds = %if.end9.split, %whi br i1 %cmp.i55, label %while.body.i44, label %while.end.i17, !llvm.loop !640 while.end.i17: ; preds = %while.body.i44, %if.end9.split - %__holeIndex.addr.0.lcssa.i18 = phi i64 [ %dec, %if.end9.split ], [ %spec.select.i52, %while.body.i44 ] + %__holeIndex.addr.0.lcssa.i18 = phi i64 [ %dec, %if.end9.split ], [ %spec.select.i52, %while.body.i45 ] %cmp9.i38 = icmp eq i64 %__holeIndex.addr.0.lcssa.i18, %div8.i37 br i1 %cmp9.i38, label %if.then10.i39, label %if.end17.i21 @@ -51408,35 +51423,38 @@ if.then10.i39: ; preds = %while.end.i17 br label %if.end17.i21 if.end17.i21: ; preds = %if.then10.i39, %while.end.i17 - %__holeIndex.addr.1.i22 = phi i64 [ %sub13.i41, %if.then10.i39 ], [ %__holeIndex.addr.0.lcssa.i18, %while.end.i17 ] - %cmp13.i.i23.not = icmp slt i64 %__holeIndex.addr.1.i22, %__parent.061 + %__holeIndex.addr.1.i22 = phi i64 [ %sub13.i41, %if.then10.i40 ], [ %__holeIndex.addr.0.lcssa.i18, %while.end.i17 ] %23 = ptrtoint ptr %__value.sroa.0.0.copyload12 to i64 - %24 = bitcast i64 %23 to double - br i1 %cmp13.i.i23.not, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56, label %land.rhs.i.i26 + %cmp12.i.i23.not = icmp slt i64 %__holeIndex.addr.1.i22, %__parent.062 + br i1 %cmp12.i.i23.not, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57, label %land.rhs.i.i26 -land.rhs.i.i26: ; preds = %if.end17.i21, %while.body.i.i32 - %__holeIndex.addr.014.i.i27 = phi i64 [ %__parent.015.i.i2967, %while.body.i.i32 ], [ %__holeIndex.addr.1.i22, %if.end17.i21 ] - %__parent.015.in.i.i28 = add nsw i64 %__holeIndex.addr.014.i.i27, -1 - %__parent.015.i.i2967 = lshr i64 %__parent.015.in.i.i28, 1 - %add.ptr.i.i30 = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.826", ptr %__first, i64 %__parent.015.i.i2967 - %25 = load double, ptr %add.ptr.i.i30, align 8 - %cmp.i.i.i.i31 = fcmp olt double %25, %24 - br i1 %cmp.i.i.i.i31, label %while.body.i.i32, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56 - -while.body.i.i32: ; preds = %land.rhs.i.i26 - %add.ptr3.i.i33 = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.826", ptr %__first, i64 %__holeIndex.addr.014.i.i27 - store double %25, ptr %add.ptr3.i.i33, align 8 - %cmp.i.i34.not = icmp slt i64 %__parent.015.i.i2967, %__parent.061 - br i1 %cmp.i.i34.not, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56, label %land.rhs.i.i26, !llvm.loop !641 - -_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56: ; preds = %land.rhs.i.i26, %while.body.i.i32, %if.end17.i21 - %__holeIndex.addr.0.lcssa.i.i24 = phi i64 [ %__holeIndex.addr.1.i22, %if.end17.i21 ], [ %__parent.015.i.i2967, %while.body.i.i32 ], [ %__holeIndex.addr.014.i.i27, %land.rhs.i.i26 ] +land.rhs.i.i26: ; preds = %if.end17.i21 + %24 = bitcast i64 %23 to double + br label %land.rhs.i.i27 + +land.rhs.i.i27:; preds = %while.body.i.i33, %land.rhs.i.i26 + %__holeIndex.addr.013.i.i28 = phi i64 [ %__holeIndex.addr.1.i22, %land.rhs.lr.ph.i.i26 ], [ %__parent.014.i.i3068, %while.body.i.i33 ] + %__parent.014.in.i.i29 = add nsw i64 %__holeIndex.addr.013.i.i28, -1 + %__parent.014.i.i3068 = lshr i64 %__parent.014.in.i.i29, 1 + %add.ptr.i.i31 = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.826", ptr %__first, i64 %__parent.014.i.i3068 + %25 = load double, ptr %add.ptr.i.i31, align 8 + %cmp.i.i.i.i32 = fcmp olt double %25, %24 + br i1 %cmp.i.i.i.i32, label %while.body.i.i33, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57 + +while.body.i.i33:; preds = %land.rhs.i.i27 + %add.ptr3.i.i34 = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.826", ptr %__first, i64 %__holeIndex.addr.013.i.i28 + store double %25, ptr %add.ptr3.i.i34, align 8 + %cmp.i.i35.not = icmp slt i64 %__parent.014.i.i3068, %__parent.062 + br i1 %cmp.i.i35.not, label %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57, label %land.rhs.i.i27, !llvm.loop !641 + +_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57: ; preds = %land.rhs.i.i27, %while.body.i.i33, %if.end17.i21 + %__holeIndex.addr.0.lcssa.i.i24 = phi i64 [ %__holeIndex.addr.1.i22, %if.end17.i21 ], [ %__parent.014.i.i3068, %while.body.i.i33 ], [ %__holeIndex.addr.013.i.i28, %land.rhs.i.i27 ] %add.ptr6.i.i25 = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.826", ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i24 store i64 %23, ptr %add.ptr6.i.i25, align 8 %cmp7 = icmp eq i64 %dec, 0 br i1 %cmp7, label %return, label %if.end9.split, !llvm.loop !643 -return: ; preds = %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit, %entry +return: ; preds = %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57.us, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit57, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit, %entry ret void } diff --git a/bench/pbrt-v4/optimized/integrator.ll b/bench/pbrt-v4/optimized/integrator.ll index aae94ca4e9e..b8d3847ebff 100644 --- a/bench/pbrt-v4/optimized/integrator.ll +++ b/bench/pbrt-v4/optimized/integrator.ll @@ -28503,15 +28503,15 @@ _ZNK4pbrt16DiffuseAreaLight11AlphaMaskedERKNS_11InteractionE.exit.thread: ; pred br label %66 _ZNK4pbrt16DiffuseAreaLight11AlphaMaskedERKNS_11InteractionE.exit: ; preds = %44 - %46 = bitcast <2 x float> %.sroa.01.4.vec.insert.i.i.i to i64 - %47 = bitcast float %38 to i32 - %48 = mul i64 %46, -4132994306676758123 + %46 = bitcast float %38 to i32 + %47 = bitcast <2 x float> %.sroa.01.4.vec.insert.i.i.i to i64 + %48 = mul i64 %47, -4132994306676758123 %49 = lshr i64 %48, 47 %50 = xor i64 %49, %48 %51 = mul i64 %50, -4132994306676758123 %52 = xor i64 %51, 5744300541007557372 %53 = mul i64 %52, -4132994306676758123 - %54 = zext i32 %47 to i64 + %54 = zext i32 %46 to i64 %55 = xor i64 %53, %54 %56 = mul i64 %55, -4132994306676758123 %57 = lshr i64 %56, 47 diff --git a/bench/pbrt-v4/optimized/integrators.ll b/bench/pbrt-v4/optimized/integrators.ll index 0b9f831bf43..7182262c6e9 100644 --- a/bench/pbrt-v4/optimized/integrators.ll +++ b/bench/pbrt-v4/optimized/integrators.ll @@ -6486,15 +6486,15 @@ define dso_local { <2 x float>, <2 x float> } @_ZNK4pbrt10Integrator2TrERKNS_11I %126 = fmul float %125, 5.000000e-01 %.sroa.01.0.vec.insert.i = insertelement <2 x float> poison, float %122, i64 0 %.sroa.01.4.vec.insert.i = insertelement <2 x float> %.sroa.01.0.vec.insert.i, float %124, i64 1 - %127 = bitcast <2 x float> %.sroa.01.4.vec.insert.i to i64 - %128 = bitcast float %126 to i32 - %129 = mul i64 %127, -4132994306676758123 + %127 = bitcast float %126 to i32 + %128 = bitcast <2 x float> %.sroa.01.4.vec.insert.i to i64 + %129 = mul i64 %128, -4132994306676758123 %130 = lshr i64 %129, 47 %131 = xor i64 %130, %129 %132 = mul i64 %131, -4132994306676758123 %133 = xor i64 %132, 5744300541007557372 %134 = mul i64 %133, -4132994306676758123 - %135 = zext i32 %128 to i64 + %135 = zext i32 %127 to i64 %136 = xor i64 %134, %135 %137 = mul i64 %136, -4132994306676758123 %138 = lshr i64 %137, 47 @@ -6521,15 +6521,15 @@ define dso_local { <2 x float>, <2 x float> } @_ZNK4pbrt10Integrator2TrERKNS_11I %148 = fmul float %147, 5.000000e-01 %.sroa.01.0.vec.insert.i62 = insertelement <2 x float> poison, float %144, i64 0 %.sroa.01.4.vec.insert.i63 = insertelement <2 x float> %.sroa.01.0.vec.insert.i62, float %146, i64 1 - %149 = bitcast <2 x float> %.sroa.01.4.vec.insert.i63 to i64 - %150 = bitcast float %148 to i32 - %151 = mul i64 %149, -4132994306676758123 + %149 = bitcast float %148 to i32 + %150 = bitcast <2 x float> %.sroa.01.4.vec.insert.i63 to i64 + %151 = mul i64 %150, -4132994306676758123 %152 = lshr i64 %151, 47 %153 = xor i64 %152, %151 %154 = mul i64 %153, -4132994306676758123 %155 = xor i64 %154, 5744300541007557372 %156 = mul i64 %155, -4132994306676758123 - %157 = zext i32 %150 to i64 + %157 = zext i32 %149 to i64 %158 = xor i64 %156, %157 %159 = mul i64 %158, -4132994306676758123 %160 = lshr i64 %159, 47 @@ -68860,15 +68860,15 @@ _ZNK4pbrt16DiffuseAreaLight11AlphaMaskedERKNS_11InteractionE.exit.thread: ; pred br label %66 _ZNK4pbrt16DiffuseAreaLight11AlphaMaskedERKNS_11InteractionE.exit: ; preds = %44 - %46 = bitcast <2 x float> %.sroa.01.4.vec.insert.i.i.i to i64 - %47 = bitcast float %38 to i32 - %48 = mul i64 %46, -4132994306676758123 + %46 = bitcast float %38 to i32 + %47 = bitcast <2 x float> %.sroa.01.4.vec.insert.i.i.i to i64 + %48 = mul i64 %47, -4132994306676758123 %49 = lshr i64 %48, 47 %50 = xor i64 %49, %48 %51 = mul i64 %50, -4132994306676758123 %52 = xor i64 %51, 5744300541007557372 %53 = mul i64 %52, -4132994306676758123 - %54 = zext i32 %47 to i64 + %54 = zext i32 %46 to i64 %55 = xor i64 %53, %54 %56 = mul i64 %55, -4132994306676758123 %57 = lshr i64 %56, 47 diff --git a/bench/php/optimized/zip.ll b/bench/php/optimized/zip.ll index 83c0c76a91a..31323277224 100644 --- a/bench/php/optimized/zip.ll +++ b/bench/php/optimized/zip.ll @@ -6085,7 +6085,7 @@ zend_hash_update_mem.exit126: ; preds = %197, %199 br label %253 253: ; preds = %249, %.thread258 - %.sink239 = phi i16 [ %252, %249 ], [ %248, %.thread258 ] + %.sink239 = phi i16 [ %252, %249 ], [ %248, %.thread261 ] %254 = getelementptr inbounds nuw i8, ptr %12, i64 8 store i16 %.sink239, ptr %254, align 4 %255 = getelementptr inbounds nuw i8, ptr %12, i64 10 diff --git a/bench/proj/optimized/adams.ll b/bench/proj/optimized/adams.ll index 882edd888fd..94dd8cb2291 100644 --- a/bench/proj/optimized/adams.ll +++ b/bench/proj/optimized/adams.ll @@ -261,7 +261,7 @@ define internal fastcc noundef ptr @_ZL14pj_adams_setupP8PJconstsN12_GLOBAL__N_1 br label %.thread75 .thread75: ; preds = %20, %32, %42, %60, %37, %26, %.thread, %.thread73, %7, %11, %75, %55, %73, %5 - %.0 = phi ptr [ %6, %5 ], [ %56, %55 ], [ %74, %73 ], [ %76, %75 ], [ %0, %11 ], [ %0, %7 ], [ %0, %.thread73 ], [ %0, %.thread ], [ %0, %26 ], [ %0, %37 ], [ %0, %60 ], [ %0, %42 ], [ %0, %32 ], [ %0, %20 ] + %.0 = phi ptr [ %6, %5 ], [ %56, %56 ], [ %74, %74 ], [ %77, %76 ], [ %0, %11 ], [ %0, %7 ], [ %0, %.thread73 ], [ %0, %.thread ], [ %0, %27 ], [ %0, %38 ], [ %0, %61 ], [ %0, %43 ], [ %0, %33 ], [ %0, %21 ] ret ptr %.0 } diff --git a/bench/proj/optimized/airocean.ll b/bench/proj/optimized/airocean.ll index 47e58f7c24a..a5ba352de50 100644 --- a/bench/proj/optimized/airocean.ll +++ b/bench/proj/optimized/airocean.ll @@ -92,7 +92,7 @@ define hidden noundef ptr @_Z37pj_projection_specific_setup_airoceanP8PJconsts(p br i1 %.not18, label %.preheader, label %114 .preheader: ; preds = %17, %_ZN12_GLOBAL__N_116pj_airocean_data8mat_multEPA4_KdS3_PA4_d.exit22.i - %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %_ZN12_GLOBAL__N_116pj_airocean_data8mat_multEPA4_KdS3_PA4_d.exit22.i ], [ 0, %17 ] + %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %_ZN12_GLOBAL__N_116pj_airocean_data8mat_multEPA4_KdS3_PA4_d.exit22.i ], [ 0, %18 ] %19 = getelementptr inbounds nuw [4 x [4 x double]], ptr @_ZL18base_ico_air_trans, i64 %indvars.iv.i %20 = getelementptr inbounds nuw [4 x [4 x double]], ptr %10, i64 %indvars.iv.i %21 = getelementptr inbounds nuw i8, ptr %19, i64 32 @@ -101,7 +101,7 @@ define hidden noundef ptr @_Z37pj_projection_specific_setup_airoceanP8PJconsts(p br label %.preheader.i.i .preheader.i.i: ; preds = %33, %.preheader - %indvars.iv26.i.i = phi i64 [ 0, %.preheader ], [ %indvars.iv.next27.i.i, %33 ] + %indvars.iv26.i.i = phi i64 [ 0, %.preheader ], [ %indvars.iv.next27.i.i, %34 ] %24 = getelementptr inbounds nuw [4 x double], ptr @_ZL23orient_horizontal_trans, i64 %indvars.iv26.i.i %25 = getelementptr inbounds nuw i8, ptr %24, i64 8 %26 = getelementptr inbounds nuw i8, ptr %24, i64 16 @@ -119,7 +119,7 @@ define hidden noundef ptr @_Z37pj_projection_specific_setup_airoceanP8PJconsts(p br i1 %exitcond29.not.i.i, label %_ZN12_GLOBAL__N_116pj_airocean_data8mat_multEPA4_KdS3_PA4_d.exit.i, label %.preheader.i.i, !llvm.loop !44 34: ; preds = %34, %.preheader.i.i - %indvars.iv.i.i = phi i64 [ 0, %.preheader.i.i ], [ %indvars.iv.next.i.i, %34 ] + %indvars.iv.i.i = phi i64 [ 0, %.preheader.i.i ], [ %indvars.iv.next.i.i, %35 ] %35 = getelementptr inbounds nuw double, ptr %19, i64 %indvars.iv.i.i %36 = load double, ptr %35, align 8, !tbaa !43 %37 = getelementptr inbounds nuw double, ptr %21, i64 %indvars.iv.i.i @@ -144,7 +144,7 @@ _ZN12_GLOBAL__N_116pj_airocean_data8mat_multEPA4_KdS3_PA4_d.exit.i: ; preds = %3 br label %.preheader.i15.i .preheader.i15.i: ; preds = %59, %_ZN12_GLOBAL__N_116pj_airocean_data8mat_multEPA4_KdS3_PA4_d.exit.i - %indvars.iv26.i16.i = phi i64 [ 0, %_ZN12_GLOBAL__N_116pj_airocean_data8mat_multEPA4_KdS3_PA4_d.exit.i ], [ %indvars.iv.next27.i20.i, %59 ] + %indvars.iv26.i16.i = phi i64 [ 0, %_ZN12_GLOBAL__N_116pj_airocean_data8mat_multEPA4_KdS3_PA4_d.exit.i ], [ %indvars.iv.next27.i20.i, %60 ] %50 = getelementptr inbounds nuw [4 x double], ptr %48, i64 %indvars.iv26.i16.i %51 = getelementptr inbounds nuw i8, ptr %50, i64 8 %52 = getelementptr inbounds nuw i8, ptr %50, i64 16 @@ -162,7 +162,7 @@ _ZN12_GLOBAL__N_116pj_airocean_data8mat_multEPA4_KdS3_PA4_d.exit.i: ; preds = %3 br i1 %exitcond29.not.i21.i, label %_ZN12_GLOBAL__N_116pj_airocean_data8mat_multEPA4_KdS3_PA4_d.exit22.i, label %.preheader.i15.i, !llvm.loop !44 60: ; preds = %60, %.preheader.i15.i - %indvars.iv.i17.i = phi i64 [ 0, %.preheader.i15.i ], [ %indvars.iv.next.i18.i, %60 ] + %indvars.iv.i17.i = phi i64 [ 0, %.preheader.i15.i ], [ %indvars.iv.next.i18.i, %61 ] %61 = getelementptr inbounds nuw double, ptr @_ZL27orient_horizontal_inv_trans, i64 %indvars.iv.i17.i %62 = load double, ptr %61, align 8, !tbaa !43 %63 = getelementptr inbounds nuw double, ptr getelementptr inbounds nuw (i8, ptr @_ZL27orient_horizontal_inv_trans, i64 32), i64 %indvars.iv.i17.i @@ -261,7 +261,7 @@ _ZN12_GLOBAL__N_116pj_airocean_data9transformEPA4_KdS3_.exit: ; preds = %_ZN12_G br label %120 120: ; preds = %_ZN12_GLOBAL__N_116pj_airocean_data9transformEPA4_KdS3_.exit, %116, %4 - %.0 = phi ptr [ %5, %4 ], [ %117, %116 ], [ %0, %_ZN12_GLOBAL__N_116pj_airocean_data9transformEPA4_KdS3_.exit ] + %.0 = phi ptr [ %5, %4 ], [ %117, %117 ], [ %0, %_ZN12_GLOBAL__N_116pj_airocean_data9transformEPA4_KdS3_.exit ] ret ptr %.0 } diff --git a/bench/proj/optimized/datum_set.ll b/bench/proj/optimized/datum_set.ll index 3b02698612c..0806d7b208f 100644 --- a/bench/proj/optimized/datum_set.ll +++ b/bench/proj/optimized/datum_set.ll @@ -22,7 +22,7 @@ define hidden noundef range(i32 -1, 2) i32 @_Z12pj_datum_setP6pj_ctxP8ARG_listP8 br i1 %.not, label %.critedge111, label %.preheader .preheader: ; preds = %3, %7 - %.081 = phi ptr [ %8, %7 ], [ %1, %3 ] + %.081 = phi ptr [ %8, %8 ], [ %1, %3 ] %.not96 = icmp eq ptr %.081, null br i1 %.not96, label %.critedge111.thread, label %7 @@ -45,8 +45,8 @@ define hidden noundef range(i32 -1, 2) i32 @_Z12pj_datum_setP6pj_ctxP8ARG_listP8 br i1 %.not98, label %.critedge112, label %.lr.ph, !llvm.loop !41 .lr.ph: ; preds = %.critedge, %11 - %indvars.iv = phi i64 [ %indvars.iv.next, %11 ], [ 0, %.critedge ] - %14 = phi ptr [ %13, %11 ], [ %10, %.critedge ] + %indvars.iv = phi i64 [ %indvars.iv.next, %12 ], [ 0, %.critedge ] + %14 = phi ptr [ %13, %12 ], [ %10, %.critedge ] %15 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.sroa.046.0..sroa.046.0..cast, ptr noundef nonnull dereferenceable(1) %14) #7 %.not99 = icmp eq i32 %15, 0 br i1 %.not99, label %.critedge4, label %11 @@ -92,7 +92,7 @@ define hidden noundef range(i32 -1, 2) i32 @_Z12pj_datum_setP6pj_ctxP8ARG_listP8 br label %28 28: ; preds = %27, %19, %.critedge4 - %.182 = phi ptr [ %26, %27 ], [ %.081, %19 ], [ %.081, %.critedge4 ] + %.182 = phi ptr [ %26, %28 ], [ %.081, %20 ], [ %.081, %.critedge4 ] %29 = getelementptr inbounds nuw i8, ptr %16, i64 8 %30 = load ptr, ptr %29, align 8, !tbaa !44 %.not103 = icmp eq ptr %30, null @@ -143,8 +143,8 @@ define hidden noundef range(i32 -1, 2) i32 @_Z12pj_datum_setP6pj_ctxP8ARG_listP8 br label %56 .lr.ph124: ; preds = %39, %.critedge6 - %indvars.iv130 = phi i64 [ %indvars.iv.next131, %.critedge6 ], [ 0, %39 ] - %.0123 = phi ptr [ %spec.select, %.critedge6 ], [ %.sroa.0.0..sroa.0.0..cast, %39 ] + %indvars.iv130 = phi i64 [ %indvars.iv.next131, %.critedge6 ], [ 0, %40 ] + %.0123 = phi ptr [ %spec.select, %.critedge6 ], [ %.sroa.0.0..sroa.0.0..cast, %40 ] %43 = call noundef double @_Z7pj_atofPKc(ptr noundef nonnull %.0123) %indvars.iv.next131 = add nuw nsw i64 %indvars.iv130, 1 %44 = getelementptr inbounds nuw double, ptr %40, i64 %indvars.iv130 @@ -152,9 +152,9 @@ define hidden noundef range(i32 -1, 2) i32 @_Z12pj_datum_setP6pj_ctxP8ARG_listP8 br label %45 45: ; preds = %47, %.lr.ph124 - %.1 = phi ptr [ %.0123, %.lr.ph124 ], [ %48, %47 ] + %.1 = phi ptr [ %.0123, %.lr.ph126 ], [ %48, %49 ] %46 = load i8, ptr %.1, align 1, !tbaa !43 - switch i8 %46, label %47 [ + switch i8 %46, label %49 [ i8 0, label %.critedge6 i8 44, label %.critedge6 ] @@ -206,9 +206,9 @@ define hidden noundef range(i32 -1, 2) i32 @_Z12pj_datum_setP6pj_ctxP8ARG_listP8 br i1 %69, label %70, label %84 70: ; preds = %._crit_edge._crit_edge, %66, %62, %56 - %71 = phi ptr [ %54, %._crit_edge._crit_edge ], [ %57, %66 ], [ %57, %62 ], [ %57, %56 ] - %72 = phi double [ %.pre, %._crit_edge._crit_edge ], [ %58, %66 ], [ %58, %62 ], [ %58, %56 ] - %73 = phi double [ %.pre134, %._crit_edge._crit_edge ], [ %60, %66 ], [ %60, %62 ], [ %60, %56 ] + %71 = phi ptr [ %54, %._crit_edge._crit_edge ], [ %57, %68 ], [ %57, %64 ], [ %57, %58 ] + %72 = phi double [ %.pre, %._crit_edge._crit_edge ], [ %58, %68 ], [ %58, %64 ], [ %58, %58 ] + %73 = phi double [ %.pre134, %._crit_edge._crit_edge ], [ %60, %68 ], [ %60, %64 ], [ %60, %58 ] store i32 2, ptr %5, align 8, !tbaa !3 %74 = fmul double %72, 0x3ED455A5B2FF8F9D store double %74, ptr %71, align 8, !tbaa !45 @@ -231,7 +231,7 @@ define hidden noundef range(i32 -1, 2) i32 @_Z12pj_datum_setP6pj_ctxP8ARG_listP8 br label %.critedge111.thread .critedge111.thread: ; preds = %.preheader, %.thread114, %.thread, %.critedge112, %36, %37, %84, %70 - %.6 = phi i32 [ 0, %70 ], [ 0, %84 ], [ 0, %37 ], [ 0, %36 ], [ 1, %.thread114 ], [ 1, %.thread ], [ 1, %.critedge112 ], [ -1, %.preheader ] + %.6 = phi i32 [ 0, %72 ], [ 0, %86 ], [ 0, %38 ], [ 0, %37 ], [ 1, %.thread116 ], [ 1, %.thread ], [ 1, %.critedge114 ], [ -1, %.preheader ] ret i32 %.6 } diff --git a/bench/proj/optimized/geod_set.ll b/bench/proj/optimized/geod_set.ll index d22e3c76ce8..7889aba1e43 100644 --- a/bench/proj/optimized/geod_set.ll +++ b/bench/proj/optimized/geod_set.ll @@ -120,9 +120,9 @@ define hidden void @geod_set(i32 noundef %0, ptr noundef readonly captures(none) br i1 %.1, label %44, label %42 .lr.ph89: ; preds = %.lr.ph82.split, %39 - %indvars.iv97 = phi i64 [ %indvars.iv.next98, %39 ], [ 0, %.lr.ph82.split ] - %29 = phi ptr [ %41, %39 ], [ %28, %.lr.ph82.split ] - %.0618087 = phi i1 [ %.1, %39 ], [ false, %.lr.ph82.split ] + %indvars.iv97 = phi i64 [ %indvars.iv.next98, %40 ], [ 0, %.lr.ph83.split ] + %29 = phi ptr [ %41, %40 ], [ %28, %.lr.ph83.split ] + %.0618087 = phi i1 [ %.1, %40 ], [ false, %.lr.ph83.split ] %30 = getelementptr inbounds nuw i8, ptr %29, i64 40 %31 = load ptr, ptr %30, align 8, !tbaa !14 %.not75 = icmp eq ptr %31, null @@ -142,7 +142,7 @@ define hidden void @geod_set(i32 noundef %0, ptr noundef readonly captures(none) br label %39 39: ; preds = %.lr.ph89, %32, %35 - %.1 = phi i1 [ true, %35 ], [ %.0618087, %32 ], [ %.0618087, %.lr.ph89 ] + %.1 = phi i1 [ true, %36 ], [ %.0618087, %33 ], [ %.0618187, %.lr.ph90 ] %indvars.iv.next98 = add nuw nsw i64 %indvars.iv97, 1 %40 = getelementptr inbounds nuw ptr, ptr %27, i64 %indvars.iv.next98 %41 = load ptr, ptr %40, align 8, !tbaa !13 @@ -260,7 +260,7 @@ define hidden void @geod_set(i32 noundef %0, ptr noundef readonly captures(none) br i1 %.not, label %._crit_edge94, label %.lr.ph93 .lr.ph93: ; preds = %88, %.lr.ph93 - %.091 = phi ptr [ %89, %.lr.ph93 ], [ %8, %88 ] + %.091 = phi ptr [ %89, %.lr.ph94 ], [ %8, %89 ] %89 = load ptr, ptr %.091, align 8, !tbaa !9 call void @free(ptr noundef nonnull %.091) #8 %.not74 = icmp eq ptr %89, null diff --git a/bench/proj/optimized/helmert.ll b/bench/proj/optimized/helmert.ll index 810113470f7..c776f439695 100644 --- a/bench/proj/optimized/helmert.ll +++ b/bench/proj/optimized/helmert.ll @@ -1098,7 +1098,7 @@ define internal fastcc noundef ptr @_ZL15read_conventionP8PJconsts(ptr noundef % br i1 %16, label %17, label %.thread.sink.split 17: ; preds = %14, %11 - %.sink = phi i32 [ 1, %11 ], [ 0, %14 ] + %.sink = phi i32 [ 1, %12 ], [ 0, %15 ] %18 = getelementptr inbounds nuw i8, ptr %3, i64 316 store i32 %.sink, ptr %18, align 4, !tbaa !82 %19 = load ptr, ptr %8, align 8, !tbaa !40 @@ -1113,14 +1113,14 @@ define internal fastcc noundef ptr @_ZL15read_conventionP8PJconsts(ptr noundef % br i1 %.not22, label %.thread.sink.split, label %.thread .thread.sink.split: ; preds = %21, %14, %6 - %.str.61.sink = phi ptr [ @.str.61, %6 ], [ @.str.64, %14 ], [ @.str.65, %21 ] - %.sink26 = phi i32 [ 1026, %6 ], [ 1027, %14 ], [ 1027, %21 ] + %.str.61.sink = phi ptr [ @.str.61, %6 ], [ @.str.64, %15 ], [ @.str.65, %22 ] + %.sink26 = phi i32 [ 1026, %6 ], [ 1027, %15 ], [ 1027, %22 ] tail call void (ptr, ptr, ...) @_Z14proj_log_errorPK8PJconstsPKcz(ptr noundef nonnull %0, ptr noundef nonnull %.str.61.sink) %24 = tail call noundef ptr @_Z21pj_default_destructorP8PJconstsi(ptr noundef nonnull %0, i32 noundef %.sink26) br label %.thread .thread: ; preds = %.thread.sink.split, %1, %17, %21 - %.1 = phi ptr [ %0, %21 ], [ %0, %17 ], [ %0, %1 ], [ %24, %.thread.sink.split ] + %.1 = phi ptr [ %0, %22 ], [ %0, %18 ], [ %0, %1 ], [ %24, %.thread.sink.split ] ret ptr %.1 } diff --git a/bench/proj/optimized/horner.ll b/bench/proj/optimized/horner.ll index acec97a265b..eabdc41b788 100644 --- a/bench/proj/optimized/horner.ll +++ b/bench/proj/optimized/horner.ll @@ -1224,8 +1224,8 @@ define internal fastcc noundef range(i32 0, 2) i32 @_ZL11parse_coefsP8PJconstsPd br label %.lr.ph .lr.ph: ; preds = %.lr.ph.preheader, %34 - %indvars.iv = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next, %34 ] - %.02936 = phi ptr [ %.sroa.0.0..sroa.0.0..cast, %.lr.ph.preheader ], [ %.1, %34 ] + %indvars.iv = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next, %35 ] + %.02936 = phi ptr [ %.sroa.0.0..sroa.0.0..cast, %.lr.ph.preheader ], [ %.1, %35 ] %.not = icmp eq i64 %indvars.iv, 0 br i1 %.not, label %34, label %26 @@ -1249,7 +1249,7 @@ define internal fastcc noundef range(i32 0, 2) i32 @_ZL11parse_coefsP8PJconstsPd br label %34 34: ; preds = %32, %.lr.ph - %.1 = phi ptr [ %33, %32 ], [ %.02936, %.lr.ph ] + %.1 = phi ptr [ %33, %33 ], [ %.02936, %.lr.ph ] %35 = call noundef double @_Z9pj_strtodPKcPPc(ptr noundef %.1, ptr noundef nonnull %5) %36 = getelementptr inbounds nuw double, ptr %1, i64 %indvars.iv store double %35, ptr %36, align 8, !tbaa !62 @@ -1258,7 +1258,7 @@ define internal fastcc noundef range(i32 0, 2) i32 @_ZL11parse_coefsP8PJconstsPd br i1 %exitcond.not, label %.loopexit, label %.lr.ph, !llvm.loop !77 .loopexit: ; preds = %34, %20, %31, %19, %10 - %.0 = phi i32 [ 0, %10 ], [ 0, %19 ], [ 0, %31 ], [ 1, %20 ], [ 1, %34 ] + %.0 = phi i32 [ 0, %10 ], [ 0, %19 ], [ 0, %32 ], [ 1, %20 ], [ 1, %35 ] call void @llvm.lifetime.end.p0(ptr nonnull %5) ret i32 %.0 } diff --git a/bench/proj/optimized/info.ll b/bench/proj/optimized/info.ll index 08d7c5b35fb..582907219bb 100644 --- a/bench/proj/optimized/info.ll +++ b/bench/proj/optimized/info.ll @@ -384,7 +384,7 @@ define void @proj_pj_info(ptr dead_on_unwind noalias writable writeonly sret(%st 73: ; preds = %64 invoke void @_ZSt24__throw_invalid_argumentPKc(ptr noundef nonnull @.str.7) #23 - to label %74 unwind label %75 + to label %75 unwind label %75 74: ; preds = %73 unreachable @@ -410,14 +410,14 @@ _ZZN9__gnu_cxx6__stoaIddcJEEET0_PFT_PKT1_PPS3_DpT2_EPKcS5_PmS9_EN11_Save_errnoD2 83: ; preds = %64 %84 = load i32, ptr %68, align 4, !tbaa !55 - switch i32 %84, label %87 [ + switch i32 %84, label %88 [ i32 34, label %.critedge.i.i i32 0, label %86 ] .critedge.i.i: ; preds = %83 invoke void @_ZSt20__throw_out_of_rangePKc(ptr noundef nonnull @.str.7) #23 - to label %85 unwind label %75 + to label %86 unwind label %75 85: ; preds = %.critedge.i.i unreachable @@ -452,13 +452,13 @@ _ZZN9__gnu_cxx6__stoaIddcJEEET0_PFT_PKT1_PPS3_DpT2_EPKcS5_PmS9_EN11_Save_errnoD2 br i1 %97, label %99, label %.thread78 .thread78: ; preds = %92, %95 - %.04581 = phi ptr [ %96, %95 ], [ %94, %92 ] + %.04581 = phi ptr [ %96, %96 ], [ %94, %93 ] %98 = tail call noundef ptr @_Z9pj_shrinkPc(ptr noundef nonnull %.04581) br label %99 99: ; preds = %95, %.thread78 - %.sink = phi ptr [ %98, %.thread78 ], [ @.str.6, %95 ] - %.04580 = phi ptr [ %.04581, %.thread78 ], [ null, %95 ] + %.sink = phi ptr [ %98, %.thread78 ], [ @.str.6, %96 ] + %.04580 = phi ptr [ %.04581, %.thread78 ], [ null, %96 ] %100 = getelementptr inbounds nuw i8, ptr %0, i64 16 store ptr %.sink, ptr %100, align 8, !tbaa !89 store ptr %.04580, ptr %93, align 8, !tbaa !99 diff --git a/bench/proj/optimized/param.ll b/bench/proj/optimized/param.ll index 5d12c6a95cc..e1e55de2458 100644 --- a/bench/proj/optimized/param.ll +++ b/bench/proj/optimized/param.ll @@ -206,8 +206,6 @@ declare i32 @strcmp(ptr noundef captures(none), ptr noundef captures(none)) loca ; Function Attrs: mustprogress uwtable define i64 @_Z8pj_paramP6pj_ctxP8ARG_listPKc(ptr noundef %0, ptr noundef %1, ptr noundef %2) local_unnamed_addr #8 { - %.sroa.0 = alloca double, align 8 - store double 0.000000e+00, ptr %.sroa.0, align 8 %4 = icmp eq ptr %0, null br i1 %4, label %5, label %7 @@ -278,48 +276,26 @@ _Z15pj_param_existsP8ARG_listPKc.exit: ; preds = %30, %33, %15, %28 36: ; preds = %_Z15pj_param_existsP8ARG_listPKc.exit %37 = icmp ne ptr %.020.i, null - %38 = zext i1 %37 to i32 - store i32 %38, ptr %.sroa.0, align 8, !tbaa !3 + %38 = zext i1 %37 to i64 br label %.loopexit 39: ; preds = %_Z15pj_param_existsP8ARG_listPKc.exit %40 = icmp eq ptr %.020.i, null - br i1 %40, label %41, label %45 + br i1 %40, label %.loopexit, label %40 41: ; preds = %39 - switch i8 %9, label %.loopexit [ - i8 98, label %42 - i8 105, label %42 - i8 100, label %43 - i8 114, label %43 - i8 115, label %44 - ] - -42: ; preds = %41, %41 - store i32 0, ptr %.sroa.0, align 8, !tbaa !3 - br label %.loopexit - -43: ; preds = %41, %41 - store double 0.000000e+00, ptr %.sroa.0, align 8, !tbaa !3 - br label %.loopexit - -44: ; preds = %41 - store ptr null, ptr %.sroa.0, align 8, !tbaa !3 - br label %.loopexit - -45: ; preds = %39 - %46 = getelementptr inbounds nuw i8, ptr %.020.i, i64 8 - %47 = load i8, ptr %46, align 8, !tbaa !3 - %48 = or i8 %47, 1 - store i8 %48, ptr %46, align 8, !tbaa !3 - %49 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %8) #15 - %50 = getelementptr inbounds nuw i8, ptr %.020.i, i64 9 - %51 = and i64 %49, 4294967295 - %52 = getelementptr inbounds nuw i8, ptr %50, i64 %51 - %53 = load i8, ptr %52, align 1, !tbaa !3 - %54 = icmp eq i8 %53, 61 - %spec.select.idx = zext i1 %54 to i64 - %spec.select = getelementptr inbounds nuw i8, ptr %52, i64 %spec.select.idx + %41 = getelementptr inbounds nuw i8, ptr %.020.i, i64 8 + %42 = load i8, ptr %41, align 8, !tbaa !3 + %43 = or i8 %42, 1 + store i8 %43, ptr %41, align 8, !tbaa !3 + %44 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %8) #15 + %45 = getelementptr inbounds nuw i8, ptr %.020.i, i64 9 + %46 = and i64 %44, 4294967295 + %47 = getelementptr inbounds nuw i8, ptr %45, i64 %46 + %48 = load i8, ptr %47, align 1, !tbaa !3 + %49 = icmp eq i8 %48, 61 + %spec.select.idx = zext i1 %49 to i64 + %spec.select = getelementptr inbounds nuw i8, ptr %47, i64 %spec.select.idx switch i8 %9, label %.loopexit [ i8 105, label %55 i8 100, label %65 @@ -328,72 +304,66 @@ _Z15pj_param_existsP8ARG_listPKc.exit: ; preds = %30, %33, %15, %28 i8 98, label %70 ] -55: ; preds = %45 +55: ; preds = %40 %56 = tail call i64 @strtol(ptr noundef nonnull captures(none) %spec.select, ptr noundef null, i32 noundef 10) #17 - %57 = trunc i64 %56 to i32 - store i32 %57, ptr %.sroa.0, align 8, !tbaa !3 - %58 = load i8, ptr %spec.select, align 1, !tbaa !3 - %.not37 = icmp eq i8 %58, 0 - br i1 %.not37, label %.loopexit, label %.lr.ph - -.lr.ph: ; preds = %55, %62 - %59 = phi i8 [ %64, %62 ], [ %58, %55 ] - %.038 = phi ptr [ %63, %62 ], [ %spec.select, %55 ] - %60 = add i8 %59, -48 + %.sroa.0.0.insert.ext32 = and i64 %56, 4294967295 + %52 = load i8, ptr %spec.select, align 1, !tbaa !3 + %.not55 = icmp eq i8 %52, 0 + br i1 %.not55, label %.loopexit, label %.lr.ph + +.lr.ph: ; preds = %50, %56 + %53 = phi i8 [ %58, %56 ], [ %52, %50 ] + %59 = phi ptr [ %63, %56 ], [ %spec.select, %50 ] + %.038 = phi i64 [ %.sroa.0.4, %56 ], [ %.sroa.0.0.insert.ext32, %50 ] + %60 = add i8 %53, -48 %or.cond = icmp ult i8 %60, 10 - br i1 %or.cond, label %62, label %61 + br i1 %or.cond, label %56, label %61 61: ; preds = %.lr.ph tail call void @_Z22proj_context_errno_setP6pj_ctxi(ptr noundef %.028, i32 noundef 1027) - store i32 0, ptr %.sroa.0, align 8, !tbaa !3 - br label %62 + br label %56 -62: ; preds = %.lr.ph, %61 - %63 = getelementptr inbounds nuw i8, ptr %.038, i64 1 +56: ; preds = %.lr.ph, %55 + %.sroa.0.4 = phi i64 [ 0, %55 ], [ %.038, %.lr.ph ] + %63 = getelementptr inbounds nuw i8, ptr %.057, i64 1 %64 = load i8, ptr %63, align 1, !tbaa !3 %.not = icmp eq i8 %64, 0 br i1 %.not, label %.loopexit, label %.lr.ph, !llvm.loop !21 -65: ; preds = %45 +65: ; preds = %40 %66 = tail call noundef double @_Z7pj_atofPKc(ptr noundef nonnull %spec.select) - store double %66, ptr %.sroa.0, align 8, !tbaa !3 + %61 = bitcast double %66 to i64 br label %.loopexit -67: ; preds = %45 +67: ; preds = %40 %68 = tail call noundef double @_Z10dmstor_ctxP6pj_ctxPKcPPc(ptr noundef %.028, ptr noundef nonnull %spec.select, ptr noundef null) - store double %68, ptr %.sroa.0, align 8, !tbaa !3 + %64 = bitcast double %68 to i64 br label %.loopexit -69: ; preds = %45 - store ptr %spec.select, ptr %.sroa.0, align 8, !tbaa !3 +69: ; preds = %40 + %66 = ptrtoint ptr %spec.select to i64 br label %.loopexit -70: ; preds = %45 +70: ; preds = %40 %71 = load i8, ptr %spec.select, align 1, !tbaa !3 - switch i8 %71, label %74 [ - i8 70, label %72 - i8 102, label %72 - i8 0, label %73 - i8 84, label %73 - i8 116, label %73 + switch i8 %71, label %70 [ + i8 70, label %.loopexit + i8 102, label %.loopexit + i8 0, label %72 + i8 84, label %72 + i8 116, label %72 ] -72: ; preds = %70, %70 - store i32 0, ptr %.sroa.0, align 8, !tbaa !3 - br label %.loopexit - -73: ; preds = %70, %70, %70 - store i32 1, ptr %.sroa.0, align 8, !tbaa !3 +72: ; preds = %70, %70, %67 br label %.loopexit 74: ; preds = %70 tail call void @_Z22proj_context_errno_setP6pj_ctxi(ptr noundef %.028, i32 noundef 1027) - store i32 0, ptr %.sroa.0, align 8, !tbaa !3 br label %.loopexit -.loopexit: ; preds = %62, %55, %45, %65, %67, %69, %74, %73, %72, %41, %42, %43, %44, %36 - %.sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.34354549 = load i64, ptr %.sroa.0, align 8 - ret i64 %.sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.34354549 +.loopexit: ; preds = %56, %55, %38, %40, %65, %67, %69, %74, %72, %67, %67, %36 + %.sroa.0.0 = phi i64 [ %.sroa.0.0.insert.ext, %36 ], [ 0, %40 ], [ %61, %59 ], [ %64, %62 ], [ %66, %65 ], [ 0, %70 ], [ 1, %69 ], [ 0, %67 ], [ 0, %67 ], [ 0, %38 ], [ %.sroa.0.0.insert.ext32, %50 ], [ %.sroa.0.4, %56 ] + ret i64 %.sroa.0.0 } declare noundef ptr @_Z18pj_get_default_ctxv() local_unnamed_addr #9 diff --git a/bench/proj/optimized/tmerc.ll b/bench/proj/optimized/tmerc.ll index abb671a1377..b0fce066e9c 100644 --- a/bench/proj/optimized/tmerc.ll +++ b/bench/proj/optimized/tmerc.ll @@ -149,50 +149,50 @@ define internal fastcc noundef zeroext i1 @_ZL17getAlgoFromParamsP8PJconstsR9TMe .thread: ; preds = %21 store i32 0, ptr %1, align 4, !tbaa !3 - br label %32 + br label %33 24: ; preds = %21 tail call void (ptr, ptr, ...) @_Z14proj_log_errorPK8PJconstsPKcz(ptr noundef nonnull %0, ptr noundef nonnull @.str.15) br label %47 25: ; preds = %9 - %26 = load ptr, ptr %0, align 8, !tbaa !42 - tail call void @_Z11pj_load_iniP6pj_ctx(ptr noundef %26) %27 = load ptr, ptr %0, align 8, !tbaa !42 - tail call void @_Z22proj_context_errno_setP6pj_ctxi(ptr noundef %27, i32 noundef 0) + tail call void @_Z11pj_load_iniP6pj_ctx(ptr noundef %27) %28 = load ptr, ptr %0, align 8, !tbaa !42 - %29 = getelementptr inbounds nuw i8, ptr %28, i64 560 - %30 = load i32, ptr %29, align 8, !tbaa !44 - store i32 %30, ptr %1, align 4, !tbaa !3 - %31 = icmp eq i32 %30, 0 - br i1 %31, label %32, label %47 - -32: ; preds = %.thread, %25 - %33 = getelementptr inbounds nuw i8, ptr %0, i64 216 - %34 = load double, ptr %33, align 8, !tbaa !67 - %35 = fcmp ogt double %34, 1.000000e-01 - br i1 %35, label %46, label %36 - -36: ; preds = %32 - %37 = getelementptr inbounds nuw i8, ptr %0, i64 448 - %38 = load double, ptr %37, align 8, !tbaa !68 - %39 = fcmp une double %38, 0.000000e+00 - br i1 %39, label %46, label %40 - -40: ; preds = %36 - %41 = getelementptr inbounds nuw i8, ptr %0, i64 488 - %42 = load double, ptr %41, align 8, !tbaa !69 - %43 = fadd double %42, -1.000000e+00 - %44 = tail call double @llvm.fabs.f64(double %43) - %45 = fcmp ogt double %44, 1.000000e-02 - br i1 %45, label %46, label %47 - -46: ; preds = %40, %36, %32 + tail call void @_Z22proj_context_errno_setP6pj_ctxi(ptr noundef %28, i32 noundef 0) + %30 = load ptr, ptr %0, align 8, !tbaa !42 + %30 = getelementptr inbounds nuw i8, ptr %29, i64 560 + %31 = load i32, ptr %30, align 8, !tbaa !44 + store i32 %31, ptr %1, align 4, !tbaa !3 + %32 = icmp eq i32 %31, 0 + br i1 %32, label %33, label %48 + +33:; preds = %.thread, %26 + %34 = getelementptr inbounds nuw i8, ptr %0, i64 216 + %35 = load double, ptr %34, align 8, !tbaa !67 + %36 = fcmp ogt double %35, 1.000000e-01 + br i1 %36, label %47, label %37 + +37:; preds = %33 + %38 = getelementptr inbounds nuw i8, ptr %0, i64 448 + %39 = load double, ptr %38, align 8, !tbaa !68 + %40 = fcmp une double %39, 0.000000e+00 + br i1 %40, label %47, label %41 + +41:; preds = %37 + %42 = getelementptr inbounds nuw i8, ptr %0, i64 488 + %43 = load double, ptr %42, align 8, !tbaa !69 + %44 = fadd double %43, -1.000000e+00 + %45 = tail call double @llvm.fabs.f64(double %44) + %46 = fcmp ogt double %45, 1.000000e-02 + br i1 %46, label %47, label %48 + +47: ; preds = %41, %37, %33 store i32 2, ptr %1, align 4, !tbaa !3 br label %47 -47: ; preds = %16, %20, %24, %46, %40, %25, %8 - %.0 = phi i1 [ true, %8 ], [ true, %16 ], [ true, %20 ], [ false, %24 ], [ true, %46 ], [ true, %40 ], [ true, %25 ] +47: ; preds = %16, %20, %24, %47, %41, %25, %8 + %.0 = phi i1 [ true, %8 ], [ true, %17 ], [ true, %21 ], [ false, %25 ], [ true, %47 ], [ true, %41 ], [ true, %26 ] ret i1 %.0 } diff --git a/bench/quickjs/optimized/qjsc.ll b/bench/quickjs/optimized/qjsc.ll index 7331812c6b6..1ce37cb0016 100644 --- a/bench/quickjs/optimized/qjsc.ll +++ b/bench/quickjs/optimized/qjsc.ll @@ -348,7 +348,7 @@ namelist_add.exit: ; preds = %27, %34 br i1 %exitcond.not.i49, label %namelist_find.exit50.thread, label %59, !llvm.loop !22 59: ; preds = %58, %.lr.ph.i44 - %indvars.iv.i46 = phi i64 [ 0, %.lr.ph.i44 ], [ %indvars.iv.next.i48, %58 ] + %indvars.iv.i46 = phi i64 [ 0, %.lr.ph.i40 ], [ %indvars.iv.next.i48, %58 ] %60 = getelementptr inbounds nuw %struct.namelist_entry_t, ptr %57, i64 %indvars.iv.i46 %61 = load ptr, ptr %60, align 8, !tbaa !15 %62 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %61, ptr noundef nonnull readonly dereferenceable(1) %6) #19 diff --git a/bench/quickjs/optimized/quickjs-libc.ll b/bench/quickjs/optimized/quickjs-libc.ll index 4c10153b712..d8b9175b1e9 100644 --- a/bench/quickjs/optimized/quickjs-libc.ll +++ b/bench/quickjs/optimized/quickjs-libc.ll @@ -429,7 +429,7 @@ define dso_local range(i32 -1, 1) i32 @js_module_set_import_meta(ptr noundef %0, br label %JS_FreeValue.exit JS_FreeValue.exit: ; preds = %39, %34, %25, %16, %.critedge, %5 - %.0 = phi i32 [ -1, %16 ], [ -1, %5 ], [ -1, %.critedge ], [ 0, %25 ], [ 0, %34 ], [ 0, %39 ] + %.0 = phi i32 [ -1, %17 ], [ -1, %5 ], [ -1, %.critedge ], [ 0, %26 ], [ 0, %35 ], [ 0, %40 ] call void @llvm.lifetime.end.p0(ptr nonnull %6) ret i32 %.0 } @@ -554,20 +554,20 @@ define dso_local ptr @js_module_loader(ptr noundef %0, ptr noundef %1, ptr readn %.sroa.02.0..sroa.02.0..cast = inttoptr i64 %36 to ptr %41 = trunc i64 %37 to i32 %42 = icmp ugt i32 %41, -12 - br i1 %42, label %43, label %JS_FreeValue.exit + br i1 %42, label %44, label %JS_FreeValue.exit -43: ; preds = %39 - %44 = load i32, ptr %.sroa.02.0..sroa.02.0..cast, align 4, !tbaa !14 - %45 = add i32 %44, -1 - store i32 %45, ptr %.sroa.02.0..sroa.02.0..cast, align 4, !tbaa !14 - %46 = icmp slt i32 %45, 1 - br i1 %46, label %47, label %JS_FreeValue.exit +47: ; preds = %39 + %45 = load i32, ptr %41, align 4, !tbaa !14 + %46 = add i32 %45, -1 + store i32 %46, ptr %41, align 4, !tbaa !14 + %47 = icmp slt i32 %46, 1 + br i1 %47, label %48, label %JS_FreeValue.exit -47: ; preds = %43 +48: ; preds = %44 tail call void @__JS_FreeValue(ptr noundef %0, i64 %36, i64 %37) #30 br label %JS_FreeValue.exit -JS_FreeValue.exit: ; preds = %39, %43, %47 +JS_FreeValue.exit: ; preds = %39, %44, %48 call void @llvm.lifetime.end.p0(ptr nonnull %4) br label %js_module_loader_so.exit diff --git a/bench/typst-rs/optimized/2d3c2n5y91mtl0x0.ll b/bench/typst-rs/optimized/2d3c2n5y91mtl0x0.ll index 52537b289fd..ae342557f69 100644 --- a/bench/typst-rs/optimized/2d3c2n5y91mtl0x0.ll +++ b/bench/typst-rs/optimized/2d3c2n5y91mtl0x0.ll @@ -165369,7 +165369,7 @@ define void @"_ZN81_$LT$typst..text..lang..Region$u20$as$u20$typst..foundations. %14 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr55drop_in_place$LT$typst..foundations..cast..CastInfo$GT$17h1ada62c17a51fa02E.llvm.4622153547959463051"(ptr noalias noundef nonnull align 8 dereferenceable(48) %4) #61 - to label %.thread32 unwind label %15, !noalias !30179 + to label %.thread30 unwind label %15, !noalias !30179 15: ; preds = %13 %16 = landingpad { ptr, i32 } @@ -165514,7 +165514,7 @@ define void @"_ZN81_$LT$typst..text..lang..Region$u20$as$u20$typst..foundations. unreachable .thread: ; preds = %29, %25, %.thread32 - %.pn31 = phi { ptr, i32 } [ %14, %.thread32 ], [ %26, %25 ], [ %26, %29 ] + %.pn31 = phi { ptr, i32 } [ %14, %.thread30 ], [ %26, %25 ], [ %26, %29 ] resume { ptr, i32 } %.pn31 .thread32: ; preds = %13 diff --git a/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll b/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll index 5baec224c26..fff62be63f1 100644 --- a/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll +++ b/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll @@ -28124,8 +28124,6 @@ define hidden void @_ZN4exif7isobmff13get_exif_attr17heb04c9cbdb70aefcE(ptr noal .lr.ph: ; preds = %.lr.ph.i %.sroa.6.i.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %18, i64 16 %.sroa.6.i.sroa.7.0..sroa_idx = getelementptr inbounds nuw i8, ptr %18, i64 24 - %.sroa.6.i.sroa.8.0..sroa_idx = getelementptr inbounds nuw i8, ptr %18, i64 28 - %.sroa.6.i.sroa.8.0..sroa_idx92 = getelementptr inbounds nuw i8, ptr %19, i64 20 br label %43 40: ; preds = %"_ZN4exif7isobmff15Parser$LT$R$GT$19skip_file_level_box17h1b2ae098b86f6525E.exit.i" @@ -28135,7 +28133,7 @@ define hidden void @_ZN4exif7isobmff13get_exif_attr17heb04c9cbdb70aefcE(ptr noal br i1 %42, label %._crit_edge, label %43 43: ; preds = %.lr.ph, %40 - %.sroa.18.sroa.0.0243.i189 = phi <4 x i8> [ undef, %.lr.ph ], [ %71, %40 ] + %.sroa.18.sroa.0.0243.i189 = phi i64 [ 0, %.lr.ph ], [ %49, %40 ] %.val1.i.i.i245.i188 = phi i64 [ %.val1.i.i.i239.i, %.lr.ph ], [ %.val1.i.i.i.i, %40 ] %44 = phi ptr [ %27, %.lr.ph ], [ %138, %40 ] call void @llvm.experimental.noalias.scope.decl(metadata !6260) @@ -28196,7 +28194,7 @@ define hidden void @_ZN4exif7isobmff13get_exif_attr17heb04c9cbdb70aefcE(ptr noal br label %69 ._crit_edge: ; preds = %40, %51, %53, %59, %.lr.ph.i - %.sroa.18.sroa.0.1.i = phi <4 x i8> [ undef, %.lr.ph.i ], [ , %59 ], [ %.sroa.18.sroa.0.0243.i189, %53 ], [ , %51 ], [ %71, %40 ] + %.sroa.18.sroa.0.1.i = phi i64 [ 0, %.lr.ph.i ], [ 16, %59 ], [ %.sroa.18.sroa.0.0243.i189, %53 ], [ 16, %51 ], [ %49, %40 ] %.sroa.12.1.i = phi i64 [ ptrtoint (ptr @anon.43c633cc9d0c07b847282a0596e0d119.112.llvm.16978709814855407318 to i64), %.lr.ph.i ], [ ptrtoint (ptr @anon.43c633cc9d0c07b847282a0596e0d119.246 to i64), %59 ], [ ptrtoint (ptr @anon.43c633cc9d0c07b847282a0596e0d119.112.llvm.16978709814855407318 to i64), %53 ], [ ptrtoint (ptr @anon.43c633cc9d0c07b847282a0596e0d119.246 to i64), %51 ], [ ptrtoint (ptr @anon.43c633cc9d0c07b847282a0596e0d119.112.llvm.16978709814855407318 to i64), %40 ] %.sroa.6125.1.i = phi i64 [ 1, %.lr.ph.i ], [ 0, %59 ], [ 1, %53 ], [ 0, %51 ], [ 1, %40 ] call void @llvm.lifetime.end.p0(ptr nonnull %14), !noalias !6259 @@ -28204,8 +28202,8 @@ define hidden void @_ZN4exif7isobmff13get_exif_attr17heb04c9cbdb70aefcE(ptr noal 69: ; preds = %66, %59, %.noexc %70 = phi i64 [ %64, %59 ], [ -1, %.noexc ], [ %68, %66 ] - %71 = bitcast i32 %50 to <4 x i8> call void @llvm.lifetime.end.p0(ptr nonnull %14), !noalias !6259 + %71 = bitcast i32 %50 to <4 x i8> %.sroa.025.0.vec.extract.i = extractelement <4 x i8> %71, i64 0 switch i8 %.sroa.025.0.vec.extract.i, label %72 [ i8 102, label %82 @@ -28274,21 +28272,18 @@ define hidden void @_ZN4exif7isobmff13get_exif_attr17heb04c9cbdb70aefcE(ptr noal %trunc107.i = trunc nuw i64 %91 to i1 %.sroa.6.i.sroa.0.0.copyload83 = load i64, ptr %28, align 8, !noalias !6355 %.sroa.6.i.sroa.6.0.copyload87 = load i64, ptr %.sroa.6.i.sroa.6.0..sroa_idx, align 8, !noalias !6355 - %.sroa.6.i.sroa.8.0.copyload95 = load i32, ptr %.sroa.6.i.sroa.8.0..sroa_idx, align 4, !noalias !6355 - br i1 %trunc107.i, label %120, label %92 + %.sroa.6.i.sroa.8.0.copyload95 = load i64, ptr %.sroa.6.i.sroa.7.0..sroa_idx, align 8, !noalias !6355 + call void @llvm.lifetime.end.p0(ptr nonnull %18), !noalias !6355 + br i1 %trunc107.i, label %.loopexit245, label %92 92: ; preds = %.noexc29 - %.sroa.6.i.sroa.7.0.copyload = load i32, ptr %.sroa.6.i.sroa.7.0..sroa_idx, align 8, !noalias !6355 - call void @llvm.lifetime.end.p0(ptr nonnull %18), !noalias !6355 - store i64 %.sroa.6.i.sroa.0.0.copyload83, ptr %19, align 8, !noalias !6355 - store i64 %.sroa.6.i.sroa.6.0.copyload87, ptr %29, align 8, !noalias !6355 - store i32 %.sroa.6.i.sroa.7.0.copyload, ptr %30, align 8, !noalias !6355 - store i32 %.sroa.6.i.sroa.8.0.copyload95, ptr %.sroa.6.i.sroa.8.0..sroa_idx92, align 4, !noalias !6355 - %.cast157 = inttoptr i64 %.sroa.6.i.sroa.6.0.copyload87 to ptr - %93 = load i64, ptr %30, align 8, !noalias !6355, !noundef !4 + store i64 %.sroa.6.i.sroa.0.0.copyload60, ptr %19, align 8, !noalias !6355 + store i64 %.sroa.6.i.sroa.6.0.copyload64, ptr %29, align 8, !noalias !6355 + store i64 %.sroa.6.i.sroa.7.0.copyload68, ptr %30, align 8, !noalias !6355 + %.cast116 = inttoptr i64 %.sroa.6.i.sroa.6.0.copyload87 to ptr call void @llvm.lifetime.start.p0(ptr nonnull %13), !noalias !6355 - store ptr %.cast157, ptr %13, align 8, !noalias !6356 - store i64 %93, ptr %31, align 8, !noalias !6356 + store ptr %.cast116, ptr %13, align 8, !noalias !6356 + store i64 %.sroa.6.i.sroa.8.0.copyload95, ptr %31, align 8, !noalias !6356 call void @llvm.lifetime.start.p0(ptr nonnull %12), !noalias !6356 invoke void @_ZN4exif7isobmff11BoxSplitter5slice17h9dc27e1acee0e8bdE(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %12, ptr noalias noundef nonnull align 8 dereferenceable(16) %13, i64 noundef 8) to label %.noexc.i unwind label %.loopexit.split-lp.loopexit.i, !noalias !6355 @@ -28385,11 +28380,6 @@ define hidden void @_ZN4exif7isobmff13get_exif_attr17heb04c9cbdb70aefcE(ptr noal cleanup br label %.body.i -120: ; preds = %.noexc29 - %.sroa.6.i.sroa.7.0.copyload91158 = load <4 x i8>, ptr %.sroa.6.i.sroa.7.0..sroa_idx, align 8, !noalias !6355 - call void @llvm.lifetime.end.p0(ptr nonnull %18), !noalias !6355 - br label %139 - .loopexit.i: ; preds = %.noexc119.i %lpad.loopexit.i = landingpad { ptr, i32 } cleanup @@ -28406,7 +28396,7 @@ define hidden void @_ZN4exif7isobmff13get_exif_attr17heb04c9cbdb70aefcE(ptr noal br label %.body.i .body.i: ; preds = %.loopexit.split-lp.loopexit.split-lp.i, %.loopexit.split-lp.loopexit.i, %.loopexit.i, %118 - %eh.lpad-body.i = phi { ptr, i32 } [ %119, %118 ], [ %lpad.loopexit.i, %.loopexit.i ], [ %lpad.loopexit202.i, %.loopexit.split-lp.loopexit.i ], [ %lpad.loopexit.split-lp203.i, %.loopexit.split-lp.loopexit.split-lp.i ] + %eh.lpad-body.i = phi { ptr, i32 } [ %119, %117 ], [ %lpad.loopexit.i, %.loopexit.i ], [ %lpad.loopexit202.i, %.loopexit.split-lp.loopexit.i ], [ %lpad.loopexit.split-lp203.i, %.loopexit.split-lp.loopexit.split-lp.i ] invoke void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hb1bd5fe26ba89da7E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %19) #83 to label %.body unwind label %140, !noalias !6355 @@ -28446,10 +28436,6 @@ define hidden void @_ZN4exif7isobmff13get_exif_attr17heb04c9cbdb70aefcE(ptr noal %.sroa.0132.0.ph.i = phi i64 [ 0, %"_ZN4core3ptr93drop_in_place$LT$core..result..Result$LT$$u5b$u8$u3b$$u20$4$u5d$$C$exif..error..Error$GT$$GT$17h9016b7904cc0b900E.exit.i.i" ], [ %94, %.noexc.i ] call void @llvm.lifetime.end.p0(ptr nonnull %13), !noalias !6355 %128 = ptrtoint ptr %.sroa.6133.2.ph.i to i64 - %.sroa.35.sroa.0.0.extract.trunc = trunc i64 %.sroa.9.2.ph.i to i32 - %129 = bitcast i32 %.sroa.35.sroa.0.0.extract.trunc to <4 x i8> - %.sroa.35.sroa.13.0.extract.shift = lshr i64 %.sroa.9.2.ph.i, 32 - %.sroa.35.sroa.13.0.extract.trunc = trunc nuw i64 %.sroa.35.sroa.13.0.extract.shift to i32 call void @llvm.lifetime.start.p0(ptr nonnull %7), !noalias !6397 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17he34f37b9bfa2d460E.llvm.16845035774076767816"(ptr noalias noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 captures(none) dereferenceable(24) %7, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %19) to label %.noexc31 unwind label %.loopexit.split-lp @@ -28486,11 +28472,10 @@ define hidden void @_ZN4exif7isobmff13get_exif_attr17heb04c9cbdb70aefcE(ptr noal %.not.i.i = icmp ugt i64 %.pn1.i.i.i.i.i.i.i.i.i.i, %.val1.i.i.i.i br i1 %.not.i.i, label %40, label %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread.thread" -139: ; preds = %"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hb1bd5fe26ba89da7E.exit124.i", %120 - %.sroa.35.sroa.13.1 = phi i32 [ %.sroa.6.i.sroa.8.0.copyload95, %120 ], [ %.sroa.35.sroa.13.0.extract.trunc, %"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hb1bd5fe26ba89da7E.exit124.i" ] - %.sroa.35.sroa.0.1 = phi <4 x i8> [ %.sroa.6.i.sroa.7.0.copyload91158, %120 ], [ %129, %"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hb1bd5fe26ba89da7E.exit124.i" ] - %.sroa.27.1 = phi i64 [ %.sroa.6.i.sroa.6.0.copyload87, %120 ], [ %128, %"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hb1bd5fe26ba89da7E.exit124.i" ] - %.sroa.14.1 = phi i64 [ %.sroa.6.i.sroa.0.0.copyload83, %120 ], [ %.sroa.0132.0.ph.i, %"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hb1bd5fe26ba89da7E.exit124.i" ] +139: ; preds = %.noexc29, %"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hb1bd5fe26ba89da7E.exit124.i" + %.sroa.35.sroa.13.1 = phi i64 [ %.sroa.9.2.ph.i, %"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hb1bd5fe26ba89da7E.exit124.i" ], [ %.sroa.6.i.sroa.7.0.copyload68, %.noexc29 ] + %.sroa.35.sroa.0.1 = phi i64 [ %126, %"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hb1bd5fe26ba89da7E.exit124.i" ], [ %.sroa.6.i.sroa.6.0.copyload64, %.noexc29 ] + %.sroa.27.1 = phi i64 [ %.sroa.0129.0.ph.i, %"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hb1bd5fe26ba89da7E.exit124.i" ], [ %.sroa.6.i.sroa.0.0.copyload60, %.noexc29 ] call void @llvm.lifetime.end.p0(ptr nonnull %19), !noalias !6355 br label %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread" @@ -28519,48 +28504,39 @@ define hidden void @_ZN4exif7isobmff13get_exif_attr17heb04c9cbdb70aefcE(ptr noal %.sroa.644.i.sroa.6.0..sroa_idx100 = getelementptr inbounds nuw i8, ptr %16, i64 16 %.sroa.644.i.sroa.6.0.copyload101 = load i64, ptr %.sroa.644.i.sroa.6.0..sroa_idx100, align 8, !noalias !6355 %.sroa.644.i.sroa.7.0..sroa_idx104 = getelementptr inbounds nuw i8, ptr %16, i64 24 - %.sroa.644.i.sroa.8.0..sroa_idx108 = getelementptr inbounds nuw i8, ptr %16, i64 28 - %.sroa.644.i.sroa.8.0.copyload109 = load i32, ptr %.sroa.644.i.sroa.8.0..sroa_idx108, align 4, !noalias !6355 - br i1 %trunc103.i, label %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread137", label %148 - -148: ; preds = %.noexc32 - %.sroa.644.i.sroa.7.0.copyload = load i32, ptr %.sroa.644.i.sroa.7.0..sroa_idx104, align 8, !noalias !6355 + %.sroa.644.i.sroa.7.0.copyload78 = load i64, ptr %.sroa.644.i.sroa.7.0..sroa_idx104, align 8, !noalias !6355 call void @llvm.lifetime.end.p0(ptr nonnull %16), !noalias !6355 - store i64 %.sroa.644.i.sroa.0.0.copyload97, ptr %17, align 8, !noalias !6355 - %.sroa.644.i.sroa.6.0..sroa_idx98 = getelementptr inbounds nuw i8, ptr %17, i64 8 - store i64 %.sroa.644.i.sroa.6.0.copyload101, ptr %.sroa.644.i.sroa.6.0..sroa_idx98, align 8, !noalias !6355 - %.sroa.644.i.sroa.7.0..sroa_idx102 = getelementptr inbounds nuw i8, ptr %17, i64 16 - store i32 %.sroa.644.i.sroa.7.0.copyload, ptr %.sroa.644.i.sroa.7.0..sroa_idx102, align 8, !noalias !6355 - %.sroa.644.i.sroa.8.0..sroa_idx106 = getelementptr inbounds nuw i8, ptr %17, i64 20 - store i32 %.sroa.644.i.sroa.8.0.copyload109, ptr %.sroa.644.i.sroa.8.0..sroa_idx106, align 4, !noalias !6355 + br i1 %trunc103.i, label %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread102", label %144 + +144:; preds = %.noexc32 + store i64 %.sroa.644.i.sroa.0.0.copyload70, ptr %17, align 8, !noalias !6355 + %.sroa.644.i.sroa.6.0..sroa_idx71 = getelementptr inbounds nuw i8, ptr %17, i64 8 + store i64 %.sroa.644.i.sroa.6.0.copyload74, ptr %.sroa.644.i.sroa.6.0..sroa_idx71, align 8, !noalias !6355 + %.sroa.644.i.sroa.7.0..sroa_idx75 = getelementptr inbounds nuw i8, ptr %17, i64 16 + store i64 %.sroa.644.i.sroa.7.0.copyload78, ptr %.sroa.644.i.sroa.7.0..sroa_idx75, align 8, !noalias !6355 call void @llvm.lifetime.start.p0(ptr nonnull %15), !noalias !6355 %.cast = inttoptr i64 %.sroa.644.i.sroa.6.0.copyload101 to ptr - %149 = load i64, ptr %.sroa.644.i.sroa.7.0..sroa_idx102, align 8, !noalias !6355, !noundef !4 - invoke fastcc void @"_ZN4exif7isobmff15Parser$LT$R$GT$10parse_meta17hf004740fb162f77bE"(ptr noalias noundef align 8 captures(none) dereferenceable(32) %15, ptr noalias noundef nonnull align 8 dereferenceable(64) %22, ptr noalias noundef nonnull readonly align 1 %.cast, i64 noundef %149) - to label %152 unwind label %150, !noalias !6389 + invoke fastcc void @"_ZN4exif7isobmff15Parser$LT$R$GT$10parse_meta17hf004740fb162f77bE"(ptr noalias noundef align 8 captures(none) dereferenceable(32) %15, ptr noalias noundef nonnull align 8 dereferenceable(64) %22, ptr noalias noundef nonnull readonly align 1 %.cast, i64 noundef %.sroa.644.i.sroa.7.0.copyload78) + to label %147 unwind label %155, !noalias !6389 "_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread137": ; preds = %.noexc32 - %.sroa.644.i.sroa.7.0.copyload105156 = load <4 x i8>, ptr %.sroa.644.i.sroa.7.0..sroa_idx104, align 8, !noalias !6355 - call void @llvm.lifetime.end.p0(ptr nonnull %16), !noalias !6355 call void @llvm.lifetime.end.p0(ptr nonnull %17), !noalias !6355 br label %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread" -150: ; preds = %148 +150: ; preds = %144 %151 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hb1bd5fe26ba89da7E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %17) #83 to label %.body unwind label %140, !noalias !6389 -152: ; preds = %148 +152: ; preds = %144 %153 = load i64, ptr %15, align 8, !range !26, !noalias !6355, !noundef !4 %154 = getelementptr inbounds nuw i8, ptr %15, i64 8 %.sroa.647.i.sroa.0.0.copyload110 = load i64, ptr %154, align 8, !noalias !6355 %.sroa.647.i.sroa.5.0..sroa_idx111 = getelementptr inbounds nuw i8, ptr %15, i64 16 %.sroa.647.i.sroa.5.0.copyload112 = load i64, ptr %.sroa.647.i.sroa.5.0..sroa_idx111, align 8, !noalias !6355 %.sroa.647.i.sroa.6.0..sroa_idx113 = getelementptr inbounds nuw i8, ptr %15, i64 24 - %.sroa.647.i.sroa.6.0.copyload114154 = load <4 x i8>, ptr %.sroa.647.i.sroa.6.0..sroa_idx113, align 8, !noalias !6355 - %.sroa.647.i.sroa.7.0..sroa_idx115 = getelementptr inbounds nuw i8, ptr %15, i64 28 - %.sroa.647.i.sroa.7.0.copyload116 = load i32, ptr %.sroa.647.i.sroa.7.0..sroa_idx115, align 4, !noalias !6355 + %.sroa.647.i.sroa.6.0.copyload114154 = load i64, ptr %.sroa.647.i.sroa.6.0..sroa_idx113, align 8, !noalias !6355 call void @llvm.lifetime.end.p0(ptr nonnull %15), !noalias !6355 invoke void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hb1bd5fe26ba89da7E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %17) to label %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit" unwind label %.loopexit.split-lp @@ -28582,7 +28558,7 @@ define hidden void @_ZN4exif7isobmff13get_exif_attr17heb04c9cbdb70aefcE(ptr noal br label %.body .body: ; preds = %.loopexit, %.loopexit.split-lp, %.body.i, %150 - %eh.lpad-body = phi { ptr, i32 } [ %eh.lpad-body.i, %.body.i ], [ %151, %150 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] + %eh.lpad-body = phi { ptr, i32 } [ %eh.lpad-body.i, %.body.i ], [ %151, %145 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] invoke void @"_ZN4core3ptr129drop_in_place$LT$exif..isobmff..Parser$LT$$RF$mut$u20$std..io..cursor..Cursor$LT$$RF$typst..foundations..bytes..Bytes$GT$$GT$$GT$17hffa136688f74fcacE"(ptr noalias noundef nonnull align 8 dereferenceable(64) %22) #83 to label %.thread unwind label %209 @@ -28597,34 +28573,30 @@ define hidden void @_ZN4exif7isobmff13get_exif_attr17heb04c9cbdb70aefcE(ptr noal %.sroa.27.8..sroa_idx48 = getelementptr inbounds nuw i8, ptr %21, i64 8 store i64 %.sroa.647.i.sroa.5.0.copyload112, ptr %.sroa.27.8..sroa_idx48, align 8 %.sroa.35.8..sroa_idx53 = getelementptr inbounds nuw i8, ptr %21, i64 16 - store <4 x i8> %.sroa.647.i.sroa.6.0.copyload114154, ptr %.sroa.35.8..sroa_idx53, align 8 - %.sroa.35.8..sroa_idx53.sroa_idx = getelementptr inbounds nuw i8, ptr %21, i64 20 - store i32 %.sroa.647.i.sroa.7.0.copyload116, ptr %.sroa.35.8..sroa_idx53.sroa_idx, align 4 - %158 = load i64, ptr %.sroa.35.8..sroa_idx53, align 8, !noundef !4 - %159 = icmp ult i64 %158, 4 - br i1 %159, label %199, label %161 - -"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread": ; preds = %139, %155, %._crit_edge, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread137", %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit" - %.sroa.14.2132 = phi i64 [ %.sroa.647.i.sroa.0.0.copyload110, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit" ], [ %.sroa.644.i.sroa.0.0.copyload97, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread137" ], [ %.sroa.14.1, %139 ], [ %.sroa.051.0.ph.i, %155 ], [ %.sroa.6125.1.i, %._crit_edge ] - %.sroa.27.2128 = phi i64 [ %.sroa.647.i.sroa.5.0.copyload112, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit" ], [ %.sroa.644.i.sroa.6.0.copyload101, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread137" ], [ %.sroa.27.1, %139 ], [ %156, %155 ], [ %.sroa.12.1.i, %._crit_edge ] - %.sroa.35.sroa.0.2124 = phi <4 x i8> [ %.sroa.647.i.sroa.6.0.copyload114154, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit" ], [ %.sroa.644.i.sroa.7.0.copyload105156, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread137" ], [ %.sroa.35.sroa.0.1, %139 ], [ , %155 ], [ %.sroa.18.sroa.0.1.i, %._crit_edge ] - %.sroa.35.sroa.13.2123 = phi i32 [ %.sroa.647.i.sroa.7.0.copyload116, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit" ], [ %.sroa.644.i.sroa.8.0.copyload109, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread137" ], [ %.sroa.35.sroa.13.1, %139 ], [ 0, %155 ], [ 0, %._crit_edge ] - %160 = icmp eq i64 %.sroa.14.2132, 1 - br i1 %160, label %227, label %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread.thread" - -161: ; preds = %157 - %162 = inttoptr i64 %.sroa.647.i.sroa.5.0.copyload112 to ptr - %163 = invoke noundef i32 @"_ZN64_$LT$exif..endian..BigEndian$u20$as$u20$exif..endian..Endian$GT$7loadu3217h4a435939c7411829E"(ptr noalias noundef nonnull readonly align 1 %162, i64 noundef %158, i64 noundef 0) - to label %166 unwind label %164 - -164: ; preds = %174, %171, %161 - %165 = landingpad { ptr, i32 } + store i64 %.sroa.647.i.sroa.6.0.copyload114154, ptr %.sroa.35.8..sroa_idx53, align 8 + %153 = icmp ult i64 %.sroa.647.i.sroa.6.0.copyload83, 4 + br i1 %153, label %193, label %155 + +"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread":; preds = %.loopexit245, %150, %._crit_edge, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread102", %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit" + %.sroa.14.297 = phi i64 [ %.sroa.647.i.sroa.0.0.copyload79, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit" ], [ %.sroa.644.i.sroa.0.0.copyload70, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread102" ], [ %.sroa.14.1, %.loopexit245 ], [ %.sroa.051.0.ph.i, %150 ], [ %.sroa.6125.1.i, %._crit_edge ] + %.sroa.27.293 = phi i64 [ %.sroa.647.i.sroa.5.0.copyload81, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit" ], [ %.sroa.644.i.sroa.6.0.copyload74, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread102" ], [ %.sroa.27.1, %.loopexit245 ], [ %151, %150 ], [ %.sroa.12.1.i, %._crit_edge ] + %.sroa.35.289 = phi i64 [ %.sroa.647.i.sroa.6.0.copyload83, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit" ], [ %.sroa.644.i.sroa.7.0.copyload78, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread102" ], [ %.sroa.35.1, %.loopexit245 ], [ 24, %150 ], [ %.sroa.18.sroa.0.1.i, %._crit_edge ] + %154 = icmp eq i64 %.sroa.14.297, 1 + br i1 %154, label %221, label %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread.thread" + +155:; preds = %152 + %156 = inttoptr i64 %.sroa.647.i.sroa.5.0.copyload81 to ptr + %157 = invoke noundef i32 @"_ZN64_$LT$exif..endian..BigEndian$u20$as$u20$exif..endian..Endian$GT$7loadu3217h4a435939c7411829E"(ptr noalias noundef nonnull readonly align 1 %156, i64 noundef %.sroa.647.i.sroa.6.0.copyload83, i64 noundef 0) + to label %160 unwind label %158 + +158:; preds = %168, %171, %155 + %159 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hb1bd5fe26ba89da7E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %21) #83 - to label %211 unwind label %209 + to label %205 unwind label %209 -166: ; preds = %161 - %167 = zext i32 %163 to i64 +166: ; preds = %155 + %167 = zext i32 %157 to i64 %168 = load i64, ptr %.sroa.35.8..sroa_idx53, align 8, !noundef !4 %169 = add i64 %168, -4 %170 = icmp ult i64 %169, %167 @@ -28636,7 +28608,7 @@ define hidden void @_ZN4exif7isobmff13get_exif_attr17heb04c9cbdb70aefcE(ptr noal call void @llvm.experimental.noalias.scope.decl(metadata !6410) call void @llvm.experimental.noalias.scope.decl(metadata !6413) %173 = invoke { i64, i64 } @_ZN4core5slice5index5range17hc6a150385bfca842E(i64 noundef %172, i64 noundef %168, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.ecbbdf4ce99fb387dde54de6349d4c38.142.llvm.10579729455205085779) - to label %174 unwind label %164 + to label %168 unwind label %158 174: ; preds = %171 %175 = extractvalue { i64, i64 } %173, 0 @@ -28656,7 +28628,7 @@ define hidden void @_ZN4exif7isobmff13get_exif_attr17heb04c9cbdb70aefcE(ptr noal %184 = getelementptr inbounds nuw i8, ptr %20, i64 16 store ptr %21, ptr %184, align 8, !alias.scope !6410, !noalias !6413 invoke void @"_ZN79_$LT$alloc..vec..drain..Drain$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h50274a3985a77014E.llvm.16845035774076767816"(ptr noalias noundef nonnull align 8 dereferenceable(40) %20) - to label %"_ZN4core3ptr55drop_in_place$LT$alloc..vec..drain..Drain$LT$u8$GT$$GT$17h094eb6c1d157d671E.exit" unwind label %164 + to label %"_ZN4core3ptr55drop_in_place$LT$alloc..vec..drain..Drain$LT$u8$GT$$GT$17h094eb6c1d157d671E.exit" unwind label %158 "_ZN4core3ptr55drop_in_place$LT$alloc..vec..drain..Drain$LT$u8$GT$$GT$17h094eb6c1d157d671E.exit": ; preds = %174 call void @llvm.lifetime.end.p0(ptr nonnull %20) @@ -28667,9 +28639,9 @@ define hidden void @_ZN4exif7isobmff13get_exif_attr17heb04c9cbdb70aefcE(ptr noal br label %186 186: ; preds = %245, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread.thread", %"_ZN4core3ptr55drop_in_place$LT$alloc..vec..drain..Drain$LT$u8$GT$$GT$17h094eb6c1d157d671E.exit" - %187 = phi i1 [ false, %"_ZN4core3ptr55drop_in_place$LT$alloc..vec..drain..Drain$LT$u8$GT$$GT$17h094eb6c1d157d671E.exit" ], [ true, %245 ], [ false, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread.thread" ] - %.sroa.14.2131 = phi i64 [ %.sroa.647.i.sroa.0.0.copyload110, %"_ZN4core3ptr55drop_in_place$LT$alloc..vec..drain..Drain$LT$u8$GT$$GT$17h094eb6c1d157d671E.exit" ], [ 1, %245 ], [ %.sroa.14.2132150, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread.thread" ] - %.sroa.27.2127 = phi i64 [ %.sroa.647.i.sroa.5.0.copyload112, %"_ZN4core3ptr55drop_in_place$LT$alloc..vec..drain..Drain$LT$u8$GT$$GT$17h094eb6c1d157d671E.exit" ], [ %.sroa.27.2128, %245 ], [ %.sroa.27.2128151, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread.thread" ] + %187 = phi i1 [ false, %"_ZN4core3ptr55drop_in_place$LT$alloc..vec..drain..Drain$LT$u8$GT$$GT$17h094eb6c1d157d671E.exit" ], [ true, %239 ], [ false, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread.thread" ] + %.sroa.14.2131 = phi i64 [ %.sroa.647.i.sroa.0.0.copyload110, %"_ZN4core3ptr55drop_in_place$LT$alloc..vec..drain..Drain$LT$u8$GT$$GT$17h094eb6c1d157d671E.exit" ], [ 1, %239 ], [ %.sroa.14.297113, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread.thread" ] + %.sroa.27.2127 = phi i64 [ %.sroa.647.i.sroa.5.0.copyload112, %"_ZN4core3ptr55drop_in_place$LT$alloc..vec..drain..Drain$LT$u8$GT$$GT$17h094eb6c1d157d671E.exit" ], [ %.sroa.27.293, %239 ], [ %.sroa.27.293114, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread.thread" ] call void @llvm.experimental.noalias.scope.decl(metadata !6415) call void @llvm.experimental.noalias.scope.decl(metadata !6418) %188 = load i64, ptr %22, align 8, !range !570, !alias.scope !6421, !noundef !4 @@ -28703,8 +28675,8 @@ define hidden void @_ZN4exif7isobmff13get_exif_attr17heb04c9cbdb70aefcE(ptr noal br label %"_ZN4core3ptr129drop_in_place$LT$exif..isobmff..Parser$LT$$RF$mut$u20$std..io..cursor..Cursor$LT$$RF$typst..foundations..bytes..Bytes$GT$$GT$$GT$17hffa136688f74fcacE.exit" 199: ; preds = %166, %157 - %anon.43c633cc9d0c07b847282a0596e0d119.213.sink = phi ptr [ @anon.43c633cc9d0c07b847282a0596e0d119.214, %157 ], [ @anon.43c633cc9d0c07b847282a0596e0d119.213, %166 ] - %.sink = phi i64 [ 23, %157 ], [ 26, %166 ] + %anon.43c633cc9d0c07b847282a0596e0d119.213.sink = phi ptr [ @anon.43c633cc9d0c07b847282a0596e0d119.214, %152 ], [ @anon.43c633cc9d0c07b847282a0596e0d119.213, %160 ] + %.sink = phi i64 [ 23, %152 ], [ 26, %160 ] %200 = getelementptr inbounds nuw i8, ptr %0, i64 8 store i64 0, ptr %200, align 8 %.sroa.48.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -28725,22 +28697,22 @@ define hidden void @_ZN4exif7isobmff13get_exif_attr17heb04c9cbdb70aefcE(ptr noal 203: ; preds = %.noexc37 %204 = getelementptr inbounds nuw i8, ptr %5, i64 16 %205 = load i64, ptr %204, align 8, !noalias !6431, !noundef !4 - %206 = icmp eq i64 %205, 0 + %206 = icmp eq i64 %1100, 0 br i1 %206, label %214, label %207 207: ; preds = %203 %208 = load ptr, ptr %5, align 8, !noalias !6431, !nonnull !4, !noundef !4 - call void @__rust_dealloc(ptr noundef nonnull %208, i64 noundef %205, i64 noundef %202) #85 + call void @__rust_dealloc(ptr noundef nonnull %208, i64 noundef %1100, i64 noundef %202) #85 br label %214 -209: ; preds = %254, %211, %164, %.body +209: ; preds = %254, %211, %158, %.body %210 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #84 unreachable -211: ; preds = %212, %164 - %.pn = phi { ptr, i32 } [ %213, %212 ], [ %165, %164 ] +211: ; preds = %212, %158 + %.pn = phi { ptr, i32 } [ %213, %206 ], [ %159, %158 ] invoke void @"_ZN4core3ptr129drop_in_place$LT$exif..isobmff..Parser$LT$$RF$mut$u20$std..io..cursor..Cursor$LT$$RF$typst..foundations..bytes..Bytes$GT$$GT$$GT$17hffa136688f74fcacE"(ptr noalias noundef nonnull align 8 dereferenceable(64) %22) #83 to label %.thread unwind label %209 @@ -28794,8 +28766,8 @@ define hidden void @_ZN4exif7isobmff13get_exif_attr17heb04c9cbdb70aefcE(ptr noal ret void 227: ; preds = %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread" - %228 = inttoptr i64 %.sroa.27.2128 to ptr - %229 = and i64 %.sroa.27.2128, 3 + %228 = inttoptr i64 %.sroa.27.293 to ptr + %229 = and i64 %.sroa.27.293, 3 switch i64 %229, label %default.unreachable [ i64 2, label %230 i64 3, label %234 @@ -28807,15 +28779,15 @@ default.unreachable: ; preds = %227 unreachable 230: ; preds = %227 - %231 = lshr i64 %.sroa.27.2128, 32 + %231 = lshr i64 %.sroa.27.293, 32 %232 = trunc nuw i64 %231 to i32 %233 = call noundef i8 @_ZN3std3sys3pal4unix17decode_error_kind17h9c6936ce8cf07affE.llvm.16978709814855407318(i32 noundef %232), !range !1741 br label %_ZN3std2io5error5Error4kind17he9f58cfbf63ce398E.llvm.16978709814855407318.exit 234: ; preds = %227 - %235 = lshr i64 %.sroa.27.2128, 32 + %235 = lshr i64 %.sroa.27.293, 32 %spec.select.i.i.i = trunc nuw nsw i64 %235 to i8 - %236 = icmp ult i64 %.sroa.27.2128, 176093659136 + %236 = icmp ult i64 %.sroa.27.293, 176093659136 call void @llvm.assume(i1 %236) br label %_ZN3std2io5error5Error4kind17he9f58cfbf63ce398E.llvm.16978709814855407318.exit @@ -28830,23 +28802,20 @@ default.unreachable: ; preds = %227 br label %_ZN3std2io5error5Error4kind17he9f58cfbf63ce398E.llvm.16978709814855407318.exit "_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread.thread": ; preds = %"_ZN4exif7isobmff15Parser$LT$R$GT$19skip_file_level_box17h1b2ae098b86f6525E.exit.i", %2, %142, %_ZN3std2io5error5Error4kind17he9f58cfbf63ce398E.llvm.16978709814855407318.exit, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread" - %.sroa.35.sroa.13.2123153 = phi i32 [ %.sroa.35.sroa.13.2123, %_ZN3std2io5error5Error4kind17he9f58cfbf63ce398E.llvm.16978709814855407318.exit ], [ %.sroa.35.sroa.13.2123, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread" ], [ 0, %142 ], [ 0, %2 ], [ 0, %"_ZN4exif7isobmff15Parser$LT$R$GT$19skip_file_level_box17h1b2ae098b86f6525E.exit.i" ] - %.sroa.35.sroa.0.2124152 = phi <4 x i8> [ %.sroa.35.sroa.0.2124, %_ZN3std2io5error5Error4kind17he9f58cfbf63ce398E.llvm.16978709814855407318.exit ], [ %.sroa.35.sroa.0.2124, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread" ], [ , %142 ], [ , %2 ], [ , %"_ZN4exif7isobmff15Parser$LT$R$GT$19skip_file_level_box17h1b2ae098b86f6525E.exit.i" ] - %.sroa.27.2128151 = phi i64 [ %.sroa.27.2128, %_ZN3std2io5error5Error4kind17he9f58cfbf63ce398E.llvm.16978709814855407318.exit ], [ %.sroa.27.2128, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread" ], [ ptrtoint (ptr @anon.43c633cc9d0c07b847282a0596e0d119.252 to i64), %142 ], [ ptrtoint (ptr @anon.43c633cc9d0c07b847282a0596e0d119.231 to i64), %2 ], [ ptrtoint (ptr @anon.43c633cc9d0c07b847282a0596e0d119.231 to i64), %"_ZN4exif7isobmff15Parser$LT$R$GT$19skip_file_level_box17h1b2ae098b86f6525E.exit.i" ] - %.sroa.14.2132150 = phi i64 [ 1, %_ZN3std2io5error5Error4kind17he9f58cfbf63ce398E.llvm.16978709814855407318.exit ], [ %.sroa.14.2132, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread" ], [ 0, %142 ], [ 2, %2 ], [ 2, %"_ZN4exif7isobmff15Parser$LT$R$GT$19skip_file_level_box17h1b2ae098b86f6525E.exit.i" ] - %243 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i64 %.sroa.14.2132150, ptr %243, align 8 + %.sroa.35.sroa.13.2123153 = phi i64 [ %.sroa.35.289, %_ZN3std2io5error5Error4kind17he9f58cfbf63ce398E.llvm.16978709814855407318.exit ], [ %.sroa.35.289, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread" ], [ 4, %2 ], [ 32, %138 ], [ 4, %"_ZN4exif7isobmff15Parser$LT$R$GT$19skip_file_level_box17h1b2ae098b86f6525E.exit.i" ] + %.sroa.35.sroa.0.2124152 = phi i64 [ %.sroa.27.293, %_ZN3std2io5error5Error4kind17he9f58cfbf63ce398E.llvm.16978709814855407318.exit ], [ %.sroa.27.293, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread" ], [ ptrtoint (ptr @anon.43c633cc9d0c07b847282a0596e0d119.231 to i64), %2 ], [ ptrtoint (ptr @anon.43c633cc9d0c07b847282a0596e0d119.252 to i64), %138 ], [ ptrtoint (ptr @anon.43c633cc9d0c07b847282a0596e0d119.231 to i64), %"_ZN4exif7isobmff15Parser$LT$R$GT$19skip_file_level_box17h1b2ae098b86f6525E.exit.i" ] + %.sroa.27.2128151 = phi i64 [ 1, %_ZN3std2io5error5Error4kind17he9f58cfbf63ce398E.llvm.16978709814855407318.exit ], [ %.sroa.14.298, %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread" ], [ 2, %2 ], [ 0, %138 ], [ 2, %"_ZN4exif7isobmff15Parser$LT$R$GT$19skip_file_level_box17h1b2ae098b86f6525E.exit.i" ] + %237 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i64 %.sroa.27.2128151, ptr %237, align 8 %.sroa.2.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 - store i64 %.sroa.27.2128151, ptr %.sroa.2.0..sroa_idx, align 8 + store i64 %.sroa.27.293114, ptr %.sroa.2.0..sroa_idx, align 8 %.sroa.3.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 - store <4 x i8> %.sroa.35.sroa.0.2124152, ptr %.sroa.3.0..sroa_idx, align 8 - %.sroa.4.0..sroa_idx81 = getelementptr inbounds nuw i8, ptr %0, i64 28 - store i32 %.sroa.35.sroa.13.2123153, ptr %.sroa.4.0..sroa_idx81, align 4 + store i64 %.sroa.35.sroa.13.2123153, ptr %.sroa.3.0..sroa_idx, align 8 store i64 1, ptr %0, align 8 br label %186 _ZN3std2io5error5Error4kind17he9f58cfbf63ce398E.llvm.16978709814855407318.exit: ; preds = %240, %237, %234, %230 - %.0.i = phi i8 [ %233, %230 ], [ %spec.select.i.i.i, %234 ], [ %239, %237 ], [ %242, %240 ] + %.0.i = phi i8 [ %233, %224 ], [ %spec.select.i.i.i, %228 ], [ %239, %231 ], [ %242, %234 ] %244 = icmp eq i8 %.0.i, 37 br i1 %244, label %245, label %"_ZN4exif7isobmff15Parser$LT$R$GT$5parse17hab5a3c807cee4bbdE.exit.thread.thread" @@ -28886,7 +28855,7 @@ _ZN3std2io5error5Error4kind17he9f58cfbf63ce398E.llvm.16978709814855407318.exit: br label %"_ZN4core3ptr39drop_in_place$LT$exif..error..Error$GT$17h5d6ba6e1f50dec35E.exit" .thread: ; preds = %211, %254, %225, %.body - %.pn23.pn = phi { ptr, i32 } [ %226, %254 ], [ %226, %225 ], [ %eh.lpad-body, %.body ], [ %.pn, %211 ] + %.pn23.pn = phi { ptr, i32 } [ %226, %248 ], [ %226, %219 ], [ %eh.lpad-body, %.body ], [ %.pn, %205 ] resume { ptr, i32 } %.pn23.pn 254: ; preds = %225 diff --git a/bench/typst-rs/optimized/d6l9ieo9tcw33dn.ll b/bench/typst-rs/optimized/d6l9ieo9tcw33dn.ll index c9711961035..72c2d2e947d 100644 --- a/bench/typst-rs/optimized/d6l9ieo9tcw33dn.ll +++ b/bench/typst-rs/optimized/d6l9ieo9tcw33dn.ll @@ -169651,7 +169651,7 @@ _ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit.thread: ; preds %37 = getelementptr inbounds nuw i8, ptr %9, i64 8 store i64 0, ptr %37, align 8, !noalias !36868 invoke void @"_ZN4ecow3vec15EcoVec$LT$T$GT$19extend_from_trusted17ha5ea5bea0f0d760aE.llvm.4930786928582598558"(ptr noalias noundef nonnull align 8 dereferenceable(16) %9, i64 noundef 1, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(64) %10) - to label %_ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit.thread82 unwind label %38, !noalias !36867 + to label %_ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit.thread84 unwind label %38, !noalias !36867 38: ; preds = %36 %39 = landingpad { ptr, i32 } @@ -169713,7 +169713,7 @@ _ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit: ; preds = %27 %61 = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 0, ptr %61, align 8, !noalias !36879 invoke void @"_ZN4ecow3vec15EcoVec$LT$T$GT$19extend_from_trusted17ha5ea5bea0f0d760aE.llvm.4930786928582598558"(ptr noalias noundef nonnull align 8 dereferenceable(16) %6, i64 noundef 1, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(64) %7) - to label %"_ZN96_$LT$ecow..vec..EcoVec$LT$T$GT$$u20$as$u20$core..convert..From$LT$$u5b$T$u3b$$u20$N$u5d$$GT$$GT$4from17haeeccbaf5905b57bE.exit.i62" unwind label %62, !noalias !36878 + to label %"_ZN96_$LT$ecow..vec..EcoVec$LT$T$GT$$u20$as$u20$core..convert..From$LT$$u5b$T$u3b$$u20$N$u5d$$GT$$GT$4from17haeeccbaf5905b57bE.exit.i64" unwind label %62, !noalias !36878 62: ; preds = %60 %63 = landingpad { ptr, i32 } @@ -169735,8 +169735,8 @@ _ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit: ; preds = %27 br label %90 68: ; preds = %_ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit.thread82, %_ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit - %69 = phi double [ %43, %_ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit.thread82 ], [ %46, %_ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit ] - %.sroa.0.085 = phi ptr [ %42, %_ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit.thread82 ], [ %44, %_ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit ] + %69 = phi double [ %43, %_ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit.thread84 ], [ %46, %_ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit ] + %.sroa.0.085 = phi ptr [ %42, %_ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit.thread84 ], [ %44, %_ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit ] %70 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %.sroa.0.085, ptr %70, align 8 %71 = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -169768,7 +169768,7 @@ _ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit: ; preds = %27 %83 = getelementptr inbounds nuw i8, ptr %3, i64 8 store i64 0, ptr %83, align 8, !noalias !36890 invoke void @"_ZN4ecow3vec15EcoVec$LT$T$GT$19extend_from_trusted17ha5ea5bea0f0d760aE.llvm.4930786928582598558"(ptr noalias noundef nonnull align 8 dereferenceable(16) %3, i64 noundef 1, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(64) %4) - to label %"_ZN96_$LT$ecow..vec..EcoVec$LT$T$GT$$u20$as$u20$core..convert..From$LT$$u5b$T$u3b$$u20$N$u5d$$GT$$GT$4from17haeeccbaf5905b57bE.exit.i64" unwind label %84, !noalias !36889 + to label %"_ZN96_$LT$ecow..vec..EcoVec$LT$T$GT$$u20$as$u20$core..convert..From$LT$$u5b$T$u3b$$u20$N$u5d$$GT$$GT$4from17haeeccbaf5905b57bE.exit.i66" unwind label %84, !noalias !36889 84: ; preds = %82 %85 = landingpad { ptr, i32 } @@ -169790,8 +169790,8 @@ _ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit: ; preds = %27 br label %99 90: ; preds = %"_ZN96_$LT$ecow..vec..EcoVec$LT$T$GT$$u20$as$u20$core..convert..From$LT$$u5b$T$u3b$$u20$N$u5d$$GT$$GT$4from17haeeccbaf5905b57bE.exit.i62", %49 - %.sroa.668.0.ph = phi i64 [ %57, %49 ], [ %67, %"_ZN96_$LT$ecow..vec..EcoVec$LT$T$GT$$u20$as$u20$core..convert..From$LT$$u5b$T$u3b$$u20$N$u5d$$GT$$GT$4from17haeeccbaf5905b57bE.exit.i62" ] - %.sroa.067.0.ph = phi ptr [ %51, %49 ], [ %66, %"_ZN96_$LT$ecow..vec..EcoVec$LT$T$GT$$u20$as$u20$core..convert..From$LT$$u5b$T$u3b$$u20$N$u5d$$GT$$GT$4from17haeeccbaf5905b57bE.exit.i62" ] + %.sroa.668.0.ph = phi i64 [ %57, %49 ], [ %67, %"_ZN96_$LT$ecow..vec..EcoVec$LT$T$GT$$u20$as$u20$core..convert..From$LT$$u5b$T$u3b$$u20$N$u5d$$GT$$GT$4from17haeeccbaf5905b57bE.exit.i64" ] + %.sroa.067.0.ph = phi ptr [ %51, %49 ], [ %66, %"_ZN96_$LT$ecow..vec..EcoVec$LT$T$GT$$u20$as$u20$core..convert..From$LT$$u5b$T$u3b$$u20$N$u5d$$GT$$GT$4from17haeeccbaf5905b57bE.exit.i64" ] %91 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %.sroa.067.0.ph, ptr %91, align 8 %92 = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -169811,8 +169811,8 @@ _ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit: ; preds = %27 br i1 %trunc56, label %108, label %102 99: ; preds = %"_ZN96_$LT$ecow..vec..EcoVec$LT$T$GT$$u20$as$u20$core..convert..From$LT$$u5b$T$u3b$$u20$N$u5d$$GT$$GT$4from17haeeccbaf5905b57bE.exit.i64", %72 - %.sroa.671.0.ph = phi i64 [ %79, %72 ], [ %89, %"_ZN96_$LT$ecow..vec..EcoVec$LT$T$GT$$u20$as$u20$core..convert..From$LT$$u5b$T$u3b$$u20$N$u5d$$GT$$GT$4from17haeeccbaf5905b57bE.exit.i64" ] - %.sroa.070.0.ph = phi ptr [ %73, %72 ], [ %88, %"_ZN96_$LT$ecow..vec..EcoVec$LT$T$GT$$u20$as$u20$core..convert..From$LT$$u5b$T$u3b$$u20$N$u5d$$GT$$GT$4from17haeeccbaf5905b57bE.exit.i64" ] + %.sroa.671.0.ph = phi i64 [ %79, %72 ], [ %89, %"_ZN96_$LT$ecow..vec..EcoVec$LT$T$GT$$u20$as$u20$core..convert..From$LT$$u5b$T$u3b$$u20$N$u5d$$GT$$GT$4from17haeeccbaf5905b57bE.exit.i66" ] + %.sroa.070.0.ph = phi ptr [ %73, %72 ], [ %88, %"_ZN96_$LT$ecow..vec..EcoVec$LT$T$GT$$u20$as$u20$core..convert..From$LT$$u5b$T$u3b$$u20$N$u5d$$GT$$GT$4from17haeeccbaf5905b57bE.exit.i66" ] %100 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %.sroa.070.0.ph, ptr %100, align 8 %101 = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -169937,7 +169937,7 @@ _ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit.thread: ; preds %37 = getelementptr inbounds nuw i8, ptr %9, i64 8 store i64 0, ptr %37, align 8, !noalias !36901 invoke void @"_ZN4ecow3vec15EcoVec$LT$T$GT$19extend_from_trusted17ha5ea5bea0f0d760aE.llvm.4930786928582598558"(ptr noalias noundef nonnull align 8 dereferenceable(16) %9, i64 noundef 1, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(64) %10) - to label %_ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit.thread78 unwind label %38, !noalias !36900 + to label %_ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit.thread79 unwind label %38, !noalias !36900 38: ; preds = %36 %39 = landingpad { ptr, i32 } @@ -169999,7 +169999,7 @@ _ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit: ; preds = %27 %61 = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 0, ptr %61, align 8, !noalias !36912 invoke void @"_ZN4ecow3vec15EcoVec$LT$T$GT$19extend_from_trusted17ha5ea5bea0f0d760aE.llvm.4930786928582598558"(ptr noalias noundef nonnull align 8 dereferenceable(16) %6, i64 noundef 1, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(64) %7) - to label %"_ZN96_$LT$ecow..vec..EcoVec$LT$T$GT$$u20$as$u20$core..convert..From$LT$$u5b$T$u3b$$u20$N$u5d$$GT$$GT$4from17haeeccbaf5905b57bE.exit.i53" unwind label %62, !noalias !36911 + to label %"_ZN96_$LT$ecow..vec..EcoVec$LT$T$GT$$u20$as$u20$core..convert..From$LT$$u5b$T$u3b$$u20$N$u5d$$GT$$GT$4from17haeeccbaf5905b57bE.exit.i54" unwind label %62, !noalias !36911 62: ; preds = %60 %63 = landingpad { ptr, i32 } @@ -170021,8 +170021,8 @@ _ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit: ; preds = %27 br label %92 68: ; preds = %_ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit.thread78, %_ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit - %69 = phi double [ %43, %_ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit.thread78 ], [ %46, %_ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit ] - %.sroa.0.081 = phi ptr [ %42, %_ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit.thread78 ], [ %44, %_ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit ] + %69 = phi double [ %43, %_ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit.thread79 ], [ %46, %_ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit ] + %.sroa.0.081 = phi ptr [ %42, %_ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit.thread79 ], [ %44, %_ZN5typst11foundations4args4Args6expect17hbda5e9339bd4d592E.exit ] %70 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %.sroa.0.081, ptr %70, align 8 %71 = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -170057,7 +170057,7 @@ _ZN5typst11foundations4args4Args6expect17hc80b218e45ae4d3eE.exit.thread: ; preds %82 = getelementptr inbounds nuw i8, ptr %3, i64 8 store i64 0, ptr %82, align 8, !noalias !36923 invoke void @"_ZN4ecow3vec15EcoVec$LT$T$GT$19extend_from_trusted17ha5ea5bea0f0d760aE.llvm.4930786928582598558"(ptr noalias noundef nonnull align 8 dereferenceable(16) %3, i64 noundef 1, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(64) %4) - to label %_ZN5typst11foundations4args4Args6expect17hc80b218e45ae4d3eE.exit.thread92 unwind label %83, !noalias !36922 + to label %_ZN5typst11foundations4args4Args6expect17hc80b218e45ae4d3eE.exit.thread93 unwind label %83, !noalias !36922 83: ; preds = %81 %84 = landingpad { ptr, i32 } @@ -170085,8 +170085,8 @@ _ZN5typst11foundations4args4Args6expect17hc80b218e45ae4d3eE.exit: ; preds = %72 br i1 %90, label %95, label %102 92: ; preds = %"_ZN96_$LT$ecow..vec..EcoVec$LT$T$GT$$u20$as$u20$core..convert..From$LT$$u5b$T$u3b$$u20$N$u5d$$GT$$GT$4from17haeeccbaf5905b57bE.exit.i53", %49 - %.sroa.659.0.ph = phi i64 [ %57, %49 ], [ %67, %"_ZN96_$LT$ecow..vec..EcoVec$LT$T$GT$$u20$as$u20$core..convert..From$LT$$u5b$T$u3b$$u20$N$u5d$$GT$$GT$4from17haeeccbaf5905b57bE.exit.i53" ] - %.sroa.058.0.ph = phi ptr [ %51, %49 ], [ %66, %"_ZN96_$LT$ecow..vec..EcoVec$LT$T$GT$$u20$as$u20$core..convert..From$LT$$u5b$T$u3b$$u20$N$u5d$$GT$$GT$4from17haeeccbaf5905b57bE.exit.i53" ] + %.sroa.659.0.ph = phi i64 [ %57, %49 ], [ %67, %"_ZN96_$LT$ecow..vec..EcoVec$LT$T$GT$$u20$as$u20$core..convert..From$LT$$u5b$T$u3b$$u20$N$u5d$$GT$$GT$4from17haeeccbaf5905b57bE.exit.i54" ] + %.sroa.058.0.ph = phi ptr [ %51, %49 ], [ %66, %"_ZN96_$LT$ecow..vec..EcoVec$LT$T$GT$$u20$as$u20$core..convert..From$LT$$u5b$T$u3b$$u20$N$u5d$$GT$$GT$4from17haeeccbaf5905b57bE.exit.i54" ] %93 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %.sroa.058.0.ph, ptr %93, align 8 %94 = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -170107,8 +170107,8 @@ _ZN5typst11foundations4args4Args6expect17hc80b218e45ae4d3eE.exit: ; preds = %72 br i1 %trunc47, label %114, label %106 102: ; preds = %_ZN5typst11foundations4args4Args6expect17hc80b218e45ae4d3eE.exit.thread92, %_ZN5typst11foundations4args4Args6expect17hc80b218e45ae4d3eE.exit - %103 = phi double [ %88, %_ZN5typst11foundations4args4Args6expect17hc80b218e45ae4d3eE.exit.thread92 ], [ %91, %_ZN5typst11foundations4args4Args6expect17hc80b218e45ae4d3eE.exit ] - %.sroa.061.095 = phi ptr [ %87, %_ZN5typst11foundations4args4Args6expect17hc80b218e45ae4d3eE.exit.thread92 ], [ %89, %_ZN5typst11foundations4args4Args6expect17hc80b218e45ae4d3eE.exit ] + %103 = phi double [ %88, %_ZN5typst11foundations4args4Args6expect17hc80b218e45ae4d3eE.exit.thread93 ], [ %91, %_ZN5typst11foundations4args4Args6expect17hc80b218e45ae4d3eE.exit ] + %.sroa.061.095 = phi ptr [ %87, %_ZN5typst11foundations4args4Args6expect17hc80b218e45ae4d3eE.exit.thread93 ], [ %89, %_ZN5typst11foundations4args4Args6expect17hc80b218e45ae4d3eE.exit ] %104 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %.sroa.061.095, ptr %104, align 8 %105 = getelementptr inbounds nuw i8, ptr %0, i64 16 diff --git a/bench/wasmtime-rs/optimized/4ab4rlryc5h7bf6z.ll b/bench/wasmtime-rs/optimized/4ab4rlryc5h7bf6z.ll index 5c7fa282dee..6f31b55e2e9 100644 --- a/bench/wasmtime-rs/optimized/4ab4rlryc5h7bf6z.ll +++ b/bench/wasmtime-rs/optimized/4ab4rlryc5h7bf6z.ll @@ -7296,24 +7296,24 @@ _ZN4core3ptr19swap_nonoverlapping17h3c315fd4d9141eaeE.llvm.1710812290736639100.e %31 = tail call i32 @llvm.uadd.sat.i32(i32 %.sroa.4.0.copyload.i.i.i, i32 2147483647) br label %32 -32: ; preds = %39, %.lr.ph.i.i.i - %.sroa.9.027.i.i.i = phi i64 [ %.sroa.10.1.i.i, %.lr.ph.i.i.i ], [ %34, %39 ] - %33 = add i64 %.sroa.9.027.i.i.i, -1 - %34 = lshr i64 %33, 1 - %35 = icmp ult i64 %34, %7 - tail call void @llvm.assume(i1 %35) - %36 = getelementptr inbounds nuw { i32, i32, i8, [3 x i8] }, ptr %11, i64 %34 - %37 = getelementptr i8, ptr %36, i64 4 - %.val10.i.i.i = load i32, ptr %37, align 4, !alias.scope !1424, !noalias !1429, !noundef !4 - %38 = tail call i32 @llvm.uadd.sat.i32(i32 %.val10.i.i.i, i32 2147483647) - %switch.i.not.i.i.i = icmp ugt i32 %38, %31 - br i1 %switch.i.not.i.i.i, label %39, label %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$19sift_down_to_bottom17h7efd0383f7120568E.llvm.1710812290736639100.exit.i" - -39: ; preds = %32 - %40 = getelementptr inbounds { i32, i32, i8, [3 x i8] }, ptr %11, i64 %.sroa.9.027.i.i.i - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %40, ptr noundef nonnull align 4 dereferenceable(12) %36, i64 12, i1 false), !noalias !1421 - %.not6.i = icmp eq i64 %34, 0 - br i1 %.not6.i, label %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$19sift_down_to_bottom17h7efd0383f7120568E.llvm.1710812290736639100.exit.i", label %32 +39: ; preds = %39, %.lr.ph.i.i.i + %.sroa.9.025.i.i.i = phi i64 [ %.sroa.10.1.i.i, %.lr.ph.i.i.i ], [ %35, %40 ] + %34 = add i64 %.sroa.9.025.i.i.i, -1 + %35 = lshr i64 %34, 1 + %36 = icmp ult i64 %35, %7 + tail call void @llvm.assume(i1 %36) + %37 = getelementptr inbounds nuw { i32, i32, i8, [3 x i8] }, ptr %11, i64 %35 + %38 = getelementptr i8, ptr %37, i64 4 + %.val10.i.i.i = load i32, ptr %38, align 4, !alias.scope !1424, !noalias !1429, !noundef !4 + %39 = tail call i32 @llvm.uadd.sat.i32(i32 %.val10.i.i.i, i32 2147483647) + %switch.i.not.i.i.i = icmp ugt i32 %39, %32 + br i1 %switch.i.not.i.i.i, label %40, label %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$19sift_down_to_bottom17h7efd0383f7120568E.llvm.1710812290736639100.exit.i" + +40: ; preds = %33 + %41 = getelementptr inbounds { i32, i32, i8, [3 x i8] }, ptr %11, i64 %.sroa.9.025.i.i.i + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %41, ptr noundef nonnull align 4 dereferenceable(12) %37, i64 12, i1 false), !noalias !1421 + %.not6.i = icmp eq i64 %35, 0 + br i1 %.not6.i, label %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$19sift_down_to_bottom17h7efd0383f7120568E.llvm.1710812290736639100.exit.i", label %33 .lr.ph.i5.i: ; preds = %_ZN4core3ptr19swap_nonoverlapping17h3c315fd4d9141eaeE.llvm.1710812290736639100.exit.i, %.lr.ph.i5.i %.037.i.i = phi i64 [ %.0.i.i, %.lr.ph.i5.i ], [ 1, %_ZN4core3ptr19swap_nonoverlapping17h3c315fd4d9141eaeE.llvm.1710812290736639100.exit.i ] @@ -7342,7 +7342,7 @@ _ZN4core3ptr19swap_nonoverlapping17h3c315fd4d9141eaeE.llvm.1710812290736639100.e br i1 %.not.not.not.i.i, label %.lr.ph.i5.i, label %._crit_edge.i.i "_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$19sift_down_to_bottom17h7efd0383f7120568E.llvm.1710812290736639100.exit.i": ; preds = %39, %32, %28 - %.sroa.9.0.lcssa.i.i.i = phi i64 [ 0, %28 ], [ 0, %39 ], [ %.sroa.9.027.i.i.i, %32 ] + %.sroa.9.0.lcssa.i.i.i = phi i64 [ 0, %28 ], [ 0, %39 ], [ %.sroa.9.025.i.i.i, %32 ] %53 = getelementptr inbounds { i32, i32, i8, [3 x i8] }, ptr %11, i64 %.sroa.9.0.lcssa.i.i.i store i32 %.sroa.026.0.copyload.i.i.i, ptr %53, align 4, !noalias !1421 %.sroa.19.24..sroa_idx.i.i.i = getelementptr inbounds nuw i8, ptr %53, i64 4 @@ -7771,7 +7771,7 @@ define hidden noundef range(i64 0, -1) i64 @"_ZN5alloc11collections11binary_heap br label %13 ._crit_edge: ; preds = %20, %13, %3 - %.sroa.9.0.lcssa = phi i64 [ %2, %3 ], [ %.sroa.9.027, %13 ], [ %15, %20 ] + %.sroa.9.0.lcssa = phi i64 [ %2, %3 ], [ %.sroa.9.027, %14 ], [ %15, %20 ] %12 = getelementptr inbounds { i32, i32, i8, [3 x i8] }, ptr %5, i64 %.sroa.9.0.lcssa store i32 %.sroa.026.0.copyload, ptr %12, align 4 %.sroa.19.24..sroa_idx = getelementptr inbounds nuw i8, ptr %12, i64 4 diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index c8d0fce0bf7..bdcc08b00fd 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/167771 export COMPTIME_MODE=0 export STAT_MODE=0 export STAT_NAME=""