diff --git a/bench/abseil-cpp/optimized/cord_test.cc.ll b/bench/abseil-cpp/optimized/cord_test.cc.ll index afffad1f207..b173b6f718f 100644 --- a/bench/abseil-cpp/optimized/cord_test.cc.ll +++ b/bench/abseil-cpp/optimized/cord_test.cc.ll @@ -11015,9 +11015,9 @@ _ZNSt6vectorISt4pairISt17basic_string_viewIcSt11char_traitsIcEES4_ESaIS5_EE17_S_ br i1 %cmp.not.i.i, label %_ZNSt12_Vector_baseISt4pairISt17basic_string_viewIcSt11char_traitsIcEES4_ESaIS5_EE11_M_allocateEm.exit.thread.i, label %for.body.i.i.i.i.preheader.i _ZNSt12_Vector_baseISt4pairISt17basic_string_viewIcSt11char_traitsIcEES4_ESaIS5_EE11_M_allocateEm.exit.thread.i: ; preds = %_ZNSt6vectorISt4pairISt17basic_string_viewIcSt11char_traitsIcEES4_ESaIS5_EE17_S_check_init_lenEmRKS6_.exit.i - %add.ptr8.i = getelementptr inbounds i8, ptr null, i64 %add.ptr.i.idx - %_M_end_of_storage9.i = getelementptr inbounds i8, ptr %this, i64 16 - store ptr %add.ptr8.i, ptr %_M_end_of_storage9.i, align 8 + %add.ptr5.i = getelementptr inbounds i8, ptr null, i64 %add.ptr.i.idx + %_M_end_of_storage6.i = getelementptr inbounds i8, ptr %this, i64 16 + store ptr %add.ptr5.i, ptr %_M_end_of_storage6.i, align 8 br label %invoke.cont for.body.i.i.i.i.preheader.i: ; preds = %_ZNSt6vectorISt4pairISt17basic_string_viewIcSt11char_traitsIcEES4_ESaIS5_EE17_S_check_init_lenEmRKS6_.exit.i diff --git a/bench/abseil-cpp/optimized/unordered_map_test.cc.ll b/bench/abseil-cpp/optimized/unordered_map_test.cc.ll index eeac1ba3a56..87cc47be2e6 100644 --- a/bench/abseil-cpp/optimized/unordered_map_test.cc.ll +++ b/bench/abseil-cpp/optimized/unordered_map_test.cc.ll @@ -25115,9 +25115,9 @@ _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEP _ZN7testing15AssertionResultD2Ev.exit90: ; preds = %if.end73, %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i89 store ptr null, ptr %message_.i87, align 8 - %__first.coerce4.i.i.i.i.i = ptrtoint ptr %values.sroa.0.2 to i64 - %__last.coerce3.i.i.i.i.i = ptrtoint ptr %values.sroa.7.1 to i64 - %sub.ptr.sub.i.i.i.i.i.i.i.i = sub i64 %__last.coerce3.i.i.i.i.i, %__first.coerce4.i.i.i.i.i + %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i = ptrtoint ptr %values.sroa.7.1 to i64 + %sub.ptr.rhs.cast.i.i.i.i.i.i.i.i = ptrtoint ptr %values.sroa.0.2 to i64 + %sub.ptr.sub.i.i.i.i.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i.i.i.i.i %cmp.i.i.i.i.i.i91 = icmp ugt i64 %sub.ptr.sub.i.i.i.i.i.i.i.i, 9223372036854775800 br i1 %cmp.i.i.i.i.i.i91, label %if.then.i.i.i.i.i.i93, label %_ZNSt6vectorISt4pairIKiiESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i.i.i.i.i @@ -82460,9 +82460,9 @@ lpad.i.i.i: ; preds = %for.body.i.i.i invoke.cont21: ; preds = %invoke.cont.i.i.i, %.noexc %9 = load ptr, ptr %values, align 8, !noalias !1641 %10 = load ptr, ptr %_M_finish.i, align 8, !noalias !1641 - %__first.coerce4.i.i.i.i.i = ptrtoint ptr %9 to i64 - %__last.coerce3.i.i.i.i.i = ptrtoint ptr %10 to i64 - %sub.ptr.sub.i.i.i.i.i.i.i.i = sub i64 %__last.coerce3.i.i.i.i.i, %__first.coerce4.i.i.i.i.i + %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i = ptrtoint ptr %10 to i64 + %sub.ptr.rhs.cast.i.i.i.i.i.i.i.i = ptrtoint ptr %9 to i64 + %sub.ptr.sub.i.i.i.i.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i.i.i.i.i %cmp.i.i.i.i.i.i = icmp ugt i64 %sub.ptr.sub.i.i.i.i.i.i.i.i, 9223372036854775800 br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %_ZNSt6vectorISt4pairIKiiESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i.i.i.i.i @@ -89658,9 +89658,9 @@ invoke.cont17: ; preds = %invoke.cont17.loope %6 = phi ptr [ %.pre61, %invoke.cont17.loopexit ], [ %4, %invoke.cont7 ] %7 = phi ptr [ %.pre, %invoke.cont17.loopexit ], [ %4, %invoke.cont7 ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__node_gen.i.i) - %__first.coerce4.i.i.i.i.i = ptrtoint ptr %7 to i64 - %__last.coerce3.i.i.i.i.i = ptrtoint ptr %6 to i64 - %sub.ptr.sub.i.i.i.i.i.i.i.i = sub i64 %__last.coerce3.i.i.i.i.i, %__first.coerce4.i.i.i.i.i + %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i = ptrtoint ptr %6 to i64 + %sub.ptr.rhs.cast.i.i.i.i.i.i.i.i = ptrtoint ptr %7 to i64 + %sub.ptr.sub.i.i.i.i.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i.i.i.i.i %cmp.i.i.i.i.i.i = icmp ugt i64 %sub.ptr.sub.i.i.i.i.i.i.i.i, 9223372036854775800 br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %_ZNSt6vectorISt4pairIKiiESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i.i.i.i.i @@ -101478,9 +101478,9 @@ lpad.i.i.i: ; preds = %for.body.i.i.i invoke.cont21: ; preds = %invoke.cont.i.i.i, %.noexc %9 = load ptr, ptr %values, align 8, !noalias !1956 %10 = load ptr, ptr %_M_finish.i, align 8, !noalias !1956 - %__first.coerce4.i.i.i.i.i = ptrtoint ptr %9 to i64 - %__last.coerce3.i.i.i.i.i = ptrtoint ptr %10 to i64 - %sub.ptr.sub.i.i.i.i.i.i.i.i = sub i64 %__last.coerce3.i.i.i.i.i, %__first.coerce4.i.i.i.i.i + %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i = ptrtoint ptr %10 to i64 + %sub.ptr.rhs.cast.i.i.i.i.i.i.i.i = ptrtoint ptr %9 to i64 + %sub.ptr.sub.i.i.i.i.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i.i.i.i.i %cmp.i.i.i.i.i.i = icmp ugt i64 %sub.ptr.sub.i.i.i.i.i.i.i.i, 9223372036854775800 br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %_ZNSt6vectorISt4pairIKiiESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i.i.i.i.i @@ -102274,9 +102274,9 @@ _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEP _ZN7testing15AssertionResultD2Ev.exit120: ; preds = %if.end131, %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i119 store ptr null, ptr %message_.i117, align 8 - %__first.coerce4.i.i.i.i = ptrtoint ptr %values2.sroa.0.0.lcssa to i64 - %__last.coerce3.i.i.i.i = ptrtoint ptr %values2.sroa.7.0.lcssa to i64 - %sub.ptr.sub.i.i.i.i.i.i.i = sub i64 %__last.coerce3.i.i.i.i, %__first.coerce4.i.i.i.i + %sub.ptr.lhs.cast.i.i.i.i.i.i.i = ptrtoint ptr %values2.sroa.7.0.lcssa to i64 + %sub.ptr.rhs.cast.i.i.i.i.i.i.i = ptrtoint ptr %values2.sroa.0.0.lcssa to i64 + %sub.ptr.sub.i.i.i.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i.i.i.i %cmp.i.i.i.i.i123 = icmp ugt i64 %sub.ptr.sub.i.i.i.i.i.i.i, 9223372036854775800 br i1 %cmp.i.i.i.i.i123, label %if.then.i.i.i.i.i125, label %_ZNSt6vectorISt4pairIKiiESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i.i.i.i @@ -105012,9 +105012,9 @@ lpad.i.i.i: ; preds = %for.body.i.i.i invoke.cont21: ; preds = %invoke.cont.i.i.i, %.noexc %9 = load ptr, ptr %values, align 8, !noalias !2027 %10 = load ptr, ptr %_M_finish.i, align 8, !noalias !2027 - %__first.coerce4.i.i.i.i.i = ptrtoint ptr %9 to i64 - %__last.coerce3.i.i.i.i.i = ptrtoint ptr %10 to i64 - %sub.ptr.sub.i.i.i.i.i.i.i.i = sub i64 %__last.coerce3.i.i.i.i.i, %__first.coerce4.i.i.i.i.i + %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i = ptrtoint ptr %10 to i64 + %sub.ptr.rhs.cast.i.i.i.i.i.i.i.i = ptrtoint ptr %9 to i64 + %sub.ptr.sub.i.i.i.i.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i.i.i.i.i %cmp.i.i.i.i.i.i = icmp ugt i64 %sub.ptr.sub.i.i.i.i.i.i.i.i, 9223372036854775800 br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i73.invoke, label %_ZNSt6vectorISt4pairIKiiESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i.i.i.i.i @@ -107837,9 +107837,9 @@ lpad.i.i.i: ; preds = %for.body.i.i.i invoke.cont21: ; preds = %invoke.cont.i.i.i, %.noexc %9 = load ptr, ptr %values, align 8, !noalias !2075 %10 = load ptr, ptr %_M_finish.i, align 8, !noalias !2075 - %__first.coerce4.i.i.i.i.i = ptrtoint ptr %9 to i64 - %__last.coerce3.i.i.i.i.i = ptrtoint ptr %10 to i64 - %sub.ptr.sub.i.i.i.i.i.i.i.i = sub i64 %__last.coerce3.i.i.i.i.i, %__first.coerce4.i.i.i.i.i + %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i = ptrtoint ptr %10 to i64 + %sub.ptr.rhs.cast.i.i.i.i.i.i.i.i = ptrtoint ptr %9 to i64 + %sub.ptr.sub.i.i.i.i.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i.i.i.i.i %cmp.i.i.i.i.i.i = icmp ugt i64 %sub.ptr.sub.i.i.i.i.i.i.i.i, 9223372036854775800 br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i109.invoke, label %_ZNSt6vectorISt4pairIKiiESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i.i.i.i.i @@ -108448,9 +108448,9 @@ _ZN7testing15AssertionResultD2Ev.exit105: ; preds = %if.end106, %_ZNKSt1 %74 = load ptr, ptr %values, align 8 %add.ptr.i = getelementptr inbounds i8, ptr %74, i64 8 %75 = load ptr, ptr %_M_finish.i, align 8 - %__first.coerce4.i.i.i.i = ptrtoint ptr %add.ptr.i to i64 - %__last.coerce3.i.i.i.i = ptrtoint ptr %75 to i64 - %sub.ptr.sub.i.i.i.i.i.i.i = sub i64 %__last.coerce3.i.i.i.i, %__first.coerce4.i.i.i.i + %sub.ptr.lhs.cast.i.i.i.i.i.i.i = ptrtoint ptr %75 to i64 + %sub.ptr.rhs.cast.i.i.i.i.i.i.i = ptrtoint ptr %add.ptr.i to i64 + %sub.ptr.sub.i.i.i.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i.i.i.i %cmp.i.i.i.i.i = icmp ugt i64 %sub.ptr.sub.i.i.i.i.i.i.i, 9223372036854775800 br i1 %cmp.i.i.i.i.i, label %if.then.i.i.i.i.i109.invoke, label %_ZNSt6vectorISt4pairIKiiESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i.i.i.i @@ -111203,9 +111203,9 @@ lpad.i.i.i35: ; preds = %for.body.i.i.i32 invoke.cont48: ; preds = %invoke.cont.i.i.i36, %.noexc39 %18 = load ptr, ptr %v1, align 8, !noalias !2147 %19 = load ptr, ptr %_M_finish.i, align 8, !noalias !2147 - %__first.coerce4.i.i.i.i.i = ptrtoint ptr %18 to i64 - %__last.coerce3.i.i.i.i.i = ptrtoint ptr %19 to i64 - %sub.ptr.sub.i.i.i.i.i.i.i.i = sub i64 %__last.coerce3.i.i.i.i.i, %__first.coerce4.i.i.i.i.i + %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i = ptrtoint ptr %19 to i64 + %sub.ptr.rhs.cast.i.i.i.i.i.i.i.i = ptrtoint ptr %18 to i64 + %sub.ptr.sub.i.i.i.i.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i.i.i.i.i %cmp.i.i.i.i.i.i = icmp ugt i64 %sub.ptr.sub.i.i.i.i.i.i.i.i, 9223372036854775800 br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i286.invoke, label %_ZNSt6vectorISt4pairIKiiESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i.i.i.i.i @@ -111545,9 +111545,9 @@ _ZN7testing15AssertionResultD2Ev.exit: ; preds = %if.end, %_ZNKSt14de store ptr null, ptr %message_.i, align 8 %52 = load ptr, ptr %v2, align 8, !noalias !2164 %53 = load ptr, ptr %_M_finish.i28, align 8, !noalias !2164 - %__first.coerce4.i.i.i.i.i71 = ptrtoint ptr %52 to i64 - %__last.coerce3.i.i.i.i.i72 = ptrtoint ptr %53 to i64 - %sub.ptr.sub.i.i.i.i.i.i.i.i73 = sub i64 %__last.coerce3.i.i.i.i.i72, %__first.coerce4.i.i.i.i.i71 + %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i71 = ptrtoint ptr %53 to i64 + %sub.ptr.rhs.cast.i.i.i.i.i.i.i.i72 = ptrtoint ptr %52 to i64 + %sub.ptr.sub.i.i.i.i.i.i.i.i73 = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i71, %sub.ptr.rhs.cast.i.i.i.i.i.i.i.i72 %cmp.i.i.i.i.i.i74 = icmp ugt i64 %sub.ptr.sub.i.i.i.i.i.i.i.i73, 9223372036854775800 br i1 %cmp.i.i.i.i.i.i74, label %if.then.i.i.i.i.i.i286.invoke, label %_ZNSt6vectorISt4pairIKiiESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i.i.i.i.i75 @@ -111972,9 +111972,9 @@ if.then.i24.i: ; preds = %_ZNSt10_HashtableIi invoke.cont106: ; preds = %_ZNSt10_HashtableIiSt4pairIKiiEN4absl18container_internal5AllocIS2_EENSt8__detail10_Select1stENS4_20StatefulTestingEqualENS4_19StatefulTestingHashENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb1ELb0ELb1EEEE16_M_update_bbeginEv.exit.i, %if.then.i24.i %106 = load ptr, ptr %v2, align 8, !noalias !2181 %107 = load ptr, ptr %_M_finish.i28, align 8, !noalias !2181 - %__first.coerce4.i.i.i.i.i173 = ptrtoint ptr %106 to i64 - %__last.coerce3.i.i.i.i.i174 = ptrtoint ptr %107 to i64 - %sub.ptr.sub.i.i.i.i.i.i.i.i175 = sub i64 %__last.coerce3.i.i.i.i.i174, %__first.coerce4.i.i.i.i.i173 + %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i173 = ptrtoint ptr %107 to i64 + %sub.ptr.rhs.cast.i.i.i.i.i.i.i.i174 = ptrtoint ptr %106 to i64 + %sub.ptr.sub.i.i.i.i.i.i.i.i175 = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i173, %sub.ptr.rhs.cast.i.i.i.i.i.i.i.i174 %cmp.i.i.i.i.i.i176 = icmp ugt i64 %sub.ptr.sub.i.i.i.i.i.i.i.i175, 9223372036854775800 br i1 %cmp.i.i.i.i.i.i176, label %if.then.i.i.i.i.i.i286.invoke, label %_ZNSt6vectorISt4pairIKiiESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i.i.i.i.i177 @@ -112308,9 +112308,9 @@ _ZN7testing15AssertionResultD2Ev.exit271: ; preds = %if.end136, %_ZNKSt1 store ptr null, ptr %message_.i268, align 8 %138 = load ptr, ptr %v1, align 8, !noalias !2198 %139 = load ptr, ptr %_M_finish.i, align 8, !noalias !2198 - %__first.coerce4.i.i.i.i.i274 = ptrtoint ptr %138 to i64 - %__last.coerce3.i.i.i.i.i275 = ptrtoint ptr %139 to i64 - %sub.ptr.sub.i.i.i.i.i.i.i.i276 = sub i64 %__last.coerce3.i.i.i.i.i275, %__first.coerce4.i.i.i.i.i274 + %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i274 = ptrtoint ptr %139 to i64 + %sub.ptr.rhs.cast.i.i.i.i.i.i.i.i275 = ptrtoint ptr %138 to i64 + %sub.ptr.sub.i.i.i.i.i.i.i.i276 = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i274, %sub.ptr.rhs.cast.i.i.i.i.i.i.i.i275 %cmp.i.i.i.i.i.i277 = icmp ugt i64 %sub.ptr.sub.i.i.i.i.i.i.i.i276, 9223372036854775800 br i1 %cmp.i.i.i.i.i.i277, label %if.then.i.i.i.i.i.i286.invoke, label %_ZNSt6vectorISt4pairIKiiESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i.i.i.i.i278 diff --git a/bench/boost/optimized/src.ll b/bench/boost/optimized/src.ll index 5aea4a03466..b42c3933c64 100644 --- a/bench/boost/optimized/src.ll +++ b/bench/boost/optimized/src.ll @@ -42052,17 +42052,17 @@ define linkonce_odr hidden noundef ptr @_ZN5boost4json12basic_parserINS0_6detail %3 = alloca %"struct.boost::json::basic_parser::number", align 8 %4 = getelementptr inbounds nuw i8, ptr %0, i64 184 %5 = load ptr, ptr %4, align 8, !tbaa !243 - %6 = ptrtoint ptr %5 to i64 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #48 - %7 = getelementptr inbounds nuw i8, ptr %3, i64 8 - %8 = getelementptr inbounds nuw i8, ptr %3, i64 12 - %9 = getelementptr inbounds nuw i8, ptr %3, i64 16 - %10 = getelementptr inbounds nuw i8, ptr %0, i64 240 - store i64 0, ptr %10, align 8, !tbaa !178 + %6 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %7 = getelementptr inbounds nuw i8, ptr %3, i64 12 + %8 = getelementptr inbounds nuw i8, ptr %3, i64 16 + %9 = getelementptr inbounds nuw i8, ptr %0, i64 240 + store i64 0, ptr %9, align 8, !tbaa !178 + %10 = ptrtoint ptr %5 to i64 %11 = ptrtoint ptr %1 to i64 - %12 = sub i64 %6, %11 + %12 = sub i64 %10, %11 %13 = icmp ugt i64 %12, 32 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(10) %7, i8 0, i64 10, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(10) %6, i8 0, i64 10, i1 false) br i1 %13, label %14, label %41 14: ; preds = %2 @@ -42098,7 +42098,7 @@ define linkonce_odr hidden noundef ptr @_ZN5boost4json12basic_parserINS0_6detail 30: ; preds = %21 %31 = zext nneg i16 %27 to i32 %32 = sub nsw i32 0, %31 - store i32 %32, ptr %7, align 8, !tbaa !684 + store i32 %32, ptr %6, align 8, !tbaa !684 %33 = zext nneg i16 %27 to i64 %34 = getelementptr inbounds nuw i8, ptr %22, i64 %33 %35 = load i8, ptr %34, align 1, !tbaa !15 @@ -42222,7 +42222,7 @@ define linkonce_odr hidden noundef ptr @_ZN5boost4json12basic_parserINS0_6detail .preheader.preheader: ; preds = %.thread286 %.10339 = ptrtoint ptr %.10 to i64 - %96 = sub i64 %6, %.10339 + %96 = sub i64 %10, %.10339 %scevgep = getelementptr i8, ptr %.10, i64 %96 br label %.preheader @@ -42248,7 +42248,7 @@ define linkonce_odr hidden noundef ptr @_ZN5boost4json12basic_parserINS0_6detail 105: ; preds = %101 %106 = getelementptr inbounds nuw i8, ptr %.3274, i64 1 - store i8 1, ptr %9, align 8, !tbaa !685 + store i8 1, ptr %8, align 8, !tbaa !685 br label %107 107: ; preds = %101, %103, %105 @@ -42284,13 +42284,13 @@ define linkonce_odr hidden noundef ptr @_ZN5boost4json12basic_parserINS0_6detail 122: ; preds = %117 %123 = zext nneg i8 %118 to i32 %124 = add nsw i32 %123, -48 - store i32 %124, ptr %8, align 4, !tbaa !686 + store i32 %124, ptr %7, align 4, !tbaa !686 %.14333 = getelementptr inbounds nuw i8, ptr %.12, i64 1 %125 = icmp ult ptr %.14333, %5 br i1 %125, label %.lr.ph.preheader, label %._crit_edge, !prof !359 .lr.ph.preheader: ; preds = %122 - %126 = sub i64 %6, %.12340 + %126 = sub i64 %10, %.12340 %scevgep341 = getelementptr i8, ptr %.12, i64 %126 br label %.lr.ph @@ -44316,29 +44316,29 @@ define linkonce_odr hidden noundef ptr @_ZN5boost4json12basic_parserINS0_6detail %4 = alloca i8, align 1 %5 = getelementptr inbounds nuw i8, ptr %0, i64 184 %6 = load ptr, ptr %5, align 8, !tbaa !243 - %7 = ptrtoint ptr %6 to i64 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #48 - %8 = getelementptr inbounds nuw i8, ptr %3, i64 8 - %9 = getelementptr inbounds nuw i8, ptr %3, i64 12 - %10 = getelementptr inbounds nuw i8, ptr %3, i64 16 - %11 = getelementptr inbounds nuw i8, ptr %0, i64 240 - store i64 0, ptr %11, align 8, !tbaa !178 - %12 = getelementptr inbounds nuw i8, ptr %1, i64 1 - %13 = getelementptr inbounds nuw i8, ptr %3, i64 17 - store i8 1, ptr %13, align 1, !tbaa !690 - %14 = ptrtoint ptr %12 to i64 - %15 = sub i64 %7, %14 + %7 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %8 = getelementptr inbounds nuw i8, ptr %3, i64 12 + %9 = getelementptr inbounds nuw i8, ptr %3, i64 16 + %10 = getelementptr inbounds nuw i8, ptr %0, i64 240 + store i64 0, ptr %10, align 8, !tbaa !178 + %11 = getelementptr inbounds nuw i8, ptr %1, i64 1 + %12 = getelementptr inbounds nuw i8, ptr %3, i64 17 + store i8 1, ptr %12, align 1, !tbaa !690 + %13 = ptrtoint ptr %6 to i64 + %14 = ptrtoint ptr %11 to i64 + %15 = sub i64 %13, %14 %16 = icmp ugt i64 %15, 32 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %8, i8 0, i64 9, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %7, i8 0, i64 9, i1 false) br i1 %16, label %17, label %68 17: ; preds = %2 - %18 = load i8, ptr %12, align 1, !tbaa !15 + %18 = load i8, ptr %11, align 1, !tbaa !15 %.not = icmp eq i8 %18, 48 br i1 %.not, label %38, label %19 19: ; preds = %17 - %20 = load <16 x i8>, ptr %12, align 1, !tbaa !15 + %20 = load <16 x i8>, ptr %11, align 1, !tbaa !15 %21 = add <16 x i8> %20, splat (i8 70) %22 = icmp slt <16 x i8> %21, splat (i8 118) %23 = bitcast <16 x i1> %22 to i16 @@ -44357,14 +44357,14 @@ define linkonce_odr hidden noundef ptr @_ZN5boost4json12basic_parserINS0_6detail br label %.thread413 32: ; preds = %26 - %33 = tail call noundef ptr @_ZN5boost4json12basic_parserINS0_6detail7handlerEE4failEPKcNS0_5errorEPKNS_15source_locationE(ptr noundef nonnull align 8 dereferenceable(274) %0, ptr noundef nonnull %12, i32 noundef 1, ptr noundef nonnull @_ZZN5boost4json12basic_parserINS0_6detail7handlerEE12parse_numberILb1ELc45ELNS0_16number_precisionE2EEEPKcS8_St17integral_constantIbXT_EES9_IcXT0_EES9_IS6_XT1_EEE3loc) #48 + %33 = tail call noundef ptr @_ZN5boost4json12basic_parserINS0_6detail7handlerEE4failEPKcNS0_5errorEPKNS_15source_locationE(ptr noundef nonnull align 8 dereferenceable(274) %0, ptr noundef nonnull %11, i32 noundef 1, ptr noundef nonnull @_ZZN5boost4json12basic_parserINS0_6detail7handlerEE12parse_numberILb1ELc45ELNS0_16number_precisionE2EEEPKcS8_St17integral_constantIbXT_EES9_IcXT0_EES9_IS6_XT1_EEE3loc) #48 br label %.thread413 .critedge: ; preds = %19 %34 = zext nneg i16 %24 to i32 store i64 0, ptr %3, align 8, !tbaa !682 %35 = zext nneg i16 %24 to i64 - %36 = getelementptr inbounds nuw i8, ptr %12, i64 %35 + %36 = getelementptr inbounds nuw i8, ptr %11, i64 %35 %37 = icmp eq i16 %23, 0 br i1 %37, label %.thread417.split.split.us, label %40 @@ -44407,7 +44407,7 @@ define linkonce_odr hidden noundef ptr @_ZN5boost4json12basic_parserINS0_6detail 59: ; preds = %56 %60 = sub nsw i32 0, %52 - store i32 %60, ptr %8, align 8, !tbaa !684 + store i32 %60, ptr %7, align 8, !tbaa !684 %61 = zext nneg i16 %51 to i64 %62 = getelementptr inbounds nuw i8, ptr %46, i64 %61 %63 = load i8, ptr %62, align 1, !tbaa !15 @@ -44421,11 +44421,11 @@ define linkonce_odr hidden noundef ptr @_ZN5boost4json12basic_parserINS0_6detail br i1 %or.cond, label %.thread425, label %.thread433 68: ; preds = %2 - %69 = icmp ult ptr %12, %6 + %69 = icmp ult ptr %11, %6 br i1 %69, label %70, label %92, !prof !244 70: ; preds = %68 - %71 = load i8, ptr %12, align 1, !tbaa !15 + %71 = load i8, ptr %11, align 1, !tbaa !15 %.fr571 = freeze i8 %71 %72 = add i8 %.fr571, -49 %73 = icmp ult i8 %72, 9 @@ -44458,11 +44458,11 @@ define linkonce_odr hidden noundef ptr @_ZN5boost4json12basic_parserINS0_6detail store i8 4, ptr %85, align 8, !tbaa !172 %86 = getelementptr inbounds nuw i8, ptr %0, i64 273 store i8 1, ptr %86, align 1, !tbaa !173 - %87 = call noundef ptr @_ZN5boost4json12basic_parserINS0_6detail7handlerEE13parse_literalISt17integral_constantINS2_8literalsELS7_6EEEEPKcSA_T_(ptr noundef nonnull align 8 dereferenceable(274) %0, ptr noundef nonnull %12) + %87 = call noundef ptr @_ZN5boost4json12basic_parserINS0_6detail7handlerEE13parse_literalISt17integral_constantINS2_8literalsELS7_6EEEEPKcSA_T_(ptr noundef nonnull align 8 dereferenceable(274) %0, ptr noundef nonnull %11) br label %.thread413 88: ; preds = %79 - %89 = tail call noundef ptr @_ZN5boost4json12basic_parserINS0_6detail7handlerEE4failEPKcNS0_5errorEPKNS_15source_locationE(ptr noundef nonnull align 8 dereferenceable(274) %0, ptr noundef nonnull %12, i32 noundef 1, ptr noundef nonnull @_ZZN5boost4json12basic_parserINS0_6detail7handlerEE12parse_numberILb1ELc45ELNS0_16number_precisionE2EEEPKcS8_St17integral_constantIbXT_EES9_IcXT0_EES9_IS6_XT1_EEE3loc_1) #48 + %89 = tail call noundef ptr @_ZN5boost4json12basic_parserINS0_6detail7handlerEE4failEPKcNS0_5errorEPKNS_15source_locationE(ptr noundef nonnull align 8 dereferenceable(274) %0, ptr noundef nonnull %11, i32 noundef 1, ptr noundef nonnull @_ZZN5boost4json12basic_parserINS0_6detail7handlerEE12parse_numberILb1ELc45ELNS0_16number_precisionE2EEEPKcS8_St17integral_constantIbXT_EES9_IcXT0_EES9_IS6_XT1_EEE3loc_1) #48 br label %.thread413 90: ; preds = %77 @@ -44471,7 +44471,7 @@ define linkonce_odr hidden noundef ptr @_ZN5boost4json12basic_parserINS0_6detail br label %.thread455 92: ; preds = %68 - %93 = call noundef ptr @_ZN5boost4json12basic_parserINS0_6detail7handlerEE13maybe_suspendEPKcNS4_5stateERKNS4_6numberE(ptr noundef nonnull align 8 dereferenceable(274) %0, ptr noundef nonnull %12, i8 noundef signext 38, ptr noundef nonnull align 8 dereferenceable(24) %3) + %93 = call noundef ptr @_ZN5boost4json12basic_parserINS0_6detail7handlerEE13maybe_suspendEPKcNS4_5stateERKNS4_6numberE(ptr noundef nonnull align 8 dereferenceable(274) %0, ptr noundef nonnull %11, i8 noundef signext 38, ptr noundef nonnull align 8 dereferenceable(24) %3) br label %.thread413 .thread417.split.split.us: ; preds = %.critedge, %.thread445 @@ -44482,7 +44482,7 @@ define linkonce_odr hidden noundef ptr @_ZN5boost4json12basic_parserINS0_6detail .lr.ph.preheader: ; preds = %.thread417.split.split.us %.3398560 = ptrtoint ptr %.3398 to i64 - %95 = sub i64 %7, %.3398560 + %95 = sub i64 %13, %.3398560 %scevgep = getelementptr i8, ptr %.3398, i64 %95 br label %.lr.ph @@ -44516,7 +44516,7 @@ define linkonce_odr hidden noundef ptr @_ZN5boost4json12basic_parserINS0_6detail .lr.ph532.preheader: ; preds = %106 %.15565 = ptrtoint ptr %107 to i64 - %109 = sub i64 %7, %.15565 + %109 = sub i64 %13, %.15565 %scevgep566 = getelementptr i8, ptr %107, i64 %109 br label %.lr.ph532 @@ -44645,7 +44645,7 @@ define linkonce_odr hidden noundef ptr @_ZN5boost4json12basic_parserINS0_6detail 168: ; preds = %164 %169 = getelementptr inbounds nuw i8, ptr %.8403.sink, i64 2 - store i8 1, ptr %10, align 8, !tbaa !685 + store i8 1, ptr %9, align 8, !tbaa !685 br label %170 170: ; preds = %164, %166, %168 @@ -44681,13 +44681,13 @@ define linkonce_odr hidden noundef ptr @_ZN5boost4json12basic_parserINS0_6detail 185: ; preds = %180 %186 = zext nneg i8 %181 to i32 %187 = add nsw i32 %186, -48 - store i32 %187, ptr %9, align 4, !tbaa !686 + store i32 %187, ptr %8, align 4, !tbaa !686 %.23535 = getelementptr inbounds nuw i8, ptr %.21, i64 1 %188 = icmp ult ptr %.23535, %6 br i1 %188, label %.lr.ph538.preheader, label %._crit_edge539, !prof !359 .lr.ph538.preheader: ; preds = %185 - %189 = sub i64 %7, %.21568 + %189 = sub i64 %13, %.21568 %scevgep569 = getelementptr i8, ptr %.21, i64 %189 br label %.lr.ph538 @@ -46268,17 +46268,17 @@ define linkonce_odr hidden noundef ptr @_ZN5boost4json12basic_parserINS0_6detail %3 = alloca %"struct.boost::json::basic_parser::number", align 8 %4 = getelementptr inbounds nuw i8, ptr %0, i64 184 %5 = load ptr, ptr %4, align 8, !tbaa !243 - %6 = ptrtoint ptr %5 to i64 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #48 - %7 = getelementptr inbounds nuw i8, ptr %3, i64 8 - %8 = getelementptr inbounds nuw i8, ptr %3, i64 12 - %9 = getelementptr inbounds nuw i8, ptr %3, i64 16 - %10 = getelementptr inbounds nuw i8, ptr %0, i64 240 - store i64 0, ptr %10, align 8, !tbaa !178 + %6 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %7 = getelementptr inbounds nuw i8, ptr %3, i64 12 + %8 = getelementptr inbounds nuw i8, ptr %3, i64 16 + %9 = getelementptr inbounds nuw i8, ptr %0, i64 240 + store i64 0, ptr %9, align 8, !tbaa !178 + %10 = ptrtoint ptr %5 to i64 %11 = ptrtoint ptr %1 to i64 - %12 = sub i64 %6, %11 + %12 = sub i64 %10, %11 %13 = icmp ugt i64 %12, 32 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(10) %7, i8 0, i64 10, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(10) %6, i8 0, i64 10, i1 false) br i1 %13, label %14, label %.thread375 14: ; preds = %2 @@ -46325,7 +46325,7 @@ define linkonce_odr hidden noundef ptr @_ZN5boost4json12basic_parserINS0_6detail 40: ; preds = %38 %41 = sub nsw i32 0, %35 - store i32 %41, ptr %7, align 8, !tbaa !684 + store i32 %41, ptr %6, align 8, !tbaa !684 %42 = zext nneg i16 %34 to i64 %43 = getelementptr inbounds nuw i8, ptr %29, i64 %42 %44 = load i8, ptr %43, align 1, !tbaa !15 @@ -46366,7 +46366,7 @@ define linkonce_odr hidden noundef ptr @_ZN5boost4json12basic_parserINS0_6detail .lr.ph.preheader: ; preds = %.thread375.split.split.us %.2358513533 = ptrtoint ptr %.2358532 to i64 - %60 = sub i64 %6, %.2358513533 + %60 = sub i64 %10, %.2358513533 %scevgep = getelementptr i8, ptr %.2358532, i64 %60 br label %.lr.ph @@ -46396,20 +46396,20 @@ define linkonce_odr hidden noundef ptr @_ZN5boost4json12basic_parserINS0_6detail select.unfold398: ; preds = %55 %71 = getelementptr inbounds nuw i8, ptr %1, i64 2 - store i32 1, ptr %7, align 8, !tbaa !684 + store i32 1, ptr %6, align 8, !tbaa !684 %72 = icmp ult ptr %71, %5 br i1 %72, label %.lr.ph481.preheader, label %._crit_edge, !prof !359 .lr.ph481.preheader: ; preds = %select.unfold398 %.us-phi470515 = ptrtoint ptr %71 to i64 %scevgep514 = getelementptr i8, ptr %1, i64 2147483647 - %73 = sub i64 %6, %.us-phi470515 + %73 = sub i64 %10, %.us-phi470515 %scevgep516 = getelementptr i8, ptr %71, i64 %73 - %.promoted = load i32, ptr %7, align 8, !tbaa !684 + %.promoted = load i32, ptr %6, align 8, !tbaa !684 br label %.lr.ph481 ._crit_edge.loopexit: ; preds = %90 - store i32 %storemerge, ptr %7, align 8, !tbaa !684 + store i32 %storemerge, ptr %6, align 8, !tbaa !684 br label %._crit_edge ._crit_edge: ; preds = %._crit_edge.loopexit, %select.unfold398 @@ -46437,12 +46437,12 @@ select.unfold398: ; preds = %55 br i1 %83, label %.thread408, label %90, !prof !245 .thread408: ; preds = %82 - store i32 %storemerge547, ptr %7, align 8, !tbaa !684 + store i32 %storemerge547, ptr %6, align 8, !tbaa !684 %84 = tail call noundef ptr @_ZN5boost4json12basic_parserINS0_6detail7handlerEE4failEPKcNS0_5errorEPKNS_15source_locationE(ptr noundef nonnull align 8 dereferenceable(274) %0, ptr noundef nonnull %scevgep514, i32 noundef 4, ptr noundef nonnull @_ZZN5boost4json12basic_parserINS0_6detail7handlerEE12parse_numberILb1ELc43ELNS0_16number_precisionE2EEEPKcS8_St17integral_constantIbXT_EES9_IcXT0_EES9_IS6_XT1_EEE3loc_2) #48 br label %193 85: ; preds = %.lr.ph481 - store i32 %storemerge547, ptr %7, align 8, !tbaa !684 + store i32 %storemerge547, ptr %6, align 8, !tbaa !684 %86 = icmp eq i8 %79, 46 br i1 %86, label %92, label %87, !prof !244 @@ -46487,7 +46487,7 @@ select.unfold398: ; preds = %55 .lr.ph485.preheader: ; preds = %104 %.13518 = ptrtoint ptr %.13 to i64 - %106 = sub i64 %6, %.13518 + %106 = sub i64 %10, %.13518 %scevgep519 = getelementptr i8, ptr %.13, i64 %106 br label %.lr.ph485 @@ -46606,7 +46606,7 @@ select.unfold398: ; preds = %55 157: ; preds = %153 %158 = getelementptr inbounds nuw i8, ptr %.us-phi469.sink, i64 2 - store i8 1, ptr %9, align 8, !tbaa !685 + store i8 1, ptr %8, align 8, !tbaa !685 br label %159 159: ; preds = %153, %155, %157 @@ -46642,13 +46642,13 @@ select.unfold398: ; preds = %55 174: ; preds = %169 %175 = zext nneg i8 %170 to i32 %176 = add nsw i32 %175, -48 - store i32 %176, ptr %8, align 4, !tbaa !686 + store i32 %176, ptr %7, align 4, !tbaa !686 %.21488 = getelementptr inbounds nuw i8, ptr %.19, i64 1 %177 = icmp ult ptr %.21488, %5 br i1 %177, label %.lr.ph491.preheader, label %._crit_edge492, !prof !359 .lr.ph491.preheader: ; preds = %174 - %178 = sub i64 %6, %.19521 + %178 = sub i64 %10, %.19521 %scevgep522 = getelementptr i8, ptr %.19, i64 %178 br label %.lr.ph491 diff --git a/bench/cvc5/optimized/bv_solver_bitblast.cpp.ll b/bench/cvc5/optimized/bv_solver_bitblast.cpp.ll index 76ba8c91e09..a3f700c6f7d 100644 --- a/bench/cvc5/optimized/bv_solver_bitblast.cpp.ll +++ b/bench/cvc5/optimized/bv_solver_bitblast.cpp.ll @@ -1627,8 +1627,8 @@ if.end13: ; preds = %_ZNSt10unique_ptrIN %d_size.i = getelementptr inbounds i8, ptr %this, i64 232 %12 = load i64, ptr %d_iter.i, align 8 %13 = load i64, ptr %d_size.i, align 8 - %cmp.i551 = icmp eq i64 %12, %13 - br i1 %cmp.i551, label %while.cond57.preheader, label %while.body.lr.ph + %cmp.i553 = icmp eq i64 %12, %13 + br i1 %cmp.i553, label %while.cond57.preheader, label %while.body.lr.ph while.body.lr.ph: ; preds = %if.end13 %d_list.i = getelementptr inbounds i8, ptr %this, i64 208 @@ -1655,8 +1655,8 @@ while.cond57.preheader: ; preds = %_ZN4cvc58internal12 %d_size.i58 = getelementptr inbounds i8, ptr %this, i64 136 %14 = load i64, ptr %d_iter.i57, align 8 %15 = load i64, ptr %d_size.i58, align 8 - %cmp.i59552 = icmp eq i64 %14, %15 - br i1 %cmp.i59552, label %while.end156, label %while.body60.lr.ph + %cmp.i59554 = icmp eq i64 %14, %15 + br i1 %cmp.i59554, label %while.end156, label %while.body60.lr.ph while.body60.lr.ph: ; preds = %while.cond57.preheader %d_list.i60 = getelementptr inbounds i8, ptr %this, i64 112 @@ -2119,7 +2119,7 @@ call2.i.i.i.i.noexc139: ; preds = %if.end15.i.i.i104 %arrayidx.i.i.i.i.i108 = getelementptr inbounds ptr, ptr %96, i64 %rem.i.i.i.i.i.i107 %97 = load ptr, ptr %arrayidx.i.i.i.i.i108, align 8, !noalias !14 %tobool.not.i.i.i.i.i109 = icmp eq ptr %97, null - %.pre562 = load ptr, ptr %fact61, align 8 + %.pre564 = load ptr, ptr %fact61, align 8 br i1 %tobool.not.i.i.i.i.i109, label %if.then75, label %if.end.i.i.i.i.i110 if.end.i.i.i.i.i110: ; preds = %call2.i.i.i.i.noexc139 @@ -2129,7 +2129,7 @@ if.end.i.i.i.i.i110: ; preds = %call2.i.i.i.i.noexc %99 = load i64, ptr %add.ptr.i9.i.i.i.i.i112, align 8, !noalias !14 %cmp.i.i10.i.i.i.i.i113 = icmp eq i64 %call2.i.i.i.i140, %99 %100 = load ptr, ptr %add.ptr8.i.i.i.i.i111, align 8, !noalias !14 - %cmp.i.i.i.i11.i.i.i.i.i114 = icmp eq ptr %.pre562, %100 + %cmp.i.i.i.i11.i.i.i.i.i114 = icmp eq ptr %.pre564, %100 %101 = select i1 %cmp.i.i10.i.i.i.i.i113, i1 %cmp.i.i.i.i11.i.i.i.i.i114, i1 false br i1 %101, label %invoke.cont72, label %if.end3.i.i.i.i.i115 @@ -2137,7 +2137,7 @@ for.cond.i.i.i.i.i123: ; preds = %lor.lhs.false.i.i.i %add.ptr.i.i.i.i.i124 = getelementptr inbounds i8, ptr %104, i64 8 %cmp.i.i.i.i.i.i.i125 = icmp eq i64 %call2.i.i.i.i140, %105 %102 = load ptr, ptr %add.ptr.i.i.i.i.i124, align 8, !noalias !14 - %cmp.i.i.i.i.i.i.i.i.i126 = icmp eq ptr %.pre562, %102 + %cmp.i.i.i.i.i.i.i.i.i126 = icmp eq ptr %.pre564, %102 %103 = select i1 %cmp.i.i.i.i.i.i.i125, i1 %cmp.i.i.i.i.i.i.i.i.i126, i1 false br i1 %103, label %invoke.cont72, label %if.end3.i.i.i.i.i115, !llvm.loop !12 @@ -2155,7 +2155,7 @@ lor.lhs.false.i.i.i.i.i118: ; preds = %if.end3.i.i.i.i.i11 br i1 %cmp.not.i.i.i.i.i121, label %for.cond.i.i.i.i.i123, label %if.then75, !llvm.loop !12 invoke.cont72: ; preds = %for.cond.i.i.i.i.i123, %for.body.i.i.i136, %if.end.i.i.i.i.i110 - %106 = phi ptr [ %.pre562, %if.end.i.i.i.i.i110 ], [ %93, %for.body.i.i.i136 ], [ %.pre562, %for.cond.i.i.i.i.i123 ] + %106 = phi ptr [ %.pre564, %if.end.i.i.i.i.i110 ], [ %93, %for.body.i.i.i136 ], [ %.pre564, %for.cond.i.i.i.i.i123 ] %retval.sroa.0.1.i.i.i128 = phi ptr [ %98, %if.end.i.i.i.i.i110 ], [ %retval.sroa.0.0.i.i.i134, %for.body.i.i.i136 ], [ %104, %for.cond.i.i.i.i.i123 ] %second.i129 = getelementptr inbounds i8, ptr %retval.sroa.0.1.i.i.i128, i64 16 %107 = load ptr, ptr %second.i129, align 8, !noalias !14 @@ -2163,7 +2163,7 @@ invoke.cont72: ; preds = %for.cond.i.i.i.i.i1 br i1 %cmp.i142, label %if.then75, label %if.end146 if.then75: ; preds = %if.end3.i.i.i.i.i115, %lor.lhs.false.i.i.i.i.i118, %for.cond.i.i.i132, %call2.i.i.i.i.noexc139, %invoke.cont72 - %108 = phi ptr [ %.pre562, %call2.i.i.i.i.noexc139 ], [ %106, %invoke.cont72 ], [ %93, %for.cond.i.i.i132 ], [ %.pre562, %lor.lhs.false.i.i.i.i.i118 ], [ %.pre562, %if.end3.i.i.i.i.i115 ] + %108 = phi ptr [ %.pre564, %call2.i.i.i.i.noexc139 ], [ %106, %invoke.cont72 ], [ %93, %for.cond.i.i.i132 ], [ %.pre564, %lor.lhs.false.i.i.i.i.i118 ], [ %.pre564, %if.end3.i.i.i.i.i115 ] store i64 -1, ptr %lit, align 8 %d_kind.i143 = getelementptr inbounds i8, ptr %108, i64 8 %bf.load.i144 = load i16, ptr %d_kind.i143, align 8 @@ -2253,7 +2253,7 @@ terminate.lpad.i161: ; preds = %if.then13.i.i160 call void @__clang_call_terminate(ptr %115) #24 unreachable -lpad65: ; preds = %if.then13.i4.i.i, %if.then13.i.i.i526, %if.then.i.i510, %if.then.i.i.i175, %if.then13.i.i.i, %invoke.cont84, %if.end15.i.i.i104, %_ZN4cvc57context6CDListINS_8internal12NodeTemplateILb1EEENS0_14DefaultCleanUpIS4_EESaIS4_EE12truncateListEm.exit.i90, %if.then.i.i81, %invoke.cont149, %if.end146, %invoke.cont140, %if.end136 +lpad65: ; preds = %if.then13.i4.i.i, %if.then13.i.i.i528, %if.then.i.i512, %if.then.i.i.i175, %if.then13.i.i.i, %invoke.cont84, %if.end15.i.i.i104, %_ZN4cvc57context6CDListINS_8internal12NodeTemplateILb1EEENS0_14DefaultCleanUpIS4_EESaIS4_EE12truncateListEm.exit.i90, %if.then.i.i81, %invoke.cont149, %if.end146, %invoke.cont140, %if.end136 %116 = landingpad { ptr, i32 } cleanup br label %ehcleanup155 @@ -2379,55 +2379,55 @@ invoke.cont140: ; preds = %invoke.cont138, %if to label %invoke.cont142 unwind label %lpad65 invoke.cont142: ; preds = %invoke.cont140 - %d_pScope.i.i506 = getelementptr inbounds i8, ptr %call143, i64 8 - %140 = load ptr, ptr %d_pScope.i.i506, align 8 + %d_pScope.i.i508 = getelementptr inbounds i8, ptr %call143, i64 8 + %140 = load ptr, ptr %d_pScope.i.i508, align 8 %141 = load ptr, ptr %140, align 8 - %_M_finish.i.i.i.i.i.i507 = getelementptr inbounds i8, ptr %141, i64 16 - %142 = load ptr, ptr %_M_finish.i.i.i.i.i.i507, align 8 - %add.ptr.i.i.i.i.i.i508 = getelementptr inbounds i8, ptr %142, i64 -8 - %143 = load ptr, ptr %add.ptr.i.i.i.i.i.i508, align 8 - %cmp.i.i.i509 = icmp eq ptr %140, %143 - br i1 %cmp.i.i.i509, label %_ZN4cvc57context10ContextObj11makeCurrentEv.exit.i511, label %if.then.i.i510 - -if.then.i.i510: ; preds = %invoke.cont142 + %_M_finish.i.i.i.i.i.i509 = getelementptr inbounds i8, ptr %141, i64 16 + %142 = load ptr, ptr %_M_finish.i.i.i.i.i.i509, align 8 + %add.ptr.i.i.i.i.i.i510 = getelementptr inbounds i8, ptr %142, i64 -8 + %143 = load ptr, ptr %add.ptr.i.i.i.i.i.i510, align 8 + %cmp.i.i.i511 = icmp eq ptr %140, %143 + br i1 %cmp.i.i.i511, label %_ZN4cvc57context10ContextObj11makeCurrentEv.exit.i513, label %if.then.i.i512 + +if.then.i.i512: ; preds = %invoke.cont142 invoke void @_ZN4cvc57context10ContextObj6updateEv(ptr noundef nonnull align 8 dereferenceable(80) %call143) - to label %_ZN4cvc57context10ContextObj11makeCurrentEv.exit.i511 unwind label %lpad65 + to label %_ZN4cvc57context10ContextObj11makeCurrentEv.exit.i513 unwind label %lpad65 -_ZN4cvc57context10ContextObj11makeCurrentEv.exit.i511: ; preds = %if.then.i.i510, %invoke.cont142 - %second.i.i512 = getelementptr inbounds i8, ptr %call143, i64 48 - %144 = load ptr, ptr %second.i.i512, align 8 +_ZN4cvc57context10ContextObj11makeCurrentEv.exit.i513: ; preds = %if.then.i.i512, %invoke.cont142 + %second.i.i514 = getelementptr inbounds i8, ptr %call143, i64 48 + %144 = load ptr, ptr %second.i.i514, align 8 %145 = load ptr, ptr %fact61, align 8 - %cmp.not.i.i513 = icmp eq ptr %144, %145 - br i1 %cmp.not.i.i513, label %if.end146, label %if.then.i1.i - -if.then.i1.i: ; preds = %_ZN4cvc57context10ContextObj11makeCurrentEv.exit.i511 - %bf.load.i.i.i514 = load i64, ptr %144, align 8 - %146 = and i64 %bf.load.i.i.i514, 1152920405095219200 - %cmp.not.i.i.i515 = icmp eq i64 %146, 1152920405095219200 - br i1 %cmp.not.i.i.i515, label %_ZN4cvc58internal4expr9NodeValue3decEv.exit.i.i, label %if.then.i.i.i516 - -if.then.i.i.i516: ; preds = %if.then.i1.i - %bf.value.i.i.i517 = add i64 %bf.load.i.i.i514, 1152920405095219200 - %bf.shl.i.i.i518 = and i64 %bf.value.i.i.i517, 1152920405095219200 - %bf.clear7.i.i.i519 = and i64 %bf.load.i.i.i514, -1152920405095219201 - %bf.set.i.i.i520 = or disjoint i64 %bf.shl.i.i.i518, %bf.clear7.i.i.i519 - store i64 %bf.set.i.i.i520, ptr %144, align 8 - %cmp12.i.i.i521 = icmp eq i64 %bf.shl.i.i.i518, 0 - br i1 %cmp12.i.i.i521, label %if.then13.i.i.i526, label %_ZN4cvc58internal4expr9NodeValue3decEv.exit.i.i - -if.then13.i.i.i526: ; preds = %if.then.i.i.i516 + %cmp.not.i.i515 = icmp eq ptr %144, %145 + br i1 %cmp.not.i.i515, label %if.end146, label %if.then.i1.i + +if.then.i1.i: ; preds = %_ZN4cvc57context10ContextObj11makeCurrentEv.exit.i513 + %bf.load.i.i.i516 = load i64, ptr %144, align 8 + %146 = and i64 %bf.load.i.i.i516, 1152920405095219200 + %cmp.not.i.i.i517 = icmp eq i64 %146, 1152920405095219200 + br i1 %cmp.not.i.i.i517, label %_ZN4cvc58internal4expr9NodeValue3decEv.exit.i.i, label %if.then.i.i.i518 + +if.then.i.i.i518: ; preds = %if.then.i1.i + %bf.value.i.i.i519 = add i64 %bf.load.i.i.i516, 1152920405095219200 + %bf.shl.i.i.i520 = and i64 %bf.value.i.i.i519, 1152920405095219200 + %bf.clear7.i.i.i521 = and i64 %bf.load.i.i.i516, -1152920405095219201 + %bf.set.i.i.i522 = or disjoint i64 %bf.shl.i.i.i520, %bf.clear7.i.i.i521 + store i64 %bf.set.i.i.i522, ptr %144, align 8 + %cmp12.i.i.i523 = icmp eq i64 %bf.shl.i.i.i520, 0 + br i1 %cmp12.i.i.i523, label %if.then13.i.i.i528, label %_ZN4cvc58internal4expr9NodeValue3decEv.exit.i.i + +if.then13.i.i.i528: ; preds = %if.then.i.i.i518 invoke void @_ZN4cvc58internal4expr9NodeValue15markForDeletionEv(ptr noundef nonnull align 8 dereferenceable(16) %144) to label %_ZN4cvc58internal4expr9NodeValue3decEv.exit.i.i unwind label %lpad65 -_ZN4cvc58internal4expr9NodeValue3decEv.exit.i.i: ; preds = %if.then13.i.i.i526, %if.then.i.i.i516, %if.then.i1.i +_ZN4cvc58internal4expr9NodeValue3decEv.exit.i.i: ; preds = %if.then13.i.i.i528, %if.then.i.i.i518, %if.then.i1.i %147 = load ptr, ptr %fact61, align 8 - store ptr %147, ptr %second.i.i512, align 8 + store ptr %147, ptr %second.i.i514, align 8 %bf.load.i2.i.i = load i64, ptr %147, align 8 - %bf.lshr.i.i.i522 = lshr i64 %bf.load.i2.i.i, 40 - %148 = trunc nuw nsw i64 %bf.lshr.i.i.i522 to i32 - %bf.cast.i.i.i523 = and i32 %148, 1048575 - %cmp.i.i2.i = icmp samesign ult i32 %bf.cast.i.i.i523, 1048574 - br i1 %cmp.i.i2.i, label %if.then.i5.i.i, label %if.else.i.i.i524 + %bf.lshr.i.i.i524 = lshr i64 %bf.load.i2.i.i, 40 + %148 = trunc nuw nsw i64 %bf.lshr.i.i.i524 to i32 + %bf.cast.i.i.i525 = and i32 %148, 1048575 + %cmp.i.i2.i = icmp samesign ult i32 %bf.cast.i.i.i525, 1048574 + br i1 %cmp.i.i2.i, label %if.then.i5.i.i, label %if.else.i.i.i526 if.then.i5.i.i: ; preds = %_ZN4cvc58internal4expr9NodeValue3decEv.exit.i.i %bf.value.i6.i.i = add i64 %bf.load.i2.i.i, 1099511627776 @@ -2437,17 +2437,17 @@ if.then.i5.i.i: ; preds = %_ZN4cvc58internal4e store i64 %bf.set.i9.i.i, ptr %147, align 8 br label %if.end146 -if.else.i.i.i524: ; preds = %_ZN4cvc58internal4expr9NodeValue3decEv.exit.i.i - %cmp12.i3.i.i = icmp eq i32 %bf.cast.i.i.i523, 1048574 +if.else.i.i.i526: ; preds = %_ZN4cvc58internal4expr9NodeValue3decEv.exit.i.i + %cmp12.i3.i.i = icmp eq i32 %bf.cast.i.i.i525, 1048574 br i1 %cmp12.i3.i.i, label %if.then13.i4.i.i, label %if.end146 -if.then13.i4.i.i: ; preds = %if.else.i.i.i524 - %bf.set23.i.i.i525 = or i64 %bf.load.i2.i.i, 1152920405095219200 - store i64 %bf.set23.i.i.i525, ptr %147, align 8 +if.then13.i4.i.i: ; preds = %if.else.i.i.i526 + %bf.set23.i.i.i527 = or i64 %bf.load.i2.i.i, 1152920405095219200 + store i64 %bf.set23.i.i.i527, ptr %147, align 8 invoke void @_ZN4cvc58internal4expr9NodeValue20markRefCountMaxedOutEv(ptr noundef nonnull align 8 dereferenceable(16) %147) to label %if.end146 unwind label %lpad65 -if.end146: ; preds = %if.then13.i4.i.i, %_ZN4cvc57context10ContextObj11makeCurrentEv.exit.i511, %if.then.i5.i.i, %if.else.i.i.i524, %invoke.cont72 +if.end146: ; preds = %if.then13.i4.i.i, %_ZN4cvc57context10ContextObj11makeCurrentEv.exit.i513, %if.then.i5.i.i, %if.else.i.i.i526, %invoke.cont72 %call150 = invoke noundef nonnull align 8 dereferenceable(80) ptr @_ZN4cvc57context9CDHashMapINS_8internal12NodeTemplateILb1EEENS2_4prop10SatLiteralESt4hashIS4_EEixERKS4_(ptr noundef nonnull align 8 dereferenceable(112) %d_factLiteralCache68, ptr noundef nonnull align 8 dereferenceable(8) %fact61) to label %invoke.cont149 unwind label %lpad65 @@ -2502,9 +2502,9 @@ while.end156: ; preds = %_ZN4cvc58internal12 %_M_finish.i.i190 = getelementptr inbounds i8, ptr %this, i64 312 %156 = load ptr, ptr %_M_finish.i.i190, align 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %assumptions, i8 0, i64 24, i1 false) - %__first.coerce4.i.i = ptrtoint ptr %155 to i64 - %__last.coerce3.i.i = ptrtoint ptr %156 to i64 - %sub.ptr.sub.i.i.i.i.i = sub i64 %__last.coerce3.i.i, %__first.coerce4.i.i + %sub.ptr.lhs.cast.i.i.i.i.i = ptrtoint ptr %156 to i64 + %sub.ptr.rhs.cast.i.i.i.i.i = ptrtoint ptr %155 to i64 + %sub.ptr.sub.i.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i.i %cmp.i.i.i191 = icmp ugt i64 %sub.ptr.sub.i.i.i.i.i, 9223372036854775800 br i1 %cmp.i.i.i191, label %if.then.i.i.i195, label %_ZNSt6vectorIN4cvc58internal4prop10SatLiteralESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i @@ -2520,9 +2520,9 @@ _ZNSt6vectorIN4cvc58internal4prop10SatLiteralESaIS3_EE17_S_check_init_lenEmRKS4_ br i1 %cmp.not.i.i.i, label %_ZNSt12_Vector_baseIN4cvc58internal4prop10SatLiteralESaIS3_EE11_M_allocateEm.exit.thread.i.i, label %for.body.i.i.i.i.preheader.i.i _ZNSt12_Vector_baseIN4cvc58internal4prop10SatLiteralESaIS3_EE11_M_allocateEm.exit.thread.i.i: ; preds = %_ZNSt6vectorIN4cvc58internal4prop10SatLiteralESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i - %add.ptr6.i.i = getelementptr inbounds i8, ptr null, i64 %sub.ptr.sub.i.i.i.i.i - %_M_end_of_storage7.i.i = getelementptr inbounds i8, ptr %assumptions, i64 16 - store ptr %add.ptr6.i.i, ptr %_M_end_of_storage7.i.i, align 8 + %add.ptr3.i.i = getelementptr inbounds i8, ptr null, i64 %sub.ptr.sub.i.i.i.i.i + %_M_end_of_storage4.i.i = getelementptr inbounds i8, ptr %assumptions, i64 16 + store ptr %add.ptr3.i.i, ptr %_M_end_of_storage4.i.i, align 8 br label %invoke.cont169 for.body.i.i.i.i.preheader.i.i: ; preds = %_ZNSt6vectorIN4cvc58internal4prop10SatLiteralESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i @@ -2622,8 +2622,8 @@ if.then189: ; preds = %invoke.cont186 br label %for.body for.body: ; preds = %if.then189, %cond.true - %__begin5.sroa.0.0553 = phi ptr [ %169, %if.then189 ], [ %incdec.ptr.i, %cond.true ] - %call201 = invoke noundef nonnull align 8 dereferenceable(80) ptr @_ZN4cvc57context9CDHashMapINS_8internal4prop10SatLiteralENS2_12NodeTemplateILb1EEENS3_22SatLiteralHashFunctionEEixERKS4_(ptr noundef nonnull align 8 dereferenceable(112) %d_literalFactCache198, ptr noundef nonnull align 8 dereferenceable(8) %__begin5.sroa.0.0553) + %__begin5.sroa.0.0555 = phi ptr [ %169, %if.then189 ], [ %incdec.ptr.i, %cond.true ] + %call201 = invoke noundef nonnull align 8 dereferenceable(80) ptr @_ZN4cvc57context9CDHashMapINS_8internal4prop10SatLiteralENS2_12NodeTemplateILb1EEENS3_22SatLiteralHashFunctionEEixERKS4_(ptr noundef nonnull align 8 dereferenceable(112) %d_literalFactCache198, ptr noundef nonnull align 8 dereferenceable(8) %__begin5.sroa.0.0555) to label %invoke.cont200 unwind label %lpad199.loopexit invoke.cont200: ; preds = %for.body @@ -2728,7 +2728,7 @@ terminate.lpad.i245: ; preds = %if.then13.i.i244 unreachable cond.true: ; preds = %if.then13.i.i244, %if.then.i.i238, %invoke.cont204 - %incdec.ptr.i = getelementptr inbounds i8, ptr %__begin5.sroa.0.0553, i64 8 + %incdec.ptr.i = getelementptr inbounds i8, ptr %__begin5.sroa.0.0555, i64 8 %cmp.i199.not = icmp eq ptr %incdec.ptr.i, %168 br i1 %cmp.i199.not, label %for.end, label %for.body @@ -2907,188 +2907,188 @@ if.else231: ; preds = %invoke.cont186 %_M_finish.i.i397 = getelementptr inbounds i8, ptr %this, i64 392 %202 = load ptr, ptr %_M_finish.i.i397, align 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %assertions, i8 0, i64 24, i1 false) - %sub.ptr.lhs.cast.i.i.i.i.i = ptrtoint ptr %202 to i64 - %sub.ptr.rhs.cast.i.i.i.i.i = ptrtoint ptr %201 to i64 - %sub.ptr.sub.i.i.i.i.i398 = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i.i - %sub.ptr.div.i.i.i.i.i = ashr exact i64 %sub.ptr.sub.i.i.i.i.i398, 3 - %cmp.i.i.i399 = icmp ugt i64 %sub.ptr.div.i.i.i.i.i, 1152921504606846975 - br i1 %cmp.i.i.i399, label %if.then.i.i.i407, label %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i - -if.then.i.i.i407: ; preds = %if.else231 + %sub.ptr.lhs.cast.i.i.i.i.i398 = ptrtoint ptr %202 to i64 + %sub.ptr.rhs.cast.i.i.i.i.i399 = ptrtoint ptr %201 to i64 + %sub.ptr.sub.i.i.i.i.i400 = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i398, %sub.ptr.rhs.cast.i.i.i.i.i399 + %sub.ptr.div.i.i.i.i.i = ashr exact i64 %sub.ptr.sub.i.i.i.i.i400, 3 + %cmp.i.i.i401 = icmp ugt i64 %sub.ptr.div.i.i.i.i.i, 1152921504606846975 + br i1 %cmp.i.i.i401, label %if.then.i.i.i409, label %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i + +if.then.i.i.i409: ; preds = %if.else231 invoke void @_ZSt20__throw_length_errorPKc(ptr noundef nonnull @.str.27) #25 - to label %.noexc.i408 unwind label %lpad.i402 + to label %.noexc.i410 unwind label %lpad.i404 -.noexc.i408: ; preds = %if.then.i.i.i407 +.noexc.i410: ; preds = %if.then.i.i.i409 unreachable _ZNSt6vectorIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i: ; preds = %if.else231 - %cmp.not.i.i.i400 = icmp eq ptr %202, %201 - br i1 %cmp.not.i.i.i400, label %_ZNSt12_Vector_baseIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE11_M_allocateEm.exit.i.i, label %_ZNSt16allocator_traitsISaIN4cvc58internal12NodeTemplateILb1EEEEE8allocateERS4_m.exit.i.i.i + %cmp.not.i.i.i402 = icmp eq ptr %202, %201 + br i1 %cmp.not.i.i.i402, label %_ZNSt12_Vector_baseIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE11_M_allocateEm.exit.i.i, label %_ZNSt16allocator_traitsISaIN4cvc58internal12NodeTemplateILb1EEEEE8allocateERS4_m.exit.i.i.i _ZNSt16allocator_traitsISaIN4cvc58internal12NodeTemplateILb1EEEEE8allocateERS4_m.exit.i.i.i: ; preds = %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i - %call5.i.i.i.i1.i401 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %sub.ptr.sub.i.i.i.i.i398) #21 - to label %_ZNSt12_Vector_baseIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE11_M_allocateEm.exit.i.i unwind label %lpad.i402 + %call5.i.i.i.i1.i403 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %sub.ptr.sub.i.i.i.i.i400) #21 + to label %_ZNSt12_Vector_baseIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE11_M_allocateEm.exit.i.i unwind label %lpad.i404 _ZNSt12_Vector_baseIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE11_M_allocateEm.exit.i.i: ; preds = %_ZNSt16allocator_traitsISaIN4cvc58internal12NodeTemplateILb1EEEEE8allocateERS4_m.exit.i.i.i, %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i - %cond.i.i.i = phi ptr [ null, %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i ], [ %call5.i.i.i.i1.i401, %_ZNSt16allocator_traitsISaIN4cvc58internal12NodeTemplateILb1EEEEE8allocateERS4_m.exit.i.i.i ] + %cond.i.i.i = phi ptr [ null, %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i ], [ %call5.i.i.i.i1.i403, %_ZNSt16allocator_traitsISaIN4cvc58internal12NodeTemplateILb1EEEEE8allocateERS4_m.exit.i.i.i ] store ptr %cond.i.i.i, ptr %assertions, align 8 - %add.ptr.i.i404 = getelementptr inbounds %"class.cvc5::internal::NodeTemplate", ptr %cond.i.i.i, i64 %sub.ptr.div.i.i.i.i.i - %_M_end_of_storage.i.i405 = getelementptr inbounds i8, ptr %assertions, i64 16 - store ptr %add.ptr.i.i404, ptr %_M_end_of_storage.i.i405, align 8 + %add.ptr.i.i406 = getelementptr inbounds %"class.cvc5::internal::NodeTemplate", ptr %cond.i.i.i, i64 %sub.ptr.div.i.i.i.i.i + %_M_end_of_storage.i.i407 = getelementptr inbounds i8, ptr %assertions, i64 16 + store ptr %add.ptr.i.i406, ptr %_M_end_of_storage.i.i407, align 8 %call.i.i.i.i2.i = invoke noundef ptr @_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKN4cvc58internal12NodeTemplateILb1EEESt6vectorIS5_SaIS5_EEEEPS5_ET0_T_SE_SD_(ptr %201, ptr %202, ptr noundef %cond.i.i.i) - to label %invoke.cont247 unwind label %lpad.i402 + to label %invoke.cont247 unwind label %lpad.i404 -lpad.i402: ; preds = %_ZNSt12_Vector_baseIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE11_M_allocateEm.exit.i.i, %_ZNSt16allocator_traitsISaIN4cvc58internal12NodeTemplateILb1EEEEE8allocateERS4_m.exit.i.i.i, %if.then.i.i.i407 +lpad.i404: ; preds = %_ZNSt12_Vector_baseIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE11_M_allocateEm.exit.i.i, %_ZNSt16allocator_traitsISaIN4cvc58internal12NodeTemplateILb1EEEEE8allocateERS4_m.exit.i.i.i, %if.then.i.i.i409 %203 = landingpad { ptr, i32 } cleanup %204 = load ptr, ptr %assertions, align 8 - %tobool.not.i.i.i403 = icmp eq ptr %204, null - br i1 %tobool.not.i.i.i403, label %ehcleanup263, label %if.then.i.i3.i + %tobool.not.i.i.i405 = icmp eq ptr %204, null + br i1 %tobool.not.i.i.i405, label %ehcleanup263, label %if.then.i.i3.i -if.then.i.i3.i: ; preds = %lpad.i402 +if.then.i.i3.i: ; preds = %lpad.i404 call void @_ZdlPv(ptr noundef nonnull %204) #23 br label %ehcleanup263 invoke.cont247: ; preds = %_ZNSt12_Vector_baseIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE11_M_allocateEm.exit.i.i - %_M_finish.i.i406 = getelementptr inbounds i8, ptr %assertions, i64 8 - store ptr %call.i.i.i.i2.i, ptr %_M_finish.i.i406, align 8 + %_M_finish.i.i408 = getelementptr inbounds i8, ptr %assertions, i64 8 + store ptr %call.i.i.i.i2.i, ptr %_M_finish.i.i408, align 8 invoke void @_ZN4cvc58internal11NodeManager5mkAndILb1EEENS0_12NodeTemplateILb1EEERKSt6vectorINS3_IXT_EEESaIS6_EE(ptr nonnull sret(%"class.cvc5::internal::NodeTemplate") align 8 %ref.tmp249, ptr noundef nonnull align 8 dereferenceable(3360) %call14, ptr noundef nonnull align 8 dereferenceable(24) %assertions) to label %invoke.cont251 unwind label %lpad250 invoke.cont251: ; preds = %invoke.cont247 %205 = load ptr, ptr %ref.tmp249, align 8 - %cmp.not.i410 = icmp eq ptr %167, %205 - br i1 %cmp.not.i410, label %invoke.cont253, label %if.then.i411 - -if.then.i411: ; preds = %invoke.cont251 - %bf.load.i.i412 = load i64, ptr %167, align 8 - %206 = and i64 %bf.load.i.i412, 1152920405095219200 - %cmp.not.i.i413 = icmp eq i64 %206, 1152920405095219200 - br i1 %cmp.not.i.i413, label %_ZN4cvc58internal4expr9NodeValue3decEv.exit.i420, label %if.then.i.i414 - -if.then.i.i414: ; preds = %if.then.i411 - %bf.value.i.i415 = add i64 %bf.load.i.i412, 1152920405095219200 - %bf.shl.i.i416 = and i64 %bf.value.i.i415, 1152920405095219200 - %bf.clear7.i.i417 = and i64 %bf.load.i.i412, -1152920405095219201 - %bf.set.i.i418 = or disjoint i64 %bf.shl.i.i416, %bf.clear7.i.i417 - store i64 %bf.set.i.i418, ptr %167, align 8 - %cmp12.i.i419 = icmp eq i64 %bf.shl.i.i416, 0 - br i1 %cmp12.i.i419, label %if.then13.i.i435, label %_ZN4cvc58internal4expr9NodeValue3decEv.exit.i420 - -if.then13.i.i435: ; preds = %if.then.i.i414 + %cmp.not.i412 = icmp eq ptr %167, %205 + br i1 %cmp.not.i412, label %invoke.cont253, label %if.then.i413 + +if.then.i413: ; preds = %invoke.cont251 + %bf.load.i.i414 = load i64, ptr %167, align 8 + %206 = and i64 %bf.load.i.i414, 1152920405095219200 + %cmp.not.i.i415 = icmp eq i64 %206, 1152920405095219200 + br i1 %cmp.not.i.i415, label %_ZN4cvc58internal4expr9NodeValue3decEv.exit.i422, label %if.then.i.i416 + +if.then.i.i416: ; preds = %if.then.i413 + %bf.value.i.i417 = add i64 %bf.load.i.i414, 1152920405095219200 + %bf.shl.i.i418 = and i64 %bf.value.i.i417, 1152920405095219200 + %bf.clear7.i.i419 = and i64 %bf.load.i.i414, -1152920405095219201 + %bf.set.i.i420 = or disjoint i64 %bf.shl.i.i418, %bf.clear7.i.i419 + store i64 %bf.set.i.i420, ptr %167, align 8 + %cmp12.i.i421 = icmp eq i64 %bf.shl.i.i418, 0 + br i1 %cmp12.i.i421, label %if.then13.i.i437, label %_ZN4cvc58internal4expr9NodeValue3decEv.exit.i422 + +if.then13.i.i437: ; preds = %if.then.i.i416 invoke void @_ZN4cvc58internal4expr9NodeValue15markForDeletionEv(ptr noundef nonnull align 8 dereferenceable(16) %167) - to label %_ZN4cvc58internal4expr9NodeValue3decEv.exit.i420 unwind label %lpad252 + to label %_ZN4cvc58internal4expr9NodeValue3decEv.exit.i422 unwind label %lpad252 -_ZN4cvc58internal4expr9NodeValue3decEv.exit.i420: ; preds = %if.then13.i.i435, %if.then.i.i414, %if.then.i411 +_ZN4cvc58internal4expr9NodeValue3decEv.exit.i422: ; preds = %if.then13.i.i437, %if.then.i.i416, %if.then.i413 %207 = load ptr, ptr %ref.tmp249, align 8 store ptr %207, ptr %conflict, align 8 - %bf.load.i2.i421 = load i64, ptr %207, align 8 - %bf.lshr.i.i422 = lshr i64 %bf.load.i2.i421, 40 - %208 = trunc nuw nsw i64 %bf.lshr.i.i422 to i32 - %bf.cast.i.i423 = and i32 %208, 1048575 - %cmp.i.i424 = icmp samesign ult i32 %bf.cast.i.i423, 1048574 - br i1 %cmp.i.i424, label %if.then.i5.i430, label %if.else.i.i425 - -if.then.i5.i430: ; preds = %_ZN4cvc58internal4expr9NodeValue3decEv.exit.i420 - %bf.value.i6.i431 = add i64 %bf.load.i2.i421, 1099511627776 - %bf.shl.i7.i432 = and i64 %bf.value.i6.i431, 1152920405095219200 - %bf.clear7.i8.i433 = and i64 %bf.load.i2.i421, -1152920405095219201 - %bf.set.i9.i434 = or disjoint i64 %bf.shl.i7.i432, %bf.clear7.i8.i433 - store i64 %bf.set.i9.i434, ptr %207, align 8 + %bf.load.i2.i423 = load i64, ptr %207, align 8 + %bf.lshr.i.i424 = lshr i64 %bf.load.i2.i423, 40 + %208 = trunc nuw nsw i64 %bf.lshr.i.i424 to i32 + %bf.cast.i.i425 = and i32 %208, 1048575 + %cmp.i.i426 = icmp samesign ult i32 %bf.cast.i.i425, 1048574 + br i1 %cmp.i.i426, label %if.then.i5.i432, label %if.else.i.i427 + +if.then.i5.i432: ; preds = %_ZN4cvc58internal4expr9NodeValue3decEv.exit.i422 + %bf.value.i6.i433 = add i64 %bf.load.i2.i423, 1099511627776 + %bf.shl.i7.i434 = and i64 %bf.value.i6.i433, 1152920405095219200 + %bf.clear7.i8.i435 = and i64 %bf.load.i2.i423, -1152920405095219201 + %bf.set.i9.i436 = or disjoint i64 %bf.shl.i7.i434, %bf.clear7.i8.i435 + store i64 %bf.set.i9.i436, ptr %207, align 8 br label %invoke.cont253 -if.else.i.i425: ; preds = %_ZN4cvc58internal4expr9NodeValue3decEv.exit.i420 - %cmp12.i3.i426 = icmp eq i32 %bf.cast.i.i423, 1048574 - br i1 %cmp12.i3.i426, label %if.then13.i4.i428, label %invoke.cont253 +if.else.i.i427: ; preds = %_ZN4cvc58internal4expr9NodeValue3decEv.exit.i422 + %cmp12.i3.i428 = icmp eq i32 %bf.cast.i.i425, 1048574 + br i1 %cmp12.i3.i428, label %if.then13.i4.i430, label %invoke.cont253 -if.then13.i4.i428: ; preds = %if.else.i.i425 - %bf.set23.i.i429 = or i64 %bf.load.i2.i421, 1152920405095219200 - store i64 %bf.set23.i.i429, ptr %207, align 8 +if.then13.i4.i430: ; preds = %if.else.i.i427 + %bf.set23.i.i431 = or i64 %bf.load.i2.i423, 1152920405095219200 + store i64 %bf.set23.i.i431, ptr %207, align 8 invoke void @_ZN4cvc58internal4expr9NodeValue20markRefCountMaxedOutEv(ptr noundef nonnull align 8 dereferenceable(16) %207) to label %invoke.cont253 unwind label %lpad252 -invoke.cont253: ; preds = %if.else.i.i425, %if.then.i5.i430, %invoke.cont251, %if.then13.i4.i428 - %209 = phi ptr [ %207, %if.else.i.i425 ], [ %207, %if.then.i5.i430 ], [ %167, %invoke.cont251 ], [ %207, %if.then13.i4.i428 ] +invoke.cont253: ; preds = %if.else.i.i427, %if.then.i5.i432, %invoke.cont251, %if.then13.i4.i430 + %209 = phi ptr [ %207, %if.else.i.i427 ], [ %207, %if.then.i5.i432 ], [ %167, %invoke.cont251 ], [ %207, %if.then13.i4.i430 ] %210 = load ptr, ptr %ref.tmp249, align 8 - %bf.load.i.i439 = load i64, ptr %210, align 8 - %211 = and i64 %bf.load.i.i439, 1152920405095219200 - %cmp.not.i.i440 = icmp eq i64 %211, 1152920405095219200 - br i1 %cmp.not.i.i440, label %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit450, label %if.then.i.i441 - -if.then.i.i441: ; preds = %invoke.cont253 - %bf.value.i.i442 = add i64 %bf.load.i.i439, 1152920405095219200 - %bf.shl.i.i443 = and i64 %bf.value.i.i442, 1152920405095219200 - %bf.clear7.i.i444 = and i64 %bf.load.i.i439, -1152920405095219201 - %bf.set.i.i445 = or disjoint i64 %bf.shl.i.i443, %bf.clear7.i.i444 - store i64 %bf.set.i.i445, ptr %210, align 8 - %cmp12.i.i446 = icmp eq i64 %bf.shl.i.i443, 0 - br i1 %cmp12.i.i446, label %if.then13.i.i448, label %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit450 - -if.then13.i.i448: ; preds = %if.then.i.i441 + %bf.load.i.i441 = load i64, ptr %210, align 8 + %211 = and i64 %bf.load.i.i441, 1152920405095219200 + %cmp.not.i.i442 = icmp eq i64 %211, 1152920405095219200 + br i1 %cmp.not.i.i442, label %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit452, label %if.then.i.i443 + +if.then.i.i443: ; preds = %invoke.cont253 + %bf.value.i.i444 = add i64 %bf.load.i.i441, 1152920405095219200 + %bf.shl.i.i445 = and i64 %bf.value.i.i444, 1152920405095219200 + %bf.clear7.i.i446 = and i64 %bf.load.i.i441, -1152920405095219201 + %bf.set.i.i447 = or disjoint i64 %bf.shl.i.i445, %bf.clear7.i.i446 + store i64 %bf.set.i.i447, ptr %210, align 8 + %cmp12.i.i448 = icmp eq i64 %bf.shl.i.i445, 0 + br i1 %cmp12.i.i448, label %if.then13.i.i450, label %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit452 + +if.then13.i.i450: ; preds = %if.then.i.i443 invoke void @_ZN4cvc58internal4expr9NodeValue15markForDeletionEv(ptr noundef nonnull align 8 dereferenceable(16) %210) - to label %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit450 unwind label %terminate.lpad.i449 + to label %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit452 unwind label %terminate.lpad.i451 -terminate.lpad.i449: ; preds = %if.then13.i.i448 +terminate.lpad.i451: ; preds = %if.then13.i.i450 %212 = landingpad { ptr, i32 } catch ptr null %213 = extractvalue { ptr, i32 } %212, 0 call void @__clang_call_terminate(ptr %213) #24 unreachable -_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit450: ; preds = %invoke.cont253, %if.then.i.i441, %if.then13.i.i448 +_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit452: ; preds = %invoke.cont253, %if.then.i.i443, %if.then13.i.i450 %214 = load ptr, ptr %assertions, align 8 - %215 = load ptr, ptr %_M_finish.i.i406, align 8 - %cmp.not3.i.i.i.i452 = icmp eq ptr %214, %215 - br i1 %cmp.not3.i.i.i.i452, label %invoke.cont.i468, label %for.body.i.i.i.i453 - -for.body.i.i.i.i453: ; preds = %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit450, %_ZSt8_DestroyIN4cvc58internal12NodeTemplateILb1EEEEvPT_.exit.i.i.i.i463 - %__first.addr.04.i.i.i.i454 = phi ptr [ %incdec.ptr.i.i.i.i464, %_ZSt8_DestroyIN4cvc58internal12NodeTemplateILb1EEEEvPT_.exit.i.i.i.i463 ], [ %214, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit450 ] - %216 = load ptr, ptr %__first.addr.04.i.i.i.i454, align 8 - %bf.load.i.i.i.i.i.i.i455 = load i64, ptr %216, align 8 - %217 = and i64 %bf.load.i.i.i.i.i.i.i455, 1152920405095219200 - %cmp.not.i.i.i.i.i.i.i456 = icmp eq i64 %217, 1152920405095219200 - br i1 %cmp.not.i.i.i.i.i.i.i456, label %_ZSt8_DestroyIN4cvc58internal12NodeTemplateILb1EEEEvPT_.exit.i.i.i.i463, label %if.then.i.i.i.i.i.i.i457 - -if.then.i.i.i.i.i.i.i457: ; preds = %for.body.i.i.i.i453 - %bf.value.i.i.i.i.i.i.i458 = add i64 %bf.load.i.i.i.i.i.i.i455, 1152920405095219200 - %bf.shl.i.i.i.i.i.i.i459 = and i64 %bf.value.i.i.i.i.i.i.i458, 1152920405095219200 - %bf.clear7.i.i.i.i.i.i.i460 = and i64 %bf.load.i.i.i.i.i.i.i455, -1152920405095219201 - %bf.set.i.i.i.i.i.i.i461 = or disjoint i64 %bf.shl.i.i.i.i.i.i.i459, %bf.clear7.i.i.i.i.i.i.i460 - store i64 %bf.set.i.i.i.i.i.i.i461, ptr %216, align 8 - %cmp12.i.i.i.i.i.i.i462 = icmp eq i64 %bf.shl.i.i.i.i.i.i.i459, 0 - br i1 %cmp12.i.i.i.i.i.i.i462, label %if.then13.i.i.i.i.i.i.i472, label %_ZSt8_DestroyIN4cvc58internal12NodeTemplateILb1EEEEvPT_.exit.i.i.i.i463 - -if.then13.i.i.i.i.i.i.i472: ; preds = %if.then.i.i.i.i.i.i.i457 + %215 = load ptr, ptr %_M_finish.i.i408, align 8 + %cmp.not3.i.i.i.i454 = icmp eq ptr %214, %215 + br i1 %cmp.not3.i.i.i.i454, label %invoke.cont.i470, label %for.body.i.i.i.i455 + +for.body.i.i.i.i455: ; preds = %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit452, %_ZSt8_DestroyIN4cvc58internal12NodeTemplateILb1EEEEvPT_.exit.i.i.i.i465 + %__first.addr.04.i.i.i.i456 = phi ptr [ %incdec.ptr.i.i.i.i466, %_ZSt8_DestroyIN4cvc58internal12NodeTemplateILb1EEEEvPT_.exit.i.i.i.i465 ], [ %214, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit452 ] + %216 = load ptr, ptr %__first.addr.04.i.i.i.i456, align 8 + %bf.load.i.i.i.i.i.i.i457 = load i64, ptr %216, align 8 + %217 = and i64 %bf.load.i.i.i.i.i.i.i457, 1152920405095219200 + %cmp.not.i.i.i.i.i.i.i458 = icmp eq i64 %217, 1152920405095219200 + br i1 %cmp.not.i.i.i.i.i.i.i458, label %_ZSt8_DestroyIN4cvc58internal12NodeTemplateILb1EEEEvPT_.exit.i.i.i.i465, label %if.then.i.i.i.i.i.i.i459 + +if.then.i.i.i.i.i.i.i459: ; preds = %for.body.i.i.i.i455 + %bf.value.i.i.i.i.i.i.i460 = add i64 %bf.load.i.i.i.i.i.i.i457, 1152920405095219200 + %bf.shl.i.i.i.i.i.i.i461 = and i64 %bf.value.i.i.i.i.i.i.i460, 1152920405095219200 + %bf.clear7.i.i.i.i.i.i.i462 = and i64 %bf.load.i.i.i.i.i.i.i457, -1152920405095219201 + %bf.set.i.i.i.i.i.i.i463 = or disjoint i64 %bf.shl.i.i.i.i.i.i.i461, %bf.clear7.i.i.i.i.i.i.i462 + store i64 %bf.set.i.i.i.i.i.i.i463, ptr %216, align 8 + %cmp12.i.i.i.i.i.i.i464 = icmp eq i64 %bf.shl.i.i.i.i.i.i.i461, 0 + br i1 %cmp12.i.i.i.i.i.i.i464, label %if.then13.i.i.i.i.i.i.i474, label %_ZSt8_DestroyIN4cvc58internal12NodeTemplateILb1EEEEvPT_.exit.i.i.i.i465 + +if.then13.i.i.i.i.i.i.i474: ; preds = %if.then.i.i.i.i.i.i.i459 invoke void @_ZN4cvc58internal4expr9NodeValue15markForDeletionEv(ptr noundef nonnull align 8 dereferenceable(16) %216) - to label %_ZSt8_DestroyIN4cvc58internal12NodeTemplateILb1EEEEvPT_.exit.i.i.i.i463 unwind label %terminate.lpad.i.i.i.i.i.i473 + to label %_ZSt8_DestroyIN4cvc58internal12NodeTemplateILb1EEEEvPT_.exit.i.i.i.i465 unwind label %terminate.lpad.i.i.i.i.i.i475 -terminate.lpad.i.i.i.i.i.i473: ; preds = %if.then13.i.i.i.i.i.i.i472 +terminate.lpad.i.i.i.i.i.i475: ; preds = %if.then13.i.i.i.i.i.i.i474 %218 = landingpad { ptr, i32 } catch ptr null %219 = extractvalue { ptr, i32 } %218, 0 call void @__clang_call_terminate(ptr %219) #24 unreachable -_ZSt8_DestroyIN4cvc58internal12NodeTemplateILb1EEEEvPT_.exit.i.i.i.i463: ; preds = %if.then13.i.i.i.i.i.i.i472, %if.then.i.i.i.i.i.i.i457, %for.body.i.i.i.i453 - %incdec.ptr.i.i.i.i464 = getelementptr inbounds i8, ptr %__first.addr.04.i.i.i.i454, i64 8 - %cmp.not.i.i.i.i465 = icmp eq ptr %incdec.ptr.i.i.i.i464, %215 - br i1 %cmp.not.i.i.i.i465, label %invoke.contthread-pre-split.i466, label %for.body.i.i.i.i453, !llvm.loop !7 +_ZSt8_DestroyIN4cvc58internal12NodeTemplateILb1EEEEvPT_.exit.i.i.i.i465: ; preds = %if.then13.i.i.i.i.i.i.i474, %if.then.i.i.i.i.i.i.i459, %for.body.i.i.i.i455 + %incdec.ptr.i.i.i.i466 = getelementptr inbounds i8, ptr %__first.addr.04.i.i.i.i456, i64 8 + %cmp.not.i.i.i.i467 = icmp eq ptr %incdec.ptr.i.i.i.i466, %215 + br i1 %cmp.not.i.i.i.i467, label %invoke.contthread-pre-split.i468, label %for.body.i.i.i.i455, !llvm.loop !7 -invoke.contthread-pre-split.i466: ; preds = %_ZSt8_DestroyIN4cvc58internal12NodeTemplateILb1EEEEvPT_.exit.i.i.i.i463 - %.pr.i467 = load ptr, ptr %assertions, align 8 - br label %invoke.cont.i468 +invoke.contthread-pre-split.i468: ; preds = %_ZSt8_DestroyIN4cvc58internal12NodeTemplateILb1EEEEvPT_.exit.i.i.i.i465 + %.pr.i469 = load ptr, ptr %assertions, align 8 + br label %invoke.cont.i470 -invoke.cont.i468: ; preds = %invoke.contthread-pre-split.i466, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit450 - %220 = phi ptr [ %.pr.i467, %invoke.contthread-pre-split.i466 ], [ %214, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit450 ] - %tobool.not.i.i.i469 = icmp eq ptr %220, null - br i1 %tobool.not.i.i.i469, label %if.end257, label %if.end257.sink.split +invoke.cont.i470: ; preds = %invoke.contthread-pre-split.i468, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit452 + %220 = phi ptr [ %.pr.i469, %invoke.contthread-pre-split.i468 ], [ %214, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit452 ] + %tobool.not.i.i.i471 = icmp eq ptr %220, null + br i1 %tobool.not.i.i.i471, label %if.end257, label %if.end257.sink.split lpad250: ; preds = %invoke.cont247 %221 = landingpad { ptr, i32 } cleanup br label %ehcleanup256 -lpad252: ; preds = %if.then13.i4.i428, %if.then13.i.i435 +lpad252: ; preds = %if.then13.i4.i430, %if.then13.i.i437 %222 = landingpad { ptr, i32 } cleanup call void @_ZN4cvc58internal12NodeTemplateILb1EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp249) #22 @@ -3099,14 +3099,14 @@ ehcleanup256: ; preds = %lpad252, %lpad250 call void @_ZNSt6vectorIN4cvc58internal12NodeTemplateILb1EEESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %assertions) #22 br label %ehcleanup263 -if.end257.sink.split: ; preds = %invoke.cont.i468, %invoke.cont.i - %.sink = phi ptr [ %199, %invoke.cont.i ], [ %220, %invoke.cont.i468 ] - %.ph = phi ptr [ %188, %invoke.cont.i ], [ %209, %invoke.cont.i468 ] +if.end257.sink.split: ; preds = %invoke.cont.i470, %invoke.cont.i + %.sink = phi ptr [ %199, %invoke.cont.i ], [ %220, %invoke.cont.i470 ] + %.ph = phi ptr [ %188, %invoke.cont.i ], [ %209, %invoke.cont.i470 ] call void @_ZdlPv(ptr noundef nonnull %.sink) #23 br label %if.end257 -if.end257: ; preds = %if.end257.sink.split, %invoke.cont.i468, %invoke.cont.i - %223 = phi ptr [ %209, %invoke.cont.i468 ], [ %188, %invoke.cont.i ], [ %.ph, %if.end257.sink.split ] +if.end257: ; preds = %if.end257.sink.split, %invoke.cont.i470, %invoke.cont.i + %223 = phi ptr [ %209, %invoke.cont.i470 ], [ %188, %invoke.cont.i ], [ %.ph, %if.end257.sink.split ] %d_im = getelementptr inbounds i8, ptr %this, i64 24 %224 = load ptr, ptr %d_im, align 8 store ptr %223, ptr %agg.tmp258, align 8 @@ -3114,37 +3114,37 @@ if.end257: ; preds = %if.end257.sink.spli to label %invoke.cont261 unwind label %lpad260 invoke.cont261: ; preds = %if.end257 - %bf.load.i.i475 = load i64, ptr %223, align 8 - %225 = and i64 %bf.load.i.i475, 1152920405095219200 - %cmp.not.i.i476 = icmp eq i64 %225, 1152920405095219200 - br i1 %cmp.not.i.i476, label %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit486, label %if.then.i.i477 - -if.then.i.i477: ; preds = %invoke.cont261 - %bf.value.i.i478 = add i64 %bf.load.i.i475, 1152920405095219200 - %bf.shl.i.i479 = and i64 %bf.value.i.i478, 1152920405095219200 - %bf.clear7.i.i480 = and i64 %bf.load.i.i475, -1152920405095219201 - %bf.set.i.i481 = or disjoint i64 %bf.shl.i.i479, %bf.clear7.i.i480 - store i64 %bf.set.i.i481, ptr %223, align 8 - %cmp12.i.i482 = icmp eq i64 %bf.shl.i.i479, 0 - br i1 %cmp12.i.i482, label %if.then13.i.i484, label %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit486 - -if.then13.i.i484: ; preds = %if.then.i.i477 + %bf.load.i.i477 = load i64, ptr %223, align 8 + %225 = and i64 %bf.load.i.i477, 1152920405095219200 + %cmp.not.i.i478 = icmp eq i64 %225, 1152920405095219200 + br i1 %cmp.not.i.i478, label %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit488, label %if.then.i.i479 + +if.then.i.i479: ; preds = %invoke.cont261 + %bf.value.i.i480 = add i64 %bf.load.i.i477, 1152920405095219200 + %bf.shl.i.i481 = and i64 %bf.value.i.i480, 1152920405095219200 + %bf.clear7.i.i482 = and i64 %bf.load.i.i477, -1152920405095219201 + %bf.set.i.i483 = or disjoint i64 %bf.shl.i.i481, %bf.clear7.i.i482 + store i64 %bf.set.i.i483, ptr %223, align 8 + %cmp12.i.i484 = icmp eq i64 %bf.shl.i.i481, 0 + br i1 %cmp12.i.i484, label %if.then13.i.i486, label %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit488 + +if.then13.i.i486: ; preds = %if.then.i.i479 invoke void @_ZN4cvc58internal4expr9NodeValue15markForDeletionEv(ptr noundef nonnull align 8 dereferenceable(16) %223) - to label %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit486 unwind label %terminate.lpad.i485 + to label %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit488 unwind label %terminate.lpad.i487 -terminate.lpad.i485: ; preds = %if.then13.i.i484 +terminate.lpad.i487: ; preds = %if.then13.i.i486 %226 = landingpad { ptr, i32 } catch ptr null %227 = extractvalue { ptr, i32 } %226, 0 call void @__clang_call_terminate(ptr %227) #24 unreachable -_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit486: ; preds = %invoke.cont261, %if.then.i.i477, %if.then13.i.i484 +_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit488: ; preds = %invoke.cont261, %if.then.i.i479, %if.then13.i.i486 %228 = load ptr, ptr %unsat_assumptions, align 8 - %tobool.not.i.i.i488 = icmp eq ptr %228, null - br i1 %tobool.not.i.i.i488, label %if.end265, label %if.then.i.i.i489 + %tobool.not.i.i.i490 = icmp eq ptr %228, null + br i1 %tobool.not.i.i.i490, label %if.end265, label %if.then.i.i.i491 -if.then.i.i.i489: ; preds = %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit486 +if.then.i.i.i491: ; preds = %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit488 call void @_ZdlPv(ptr noundef nonnull %228) #23 br label %if.end265 @@ -3153,45 +3153,45 @@ lpad260: ; preds = %if.end257 cleanup br label %ehcleanup263 -ehcleanup263: ; preds = %if.then.i.i3.i, %lpad.i402, %lpad260, %ehcleanup256, %ehcleanup230 - %.pn5.pn = phi { ptr, i32 } [ %.pn5, %ehcleanup230 ], [ %229, %lpad260 ], [ %.pn, %ehcleanup256 ], [ %203, %if.then.i.i3.i ], [ %203, %lpad.i402 ] +ehcleanup263: ; preds = %if.then.i.i3.i, %lpad.i404, %lpad260, %ehcleanup256, %ehcleanup230 + %.pn5.pn = phi { ptr, i32 } [ %.pn5, %ehcleanup230 ], [ %229, %lpad260 ], [ %.pn, %ehcleanup256 ], [ %203, %if.then.i.i3.i ], [ %203, %lpad.i404 ] call void @_ZN4cvc58internal12NodeTemplateILb1EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %conflict) #22 br label %ehcleanup264 ehcleanup264: ; preds = %lpad184, %lpad.i.i, %ehcleanup263 %.pn5.pn.pn = phi { ptr, i32 } [ %.pn5.pn, %ehcleanup263 ], [ %182, %lpad184 ], [ %166, %lpad.i.i ] %230 = load ptr, ptr %unsat_assumptions, align 8 - %tobool.not.i.i.i492 = icmp eq ptr %230, null - br i1 %tobool.not.i.i.i492, label %ehcleanup266, label %if.then.i.i.i493 + %tobool.not.i.i.i494 = icmp eq ptr %230, null + br i1 %tobool.not.i.i.i494, label %ehcleanup266, label %if.then.i.i.i495 -if.then.i.i.i493: ; preds = %ehcleanup264 +if.then.i.i.i495: ; preds = %ehcleanup264 call void @_ZdlPv(ptr noundef nonnull %230) #23 br label %ehcleanup266 -if.end265: ; preds = %if.then.i.i.i489, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit486, %invoke.cont176 +if.end265: ; preds = %if.then.i.i.i491, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit488, %invoke.cont176 %231 = load ptr, ptr %assumptions, align 8 - %tobool.not.i.i.i497 = icmp eq ptr %231, null - br i1 %tobool.not.i.i.i497, label %return, label %if.then.i.i.i498 + %tobool.not.i.i.i499 = icmp eq ptr %231, null + br i1 %tobool.not.i.i.i499, label %return, label %if.then.i.i.i500 -if.then.i.i.i498: ; preds = %if.end265 +if.then.i.i.i500: ; preds = %if.end265 call void @_ZdlPv(ptr noundef nonnull %231) #23 br label %return -return: ; preds = %if.then.i.i.i498, %if.end265, %if.then, %lor.lhs.false +return: ; preds = %if.then.i.i.i500, %if.end265, %if.then, %lor.lhs.false ret void -ehcleanup266: ; preds = %if.then.i.i.i493, %ehcleanup264, %lpad175 - %.pn5.pn.pn.pn = phi { ptr, i32 } [ %181, %lpad175 ], [ %.pn5.pn.pn, %ehcleanup264 ], [ %.pn5.pn.pn, %if.then.i.i.i493 ] +ehcleanup266: ; preds = %if.then.i.i.i495, %ehcleanup264, %lpad175 + %.pn5.pn.pn.pn = phi { ptr, i32 } [ %181, %lpad175 ], [ %.pn5.pn.pn, %ehcleanup264 ], [ %.pn5.pn.pn, %if.then.i.i.i495 ] %232 = load ptr, ptr %assumptions, align 8 - %tobool.not.i.i.i502 = icmp eq ptr %232, null - br i1 %tobool.not.i.i.i502, label %eh.resume, label %if.then.i.i.i503 + %tobool.not.i.i.i504 = icmp eq ptr %232, null + br i1 %tobool.not.i.i.i504, label %eh.resume, label %if.then.i.i.i505 -if.then.i.i.i503: ; preds = %ehcleanup266 +if.then.i.i.i505: ; preds = %ehcleanup266 call void @_ZdlPv(ptr noundef nonnull %232) #23 br label %eh.resume -eh.resume: ; preds = %if.then.i.i.i503, %ehcleanup266, %if.then.i.i2.i, %lpad.i, %ehcleanup155, %ehcleanup56 - %.pn14.pn = phi { ptr, i32 } [ %.pn14, %ehcleanup56 ], [ %.pn12, %ehcleanup155 ], [ %158, %if.then.i.i2.i ], [ %158, %lpad.i ], [ %.pn5.pn.pn.pn, %ehcleanup266 ], [ %.pn5.pn.pn.pn, %if.then.i.i.i503 ] +eh.resume: ; preds = %if.then.i.i.i505, %ehcleanup266, %if.then.i.i2.i, %lpad.i, %ehcleanup155, %ehcleanup56 + %.pn14.pn = phi { ptr, i32 } [ %.pn14, %ehcleanup56 ], [ %.pn12, %ehcleanup155 ], [ %158, %if.then.i.i2.i ], [ %158, %lpad.i ], [ %.pn5.pn.pn.pn, %ehcleanup266 ], [ %.pn5.pn.pn.pn, %if.then.i.i.i505 ] resume { ptr, i32 } %.pn14.pn } diff --git a/bench/cvc5/optimized/ite_utilities.cpp.ll b/bench/cvc5/optimized/ite_utilities.cpp.ll index 53e5e667b4b..d0dff8ff812 100644 --- a/bench/cvc5/optimized/ite_utilities.cpp.ll +++ b/bench/cvc5/optimized/ite_utilities.cpp.ll @@ -6836,9 +6836,9 @@ entry: %0 = load ptr, ptr %assertions, align 8 %_M_finish.i = getelementptr inbounds i8, ptr %assertions, i64 8 %1 = load ptr, ptr %_M_finish.i, align 8 - %__first.coerce4.i.i = ptrtoint ptr %0 to i64 - %__last.coerce3.i.i = ptrtoint ptr %1 to i64 - %sub.ptr.sub.i.i.i.i.i = sub i64 %__last.coerce3.i.i, %__first.coerce4.i.i + %sub.ptr.lhs.cast.i.i.i.i.i = ptrtoint ptr %1 to i64 + %sub.ptr.rhs.cast.i.i.i.i.i = ptrtoint ptr %0 to i64 + %sub.ptr.sub.i.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i.i %cmp.i.i.i = icmp ugt i64 %sub.ptr.sub.i.i.i.i.i, 9223372036854775800 br i1 %cmp.i.i.i, label %if.then.i.i.i, label %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i @@ -6848,14 +6848,14 @@ if.then.i.i.i: ; preds = %entry _ZNSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i: ; preds = %entry %cmp.not.i.i.i = icmp eq ptr %1, %0 - br i1 %cmp.not.i.i.i, label %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EED2Ev.exit132, label %invoke.cont + br i1 %cmp.not.i.i.i, label %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EED2Ev.exit134, label %invoke.cont invoke.cont: ; preds = %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i %call5.i.i.i.i1.i = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %sub.ptr.sub.i.i.i.i.i) #24 %2 = and i64 %sub.ptr.sub.i.i.i.i.i, 9223372036854775800 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %call5.i.i.i.i1.i, ptr align 8 %0, i64 %2, i1 false) - %cmp.i.i181 = icmp eq i64 %2, 0 - br i1 %cmp.i.i181, label %if.then.i.i.i130, label %while.body.lr.ph + %cmp.i.i183 = icmp eq i64 %2, 0 + br i1 %cmp.i.i183, label %if.then.i.i.i132, label %while.body.lr.ph while.body.lr.ph: ; preds = %invoke.cont %scevgep.i.i = getelementptr i8, ptr %call5.i.i.i.i1.i, i64 %2 @@ -6868,10 +6868,10 @@ while.body.lr.ph: ; preds = %invoke.cont br label %while.body while.body: ; preds = %while.body.lr.ph, %cleanup - %tovisit.sroa.0.0184 = phi ptr [ %call5.i.i.i.i1.i, %while.body.lr.ph ], [ %tovisit.sroa.0.2, %cleanup ] - %tovisit.sroa.8.0183 = phi ptr [ %scevgep.i.i, %while.body.lr.ph ], [ %tovisit.sroa.8.1, %cleanup ] - %tovisit.sroa.17.0182 = phi ptr [ %tovisit.sroa.17.3, %while.body.lr.ph ], [ %tovisit.sroa.17.1, %cleanup ] - %add.ptr.i.i7 = getelementptr inbounds i8, ptr %tovisit.sroa.8.0183, i64 -8 + %tovisit.sroa.0.0186 = phi ptr [ %call5.i.i.i.i1.i, %while.body.lr.ph ], [ %tovisit.sroa.0.2, %cleanup ] + %tovisit.sroa.8.0185 = phi ptr [ %scevgep.i.i, %while.body.lr.ph ], [ %tovisit.sroa.8.1, %cleanup ] + %tovisit.sroa.17.0184 = phi ptr [ %tovisit.sroa.17.3, %while.body.lr.ph ], [ %tovisit.sroa.17.1, %cleanup ] + %add.ptr.i.i7 = getelementptr inbounds i8, ptr %tovisit.sroa.8.0185, i64 -8 %3 = load ptr, ptr %add.ptr.i.i7, align 8 %d_kind.i.i = getelementptr inbounds i8, ptr %3, i64 8 %bf.load.i.i = load i16, ptr %d_kind.i.i, align 8 @@ -7245,75 +7245,75 @@ invoke.cont55: ; preds = %_ZN4cvc58internal12 %bf.clear.i.i112 = and i32 %bf.load.i.i111, 67108863 %idx.ext.i.i = zext nneg i32 %bf.clear.i.i112 to i64 %add.ptr.i.i113 = getelementptr inbounds ptr, ptr %d_children.i.i, i64 %idx.ext.i.i - %cmp.i114.not174 = icmp eq ptr %spec.select.i.i, %add.ptr.i.i113 - br i1 %cmp.i114.not174, label %cleanup, label %invoke.cont61 + %cmp.i114.not176 = icmp eq ptr %spec.select.i.i, %add.ptr.i.i113 + br i1 %cmp.i114.not176, label %cleanup, label %invoke.cont61 invoke.cont61: ; preds = %invoke.cont55, %invoke.cont63 - %tovisit.sroa.0.3178 = phi ptr [ %tovisit.sroa.0.5, %invoke.cont63 ], [ %tovisit.sroa.0.0184, %invoke.cont55 ] - %tovisit.sroa.8.2177 = phi ptr [ %tovisit.sroa.8.3, %invoke.cont63 ], [ %add.ptr.i.i7, %invoke.cont55 ] - %cit.sroa.0.0176 = phi ptr [ %incdec.ptr.i125, %invoke.cont63 ], [ %spec.select.i.i, %invoke.cont55 ] - %tovisit.sroa.17.2175 = phi ptr [ %tovisit.sroa.17.4, %invoke.cont63 ], [ %tovisit.sroa.17.0182, %invoke.cont55 ] - %43 = load ptr, ptr %cit.sroa.0.0176, align 8, !noalias !179 - %cmp.not.i.i117 = icmp eq ptr %tovisit.sroa.8.2177, %tovisit.sroa.17.2175 + %tovisit.sroa.0.3180 = phi ptr [ %tovisit.sroa.0.5, %invoke.cont63 ], [ %tovisit.sroa.0.0186, %invoke.cont55 ] + %tovisit.sroa.8.2179 = phi ptr [ %tovisit.sroa.8.3, %invoke.cont63 ], [ %add.ptr.i.i7, %invoke.cont55 ] + %cit.sroa.0.0178 = phi ptr [ %incdec.ptr.i127, %invoke.cont63 ], [ %spec.select.i.i, %invoke.cont55 ] + %tovisit.sroa.17.2177 = phi ptr [ %tovisit.sroa.17.4, %invoke.cont63 ], [ %tovisit.sroa.17.0184, %invoke.cont55 ] + %43 = load ptr, ptr %cit.sroa.0.0178, align 8, !noalias !179 + %cmp.not.i.i117 = icmp eq ptr %tovisit.sroa.8.2179, %tovisit.sroa.17.2177 br i1 %cmp.not.i.i117, label %if.else.i.i119, label %if.then.i.i118 if.then.i.i118: ; preds = %invoke.cont61 - store ptr %43, ptr %tovisit.sroa.8.2177, align 8 + store ptr %43, ptr %tovisit.sroa.8.2179, align 8 br label %invoke.cont63 if.else.i.i119: ; preds = %invoke.cont61 - %sub.ptr.lhs.cast.i.i.i.i.i = ptrtoint ptr %tovisit.sroa.8.2177 to i64 - %sub.ptr.rhs.cast.i.i.i.i.i = ptrtoint ptr %tovisit.sroa.0.3178 to i64 - %sub.ptr.sub.i.i.i.i.i120 = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i.i - %cmp.i.i.i.i = icmp eq i64 %sub.ptr.sub.i.i.i.i.i120, 9223372036854775800 + %sub.ptr.lhs.cast.i.i.i.i.i120 = ptrtoint ptr %tovisit.sroa.8.2179 to i64 + %sub.ptr.rhs.cast.i.i.i.i.i121 = ptrtoint ptr %tovisit.sroa.0.3180 to i64 + %sub.ptr.sub.i.i.i.i.i122 = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i120, %sub.ptr.rhs.cast.i.i.i.i.i121 + %cmp.i.i.i.i = icmp eq i64 %sub.ptr.sub.i.i.i.i.i122, 9223372036854775800 br i1 %cmp.i.i.i.i, label %if.then.i.i.i.i, label %_ZNKSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EE12_M_check_lenEmPKc.exit.i.i.i if.then.i.i.i.i: ; preds = %if.else.i.i119 invoke void @_ZSt20__throw_length_errorPKc(ptr noundef nonnull @.str.37) #29 - to label %.noexc123 unwind label %lpad62.loopexit.split-lp + to label %.noexc125 unwind label %lpad62.loopexit.split-lp -.noexc123: ; preds = %if.then.i.i.i.i +.noexc125: ; preds = %if.then.i.i.i.i unreachable _ZNKSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EE12_M_check_lenEmPKc.exit.i.i.i: ; preds = %if.else.i.i119 - %sub.ptr.div.i.i.i.i.i = ashr exact i64 %sub.ptr.sub.i.i.i.i.i120, 3 + %sub.ptr.div.i.i.i.i.i = ashr exact i64 %sub.ptr.sub.i.i.i.i.i122, 3 %.sroa.speculated.i.i.i.i = call i64 @llvm.umax.i64(i64 %sub.ptr.div.i.i.i.i.i, i64 1) %add.i.i.i.i = add nsw i64 %.sroa.speculated.i.i.i.i, %sub.ptr.div.i.i.i.i.i %cmp7.i.i.i.i = icmp ult i64 %add.i.i.i.i, %sub.ptr.div.i.i.i.i.i %44 = call i64 @llvm.umin.i64(i64 %add.i.i.i.i, i64 1152921504606846975) %cond.i.i.i.i = select i1 %cmp7.i.i.i.i, i64 1152921504606846975, i64 %44 - %cmp.not.i.i.i.i121 = icmp eq i64 %cond.i.i.i.i, 0 - br i1 %cmp.not.i.i.i.i121, label %invoke.cont.i.i.i, label %cond.true.i.i.i.i + %cmp.not.i.i.i.i123 = icmp eq i64 %cond.i.i.i.i, 0 + br i1 %cmp.not.i.i.i.i123, label %invoke.cont.i.i.i, label %cond.true.i.i.i.i cond.true.i.i.i.i: ; preds = %_ZNKSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EE12_M_check_lenEmPKc.exit.i.i.i %mul.i.i.i.i.i.i = shl nuw nsw i64 %cond.i.i.i.i, 3 - %call5.i.i.i.i.i.i124 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %mul.i.i.i.i.i.i) #24 + %call5.i.i.i.i.i.i126 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %mul.i.i.i.i.i.i) #24 to label %invoke.cont.i.i.i unwind label %lpad62.loopexit invoke.cont.i.i.i: ; preds = %cond.true.i.i.i.i, %_ZNKSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EE12_M_check_lenEmPKc.exit.i.i.i - %cond.i19.i.i.i = phi ptr [ null, %_ZNKSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EE12_M_check_lenEmPKc.exit.i.i.i ], [ %call5.i.i.i.i.i.i124, %cond.true.i.i.i.i ] + %cond.i19.i.i.i = phi ptr [ null, %_ZNKSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EE12_M_check_lenEmPKc.exit.i.i.i ], [ %call5.i.i.i.i.i.i126, %cond.true.i.i.i.i ] %add.ptr.i.i.i = getelementptr inbounds %"class.cvc5::internal::NodeTemplate.354", ptr %cond.i19.i.i.i, i64 %sub.ptr.div.i.i.i.i.i store ptr %43, ptr %add.ptr.i.i.i, align 8 - %cmp.not7.i.i.i.i.i.i.i.i = icmp eq ptr %tovisit.sroa.0.3178, %tovisit.sroa.8.2177 + %cmp.not7.i.i.i.i.i.i.i.i = icmp eq ptr %tovisit.sroa.0.3180, %tovisit.sroa.8.2179 br i1 %cmp.not7.i.i.i.i.i.i.i.i, label %invoke.cont14.i.i.i, label %for.inc.i.i.i.i.i.i.i.i for.inc.i.i.i.i.i.i.i.i: ; preds = %invoke.cont.i.i.i, %for.inc.i.i.i.i.i.i.i.i %__cur.09.i.i.i.i.i.i.i.i = phi ptr [ %incdec.ptr1.i.i.i.i.i.i.i.i, %for.inc.i.i.i.i.i.i.i.i ], [ %cond.i19.i.i.i, %invoke.cont.i.i.i ] - %__first.addr.08.i.i.i.i.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i.i.i.i.i, %for.inc.i.i.i.i.i.i.i.i ], [ %tovisit.sroa.0.3178, %invoke.cont.i.i.i ] + %__first.addr.08.i.i.i.i.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i.i.i.i.i, %for.inc.i.i.i.i.i.i.i.i ], [ %tovisit.sroa.0.3180, %invoke.cont.i.i.i ] %45 = load ptr, ptr %__first.addr.08.i.i.i.i.i.i.i.i, align 8 store ptr %45, ptr %__cur.09.i.i.i.i.i.i.i.i, align 8 %incdec.ptr.i.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %__first.addr.08.i.i.i.i.i.i.i.i, i64 8 %incdec.ptr1.i.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %__cur.09.i.i.i.i.i.i.i.i, i64 8 - %cmp.not.i.i.i.i.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i.i.i.i, %tovisit.sroa.8.2177 + %cmp.not.i.i.i.i.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i.i.i.i, %tovisit.sroa.8.2179 br i1 %cmp.not.i.i.i.i.i.i.i.i, label %invoke.cont14.i.i.i, label %for.inc.i.i.i.i.i.i.i.i, !llvm.loop !182 invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i.i.i.i.i.i, %invoke.cont.i.i.i %__cur.0.lcssa.i.i.i.i.i.i.i.i = phi ptr [ %cond.i19.i.i.i, %invoke.cont.i.i.i ], [ %incdec.ptr1.i.i.i.i.i.i.i.i, %for.inc.i.i.i.i.i.i.i.i ] - %tobool.not.i.i.i.i122 = icmp eq ptr %tovisit.sroa.0.3178, null - br i1 %tobool.not.i.i.i.i122, label %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_.exit.i.i, label %if.then.i29.i.i.i + %tobool.not.i.i.i.i124 = icmp eq ptr %tovisit.sroa.0.3180, null + br i1 %tobool.not.i.i.i.i124, label %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_.exit.i.i, label %if.then.i29.i.i.i if.then.i29.i.i.i: ; preds = %invoke.cont14.i.i.i - call void @_ZdlPv(ptr noundef nonnull %tovisit.sroa.0.3178) #26 + call void @_ZdlPv(ptr noundef nonnull %tovisit.sroa.0.3180) #26 br label %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_.exit.i.i _ZNSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_.exit.i.i: ; preds = %if.then.i29.i.i.i, %invoke.cont14.i.i.i @@ -7321,12 +7321,12 @@ _ZNSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EE17_M_realloc_insertIJS3 br label %invoke.cont63 invoke.cont63: ; preds = %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_.exit.i.i, %if.then.i.i118 - %tovisit.sroa.17.4 = phi ptr [ %add.ptr29.i.i.i, %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_.exit.i.i ], [ %tovisit.sroa.17.2175, %if.then.i.i118 ] - %__cur.0.lcssa.i.i.i.i.i.i.i.i.pn = phi ptr [ %__cur.0.lcssa.i.i.i.i.i.i.i.i, %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_.exit.i.i ], [ %tovisit.sroa.8.2177, %if.then.i.i118 ] - %tovisit.sroa.0.5 = phi ptr [ %cond.i19.i.i.i, %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_.exit.i.i ], [ %tovisit.sroa.0.3178, %if.then.i.i118 ] + %tovisit.sroa.17.4 = phi ptr [ %add.ptr29.i.i.i, %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_.exit.i.i ], [ %tovisit.sroa.17.2177, %if.then.i.i118 ] + %__cur.0.lcssa.i.i.i.i.i.i.i.i.pn = phi ptr [ %__cur.0.lcssa.i.i.i.i.i.i.i.i, %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_.exit.i.i ], [ %tovisit.sroa.8.2179, %if.then.i.i118 ] + %tovisit.sroa.0.5 = phi ptr [ %cond.i19.i.i.i, %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_.exit.i.i ], [ %tovisit.sroa.0.3180, %if.then.i.i118 ] %tovisit.sroa.8.3 = getelementptr inbounds i8, ptr %__cur.0.lcssa.i.i.i.i.i.i.i.i.pn, i64 8 - %incdec.ptr.i125 = getelementptr inbounds i8, ptr %cit.sroa.0.0176, i64 8 - %cmp.i114.not = icmp eq ptr %incdec.ptr.i125, %add.ptr.i.i113 + %incdec.ptr.i127 = getelementptr inbounds i8, ptr %cit.sroa.0.0178, i64 8 + %cmp.i114.not = icmp eq ptr %incdec.ptr.i127, %add.ptr.i.i113 br i1 %cmp.i114.not, label %cleanup, label %invoke.cont61, !llvm.loop !183 lpad48: ; preds = %invoke.cont47 @@ -7346,35 +7346,35 @@ lpad62.loopexit.split-lp: ; preds = %if.then.i.i.i.i br label %ehcleanup68 cleanup: ; preds = %invoke.cont63, %invoke.cont55, %if.then13.i.i76, %if.then.i.i70, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit67, %sw.epilog - %tovisit.sroa.17.1 = phi ptr [ %tovisit.sroa.17.0182, %sw.epilog ], [ %tovisit.sroa.17.0182, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit67 ], [ %tovisit.sroa.17.0182, %if.then.i.i70 ], [ %tovisit.sroa.17.0182, %if.then13.i.i76 ], [ %tovisit.sroa.17.0182, %invoke.cont55 ], [ %tovisit.sroa.17.4, %invoke.cont63 ] + %tovisit.sroa.17.1 = phi ptr [ %tovisit.sroa.17.0184, %sw.epilog ], [ %tovisit.sroa.17.0184, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit67 ], [ %tovisit.sroa.17.0184, %if.then.i.i70 ], [ %tovisit.sroa.17.0184, %if.then13.i.i76 ], [ %tovisit.sroa.17.0184, %invoke.cont55 ], [ %tovisit.sroa.17.4, %invoke.cont63 ] %tovisit.sroa.8.1 = phi ptr [ %add.ptr.i.i7, %sw.epilog ], [ %add.ptr.i.i7, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit67 ], [ %add.ptr.i.i7, %if.then.i.i70 ], [ %add.ptr.i.i7, %if.then13.i.i76 ], [ %add.ptr.i.i7, %invoke.cont55 ], [ %tovisit.sroa.8.3, %invoke.cont63 ] - %tovisit.sroa.0.2 = phi ptr [ %tovisit.sroa.0.0184, %sw.epilog ], [ %tovisit.sroa.0.0184, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit67 ], [ %tovisit.sroa.0.0184, %if.then.i.i70 ], [ %tovisit.sroa.0.0184, %if.then13.i.i76 ], [ %tovisit.sroa.0.0184, %invoke.cont55 ], [ %tovisit.sroa.0.5, %invoke.cont63 ] + %tovisit.sroa.0.2 = phi ptr [ %tovisit.sroa.0.0186, %sw.epilog ], [ %tovisit.sroa.0.0186, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit67 ], [ %tovisit.sroa.0.0186, %if.then.i.i70 ], [ %tovisit.sroa.0.0186, %if.then13.i.i76 ], [ %tovisit.sroa.0.0186, %invoke.cont55 ], [ %tovisit.sroa.0.5, %invoke.cont63 ] %cmp.i.i = icmp eq ptr %tovisit.sroa.0.2, %tovisit.sroa.8.1 br i1 %cmp.i.i, label %while.end, label %while.body ehcleanup68: ; preds = %lpad62.loopexit, %lpad62.loopexit.split-lp, %lpad48, %ehcleanup, %lpad21, %lpad11 - %tovisit.sroa.0.1 = phi ptr [ %tovisit.sroa.0.0184, %ehcleanup ], [ %tovisit.sroa.0.0184, %lpad11 ], [ %tovisit.sroa.0.0184, %lpad48 ], [ %tovisit.sroa.0.0184, %lpad21 ], [ %tovisit.sroa.0.3178, %lpad62.loopexit ], [ %tovisit.sroa.0.3178, %lpad62.loopexit.split-lp ] + %tovisit.sroa.0.1 = phi ptr [ %tovisit.sroa.0.0186, %ehcleanup ], [ %tovisit.sroa.0.0186, %lpad11 ], [ %tovisit.sroa.0.0186, %lpad48 ], [ %tovisit.sroa.0.0186, %lpad21 ], [ %tovisit.sroa.0.3180, %lpad62.loopexit ], [ %tovisit.sroa.0.3180, %lpad62.loopexit.split-lp ] %.pn.pn = phi { ptr, i32 } [ %.pn, %ehcleanup ], [ %4, %lpad11 ], [ %46, %lpad48 ], [ %35, %lpad21 ], [ %lpad.loopexit, %lpad62.loopexit ], [ %lpad.loopexit.split-lp, %lpad62.loopexit.split-lp ] - %tobool.not.i.i.i126 = icmp eq ptr %tovisit.sroa.0.1, null - br i1 %tobool.not.i.i.i126, label %eh.resume, label %if.then.i.i.i127 + %tobool.not.i.i.i128 = icmp eq ptr %tovisit.sroa.0.1, null + br i1 %tobool.not.i.i.i128, label %eh.resume, label %if.then.i.i.i129 -if.then.i.i.i127: ; preds = %ehcleanup68 +if.then.i.i.i129: ; preds = %ehcleanup68 call void @_ZdlPv(ptr noundef nonnull %tovisit.sroa.0.1) #26 br label %eh.resume while.end: ; preds = %cleanup - %tobool.not.i.i.i129 = icmp eq ptr %tovisit.sroa.0.2, null - br i1 %tobool.not.i.i.i129, label %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EED2Ev.exit132, label %if.then.i.i.i130 + %tobool.not.i.i.i131 = icmp eq ptr %tovisit.sroa.0.2, null + br i1 %tobool.not.i.i.i131, label %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EED2Ev.exit134, label %if.then.i.i.i132 -if.then.i.i.i130: ; preds = %invoke.cont, %while.end - %tovisit.sroa.0.0.lcssa210 = phi ptr [ %tovisit.sroa.0.2, %while.end ], [ %call5.i.i.i.i1.i, %invoke.cont ] - call void @_ZdlPv(ptr noundef nonnull %tovisit.sroa.0.0.lcssa210) #26 - br label %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EED2Ev.exit132 +if.then.i.i.i132: ; preds = %invoke.cont, %while.end + %tovisit.sroa.0.0.lcssa212 = phi ptr [ %tovisit.sroa.0.2, %while.end ], [ %call5.i.i.i.i1.i, %invoke.cont ] + call void @_ZdlPv(ptr noundef nonnull %tovisit.sroa.0.0.lcssa212) #26 + br label %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EED2Ev.exit134 -_ZNSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EED2Ev.exit132: ; preds = %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i, %while.end, %if.then.i.i.i130 +_ZNSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EED2Ev.exit134: ; preds = %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i, %while.end, %if.then.i.i.i132 ret void -eh.resume: ; preds = %if.then.i.i.i127, %ehcleanup68 +eh.resume: ; preds = %if.then.i.i.i129, %ehcleanup68 resume { ptr, i32 } %.pn.pn } diff --git a/bench/cvc5/optimized/theory_bool_rewriter.cpp.ll b/bench/cvc5/optimized/theory_bool_rewriter.cpp.ll index f168593ca21..f216dd0f3d5 100644 --- a/bench/cvc5/optimized/theory_bool_rewriter.cpp.ll +++ b/bench/cvc5/optimized/theory_bool_rewriter.cpp.ll @@ -1108,8 +1108,8 @@ while.body: ; preds = %while.cond.preheade %75 = icmp ult ptr %childList.sroa.11.1.lcssa, %add.ptr.i298 %.sroa.speculated483 = select i1 %75, ptr %childList.sroa.11.1.lcssa, ptr %add.ptr.i298 %.sroa.speculated = ptrtoint ptr %.sroa.speculated483 to i64 - %__first.coerce4.i.i = ptrtoint ptr %cur.sroa.0.0591 to i64 - %sub.ptr.sub.i.i.i.i.i = sub i64 %.sroa.speculated, %__first.coerce4.i.i + %sub.ptr.rhs.cast.i.i.i.i.i = ptrtoint ptr %cur.sroa.0.0591 to i64 + %sub.ptr.sub.i.i.i.i.i = sub i64 %.sroa.speculated, %sub.ptr.rhs.cast.i.i.i.i.i %cmp.i.i.i300 = icmp ugt i64 %sub.ptr.sub.i.i.i.i.i, 9223372036854775800 br i1 %cmp.i.i.i300, label %if.then.i.i.i305, label %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb0EEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i diff --git a/bench/entt/optimized/sigh.cpp.ll b/bench/entt/optimized/sigh.cpp.ll index 389f45c6793..c023c83aee6 100644 --- a/bench/entt/optimized/sigh.cpp.ll +++ b/bench/entt/optimized/sigh.cpp.ll @@ -7973,13 +7973,12 @@ for.body.lr.ph.i.i.i211: ; preds = %_ZNKSt6vectorIN4ent call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %call5.i.i.i.i104, ptr noundef nonnull align 8 dereferenceable(16) %call5.i.i.i.i59, i64 16, i1 false), !tbaa.struct !15, !alias.scope !138 %incdec.ptr.i87.ptr = getelementptr inbounds i8, ptr %call5.i.i.i.i104, i64 32 call void @_ZdlPv(ptr noundef nonnull %call5.i.i.i.i59) #21 - %sigh.sroa.0.0269 = ptrtoint ptr %call5.i.i.i.i104 to i64 %invariant.gep = getelementptr i8, ptr %call5.i.i.i.i104, i64 -16 br label %for.body.i.i.i216 for.body.i.i.i216: ; preds = %if.end.i.i.i223, %for.body.lr.ph.i.i.i211 %sigh.sroa.32.5.idx = phi i64 [ 32, %for.body.lr.ph.i.i.i211 ], [ %sigh.sroa.32.6.idx, %if.end.i.i.i223 ] - %.idx280 = phi i64 [ 32, %for.body.lr.ph.i.i.i211 ], [ %.idx, %if.end.i.i.i223 ] + %.idx279 = phi i64 [ 32, %for.body.lr.ph.i.i.i211 ], [ %.idx, %if.end.i.i.i223 ] %pos.016.i.i.i217 = phi i64 [ 2, %for.body.lr.ph.i.i.i211 ], [ %sub.i.i.i218, %if.end.i.i.i223 ] %sub.i.i.i218 = add i64 %pos.016.i.i.i217, -1 %add.ptr.i.i.i.i219 = getelementptr inbounds %"class.entt::delegate.94", ptr %call5.i.i.i.i104, i64 %sub.i.i.i218 @@ -7992,14 +7991,14 @@ for.body.i.i.i216: ; preds = %if.end.i.i.i223, %f br i1 %2, label %if.then.i.i.i234, label %if.end.i.i.i223 if.then.i.i.i234: ; preds = %for.body.i.i.i216 - %gep = getelementptr i8, ptr %invariant.gep, i64 %.idx280 + %gep = getelementptr i8, ptr %invariant.gep, i64 %.idx279 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %add.ptr.i.i.i.i219, ptr noundef nonnull align 8 dereferenceable(16) %gep, i64 16, i1 false), !tbaa.struct !15, !noalias !142 %sigh.sroa.32.5.add = add nsw i64 %sigh.sroa.32.5.idx, -16 br label %if.end.i.i.i223 if.end.i.i.i223: ; preds = %if.then.i.i.i234, %for.body.i.i.i216 %sigh.sroa.32.6.idx = phi i64 [ %sigh.sroa.32.5.add, %if.then.i.i.i234 ], [ %sigh.sroa.32.5.idx, %for.body.i.i.i216 ] - %.idx = phi i64 [ %sigh.sroa.32.5.add, %if.then.i.i.i234 ], [ %.idx280, %for.body.i.i.i216 ] + %.idx = phi i64 [ %sigh.sroa.32.5.add, %if.then.i.i.i234 ], [ %.idx279, %for.body.i.i.i216 ] %tobool.not.i.i.i224 = icmp eq i64 %sub.i.i.i218, 0 br i1 %tobool.not.i.i.i224, label %_ZN4entt4sinkINS_4sighIFvvESaIvEEEE10disconnectITnDaXadL_ZNK23const_nonconst_noexcept1hEvEEJRKS7_EEEvDpOT0_.exit.i, label %for.body.i.i.i216, !llvm.loop !145 @@ -8018,12 +8017,13 @@ if.then.i.i5.i229: ; preds = %_ZN4entt4sinkINS_4s br label %invoke.cont7 if.else.i.i.i233: ; preds = %_ZN4entt4sinkINS_4sighIFvvESaIvEEEE10disconnectITnDaXadL_ZNK23const_nonconst_noexcept1hEvEEJRKS7_EEEvDpOT0_.exit.i + %sub.ptr.rhs.cast.i.i.i108 = ptrtoint ptr %call5.i.i.i.i104 to i64 %cmp.i.i110 = icmp eq i64 %sigh.sroa.32.6.idx, 9223372036854775792 br i1 %cmp.i.i110, label %if.then.i.i149, label %_ZNKSt6vectorIN4entt8delegateIFvvEEESaIS3_EE12_M_check_lenEmPKc.exit.i111 if.then.i.i149: ; preds = %if.else.i.i.i233 invoke void @_ZSt20__throw_length_errorPKc(ptr noundef nonnull @.str.74) #19 - to label %.noexc150 unwind label %ehcleanup142.thread271 + to label %.noexc150 unwind label %ehcleanup142.thread270 .noexc150: ; preds = %if.then.i.i149 unreachable @@ -8039,7 +8039,7 @@ _ZNKSt6vectorIN4entt8delegateIFvvEEESaIS3_EE12_M_check_lenEmPKc.exit.i111: ; pre call void @llvm.assume(i1 %cmp.not.i.i120) %mul.i.i.i.i122 = shl nuw nsw i64 %cond.i.i116, 4 %call5.i.i.i.i152 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %mul.i.i.i.i122) #20 - to label %_ZNSt6vectorIN4entt8delegateIFvvEEESaIS3_EE11_S_relocateEPS3_S6_S6_RS4_.exit.i133 unwind label %ehcleanup142.thread271 + to label %_ZNSt6vectorIN4entt8delegateIFvvEEESaIS3_EE11_S_relocateEPS3_S6_S6_RS4_.exit.i133 unwind label %ehcleanup142.thread270 _ZNSt6vectorIN4entt8delegateIFvvEEESaIS3_EE11_S_relocateEPS3_S6_S6_RS4_.exit.i133: ; preds = %_ZNKSt6vectorIN4entt8delegateIFvvEEESaIS3_EE12_M_check_lenEmPKc.exit.i111 %add.ptr.i125 = getelementptr inbounds i8, ptr %call5.i.i.i.i152, i64 32 @@ -8047,12 +8047,12 @@ _ZNSt6vectorIN4entt8delegateIFvvEEESaIS3_EE11_S_relocateEPS3_S6_S6_RS4_.exit.i13 %call.i208.sroa.5.0.add.ptr.i125.sroa_idx = getelementptr inbounds i8, ptr %call5.i.i.i.i152, i64 40 store ptr @_ZZN4entt8delegateIFvvEE7connectITnDaXadL_ZNK23const_nonconst_noexcept1hEvEEKS4_EEvRT0_ENUlPKvE_8__invokeES9_, ptr %call.i208.sroa.5.0.add.ptr.i125.sroa_idx, align 8, !tbaa !4 %5 = add i64 %3, -16 - %6 = sub i64 %5, %sigh.sroa.0.0269 + %6 = sub i64 %5, %sub.ptr.rhs.cast.i.i.i108 %7 = and i64 %6, -16 %8 = add i64 %7, 16 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %call5.i.i.i.i152, ptr nonnull align 8 %call5.i.i.i.i104, i64 %8, i1 false), !alias.scope !146 - %scevgep270 = getelementptr i8, ptr %call5.i.i.i.i152, i64 %8 - %incdec.ptr.i135 = getelementptr i8, ptr %scevgep270, i64 16 + %scevgep269 = getelementptr i8, ptr %call5.i.i.i.i152, i64 %8 + %incdec.ptr.i135 = getelementptr i8, ptr %scevgep269, i64 16 %cmp.not6.i.i.i32.i136 = icmp eq i64 %sigh.sroa.32.6.idx, 32 br i1 %cmp.not6.i.i.i32.i136, label %if.else.i.i.i233.invoke.cont7_crit_edge, label %for.body.i.i.i33.i137 @@ -8244,7 +8244,7 @@ lpad3: ; preds = %_ZNKSt6vectorIN4ent cleanup br label %if.then.i.i.i.i495 -ehcleanup142.thread271: ; preds = %if.then.i.i149, %_ZNKSt6vectorIN4entt8delegateIFvvEEESaIS3_EE12_M_check_lenEmPKc.exit.i111 +ehcleanup142.thread270: ; preds = %if.then.i.i149, %_ZNKSt6vectorIN4entt8delegateIFvvEEESaIS3_EE12_M_check_lenEmPKc.exit.i111 %21 = landingpad { ptr, i32 } cleanup br label %if.then.i.i.i.i495 @@ -9060,9 +9060,9 @@ ehcleanup140: ; preds = %ehcleanup133, %lpad call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %gtest_ar109) #22 br label %if.then.i.i.i.i495 -if.then.i.i.i.i495: ; preds = %ehcleanup142.thread271, %lpad3, %lpad12.loopexit, %lpad12.loopexit.split-lp, %lpad10, %ehcleanup33, %ehcleanup65, %ehcleanup108, %ehcleanup140 - %.pn171.pn.pn.pn249 = phi { ptr, i32 } [ %22, %lpad10 ], [ %.pn.pn.pn, %ehcleanup33 ], [ %.pn163.pn.pn, %ehcleanup65 ], [ %.pn167.pn.pn, %ehcleanup108 ], [ %.pn171.pn.pn, %ehcleanup140 ], [ %21, %ehcleanup142.thread271 ], [ %lpad.loopexit.split-lp, %lpad12.loopexit.split-lp ], [ %lpad.loopexit, %lpad12.loopexit ], [ %20, %lpad3 ] - %sigh.sroa.0.3248 = phi ptr [ %sigh.sroa.0.1, %lpad10 ], [ %sigh.sroa.0.2, %ehcleanup33 ], [ %sigh.sroa.0.2, %ehcleanup65 ], [ %sigh.sroa.0.2, %ehcleanup108 ], [ %sigh.sroa.0.2, %ehcleanup140 ], [ %call5.i.i.i.i104, %ehcleanup142.thread271 ], [ %sigh.sroa.0.2, %lpad12.loopexit.split-lp ], [ %sigh.sroa.0.2, %lpad12.loopexit ], [ %call5.i.i.i.i59, %lpad3 ] +if.then.i.i.i.i495: ; preds = %ehcleanup142.thread270, %lpad3, %lpad12.loopexit, %lpad12.loopexit.split-lp, %lpad10, %ehcleanup33, %ehcleanup65, %ehcleanup108, %ehcleanup140 + %.pn171.pn.pn.pn249 = phi { ptr, i32 } [ %22, %lpad10 ], [ %.pn.pn.pn, %ehcleanup33 ], [ %.pn163.pn.pn, %ehcleanup65 ], [ %.pn167.pn.pn, %ehcleanup108 ], [ %.pn171.pn.pn, %ehcleanup140 ], [ %21, %ehcleanup142.thread270 ], [ %lpad.loopexit.split-lp, %lpad12.loopexit.split-lp ], [ %lpad.loopexit, %lpad12.loopexit ], [ %20, %lpad3 ] + %sigh.sroa.0.3248 = phi ptr [ %sigh.sroa.0.1, %lpad10 ], [ %sigh.sroa.0.2, %ehcleanup33 ], [ %sigh.sroa.0.2, %ehcleanup65 ], [ %sigh.sroa.0.2, %ehcleanup108 ], [ %sigh.sroa.0.2, %ehcleanup140 ], [ %call5.i.i.i.i104, %ehcleanup142.thread270 ], [ %sigh.sroa.0.2, %lpad12.loopexit.split-lp ], [ %sigh.sroa.0.2, %lpad12.loopexit ], [ %call5.i.i.i.i59, %lpad3 ] call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %cfunctor) #22 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %functor) #22 call void @_ZdlPv(ptr noundef nonnull %sigh.sroa.0.3248) #21 diff --git a/bench/flac/optimized/format.c.ll b/bench/flac/optimized/format.c.ll index 99eda8bd768..871b06201c0 100644 --- a/bench/flac/optimized/format.c.ll +++ b/bench/flac/optimized/format.c.ll @@ -712,7 +712,7 @@ if.then23: ; preds = %land.lhs.true if.end27.split.us.split: ; preds = %if.end12 %tracks31.phi.trans.insert = getelementptr inbounds i8, ptr %cue_sheet, i64 152 %.pre = load ptr, ptr %tracks31.phi.trans.insert, align 8 - %.pre100 = add i32 %1, -1 + %.pre99 = add i32 %1, -1 %invariant.gep = getelementptr inbounds i8, ptr %.pre, i64 23 br label %for.body.us @@ -725,7 +725,7 @@ for.body.us: ; preds = %for.inc176.us, %if. br i1 %cmp36.us, label %if.then38, label %if.end42.us if.end42.us: ; preds = %for.body.us - %cmp94.us = icmp ult i32 %i.076.us, %.pre100 + %cmp94.us = icmp ult i32 %i.076.us, %.pre99 br i1 %cmp94.us, label %if.then96.us, label %if.end121.us if.then96.us: ; preds = %if.end42.us @@ -745,17 +745,17 @@ if.end107.us: ; preds = %if.then96.us if.end121.us: ; preds = %if.end42.us %gep.phi.trans.insert = getelementptr inbounds %struct.FLAC__StreamMetadata_CueSheet_Track, ptr %invariant.gep, i64 %idxprom32.us - %.pre99 = load i8, ptr %gep.phi.trans.insert, align 1 - %cmp12874.us.not = icmp eq i8 %.pre99, 0 + %.pre98 = load i8, ptr %gep.phi.trans.insert, align 1 + %cmp12874.us.not = icmp eq i8 %.pre98, 0 br i1 %cmp12874.us.not, label %for.inc176.us, label %for.body130.lr.ph.us for.inc176.us: ; preds = %for.inc.us.us, %if.end121.us %inc177.us = add nuw i32 %i.076.us, 1 - %exitcond97.not = icmp eq i32 %inc177.us, %1 - br i1 %exitcond97.not, label %return, label %for.body.us, !llvm.loop !13 + %exitcond96.not = icmp eq i32 %inc177.us, %1 + br i1 %exitcond96.not, label %return, label %for.body.us, !llvm.loop !13 for.body130.lr.ph.us: ; preds = %if.end107.us, %if.end121.us - %9 = phi i8 [ %.pre99, %if.end121.us ], [ %6, %if.end107.us ] + %9 = phi i8 [ %.pre98, %if.end121.us ], [ %6, %if.end107.us ] %indices154.us = getelementptr inbounds %struct.FLAC__StreamMetadata_CueSheet_Track, ptr %.pre, i64 %idxprom32.us, i32 5 %wide.trip.count94 = zext i8 %9 to i64 br label %for.body130.us.us diff --git a/bench/grpc/optimized/call.cc.ll b/bench/grpc/optimized/call.cc.ll index 9111cc08e99..a269369c2f4 100644 --- a/bench/grpc/optimized/call.cc.ll +++ b/bench/grpc/optimized/call.cc.ll @@ -9732,14 +9732,14 @@ lpad: ; preds = %_ZNKSt6vectorISt17b if.end: ; preds = %_ZNSt6vectorISt17basic_string_viewIcSt11char_traitsIcEESaIS3_EE9push_backEOS3_.exit, %entry %pending_op_strings.sroa.29.0 = phi ptr [ null, %entry ], [ %incdec.ptr.i.i.i, %_ZNSt6vectorISt17basic_string_viewIcSt11char_traitsIcEESaIS3_EE9push_backEOS3_.exit ] %pending_op_strings.sroa.0.0 = phi ptr [ null, %entry ], [ %call5.i.i.i.i.i.i5, %_ZNSt6vectorISt17basic_string_viewIcSt11char_traitsIcEESaIS3_EE9push_backEOS3_.exit ] - %pending_op_strings.sroa.0.0171 = ptrtoint ptr %pending_op_strings.sroa.0.0 to i64 - %pending_op_strings.sroa.12.0169 = ptrtoint ptr %pending_op_strings.sroa.29.0 to i64 %and2 = and i64 %pending_ops, 2 %tobool3.not = icmp eq i64 %and2, 0 br i1 %tobool3.not, label %if.end7, label %if.else.i.i13 if.else.i.i13: ; preds = %if.end - %sub.ptr.sub.i.i.i.i.i16 = sub i64 %pending_op_strings.sroa.12.0169, %pending_op_strings.sroa.0.0171 + %sub.ptr.lhs.cast.i.i.i.i.i14 = ptrtoint ptr %pending_op_strings.sroa.29.0 to i64 + %sub.ptr.rhs.cast.i.i.i.i.i15 = ptrtoint ptr %pending_op_strings.sroa.0.0 to i64 + %sub.ptr.sub.i.i.i.i.i16 = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i14, %sub.ptr.rhs.cast.i.i.i.i.i15 %cmp.i.i.i.i17 = icmp eq i64 %sub.ptr.sub.i.i.i.i.i16, 9223372036854775792 br i1 %cmp.i.i.i.i17, label %if.then.i.i.i.i44, label %_ZNKSt6vectorISt17basic_string_viewIcSt11char_traitsIcEESaIS3_EE12_M_check_lenEmPKc.exit.i.i.i18 @@ -9775,8 +9775,8 @@ _ZNSt12_Vector_baseISt17basic_string_viewIcSt11char_traitsIcEESaIS3_EE11_M_alloc br i1 %cmp.not5.i.i.i.i.i.i30, label %_ZNSt6vectorISt17basic_string_viewIcSt11char_traitsIcEESaIS3_EE11_S_relocateEPS3_S6_S6_RS4_.exit19.i.i.i37, label %for.body.i.i.i.i.i.i31.preheader for.body.i.i.i.i.i.i31.preheader: ; preds = %_ZNSt12_Vector_baseISt17basic_string_viewIcSt11char_traitsIcEESaIS3_EE11_M_allocateEm.exit.i.i.i27 - %2 = add i64 %pending_op_strings.sroa.12.0169, -16 - %3 = sub i64 %2, %pending_op_strings.sroa.0.0171 + %2 = add i64 %sub.ptr.lhs.cast.i.i.i.i.i14, -16 + %3 = sub i64 %2, %sub.ptr.rhs.cast.i.i.i.i.i15 %4 = and i64 %3, -16 %5 = add i64 %4, 16 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %cond.i10.i.i.i28, ptr align 8 %pending_op_strings.sroa.0.0, i64 %5, i1 false), !alias.scope !122 diff --git a/bench/hdf5/optimized/H5FDint.c.ll b/bench/hdf5/optimized/H5FDint.c.ll index adcb0daa98d..bed31536f2d 100644 --- a/bench/hdf5/optimized/H5FDint.c.ll +++ b/bench/hdf5/optimized/H5FDint.c.ll @@ -2240,7 +2240,7 @@ define range(i32 -1, 1) i32 @H5FD_write_selection(ptr noundef %0, i32 noundef %1 %11 = alloca i32, align 4 %12 = tail call i64 @H5CX_get_dxpl() #12 %13 = icmp eq i32 %2, 0 - br i1 %13, label %.thread175, label %14 + br i1 %13, label %.thread174, label %14 14: ; preds = %8 %15 = getelementptr inbounds i8, ptr %0, i64 48 @@ -2390,8 +2390,8 @@ define range(i32 -1, 1) i32 @H5FD_write_selection(ptr noundef %0, i32 noundef %1 94: ; preds = %74 %indvars.iv.next146 = add nuw nsw i64 %indvars.iv145, 1 - %exitcond150.not = icmp eq i64 %indvars.iv.next146, %wide.trip.count143 - br i1 %exitcond150.not, label %95, label %63 + %exitcond149.not = icmp eq i64 %indvars.iv.next146, %wide.trip.count143 + br i1 %exitcond149.not, label %95, label %63 95: ; preds = %94 %96 = load ptr, ptr %21, align 8 @@ -2438,33 +2438,33 @@ define range(i32 -1, 1) i32 @H5FD_write_selection(ptr noundef %0, i32 noundef %1 br i1 %.not.not, label %.thread, label %.preheader .preheader: ; preds = %118 - %umax154 = call i32 @llvm.umax.i32(i32 %2, i32 1) - %wide.trip.count155 = zext i32 %umax154 to i64 + %umax153 = call i32 @llvm.umax.i32(i32 %2, i32 1) + %wide.trip.count154 = zext i32 %umax153 to i64 br label %119 119: ; preds = %.preheader, %119 - %indvars.iv151 = phi i64 [ 0, %.preheader ], [ %indvars.iv.next152, %119 ] + %indvars.iv150 = phi i64 [ 0, %.preheader ], [ %indvars.iv.next151, %119 ] %120 = load i64, ptr %15, align 8 - %121 = getelementptr inbounds i64, ptr %5, i64 %indvars.iv151 + %121 = getelementptr inbounds i64, ptr %5, i64 %indvars.iv150 %122 = load i64, ptr %121, align 8 %123 = sub i64 %122, %120 store i64 %123, ptr %121, align 8 - %indvars.iv.next152 = add nuw nsw i64 %indvars.iv151, 1 - %exitcond156.not = icmp eq i64 %indvars.iv.next152, %wide.trip.count155 - br i1 %exitcond156.not, label %.thread, label %119 + %indvars.iv.next151 = add nuw nsw i64 %indvars.iv150, 1 + %exitcond155.not = icmp eq i64 %indvars.iv.next151, %wide.trip.count154 + br i1 %exitcond155.not, label %.thread, label %119 .thread: ; preds = %119, %118 %.not = icmp eq i32 %.093, 0 br i1 %.not, label %._crit_edge, label %.lr.ph.preheader .lr.ph.preheader: ; preds = %.thread - %wide.trip.count160 = zext i32 %.093 to i64 + %wide.trip.count159 = zext i32 %.093 to i64 br label %.lr.ph .lr.ph: ; preds = %.lr.ph.preheader, %141 - %indvars.iv157 = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next158, %141 ] + %indvars.iv156 = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next157, %141 ] %.188131 = phi i32 [ %.087, %.lr.ph.preheader ], [ %.3, %141 ] - %124 = getelementptr inbounds i64, ptr %.097, i64 %indvars.iv157 + %124 = getelementptr inbounds i64, ptr %.097, i64 %indvars.iv156 %125 = load i64, ptr %124, align 8 %126 = call ptr @H5I_remove(i64 noundef %125) #12 %127 = icmp eq ptr %126, null @@ -2478,7 +2478,7 @@ define range(i32 -1, 1) i32 @H5FD_write_selection(ptr noundef %0, i32 noundef %1 132: ; preds = %128, %.lr.ph %.2 = phi i32 [ -1, %128 ], [ %.188131, %.lr.ph ] - %133 = getelementptr inbounds i64, ptr %.095, i64 %indvars.iv157 + %133 = getelementptr inbounds i64, ptr %.095, i64 %indvars.iv156 %134 = load i64, ptr %133, align 8 %135 = call ptr @H5I_remove(i64 noundef %134) #12 %136 = icmp eq ptr %135, null @@ -2492,9 +2492,9 @@ define range(i32 -1, 1) i32 @H5FD_write_selection(ptr noundef %0, i32 noundef %1 141: ; preds = %132, %137 %.3 = phi i32 [ -1, %137 ], [ %.2, %132 ] - %indvars.iv.next158 = add nuw nsw i64 %indvars.iv157, 1 - %exitcond161.not = icmp eq i64 %indvars.iv.next158, %wide.trip.count160 - br i1 %exitcond161.not, label %._crit_edge, label %.lr.ph + %indvars.iv.next157 = add nuw nsw i64 %indvars.iv156, 1 + %exitcond160.not = icmp eq i64 %indvars.iv.next157, %wide.trip.count159 + br i1 %exitcond160.not, label %._crit_edge, label %.lr.ph ._crit_edge: ; preds = %141, %.thread %.188.lcssa = phi i32 [ %.087, %.thread ], [ %.3, %141 ] @@ -2507,15 +2507,15 @@ define range(i32 -1, 1) i32 @H5FD_write_selection(ptr noundef %0, i32 noundef %1 144: ; preds = %142, %._crit_edge %.not109 = icmp eq ptr %.095, %10 - br i1 %.not109, label %.thread175, label %145 + br i1 %.not109, label %.thread174, label %145 145: ; preds = %144 %146 = call ptr @H5MM_xfree(ptr noundef %.095) #12 - br label %.thread175 + br label %.thread174 -.thread175: ; preds = %8, %145, %144 - %.188.lcssa174179 = phi i32 [ %.188.lcssa, %145 ], [ %.188.lcssa, %144 ], [ 0, %8 ] - ret i32 %.188.lcssa174179 +.thread174: ; preds = %8, %145, %144 + %.188.lcssa173178 = phi i32 [ %.188.lcssa, %145 ], [ %.188.lcssa, %144 ], [ 0, %8 ] + ret i32 %.188.lcssa173178 } ; Function Attrs: nounwind uwtable diff --git a/bench/hyperscan/optimized/rose_build_add_mask.cpp.ll b/bench/hyperscan/optimized/rose_build_add_mask.cpp.ll index 6073ae39074..712a5a43880 100644 --- a/bench/hyperscan/optimized/rose_build_add_mask.cpp.ll +++ b/bench/hyperscan/optimized/rose_build_add_mask.cpp.ll @@ -1338,9 +1338,9 @@ do.end74.i: ; preds = %invoke.cont70.i, %i %add.ptr.i252.i = getelementptr inbounds %"class.ue2::CharReach", ptr %119, i64 %conv78.i %120 = load ptr, ptr %_M_finish.i15.i, align 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %mask3.i, i8 0, i64 24, i1 false) - %__first.coerce4.i.i.i = ptrtoint ptr %add.ptr.i252.i to i64 - %__last.coerce3.i.i.i = ptrtoint ptr %120 to i64 - %sub.ptr.sub.i.i.i.i.i.i = sub i64 %__last.coerce3.i.i.i, %__first.coerce4.i.i.i + %sub.ptr.lhs.cast.i.i.i.i.i.i = ptrtoint ptr %120 to i64 + %sub.ptr.rhs.cast.i.i.i.i.i.i = ptrtoint ptr %add.ptr.i252.i to i64 + %sub.ptr.sub.i.i.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i.i.i %cmp.i.i.i253.i = icmp ugt i64 %sub.ptr.sub.i.i.i.i.i.i, 9223372036854775776 br i1 %cmp.i.i.i253.i, label %if.then.i.i.i258.i, label %_ZNSt6vectorIN3ue29CharReachESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i.i @@ -1356,9 +1356,9 @@ _ZNSt6vectorIN3ue29CharReachESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i.i: ; pr br i1 %cmp.not.i.i.i254.i, label %_ZNSt12_Vector_baseIN3ue29CharReachESaIS1_EE11_M_allocateEm.exit.thread.i.i.i, label %for.body.i.i.i.i.preheader.i.i.i _ZNSt12_Vector_baseIN3ue29CharReachESaIS1_EE11_M_allocateEm.exit.thread.i.i.i: ; preds = %_ZNSt6vectorIN3ue29CharReachESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i.i - %add.ptr6.i.i.i = getelementptr inbounds i8, ptr null, i64 %sub.ptr.sub.i.i.i.i.i.i - %_M_end_of_storage7.i.i.i = getelementptr inbounds i8, ptr %mask3.i, i64 16 - store ptr %add.ptr6.i.i.i, ptr %_M_end_of_storage7.i.i.i, align 8 + %add.ptr3.i.i.i = getelementptr inbounds i8, ptr null, i64 %sub.ptr.sub.i.i.i.i.i.i + %_M_end_of_storage4.i.i.i = getelementptr inbounds i8, ptr %mask3.i, i64 16 + store ptr %add.ptr3.i.i.i, ptr %_M_end_of_storage4.i.i.i, align 8 br label %invoke.cont88.i for.body.i.i.i.i.preheader.i.i.i: ; preds = %_ZNSt6vectorIN3ue29CharReachESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i.i diff --git a/bench/image-rs/optimized/2mngkegtim1o10y3.ll b/bench/image-rs/optimized/2mngkegtim1o10y3.ll index 22f7e98ff57..fc4bc3a0f7e 100644 --- a/bench/image-rs/optimized/2mngkegtim1o10y3.ll +++ b/bench/image-rs/optimized/2mngkegtim1o10y3.ll @@ -25288,7 +25288,7 @@ _ZN4core5slice4sort15partition_equal17h17a3131f6abc039aE.exit: ; preds = %255 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17hde7c8b626c641700E.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17ha7cff5554f4201e0E.exit.i %.sroa.01.04.i = phi i64 [ %274, %_ZN4core5slice4sort11insert_tail17ha7cff5554f4201e0E.exit.i ], [ 1, %.outer._crit_edge ] - %274 = add nuw i64 %.sroa.01.04.i, 1 + %274 = add nuw nsw i64 %.sroa.01.04.i, 1 %275 = getelementptr { i64, i32 }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.04.i %276 = getelementptr i8, ptr %275, i64 8 %.val11.i.i = load i32, ptr %276, align 8, !alias.scope !2942, !noundef !4 @@ -25301,7 +25301,7 @@ _ZN4core5slice4sort15partition_equal17h17a3131f6abc039aE.exit: ; preds = %255 %280 = getelementptr i8, ptr %275, i64 -16 %281 = load i64, ptr %275, align 8, !alias.scope !2942, !noundef !4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %275, ptr noundef nonnull align 8 dereferenceable(16) %280, i64 16, i1 false), !alias.scope !2942 - %282 = add i64 %.sroa.01.04.i, -1 + %282 = add nsw i64 %.sroa.01.04.i, -1 %.not9.i.i = icmp eq i64 %282, 0 br i1 %.not9.i.i, label %.thread.i.i60, label %.lr.ph.i.i59 @@ -25315,7 +25315,7 @@ _ZN4core5slice4sort15partition_equal17h17a3131f6abc039aE.exit: ; preds = %255 .lr.ph.i.i59: ; preds = %279, %287 %.sroa.4.011.i.i = phi i64 [ %283, %287 ], [ %282, %279 ] %.sroa.5.010.i.i = phi ptr [ %284, %287 ], [ %280, %279 ] - %283 = add i64 %.sroa.4.011.i.i, -1 + %283 = add nsw i64 %.sroa.4.011.i.i, -1 %284 = getelementptr inbounds { i64, i32 }, ptr %.sroa.0.0.lcssa, i64 %283 %285 = getelementptr i8, ptr %284, i64 8 %.val10.i.i = load i32, ptr %285, align 8, !alias.scope !2942, !noundef !4 @@ -26052,7 +26052,7 @@ _ZN4core5slice4sort15partition_equal17h449bec6003fa3086E.exit: ; preds = %254 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h3cff12bf42799890E.exit.i": ; preds = %.preheader.i, %_ZN4core5slice4sort11insert_tail17ha53760ca013afd22E.exit.i %.sroa.01.05.i = phi i64 [ %274, %_ZN4core5slice4sort11insert_tail17ha53760ca013afd22E.exit.i ], [ 1, %.preheader.i ] - %274 = add nuw i64 %.sroa.01.05.i, 1 + %274 = add nuw nsw i64 %.sroa.01.05.i, 1 call void @llvm.experimental.noalias.scope.decl(metadata !3077) %275 = getelementptr { { { { i8, [31 x i8] }, i64 } }, { i64, i64 }, i8, i8, [6 x i8] }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.05.i %276 = getelementptr i8, ptr %275, i64 -64 @@ -26063,7 +26063,7 @@ _ZN4core5slice4sort15partition_equal17h449bec6003fa3086E.exit: ; preds = %254 call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %5), !noalias !3080 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %5, ptr noundef nonnull align 8 dereferenceable(64) %275, i64 64, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %275, ptr noundef nonnull align 8 dereferenceable(64) %276, i64 64, i1 false), !alias.scope !3080 - %279 = add i64 %.sroa.01.05.i, -1 + %279 = add nsw i64 %.sroa.01.05.i, -1 %.not7.i.i = icmp eq i64 %279, 0 br i1 %.not7.i.i, label %.thread.i.i63, label %.lr.ph.i.i62 @@ -26076,7 +26076,7 @@ _ZN4core5slice4sort15partition_equal17h449bec6003fa3086E.exit: ; preds = %254 .lr.ph.i.i62: ; preds = %278, %284 %.sroa.4.09.i.i = phi i64 [ %280, %284 ], [ %279, %278 ] %.sroa.5.08.i.i = phi ptr [ %281, %284 ], [ %276, %278 ] - %280 = add i64 %.sroa.4.09.i.i, -1 + %280 = add nsw i64 %.sroa.4.09.i.i, -1 %281 = getelementptr inbounds { { { { i8, [31 x i8] }, i64 } }, { i64, i64 }, i8, i8, [6 x i8] }, ptr %.sroa.0.0.lcssa, i64 %280 %282 = invoke fastcc noundef zeroext i1 @"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17h200843fbf204fa0dE"(ptr noalias noundef readonly align 8 dereferenceable(64) %5, ptr noalias noundef readonly align 8 dereferenceable(64) %281) to label %283 unwind label %285 @@ -26753,7 +26753,7 @@ _ZN4core5slice4sort15partition_equal17h4e30e2c0275b88b0E.exit: ; preds = %242 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h892e1c3881125c03E.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17h0115e8ec860dd6ebE.exit.i %.sroa.01.04.i = phi i64 [ %261, %_ZN4core5slice4sort11insert_tail17h0115e8ec860dd6ebE.exit.i ], [ 1, %.outer._crit_edge ] - %261 = add nuw i64 %.sroa.01.04.i, 1 + %261 = add nuw nsw i64 %.sroa.01.04.i, 1 %262 = getelementptr i64, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.04.i %263 = getelementptr i8, ptr %262, i64 -8 %.val11.i.i = load i64, ptr %262, align 8, !alias.scope !3165, !noundef !4 @@ -26763,7 +26763,7 @@ _ZN4core5slice4sort15partition_equal17h4e30e2c0275b88b0E.exit: ; preds = %242 265: ; preds = %"_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h892e1c3881125c03E.exit.i" store i64 %.val12.i.i, ptr %262, align 8, !alias.scope !3165 - %266 = add i64 %.sroa.01.04.i, -1 + %266 = add nsw i64 %.sroa.01.04.i, -1 %.not8.i.i = icmp eq i64 %266, 0 br i1 %.not8.i.i, label %.thread.i.i59, label %.lr.ph.i.i58 @@ -26775,7 +26775,7 @@ _ZN4core5slice4sort15partition_equal17h4e30e2c0275b88b0E.exit: ; preds = %242 .lr.ph.i.i58: ; preds = %265, %270 %.sroa.4.010.i.i = phi i64 [ %267, %270 ], [ %266, %265 ] %.sroa.5.09.i.i = phi ptr [ %268, %270 ], [ %263, %265 ] - %267 = add i64 %.sroa.4.010.i.i, -1 + %267 = add nsw i64 %.sroa.4.010.i.i, -1 %268 = getelementptr inbounds i64, ptr %.sroa.0.0.lcssa, i64 %267 %.val10.i.i = load i64, ptr %268, align 8, !alias.scope !3165, !noundef !4 %269 = icmp ult i64 %.val11.i.i, %.val10.i.i @@ -27511,7 +27511,7 @@ _ZN4core5slice4sort15partition_equal17hf916638ccd3f1c24E.exit: ; preds = %254 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h3cff12bf42799890E.exit.i": ; preds = %.preheader.i, %_ZN4core5slice4sort11insert_tail17h67494a88accdb344E.exit.i %.sroa.01.05.i = phi i64 [ %274, %_ZN4core5slice4sort11insert_tail17h67494a88accdb344E.exit.i ], [ 1, %.preheader.i ] - %274 = add nuw i64 %.sroa.01.05.i, 1 + %274 = add nuw nsw i64 %.sroa.01.05.i, 1 call void @llvm.experimental.noalias.scope.decl(metadata !3300) %275 = getelementptr { { { { i8, [31 x i8] }, i64 } }, { i64, i64 }, i8, i8, [6 x i8] }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.05.i %276 = getelementptr i8, ptr %275, i64 -64 @@ -27522,7 +27522,7 @@ _ZN4core5slice4sort15partition_equal17hf916638ccd3f1c24E.exit: ; preds = %254 call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %5), !noalias !3303 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %5, ptr noundef nonnull align 8 dereferenceable(64) %275, i64 64, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %275, ptr noundef nonnull align 8 dereferenceable(64) %276, i64 64, i1 false), !alias.scope !3303 - %279 = add i64 %.sroa.01.05.i, -1 + %279 = add nsw i64 %.sroa.01.05.i, -1 %.not7.i.i = icmp eq i64 %279, 0 br i1 %.not7.i.i, label %.thread.i.i63, label %.lr.ph.i.i62 @@ -27535,7 +27535,7 @@ _ZN4core5slice4sort15partition_equal17hf916638ccd3f1c24E.exit: ; preds = %254 .lr.ph.i.i62: ; preds = %278, %284 %.sroa.4.09.i.i = phi i64 [ %280, %284 ], [ %279, %278 ] %.sroa.5.08.i.i = phi ptr [ %281, %284 ], [ %276, %278 ] - %280 = add i64 %.sroa.4.09.i.i, -1 + %280 = add nsw i64 %.sroa.4.09.i.i, -1 %281 = getelementptr inbounds { { { { i8, [31 x i8] }, i64 } }, { i64, i64 }, i8, i8, [6 x i8] }, ptr %.sroa.0.0.lcssa, i64 %280 %282 = invoke fastcc noundef zeroext i1 @"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17h12e2ad744bf27617E"(ptr noalias noundef readonly align 8 dereferenceable(64) %5, ptr noalias noundef readonly align 8 dereferenceable(64) %281) to label %283 unwind label %285 diff --git a/bench/libquic/optimized/xts.c.ll b/bench/libquic/optimized/xts.c.ll index 6ca6b4d3d23..23f53babaf1 100644 --- a/bench/libquic/optimized/xts.c.ll +++ b/bench/libquic/optimized/xts.c.ll @@ -123,11 +123,11 @@ while.body.lr.ph.i: ; preds = %lor.lhs.false8 %arrayidx12.i = getelementptr inbounds i8, ptr %scratch.i, i64 8 %block1.i = getelementptr inbounds i8, ptr %0, i64 512 %.pre.i = load i64, ptr %tweak.i, align 8 - %.pre61.i = load i64, ptr %arrayidx10.i, align 8 + %.pre66.i = load i64, ptr %arrayidx10.i, align 8 br label %while.body.i while.body.i: ; preds = %if.end27.i, %while.body.lr.ph.i - %5 = phi i64 [ %.pre61.i, %while.body.lr.ph.i ], [ %or.i, %if.end27.i ] + %5 = phi i64 [ %.pre66.i, %while.body.lr.ph.i ], [ %or.i, %if.end27.i ] %6 = phi i64 [ %.pre.i, %while.body.lr.ph.i ], [ %xor33.i, %if.end27.i ] %inp.addr.051.i = phi ptr [ %in, %while.body.lr.ph.i ], [ %add.ptr.i, %if.end27.i ] %out.addr.050.i = phi ptr [ %out, %while.body.lr.ph.i ], [ %add.ptr23.i, %if.end27.i ] @@ -183,29 +183,27 @@ for.cond.preheader.i: ; preds = %while.end.i br i1 %cmp4257.not.i, label %for.end.i, label %for.body.i for.body.i: ; preds = %for.cond.preheader.i, %for.body.i - %conv4159.i = phi i64 [ %conv41.i, %for.body.i ], [ 0, %for.cond.preheader.i ] - %i.058.i = phi i32 [ %inc.i, %for.body.i ], [ 0, %for.cond.preheader.i ] - %arrayidx44.i = getelementptr inbounds i8, ptr %inp.addr.0.lcssa.i, i64 %conv4159.i + %indvars.iv62.i = phi i64 [ %indvars.iv.next63.i, %for.body.i ], [ 0, %for.cond.preheader.i ] + %arrayidx44.i = getelementptr inbounds i8, ptr %inp.addr.0.lcssa.i, i64 %indvars.iv62.i %17 = load i8, ptr %arrayidx44.i, align 1 - %arrayidx46.i = getelementptr inbounds [16 x i8], ptr %scratch.i, i64 0, i64 %conv4159.i + %arrayidx46.i = getelementptr inbounds [16 x i8], ptr %scratch.i, i64 0, i64 %indvars.iv62.i %18 = load i8, ptr %arrayidx46.i, align 1 - %arrayidx48.i = getelementptr inbounds i8, ptr %out.addr.0.lcssa.i, i64 %conv4159.i + %arrayidx48.i = getelementptr inbounds i8, ptr %out.addr.0.lcssa.i, i64 %indvars.iv62.i store i8 %18, ptr %arrayidx48.i, align 1 store i8 %17, ptr %arrayidx46.i, align 1 - %inc.i = add i32 %i.058.i, 1 - %conv41.i = zext i32 %inc.i to i64 - %cmp42.i = icmp samesign ugt i64 %len.addr.1.lcssa.i, %conv41.i - br i1 %cmp42.i, label %for.body.i, label %for.end.loopexit.i, !llvm.loop !9 + %indvars.iv.next63.i = add nuw i64 %indvars.iv62.i, 1 + %exitcond65.not.i = icmp eq i64 %indvars.iv.next63.i, %len.addr.1.lcssa.i + br i1 %exitcond65.not.i, label %for.end.loopexit.i, label %for.body.i, !llvm.loop !9 for.end.loopexit.i: ; preds = %for.body.i - %.pre64.i = load i64, ptr %scratch.i, align 8 + %.pre69.i = load i64, ptr %scratch.i, align 8 %arrayidx55.phi.trans.insert.i = getelementptr inbounds i8, ptr %scratch.i, i64 8 - %.pre65.i = load i64, ptr %arrayidx55.phi.trans.insert.i, align 8 + %.pre70.i = load i64, ptr %arrayidx55.phi.trans.insert.i, align 8 br label %for.end.i for.end.i: ; preds = %for.end.loopexit.i, %for.cond.preheader.i - %19 = phi i64 [ %.pre65.i, %for.end.loopexit.i ], [ %15, %for.cond.preheader.i ] - %20 = phi i64 [ %.pre64.i, %for.end.loopexit.i ], [ %16, %for.cond.preheader.i ] + %19 = phi i64 [ %.pre70.i, %for.end.loopexit.i ], [ %15, %for.cond.preheader.i ] + %20 = phi i64 [ %.pre69.i, %for.end.loopexit.i ], [ %16, %for.cond.preheader.i ] %21 = load i64, ptr %tweak.i, align 8 %xor53.i = xor i64 %21, %20 store i64 %xor53.i, ptr %scratch.i, align 8 @@ -263,30 +261,28 @@ if.else.i: ; preds = %while.end.i br i1 %cmp10754.not.i, label %for.end122.i, label %for.body109.i for.body109.i: ; preds = %if.else.i, %for.body109.i - %conv10656.i = phi i64 [ %conv106.i, %for.body109.i ], [ 0, %if.else.i ] - %i.155.i = phi i32 [ %inc121.i, %for.body109.i ], [ 0, %if.else.i ] - %add.i = add i32 %i.155.i, 16 - %idxprom111.i = zext i32 %add.i to i64 + %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %for.body109.i ], [ 0, %if.else.i ] + %add.i = add i64 %indvars.iv.i, 16 + %idxprom111.i = and i64 %add.i, 4294967295 %arrayidx112.i = getelementptr inbounds i8, ptr %inp.addr.0.lcssa.i, i64 %idxprom111.i %38 = load i8, ptr %arrayidx112.i, align 1 - %arrayidx114.i = getelementptr inbounds [16 x i8], ptr %scratch.i, i64 0, i64 %conv10656.i + %arrayidx114.i = getelementptr inbounds [16 x i8], ptr %scratch.i, i64 0, i64 %indvars.iv.i %39 = load i8, ptr %arrayidx114.i, align 1 %arrayidx117.i = getelementptr inbounds i8, ptr %out.addr.0.lcssa.i, i64 %idxprom111.i store i8 %39, ptr %arrayidx117.i, align 1 store i8 %38, ptr %arrayidx114.i, align 1 - %inc121.i = add i32 %i.155.i, 1 - %conv106.i = zext i32 %inc121.i to i64 - %cmp107.i = icmp samesign ugt i64 %len.addr.1.lcssa.i, %conv106.i - br i1 %cmp107.i, label %for.body109.i, label %for.end122.loopexit.i, !llvm.loop !10 + %indvars.iv.next.i = add nuw i64 %indvars.iv.i, 1 + %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %len.addr.1.lcssa.i + br i1 %exitcond.not.i, label %for.end122.loopexit.i, label %for.body109.i, !llvm.loop !10 for.end122.loopexit.i: ; preds = %for.body109.i - %.pre62.i = load i64, ptr %scratch.i, align 8 - %.pre63.i = load i64, ptr %arrayidx94.i, align 8 + %.pre67.i = load i64, ptr %scratch.i, align 8 + %.pre68.i = load i64, ptr %arrayidx94.i, align 8 br label %for.end122.i for.end122.i: ; preds = %for.end122.loopexit.i, %if.else.i - %40 = phi i64 [ %.pre63.i, %for.end122.loopexit.i ], [ %xor104.i, %if.else.i ] - %41 = phi i64 [ %.pre62.i, %for.end122.loopexit.i ], [ %xor101.i, %if.else.i ] + %40 = phi i64 [ %.pre68.i, %for.end122.loopexit.i ], [ %xor104.i, %if.else.i ] + %41 = phi i64 [ %.pre67.i, %for.end122.loopexit.i ], [ %xor101.i, %if.else.i ] %42 = load i64, ptr %tweak.i, align 8 %xor125.i = xor i64 %42, %41 store i64 %xor125.i, ptr %scratch.i, align 8 diff --git a/bench/libsodium/optimized/libavx2_la-chacha20_dolbeau-avx2.ll b/bench/libsodium/optimized/libavx2_la-chacha20_dolbeau-avx2.ll index 47d42855a06..2124cddcbbc 100644 --- a/bench/libsodium/optimized/libavx2_la-chacha20_dolbeau-avx2.ll +++ b/bench/libsodium/optimized/libavx2_la-chacha20_dolbeau-avx2.ll @@ -1309,19 +1309,17 @@ for.end898: ; preds = %for.body857 br label %for.body922 for.body922: ; preds = %for.end898, %for.body922 - %conv9191204 = phi i64 [ 0, %for.end898 ], [ %conv919, %for.body922 ] - %i845.11203 = phi i32 [ 0, %for.end898 ], [ %inc932, %for.body922 ] - %arrayidx923 = getelementptr i8, ptr %m.addr.4.lcssa, i64 %conv9191204 + %indvars.iv = phi i64 [ 0, %for.end898 ], [ %indvars.iv.next, %for.body922 ] + %arrayidx923 = getelementptr i8, ptr %m.addr.4.lcssa, i64 %indvars.iv %346 = load i8, ptr %arrayidx923, align 1 - %arrayidx926 = getelementptr [64 x i8], ptr %partialblock, i64 0, i64 %conv9191204 + %arrayidx926 = getelementptr [64 x i8], ptr %partialblock, i64 0, i64 %indvars.iv %347 = load i8, ptr %arrayidx926, align 1 %xor1075 = xor i8 %347, %346 - %arrayidx930 = getelementptr i8, ptr %c.addr.4.lcssa, i64 %conv9191204 + %arrayidx930 = getelementptr i8, ptr %c.addr.4.lcssa, i64 %indvars.iv store i8 %xor1075, ptr %arrayidx930, align 1 - %inc932 = add i32 %i845.11203, 1 - %conv919 = zext i32 %inc932 to i64 - %cmp920 = icmp samesign ugt i64 %bytes.addr.4.lcssa, %conv919 - br i1 %cmp920, label %for.body922, label %for.end933, !llvm.loop !12 + %indvars.iv.next = add nuw i64 %indvars.iv, 1 + %exitcond.not = icmp eq i64 %indvars.iv.next, %bytes.addr.4.lcssa + br i1 %exitcond.not, label %for.end933, label %for.body922, !llvm.loop !12 for.end933: ; preds = %for.body922 call void @sodium_memzero(ptr noundef nonnull %partialblock, i64 noundef 64) #5 diff --git a/bench/llvm/optimized/AArch64SelectionDAGInfo.cpp.ll b/bench/llvm/optimized/AArch64SelectionDAGInfo.cpp.ll index bce4f0761e0..6ed9f618d9c 100644 --- a/bench/llvm/optimized/AArch64SelectionDAGInfo.cpp.ll +++ b/bench/llvm/optimized/AArch64SelectionDAGInfo.cpp.ll @@ -350,7 +350,7 @@ _ZNSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE9push_backERKS2_.e ] _ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i63: ; preds = %_ZNSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE9push_backERKS2_.exit - %.sroa.0178.sink268.sroa.gep = getelementptr inbounds i8, ptr %.sroa.0178, i64 8 + %.sroa.0178.sink265.sroa.gep = getelementptr inbounds i8, ptr %.sroa.0178, i64 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0178, i8 0, i64 24, i1 false) %26 = load ptr, ptr %16, align 8 %27 = tail call noundef ptr @_ZN4llvm11PointerType3getERNS_11LLVMContextEj(ptr noundef nonnull align 8 dereferenceable(8) %26, i32 noundef 0) #11 @@ -358,7 +358,7 @@ _ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmP br label %_ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i108 _ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i78: ; preds = %_ZNSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE9push_backERKS2_.exit - %.sroa.0178.sink268.sroa.gep269 = getelementptr inbounds i8, ptr %.sroa.0159, i64 8 + %.sroa.0178.sink265.sroa.gep266 = getelementptr inbounds i8, ptr %.sroa.0159, i64 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0159, i8 0, i64 24, i1 false) %29 = load ptr, ptr %16, align 8 %30 = tail call noundef ptr @_ZN4llvm11PointerType3getERNS_11LLVMContextEj(ptr noundef nonnull align 8 dereferenceable(8) %29, i32 noundef 0) #11 @@ -366,7 +366,7 @@ _ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmP br label %_ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i108 _ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i93: ; preds = %_ZNSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE9push_backERKS2_.exit - %.sroa.0178.sink268.sroa.gep270 = getelementptr inbounds i8, ptr %.sroa.0140, i64 8 + %.sroa.0178.sink265.sroa.gep267 = getelementptr inbounds i8, ptr %.sroa.0140, i64 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0140, i8 0, i64 24, i1 false) %32 = load ptr, ptr %16, align 8 %33 = tail call noundef ptr @_ZN4llvm4Type10getInt32TyERNS_11LLVMContextE(ptr noundef nonnull align 8 dereferenceable(8) %32) #11 @@ -382,16 +382,16 @@ _ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmP br label %_ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i108 _ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i108: ; preds = %_ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i63, %_ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i78, %_ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i93 - %.sroa.0178.sink268.sroa.phi = phi ptr [ %.sroa.0178.sink268.sroa.gep, %_ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i63 ], [ %.sroa.0178.sink268.sroa.gep269, %_ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i78 ], [ %.sroa.0178.sink268.sroa.gep270, %_ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i93 ] - %.sroa.0178.sink268 = phi ptr [ %.sroa.0178, %_ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i63 ], [ %.sroa.0159, %_ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i78 ], [ %.sroa.0140, %_ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i93 ] - %.sink264 = phi ptr [ %27, %_ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i63 ], [ %30, %_ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i78 ], [ %33, %_ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i93 ] + %.sroa.0178.sink265.sroa.phi = phi ptr [ %.sroa.0178.sink265.sroa.gep, %_ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i63 ], [ %.sroa.0178.sink265.sroa.gep266, %_ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i78 ], [ %.sroa.0178.sink265.sroa.gep267, %_ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i93 ] + %.sroa.0178.sink265 = phi ptr [ %.sroa.0178, %_ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i63 ], [ %.sroa.0159, %_ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i78 ], [ %.sroa.0140, %_ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i93 ] + %.sink261 = phi ptr [ %27, %_ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i63 ], [ %30, %_ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i78 ], [ %33, %_ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i93 ] %.pn = phi { ptr, i32 } [ %28, %_ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i63 ], [ %31, %_ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i78 ], [ %34, %_ZNKSt6vectorIN4llvm18TargetLoweringBase12ArgListEntryESaIS2_EE12_M_check_lenEmPKc.exit.i.i93 ] - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(12) %.sroa.0178.sink268.sroa.phi, ptr noundef nonnull align 8 dereferenceable(12) %6, i64 12, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(12) %.sroa.0178.sink265.sroa.phi, ptr noundef nonnull align 8 dereferenceable(12) %6, i64 12, i1 false) %36 = tail call noalias noundef nonnull dereferenceable(96) ptr @_Znwm(i64 noundef 96) #12 %37 = getelementptr inbounds i8, ptr %36, i64 48 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %37, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0178.sink268, i64 24, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %37, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0178.sink265, i64 24, i1 false) %.sroa.4179.0..sroa_idx180 = getelementptr inbounds i8, ptr %36, i64 72 - store ptr %.sink264, ptr %.sroa.4179.0..sroa_idx180, align 8 + store ptr %.sink261, ptr %.sroa.4179.0..sroa_idx180, align 8 %.sroa.5182.0..sroa_idx183 = getelementptr inbounds i8, ptr %36, i64 80 store i16 0, ptr %.sroa.5182.0..sroa_idx183, align 8 %.sroa.7188.0..sroa_idx189 = getelementptr inbounds i8, ptr %36, i64 83 diff --git a/bench/llvm/optimized/RISCVISelLowering.cpp.ll b/bench/llvm/optimized/RISCVISelLowering.cpp.ll index b463a1e7f5e..000684881cb 100644 --- a/bench/llvm/optimized/RISCVISelLowering.cpp.ll +++ b/bench/llvm/optimized/RISCVISelLowering.cpp.ll @@ -98680,9 +98680,9 @@ _ZN4llvm7CCState11AllocateRegENS_8ArrayRefItEE.exit239.thread: ; preds = %_ZNK4l br label %_ZN4llvm7CCState13AllocateStackEjNS_5AlignE.exit243 _ZN4llvm7CCState13AllocateStackEjNS_5AlignE.exit243: ; preds = %241, %245 - %.sink553 = phi i64 [ %243, %241 ], [ %248, %245 ] + %.sink552 = phi i64 [ %243, %241 ], [ %248, %245 ] %.0.i240 = phi i64 [ %244, %241 ], [ %247, %245 ] - store i64 %.sink553, ptr %239, align 8 + store i64 %.sink552, ptr %239, align 8 %249 = getelementptr inbounds nuw i8, ptr %7, i64 56 %.sroa.0.0.copyload.i.i241 = load i8, ptr %249, align 8 %.sroa.speculated.i242 = call i8 @llvm.umax.i8(i8 %.sroa.0.0.copyload.i.i241, i8 2) @@ -98801,13 +98801,13 @@ _ZN4llvm23SmallVectorTemplateBaseINS_3ISD10ArgFlagsTyELb1EE9push_backES2_.exit: br label %.thread422 308: ; preds = %276 - %.pre558 = and i64 %32, 2048 - %309 = icmp eq i64 %.pre558, 0 + %.pre557 = and i64 %32, 2048 + %309 = icmp eq i64 %.pre557, 0 br i1 %309, label %.thread422, label %.thread .thread: ; preds = %_ZN4llvm23SmallVectorTemplateBaseINS_3ISD10ArgFlagsTyELb1EE9push_backES2_.exit, %308 - %.1.ph564 = phi i32 [ %.0190, %308 ], [ 11, %_ZN4llvm23SmallVectorTemplateBaseINS_3ISD10ArgFlagsTyELb1EE9push_backES2_.exit ] - %.sroa.0346.2.ph563 = phi i16 [ %.sroa.0346.0, %308 ], [ %31, %_ZN4llvm23SmallVectorTemplateBaseINS_3ISD10ArgFlagsTyELb1EE9push_backES2_.exit ] + %.1.ph563 = phi i32 [ %.0190, %308 ], [ 11, %_ZN4llvm23SmallVectorTemplateBaseINS_3ISD10ArgFlagsTyELb1EE9push_backES2_.exit ] + %.sroa.0346.2.ph562 = phi i16 [ %.sroa.0346.0, %308 ], [ %31, %_ZN4llvm23SmallVectorTemplateBaseINS_3ISD10ArgFlagsTyELb1EE9push_backES2_.exit ] %310 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %144) #31 %311 = icmp ult i64 %310, 3 br i1 %311, label %312, label %.thread422 @@ -98916,8 +98916,8 @@ _ZN4llvm7CCState11AllocateRegENS_8ArrayRefItEE.exit.i: ; preds = %_ZNK4llvm7CCSt 364: ; preds = %353 %indvars.iv.next536 = add nuw nsw i64 %indvars.iv535, 1 - %exitcond540.not = icmp eq i64 %indvars.iv.next536, %spec.select.i.i - br i1 %exitcond540.not, label %_ZNK4llvm7CCState19getFirstUnallocatedENS_8ArrayRefItEE.exit.i58.i, label %353, !llvm.loop !868 + %exitcond539.not = icmp eq i64 %indvars.iv.next536, %spec.select.i.i + br i1 %exitcond539.not, label %_ZNK4llvm7CCState19getFirstUnallocatedENS_8ArrayRefItEE.exit.i58.i, label %353, !llvm.loop !868 _ZNK4llvm7CCState19getFirstUnallocatedENS_8ArrayRefItEE.exit.i58.i: ; preds = %364, %353 %.05.i.i59.i = phi i64 [ %spec.select.i.i, %364 ], [ %indvars.iv535, %353 ] @@ -99042,7 +99042,7 @@ _ZN4llvm7CCState13AllocateStackEjNS_5AlignE.exit69.i: ; preds = %420, %413 %429 = getelementptr inbounds nuw i8, ptr %16, i64 22 store i16 %3, ptr %429, align 2, !alias.scope !896 %430 = getelementptr inbounds nuw i8, ptr %16, i64 24 - store i16 %.sroa.0346.2.ph563, ptr %430, align 8, !alias.scope !896 + store i16 %.sroa.0346.2.ph562, ptr %430, align 8, !alias.scope !896 store i8 1, ptr %426, align 8, !alias.scope !896 store i64 %.0.i66.i, ptr %16, align 8, !alias.scope !896 %431 = load ptr, ptr %406, align 8 @@ -99060,7 +99060,7 @@ _ZN4llvm7CCState13AllocateStackEjNS_5AlignE.exit69.i: ; preds = %420, %413 %437 = getelementptr inbounds nuw i8, ptr %17, i64 22 store i16 %3, ptr %437, align 2, !alias.scope !899 %438 = getelementptr inbounds nuw i8, ptr %17, i64 24 - store i16 %.sroa.0346.2.ph563, ptr %438, align 8, !alias.scope !899 + store i16 %.sroa.0346.2.ph562, ptr %438, align 8, !alias.scope !899 store i32 %433, ptr %17, align 8, !alias.scope !899 %439 = load ptr, ptr %350, align 8 call void @_ZN4llvm23SmallVectorTemplateBaseINS_11CCValAssignELb1EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %439, ptr noundef nonnull align 8 dereferenceable(26) %17) @@ -99113,7 +99113,7 @@ _ZN4llvm7CCState13AllocateStackEjNS_5AlignE.exit73.i: ; preds = %458, %452 %467 = getelementptr inbounds nuw i8, ptr %18, i64 22 store i16 %3, ptr %467, align 2, !alias.scope !902 %468 = getelementptr inbounds nuw i8, ptr %18, i64 24 - store i16 %.sroa.0346.2.ph563, ptr %468, align 8, !alias.scope !902 + store i16 %.sroa.0346.2.ph562, ptr %468, align 8, !alias.scope !902 store i8 1, ptr %464, align 8, !alias.scope !902 store i64 %.0.i70.i, ptr %18, align 8, !alias.scope !902 %469 = load ptr, ptr %350, align 8 @@ -99129,8 +99129,8 @@ _ZL19CC_RISCVAssign2XLenjRN4llvm7CCStateENS_11CCValAssignENS_3ISD10ArgFlagsTyEjN br label %656 .thread422: ; preds = %298, %.thread, %308 - %.1415.ph = phi i32 [ %.0190, %298 ], [ %.0190, %308 ], [ %.1.ph564, %.thread ] - %.sroa.0346.2414.ph = phi i16 [ %307, %298 ], [ %.sroa.0346.0, %308 ], [ %.sroa.0346.2.ph563, %.thread ] + %.1415.ph = phi i32 [ %.0190, %298 ], [ %.0190, %308 ], [ %.1.ph563, %.thread ] + %.sroa.0346.2414.ph = phi i16 [ %307, %298 ], [ %.sroa.0346.0, %308 ], [ %.sroa.0346.2.ph562, %.thread ] %470 = lshr i32 %29, 3 %471 = zext nneg i32 %470 to i64 %472 = call range(i64 0, 65) i64 @llvm.ctlz.i64(i64 %471, i1 false) @@ -99168,8 +99168,8 @@ _ZL19CC_RISCVAssign2XLenjRN4llvm7CCStateENS_11CCValAssignENS_3ISD10ArgFlagsTyEjN br label %490 490: ; preds = %501, %.lr.ph.i.i253 - %indvars.iv541 = phi i64 [ %indvars.iv.next542, %501 ], [ 0, %.lr.ph.i.i253 ] - %491 = getelementptr inbounds i16, ptr @_ZL9ArgFPR16s, i64 %indvars.iv541 + %indvars.iv540 = phi i64 [ %indvars.iv.next541, %501 ], [ 0, %.lr.ph.i.i253 ] + %491 = getelementptr inbounds i16, ptr @_ZL9ArgFPR16s, i64 %indvars.iv540 %492 = load i16, ptr %491, align 2 %493 = zext i16 %492 to i32 %494 = lshr i32 %493, 5 @@ -99183,16 +99183,16 @@ _ZL19CC_RISCVAssign2XLenjRN4llvm7CCStateENS_11CCValAssignENS_3ISD10ArgFlagsTyEjN br i1 %.not.i.i255, label %_ZNK4llvm7CCState19getFirstUnallocatedENS_8ArrayRefItEE.exit.i257, label %501 501: ; preds = %490 - %indvars.iv.next542 = add nuw nsw i64 %indvars.iv541, 1 - %exitcond544.not = icmp eq i64 %indvars.iv.next542, 8 - br i1 %exitcond544.not, label %_ZN4llvm7CCState11AllocateRegENS_8ArrayRefItEE.exit260.thread, label %490, !llvm.loop !868 + %indvars.iv.next541 = add nuw nsw i64 %indvars.iv540, 1 + %exitcond543.not = icmp eq i64 %indvars.iv.next541, 8 + br i1 %exitcond543.not, label %_ZN4llvm7CCState11AllocateRegENS_8ArrayRefItEE.exit260.thread, label %490, !llvm.loop !868 _ZNK4llvm7CCState19getFirstUnallocatedENS_8ArrayRefItEE.exit.i257: ; preds = %490 - %502 = icmp eq i64 %indvars.iv541, 8 + %502 = icmp eq i64 %indvars.iv540, 8 br i1 %502, label %_ZN4llvm7CCState11AllocateRegENS_8ArrayRefItEE.exit260.thread, label %503 503: ; preds = %_ZNK4llvm7CCState19getFirstUnallocatedENS_8ArrayRefItEE.exit.i257 - %504 = and i64 %indvars.iv541, 4294967295 + %504 = and i64 %indvars.iv540, 4294967295 %505 = getelementptr inbounds i16, ptr @_ZL9ArgFPR16s, i64 %504 %506 = load i16, ptr %505, align 2 call void @_ZN4llvm7CCState13MarkAllocatedEt(ptr noundef nonnull align 8 dereferenceable(420) %7, i16 noundef zeroext %506) #31 @@ -99209,8 +99209,8 @@ _ZNK4llvm7CCState19getFirstUnallocatedENS_8ArrayRefItEE.exit.i257: ; preds = %49 br label %510 510: ; preds = %521, %.lr.ph.i.i262 - %indvars.iv545 = phi i64 [ %indvars.iv.next546, %521 ], [ 0, %.lr.ph.i.i262 ] - %511 = getelementptr inbounds i16, ptr @_ZL9ArgFPR32s, i64 %indvars.iv545 + %indvars.iv544 = phi i64 [ %indvars.iv.next545, %521 ], [ 0, %.lr.ph.i.i262 ] + %511 = getelementptr inbounds i16, ptr @_ZL9ArgFPR32s, i64 %indvars.iv544 %512 = load i16, ptr %511, align 2 %513 = zext i16 %512 to i32 %514 = lshr i32 %513, 5 @@ -99224,16 +99224,16 @@ _ZNK4llvm7CCState19getFirstUnallocatedENS_8ArrayRefItEE.exit.i257: ; preds = %49 br i1 %.not.i.i264, label %_ZNK4llvm7CCState19getFirstUnallocatedENS_8ArrayRefItEE.exit.i266, label %521 521: ; preds = %510 - %indvars.iv.next546 = add nuw nsw i64 %indvars.iv545, 1 - %exitcond548.not = icmp eq i64 %indvars.iv.next546, 8 - br i1 %exitcond548.not, label %_ZN4llvm7CCState11AllocateRegENS_8ArrayRefItEE.exit260.thread, label %510, !llvm.loop !868 + %indvars.iv.next545 = add nuw nsw i64 %indvars.iv544, 1 + %exitcond547.not = icmp eq i64 %indvars.iv.next545, 8 + br i1 %exitcond547.not, label %_ZN4llvm7CCState11AllocateRegENS_8ArrayRefItEE.exit260.thread, label %510, !llvm.loop !868 _ZNK4llvm7CCState19getFirstUnallocatedENS_8ArrayRefItEE.exit.i266: ; preds = %510 - %522 = icmp eq i64 %indvars.iv545, 8 + %522 = icmp eq i64 %indvars.iv544, 8 br i1 %522, label %_ZN4llvm7CCState11AllocateRegENS_8ArrayRefItEE.exit260.thread, label %523 523: ; preds = %_ZNK4llvm7CCState19getFirstUnallocatedENS_8ArrayRefItEE.exit.i266 - %524 = and i64 %indvars.iv545, 4294967295 + %524 = and i64 %indvars.iv544, 4294967295 %525 = getelementptr inbounds i16, ptr @_ZL9ArgFPR32s, i64 %524 %526 = load i16, ptr %525, align 2 call void @_ZN4llvm7CCState13MarkAllocatedEt(ptr noundef nonnull align 8 dereferenceable(420) %7, i16 noundef zeroext %526) #31 @@ -99250,8 +99250,8 @@ _ZNK4llvm7CCState19getFirstUnallocatedENS_8ArrayRefItEE.exit.i266: ; preds = %51 br label %531 531: ; preds = %542, %.lr.ph.i.i271 - %indvars.iv549 = phi i64 [ %indvars.iv.next550, %542 ], [ 0, %.lr.ph.i.i271 ] - %532 = getelementptr inbounds i16, ptr @_ZL9ArgFPR64s, i64 %indvars.iv549 + %indvars.iv548 = phi i64 [ %indvars.iv.next549, %542 ], [ 0, %.lr.ph.i.i271 ] + %532 = getelementptr inbounds i16, ptr @_ZL9ArgFPR64s, i64 %indvars.iv548 %533 = load i16, ptr %532, align 2 %534 = zext i16 %533 to i32 %535 = lshr i32 %534, 5 @@ -99265,16 +99265,16 @@ _ZNK4llvm7CCState19getFirstUnallocatedENS_8ArrayRefItEE.exit.i266: ; preds = %51 br i1 %.not.i.i273, label %_ZNK4llvm7CCState19getFirstUnallocatedENS_8ArrayRefItEE.exit.i275, label %542 542: ; preds = %531 - %indvars.iv.next550 = add nuw nsw i64 %indvars.iv549, 1 - %exitcond552.not = icmp eq i64 %indvars.iv.next550, 8 - br i1 %exitcond552.not, label %_ZN4llvm7CCState11AllocateRegENS_8ArrayRefItEE.exit260.thread, label %531, !llvm.loop !868 + %indvars.iv.next549 = add nuw nsw i64 %indvars.iv548, 1 + %exitcond551.not = icmp eq i64 %indvars.iv.next549, 8 + br i1 %exitcond551.not, label %_ZN4llvm7CCState11AllocateRegENS_8ArrayRefItEE.exit260.thread, label %531, !llvm.loop !868 _ZNK4llvm7CCState19getFirstUnallocatedENS_8ArrayRefItEE.exit.i275: ; preds = %531 - %543 = icmp eq i64 %indvars.iv549, 8 + %543 = icmp eq i64 %indvars.iv548, 8 br i1 %543, label %_ZN4llvm7CCState11AllocateRegENS_8ArrayRefItEE.exit260.thread, label %544 544: ; preds = %_ZNK4llvm7CCState19getFirstUnallocatedENS_8ArrayRefItEE.exit.i275 - %545 = and i64 %indvars.iv549, 4294967295 + %545 = and i64 %indvars.iv548, 4294967295 %546 = getelementptr inbounds i16, ptr @_ZL9ArgFPR64s, i64 %545 %547 = load i16, ptr %546, align 2 call void @_ZN4llvm7CCState13MarkAllocatedEt(ptr noundef nonnull align 8 dereferenceable(420) %7, i16 noundef zeroext %547) #31 @@ -99325,12 +99325,12 @@ _ZNK4llvm7CCState19getFirstUnallocatedENS_8ArrayRefItEE.exit.i275: ; preds = %53 %567 = getelementptr inbounds [240 x i16], ptr @_ZZNK4llvm3MVT20getVectorElementTypeEvE10EltTyTable, i64 0, i64 %559 %568 = load i16, ptr %567, align 2 %.pre = zext i16 %568 to i64 - %.pre555 = add nsw i64 %.pre, -1 + %.pre554 = add nsw i64 %.pre, -1 br label %_ZNK4llvm3MVT19getScalarSizeInBitsEv.exit _ZNK4llvm3MVT19getScalarSizeInBitsEv.exit: ; preds = %557, %566 - %.pre-phi556 = phi i64 [ %559, %557 ], [ %.pre555, %566 ] - %569 = getelementptr inbounds [240 x %"class.llvm::TypeSize"], ptr @_ZZNK4llvm3MVT13getSizeInBitsEvE9SizeTable, i64 0, i64 %.pre-phi556 + %.pre-phi555 = phi i64 [ %559, %557 ], [ %.pre554, %566 ] + %569 = getelementptr inbounds [240 x %"class.llvm::TypeSize"], ptr @_ZZNK4llvm3MVT13getSizeInBitsEvE9SizeTable, i64 0, i64 %.pre-phi555 %.sroa.0.0.copyload.i.i285 = load i64, ptr %569, align 16 %570 = lshr i64 %.sroa.0.0.copyload.i.i285, 3 %.not.i286 = icmp ugt i64 %.sroa.0.0.copyload.i.i285, 7 @@ -99355,7 +99355,7 @@ _ZN4llvm7CCState11AllocateRegENS_8ArrayRefItEE.exit260: ; preds = %544, %523, %5 %.0195 = phi i32 [ %575, %.thread450 ], [ %488, %503 ], [ %484, %523 ], [ %484, %544 ] %.2 = phi i32 [ %.1415427434438446455, %.thread450 ], [ %.1415425, %503 ], [ %.1415426, %523 ], [ %.1415426, %544 ] %.not201 = icmp eq i32 %.sroa.0311.0, 0 - br i1 %.not201, label %_ZN4llvm7CCState11AllocateRegENS_8ArrayRefItEE.exit260.thread, label %.thread568 + br i1 %.not201, label %_ZN4llvm7CCState11AllocateRegENS_8ArrayRefItEE.exit260.thread, label %.thread567 _ZN4llvm7CCState11AllocateRegENS_8ArrayRefItEE.exit260.thread: ; preds = %501, %521, %542, %555, %_ZNK4llvm7CCState19getFirstUnallocatedENS_8ArrayRefItEE.exit.i275, %_ZNK4llvm7CCState19getFirstUnallocatedENS_8ArrayRefItEE.exit.i266, %_ZNK4llvm7CCState19getFirstUnallocatedENS_8ArrayRefItEE.exit.i257, %_ZNK4llvm3MVT19getScalarSizeInBitsEv.exit, %_ZN4llvm7CCState11AllocateRegENS_8ArrayRefItEE.exit260 %.2470 = phi i32 [ %.2, %_ZN4llvm7CCState11AllocateRegENS_8ArrayRefItEE.exit260 ], [ 11, %555 ], [ %.1415426, %_ZNK4llvm7CCState19getFirstUnallocatedENS_8ArrayRefItEE.exit.i275 ], [ %.1415426, %_ZNK4llvm7CCState19getFirstUnallocatedENS_8ArrayRefItEE.exit.i266 ], [ %.1415425, %_ZNK4llvm7CCState19getFirstUnallocatedENS_8ArrayRefItEE.exit.i257 ], [ %.1415426, %_ZNK4llvm3MVT19getScalarSizeInBitsEv.exit ], [ %.1415426, %542 ], [ %.1415426, %521 ], [ %.1415425, %501 ] @@ -99393,9 +99393,9 @@ _ZN4llvm7CCState11AllocateRegENS_8ArrayRefItEE.exit260.thread: ; preds = %501, % br label %601 601: ; preds = %592, %582 - %.sink554 = phi i64 [ %590, %582 ], [ %600, %592 ] + %.sink553 = phi i64 [ %590, %582 ], [ %600, %592 ] %.0.i288 = phi i64 [ %591, %582 ], [ %598, %592 ] - store i64 %.sink554, ptr %580, align 8 + store i64 %.sink553, ptr %580, align 8 %602 = getelementptr inbounds nuw i8, ptr %7, i64 56 %.sroa.0.0.copyload.i.i289 = load i8, ptr %602, align 8 %.sroa.speculated.i290 = call i8 @llvm.umax.i8(i8 %.sroa.0310.0463, i8 %.sroa.0.0.copyload.i.i289) @@ -99405,7 +99405,7 @@ _ZN4llvm7CCState11AllocateRegENS_8ArrayRefItEE.exit260.thread: ; preds = %501, % %604 = call noundef zeroext i1 @_ZNK4llvm15SmallVectorBaseIjE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %144) #31 br i1 %604, label %639, label %607 -.thread568: ; preds = %_ZN4llvm7CCState11AllocateRegENS_8ArrayRefItEE.exit260 +.thread567: ; preds = %_ZN4llvm7CCState11AllocateRegENS_8ArrayRefItEE.exit260 %605 = call noundef zeroext i1 @_ZNK4llvm15SmallVectorBaseIjE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %144) #31 br i1 %605, label %.thread495, label %607 @@ -99416,10 +99416,10 @@ _ZN4llvm7CCState11AllocateRegENS_8ArrayRefItEE.exit260.thread: ; preds = %501, % %606 = call noundef zeroext i1 @_ZNK4llvm15SmallVectorBaseIjE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %144) #31 br i1 %606, label %.thread495, label %607 -607: ; preds = %.thread568, %.thread484, %601 - %608 = phi i64 [ 0, %.thread484 ], [ %603, %601 ], [ 0, %.thread568 ] - %.sroa.0311.0464494 = phi i32 [ %.sroa.0311.0.ph474, %.thread484 ], [ 0, %601 ], [ %.sroa.0311.0, %.thread568 ] - %.not201471490 = phi i1 [ false, %.thread484 ], [ true, %601 ], [ false, %.thread568 ] +607: ; preds = %.thread567, %.thread484, %601 + %608 = phi i64 [ 0, %.thread484 ], [ %603, %601 ], [ 0, %.thread567 ] + %.sroa.0311.0464494 = phi i32 [ %.sroa.0311.0.ph474, %.thread484 ], [ 0, %601 ], [ %.sroa.0311.0, %.thread567 ] + %.not201471490 = phi i1 [ false, %.thread484 ], [ true, %601 ], [ false, %.thread567 ] %609 = load ptr, ptr %144, align 8 %610 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %144) #31 %611 = getelementptr inbounds %"class.llvm::CCValAssign", ptr %609, i64 %610 @@ -99477,10 +99477,10 @@ _ZN4llvm11CCValAssign12convertToRegENS_10MCRegisterE.exit: ; preds = %.lr.ph.spl store i32 0, ptr %628, align 8 br label %656 -.thread495: ; preds = %.thread568, %.thread484 - %.2469491502 = phi i32 [ %.2.ph476, %.thread484 ], [ %.2, %.thread568 ] - %.sroa.0346.3466492501 = phi i16 [ %.sroa.0346.3.ph475, %.thread484 ], [ %.sroa.0346.3, %.thread568 ] - %.sroa.0311.0464493500 = phi i32 [ %.sroa.0311.0.ph474, %.thread484 ], [ %.sroa.0311.0, %.thread568 ] +.thread495: ; preds = %.thread567, %.thread484 + %.2469491502 = phi i32 [ %.2.ph476, %.thread484 ], [ %.2, %.thread567 ] + %.sroa.0346.3466492501 = phi i16 [ %.sroa.0346.3.ph475, %.thread484 ], [ %.sroa.0346.3, %.thread567 ] + %.sroa.0311.0464493500 = phi i32 [ %.sroa.0311.0.ph474, %.thread484 ], [ %.sroa.0311.0, %.thread567 ] %629 = getelementptr inbounds nuw i8, ptr %27, i64 8 store i8 0, ptr %629, align 8, !alias.scope !905 %630 = getelementptr inbounds nuw i8, ptr %27, i64 16 diff --git a/bench/nix/optimized/fromTOML.ll b/bench/nix/optimized/fromTOML.ll index ea24270cda5..56f93b2f865 100644 --- a/bench/nix/optimized/fromTOML.ll +++ b/bench/nix/optimized/fromTOML.ll @@ -22696,15 +22696,15 @@ define linkonce_odr void @_ZN4toml6detail11make_stringIN9__gnu_cxx17__normal_ite br label %28 10: ; preds = %3 - %11 = ptrtoint ptr %2 to i64 - %12 = ptrtoint ptr %1 to i64 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #30 - %13 = getelementptr inbounds i8, ptr %0, i64 16 + %11 = getelementptr inbounds i8, ptr %0, i64 16 call void @_ZNSaIcEC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 1 dereferenceable(1) %5) #30 - store ptr %13, ptr %0, align 8 - %14 = getelementptr inbounds i8, ptr %0, i64 8 - store i64 0, ptr %14, align 8 - %15 = sub i64 %11, %12 + store ptr %11, ptr %0, align 8 + %12 = getelementptr inbounds i8, ptr %0, i64 8 + store i64 0, ptr %12, align 8 + %13 = ptrtoint ptr %2 to i64 + %14 = ptrtoint ptr %1 to i64 + %15 = sub i64 %13, %14 %16 = icmp ugt i64 %15, 15 br i1 %16, label %17, label %._crit_edge.i.i @@ -22737,13 +22737,13 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm.exit.i.i: ; .noexc6.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm.exit.i.i store ptr %24, ptr %0, align 8 - store i64 %15, ptr %13, align 8 + store i64 %15, ptr %11, align 8 br label %._crit_edge.i.i ._crit_edge.i.i: ; preds = %.noexc6.i, %10 - %.pre15.i.i = phi ptr [ %24, %.noexc6.i ], [ %13, %10 ] + %.pre15.i.i = phi ptr [ %24, %.noexc6.i ], [ %11, %10 ] call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %.pre15.i.i, ptr align 1 %1, i64 %15, i1 false) - store i64 %15, ptr %14, align 8 + store i64 %15, ptr %12, align 8 %25 = getelementptr inbounds i8, ptr %.pre15.i.i, i64 %15 store i8 0, ptr %25, align 1 br label %27 diff --git a/bench/opencv/optimized/run_length_morphology.cpp.ll b/bench/opencv/optimized/run_length_morphology.cpp.ll index ca2c4dbee5e..360f64f56f5 100644 --- a/bench/opencv/optimized/run_length_morphology.cpp.ll +++ b/bench/opencv/optimized/run_length_morphology.cpp.ll @@ -2818,7 +2818,7 @@ _ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE5clearEv.exit: ; preds = %3, %7 %14 = sub i64 %12, %13 %15 = sdiv exact i64 %14, 12 %16 = icmp eq ptr %10, %11 - br i1 %16, label %186, label %17 + br i1 %16, label %184, label %17 17: ; preds = %_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE5clearEv.exit %18 = getelementptr inbounds i8, ptr %11, i64 8 @@ -2936,14 +2936,14 @@ _ZNSt6vectorIiSaIiEED2Ev.exit165.thread: ; preds = %31 %62 = getelementptr inbounds i8, ptr %61, i64 -4 %63 = load i32, ptr %62, align 4 %64 = sub nsw i32 %63, %59 - %65 = add nsw i32 %64, 1 + %65 = add i32 %64, 1 %66 = sext i32 %65 to i64 %67 = icmp slt i32 %64, -1 br i1 %67, label %68, label %_ZNSt6vectorIiSaIiEE17_S_check_init_lenEmRKS0_.exit.i146 68: ; preds = %._crit_edge250 invoke void @_ZSt20__throw_length_errorPKc(ptr noundef nonnull @.str.7) #18 - to label %.noexc151 unwind label %94 + to label %.noexc151 unwind label %92 .noexc151: ; preds = %68 unreachable @@ -2955,7 +2955,7 @@ _ZNSt6vectorIiSaIiEE17_S_check_init_lenEmRKS0_.exit.i146: ; preds = %._crit_edge 69: ; preds = %_ZNSt6vectorIiSaIiEE17_S_check_init_lenEmRKS0_.exit.i146 %70 = shl nuw nsw i64 %66, 2 %71 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %70) #21 - to label %.noexc152 unwind label %94 + to label %.noexc152 unwind label %92 .noexc152: ; preds = %69 store i32 0, ptr %71, align 4 @@ -2987,56 +2987,54 @@ _ZNSt6vectorIiSaIiEEC2EmRKS0_.exit153.thread: ; preds = %_ZNSt6vectorIiSaIiE %.not127251 = icmp slt i32 %64, 0 %81 = sub i32 %59, %19 %82 = getelementptr inbounds i8, ptr %1, i64 16 - %83 = add i32 %63, 1 - %84 = sub i32 %83, %59 - %wide.trip.count295 = zext i32 %84 to i64 - %wide.trip.count300 = zext i32 %84 to i64 - %wide.trip.count307 = zext i32 %84 to i64 + %wide.trip.count295 = zext i32 %65 to i64 + %wide.trip.count300 = zext i32 %65 to i64 + %wide.trip.count307 = zext i32 %65 to i64 br label %.preheader235 .preheader235: ; preds = %.preheader235.lr.ph, %.thread - %85 = phi ptr [ %8, %.preheader235.lr.ph ], [ %183, %.thread ] - %.2119281 = phi i32 [ %80, %.preheader235.lr.ph ], [ %184, %.thread ] + %83 = phi ptr [ %8, %.preheader235.lr.ph ], [ %181, %.thread ] + %.2119281 = phi i32 [ %80, %.preheader235.lr.ph ], [ %182, %.thread ] %.pre = add i32 %81, %.2119281 br i1 %.not127251, label %.outer.preheader, label %.lr.ph253 -.outer.preheader: ; preds = %86, %.preheader235 +.outer.preheader: ; preds = %84, %.preheader235 br label %.outer -86: ; preds = %.lr.ph253 +84: ; preds = %.lr.ph253 %indvars.iv.next293 = add nuw nsw i64 %indvars.iv292, 1 %exitcond296.not = icmp eq i64 %indvars.iv.next293, %wide.trip.count295 br i1 %exitcond296.not, label %.outer.preheader, label %.lr.ph253, !llvm.loop !72 -.lr.ph253: ; preds = %.preheader235, %86 - %indvars.iv292 = phi i64 [ %indvars.iv.next293, %86 ], [ 0, %.preheader235 ] - %87 = trunc nuw nsw i64 %indvars.iv292 to i32 - %88 = add i32 %.pre, %87 - %89 = sext i32 %88 to i64 - %90 = getelementptr inbounds i32, ptr %.sroa.0206.0217318, i64 %89 - %91 = load i32, ptr %90, align 4 - %92 = getelementptr inbounds i32, ptr %.sroa.0179.0334, i64 %indvars.iv292 - store i32 %91, ptr %92, align 4 - %93 = icmp eq i32 %91, -1 - br i1 %93, label %.thread, label %86 - -94: ; preds = %69, %68 - %95 = landingpad { ptr, i32 } +.lr.ph253: ; preds = %.preheader235, %84 + %indvars.iv292 = phi i64 [ %indvars.iv.next293, %84 ], [ 0, %.preheader235 ] + %85 = trunc nuw nsw i64 %indvars.iv292 to i32 + %86 = add i32 %.pre, %85 + %87 = sext i32 %86 to i64 + %88 = getelementptr inbounds i32, ptr %.sroa.0206.0217318, i64 %87 + %89 = load i32, ptr %88, align 4 + %90 = getelementptr inbounds i32, ptr %.sroa.0179.0334, i64 %indvars.iv292 + store i32 %89, ptr %90, align 4 + %91 = icmp eq i32 %89, -1 + br i1 %91, label %.thread, label %84 + +92: ; preds = %69, %68 + %93 = landingpad { ptr, i32 } cleanup br label %_ZNSt6vectorIiSaIiEED2Ev.exit .lr.ph258: ; preds = %.outer, %.lr.ph258.backedge %indvars.iv297 = phi i64 [ %indvars.iv297.be, %.lr.ph258.backedge ], [ 0, %.outer ] %.0255 = phi i32 [ %.0255.be, %.lr.ph258.backedge ], [ -2147483648, %.outer ] - %96 = getelementptr inbounds i32, ptr %.sroa.0179.0334, i64 %indvars.iv297 - %97 = load i32, ptr %96, align 4 - %98 = sext i32 %97 to i64 - %99 = getelementptr inbounds %"struct.cv::ximgproc::rl::rlType", ptr %181, i64 %98 + %94 = getelementptr inbounds i32, ptr %.sroa.0179.0334, i64 %indvars.iv297 + %95 = load i32, ptr %94, align 4 + %96 = sext i32 %95 to i64 + %97 = getelementptr inbounds %"struct.cv::ximgproc::rl::rlType", ptr %179, i64 %96 + %98 = load i32, ptr %97, align 4 + %99 = getelementptr inbounds %"struct.cv::ximgproc::rl::rlType", ptr %180, i64 %indvars.iv297 %100 = load i32, ptr %99, align 4 - %101 = getelementptr inbounds %"struct.cv::ximgproc::rl::rlType", ptr %182, i64 %indvars.iv297 - %102 = load i32, ptr %101, align 4 - %103 = sub nsw i32 %100, %102 - %.sroa.speculated = tail call i32 @llvm.smax.i32(i32 %.0255, i32 %103) + %101 = sub nsw i32 %98, %100 + %.sroa.speculated = tail call i32 @llvm.smax.i32(i32 %.0255, i32 %101) %indvars.iv.next298 = add nuw nsw i64 %indvars.iv297, 1 %exitcond301.not = icmp eq i64 %indvars.iv.next298, %wide.trip.count300 br i1 %exitcond301.not, label %.preheader, label %.lr.ph258.backedge @@ -3046,219 +3044,219 @@ _ZNSt6vectorIiSaIiEEC2EmRKS0_.exit153.thread: ; preds = %_ZNSt6vectorIiSaIiE %.0255.be = phi i32 [ %.sroa.speculated, %.lr.ph258 ], [ -2147483648, %._crit_edge276 ] br label %.lr.ph258, !llvm.loop !73 -.loopexit: ; preds = %161 +.loopexit: ; preds = %159 %lpad.loopexit = landingpad { ptr, i32 } cleanup - br label %104 + br label %102 -.loopexit.split-lp: ; preds = %155 +.loopexit.split-lp: ; preds = %153 %lpad.loopexit.split-lp = landingpad { ptr, i32 } cleanup - br label %104 + br label %102 -104: ; preds = %.loopexit.split-lp, %.loopexit +102: ; preds = %.loopexit.split-lp, %.loopexit %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] %.not.i.i.i = icmp eq ptr %.sroa.0179.0334, null - br i1 %.not.i.i.i, label %_ZNSt6vectorIiSaIiEED2Ev.exit, label %105 + br i1 %.not.i.i.i, label %_ZNSt6vectorIiSaIiEED2Ev.exit, label %103 -105: ; preds = %104 +103: ; preds = %102 tail call void @_ZdlPv(ptr noundef nonnull %.sroa.0179.0334) #19 br label %_ZNSt6vectorIiSaIiEED2Ev.exit -.preheader: ; preds = %.lr.ph258, %143 - %indvars.iv305 = phi i64 [ %indvars.iv.next306, %143 ], [ 0, %.lr.ph258 ] - %.0104275 = phi i32 [ %.1105, %143 ], [ 2147483647, %.lr.ph258 ] - %.0106274 = phi i32 [ %.1107, %143 ], [ 0, %.lr.ph258 ] - %.0108273 = phi i8 [ %.2110, %143 ], [ 1, %.lr.ph258 ] - %106 = getelementptr inbounds i32, ptr %.sroa.0179.0334, i64 %indvars.iv305 - %107 = getelementptr inbounds %"struct.cv::ximgproc::rl::rlType", ptr %182, i64 %indvars.iv305 - %108 = getelementptr inbounds i8, ptr %107, i64 4 - %109 = load i32, ptr %106, align 4 - %110 = sext i32 %109 to i64 - %111 = getelementptr inbounds %"struct.cv::ximgproc::rl::rlType", ptr %181, i64 %110 - %112 = getelementptr inbounds i8, ptr %111, i64 4 - %113 = load i32, ptr %112, align 4 - %114 = load i32, ptr %108, align 4 - %115 = add nsw i32 %114, %.sroa.speculated - %116 = icmp slt i32 %113, %115 - %117 = trunc nuw nsw i64 %indvars.iv305 to i32 - %118 = add i32 %.pre, %117 - %119 = sext i32 %118 to i64 - br i1 %116, label %.lr.ph259, label %.critedge +.preheader: ; preds = %.lr.ph258, %141 + %indvars.iv305 = phi i64 [ %indvars.iv.next306, %141 ], [ 0, %.lr.ph258 ] + %.0104275 = phi i32 [ %.1105, %141 ], [ 2147483647, %.lr.ph258 ] + %.0106274 = phi i32 [ %.1107, %141 ], [ 0, %.lr.ph258 ] + %.0108273 = phi i8 [ %.2110, %141 ], [ 1, %.lr.ph258 ] + %104 = getelementptr inbounds i32, ptr %.sroa.0179.0334, i64 %indvars.iv305 + %105 = getelementptr inbounds %"struct.cv::ximgproc::rl::rlType", ptr %180, i64 %indvars.iv305 + %106 = getelementptr inbounds i8, ptr %105, i64 4 + %107 = load i32, ptr %104, align 4 + %108 = sext i32 %107 to i64 + %109 = getelementptr inbounds %"struct.cv::ximgproc::rl::rlType", ptr %179, i64 %108 + %110 = getelementptr inbounds i8, ptr %109, i64 4 + %111 = load i32, ptr %110, align 4 + %112 = load i32, ptr %106, align 4 + %113 = add nsw i32 %112, %.sroa.speculated + %114 = icmp slt i32 %111, %113 + %115 = trunc nuw nsw i64 %indvars.iv305 to i32 + %116 = add i32 %.pre, %115 + %117 = sext i32 %116 to i64 + br i1 %114, label %.lr.ph259, label %.critedge .lr.ph259: ; preds = %.preheader - %120 = getelementptr inbounds i32, ptr %.sroa.0195.0320, i64 %119 - %121 = load i32, ptr %120, align 4 - %sext = sext i32 %121 to i64 - %122 = icmp eq i32 %109, %121 - br i1 %122, label %.critedge, label %.lr.ph354 - -123: ; preds = %.lr.ph354 - %124 = icmp eq i64 %indvars.iv.next303, %sext - br i1 %124, label %.critedge, label %.lr.ph354, !llvm.loop !74 - -.lr.ph354: ; preds = %.lr.ph259, %123 - %indvars.iv302353 = phi i64 [ %indvars.iv.next303, %123 ], [ %110, %.lr.ph259 ] + %118 = getelementptr inbounds i32, ptr %.sroa.0195.0320, i64 %117 + %119 = load i32, ptr %118, align 4 + %sext = sext i32 %119 to i64 + %120 = icmp eq i32 %107, %119 + br i1 %120, label %.critedge, label %.lr.ph354 + +121: ; preds = %.lr.ph354 + %122 = icmp eq i64 %indvars.iv.next303, %sext + br i1 %122, label %.critedge, label %.lr.ph354, !llvm.loop !74 + +.lr.ph354: ; preds = %.lr.ph259, %121 + %indvars.iv302353 = phi i64 [ %indvars.iv.next303, %121 ], [ %108, %.lr.ph259 ] %indvars.iv.next303 = add nsw i64 %indvars.iv302353, 1 %indvars = trunc i64 %indvars.iv.next303 to i32 - store i32 %indvars, ptr %106, align 4 - %125 = getelementptr inbounds %"struct.cv::ximgproc::rl::rlType", ptr %181, i64 %indvars.iv.next303 - %126 = getelementptr inbounds i8, ptr %125, i64 4 - %127 = load i32, ptr %126, align 4 - %128 = load i32, ptr %108, align 4 - %129 = add nsw i32 %128, %.sroa.speculated - %130 = icmp slt i32 %127, %129 - br i1 %130, label %123, label %.critedge, !llvm.loop !74 - -.critedge: ; preds = %.lr.ph354, %123, %.lr.ph259, %.preheader - %.lcssa240 = phi i32 [ %109, %.preheader ], [ %121, %.lr.ph259 ], [ %121, %123 ], [ %indvars, %.lr.ph354 ] - %.lcssa239 = phi ptr [ %111, %.preheader ], [ %111, %.lr.ph259 ], [ %125, %123 ], [ %125, %.lr.ph354 ] - %.lcssa238 = phi i32 [ %113, %.preheader ], [ %113, %.lr.ph259 ], [ %127, %123 ], [ %127, %.lr.ph354 ] - %.lcssa = phi i32 [ %114, %.preheader ], [ %114, %.lr.ph259 ], [ %128, %123 ], [ %128, %.lr.ph354 ] - %131 = getelementptr inbounds i32, ptr %.sroa.0195.0320, i64 %119 - %132 = load i32, ptr %131, align 4 - %133 = icmp eq i32 %.lcssa240, %132 - br i1 %133, label %.thread, label %134 - -134: ; preds = %.critedge - %135 = trunc nuw i8 %.0108273 to i1 - br i1 %135, label %136, label %143 - -136: ; preds = %134 - %137 = load i32, ptr %.lcssa239, align 4 - %138 = load i32, ptr %107, align 4 - %139 = sub nsw i32 %137, %138 - %.not130 = icmp sgt i32 %139, %.sroa.speculated - br i1 %.not130, label %143, label %140 - -140: ; preds = %136 - %141 = sub nsw i32 %.lcssa238, %.lcssa - %142 = icmp slt i32 %141, %.0104275 - %spec.select = select i1 %142, i32 %117, i32 %.0106274 - %spec.select135 = tail call i32 @llvm.smin.i32(i32 %141, i32 %.0104275) - br label %143 - -143: ; preds = %140, %136, %134 - %.2110 = phi i8 [ %.0108273, %134 ], [ %.0108273, %140 ], [ 0, %136 ] - %.1107 = phi i32 [ %.0106274, %134 ], [ %spec.select, %140 ], [ %.0106274, %136 ] - %.1105 = phi i32 [ %.0104275, %134 ], [ %spec.select135, %140 ], [ %.0104275, %136 ] + store i32 %indvars, ptr %104, align 4 + %123 = getelementptr inbounds %"struct.cv::ximgproc::rl::rlType", ptr %179, i64 %indvars.iv.next303 + %124 = getelementptr inbounds i8, ptr %123, i64 4 + %125 = load i32, ptr %124, align 4 + %126 = load i32, ptr %106, align 4 + %127 = add nsw i32 %126, %.sroa.speculated + %128 = icmp slt i32 %125, %127 + br i1 %128, label %121, label %.critedge, !llvm.loop !74 + +.critedge: ; preds = %.lr.ph354, %121, %.lr.ph259, %.preheader + %.lcssa240 = phi i32 [ %107, %.preheader ], [ %119, %.lr.ph259 ], [ %119, %121 ], [ %indvars, %.lr.ph354 ] + %.lcssa239 = phi ptr [ %109, %.preheader ], [ %109, %.lr.ph259 ], [ %123, %121 ], [ %123, %.lr.ph354 ] + %.lcssa238 = phi i32 [ %111, %.preheader ], [ %111, %.lr.ph259 ], [ %125, %121 ], [ %125, %.lr.ph354 ] + %.lcssa = phi i32 [ %112, %.preheader ], [ %112, %.lr.ph259 ], [ %126, %121 ], [ %126, %.lr.ph354 ] + %129 = getelementptr inbounds i32, ptr %.sroa.0195.0320, i64 %117 + %130 = load i32, ptr %129, align 4 + %131 = icmp eq i32 %.lcssa240, %130 + br i1 %131, label %.thread, label %132 + +132: ; preds = %.critedge + %133 = trunc nuw i8 %.0108273 to i1 + br i1 %133, label %134, label %141 + +134: ; preds = %132 + %135 = load i32, ptr %.lcssa239, align 4 + %136 = load i32, ptr %105, align 4 + %137 = sub nsw i32 %135, %136 + %.not130 = icmp sgt i32 %137, %.sroa.speculated + br i1 %.not130, label %141, label %138 + +138: ; preds = %134 + %139 = sub nsw i32 %.lcssa238, %.lcssa + %140 = icmp slt i32 %139, %.0104275 + %spec.select = select i1 %140, i32 %115, i32 %.0106274 + %spec.select135 = tail call i32 @llvm.smin.i32(i32 %139, i32 %.0104275) + br label %141 + +141: ; preds = %138, %134, %132 + %.2110 = phi i8 [ %.0108273, %132 ], [ %.0108273, %138 ], [ 0, %134 ] + %.1107 = phi i32 [ %.0106274, %132 ], [ %spec.select, %138 ], [ %.0106274, %134 ] + %.1105 = phi i32 [ %.0104275, %132 ], [ %spec.select135, %138 ], [ %.0104275, %134 ] %indvars.iv.next306 = add nuw nsw i64 %indvars.iv305, 1 %exitcond308.not = icmp eq i64 %indvars.iv.next306, %wide.trip.count307 br i1 %exitcond308.not, label %._crit_edge276, label %.preheader, !llvm.loop !75 -._crit_edge276: ; preds = %143 - %144 = trunc nuw i8 %.2110 to i1 - br i1 %144, label %._crit_edge276.thread, label %.lr.ph258.backedge +._crit_edge276: ; preds = %141 + %142 = trunc nuw i8 %.2110 to i1 + br i1 %142, label %._crit_edge276.thread, label %.lr.ph258.backedge ._crit_edge276.thread: ; preds = %._crit_edge276, %.outer %.0104.lcssa329 = phi i32 [ 2147483647, %.outer ], [ %.1105, %._crit_edge276 ] %.0106.lcssa328 = phi i32 [ 0, %.outer ], [ %.1107, %._crit_edge276 ] %.0.lcssa322327 = phi i32 [ -2147483648, %.outer ], [ %.sroa.speculated, %._crit_edge276 ] - %145 = load ptr, ptr %82, align 8 - %.not.i.i154 = icmp eq ptr %.ph, %145 - br i1 %.not.i.i154, label %149, label %146 + %143 = load ptr, ptr %82, align 8 + %.not.i.i154 = icmp eq ptr %.ph, %143 + br i1 %.not.i.i154, label %147, label %144 -146: ; preds = %._crit_edge276.thread +144: ; preds = %._crit_edge276.thread store i32 %.0.lcssa322327, ptr %.ph, align 4 %.sroa.3.0..sroa_idx = getelementptr inbounds i8, ptr %.ph, i64 4 store i32 %.0104.lcssa329, ptr %.sroa.3.0..sroa_idx, align 4 %.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %.ph, i64 8 store i32 %.2119281, ptr %.sroa.4.0..sroa_idx, align 4 - %147 = load ptr, ptr %5, align 8 - %148 = getelementptr inbounds i8, ptr %147, i64 12 - store ptr %148, ptr %5, align 8 + %145 = load ptr, ptr %5, align 8 + %146 = getelementptr inbounds i8, ptr %145, i64 12 + store ptr %146, ptr %5, align 8 br label %_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE9push_backEOS3_.exit -149: ; preds = %._crit_edge276.thread - %150 = load ptr, ptr %1, align 8 - %151 = ptrtoint ptr %.ph to i64 - %152 = ptrtoint ptr %150 to i64 - %153 = sub i64 %151, %152 - %154 = icmp eq i64 %153, 9223372036854775800 - br i1 %154, label %155, label %_ZNKSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE12_M_check_lenEmPKc.exit.i.i.i +147: ; preds = %._crit_edge276.thread + %148 = load ptr, ptr %1, align 8 + %149 = ptrtoint ptr %.ph to i64 + %150 = ptrtoint ptr %148 to i64 + %151 = sub i64 %149, %150 + %152 = icmp eq i64 %151, 9223372036854775800 + br i1 %152, label %153, label %_ZNKSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE12_M_check_lenEmPKc.exit.i.i.i -155: ; preds = %149 +153: ; preds = %147 invoke void @_ZSt20__throw_length_errorPKc(ptr noundef nonnull @.str.6) #18 to label %.noexc156 unwind label %.loopexit.split-lp -.noexc156: ; preds = %155 +.noexc156: ; preds = %153 unreachable -_ZNKSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE12_M_check_lenEmPKc.exit.i.i.i: ; preds = %149 - %156 = sdiv exact i64 %153, 12 - %.sroa.speculated.i.i.i.i = tail call i64 @llvm.umax.i64(i64 %156, i64 1) - %157 = add nsw i64 %.sroa.speculated.i.i.i.i, %156 - %158 = icmp ult i64 %157, %156 - %159 = tail call i64 @llvm.umin.i64(i64 %157, i64 768614336404564650) - %160 = select i1 %158, i64 768614336404564650, i64 %159 - %.not.i.i.i.i155 = icmp eq i64 %160, 0 - br i1 %.not.i.i.i.i155, label %_ZNSt12_Vector_baseIN2cv8ximgproc2rl6rlTypeESaIS3_EE11_M_allocateEm.exit.i.i.i, label %161 - -161: ; preds = %_ZNKSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE12_M_check_lenEmPKc.exit.i.i.i - %162 = mul nuw nsw i64 %160, 12 - %163 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %162) #21 +_ZNKSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE12_M_check_lenEmPKc.exit.i.i.i: ; preds = %147 + %154 = sdiv exact i64 %151, 12 + %.sroa.speculated.i.i.i.i = tail call i64 @llvm.umax.i64(i64 %154, i64 1) + %155 = add nsw i64 %.sroa.speculated.i.i.i.i, %154 + %156 = icmp ult i64 %155, %154 + %157 = tail call i64 @llvm.umin.i64(i64 %155, i64 768614336404564650) + %158 = select i1 %156, i64 768614336404564650, i64 %157 + %.not.i.i.i.i155 = icmp eq i64 %158, 0 + br i1 %.not.i.i.i.i155, label %_ZNSt12_Vector_baseIN2cv8ximgproc2rl6rlTypeESaIS3_EE11_M_allocateEm.exit.i.i.i, label %159 + +159: ; preds = %_ZNKSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE12_M_check_lenEmPKc.exit.i.i.i + %160 = mul nuw nsw i64 %158, 12 + %161 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %160) #21 to label %_ZNSt12_Vector_baseIN2cv8ximgproc2rl6rlTypeESaIS3_EE11_M_allocateEm.exit.i.i.i unwind label %.loopexit -_ZNSt12_Vector_baseIN2cv8ximgproc2rl6rlTypeESaIS3_EE11_M_allocateEm.exit.i.i.i: ; preds = %161, %_ZNKSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE12_M_check_lenEmPKc.exit.i.i.i - %164 = phi ptr [ null, %_ZNKSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE12_M_check_lenEmPKc.exit.i.i.i ], [ %163, %161 ] - %165 = getelementptr inbounds %"struct.cv::ximgproc::rl::rlType", ptr %164, i64 %156 - store i32 %.0.lcssa322327, ptr %165, align 4 - %.sroa.3.0..sroa_idx169 = getelementptr inbounds i8, ptr %165, i64 4 +_ZNSt12_Vector_baseIN2cv8ximgproc2rl6rlTypeESaIS3_EE11_M_allocateEm.exit.i.i.i: ; preds = %159, %_ZNKSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE12_M_check_lenEmPKc.exit.i.i.i + %162 = phi ptr [ null, %_ZNKSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE12_M_check_lenEmPKc.exit.i.i.i ], [ %161, %159 ] + %163 = getelementptr inbounds %"struct.cv::ximgproc::rl::rlType", ptr %162, i64 %154 + store i32 %.0.lcssa322327, ptr %163, align 4 + %.sroa.3.0..sroa_idx169 = getelementptr inbounds i8, ptr %163, i64 4 store i32 %.0104.lcssa329, ptr %.sroa.3.0..sroa_idx169, align 4 - %.sroa.4.0..sroa_idx171 = getelementptr inbounds i8, ptr %165, i64 8 + %.sroa.4.0..sroa_idx171 = getelementptr inbounds i8, ptr %163, i64 8 store i32 %.2119281, ptr %.sroa.4.0..sroa_idx171, align 4 - %.not10.i.i.i.i.i.i.i = icmp eq ptr %150, %.ph + %.not10.i.i.i.i.i.i.i = icmp eq ptr %148, %.ph br i1 %.not10.i.i.i.i.i.i.i, label %_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE11_S_relocateEPS3_S6_S6_RS4_.exit22.i.i.i, label %.lr.ph.i.i.i.i.i.i.i .lr.ph.i.i.i.i.i.i.i: ; preds = %_ZNSt12_Vector_baseIN2cv8ximgproc2rl6rlTypeESaIS3_EE11_M_allocateEm.exit.i.i.i, %.lr.ph.i.i.i.i.i.i.i - %.012.i.i.i.i.i.i.i = phi ptr [ %167, %.lr.ph.i.i.i.i.i.i.i ], [ %164, %_ZNSt12_Vector_baseIN2cv8ximgproc2rl6rlTypeESaIS3_EE11_M_allocateEm.exit.i.i.i ] - %.0911.i.i.i.i.i.i.i = phi ptr [ %166, %.lr.ph.i.i.i.i.i.i.i ], [ %150, %_ZNSt12_Vector_baseIN2cv8ximgproc2rl6rlTypeESaIS3_EE11_M_allocateEm.exit.i.i.i ] + %.012.i.i.i.i.i.i.i = phi ptr [ %165, %.lr.ph.i.i.i.i.i.i.i ], [ %162, %_ZNSt12_Vector_baseIN2cv8ximgproc2rl6rlTypeESaIS3_EE11_M_allocateEm.exit.i.i.i ] + %.0911.i.i.i.i.i.i.i = phi ptr [ %164, %.lr.ph.i.i.i.i.i.i.i ], [ %148, %_ZNSt12_Vector_baseIN2cv8ximgproc2rl6rlTypeESaIS3_EE11_M_allocateEm.exit.i.i.i ] tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.012.i.i.i.i.i.i.i, ptr noundef nonnull align 4 dereferenceable(12) %.0911.i.i.i.i.i.i.i, i64 12, i1 false), !alias.scope !76 - %166 = getelementptr inbounds i8, ptr %.0911.i.i.i.i.i.i.i, i64 12 - %167 = getelementptr inbounds i8, ptr %.012.i.i.i.i.i.i.i, i64 12 - %.not.i.i.i.i.i.i.i = icmp eq ptr %166, %.ph + %164 = getelementptr inbounds i8, ptr %.0911.i.i.i.i.i.i.i, i64 12 + %165 = getelementptr inbounds i8, ptr %.012.i.i.i.i.i.i.i, i64 12 + %.not.i.i.i.i.i.i.i = icmp eq ptr %164, %.ph br i1 %.not.i.i.i.i.i.i.i, label %_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE11_S_relocateEPS3_S6_S6_RS4_.exit22.i.i.i, label %.lr.ph.i.i.i.i.i.i.i, !llvm.loop !44 _ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE11_S_relocateEPS3_S6_S6_RS4_.exit22.i.i.i: ; preds = %.lr.ph.i.i.i.i.i.i.i, %_ZNSt12_Vector_baseIN2cv8ximgproc2rl6rlTypeESaIS3_EE11_M_allocateEm.exit.i.i.i - %.0.lcssa.i.i.i.i.i.i.i = phi ptr [ %164, %_ZNSt12_Vector_baseIN2cv8ximgproc2rl6rlTypeESaIS3_EE11_M_allocateEm.exit.i.i.i ], [ %167, %.lr.ph.i.i.i.i.i.i.i ] - %168 = getelementptr inbounds i8, ptr %.0.lcssa.i.i.i.i.i.i.i, i64 12 - %.not.i23.i.i.i = icmp eq ptr %150, null - br i1 %.not.i23.i.i.i, label %_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_.exit.i.i, label %169 + %.0.lcssa.i.i.i.i.i.i.i = phi ptr [ %162, %_ZNSt12_Vector_baseIN2cv8ximgproc2rl6rlTypeESaIS3_EE11_M_allocateEm.exit.i.i.i ], [ %165, %.lr.ph.i.i.i.i.i.i.i ] + %166 = getelementptr inbounds i8, ptr %.0.lcssa.i.i.i.i.i.i.i, i64 12 + %.not.i23.i.i.i = icmp eq ptr %148, null + br i1 %.not.i23.i.i.i, label %_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_.exit.i.i, label %167 -169: ; preds = %_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE11_S_relocateEPS3_S6_S6_RS4_.exit22.i.i.i - tail call void @_ZdlPv(ptr noundef nonnull %150) #19 +167: ; preds = %_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE11_S_relocateEPS3_S6_S6_RS4_.exit22.i.i.i + tail call void @_ZdlPv(ptr noundef nonnull %148) #19 br label %_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_.exit.i.i -_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_.exit.i.i: ; preds = %169, %_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE11_S_relocateEPS3_S6_S6_RS4_.exit22.i.i.i - store ptr %164, ptr %1, align 8 - store ptr %168, ptr %5, align 8 - %170 = getelementptr inbounds %"struct.cv::ximgproc::rl::rlType", ptr %164, i64 %160 - store ptr %170, ptr %82, align 8 +_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_.exit.i.i: ; preds = %167, %_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE11_S_relocateEPS3_S6_S6_RS4_.exit22.i.i.i + store ptr %162, ptr %1, align 8 + store ptr %166, ptr %5, align 8 + %168 = getelementptr inbounds %"struct.cv::ximgproc::rl::rlType", ptr %162, i64 %158 + store ptr %168, ptr %82, align 8 br label %_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE9push_backEOS3_.exit -_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE9push_backEOS3_.exit: ; preds = %_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_.exit.i.i, %146 - %171 = phi ptr [ %168, %_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_.exit.i.i ], [ %148, %146 ] - %172 = sext i32 %.0106.lcssa328 to i64 - %173 = getelementptr inbounds i32, ptr %.sroa.0179.0334, i64 %172 - %174 = load i32, ptr %173, align 4 - %175 = add nsw i32 %174, 1 - store i32 %175, ptr %173, align 4 - %176 = add i32 %.pre, %.0106.lcssa328 - %177 = sext i32 %176 to i64 - %178 = getelementptr inbounds i32, ptr %.sroa.0195.0320, i64 %177 - %179 = load i32, ptr %178, align 4 - %180 = icmp eq i32 %175, %179 - br i1 %180, label %.thread, label %.outer +_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE9push_backEOS3_.exit: ; preds = %_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_.exit.i.i, %144 + %169 = phi ptr [ %166, %_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_.exit.i.i ], [ %146, %144 ] + %170 = sext i32 %.0106.lcssa328 to i64 + %171 = getelementptr inbounds i32, ptr %.sroa.0179.0334, i64 %170 + %172 = load i32, ptr %171, align 4 + %173 = add nsw i32 %172, 1 + store i32 %173, ptr %171, align 4 + %174 = add i32 %.pre, %.0106.lcssa328 + %175 = sext i32 %174 to i64 + %176 = getelementptr inbounds i32, ptr %.sroa.0195.0320, i64 %175 + %177 = load i32, ptr %176, align 4 + %178 = icmp eq i32 %173, %177 + br i1 %178, label %.thread, label %.outer .outer: ; preds = %.outer.preheader, %_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE9push_backEOS3_.exit - %.ph = phi ptr [ %171, %_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE9push_backEOS3_.exit ], [ %85, %.outer.preheader ] - %181 = load ptr, ptr %0, align 8 - %182 = load ptr, ptr %2, align 8 + %.ph = phi ptr [ %169, %_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE9push_backEOS3_.exit ], [ %83, %.outer.preheader ] + %179 = load ptr, ptr %0, align 8 + %180 = load ptr, ptr %2, align 8 br i1 %.not127251, label %._crit_edge276.thread, label %.lr.ph258 .thread: ; preds = %.lr.ph253, %_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE9push_backEOS3_.exit, %.critedge - %183 = phi ptr [ %.ph, %.critedge ], [ %171, %_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE9push_backEOS3_.exit ], [ %85, %.lr.ph253 ] - %184 = add nsw i32 %.2119281, 1 + %181 = phi ptr [ %.ph, %.critedge ], [ %169, %_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE9push_backEOS3_.exit ], [ %83, %.lr.ph253 ] + %182 = add nsw i32 %.2119281, 1 %.not126.not = icmp slt i32 %.2119281, %79 br i1 %.not126.not, label %.preheader235, label %._crit_edge282, !llvm.loop !80 @@ -3269,31 +3267,31 @@ _ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE9push_backEOS3_.exit: ; preds = %_Z _ZNSt6vectorIiSaIiEED2Ev.exit159: ; preds = %_ZNSt6vectorIiSaIiEEC2EmRKS0_.exit153.thread, %._crit_edge282 %.not.i.i.i160 = icmp eq ptr %.sroa.0195.0320, null - br i1 %.not.i.i.i160, label %_ZNSt6vectorIiSaIiEED2Ev.exit163, label %185 + br i1 %.not.i.i.i160, label %_ZNSt6vectorIiSaIiEED2Ev.exit163, label %183 -185: ; preds = %_ZNSt6vectorIiSaIiEED2Ev.exit159 +183: ; preds = %_ZNSt6vectorIiSaIiEED2Ev.exit159 tail call void @_ZdlPv(ptr noundef nonnull %.sroa.0195.0320) #19 br label %_ZNSt6vectorIiSaIiEED2Ev.exit163 -_ZNSt6vectorIiSaIiEED2Ev.exit163: ; preds = %_ZNSt6vectorIiSaIiEED2Ev.exit159, %185 +_ZNSt6vectorIiSaIiEED2Ev.exit163: ; preds = %_ZNSt6vectorIiSaIiEED2Ev.exit159, %183 tail call void @_ZdlPv(ptr noundef nonnull %.sroa.0206.0217318) #19 - br label %186 + br label %184 -186: ; preds = %_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE5clearEv.exit, %_ZNSt6vectorIiSaIiEED2Ev.exit163 +184: ; preds = %_ZNSt6vectorIN2cv8ximgproc2rl6rlTypeESaIS3_EE5clearEv.exit, %_ZNSt6vectorIiSaIiEED2Ev.exit163 ret void -_ZNSt6vectorIiSaIiEED2Ev.exit: ; preds = %105, %104, %94 - %.pn = phi { ptr, i32 } [ %95, %94 ], [ %lpad.phi, %104 ], [ %lpad.phi, %105 ] +_ZNSt6vectorIiSaIiEED2Ev.exit: ; preds = %103, %102, %92 + %.pn = phi { ptr, i32 } [ %93, %92 ], [ %lpad.phi, %102 ], [ %lpad.phi, %103 ] %.not.i.i.i164 = icmp eq ptr %.sroa.0195.0320, null - br i1 %.not.i.i.i164, label %_ZNSt6vectorIiSaIiEED2Ev.exit165, label %187 + br i1 %.not.i.i.i164, label %_ZNSt6vectorIiSaIiEED2Ev.exit165, label %185 -187: ; preds = %_ZNSt6vectorIiSaIiEED2Ev.exit +185: ; preds = %_ZNSt6vectorIiSaIiEED2Ev.exit tail call void @_ZdlPv(ptr noundef nonnull %.sroa.0195.0320) #19 br label %_ZNSt6vectorIiSaIiEED2Ev.exit165 -_ZNSt6vectorIiSaIiEED2Ev.exit165: ; preds = %_ZNSt6vectorIiSaIiEED2Ev.exit, %187, %_ZNSt6vectorIiSaIiEED2Ev.exit165.thread - %.pn.pn230 = phi { ptr, i32 } [ %39, %_ZNSt6vectorIiSaIiEED2Ev.exit165.thread ], [ %.pn, %187 ], [ %.pn, %_ZNSt6vectorIiSaIiEED2Ev.exit ] - %.sroa.0206.0216229 = phi ptr [ %27, %_ZNSt6vectorIiSaIiEED2Ev.exit165.thread ], [ %.sroa.0206.0217318, %187 ], [ %.sroa.0206.0217318, %_ZNSt6vectorIiSaIiEED2Ev.exit ] +_ZNSt6vectorIiSaIiEED2Ev.exit165: ; preds = %_ZNSt6vectorIiSaIiEED2Ev.exit, %185, %_ZNSt6vectorIiSaIiEED2Ev.exit165.thread + %.pn.pn230 = phi { ptr, i32 } [ %39, %_ZNSt6vectorIiSaIiEED2Ev.exit165.thread ], [ %.pn, %185 ], [ %.pn, %_ZNSt6vectorIiSaIiEED2Ev.exit ] + %.sroa.0206.0216229 = phi ptr [ %27, %_ZNSt6vectorIiSaIiEED2Ev.exit165.thread ], [ %.sroa.0206.0217318, %185 ], [ %.sroa.0206.0217318, %_ZNSt6vectorIiSaIiEED2Ev.exit ] tail call void @_ZdlPv(ptr noundef nonnull %.sroa.0206.0216229) #19 resume { ptr, i32 } %.pn.pn230 } diff --git a/bench/openssl/optimized/libcrypto-lib-cbc128.ll b/bench/openssl/optimized/libcrypto-lib-cbc128.ll index 348e6aca9bc..3c98e25cd93 100644 --- a/bench/openssl/optimized/libcrypto-lib-cbc128.ll +++ b/bench/openssl/optimized/libcrypto-lib-cbc128.ll @@ -43,10 +43,10 @@ while.cond7: ; preds = %for.cond.preheader br i1 %tobool.not, label %while.end36, label %for.body12.preheader for.body12.preheader: ; preds = %while.cond.preheader, %while.cond7 - %iv.0.lcssa64 = phi ptr [ %out.addr.046, %while.cond7 ], [ %ivec, %while.cond.preheader ] - %in.addr.0.lcssa63 = phi ptr [ %add.ptr5, %while.cond7 ], [ %in, %while.cond.preheader ] - %out.addr.0.lcssa62 = phi ptr [ %add.ptr6, %while.cond7 ], [ %out, %while.cond.preheader ] - %len.addr.0.lcssa61 = phi i64 [ %sub, %while.cond7 ], [ %len, %while.cond.preheader ] + %iv.0.lcssa65 = phi ptr [ %out.addr.046, %while.cond7 ], [ %ivec, %while.cond.preheader ] + %in.addr.0.lcssa64 = phi ptr [ %add.ptr5, %while.cond7 ], [ %in, %while.cond.preheader ] + %out.addr.0.lcssa63 = phi ptr [ %add.ptr6, %while.cond7 ], [ %out, %while.cond.preheader ] + %len.addr.0.lcssa62 = phi i64 [ %sub, %while.cond7 ], [ %len, %while.cond.preheader ] br label %for.body12 for.cond20.preheader: ; preds = %for.body12 @@ -55,33 +55,33 @@ for.cond20.preheader: ; preds = %for.body12 for.body12: ; preds = %for.body12.preheader, %for.body12 %n.152 = phi i64 [ %inc, %for.body12 ], [ 0, %for.body12.preheader ] - %arrayidx = getelementptr inbounds i8, ptr %in.addr.0.lcssa63, i64 %n.152 + %arrayidx = getelementptr inbounds i8, ptr %in.addr.0.lcssa64, i64 %n.152 %4 = load i8, ptr %arrayidx, align 1 - %arrayidx13 = getelementptr inbounds i8, ptr %iv.0.lcssa64, i64 %n.152 + %arrayidx13 = getelementptr inbounds i8, ptr %iv.0.lcssa65, i64 %n.152 %5 = load i8, ptr %arrayidx13, align 1 %xor1542 = xor i8 %5, %4 - %arrayidx17 = getelementptr inbounds i8, ptr %out.addr.0.lcssa62, i64 %n.152 + %arrayidx17 = getelementptr inbounds i8, ptr %out.addr.0.lcssa63, i64 %n.152 store i8 %xor1542, ptr %arrayidx17, align 1 %inc = add nuw nsw i64 %n.152, 1 - %exitcond.not = icmp eq i64 %inc, %len.addr.0.lcssa61 + %exitcond.not = icmp eq i64 %inc, %len.addr.0.lcssa62 br i1 %exitcond.not, label %for.cond20.preheader, label %for.body12, !llvm.loop !6 for.body23: ; preds = %for.cond20.preheader, %for.body23 - %n.254 = phi i64 [ %inc27, %for.body23 ], [ %len.addr.0.lcssa61, %for.cond20.preheader ] - %arrayidx24 = getelementptr inbounds i8, ptr %iv.0.lcssa64, i64 %n.254 + %n.254 = phi i64 [ %inc27, %for.body23 ], [ %len.addr.0.lcssa62, %for.cond20.preheader ] + %arrayidx24 = getelementptr inbounds i8, ptr %iv.0.lcssa65, i64 %n.254 %6 = load i8, ptr %arrayidx24, align 1 - %arrayidx25 = getelementptr inbounds i8, ptr %out.addr.0.lcssa62, i64 %n.254 + %arrayidx25 = getelementptr inbounds i8, ptr %out.addr.0.lcssa63, i64 %n.254 store i8 %6, ptr %arrayidx25, align 1 - %inc27 = add nuw nsw i64 %n.254, 1 - %cmp21 = icmp samesign ult i64 %n.254, 15 - br i1 %cmp21, label %for.body23, label %for.end28, !llvm.loop !7 + %inc27 = add i64 %n.254, 1 + %exitcond56.not = icmp eq i64 %inc27, 16 + br i1 %exitcond56.not, label %for.end28, label %for.body23, !llvm.loop !7 for.end28: ; preds = %for.body23, %for.cond20.preheader - tail call void %block(ptr noundef nonnull %out.addr.0.lcssa62, ptr noundef nonnull %out.addr.0.lcssa62, ptr noundef %key) #2 + tail call void %block(ptr noundef nonnull %out.addr.0.lcssa63, ptr noundef nonnull %out.addr.0.lcssa63, ptr noundef %key) #2 br label %while.end36 while.end36: ; preds = %for.end28, %while.cond7 - %iv.2 = phi ptr [ %out.addr.0.lcssa62, %for.end28 ], [ %out.addr.046, %while.cond7 ] + %iv.2 = phi ptr [ %out.addr.0.lcssa63, %for.end28 ], [ %out.addr.046, %while.cond7 ] %cmp37.not = icmp eq ptr %ivec, %iv.2 br i1 %cmp37.not, label %if.end40, label %if.then39 diff --git a/bench/openssl/optimized/libcrypto-lib-ccm128.ll b/bench/openssl/optimized/libcrypto-lib-ccm128.ll index 5bb95f9e40c..8d471e8bd3f 100644 --- a/bench/openssl/optimized/libcrypto-lib-ccm128.ll +++ b/bench/openssl/optimized/libcrypto-lib-ccm128.ll @@ -398,18 +398,16 @@ for.cond66.preheader: ; preds = %while.end br label %for.body70 for.body70: ; preds = %for.cond66.preheader, %for.body70 - %conv6787 = phi i64 [ 0, %for.cond66.preheader ], [ %conv67, %for.body70 ] - %i.186 = phi i32 [ 0, %for.cond66.preheader ], [ %inc81, %for.body70 ] - %arrayidx72 = getelementptr inbounds i8, ptr %inp.addr.0.lcssa, i64 %conv6787 + %indvars.iv93 = phi i64 [ 0, %for.cond66.preheader ], [ %indvars.iv.next94, %for.body70 ] + %arrayidx72 = getelementptr inbounds i8, ptr %inp.addr.0.lcssa, i64 %indvars.iv93 %18 = load i8, ptr %arrayidx72, align 1 - %arrayidx76 = getelementptr inbounds [16 x i8], ptr %cmac74, i64 0, i64 %conv6787 + %arrayidx76 = getelementptr inbounds [16 x i8], ptr %cmac74, i64 0, i64 %indvars.iv93 %19 = load i8, ptr %arrayidx76, align 1 %xor7875 = xor i8 %19, %18 store i8 %xor7875, ptr %arrayidx76, align 1 - %inc81 = add i32 %i.186, 1 - %conv67 = zext i32 %inc81 to i64 - %cmp68 = icmp samesign ugt i64 %len.addr.0.lcssa, %conv67 - br i1 %cmp68, label %for.body70, label %for.end82, !llvm.loop !10 + %indvars.iv.next94 = add nuw i64 %indvars.iv93, 1 + %exitcond96.not = icmp eq i64 %indvars.iv.next94, %len.addr.0.lcssa + br i1 %exitcond96.not, label %for.end82, label %for.body70, !llvm.loop !10 for.end82: ; preds = %for.body70 call void %1(ptr noundef nonnull %cmac74, ptr noundef nonnull %cmac74, ptr noundef %2) #6 @@ -417,19 +415,17 @@ for.end82: ; preds = %for.body70 br label %for.body94 for.body94: ; preds = %for.end82, %for.body94 - %conv9189 = phi i64 [ 0, %for.end82 ], [ %conv91, %for.body94 ] - %i.288 = phi i32 [ 0, %for.end82 ], [ %inc106, %for.body94 ] - %arrayidx96 = getelementptr inbounds [16 x i8], ptr %scratch, i64 0, i64 %conv9189 + %indvars.iv97 = phi i64 [ 0, %for.end82 ], [ %indvars.iv.next98, %for.body94 ] + %arrayidx96 = getelementptr inbounds [16 x i8], ptr %scratch, i64 0, i64 %indvars.iv97 %20 = load i8, ptr %arrayidx96, align 1 - %arrayidx99 = getelementptr inbounds i8, ptr %inp.addr.0.lcssa, i64 %conv9189 + %arrayidx99 = getelementptr inbounds i8, ptr %inp.addr.0.lcssa, i64 %indvars.iv97 %21 = load i8, ptr %arrayidx99, align 1 %xor10174 = xor i8 %21, %20 - %arrayidx104 = getelementptr inbounds i8, ptr %out.addr.0.lcssa, i64 %conv9189 + %arrayidx104 = getelementptr inbounds i8, ptr %out.addr.0.lcssa, i64 %indvars.iv97 store i8 %xor10174, ptr %arrayidx104, align 1 - %inc106 = add i32 %i.288, 1 - %conv91 = zext i32 %inc106 to i64 - %cmp92 = icmp samesign ugt i64 %len.addr.0.lcssa, %conv91 - br i1 %cmp92, label %for.body94, label %for.end119, !llvm.loop !11 + %indvars.iv.next98 = add nuw i64 %indvars.iv97, 1 + %exitcond100.not = icmp eq i64 %indvars.iv.next98, %len.addr.0.lcssa + br i1 %exitcond100.not, label %for.end119, label %for.body94, !llvm.loop !11 for.end119: ; preds = %for.body94, %while.end %22 = zext nneg i32 %sub to i64 @@ -581,23 +577,21 @@ if.then54: ; preds = %while.end br label %for.body62 for.body62: ; preds = %if.then54, %for.body62 - %conv5976 = phi i64 [ 0, %if.then54 ], [ %conv59, %for.body62 ] - %i.175 = phi i32 [ 0, %if.then54 ], [ %inc81, %for.body62 ] - %arrayidx64 = getelementptr inbounds [16 x i8], ptr %scratch, i64 0, i64 %conv5976 + %indvars.iv80 = phi i64 [ 0, %if.then54 ], [ %indvars.iv.next81, %for.body62 ] + %arrayidx64 = getelementptr inbounds [16 x i8], ptr %scratch, i64 0, i64 %indvars.iv80 %14 = load i8, ptr %arrayidx64, align 1 - %arrayidx67 = getelementptr inbounds i8, ptr %inp.addr.0.lcssa, i64 %conv5976 + %arrayidx67 = getelementptr inbounds i8, ptr %inp.addr.0.lcssa, i64 %indvars.iv80 %15 = load i8, ptr %arrayidx67, align 1 %xor6963 = xor i8 %15, %14 - %arrayidx72 = getelementptr inbounds i8, ptr %out.addr.0.lcssa, i64 %conv5976 + %arrayidx72 = getelementptr inbounds i8, ptr %out.addr.0.lcssa, i64 %indvars.iv80 store i8 %xor6963, ptr %arrayidx72, align 1 - %arrayidx76 = getelementptr inbounds [16 x i8], ptr %cmac74, i64 0, i64 %conv5976 + %arrayidx76 = getelementptr inbounds [16 x i8], ptr %cmac74, i64 0, i64 %indvars.iv80 %16 = load i8, ptr %arrayidx76, align 1 %xor7864 = xor i8 %16, %xor6963 store i8 %xor7864, ptr %arrayidx76, align 1 - %inc81 = add i32 %i.175, 1 - %conv59 = zext i32 %inc81 to i64 - %cmp60 = icmp samesign ugt i64 %len.addr.0.lcssa, %conv59 - br i1 %cmp60, label %for.body62, label %for.end82, !llvm.loop !14 + %indvars.iv.next81 = add nuw i64 %indvars.iv80, 1 + %exitcond83.not = icmp eq i64 %indvars.iv.next81, %len.addr.0.lcssa + br i1 %exitcond83.not, label %for.end82, label %for.body62, !llvm.loop !14 for.end82: ; preds = %for.body62 call void %1(ptr noundef nonnull %cmac74, ptr noundef nonnull %cmac74, ptr noundef %2) #6 diff --git a/bench/openssl/optimized/libcrypto-lib-xts128gb.ll b/bench/openssl/optimized/libcrypto-lib-xts128gb.ll index a35ff4d9f8c..fbbe1575dcb 100644 --- a/bench/openssl/optimized/libcrypto-lib-xts128gb.ll +++ b/bench/openssl/optimized/libcrypto-lib-xts128gb.ll @@ -35,11 +35,11 @@ while.body.lr.ph: ; preds = %if.end %block1 = getelementptr inbounds i8, ptr %ctx, i64 16 %arrayidx39 = getelementptr inbounds i8, ptr %tweak, i64 15 %.pre = load i64, ptr %tweak, align 8 - %.pre104 = load i64, ptr %arrayidx10, align 8 + %.pre109 = load i64, ptr %arrayidx10, align 8 br label %while.body while.body: ; preds = %while.body.lr.ph, %if.end43 - %2 = phi i64 [ %.pre104, %while.body.lr.ph ], [ %18, %if.end43 ] + %2 = phi i64 [ %.pre109, %while.body.lr.ph ], [ %18, %if.end43 ] %3 = phi i64 [ %.pre, %while.body.lr.ph ], [ %19, %if.end43 ] %inp.addr.092 = phi ptr [ %inp, %while.body.lr.ph ], [ %add.ptr, %if.end43 ] %out.addr.091 = phi ptr [ %out, %while.body.lr.ph ], [ %add.ptr23, %if.end43 ] @@ -86,11 +86,11 @@ if.then38: ; preds = %if.end27 %15 = trunc nuw nsw i64 %14 to i8 %16 = xor i8 %15, -31 store i8 %16, ptr %arrayidx39, align 1 - %.pre105 = load i64, ptr %arrayidx10, align 8 + %.pre110 = load i64, ptr %arrayidx10, align 8 br label %if.end43 if.end43: ; preds = %if.then38, %if.end27 - %17 = phi i64 [ %.pre105, %if.then38 ], [ %shr35, %if.end27 ] + %17 = phi i64 [ %.pre110, %if.then38 ], [ %shr35, %if.end27 ] %18 = call i64 asm "bswapq $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i64 %or) #4, !srcloc !6 %19 = call i64 asm "bswapq $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i64 %17) #4, !srcloc !7 store i64 %19, ptr %tweak, align 8 @@ -111,29 +111,27 @@ for.cond.preheader: ; preds = %while.end br i1 %cmp5598.not, label %for.end, label %for.body for.body: ; preds = %for.cond.preheader, %for.body - %conv54100 = phi i64 [ %conv54, %for.body ], [ 0, %for.cond.preheader ] - %i.099 = phi i32 [ %inc, %for.body ], [ 0, %for.cond.preheader ] - %arrayidx57 = getelementptr inbounds i8, ptr %inp.addr.0.lcssa, i64 %conv54100 + %indvars.iv105 = phi i64 [ %indvars.iv.next106, %for.body ], [ 0, %for.cond.preheader ] + %arrayidx57 = getelementptr inbounds i8, ptr %inp.addr.0.lcssa, i64 %indvars.iv105 %22 = load i8, ptr %arrayidx57, align 1 - %arrayidx59 = getelementptr inbounds [16 x i8], ptr %scratch, i64 0, i64 %conv54100 + %arrayidx59 = getelementptr inbounds [16 x i8], ptr %scratch, i64 0, i64 %indvars.iv105 %23 = load i8, ptr %arrayidx59, align 1 - %arrayidx61 = getelementptr inbounds i8, ptr %out.addr.0.lcssa, i64 %conv54100 + %arrayidx61 = getelementptr inbounds i8, ptr %out.addr.0.lcssa, i64 %indvars.iv105 store i8 %23, ptr %arrayidx61, align 1 store i8 %22, ptr %arrayidx59, align 1 - %inc = add i32 %i.099, 1 - %conv54 = zext i32 %inc to i64 - %cmp55 = icmp samesign ugt i64 %len.addr.1.lcssa, %conv54 - br i1 %cmp55, label %for.body, label %for.end.loopexit, !llvm.loop !10 + %indvars.iv.next106 = add nuw i64 %indvars.iv105, 1 + %exitcond108.not = icmp eq i64 %indvars.iv.next106, %len.addr.1.lcssa + br i1 %exitcond108.not, label %for.end.loopexit, label %for.body, !llvm.loop !10 for.end.loopexit: ; preds = %for.body - %.pre108 = load i64, ptr %scratch, align 8 + %.pre113 = load i64, ptr %scratch, align 8 %arrayidx68.phi.trans.insert = getelementptr inbounds i8, ptr %scratch, i64 8 - %.pre109 = load i64, ptr %arrayidx68.phi.trans.insert, align 8 + %.pre114 = load i64, ptr %arrayidx68.phi.trans.insert, align 8 br label %for.end for.end: ; preds = %for.end.loopexit, %for.cond.preheader - %24 = phi i64 [ %.pre109, %for.end.loopexit ], [ %20, %for.cond.preheader ] - %25 = phi i64 [ %.pre108, %for.end.loopexit ], [ %21, %for.cond.preheader ] + %24 = phi i64 [ %.pre114, %for.end.loopexit ], [ %20, %for.cond.preheader ] + %25 = phi i64 [ %.pre113, %for.end.loopexit ], [ %21, %for.cond.preheader ] %26 = load i64, ptr %tweak, align 8 %xor66 = xor i64 %25, %26 store i64 %xor66, ptr %scratch, align 8 @@ -197,30 +195,28 @@ if.else: ; preds = %while.end br i1 %cmp13695.not, label %for.end151, label %for.body138 for.body138: ; preds = %if.else, %for.body138 - %conv13597 = phi i64 [ %conv135, %for.body138 ], [ 0, %if.else ] - %i.196 = phi i32 [ %inc150, %for.body138 ], [ 0, %if.else ] - %add = add i32 %i.196, 16 - %idxprom140 = zext i32 %add to i64 + %indvars.iv = phi i64 [ %indvars.iv.next, %for.body138 ], [ 0, %if.else ] + %add = add i64 %indvars.iv, 16 + %idxprom140 = and i64 %add, 4294967295 %arrayidx141 = getelementptr inbounds i8, ptr %inp.addr.0.lcssa, i64 %idxprom140 %48 = load i8, ptr %arrayidx141, align 1 - %arrayidx143 = getelementptr inbounds [16 x i8], ptr %scratch, i64 0, i64 %conv13597 + %arrayidx143 = getelementptr inbounds [16 x i8], ptr %scratch, i64 0, i64 %indvars.iv %49 = load i8, ptr %arrayidx143, align 1 %arrayidx146 = getelementptr inbounds i8, ptr %out.addr.0.lcssa, i64 %idxprom140 store i8 %49, ptr %arrayidx146, align 1 store i8 %48, ptr %arrayidx143, align 1 - %inc150 = add i32 %i.196, 1 - %conv135 = zext i32 %inc150 to i64 - %cmp136 = icmp samesign ugt i64 %len.addr.1.lcssa, %conv135 - br i1 %cmp136, label %for.body138, label %for.end151.loopexit, !llvm.loop !15 + %indvars.iv.next = add nuw i64 %indvars.iv, 1 + %exitcond.not = icmp eq i64 %indvars.iv.next, %len.addr.1.lcssa + br i1 %exitcond.not, label %for.end151.loopexit, label %for.body138, !llvm.loop !15 for.end151.loopexit: ; preds = %for.body138 - %.pre106 = load i64, ptr %scratch, align 8 - %.pre107 = load i64, ptr %arrayidx123, align 8 + %.pre111 = load i64, ptr %scratch, align 8 + %.pre112 = load i64, ptr %arrayidx123, align 8 br label %for.end151 for.end151: ; preds = %for.end151.loopexit, %if.else - %50 = phi i64 [ %.pre107, %for.end151.loopexit ], [ %xor133, %if.else ] - %51 = phi i64 [ %.pre106, %for.end151.loopexit ], [ %xor130, %if.else ] + %50 = phi i64 [ %.pre112, %for.end151.loopexit ], [ %xor133, %if.else ] + %51 = phi i64 [ %.pre111, %for.end151.loopexit ], [ %xor130, %if.else ] %52 = load i64, ptr %tweak, align 8 %xor154 = xor i64 %51, %52 store i64 %xor154, ptr %scratch, align 8 diff --git a/bench/protobuf/optimized/message_differencer.cc.ll b/bench/protobuf/optimized/message_differencer.cc.ll index be8289da268..e33937ebf14 100644 --- a/bench/protobuf/optimized/message_differencer.cc.ll +++ b/bench/protobuf/optimized/message_differencer.cc.ll @@ -9698,11 +9698,10 @@ _ZNSt6vectorIN6google8protobuf4util18MessageDifferencer13SpecificFieldESaIS4_EEC %_M_finish.i.i.i141 = phi ptr [ %_M_finish.i.i.i137, %invoke.cont.i.thread ], [ %_M_finish.i.i.i, %for.body.i.i.i.i.i ] %cond.i.i.i.i140 = phi ptr [ null, %invoke.cont.i.thread ], [ %call5.i.i.i.i2.i6.i, %for.body.i.i.i.i.i ] %22 = phi ptr [ null, %invoke.cont.i.thread ], [ %incdec.ptr.i.i.i.i.i, %for.body.i.i.i.i.i ] - %cond.i.i.i.i140155 = ptrtoint ptr %cond.i.i.i.i140 to i64 - %__cur.0.lcssa.i.i.i.i.i153 = ptrtoint ptr %22 to i64 + %add.ptr.i.i.i21142.fr = freeze ptr %add.ptr.i.i.i21142 store ptr %22, ptr %_M_finish.i.i.i141, align 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %specific_field.sroa.12, i8 0, i64 32, i1 false) - %cmp.not.i = icmp eq ptr %22, %add.ptr.i.i.i21142 + %cmp.not.i = icmp eq ptr %22, %add.ptr.i.i.i21142.fr br i1 %cmp.not.i, label %if.else.i, label %if.then.i if.then.i: ; preds = %_ZNSt6vectorIN6google8protobuf4util18MessageDifferencer13SpecificFieldESaIS4_EEC2ERKS6_.exit @@ -9734,8 +9733,9 @@ if.then.i: ; preds = %_ZNSt6vectorIN6goog br label %invoke.cont if.else.i: ; preds = %_ZNSt6vectorIN6google8protobuf4util18MessageDifferencer13SpecificFieldESaIS4_EEC2ERKS6_.exit - %sub.ptr.lhs.cast.i.i.i.i = ptrtoint ptr %add.ptr.i.i.i21142 to i64 - %sub.ptr.sub.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i, %cond.i.i.i.i140155 + %sub.ptr.lhs.cast.i.i.i.i = ptrtoint ptr %add.ptr.i.i.i21142.fr to i64 + %sub.ptr.rhs.cast.i.i.i.i = ptrtoint ptr %cond.i.i.i.i140 to i64 + %sub.ptr.sub.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i %cmp.i.i.i = icmp eq i64 %sub.ptr.sub.i.i.i.i, 9223372036854775776 br i1 %cmp.i.i.i, label %if.then.i.i.i, label %_ZNKSt6vectorIN6google8protobuf4util18MessageDifferencer13SpecificFieldESaIS4_EE12_M_check_lenEmPKc.exit.i.i @@ -9787,12 +9787,12 @@ _ZNSt12_Vector_baseIN6google8protobuf4util18MessageDifferencer13SpecificFieldESa store i32 -1, ptr %specific_field.sroa.14.0.add.ptr.i.i23.sroa_idx, align 4 %specific_field.sroa.15.0.add.ptr.i.i23.sroa_idx = getelementptr inbounds i8, ptr %add.ptr.i.i23, i64 88 store i8 0, ptr %specific_field.sroa.15.0.add.ptr.i.i23.sroa_idx, align 8 - %cmp.not5.i.i.i.i.i = icmp eq ptr %cond.i.i.i.i140, %add.ptr.i.i.i21142 + %cmp.not5.i.i.i.i.i = icmp eq ptr %cond.i.i.i.i140, %add.ptr.i.i.i21142.fr br i1 %cmp.not5.i.i.i.i.i, label %_ZNSt6vectorIN6google8protobuf4util18MessageDifferencer13SpecificFieldESaIS4_EE11_S_relocateEPS4_S7_S7_RS5_.exit19.i.i, label %for.body.i.i.i.i.i24.preheader for.body.i.i.i.i.i24.preheader: ; preds = %_ZNSt12_Vector_baseIN6google8protobuf4util18MessageDifferencer13SpecificFieldESaIS4_EE11_M_allocateEm.exit.i.i - %24 = add i64 %__cur.0.lcssa.i.i.i.i.i153, -96 - %25 = sub i64 %24, %cond.i.i.i.i140155 + %24 = add i64 %sub.ptr.lhs.cast.i.i.i.i, -96 + %25 = sub i64 %24, %sub.ptr.rhs.cast.i.i.i.i %26 = urem i64 %25, 96 %27 = sub nuw i64 %25, %26 %28 = add i64 %27, 96 @@ -9922,16 +9922,16 @@ call12.i.noexc: ; preds = %for.body.i land.lhs.true26.loopexit: ; preds = %for.cond.i %.pre = load ptr, ptr %ignored_fields_.i, align 8 - %.pre156 = load i64, ptr %capacity_.i.i.i.i.i, align 8, !noalias !207 - %.pre157 = load ptr, ptr %slots_.i.i.i.i.i, align 8 - %.pre158 = ptrtoint ptr %.pre to i64 - %.pre159 = lshr i64 %.pre158, 12 + %.pre153 = load i64, ptr %capacity_.i.i.i.i.i, align 8, !noalias !207 + %.pre154 = load ptr, ptr %slots_.i.i.i.i.i, align 8 + %.pre155 = ptrtoint ptr %.pre to i64 + %.pre156 = lshr i64 %.pre155, 12 br label %land.lhs.true26 land.lhs.true26: ; preds = %land.lhs.true26.loopexit, %if.end.i - %shr.i.i.i.i.i.i.i61.pre-phi = phi i64 [ %.pre159, %land.lhs.true26.loopexit ], [ %shr.i.i.i.i.i.i.i, %if.end.i ] - %46 = phi ptr [ %.pre157, %land.lhs.true26.loopexit ], [ %33, %if.end.i ] - %47 = phi i64 [ %.pre156, %land.lhs.true26.loopexit ], [ %31, %if.end.i ] + %shr.i.i.i.i.i.i.i61.pre-phi = phi i64 [ %.pre156, %land.lhs.true26.loopexit ], [ %shr.i.i.i.i.i.i.i, %if.end.i ] + %46 = phi ptr [ %.pre154, %land.lhs.true26.loopexit ], [ %33, %if.end.i ] + %47 = phi i64 [ %.pre153, %land.lhs.true26.loopexit ], [ %31, %if.end.i ] %48 = phi ptr [ %.pre, %land.lhs.true26.loopexit ], [ %29, %if.end.i ] call void @llvm.prefetch.p0(ptr %48, i32 0, i32 1, i32 1) %49 = ptrtoint ptr %call20 to i64 diff --git a/bench/quantlib/optimized/actualactual.ll b/bench/quantlib/optimized/actualactual.ll index baa54052b93..9cf2c29970b 100644 --- a/bench/quantlib/optimized/actualactual.ll +++ b/bench/quantlib/optimized/actualactual.ll @@ -874,8 +874,6 @@ for.body.i.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i. _ZNSt6vectorIN8QuantLib4DateESaIS1_EEC2ERKS3_.exit.i: ; preds = %for.body.i.i.i.i.i.i %add.ptr.i.i.i.i = getelementptr inbounds nuw i8, ptr %call5.i.i.i.i2.i6.i.i, i64 %sub.ptr.sub.i.i.i - %__cur.0.lcssa.i.i.i.i.i189.i = ptrtoint ptr %incdec.ptr.i.i.i.i.i.i to i64 - %cond.i.i.i.i175190.i = ptrtoint ptr %call5.i.i.i.i2.i6.i.i to i64 %call2.i = invoke noundef zeroext i1 @_ZNK8QuantLib8Schedule12hasIsRegularEv(ptr noundef nonnull align 8 dereferenceable(136) %schedule_) to label %invoke.cont.i unwind label %lpad.i, !noalias !41 @@ -968,6 +966,7 @@ invoke.cont37.i: ; preds = %invoke.cont33.i invoke.cont39.i: ; preds = %invoke.cont37.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %ref.tmp29.i) #20, !noalias !41 + %sub.ptr.lhs.cast.i.i53.i = ptrtoint ptr %call5.i.i.i.i2.i6.i.i to i64 %cmp.not.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i.i, %add.ptr.i.i.i.i br i1 %cmp.not.i.i, label %if.else26.i.i, label %if.else.i.i @@ -980,7 +979,7 @@ if.else.i.i: ; preds = %invoke.cont39.i if.then.i.i.i.i.i.i.i.i: ; preds = %if.else.i.i %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i = ptrtoint ptr %__cur.07.i.i.i.i.i.i to i64 - %sub.ptr.sub.i.i.i.i.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i, %cond.i.i.i.i175190.i + %sub.ptr.sub.i.i.i.i.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i.i.i.i, %sub.ptr.lhs.cast.i.i53.i %sub.ptr.div.i.i.i.i.i.i.i.i = ashr exact i64 %sub.ptr.sub.i.i.i.i.i.i.i.i, 3 %idx.neg.i.i.i.i.i.i.i.i = sub nsw i64 0, %sub.ptr.div.i.i.i.i.i.i.i.i %add.ptr.i.i.i.i.i.i.i.i = getelementptr inbounds %"class.QuantLib::Date", ptr %incdec.ptr.i.i.i.i.i.i, i64 %idx.neg.i.i.i.i.i.i.i.i @@ -1014,8 +1013,7 @@ cond.true.i.i.i: ; preds = %if.else26.i.i for.body.i.i.i12.i.preheader.i: ; preds = %cond.true.i.i.i store i64 %call40.i, ptr %call5.i.i.i.i117.i, align 8, !tbaa !38, !noalias !41 %incdec.ptr.i114.i = getelementptr i8, ptr %call5.i.i.i.i117.i, i64 8 - %reass.sub = sub i64 %__cur.0.lcssa.i.i.i.i.i189.i, %cond.i.i.i.i175190.i - %17 = and i64 %reass.sub, -8 + %17 = and i64 %sub.ptr.sub.i.i.i, 9223372036854775800 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %incdec.ptr.i114.i, ptr nonnull align 8 %call5.i.i.i.i2.i6.i.i, i64 %17, i1 false), !tbaa !38, !alias.scope !69, !noalias !41 %18 = add i64 %sub.ptr.lhs.cast.i.i.i, -8 %19 = sub i64 %18, %sub.ptr.rhs.cast.i.i.i.i.i diff --git a/bench/quantlib/optimized/analyticperformanceengine.ll b/bench/quantlib/optimized/analyticperformanceengine.ll index f651b07317d..68dc79996c5 100644 --- a/bench/quantlib/optimized/analyticperformanceengine.ll +++ b/bench/quantlib/optimized/analyticperformanceengine.ll @@ -1712,8 +1712,6 @@ for.body.i.i.i.i.i: ; preds = %_ZNSt16allocator_tr invoke.cont179: ; preds = %for.body.i.i.i.i.i, %do.end175 %cond.i.i.i.i538 = phi ptr [ null, %do.end175 ], [ %call5.i.i.i.i2.i6.i169, %for.body.i.i.i.i.i ] %__cur.0.lcssa.i.i.i.i.i = phi ptr [ null, %do.end175 ], [ %incdec.ptr.i.i.i.i.i, %for.body.i.i.i.i.i ] - %__cur.0.lcssa.i.i.i.i.i650 = ptrtoint ptr %__cur.0.lcssa.i.i.i.i.i to i64 - %cond.i.i.i.i538651 = ptrtoint ptr %cond.i.i.i.i538 to i64 %add.ptr.i.i.i539 = getelementptr inbounds nuw i8, ptr %cond.i.i.i.i538, i64 %sub.ptr.sub.i.i %102 = load ptr, ptr %exercise, align 8, !tbaa !82 %cmp.not.i170 = icmp eq ptr %102, null @@ -1741,7 +1739,9 @@ if.then.i.i176: ; preds = %invoke.cont186 br label %invoke.cont188 if.else.i.i: ; preds = %invoke.cont186 - %sub.ptr.sub.i.i.i = sub i64 %__cur.0.lcssa.i.i.i.i.i650, %cond.i.i.i.i538651 + %sub.ptr.lhs.cast.i.i.i = ptrtoint ptr %__cur.0.lcssa.i.i.i.i.i to i64 + %sub.ptr.rhs.cast.i.i.i = ptrtoint ptr %cond.i.i.i.i538 to i64 + %sub.ptr.sub.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i, %sub.ptr.rhs.cast.i.i.i %cmp.i.i = icmp eq i64 %sub.ptr.sub.i.i.i, 9223372036854775800 br i1 %cmp.i.i, label %if.then.i.i496, label %_ZNKSt6vectorIN8QuantLib4DateESaIS1_EE12_M_check_lenEmPKc.exit.i @@ -1775,8 +1775,8 @@ _ZNSt12_Vector_baseIN8QuantLib4DateESaIS1_EE11_M_allocateEm.exit.i: ; preds = %c br i1 %cmp.not5.i.i.i.i, label %_ZNSt6vectorIN8QuantLib4DateESaIS1_EE11_S_relocateEPS1_S4_S4_RS2_.exit19.i, label %for.body.i.i.i.i.preheader for.body.i.i.i.i.preheader: ; preds = %_ZNSt12_Vector_baseIN8QuantLib4DateESaIS1_EE11_M_allocateEm.exit.i - %105 = add i64 %__cur.0.lcssa.i.i.i.i.i650, -8 - %106 = sub i64 %105, %cond.i.i.i.i538651 + %105 = add i64 %sub.ptr.lhs.cast.i.i.i, -8 + %106 = sub i64 %105, %sub.ptr.rhs.cast.i.i.i %107 = and i64 %106, -8 %108 = add i64 %107, 8 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %cond.i10.i, ptr align 8 %cond.i.i.i.i538, i64 %108, i1 false), !tbaa !30, !alias.scope !94, !noalias !27 @@ -2122,12 +2122,12 @@ for.body.lr.ph: ; preds = %invoke.cont255 br label %for.body for.cond.cleanup: ; preds = %_ZN8QuantLib10DayCounterD2Ev.exit478 - %.pre652 = load ptr, ptr %pn.i, align 8, !tbaa !37 - %cmp.not.i.i220 = icmp eq ptr %.pre652, null + %.pre650 = load ptr, ptr %pn.i, align 8, !tbaa !37 + %cmp.not.i.i220 = icmp eq ptr %.pre650, null br i1 %cmp.not.i.i220, label %_ZN5boost10shared_ptrIN8QuantLib17StrikedTypePayoffEED2Ev.exit, label %if.then.i.i221 if.then.i.i221: ; preds = %invoke.cont255, %for.cond.cleanup - %145 = phi ptr [ %.pre652, %for.cond.cleanup ], [ %call.i.i.i, %invoke.cont255 ] + %145 = phi ptr [ %.pre650, %for.cond.cleanup ], [ %call.i.i.i, %invoke.cont255 ] %use_count_.i.i.i = getelementptr inbounds nuw i8, ptr %145, i64 8 %146 = atomicrmw sub ptr %use_count_.i.i.i, i32 1 acq_rel, align 4 %cmp.i.i.i222 = icmp eq i32 %146, 1 diff --git a/bench/quantlib/optimized/subperiodcoupon.ll b/bench/quantlib/optimized/subperiodcoupon.ll index d6492c19d8d..591138c7996 100644 --- a/bench/quantlib/optimized/subperiodcoupon.ll +++ b/bench/quantlib/optimized/subperiodcoupon.ll @@ -1235,8 +1235,8 @@ invoke.cont55: ; preds = %_ZN8QuantLib12MakeS if.then: ; preds = %invoke.cont55 %add.ptr.i = getelementptr inbounds i8, ptr %57, i64 -8 - %__last.coerce3.i.i = ptrtoint ptr %add.ptr.i to i64 - %sub.ptr.sub.i.i.i.i.i = sub i64 %__last.coerce3.i.i, %sub.ptr.rhs.cast.i + %sub.ptr.lhs.cast.i.i.i.i.i = ptrtoint ptr %add.ptr.i to i64 + %sub.ptr.sub.i.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i, %sub.ptr.rhs.cast.i %cmp.i.i.i81 = icmp ugt i64 %sub.ptr.sub.i.i.i.i.i, 9223372036854775800 br i1 %cmp.i.i.i81, label %if.then.i.i.i84, label %_ZNSt6vectorIN8QuantLib4DateESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i @@ -2918,8 +2918,8 @@ invoke.cont50: ; preds = %_ZN8QuantLib12MakeS if.then: ; preds = %invoke.cont50 %add.ptr.i = getelementptr inbounds i8, ptr %53, i64 -8 - %__last.coerce3.i.i = ptrtoint ptr %add.ptr.i to i64 - %sub.ptr.sub.i.i.i.i.i = sub i64 %__last.coerce3.i.i, %sub.ptr.rhs.cast.i + %sub.ptr.lhs.cast.i.i.i.i.i = ptrtoint ptr %add.ptr.i to i64 + %sub.ptr.sub.i.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i, %sub.ptr.rhs.cast.i %cmp.i.i.i85 = icmp ugt i64 %sub.ptr.sub.i.i.i.i.i, 9223372036854775800 br i1 %cmp.i.i.i85, label %if.then.i.i.i88, label %_ZNSt6vectorIN8QuantLib4DateESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i diff --git a/bench/tev/optimized/Common.cpp.ll b/bench/tev/optimized/Common.cpp.ll index dfef804b2ec..8ceab8a0038 100644 --- a/bench/tev/optimized/Common.cpp.ll +++ b/bench/tev/optimized/Common.cpp.ll @@ -11609,15 +11609,15 @@ _ZNKSt3__112regex_traitsIcE7isctypeEct.exit81.thread: ; preds = %64, %297, %475, ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_ZNKSt3__112regex_traitsIcE9transformIPcEENS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEET_SA_(ptr dead_on_unwind noalias writable sret(%"class.std::__1::basic_string.2") align 8 %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef %2, ptr noundef %3) local_unnamed_addr #3 comdat align 2 personality ptr @__gxx_personality_v0 { - %5 = ptrtoint ptr %2 to i64 + %5 = alloca %"class.std::__1::basic_string.2", align 8 %6 = ptrtoint ptr %3 to i64 - %7 = alloca %"class.std::__1::basic_string.2", align 8 - %8 = sub i64 %6, %5 + %7 = ptrtoint ptr %2 to i64 + %8 = sub i64 %6, %7 %9 = icmp ugt i64 %8, -9 br i1 %9, label %10, label %11 10: ; preds = %4 - call void @_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE20__throw_length_errorB8ne190000Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #31 + call void @_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE20__throw_length_errorB8ne190000Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #31 unreachable 11: ; preds = %4 @@ -11627,8 +11627,8 @@ define linkonce_odr dso_local void @_ZNKSt3__112regex_traitsIcE9transformIPcEENS 13: ; preds = %11 %14 = trunc nuw i64 %8 to i8 %15 = shl nuw nsw i8 %14, 1 - store i8 %15, ptr %7, align 8 - %16 = getelementptr inbounds i8, ptr %7, i64 1 + store i8 %15, ptr %5, align 8 + %16 = getelementptr inbounds i8, ptr %5, i64 1 br label %26 17: ; preds = %11 @@ -11637,11 +11637,11 @@ define linkonce_odr dso_local void @_ZNKSt3__112regex_traitsIcE9transformIPcEENS %20 = add i64 %18, 1 %21 = select i1 %19, i64 25, i64 %20 %22 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %21) #32 - %23 = getelementptr inbounds i8, ptr %7, i64 16 + %23 = getelementptr inbounds i8, ptr %5, i64 16 store ptr %22, ptr %23, align 8 %24 = or i64 %21, 1 - store i64 %24, ptr %7, align 8 - %25 = getelementptr inbounds i8, ptr %7, i64 8 + store i64 %24, ptr %5, align 8 + %25 = getelementptr inbounds i8, ptr %5, i64 8 store i64 %8, ptr %25, align 8 br label %26 @@ -11660,14 +11660,14 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000IPcTn store i8 0, ptr %.1.lcssa.i.i.i, align 1 %27 = getelementptr inbounds i8, ptr %1, i64 16 %28 = load ptr, ptr %27, align 8 - %29 = load i8, ptr %7, align 8 + %29 = load i8, ptr %5, align 8 %30 = and i8 %29, 1 %.not.i.i = icmp eq i8 %30, 0 - %31 = getelementptr inbounds i8, ptr %7, i64 16 + %31 = getelementptr inbounds i8, ptr %5, i64 16 %32 = load ptr, ptr %31, align 8 - %33 = getelementptr inbounds i8, ptr %7, i64 1 + %33 = getelementptr inbounds i8, ptr %5, i64 1 %34 = select i1 %.not.i.i, ptr %33, ptr %32 - %35 = getelementptr inbounds i8, ptr %7, i64 8 + %35 = getelementptr inbounds i8, ptr %5, i64 8 %36 = load i64, ptr %35, align 8 %37 = lshr i8 %29, 1 %38 = zext nneg i8 %37 to i64 @@ -11680,29 +11680,29 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000IPcTn to label %44 unwind label %45 44: ; preds = %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000IPcTnNS_9enable_ifIXsr29__has_input_iterator_categoryIT_EE5valueEiE4typeELi0EEES9_S9_.exit - call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #29 + call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #29 ret void 45: ; preds = %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000IPcTnNS_9enable_ifIXsr29__has_input_iterator_categoryIT_EE5valueEiE4typeELi0EEES9_S9_.exit %46 = landingpad { ptr, i32 } cleanup - call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #29 + call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #29 resume { ptr, i32 } %46 } ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_ZNKSt3__112regex_traitsIcE20__lookup_collatenameIPcEENS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEET_SA_c(ptr dead_on_unwind noalias writable sret(%"class.std::__1::basic_string.2") align 8 %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef %2, ptr noundef %3, i8 noundef signext %4) local_unnamed_addr #3 comdat align 2 personality ptr @__gxx_personality_v0 { - %6 = ptrtoint ptr %2 to i64 - %7 = ptrtoint ptr %3 to i64 + %6 = alloca %"class.std::__1::basic_string.2", align 8 + %7 = alloca %"class.std::__1::basic_string.2", align 8 %8 = alloca %"class.std::__1::basic_string.2", align 8 - %9 = alloca %"class.std::__1::basic_string.2", align 8 - %10 = alloca %"class.std::__1::basic_string.2", align 8 - %11 = sub i64 %7, %6 + %9 = ptrtoint ptr %3 to i64 + %10 = ptrtoint ptr %2 to i64 + %11 = sub i64 %9, %10 %12 = icmp ugt i64 %11, -9 br i1 %12, label %13, label %14 13: ; preds = %5 - call void @_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE20__throw_length_errorB8ne190000Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #31 + call void @_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE20__throw_length_errorB8ne190000Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #31 unreachable 14: ; preds = %5 @@ -11712,8 +11712,8 @@ define linkonce_odr dso_local void @_ZNKSt3__112regex_traitsIcE20__lookup_collat 16: ; preds = %14 %17 = trunc nuw i64 %11 to i8 %18 = shl nuw nsw i8 %17, 1 - store i8 %18, ptr %8, align 8 - %19 = getelementptr inbounds i8, ptr %8, i64 1 + store i8 %18, ptr %6, align 8 + %19 = getelementptr inbounds i8, ptr %6, i64 1 br label %29 20: ; preds = %14 @@ -11722,11 +11722,11 @@ define linkonce_odr dso_local void @_ZNKSt3__112regex_traitsIcE20__lookup_collat %23 = add i64 %21, 1 %24 = select i1 %22, i64 25, i64 %23 %25 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %24) #32 - %26 = getelementptr inbounds i8, ptr %8, i64 16 + %26 = getelementptr inbounds i8, ptr %6, i64 16 store ptr %25, ptr %26, align 8 %27 = or i64 %24, 1 - store i64 %27, ptr %8, align 8 - %28 = getelementptr inbounds i8, ptr %8, i64 8 + store i64 %27, ptr %6, align 8 + %28 = getelementptr inbounds i8, ptr %6, i64 8 store i64 %11, ptr %28, align 8 br label %29 @@ -11744,10 +11744,10 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000IPcTn %.1.lcssa.i.i.i = phi ptr [ %.016.i.i.i, %29 ], [ %scevgep, %.lr.ph.i.i.i.preheader ] store i8 0, ptr %.1.lcssa.i.i.i, align 1 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) - %30 = load i8, ptr %8, align 8 + %30 = load i8, ptr %6, align 8 %31 = and i8 %30, 1 %.not.i.i = icmp eq i8 %31, 0 - %32 = getelementptr inbounds i8, ptr %8, i64 8 + %32 = getelementptr inbounds i8, ptr %6, i64 8 %33 = load i64, ptr %32, align 8 %34 = lshr i8 %30, 1 %35 = zext nneg i8 %34 to i64 @@ -11756,19 +11756,19 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000IPcTn br i1 %37, label %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE5clearB8ne190000Ev.exit, label %38 38: ; preds = %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000IPcTnNS_9enable_ifIXsr29__has_input_iterator_categoryIT_EE5valueEiE4typeELi0EEES9_S9_.exit - %39 = getelementptr inbounds i8, ptr %8, i64 16 + %39 = getelementptr inbounds i8, ptr %6, i64 16 %40 = load ptr, ptr %39, align 8 - %41 = getelementptr inbounds i8, ptr %8, i64 1 + %41 = getelementptr inbounds i8, ptr %6, i64 1 %42 = select i1 %.not.i.i, ptr %41, ptr %40 - invoke void @_ZNSt3__120__get_collation_nameEPKc(ptr dead_on_unwind nonnull writable sret(%"class.std::__1::basic_string.2") align 8 %9, ptr noundef %42) + invoke void @_ZNSt3__120__get_collation_nameEPKc(ptr dead_on_unwind nonnull writable sret(%"class.std::__1::basic_string.2") align 8 %7, ptr noundef %42) to label %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_.exit unwind label %84 _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_.exit: ; preds = %38 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 24, i1 false) - store i8 0, ptr %9, align 8 - %43 = getelementptr inbounds i8, ptr %9, i64 1 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %7, i64 24, i1 false) + store i8 0, ptr %7, align 8 + %43 = getelementptr inbounds i8, ptr %7, i64 1 store i8 0, ptr %43, align 1 - call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #29 + call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #29 %44 = load i8, ptr %0, align 8 %45 = and i8 %44, 1 %.not.i.i9 = icmp eq i8 %45, 0 @@ -11781,7 +11781,7 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_ br i1 %51, label %52, label %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE5clearB8ne190000Ev.exit 52: ; preds = %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_.exit - %53 = load i8, ptr %8, align 8 + %53 = load i8, ptr %6, align 8 %54 = and i8 %53, 1 %.not.i = icmp eq i8 %54, 0 %55 = load i64, ptr %32, align 8 @@ -11800,7 +11800,7 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_ %66 = load ptr, ptr %62, align 8 %67 = getelementptr inbounds i8, ptr %66, i64 32 %68 = load ptr, ptr %67, align 8 - invoke void %68(ptr dead_on_unwind nonnull writable sret(%"class.std::__1::basic_string.2") align 8 %10, ptr noundef nonnull align 8 dereferenceable(16) %62, ptr noundef %64, ptr noundef %65) + invoke void %68(ptr dead_on_unwind nonnull writable sret(%"class.std::__1::basic_string.2") align 8 %8, ptr noundef nonnull align 8 dereferenceable(16) %62, ptr noundef %64, ptr noundef %65) to label %69 unwind label %84 69: ; preds = %60 @@ -11816,11 +11816,11 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_ br label %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_.exit14 _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_.exit14: ; preds = %69, %72 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %10, i64 24, i1 false) - store i8 0, ptr %10, align 8 - %75 = getelementptr inbounds i8, ptr %10, i64 1 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %8, i64 24, i1 false) + store i8 0, ptr %8, align 8 + %75 = getelementptr inbounds i8, ptr %8, i64 1 store i8 0, ptr %75, align 1 - call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #29 + call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #29 %76 = load i8, ptr %0, align 8 %77 = and i8 %76, 1 %.not.i15 = icmp eq i8 %77, 0 @@ -11834,14 +11834,14 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_ ] 82: ; preds = %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_.exit14, %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_.exit14 - %83 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSERKS5_(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %8) + %83 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSERKS5_(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %6) to label %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE5clearB8ne190000Ev.exit unwind label %84 84: ; preds = %82, %60, %38 %85 = landingpad { ptr, i32 } cleanup call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %0) #29 - call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #29 + call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #29 resume { ptr, i32 } %85 86: ; preds = %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_.exit14 @@ -11861,7 +11861,7 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_ br label %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE5clearB8ne190000Ev.exit _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE5clearB8ne190000Ev.exit: ; preds = %90, %87, %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000IPcTnNS_9enable_ifIXsr29__has_input_iterator_categoryIT_EE5valueEiE4typeELi0EEES9_S9_.exit, %82, %52, %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_.exit - call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #29 + call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #29 ret void } @@ -13517,17 +13517,17 @@ define linkonce_odr hidden void @_ZNSt3__119__throw_regex_errorB8ne190000ILNS_15 ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_ZNKSt3__112regex_traitsIcE20__lookup_collatenameINS_11__wrap_iterIPKcEEEENS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEET_SD_c(ptr dead_on_unwind noalias writable sret(%"class.std::__1::basic_string.2") align 8 %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr %2, ptr %3, i8 noundef signext %4) local_unnamed_addr #3 comdat align 2 personality ptr @__gxx_personality_v0 { - %6 = ptrtoint ptr %2 to i64 - %7 = ptrtoint ptr %3 to i64 + %6 = alloca %"class.std::__1::basic_string.2", align 8 + %7 = alloca %"class.std::__1::basic_string.2", align 8 %8 = alloca %"class.std::__1::basic_string.2", align 8 - %9 = alloca %"class.std::__1::basic_string.2", align 8 - %10 = alloca %"class.std::__1::basic_string.2", align 8 - %11 = sub i64 %7, %6 + %9 = ptrtoint ptr %3 to i64 + %10 = ptrtoint ptr %2 to i64 + %11 = sub i64 %9, %10 %12 = icmp ugt i64 %11, -9 br i1 %12, label %13, label %14 13: ; preds = %5 - call void @_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE20__throw_length_errorB8ne190000Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #31 + call void @_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE20__throw_length_errorB8ne190000Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #31 unreachable 14: ; preds = %5 @@ -13537,8 +13537,8 @@ define linkonce_odr dso_local void @_ZNKSt3__112regex_traitsIcE20__lookup_collat 16: ; preds = %14 %17 = trunc nuw i64 %11 to i8 %18 = shl nuw nsw i8 %17, 1 - store i8 %18, ptr %8, align 8 - %19 = getelementptr inbounds i8, ptr %8, i64 1 + store i8 %18, ptr %6, align 8 + %19 = getelementptr inbounds i8, ptr %6, i64 1 br label %29 20: ; preds = %14 @@ -13547,11 +13547,11 @@ define linkonce_odr dso_local void @_ZNKSt3__112regex_traitsIcE20__lookup_collat %23 = add i64 %21, 1 %24 = select i1 %22, i64 25, i64 %23 %25 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %24) #32 - %26 = getelementptr inbounds i8, ptr %8, i64 16 + %26 = getelementptr inbounds i8, ptr %6, i64 16 store ptr %25, ptr %26, align 8 %27 = or i64 %24, 1 - store i64 %27, ptr %8, align 8 - %28 = getelementptr inbounds i8, ptr %8, i64 8 + store i64 %27, ptr %6, align 8 + %28 = getelementptr inbounds i8, ptr %6, i64 8 store i64 %11, ptr %28, align 8 br label %29 @@ -13569,10 +13569,10 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000INS_1 %.1.lcssa.i.i.i = phi ptr [ %.0.i.i.i, %29 ], [ %scevgep, %.lr.ph.i.i.i.preheader ] store i8 0, ptr %.1.lcssa.i.i.i, align 1 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) - %30 = load i8, ptr %8, align 8 + %30 = load i8, ptr %6, align 8 %31 = and i8 %30, 1 %.not.i.i = icmp eq i8 %31, 0 - %32 = getelementptr inbounds i8, ptr %8, i64 8 + %32 = getelementptr inbounds i8, ptr %6, i64 8 %33 = load i64, ptr %32, align 8 %34 = lshr i8 %30, 1 %35 = zext nneg i8 %34 to i64 @@ -13581,19 +13581,19 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000INS_1 br i1 %37, label %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE5clearB8ne190000Ev.exit, label %38 38: ; preds = %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000INS_11__wrap_iterIPKcEETnNS_9enable_ifIXsr29__has_input_iterator_categoryIT_EE5valueEiE4typeELi0EEESC_SC_.exit - %39 = getelementptr inbounds i8, ptr %8, i64 16 + %39 = getelementptr inbounds i8, ptr %6, i64 16 %40 = load ptr, ptr %39, align 8 - %41 = getelementptr inbounds i8, ptr %8, i64 1 + %41 = getelementptr inbounds i8, ptr %6, i64 1 %42 = select i1 %.not.i.i, ptr %41, ptr %40 - invoke void @_ZNSt3__120__get_collation_nameEPKc(ptr dead_on_unwind nonnull writable sret(%"class.std::__1::basic_string.2") align 8 %9, ptr noundef %42) + invoke void @_ZNSt3__120__get_collation_nameEPKc(ptr dead_on_unwind nonnull writable sret(%"class.std::__1::basic_string.2") align 8 %7, ptr noundef %42) to label %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_.exit unwind label %84 _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_.exit: ; preds = %38 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 24, i1 false) - store i8 0, ptr %9, align 8 - %43 = getelementptr inbounds i8, ptr %9, i64 1 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %7, i64 24, i1 false) + store i8 0, ptr %7, align 8 + %43 = getelementptr inbounds i8, ptr %7, i64 1 store i8 0, ptr %43, align 1 - call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #29 + call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #29 %44 = load i8, ptr %0, align 8 %45 = and i8 %44, 1 %.not.i.i10 = icmp eq i8 %45, 0 @@ -13606,7 +13606,7 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_ br i1 %51, label %52, label %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE5clearB8ne190000Ev.exit 52: ; preds = %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_.exit - %53 = load i8, ptr %8, align 8 + %53 = load i8, ptr %6, align 8 %54 = and i8 %53, 1 %.not.i = icmp eq i8 %54, 0 %55 = load i64, ptr %32, align 8 @@ -13625,7 +13625,7 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_ %66 = load ptr, ptr %62, align 8 %67 = getelementptr inbounds i8, ptr %66, i64 32 %68 = load ptr, ptr %67, align 8 - invoke void %68(ptr dead_on_unwind nonnull writable sret(%"class.std::__1::basic_string.2") align 8 %10, ptr noundef nonnull align 8 dereferenceable(16) %62, ptr noundef %64, ptr noundef %65) + invoke void %68(ptr dead_on_unwind nonnull writable sret(%"class.std::__1::basic_string.2") align 8 %8, ptr noundef nonnull align 8 dereferenceable(16) %62, ptr noundef %64, ptr noundef %65) to label %69 unwind label %84 69: ; preds = %60 @@ -13641,11 +13641,11 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_ br label %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_.exit15 _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_.exit15: ; preds = %69, %72 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %10, i64 24, i1 false) - store i8 0, ptr %10, align 8 - %75 = getelementptr inbounds i8, ptr %10, i64 1 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %8, i64 24, i1 false) + store i8 0, ptr %8, align 8 + %75 = getelementptr inbounds i8, ptr %8, i64 1 store i8 0, ptr %75, align 1 - call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #29 + call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #29 %76 = load i8, ptr %0, align 8 %77 = and i8 %76, 1 %.not.i16 = icmp eq i8 %77, 0 @@ -13659,14 +13659,14 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_ ] 82: ; preds = %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_.exit15, %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_.exit15 - %83 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSERKS5_(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %8) + %83 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSERKS5_(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %6) to label %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE5clearB8ne190000Ev.exit unwind label %84 84: ; preds = %82, %60, %38 %85 = landingpad { ptr, i32 } cleanup call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %0) #29 - call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #29 + call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #29 resume { ptr, i32 } %85 86: ; preds = %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_.exit15 @@ -13686,21 +13686,21 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_ br label %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE5clearB8ne190000Ev.exit _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE5clearB8ne190000Ev.exit: ; preds = %90, %87, %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000INS_11__wrap_iterIPKcEETnNS_9enable_ifIXsr29__has_input_iterator_categoryIT_EE5valueEiE4typeELi0EEESC_SC_.exit, %82, %52, %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSB8ne190000EOS5_.exit - call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #29 + call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #29 ret void } ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_ZNKSt3__112regex_traitsIcE19__transform_primaryINS_11__wrap_iterIPcEEEENS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEET_SC_c(ptr dead_on_unwind noalias writable sret(%"class.std::__1::basic_string.2") align 8 %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr %2, ptr %3, i8 noundef signext %4) local_unnamed_addr #3 comdat align 2 personality ptr @__gxx_personality_v0 { - %6 = ptrtoint ptr %2 to i64 + %6 = alloca %"class.std::__1::basic_string.2", align 8 %7 = ptrtoint ptr %3 to i64 - %8 = alloca %"class.std::__1::basic_string.2", align 8 - %9 = sub i64 %7, %6 + %8 = ptrtoint ptr %2 to i64 + %9 = sub i64 %7, %8 %10 = icmp ugt i64 %9, -9 br i1 %10, label %11, label %12 11: ; preds = %5 - call void @_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE20__throw_length_errorB8ne190000Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #31 + call void @_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE20__throw_length_errorB8ne190000Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #31 unreachable 12: ; preds = %5 @@ -13710,8 +13710,8 @@ define linkonce_odr dso_local void @_ZNKSt3__112regex_traitsIcE19__transform_pri 14: ; preds = %12 %15 = trunc nuw i64 %9 to i8 %16 = shl nuw nsw i8 %15, 1 - store i8 %16, ptr %8, align 8 - %17 = getelementptr inbounds i8, ptr %8, i64 1 + store i8 %16, ptr %6, align 8 + %17 = getelementptr inbounds i8, ptr %6, i64 1 br label %27 18: ; preds = %12 @@ -13720,11 +13720,11 @@ define linkonce_odr dso_local void @_ZNKSt3__112regex_traitsIcE19__transform_pri %21 = add i64 %19, 1 %22 = select i1 %20, i64 25, i64 %21 %23 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %22) #32 - %24 = getelementptr inbounds i8, ptr %8, i64 16 + %24 = getelementptr inbounds i8, ptr %6, i64 16 store ptr %23, ptr %24, align 8 %25 = or i64 %22, 1 - store i64 %25, ptr %8, align 8 - %26 = getelementptr inbounds i8, ptr %8, i64 8 + store i64 %25, ptr %6, align 8 + %26 = getelementptr inbounds i8, ptr %6, i64 8 store i64 %9, ptr %26, align 8 br label %27 @@ -13743,14 +13743,14 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000INS_1 store i8 0, ptr %.1.lcssa.i.i.i, align 1 %28 = getelementptr inbounds i8, ptr %1, i64 16 %29 = load ptr, ptr %28, align 8 - %30 = load i8, ptr %8, align 8 + %30 = load i8, ptr %6, align 8 %31 = and i8 %30, 1 %.not.i.i = icmp eq i8 %31, 0 - %32 = getelementptr inbounds i8, ptr %8, i64 16 + %32 = getelementptr inbounds i8, ptr %6, i64 16 %33 = load ptr, ptr %32, align 8 - %34 = getelementptr inbounds i8, ptr %8, i64 1 + %34 = getelementptr inbounds i8, ptr %6, i64 1 %35 = select i1 %.not.i.i, ptr %34, ptr %33 - %36 = getelementptr inbounds i8, ptr %8, i64 8 + %36 = getelementptr inbounds i8, ptr %6, i64 8 %37 = load i64, ptr %36, align 8 %38 = lshr i8 %30, 1 %39 = zext nneg i8 %38 to i64 @@ -13779,7 +13779,7 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000INS_1 53: ; preds = %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000INS_11__wrap_iterIPcEETnNS_9enable_ifIXsr29__has_input_iterator_categoryIT_EE5valueEiE4typeELi0EEESB_SB_.exit %54 = landingpad { ptr, i32 } cleanup - call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #29 + call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #29 resume { ptr, i32 } %54 55: ; preds = %45 @@ -13810,7 +13810,7 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000INS_1 br label %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE5clearB8ne190000Ev.exit _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE5clearB8ne190000Ev.exit: ; preds = %65, %62, %55, %45 - call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #29 + call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #29 ret void } @@ -13927,15 +13927,15 @@ define linkonce_odr hidden void @_ZNSt3__119__throw_regex_errorB8ne190000ILNS_15 ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local noundef zeroext i16 @_ZNKSt3__112regex_traitsIcE18__lookup_classnameINS_11__wrap_iterIPKcEEEEtT_S7_bc(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr %1, ptr %2, i1 noundef zeroext %3, i8 noundef signext %4) local_unnamed_addr #3 comdat align 2 personality ptr @__gxx_personality_v0 { - %6 = ptrtoint ptr %1 to i64 + %6 = alloca %"class.std::__1::basic_string.2", align 8 %7 = ptrtoint ptr %2 to i64 - %8 = alloca %"class.std::__1::basic_string.2", align 8 - %9 = sub i64 %7, %6 + %8 = ptrtoint ptr %1 to i64 + %9 = sub i64 %7, %8 %10 = icmp ugt i64 %9, -9 br i1 %10, label %11, label %12 11: ; preds = %5 - call void @_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE20__throw_length_errorB8ne190000Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #31 + call void @_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE20__throw_length_errorB8ne190000Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #31 unreachable 12: ; preds = %5 @@ -13945,8 +13945,8 @@ define linkonce_odr dso_local noundef zeroext i16 @_ZNKSt3__112regex_traitsIcE18 14: ; preds = %12 %15 = trunc nuw i64 %9 to i8 %16 = shl nuw nsw i8 %15, 1 - store i8 %16, ptr %8, align 8 - %17 = getelementptr inbounds i8, ptr %8, i64 1 + store i8 %16, ptr %6, align 8 + %17 = getelementptr inbounds i8, ptr %6, i64 1 br label %27 18: ; preds = %12 @@ -13955,11 +13955,11 @@ define linkonce_odr dso_local noundef zeroext i16 @_ZNKSt3__112regex_traitsIcE18 %21 = add i64 %19, 1 %22 = select i1 %20, i64 25, i64 %21 %23 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %22) #32 - %24 = getelementptr inbounds i8, ptr %8, i64 16 + %24 = getelementptr inbounds i8, ptr %6, i64 16 store ptr %23, ptr %24, align 8 %25 = or i64 %22, 1 - store i64 %25, ptr %8, align 8 - %26 = getelementptr inbounds i8, ptr %8, i64 8 + store i64 %25, ptr %6, align 8 + %26 = getelementptr inbounds i8, ptr %6, i64 8 store i64 %9, ptr %26, align 8 br label %27 @@ -13978,14 +13978,14 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000INS_1 store i8 0, ptr %.1.lcssa.i.i.i, align 1 %28 = getelementptr inbounds i8, ptr %0, i64 8 %29 = load ptr, ptr %28, align 8 - %30 = load i8, ptr %8, align 8 + %30 = load i8, ptr %6, align 8 %31 = and i8 %30, 1 %.not.i.i = icmp eq i8 %31, 0 - %32 = getelementptr inbounds i8, ptr %8, i64 16 + %32 = getelementptr inbounds i8, ptr %6, i64 16 %33 = load ptr, ptr %32, align 8 - %34 = getelementptr inbounds i8, ptr %8, i64 1 + %34 = getelementptr inbounds i8, ptr %6, i64 1 %35 = select i1 %.not.i.i, ptr %34, ptr %33 - %36 = getelementptr inbounds i8, ptr %8, i64 8 + %36 = getelementptr inbounds i8, ptr %6, i64 8 %37 = load i64, ptr %36, align 8 %38 = lshr i8 %30, 1 %39 = zext nneg i8 %38 to i64 @@ -13998,7 +13998,7 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000INS_1 to label %_ZNKSt3__15ctypeIcE7tolowerB8ne190000EPcPKc.exit unwind label %52 _ZNKSt3__15ctypeIcE7tolowerB8ne190000EPcPKc.exit: ; preds = %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000INS_11__wrap_iterIPKcEETnNS_9enable_ifIXsr29__has_input_iterator_categoryIT_EE5valueEiE4typeELi0EEESC_SC_.exit - %46 = load i8, ptr %8, align 8 + %46 = load i8, ptr %6, align 8 %47 = and i8 %46, 1 %.not.i.i.i7 = icmp eq i8 %47, 0 %48 = load ptr, ptr %32, align 8 @@ -14007,13 +14007,13 @@ _ZNKSt3__15ctypeIcE7tolowerB8ne190000EPcPKc.exit: ; preds = %_ZNSt3__112basic_st to label %51 unwind label %52 51: ; preds = %_ZNKSt3__15ctypeIcE7tolowerB8ne190000EPcPKc.exit - call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #29 + call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #29 ret i16 %50 52: ; preds = %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000INS_11__wrap_iterIPKcEETnNS_9enable_ifIXsr29__has_input_iterator_categoryIT_EE5valueEiE4typeELi0EEESC_SC_.exit, %_ZNKSt3__15ctypeIcE7tolowerB8ne190000EPcPKc.exit %53 = landingpad { ptr, i32 } cleanup - call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #29 + call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #29 resume { ptr, i32 } %53 } @@ -14227,15 +14227,15 @@ _ZNSt3__16vectorIcNS_9allocatorIcEEE9push_backB8ne190000ERKc.exit: ; preds = %71 ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_ZNKSt3__112regex_traitsIcE9transformINS_11__wrap_iterIPcEEEENS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEET_SC_(ptr dead_on_unwind noalias writable sret(%"class.std::__1::basic_string.2") align 8 %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr %2, ptr %3) local_unnamed_addr #3 comdat align 2 personality ptr @__gxx_personality_v0 { - %5 = ptrtoint ptr %2 to i64 + %5 = alloca %"class.std::__1::basic_string.2", align 8 %6 = ptrtoint ptr %3 to i64 - %7 = alloca %"class.std::__1::basic_string.2", align 8 - %8 = sub i64 %6, %5 + %7 = ptrtoint ptr %2 to i64 + %8 = sub i64 %6, %7 %9 = icmp ugt i64 %8, -9 br i1 %9, label %10, label %11 10: ; preds = %4 - call void @_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE20__throw_length_errorB8ne190000Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #31 + call void @_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE20__throw_length_errorB8ne190000Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #31 unreachable 11: ; preds = %4 @@ -14245,8 +14245,8 @@ define linkonce_odr dso_local void @_ZNKSt3__112regex_traitsIcE9transformINS_11_ 13: ; preds = %11 %14 = trunc nuw i64 %8 to i8 %15 = shl nuw nsw i8 %14, 1 - store i8 %15, ptr %7, align 8 - %16 = getelementptr inbounds i8, ptr %7, i64 1 + store i8 %15, ptr %5, align 8 + %16 = getelementptr inbounds i8, ptr %5, i64 1 br label %26 17: ; preds = %11 @@ -14255,11 +14255,11 @@ define linkonce_odr dso_local void @_ZNKSt3__112regex_traitsIcE9transformINS_11_ %20 = add i64 %18, 1 %21 = select i1 %19, i64 25, i64 %20 %22 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %21) #32 - %23 = getelementptr inbounds i8, ptr %7, i64 16 + %23 = getelementptr inbounds i8, ptr %5, i64 16 store ptr %22, ptr %23, align 8 %24 = or i64 %21, 1 - store i64 %24, ptr %7, align 8 - %25 = getelementptr inbounds i8, ptr %7, i64 8 + store i64 %24, ptr %5, align 8 + %25 = getelementptr inbounds i8, ptr %5, i64 8 store i64 %8, ptr %25, align 8 br label %26 @@ -14278,14 +14278,14 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000INS_1 store i8 0, ptr %.1.lcssa.i.i.i, align 1 %27 = getelementptr inbounds i8, ptr %1, i64 16 %28 = load ptr, ptr %27, align 8 - %29 = load i8, ptr %7, align 8 + %29 = load i8, ptr %5, align 8 %30 = and i8 %29, 1 %.not.i.i = icmp eq i8 %30, 0 - %31 = getelementptr inbounds i8, ptr %7, i64 16 + %31 = getelementptr inbounds i8, ptr %5, i64 16 %32 = load ptr, ptr %31, align 8 - %33 = getelementptr inbounds i8, ptr %7, i64 1 + %33 = getelementptr inbounds i8, ptr %5, i64 1 %34 = select i1 %.not.i.i, ptr %33, ptr %32 - %35 = getelementptr inbounds i8, ptr %7, i64 8 + %35 = getelementptr inbounds i8, ptr %5, i64 8 %36 = load i64, ptr %35, align 8 %37 = lshr i8 %29, 1 %38 = zext nneg i8 %37 to i64 @@ -14298,13 +14298,13 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000INS_1 to label %44 unwind label %45 44: ; preds = %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000INS_11__wrap_iterIPcEETnNS_9enable_ifIXsr29__has_input_iterator_categoryIT_EE5valueEiE4typeELi0EEESB_SB_.exit - call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #29 + call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #29 ret void 45: ; preds = %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000INS_11__wrap_iterIPcEETnNS_9enable_ifIXsr29__has_input_iterator_categoryIT_EE5valueEiE4typeELi0EEESB_SB_.exit %46 = landingpad { ptr, i32 } cleanup - call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #29 + call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #29 resume { ptr, i32 } %46 } @@ -53228,36 +53228,36 @@ _ZNSt3__120back_insert_iteratorIN3fmt2v96detail6bufferIcEEEaSB8ne190000EOc.exit1 ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendB8ne190000IPKcTnNS_9enable_ifIXsr31__has_forward_iterator_categoryIT_EE5valueEiE4typeELi0EEERS5_SA_SA_(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef %1, ptr noundef %2) local_unnamed_addr #3 comdat align 2 personality ptr @__gxx_personality_v0 { - %4 = ptrtoint ptr %1 to i64 - %5 = ptrtoint ptr %2 to i64 - %6 = alloca %"class.std::__1::basic_string.2", align 8 - %7 = load i8, ptr %0, align 8 - %8 = and i8 %7, 1 - %.not.i = icmp eq i8 %8, 0 - %9 = getelementptr inbounds i8, ptr %0, i64 8 - %10 = load i64, ptr %9, align 8 - %11 = lshr i8 %7, 1 - %12 = zext nneg i8 %11 to i64 - %13 = select i1 %.not.i, i64 %12, i64 %10 - %14 = load i64, ptr %0, align 8 - %15 = and i64 %14, -2 - %16 = add i64 %15, -1 - %17 = select i1 %.not.i, i64 22, i64 %16 - %18 = sub i64 %5, %4 + %4 = alloca %"class.std::__1::basic_string.2", align 8 + %5 = load i8, ptr %0, align 8 + %6 = and i8 %5, 1 + %.not.i = icmp eq i8 %6, 0 + %7 = getelementptr inbounds i8, ptr %0, i64 8 + %8 = load i64, ptr %7, align 8 + %9 = lshr i8 %5, 1 + %10 = zext nneg i8 %9 to i64 + %11 = select i1 %.not.i, i64 %10, i64 %8 + %12 = load i64, ptr %0, align 8 + %13 = and i64 %12, -2 + %14 = add i64 %13, -1 + %15 = select i1 %.not.i, i64 22, i64 %14 + %16 = ptrtoint ptr %2 to i64 + %17 = ptrtoint ptr %1 to i64 + %18 = sub i64 %16, %17 %.not = icmp eq ptr %2, %1 br i1 %.not, label %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE10__set_sizeB8ne190000Em.exit, label %19 19: ; preds = %3 - %20 = trunc i64 %14 to i8 + %20 = trunc i64 %12 to i8 %21 = and i8 %20, 1 %.not.i.i.i = icmp eq i8 %21, 0 %22 = getelementptr inbounds i8, ptr %0, i64 16 %23 = load ptr, ptr %22, align 8 %24 = getelementptr inbounds i8, ptr %0, i64 1 %25 = select i1 %.not.i.i.i, ptr %24, ptr %23 - %26 = lshr i64 %14, 1 + %26 = lshr i64 %12, 1 %27 = and i64 %26, 127 - %28 = select i1 %.not.i.i.i, i64 %27, i64 %10 + %28 = select i1 %.not.i.i.i, i64 %27, i64 %8 %29 = getelementptr inbounds i8, ptr %25, i64 %28 %30 = getelementptr inbounds i8, ptr %29, i64 1 %31 = icmp uge ptr %1, %25 @@ -53266,15 +53266,15 @@ define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ br i1 %spec.select.i.i, label %52, label %33 33: ; preds = %19 - %34 = sub i64 %17, %13 + %34 = sub i64 %15, %11 %35 = icmp ult i64 %34, %18 br i1 %35, label %36, label %.lr.ph.preheader 36: ; preds = %33 - %37 = add i64 %13, %18 - %38 = sub i64 %37, %17 - tail call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9__grow_byEmmmmmm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %17, i64 noundef %38, i64 noundef %13, i64 noundef %13, i64 noundef 0, i64 noundef 0) - store i64 %13, ptr %9, align 8 + %37 = add i64 %11, %18 + %38 = sub i64 %37, %15 + tail call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9__grow_byEmmmmmm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %15, i64 noundef %38, i64 noundef %11, i64 noundef %11, i64 noundef 0, i64 noundef 0) + store i64 %11, ptr %7, align 8 %.pre = load i8, ptr %0, align 8 %.pre40 = load ptr, ptr %22, align 8 %.pre41 = and i8 %.pre, 1 @@ -53285,7 +53285,7 @@ define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ %39 = phi ptr [ %.pre40, %36 ], [ %23, %33 ] %.not.i32 = icmp eq i8 %.pre-phi, 0 %40 = select i1 %.not.i32, ptr %24, ptr %39 - %41 = getelementptr inbounds i8, ptr %40, i64 %13 + %41 = getelementptr inbounds i8, ptr %40, i64 %11 br label %.lr.ph .lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph @@ -53300,14 +53300,14 @@ define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ ._crit_edge: ; preds = %.lr.ph store i8 0, ptr %43, align 1 - %45 = add i64 %13, %18 + %45 = add i64 %11, %18 %46 = load i8, ptr %0, align 8 %47 = and i8 %46, 1 %.not.i33 = icmp eq i8 %47, 0 br i1 %.not.i33, label %49, label %48 48: ; preds = %._crit_edge - store i64 %45, ptr %9, align 8 + store i64 %45, ptr %7, align 8 br label %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE10__set_sizeB8ne190000Em.exit 49: ; preds = %._crit_edge @@ -53321,7 +53321,7 @@ define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ br i1 %53, label %54, label %55 54: ; preds = %52 - call void @_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE20__throw_length_errorB8ne190000Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #31 + call void @_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE20__throw_length_errorB8ne190000Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #31 unreachable 55: ; preds = %52 @@ -53331,8 +53331,8 @@ define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ 57: ; preds = %55 %58 = trunc nuw i64 %18 to i8 %59 = shl nuw nsw i8 %58, 1 - store i8 %59, ptr %6, align 8 - %60 = getelementptr inbounds i8, ptr %6, i64 1 + store i8 %59, ptr %4, align 8 + %60 = getelementptr inbounds i8, ptr %4, i64 1 br label %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000IPKcTnNS_9enable_ifIXsr29__has_input_iterator_categoryIT_EE5valueEiE4typeELi0EEESA_SA_RKS4_.exit 61: ; preds = %55 @@ -53341,11 +53341,11 @@ define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ %64 = add i64 %62, 1 %65 = select i1 %63, i64 25, i64 %64 %66 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %65) #32 - %67 = getelementptr inbounds i8, ptr %6, i64 16 + %67 = getelementptr inbounds i8, ptr %4, i64 16 store ptr %66, ptr %67, align 8 %68 = or i64 %65, 1 - store i64 %68, ptr %6, align 8 - %69 = getelementptr inbounds i8, ptr %6, i64 8 + store i64 %68, ptr %4, align 8 + %69 = getelementptr inbounds i8, ptr %4, i64 8 store i64 %18, ptr %69, align 8 br label %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000IPKcTnNS_9enable_ifIXsr29__has_input_iterator_categoryIT_EE5valueEiE4typeELi0EEESA_SA_RKS4_.exit @@ -53354,14 +53354,14 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000IPKcT call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %.016.i.i.i, ptr align 1 %1, i64 %18, i1 false) %scevgep = getelementptr i8, ptr %.016.i.i.i, i64 %18 store i8 0, ptr %scevgep, align 1 - %70 = load i8, ptr %6, align 8 + %70 = load i8, ptr %4, align 8 %71 = and i8 %70, 1 %.not.i.i = icmp eq i8 %71, 0 - %72 = getelementptr inbounds i8, ptr %6, i64 16 + %72 = getelementptr inbounds i8, ptr %4, i64 16 %73 = load ptr, ptr %72, align 8 - %74 = getelementptr inbounds i8, ptr %6, i64 1 + %74 = getelementptr inbounds i8, ptr %4, i64 1 %75 = select i1 %.not.i.i, ptr %74, ptr %73 - %76 = getelementptr inbounds i8, ptr %6, i64 8 + %76 = getelementptr inbounds i8, ptr %4, i64 8 %77 = load i64, ptr %76, align 8 %78 = lshr i8 %70, 1 %79 = zext nneg i8 %78 to i64 @@ -53370,13 +53370,13 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000IPKcT to label %82 unwind label %83 82: ; preds = %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000IPKcTnNS_9enable_ifIXsr29__has_input_iterator_categoryIT_EE5valueEiE4typeELi0EEESA_SA_RKS4_.exit - call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #29 + call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #29 br label %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE10__set_sizeB8ne190000Em.exit 83: ; preds = %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000IPKcTnNS_9enable_ifIXsr29__has_input_iterator_categoryIT_EE5valueEiE4typeELi0EEESA_SA_RKS4_.exit %84 = landingpad { ptr, i32 } cleanup - call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #29 + call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #29 resume { ptr, i32 } %84 _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE10__set_sizeB8ne190000Em.exit: ; preds = %49, %48, %82, %3 diff --git a/bench/tev/optimized/Ipc.cpp.ll b/bench/tev/optimized/Ipc.cpp.ll index 30caca08dc5..35f0f0acff7 100644 --- a/bench/tev/optimized/Ipc.cpp.ll +++ b/bench/tev/optimized/Ipc.cpp.ll @@ -51419,36 +51419,36 @@ declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3__113basic_ostream ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendB8ne190000IPKcTnNS_9enable_ifIXsr31__has_forward_iterator_categoryIT_EE5valueEiE4typeELi0EEERS5_SA_SA_(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef %1, ptr noundef %2) local_unnamed_addr #3 comdat align 2 personality ptr @__gxx_personality_v0 { - %4 = ptrtoint ptr %1 to i64 - %5 = ptrtoint ptr %2 to i64 - %6 = alloca %"class.std::__1::basic_string", align 8 - %7 = load i8, ptr %0, align 8 - %8 = and i8 %7, 1 - %.not.i = icmp eq i8 %8, 0 - %9 = getelementptr inbounds i8, ptr %0, i64 8 - %10 = load i64, ptr %9, align 8 - %11 = lshr i8 %7, 1 - %12 = zext nneg i8 %11 to i64 - %13 = select i1 %.not.i, i64 %12, i64 %10 - %14 = load i64, ptr %0, align 8 - %15 = and i64 %14, -2 - %16 = add i64 %15, -1 - %17 = select i1 %.not.i, i64 22, i64 %16 - %18 = sub i64 %5, %4 + %4 = alloca %"class.std::__1::basic_string", align 8 + %5 = load i8, ptr %0, align 8 + %6 = and i8 %5, 1 + %.not.i = icmp eq i8 %6, 0 + %7 = getelementptr inbounds i8, ptr %0, i64 8 + %8 = load i64, ptr %7, align 8 + %9 = lshr i8 %5, 1 + %10 = zext nneg i8 %9 to i64 + %11 = select i1 %.not.i, i64 %10, i64 %8 + %12 = load i64, ptr %0, align 8 + %13 = and i64 %12, -2 + %14 = add i64 %13, -1 + %15 = select i1 %.not.i, i64 22, i64 %14 + %16 = ptrtoint ptr %2 to i64 + %17 = ptrtoint ptr %1 to i64 + %18 = sub i64 %16, %17 %.not = icmp eq ptr %2, %1 br i1 %.not, label %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE10__set_sizeB8ne190000Em.exit, label %19 19: ; preds = %3 - %20 = trunc i64 %14 to i8 + %20 = trunc i64 %12 to i8 %21 = and i8 %20, 1 %.not.i.i.i = icmp eq i8 %21, 0 %22 = getelementptr inbounds i8, ptr %0, i64 16 %23 = load ptr, ptr %22, align 8 %24 = getelementptr inbounds i8, ptr %0, i64 1 %25 = select i1 %.not.i.i.i, ptr %24, ptr %23 - %26 = lshr i64 %14, 1 + %26 = lshr i64 %12, 1 %27 = and i64 %26, 127 - %28 = select i1 %.not.i.i.i, i64 %27, i64 %10 + %28 = select i1 %.not.i.i.i, i64 %27, i64 %8 %29 = getelementptr inbounds i8, ptr %25, i64 %28 %30 = getelementptr inbounds i8, ptr %29, i64 1 %31 = icmp uge ptr %1, %25 @@ -51457,15 +51457,15 @@ define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ br i1 %spec.select.i.i, label %52, label %33 33: ; preds = %19 - %34 = sub i64 %17, %13 + %34 = sub i64 %15, %11 %35 = icmp ult i64 %34, %18 br i1 %35, label %36, label %.lr.ph.preheader 36: ; preds = %33 - %37 = add i64 %13, %18 - %38 = sub i64 %37, %17 - tail call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9__grow_byEmmmmmm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %17, i64 noundef %38, i64 noundef %13, i64 noundef %13, i64 noundef 0, i64 noundef 0) - store i64 %13, ptr %9, align 8 + %37 = add i64 %11, %18 + %38 = sub i64 %37, %15 + tail call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9__grow_byEmmmmmm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %15, i64 noundef %38, i64 noundef %11, i64 noundef %11, i64 noundef 0, i64 noundef 0) + store i64 %11, ptr %7, align 8 %.pre = load i8, ptr %0, align 8 %.pre40 = load ptr, ptr %22, align 8 %.pre41 = and i8 %.pre, 1 @@ -51476,7 +51476,7 @@ define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ %39 = phi ptr [ %.pre40, %36 ], [ %23, %33 ] %.not.i32 = icmp eq i8 %.pre-phi, 0 %40 = select i1 %.not.i32, ptr %24, ptr %39 - %41 = getelementptr inbounds i8, ptr %40, i64 %13 + %41 = getelementptr inbounds i8, ptr %40, i64 %11 br label %.lr.ph .lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph @@ -51491,14 +51491,14 @@ define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ ._crit_edge: ; preds = %.lr.ph store i8 0, ptr %43, align 1 - %45 = add i64 %13, %18 + %45 = add i64 %11, %18 %46 = load i8, ptr %0, align 8 %47 = and i8 %46, 1 %.not.i33 = icmp eq i8 %47, 0 br i1 %.not.i33, label %49, label %48 48: ; preds = %._crit_edge - store i64 %45, ptr %9, align 8 + store i64 %45, ptr %7, align 8 br label %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE10__set_sizeB8ne190000Em.exit 49: ; preds = %._crit_edge @@ -51512,7 +51512,7 @@ define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ br i1 %53, label %54, label %55 54: ; preds = %52 - call void @_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE20__throw_length_errorB8ne190000Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #29 + call void @_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE20__throw_length_errorB8ne190000Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #29 unreachable 55: ; preds = %52 @@ -51522,8 +51522,8 @@ define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ 57: ; preds = %55 %58 = trunc nuw i64 %18 to i8 %59 = shl nuw nsw i8 %58, 1 - store i8 %59, ptr %6, align 8 - %60 = getelementptr inbounds i8, ptr %6, i64 1 + store i8 %59, ptr %4, align 8 + %60 = getelementptr inbounds i8, ptr %4, i64 1 br label %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000IPKcTnNS_9enable_ifIXsr29__has_input_iterator_categoryIT_EE5valueEiE4typeELi0EEESA_SA_RKS4_.exit 61: ; preds = %55 @@ -51532,11 +51532,11 @@ define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ %64 = add i64 %62, 1 %65 = select i1 %63, i64 25, i64 %64 %66 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %65) #30 - %67 = getelementptr inbounds i8, ptr %6, i64 16 + %67 = getelementptr inbounds i8, ptr %4, i64 16 store ptr %66, ptr %67, align 8 %68 = or i64 %65, 1 - store i64 %68, ptr %6, align 8 - %69 = getelementptr inbounds i8, ptr %6, i64 8 + store i64 %68, ptr %4, align 8 + %69 = getelementptr inbounds i8, ptr %4, i64 8 store i64 %18, ptr %69, align 8 br label %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000IPKcTnNS_9enable_ifIXsr29__has_input_iterator_categoryIT_EE5valueEiE4typeELi0EEESA_SA_RKS4_.exit @@ -51545,14 +51545,14 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000IPKcT call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %.016.i.i.i, ptr align 1 %1, i64 %18, i1 false) %scevgep = getelementptr i8, ptr %.016.i.i.i, i64 %18 store i8 0, ptr %scevgep, align 1 - %70 = load i8, ptr %6, align 8 + %70 = load i8, ptr %4, align 8 %71 = and i8 %70, 1 %.not.i.i = icmp eq i8 %71, 0 - %72 = getelementptr inbounds i8, ptr %6, i64 16 + %72 = getelementptr inbounds i8, ptr %4, i64 16 %73 = load ptr, ptr %72, align 8 - %74 = getelementptr inbounds i8, ptr %6, i64 1 + %74 = getelementptr inbounds i8, ptr %4, i64 1 %75 = select i1 %.not.i.i, ptr %74, ptr %73 - %76 = getelementptr inbounds i8, ptr %6, i64 8 + %76 = getelementptr inbounds i8, ptr %4, i64 8 %77 = load i64, ptr %76, align 8 %78 = lshr i8 %70, 1 %79 = zext nneg i8 %78 to i64 @@ -51561,13 +51561,13 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000IPKcT to label %82 unwind label %83 82: ; preds = %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000IPKcTnNS_9enable_ifIXsr29__has_input_iterator_categoryIT_EE5valueEiE4typeELi0EEESA_SA_RKS4_.exit - call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #27 + call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #27 br label %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE10__set_sizeB8ne190000Em.exit 83: ; preds = %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne190000IPKcTnNS_9enable_ifIXsr29__has_input_iterator_categoryIT_EE5valueEiE4typeELi0EEESA_SA_RKS4_.exit %84 = landingpad { ptr, i32 } cleanup - call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #27 + call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #27 resume { ptr, i32 } %84 _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE10__set_sizeB8ne190000Em.exit: ; preds = %49, %48, %82, %3 diff --git a/bench/tree-sitter-rs/optimized/22d6a9i5y5n3b962.ll b/bench/tree-sitter-rs/optimized/22d6a9i5y5n3b962.ll index 7817646aecc..86782cd1821 100644 --- a/bench/tree-sitter-rs/optimized/22d6a9i5y5n3b962.ll +++ b/bench/tree-sitter-rs/optimized/22d6a9i5y5n3b962.ll @@ -15073,7 +15073,7 @@ _ZN4core5slice4sort15partition_equal17hb17bc10d39247afbE.exit: ; preds = %274 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17haed4680e454a16bdE.exit.i": ; preds = %.preheader.i, %_ZN4core5slice4sort11insert_tail17h9993fa740a808ec0E.exit.i %.sroa.01.05.i = phi i64 [ %297, %_ZN4core5slice4sort11insert_tail17h9993fa740a808ec0E.exit.i ], [ 1, %.preheader.i ] - %297 = add nuw i64 %.sroa.01.05.i, 1 + %297 = add nuw nsw i64 %.sroa.01.05.i, 1 call void @llvm.experimental.noalias.scope.decl(metadata !2992) %298 = getelementptr ptr, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.05.i %299 = getelementptr i8, ptr %298, i64 -8 @@ -15086,7 +15086,7 @@ _ZN4core5slice4sort15partition_equal17hb17bc10d39247afbE.exit: ; preds = %274 302: ; preds = %"_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17haed4680e454a16bdE.exit.i" %303 = ptrtoint ptr %.val12.i.i to i64 store i64 %303, ptr %298, align 8, !alias.scope !2995 - %304 = add i64 %.sroa.01.05.i, -1 + %304 = add nsw i64 %.sroa.01.05.i, -1 %.not8.i.i = icmp eq i64 %304, 0 br i1 %.not8.i.i, label %.thread.i.i63, label %.lr.ph.i.i62 @@ -15099,7 +15099,7 @@ _ZN4core5slice4sort15partition_equal17hb17bc10d39247afbE.exit: ; preds = %274 .lr.ph.i.i62: ; preds = %302, %312 %.sroa.4.010.i.i = phi i64 [ %306, %312 ], [ %304, %302 ] %.sroa.5.09.i.i = phi ptr [ %307, %312 ], [ %299, %302 ] - %306 = add i64 %.sroa.4.010.i.i, -1 + %306 = add nsw i64 %.sroa.4.010.i.i, -1 %307 = getelementptr inbounds ptr, ptr %.sroa.0.0.lcssa, i64 %306 %.val10.i.i = load ptr, ptr %307, align 8, !alias.scope !2995, !nonnull !14, !align !428, !noundef !14 %308 = ptrtoint ptr %.val10.i.i to i64 @@ -18599,7 +18599,7 @@ _ZN4core5slice4sort15partition_equal17hd9557f8b4be60999E.exit: ; preds = %342 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h68fd802d71eeec0cE.exit.i": ; preds = %.preheader.i, %_ZN4core5slice4sort11insert_tail17h9c4e8555fa9797a9E.exit.i %.sroa.01.04.i = phi i64 [ %364, %_ZN4core5slice4sort11insert_tail17h9c4e8555fa9797a9E.exit.i ], [ 1, %.preheader.i ] - %364 = add nuw i64 %.sroa.01.04.i, 1 + %364 = add nuw nsw i64 %.sroa.01.04.i, 1 call void @llvm.experimental.noalias.scope.decl(metadata !3915) %365 = getelementptr { ptr, ptr }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.04.i %366 = getelementptr i8, ptr %365, i64 -16 @@ -18621,7 +18621,7 @@ _ZN4core5slice4sort15partition_equal17hd9557f8b4be60999E.exit: ; preds = %342 %374 = getelementptr i8, ptr %365, i64 8 %375 = load ptr, ptr %374, align 8, !alias.scope !3918, !nonnull !14, !align !428, !noundef !14 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %365, ptr noundef nonnull align 8 dereferenceable(16) %366, i64 16, i1 false), !alias.scope !3918 - %376 = add i64 %.sroa.01.04.i, -1 + %376 = add nsw i64 %.sroa.01.04.i, -1 %.not8.i.i = icmp eq i64 %376, 0 br i1 %.not8.i.i, label %.thread.i.i68, label %.lr.ph.i.i67 @@ -18635,7 +18635,7 @@ _ZN4core5slice4sort15partition_equal17hd9557f8b4be60999E.exit: ; preds = %342 .lr.ph.i.i67: ; preds = %373, %384 %.sroa.4.010.i.i = phi i64 [ %377, %384 ], [ %376, %373 ] %.sroa.5.09.i.i = phi ptr [ %378, %384 ], [ %366, %373 ] - %377 = add i64 %.sroa.4.010.i.i, -1 + %377 = add nsw i64 %.sroa.4.010.i.i, -1 %378 = getelementptr inbounds { ptr, ptr }, ptr %.sroa.0.0.lcssa, i64 %377 %.val10.i.i = load ptr, ptr %378, align 8, !alias.scope !3918, !nonnull !14, !align !428, !noundef !14 %.val2.i.i19.i.i = load i64, ptr %.val10.i.i, align 8, !noalias !3918 @@ -24091,7 +24091,7 @@ _ZN4core5slice4sort15partition_equal17h96257515dce2454fE.exit: ; preds = %242 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h00fb7f6f18a0fcf2E.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17h6f369fb6c248b36dE.exit.i %.sroa.01.04.i = phi i64 [ %261, %_ZN4core5slice4sort11insert_tail17h6f369fb6c248b36dE.exit.i ], [ 1, %.outer._crit_edge ] - %261 = add nuw i64 %.sroa.01.04.i, 1 + %261 = add nuw nsw i64 %.sroa.01.04.i, 1 %262 = getelementptr i32, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.04.i %263 = getelementptr i8, ptr %262, i64 -4 %.val11.i.i = load i32, ptr %262, align 4, !alias.scope !4729, !noundef !14 @@ -24101,7 +24101,7 @@ _ZN4core5slice4sort15partition_equal17h96257515dce2454fE.exit: ; preds = %242 265: ; preds = %"_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h00fb7f6f18a0fcf2E.exit.i" store i32 %.val12.i.i, ptr %262, align 4, !alias.scope !4729 - %266 = add i64 %.sroa.01.04.i, -1 + %266 = add nsw i64 %.sroa.01.04.i, -1 %.not8.i.i = icmp eq i64 %266, 0 br i1 %.not8.i.i, label %.thread.i.i59, label %.lr.ph.i.i58 @@ -24113,7 +24113,7 @@ _ZN4core5slice4sort15partition_equal17h96257515dce2454fE.exit: ; preds = %242 .lr.ph.i.i58: ; preds = %265, %270 %.sroa.4.010.i.i = phi i64 [ %267, %270 ], [ %266, %265 ] %.sroa.5.09.i.i = phi ptr [ %268, %270 ], [ %263, %265 ] - %267 = add i64 %.sroa.4.010.i.i, -1 + %267 = add nsw i64 %.sroa.4.010.i.i, -1 %268 = getelementptr inbounds i32, ptr %.sroa.0.0.lcssa, i64 %267 %.val10.i.i = load i32, ptr %268, align 4, !alias.scope !4729, !noundef !14 %269 = icmp ult i32 %.val11.i.i, %.val10.i.i @@ -25001,7 +25001,7 @@ _ZN4core5slice4sort15partition_equal17h28633826902f4c6eE.exit: ; preds = %342 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17hb4351bcd36a5ece2E.exit.i": ; preds = %.preheader.i, %_ZN4core5slice4sort11insert_tail17hefdd1bc57bc12bd4E.exit.i %.sroa.01.04.i = phi i64 [ %364, %_ZN4core5slice4sort11insert_tail17hefdd1bc57bc12bd4E.exit.i ], [ 1, %.preheader.i ] - %364 = add nuw i64 %.sroa.01.04.i, 1 + %364 = add nuw nsw i64 %.sroa.01.04.i, 1 call void @llvm.experimental.noalias.scope.decl(metadata !4834) %365 = getelementptr { ptr, ptr }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.04.i %366 = getelementptr i8, ptr %365, i64 -16 @@ -25023,7 +25023,7 @@ _ZN4core5slice4sort15partition_equal17h28633826902f4c6eE.exit: ; preds = %342 %374 = getelementptr i8, ptr %365, i64 8 %375 = load ptr, ptr %374, align 8, !alias.scope !4837, !nonnull !14, !align !428, !noundef !14 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %365, ptr noundef nonnull align 8 dereferenceable(16) %366, i64 16, i1 false), !alias.scope !4837 - %376 = add i64 %.sroa.01.04.i, -1 + %376 = add nsw i64 %.sroa.01.04.i, -1 %.not8.i.i = icmp eq i64 %376, 0 br i1 %.not8.i.i, label %.thread.i.i68, label %.lr.ph.i.i67 @@ -25037,7 +25037,7 @@ _ZN4core5slice4sort15partition_equal17h28633826902f4c6eE.exit: ; preds = %342 .lr.ph.i.i67: ; preds = %373, %384 %.sroa.4.010.i.i = phi i64 [ %377, %384 ], [ %376, %373 ] %.sroa.5.09.i.i = phi ptr [ %378, %384 ], [ %366, %373 ] - %377 = add i64 %.sroa.4.010.i.i, -1 + %377 = add nsw i64 %.sroa.4.010.i.i, -1 %378 = getelementptr inbounds { ptr, ptr }, ptr %.sroa.0.0.lcssa, i64 %377 %.val10.i.i = load ptr, ptr %378, align 8, !alias.scope !4837, !nonnull !14, !align !428, !noundef !14 %.val2.i.i19.i.i = load i64, ptr %.val10.i.i, align 8, !noalias !4837 @@ -28482,7 +28482,7 @@ _ZN4core5slice4sort15partition_equal17he9192121ca54c0f6E.exit: ; preds = %336 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17hc9d6e8ac18c8491bE.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17h3a25ff260a818d79E.exit.i %.sroa.01.04.i = phi i64 [ %358, %_ZN4core5slice4sort11insert_tail17h3a25ff260a818d79E.exit.i ], [ 1, %.outer._crit_edge ] - %358 = add nuw i64 %.sroa.01.04.i, 1 + %358 = add nuw nsw i64 %.sroa.01.04.i, 1 %359 = getelementptr { i64, i8 }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.04.i %360 = getelementptr i8, ptr %359, i64 -16 %.val13.i.i = load i64, ptr %359, align 8, !alias.scope !5746 @@ -28499,7 +28499,7 @@ _ZN4core5slice4sort15partition_equal17he9192121ca54c0f6E.exit: ; preds = %336 367: ; preds = %"_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17hc9d6e8ac18c8491bE.exit.i" call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %359, ptr noundef nonnull align 8 dereferenceable(16) %360, i64 16, i1 false), !alias.scope !5746 - %368 = add i64 %.sroa.01.04.i, -1 + %368 = add nsw i64 %.sroa.01.04.i, -1 %.not8.i.i = icmp eq i64 %368, 0 br i1 %.not8.i.i, label %.thread.i.i60, label %.lr.ph.i.i59 @@ -28513,7 +28513,7 @@ _ZN4core5slice4sort15partition_equal17he9192121ca54c0f6E.exit: ; preds = %336 .lr.ph.i.i59: ; preds = %367, %376 %.sroa.4.010.i.i = phi i64 [ %369, %376 ], [ %368, %367 ] %.sroa.5.09.i.i = phi ptr [ %370, %376 ], [ %360, %367 ] - %369 = add i64 %.sroa.4.010.i.i, -1 + %369 = add nsw i64 %.sroa.4.010.i.i, -1 %370 = getelementptr inbounds { i64, i8 }, ptr %.sroa.0.0.lcssa, i64 %369 %.val11.i.i = load i64, ptr %370, align 8, !alias.scope !5746 %371 = getelementptr i8, ptr %370, i64 8 @@ -29274,7 +29274,7 @@ _ZN4core5slice4sort15partition_equal17hb3da8c0615646284E.exit: ; preds = %272 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17hfff6bdfccb8a421aE.exit.i": ; preds = %.preheader.i, %_ZN4core5slice4sort11insert_tail17h81fcf88072ebe4f6E.exit.i %.sroa.01.05.i = phi i64 [ %293, %_ZN4core5slice4sort11insert_tail17h81fcf88072ebe4f6E.exit.i ], [ 1, %.preheader.i ] - %293 = add nuw i64 %.sroa.01.05.i, 1 + %293 = add nuw nsw i64 %.sroa.01.05.i, 1 call void @llvm.experimental.noalias.scope.decl(metadata !5881) %294 = getelementptr { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.05.i %295 = getelementptr i8, ptr %294, i64 -56 @@ -29286,7 +29286,7 @@ _ZN4core5slice4sort15partition_equal17hb3da8c0615646284E.exit: ; preds = %272 call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %6), !noalias !5884 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull align 8 dereferenceable(56) %294, i64 56, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %294, ptr noundef nonnull align 8 dereferenceable(56) %295, i64 56, i1 false), !alias.scope !5884 - %299 = add i64 %.sroa.01.05.i, -1 + %299 = add nsw i64 %.sroa.01.05.i, -1 %.not7.i.i = icmp eq i64 %299, 0 br i1 %.not7.i.i, label %.thread.i.i63, label %.lr.ph.i.i62 @@ -29299,7 +29299,7 @@ _ZN4core5slice4sort15partition_equal17hb3da8c0615646284E.exit: ; preds = %272 .lr.ph.i.i62: ; preds = %298, %305 %.sroa.4.09.i.i = phi i64 [ %300, %305 ], [ %299, %298 ] %.sroa.5.08.i.i = phi ptr [ %301, %305 ], [ %295, %298 ] - %300 = add i64 %.sroa.4.09.i.i, -1 + %300 = add nsw i64 %.sroa.4.09.i.i, -1 %301 = getelementptr inbounds { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0.lcssa, i64 %300 %302 = invoke noundef range(i8 -1, 2) i8 @"_ZN79_$LT$tree_sitter_cli..generate..nfa..CharacterSet$u20$as$u20$core..cmp..Ord$GT$3cmp17h8b841ff6f2efaf85E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %301) to label %303 unwind label %306 @@ -30073,7 +30073,7 @@ _ZN4core5slice4sort15partition_equal17h886a5c4d0f58362fE.exit: ; preds = %285 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17hce031f36b8f43025E.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17ha3d080db28522177E.exit.i %.sroa.01.04.i = phi i64 [ %306, %_ZN4core5slice4sort11insert_tail17ha3d080db28522177E.exit.i ], [ 1, %.outer._crit_edge ] - %306 = add nuw i64 %.sroa.01.04.i, 1 + %306 = add nuw nsw i64 %.sroa.01.04.i, 1 %307 = getelementptr { { i64, i8 }, { { { ptr, i64 }, i64, { {} }, {} } } }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.04.i %308 = getelementptr i8, ptr %307, i64 32 %.val11.i.i = load i64, ptr %308, align 8, !alias.scope !5954, !noundef !14 @@ -30091,7 +30091,7 @@ _ZN4core5slice4sort15partition_equal17h886a5c4d0f58362fE.exit: ; preds = %285 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %.sroa.0.i.i62) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.0.i.i62, ptr noundef nonnull align 8 dereferenceable(32) %307, i64 32, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %307, ptr noundef nonnull align 8 dereferenceable(40) %316, i64 40, i1 false), !alias.scope !5954 - %317 = add i64 %.sroa.01.04.i, -1 + %317 = add nsw i64 %.sroa.01.04.i, -1 %.not9.i.i = icmp eq i64 %317, 0 br i1 %.not9.i.i, label %.thread.i.i66, label %.lr.ph.i.i65 @@ -30106,7 +30106,7 @@ _ZN4core5slice4sort15partition_equal17h886a5c4d0f58362fE.exit: ; preds = %285 .lr.ph.i.i65: ; preds = %315, %324 %.sroa.4.011.i.i = phi i64 [ %318, %324 ], [ %317, %315 ] %.sroa.5.010.i.i = phi ptr [ %319, %324 ], [ %316, %315 ] - %318 = add i64 %.sroa.4.011.i.i, -1 + %318 = add nsw i64 %.sroa.4.011.i.i, -1 %319 = getelementptr inbounds { { i64, i8 }, { { { ptr, i64 }, i64, { {} }, {} } } }, ptr %.sroa.0.0.lcssa, i64 %318 %320 = getelementptr i8, ptr %319, i64 32 %.val10.i.i = load i64, ptr %320, align 8, !alias.scope !5954, !noundef !14 @@ -32135,7 +32135,7 @@ _ZN4core5slice4sort15partition_equal17hb38a0449e15a56ecE.exit: ; preds = %"_ZN4c "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h54b4e598c08213e9E.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17h0ccf6240b9c14b06E.exit.i %.sroa.01.04.i = phi i64 [ %354, %_ZN4core5slice4sort11insert_tail17h0ccf6240b9c14b06E.exit.i ], [ 1, %.outer._crit_edge ] - %354 = add nuw i64 %.sroa.01.04.i, 1 + %354 = add nuw nsw i64 %.sroa.01.04.i, 1 %355 = getelementptr { { { { i64, ptr }, i64 } }, { i64, i64 }, i8, [7 x i8] }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.04.i %356 = getelementptr i8, ptr %355, i64 -48 %357 = getelementptr i8, ptr %355, i64 24 @@ -32161,7 +32161,7 @@ _ZN4core5slice4sort15partition_equal17hb38a0449e15a56ecE.exit: ; preds = %"_ZN4c %.sroa.68.0..sroa_idx.i.i = getelementptr i8, ptr %355, i64 40 %364 = load i64, ptr %.sroa.68.0..sroa_idx.i.i, align 8, !alias.scope !6249 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %355, ptr noundef nonnull align 8 dereferenceable(48) %356, i64 48, i1 false), !alias.scope !6249 - %365 = add i64 %.sroa.01.04.i, -1 + %365 = add nsw i64 %.sroa.01.04.i, -1 %.not15.i.i = icmp eq i64 %365, 0 br i1 %.not15.i.i, label %.thread.i.i68, label %.lr.ph.i.i67 @@ -32180,7 +32180,7 @@ _ZN4core5slice4sort15partition_equal17hb38a0449e15a56ecE.exit: ; preds = %"_ZN4c .lr.ph.i.i67: ; preds = %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17hed2cf1391e05d76bE.exit.thread.i.i", %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17hed2cf1391e05d76bE.exit23.thread.i.i" %.sroa.4.017.i.i = phi i64 [ %366, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17hed2cf1391e05d76bE.exit23.thread.i.i" ], [ %365, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17hed2cf1391e05d76bE.exit.thread.i.i" ] %.sroa.5.016.i.i = phi ptr [ %367, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17hed2cf1391e05d76bE.exit23.thread.i.i" ], [ %356, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17hed2cf1391e05d76bE.exit.thread.i.i" ] - %366 = add i64 %.sroa.4.017.i.i, -1 + %366 = add nsw i64 %.sroa.4.017.i.i, -1 %367 = getelementptr inbounds { { { { i64, ptr }, i64 } }, { i64, i64 }, i8, [7 x i8] }, ptr %.sroa.0.0.lcssa, i64 %366 %368 = getelementptr i8, ptr %367, i64 24 %.val11.i.i = load i64, ptr %368, align 8, !alias.scope !6249, !noundef !14 diff --git a/bench/wasmtime-rs/optimized/26trd4atg57wyjbd.ll b/bench/wasmtime-rs/optimized/26trd4atg57wyjbd.ll index 57a2fd02585..c24dff51e9d 100644 --- a/bench/wasmtime-rs/optimized/26trd4atg57wyjbd.ll +++ b/bench/wasmtime-rs/optimized/26trd4atg57wyjbd.ll @@ -8401,7 +8401,7 @@ _ZN4core5slice4sort15partition_equal17h0713d2d98a1e4dc2E.exit: ; preds = %252 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h2211a7cb152d401fE.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17h722d75d1b129a2acE.exit.i %.sroa.01.03.i = phi i64 [ %271, %_ZN4core5slice4sort11insert_tail17h722d75d1b129a2acE.exit.i ], [ 1, %.outer._crit_edge ] - %271 = add nuw i64 %.sroa.01.03.i, 1 + %271 = add nuw nsw i64 %.sroa.01.03.i, 1 %272 = getelementptr { { i32, i32 }, i32, i32, i32 }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.03.i %273 = getelementptr i8, ptr %272, i64 -20 %.val13.i.i = load i32, ptr %272, align 4, !alias.scope !1020, !noundef !14 @@ -8420,7 +8420,7 @@ _ZN4core5slice4sort15partition_equal17h0713d2d98a1e4dc2E.exit: ; preds = %252 %.sroa.5.0..sroa_idx.i.i = getelementptr i8, ptr %272, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(12) %.sroa.7.i.i, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.5.0..sroa_idx.i.i, i64 12, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %272, ptr noundef nonnull align 4 dereferenceable(20) %273, i64 20, i1 false), !alias.scope !1020 - %281 = add i64 %.sroa.01.03.i, -1 + %281 = add nsw i64 %.sroa.01.03.i, -1 %.not11.i.i = icmp eq i64 %281, 0 br i1 %.not11.i.i, label %.thread.i.i75, label %.lr.ph.i.i74 @@ -8437,7 +8437,7 @@ _ZN4core5slice4sort15partition_equal17h0713d2d98a1e4dc2E.exit: ; preds = %252 .lr.ph.i.i74: ; preds = %280, %285 %.sroa.4.013.i.i = phi i64 [ %282, %285 ], [ %281, %280 ] %.sroa.5.012.i.i = phi ptr [ %283, %285 ], [ %273, %280 ] - %282 = add i64 %.sroa.4.013.i.i, -1 + %282 = add nsw i64 %.sroa.4.013.i.i, -1 %283 = getelementptr inbounds { { i32, i32 }, i32, i32, i32 }, ptr %.sroa.0.0.lcssa, i64 %282 %.val11.i.i = load i64, ptr %283, align 4, !alias.scope !1020 %284 = icmp ult i64 %278, %.val11.i.i @@ -9281,7 +9281,7 @@ _ZN4core5slice4sort15partition_equal17hd393d49b83ca267eE.exit: ; preds = %323 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h2dd6082cdf402110E.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17h1472faa13dd1e09dE.exit.i %.sroa.01.03.i = phi i64 [ %346, %_ZN4core5slice4sort11insert_tail17h1472faa13dd1e09dE.exit.i ], [ 1, %.outer._crit_edge ] - %346 = add nuw i64 %.sroa.01.03.i, 1 + %346 = add nuw nsw i64 %.sroa.01.03.i, 1 %347 = getelementptr { i32, i32 }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.03.i %348 = getelementptr i8, ptr %347, i64 -8 %.val13.i.i = load i32, ptr %347, align 4, !alias.scope !1104, !noundef !14 @@ -9299,7 +9299,7 @@ _ZN4core5slice4sort15partition_equal17hd393d49b83ca267eE.exit: ; preds = %323 354: ; preds = %"_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h2dd6082cdf402110E.exit.i" %355 = load i64, ptr %348, align 4, !alias.scope !1104 store i64 %355, ptr %347, align 4, !alias.scope !1104 - %356 = add i64 %.sroa.01.03.i, -1 + %356 = add nsw i64 %.sroa.01.03.i, -1 %.not13.i.i = icmp eq i64 %356, 0 br i1 %.not13.i.i, label %.thread.i.i71, label %.lr.ph.i.i70 @@ -9315,7 +9315,7 @@ _ZN4core5slice4sort15partition_equal17hd393d49b83ca267eE.exit: ; preds = %323 .lr.ph.i.i70: ; preds = %354, %363 %.sroa.4.015.i.i = phi i64 [ %357, %363 ], [ %356, %354 ] %.sroa.5.014.i.i = phi ptr [ %358, %363 ], [ %348, %354 ] - %357 = add i64 %.sroa.4.015.i.i, -1 + %357 = add nsw i64 %.sroa.4.015.i.i, -1 %358 = getelementptr inbounds { i32, i32 }, ptr %.sroa.0.0.lcssa, i64 %357 %.val11.i.i = load i32, ptr %358, align 4, !alias.scope !1104, !noundef !14 %359 = getelementptr i8, ptr %358, i64 4 @@ -10039,7 +10039,7 @@ _ZN4core5slice4sort15partition_equal17h15c21b50ff661ca8E.exit: ; preds = %244 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h57b147c59db75daeE.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17h0993a1f3caa71fd2E.exit.i %.sroa.01.03.i = phi i64 [ %264, %_ZN4core5slice4sort11insert_tail17h0993a1f3caa71fd2E.exit.i ], [ 1, %.outer._crit_edge ] - %264 = add nuw i64 %.sroa.01.03.i, 1 + %264 = add nuw nsw i64 %.sroa.01.03.i, 1 %265 = getelementptr { i32, i32, i16, i8, [1 x i8] }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.03.i %266 = getelementptr i8, ptr %265, i64 4 %.val11.i.i = load i32, ptr %266, align 4, !alias.scope !1168, !noundef !14 @@ -10054,7 +10054,7 @@ _ZN4core5slice4sort15partition_equal17h15c21b50ff661ca8E.exit: ; preds = %244 %.sroa.57.0..sroa_idx.i.i = getelementptr i8, ptr %265, i64 8 %271 = load i32, ptr %.sroa.57.0..sroa_idx.i.i, align 4, !alias.scope !1168 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %265, ptr noundef nonnull align 4 dereferenceable(12) %270, i64 12, i1 false), !alias.scope !1168 - %272 = add i64 %.sroa.01.03.i, -1 + %272 = add nsw i64 %.sroa.01.03.i, -1 %.not12.i.i = icmp eq i64 %272, 0 br i1 %.not12.i.i, label %.thread.i.i73, label %.lr.ph.i.i72 @@ -10070,7 +10070,7 @@ _ZN4core5slice4sort15partition_equal17h15c21b50ff661ca8E.exit: ; preds = %244 .lr.ph.i.i72: ; preds = %269, %277 %.sroa.4.014.i.i = phi i64 [ %273, %277 ], [ %272, %269 ] %.sroa.5.013.i.i = phi ptr [ %274, %277 ], [ %270, %269 ] - %273 = add i64 %.sroa.4.014.i.i, -1 + %273 = add nsw i64 %.sroa.4.014.i.i, -1 %274 = getelementptr inbounds { i32, i32, i16, i8, [1 x i8] }, ptr %.sroa.0.0.lcssa, i64 %273 %275 = getelementptr i8, ptr %274, i64 4 %.val10.i.i = load i32, ptr %275, align 4, !alias.scope !1168, !noundef !14 @@ -10779,7 +10779,7 @@ _ZN4core5slice4sort15partition_equal17h1a37723098d026d2E.exit: ; preds = %237 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h19327df7376c5ac5E.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17h2311adc5cb368b01E.exit.i %.sroa.01.03.i = phi i64 [ %256, %_ZN4core5slice4sort11insert_tail17h2311adc5cb368b01E.exit.i ], [ 1, %.outer._crit_edge ] - %256 = add nuw i64 %.sroa.01.03.i, 1 + %256 = add nuw nsw i64 %.sroa.01.03.i, 1 %257 = getelementptr { i32, i32, i32, i32 }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.03.i %258 = getelementptr i8, ptr %257, i64 -16 %.val11.i.i = load i32, ptr %257, align 4, !alias.scope !1231, !noundef !14 @@ -10792,7 +10792,7 @@ _ZN4core5slice4sort15partition_equal17h1a37723098d026d2E.exit: ; preds = %237 %.sroa.4.0..sroa_idx.i.i = getelementptr i8, ptr %257, i64 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(12) %.sroa.6.i.i, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.4.0..sroa_idx.i.i, i64 12, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %257, ptr noundef nonnull align 4 dereferenceable(16) %258, i64 16, i1 false), !alias.scope !1231 - %261 = add i64 %.sroa.01.03.i, -1 + %261 = add nsw i64 %.sroa.01.03.i, -1 %.not9.i.i = icmp eq i64 %261, 0 br i1 %.not9.i.i, label %.thread.i.i68, label %.lr.ph.i.i67 @@ -10807,7 +10807,7 @@ _ZN4core5slice4sort15partition_equal17h1a37723098d026d2E.exit: ; preds = %237 .lr.ph.i.i67: ; preds = %260, %265 %.sroa.4.011.i.i = phi i64 [ %262, %265 ], [ %261, %260 ] %.sroa.5.010.i.i = phi ptr [ %263, %265 ], [ %258, %260 ] - %262 = add i64 %.sroa.4.011.i.i, -1 + %262 = add nsw i64 %.sroa.4.011.i.i, -1 %263 = getelementptr inbounds { i32, i32, i32, i32 }, ptr %.sroa.0.0.lcssa, i64 %262 %.val10.i.i = load i32, ptr %263, align 4, !alias.scope !1231, !noundef !14 %264 = icmp ult i32 %.val11.i.i, %.val10.i.i @@ -11474,7 +11474,7 @@ _ZN4core5slice4sort15partition_equal17h2c8377529d8be52bE.exit: ; preds = %242 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h6d07d20ea3710e79E.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17hbddf96337be64798E.exit.i %.sroa.01.03.i = phi i64 [ %262, %_ZN4core5slice4sort11insert_tail17hbddf96337be64798E.exit.i ], [ 1, %.outer._crit_edge ] - %262 = add nuw i64 %.sroa.01.03.i, 1 + %262 = add nuw nsw i64 %.sroa.01.03.i, 1 %263 = getelementptr i32, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.03.i %264 = getelementptr i8, ptr %263, i64 -4 %.val11.i.i = load i32, ptr %263, align 4, !alias.scope !1295, !noundef !14 @@ -11484,7 +11484,7 @@ _ZN4core5slice4sort15partition_equal17h2c8377529d8be52bE.exit: ; preds = %242 266: ; preds = %"_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h6d07d20ea3710e79E.exit.i" store i32 %.val12.i.i, ptr %263, align 4, !alias.scope !1295 - %267 = add i64 %.sroa.01.03.i, -1 + %267 = add nsw i64 %.sroa.01.03.i, -1 %.not8.i.i = icmp eq i64 %267, 0 br i1 %.not8.i.i, label %.thread.i.i67, label %.lr.ph.i.i66 @@ -11496,7 +11496,7 @@ _ZN4core5slice4sort15partition_equal17h2c8377529d8be52bE.exit: ; preds = %242 .lr.ph.i.i66: ; preds = %266, %271 %.sroa.4.010.i.i = phi i64 [ %268, %271 ], [ %267, %266 ] %.sroa.5.09.i.i = phi ptr [ %269, %271 ], [ %264, %266 ] - %268 = add i64 %.sroa.4.010.i.i, -1 + %268 = add nsw i64 %.sroa.4.010.i.i, -1 %269 = getelementptr inbounds i32, ptr %.sroa.0.0.lcssa, i64 %268 %.val10.i.i = load i32, ptr %269, align 4, !alias.scope !1295, !noundef !14 %270 = icmp ult i32 %.val11.i.i, %.val10.i.i @@ -12199,7 +12199,7 @@ _ZN4core5slice4sort15partition_equal17h1fd4597c10d315afE.exit: ; preds = %240 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17he807623e0aaba86cE.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17hb61b294b36ca3f51E.exit.i %.sroa.01.03.i = phi i64 [ %259, %_ZN4core5slice4sort11insert_tail17hb61b294b36ca3f51E.exit.i ], [ 1, %.outer._crit_edge ] - %259 = add nuw i64 %.sroa.01.03.i, 1 + %259 = add nuw nsw i64 %.sroa.01.03.i, 1 %260 = getelementptr { { i32, i32 }, i32 }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.03.i %261 = getelementptr i8, ptr %260, i64 -12 %.val11.i.i = load i32, ptr %260, align 4, !alias.scope !1359, !noundef !14 @@ -12211,7 +12211,7 @@ _ZN4core5slice4sort15partition_equal17h1fd4597c10d315afE.exit: ; preds = %240 %.sroa.4.0..sroa_idx.i.i = getelementptr i8, ptr %260, i64 4 %.sroa.4.0.copyload.i.i = load i64, ptr %.sroa.4.0..sroa_idx.i.i, align 4, !alias.scope !1359 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %260, ptr noundef nonnull align 4 dereferenceable(12) %261, i64 12, i1 false), !alias.scope !1359 - %264 = add i64 %.sroa.01.03.i, -1 + %264 = add nsw i64 %.sroa.01.03.i, -1 %.not11.i.i = icmp eq i64 %264, 0 br i1 %.not11.i.i, label %.thread.i.i69, label %.lr.ph.i.i68 @@ -12225,7 +12225,7 @@ _ZN4core5slice4sort15partition_equal17h1fd4597c10d315afE.exit: ; preds = %240 .lr.ph.i.i68: ; preds = %263, %268 %.sroa.4.013.i.i = phi i64 [ %265, %268 ], [ %264, %263 ] %.sroa.5.012.i.i = phi ptr [ %266, %268 ], [ %261, %263 ] - %265 = add i64 %.sroa.4.013.i.i, -1 + %265 = add nsw i64 %.sroa.4.013.i.i, -1 %266 = getelementptr inbounds { { i32, i32 }, i32 }, ptr %.sroa.0.0.lcssa, i64 %265 %.val10.i.i = load i32, ptr %266, align 4, !alias.scope !1359, !noundef !14 %267 = icmp ult i32 %.val11.i.i, %.val10.i.i @@ -12892,7 +12892,7 @@ _ZN4core5slice4sort15partition_equal17h5b26b7f5d1e93906E.exit: ; preds = %242 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h31bda056bebeb4abE.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17hd602689a3c2e6e18E.exit.i %.sroa.01.03.i = phi i64 [ %262, %_ZN4core5slice4sort11insert_tail17hd602689a3c2e6e18E.exit.i ], [ 1, %.outer._crit_edge ] - %262 = add nuw i64 %.sroa.01.03.i, 1 + %262 = add nuw nsw i64 %.sroa.01.03.i, 1 %263 = getelementptr i32, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.03.i %264 = getelementptr i8, ptr %263, i64 -4 %.val11.i.i = load i32, ptr %263, align 4, !alias.scope !1423, !noundef !14 @@ -12902,7 +12902,7 @@ _ZN4core5slice4sort15partition_equal17h5b26b7f5d1e93906E.exit: ; preds = %242 266: ; preds = %"_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h31bda056bebeb4abE.exit.i" store i32 %.val12.i.i, ptr %263, align 4, !alias.scope !1423 - %267 = add i64 %.sroa.01.03.i, -1 + %267 = add nsw i64 %.sroa.01.03.i, -1 %.not8.i.i = icmp eq i64 %267, 0 br i1 %.not8.i.i, label %.thread.i.i67, label %.lr.ph.i.i66 @@ -12914,7 +12914,7 @@ _ZN4core5slice4sort15partition_equal17h5b26b7f5d1e93906E.exit: ; preds = %242 .lr.ph.i.i66: ; preds = %266, %271 %.sroa.4.010.i.i = phi i64 [ %268, %271 ], [ %267, %266 ] %.sroa.5.09.i.i = phi ptr [ %269, %271 ], [ %264, %266 ] - %268 = add i64 %.sroa.4.010.i.i, -1 + %268 = add nsw i64 %.sroa.4.010.i.i, -1 %269 = getelementptr inbounds i32, ptr %.sroa.0.0.lcssa, i64 %268 %.val10.i.i = load i32, ptr %269, align 4, !alias.scope !1423, !noundef !14 %270 = icmp ult i32 %.val11.i.i, %.val10.i.i @@ -13736,7 +13736,7 @@ _ZN4core5slice4sort15partition_equal17h0cc7ef414dc62d51E.exit: ; preds = %376 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h70fed01e94fa18daE.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17h204e5af0886eab6eE.exit.i %.sroa.01.03.i = phi i64 [ %402, %_ZN4core5slice4sort11insert_tail17h204e5af0886eab6eE.exit.i ], [ 1, %.outer._crit_edge ] - %402 = add nuw i64 %.sroa.01.03.i, 1 + %402 = add nuw nsw i64 %.sroa.01.03.i, 1 %403 = getelementptr { i32, i32, i32, i32 }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.03.i %404 = getelementptr i8, ptr %403, i64 -16 %405 = getelementptr i8, ptr %403, i64 8 @@ -13758,7 +13758,7 @@ _ZN4core5slice4sort15partition_equal17h0cc7ef414dc62d51E.exit: ; preds = %376 420: ; preds = %"_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h70fed01e94fa18daE.exit.i" call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %403, ptr noundef nonnull align 4 dereferenceable(16) %404, i64 16, i1 false), !alias.scope !1539 - %421 = add i64 %.sroa.01.03.i, -1 + %421 = add nsw i64 %.sroa.01.03.i, -1 %.not11.i.i = icmp eq i64 %421, 0 br i1 %.not11.i.i, label %.thread.i.i69, label %.lr.ph.i.i68 @@ -13772,7 +13772,7 @@ _ZN4core5slice4sort15partition_equal17h0cc7ef414dc62d51E.exit: ; preds = %376 .lr.ph.i.i68: ; preds = %420, %432 %.sroa.4.013.i.i = phi i64 [ %422, %432 ], [ %421, %420 ] %.sroa.5.012.i.i = phi ptr [ %423, %432 ], [ %404, %420 ] - %422 = add i64 %.sroa.4.013.i.i, -1 + %422 = add nsw i64 %.sroa.4.013.i.i, -1 %423 = getelementptr inbounds { i32, i32, i32, i32 }, ptr %.sroa.0.0.lcssa, i64 %422 %424 = getelementptr inbounds i8, ptr %423, i64 8 %425 = load i64, ptr %424, align 4, !alias.scope !1551, !noalias !1556 @@ -14445,7 +14445,7 @@ _ZN4core5slice4sort15partition_equal17hf7d96e7893839263E.exit: ; preds = %242 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h4714426f88474af8E.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17h142a22187c3be150E.exit.i %.sroa.01.03.i = phi i64 [ %262, %_ZN4core5slice4sort11insert_tail17h142a22187c3be150E.exit.i ], [ 1, %.outer._crit_edge ] - %262 = add nuw i64 %.sroa.01.03.i, 1 + %262 = add nuw nsw i64 %.sroa.01.03.i, 1 %263 = getelementptr i32, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.03.i %264 = getelementptr i8, ptr %263, i64 -4 %.val11.i.i = load i32, ptr %263, align 4, !alias.scope !1617, !noundef !14 @@ -14455,7 +14455,7 @@ _ZN4core5slice4sort15partition_equal17hf7d96e7893839263E.exit: ; preds = %242 266: ; preds = %"_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h4714426f88474af8E.exit.i" store i32 %.val12.i.i, ptr %263, align 4, !alias.scope !1617 - %267 = add i64 %.sroa.01.03.i, -1 + %267 = add nsw i64 %.sroa.01.03.i, -1 %.not8.i.i = icmp eq i64 %267, 0 br i1 %.not8.i.i, label %.thread.i.i67, label %.lr.ph.i.i66 @@ -14467,7 +14467,7 @@ _ZN4core5slice4sort15partition_equal17hf7d96e7893839263E.exit: ; preds = %242 .lr.ph.i.i66: ; preds = %266, %271 %.sroa.4.010.i.i = phi i64 [ %268, %271 ], [ %267, %266 ] %.sroa.5.09.i.i = phi ptr [ %269, %271 ], [ %264, %266 ] - %268 = add i64 %.sroa.4.010.i.i, -1 + %268 = add nsw i64 %.sroa.4.010.i.i, -1 %269 = getelementptr inbounds i32, ptr %.sroa.0.0.lcssa, i64 %268 %.val10.i.i = load i32, ptr %269, align 4, !alias.scope !1617, !noundef !14 %270 = icmp ult i32 %.val11.i.i, %.val10.i.i @@ -15289,7 +15289,7 @@ _ZN4core5slice4sort15partition_equal17h4c21efcb744362f2E.exit: ; preds = %360 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h99b513351818d875E.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17hf6a36c2329bd9b0eE.exit.i %.sroa.01.03.i = phi i64 [ %385, %_ZN4core5slice4sort11insert_tail17hf6a36c2329bd9b0eE.exit.i ], [ 1, %.outer._crit_edge ] - %385 = add nuw i64 %.sroa.01.03.i, 1 + %385 = add nuw nsw i64 %.sroa.01.03.i, 1 %386 = getelementptr { i32, i32 }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.03.i %387 = getelementptr i8, ptr %386, i64 -8 %.val13.i.i = load i32, ptr %386, align 4, !alias.scope !1681, !noundef !14 @@ -15312,7 +15312,7 @@ _ZN4core5slice4sort15partition_equal17h4c21efcb744362f2E.exit: ; preds = %360 399: ; preds = %"_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h99b513351818d875E.exit.i" %400 = load i64, ptr %387, align 4, !alias.scope !1681 store i64 %400, ptr %386, align 4, !alias.scope !1681 - %401 = add i64 %.sroa.01.03.i, -1 + %401 = add nsw i64 %.sroa.01.03.i, -1 %.not13.i.i = icmp eq i64 %401, 0 br i1 %.not13.i.i, label %.thread.i.i69, label %.lr.ph.i.i68 @@ -15325,7 +15325,7 @@ _ZN4core5slice4sort15partition_equal17h4c21efcb744362f2E.exit: ; preds = %360 .lr.ph.i.i68: ; preds = %399, %410 %.sroa.4.015.i.i = phi i64 [ %402, %410 ], [ %401, %399 ] %.sroa.5.014.i.i = phi ptr [ %403, %410 ], [ %387, %399 ] - %402 = add i64 %.sroa.4.015.i.i, -1 + %402 = add nsw i64 %.sroa.4.015.i.i, -1 %403 = getelementptr inbounds { i32, i32 }, ptr %.sroa.0.0.lcssa, i64 %402 %.val11.i.i = load i32, ptr %403, align 4, !alias.scope !1681, !noundef !14 %404 = getelementptr i8, ptr %403, i64 4 @@ -16035,7 +16035,7 @@ _ZN4core5slice4sort15partition_equal17h848cfdff73ed7c3fE.exit: ; preds = %240 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17he807623e0aaba86cE.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17h1a9c63c4fbad0bdaE.exit.i %.sroa.01.03.i = phi i64 [ %259, %_ZN4core5slice4sort11insert_tail17h1a9c63c4fbad0bdaE.exit.i ], [ 1, %.outer._crit_edge ] - %259 = add nuw i64 %.sroa.01.03.i, 1 + %259 = add nuw nsw i64 %.sroa.01.03.i, 1 %260 = getelementptr { { i32, i32 }, i32 }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.03.i %261 = getelementptr i8, ptr %260, i64 -12 %.val15.i.i = load i32, ptr %260, align 4, !alias.scope !1745, !noundef !14 @@ -16047,7 +16047,7 @@ _ZN4core5slice4sort15partition_equal17h848cfdff73ed7c3fE.exit: ; preds = %240 %.sroa.4.0..sroa_idx.i.i = getelementptr i8, ptr %260, i64 4 %.sroa.4.0.copyload.i.i = load i64, ptr %.sroa.4.0..sroa_idx.i.i, align 4, !alias.scope !1745 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %260, ptr noundef nonnull align 4 dereferenceable(12) %261, i64 12, i1 false), !alias.scope !1745 - %264 = add i64 %.sroa.01.03.i, -1 + %264 = add nsw i64 %.sroa.01.03.i, -1 %.not11.i.i = icmp eq i64 %264, 0 br i1 %.not11.i.i, label %.thread.i.i69, label %.lr.ph.i.i68 @@ -16061,7 +16061,7 @@ _ZN4core5slice4sort15partition_equal17h848cfdff73ed7c3fE.exit: ; preds = %240 .lr.ph.i.i68: ; preds = %263, %268 %.sroa.4.013.i.i = phi i64 [ %265, %268 ], [ %264, %263 ] %.sroa.5.012.i.i = phi ptr [ %266, %268 ], [ %261, %263 ] - %265 = add i64 %.sroa.4.013.i.i, -1 + %265 = add nsw i64 %.sroa.4.013.i.i, -1 %266 = getelementptr inbounds { { i32, i32 }, i32 }, ptr %.sroa.0.0.lcssa, i64 %265 %.val14.i.i = load i32, ptr %266, align 4, !alias.scope !1745, !noundef !14 %267 = icmp ult i32 %.val15.i.i, %.val14.i.i @@ -17774,7 +17774,7 @@ _ZN4core5slice4sort15partition_equal17hd9d6ffdef4285954E.exit: ; preds = %365 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h3d5c706dd3fd820fE.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17h202898edd0d7769fE.exit.i %.sroa.01.03.i = phi i64 [ %390, %_ZN4core5slice4sort11insert_tail17h202898edd0d7769fE.exit.i ], [ 1, %.outer._crit_edge ] - %390 = add nuw i64 %.sroa.01.03.i, 1 + %390 = add nuw nsw i64 %.sroa.01.03.i, 1 %391 = getelementptr { i32, i32, i32 }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.03.i %392 = getelementptr i8, ptr %391, i64 -12 %.val13.i.i = load i64, ptr %391, align 4, !alias.scope !1924 @@ -17798,7 +17798,7 @@ _ZN4core5slice4sort15partition_equal17hd9d6ffdef4285954E.exit: ; preds = %365 406: ; preds = %"_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h3d5c706dd3fd820fE.exit.i" call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %391, ptr noundef nonnull align 4 dereferenceable(12) %392, i64 12, i1 false), !alias.scope !1924 - %407 = add i64 %.sroa.01.03.i, -1 + %407 = add nsw i64 %.sroa.01.03.i, -1 %.not11.i.i = icmp eq i64 %407, 0 br i1 %.not11.i.i, label %.thread.i.i71, label %.lr.ph.i.i70 @@ -17812,7 +17812,7 @@ _ZN4core5slice4sort15partition_equal17hd9d6ffdef4285954E.exit: ; preds = %365 .lr.ph.i.i70: ; preds = %406, %417 %.sroa.4.013.i.i = phi i64 [ %408, %417 ], [ %407, %406 ] %.sroa.5.012.i.i = phi ptr [ %409, %417 ], [ %392, %406 ] - %408 = add i64 %.sroa.4.013.i.i, -1 + %408 = add nsw i64 %.sroa.4.013.i.i, -1 %409 = getelementptr inbounds { i32, i32, i32 }, ptr %.sroa.0.0.lcssa, i64 %408 %.val11.i.i = load i64, ptr %409, align 4, !alias.scope !1929 %410 = getelementptr i8, ptr %409, i64 8 @@ -19384,7 +19384,7 @@ _ZN4core5slice4sort15partition_equal17hf8efab78481f4c7eE.exit: ; preds = %240 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17he807623e0aaba86cE.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17he16d93eceea30d3bE.exit.i %.sroa.01.03.i = phi i64 [ %259, %_ZN4core5slice4sort11insert_tail17he16d93eceea30d3bE.exit.i ], [ 1, %.outer._crit_edge ] - %259 = add nuw i64 %.sroa.01.03.i, 1 + %259 = add nuw nsw i64 %.sroa.01.03.i, 1 %260 = getelementptr { { i32, i32 }, i32 }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.03.i %261 = getelementptr i8, ptr %260, i64 -12 %.val15.i.i = load i32, ptr %260, align 4, !alias.scope !2134, !noundef !14 @@ -19396,7 +19396,7 @@ _ZN4core5slice4sort15partition_equal17hf8efab78481f4c7eE.exit: ; preds = %240 %.sroa.4.0..sroa_idx.i.i = getelementptr i8, ptr %260, i64 4 %.sroa.4.0.copyload.i.i = load i64, ptr %.sroa.4.0..sroa_idx.i.i, align 4, !alias.scope !2134 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %260, ptr noundef nonnull align 4 dereferenceable(12) %261, i64 12, i1 false), !alias.scope !2134 - %264 = add i64 %.sroa.01.03.i, -1 + %264 = add nsw i64 %.sroa.01.03.i, -1 %.not11.i.i = icmp eq i64 %264, 0 br i1 %.not11.i.i, label %.thread.i.i69, label %.lr.ph.i.i68 @@ -19410,7 +19410,7 @@ _ZN4core5slice4sort15partition_equal17hf8efab78481f4c7eE.exit: ; preds = %240 .lr.ph.i.i68: ; preds = %263, %268 %.sroa.4.013.i.i = phi i64 [ %265, %268 ], [ %264, %263 ] %.sroa.5.012.i.i = phi ptr [ %266, %268 ], [ %261, %263 ] - %265 = add i64 %.sroa.4.013.i.i, -1 + %265 = add nsw i64 %.sroa.4.013.i.i, -1 %266 = getelementptr inbounds { { i32, i32 }, i32 }, ptr %.sroa.0.0.lcssa, i64 %265 %.val14.i.i = load i32, ptr %266, align 4, !alias.scope !2134, !noundef !14 %267 = icmp ult i32 %.val15.i.i, %.val14.i.i @@ -20127,7 +20127,7 @@ _ZN4core5slice4sort15partition_equal17h6777ec873dbd45e3E.exit: ; preds = %249 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h65e2953453c6d92fE.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17h255f371ef0962157E.exit.i %.sroa.01.03.i = phi i64 [ %268, %_ZN4core5slice4sort11insert_tail17h255f371ef0962157E.exit.i ], [ 1, %.outer._crit_edge ] - %268 = add nuw i64 %.sroa.01.03.i, 1 + %268 = add nuw nsw i64 %.sroa.01.03.i, 1 %269 = getelementptr { i32, i32, i32 }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.03.i %270 = getelementptr i8, ptr %269, i64 -12 %.val13.i.i = load i32, ptr %269, align 4, !alias.scope !2198, !noundef !14 @@ -20145,7 +20145,7 @@ _ZN4core5slice4sort15partition_equal17h6777ec873dbd45e3E.exit: ; preds = %249 %.sroa.5.0..sroa_idx.i.i = getelementptr i8, ptr %269, i64 8 %.sroa.5.0.copyload.i.i = load i32, ptr %.sroa.5.0..sroa_idx.i.i, align 4, !alias.scope !2198 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %269, ptr noundef nonnull align 4 dereferenceable(12) %270, i64 12, i1 false), !alias.scope !2198 - %278 = add i64 %.sroa.01.03.i, -1 + %278 = add nsw i64 %.sroa.01.03.i, -1 %.not13.i.i = icmp eq i64 %278, 0 br i1 %.not13.i.i, label %.thread.i.i74, label %.lr.ph.i.i73 @@ -20161,7 +20161,7 @@ _ZN4core5slice4sort15partition_equal17h6777ec873dbd45e3E.exit: ; preds = %249 .lr.ph.i.i73: ; preds = %277, %282 %.sroa.4.015.i.i = phi i64 [ %279, %282 ], [ %278, %277 ] %.sroa.5.014.i.i = phi ptr [ %280, %282 ], [ %270, %277 ] - %279 = add i64 %.sroa.4.015.i.i, -1 + %279 = add nsw i64 %.sroa.4.015.i.i, -1 %280 = getelementptr inbounds { i32, i32, i32 }, ptr %.sroa.0.0.lcssa, i64 %279 %.val11.i.i = load i64, ptr %280, align 4, !alias.scope !2198 %281 = icmp ult i64 %275, %.val11.i.i @@ -20830,7 +20830,7 @@ _ZN4core5slice4sort15partition_equal17h267b76e2745051d8E.exit: ; preds = %241 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17ha86aef63adf1c9e1E.exit.i": ; preds = %.preheader.i, %_ZN4core5slice4sort11insert_tail17h2d1b551bb4033ca8E.exit.i %.sroa.01.03.i = phi i64 [ %261, %_ZN4core5slice4sort11insert_tail17h2d1b551bb4033ca8E.exit.i ], [ 1, %.preheader.i ] - %261 = add nuw i64 %.sroa.01.03.i, 1 + %261 = add nuw nsw i64 %.sroa.01.03.i, 1 %262 = getelementptr i8, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.03.i %gep.i = getelementptr i8, ptr %invariant.gep.i, i64 %.sroa.01.03.i %.val11.i.i = load i8, ptr %262, align 1, !alias.scope !2262, !noundef !14 @@ -20840,7 +20840,7 @@ _ZN4core5slice4sort15partition_equal17h267b76e2745051d8E.exit: ; preds = %241 264: ; preds = %"_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17ha86aef63adf1c9e1E.exit.i" store i8 %.val12.i.i, ptr %262, align 1, !alias.scope !2262 - %265 = add i64 %.sroa.01.03.i, -1 + %265 = add nsw i64 %.sroa.01.03.i, -1 %.not8.i.i = icmp eq i64 %265, 0 br i1 %.not8.i.i, label %.thread.i.i67, label %.lr.ph.i.i66 @@ -20852,7 +20852,7 @@ _ZN4core5slice4sort15partition_equal17h267b76e2745051d8E.exit: ; preds = %241 .lr.ph.i.i66: ; preds = %264, %269 %.sroa.4.010.i.i = phi i64 [ %266, %269 ], [ %265, %264 ] %.sroa.5.09.i.i = phi ptr [ %267, %269 ], [ %gep.i, %264 ] - %266 = add i64 %.sroa.4.010.i.i, -1 + %266 = add nsw i64 %.sroa.4.010.i.i, -1 %267 = getelementptr inbounds i8, ptr %.sroa.0.0.lcssa, i64 %266 %.val10.i.i = load i8, ptr %267, align 1, !alias.scope !2262, !noundef !14 %268 = icmp ult i8 %.val11.i.i, %.val10.i.i diff --git a/bench/yyjson/optimized/yyjson.c.ll b/bench/yyjson/optimized/yyjson.c.ll index e6748b1dfca..b8a11706851 100644 --- a/bench/yyjson/optimized/yyjson.c.ll +++ b/bench/yyjson/optimized/yyjson.c.ll @@ -36676,7 +36676,7 @@ if.then16: ; preds = %if.end %cmp.i416.not = icmp eq i32 %and.i415, 0 %conv.i.i = trunc i64 %0 to i32 %and.i.i = and i32 %conv.i.i, 7 - switch i32 %and.i.i, label %default.unreachable5669 [ + switch i32 %and.i.i, label %default.unreachable5667 [ i32 1, label %sw.bb.i i32 5, label %sw.bb32.i i32 4, label %sw.bb74.i @@ -37146,10 +37146,10 @@ copy_utf8.i1323: ; preds = %copy_utf8.i1323.bac br i1 %cmp298.i1325, label %if.then306.i1609, label %copy_utf8.i1323.if.end322.i1329_crit_edge copy_utf8.i1323.if.end322.i1329_crit_edge: ; preds = %copy_utf8.i1323 - %.pre5667 = load i8, ptr %src.i1273.6, align 1 - %idxprom323.i1330.phi.trans.insert = zext i8 %.pre5667 to i64 + %.pre5665 = load i8, ptr %src.i1273.6, align 1 + %idxprom323.i1330.phi.trans.insert = zext i8 %.pre5665 to i64 %arrayidx324.i1331.phi.trans.insert = getelementptr inbounds i8, ptr %retval.i329.0, i64 %idxprom323.i1330.phi.trans.insert - %.pre5668 = load i8, ptr %arrayidx324.i1331.phi.trans.insert, align 1 + %.pre5666 = load i8, ptr %arrayidx324.i1331.phi.trans.insert, align 1 br label %if.end322.i1329 if.then306.i1609: ; preds = %copy_utf8.i1323 @@ -37170,8 +37170,8 @@ if.end310.i1611: ; preds = %if.then306.i1609 if.end322.i1329: ; preds = %copy_utf8.i1323.if.end322.i1329_crit_edge, %if.end310.i1611 %idxprom323.i1330.pre-phi = phi i64 [ %idxprom323.i1330.phi.trans.insert, %copy_utf8.i1323.if.end322.i1329_crit_edge ], [ %idxprom314.i1615, %if.end310.i1611 ] - %57 = phi i8 [ %.pre5668, %copy_utf8.i1323.if.end322.i1329_crit_edge ], [ %55, %if.end310.i1611 ] - %58 = phi i8 [ %.pre5667, %copy_utf8.i1323.if.end322.i1329_crit_edge ], [ %54, %if.end310.i1611 ] + %57 = phi i8 [ %.pre5666, %copy_utf8.i1323.if.end322.i1329_crit_edge ], [ %55, %if.end310.i1611 ] + %58 = phi i8 [ %.pre5665, %copy_utf8.i1323.if.end322.i1329_crit_edge ], [ %54, %if.end310.i1611 ] switch i8 %57, label %copy_end.i1607 [ i8 0, label %sw.bb.i1602 i8 4, label %sw.bb328.i1584 @@ -38316,7 +38316,7 @@ if.then68.i5038: ; preds = %if.then.i4990 %add87.i5059 = add nuw nsw i64 %conv82.i5053, 2 %cond.i5061 = select i1 %tobool86.i5057.not, i64 %add87.i5059, i64 %conv85.i5056 %sub88.i5062 = sub nsw i64 16, %cond.i5061 - br label %for.body104.i.preheader + br label %for.end112.i if.else.i5022: ; preds = %if.then.i4990 %idxprom91.i5023 = zext nneg i32 %shr48.i5002 to i64 @@ -38331,7 +38331,7 @@ if.else.i5022: ; preds = %if.then.i4990 %add100.i5031 = add nuw nsw i64 %conv93.i5025, 2 %cond102.i5033 = select i1 %tobool97.i5029.not, i64 %add100.i5031, i64 %conv96.i5028 %sub103.i5034 = sub nsw i64 12, %cond102.i5033 - br label %for.body104.i.preheader + br label %for.end112.i if.else106.i4944: ; preds = %if.else95.i %tobool107.i4945.not = icmp eq i32 %sub5.i4692, 0 @@ -38366,7 +38366,7 @@ if.then108.i4962: ; preds = %if.else106.i4944 %add132.i4983 = add nuw nsw i64 %conv125.i4977, 2 %cond134.i4985 = select i1 %tobool129.i4981.not, i64 %add132.i4983, i64 %conv128.i4980 %sub135.i4986 = sub nsw i64 8, %cond134.i4985 - br label %for.body104.i.preheader + br label %for.end112.i if.else138.i4946: ; preds = %if.else106.i4944 %idxprom139.i4947 = zext i32 %sub12.i4700 to i64 @@ -38381,32 +38381,20 @@ if.else138.i4946: ; preds = %if.else106.i4944 %add148.i4955 = select i1 %tobool145.i4953.not, i64 %conv141.i4949, i64 0 %183 = add nuw nsw i64 %add148.i4955, %conv144.i4952 %sub151.i4958 = sub nsw i64 4, %183 - br label %for.body104.i.preheader - -for.body104.i.preheader: ; preds = %if.then68.i5038, %if.else.i5022, %if.then108.i4962, %if.else138.i4946 - %sub88.i5062.sink = phi i64 [ %sub88.i5062, %if.then68.i5038 ], [ %sub103.i5034, %if.else.i5022 ], [ %sub135.i4986, %if.then108.i4962 ], [ %sub151.i4958, %if.else138.i4946 ] - %idx.ext89.i5063 = and i64 %sub88.i5062.sink, 4294967295 - %add.ptr90.i5064 = getelementptr inbounds i8, ptr %add.ptr31.i4938, i64 %idx.ext89.i5063 - %wide.trip.count5632 = zext nneg i32 %add.i2101 to i64 - br label %for.body104.i - -for.body104.i: ; preds = %for.body104.i.preheader, %for.body104.i - %indvars.iv5628 = phi i64 [ 0, %for.body104.i.preheader ], [ %indvars.iv.next5629, %for.body104.i ] - %indvars.iv.next5629 = add nuw nsw i64 %indvars.iv5628, 1 - %arrayidx107.i = getelementptr inbounds i8, ptr %add.ptr37.i, i64 %indvars.iv.next5629 - %184 = load i8, ptr %arrayidx107.i, align 1 - %arrayidx109.i = getelementptr inbounds i8, ptr %add.ptr37.i, i64 %indvars.iv5628 - store i8 %184, ptr %arrayidx109.i, align 1 - %exitcond5633.not = icmp eq i64 %indvars.iv.next5629, %wide.trip.count5632 - br i1 %exitcond5633.not, label %for.end112.i, label %for.body104.i, !llvm.loop !94 - -for.end112.i: ; preds = %for.body104.i + br label %for.end112.i + +for.end112.i: ; preds = %if.else138.i4946, %if.then108.i4962, %if.else.i5022, %if.then68.i5038 + %sub151.i4958.sink = phi i64 [ %sub151.i4958, %if.else138.i4946 ], [ %sub135.i4986, %if.then108.i4962 ], [ %sub103.i5034, %if.else.i5022 ], [ %sub88.i5062, %if.then68.i5038 ] + %idx.ext152.i4959 = and i64 %sub151.i4958.sink, 4294967295 + %add.ptr153.i4960 = getelementptr inbounds i8, ptr %add.ptr31.i4938, i64 %idx.ext152.i4959 + %184 = zext nneg i32 %add.i2101 to i64 + tail call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %add.ptr37.i, ptr noundef nonnull align 1 dereferenceable(1) %add.ptr99.i, i64 %184, i1 false) %idxprom113.i = zext nneg i32 %add.i2101 to i64 %arrayidx114.i = getelementptr inbounds i8, ptr %add.ptr37.i, i64 %idxprom113.i store i8 46, ptr %arrayidx114.i, align 1 %add.ptr117.i = getelementptr inbounds i8, ptr %arrayidx114.i, i64 2 - %cmp118.i = icmp ult ptr %add.ptr117.i, %add.ptr90.i5064 - %spec.select = select i1 %cmp118.i, ptr %add.ptr90.i5064, ptr %add.ptr117.i + %cmp118.i = icmp ult ptr %add.ptr117.i, %add.ptr153.i4960 + %spec.select = select i1 %cmp118.i, ptr %add.ptr153.i4960, ptr %add.ptr117.i br label %sw.epilog.i if.else120.i: ; preds = %f64_bin_to_dec.exit3358 @@ -39129,7 +39117,7 @@ do.body.i: ; preds = %do.body.i, %write_u %inc142.i = add nsw i32 %exp_dec.i.2, 1 %250 = load i8, ptr %incdec.ptr.i2089, align 1 %cmp144.i = icmp eq i8 %250, 48 - br i1 %cmp144.i, label %do.body.i, label %do.end.i, !llvm.loop !95 + br i1 %cmp144.i, label %do.body.i, label %do.end.i, !llvm.loop !94 do.end.i: ; preds = %do.body.i %sub.ptr.lhs.cast.i2090 = ptrtoint ptr %incdec.ptr.i2089 to i64 @@ -39673,7 +39661,7 @@ if.end132.i: ; preds = %sw.bb125.i %add.ptr134.i = getelementptr inbounds i8, ptr %call129.i, i64 2 br label %sw.epilog.i -default.unreachable5669: ; preds = %if.then16 +default.unreachable5667: ; preds = %if.then16 unreachable sw.epilog.i: ; preds = %for.body.i.preheader, %write_u64_len_15_to_17_trim.exit4853, %for.end112.i, %if.else63.i7665, %if.then32.i7703, %if.then10.i7733, %if.then.i7753, %write_u64_len_5_8.exit9575, %write_u32_len_1_8.exit7902, %if.else.i5381, %if.then.i5395, %do.end.i, %write_u64_len_1_to_16.exit2716, %if.then40.i, %if.else29.i, %if.then24.i, %if.then13.i, %while.end263.i1309, %copy_end.i1607, %write_string_noesc.exit495, %if.end132.i, %if.end123.i, %if.end113.i, %if.end102.i, %if.end.i @@ -39827,11 +39815,11 @@ val_begin.i.outer: ; preds = %val_begin.i.outer.b %mul189.i = shl i64 %level.i.0.ph, 2 %297 = add i64 %mul189.i, 32 %298 = add i64 %mul189.i, 16 - %cmp.i9646.not51725670 = icmp eq i64 %level.i.0.ph, 0 - %cmp.i9635.not51795671 = icmp eq i64 %level.i.0.ph, 0 - %cmp.i9694.not52345673 = icmp eq i64 %level.i.0.ph, 0 - %cmp.i9682.not52385674 = icmp eq i64 %level.i.0.ph, 0 - %cmp.i9658.not52425676 = icmp eq i64 %level.i.0.ph, 0 + %cmp.i9646.not51725668 = icmp eq i64 %level.i.0.ph, 0 + %cmp.i9635.not51795669 = icmp eq i64 %level.i.0.ph, 0 + %cmp.i9694.not52345671 = icmp eq i64 %level.i.0.ph, 0 + %cmp.i9682.not52385672 = icmp eq i64 %level.i.0.ph, 0 + %cmp.i9658.not52425674 = icmp eq i64 %level.i.0.ph, 0 br label %val_begin.i val_begin.i: ; preds = %val_begin.i.outer, %val_end.i @@ -39899,7 +39887,7 @@ if.end125.i: ; preds = %if.end113.i83, %if. %end.i.1 = phi ptr [ %add.ptr124.i, %if.end113.i83 ], [ %end.i.0, %if.then55.i ] %ctx.i38.1 = phi ptr [ %add.ptr115.i, %if.end113.i83 ], [ %ctx.i38.0, %if.then55.i ] %alc_len.i.1 = phi i64 [ %add100.i, %if.end113.i83 ], [ %alc_len.i.0, %if.then55.i ] - %cmp.i9635.not5179 = select i1 %tobool69.i.not, i1 true, i1 %cmp.i9635.not51795671 + %cmp.i9635.not5179 = select i1 %tobool69.i.not, i1 true, i1 %cmp.i9635.not51795669 br i1 %cmp.i9635.not5179, label %write_indent.exit, label %while.body.i9637 while.body.i9637: ; preds = %if.end125.i, %while.body.i9637 @@ -39909,7 +39897,7 @@ while.body.i9637: ; preds = %if.end125.i, %while store i32 538976288, ptr %cur.addr.i9632.05181, align 1 %add.ptr.i9638 = getelementptr inbounds i8, ptr %cur.addr.i9632.05181, i64 %cond.i %cmp.i9635.not = icmp eq i64 %dec.i9634, 0 - br i1 %cmp.i9635.not, label %write_indent.exit, label %while.body.i9637, !llvm.loop !96 + br i1 %cmp.i9635.not, label %write_indent.exit, label %while.body.i9637, !llvm.loop !95 write_indent.exit: ; preds = %while.body.i9637, %if.end125.i %cur.addr.i9632.0.lcssa = phi ptr [ %cur.i37.1, %if.end125.i ], [ %add.ptr.i9638, %while.body.i9637 ] @@ -40338,7 +40326,7 @@ copy_utf8.i683.if.end322.i689_crit_edge: ; preds = %copy_utf8.i683 %.pre = load i8, ptr %src.i633.6, align 1 %idxprom323.i690.phi.trans.insert = zext i8 %.pre to i64 %arrayidx324.i691.phi.trans.insert = getelementptr inbounds i8, ptr %retval.i301.0, i64 %idxprom323.i690.phi.trans.insert - %.pre5662 = load i8, ptr %arrayidx324.i691.phi.trans.insert, align 1 + %.pre5660 = load i8, ptr %arrayidx324.i691.phi.trans.insert, align 1 br label %if.end322.i689 if.then306.i969: ; preds = %copy_utf8.i683 @@ -40359,7 +40347,7 @@ if.end310.i971: ; preds = %if.then306.i969 if.end322.i689: ; preds = %copy_utf8.i683.if.end322.i689_crit_edge, %if.end310.i971 %idxprom323.i690.pre-phi = phi i64 [ %idxprom323.i690.phi.trans.insert, %copy_utf8.i683.if.end322.i689_crit_edge ], [ %idxprom314.i975, %if.end310.i971 ] - %355 = phi i8 [ %.pre5662, %copy_utf8.i683.if.end322.i689_crit_edge ], [ %353, %if.end310.i971 ] + %355 = phi i8 [ %.pre5660, %copy_utf8.i683.if.end322.i689_crit_edge ], [ %353, %if.end310.i971 ] %356 = phi i8 [ %.pre, %copy_utf8.i683.if.end322.i689_crit_edge ], [ %352, %if.end310.i971 ] switch i8 %355, label %if.end160.i [ i8 0, label %sw.bb.i962 @@ -40680,14 +40668,14 @@ if.then158.i.cont: ; preds = %if.then158.i, %if.t br i1 %tobool878.i.not, label %return, label %if.then879.i if.end160.i: ; preds = %while.body10.i455, %while.cond245.i667.preheader, %if.end260.i678, %if.then306.i969, %if.end322.i689, %while.cond9.i452.preheader - %cur.addr.i613.8.lcssa.sink6253 = phi ptr [ %cur.addr.i442.1.lcssa, %while.cond9.i452.preheader ], [ %cur.addr.i613.6, %if.end322.i689 ], [ %cur.addr.i613.6, %if.then306.i969 ], [ %incdec.ptr262.i680, %if.end260.i678 ], [ %cur.addr.i613.7.lcssa, %while.cond245.i667.preheader ], [ %incdec.ptr12.i457, %while.body10.i455 ] - %incdec.ptr264.i670 = getelementptr inbounds i8, ptr %cur.addr.i613.8.lcssa.sink6253, i64 1 - store i8 34, ptr %cur.addr.i613.8.lcssa.sink6253, align 1 + %cur.addr.i613.8.lcssa.sink6251 = phi ptr [ %cur.addr.i442.1.lcssa, %while.cond9.i452.preheader ], [ %cur.addr.i613.6, %if.end322.i689 ], [ %cur.addr.i613.6, %if.then306.i969 ], [ %incdec.ptr262.i680, %if.end260.i678 ], [ %cur.addr.i613.7.lcssa, %while.cond245.i667.preheader ], [ %incdec.ptr12.i457, %while.body10.i455 ] + %incdec.ptr264.i670 = getelementptr inbounds i8, ptr %cur.addr.i613.8.lcssa.sink6251, i64 1 + store i8 34, ptr %cur.addr.i613.8.lcssa.sink6251, align 1 %conv164.i = select i1 %tobool61.i.not, i8 44, i8 58 - %incdec.ptr165.i = getelementptr inbounds i8, ptr %cur.addr.i613.8.lcssa.sink6253, i64 2 + %incdec.ptr165.i = getelementptr inbounds i8, ptr %cur.addr.i613.8.lcssa.sink6251, i64 2 store i8 %conv164.i, ptr %incdec.ptr264.i670, align 1 %conv169.i = select i1 %tobool61.i.not, i8 10, i8 32 - %incdec.ptr170.i = getelementptr inbounds i8, ptr %cur.addr.i613.8.lcssa.sink6253, i64 3 + %incdec.ptr170.i = getelementptr inbounds i8, ptr %cur.addr.i613.8.lcssa.sink6251, i64 3 store i8 %conv169.i, ptr %incdec.ptr165.i, align 1 br label %val_end.i @@ -40732,7 +40720,7 @@ if.end242.i: ; preds = %if.end227.i, %if.th %end.i.3 = phi ptr [ %add.ptr241.i, %if.end227.i ], [ %end.i.0, %if.then175.i ] %ctx.i38.3 = phi ptr [ %add.ptr232.i, %if.end227.i ], [ %ctx.i38.0, %if.then175.i ] %alc_len.i.3 = phi i64 [ %add212.i, %if.end227.i ], [ %alc_len.i.0, %if.then175.i ] - %cmp.i9646.not5172 = select i1 %tobool182.i.not, i1 true, i1 %cmp.i9646.not51725670 + %cmp.i9646.not5172 = select i1 %tobool182.i.not, i1 true, i1 %cmp.i9646.not51725668 br i1 %cmp.i9646.not5172, label %write_indent.exit9650, label %while.body.i9648 while.body.i9648: ; preds = %if.end242.i, %while.body.i9648 @@ -40742,7 +40730,7 @@ while.body.i9648: ; preds = %if.end242.i, %while store i32 538976288, ptr %cur.addr.i9641.05174, align 1 %add.ptr.i9649 = getelementptr inbounds i8, ptr %cur.addr.i9641.05174, i64 %cond.i %cmp.i9646.not = icmp eq i64 %dec.i9645, 0 - br i1 %cmp.i9646.not, label %write_indent.exit9650, label %while.body.i9648, !llvm.loop !96 + br i1 %cmp.i9646.not, label %write_indent.exit9650, label %while.body.i9648, !llvm.loop !95 write_indent.exit9650: ; preds = %while.body.i9648, %if.end242.i %cur.addr.i9641.0.lcssa = phi ptr [ %cur.i37.4, %if.end242.i ], [ %add.ptr.i9649, %while.body.i9648 ] @@ -41674,7 +41662,7 @@ for.body104.i2277: ; preds = %for.body104.i2277.p %arrayidx109.i2282 = getelementptr inbounds i8, ptr %add.ptr37.i2180, i64 %indvars.iv store i8 %483, ptr %arrayidx109.i2282, align 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count - br i1 %exitcond.not, label %for.end112.i2266, label %for.body104.i2277, !llvm.loop !94 + br i1 %exitcond.not, label %for.end112.i2266, label %for.body104.i2277, !llvm.loop !96 for.end112.i2266: ; preds = %for.body104.i2277 %idxprom113.i2267 = zext nneg i32 %add.i2238 to i64 @@ -42424,7 +42412,7 @@ do.body.i2193: ; preds = %do.body.i2193, %wri %inc142.i2195 = add nsw i32 %exp_dec.i2151.2, 1 %550 = load i8, ptr %incdec.ptr.i2194, align 1 %cmp144.i2197 = icmp eq i8 %550, 48 - br i1 %cmp144.i2197, label %do.body.i2193, label %do.end.i2198, !llvm.loop !95 + br i1 %cmp144.i2197, label %do.body.i2193, label %do.end.i2198, !llvm.loop !94 do.end.i2198: ; preds = %do.body.i2193 %sub.ptr.lhs.cast.i2199 = ptrtoint ptr %incdec.ptr.i2194 to i64 @@ -42996,7 +42984,7 @@ if.end351.i: ; preds = %if.end336.i, %if.th %end.i.4 = phi ptr [ %add.ptr350.i, %if.end336.i ], [ %end.i.0, %if.then292.i ] %ctx.i38.4 = phi ptr [ %add.ptr341.i, %if.end336.i ], [ %ctx.i38.0, %if.then292.i ] %alc_len.i.4 = phi i64 [ %add321.i, %if.end336.i ], [ %alc_len.i.0, %if.then292.i ] - %cmp.i9658.not5242 = select i1 %tobool277.i.not, i1 true, i1 %cmp.i9658.not52425676 + %cmp.i9658.not5242 = select i1 %tobool277.i.not, i1 true, i1 %cmp.i9658.not52425674 br i1 %cmp.i9658.not5242, label %write_indent.exit9662, label %while.body.i9660 while.body.i9660: ; preds = %if.end351.i, %while.body.i9660 @@ -43006,7 +42994,7 @@ while.body.i9660: ; preds = %if.end351.i, %while store i32 538976288, ptr %cur.addr.i9653.05244, align 1 %add.ptr.i9661 = getelementptr inbounds i8, ptr %cur.addr.i9653.05244, i64 %cond.i %cmp.i9658.not = icmp eq i64 %dec.i9657, 0 - br i1 %cmp.i9658.not, label %write_indent.exit9662, label %while.body.i9660, !llvm.loop !96 + br i1 %cmp.i9658.not, label %write_indent.exit9662, label %while.body.i9660, !llvm.loop !95 write_indent.exit9662: ; preds = %while.body.i9660, %if.end351.i %cur.addr.i9653.0.lcssa = phi ptr [ %cur.i37.5, %if.end351.i ], [ %add.ptr.i9661, %while.body.i9660 ] @@ -43070,8 +43058,8 @@ if.end435.i: ; preds = %if.end420.i, %if.el store i64 %or.i9724, ptr %incdec.ptr437.i, align 8 %sh_prom442.i = zext i1 %cmp281.i to i64 %shl443.i = shl nuw nsw i64 %shr.i892.i.le, %sh_prom442.i - %cmp.i9670.not52485675 = icmp eq i64 %level.i.0.ph, 0 - %cmp.i9670.not5248 = select i1 %tobool277.i.not, i1 true, i1 %cmp.i9670.not52485675 + %cmp.i9670.not52485673 = icmp eq i64 %level.i.0.ph, 0 + %cmp.i9670.not5248 = select i1 %tobool277.i.not, i1 true, i1 %cmp.i9670.not52485673 br i1 %cmp.i9670.not5248, label %write_indent.exit9674, label %while.body.i9672 while.body.i9672: ; preds = %if.end435.i, %while.body.i9672 @@ -43081,7 +43069,7 @@ while.body.i9672: ; preds = %if.end435.i, %while store i32 538976288, ptr %cur.addr.i9665.05250, align 1 %add.ptr.i9673 = getelementptr inbounds i8, ptr %cur.addr.i9665.05250, i64 %cond.i %cmp.i9670.not = icmp eq i64 %dec.i9669, 0 - br i1 %cmp.i9670.not, label %write_indent.exit9674, label %while.body.i9672, !llvm.loop !96 + br i1 %cmp.i9670.not, label %write_indent.exit9674, label %while.body.i9672, !llvm.loop !95 write_indent.exit9674: ; preds = %while.body.i9672, %if.end435.i %cur.addr.i9665.0.lcssa = phi ptr [ %cur.i37.6, %if.end435.i ], [ %add.ptr.i9673, %while.body.i9672 ] @@ -43154,7 +43142,7 @@ if.end533.i: ; preds = %if.end518.i, %if.th %end.i.6 = phi ptr [ %add.ptr532.i, %if.end518.i ], [ %end.i.0, %if.then466.i ] %ctx.i38.6 = phi ptr [ %add.ptr523.i, %if.end518.i ], [ %ctx.i38.0, %if.then466.i ] %alc_len.i.6 = phi i64 [ %add503.i, %if.end518.i ], [ %alc_len.i.0, %if.then466.i ] - %cmp.i9682.not5238 = select i1 %tobool473.i.not, i1 true, i1 %cmp.i9682.not52385674 + %cmp.i9682.not5238 = select i1 %tobool473.i.not, i1 true, i1 %cmp.i9682.not52385672 br i1 %cmp.i9682.not5238, label %write_indent.exit9686, label %while.body.i9684 while.body.i9684: ; preds = %if.end533.i, %while.body.i9684 @@ -43164,7 +43152,7 @@ while.body.i9684: ; preds = %if.end533.i, %while store i32 538976288, ptr %cur.addr.i9677.05240, align 1 %add.ptr.i9685 = getelementptr inbounds i8, ptr %cur.addr.i9677.05240, i64 %cond.i %cmp.i9682.not = icmp eq i64 %dec.i9681, 0 - br i1 %cmp.i9682.not, label %write_indent.exit9686, label %while.body.i9684, !llvm.loop !96 + br i1 %cmp.i9682.not, label %write_indent.exit9686, label %while.body.i9684, !llvm.loop !95 write_indent.exit9686: ; preds = %while.body.i9684, %if.end533.i %cur.addr.i9677.0.lcssa = phi ptr [ %cur.i37.7, %if.end533.i ], [ %add.ptr.i9685, %while.body.i9684 ] @@ -43220,7 +43208,7 @@ if.end616.i: ; preds = %if.end601.i, %if.th %end.i.7 = phi ptr [ %add.ptr615.i, %if.end601.i ], [ %end.i.0, %if.then549.i ] %ctx.i38.7 = phi ptr [ %add.ptr606.i, %if.end601.i ], [ %ctx.i38.0, %if.then549.i ] %alc_len.i.7 = phi i64 [ %add586.i, %if.end601.i ], [ %alc_len.i.0, %if.then549.i ] - %cmp.i9694.not5234 = select i1 %tobool556.i.not, i1 true, i1 %cmp.i9694.not52345673 + %cmp.i9694.not5234 = select i1 %tobool556.i.not, i1 true, i1 %cmp.i9694.not52345671 br i1 %cmp.i9694.not5234, label %write_indent.exit9698, label %while.body.i9696 while.body.i9696: ; preds = %if.end616.i, %while.body.i9696 @@ -43230,7 +43218,7 @@ while.body.i9696: ; preds = %if.end616.i, %while store i32 538976288, ptr %cur.addr.i9689.05236, align 1 %add.ptr.i9697 = getelementptr inbounds i8, ptr %cur.addr.i9689.05236, i64 %cond.i %cmp.i9694.not = icmp eq i64 %dec.i9693, 0 - br i1 %cmp.i9694.not, label %write_indent.exit9698, label %while.body.i9696, !llvm.loop !96 + br i1 %cmp.i9694.not, label %write_indent.exit9698, label %while.body.i9696, !llvm.loop !95 write_indent.exit9698: ; preds = %while.body.i9696, %if.end616.i %cur.addr.i9689.0.lcssa = phi ptr [ %cur.i37.8, %if.end616.i ], [ %add.ptr.i9697, %while.body.i9696 ] @@ -43372,7 +43360,7 @@ while.body.i9708: ; preds = %if.end757.i, %while store i32 538976288, ptr %cur.addr.i9701.05254, align 1 %add.ptr.i9709 = getelementptr inbounds i8, ptr %cur.addr.i9701.05254, i64 %cond.i %cmp.i9706.not = icmp eq i64 %dec.i9705, 0 - br i1 %cmp.i9706.not, label %write_indent.exit9710, label %while.body.i9708, !llvm.loop !96 + br i1 %cmp.i9706.not, label %write_indent.exit9710, label %while.body.i9708, !llvm.loop !95 write_indent.exit9710: ; preds = %while.body.i9708, %if.end757.i %cur.addr.i9701.0.lcssa = phi ptr [ %cur.i37.11, %if.end757.i ], [ %add.ptr.i9709, %while.body.i9708 ] @@ -44014,10 +44002,10 @@ copy_utf8.i: ; preds = %copy_utf8.i.backedg br i1 %cmp298.i, label %if.then306.i, label %copy_utf8.i.if.end322.i_crit_edge copy_utf8.i.if.end322.i_crit_edge: ; preds = %copy_utf8.i - %.pre5664 = load i8, ptr %src.i.6, align 1 - %idxprom323.i.phi.trans.insert = zext i8 %.pre5664 to i64 + %.pre5662 = load i8, ptr %src.i.6, align 1 + %idxprom323.i.phi.trans.insert = zext i8 %.pre5662 to i64 %arrayidx324.i.phi.trans.insert = getelementptr inbounds i8, ptr %retval.i301.0, i64 %idxprom323.i.phi.trans.insert - %.pre5665 = load i8, ptr %arrayidx324.i.phi.trans.insert, align 1 + %.pre5663 = load i8, ptr %arrayidx324.i.phi.trans.insert, align 1 br label %if.end322.i if.then306.i: ; preds = %copy_utf8.i @@ -44038,8 +44026,8 @@ if.end310.i: ; preds = %if.then306.i if.end322.i: ; preds = %copy_utf8.i.if.end322.i_crit_edge, %if.end310.i %idxprom323.i.pre-phi = phi i64 [ %idxprom323.i.phi.trans.insert, %copy_utf8.i.if.end322.i_crit_edge ], [ %idxprom314.i, %if.end310.i ] - %656 = phi i8 [ %.pre5665, %copy_utf8.i.if.end322.i_crit_edge ], [ %654, %if.end310.i ] - %657 = phi i8 [ %.pre5664, %copy_utf8.i.if.end322.i_crit_edge ], [ %653, %if.end310.i ] + %656 = phi i8 [ %.pre5663, %copy_utf8.i.if.end322.i_crit_edge ], [ %654, %if.end310.i ] + %657 = phi i8 [ %.pre5662, %copy_utf8.i.if.end322.i_crit_edge ], [ %653, %if.end310.i ] switch i8 %656, label %if.end127.i [ i8 0, label %sw.bb.i536 i8 4, label %sw.bb328.i @@ -44359,11 +44347,11 @@ if.then125.i.cont: ; preds = %if.then125.i, %if.t br i1 %tobool622.i.not, label %return, label %if.then623.i if.end127.i: ; preds = %while.body10.i, %while.cond245.i.preheader, %if.end260.i, %if.then306.i, %if.end322.i, %while.cond9.i.preheader - %cur.addr.i500.8.lcssa.sink6254 = phi ptr [ %cur.addr.i434.1.lcssa, %while.cond9.i.preheader ], [ %cur.addr.i500.6, %if.end322.i ], [ %cur.addr.i500.6, %if.then306.i ], [ %incdec.ptr262.i, %if.end260.i ], [ %cur.addr.i500.7.lcssa, %while.cond245.i.preheader ], [ %incdec.ptr12.i, %while.body10.i ] - %incdec.ptr264.i514 = getelementptr inbounds i8, ptr %cur.addr.i500.8.lcssa.sink6254, i64 1 - store i8 34, ptr %cur.addr.i500.8.lcssa.sink6254, align 1 + %cur.addr.i500.8.lcssa.sink6252 = phi ptr [ %cur.addr.i434.1.lcssa, %while.cond9.i.preheader ], [ %cur.addr.i500.6, %if.end322.i ], [ %cur.addr.i500.6, %if.then306.i ], [ %incdec.ptr262.i, %if.end260.i ], [ %cur.addr.i500.7.lcssa, %while.cond245.i.preheader ], [ %incdec.ptr12.i, %while.body10.i ] + %incdec.ptr264.i514 = getelementptr inbounds i8, ptr %cur.addr.i500.8.lcssa.sink6252, i64 1 + store i8 34, ptr %cur.addr.i500.8.lcssa.sink6252, align 1 %conv131.i = select i1 %tobool52.i.not, i8 44, i8 58 - %incdec.ptr132.i = getelementptr inbounds i8, ptr %cur.addr.i500.8.lcssa.sink6254, i64 2 + %incdec.ptr132.i = getelementptr inbounds i8, ptr %cur.addr.i500.8.lcssa.sink6252, i64 2 store i8 %conv131.i, ptr %incdec.ptr264.i514, align 1 br label %val_end.i166 @@ -44396,11 +44384,11 @@ if.end173.i: ; preds = %size_align_up.exit7 %sub.ptr.sub185.i = sub i64 %sub.ptr.lhs.cast183.i, %sub.ptr.rhs.cast180.i %add.ptr186.i = getelementptr inbounds i8, ptr %call162.i, i64 %sub.ptr.sub185.i %add.ptr187.i = getelementptr inbounds i8, ptr %call162.i, i64 %add158.i - %.pre5663 = load i64, ptr %val.i99.0, align 8 + %.pre5661 = load i64, ptr %val.i99.0, align 8 br label %if.end188.i if.end188.i: ; preds = %if.end173.i, %if.then137.i - %696 = phi i64 [ %.pre5663, %if.end173.i ], [ %600, %if.then137.i ] + %696 = phi i64 [ %.pre5661, %if.end173.i ], [ %600, %if.then137.i ] %hdr.i106.4 = phi ptr [ %call162.i, %if.end173.i ], [ %hdr.i106.1, %if.then137.i ] %cur.i107.4 = phi ptr [ %add.ptr186.i, %if.end173.i ], [ %cur.i107.0, %if.then137.i ] %end.i108.3 = phi ptr [ %add.ptr187.i, %if.end173.i ], [ %end.i108.0, %if.then137.i ] @@ -45333,7 +45321,7 @@ for.body104.i2488: ; preds = %for.body104.i2488.p %arrayidx109.i2493 = getelementptr inbounds i8, ptr %add.ptr37.i2391, i64 %indvars.iv5618 store i8 %784, ptr %arrayidx109.i2493, align 1 %exitcond5623.not = icmp eq i64 %indvars.iv.next5619, %wide.trip.count5622 - br i1 %exitcond5623.not, label %for.end112.i2477, label %for.body104.i2488, !llvm.loop !94 + br i1 %exitcond5623.not, label %for.end112.i2477, label %for.body104.i2488, !llvm.loop !96 for.end112.i2477: ; preds = %for.body104.i2488 %idxprom113.i2478 = zext nneg i32 %add.i2449 to i64 @@ -46083,7 +46071,7 @@ do.body.i2404: ; preds = %do.body.i2404, %wri %inc142.i2406 = add nsw i32 %exp_dec.i2362.2, 1 %851 = load i8, ptr %incdec.ptr.i2405, align 1 %cmp144.i2408 = icmp eq i8 %851, 48 - br i1 %cmp144.i2408, label %do.body.i2404, label %do.end.i2409, !llvm.loop !95 + br i1 %cmp144.i2408, label %do.body.i2404, label %do.end.i2409, !llvm.loop !94 do.end.i2409: ; preds = %do.body.i2404 %sub.ptr.lhs.cast.i2410 = ptrtoint ptr %incdec.ptr.i2405 to i64 @@ -46723,11 +46711,11 @@ if.end348.i: ; preds = %size_align_up.exit6 %sub.ptr.sub360.i = sub i64 %sub.ptr.lhs.cast358.i, %sub.ptr.rhs.cast355.i %add.ptr361.i = getelementptr inbounds i8, ptr %call337.i, i64 %sub.ptr.sub360.i %add.ptr362.i = getelementptr inbounds i8, ptr %call337.i, i64 %add333.i - %.pre5666 = load i64, ptr %val.i99.0, align 8 + %.pre5664 = load i64, ptr %val.i99.0, align 8 br label %if.end363.i if.end363.i: ; preds = %if.end348.i, %if.then312.i - %893 = phi i64 [ %.pre5666, %if.end348.i ], [ %600, %if.then312.i ] + %893 = phi i64 [ %.pre5664, %if.end348.i ], [ %600, %if.then312.i ] %hdr.i106.6 = phi ptr [ %call337.i, %if.end348.i ], [ %hdr.i106.1, %if.then312.i ] %cur.i107.6 = phi ptr [ %add.ptr361.i, %if.end348.i ], [ %cur.i107.0, %if.then312.i ] %end.i108.5 = phi ptr [ %add.ptr362.i, %if.end348.i ], [ %end.i108.0, %if.then312.i ] @@ -47276,7 +47264,7 @@ if.then16: ; preds = %if.end %cmp.i28.i.not = icmp eq i32 %and.i27.i, 0 %conv.i.i.i = trunc i64 %0 to i32 %and.i.i.i = and i32 %conv.i.i.i, 7 - switch i32 %and.i.i.i, label %default.unreachable5708 [ + switch i32 %and.i.i.i, label %default.unreachable5706 [ i32 1, label %sw.bb.i.i i32 5, label %sw.bb32.i.i i32 4, label %sw.bb74.i.i @@ -47746,10 +47734,10 @@ copy_utf8.i.i: ; preds = %copy_utf8.i.i.backe br i1 %cmp298.i.i, label %if.then306.i.i, label %copy_utf8.i.i.if.end322.i.i_crit_edge copy_utf8.i.i.if.end322.i.i_crit_edge: ; preds = %copy_utf8.i.i - %.pre5706 = load i8, ptr %src.i.i.6, align 1 - %idxprom323.i.i.phi.trans.insert = zext i8 %.pre5706 to i64 + %.pre5704 = load i8, ptr %src.i.i.6, align 1 + %idxprom323.i.i.phi.trans.insert = zext i8 %.pre5704 to i64 %arrayidx324.i.i.phi.trans.insert = getelementptr inbounds i8, ptr %retval.i6.i.0, i64 %idxprom323.i.i.phi.trans.insert - %.pre5707 = load i8, ptr %arrayidx324.i.i.phi.trans.insert, align 1 + %.pre5705 = load i8, ptr %arrayidx324.i.i.phi.trans.insert, align 1 br label %if.end322.i.i if.then306.i.i: ; preds = %copy_utf8.i.i @@ -47770,8 +47758,8 @@ if.end310.i.i: ; preds = %if.then306.i.i if.end322.i.i: ; preds = %copy_utf8.i.i.if.end322.i.i_crit_edge, %if.end310.i.i %idxprom323.i.i.pre-phi = phi i64 [ %idxprom323.i.i.phi.trans.insert, %copy_utf8.i.i.if.end322.i.i_crit_edge ], [ %idxprom314.i.i, %if.end310.i.i ] - %57 = phi i8 [ %.pre5707, %copy_utf8.i.i.if.end322.i.i_crit_edge ], [ %55, %if.end310.i.i ] - %58 = phi i8 [ %.pre5706, %copy_utf8.i.i.if.end322.i.i_crit_edge ], [ %54, %if.end310.i.i ] + %57 = phi i8 [ %.pre5705, %copy_utf8.i.i.if.end322.i.i_crit_edge ], [ %55, %if.end310.i.i ] + %58 = phi i8 [ %.pre5704, %copy_utf8.i.i.if.end322.i.i_crit_edge ], [ %54, %if.end310.i.i ] switch i8 %57, label %copy_end.i.i [ i8 0, label %sw.bb.i65.i i8 4, label %sw.bb328.i.i @@ -48916,7 +48904,7 @@ if.then68.i636.i: ; preds = %if.then.i588.i %add87.i657.i = add nuw nsw i64 %conv82.i651.i, 2 %cond.i659.i = select i1 %tobool86.i655.i.not, i64 %add87.i657.i, i64 %conv85.i654.i %sub88.i660.i = sub nsw i64 16, %cond.i659.i - br label %for.body104.i.i.preheader + br label %for.end112.i.i if.else.i620.i: ; preds = %if.then.i588.i %idxprom91.i621.i = zext nneg i32 %shr48.i600.i to i64 @@ -48931,7 +48919,7 @@ if.else.i620.i: ; preds = %if.then.i588.i %add100.i629.i = add nuw nsw i64 %conv93.i623.i, 2 %cond102.i631.i = select i1 %tobool97.i627.i.not, i64 %add100.i629.i, i64 %conv96.i626.i %sub103.i632.i = sub nsw i64 12, %cond102.i631.i - br label %for.body104.i.i.preheader + br label %for.end112.i.i if.else106.i542.i: ; preds = %if.else95.i.i %tobool107.i543.i.not = icmp eq i32 %sub5.i.i, 0 @@ -48966,7 +48954,7 @@ if.then108.i560.i: ; preds = %if.else106.i542.i %add132.i581.i = add nuw nsw i64 %conv125.i575.i, 2 %cond134.i583.i = select i1 %tobool129.i579.i.not, i64 %add132.i581.i, i64 %conv128.i578.i %sub135.i584.i = sub nsw i64 8, %cond134.i583.i - br label %for.body104.i.i.preheader + br label %for.end112.i.i if.else138.i544.i: ; preds = %if.else106.i542.i %idxprom139.i545.i = zext i32 %sub12.i.i to i64 @@ -48981,32 +48969,20 @@ if.else138.i544.i: ; preds = %if.else106.i542.i %add148.i553.i = select i1 %tobool145.i551.i.not, i64 %conv141.i547.i, i64 0 %183 = add nuw nsw i64 %add148.i553.i, %conv144.i550.i %sub151.i556.i = sub nsw i64 4, %183 - br label %for.body104.i.i.preheader - -for.body104.i.i.preheader: ; preds = %if.then68.i636.i, %if.else.i620.i, %if.then108.i560.i, %if.else138.i544.i - %sub88.i660.i.sink = phi i64 [ %sub88.i660.i, %if.then68.i636.i ], [ %sub103.i632.i, %if.else.i620.i ], [ %sub135.i584.i, %if.then108.i560.i ], [ %sub151.i556.i, %if.else138.i544.i ] - %idx.ext89.i661.i = and i64 %sub88.i660.i.sink, 4294967295 - %add.ptr90.i662.i = getelementptr inbounds i8, ptr %add.ptr31.i536.i, i64 %idx.ext89.i661.i - %wide.trip.count5667 = zext nneg i32 %add.i163.i to i64 - br label %for.body104.i.i - -for.body104.i.i: ; preds = %for.body104.i.i.preheader, %for.body104.i.i - %indvars.iv5663 = phi i64 [ 0, %for.body104.i.i.preheader ], [ %indvars.iv.next5664, %for.body104.i.i ] - %indvars.iv.next5664 = add nuw nsw i64 %indvars.iv5663, 1 - %arrayidx107.i.i = getelementptr inbounds i8, ptr %add.ptr37.i.i, i64 %indvars.iv.next5664 - %184 = load i8, ptr %arrayidx107.i.i, align 1 - %arrayidx109.i.i = getelementptr inbounds i8, ptr %add.ptr37.i.i, i64 %indvars.iv5663 - store i8 %184, ptr %arrayidx109.i.i, align 1 - %exitcond5668.not = icmp eq i64 %indvars.iv.next5664, %wide.trip.count5667 - br i1 %exitcond5668.not, label %for.end112.i.i, label %for.body104.i.i, !llvm.loop !94 - -for.end112.i.i: ; preds = %for.body104.i.i + br label %for.end112.i.i + +for.end112.i.i: ; preds = %if.else138.i544.i, %if.then108.i560.i, %if.else.i620.i, %if.then68.i636.i + %sub151.i556.i.sink = phi i64 [ %sub151.i556.i, %if.else138.i544.i ], [ %sub135.i584.i, %if.then108.i560.i ], [ %sub103.i632.i, %if.else.i620.i ], [ %sub88.i660.i, %if.then68.i636.i ] + %idx.ext152.i557.i = and i64 %sub151.i556.i.sink, 4294967295 + %add.ptr153.i558.i = getelementptr inbounds i8, ptr %add.ptr31.i536.i, i64 %idx.ext152.i557.i + %184 = zext nneg i32 %add.i163.i to i64 + tail call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %add.ptr37.i.i, ptr noundef nonnull align 1 dereferenceable(1) %add.ptr99.i.i, i64 %184, i1 false) %idxprom113.i.i = zext nneg i32 %add.i163.i to i64 %arrayidx114.i.i = getelementptr inbounds i8, ptr %add.ptr37.i.i, i64 %idxprom113.i.i store i8 46, ptr %arrayidx114.i.i, align 1 %add.ptr117.i.i = getelementptr inbounds i8, ptr %arrayidx114.i.i, i64 2 - %cmp118.i.i = icmp ult ptr %add.ptr117.i.i, %add.ptr90.i662.i - %spec.select = select i1 %cmp118.i.i, ptr %add.ptr90.i662.i, ptr %add.ptr117.i.i + %cmp118.i.i = icmp ult ptr %add.ptr117.i.i, %add.ptr153.i558.i + %spec.select = select i1 %cmp118.i.i, ptr %add.ptr153.i558.i, ptr %add.ptr117.i.i br label %sw.epilog.i.i if.else120.i.i: ; preds = %f64_bin_to_dec.exit.i @@ -49729,7 +49705,7 @@ do.body.i.i: ; preds = %do.body.i.i, %write %inc142.i.i = add nsw i32 %exp_dec.i.i.2, 1 %250 = load i8, ptr %incdec.ptr.i154.i, align 1 %cmp144.i.i = icmp eq i8 %250, 48 - br i1 %cmp144.i.i, label %do.body.i.i, label %do.end.i.i, !llvm.loop !95 + br i1 %cmp144.i.i, label %do.body.i.i, label %do.end.i.i, !llvm.loop !94 do.end.i.i: ; preds = %do.body.i.i %sub.ptr.lhs.cast.i155.i = ptrtoint ptr %incdec.ptr.i154.i to i64 @@ -50273,7 +50249,7 @@ if.end132.i.i: ; preds = %sw.bb125.i.i %add.ptr134.i.i = getelementptr inbounds i8, ptr %call129.i.i, i64 2 br label %sw.epilog.i.i -default.unreachable5708: ; preds = %if.then16 +default.unreachable5706: ; preds = %if.then16 unreachable sw.epilog.i.i: ; preds = %for.body.i.i.preheader, %write_u64_len_15_to_17_trim.exit.i, %for.end112.i.i, %if.else63.i1432.i, %if.then32.i1470.i, %if.then10.i1500.i, %if.then.i1520.i, %write_u64_len_5_8.exit.i, %write_u32_len_1_8.exit1669.i, %if.else.i898.i, %if.then.i906.i, %do.end.i.i, %write_u64_len_1_to_16.exit.i, %if.then40.i.i, %if.else29.i.i, %if.then24.i.i, %if.then13.i.i, %while.end263.i.i, %copy_end.i.i, %write_string_noesc.exit.i, %if.end132.i.i, %if.end123.i.i, %if.end113.i.i, %if.end102.i.i, %if.end.i.i @@ -50437,11 +50413,11 @@ val_begin.i.outer: ; preds = %val_begin.i.outer.b %mul195.i = shl i64 %level.i.0.ph, 2 %297 = add i64 %mul195.i, 32 %298 = add i64 %mul195.i, 16 - %cmp.i3336.i.not52035709 = icmp eq i64 %level.i.0.ph, 0 - %cmp.i3348.i.not52105710 = icmp eq i64 %level.i.0.ph, 0 - %cmp.i3288.i.not52655712 = icmp eq i64 %level.i.0.ph, 0 - %cmp.i3300.i.not52695713 = icmp eq i64 %level.i.0.ph, 0 - %cmp.i3324.i.not52735715 = icmp eq i64 %level.i.0.ph, 0 + %cmp.i3336.i.not52035707 = icmp eq i64 %level.i.0.ph, 0 + %cmp.i3348.i.not52105708 = icmp eq i64 %level.i.0.ph, 0 + %cmp.i3288.i.not52655710 = icmp eq i64 %level.i.0.ph, 0 + %cmp.i3300.i.not52695711 = icmp eq i64 %level.i.0.ph, 0 + %cmp.i3324.i.not52735713 = icmp eq i64 %level.i.0.ph, 0 br label %val_begin.i val_begin.i: ; preds = %val_begin.i.outer, %if.end717.i @@ -50509,7 +50485,7 @@ if.end131.i: ; preds = %if.end119.i, %if.th %end.i.1 = phi ptr [ %add.ptr130.i, %if.end119.i ], [ %end.i.0, %if.then59.i ] %cur.i.1 = phi ptr [ %add.ptr129.i, %if.end119.i ], [ %cur.i.0, %if.then59.i ] %hdr.i.2 = phi ptr [ %call108.i, %if.end119.i ], [ %hdr.i.1, %if.then59.i ] - %cmp.i3348.i.not5210 = select i1 %tobool73.i.not, i1 true, i1 %cmp.i3348.i.not52105710 + %cmp.i3348.i.not5210 = select i1 %tobool73.i.not, i1 true, i1 %cmp.i3348.i.not52105708 br i1 %cmp.i3348.i.not5210, label %write_indent.exit3352.i, label %while.body.i3350.i while.body.i3350.i: ; preds = %if.end131.i, %while.body.i3350.i @@ -50519,7 +50495,7 @@ while.body.i3350.i: ; preds = %if.end131.i, %while store i32 538976288, ptr %cur.addr.i3343.i.05212, align 1 %add.ptr.i3351.i = getelementptr inbounds i8, ptr %cur.addr.i3343.i.05212, i64 %cond.i %cmp.i3348.i.not = icmp eq i64 %dec.i3347.i, 0 - br i1 %cmp.i3348.i.not, label %write_indent.exit3352.i, label %while.body.i3350.i, !llvm.loop !96 + br i1 %cmp.i3348.i.not, label %write_indent.exit3352.i, label %while.body.i3350.i, !llvm.loop !95 write_indent.exit3352.i: ; preds = %while.body.i3350.i, %if.end131.i %cur.addr.i3343.i.0.lcssa = phi ptr [ %cur.i.1, %if.end131.i ], [ %add.ptr.i3351.i, %while.body.i3350.i ] @@ -50948,7 +50924,7 @@ copy_utf8.i.i894.if.end322.i.i900_crit_edge: ; preds = %copy_utf8.i.i894 %.pre = load i8, ptr %src.i.i271.6, align 1 %idxprom323.i.i901.phi.trans.insert = zext i8 %.pre to i64 %arrayidx324.i.i902.phi.trans.insert = getelementptr inbounds i8, ptr %retval.i826.i.0, i64 %idxprom323.i.i901.phi.trans.insert - %.pre5701 = load i8, ptr %arrayidx324.i.i902.phi.trans.insert, align 1 + %.pre5699 = load i8, ptr %arrayidx324.i.i902.phi.trans.insert, align 1 br label %if.end322.i.i900 if.then306.i.i1173: ; preds = %copy_utf8.i.i894 @@ -50969,7 +50945,7 @@ if.end310.i.i1175: ; preds = %if.then306.i.i1173 if.end322.i.i900: ; preds = %copy_utf8.i.i894.if.end322.i.i900_crit_edge, %if.end310.i.i1175 %idxprom323.i.i901.pre-phi = phi i64 [ %idxprom323.i.i901.phi.trans.insert, %copy_utf8.i.i894.if.end322.i.i900_crit_edge ], [ %idxprom314.i.i1179, %if.end310.i.i1175 ] - %355 = phi i8 [ %.pre5701, %copy_utf8.i.i894.if.end322.i.i900_crit_edge ], [ %353, %if.end310.i.i1175 ] + %355 = phi i8 [ %.pre5699, %copy_utf8.i.i894.if.end322.i.i900_crit_edge ], [ %353, %if.end310.i.i1175 ] %356 = phi i8 [ %.pre, %copy_utf8.i.i894.if.end322.i.i900_crit_edge ], [ %352, %if.end310.i.i1175 ] switch i8 %355, label %if.end166.i [ i8 0, label %sw.bb.i.i1167 @@ -51290,14 +51266,14 @@ if.then164.i.cont: ; preds = %if.then164.i, %if.t br i1 %tobool896.i.not, label %return, label %if.then897.i if.end166.i: ; preds = %while.body10.i.i1409, %while.cond245.i.i877.preheader, %if.end260.i.i889, %if.then306.i.i1173, %if.end322.i.i900, %while.cond9.i.i1405.preheader - %cur.addr.i1164.i.8.lcssa.sink6296 = phi ptr [ %cur.addr.i1157.i.1.lcssa, %while.cond9.i.i1405.preheader ], [ %cur.addr.i1164.i.6, %if.end322.i.i900 ], [ %cur.addr.i1164.i.6, %if.then306.i.i1173 ], [ %incdec.ptr262.i.i891, %if.end260.i.i889 ], [ %cur.addr.i1164.i.7.lcssa, %while.cond245.i.i877.preheader ], [ %incdec.ptr12.i.i1411, %while.body10.i.i1409 ] - %incdec.ptr264.i.i880 = getelementptr inbounds i8, ptr %cur.addr.i1164.i.8.lcssa.sink6296, i64 1 - store i8 34, ptr %cur.addr.i1164.i.8.lcssa.sink6296, align 1 + %cur.addr.i1164.i.8.lcssa.sink6294 = phi ptr [ %cur.addr.i1157.i.1.lcssa, %while.cond9.i.i1405.preheader ], [ %cur.addr.i1164.i.6, %if.end322.i.i900 ], [ %cur.addr.i1164.i.6, %if.then306.i.i1173 ], [ %incdec.ptr262.i.i891, %if.end260.i.i889 ], [ %cur.addr.i1164.i.7.lcssa, %while.cond245.i.i877.preheader ], [ %incdec.ptr12.i.i1411, %while.body10.i.i1409 ] + %incdec.ptr264.i.i880 = getelementptr inbounds i8, ptr %cur.addr.i1164.i.8.lcssa.sink6294, i64 1 + store i8 34, ptr %cur.addr.i1164.i.8.lcssa.sink6294, align 1 %conv170.i = select i1 %tobool65.i.not, i8 44, i8 58 - %incdec.ptr171.i = getelementptr inbounds i8, ptr %cur.addr.i1164.i.8.lcssa.sink6296, i64 2 + %incdec.ptr171.i = getelementptr inbounds i8, ptr %cur.addr.i1164.i.8.lcssa.sink6294, i64 2 store i8 %conv170.i, ptr %incdec.ptr264.i.i880, align 1 %conv175.i = select i1 %tobool65.i.not, i8 10, i8 32 - %incdec.ptr176.i = getelementptr inbounds i8, ptr %cur.addr.i1164.i.8.lcssa.sink6296, i64 3 + %incdec.ptr176.i = getelementptr inbounds i8, ptr %cur.addr.i1164.i.8.lcssa.sink6294, i64 3 store i8 %conv175.i, ptr %incdec.ptr171.i, align 1 br label %val_end.i @@ -51342,7 +51318,7 @@ if.end248.i: ; preds = %if.end233.i, %if.th %end.i.3 = phi ptr [ %add.ptr247.i, %if.end233.i ], [ %end.i.0, %if.then181.i ] %cur.i.4 = phi ptr [ %add.ptr246.i, %if.end233.i ], [ %cur.i.0, %if.then181.i ] %hdr.i.4 = phi ptr [ %call222.i, %if.end233.i ], [ %hdr.i.1, %if.then181.i ] - %cmp.i3336.i.not5203 = select i1 %tobool188.i.not, i1 true, i1 %cmp.i3336.i.not52035709 + %cmp.i3336.i.not5203 = select i1 %tobool188.i.not, i1 true, i1 %cmp.i3336.i.not52035707 br i1 %cmp.i3336.i.not5203, label %write_indent.exit3340.i, label %while.body.i3338.i while.body.i3338.i: ; preds = %if.end248.i, %while.body.i3338.i @@ -51352,7 +51328,7 @@ while.body.i3338.i: ; preds = %if.end248.i, %while store i32 538976288, ptr %cur.addr.i3331.i.05205, align 1 %add.ptr.i3339.i = getelementptr inbounds i8, ptr %cur.addr.i3331.i.05205, i64 %cond.i %cmp.i3336.i.not = icmp eq i64 %dec.i3335.i, 0 - br i1 %cmp.i3336.i.not, label %write_indent.exit3340.i, label %while.body.i3338.i, !llvm.loop !96 + br i1 %cmp.i3336.i.not, label %write_indent.exit3340.i, label %while.body.i3338.i, !llvm.loop !95 write_indent.exit3340.i: ; preds = %while.body.i3338.i, %if.end248.i %cur.addr.i3331.i.0.lcssa = phi ptr [ %cur.i.4, %if.end248.i ], [ %add.ptr.i3339.i, %while.body.i3338.i ] @@ -52284,7 +52260,7 @@ for.body104.i.i662: ; preds = %for.body104.i.i662. %arrayidx109.i.i667 = getelementptr inbounds i8, ptr %add.ptr37.i.i409, i64 %indvars.iv store i8 %483, ptr %arrayidx109.i.i667, align 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count - br i1 %exitcond.not, label %for.end112.i.i655, label %for.body104.i.i662, !llvm.loop !94 + br i1 %exitcond.not, label %for.end112.i.i655, label %for.body104.i.i662, !llvm.loop !96 for.end112.i.i655: ; preds = %for.body104.i.i662 %idxprom113.i.i656 = zext nneg i32 %add.i1262.i to i64 @@ -53034,7 +53010,7 @@ do.body.i.i430: ; preds = %do.body.i.i430, %wr %inc142.i.i431 = add nsw i32 %exp_dec.i.i185.2, 1 %550 = load i8, ptr %incdec.ptr.i1253.i, align 1 %cmp144.i.i433 = icmp eq i8 %550, 48 - br i1 %cmp144.i.i433, label %do.body.i.i430, label %do.end.i.i434, !llvm.loop !95 + br i1 %cmp144.i.i433, label %do.body.i.i430, label %do.end.i.i434, !llvm.loop !94 do.end.i.i434: ; preds = %do.body.i.i430 %sub.ptr.lhs.cast.i1254.i = ptrtoint ptr %incdec.ptr.i1253.i to i64 @@ -53606,7 +53582,7 @@ if.end357.i: ; preds = %if.end342.i, %if.th %end.i.4 = phi ptr [ %add.ptr356.i, %if.end342.i ], [ %end.i.0, %if.then298.i ] %cur.i.5 = phi ptr [ %add.ptr355.i, %if.end342.i ], [ %cur.i.0, %if.then298.i ] %hdr.i.5 = phi ptr [ %call331.i, %if.end342.i ], [ %hdr.i.1, %if.then298.i ] - %cmp.i3324.i.not5273 = select i1 %tobool283.i.not, i1 true, i1 %cmp.i3324.i.not52735715 + %cmp.i3324.i.not5273 = select i1 %tobool283.i.not, i1 true, i1 %cmp.i3324.i.not52735713 br i1 %cmp.i3324.i.not5273, label %write_indent.exit3328.i, label %while.body.i3326.i while.body.i3326.i: ; preds = %if.end357.i, %while.body.i3326.i @@ -53616,7 +53592,7 @@ while.body.i3326.i: ; preds = %if.end357.i, %while store i32 538976288, ptr %cur.addr.i3319.i.05275, align 1 %add.ptr.i3327.i = getelementptr inbounds i8, ptr %cur.addr.i3319.i.05275, i64 %cond.i %cmp.i3324.i.not = icmp eq i64 %dec.i3323.i, 0 - br i1 %cmp.i3324.i.not, label %write_indent.exit3328.i, label %while.body.i3326.i, !llvm.loop !96 + br i1 %cmp.i3324.i.not, label %write_indent.exit3328.i, label %while.body.i3326.i, !llvm.loop !95 write_indent.exit3328.i: ; preds = %while.body.i3326.i, %if.end357.i %cur.addr.i3319.i.0.lcssa = phi ptr [ %cur.i.5, %if.end357.i ], [ %add.ptr.i3327.i, %while.body.i3326.i ] @@ -53682,8 +53658,8 @@ if.end441.i: ; preds = %if.end426.i, %if.el store ptr %ctn.i.0.ph, ptr %ctn1.i2926, align 8 %sh_prom448.i = zext i1 %cmp287.i to i64 %shl449.i = shl nuw nsw i64 %shr.i910.i.le, %sh_prom448.i - %cmp.i3312.i.not52795714 = icmp eq i64 %level.i.0.ph, 0 - %cmp.i3312.i.not5279 = select i1 %tobool283.i.not, i1 true, i1 %cmp.i3312.i.not52795714 + %cmp.i3312.i.not52795712 = icmp eq i64 %level.i.0.ph, 0 + %cmp.i3312.i.not5279 = select i1 %tobool283.i.not, i1 true, i1 %cmp.i3312.i.not52795712 br i1 %cmp.i3312.i.not5279, label %write_indent.exit3316.i, label %while.body.i3314.i while.body.i3314.i: ; preds = %if.end441.i, %while.body.i3314.i @@ -53693,7 +53669,7 @@ while.body.i3314.i: ; preds = %if.end441.i, %while store i32 538976288, ptr %cur.addr.i3307.i.05281, align 1 %add.ptr.i3315.i = getelementptr inbounds i8, ptr %cur.addr.i3307.i.05281, i64 %cond.i %cmp.i3312.i.not = icmp eq i64 %dec.i3311.i, 0 - br i1 %cmp.i3312.i.not, label %write_indent.exit3316.i, label %while.body.i3314.i, !llvm.loop !96 + br i1 %cmp.i3312.i.not, label %write_indent.exit3316.i, label %while.body.i3314.i, !llvm.loop !95 write_indent.exit3316.i: ; preds = %while.body.i3314.i, %if.end441.i %cur.addr.i3307.i.0.lcssa = phi ptr [ %cur.i.6, %if.end441.i ], [ %add.ptr.i3315.i, %while.body.i3314.i ] @@ -53779,7 +53755,7 @@ if.end548.i: ; preds = %if.end533.i, %if.th %end.i.6 = phi ptr [ %add.ptr547.i, %if.end533.i ], [ %end.i.0, %if.then481.i ] %cur.i.7 = phi ptr [ %add.ptr546.i, %if.end533.i ], [ %cur.i.0, %if.then481.i ] %hdr.i.7 = phi ptr [ %call522.i, %if.end533.i ], [ %hdr.i.1, %if.then481.i ] - %cmp.i3300.i.not5269 = select i1 %tobool488.i.not, i1 true, i1 %cmp.i3300.i.not52695713 + %cmp.i3300.i.not5269 = select i1 %tobool488.i.not, i1 true, i1 %cmp.i3300.i.not52695711 br i1 %cmp.i3300.i.not5269, label %write_indent.exit3304.i, label %while.body.i3302.i while.body.i3302.i: ; preds = %if.end548.i, %while.body.i3302.i @@ -53789,7 +53765,7 @@ while.body.i3302.i: ; preds = %if.end548.i, %while store i32 538976288, ptr %cur.addr.i3295.i.05271, align 1 %add.ptr.i3303.i = getelementptr inbounds i8, ptr %cur.addr.i3295.i.05271, i64 %cond.i %cmp.i3300.i.not = icmp eq i64 %dec.i3299.i, 0 - br i1 %cmp.i3300.i.not, label %write_indent.exit3304.i, label %while.body.i3302.i, !llvm.loop !96 + br i1 %cmp.i3300.i.not, label %write_indent.exit3304.i, label %while.body.i3302.i, !llvm.loop !95 write_indent.exit3304.i: ; preds = %while.body.i3302.i, %if.end548.i %cur.addr.i3295.i.0.lcssa = phi ptr [ %cur.i.7, %if.end548.i ], [ %add.ptr.i3303.i, %while.body.i3302.i ] @@ -53845,7 +53821,7 @@ if.end631.i: ; preds = %if.end616.i, %if.th %end.i.7 = phi ptr [ %add.ptr630.i, %if.end616.i ], [ %end.i.0, %if.then564.i ] %cur.i.8 = phi ptr [ %add.ptr629.i, %if.end616.i ], [ %cur.i.0, %if.then564.i ] %hdr.i.8 = phi ptr [ %call605.i, %if.end616.i ], [ %hdr.i.1, %if.then564.i ] - %cmp.i3288.i.not5265 = select i1 %tobool571.i.not, i1 true, i1 %cmp.i3288.i.not52655712 + %cmp.i3288.i.not5265 = select i1 %tobool571.i.not, i1 true, i1 %cmp.i3288.i.not52655710 br i1 %cmp.i3288.i.not5265, label %write_indent.exit3292.i, label %while.body.i3290.i while.body.i3290.i: ; preds = %if.end631.i, %while.body.i3290.i @@ -53855,7 +53831,7 @@ while.body.i3290.i: ; preds = %if.end631.i, %while store i32 538976288, ptr %cur.addr.i3283.i.05267, align 1 %add.ptr.i3291.i = getelementptr inbounds i8, ptr %cur.addr.i3283.i.05267, i64 %cond.i %cmp.i3288.i.not = icmp eq i64 %dec.i3287.i, 0 - br i1 %cmp.i3288.i.not, label %write_indent.exit3292.i, label %while.body.i3290.i, !llvm.loop !96 + br i1 %cmp.i3288.i.not, label %write_indent.exit3292.i, label %while.body.i3290.i, !llvm.loop !95 write_indent.exit3292.i: ; preds = %while.body.i3290.i, %if.end631.i %cur.addr.i3283.i.0.lcssa = phi ptr [ %cur.i.8, %if.end631.i ], [ %add.ptr.i3291.i, %while.body.i3290.i ] @@ -54002,7 +53978,7 @@ while.body.i3279.i: ; preds = %if.end772.i, %while store i32 538976288, ptr %cur.addr.i3275.i.05285, align 1 %add.ptr.i3280.i = getelementptr inbounds i8, ptr %cur.addr.i3275.i.05285, i64 %cond.i %cmp.i3277.i.not = icmp eq i64 %dec.i.i, 0 - br i1 %cmp.i3277.i.not, label %write_indent.exit.i, label %while.body.i3279.i, !llvm.loop !96 + br i1 %cmp.i3277.i.not, label %write_indent.exit.i, label %while.body.i3279.i, !llvm.loop !95 write_indent.exit.i: ; preds = %while.body.i3279.i, %if.end772.i %cur.addr.i3275.i.0.lcssa = phi ptr [ %cur.i.11, %if.end772.i ], [ %add.ptr.i3280.i, %while.body.i3279.i ] @@ -54661,10 +54637,10 @@ copy_utf8.i.i2373: ; preds = %copy_utf8.i.i2373.b br i1 %cmp298.i.i2375, label %if.then306.i.i2652, label %copy_utf8.i.i2373.if.end322.i.i2379_crit_edge copy_utf8.i.i2373.if.end322.i.i2379_crit_edge: ; preds = %copy_utf8.i.i2373 - %.pre5703 = load i8, ptr %src.i.i1665.6, align 1 - %idxprom323.i.i2380.phi.trans.insert = zext i8 %.pre5703 to i64 + %.pre5701 = load i8, ptr %src.i.i1665.6, align 1 + %idxprom323.i.i2380.phi.trans.insert = zext i8 %.pre5701 to i64 %arrayidx324.i.i2381.phi.trans.insert = getelementptr inbounds i8, ptr %retval.i826.i.0, i64 %idxprom323.i.i2380.phi.trans.insert - %.pre5704 = load i8, ptr %arrayidx324.i.i2381.phi.trans.insert, align 1 + %.pre5702 = load i8, ptr %arrayidx324.i.i2381.phi.trans.insert, align 1 br label %if.end322.i.i2379 if.then306.i.i2652: ; preds = %copy_utf8.i.i2373 @@ -54685,8 +54661,8 @@ if.end310.i.i2654: ; preds = %if.then306.i.i2652 if.end322.i.i2379: ; preds = %copy_utf8.i.i2373.if.end322.i.i2379_crit_edge, %if.end310.i.i2654 %idxprom323.i.i2380.pre-phi = phi i64 [ %idxprom323.i.i2380.phi.trans.insert, %copy_utf8.i.i2373.if.end322.i.i2379_crit_edge ], [ %idxprom314.i.i2658, %if.end310.i.i2654 ] - %662 = phi i8 [ %.pre5704, %copy_utf8.i.i2373.if.end322.i.i2379_crit_edge ], [ %660, %if.end310.i.i2654 ] - %663 = phi i8 [ %.pre5703, %copy_utf8.i.i2373.if.end322.i.i2379_crit_edge ], [ %659, %if.end310.i.i2654 ] + %662 = phi i8 [ %.pre5702, %copy_utf8.i.i2373.if.end322.i.i2379_crit_edge ], [ %660, %if.end310.i.i2654 ] + %663 = phi i8 [ %.pre5701, %copy_utf8.i.i2373.if.end322.i.i2379_crit_edge ], [ %659, %if.end310.i.i2654 ] switch i8 %662, label %if.end133.i [ i8 0, label %sw.bb.i.i2646 i8 4, label %sw.bb328.i.i2630 @@ -55006,11 +54982,11 @@ if.then131.i.cont: ; preds = %if.then131.i, %if.t br i1 %tobool640.i.not, label %return, label %if.then641.i if.end133.i: ; preds = %while.body10.i.i2889, %while.cond245.i.i2356.preheader, %if.end260.i.i2368, %if.then306.i.i2652, %if.end322.i.i2379, %while.cond9.i.i2885.preheader - %cur.addr.i860.i.8.lcssa.sink6297 = phi ptr [ %cur.addr.i853.i.1.lcssa, %while.cond9.i.i2885.preheader ], [ %cur.addr.i860.i.6, %if.end322.i.i2379 ], [ %cur.addr.i860.i.6, %if.then306.i.i2652 ], [ %incdec.ptr262.i.i2370, %if.end260.i.i2368 ], [ %cur.addr.i860.i.7.lcssa, %while.cond245.i.i2356.preheader ], [ %incdec.ptr12.i.i2891, %while.body10.i.i2889 ] - %incdec.ptr264.i.i2359 = getelementptr inbounds i8, ptr %cur.addr.i860.i.8.lcssa.sink6297, i64 1 - store i8 34, ptr %cur.addr.i860.i.8.lcssa.sink6297, align 1 + %cur.addr.i860.i.8.lcssa.sink6295 = phi ptr [ %cur.addr.i853.i.1.lcssa, %while.cond9.i.i2885.preheader ], [ %cur.addr.i860.i.6, %if.end322.i.i2379 ], [ %cur.addr.i860.i.6, %if.then306.i.i2652 ], [ %incdec.ptr262.i.i2370, %if.end260.i.i2368 ], [ %cur.addr.i860.i.7.lcssa, %while.cond245.i.i2356.preheader ], [ %incdec.ptr12.i.i2891, %while.body10.i.i2889 ] + %incdec.ptr264.i.i2359 = getelementptr inbounds i8, ptr %cur.addr.i860.i.8.lcssa.sink6295, i64 1 + store i8 34, ptr %cur.addr.i860.i.8.lcssa.sink6295, align 1 %conv137.i = select i1 %tobool55.i.not, i8 44, i8 58 - %incdec.ptr138.i = getelementptr inbounds i8, ptr %cur.addr.i860.i.8.lcssa.sink6297, i64 2 + %incdec.ptr138.i = getelementptr inbounds i8, ptr %cur.addr.i860.i.8.lcssa.sink6295, i64 2 store i8 %conv137.i, ptr %incdec.ptr264.i.i2359, align 1 br label %val_end.i1776 @@ -55043,11 +55019,11 @@ if.end179.i: ; preds = %size_align_up.exit7 %sub.ptr.sub191.i = sub i64 %sub.ptr.lhs.cast189.i, %sub.ptr.rhs.cast186.i %add.ptr192.i = getelementptr inbounds i8, ptr %call168.i, i64 %sub.ptr.sub191.i %add.ptr193.i = getelementptr inbounds i8, ptr %call168.i, i64 %add164.i - %.pre5702 = load i64, ptr %val.i1702.0, align 8 + %.pre5700 = load i64, ptr %val.i1702.0, align 8 br label %if.end194.i if.end194.i: ; preds = %if.end179.i, %if.then143.i - %702 = phi i64 [ %.pre5702, %if.end179.i ], [ %606, %if.then143.i ] + %702 = phi i64 [ %.pre5700, %if.end179.i ], [ %606, %if.then143.i ] %alc_len.i1716.3 = phi i64 [ %add164.i, %if.end179.i ], [ %alc_len.i1716.0, %if.then143.i ] %ctx.i1714.3 = phi ptr [ %add.ptr184.i, %if.end179.i ], [ %ctx.i1714.0, %if.then143.i ] %end.i1712.3 = phi ptr [ %add.ptr193.i, %if.end179.i ], [ %end.i1712.0, %if.then143.i ] @@ -55980,7 +55956,7 @@ for.body104.i.i2136: ; preds = %for.body104.i.i2136 %arrayidx109.i.i2141 = getelementptr inbounds i8, ptr %add.ptr37.i.i1879, i64 %indvars.iv5653 store i8 %790, ptr %arrayidx109.i.i2141, align 1 %exitcond5658.not = icmp eq i64 %indvars.iv.next5654, %wide.trip.count5657 - br i1 %exitcond5658.not, label %for.end112.i.i2129, label %for.body104.i.i2136, !llvm.loop !94 + br i1 %exitcond5658.not, label %for.end112.i.i2129, label %for.body104.i.i2136, !llvm.loop !96 for.end112.i.i2129: ; preds = %for.body104.i.i2136 %idxprom113.i.i2130 = zext nneg i32 %add.i958.i to i64 @@ -56730,7 +56706,7 @@ do.body.i.i1899: ; preds = %do.body.i.i1899, %w %inc142.i.i1900 = add nsw i32 %exp_dec.i.i1579.2, 1 %857 = load i8, ptr %incdec.ptr.i949.i, align 1 %cmp144.i.i1902 = icmp eq i8 %857, 48 - br i1 %cmp144.i.i1902, label %do.body.i.i1899, label %do.end.i.i1903, !llvm.loop !95 + br i1 %cmp144.i.i1902, label %do.body.i.i1899, label %do.end.i.i1903, !llvm.loop !94 do.end.i.i1903: ; preds = %do.body.i.i1899 %sub.ptr.lhs.cast.i950.i = ptrtoint ptr %incdec.ptr.i949.i to i64 @@ -57378,11 +57354,11 @@ if.end363.i: ; preds = %size_align_up.exit7 %sub.ptr.sub375.i = sub i64 %sub.ptr.lhs.cast373.i, %sub.ptr.rhs.cast370.i %add.ptr376.i = getelementptr inbounds i8, ptr %call352.i, i64 %sub.ptr.sub375.i %add.ptr377.i = getelementptr inbounds i8, ptr %call352.i, i64 %add348.i - %.pre5705 = load i64, ptr %val.i1702.0, align 8 + %.pre5703 = load i64, ptr %val.i1702.0, align 8 br label %if.end378.i if.end378.i: ; preds = %if.end363.i, %if.then327.i - %901 = phi i64 [ %.pre5705, %if.end363.i ], [ %606, %if.then327.i ] + %901 = phi i64 [ %.pre5703, %if.end363.i ], [ %606, %if.then327.i ] %alc_len.i1716.5 = phi i64 [ %add348.i, %if.end363.i ], [ %alc_len.i1716.0, %if.then327.i ] %ctx.i1714.5 = phi ptr [ %add.ptr368.i, %if.end363.i ], [ %ctx.i1714.0, %if.then327.i ] %end.i1712.5 = phi ptr [ %add.ptr377.i, %if.end363.i ], [ %end.i1712.0, %if.then327.i ]