From cd72015df62bc51d0de8ea73b19fbedc1c5228f1 Mon Sep 17 00:00:00 2001 From: nikic <216080+nikic@users.noreply.github.com> Date: Mon, 13 Jan 2025 04:39:35 +0800 Subject: [PATCH 1/2] pre-commit: PR122620 --- scripts/setup_pre_commit_patch.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index c5409e09ef4..8454297b713 100755 --- a/scripts/setup_pre_commit_patch.sh +++ b/scripts/setup_pre_commit_patch.sh @@ -2,7 +2,7 @@ set -euo pipefail shopt -s inherit_errexit -export GITHUB_PATCH_ID="/llvm-project/commit/" +export GITHUB_PATCH_ID=llvm/llvm-project/pull/122620 export COMPTIME_MODE=0 # Please rebase manually From 91718411de9accdbd81a255a4a6100031adc660c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 12 Jan 2025 20:57:27 +0000 Subject: [PATCH 2/2] pre-commit: Update --- bench/abseil-cpp/optimized/bits_test.cc.ll | 958 ++++++++---------- .../llvm/optimized/AArch64ISelLowering.cpp.ll | 759 +++++++------- .../optimized/AttributorAttributes.cpp.ll | 4 +- bench/llvm/optimized/RISCVTargetParser.cpp.ll | 97 +- bench/llvm/optimized/Value.cpp.ll | 6 +- bench/llvm/optimized/WasmObjectWriter.cpp.ll | 294 +++--- bench/ncnn/optimized/innerproduct_x86.cpp.ll | 122 ++- .../optimized/innerproduct_x86_avx.cpp.ll | 140 ++- .../optimized/innerproduct_x86_avx512.cpp.ll | 164 ++- .../optimized/innerproduct_x86_fma.cpp.ll | 154 ++- 10 files changed, 1270 insertions(+), 1428 deletions(-) diff --git a/bench/abseil-cpp/optimized/bits_test.cc.ll b/bench/abseil-cpp/optimized/bits_test.cc.ll index 7157d83fcae..a2ee8f6f293 100644 --- a/bench/abseil-cpp/optimized/bits_test.cc.ll +++ b/bench/abseil-cpp/optimized/bits_test.cc.ll @@ -191,10 +191,6 @@ $_ZZN7testing8internal31CanonicalizeForStdLibVersioningENSt7__cxx1112basic_strin @_ZTVN4absl12_GLOBAL__N_127Counting_LeadingZeroes_TestE = internal unnamed_addr constant { [8 x ptr] } { [8 x ptr] [ptr null, ptr @_ZTIN4absl12_GLOBAL__N_127Counting_LeadingZeroes_TestE, ptr @_ZN4absl12_GLOBAL__N_127Counting_LeadingZeroes_TestD2Ev, ptr @_ZN4absl12_GLOBAL__N_127Counting_LeadingZeroes_TestD0Ev, ptr @_ZN7testing4Test5SetUpEv, ptr @_ZN7testing4Test8TearDownEv, ptr @_ZN4absl12_GLOBAL__N_127Counting_LeadingZeroes_Test8TestBodyEv, ptr @_ZN7testing4Test5SetupEv] }, align 8 @_ZTSN4absl12_GLOBAL__N_127Counting_LeadingZeroes_TestE = internal constant [51 x i8] c"N4absl12_GLOBAL__N_127Counting_LeadingZeroes_TestE\00", align 1 @_ZTIN4absl12_GLOBAL__N_127Counting_LeadingZeroes_TestE = internal constant { ptr, ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2), ptr @_ZTSN4absl12_GLOBAL__N_127Counting_LeadingZeroes_TestE, ptr @_ZTIN7testing4TestE }, align 8 -@.str.100 = private unnamed_addr constant [43 x i8] c"countl_zero(static_cast(1u << i))\00", align 1 -@.str.101 = private unnamed_addr constant [6 x i8] c"7 - i\00", align 1 -@.str.102 = private unnamed_addr constant [44 x i8] c"countl_zero(static_cast(1u << i))\00", align 1 -@.str.103 = private unnamed_addr constant [7 x i8] c"15 - i\00", align 1 @_ZTVN7testing8internal15TestFactoryImplIN4absl12_GLOBAL__N_125Counting_LeadingOnes_TestEEE = internal unnamed_addr constant { [5 x ptr] } { [5 x ptr] [ptr null, ptr @_ZTIN7testing8internal15TestFactoryImplIN4absl12_GLOBAL__N_125Counting_LeadingOnes_TestEEE, ptr @_ZN7testing8internal15TestFactoryImplIN4absl12_GLOBAL__N_125Counting_LeadingOnes_TestEED2Ev, ptr @_ZN7testing8internal15TestFactoryImplIN4absl12_GLOBAL__N_125Counting_LeadingOnes_TestEED0Ev, ptr @_ZN7testing8internal15TestFactoryImplIN4absl12_GLOBAL__N_125Counting_LeadingOnes_TestEE10CreateTestEv] }, align 8 @_ZTSN7testing8internal15TestFactoryImplIN4absl12_GLOBAL__N_125Counting_LeadingOnes_TestEEE = internal constant [87 x i8] c"N7testing8internal15TestFactoryImplIN4absl12_GLOBAL__N_125Counting_LeadingOnes_TestEEE\00", align 1 @_ZTIN7testing8internal15TestFactoryImplIN4absl12_GLOBAL__N_125Counting_LeadingOnes_TestEEE = internal constant { ptr, ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2), ptr @_ZTSN7testing8internal15TestFactoryImplIN4absl12_GLOBAL__N_125Counting_LeadingOnes_TestEEE, ptr @_ZTIN7testing8internal15TestFactoryBaseE }, align 8 @@ -253,7 +249,6 @@ $_ZZN7testing8internal31CanonicalizeForStdLibVersioningENSt7__cxx1112basic_strin @_ZTVN4absl12_GLOBAL__N_130IntegralPowersOfTwo_Floor_TestE = internal unnamed_addr constant { [8 x ptr] } { [8 x ptr] [ptr null, ptr @_ZTIN4absl12_GLOBAL__N_130IntegralPowersOfTwo_Floor_TestE, ptr @_ZN4absl12_GLOBAL__N_130IntegralPowersOfTwo_Floor_TestD2Ev, ptr @_ZN4absl12_GLOBAL__N_130IntegralPowersOfTwo_Floor_TestD0Ev, ptr @_ZN7testing4Test5SetUpEv, ptr @_ZN7testing4Test8TearDownEv, ptr @_ZN4absl12_GLOBAL__N_130IntegralPowersOfTwo_Floor_Test8TestBodyEv, ptr @_ZN7testing4Test5SetupEv] }, align 8 @_ZTSN4absl12_GLOBAL__N_130IntegralPowersOfTwo_Floor_TestE = internal constant [54 x i8] c"N4absl12_GLOBAL__N_130IntegralPowersOfTwo_Floor_TestE\00", align 1 @_ZTIN4absl12_GLOBAL__N_130IntegralPowersOfTwo_Floor_TestE = internal constant { ptr, ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2), ptr @_ZTSN4absl12_GLOBAL__N_130IntegralPowersOfTwo_Floor_TestE, ptr @_ZTIN7testing4TestE }, align 8 -@.str.223 = private unnamed_addr constant [17 x i8] c"bit_floor(input)\00", align 1 @.str.224 = private unnamed_addr constant [6 x i8] c"input\00", align 1 @.str.225 = private unnamed_addr constant [43 x i8] c"bit_floor(static_cast(input + 1))\00", align 1 @.str.226 = private unnamed_addr constant [44 x i8] c"bit_floor(static_cast(input + 1))\00", align 1 @@ -264,9 +259,6 @@ $_ZZN7testing8internal31CanonicalizeForStdLibVersioningENSt7__cxx1112basic_strin @_ZTVN4absl12_GLOBAL__N_130IntegralPowersOfTwo_Width_TestE = internal unnamed_addr constant { [8 x ptr] } { [8 x ptr] [ptr null, ptr @_ZTIN4absl12_GLOBAL__N_130IntegralPowersOfTwo_Width_TestE, ptr @_ZN4absl12_GLOBAL__N_130IntegralPowersOfTwo_Width_TestD2Ev, ptr @_ZN4absl12_GLOBAL__N_130IntegralPowersOfTwo_Width_TestD0Ev, ptr @_ZN7testing4Test5SetUpEv, ptr @_ZN7testing4Test8TearDownEv, ptr @_ZN4absl12_GLOBAL__N_130IntegralPowersOfTwo_Width_Test8TestBodyEv, ptr @_ZN7testing4Test5SetupEv] }, align 8 @_ZTSN4absl12_GLOBAL__N_130IntegralPowersOfTwo_Width_TestE = internal constant [54 x i8] c"N4absl12_GLOBAL__N_130IntegralPowersOfTwo_Width_TestE\00", align 1 @_ZTIN4absl12_GLOBAL__N_130IntegralPowersOfTwo_Width_TestE = internal constant { ptr, ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2), ptr @_ZTSN4absl12_GLOBAL__N_130IntegralPowersOfTwo_Width_TestE, ptr @_ZTIN7testing4TestE }, align 8 -@.str.244 = private unnamed_addr constant [49 x i8] c"bit_width(static_cast(uint8_t{1} << i))\00", align 1 -@.str.245 = private unnamed_addr constant [6 x i8] c"i + 1\00", align 1 -@.str.246 = private unnamed_addr constant [51 x i8] c"bit_width(static_cast(uint16_t{1} << i))\00", align 1 @.str.249 = private unnamed_addr constant [50 x i8] c"basic_string: construction from null is not valid\00", align 1 @.str.250 = private unnamed_addr constant [2 x i8] c"/\00", align 1 @_ZTIh = external constant ptr @@ -6048,13 +6040,9 @@ _ZN7testing8internal8EqHelper7CompareIiiTnPNSt9enable_ifIXoontsr3std11is_integra %ref.tmp146 = alloca %"class.testing::Message", align 8 %ref.tmp149 = alloca %"class.testing::internal::AssertHelper", align 8 %gtest_ar160 = alloca %"class.testing::AssertionResult", align 8 - %ref.tmp161 = alloca i32, align 4 - %ref.tmp163 = alloca i32, align 4 %ref.tmp167 = alloca %"class.testing::Message", align 8 %ref.tmp170 = alloca %"class.testing::internal::AssertHelper", align 8 %gtest_ar185 = alloca %"class.testing::AssertionResult", align 8 - %ref.tmp186 = alloca i32, align 4 - %ref.tmp190 = alloca i32, align 4 %ref.tmp195 = alloca %"class.testing::Message", align 8 %ref.tmp198 = alloca %"class.testing::internal::AssertHelper", align 8 %gtest_ar216 = alloca %"class.testing::AssertionResult", align 8 @@ -6792,49 +6780,30 @@ _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEP _ZN7testing15AssertionResultD2Ev.exit229: ; preds = %if.end158, %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i228 store ptr null, ptr %message_.i226, align 8 %message_.i.i236 = getelementptr inbounds nuw i8, ptr %gtest_ar160, i64 8 - br label %for.body + br label %if.then.i.i233 for.cond182.preheader: ; preds = %_ZN7testing15AssertionResultD2Ev.exit255 %message_.i.i261 = getelementptr inbounds nuw i8, ptr %gtest_ar185, i64 8 - br label %for.body184 + br label %if.then.i.i258 -for.body: ; preds = %_ZN7testing15AssertionResultD2Ev.exit229, %_ZN7testing15AssertionResultD2Ev.exit255 +if.then.i.i233: ; preds = %_ZN7testing15AssertionResultD2Ev.exit229, %_ZN7testing15AssertionResultD2Ev.exit255 %i.0332 = phi i32 [ 0, %_ZN7testing15AssertionResultD2Ev.exit229 ], [ %inc, %_ZN7testing15AssertionResultD2Ev.exit255 ] - %shl = shl nuw nsw i32 1, %i.0332 - %conv = trunc nuw i32 %shl to i16 - %80 = call range(i16 8, 17) i16 @llvm.ctlz.i16(i16 %conv, i1 true) - %cast.i.i = zext nneg i16 %80 to i32 - %81 = add nsw i32 %cast.i.i, -8 - store i32 %81, ptr %ref.tmp161, align 4 - %sub = sub nuw nsw i32 7, %i.0332 - store i32 %sub, ptr %ref.tmp163, align 4 - %cmp.i.i231 = icmp eq i32 %81, %sub - br i1 %cmp.i.i231, label %if.then.i.i233, label %if.end.i.i232 - -if.then.i.i233: ; preds = %for.body call void @_ZN7testing16AssertionSuccessEv(ptr nonnull sret(%"class.testing::AssertionResult") align 8 %gtest_ar160) - br label %_ZN7testing8internal8EqHelper7CompareIiiTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit234 - -if.end.i.i232: ; preds = %for.body - call void @_ZN7testing8internal18CmpHelperEQFailureIiiEENS_15AssertionResultEPKcS4_RKT_RKT0_(ptr nonnull sret(%"class.testing::AssertionResult") align 8 %gtest_ar160, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.101, ptr noundef nonnull align 4 dereferenceable(4) %ref.tmp161, ptr noundef nonnull align 4 dereferenceable(4) %ref.tmp163) - br label %_ZN7testing8internal8EqHelper7CompareIiiTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit234 - -_ZN7testing8internal8EqHelper7CompareIiiTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit234: ; preds = %if.then.i.i233, %if.end.i.i232 - %82 = load i8, ptr %gtest_ar160, align 8 - %tobool.i235 = trunc i8 %82 to i1 + %80 = load i8, ptr %gtest_ar160, align 8 + %tobool.i235 = trunc i8 %80 to i1 br i1 %tobool.i235, label %if.end179, label %if.else166 -if.else166: ; preds = %_ZN7testing8internal8EqHelper7CompareIiiTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit234 +if.else166: ; preds = %if.then.i.i233 invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp167) to label %invoke.cont169 unwind label %lpad168 invoke.cont169: ; preds = %if.else166 - %83 = load ptr, ptr %message_.i.i236, align 8 - %cmp.i.i.not.i.i237 = icmp eq ptr %83, null + %81 = load ptr, ptr %message_.i.i236, align 8 + %cmp.i.i.not.i.i237 = icmp eq ptr %81, null br i1 %cmp.i.i.not.i.i237, label %invoke.cont172, label %cond.true.i.i238 cond.true.i.i238: ; preds = %invoke.cont169 - %call4.i.i239 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %83) #20 + %call4.i.i239 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %81) #20 br label %invoke.cont172 invoke.cont172: ; preds = %cond.true.i.i238, %invoke.cont169 @@ -6848,15 +6817,15 @@ invoke.cont174: ; preds = %invoke.cont172 invoke.cont176: ; preds = %invoke.cont174 call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp170) #20 - %84 = load ptr, ptr %ref.tmp167, align 8 - %cmp.not.i.i242 = icmp eq ptr %84, null + %82 = load ptr, ptr %ref.tmp167, align 8 + %cmp.not.i.i242 = icmp eq ptr %82, null br i1 %cmp.not.i.i242, label %_ZN7testing7MessageD2Ev.exit246, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i243 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i243: ; preds = %invoke.cont176 - %vtable.i.i.i244 = load ptr, ptr %84, align 8 + %vtable.i.i.i244 = load ptr, ptr %82, align 8 %vfn.i.i.i245 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i244, i64 8 - %85 = load ptr, ptr %vfn.i.i.i245, align 8 - call void %85(ptr noundef nonnull align 8 dereferenceable(128) %84) #20 + %83 = load ptr, ptr %vfn.i.i.i245, align 8 + call void %83(ptr noundef nonnull align 8 dereferenceable(128) %82) #20 br label %_ZN7testing7MessageD2Ev.exit246 _ZN7testing7MessageD2Ev.exit246: ; preds = %invoke.cont176, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i243 @@ -6864,94 +6833,76 @@ _ZN7testing7MessageD2Ev.exit246: ; preds = %invoke.cont176, %_Z br label %if.end179 lpad168: ; preds = %if.else166 - %86 = landingpad { ptr, i32 } + %84 = landingpad { ptr, i32 } cleanup br label %eh.resume lpad171: ; preds = %invoke.cont172 - %87 = landingpad { ptr, i32 } + %85 = landingpad { ptr, i32 } cleanup br label %ehcleanup178 lpad175: ; preds = %invoke.cont174 - %88 = landingpad { ptr, i32 } + %86 = landingpad { ptr, i32 } cleanup call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp170) #20 br label %ehcleanup178 ehcleanup178: ; preds = %lpad175, %lpad171 - %.pn45 = phi { ptr, i32 } [ %88, %lpad175 ], [ %87, %lpad171 ] - %89 = load ptr, ptr %ref.tmp167, align 8 - %cmp.not.i.i247 = icmp eq ptr %89, null + %.pn45 = phi { ptr, i32 } [ %86, %lpad175 ], [ %85, %lpad171 ] + %87 = load ptr, ptr %ref.tmp167, align 8 + %cmp.not.i.i247 = icmp eq ptr %87, null br i1 %cmp.not.i.i247, label %_ZN7testing7MessageD2Ev.exit251, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i248 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i248: ; preds = %ehcleanup178 - %vtable.i.i.i249 = load ptr, ptr %89, align 8 + %vtable.i.i.i249 = load ptr, ptr %87, align 8 %vfn.i.i.i250 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i249, i64 8 - %90 = load ptr, ptr %vfn.i.i.i250, align 8 - call void %90(ptr noundef nonnull align 8 dereferenceable(128) %89) #20 + %88 = load ptr, ptr %vfn.i.i.i250, align 8 + call void %88(ptr noundef nonnull align 8 dereferenceable(128) %87) #20 br label %_ZN7testing7MessageD2Ev.exit251 _ZN7testing7MessageD2Ev.exit251: ; preds = %ehcleanup178, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i248 store ptr null, ptr %ref.tmp167, align 8 br label %eh.resume -if.end179: ; preds = %_ZN7testing8internal8EqHelper7CompareIiiTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit234, %_ZN7testing7MessageD2Ev.exit246 - %91 = load ptr, ptr %message_.i.i236, align 8 - %cmp.not.i.i253 = icmp eq ptr %91, null +if.end179: ; preds = %if.then.i.i233, %_ZN7testing7MessageD2Ev.exit246 + %89 = load ptr, ptr %message_.i.i236, align 8 + %cmp.not.i.i253 = icmp eq ptr %89, null br i1 %cmp.not.i.i253, label %_ZN7testing15AssertionResultD2Ev.exit255, label %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i254 _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i254: ; preds = %if.end179 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #20 - call void @_ZdlPv(ptr noundef nonnull %91) #21 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #20 + call void @_ZdlPv(ptr noundef nonnull %89) #21 br label %_ZN7testing15AssertionResultD2Ev.exit255 _ZN7testing15AssertionResultD2Ev.exit255: ; preds = %if.end179, %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i254 store ptr null, ptr %message_.i.i236, align 8 %inc = add nuw nsw i32 %i.0332, 1 %exitcond.not = icmp eq i32 %inc, 8 - br i1 %exitcond.not, label %for.cond182.preheader, label %for.body, !llvm.loop !84 + br i1 %exitcond.not, label %for.cond182.preheader, label %if.then.i.i233, !llvm.loop !84 for.cond213.preheader: ; preds = %_ZN7testing15AssertionResultD2Ev.exit280 %message_.i.i286 = getelementptr inbounds nuw i8, ptr %gtest_ar216, i64 8 br label %if.then.i.i283 -for.body184: ; preds = %for.cond182.preheader, %_ZN7testing15AssertionResultD2Ev.exit280 +if.then.i.i258: ; preds = %for.cond182.preheader, %_ZN7testing15AssertionResultD2Ev.exit280 %i181.0333 = phi i32 [ 0, %for.cond182.preheader ], [ %inc210, %_ZN7testing15AssertionResultD2Ev.exit280 ] - %shl187 = shl nuw nsw i32 1, %i181.0333 - %conv188 = trunc nuw i32 %shl187 to i16 - %92 = call range(i16 0, 17) i16 @llvm.ctlz.i16(i16 %conv188, i1 true) - %cast.i.i.i = zext nneg i16 %92 to i32 - store i32 %cast.i.i.i, ptr %ref.tmp186, align 4 - %sub191 = sub nuw nsw i32 15, %i181.0333 - store i32 %sub191, ptr %ref.tmp190, align 4 - %cmp.i.i256 = icmp eq i32 %sub191, %cast.i.i.i - br i1 %cmp.i.i256, label %if.then.i.i258, label %if.end.i.i257 - -if.then.i.i258: ; preds = %for.body184 call void @_ZN7testing16AssertionSuccessEv(ptr nonnull sret(%"class.testing::AssertionResult") align 8 %gtest_ar185) - br label %_ZN7testing8internal8EqHelper7CompareIiiTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit259 - -if.end.i.i257: ; preds = %for.body184 - call void @_ZN7testing8internal18CmpHelperEQFailureIiiEENS_15AssertionResultEPKcS4_RKT_RKT0_(ptr nonnull sret(%"class.testing::AssertionResult") align 8 %gtest_ar185, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.103, ptr noundef nonnull align 4 dereferenceable(4) %ref.tmp186, ptr noundef nonnull align 4 dereferenceable(4) %ref.tmp190) - br label %_ZN7testing8internal8EqHelper7CompareIiiTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit259 - -_ZN7testing8internal8EqHelper7CompareIiiTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit259: ; preds = %if.then.i.i258, %if.end.i.i257 - %93 = load i8, ptr %gtest_ar185, align 8 - %tobool.i260 = trunc i8 %93 to i1 + %90 = load i8, ptr %gtest_ar185, align 8 + %tobool.i260 = trunc i8 %90 to i1 br i1 %tobool.i260, label %if.end207, label %if.else194 -if.else194: ; preds = %_ZN7testing8internal8EqHelper7CompareIiiTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit259 +if.else194: ; preds = %if.then.i.i258 invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp195) to label %invoke.cont197 unwind label %lpad196 invoke.cont197: ; preds = %if.else194 - %94 = load ptr, ptr %message_.i.i261, align 8 - %cmp.i.i.not.i.i262 = icmp eq ptr %94, null + %91 = load ptr, ptr %message_.i.i261, align 8 + %cmp.i.i.not.i.i262 = icmp eq ptr %91, null br i1 %cmp.i.i.not.i.i262, label %invoke.cont200, label %cond.true.i.i263 cond.true.i.i263: ; preds = %invoke.cont197 - %call4.i.i264 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %94) #20 + %call4.i.i264 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %91) #20 br label %invoke.cont200 invoke.cont200: ; preds = %cond.true.i.i263, %invoke.cont197 @@ -6965,15 +6916,15 @@ invoke.cont202: ; preds = %invoke.cont200 invoke.cont204: ; preds = %invoke.cont202 call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp198) #20 - %95 = load ptr, ptr %ref.tmp195, align 8 - %cmp.not.i.i267 = icmp eq ptr %95, null + %92 = load ptr, ptr %ref.tmp195, align 8 + %cmp.not.i.i267 = icmp eq ptr %92, null br i1 %cmp.not.i.i267, label %_ZN7testing7MessageD2Ev.exit271, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i268 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i268: ; preds = %invoke.cont204 - %vtable.i.i.i269 = load ptr, ptr %95, align 8 + %vtable.i.i.i269 = load ptr, ptr %92, align 8 %vfn.i.i.i270 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i269, i64 8 - %96 = load ptr, ptr %vfn.i.i.i270, align 8 - call void %96(ptr noundef nonnull align 8 dereferenceable(128) %95) #20 + %93 = load ptr, ptr %vfn.i.i.i270, align 8 + call void %93(ptr noundef nonnull align 8 dereferenceable(128) %92) #20 br label %_ZN7testing7MessageD2Ev.exit271 _ZN7testing7MessageD2Ev.exit271: ; preds = %invoke.cont204, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i268 @@ -6981,53 +6932,53 @@ _ZN7testing7MessageD2Ev.exit271: ; preds = %invoke.cont204, %_Z br label %if.end207 lpad196: ; preds = %if.else194 - %97 = landingpad { ptr, i32 } + %94 = landingpad { ptr, i32 } cleanup br label %eh.resume lpad199: ; preds = %invoke.cont200 - %98 = landingpad { ptr, i32 } + %95 = landingpad { ptr, i32 } cleanup br label %ehcleanup206 lpad203: ; preds = %invoke.cont202 - %99 = landingpad { ptr, i32 } + %96 = landingpad { ptr, i32 } cleanup call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp198) #20 br label %ehcleanup206 ehcleanup206: ; preds = %lpad203, %lpad199 - %.pn42 = phi { ptr, i32 } [ %99, %lpad203 ], [ %98, %lpad199 ] - %100 = load ptr, ptr %ref.tmp195, align 8 - %cmp.not.i.i272 = icmp eq ptr %100, null + %.pn42 = phi { ptr, i32 } [ %96, %lpad203 ], [ %95, %lpad199 ] + %97 = load ptr, ptr %ref.tmp195, align 8 + %cmp.not.i.i272 = icmp eq ptr %97, null br i1 %cmp.not.i.i272, label %_ZN7testing7MessageD2Ev.exit276, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i273 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i273: ; preds = %ehcleanup206 - %vtable.i.i.i274 = load ptr, ptr %100, align 8 + %vtable.i.i.i274 = load ptr, ptr %97, align 8 %vfn.i.i.i275 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i274, i64 8 - %101 = load ptr, ptr %vfn.i.i.i275, align 8 - call void %101(ptr noundef nonnull align 8 dereferenceable(128) %100) #20 + %98 = load ptr, ptr %vfn.i.i.i275, align 8 + call void %98(ptr noundef nonnull align 8 dereferenceable(128) %97) #20 br label %_ZN7testing7MessageD2Ev.exit276 _ZN7testing7MessageD2Ev.exit276: ; preds = %ehcleanup206, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i273 store ptr null, ptr %ref.tmp195, align 8 br label %eh.resume -if.end207: ; preds = %_ZN7testing8internal8EqHelper7CompareIiiTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit259, %_ZN7testing7MessageD2Ev.exit271 - %102 = load ptr, ptr %message_.i.i261, align 8 - %cmp.not.i.i278 = icmp eq ptr %102, null +if.end207: ; preds = %if.then.i.i258, %_ZN7testing7MessageD2Ev.exit271 + %99 = load ptr, ptr %message_.i.i261, align 8 + %cmp.not.i.i278 = icmp eq ptr %99, null br i1 %cmp.not.i.i278, label %_ZN7testing15AssertionResultD2Ev.exit280, label %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i279 _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i279: ; preds = %if.end207 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #20 - call void @_ZdlPv(ptr noundef nonnull %102) #21 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #20 + call void @_ZdlPv(ptr noundef nonnull %99) #21 br label %_ZN7testing15AssertionResultD2Ev.exit280 _ZN7testing15AssertionResultD2Ev.exit280: ; preds = %if.end207, %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i279 store ptr null, ptr %message_.i.i261, align 8 %inc210 = add nuw nsw i32 %i181.0333, 1 %exitcond336.not = icmp eq i32 %inc210, 16 - br i1 %exitcond336.not, label %for.cond213.preheader, label %for.body184, !llvm.loop !85 + br i1 %exitcond336.not, label %for.cond213.preheader, label %if.then.i.i258, !llvm.loop !85 for.cond243.preheader: ; preds = %_ZN7testing15AssertionResultD2Ev.exit305 %message_.i.i312 = getelementptr inbounds nuw i8, ptr %gtest_ar246, i64 8 @@ -7036,8 +6987,8 @@ for.cond243.preheader: ; preds = %_ZN7testing15Assert if.then.i.i283: ; preds = %for.cond213.preheader, %_ZN7testing15AssertionResultD2Ev.exit305 %i212.0334 = phi i32 [ 0, %for.cond213.preheader ], [ %inc240, %_ZN7testing15AssertionResultD2Ev.exit305 ] call void @_ZN7testing16AssertionSuccessEv(ptr nonnull sret(%"class.testing::AssertionResult") align 8 %gtest_ar216) - %103 = load i8, ptr %gtest_ar216, align 8 - %tobool.i285 = trunc i8 %103 to i1 + %100 = load i8, ptr %gtest_ar216, align 8 + %tobool.i285 = trunc i8 %100 to i1 br i1 %tobool.i285, label %if.end237, label %if.else224 if.else224: ; preds = %if.then.i.i283 @@ -7045,12 +6996,12 @@ if.else224: ; preds = %if.then.i.i283 to label %invoke.cont227 unwind label %lpad226 invoke.cont227: ; preds = %if.else224 - %104 = load ptr, ptr %message_.i.i286, align 8 - %cmp.i.i.not.i.i287 = icmp eq ptr %104, null + %101 = load ptr, ptr %message_.i.i286, align 8 + %cmp.i.i.not.i.i287 = icmp eq ptr %101, null br i1 %cmp.i.i.not.i.i287, label %invoke.cont230, label %cond.true.i.i288 cond.true.i.i288: ; preds = %invoke.cont227 - %call4.i.i289 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %104) #20 + %call4.i.i289 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %101) #20 br label %invoke.cont230 invoke.cont230: ; preds = %cond.true.i.i288, %invoke.cont227 @@ -7064,15 +7015,15 @@ invoke.cont232: ; preds = %invoke.cont230 invoke.cont234: ; preds = %invoke.cont232 call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp228) #20 - %105 = load ptr, ptr %ref.tmp225, align 8 - %cmp.not.i.i292 = icmp eq ptr %105, null + %102 = load ptr, ptr %ref.tmp225, align 8 + %cmp.not.i.i292 = icmp eq ptr %102, null br i1 %cmp.not.i.i292, label %_ZN7testing7MessageD2Ev.exit296, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i293 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i293: ; preds = %invoke.cont234 - %vtable.i.i.i294 = load ptr, ptr %105, align 8 + %vtable.i.i.i294 = load ptr, ptr %102, align 8 %vfn.i.i.i295 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i294, i64 8 - %106 = load ptr, ptr %vfn.i.i.i295, align 8 - call void %106(ptr noundef nonnull align 8 dereferenceable(128) %105) #20 + %103 = load ptr, ptr %vfn.i.i.i295, align 8 + call void %103(ptr noundef nonnull align 8 dereferenceable(128) %102) #20 br label %_ZN7testing7MessageD2Ev.exit296 _ZN7testing7MessageD2Ev.exit296: ; preds = %invoke.cont234, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i293 @@ -7080,32 +7031,32 @@ _ZN7testing7MessageD2Ev.exit296: ; preds = %invoke.cont234, %_Z br label %if.end237 lpad226: ; preds = %if.else224 - %107 = landingpad { ptr, i32 } + %104 = landingpad { ptr, i32 } cleanup br label %eh.resume lpad229: ; preds = %invoke.cont230 - %108 = landingpad { ptr, i32 } + %105 = landingpad { ptr, i32 } cleanup br label %ehcleanup236 lpad233: ; preds = %invoke.cont232 - %109 = landingpad { ptr, i32 } + %106 = landingpad { ptr, i32 } cleanup call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp228) #20 br label %ehcleanup236 ehcleanup236: ; preds = %lpad233, %lpad229 - %.pn39 = phi { ptr, i32 } [ %109, %lpad233 ], [ %108, %lpad229 ] - %110 = load ptr, ptr %ref.tmp225, align 8 - %cmp.not.i.i297 = icmp eq ptr %110, null + %.pn39 = phi { ptr, i32 } [ %106, %lpad233 ], [ %105, %lpad229 ] + %107 = load ptr, ptr %ref.tmp225, align 8 + %cmp.not.i.i297 = icmp eq ptr %107, null br i1 %cmp.not.i.i297, label %_ZN7testing7MessageD2Ev.exit301, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i298 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i298: ; preds = %ehcleanup236 - %vtable.i.i.i299 = load ptr, ptr %110, align 8 + %vtable.i.i.i299 = load ptr, ptr %107, align 8 %vfn.i.i.i300 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i299, i64 8 - %111 = load ptr, ptr %vfn.i.i.i300, align 8 - call void %111(ptr noundef nonnull align 8 dereferenceable(128) %110) #20 + %108 = load ptr, ptr %vfn.i.i.i300, align 8 + call void %108(ptr noundef nonnull align 8 dereferenceable(128) %107) #20 br label %_ZN7testing7MessageD2Ev.exit301 _ZN7testing7MessageD2Ev.exit301: ; preds = %ehcleanup236, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i298 @@ -7113,13 +7064,13 @@ _ZN7testing7MessageD2Ev.exit301: ; preds = %ehcleanup236, %_ZNK br label %eh.resume if.end237: ; preds = %if.then.i.i283, %_ZN7testing7MessageD2Ev.exit296 - %112 = load ptr, ptr %message_.i.i286, align 8 - %cmp.not.i.i303 = icmp eq ptr %112, null + %109 = load ptr, ptr %message_.i.i286, align 8 + %cmp.not.i.i303 = icmp eq ptr %109, null br i1 %cmp.not.i.i303, label %_ZN7testing15AssertionResultD2Ev.exit305, label %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i304 _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i304: ; preds = %if.end237 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #20 - call void @_ZdlPv(ptr noundef nonnull %112) #21 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #20 + call void @_ZdlPv(ptr noundef nonnull %109) #21 br label %_ZN7testing15AssertionResultD2Ev.exit305 _ZN7testing15AssertionResultD2Ev.exit305: ; preds = %if.end237, %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i304 @@ -7131,8 +7082,8 @@ _ZN7testing15AssertionResultD2Ev.exit305: ; preds = %if.end237, %_ZNKSt1 if.then.i.i309: ; preds = %for.cond243.preheader, %_ZN7testing15AssertionResultD2Ev.exit331 %i242.0335 = phi i32 [ 0, %for.cond243.preheader ], [ %inc270, %_ZN7testing15AssertionResultD2Ev.exit331 ] call void @_ZN7testing16AssertionSuccessEv(ptr nonnull sret(%"class.testing::AssertionResult") align 8 %gtest_ar246) - %113 = load i8, ptr %gtest_ar246, align 8 - %tobool.i311 = trunc i8 %113 to i1 + %110 = load i8, ptr %gtest_ar246, align 8 + %tobool.i311 = trunc i8 %110 to i1 br i1 %tobool.i311, label %if.end267, label %if.else254 if.else254: ; preds = %if.then.i.i309 @@ -7140,12 +7091,12 @@ if.else254: ; preds = %if.then.i.i309 to label %invoke.cont257 unwind label %lpad256 invoke.cont257: ; preds = %if.else254 - %114 = load ptr, ptr %message_.i.i312, align 8 - %cmp.i.i.not.i.i313 = icmp eq ptr %114, null + %111 = load ptr, ptr %message_.i.i312, align 8 + %cmp.i.i.not.i.i313 = icmp eq ptr %111, null br i1 %cmp.i.i.not.i.i313, label %invoke.cont260, label %cond.true.i.i314 cond.true.i.i314: ; preds = %invoke.cont257 - %call4.i.i315 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %114) #20 + %call4.i.i315 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %111) #20 br label %invoke.cont260 invoke.cont260: ; preds = %cond.true.i.i314, %invoke.cont257 @@ -7159,15 +7110,15 @@ invoke.cont262: ; preds = %invoke.cont260 invoke.cont264: ; preds = %invoke.cont262 call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp258) #20 - %115 = load ptr, ptr %ref.tmp255, align 8 - %cmp.not.i.i318 = icmp eq ptr %115, null + %112 = load ptr, ptr %ref.tmp255, align 8 + %cmp.not.i.i318 = icmp eq ptr %112, null br i1 %cmp.not.i.i318, label %_ZN7testing7MessageD2Ev.exit322, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i319 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i319: ; preds = %invoke.cont264 - %vtable.i.i.i320 = load ptr, ptr %115, align 8 + %vtable.i.i.i320 = load ptr, ptr %112, align 8 %vfn.i.i.i321 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i320, i64 8 - %116 = load ptr, ptr %vfn.i.i.i321, align 8 - call void %116(ptr noundef nonnull align 8 dereferenceable(128) %115) #20 + %113 = load ptr, ptr %vfn.i.i.i321, align 8 + call void %113(ptr noundef nonnull align 8 dereferenceable(128) %112) #20 br label %_ZN7testing7MessageD2Ev.exit322 _ZN7testing7MessageD2Ev.exit322: ; preds = %invoke.cont264, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i319 @@ -7175,32 +7126,32 @@ _ZN7testing7MessageD2Ev.exit322: ; preds = %invoke.cont264, %_Z br label %if.end267 lpad256: ; preds = %if.else254 - %117 = landingpad { ptr, i32 } + %114 = landingpad { ptr, i32 } cleanup br label %eh.resume lpad259: ; preds = %invoke.cont260 - %118 = landingpad { ptr, i32 } + %115 = landingpad { ptr, i32 } cleanup br label %ehcleanup266 lpad263: ; preds = %invoke.cont262 - %119 = landingpad { ptr, i32 } + %116 = landingpad { ptr, i32 } cleanup call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp258) #20 br label %ehcleanup266 ehcleanup266: ; preds = %lpad263, %lpad259 - %.pn36 = phi { ptr, i32 } [ %119, %lpad263 ], [ %118, %lpad259 ] - %120 = load ptr, ptr %ref.tmp255, align 8 - %cmp.not.i.i323 = icmp eq ptr %120, null + %.pn36 = phi { ptr, i32 } [ %116, %lpad263 ], [ %115, %lpad259 ] + %117 = load ptr, ptr %ref.tmp255, align 8 + %cmp.not.i.i323 = icmp eq ptr %117, null br i1 %cmp.not.i.i323, label %_ZN7testing7MessageD2Ev.exit327, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i324 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i324: ; preds = %ehcleanup266 - %vtable.i.i.i325 = load ptr, ptr %120, align 8 + %vtable.i.i.i325 = load ptr, ptr %117, align 8 %vfn.i.i.i326 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i325, i64 8 - %121 = load ptr, ptr %vfn.i.i.i326, align 8 - call void %121(ptr noundef nonnull align 8 dereferenceable(128) %120) #20 + %118 = load ptr, ptr %vfn.i.i.i326, align 8 + call void %118(ptr noundef nonnull align 8 dereferenceable(128) %117) #20 br label %_ZN7testing7MessageD2Ev.exit327 _ZN7testing7MessageD2Ev.exit327: ; preds = %ehcleanup266, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i324 @@ -7208,13 +7159,13 @@ _ZN7testing7MessageD2Ev.exit327: ; preds = %ehcleanup266, %_ZNK br label %eh.resume if.end267: ; preds = %if.then.i.i309, %_ZN7testing7MessageD2Ev.exit322 - %122 = load ptr, ptr %message_.i.i312, align 8 - %cmp.not.i.i329 = icmp eq ptr %122, null + %119 = load ptr, ptr %message_.i.i312, align 8 + %cmp.not.i.i329 = icmp eq ptr %119, null br i1 %cmp.not.i.i329, label %_ZN7testing15AssertionResultD2Ev.exit331, label %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i330 _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i330: ; preds = %if.end267 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #20 - call void @_ZdlPv(ptr noundef nonnull %122) #21 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #20 + call void @_ZdlPv(ptr noundef nonnull %119) #21 br label %_ZN7testing15AssertionResultD2Ev.exit331 _ZN7testing15AssertionResultD2Ev.exit331: ; preds = %if.end267, %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i330 @@ -7228,7 +7179,7 @@ for.end271: ; preds = %_ZN7testing15Assert eh.resume: ; preds = %lpad256, %_ZN7testing7MessageD2Ev.exit327, %lpad226, %_ZN7testing7MessageD2Ev.exit301, %lpad196, %_ZN7testing7MessageD2Ev.exit276, %lpad168, %_ZN7testing7MessageD2Ev.exit251, %lpad147, %_ZN7testing7MessageD2Ev.exit225, %lpad126, %_ZN7testing7MessageD2Ev.exit200, %lpad105, %_ZN7testing7MessageD2Ev.exit175, %lpad84, %_ZN7testing7MessageD2Ev.exit150, %lpad63, %_ZN7testing7MessageD2Ev.exit125, %lpad42, %_ZN7testing7MessageD2Ev.exit100, %lpad21, %_ZN7testing7MessageD2Ev.exit75, %lpad, %_ZN7testing7MessageD2Ev.exit53 %gtest_ar246.sink = phi ptr [ %gtest_ar, %_ZN7testing7MessageD2Ev.exit53 ], [ %gtest_ar, %lpad ], [ %gtest_ar13, %_ZN7testing7MessageD2Ev.exit75 ], [ %gtest_ar13, %lpad21 ], [ %gtest_ar34, %_ZN7testing7MessageD2Ev.exit100 ], [ %gtest_ar34, %lpad42 ], [ %gtest_ar55, %_ZN7testing7MessageD2Ev.exit125 ], [ %gtest_ar55, %lpad63 ], [ %gtest_ar76, %_ZN7testing7MessageD2Ev.exit150 ], [ %gtest_ar76, %lpad84 ], [ %gtest_ar97, %_ZN7testing7MessageD2Ev.exit175 ], [ %gtest_ar97, %lpad105 ], [ %gtest_ar118, %_ZN7testing7MessageD2Ev.exit200 ], [ %gtest_ar118, %lpad126 ], [ %gtest_ar139, %_ZN7testing7MessageD2Ev.exit225 ], [ %gtest_ar139, %lpad147 ], [ %gtest_ar160, %_ZN7testing7MessageD2Ev.exit251 ], [ %gtest_ar160, %lpad168 ], [ %gtest_ar185, %_ZN7testing7MessageD2Ev.exit276 ], [ %gtest_ar185, %lpad196 ], [ %gtest_ar216, %_ZN7testing7MessageD2Ev.exit301 ], [ %gtest_ar216, %lpad226 ], [ %gtest_ar246, %_ZN7testing7MessageD2Ev.exit327 ], [ %gtest_ar246, %lpad256 ] - %.pn45.pn.pn = phi { ptr, i32 } [ %.pn, %_ZN7testing7MessageD2Ev.exit53 ], [ %4, %lpad ], [ %.pn15, %_ZN7testing7MessageD2Ev.exit75 ], [ %14, %lpad21 ], [ %.pn18, %_ZN7testing7MessageD2Ev.exit100 ], [ %24, %lpad42 ], [ %.pn21, %_ZN7testing7MessageD2Ev.exit125 ], [ %34, %lpad63 ], [ %.pn24, %_ZN7testing7MessageD2Ev.exit150 ], [ %44, %lpad84 ], [ %.pn27, %_ZN7testing7MessageD2Ev.exit175 ], [ %54, %lpad105 ], [ %.pn30, %_ZN7testing7MessageD2Ev.exit200 ], [ %64, %lpad126 ], [ %.pn33, %_ZN7testing7MessageD2Ev.exit225 ], [ %74, %lpad147 ], [ %.pn45, %_ZN7testing7MessageD2Ev.exit251 ], [ %86, %lpad168 ], [ %.pn42, %_ZN7testing7MessageD2Ev.exit276 ], [ %97, %lpad196 ], [ %.pn39, %_ZN7testing7MessageD2Ev.exit301 ], [ %107, %lpad226 ], [ %.pn36, %_ZN7testing7MessageD2Ev.exit327 ], [ %117, %lpad256 ] + %.pn45.pn.pn = phi { ptr, i32 } [ %.pn, %_ZN7testing7MessageD2Ev.exit53 ], [ %4, %lpad ], [ %.pn15, %_ZN7testing7MessageD2Ev.exit75 ], [ %14, %lpad21 ], [ %.pn18, %_ZN7testing7MessageD2Ev.exit100 ], [ %24, %lpad42 ], [ %.pn21, %_ZN7testing7MessageD2Ev.exit125 ], [ %34, %lpad63 ], [ %.pn24, %_ZN7testing7MessageD2Ev.exit150 ], [ %44, %lpad84 ], [ %.pn27, %_ZN7testing7MessageD2Ev.exit175 ], [ %54, %lpad105 ], [ %.pn30, %_ZN7testing7MessageD2Ev.exit200 ], [ %64, %lpad126 ], [ %.pn33, %_ZN7testing7MessageD2Ev.exit225 ], [ %74, %lpad147 ], [ %.pn45, %_ZN7testing7MessageD2Ev.exit251 ], [ %84, %lpad168 ], [ %.pn42, %_ZN7testing7MessageD2Ev.exit276 ], [ %94, %lpad196 ], [ %.pn39, %_ZN7testing7MessageD2Ev.exit301 ], [ %104, %lpad226 ], [ %.pn36, %_ZN7testing7MessageD2Ev.exit327 ], [ %114, %lpad256 ] call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %gtest_ar246.sink) #20 resume { ptr, i32 } %.pn45.pn.pn } @@ -13680,7 +13631,6 @@ _ZN7testing8internal8EqHelper7CompareIjiTnPNSt9enable_ifIXoontsr3std11is_integra %ref.tmp170 = alloca %"class.testing::internal::AssertHelper", align 8 %input = alloca i8, align 1 %gtest_ar181 = alloca %"class.testing::AssertionResult", align 8 - %ref.tmp182 = alloca i8, align 1 %ref.tmp187 = alloca %"class.testing::Message", align 8 %ref.tmp190 = alloca %"class.testing::internal::AssertHelper", align 8 %gtest_ar203 = alloca %"class.testing::AssertionResult", align 8 @@ -13689,7 +13639,6 @@ _ZN7testing8internal8EqHelper7CompareIjiTnPNSt9enable_ifIXoontsr3std11is_integra %ref.tmp214 = alloca %"class.testing::internal::AssertHelper", align 8 %input230 = alloca i16, align 2 %gtest_ar233 = alloca %"class.testing::AssertionResult", align 8 - %ref.tmp234 = alloca i16, align 2 %ref.tmp239 = alloca %"class.testing::Message", align 8 %ref.tmp242 = alloca %"class.testing::internal::AssertHelper", align 8 %gtest_ar255 = alloca %"class.testing::AssertionResult", align 8 @@ -14545,41 +14494,22 @@ for.body: ; preds = %_ZN7testing15Assert %shl = shl nuw nsw i32 1, %i.0499 %conv = trunc nuw i32 %shl to i8 store i8 %conv, ptr %input, align 1 - %90 = trunc nuw i32 %shl to i16 - %91 = call range(i16 8, 17) i16 @llvm.ctlz.i16(i16 %90, i1 true) - %narrow.i.i = sub nuw nsw i16 16, %91 - %92 = zext nneg i16 %narrow.i.i to i32 - %sub.i = add nsw i32 %92, -1 - %shl.i = shl nuw nsw i32 1, %sub.i - %93 = trunc nuw i32 %shl.i to i8 - store i8 %93, ptr %ref.tmp182, align 1 - %cmp.i.i269 = icmp eq i32 %shl.i, %shl - br i1 %cmp.i.i269, label %if.then.i.i271, label %if.end.i.i270 - -if.then.i.i271: ; preds = %for.body call void @_ZN7testing16AssertionSuccessEv(ptr nonnull sret(%"class.testing::AssertionResult") align 8 %gtest_ar181) - br label %_ZN7testing8internal8EqHelper7CompareIhhTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit - -if.end.i.i270: ; preds = %for.body - call void @_ZN7testing8internal18CmpHelperEQFailureIhhEENS_15AssertionResultEPKcS4_RKT_RKT0_(ptr nonnull sret(%"class.testing::AssertionResult") align 8 %gtest_ar181, ptr noundef nonnull @.str.223, ptr noundef nonnull @.str.224, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp182, ptr noundef nonnull align 1 dereferenceable(1) %input) - br label %_ZN7testing8internal8EqHelper7CompareIhhTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit - -_ZN7testing8internal8EqHelper7CompareIhhTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit: ; preds = %if.then.i.i271, %if.end.i.i270 - %94 = load i8, ptr %gtest_ar181, align 8 - %tobool.i272 = trunc i8 %94 to i1 + %90 = load i8, ptr %gtest_ar181, align 8 + %tobool.i272 = trunc i8 %90 to i1 br i1 %tobool.i272, label %if.end199, label %if.else186 -if.else186: ; preds = %_ZN7testing8internal8EqHelper7CompareIhhTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit +if.else186: ; preds = %for.body invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp187) to label %invoke.cont189 unwind label %lpad188 invoke.cont189: ; preds = %if.else186 - %95 = load ptr, ptr %message_.i.i273, align 8 - %cmp.i.i.not.i.i274 = icmp eq ptr %95, null + %91 = load ptr, ptr %message_.i.i273, align 8 + %cmp.i.i.not.i.i274 = icmp eq ptr %91, null br i1 %cmp.i.i.not.i.i274, label %invoke.cont192, label %cond.true.i.i275 cond.true.i.i275: ; preds = %invoke.cont189 - %call4.i.i276 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %95) #20 + %call4.i.i276 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %91) #20 br label %invoke.cont192 invoke.cont192: ; preds = %cond.true.i.i275, %invoke.cont189 @@ -14593,15 +14523,15 @@ invoke.cont194: ; preds = %invoke.cont192 invoke.cont196: ; preds = %invoke.cont194 call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp190) #20 - %96 = load ptr, ptr %ref.tmp187, align 8 - %cmp.not.i.i279 = icmp eq ptr %96, null + %92 = load ptr, ptr %ref.tmp187, align 8 + %cmp.not.i.i279 = icmp eq ptr %92, null br i1 %cmp.not.i.i279, label %_ZN7testing7MessageD2Ev.exit283, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i280 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i280: ; preds = %invoke.cont196 - %vtable.i.i.i281 = load ptr, ptr %96, align 8 + %vtable.i.i.i281 = load ptr, ptr %92, align 8 %vfn.i.i.i282 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i281, i64 8 - %97 = load ptr, ptr %vfn.i.i.i282, align 8 - call void %97(ptr noundef nonnull align 8 dereferenceable(128) %96) #20 + %93 = load ptr, ptr %vfn.i.i.i282, align 8 + call void %93(ptr noundef nonnull align 8 dereferenceable(128) %92) #20 br label %_ZN7testing7MessageD2Ev.exit283 _ZN7testing7MessageD2Ev.exit283: ; preds = %invoke.cont196, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i280 @@ -14609,46 +14539,46 @@ _ZN7testing7MessageD2Ev.exit283: ; preds = %invoke.cont196, %_Z br label %if.end199 lpad188: ; preds = %if.else186 - %98 = landingpad { ptr, i32 } + %94 = landingpad { ptr, i32 } cleanup br label %eh.resume lpad191: ; preds = %invoke.cont192 - %99 = landingpad { ptr, i32 } + %95 = landingpad { ptr, i32 } cleanup br label %ehcleanup198 lpad195: ; preds = %invoke.cont194 - %100 = landingpad { ptr, i32 } + %96 = landingpad { ptr, i32 } cleanup call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp190) #20 br label %ehcleanup198 ehcleanup198: ; preds = %lpad195, %lpad191 - %.pn57 = phi { ptr, i32 } [ %100, %lpad195 ], [ %99, %lpad191 ] - %101 = load ptr, ptr %ref.tmp187, align 8 - %cmp.not.i.i284 = icmp eq ptr %101, null + %.pn57 = phi { ptr, i32 } [ %96, %lpad195 ], [ %95, %lpad191 ] + %97 = load ptr, ptr %ref.tmp187, align 8 + %cmp.not.i.i284 = icmp eq ptr %97, null br i1 %cmp.not.i.i284, label %_ZN7testing7MessageD2Ev.exit288, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i285 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i285: ; preds = %ehcleanup198 - %vtable.i.i.i286 = load ptr, ptr %101, align 8 + %vtable.i.i.i286 = load ptr, ptr %97, align 8 %vfn.i.i.i287 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i286, i64 8 - %102 = load ptr, ptr %vfn.i.i.i287, align 8 - call void %102(ptr noundef nonnull align 8 dereferenceable(128) %101) #20 + %98 = load ptr, ptr %vfn.i.i.i287, align 8 + call void %98(ptr noundef nonnull align 8 dereferenceable(128) %97) #20 br label %_ZN7testing7MessageD2Ev.exit288 _ZN7testing7MessageD2Ev.exit288: ; preds = %ehcleanup198, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i285 store ptr null, ptr %ref.tmp187, align 8 br label %eh.resume -if.end199: ; preds = %_ZN7testing8internal8EqHelper7CompareIhhTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit, %_ZN7testing7MessageD2Ev.exit283 - %103 = load ptr, ptr %message_.i.i273, align 8 - %cmp.not.i.i290 = icmp eq ptr %103, null +if.end199: ; preds = %for.body, %_ZN7testing7MessageD2Ev.exit283 + %99 = load ptr, ptr %message_.i.i273, align 8 + %cmp.not.i.i290 = icmp eq ptr %99, null br i1 %cmp.not.i.i290, label %_ZN7testing15AssertionResultD2Ev.exit292, label %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i291 _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i291: ; preds = %if.end199 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #20 - call void @_ZdlPv(ptr noundef nonnull %103) #21 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #20 + call void @_ZdlPv(ptr noundef nonnull %99) #21 br label %_ZN7testing15AssertionResultD2Ev.exit292 _ZN7testing15AssertionResultD2Ev.exit292: ; preds = %if.end199, %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i291 @@ -14657,25 +14587,25 @@ _ZN7testing15AssertionResultD2Ev.exit292: ; preds = %if.end199, %_ZNKSt1 br i1 %cmp201.not, label %for.inc, label %if.then202 if.then202: ; preds = %_ZN7testing15AssertionResultD2Ev.exit292 - %104 = load i8, ptr %input, align 1 - %add = add i8 %104, 1 + %100 = load i8, ptr %input, align 1 + %add = add i8 %100, 1 %cmp.i = icmp eq i8 %add, 0 br i1 %cmp.i, label %_ZN4absl9bit_floorIhEENSt9enable_ifIXsr3std11is_unsignedIT_EE5valueES2_E4typeES2_.exit, label %cond.false.i cond.false.i: ; preds = %if.then202 %conv.i.i.i.i293 = zext i8 %add to i16 - %105 = call range(i16 8, 17) i16 @llvm.ctlz.i16(i16 %conv.i.i.i.i293, i1 true) - %narrow.i.i294 = sub nuw nsw i16 16, %105 - %106 = zext nneg i16 %narrow.i.i294 to i32 - %sub.i295 = add nsw i32 %106, -1 + %101 = call range(i16 8, 17) i16 @llvm.ctlz.i16(i16 %conv.i.i.i.i293, i1 true) + %narrow.i.i294 = sub nuw nsw i16 16, %101 + %102 = zext nneg i16 %narrow.i.i294 to i32 + %sub.i295 = add nsw i32 %102, -1 %shl.i296 = shl nuw nsw i32 1, %sub.i295 - %107 = trunc nuw i32 %shl.i296 to i8 + %103 = trunc nuw i32 %shl.i296 to i8 br label %_ZN4absl9bit_floorIhEENSt9enable_ifIXsr3std11is_unsignedIT_EE5valueES2_E4typeES2_.exit _ZN4absl9bit_floorIhEENSt9enable_ifIXsr3std11is_unsignedIT_EE5valueES2_E4typeES2_.exit: ; preds = %if.then202, %cond.false.i - %cond.i = phi i8 [ %107, %cond.false.i ], [ 0, %if.then202 ] + %cond.i = phi i8 [ %103, %cond.false.i ], [ 0, %if.then202 ] store i8 %cond.i, ptr %ref.tmp204, align 1 - %cmp.i.i297 = icmp eq i8 %cond.i, %104 + %cmp.i.i297 = icmp eq i8 %cond.i, %100 br i1 %cmp.i.i297, label %if.then.i.i299, label %if.end.i.i298 if.then.i.i299: ; preds = %_ZN4absl9bit_floorIhEENSt9enable_ifIXsr3std11is_unsignedIT_EE5valueES2_E4typeES2_.exit @@ -14687,8 +14617,8 @@ if.end.i.i298: ; preds = %_ZN4absl9bit_floorI br label %_ZN7testing8internal8EqHelper7CompareIhhTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit300 _ZN7testing8internal8EqHelper7CompareIhhTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit300: ; preds = %if.then.i.i299, %if.end.i.i298 - %108 = load i8, ptr %gtest_ar203, align 8 - %tobool.i301 = trunc i8 %108 to i1 + %104 = load i8, ptr %gtest_ar203, align 8 + %tobool.i301 = trunc i8 %104 to i1 br i1 %tobool.i301, label %if.end223, label %if.else210 if.else210: ; preds = %_ZN7testing8internal8EqHelper7CompareIhhTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit300 @@ -14696,12 +14626,12 @@ if.else210: ; preds = %_ZN7testing8interna to label %invoke.cont213 unwind label %lpad212 invoke.cont213: ; preds = %if.else210 - %109 = load ptr, ptr %message_.i.i302, align 8 - %cmp.i.i.not.i.i303 = icmp eq ptr %109, null + %105 = load ptr, ptr %message_.i.i302, align 8 + %cmp.i.i.not.i.i303 = icmp eq ptr %105, null br i1 %cmp.i.i.not.i.i303, label %invoke.cont216, label %cond.true.i.i304 cond.true.i.i304: ; preds = %invoke.cont213 - %call4.i.i305 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %109) #20 + %call4.i.i305 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %105) #20 br label %invoke.cont216 invoke.cont216: ; preds = %cond.true.i.i304, %invoke.cont213 @@ -14715,15 +14645,15 @@ invoke.cont218: ; preds = %invoke.cont216 invoke.cont220: ; preds = %invoke.cont218 call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp214) #20 - %110 = load ptr, ptr %ref.tmp211, align 8 - %cmp.not.i.i308 = icmp eq ptr %110, null + %106 = load ptr, ptr %ref.tmp211, align 8 + %cmp.not.i.i308 = icmp eq ptr %106, null br i1 %cmp.not.i.i308, label %_ZN7testing7MessageD2Ev.exit312, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i309 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i309: ; preds = %invoke.cont220 - %vtable.i.i.i310 = load ptr, ptr %110, align 8 + %vtable.i.i.i310 = load ptr, ptr %106, align 8 %vfn.i.i.i311 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i310, i64 8 - %111 = load ptr, ptr %vfn.i.i.i311, align 8 - call void %111(ptr noundef nonnull align 8 dereferenceable(128) %110) #20 + %107 = load ptr, ptr %vfn.i.i.i311, align 8 + call void %107(ptr noundef nonnull align 8 dereferenceable(128) %106) #20 br label %_ZN7testing7MessageD2Ev.exit312 _ZN7testing7MessageD2Ev.exit312: ; preds = %invoke.cont220, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i309 @@ -14731,32 +14661,32 @@ _ZN7testing7MessageD2Ev.exit312: ; preds = %invoke.cont220, %_Z br label %if.end223 lpad212: ; preds = %if.else210 - %112 = landingpad { ptr, i32 } + %108 = landingpad { ptr, i32 } cleanup br label %eh.resume lpad215: ; preds = %invoke.cont216 - %113 = landingpad { ptr, i32 } + %109 = landingpad { ptr, i32 } cleanup br label %ehcleanup222 lpad219: ; preds = %invoke.cont218 - %114 = landingpad { ptr, i32 } + %110 = landingpad { ptr, i32 } cleanup call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp214) #20 br label %ehcleanup222 ehcleanup222: ; preds = %lpad219, %lpad215 - %.pn60 = phi { ptr, i32 } [ %114, %lpad219 ], [ %113, %lpad215 ] - %115 = load ptr, ptr %ref.tmp211, align 8 - %cmp.not.i.i313 = icmp eq ptr %115, null + %.pn60 = phi { ptr, i32 } [ %110, %lpad219 ], [ %109, %lpad215 ] + %111 = load ptr, ptr %ref.tmp211, align 8 + %cmp.not.i.i313 = icmp eq ptr %111, null br i1 %cmp.not.i.i313, label %_ZN7testing7MessageD2Ev.exit317, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i314 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i314: ; preds = %ehcleanup222 - %vtable.i.i.i315 = load ptr, ptr %115, align 8 + %vtable.i.i.i315 = load ptr, ptr %111, align 8 %vfn.i.i.i316 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i315, i64 8 - %116 = load ptr, ptr %vfn.i.i.i316, align 8 - call void %116(ptr noundef nonnull align 8 dereferenceable(128) %115) #20 + %112 = load ptr, ptr %vfn.i.i.i316, align 8 + call void %112(ptr noundef nonnull align 8 dereferenceable(128) %111) #20 br label %_ZN7testing7MessageD2Ev.exit317 _ZN7testing7MessageD2Ev.exit317: ; preds = %ehcleanup222, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i314 @@ -14764,13 +14694,13 @@ _ZN7testing7MessageD2Ev.exit317: ; preds = %ehcleanup222, %_ZNK br label %eh.resume if.end223: ; preds = %_ZN7testing8internal8EqHelper7CompareIhhTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit300, %_ZN7testing7MessageD2Ev.exit312 - %117 = load ptr, ptr %message_.i.i302, align 8 - %cmp.not.i.i319 = icmp eq ptr %117, null + %113 = load ptr, ptr %message_.i.i302, align 8 + %cmp.not.i.i319 = icmp eq ptr %113, null br i1 %cmp.not.i.i319, label %_ZN7testing15AssertionResultD2Ev.exit321, label %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i320 _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i320: ; preds = %if.end223 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #20 - call void @_ZdlPv(ptr noundef nonnull %117) #21 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #20 + call void @_ZdlPv(ptr noundef nonnull %113) #21 br label %_ZN7testing15AssertionResultD2Ev.exit321 _ZN7testing15AssertionResultD2Ev.exit321: ; preds = %if.end223, %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i320 @@ -14792,40 +14722,22 @@ for.body229: ; preds = %for.cond227.prehead %shl231 = shl nuw nsw i32 1, %i226.0500 %conv232 = trunc nuw i32 %shl231 to i16 store i16 %conv232, ptr %input230, align 2 - %118 = call range(i16 0, 17) i16 @llvm.ctlz.i16(i16 %conv232, i1 true) - %narrow.i.i324 = sub nuw nsw i16 16, %118 - %sub.i.i = zext nneg i16 %narrow.i.i324 to i32 - %sub.i325 = add nsw i32 %sub.i.i, -1 - %shl.i326 = shl nuw nsw i32 1, %sub.i325 - %119 = trunc nuw i32 %shl.i326 to i16 - store i16 %119, ptr %ref.tmp234, align 2 - %cmp.i.i328 = icmp eq i32 %shl.i326, %shl231 - br i1 %cmp.i.i328, label %if.then.i.i330, label %if.end.i.i329 - -if.then.i.i330: ; preds = %for.body229 call void @_ZN7testing16AssertionSuccessEv(ptr nonnull sret(%"class.testing::AssertionResult") align 8 %gtest_ar233) - br label %_ZN7testing8internal8EqHelper7CompareIttTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit - -if.end.i.i329: ; preds = %for.body229 - call void @_ZN7testing8internal18CmpHelperEQFailureIttEENS_15AssertionResultEPKcS4_RKT_RKT0_(ptr nonnull sret(%"class.testing::AssertionResult") align 8 %gtest_ar233, ptr noundef nonnull @.str.223, ptr noundef nonnull @.str.224, ptr noundef nonnull align 2 dereferenceable(2) %ref.tmp234, ptr noundef nonnull align 2 dereferenceable(2) %input230) - br label %_ZN7testing8internal8EqHelper7CompareIttTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit - -_ZN7testing8internal8EqHelper7CompareIttTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit: ; preds = %if.then.i.i330, %if.end.i.i329 - %120 = load i8, ptr %gtest_ar233, align 8 - %tobool.i331 = trunc i8 %120 to i1 + %114 = load i8, ptr %gtest_ar233, align 8 + %tobool.i331 = trunc i8 %114 to i1 br i1 %tobool.i331, label %if.end251, label %if.else238 -if.else238: ; preds = %_ZN7testing8internal8EqHelper7CompareIttTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit +if.else238: ; preds = %for.body229 invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp239) to label %invoke.cont241 unwind label %lpad240 invoke.cont241: ; preds = %if.else238 - %121 = load ptr, ptr %message_.i.i332, align 8 - %cmp.i.i.not.i.i333 = icmp eq ptr %121, null + %115 = load ptr, ptr %message_.i.i332, align 8 + %cmp.i.i.not.i.i333 = icmp eq ptr %115, null br i1 %cmp.i.i.not.i.i333, label %invoke.cont244, label %cond.true.i.i334 cond.true.i.i334: ; preds = %invoke.cont241 - %call4.i.i335 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %121) #20 + %call4.i.i335 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %115) #20 br label %invoke.cont244 invoke.cont244: ; preds = %cond.true.i.i334, %invoke.cont241 @@ -14839,15 +14751,15 @@ invoke.cont246: ; preds = %invoke.cont244 invoke.cont248: ; preds = %invoke.cont246 call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp242) #20 - %122 = load ptr, ptr %ref.tmp239, align 8 - %cmp.not.i.i338 = icmp eq ptr %122, null + %116 = load ptr, ptr %ref.tmp239, align 8 + %cmp.not.i.i338 = icmp eq ptr %116, null br i1 %cmp.not.i.i338, label %_ZN7testing7MessageD2Ev.exit342, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i339 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i339: ; preds = %invoke.cont248 - %vtable.i.i.i340 = load ptr, ptr %122, align 8 + %vtable.i.i.i340 = load ptr, ptr %116, align 8 %vfn.i.i.i341 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i340, i64 8 - %123 = load ptr, ptr %vfn.i.i.i341, align 8 - call void %123(ptr noundef nonnull align 8 dereferenceable(128) %122) #20 + %117 = load ptr, ptr %vfn.i.i.i341, align 8 + call void %117(ptr noundef nonnull align 8 dereferenceable(128) %116) #20 br label %_ZN7testing7MessageD2Ev.exit342 _ZN7testing7MessageD2Ev.exit342: ; preds = %invoke.cont248, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i339 @@ -14855,46 +14767,46 @@ _ZN7testing7MessageD2Ev.exit342: ; preds = %invoke.cont248, %_Z br label %if.end251 lpad240: ; preds = %if.else238 - %124 = landingpad { ptr, i32 } + %118 = landingpad { ptr, i32 } cleanup br label %eh.resume lpad243: ; preds = %invoke.cont244 - %125 = landingpad { ptr, i32 } + %119 = landingpad { ptr, i32 } cleanup br label %ehcleanup250 lpad247: ; preds = %invoke.cont246 - %126 = landingpad { ptr, i32 } + %120 = landingpad { ptr, i32 } cleanup call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp242) #20 br label %ehcleanup250 ehcleanup250: ; preds = %lpad247, %lpad243 - %.pn51 = phi { ptr, i32 } [ %126, %lpad247 ], [ %125, %lpad243 ] - %127 = load ptr, ptr %ref.tmp239, align 8 - %cmp.not.i.i343 = icmp eq ptr %127, null + %.pn51 = phi { ptr, i32 } [ %120, %lpad247 ], [ %119, %lpad243 ] + %121 = load ptr, ptr %ref.tmp239, align 8 + %cmp.not.i.i343 = icmp eq ptr %121, null br i1 %cmp.not.i.i343, label %_ZN7testing7MessageD2Ev.exit347, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i344 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i344: ; preds = %ehcleanup250 - %vtable.i.i.i345 = load ptr, ptr %127, align 8 + %vtable.i.i.i345 = load ptr, ptr %121, align 8 %vfn.i.i.i346 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i345, i64 8 - %128 = load ptr, ptr %vfn.i.i.i346, align 8 - call void %128(ptr noundef nonnull align 8 dereferenceable(128) %127) #20 + %122 = load ptr, ptr %vfn.i.i.i346, align 8 + call void %122(ptr noundef nonnull align 8 dereferenceable(128) %121) #20 br label %_ZN7testing7MessageD2Ev.exit347 _ZN7testing7MessageD2Ev.exit347: ; preds = %ehcleanup250, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i344 store ptr null, ptr %ref.tmp239, align 8 br label %eh.resume -if.end251: ; preds = %_ZN7testing8internal8EqHelper7CompareIttTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit, %_ZN7testing7MessageD2Ev.exit342 - %129 = load ptr, ptr %message_.i.i332, align 8 - %cmp.not.i.i349 = icmp eq ptr %129, null +if.end251: ; preds = %for.body229, %_ZN7testing7MessageD2Ev.exit342 + %123 = load ptr, ptr %message_.i.i332, align 8 + %cmp.not.i.i349 = icmp eq ptr %123, null br i1 %cmp.not.i.i349, label %_ZN7testing15AssertionResultD2Ev.exit351, label %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i350 _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i350: ; preds = %if.end251 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #20 - call void @_ZdlPv(ptr noundef nonnull %129) #21 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #20 + call void @_ZdlPv(ptr noundef nonnull %123) #21 br label %_ZN7testing15AssertionResultD2Ev.exit351 _ZN7testing15AssertionResultD2Ev.exit351: ; preds = %if.end251, %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i350 @@ -14903,24 +14815,24 @@ _ZN7testing15AssertionResultD2Ev.exit351: ; preds = %if.end251, %_ZNKSt1 br i1 %cmp253.not, label %for.inc279, label %if.then254 if.then254: ; preds = %_ZN7testing15AssertionResultD2Ev.exit351 - %130 = load i16, ptr %input230, align 2 - %add258 = add i16 %130, 1 + %124 = load i16, ptr %input230, align 2 + %add258 = add i16 %124, 1 %cmp.i352 = icmp eq i16 %add258, 0 br i1 %cmp.i352, label %_ZN4absl9bit_floorItEENSt9enable_ifIXsr3std11is_unsignedIT_EE5valueES2_E4typeES2_.exit, label %cond.false.i353 cond.false.i353: ; preds = %if.then254 - %131 = call range(i16 0, 17) i16 @llvm.ctlz.i16(i16 %add258, i1 true) - %narrow.i.i354 = sub nuw nsw i16 16, %131 + %125 = call range(i16 0, 17) i16 @llvm.ctlz.i16(i16 %add258, i1 true) + %narrow.i.i354 = sub nuw nsw i16 16, %125 %sub.i.i355 = zext nneg i16 %narrow.i.i354 to i32 %sub.i356 = add nsw i32 %sub.i.i355, -1 %shl.i357 = shl nuw nsw i32 1, %sub.i356 - %132 = trunc nuw i32 %shl.i357 to i16 + %126 = trunc nuw i32 %shl.i357 to i16 br label %_ZN4absl9bit_floorItEENSt9enable_ifIXsr3std11is_unsignedIT_EE5valueES2_E4typeES2_.exit _ZN4absl9bit_floorItEENSt9enable_ifIXsr3std11is_unsignedIT_EE5valueES2_E4typeES2_.exit: ; preds = %if.then254, %cond.false.i353 - %cond.i358 = phi i16 [ %132, %cond.false.i353 ], [ 0, %if.then254 ] + %cond.i358 = phi i16 [ %126, %cond.false.i353 ], [ 0, %if.then254 ] store i16 %cond.i358, ptr %ref.tmp256, align 2 - %cmp.i.i359 = icmp eq i16 %cond.i358, %130 + %cmp.i.i359 = icmp eq i16 %cond.i358, %124 br i1 %cmp.i.i359, label %if.then.i.i361, label %if.end.i.i360 if.then.i.i361: ; preds = %_ZN4absl9bit_floorItEENSt9enable_ifIXsr3std11is_unsignedIT_EE5valueES2_E4typeES2_.exit @@ -14932,8 +14844,8 @@ if.end.i.i360: ; preds = %_ZN4absl9bit_floorI br label %_ZN7testing8internal8EqHelper7CompareIttTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit362 _ZN7testing8internal8EqHelper7CompareIttTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit362: ; preds = %if.then.i.i361, %if.end.i.i360 - %133 = load i8, ptr %gtest_ar255, align 8 - %tobool.i363 = trunc i8 %133 to i1 + %127 = load i8, ptr %gtest_ar255, align 8 + %tobool.i363 = trunc i8 %127 to i1 br i1 %tobool.i363, label %if.end276, label %if.else263 if.else263: ; preds = %_ZN7testing8internal8EqHelper7CompareIttTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit362 @@ -14941,12 +14853,12 @@ if.else263: ; preds = %_ZN7testing8interna to label %invoke.cont266 unwind label %lpad265 invoke.cont266: ; preds = %if.else263 - %134 = load ptr, ptr %message_.i.i364, align 8 - %cmp.i.i.not.i.i365 = icmp eq ptr %134, null + %128 = load ptr, ptr %message_.i.i364, align 8 + %cmp.i.i.not.i.i365 = icmp eq ptr %128, null br i1 %cmp.i.i.not.i.i365, label %invoke.cont269, label %cond.true.i.i366 cond.true.i.i366: ; preds = %invoke.cont266 - %call4.i.i367 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %134) #20 + %call4.i.i367 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %128) #20 br label %invoke.cont269 invoke.cont269: ; preds = %cond.true.i.i366, %invoke.cont266 @@ -14960,15 +14872,15 @@ invoke.cont271: ; preds = %invoke.cont269 invoke.cont273: ; preds = %invoke.cont271 call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp267) #20 - %135 = load ptr, ptr %ref.tmp264, align 8 - %cmp.not.i.i370 = icmp eq ptr %135, null + %129 = load ptr, ptr %ref.tmp264, align 8 + %cmp.not.i.i370 = icmp eq ptr %129, null br i1 %cmp.not.i.i370, label %_ZN7testing7MessageD2Ev.exit374, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i371 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i371: ; preds = %invoke.cont273 - %vtable.i.i.i372 = load ptr, ptr %135, align 8 + %vtable.i.i.i372 = load ptr, ptr %129, align 8 %vfn.i.i.i373 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i372, i64 8 - %136 = load ptr, ptr %vfn.i.i.i373, align 8 - call void %136(ptr noundef nonnull align 8 dereferenceable(128) %135) #20 + %130 = load ptr, ptr %vfn.i.i.i373, align 8 + call void %130(ptr noundef nonnull align 8 dereferenceable(128) %129) #20 br label %_ZN7testing7MessageD2Ev.exit374 _ZN7testing7MessageD2Ev.exit374: ; preds = %invoke.cont273, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i371 @@ -14976,32 +14888,32 @@ _ZN7testing7MessageD2Ev.exit374: ; preds = %invoke.cont273, %_Z br label %if.end276 lpad265: ; preds = %if.else263 - %137 = landingpad { ptr, i32 } + %131 = landingpad { ptr, i32 } cleanup br label %eh.resume lpad268: ; preds = %invoke.cont269 - %138 = landingpad { ptr, i32 } + %132 = landingpad { ptr, i32 } cleanup br label %ehcleanup275 lpad272: ; preds = %invoke.cont271 - %139 = landingpad { ptr, i32 } + %133 = landingpad { ptr, i32 } cleanup call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp267) #20 br label %ehcleanup275 ehcleanup275: ; preds = %lpad272, %lpad268 - %.pn54 = phi { ptr, i32 } [ %139, %lpad272 ], [ %138, %lpad268 ] - %140 = load ptr, ptr %ref.tmp264, align 8 - %cmp.not.i.i375 = icmp eq ptr %140, null + %.pn54 = phi { ptr, i32 } [ %133, %lpad272 ], [ %132, %lpad268 ] + %134 = load ptr, ptr %ref.tmp264, align 8 + %cmp.not.i.i375 = icmp eq ptr %134, null br i1 %cmp.not.i.i375, label %_ZN7testing7MessageD2Ev.exit379, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i376 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i376: ; preds = %ehcleanup275 - %vtable.i.i.i377 = load ptr, ptr %140, align 8 + %vtable.i.i.i377 = load ptr, ptr %134, align 8 %vfn.i.i.i378 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i377, i64 8 - %141 = load ptr, ptr %vfn.i.i.i378, align 8 - call void %141(ptr noundef nonnull align 8 dereferenceable(128) %140) #20 + %135 = load ptr, ptr %vfn.i.i.i378, align 8 + call void %135(ptr noundef nonnull align 8 dereferenceable(128) %134) #20 br label %_ZN7testing7MessageD2Ev.exit379 _ZN7testing7MessageD2Ev.exit379: ; preds = %ehcleanup275, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i376 @@ -15009,13 +14921,13 @@ _ZN7testing7MessageD2Ev.exit379: ; preds = %ehcleanup275, %_ZNK br label %eh.resume if.end276: ; preds = %_ZN7testing8internal8EqHelper7CompareIttTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit362, %_ZN7testing7MessageD2Ev.exit374 - %142 = load ptr, ptr %message_.i.i364, align 8 - %cmp.not.i.i381 = icmp eq ptr %142, null + %136 = load ptr, ptr %message_.i.i364, align 8 + %cmp.not.i.i381 = icmp eq ptr %136, null br i1 %cmp.not.i.i381, label %_ZN7testing15AssertionResultD2Ev.exit383, label %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i382 _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i382: ; preds = %if.end276 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #20 - call void @_ZdlPv(ptr noundef nonnull %142) #21 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #20 + call void @_ZdlPv(ptr noundef nonnull %136) #21 br label %_ZN7testing15AssertionResultD2Ev.exit383 _ZN7testing15AssertionResultD2Ev.exit383: ; preds = %if.end276, %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i382 @@ -15037,8 +14949,8 @@ for.body285: ; preds = %for.cond283.prehead %shl287 = shl nuw i32 1, %i282.0501 store i32 %shl287, ptr %input286, align 4 call void @_ZN7testing16AssertionSuccessEv(ptr nonnull sret(%"class.testing::AssertionResult") align 8 %gtest_ar288) - %143 = load i8, ptr %gtest_ar288, align 8 - %tobool.i391 = trunc i8 %143 to i1 + %137 = load i8, ptr %gtest_ar288, align 8 + %tobool.i391 = trunc i8 %137 to i1 br i1 %tobool.i391, label %if.end306, label %if.else293 if.else293: ; preds = %for.body285 @@ -15046,12 +14958,12 @@ if.else293: ; preds = %for.body285 to label %invoke.cont296 unwind label %lpad295 invoke.cont296: ; preds = %if.else293 - %144 = load ptr, ptr %message_.i.i392, align 8 - %cmp.i.i.not.i.i393 = icmp eq ptr %144, null + %138 = load ptr, ptr %message_.i.i392, align 8 + %cmp.i.i.not.i.i393 = icmp eq ptr %138, null br i1 %cmp.i.i.not.i.i393, label %invoke.cont299, label %cond.true.i.i394 cond.true.i.i394: ; preds = %invoke.cont296 - %call4.i.i395 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %144) #20 + %call4.i.i395 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %138) #20 br label %invoke.cont299 invoke.cont299: ; preds = %cond.true.i.i394, %invoke.cont296 @@ -15065,15 +14977,15 @@ invoke.cont301: ; preds = %invoke.cont299 invoke.cont303: ; preds = %invoke.cont301 call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp297) #20 - %145 = load ptr, ptr %ref.tmp294, align 8 - %cmp.not.i.i398 = icmp eq ptr %145, null + %139 = load ptr, ptr %ref.tmp294, align 8 + %cmp.not.i.i398 = icmp eq ptr %139, null br i1 %cmp.not.i.i398, label %_ZN7testing7MessageD2Ev.exit402, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i399 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i399: ; preds = %invoke.cont303 - %vtable.i.i.i400 = load ptr, ptr %145, align 8 + %vtable.i.i.i400 = load ptr, ptr %139, align 8 %vfn.i.i.i401 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i400, i64 8 - %146 = load ptr, ptr %vfn.i.i.i401, align 8 - call void %146(ptr noundef nonnull align 8 dereferenceable(128) %145) #20 + %140 = load ptr, ptr %vfn.i.i.i401, align 8 + call void %140(ptr noundef nonnull align 8 dereferenceable(128) %139) #20 br label %_ZN7testing7MessageD2Ev.exit402 _ZN7testing7MessageD2Ev.exit402: ; preds = %invoke.cont303, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i399 @@ -15081,32 +14993,32 @@ _ZN7testing7MessageD2Ev.exit402: ; preds = %invoke.cont303, %_Z br label %if.end306 lpad295: ; preds = %if.else293 - %147 = landingpad { ptr, i32 } + %141 = landingpad { ptr, i32 } cleanup br label %eh.resume lpad298: ; preds = %invoke.cont299 - %148 = landingpad { ptr, i32 } + %142 = landingpad { ptr, i32 } cleanup br label %ehcleanup305 lpad302: ; preds = %invoke.cont301 - %149 = landingpad { ptr, i32 } + %143 = landingpad { ptr, i32 } cleanup call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp297) #20 br label %ehcleanup305 ehcleanup305: ; preds = %lpad302, %lpad298 - %.pn45 = phi { ptr, i32 } [ %149, %lpad302 ], [ %148, %lpad298 ] - %150 = load ptr, ptr %ref.tmp294, align 8 - %cmp.not.i.i403 = icmp eq ptr %150, null + %.pn45 = phi { ptr, i32 } [ %143, %lpad302 ], [ %142, %lpad298 ] + %144 = load ptr, ptr %ref.tmp294, align 8 + %cmp.not.i.i403 = icmp eq ptr %144, null br i1 %cmp.not.i.i403, label %_ZN7testing7MessageD2Ev.exit407, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i404 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i404: ; preds = %ehcleanup305 - %vtable.i.i.i405 = load ptr, ptr %150, align 8 + %vtable.i.i.i405 = load ptr, ptr %144, align 8 %vfn.i.i.i406 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i405, i64 8 - %151 = load ptr, ptr %vfn.i.i.i406, align 8 - call void %151(ptr noundef nonnull align 8 dereferenceable(128) %150) #20 + %145 = load ptr, ptr %vfn.i.i.i406, align 8 + call void %145(ptr noundef nonnull align 8 dereferenceable(128) %144) #20 br label %_ZN7testing7MessageD2Ev.exit407 _ZN7testing7MessageD2Ev.exit407: ; preds = %ehcleanup305, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i404 @@ -15114,13 +15026,13 @@ _ZN7testing7MessageD2Ev.exit407: ; preds = %ehcleanup305, %_ZNK br label %eh.resume if.end306: ; preds = %for.body285, %_ZN7testing7MessageD2Ev.exit402 - %152 = load ptr, ptr %message_.i.i392, align 8 - %cmp.not.i.i409 = icmp eq ptr %152, null + %146 = load ptr, ptr %message_.i.i392, align 8 + %cmp.not.i.i409 = icmp eq ptr %146, null br i1 %cmp.not.i.i409, label %_ZN7testing15AssertionResultD2Ev.exit411, label %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i410 _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i410: ; preds = %if.end306 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %152) #20 - call void @_ZdlPv(ptr noundef nonnull %152) #21 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #20 + call void @_ZdlPv(ptr noundef nonnull %146) #21 br label %_ZN7testing15AssertionResultD2Ev.exit411 _ZN7testing15AssertionResultD2Ev.exit411: ; preds = %if.end306, %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i410 @@ -15129,15 +15041,15 @@ _ZN7testing15AssertionResultD2Ev.exit411: ; preds = %if.end306, %_ZNKSt1 br i1 %cmp308.not, label %for.inc332, label %if.then309 if.then309: ; preds = %_ZN7testing15AssertionResultD2Ev.exit411 - %153 = load i32, ptr %input286, align 4 - %add312 = add i32 %153, 1 + %147 = load i32, ptr %input286, align 4 + %add312 = add i32 %147, 1 %cmp.i412 = icmp eq i32 %add312, 0 - %154 = call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %add312, i1 true) - %sub.i413 = xor i32 %154, 31 + %148 = call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %add312, i1 true) + %sub.i413 = xor i32 %148, 31 %shl.i414 = shl nuw i32 1, %sub.i413 %cond.i415 = select i1 %cmp.i412, i32 0, i32 %shl.i414 store i32 %cond.i415, ptr %ref.tmp311, align 4 - %cmp.i.i416 = icmp eq i32 %cond.i415, %153 + %cmp.i.i416 = icmp eq i32 %cond.i415, %147 br i1 %cmp.i.i416, label %if.then.i.i418, label %if.end.i.i417 if.then.i.i418: ; preds = %if.then309 @@ -15149,8 +15061,8 @@ if.end.i.i417: ; preds = %if.then309 br label %_ZN7testing8internal8EqHelper7CompareIjjTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit419 _ZN7testing8internal8EqHelper7CompareIjjTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit419: ; preds = %if.then.i.i418, %if.end.i.i417 - %155 = load i8, ptr %gtest_ar310, align 8 - %tobool.i420 = trunc i8 %155 to i1 + %149 = load i8, ptr %gtest_ar310, align 8 + %tobool.i420 = trunc i8 %149 to i1 br i1 %tobool.i420, label %if.end329, label %if.else316 if.else316: ; preds = %_ZN7testing8internal8EqHelper7CompareIjjTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit419 @@ -15158,12 +15070,12 @@ if.else316: ; preds = %_ZN7testing8interna to label %invoke.cont319 unwind label %lpad318 invoke.cont319: ; preds = %if.else316 - %156 = load ptr, ptr %message_.i.i421, align 8 - %cmp.i.i.not.i.i422 = icmp eq ptr %156, null + %150 = load ptr, ptr %message_.i.i421, align 8 + %cmp.i.i.not.i.i422 = icmp eq ptr %150, null br i1 %cmp.i.i.not.i.i422, label %invoke.cont322, label %cond.true.i.i423 cond.true.i.i423: ; preds = %invoke.cont319 - %call4.i.i424 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %156) #20 + %call4.i.i424 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %150) #20 br label %invoke.cont322 invoke.cont322: ; preds = %cond.true.i.i423, %invoke.cont319 @@ -15177,15 +15089,15 @@ invoke.cont324: ; preds = %invoke.cont322 invoke.cont326: ; preds = %invoke.cont324 call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp320) #20 - %157 = load ptr, ptr %ref.tmp317, align 8 - %cmp.not.i.i427 = icmp eq ptr %157, null + %151 = load ptr, ptr %ref.tmp317, align 8 + %cmp.not.i.i427 = icmp eq ptr %151, null br i1 %cmp.not.i.i427, label %_ZN7testing7MessageD2Ev.exit431, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i428 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i428: ; preds = %invoke.cont326 - %vtable.i.i.i429 = load ptr, ptr %157, align 8 + %vtable.i.i.i429 = load ptr, ptr %151, align 8 %vfn.i.i.i430 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i429, i64 8 - %158 = load ptr, ptr %vfn.i.i.i430, align 8 - call void %158(ptr noundef nonnull align 8 dereferenceable(128) %157) #20 + %152 = load ptr, ptr %vfn.i.i.i430, align 8 + call void %152(ptr noundef nonnull align 8 dereferenceable(128) %151) #20 br label %_ZN7testing7MessageD2Ev.exit431 _ZN7testing7MessageD2Ev.exit431: ; preds = %invoke.cont326, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i428 @@ -15193,32 +15105,32 @@ _ZN7testing7MessageD2Ev.exit431: ; preds = %invoke.cont326, %_Z br label %if.end329 lpad318: ; preds = %if.else316 - %159 = landingpad { ptr, i32 } + %153 = landingpad { ptr, i32 } cleanup br label %eh.resume lpad321: ; preds = %invoke.cont322 - %160 = landingpad { ptr, i32 } + %154 = landingpad { ptr, i32 } cleanup br label %ehcleanup328 lpad325: ; preds = %invoke.cont324 - %161 = landingpad { ptr, i32 } + %155 = landingpad { ptr, i32 } cleanup call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp320) #20 br label %ehcleanup328 ehcleanup328: ; preds = %lpad325, %lpad321 - %.pn48 = phi { ptr, i32 } [ %161, %lpad325 ], [ %160, %lpad321 ] - %162 = load ptr, ptr %ref.tmp317, align 8 - %cmp.not.i.i432 = icmp eq ptr %162, null + %.pn48 = phi { ptr, i32 } [ %155, %lpad325 ], [ %154, %lpad321 ] + %156 = load ptr, ptr %ref.tmp317, align 8 + %cmp.not.i.i432 = icmp eq ptr %156, null br i1 %cmp.not.i.i432, label %_ZN7testing7MessageD2Ev.exit436, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i433 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i433: ; preds = %ehcleanup328 - %vtable.i.i.i434 = load ptr, ptr %162, align 8 + %vtable.i.i.i434 = load ptr, ptr %156, align 8 %vfn.i.i.i435 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i434, i64 8 - %163 = load ptr, ptr %vfn.i.i.i435, align 8 - call void %163(ptr noundef nonnull align 8 dereferenceable(128) %162) #20 + %157 = load ptr, ptr %vfn.i.i.i435, align 8 + call void %157(ptr noundef nonnull align 8 dereferenceable(128) %156) #20 br label %_ZN7testing7MessageD2Ev.exit436 _ZN7testing7MessageD2Ev.exit436: ; preds = %ehcleanup328, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i433 @@ -15226,13 +15138,13 @@ _ZN7testing7MessageD2Ev.exit436: ; preds = %ehcleanup328, %_ZNK br label %eh.resume if.end329: ; preds = %_ZN7testing8internal8EqHelper7CompareIjjTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit419, %_ZN7testing7MessageD2Ev.exit431 - %164 = load ptr, ptr %message_.i.i421, align 8 - %cmp.not.i.i438 = icmp eq ptr %164, null + %158 = load ptr, ptr %message_.i.i421, align 8 + %cmp.not.i.i438 = icmp eq ptr %158, null br i1 %cmp.not.i.i438, label %_ZN7testing15AssertionResultD2Ev.exit440, label %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i439 _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i439: ; preds = %if.end329 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #20 - call void @_ZdlPv(ptr noundef nonnull %164) #21 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #20 + call void @_ZdlPv(ptr noundef nonnull %158) #21 br label %_ZN7testing15AssertionResultD2Ev.exit440 _ZN7testing15AssertionResultD2Ev.exit440: ; preds = %if.end329, %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i439 @@ -15249,8 +15161,8 @@ for.body338: ; preds = %for.cond336.prehead %shl340 = shl nuw i64 1, %indvars.iv store i64 %shl340, ptr %input339, align 8 call void @_ZN7testing16AssertionSuccessEv(ptr nonnull sret(%"class.testing::AssertionResult") align 8 %gtest_ar341) - %165 = load i8, ptr %gtest_ar341, align 8 - %tobool.i449 = trunc i8 %165 to i1 + %159 = load i8, ptr %gtest_ar341, align 8 + %tobool.i449 = trunc i8 %159 to i1 br i1 %tobool.i449, label %if.end359, label %if.else346 if.else346: ; preds = %for.body338 @@ -15258,12 +15170,12 @@ if.else346: ; preds = %for.body338 to label %invoke.cont349 unwind label %lpad348 invoke.cont349: ; preds = %if.else346 - %166 = load ptr, ptr %message_.i.i450, align 8 - %cmp.i.i.not.i.i451 = icmp eq ptr %166, null + %160 = load ptr, ptr %message_.i.i450, align 8 + %cmp.i.i.not.i.i451 = icmp eq ptr %160, null br i1 %cmp.i.i.not.i.i451, label %invoke.cont352, label %cond.true.i.i452 cond.true.i.i452: ; preds = %invoke.cont349 - %call4.i.i453 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %166) #20 + %call4.i.i453 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %160) #20 br label %invoke.cont352 invoke.cont352: ; preds = %cond.true.i.i452, %invoke.cont349 @@ -15277,15 +15189,15 @@ invoke.cont354: ; preds = %invoke.cont352 invoke.cont356: ; preds = %invoke.cont354 call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp350) #20 - %167 = load ptr, ptr %ref.tmp347, align 8 - %cmp.not.i.i456 = icmp eq ptr %167, null + %161 = load ptr, ptr %ref.tmp347, align 8 + %cmp.not.i.i456 = icmp eq ptr %161, null br i1 %cmp.not.i.i456, label %_ZN7testing7MessageD2Ev.exit460, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i457 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i457: ; preds = %invoke.cont356 - %vtable.i.i.i458 = load ptr, ptr %167, align 8 + %vtable.i.i.i458 = load ptr, ptr %161, align 8 %vfn.i.i.i459 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i458, i64 8 - %168 = load ptr, ptr %vfn.i.i.i459, align 8 - call void %168(ptr noundef nonnull align 8 dereferenceable(128) %167) #20 + %162 = load ptr, ptr %vfn.i.i.i459, align 8 + call void %162(ptr noundef nonnull align 8 dereferenceable(128) %161) #20 br label %_ZN7testing7MessageD2Ev.exit460 _ZN7testing7MessageD2Ev.exit460: ; preds = %invoke.cont356, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i457 @@ -15293,32 +15205,32 @@ _ZN7testing7MessageD2Ev.exit460: ; preds = %invoke.cont356, %_Z br label %if.end359 lpad348: ; preds = %if.else346 - %169 = landingpad { ptr, i32 } + %163 = landingpad { ptr, i32 } cleanup br label %eh.resume lpad351: ; preds = %invoke.cont352 - %170 = landingpad { ptr, i32 } + %164 = landingpad { ptr, i32 } cleanup br label %ehcleanup358 lpad355: ; preds = %invoke.cont354 - %171 = landingpad { ptr, i32 } + %165 = landingpad { ptr, i32 } cleanup call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp350) #20 br label %ehcleanup358 ehcleanup358: ; preds = %lpad355, %lpad351 - %.pn39 = phi { ptr, i32 } [ %171, %lpad355 ], [ %170, %lpad351 ] - %172 = load ptr, ptr %ref.tmp347, align 8 - %cmp.not.i.i461 = icmp eq ptr %172, null + %.pn39 = phi { ptr, i32 } [ %165, %lpad355 ], [ %164, %lpad351 ] + %166 = load ptr, ptr %ref.tmp347, align 8 + %cmp.not.i.i461 = icmp eq ptr %166, null br i1 %cmp.not.i.i461, label %_ZN7testing7MessageD2Ev.exit465, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i462 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i462: ; preds = %ehcleanup358 - %vtable.i.i.i463 = load ptr, ptr %172, align 8 + %vtable.i.i.i463 = load ptr, ptr %166, align 8 %vfn.i.i.i464 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i463, i64 8 - %173 = load ptr, ptr %vfn.i.i.i464, align 8 - call void %173(ptr noundef nonnull align 8 dereferenceable(128) %172) #20 + %167 = load ptr, ptr %vfn.i.i.i464, align 8 + call void %167(ptr noundef nonnull align 8 dereferenceable(128) %166) #20 br label %_ZN7testing7MessageD2Ev.exit465 _ZN7testing7MessageD2Ev.exit465: ; preds = %ehcleanup358, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i462 @@ -15326,13 +15238,13 @@ _ZN7testing7MessageD2Ev.exit465: ; preds = %ehcleanup358, %_ZNK br label %eh.resume if.end359: ; preds = %for.body338, %_ZN7testing7MessageD2Ev.exit460 - %174 = load ptr, ptr %message_.i.i450, align 8 - %cmp.not.i.i467 = icmp eq ptr %174, null + %168 = load ptr, ptr %message_.i.i450, align 8 + %cmp.not.i.i467 = icmp eq ptr %168, null br i1 %cmp.not.i.i467, label %_ZN7testing15AssertionResultD2Ev.exit469, label %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i468 _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i468: ; preds = %if.end359 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %174) #20 - call void @_ZdlPv(ptr noundef nonnull %174) #21 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %168) #20 + call void @_ZdlPv(ptr noundef nonnull %168) #21 br label %_ZN7testing15AssertionResultD2Ev.exit469 _ZN7testing15AssertionResultD2Ev.exit469: ; preds = %if.end359, %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i468 @@ -15341,15 +15253,15 @@ _ZN7testing15AssertionResultD2Ev.exit469: ; preds = %if.end359, %_ZNKSt1 br i1 %cmp361.not, label %for.inc385, label %if.then362 if.then362: ; preds = %_ZN7testing15AssertionResultD2Ev.exit469 - %175 = load i64, ptr %input339, align 8 - %add365 = add i64 %175, 1 + %169 = load i64, ptr %input339, align 8 + %add365 = add i64 %169, 1 %cmp.i470 = icmp eq i64 %add365, 0 - %176 = call range(i64 0, 65) i64 @llvm.ctlz.i64(i64 %add365, i1 true) - %sub.i471 = xor i64 %176, 63 + %170 = call range(i64 0, 65) i64 @llvm.ctlz.i64(i64 %add365, i1 true) + %sub.i471 = xor i64 %170, 63 %shl.i472 = shl nuw i64 1, %sub.i471 %cond.i473 = select i1 %cmp.i470, i64 0, i64 %shl.i472 store i64 %cond.i473, ptr %ref.tmp364, align 8 - %cmp.i.i474 = icmp eq i64 %cond.i473, %175 + %cmp.i.i474 = icmp eq i64 %cond.i473, %169 br i1 %cmp.i.i474, label %if.then.i.i476, label %if.end.i.i475 if.then.i.i476: ; preds = %if.then362 @@ -15361,8 +15273,8 @@ if.end.i.i475: ; preds = %if.then362 br label %_ZN7testing8internal8EqHelper7CompareImmTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit477 _ZN7testing8internal8EqHelper7CompareImmTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit477: ; preds = %if.then.i.i476, %if.end.i.i475 - %177 = load i8, ptr %gtest_ar363, align 8 - %tobool.i478 = trunc i8 %177 to i1 + %171 = load i8, ptr %gtest_ar363, align 8 + %tobool.i478 = trunc i8 %171 to i1 br i1 %tobool.i478, label %if.end382, label %if.else369 if.else369: ; preds = %_ZN7testing8internal8EqHelper7CompareImmTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit477 @@ -15370,12 +15282,12 @@ if.else369: ; preds = %_ZN7testing8interna to label %invoke.cont372 unwind label %lpad371 invoke.cont372: ; preds = %if.else369 - %178 = load ptr, ptr %message_.i.i479, align 8 - %cmp.i.i.not.i.i480 = icmp eq ptr %178, null + %172 = load ptr, ptr %message_.i.i479, align 8 + %cmp.i.i.not.i.i480 = icmp eq ptr %172, null br i1 %cmp.i.i.not.i.i480, label %invoke.cont375, label %cond.true.i.i481 cond.true.i.i481: ; preds = %invoke.cont372 - %call4.i.i482 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %178) #20 + %call4.i.i482 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %172) #20 br label %invoke.cont375 invoke.cont375: ; preds = %cond.true.i.i481, %invoke.cont372 @@ -15389,15 +15301,15 @@ invoke.cont377: ; preds = %invoke.cont375 invoke.cont379: ; preds = %invoke.cont377 call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp373) #20 - %179 = load ptr, ptr %ref.tmp370, align 8 - %cmp.not.i.i485 = icmp eq ptr %179, null + %173 = load ptr, ptr %ref.tmp370, align 8 + %cmp.not.i.i485 = icmp eq ptr %173, null br i1 %cmp.not.i.i485, label %_ZN7testing7MessageD2Ev.exit489, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i486 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i486: ; preds = %invoke.cont379 - %vtable.i.i.i487 = load ptr, ptr %179, align 8 + %vtable.i.i.i487 = load ptr, ptr %173, align 8 %vfn.i.i.i488 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i487, i64 8 - %180 = load ptr, ptr %vfn.i.i.i488, align 8 - call void %180(ptr noundef nonnull align 8 dereferenceable(128) %179) #20 + %174 = load ptr, ptr %vfn.i.i.i488, align 8 + call void %174(ptr noundef nonnull align 8 dereferenceable(128) %173) #20 br label %_ZN7testing7MessageD2Ev.exit489 _ZN7testing7MessageD2Ev.exit489: ; preds = %invoke.cont379, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i486 @@ -15405,32 +15317,32 @@ _ZN7testing7MessageD2Ev.exit489: ; preds = %invoke.cont379, %_Z br label %if.end382 lpad371: ; preds = %if.else369 - %181 = landingpad { ptr, i32 } + %175 = landingpad { ptr, i32 } cleanup br label %eh.resume lpad374: ; preds = %invoke.cont375 - %182 = landingpad { ptr, i32 } + %176 = landingpad { ptr, i32 } cleanup br label %ehcleanup381 lpad378: ; preds = %invoke.cont377 - %183 = landingpad { ptr, i32 } + %177 = landingpad { ptr, i32 } cleanup call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp373) #20 br label %ehcleanup381 ehcleanup381: ; preds = %lpad378, %lpad374 - %.pn42 = phi { ptr, i32 } [ %183, %lpad378 ], [ %182, %lpad374 ] - %184 = load ptr, ptr %ref.tmp370, align 8 - %cmp.not.i.i490 = icmp eq ptr %184, null + %.pn42 = phi { ptr, i32 } [ %177, %lpad378 ], [ %176, %lpad374 ] + %178 = load ptr, ptr %ref.tmp370, align 8 + %cmp.not.i.i490 = icmp eq ptr %178, null br i1 %cmp.not.i.i490, label %_ZN7testing7MessageD2Ev.exit494, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i491 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i491: ; preds = %ehcleanup381 - %vtable.i.i.i492 = load ptr, ptr %184, align 8 + %vtable.i.i.i492 = load ptr, ptr %178, align 8 %vfn.i.i.i493 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i492, i64 8 - %185 = load ptr, ptr %vfn.i.i.i493, align 8 - call void %185(ptr noundef nonnull align 8 dereferenceable(128) %184) #20 + %179 = load ptr, ptr %vfn.i.i.i493, align 8 + call void %179(ptr noundef nonnull align 8 dereferenceable(128) %178) #20 br label %_ZN7testing7MessageD2Ev.exit494 _ZN7testing7MessageD2Ev.exit494: ; preds = %ehcleanup381, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i491 @@ -15438,13 +15350,13 @@ _ZN7testing7MessageD2Ev.exit494: ; preds = %ehcleanup381, %_ZNK br label %eh.resume if.end382: ; preds = %_ZN7testing8internal8EqHelper7CompareImmTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit477, %_ZN7testing7MessageD2Ev.exit489 - %186 = load ptr, ptr %message_.i.i479, align 8 - %cmp.not.i.i496 = icmp eq ptr %186, null + %180 = load ptr, ptr %message_.i.i479, align 8 + %cmp.not.i.i496 = icmp eq ptr %180, null br i1 %cmp.not.i.i496, label %_ZN7testing15AssertionResultD2Ev.exit498, label %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i497 _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i497: ; preds = %if.end382 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %186) #20 - call void @_ZdlPv(ptr noundef nonnull %186) #21 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #20 + call void @_ZdlPv(ptr noundef nonnull %180) #21 br label %_ZN7testing15AssertionResultD2Ev.exit498 _ZN7testing15AssertionResultD2Ev.exit498: ; preds = %if.end382, %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i497 @@ -15461,7 +15373,7 @@ for.end387: ; preds = %for.inc385 eh.resume: ; preds = %lpad371, %_ZN7testing7MessageD2Ev.exit494, %lpad348, %_ZN7testing7MessageD2Ev.exit465, %lpad318, %_ZN7testing7MessageD2Ev.exit436, %lpad295, %_ZN7testing7MessageD2Ev.exit407, %lpad265, %_ZN7testing7MessageD2Ev.exit379, %lpad240, %_ZN7testing7MessageD2Ev.exit347, %lpad212, %_ZN7testing7MessageD2Ev.exit317, %lpad188, %_ZN7testing7MessageD2Ev.exit288, %lpad168, %_ZN7testing7MessageD2Ev.exit264, %lpad147, %_ZN7testing7MessageD2Ev.exit240, %lpad126, %_ZN7testing7MessageD2Ev.exit215, %lpad105, %_ZN7testing7MessageD2Ev.exit190, %lpad84, %_ZN7testing7MessageD2Ev.exit165, %lpad63, %_ZN7testing7MessageD2Ev.exit140, %lpad42, %_ZN7testing7MessageD2Ev.exit115, %lpad21, %_ZN7testing7MessageD2Ev.exit90, %lpad, %_ZN7testing7MessageD2Ev.exit68 %gtest_ar363.sink = phi ptr [ %gtest_ar, %_ZN7testing7MessageD2Ev.exit68 ], [ %gtest_ar, %lpad ], [ %gtest_ar13, %_ZN7testing7MessageD2Ev.exit90 ], [ %gtest_ar13, %lpad21 ], [ %gtest_ar34, %_ZN7testing7MessageD2Ev.exit115 ], [ %gtest_ar34, %lpad42 ], [ %gtest_ar55, %_ZN7testing7MessageD2Ev.exit140 ], [ %gtest_ar55, %lpad63 ], [ %gtest_ar76, %_ZN7testing7MessageD2Ev.exit165 ], [ %gtest_ar76, %lpad84 ], [ %gtest_ar97, %_ZN7testing7MessageD2Ev.exit190 ], [ %gtest_ar97, %lpad105 ], [ %gtest_ar118, %_ZN7testing7MessageD2Ev.exit215 ], [ %gtest_ar118, %lpad126 ], [ %gtest_ar139, %_ZN7testing7MessageD2Ev.exit240 ], [ %gtest_ar139, %lpad147 ], [ %gtest_ar160, %_ZN7testing7MessageD2Ev.exit264 ], [ %gtest_ar160, %lpad168 ], [ %gtest_ar181, %_ZN7testing7MessageD2Ev.exit288 ], [ %gtest_ar181, %lpad188 ], [ %gtest_ar203, %_ZN7testing7MessageD2Ev.exit317 ], [ %gtest_ar203, %lpad212 ], [ %gtest_ar233, %_ZN7testing7MessageD2Ev.exit347 ], [ %gtest_ar233, %lpad240 ], [ %gtest_ar255, %_ZN7testing7MessageD2Ev.exit379 ], [ %gtest_ar255, %lpad265 ], [ %gtest_ar288, %_ZN7testing7MessageD2Ev.exit407 ], [ %gtest_ar288, %lpad295 ], [ %gtest_ar310, %_ZN7testing7MessageD2Ev.exit436 ], [ %gtest_ar310, %lpad318 ], [ %gtest_ar341, %_ZN7testing7MessageD2Ev.exit465 ], [ %gtest_ar341, %lpad348 ], [ %gtest_ar363, %_ZN7testing7MessageD2Ev.exit494 ], [ %gtest_ar363, %lpad371 ] - %.pn60.pn.pn = phi { ptr, i32 } [ %.pn, %_ZN7testing7MessageD2Ev.exit68 ], [ %4, %lpad ], [ %.pn15, %_ZN7testing7MessageD2Ev.exit90 ], [ %14, %lpad21 ], [ %.pn18, %_ZN7testing7MessageD2Ev.exit115 ], [ %24, %lpad42 ], [ %.pn21, %_ZN7testing7MessageD2Ev.exit140 ], [ %34, %lpad63 ], [ %.pn24, %_ZN7testing7MessageD2Ev.exit165 ], [ %44, %lpad84 ], [ %.pn27, %_ZN7testing7MessageD2Ev.exit190 ], [ %54, %lpad105 ], [ %.pn30, %_ZN7testing7MessageD2Ev.exit215 ], [ %64, %lpad126 ], [ %.pn33, %_ZN7testing7MessageD2Ev.exit240 ], [ %74, %lpad147 ], [ %.pn36, %_ZN7testing7MessageD2Ev.exit264 ], [ %84, %lpad168 ], [ %.pn57, %_ZN7testing7MessageD2Ev.exit288 ], [ %98, %lpad188 ], [ %.pn60, %_ZN7testing7MessageD2Ev.exit317 ], [ %112, %lpad212 ], [ %.pn51, %_ZN7testing7MessageD2Ev.exit347 ], [ %124, %lpad240 ], [ %.pn54, %_ZN7testing7MessageD2Ev.exit379 ], [ %137, %lpad265 ], [ %.pn45, %_ZN7testing7MessageD2Ev.exit407 ], [ %147, %lpad295 ], [ %.pn48, %_ZN7testing7MessageD2Ev.exit436 ], [ %159, %lpad318 ], [ %.pn39, %_ZN7testing7MessageD2Ev.exit465 ], [ %169, %lpad348 ], [ %.pn42, %_ZN7testing7MessageD2Ev.exit494 ], [ %181, %lpad371 ] + %.pn60.pn.pn = phi { ptr, i32 } [ %.pn, %_ZN7testing7MessageD2Ev.exit68 ], [ %4, %lpad ], [ %.pn15, %_ZN7testing7MessageD2Ev.exit90 ], [ %14, %lpad21 ], [ %.pn18, %_ZN7testing7MessageD2Ev.exit115 ], [ %24, %lpad42 ], [ %.pn21, %_ZN7testing7MessageD2Ev.exit140 ], [ %34, %lpad63 ], [ %.pn24, %_ZN7testing7MessageD2Ev.exit165 ], [ %44, %lpad84 ], [ %.pn27, %_ZN7testing7MessageD2Ev.exit190 ], [ %54, %lpad105 ], [ %.pn30, %_ZN7testing7MessageD2Ev.exit215 ], [ %64, %lpad126 ], [ %.pn33, %_ZN7testing7MessageD2Ev.exit240 ], [ %74, %lpad147 ], [ %.pn36, %_ZN7testing7MessageD2Ev.exit264 ], [ %84, %lpad168 ], [ %.pn57, %_ZN7testing7MessageD2Ev.exit288 ], [ %94, %lpad188 ], [ %.pn60, %_ZN7testing7MessageD2Ev.exit317 ], [ %108, %lpad212 ], [ %.pn51, %_ZN7testing7MessageD2Ev.exit347 ], [ %118, %lpad240 ], [ %.pn54, %_ZN7testing7MessageD2Ev.exit379 ], [ %131, %lpad265 ], [ %.pn45, %_ZN7testing7MessageD2Ev.exit407 ], [ %141, %lpad295 ], [ %.pn48, %_ZN7testing7MessageD2Ev.exit436 ], [ %153, %lpad318 ], [ %.pn39, %_ZN7testing7MessageD2Ev.exit465 ], [ %163, %lpad348 ], [ %.pn42, %_ZN7testing7MessageD2Ev.exit494 ], [ %175, %lpad371 ] call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %gtest_ar363.sink) #20 resume { ptr, i32 } %.pn60.pn.pn } @@ -15564,13 +15476,9 @@ _ZN7testing8internal8EqHelper7CompareIiiTnPNSt9enable_ifIXoontsr3std11is_integra %ref.tmp314 = alloca %"class.testing::Message", align 8 %ref.tmp317 = alloca %"class.testing::internal::AssertHelper", align 8 %gtest_ar328 = alloca %"class.testing::AssertionResult", align 8 - %ref.tmp329 = alloca i32, align 4 - %ref.tmp331 = alloca i32, align 4 %ref.tmp335 = alloca %"class.testing::Message", align 8 %ref.tmp338 = alloca %"class.testing::internal::AssertHelper", align 8 %gtest_ar353 = alloca %"class.testing::AssertionResult", align 8 - %ref.tmp354 = alloca i32, align 4 - %ref.tmp358 = alloca i32, align 4 %ref.tmp363 = alloca %"class.testing::Message", align 8 %ref.tmp366 = alloca %"class.testing::internal::AssertHelper", align 8 %gtest_ar384 = alloca %"class.testing::AssertionResult", align 8 @@ -17044,41 +16952,23 @@ for.cond350.preheader: ; preds = %_ZN7testing15Assert for.body: ; preds = %_ZN7testing15AssertionResultD2Ev.exit453, %_ZN7testing15AssertionResultD2Ev.exit478 %i.0557 = phi i32 [ 0, %_ZN7testing15AssertionResultD2Ev.exit453 ], [ %add, %_ZN7testing15AssertionResultD2Ev.exit478 ] - %shl = shl nuw nsw i32 1, %i.0557 - %conv = trunc nuw i32 %shl to i16 - %160 = call range(i16 8, 17) i16 @llvm.ctlz.i16(i16 %conv, i1 true) - %narrow.i = sub nuw nsw i16 16, %160 - %161 = zext nneg i16 %narrow.i to i32 - store i32 %161, ptr %ref.tmp329, align 4 %add = add nuw nsw i32 %i.0557, 1 - store i32 %add, ptr %ref.tmp331, align 4 - %cmp.i.i454 = icmp eq i32 %add, %161 - br i1 %cmp.i.i454, label %if.then.i.i456, label %if.end.i.i455 - -if.then.i.i456: ; preds = %for.body call void @_ZN7testing16AssertionSuccessEv(ptr nonnull sret(%"class.testing::AssertionResult") align 8 %gtest_ar328) - br label %_ZN7testing8internal8EqHelper7CompareIiiTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit457 - -if.end.i.i455: ; preds = %for.body - call void @_ZN7testing8internal18CmpHelperEQFailureIiiEENS_15AssertionResultEPKcS4_RKT_RKT0_(ptr nonnull sret(%"class.testing::AssertionResult") align 8 %gtest_ar328, ptr noundef nonnull @.str.244, ptr noundef nonnull @.str.245, ptr noundef nonnull align 4 dereferenceable(4) %ref.tmp329, ptr noundef nonnull align 4 dereferenceable(4) %ref.tmp331) - br label %_ZN7testing8internal8EqHelper7CompareIiiTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit457 - -_ZN7testing8internal8EqHelper7CompareIiiTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit457: ; preds = %if.then.i.i456, %if.end.i.i455 - %162 = load i8, ptr %gtest_ar328, align 8 - %tobool.i458 = trunc i8 %162 to i1 + %160 = load i8, ptr %gtest_ar328, align 8 + %tobool.i458 = trunc i8 %160 to i1 br i1 %tobool.i458, label %if.end347, label %if.else334 -if.else334: ; preds = %_ZN7testing8internal8EqHelper7CompareIiiTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit457 +if.else334: ; preds = %for.body invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp335) to label %invoke.cont337 unwind label %lpad336 invoke.cont337: ; preds = %if.else334 - %163 = load ptr, ptr %message_.i.i459, align 8 - %cmp.i.i.not.i.i460 = icmp eq ptr %163, null + %161 = load ptr, ptr %message_.i.i459, align 8 + %cmp.i.i.not.i.i460 = icmp eq ptr %161, null br i1 %cmp.i.i.not.i.i460, label %invoke.cont340, label %cond.true.i.i461 cond.true.i.i461: ; preds = %invoke.cont337 - %call4.i.i462 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %163) #20 + %call4.i.i462 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %161) #20 br label %invoke.cont340 invoke.cont340: ; preds = %cond.true.i.i461, %invoke.cont337 @@ -17092,15 +16982,15 @@ invoke.cont342: ; preds = %invoke.cont340 invoke.cont344: ; preds = %invoke.cont342 call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp338) #20 - %164 = load ptr, ptr %ref.tmp335, align 8 - %cmp.not.i.i465 = icmp eq ptr %164, null + %162 = load ptr, ptr %ref.tmp335, align 8 + %cmp.not.i.i465 = icmp eq ptr %162, null br i1 %cmp.not.i.i465, label %_ZN7testing7MessageD2Ev.exit469, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i466 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i466: ; preds = %invoke.cont344 - %vtable.i.i.i467 = load ptr, ptr %164, align 8 + %vtable.i.i.i467 = load ptr, ptr %162, align 8 %vfn.i.i.i468 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i467, i64 8 - %165 = load ptr, ptr %vfn.i.i.i468, align 8 - call void %165(ptr noundef nonnull align 8 dereferenceable(128) %164) #20 + %163 = load ptr, ptr %vfn.i.i.i468, align 8 + call void %163(ptr noundef nonnull align 8 dereferenceable(128) %162) #20 br label %_ZN7testing7MessageD2Ev.exit469 _ZN7testing7MessageD2Ev.exit469: ; preds = %invoke.cont344, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i466 @@ -17108,46 +16998,46 @@ _ZN7testing7MessageD2Ev.exit469: ; preds = %invoke.cont344, %_Z br label %if.end347 lpad336: ; preds = %if.else334 - %166 = landingpad { ptr, i32 } + %164 = landingpad { ptr, i32 } cleanup br label %eh.resume lpad339: ; preds = %invoke.cont340 - %167 = landingpad { ptr, i32 } + %165 = landingpad { ptr, i32 } cleanup br label %ehcleanup346 lpad343: ; preds = %invoke.cont342 - %168 = landingpad { ptr, i32 } + %166 = landingpad { ptr, i32 } cleanup call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp338) #20 br label %ehcleanup346 ehcleanup346: ; preds = %lpad343, %lpad339 - %.pn69 = phi { ptr, i32 } [ %168, %lpad343 ], [ %167, %lpad339 ] - %169 = load ptr, ptr %ref.tmp335, align 8 - %cmp.not.i.i470 = icmp eq ptr %169, null + %.pn69 = phi { ptr, i32 } [ %166, %lpad343 ], [ %165, %lpad339 ] + %167 = load ptr, ptr %ref.tmp335, align 8 + %cmp.not.i.i470 = icmp eq ptr %167, null br i1 %cmp.not.i.i470, label %_ZN7testing7MessageD2Ev.exit474, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i471 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i471: ; preds = %ehcleanup346 - %vtable.i.i.i472 = load ptr, ptr %169, align 8 + %vtable.i.i.i472 = load ptr, ptr %167, align 8 %vfn.i.i.i473 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i472, i64 8 - %170 = load ptr, ptr %vfn.i.i.i473, align 8 - call void %170(ptr noundef nonnull align 8 dereferenceable(128) %169) #20 + %168 = load ptr, ptr %vfn.i.i.i473, align 8 + call void %168(ptr noundef nonnull align 8 dereferenceable(128) %167) #20 br label %_ZN7testing7MessageD2Ev.exit474 _ZN7testing7MessageD2Ev.exit474: ; preds = %ehcleanup346, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i471 store ptr null, ptr %ref.tmp335, align 8 br label %eh.resume -if.end347: ; preds = %_ZN7testing8internal8EqHelper7CompareIiiTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit457, %_ZN7testing7MessageD2Ev.exit469 - %171 = load ptr, ptr %message_.i.i459, align 8 - %cmp.not.i.i476 = icmp eq ptr %171, null +if.end347: ; preds = %for.body, %_ZN7testing7MessageD2Ev.exit469 + %169 = load ptr, ptr %message_.i.i459, align 8 + %cmp.not.i.i476 = icmp eq ptr %169, null br i1 %cmp.not.i.i476, label %_ZN7testing15AssertionResultD2Ev.exit478, label %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i477 _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i477: ; preds = %if.end347 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %171) #20 - call void @_ZdlPv(ptr noundef nonnull %171) #21 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %169) #20 + call void @_ZdlPv(ptr noundef nonnull %169) #21 br label %_ZN7testing15AssertionResultD2Ev.exit478 _ZN7testing15AssertionResultD2Ev.exit478: ; preds = %if.end347, %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i477 @@ -17161,41 +17051,23 @@ for.cond381.preheader: ; preds = %_ZN7testing15Assert for.body352: ; preds = %for.cond350.preheader, %_ZN7testing15AssertionResultD2Ev.exit504 %i349.0558 = phi i32 [ 0, %for.cond350.preheader ], [ %add359, %_ZN7testing15AssertionResultD2Ev.exit504 ] - %shl355 = shl nuw nsw i32 1, %i349.0558 - %conv356 = trunc nuw i32 %shl355 to i16 - %172 = call range(i16 0, 17) i16 @llvm.ctlz.i16(i16 %conv356, i1 true) - %narrow.i479 = sub nuw nsw i16 16, %172 - %sub.i = zext nneg i16 %narrow.i479 to i32 - store i32 %sub.i, ptr %ref.tmp354, align 4 %add359 = add nuw nsw i32 %i349.0558, 1 - store i32 %add359, ptr %ref.tmp358, align 4 - %cmp.i.i480 = icmp eq i32 %add359, %sub.i - br i1 %cmp.i.i480, label %if.then.i.i482, label %if.end.i.i481 - -if.then.i.i482: ; preds = %for.body352 call void @_ZN7testing16AssertionSuccessEv(ptr nonnull sret(%"class.testing::AssertionResult") align 8 %gtest_ar353) - br label %_ZN7testing8internal8EqHelper7CompareIiiTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit483 - -if.end.i.i481: ; preds = %for.body352 - call void @_ZN7testing8internal18CmpHelperEQFailureIiiEENS_15AssertionResultEPKcS4_RKT_RKT0_(ptr nonnull sret(%"class.testing::AssertionResult") align 8 %gtest_ar353, ptr noundef nonnull @.str.246, ptr noundef nonnull @.str.245, ptr noundef nonnull align 4 dereferenceable(4) %ref.tmp354, ptr noundef nonnull align 4 dereferenceable(4) %ref.tmp358) - br label %_ZN7testing8internal8EqHelper7CompareIiiTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit483 - -_ZN7testing8internal8EqHelper7CompareIiiTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit483: ; preds = %if.then.i.i482, %if.end.i.i481 - %173 = load i8, ptr %gtest_ar353, align 8 - %tobool.i484 = trunc i8 %173 to i1 + %170 = load i8, ptr %gtest_ar353, align 8 + %tobool.i484 = trunc i8 %170 to i1 br i1 %tobool.i484, label %if.end375, label %if.else362 -if.else362: ; preds = %_ZN7testing8internal8EqHelper7CompareIiiTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit483 +if.else362: ; preds = %for.body352 invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp363) to label %invoke.cont365 unwind label %lpad364 invoke.cont365: ; preds = %if.else362 - %174 = load ptr, ptr %message_.i.i485, align 8 - %cmp.i.i.not.i.i486 = icmp eq ptr %174, null + %171 = load ptr, ptr %message_.i.i485, align 8 + %cmp.i.i.not.i.i486 = icmp eq ptr %171, null br i1 %cmp.i.i.not.i.i486, label %invoke.cont368, label %cond.true.i.i487 cond.true.i.i487: ; preds = %invoke.cont365 - %call4.i.i488 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %174) #20 + %call4.i.i488 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %171) #20 br label %invoke.cont368 invoke.cont368: ; preds = %cond.true.i.i487, %invoke.cont365 @@ -17209,15 +17081,15 @@ invoke.cont370: ; preds = %invoke.cont368 invoke.cont372: ; preds = %invoke.cont370 call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp366) #20 - %175 = load ptr, ptr %ref.tmp363, align 8 - %cmp.not.i.i491 = icmp eq ptr %175, null + %172 = load ptr, ptr %ref.tmp363, align 8 + %cmp.not.i.i491 = icmp eq ptr %172, null br i1 %cmp.not.i.i491, label %_ZN7testing7MessageD2Ev.exit495, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i492 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i492: ; preds = %invoke.cont372 - %vtable.i.i.i493 = load ptr, ptr %175, align 8 + %vtable.i.i.i493 = load ptr, ptr %172, align 8 %vfn.i.i.i494 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i493, i64 8 - %176 = load ptr, ptr %vfn.i.i.i494, align 8 - call void %176(ptr noundef nonnull align 8 dereferenceable(128) %175) #20 + %173 = load ptr, ptr %vfn.i.i.i494, align 8 + call void %173(ptr noundef nonnull align 8 dereferenceable(128) %172) #20 br label %_ZN7testing7MessageD2Ev.exit495 _ZN7testing7MessageD2Ev.exit495: ; preds = %invoke.cont372, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i492 @@ -17225,46 +17097,46 @@ _ZN7testing7MessageD2Ev.exit495: ; preds = %invoke.cont372, %_Z br label %if.end375 lpad364: ; preds = %if.else362 - %177 = landingpad { ptr, i32 } + %174 = landingpad { ptr, i32 } cleanup br label %eh.resume lpad367: ; preds = %invoke.cont368 - %178 = landingpad { ptr, i32 } + %175 = landingpad { ptr, i32 } cleanup br label %ehcleanup374 lpad371: ; preds = %invoke.cont370 - %179 = landingpad { ptr, i32 } + %176 = landingpad { ptr, i32 } cleanup call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp366) #20 br label %ehcleanup374 ehcleanup374: ; preds = %lpad371, %lpad367 - %.pn66 = phi { ptr, i32 } [ %179, %lpad371 ], [ %178, %lpad367 ] - %180 = load ptr, ptr %ref.tmp363, align 8 - %cmp.not.i.i496 = icmp eq ptr %180, null + %.pn66 = phi { ptr, i32 } [ %176, %lpad371 ], [ %175, %lpad367 ] + %177 = load ptr, ptr %ref.tmp363, align 8 + %cmp.not.i.i496 = icmp eq ptr %177, null br i1 %cmp.not.i.i496, label %_ZN7testing7MessageD2Ev.exit500, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i497 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i497: ; preds = %ehcleanup374 - %vtable.i.i.i498 = load ptr, ptr %180, align 8 + %vtable.i.i.i498 = load ptr, ptr %177, align 8 %vfn.i.i.i499 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i498, i64 8 - %181 = load ptr, ptr %vfn.i.i.i499, align 8 - call void %181(ptr noundef nonnull align 8 dereferenceable(128) %180) #20 + %178 = load ptr, ptr %vfn.i.i.i499, align 8 + call void %178(ptr noundef nonnull align 8 dereferenceable(128) %177) #20 br label %_ZN7testing7MessageD2Ev.exit500 _ZN7testing7MessageD2Ev.exit500: ; preds = %ehcleanup374, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i497 store ptr null, ptr %ref.tmp363, align 8 br label %eh.resume -if.end375: ; preds = %_ZN7testing8internal8EqHelper7CompareIiiTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit483, %_ZN7testing7MessageD2Ev.exit495 - %182 = load ptr, ptr %message_.i.i485, align 8 - %cmp.not.i.i502 = icmp eq ptr %182, null +if.end375: ; preds = %for.body352, %_ZN7testing7MessageD2Ev.exit495 + %179 = load ptr, ptr %message_.i.i485, align 8 + %cmp.not.i.i502 = icmp eq ptr %179, null br i1 %cmp.not.i.i502, label %_ZN7testing15AssertionResultD2Ev.exit504, label %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i503 _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i503: ; preds = %if.end375 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #20 - call void @_ZdlPv(ptr noundef nonnull %182) #21 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %179) #20 + call void @_ZdlPv(ptr noundef nonnull %179) #21 br label %_ZN7testing15AssertionResultD2Ev.exit504 _ZN7testing15AssertionResultD2Ev.exit504: ; preds = %if.end375, %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i503 @@ -17280,8 +17152,8 @@ for.body383: ; preds = %for.cond381.prehead %i380.0559 = phi i32 [ 0, %for.cond381.preheader ], [ %add389, %_ZN7testing15AssertionResultD2Ev.exit530 ] %add389 = add nuw nsw i32 %i380.0559, 1 call void @_ZN7testing16AssertionSuccessEv(ptr nonnull sret(%"class.testing::AssertionResult") align 8 %gtest_ar384) - %183 = load i8, ptr %gtest_ar384, align 8 - %tobool.i510 = trunc i8 %183 to i1 + %180 = load i8, ptr %gtest_ar384, align 8 + %tobool.i510 = trunc i8 %180 to i1 br i1 %tobool.i510, label %if.end405, label %if.else392 if.else392: ; preds = %for.body383 @@ -17289,12 +17161,12 @@ if.else392: ; preds = %for.body383 to label %invoke.cont395 unwind label %lpad394 invoke.cont395: ; preds = %if.else392 - %184 = load ptr, ptr %message_.i.i511, align 8 - %cmp.i.i.not.i.i512 = icmp eq ptr %184, null + %181 = load ptr, ptr %message_.i.i511, align 8 + %cmp.i.i.not.i.i512 = icmp eq ptr %181, null br i1 %cmp.i.i.not.i.i512, label %invoke.cont398, label %cond.true.i.i513 cond.true.i.i513: ; preds = %invoke.cont395 - %call4.i.i514 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %184) #20 + %call4.i.i514 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %181) #20 br label %invoke.cont398 invoke.cont398: ; preds = %cond.true.i.i513, %invoke.cont395 @@ -17308,15 +17180,15 @@ invoke.cont400: ; preds = %invoke.cont398 invoke.cont402: ; preds = %invoke.cont400 call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp396) #20 - %185 = load ptr, ptr %ref.tmp393, align 8 - %cmp.not.i.i517 = icmp eq ptr %185, null + %182 = load ptr, ptr %ref.tmp393, align 8 + %cmp.not.i.i517 = icmp eq ptr %182, null br i1 %cmp.not.i.i517, label %_ZN7testing7MessageD2Ev.exit521, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i518 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i518: ; preds = %invoke.cont402 - %vtable.i.i.i519 = load ptr, ptr %185, align 8 + %vtable.i.i.i519 = load ptr, ptr %182, align 8 %vfn.i.i.i520 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i519, i64 8 - %186 = load ptr, ptr %vfn.i.i.i520, align 8 - call void %186(ptr noundef nonnull align 8 dereferenceable(128) %185) #20 + %183 = load ptr, ptr %vfn.i.i.i520, align 8 + call void %183(ptr noundef nonnull align 8 dereferenceable(128) %182) #20 br label %_ZN7testing7MessageD2Ev.exit521 _ZN7testing7MessageD2Ev.exit521: ; preds = %invoke.cont402, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i518 @@ -17324,32 +17196,32 @@ _ZN7testing7MessageD2Ev.exit521: ; preds = %invoke.cont402, %_Z br label %if.end405 lpad394: ; preds = %if.else392 - %187 = landingpad { ptr, i32 } + %184 = landingpad { ptr, i32 } cleanup br label %eh.resume lpad397: ; preds = %invoke.cont398 - %188 = landingpad { ptr, i32 } + %185 = landingpad { ptr, i32 } cleanup br label %ehcleanup404 lpad401: ; preds = %invoke.cont400 - %189 = landingpad { ptr, i32 } + %186 = landingpad { ptr, i32 } cleanup call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp396) #20 br label %ehcleanup404 ehcleanup404: ; preds = %lpad401, %lpad397 - %.pn63 = phi { ptr, i32 } [ %189, %lpad401 ], [ %188, %lpad397 ] - %190 = load ptr, ptr %ref.tmp393, align 8 - %cmp.not.i.i522 = icmp eq ptr %190, null + %.pn63 = phi { ptr, i32 } [ %186, %lpad401 ], [ %185, %lpad397 ] + %187 = load ptr, ptr %ref.tmp393, align 8 + %cmp.not.i.i522 = icmp eq ptr %187, null br i1 %cmp.not.i.i522, label %_ZN7testing7MessageD2Ev.exit526, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i523 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i523: ; preds = %ehcleanup404 - %vtable.i.i.i524 = load ptr, ptr %190, align 8 + %vtable.i.i.i524 = load ptr, ptr %187, align 8 %vfn.i.i.i525 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i524, i64 8 - %191 = load ptr, ptr %vfn.i.i.i525, align 8 - call void %191(ptr noundef nonnull align 8 dereferenceable(128) %190) #20 + %188 = load ptr, ptr %vfn.i.i.i525, align 8 + call void %188(ptr noundef nonnull align 8 dereferenceable(128) %187) #20 br label %_ZN7testing7MessageD2Ev.exit526 _ZN7testing7MessageD2Ev.exit526: ; preds = %ehcleanup404, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i523 @@ -17357,13 +17229,13 @@ _ZN7testing7MessageD2Ev.exit526: ; preds = %ehcleanup404, %_ZNK br label %eh.resume if.end405: ; preds = %for.body383, %_ZN7testing7MessageD2Ev.exit521 - %192 = load ptr, ptr %message_.i.i511, align 8 - %cmp.not.i.i528 = icmp eq ptr %192, null + %189 = load ptr, ptr %message_.i.i511, align 8 + %cmp.not.i.i528 = icmp eq ptr %189, null br i1 %cmp.not.i.i528, label %_ZN7testing15AssertionResultD2Ev.exit530, label %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i529 _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i529: ; preds = %if.end405 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #20 - call void @_ZdlPv(ptr noundef nonnull %192) #21 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %189) #20 + call void @_ZdlPv(ptr noundef nonnull %189) #21 br label %_ZN7testing15AssertionResultD2Ev.exit530 _ZN7testing15AssertionResultD2Ev.exit530: ; preds = %if.end405, %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i529 @@ -17375,8 +17247,8 @@ for.body413: ; preds = %for.cond411.prehead %i410.0560 = phi i32 [ 0, %for.cond411.preheader ], [ %add419, %_ZN7testing15AssertionResultD2Ev.exit556 ] %add419 = add nuw nsw i32 %i410.0560, 1 call void @_ZN7testing16AssertionSuccessEv(ptr nonnull sret(%"class.testing::AssertionResult") align 8 %gtest_ar414) - %193 = load i8, ptr %gtest_ar414, align 8 - %tobool.i536 = trunc i8 %193 to i1 + %190 = load i8, ptr %gtest_ar414, align 8 + %tobool.i536 = trunc i8 %190 to i1 br i1 %tobool.i536, label %if.end435, label %if.else422 if.else422: ; preds = %for.body413 @@ -17384,12 +17256,12 @@ if.else422: ; preds = %for.body413 to label %invoke.cont425 unwind label %lpad424 invoke.cont425: ; preds = %if.else422 - %194 = load ptr, ptr %message_.i.i537, align 8 - %cmp.i.i.not.i.i538 = icmp eq ptr %194, null + %191 = load ptr, ptr %message_.i.i537, align 8 + %cmp.i.i.not.i.i538 = icmp eq ptr %191, null br i1 %cmp.i.i.not.i.i538, label %invoke.cont428, label %cond.true.i.i539 cond.true.i.i539: ; preds = %invoke.cont425 - %call4.i.i540 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %194) #20 + %call4.i.i540 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %191) #20 br label %invoke.cont428 invoke.cont428: ; preds = %cond.true.i.i539, %invoke.cont425 @@ -17403,15 +17275,15 @@ invoke.cont430: ; preds = %invoke.cont428 invoke.cont432: ; preds = %invoke.cont430 call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp426) #20 - %195 = load ptr, ptr %ref.tmp423, align 8 - %cmp.not.i.i543 = icmp eq ptr %195, null + %192 = load ptr, ptr %ref.tmp423, align 8 + %cmp.not.i.i543 = icmp eq ptr %192, null br i1 %cmp.not.i.i543, label %_ZN7testing7MessageD2Ev.exit547, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i544 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i544: ; preds = %invoke.cont432 - %vtable.i.i.i545 = load ptr, ptr %195, align 8 + %vtable.i.i.i545 = load ptr, ptr %192, align 8 %vfn.i.i.i546 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i545, i64 8 - %196 = load ptr, ptr %vfn.i.i.i546, align 8 - call void %196(ptr noundef nonnull align 8 dereferenceable(128) %195) #20 + %193 = load ptr, ptr %vfn.i.i.i546, align 8 + call void %193(ptr noundef nonnull align 8 dereferenceable(128) %192) #20 br label %_ZN7testing7MessageD2Ev.exit547 _ZN7testing7MessageD2Ev.exit547: ; preds = %invoke.cont432, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i544 @@ -17419,32 +17291,32 @@ _ZN7testing7MessageD2Ev.exit547: ; preds = %invoke.cont432, %_Z br label %if.end435 lpad424: ; preds = %if.else422 - %197 = landingpad { ptr, i32 } + %194 = landingpad { ptr, i32 } cleanup br label %eh.resume lpad427: ; preds = %invoke.cont428 - %198 = landingpad { ptr, i32 } + %195 = landingpad { ptr, i32 } cleanup br label %ehcleanup434 lpad431: ; preds = %invoke.cont430 - %199 = landingpad { ptr, i32 } + %196 = landingpad { ptr, i32 } cleanup call void @_ZN7testing8internal12AssertHelperD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp426) #20 br label %ehcleanup434 ehcleanup434: ; preds = %lpad431, %lpad427 - %.pn60 = phi { ptr, i32 } [ %199, %lpad431 ], [ %198, %lpad427 ] - %200 = load ptr, ptr %ref.tmp423, align 8 - %cmp.not.i.i548 = icmp eq ptr %200, null + %.pn60 = phi { ptr, i32 } [ %196, %lpad431 ], [ %195, %lpad427 ] + %197 = load ptr, ptr %ref.tmp423, align 8 + %cmp.not.i.i548 = icmp eq ptr %197, null br i1 %cmp.not.i.i548, label %_ZN7testing7MessageD2Ev.exit552, label %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i549 _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i549: ; preds = %ehcleanup434 - %vtable.i.i.i550 = load ptr, ptr %200, align 8 + %vtable.i.i.i550 = load ptr, ptr %197, align 8 %vfn.i.i.i551 = getelementptr inbounds nuw i8, ptr %vtable.i.i.i550, i64 8 - %201 = load ptr, ptr %vfn.i.i.i551, align 8 - call void %201(ptr noundef nonnull align 8 dereferenceable(128) %200) #20 + %198 = load ptr, ptr %vfn.i.i.i551, align 8 + call void %198(ptr noundef nonnull align 8 dereferenceable(128) %197) #20 br label %_ZN7testing7MessageD2Ev.exit552 _ZN7testing7MessageD2Ev.exit552: ; preds = %ehcleanup434, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i549 @@ -17452,13 +17324,13 @@ _ZN7testing7MessageD2Ev.exit552: ; preds = %ehcleanup434, %_ZNK br label %eh.resume if.end435: ; preds = %for.body413, %_ZN7testing7MessageD2Ev.exit547 - %202 = load ptr, ptr %message_.i.i537, align 8 - %cmp.not.i.i554 = icmp eq ptr %202, null + %199 = load ptr, ptr %message_.i.i537, align 8 + %cmp.not.i.i554 = icmp eq ptr %199, null br i1 %cmp.not.i.i554, label %_ZN7testing15AssertionResultD2Ev.exit556, label %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i555 _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i555: ; preds = %if.end435 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %202) #20 - call void @_ZdlPv(ptr noundef nonnull %202) #21 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %199) #20 + call void @_ZdlPv(ptr noundef nonnull %199) #21 br label %_ZN7testing15AssertionResultD2Ev.exit556 _ZN7testing15AssertionResultD2Ev.exit556: ; preds = %if.end435, %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i555 @@ -17471,7 +17343,7 @@ for.end439: ; preds = %_ZN7testing15Assert eh.resume: ; preds = %lpad424, %_ZN7testing7MessageD2Ev.exit552, %lpad394, %_ZN7testing7MessageD2Ev.exit526, %lpad364, %_ZN7testing7MessageD2Ev.exit500, %lpad336, %_ZN7testing7MessageD2Ev.exit474, %lpad315, %_ZN7testing7MessageD2Ev.exit449, %lpad294, %_ZN7testing7MessageD2Ev.exit424, %lpad273, %_ZN7testing7MessageD2Ev.exit399, %lpad252, %_ZN7testing7MessageD2Ev.exit374, %lpad231, %_ZN7testing7MessageD2Ev.exit349, %lpad210, %_ZN7testing7MessageD2Ev.exit324, %lpad189, %_ZN7testing7MessageD2Ev.exit299, %lpad168, %_ZN7testing7MessageD2Ev.exit274, %lpad147, %_ZN7testing7MessageD2Ev.exit249, %lpad126, %_ZN7testing7MessageD2Ev.exit224, %lpad105, %_ZN7testing7MessageD2Ev.exit199, %lpad84, %_ZN7testing7MessageD2Ev.exit174, %lpad63, %_ZN7testing7MessageD2Ev.exit149, %lpad42, %_ZN7testing7MessageD2Ev.exit124, %lpad21, %_ZN7testing7MessageD2Ev.exit99, %lpad, %_ZN7testing7MessageD2Ev.exit77 %gtest_ar414.sink = phi ptr [ %gtest_ar, %_ZN7testing7MessageD2Ev.exit77 ], [ %gtest_ar, %lpad ], [ %gtest_ar13, %_ZN7testing7MessageD2Ev.exit99 ], [ %gtest_ar13, %lpad21 ], [ %gtest_ar34, %_ZN7testing7MessageD2Ev.exit124 ], [ %gtest_ar34, %lpad42 ], [ %gtest_ar55, %_ZN7testing7MessageD2Ev.exit149 ], [ %gtest_ar55, %lpad63 ], [ %gtest_ar76, %_ZN7testing7MessageD2Ev.exit174 ], [ %gtest_ar76, %lpad84 ], [ %gtest_ar97, %_ZN7testing7MessageD2Ev.exit199 ], [ %gtest_ar97, %lpad105 ], [ %gtest_ar118, %_ZN7testing7MessageD2Ev.exit224 ], [ %gtest_ar118, %lpad126 ], [ %gtest_ar139, %_ZN7testing7MessageD2Ev.exit249 ], [ %gtest_ar139, %lpad147 ], [ %gtest_ar160, %_ZN7testing7MessageD2Ev.exit274 ], [ %gtest_ar160, %lpad168 ], [ %gtest_ar181, %_ZN7testing7MessageD2Ev.exit299 ], [ %gtest_ar181, %lpad189 ], [ %gtest_ar202, %_ZN7testing7MessageD2Ev.exit324 ], [ %gtest_ar202, %lpad210 ], [ %gtest_ar223, %_ZN7testing7MessageD2Ev.exit349 ], [ %gtest_ar223, %lpad231 ], [ %gtest_ar244, %_ZN7testing7MessageD2Ev.exit374 ], [ %gtest_ar244, %lpad252 ], [ %gtest_ar265, %_ZN7testing7MessageD2Ev.exit399 ], [ %gtest_ar265, %lpad273 ], [ %gtest_ar286, %_ZN7testing7MessageD2Ev.exit424 ], [ %gtest_ar286, %lpad294 ], [ %gtest_ar307, %_ZN7testing7MessageD2Ev.exit449 ], [ %gtest_ar307, %lpad315 ], [ %gtest_ar328, %_ZN7testing7MessageD2Ev.exit474 ], [ %gtest_ar328, %lpad336 ], [ %gtest_ar353, %_ZN7testing7MessageD2Ev.exit500 ], [ %gtest_ar353, %lpad364 ], [ %gtest_ar384, %_ZN7testing7MessageD2Ev.exit526 ], [ %gtest_ar384, %lpad394 ], [ %gtest_ar414, %_ZN7testing7MessageD2Ev.exit552 ], [ %gtest_ar414, %lpad424 ] - %.pn69.pn.pn = phi { ptr, i32 } [ %.pn, %_ZN7testing7MessageD2Ev.exit77 ], [ %4, %lpad ], [ %.pn15, %_ZN7testing7MessageD2Ev.exit99 ], [ %14, %lpad21 ], [ %.pn18, %_ZN7testing7MessageD2Ev.exit124 ], [ %24, %lpad42 ], [ %.pn21, %_ZN7testing7MessageD2Ev.exit149 ], [ %34, %lpad63 ], [ %.pn24, %_ZN7testing7MessageD2Ev.exit174 ], [ %44, %lpad84 ], [ %.pn27, %_ZN7testing7MessageD2Ev.exit199 ], [ %54, %lpad105 ], [ %.pn30, %_ZN7testing7MessageD2Ev.exit224 ], [ %64, %lpad126 ], [ %.pn33, %_ZN7testing7MessageD2Ev.exit249 ], [ %74, %lpad147 ], [ %.pn36, %_ZN7testing7MessageD2Ev.exit274 ], [ %84, %lpad168 ], [ %.pn39, %_ZN7testing7MessageD2Ev.exit299 ], [ %94, %lpad189 ], [ %.pn42, %_ZN7testing7MessageD2Ev.exit324 ], [ %104, %lpad210 ], [ %.pn45, %_ZN7testing7MessageD2Ev.exit349 ], [ %114, %lpad231 ], [ %.pn48, %_ZN7testing7MessageD2Ev.exit374 ], [ %124, %lpad252 ], [ %.pn51, %_ZN7testing7MessageD2Ev.exit399 ], [ %134, %lpad273 ], [ %.pn54, %_ZN7testing7MessageD2Ev.exit424 ], [ %144, %lpad294 ], [ %.pn57, %_ZN7testing7MessageD2Ev.exit449 ], [ %154, %lpad315 ], [ %.pn69, %_ZN7testing7MessageD2Ev.exit474 ], [ %166, %lpad336 ], [ %.pn66, %_ZN7testing7MessageD2Ev.exit500 ], [ %177, %lpad364 ], [ %.pn63, %_ZN7testing7MessageD2Ev.exit526 ], [ %187, %lpad394 ], [ %.pn60, %_ZN7testing7MessageD2Ev.exit552 ], [ %197, %lpad424 ] + %.pn69.pn.pn = phi { ptr, i32 } [ %.pn, %_ZN7testing7MessageD2Ev.exit77 ], [ %4, %lpad ], [ %.pn15, %_ZN7testing7MessageD2Ev.exit99 ], [ %14, %lpad21 ], [ %.pn18, %_ZN7testing7MessageD2Ev.exit124 ], [ %24, %lpad42 ], [ %.pn21, %_ZN7testing7MessageD2Ev.exit149 ], [ %34, %lpad63 ], [ %.pn24, %_ZN7testing7MessageD2Ev.exit174 ], [ %44, %lpad84 ], [ %.pn27, %_ZN7testing7MessageD2Ev.exit199 ], [ %54, %lpad105 ], [ %.pn30, %_ZN7testing7MessageD2Ev.exit224 ], [ %64, %lpad126 ], [ %.pn33, %_ZN7testing7MessageD2Ev.exit249 ], [ %74, %lpad147 ], [ %.pn36, %_ZN7testing7MessageD2Ev.exit274 ], [ %84, %lpad168 ], [ %.pn39, %_ZN7testing7MessageD2Ev.exit299 ], [ %94, %lpad189 ], [ %.pn42, %_ZN7testing7MessageD2Ev.exit324 ], [ %104, %lpad210 ], [ %.pn45, %_ZN7testing7MessageD2Ev.exit349 ], [ %114, %lpad231 ], [ %.pn48, %_ZN7testing7MessageD2Ev.exit374 ], [ %124, %lpad252 ], [ %.pn51, %_ZN7testing7MessageD2Ev.exit399 ], [ %134, %lpad273 ], [ %.pn54, %_ZN7testing7MessageD2Ev.exit424 ], [ %144, %lpad294 ], [ %.pn57, %_ZN7testing7MessageD2Ev.exit449 ], [ %154, %lpad315 ], [ %.pn69, %_ZN7testing7MessageD2Ev.exit474 ], [ %164, %lpad336 ], [ %.pn66, %_ZN7testing7MessageD2Ev.exit500 ], [ %174, %lpad364 ], [ %.pn63, %_ZN7testing7MessageD2Ev.exit526 ], [ %184, %lpad394 ], [ %.pn60, %_ZN7testing7MessageD2Ev.exit552 ], [ %194, %lpad424 ] call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %gtest_ar414.sink) #20 resume { ptr, i32 } %.pn69.pn.pn } diff --git a/bench/llvm/optimized/AArch64ISelLowering.cpp.ll b/bench/llvm/optimized/AArch64ISelLowering.cpp.ll index 4e51be866d0..df59e38b802 100644 --- a/bench/llvm/optimized/AArch64ISelLowering.cpp.ll +++ b/bench/llvm/optimized/AArch64ISelLowering.cpp.ll @@ -40463,96 +40463,93 @@ _ZNK4llvm16AArch64Subtarget14isTargetDarwinEv.exit.thread: ; preds = %31, %31, % store ptr %.fca.0.extract1, ptr %7, align 8 %.sroa.24.0..sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 8 store i32 %.fca.1.extract2, ptr %.sroa.24.0..sroa_idx, align 8 - %55 = zext nneg i32 %26 to i64 - %56 = call range(i64 0, 65) i64 @llvm.ctlz.i64(i64 %55, i1 true) - %57 = trunc nuw nsw i64 %56 to i8 - %58 = xor i8 %57, 63 - %59 = ptrtoint ptr %46 to i64 - %60 = and i64 %59, -5 - store i64 %60, ptr %8, align 8 - %61 = getelementptr inbounds nuw i8, ptr %8, i64 8 - store i64 0, ptr %61, align 8 - %62 = getelementptr inbounds nuw i8, ptr %8, i64 16 - %63 = getelementptr inbounds nuw i8, ptr %8, i64 20 - store i8 0, ptr %63, align 4 + %55 = select i1 %25, i8 2, i8 3 + %56 = ptrtoint ptr %46 to i64 + %57 = and i64 %56, -5 + store i64 %57, ptr %8, align 8 + %58 = getelementptr inbounds nuw i8, ptr %8, i64 8 + store i64 0, ptr %58, align 8 + %59 = getelementptr inbounds nuw i8, ptr %8, i64 16 + %60 = getelementptr inbounds nuw i8, ptr %8, i64 20 + store i8 0, ptr %60, align 4 %.not.i = icmp eq ptr %46, null - br i1 %.not.i, label %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit, label %64 + br i1 %.not.i, label %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit, label %61 -64: ; preds = %_ZNK4llvm16AArch64Subtarget14isTargetDarwinEv.exit.thread - %65 = getelementptr inbounds nuw i8, ptr %46, i64 8 - %66 = load ptr, ptr %65, align 8 - %67 = getelementptr inbounds nuw i8, ptr %66, i64 8 - %68 = load i32, ptr %67, align 8 - %69 = and i32 %68, 255 - %70 = add nsw i32 %69, -17 - %spec.select.i.i.i.i = icmp ult i32 %70, 2 - br i1 %spec.select.i.i.i.i, label %71, label %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i +61: ; preds = %_ZNK4llvm16AArch64Subtarget14isTargetDarwinEv.exit.thread + %62 = getelementptr inbounds nuw i8, ptr %46, i64 8 + %63 = load ptr, ptr %62, align 8 + %64 = getelementptr inbounds nuw i8, ptr %63, i64 8 + %65 = load i32, ptr %64, align 8 + %66 = and i32 %65, 255 + %67 = add nsw i32 %66, -17 + %spec.select.i.i.i.i = icmp ult i32 %67, 2 + br i1 %spec.select.i.i.i.i, label %68, label %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i -71: ; preds = %64 - %72 = getelementptr inbounds nuw i8, ptr %66, i64 16 - %73 = load ptr, ptr %72, align 8 - %74 = load ptr, ptr %73, align 8 - %.phi.trans.insert.i.i = getelementptr inbounds nuw i8, ptr %74, i64 8 +68: ; preds = %61 + %69 = getelementptr inbounds nuw i8, ptr %63, i64 16 + %70 = load ptr, ptr %69, align 8 + %71 = load ptr, ptr %70, align 8 + %.phi.trans.insert.i.i = getelementptr inbounds nuw i8, ptr %71, i64 8 %.pre.i.i = load i32, ptr %.phi.trans.insert.i.i, align 8 br label %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i -_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i: ; preds = %71, %64 - %75 = phi i32 [ %.pre.i.i, %71 ], [ %68, %64 ] - %76 = lshr i32 %75, 8 +_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i: ; preds = %68, %61 + %72 = phi i32 [ %.pre.i.i, %68 ], [ %65, %61 ] + %73 = lshr i32 %72, 8 br label %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit _ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit: ; preds = %_ZNK4llvm16AArch64Subtarget14isTargetDarwinEv.exit.thread, %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i - %77 = phi i32 [ %76, %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i ], [ 0, %_ZNK4llvm16AArch64Subtarget14isTargetDarwinEv.exit.thread ] - store i32 %77, ptr %62, align 8 - %78 = ptrtoint ptr %50 to i64 - %79 = and i64 %78, -5 - store i64 %79, ptr %9, align 8 - %80 = getelementptr inbounds nuw i8, ptr %9, i64 8 - store i64 0, ptr %80, align 8 - %81 = getelementptr inbounds nuw i8, ptr %9, i64 16 - %82 = getelementptr inbounds nuw i8, ptr %9, i64 20 - store i8 0, ptr %82, align 4 + %74 = phi i32 [ %73, %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i ], [ 0, %_ZNK4llvm16AArch64Subtarget14isTargetDarwinEv.exit.thread ] + store i32 %74, ptr %59, align 8 + %75 = ptrtoint ptr %50 to i64 + %76 = and i64 %75, -5 + store i64 %76, ptr %9, align 8 + %77 = getelementptr inbounds nuw i8, ptr %9, i64 8 + store i64 0, ptr %77, align 8 + %78 = getelementptr inbounds nuw i8, ptr %9, i64 16 + %79 = getelementptr inbounds nuw i8, ptr %9, i64 20 + store i8 0, ptr %79, align 4 %.not.i21 = icmp eq ptr %50, null - br i1 %.not.i21, label %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit26, label %83 + br i1 %.not.i21, label %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit26, label %80 -83: ; preds = %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit - %84 = getelementptr inbounds nuw i8, ptr %50, i64 8 - %85 = load ptr, ptr %84, align 8 - %86 = getelementptr inbounds nuw i8, ptr %85, i64 8 - %87 = load i32, ptr %86, align 8 - %88 = and i32 %87, 255 - %89 = add nsw i32 %88, -17 - %spec.select.i.i.i.i22 = icmp ult i32 %89, 2 - br i1 %spec.select.i.i.i.i22, label %90, label %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i23 +80: ; preds = %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit + %81 = getelementptr inbounds nuw i8, ptr %50, i64 8 + %82 = load ptr, ptr %81, align 8 + %83 = getelementptr inbounds nuw i8, ptr %82, i64 8 + %84 = load i32, ptr %83, align 8 + %85 = and i32 %84, 255 + %86 = add nsw i32 %85, -17 + %spec.select.i.i.i.i22 = icmp ult i32 %86, 2 + br i1 %spec.select.i.i.i.i22, label %87, label %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i23 -90: ; preds = %83 - %91 = getelementptr inbounds nuw i8, ptr %85, i64 16 - %92 = load ptr, ptr %91, align 8 - %93 = load ptr, ptr %92, align 8 - %.phi.trans.insert.i.i24 = getelementptr inbounds nuw i8, ptr %93, i64 8 +87: ; preds = %80 + %88 = getelementptr inbounds nuw i8, ptr %82, i64 16 + %89 = load ptr, ptr %88, align 8 + %90 = load ptr, ptr %89, align 8 + %.phi.trans.insert.i.i24 = getelementptr inbounds nuw i8, ptr %90, i64 8 %.pre.i.i25 = load i32, ptr %.phi.trans.insert.i.i24, align 8 br label %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i23 -_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i23: ; preds = %90, %83 - %94 = phi i32 [ %.pre.i.i25, %90 ], [ %87, %83 ] - %95 = lshr i32 %94, 8 +_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i23: ; preds = %87, %80 + %91 = phi i32 [ %.pre.i.i25, %87 ], [ %84, %80 ] + %92 = lshr i32 %91, 8 br label %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit26 _ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit26: ; preds = %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit, %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i23 - %96 = phi i32 [ %95, %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i23 ], [ 0, %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit ] - store i32 %96, ptr %81, align 8 + %93 = phi i32 [ %92, %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i23 ], [ 0, %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit ] + store i32 %93, ptr %78, align 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %10, i8 0, i64 32, i1 false) - %97 = call { ptr, i32 } @_ZN4llvm12SelectionDAG9getMemcpyENS_7SDValueERKNS_5SDLocES1_S1_S1_NS_5AlignEbbPKNS_8CallInstESt8optionalIbENS_18MachinePointerInfoESB_RKNS_9AAMDNodesEPNS_9AAResultsE(ptr noundef nonnull align 8 dereferenceable(904) %3, ptr %.sroa.07.0.copyload, i32 %.sroa.28.0.copyload, ptr noundef nonnull align 8 dereferenceable(12) %5, ptr %.sroa.05.0.copyload, i32 %.sroa.26.0.copyload, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %6, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %7, i8 %58, i1 noundef zeroext false, i1 noundef zeroext false, ptr noundef null, i16 0, ptr noundef nonnull byval(%"struct.llvm::MachinePointerInfo") align 8 %8, ptr noundef nonnull byval(%"struct.llvm::MachinePointerInfo") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef null) #33 - %98 = load ptr, ptr %5, align 8 - %.not.i.i.i.i.i = icmp eq ptr %98, null - br i1 %.not.i.i.i.i.i, label %_ZN4llvm5SDLocD2Ev.exit, label %99 + %94 = call { ptr, i32 } @_ZN4llvm12SelectionDAG9getMemcpyENS_7SDValueERKNS_5SDLocES1_S1_S1_NS_5AlignEbbPKNS_8CallInstESt8optionalIbENS_18MachinePointerInfoESB_RKNS_9AAMDNodesEPNS_9AAResultsE(ptr noundef nonnull align 8 dereferenceable(904) %3, ptr %.sroa.07.0.copyload, i32 %.sroa.28.0.copyload, ptr noundef nonnull align 8 dereferenceable(12) %5, ptr %.sroa.05.0.copyload, i32 %.sroa.26.0.copyload, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %6, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %7, i8 %55, i1 noundef zeroext false, i1 noundef zeroext false, ptr noundef null, i16 0, ptr noundef nonnull byval(%"struct.llvm::MachinePointerInfo") align 8 %8, ptr noundef nonnull byval(%"struct.llvm::MachinePointerInfo") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef null) #33 + %95 = load ptr, ptr %5, align 8 + %.not.i.i.i.i.i = icmp eq ptr %95, null + br i1 %.not.i.i.i.i.i, label %_ZN4llvm5SDLocD2Ev.exit, label %96 -99: ; preds = %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit26 - call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(12) %5, ptr noundef nonnull align 4 dereferenceable(8) %98) #33 +96: ; preds = %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit26 + call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(12) %5, ptr noundef nonnull align 4 dereferenceable(8) %95) #33 br label %_ZN4llvm5SDLocD2Ev.exit -_ZN4llvm5SDLocD2Ev.exit: ; preds = %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit26, %99 - ret { ptr, i32 } %97 +_ZN4llvm5SDLocD2Ev.exit: ; preds = %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit26, %96 + ret { ptr, i32 } %94 } ; Function Attrs: mustprogress nounwind uwtable @@ -73584,414 +73581,412 @@ _ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit: ; preds = %_ZN4llvm5SDLocC2E %92 = phi i32 [ %91, %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i ], [ 0, %_ZN4llvm5SDLocC2ENS_7SDValueE.exit ] store i32 %92, ptr %77, align 8 %93 = select i1 %42, i64 4, i64 8 - %94 = call range(i64 0, 65) i64 @llvm.ctlz.i64(i64 %93, i1 true) - %95 = trunc nuw nsw i64 %94 to i8 - %96 = xor i8 %95, 63 + %94 = select i1 %42, i8 2, i8 3 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %9, i8 0, i64 32, i1 false) - %97 = call { ptr, i32 } @_ZN4llvm12SelectionDAG8getStoreENS_7SDValueERKNS_5SDLocES1_S1_NS_18MachinePointerInfoENS_5AlignENS_17MachineMemOperand5FlagsERKNS_9AAMDNodesE(ptr noundef nonnull align 8 dereferenceable(904) %3, ptr %.sroa.0213.0.copyload, i32 %.sroa.6.0.copyload, ptr noundef nonnull align 8 dereferenceable(12) %5, ptr %.fca.0.extract179, i32 %.fca.1.extract180, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %6, ptr noundef nonnull byval(%"struct.llvm::MachinePointerInfo") align 8 %8, i8 %96, i16 noundef zeroext 0, ptr noundef nonnull align 8 dereferenceable(32) %9) #33 - %.fca.0.extract167 = extractvalue { ptr, i32 } %97, 0 - %.fca.1.extract168 = extractvalue { ptr, i32 } %97, 1 - %98 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 - %99 = add i64 %98, 1 - %100 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE8capacityEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 - %.not.i.i.i = icmp ugt i64 %99, %100 - br i1 %.not.i.i.i, label %101, label %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit - -101: ; preds = %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit - call void @_ZN4llvm15SmallVectorBaseIjE8grow_podEPvmm(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull %69, i64 noundef %99, i64 noundef 16) #33 + %95 = call { ptr, i32 } @_ZN4llvm12SelectionDAG8getStoreENS_7SDValueERKNS_5SDLocES1_S1_NS_18MachinePointerInfoENS_5AlignENS_17MachineMemOperand5FlagsERKNS_9AAMDNodesE(ptr noundef nonnull align 8 dereferenceable(904) %3, ptr %.sroa.0213.0.copyload, i32 %.sroa.6.0.copyload, ptr noundef nonnull align 8 dereferenceable(12) %5, ptr %.fca.0.extract179, i32 %.fca.1.extract180, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %6, ptr noundef nonnull byval(%"struct.llvm::MachinePointerInfo") align 8 %8, i8 %94, i16 noundef zeroext 0, ptr noundef nonnull align 8 dereferenceable(32) %9) #33 + %.fca.0.extract167 = extractvalue { ptr, i32 } %95, 0 + %.fca.1.extract168 = extractvalue { ptr, i32 } %95, 1 + %96 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 + %97 = add i64 %96, 1 + %98 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE8capacityEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 + %.not.i.i.i = icmp ugt i64 %97, %98 + br i1 %.not.i.i.i, label %99, label %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit + +99: ; preds = %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit + call void @_ZN4llvm15SmallVectorBaseIjE8grow_podEPvmm(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull %69, i64 noundef %97, i64 noundef 16) #33 br label %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit -_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit: ; preds = %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit, %101 - %102 = load ptr, ptr %7, align 8 - %103 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 - %104 = getelementptr inbounds %"class.llvm::SDValue", ptr %102, i64 %103 - store ptr %.fca.0.extract167, ptr %104, align 1 - %.sroa.2.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %104, i64 8 +_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit: ; preds = %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit, %99 + %100 = load ptr, ptr %7, align 8 + %101 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 + %102 = getelementptr inbounds %"class.llvm::SDValue", ptr %100, i64 %101 + store ptr %.fca.0.extract167, ptr %102, align 1 + %.sroa.2.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %102, i64 8 store i32 %.fca.1.extract168, ptr %.sroa.2.0..sroa_idx.i, align 1 - %105 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 - %106 = add i64 %105, 1 - call void @_ZN4llvm15SmallVectorBaseIjE8set_sizeEm(ptr noundef nonnull align 8 dereferenceable(16) %7, i64 noundef %106) #33 - %107 = getelementptr inbounds nuw i8, ptr %34, i64 68 - %108 = load i32, ptr %107, align 4 - %109 = icmp sgt i32 %108, 0 - br i1 %109, label %110, label %147 + %103 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 + %104 = add i64 %103, 1 + call void @_ZN4llvm15SmallVectorBaseIjE8set_sizeEm(ptr noundef nonnull align 8 dereferenceable(16) %7, i64 noundef %104) #33 + %105 = getelementptr inbounds nuw i8, ptr %34, i64 68 + %106 = load i32, ptr %105, align 4 + %107 = icmp sgt i32 %106, 0 + br i1 %107, label %108, label %145 -110: ; preds = %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit - %111 = call { ptr, i32 } @_ZN4llvm12SelectionDAG11getConstantEmRKNS_5SDLocENS_3EVTEbb(ptr noundef nonnull align 8 dereferenceable(904) %3, i64 noundef %93, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %54, ptr null, i1 noundef zeroext false, i1 noundef zeroext false) #33 - %.fca.0.extract156 = extractvalue { ptr, i32 } %111, 0 - %.fca.1.extract157 = extractvalue { ptr, i32 } %111, 1 +108: ; preds = %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit + %109 = call { ptr, i32 } @_ZN4llvm12SelectionDAG11getConstantEmRKNS_5SDLocENS_3EVTEbb(ptr noundef nonnull align 8 dereferenceable(904) %3, i64 noundef %93, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %54, ptr null, i1 noundef zeroext false, i1 noundef zeroext false) #33 + %.fca.0.extract156 = extractvalue { ptr, i32 } %109, 0 + %.fca.1.extract157 = extractvalue { ptr, i32 } %109, 1 store ptr %.fca.0.extract156, ptr %10, align 8 %.sroa.2159.0..sroa_idx = getelementptr inbounds nuw i8, ptr %10, i64 8 store i32 %.fca.1.extract157, ptr %.sroa.2159.0..sroa_idx, align 8 - %112 = call { ptr, i32 } @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueES5_(ptr noundef nonnull align 8 dereferenceable(904) %3, i32 noundef 56, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %54, ptr null, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %6, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %10) #33 - %.fca.0.extract152 = extractvalue { ptr, i32 } %112, 0 - %.fca.1.extract153 = extractvalue { ptr, i32 } %112, 1 - %113 = getelementptr inbounds nuw i8, ptr %34, i64 64 - %114 = load i32, ptr %113, align 8 - %115 = call { ptr, i32 } @_ZN4llvm12SelectionDAG13getFrameIndexEiNS_3EVTEb(ptr noundef nonnull align 8 dereferenceable(904) %3, i32 noundef %114, i16 %54, ptr null, i1 noundef zeroext false) #33 - %.fca.0.extract145 = extractvalue { ptr, i32 } %115, 0 - %.fca.1.extract146 = extractvalue { ptr, i32 } %115, 1 + %110 = call { ptr, i32 } @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueES5_(ptr noundef nonnull align 8 dereferenceable(904) %3, i32 noundef 56, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %54, ptr null, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %6, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %10) #33 + %.fca.0.extract152 = extractvalue { ptr, i32 } %110, 0 + %.fca.1.extract153 = extractvalue { ptr, i32 } %110, 1 + %111 = getelementptr inbounds nuw i8, ptr %34, i64 64 + %112 = load i32, ptr %111, align 8 + %113 = call { ptr, i32 } @_ZN4llvm12SelectionDAG13getFrameIndexEiNS_3EVTEb(ptr noundef nonnull align 8 dereferenceable(904) %3, i32 noundef %112, i16 %54, ptr null, i1 noundef zeroext false) #33 + %.fca.0.extract145 = extractvalue { ptr, i32 } %113, 0 + %.fca.1.extract146 = extractvalue { ptr, i32 } %113, 1 store ptr %.fca.0.extract145, ptr %11, align 8 %.sroa.5367.0..sroa_idx = getelementptr inbounds nuw i8, ptr %11, i64 8 store i32 %.fca.1.extract146, ptr %.sroa.5367.0..sroa_idx, align 8 - %116 = zext nneg i32 %108 to i64 - %117 = call { ptr, i32 } @_ZN4llvm12SelectionDAG17getSignedConstantElRKNS_5SDLocENS_3EVTEbb(ptr noundef nonnull align 8 dereferenceable(904) %3, i64 noundef %116, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %54, ptr null, i1 noundef zeroext false, i1 noundef zeroext false) #33 - %.fca.0.extract137 = extractvalue { ptr, i32 } %117, 0 - %.fca.1.extract138 = extractvalue { ptr, i32 } %117, 1 + %114 = zext nneg i32 %106 to i64 + %115 = call { ptr, i32 } @_ZN4llvm12SelectionDAG17getSignedConstantElRKNS_5SDLocENS_3EVTEbb(ptr noundef nonnull align 8 dereferenceable(904) %3, i64 noundef %114, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %54, ptr null, i1 noundef zeroext false, i1 noundef zeroext false) #33 + %.fca.0.extract137 = extractvalue { ptr, i32 } %115, 0 + %.fca.1.extract138 = extractvalue { ptr, i32 } %115, 1 store ptr %.fca.0.extract137, ptr %12, align 8 %.sroa.2140.0..sroa_idx = getelementptr inbounds nuw i8, ptr %12, i64 8 store i32 %.fca.1.extract138, ptr %.sroa.2140.0..sroa_idx, align 8 - %118 = call { ptr, i32 } @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueES5_(ptr noundef nonnull align 8 dereferenceable(904) %3, i32 noundef 56, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %54, ptr null, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %11, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %12) #33 - %.fca.0.extract133 = extractvalue { ptr, i32 } %118, 0 - %.fca.1.extract134 = extractvalue { ptr, i32 } %118, 1 - %119 = call { ptr, i32 } @_ZN4llvm12SelectionDAG14getZExtOrTruncENS_7SDValueERKNS_5SDLocENS_3EVTE(ptr noundef nonnull align 8 dereferenceable(904) %3, ptr %.fca.0.extract133, i32 %.fca.1.extract134, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %48, ptr null) #33 - %.fca.0.extract123 = extractvalue { ptr, i32 } %119, 0 - %.fca.1.extract124 = extractvalue { ptr, i32 } %119, 1 + %116 = call { ptr, i32 } @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueES5_(ptr noundef nonnull align 8 dereferenceable(904) %3, i32 noundef 56, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %54, ptr null, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %11, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %12) #33 + %.fca.0.extract133 = extractvalue { ptr, i32 } %116, 0 + %.fca.1.extract134 = extractvalue { ptr, i32 } %116, 1 + %117 = call { ptr, i32 } @_ZN4llvm12SelectionDAG14getZExtOrTruncENS_7SDValueERKNS_5SDLocENS_3EVTE(ptr noundef nonnull align 8 dereferenceable(904) %3, ptr %.fca.0.extract133, i32 %.fca.1.extract134, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %48, ptr null) #33 + %.fca.0.extract123 = extractvalue { ptr, i32 } %117, 0 + %.fca.1.extract124 = extractvalue { ptr, i32 } %117, 1 store ptr %.fca.0.extract152, ptr %13, align 8 %.sroa.3364.0..sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 8 store i32 %.fca.1.extract153, ptr %.sroa.3364.0..sroa_idx, align 8 store i64 %75, ptr %14, align 8 - %120 = getelementptr inbounds nuw i8, ptr %14, i64 8 - store i64 %93, ptr %120, align 8 - %121 = getelementptr inbounds nuw i8, ptr %14, i64 16 - %122 = getelementptr inbounds nuw i8, ptr %14, i64 20 - store i8 0, ptr %122, align 4 - br i1 %.not.i, label %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit289, label %123 - -123: ; preds = %110 - %124 = getelementptr inbounds nuw i8, ptr %68, i64 8 - %125 = load ptr, ptr %124, align 8 - %126 = getelementptr inbounds nuw i8, ptr %125, i64 8 - %127 = load i32, ptr %126, align 8 - %128 = and i32 %127, 255 - %129 = add nsw i32 %128, -17 - %spec.select.i.i.i.i285 = icmp ult i32 %129, 2 - br i1 %spec.select.i.i.i.i285, label %130, label %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i286 + %118 = getelementptr inbounds nuw i8, ptr %14, i64 8 + store i64 %93, ptr %118, align 8 + %119 = getelementptr inbounds nuw i8, ptr %14, i64 16 + %120 = getelementptr inbounds nuw i8, ptr %14, i64 20 + store i8 0, ptr %120, align 4 + br i1 %.not.i, label %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit289, label %121 + +121: ; preds = %108 + %122 = getelementptr inbounds nuw i8, ptr %68, i64 8 + %123 = load ptr, ptr %122, align 8 + %124 = getelementptr inbounds nuw i8, ptr %123, i64 8 + %125 = load i32, ptr %124, align 8 + %126 = and i32 %125, 255 + %127 = add nsw i32 %126, -17 + %spec.select.i.i.i.i285 = icmp ult i32 %127, 2 + br i1 %spec.select.i.i.i.i285, label %128, label %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i286 -130: ; preds = %123 - %131 = getelementptr inbounds nuw i8, ptr %125, i64 16 - %132 = load ptr, ptr %131, align 8 - %133 = load ptr, ptr %132, align 8 - %.phi.trans.insert.i.i287 = getelementptr inbounds nuw i8, ptr %133, i64 8 +128: ; preds = %121 + %129 = getelementptr inbounds nuw i8, ptr %123, i64 16 + %130 = load ptr, ptr %129, align 8 + %131 = load ptr, ptr %130, align 8 + %.phi.trans.insert.i.i287 = getelementptr inbounds nuw i8, ptr %131, i64 8 %.pre.i.i288 = load i32, ptr %.phi.trans.insert.i.i287, align 8 br label %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i286 -_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i286: ; preds = %130, %123 - %134 = phi i32 [ %.pre.i.i288, %130 ], [ %127, %123 ] - %135 = lshr i32 %134, 8 +_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i286: ; preds = %128, %121 + %132 = phi i32 [ %.pre.i.i288, %128 ], [ %125, %121 ] + %133 = lshr i32 %132, 8 br label %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit289 -_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit289: ; preds = %110, %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i286 - %136 = phi i32 [ %135, %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i286 ], [ 0, %110 ] - store i32 %136, ptr %121, align 8 +_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit289: ; preds = %108, %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i286 + %134 = phi i32 [ %133, %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i286 ], [ 0, %108 ] + store i32 %134, ptr %119, align 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %15, i8 0, i64 32, i1 false) - %137 = call { ptr, i32 } @_ZN4llvm12SelectionDAG8getStoreENS_7SDValueERKNS_5SDLocES1_S1_NS_18MachinePointerInfoENS_5AlignENS_17MachineMemOperand5FlagsERKNS_9AAMDNodesE(ptr noundef nonnull align 8 dereferenceable(904) %3, ptr %.sroa.0213.0.copyload, i32 %.sroa.6.0.copyload, ptr noundef nonnull align 8 dereferenceable(12) %5, ptr %.fca.0.extract123, i32 %.fca.1.extract124, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %13, ptr noundef nonnull byval(%"struct.llvm::MachinePointerInfo") align 8 %14, i8 %96, i16 noundef zeroext 0, ptr noundef nonnull align 8 dereferenceable(32) %15) #33 - %.fca.0.extract111 = extractvalue { ptr, i32 } %137, 0 - %.fca.1.extract112 = extractvalue { ptr, i32 } %137, 1 - %138 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 - %139 = add i64 %138, 1 - %140 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE8capacityEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 - %.not.i.i.i290 = icmp ugt i64 %139, %140 - br i1 %.not.i.i.i290, label %141, label %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit292 + %135 = call { ptr, i32 } @_ZN4llvm12SelectionDAG8getStoreENS_7SDValueERKNS_5SDLocES1_S1_NS_18MachinePointerInfoENS_5AlignENS_17MachineMemOperand5FlagsERKNS_9AAMDNodesE(ptr noundef nonnull align 8 dereferenceable(904) %3, ptr %.sroa.0213.0.copyload, i32 %.sroa.6.0.copyload, ptr noundef nonnull align 8 dereferenceable(12) %5, ptr %.fca.0.extract123, i32 %.fca.1.extract124, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %13, ptr noundef nonnull byval(%"struct.llvm::MachinePointerInfo") align 8 %14, i8 %94, i16 noundef zeroext 0, ptr noundef nonnull align 8 dereferenceable(32) %15) #33 + %.fca.0.extract111 = extractvalue { ptr, i32 } %135, 0 + %.fca.1.extract112 = extractvalue { ptr, i32 } %135, 1 + %136 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 + %137 = add i64 %136, 1 + %138 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE8capacityEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 + %.not.i.i.i290 = icmp ugt i64 %137, %138 + br i1 %.not.i.i.i290, label %139, label %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit292 -141: ; preds = %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit289 - call void @_ZN4llvm15SmallVectorBaseIjE8grow_podEPvmm(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull %69, i64 noundef %139, i64 noundef 16) #33 +139: ; preds = %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit289 + call void @_ZN4llvm15SmallVectorBaseIjE8grow_podEPvmm(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull %69, i64 noundef %137, i64 noundef 16) #33 br label %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit292 -_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit292: ; preds = %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit289, %141 - %142 = load ptr, ptr %7, align 8 - %143 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 - %144 = getelementptr inbounds %"class.llvm::SDValue", ptr %142, i64 %143 - store ptr %.fca.0.extract111, ptr %144, align 1 - %.sroa.2.0..sroa_idx.i291 = getelementptr inbounds nuw i8, ptr %144, i64 8 +_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit292: ; preds = %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit289, %139 + %140 = load ptr, ptr %7, align 8 + %141 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 + %142 = getelementptr inbounds %"class.llvm::SDValue", ptr %140, i64 %141 + store ptr %.fca.0.extract111, ptr %142, align 1 + %.sroa.2.0..sroa_idx.i291 = getelementptr inbounds nuw i8, ptr %142, i64 8 store i32 %.fca.1.extract112, ptr %.sroa.2.0..sroa_idx.i291, align 1 - %145 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 - %146 = add i64 %145, 1 - call void @_ZN4llvm15SmallVectorBaseIjE8set_sizeEm(ptr noundef nonnull align 8 dereferenceable(16) %7, i64 noundef %146) #33 - br label %147 - -147: ; preds = %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit292, %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit - %148 = getelementptr inbounds nuw i8, ptr %34, i64 76 - %149 = load i32, ptr %148, align 4 - %150 = icmp sgt i32 %149, 0 - br i1 %150, label %151, label %189 + %143 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 + %144 = add i64 %143, 1 + call void @_ZN4llvm15SmallVectorBaseIjE8set_sizeEm(ptr noundef nonnull align 8 dereferenceable(16) %7, i64 noundef %144) #33 + br label %145 -151: ; preds = %147 - %152 = select i1 %42, i64 8, i64 16 - %153 = call { ptr, i32 } @_ZN4llvm12SelectionDAG11getConstantEmRKNS_5SDLocENS_3EVTEbb(ptr noundef nonnull align 8 dereferenceable(904) %3, i64 noundef %152, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %54, ptr null, i1 noundef zeroext false, i1 noundef zeroext false) #33 - %.fca.0.extract101 = extractvalue { ptr, i32 } %153, 0 - %.fca.1.extract102 = extractvalue { ptr, i32 } %153, 1 +145: ; preds = %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit292, %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit + %146 = getelementptr inbounds nuw i8, ptr %34, i64 76 + %147 = load i32, ptr %146, align 4 + %148 = icmp sgt i32 %147, 0 + br i1 %148, label %149, label %187 + +149: ; preds = %145 + %150 = select i1 %42, i64 8, i64 16 + %151 = call { ptr, i32 } @_ZN4llvm12SelectionDAG11getConstantEmRKNS_5SDLocENS_3EVTEbb(ptr noundef nonnull align 8 dereferenceable(904) %3, i64 noundef %150, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %54, ptr null, i1 noundef zeroext false, i1 noundef zeroext false) #33 + %.fca.0.extract101 = extractvalue { ptr, i32 } %151, 0 + %.fca.1.extract102 = extractvalue { ptr, i32 } %151, 1 store ptr %.fca.0.extract101, ptr %16, align 8 %.sroa.2104.0..sroa_idx = getelementptr inbounds nuw i8, ptr %16, i64 8 store i32 %.fca.1.extract102, ptr %.sroa.2104.0..sroa_idx, align 8 - %154 = call { ptr, i32 } @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueES5_(ptr noundef nonnull align 8 dereferenceable(904) %3, i32 noundef 56, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %54, ptr null, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %6, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %16) #33 - %.fca.0.extract97 = extractvalue { ptr, i32 } %154, 0 - %.fca.1.extract98 = extractvalue { ptr, i32 } %154, 1 - %155 = getelementptr inbounds nuw i8, ptr %34, i64 72 - %156 = load i32, ptr %155, align 8 - %157 = call { ptr, i32 } @_ZN4llvm12SelectionDAG13getFrameIndexEiNS_3EVTEb(ptr noundef nonnull align 8 dereferenceable(904) %3, i32 noundef %156, i16 %54, ptr null, i1 noundef zeroext false) #33 - %.fca.0.extract90 = extractvalue { ptr, i32 } %157, 0 - %.fca.1.extract91 = extractvalue { ptr, i32 } %157, 1 + %152 = call { ptr, i32 } @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueES5_(ptr noundef nonnull align 8 dereferenceable(904) %3, i32 noundef 56, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %54, ptr null, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %6, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %16) #33 + %.fca.0.extract97 = extractvalue { ptr, i32 } %152, 0 + %.fca.1.extract98 = extractvalue { ptr, i32 } %152, 1 + %153 = getelementptr inbounds nuw i8, ptr %34, i64 72 + %154 = load i32, ptr %153, align 8 + %155 = call { ptr, i32 } @_ZN4llvm12SelectionDAG13getFrameIndexEiNS_3EVTEb(ptr noundef nonnull align 8 dereferenceable(904) %3, i32 noundef %154, i16 %54, ptr null, i1 noundef zeroext false) #33 + %.fca.0.extract90 = extractvalue { ptr, i32 } %155, 0 + %.fca.1.extract91 = extractvalue { ptr, i32 } %155, 1 store ptr %.fca.0.extract90, ptr %17, align 8 %.sroa.5349.0..sroa_idx = getelementptr inbounds nuw i8, ptr %17, i64 8 store i32 %.fca.1.extract91, ptr %.sroa.5349.0..sroa_idx, align 8 - %158 = zext nneg i32 %149 to i64 - %159 = call { ptr, i32 } @_ZN4llvm12SelectionDAG17getSignedConstantElRKNS_5SDLocENS_3EVTEbb(ptr noundef nonnull align 8 dereferenceable(904) %3, i64 noundef %158, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %54, ptr null, i1 noundef zeroext false, i1 noundef zeroext false) #33 - %.fca.0.extract82 = extractvalue { ptr, i32 } %159, 0 - %.fca.1.extract83 = extractvalue { ptr, i32 } %159, 1 + %156 = zext nneg i32 %147 to i64 + %157 = call { ptr, i32 } @_ZN4llvm12SelectionDAG17getSignedConstantElRKNS_5SDLocENS_3EVTEbb(ptr noundef nonnull align 8 dereferenceable(904) %3, i64 noundef %156, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %54, ptr null, i1 noundef zeroext false, i1 noundef zeroext false) #33 + %.fca.0.extract82 = extractvalue { ptr, i32 } %157, 0 + %.fca.1.extract83 = extractvalue { ptr, i32 } %157, 1 store ptr %.fca.0.extract82, ptr %18, align 8 %.sroa.285.0..sroa_idx = getelementptr inbounds nuw i8, ptr %18, i64 8 store i32 %.fca.1.extract83, ptr %.sroa.285.0..sroa_idx, align 8 - %160 = call { ptr, i32 } @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueES5_(ptr noundef nonnull align 8 dereferenceable(904) %3, i32 noundef 56, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %54, ptr null, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %17, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %18) #33 - %.fca.0.extract78 = extractvalue { ptr, i32 } %160, 0 - %.fca.1.extract79 = extractvalue { ptr, i32 } %160, 1 - %161 = call { ptr, i32 } @_ZN4llvm12SelectionDAG14getZExtOrTruncENS_7SDValueERKNS_5SDLocENS_3EVTE(ptr noundef nonnull align 8 dereferenceable(904) %3, ptr %.fca.0.extract78, i32 %.fca.1.extract79, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %48, ptr null) #33 - %.fca.0.extract68 = extractvalue { ptr, i32 } %161, 0 - %.fca.1.extract69 = extractvalue { ptr, i32 } %161, 1 + %158 = call { ptr, i32 } @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueES5_(ptr noundef nonnull align 8 dereferenceable(904) %3, i32 noundef 56, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %54, ptr null, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %17, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %18) #33 + %.fca.0.extract78 = extractvalue { ptr, i32 } %158, 0 + %.fca.1.extract79 = extractvalue { ptr, i32 } %158, 1 + %159 = call { ptr, i32 } @_ZN4llvm12SelectionDAG14getZExtOrTruncENS_7SDValueERKNS_5SDLocENS_3EVTE(ptr noundef nonnull align 8 dereferenceable(904) %3, ptr %.fca.0.extract78, i32 %.fca.1.extract79, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %48, ptr null) #33 + %.fca.0.extract68 = extractvalue { ptr, i32 } %159, 0 + %.fca.1.extract69 = extractvalue { ptr, i32 } %159, 1 store ptr %.fca.0.extract97, ptr %19, align 8 %.sroa.3.0..sroa_idx = getelementptr inbounds nuw i8, ptr %19, i64 8 store i32 %.fca.1.extract98, ptr %.sroa.3.0..sroa_idx, align 8 store i64 %75, ptr %20, align 8 - %162 = getelementptr inbounds nuw i8, ptr %20, i64 8 - store i64 %152, ptr %162, align 8 - %163 = getelementptr inbounds nuw i8, ptr %20, i64 16 - %164 = getelementptr inbounds nuw i8, ptr %20, i64 20 - store i8 0, ptr %164, align 4 - br i1 %.not.i, label %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit298, label %165 - -165: ; preds = %151 - %166 = getelementptr inbounds nuw i8, ptr %68, i64 8 - %167 = load ptr, ptr %166, align 8 - %168 = getelementptr inbounds nuw i8, ptr %167, i64 8 - %169 = load i32, ptr %168, align 8 - %170 = and i32 %169, 255 - %171 = add nsw i32 %170, -17 - %spec.select.i.i.i.i294 = icmp ult i32 %171, 2 - br i1 %spec.select.i.i.i.i294, label %172, label %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i295 + %160 = getelementptr inbounds nuw i8, ptr %20, i64 8 + store i64 %150, ptr %160, align 8 + %161 = getelementptr inbounds nuw i8, ptr %20, i64 16 + %162 = getelementptr inbounds nuw i8, ptr %20, i64 20 + store i8 0, ptr %162, align 4 + br i1 %.not.i, label %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit298, label %163 + +163: ; preds = %149 + %164 = getelementptr inbounds nuw i8, ptr %68, i64 8 + %165 = load ptr, ptr %164, align 8 + %166 = getelementptr inbounds nuw i8, ptr %165, i64 8 + %167 = load i32, ptr %166, align 8 + %168 = and i32 %167, 255 + %169 = add nsw i32 %168, -17 + %spec.select.i.i.i.i294 = icmp ult i32 %169, 2 + br i1 %spec.select.i.i.i.i294, label %170, label %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i295 -172: ; preds = %165 - %173 = getelementptr inbounds nuw i8, ptr %167, i64 16 - %174 = load ptr, ptr %173, align 8 - %175 = load ptr, ptr %174, align 8 - %.phi.trans.insert.i.i296 = getelementptr inbounds nuw i8, ptr %175, i64 8 +170: ; preds = %163 + %171 = getelementptr inbounds nuw i8, ptr %165, i64 16 + %172 = load ptr, ptr %171, align 8 + %173 = load ptr, ptr %172, align 8 + %.phi.trans.insert.i.i296 = getelementptr inbounds nuw i8, ptr %173, i64 8 %.pre.i.i297 = load i32, ptr %.phi.trans.insert.i.i296, align 8 br label %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i295 -_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i295: ; preds = %172, %165 - %176 = phi i32 [ %.pre.i.i297, %172 ], [ %169, %165 ] - %177 = lshr i32 %176, 8 +_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i295: ; preds = %170, %163 + %174 = phi i32 [ %.pre.i.i297, %170 ], [ %167, %163 ] + %175 = lshr i32 %174, 8 br label %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit298 -_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit298: ; preds = %151, %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i295 - %178 = phi i32 [ %177, %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i295 ], [ 0, %151 ] - store i32 %178, ptr %163, align 8 +_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit298: ; preds = %149, %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i295 + %176 = phi i32 [ %175, %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i295 ], [ 0, %149 ] + store i32 %176, ptr %161, align 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %21, i8 0, i64 32, i1 false) - %179 = call { ptr, i32 } @_ZN4llvm12SelectionDAG8getStoreENS_7SDValueERKNS_5SDLocES1_S1_NS_18MachinePointerInfoENS_5AlignENS_17MachineMemOperand5FlagsERKNS_9AAMDNodesE(ptr noundef nonnull align 8 dereferenceable(904) %3, ptr %.sroa.0213.0.copyload, i32 %.sroa.6.0.copyload, ptr noundef nonnull align 8 dereferenceable(12) %5, ptr %.fca.0.extract68, i32 %.fca.1.extract69, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %19, ptr noundef nonnull byval(%"struct.llvm::MachinePointerInfo") align 8 %20, i8 %96, i16 noundef zeroext 0, ptr noundef nonnull align 8 dereferenceable(32) %21) #33 - %.fca.0.extract56 = extractvalue { ptr, i32 } %179, 0 - %.fca.1.extract57 = extractvalue { ptr, i32 } %179, 1 - %180 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 - %181 = add i64 %180, 1 - %182 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE8capacityEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 - %.not.i.i.i299 = icmp ugt i64 %181, %182 - br i1 %.not.i.i.i299, label %183, label %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit301 + %177 = call { ptr, i32 } @_ZN4llvm12SelectionDAG8getStoreENS_7SDValueERKNS_5SDLocES1_S1_NS_18MachinePointerInfoENS_5AlignENS_17MachineMemOperand5FlagsERKNS_9AAMDNodesE(ptr noundef nonnull align 8 dereferenceable(904) %3, ptr %.sroa.0213.0.copyload, i32 %.sroa.6.0.copyload, ptr noundef nonnull align 8 dereferenceable(12) %5, ptr %.fca.0.extract68, i32 %.fca.1.extract69, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %19, ptr noundef nonnull byval(%"struct.llvm::MachinePointerInfo") align 8 %20, i8 %94, i16 noundef zeroext 0, ptr noundef nonnull align 8 dereferenceable(32) %21) #33 + %.fca.0.extract56 = extractvalue { ptr, i32 } %177, 0 + %.fca.1.extract57 = extractvalue { ptr, i32 } %177, 1 + %178 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 + %179 = add i64 %178, 1 + %180 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE8capacityEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 + %.not.i.i.i299 = icmp ugt i64 %179, %180 + br i1 %.not.i.i.i299, label %181, label %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit301 -183: ; preds = %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit298 - call void @_ZN4llvm15SmallVectorBaseIjE8grow_podEPvmm(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull %69, i64 noundef %181, i64 noundef 16) #33 +181: ; preds = %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit298 + call void @_ZN4llvm15SmallVectorBaseIjE8grow_podEPvmm(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull %69, i64 noundef %179, i64 noundef 16) #33 br label %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit301 -_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit301: ; preds = %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit298, %183 - %184 = load ptr, ptr %7, align 8 - %185 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 - %186 = getelementptr inbounds %"class.llvm::SDValue", ptr %184, i64 %185 - store ptr %.fca.0.extract56, ptr %186, align 1 - %.sroa.2.0..sroa_idx.i300 = getelementptr inbounds nuw i8, ptr %186, i64 8 +_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit301: ; preds = %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit298, %181 + %182 = load ptr, ptr %7, align 8 + %183 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 + %184 = getelementptr inbounds %"class.llvm::SDValue", ptr %182, i64 %183 + store ptr %.fca.0.extract56, ptr %184, align 1 + %.sroa.2.0..sroa_idx.i300 = getelementptr inbounds nuw i8, ptr %184, i64 8 store i32 %.fca.1.extract57, ptr %.sroa.2.0..sroa_idx.i300, align 1 - %187 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 - %188 = add i64 %187, 1 - call void @_ZN4llvm15SmallVectorBaseIjE8set_sizeEm(ptr noundef nonnull align 8 dereferenceable(16) %7, i64 noundef %188) #33 - br label %189 - -189: ; preds = %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit301, %147 - %190 = select i1 %42, i32 12, i32 24 - %191 = zext nneg i32 %190 to i64 - %192 = call { ptr, i32 } @_ZN4llvm12SelectionDAG11getConstantEmRKNS_5SDLocENS_3EVTEbb(ptr noundef nonnull align 8 dereferenceable(904) %3, i64 noundef %191, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %54, ptr null, i1 noundef zeroext false, i1 noundef zeroext false) #33 - %.fca.0.extract47 = extractvalue { ptr, i32 } %192, 0 - %.fca.1.extract48 = extractvalue { ptr, i32 } %192, 1 + %185 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 + %186 = add i64 %185, 1 + call void @_ZN4llvm15SmallVectorBaseIjE8set_sizeEm(ptr noundef nonnull align 8 dereferenceable(16) %7, i64 noundef %186) #33 + br label %187 + +187: ; preds = %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit301, %145 + %188 = select i1 %42, i32 12, i32 24 + %189 = zext nneg i32 %188 to i64 + %190 = call { ptr, i32 } @_ZN4llvm12SelectionDAG11getConstantEmRKNS_5SDLocENS_3EVTEbb(ptr noundef nonnull align 8 dereferenceable(904) %3, i64 noundef %189, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %54, ptr null, i1 noundef zeroext false, i1 noundef zeroext false) #33 + %.fca.0.extract47 = extractvalue { ptr, i32 } %190, 0 + %.fca.1.extract48 = extractvalue { ptr, i32 } %190, 1 store ptr %.fca.0.extract47, ptr %22, align 8 %.sroa.250.0..sroa_idx = getelementptr inbounds nuw i8, ptr %22, i64 8 store i32 %.fca.1.extract48, ptr %.sroa.250.0..sroa_idx, align 8 - %193 = call { ptr, i32 } @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueES5_(ptr noundef nonnull align 8 dereferenceable(904) %3, i32 noundef 56, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %54, ptr null, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %6, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %22) #33 - %.fca.0.extract43 = extractvalue { ptr, i32 } %193, 0 - %.fca.1.extract44 = extractvalue { ptr, i32 } %193, 1 - %194 = sub nsw i32 0, %108 - %195 = sext i32 %194 to i64 - %196 = call { ptr, i32 } @_ZN4llvm12SelectionDAG17getSignedConstantElRKNS_5SDLocENS_3EVTEbb(ptr noundef nonnull align 8 dereferenceable(904) %3, i64 noundef %195, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 7, ptr null, i1 noundef zeroext false, i1 noundef zeroext false) #33 - %.fca.0.extract32 = extractvalue { ptr, i32 } %196, 0 - %.fca.1.extract33 = extractvalue { ptr, i32 } %196, 1 + %191 = call { ptr, i32 } @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueES5_(ptr noundef nonnull align 8 dereferenceable(904) %3, i32 noundef 56, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %54, ptr null, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %6, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %22) #33 + %.fca.0.extract43 = extractvalue { ptr, i32 } %191, 0 + %.fca.1.extract44 = extractvalue { ptr, i32 } %191, 1 + %192 = sub nsw i32 0, %106 + %193 = sext i32 %192 to i64 + %194 = call { ptr, i32 } @_ZN4llvm12SelectionDAG17getSignedConstantElRKNS_5SDLocENS_3EVTEbb(ptr noundef nonnull align 8 dereferenceable(904) %3, i64 noundef %193, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 7, ptr null, i1 noundef zeroext false, i1 noundef zeroext false) #33 + %.fca.0.extract32 = extractvalue { ptr, i32 } %194, 0 + %.fca.1.extract33 = extractvalue { ptr, i32 } %194, 1 store ptr %.fca.0.extract43, ptr %23, align 8 %.sroa.254.0..sroa_idx = getelementptr inbounds nuw i8, ptr %23, i64 8 store i32 %.fca.1.extract44, ptr %.sroa.254.0..sroa_idx, align 8 store i64 %75, ptr %24, align 8 - %197 = getelementptr inbounds nuw i8, ptr %24, i64 8 - store i64 %191, ptr %197, align 8 - %198 = getelementptr inbounds nuw i8, ptr %24, i64 16 - %199 = getelementptr inbounds nuw i8, ptr %24, i64 20 - store i8 0, ptr %199, align 4 - br i1 %.not.i, label %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit307, label %200 - -200: ; preds = %189 - %201 = getelementptr inbounds nuw i8, ptr %68, i64 8 - %202 = load ptr, ptr %201, align 8 - %203 = getelementptr inbounds nuw i8, ptr %202, i64 8 - %204 = load i32, ptr %203, align 8 - %205 = and i32 %204, 255 - %206 = add nsw i32 %205, -17 - %spec.select.i.i.i.i303 = icmp ult i32 %206, 2 - br i1 %spec.select.i.i.i.i303, label %207, label %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i304 - -207: ; preds = %200 - %208 = getelementptr inbounds nuw i8, ptr %202, i64 16 - %209 = load ptr, ptr %208, align 8 - %210 = load ptr, ptr %209, align 8 - %.phi.trans.insert.i.i305 = getelementptr inbounds nuw i8, ptr %210, i64 8 + %195 = getelementptr inbounds nuw i8, ptr %24, i64 8 + store i64 %189, ptr %195, align 8 + %196 = getelementptr inbounds nuw i8, ptr %24, i64 16 + %197 = getelementptr inbounds nuw i8, ptr %24, i64 20 + store i8 0, ptr %197, align 4 + br i1 %.not.i, label %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit307, label %198 + +198: ; preds = %187 + %199 = getelementptr inbounds nuw i8, ptr %68, i64 8 + %200 = load ptr, ptr %199, align 8 + %201 = getelementptr inbounds nuw i8, ptr %200, i64 8 + %202 = load i32, ptr %201, align 8 + %203 = and i32 %202, 255 + %204 = add nsw i32 %203, -17 + %spec.select.i.i.i.i303 = icmp ult i32 %204, 2 + br i1 %spec.select.i.i.i.i303, label %205, label %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i304 + +205: ; preds = %198 + %206 = getelementptr inbounds nuw i8, ptr %200, i64 16 + %207 = load ptr, ptr %206, align 8 + %208 = load ptr, ptr %207, align 8 + %.phi.trans.insert.i.i305 = getelementptr inbounds nuw i8, ptr %208, i64 8 %.pre.i.i306 = load i32, ptr %.phi.trans.insert.i.i305, align 8 br label %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i304 -_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i304: ; preds = %207, %200 - %211 = phi i32 [ %.pre.i.i306, %207 ], [ %204, %200 ] - %212 = lshr i32 %211, 8 +_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i304: ; preds = %205, %198 + %209 = phi i32 [ %.pre.i.i306, %205 ], [ %202, %198 ] + %210 = lshr i32 %209, 8 br label %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit307 -_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit307: ; preds = %189, %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i304 - %213 = phi i32 [ %212, %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i304 ], [ 0, %189 ] - store i32 %213, ptr %198, align 8 +_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit307: ; preds = %187, %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i304 + %211 = phi i32 [ %210, %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i304 ], [ 0, %187 ] + store i32 %211, ptr %196, align 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %25, i8 0, i64 32, i1 false) - %214 = call { ptr, i32 } @_ZN4llvm12SelectionDAG8getStoreENS_7SDValueERKNS_5SDLocES1_S1_NS_18MachinePointerInfoENS_5AlignENS_17MachineMemOperand5FlagsERKNS_9AAMDNodesE(ptr noundef nonnull align 8 dereferenceable(904) %3, ptr %.sroa.0213.0.copyload, i32 %.sroa.6.0.copyload, ptr noundef nonnull align 8 dereferenceable(12) %5, ptr %.fca.0.extract32, i32 %.fca.1.extract33, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %23, ptr noundef nonnull byval(%"struct.llvm::MachinePointerInfo") align 8 %24, i8 2, i16 noundef zeroext 0, ptr noundef nonnull align 8 dereferenceable(32) %25) #33 - %.fca.0.extract28 = extractvalue { ptr, i32 } %214, 0 - %.fca.1.extract29 = extractvalue { ptr, i32 } %214, 1 - %215 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 - %216 = add i64 %215, 1 - %217 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE8capacityEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 - %.not.i.i.i308 = icmp ugt i64 %216, %217 - br i1 %.not.i.i.i308, label %218, label %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit310 + %212 = call { ptr, i32 } @_ZN4llvm12SelectionDAG8getStoreENS_7SDValueERKNS_5SDLocES1_S1_NS_18MachinePointerInfoENS_5AlignENS_17MachineMemOperand5FlagsERKNS_9AAMDNodesE(ptr noundef nonnull align 8 dereferenceable(904) %3, ptr %.sroa.0213.0.copyload, i32 %.sroa.6.0.copyload, ptr noundef nonnull align 8 dereferenceable(12) %5, ptr %.fca.0.extract32, i32 %.fca.1.extract33, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %23, ptr noundef nonnull byval(%"struct.llvm::MachinePointerInfo") align 8 %24, i8 2, i16 noundef zeroext 0, ptr noundef nonnull align 8 dereferenceable(32) %25) #33 + %.fca.0.extract28 = extractvalue { ptr, i32 } %212, 0 + %.fca.1.extract29 = extractvalue { ptr, i32 } %212, 1 + %213 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 + %214 = add i64 %213, 1 + %215 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE8capacityEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 + %.not.i.i.i308 = icmp ugt i64 %214, %215 + br i1 %.not.i.i.i308, label %216, label %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit310 -218: ; preds = %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit307 - call void @_ZN4llvm15SmallVectorBaseIjE8grow_podEPvmm(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull %69, i64 noundef %216, i64 noundef 16) #33 +216: ; preds = %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit307 + call void @_ZN4llvm15SmallVectorBaseIjE8grow_podEPvmm(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull %69, i64 noundef %214, i64 noundef 16) #33 br label %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit310 -_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit310: ; preds = %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit307, %218 - %219 = load ptr, ptr %7, align 8 - %220 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 - %221 = getelementptr inbounds %"class.llvm::SDValue", ptr %219, i64 %220 - store ptr %.fca.0.extract28, ptr %221, align 1 - %.sroa.2.0..sroa_idx.i309 = getelementptr inbounds nuw i8, ptr %221, i64 8 +_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit310: ; preds = %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit307, %216 + %217 = load ptr, ptr %7, align 8 + %218 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 + %219 = getelementptr inbounds %"class.llvm::SDValue", ptr %217, i64 %218 + store ptr %.fca.0.extract28, ptr %219, align 1 + %.sroa.2.0..sroa_idx.i309 = getelementptr inbounds nuw i8, ptr %219, i64 8 store i32 %.fca.1.extract29, ptr %.sroa.2.0..sroa_idx.i309, align 1 - %222 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 - %223 = add i64 %222, 1 - call void @_ZN4llvm15SmallVectorBaseIjE8set_sizeEm(ptr noundef nonnull align 8 dereferenceable(16) %7, i64 noundef %223) #33 - %224 = add nuw nsw i32 %190, 4 - %225 = zext nneg i32 %224 to i64 - %226 = call { ptr, i32 } @_ZN4llvm12SelectionDAG11getConstantEmRKNS_5SDLocENS_3EVTEbb(ptr noundef nonnull align 8 dereferenceable(904) %3, i64 noundef %225, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %54, ptr null, i1 noundef zeroext false, i1 noundef zeroext false) #33 - %.fca.0.extract19 = extractvalue { ptr, i32 } %226, 0 - %.fca.1.extract20 = extractvalue { ptr, i32 } %226, 1 + %220 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 + %221 = add i64 %220, 1 + call void @_ZN4llvm15SmallVectorBaseIjE8set_sizeEm(ptr noundef nonnull align 8 dereferenceable(16) %7, i64 noundef %221) #33 + %222 = add nuw nsw i32 %188, 4 + %223 = zext nneg i32 %222 to i64 + %224 = call { ptr, i32 } @_ZN4llvm12SelectionDAG11getConstantEmRKNS_5SDLocENS_3EVTEbb(ptr noundef nonnull align 8 dereferenceable(904) %3, i64 noundef %223, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %54, ptr null, i1 noundef zeroext false, i1 noundef zeroext false) #33 + %.fca.0.extract19 = extractvalue { ptr, i32 } %224, 0 + %.fca.1.extract20 = extractvalue { ptr, i32 } %224, 1 store ptr %.fca.0.extract19, ptr %26, align 8 %.sroa.222.0..sroa_idx = getelementptr inbounds nuw i8, ptr %26, i64 8 store i32 %.fca.1.extract20, ptr %.sroa.222.0..sroa_idx, align 8 - %227 = call { ptr, i32 } @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueES5_(ptr noundef nonnull align 8 dereferenceable(904) %3, i32 noundef 56, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %54, ptr null, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %6, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %26) #33 - %.fca.0.extract15 = extractvalue { ptr, i32 } %227, 0 - %.fca.1.extract16 = extractvalue { ptr, i32 } %227, 1 - %228 = sub nsw i32 0, %149 - %229 = sext i32 %228 to i64 - %230 = call { ptr, i32 } @_ZN4llvm12SelectionDAG17getSignedConstantElRKNS_5SDLocENS_3EVTEbb(ptr noundef nonnull align 8 dereferenceable(904) %3, i64 noundef %229, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 7, ptr null, i1 noundef zeroext false, i1 noundef zeroext false) #33 - %.fca.0.extract5 = extractvalue { ptr, i32 } %230, 0 - %.fca.1.extract6 = extractvalue { ptr, i32 } %230, 1 + %225 = call { ptr, i32 } @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueES5_(ptr noundef nonnull align 8 dereferenceable(904) %3, i32 noundef 56, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 %54, ptr null, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %6, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %26) #33 + %.fca.0.extract15 = extractvalue { ptr, i32 } %225, 0 + %.fca.1.extract16 = extractvalue { ptr, i32 } %225, 1 + %226 = sub nsw i32 0, %147 + %227 = sext i32 %226 to i64 + %228 = call { ptr, i32 } @_ZN4llvm12SelectionDAG17getSignedConstantElRKNS_5SDLocENS_3EVTEbb(ptr noundef nonnull align 8 dereferenceable(904) %3, i64 noundef %227, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 7, ptr null, i1 noundef zeroext false, i1 noundef zeroext false) #33 + %.fca.0.extract5 = extractvalue { ptr, i32 } %228, 0 + %.fca.1.extract6 = extractvalue { ptr, i32 } %228, 1 store ptr %.fca.0.extract15, ptr %27, align 8 %.sroa.226.0..sroa_idx = getelementptr inbounds nuw i8, ptr %27, i64 8 store i32 %.fca.1.extract16, ptr %.sroa.226.0..sroa_idx, align 8 store i64 %75, ptr %28, align 8 - %231 = getelementptr inbounds nuw i8, ptr %28, i64 8 - store i64 %225, ptr %231, align 8 - %232 = getelementptr inbounds nuw i8, ptr %28, i64 16 - %233 = getelementptr inbounds nuw i8, ptr %28, i64 20 - store i8 0, ptr %233, align 4 - br i1 %.not.i, label %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit316, label %234 - -234: ; preds = %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit310 - %235 = getelementptr inbounds nuw i8, ptr %68, i64 8 - %236 = load ptr, ptr %235, align 8 - %237 = getelementptr inbounds nuw i8, ptr %236, i64 8 - %238 = load i32, ptr %237, align 8 - %239 = and i32 %238, 255 - %240 = add nsw i32 %239, -17 - %spec.select.i.i.i.i312 = icmp ult i32 %240, 2 - br i1 %spec.select.i.i.i.i312, label %241, label %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i313 + %229 = getelementptr inbounds nuw i8, ptr %28, i64 8 + store i64 %223, ptr %229, align 8 + %230 = getelementptr inbounds nuw i8, ptr %28, i64 16 + %231 = getelementptr inbounds nuw i8, ptr %28, i64 20 + store i8 0, ptr %231, align 4 + br i1 %.not.i, label %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit316, label %232 + +232: ; preds = %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit310 + %233 = getelementptr inbounds nuw i8, ptr %68, i64 8 + %234 = load ptr, ptr %233, align 8 + %235 = getelementptr inbounds nuw i8, ptr %234, i64 8 + %236 = load i32, ptr %235, align 8 + %237 = and i32 %236, 255 + %238 = add nsw i32 %237, -17 + %spec.select.i.i.i.i312 = icmp ult i32 %238, 2 + br i1 %spec.select.i.i.i.i312, label %239, label %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i313 -241: ; preds = %234 - %242 = getelementptr inbounds nuw i8, ptr %236, i64 16 - %243 = load ptr, ptr %242, align 8 - %244 = load ptr, ptr %243, align 8 - %.phi.trans.insert.i.i314 = getelementptr inbounds nuw i8, ptr %244, i64 8 +239: ; preds = %232 + %240 = getelementptr inbounds nuw i8, ptr %234, i64 16 + %241 = load ptr, ptr %240, align 8 + %242 = load ptr, ptr %241, align 8 + %.phi.trans.insert.i.i314 = getelementptr inbounds nuw i8, ptr %242, i64 8 %.pre.i.i315 = load i32, ptr %.phi.trans.insert.i.i314, align 8 br label %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i313 -_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i313: ; preds = %241, %234 - %245 = phi i32 [ %.pre.i.i315, %241 ], [ %238, %234 ] - %246 = lshr i32 %245, 8 +_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i313: ; preds = %239, %232 + %243 = phi i32 [ %.pre.i.i315, %239 ], [ %236, %232 ] + %244 = lshr i32 %243, 8 br label %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit316 _ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit316: ; preds = %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit310, %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i313 - %247 = phi i32 [ %246, %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i313 ], [ 0, %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit310 ] - store i32 %247, ptr %232, align 8 + %245 = phi i32 [ %244, %_ZNK4llvm4Type22getPointerAddressSpaceEv.exit.i313 ], [ 0, %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit310 ] + store i32 %245, ptr %230, align 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %29, i8 0, i64 32, i1 false) - %248 = call { ptr, i32 } @_ZN4llvm12SelectionDAG8getStoreENS_7SDValueERKNS_5SDLocES1_S1_NS_18MachinePointerInfoENS_5AlignENS_17MachineMemOperand5FlagsERKNS_9AAMDNodesE(ptr noundef nonnull align 8 dereferenceable(904) %3, ptr %.sroa.0213.0.copyload, i32 %.sroa.6.0.copyload, ptr noundef nonnull align 8 dereferenceable(12) %5, ptr %.fca.0.extract5, i32 %.fca.1.extract6, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %27, ptr noundef nonnull byval(%"struct.llvm::MachinePointerInfo") align 8 %28, i8 2, i16 noundef zeroext 0, ptr noundef nonnull align 8 dereferenceable(32) %29) #33 - %.fca.0.extract1 = extractvalue { ptr, i32 } %248, 0 - %.fca.1.extract2 = extractvalue { ptr, i32 } %248, 1 - %249 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 - %250 = add i64 %249, 1 - %251 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE8capacityEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 - %.not.i.i.i317 = icmp ugt i64 %250, %251 - br i1 %.not.i.i.i317, label %252, label %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit319 - -252: ; preds = %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit316 - call void @_ZN4llvm15SmallVectorBaseIjE8grow_podEPvmm(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull %69, i64 noundef %250, i64 noundef 16) #33 + %246 = call { ptr, i32 } @_ZN4llvm12SelectionDAG8getStoreENS_7SDValueERKNS_5SDLocES1_S1_NS_18MachinePointerInfoENS_5AlignENS_17MachineMemOperand5FlagsERKNS_9AAMDNodesE(ptr noundef nonnull align 8 dereferenceable(904) %3, ptr %.sroa.0213.0.copyload, i32 %.sroa.6.0.copyload, ptr noundef nonnull align 8 dereferenceable(12) %5, ptr %.fca.0.extract5, i32 %.fca.1.extract6, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %27, ptr noundef nonnull byval(%"struct.llvm::MachinePointerInfo") align 8 %28, i8 2, i16 noundef zeroext 0, ptr noundef nonnull align 8 dereferenceable(32) %29) #33 + %.fca.0.extract1 = extractvalue { ptr, i32 } %246, 0 + %.fca.1.extract2 = extractvalue { ptr, i32 } %246, 1 + %247 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 + %248 = add i64 %247, 1 + %249 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE8capacityEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 + %.not.i.i.i317 = icmp ugt i64 %248, %249 + br i1 %.not.i.i.i317, label %250, label %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit319 + +250: ; preds = %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit316 + call void @_ZN4llvm15SmallVectorBaseIjE8grow_podEPvmm(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull %69, i64 noundef %248, i64 noundef 16) #33 br label %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit319 -_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit319: ; preds = %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit316, %252 - %253 = load ptr, ptr %7, align 8 - %254 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 - %255 = getelementptr inbounds %"class.llvm::SDValue", ptr %253, i64 %254 - store ptr %.fca.0.extract1, ptr %255, align 1 - %.sroa.2.0..sroa_idx.i318 = getelementptr inbounds nuw i8, ptr %255, i64 8 +_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit319: ; preds = %_ZN4llvm18MachinePointerInfoC2EPKNS_5ValueElh.exit316, %250 + %251 = load ptr, ptr %7, align 8 + %252 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 + %253 = getelementptr inbounds %"class.llvm::SDValue", ptr %251, i64 %252 + store ptr %.fca.0.extract1, ptr %253, align 1 + %.sroa.2.0..sroa_idx.i318 = getelementptr inbounds nuw i8, ptr %253, i64 8 store i32 %.fca.1.extract2, ptr %.sroa.2.0..sroa_idx.i318, align 1 - %256 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 - %257 = add i64 %256, 1 - call void @_ZN4llvm15SmallVectorBaseIjE8set_sizeEm(ptr noundef nonnull align 8 dereferenceable(16) %7, i64 noundef %257) #33 - %258 = load ptr, ptr %7, align 8 - store ptr %258, ptr %30, align 8 - %259 = getelementptr inbounds nuw i8, ptr %30, i64 8 - %260 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 - store i64 %260, ptr %259, align 8 - %261 = call { ptr, i32 } @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_8ArrayRefINS_7SDValueEEE(ptr noundef nonnull align 8 dereferenceable(904) %3, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 1, ptr null, ptr noundef nonnull byval(%"class.llvm::ArrayRef.480") align 8 %30) #33 - %262 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %7) #33 - %263 = load ptr, ptr %7, align 8 - %264 = icmp eq ptr %263, %69 - br i1 %264, label %_ZN4llvm11SmallVectorINS_7SDValueELj4EED2Ev.exit, label %265 - -265: ; preds = %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit319 - call void @free(ptr noundef %263) #33 + %254 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 + %255 = add i64 %254, 1 + call void @_ZN4llvm15SmallVectorBaseIjE8set_sizeEm(ptr noundef nonnull align 8 dereferenceable(16) %7, i64 noundef %255) #33 + %256 = load ptr, ptr %7, align 8 + store ptr %256, ptr %30, align 8 + %257 = getelementptr inbounds nuw i8, ptr %30, i64 8 + %258 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %7) #33 + store i64 %258, ptr %257, align 8 + %259 = call { ptr, i32 } @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_8ArrayRefINS_7SDValueEEE(ptr noundef nonnull align 8 dereferenceable(904) %3, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(12) %5, i16 1, ptr null, ptr noundef nonnull byval(%"class.llvm::ArrayRef.480") align 8 %30) #33 + %260 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %7) #33 + %261 = load ptr, ptr %7, align 8 + %262 = icmp eq ptr %261, %69 + br i1 %262, label %_ZN4llvm11SmallVectorINS_7SDValueELj4EED2Ev.exit, label %263 + +263: ; preds = %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit319 + call void @free(ptr noundef %261) #33 br label %_ZN4llvm11SmallVectorINS_7SDValueELj4EED2Ev.exit -_ZN4llvm11SmallVectorINS_7SDValueELj4EED2Ev.exit: ; preds = %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit319, %265 - %266 = load ptr, ptr %5, align 8 - %.not.i.i.i.i.i = icmp eq ptr %266, null - br i1 %.not.i.i.i.i.i, label %_ZN4llvm5SDLocD2Ev.exit, label %267 +_ZN4llvm11SmallVectorINS_7SDValueELj4EED2Ev.exit: ; preds = %_ZN4llvm23SmallVectorTemplateBaseINS_7SDValueELb1EE9push_backES1_.exit319, %263 + %264 = load ptr, ptr %5, align 8 + %.not.i.i.i.i.i = icmp eq ptr %264, null + br i1 %.not.i.i.i.i.i, label %_ZN4llvm5SDLocD2Ev.exit, label %265 -267: ; preds = %_ZN4llvm11SmallVectorINS_7SDValueELj4EED2Ev.exit - call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(12) %5, ptr noundef nonnull align 4 dereferenceable(8) %266) #33 +265: ; preds = %_ZN4llvm11SmallVectorINS_7SDValueELj4EED2Ev.exit + call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull align 8 dereferenceable(12) %5, ptr noundef nonnull align 4 dereferenceable(8) %264) #33 br label %_ZN4llvm5SDLocD2Ev.exit -_ZN4llvm5SDLocD2Ev.exit: ; preds = %_ZN4llvm11SmallVectorINS_7SDValueELj4EED2Ev.exit, %267 - ret { ptr, i32 } %261 +_ZN4llvm5SDLocD2Ev.exit: ; preds = %_ZN4llvm11SmallVectorINS_7SDValueELj4EED2Ev.exit, %265 + ret { ptr, i32 } %259 } ; Function Attrs: mustprogress nounwind uwtable diff --git a/bench/llvm/optimized/AttributorAttributes.cpp.ll b/bench/llvm/optimized/AttributorAttributes.cpp.ll index ee5fbcd13cc..064bf619807 100644 --- a/bench/llvm/optimized/AttributorAttributes.cpp.ll +++ b/bench/llvm/optimized/AttributorAttributes.cpp.ll @@ -68042,7 +68042,7 @@ _ZN4llvm32GetPointerBaseWithConstantOffsetEPNS_5ValueERlRKNS_10DataLayoutEb.exit 124: ; preds = %122 %125 = call noundef range(i32 0, 33) i32 @llvm.cttz.i32(i32 %116, i1 true) %126 = lshr i32 %117, %125 - %127 = call noundef range(i32 0, 33) i32 @llvm.cttz.i32(i32 %120, i1 true) + %127 = zext nneg i8 %115 to i32 %128 = lshr i32 %120, %127 %129 = call i32 @llvm.umin.i32(i32 %125, i32 %127) %spec.select3334.i.i.i = call i32 @llvm.umin.i32(i32 %126, i32 %128) @@ -68795,7 +68795,7 @@ _ZN4llvm32GetPointerBaseWithConstantOffsetEPKNS_5ValueERlRKNS_10DataLayoutEb.exi 215: ; preds = %213 %216 = call noundef range(i32 0, 33) i32 @llvm.cttz.i32(i32 %210, i1 true) %217 = lshr i32 %211, %216 - %218 = call noundef range(i32 0, 33) i32 @llvm.cttz.i32(i32 %189, i1 true) + %218 = zext nneg i8 %.sroa.080.1105.i.i to i32 %219 = lshr i32 %189, %218 %220 = call i32 @llvm.umin.i32(i32 %216, i32 %218) %spec.select3334.i.i.i = call i32 @llvm.umin.i32(i32 %217, i32 %219) diff --git a/bench/llvm/optimized/RISCVTargetParser.cpp.ll b/bench/llvm/optimized/RISCVTargetParser.cpp.ll index d487a4d1336..aa218812def 100644 --- a/bench/llvm/optimized/RISCVTargetParser.cpp.ll +++ b/bench/llvm/optimized/RISCVTargetParser.cpp.ll @@ -1094,64 +1094,58 @@ _ZN4llvm11raw_ostreamlsEPKc.exit26: ; preds = %77, %75, %71, %69 define dso_local noundef range(i32 0, -7) i32 @_ZN4llvm10RISCVVType15getSEWLMULRatioEjNS_7RISCVII5VLMULE(i32 noundef %0, i8 noundef zeroext %1) local_unnamed_addr #5 { %3 = zext i8 %1 to i32 %switch.i = icmp ugt i8 %1, 3 - %4 = sub nsw i32 8, %3 - %5 = lshr i32 8, %4 - %6 = shl nuw nsw i32 8, %3 - %7 = select i1 %switch.i, i32 %5, i32 %6 - %8 = shl i32 %0, 3 - %9 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %7, i1 true) - %10 = lshr i32 %8, %9 - ret i32 %10 + %4 = shl i32 %0, 3 + %.v = select i1 %switch.i, i32 -5, i32 3 + %5 = add nsw i32 %.v, %3 + %6 = lshr i32 %4, %5 + ret i32 %6 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable define dso_local range(i16 0, 272) i16 @_ZN4llvm10RISCVVType16getSameRatioLMULEjNS_7RISCVII5VLMULEj(i32 noundef %0, i8 noundef zeroext %1, i32 noundef %2) local_unnamed_addr #5 { %4 = zext i8 %1 to i32 %switch.i.i = icmp ugt i8 %1, 3 - %5 = sub nsw i32 8, %4 - %6 = lshr i32 8, %5 - %7 = shl nuw nsw i32 8, %4 - %8 = select i1 %switch.i.i, i32 %6, i32 %7 - %9 = shl i32 %0, 3 - %10 = tail call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %8, i1 true) - %11 = lshr i32 %9, %10 - %12 = shl i32 %2, 3 - %13 = udiv i32 %12, %11 - %14 = icmp ugt i32 %13, 7 - br i1 %14, label %17, label %15 - -15: ; preds = %3 - %.rhs.trunc = trunc nuw i32 %13 to i8 - %16 = udiv i8 8, %.rhs.trunc - %.zext = zext nneg i8 %16 to i32 - br label %19 - -17: ; preds = %3 - %18 = lshr i32 %13, 3 - br label %19 - -19: ; preds = %17, %15 - %20 = phi i32 [ %.zext, %15 ], [ %18, %17 ] - %21 = tail call range(i32 1, 30) i32 @llvm.ctpop.i32(i32 range(i32 1, 536870912) %20) - %22 = icmp samesign ult i32 %21, 2 - %23 = icmp samesign ult i32 %20, 9 - %or.cond.i = select i1 %22, i1 %23, i1 false - %24 = icmp ne i32 %20, 1 - %25 = or i1 %14, %24 - %or.cond = and i1 %25, %or.cond.i - br i1 %or.cond, label %26, label %_ZN4llvm10RISCVVTypeL11isValidLMULEjb.exit.thread - -26: ; preds = %19 - %27 = tail call noundef range(i32 0, 33) i32 @llvm.ctlz.i32(i32 range(i32 1, 536870912) %20, i1 true) - %28 = xor i32 %27, 31 - %29 = sub nuw nsw i32 8, %28 - %30 = select i1 %14, i32 %28, i32 %29 - %31 = trunc nuw nsw i32 %30 to i16 + %5 = shl i32 %0, 3 + %.v.i = select i1 %switch.i.i, i32 -5, i32 3 + %6 = add nsw i32 %.v.i, %4 + %7 = lshr i32 %5, %6 + %8 = shl i32 %2, 3 + %9 = udiv i32 %8, %7 + %10 = icmp ugt i32 %9, 7 + br i1 %10, label %13, label %11 + +11: ; preds = %3 + %.rhs.trunc = trunc nuw i32 %9 to i8 + %12 = udiv i8 8, %.rhs.trunc + %.zext = zext nneg i8 %12 to i32 + br label %15 + +13: ; preds = %3 + %14 = lshr i32 %9, 3 + br label %15 + +15: ; preds = %13, %11 + %16 = phi i32 [ %.zext, %11 ], [ %14, %13 ] + %17 = tail call range(i32 1, 30) i32 @llvm.ctpop.i32(i32 range(i32 1, 536870912) %16) + %18 = icmp samesign ult i32 %17, 2 + %19 = icmp samesign ult i32 %16, 9 + %or.cond.i = select i1 %18, i1 %19, i1 false + %20 = icmp ne i32 %16, 1 + %21 = or i1 %10, %20 + %or.cond = and i1 %21, %or.cond.i + br i1 %or.cond, label %22, label %_ZN4llvm10RISCVVTypeL11isValidLMULEjb.exit.thread + +22: ; preds = %15 + %23 = tail call noundef range(i32 0, 33) i32 @llvm.ctlz.i32(i32 range(i32 1, 536870912) %16, i1 true) + %24 = xor i32 %23, 31 + %25 = sub nuw nsw i32 8, %24 + %26 = select i1 %10, i32 %24, i32 %25 + %27 = trunc nuw nsw i32 %26 to i16 br label %_ZN4llvm10RISCVVTypeL11isValidLMULEjb.exit.thread -_ZN4llvm10RISCVVTypeL11isValidLMULEjb.exit.thread: ; preds = %19, %26 - %.sroa.0.0 = phi i16 [ %31, %26 ], [ 0, %19 ] - %.sroa.2.0 = phi i16 [ 256, %26 ], [ 0, %19 ] +_ZN4llvm10RISCVVTypeL11isValidLMULEjb.exit.thread: ; preds = %15, %22 + %.sroa.0.0 = phi i16 [ %27, %22 ], [ 0, %15 ] + %.sroa.2.0 = phi i16 [ 256, %22 ], [ 0, %15 ] %.sroa.0.0.insert.insert = or i16 %.sroa.2.0, %.sroa.0.0 ret i16 %.sroa.0.0.insert.insert } @@ -1963,9 +1957,6 @@ declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #15 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #15 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.cttz.i32(i32, i1 immarg) #13 - attributes #0 = { mustprogress nofree nounwind willreturn memory(read, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #2 = { mustprogress nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/llvm/optimized/Value.cpp.ll b/bench/llvm/optimized/Value.cpp.ll index f045934e624..55e70c993d8 100644 --- a/bench/llvm/optimized/Value.cpp.ll +++ b/bench/llvm/optimized/Value.cpp.ll @@ -7444,12 +7444,12 @@ _ZN4llvm16dyn_cast_or_nullINS_11ConstantIntENS_8ConstantEEEDaPT0_.exit: ; preds _ZNK4llvm5APInt11countr_zeroEv.exit: ; preds = %149, %153 %.0.i90 = phi i32 [ %..i91, %149 ], [ %154, %153 ] - %155 = tail call i32 @llvm.umin.i32(i32 %.0.i90, i32 32) - %156 = trunc nuw nsw i32 %155 to i8 + %narrow = tail call i32 @llvm.umin.i32(i32 %.0.i90, i32 32) + %155 = trunc nuw nsw i32 %narrow to i8 br label %_ZNK4llvm11Instruction11getMetadataEj.exit.thread _ZNK4llvm11Instruction11getMetadataEj.exit.thread: ; preds = %78, %_ZNK4llvm8CallBase11getRetAlignEv.exit, %_ZNK4llvm8CallBase17getCalledFunctionEv.exit, %95, %97, %_ZN4llvm16dyn_cast_or_nullINS_8FunctionENS_5ValueEEEDaPT0_.exit.i, %52, %55, %_ZNK4llvm4Type7isSizedEPNS_15SmallPtrSetImplIPS0_EE.exit68, %68, %19, %_ZNK4llvm4Type7isSizedEPNS_15SmallPtrSetImplIPS0_EE.exit, %26, %39, %136, %142, %109, %_ZNK4llvm11Instruction11getMetadataEj.exit, %134, %6, %_ZNK4llvm5APInt11countr_zeroEv.exit, %_ZNK4llvm6MDNode10getOperandEj.exit, %71, %_ZNK4llvm4Type7isSizedEPNS_15SmallPtrSetImplIPS0_EE.exit68.thread, %50, %_ZNK4llvm11GlobalValue27isStrongDefinitionForLinkerEv.exit, %11 - %.sroa.0113.0 = phi i8 [ %156, %_ZNK4llvm5APInt11countr_zeroEv.exit ], [ %133, %_ZNK4llvm6MDNode10getOperandEj.exit ], [ %75, %71 ], [ %70, %_ZNK4llvm4Type7isSizedEPNS_15SmallPtrSetImplIPS0_EE.exit68.thread ], [ %.sroa.speculated, %11 ], [ %49, %_ZNK4llvm11GlobalValue27isStrongDefinitionForLinkerEv.exit ], [ %51, %50 ], [ %.sroa.0.0.i.i, %6 ], [ 0, %134 ], [ 0, %_ZNK4llvm11Instruction11getMetadataEj.exit ], [ 0, %109 ], [ 0, %142 ], [ 0, %136 ], [ 0, %39 ], [ 0, %26 ], [ 0, %_ZNK4llvm4Type7isSizedEPNS_15SmallPtrSetImplIPS0_EE.exit ], [ %25, %19 ], [ 0, %68 ], [ 0, %_ZNK4llvm4Type7isSizedEPNS_15SmallPtrSetImplIPS0_EE.exit68 ], [ 0, %55 ], [ %.sroa.096.0.extract.trunc, %52 ], [ %.sroa.0.0.extract.trunc92, %_ZNK4llvm8CallBase11getRetAlignEv.exit ], [ %108, %_ZNK4llvm8CallBase17getCalledFunctionEv.exit ], [ 0, %95 ], [ 0, %97 ], [ 0, %_ZN4llvm16dyn_cast_or_nullINS_8FunctionENS_5ValueEEEDaPT0_.exit.i ], [ 0, %78 ] + %.sroa.0113.0 = phi i8 [ %155, %_ZNK4llvm5APInt11countr_zeroEv.exit ], [ %133, %_ZNK4llvm6MDNode10getOperandEj.exit ], [ %75, %71 ], [ %70, %_ZNK4llvm4Type7isSizedEPNS_15SmallPtrSetImplIPS0_EE.exit68.thread ], [ %.sroa.speculated, %11 ], [ %49, %_ZNK4llvm11GlobalValue27isStrongDefinitionForLinkerEv.exit ], [ %51, %50 ], [ %.sroa.0.0.i.i, %6 ], [ 0, %134 ], [ 0, %_ZNK4llvm11Instruction11getMetadataEj.exit ], [ 0, %109 ], [ 0, %142 ], [ 0, %136 ], [ 0, %39 ], [ 0, %26 ], [ 0, %_ZNK4llvm4Type7isSizedEPNS_15SmallPtrSetImplIPS0_EE.exit ], [ %25, %19 ], [ 0, %68 ], [ 0, %_ZNK4llvm4Type7isSizedEPNS_15SmallPtrSetImplIPS0_EE.exit68 ], [ 0, %55 ], [ %.sroa.096.0.extract.trunc, %52 ], [ %.sroa.0.0.extract.trunc92, %_ZNK4llvm8CallBase11getRetAlignEv.exit ], [ %108, %_ZNK4llvm8CallBase17getCalledFunctionEv.exit ], [ 0, %95 ], [ 0, %97 ], [ 0, %_ZN4llvm16dyn_cast_or_nullINS_8FunctionENS_5ValueEEEDaPT0_.exit.i ], [ 0, %78 ] ret i8 %.sroa.0113.0 } diff --git a/bench/llvm/optimized/WasmObjectWriter.cpp.ll b/bench/llvm/optimized/WasmObjectWriter.cpp.ll index 4ff5224a79b..13cdce48d2e 100644 --- a/bench/llvm/optimized/WasmObjectWriter.cpp.ll +++ b/bench/llvm/optimized/WasmObjectWriter.cpp.ll @@ -5129,8 +5129,8 @@ _ZN12_GLOBAL__N_116WasmObjectWriter14prepareImportsERN4llvm15SmallVectorImplINS1 %681 = load ptr, ptr %680, align 8 %682 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %680) #21 %683 = getelementptr inbounds ptr, ptr %681, i64 %682 - %.not13361570 = icmp eq i64 %682, 0 - br i1 %.not13361570, label %._crit_edge, label %.lr.ph + %.not13361571 = icmp eq i64 %682, 0 + br i1 %.not13361571, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %679 %684 = getelementptr inbounds nuw i8, ptr %0, i64 216 @@ -5145,9 +5145,9 @@ _ZN12_GLOBAL__N_116WasmObjectWriter14prepareImportsERN4llvm15SmallVectorImplINS1 br label %693 693: ; preds = %.lr.ph, %_ZNSt6vectorIN12_GLOBAL__N_115WasmComdatEntryESaIS1_EE12emplace_backIJS1_EEERS1_DpOT_.exit - %.01572 = phi i64 [ 0, %.lr.ph ], [ %.1, %_ZNSt6vectorIN12_GLOBAL__N_115WasmComdatEntryESaIS1_EE12emplace_backIJS1_EEERS1_DpOT_.exit ] - %.sroa.01268.01571 = phi ptr [ %681, %.lr.ph ], [ %1027, %_ZNSt6vectorIN12_GLOBAL__N_115WasmComdatEntryESaIS1_EE12emplace_backIJS1_EEERS1_DpOT_.exit ] - %694 = load ptr, ptr %.sroa.01268.01571, align 8 + %.01573 = phi i64 [ 0, %.lr.ph ], [ %.1, %_ZNSt6vectorIN12_GLOBAL__N_115WasmComdatEntryESaIS1_EE12emplace_backIJS1_EEERS1_DpOT_.exit ] + %.sroa.01268.01572 = phi ptr [ %681, %.lr.ph ], [ %1027, %_ZNSt6vectorIN12_GLOBAL__N_115WasmComdatEntryESaIS1_EE12emplace_backIJS1_EEERS1_DpOT_.exit ] + %694 = load ptr, ptr %.sroa.01268.01572, align 8 %695 = getelementptr inbounds nuw i8, ptr %694, i64 128 %.sroa.0.0.copyload.i = load ptr, ptr %695, align 8 %.sroa.2.0..sroa_idx.i343 = getelementptr inbounds nuw i8, ptr %694, i64 136 @@ -5192,8 +5192,8 @@ _ZNK4llvm9StringRef11starts_withES0_.exit.thread1273: ; preds = %696, %_ZN12_GLO %705 = getelementptr inbounds nuw i8, ptr %694, i64 48 %706 = load i8, ptr %705, align 8 %707 = and i8 %706, 16 - %.not1373 = icmp eq i8 %707, 0 - br i1 %.not1373, label %708, label %_ZNSt6vectorIN12_GLOBAL__N_115WasmComdatEntryESaIS1_EE12emplace_backIJS1_EEERS1_DpOT_.exit + %.not1374 = icmp eq i8 %707, 0 + br i1 %.not1374, label %708, label %_ZNSt6vectorIN12_GLOBAL__N_115WasmComdatEntryESaIS1_EE12emplace_backIJS1_EEERS1_DpOT_.exit 708: ; preds = %_ZNK4llvm9StringRef11starts_withES0_.exit.thread1273 %709 = getelementptr inbounds nuw i8, ptr %694, i64 173 @@ -5208,7 +5208,7 @@ _ZNK4llvm9StringRef11starts_withES0_.exit.thread1273: ; preds = %696, %_ZN12_GLO %.sroa.0.0.copyload.i349 = load i8, ptr %715, align 8 %716 = zext nneg i8 %.sroa.0.0.copyload.i349 to i64 %717 = shl nuw i64 1, %716 - %718 = add i64 %.01572, -1 + %718 = add i64 %.01573, -1 %719 = add i64 %718, %717 %720 = sub i64 0, %717 %721 = and i64 %719, %720 @@ -5887,8 +5887,8 @@ _ZNSt6vectorIN12_GLOBAL__N_117WasmCustomSectionESaIS1_EE17_M_realloc_insertIJRN4 br label %_ZNSt6vectorIN12_GLOBAL__N_115WasmComdatEntryESaIS1_EE12emplace_backIJS1_EEERS1_DpOT_.exit _ZNSt6vectorIN12_GLOBAL__N_115WasmComdatEntryESaIS1_EE12emplace_backIJS1_EEERS1_DpOT_.exit: ; preds = %700, %_ZNSt6vectorIN12_GLOBAL__N_117WasmCustomSectionESaIS1_EE17_M_realloc_insertIJRN4llvm9StringRefEPNS5_13MCSectionWasmEEEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_.exit.i, %998, %_ZN4llvmeqENS_9StringRefES0_.exit375.thread, %_ZNKSt14default_deleteIN12_GLOBAL__N_117WasmCustomSectionEEclEPS1_.exit.i.i.i.i378, %_ZN4llvmeqENS_9StringRefES0_.exit.thread, %_ZNKSt14default_deleteIN12_GLOBAL__N_117WasmCustomSectionEEclEPS1_.exit.i.i.i.i, %_ZNSt6vectorIN12_GLOBAL__N_115WasmComdatEntryESaIS1_EE17_M_realloc_insertIJS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_.exit.i, %874, %_ZL7addDataRN4llvm15SmallVectorImplIcEERNS_13MCSectionWasmE.exit, %_ZNK4llvm9StringRef11starts_withES0_.exit.thread1273, %_ZNK4llvm9StringRef11starts_withES0_.exit, %_ZN12_GLOBAL__N_112isDwoSectionERKN4llvm9MCSectionE.exit347, %_ZN12_GLOBAL__N_112isDwoSectionERKN4llvm9MCSectionE.exit - %.1 = phi i64 [ %.01572, %_ZN12_GLOBAL__N_112isDwoSectionERKN4llvm9MCSectionE.exit ], [ %.01572, %_ZNK4llvm9StringRef11starts_withES0_.exit ], [ %.01572, %_ZNK4llvm9StringRef11starts_withES0_.exit.thread1273 ], [ %856, %_ZL7addDataRN4llvm15SmallVectorImplIcEERNS_13MCSectionWasmE.exit ], [ %.01572, %_ZN12_GLOBAL__N_112isDwoSectionERKN4llvm9MCSectionE.exit347 ], [ %856, %874 ], [ %856, %_ZNSt6vectorIN12_GLOBAL__N_115WasmComdatEntryESaIS1_EE17_M_realloc_insertIJS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_.exit.i ], [ %.01572, %_ZNKSt14default_deleteIN12_GLOBAL__N_117WasmCustomSectionEEclEPS1_.exit.i.i.i.i ], [ %.01572, %_ZN4llvmeqENS_9StringRefES0_.exit.thread ], [ %.01572, %_ZNKSt14default_deleteIN12_GLOBAL__N_117WasmCustomSectionEEclEPS1_.exit.i.i.i.i378 ], [ %.01572, %_ZN4llvmeqENS_9StringRefES0_.exit375.thread ], [ %.01572, %998 ], [ %.01572, %_ZNSt6vectorIN12_GLOBAL__N_117WasmCustomSectionESaIS1_EE17_M_realloc_insertIJRN4llvm9StringRefEPNS5_13MCSectionWasmEEEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_.exit.i ], [ %.01572, %700 ] - %1027 = getelementptr inbounds nuw i8, ptr %.sroa.01268.01571, i64 8 + %.1 = phi i64 [ %.01573, %_ZN12_GLOBAL__N_112isDwoSectionERKN4llvm9MCSectionE.exit ], [ %.01573, %_ZNK4llvm9StringRef11starts_withES0_.exit ], [ %.01573, %_ZNK4llvm9StringRef11starts_withES0_.exit.thread1273 ], [ %856, %_ZL7addDataRN4llvm15SmallVectorImplIcEERNS_13MCSectionWasmE.exit ], [ %.01573, %_ZN12_GLOBAL__N_112isDwoSectionERKN4llvm9MCSectionE.exit347 ], [ %856, %874 ], [ %856, %_ZNSt6vectorIN12_GLOBAL__N_115WasmComdatEntryESaIS1_EE17_M_realloc_insertIJS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_.exit.i ], [ %.01573, %_ZNKSt14default_deleteIN12_GLOBAL__N_117WasmCustomSectionEEclEPS1_.exit.i.i.i.i ], [ %.01573, %_ZN4llvmeqENS_9StringRefES0_.exit.thread ], [ %.01573, %_ZNKSt14default_deleteIN12_GLOBAL__N_117WasmCustomSectionEEclEPS1_.exit.i.i.i.i378 ], [ %.01573, %_ZN4llvmeqENS_9StringRefES0_.exit375.thread ], [ %.01573, %998 ], [ %.01573, %_ZNSt6vectorIN12_GLOBAL__N_117WasmCustomSectionESaIS1_EE17_M_realloc_insertIJRN4llvm9StringRefEPNS5_13MCSectionWasmEEEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_.exit.i ], [ %.01573, %700 ] + %1027 = getelementptr inbounds nuw i8, ptr %.sroa.01268.01572, i64 8 %.not1336 = icmp eq ptr %1027, %683 br i1 %.not1336, label %._crit_edge.loopexit, label %693 @@ -5906,10 +5906,10 @@ _ZNSt6vectorIN12_GLOBAL__N_115WasmComdatEntryESaIS1_EE12emplace_backIJS1_EEERS1_ %1032 = load ptr, ptr %1031, align 8 %1033 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %1031) #21 %1034 = getelementptr inbounds ptr, ptr %1032, i64 %1033 - %.not13371573 = icmp eq i64 %1033, 0 - br i1 %.not13371573, label %._crit_edge1577, label %.lr.ph1576 + %.not13371574 = icmp eq i64 %1033, 0 + br i1 %.not13371574, label %._crit_edge1578, label %.lr.ph1577 -.lr.ph1576: ; preds = %1030 +.lr.ph1577: ; preds = %1030 %1035 = getelementptr inbounds nuw i8, ptr %0, i64 264 %1036 = getelementptr inbounds nuw i8, ptr %0, i64 280 %1037 = getelementptr inbounds nuw i8, ptr %0, i64 1020 @@ -5932,9 +5932,9 @@ _ZNSt6vectorIN12_GLOBAL__N_115WasmComdatEntryESaIS1_EE12emplace_backIJS1_EEERS1_ %1053 = getelementptr inbounds nuw i8, ptr %77, i64 20 br label %1054 -1054: ; preds = %.lr.ph1576, %_ZNK4llvm8MCSymbol7getNameEv.exit410.thread - %.sroa.01238.01574 = phi ptr [ %1032, %.lr.ph1576 ], [ %1536, %_ZNK4llvm8MCSymbol7getNameEv.exit410.thread ] - %1055 = load ptr, ptr %.sroa.01238.01574, align 8 +1054: ; preds = %.lr.ph1577, %_ZNK4llvm8MCSymbol7getNameEv.exit410.thread + %.sroa.01238.01575 = phi ptr [ %1032, %.lr.ph1577 ], [ %1536, %_ZNK4llvm8MCSymbol7getNameEv.exit410.thread ] + %1055 = load ptr, ptr %.sroa.01238.01575, align 8 %1056 = getelementptr inbounds nuw i8, ptr %1055, i64 8 %1057 = load i64, ptr %1056, align 8 %1058 = and i64 %1057, 2 @@ -6345,13 +6345,13 @@ _ZNSt6vectorIN12_GLOBAL__N_115WasmComdatEntryESaIS1_EE12emplace_backIJS1_EEERS1_ %1244 = getelementptr inbounds nuw i8, ptr %1055, i64 44 %1245 = load i8, ptr %1244, align 4 %1246 = trunc i8 %1245 to i1 - %.pre1761 = load ptr, ptr %1055, align 8 + %.pre1762 = load ptr, ptr %1055, align 8 br i1 %1246, label %_ZL10isInSymtabRKN4llvm12MCSymbolWasmE.exit.thread1292, label %1247 1247: ; preds = %1243 %1248 = load i8, ptr %1068, align 2 %1249 = trunc i8 %1248 to i1 - %.not.i.i.i.i474 = icmp eq ptr %.pre1761, null + %.not.i.i.i.i474 = icmp eq ptr %.pre1762, null %or.cond.i = select i1 %1249, i1 %.not.i.i.i.i474, i1 false br i1 %or.cond.i, label %1250, label %_ZNK4llvm8MCSymbol9isDefinedEv.exit.thread.i475 @@ -6375,7 +6375,7 @@ _ZNK4llvm8MCSymbol9isDefinedEv.exit._ZNK4llvm8MCSymbol9isDefinedEv.exit.thread_c br label %_ZNK4llvm8MCSymbol9isDefinedEv.exit.thread.i475 _ZNK4llvm8MCSymbol9isDefinedEv.exit.thread.i475: ; preds = %_ZNK4llvm8MCSymbol9isDefinedEv.exit._ZNK4llvm8MCSymbol9isDefinedEv.exit.thread_crit_edge.i, %1247 - %1256 = phi ptr [ %1255, %_ZNK4llvm8MCSymbol9isDefinedEv.exit._ZNK4llvm8MCSymbol9isDefinedEv.exit.thread_crit_edge.i ], [ %.pre1761, %1247 ] + %1256 = phi ptr [ %1255, %_ZNK4llvm8MCSymbol9isDefinedEv.exit._ZNK4llvm8MCSymbol9isDefinedEv.exit.thread_crit_edge.i ], [ %.pre1762, %1247 ] %1257 = phi i64 [ %.pre.i479, %_ZNK4llvm8MCSymbol9isDefinedEv.exit._ZNK4llvm8MCSymbol9isDefinedEv.exit.thread_crit_edge.i ], [ %1241, %1247 ] %1258 = and i64 %1257, 2 %.not12.i = icmp eq i64 %1258, 0 @@ -6397,7 +6397,7 @@ _ZL10isInSymtabRKN4llvm12MCSymbolWasmE.exit: ; preds = %1259 _ZL10isInSymtabRKN4llvm12MCSymbolWasmE.exit.thread1292: ; preds = %._ZL10isInSymtabRKN4llvm12MCSymbolWasmE.exit.thread1292_crit_edge, %1243, %_ZL10isInSymtabRKN4llvm12MCSymbolWasmE.exit %1268 = phi i64 [ %1241, %._ZL10isInSymtabRKN4llvm12MCSymbolWasmE.exit.thread1292_crit_edge ], [ %1241, %1243 ], [ %1257, %_ZL10isInSymtabRKN4llvm12MCSymbolWasmE.exit ] - %1269 = phi ptr [ %.pre, %._ZL10isInSymtabRKN4llvm12MCSymbolWasmE.exit.thread1292_crit_edge ], [ %.pre1761, %1243 ], [ %1256, %_ZL10isInSymtabRKN4llvm12MCSymbolWasmE.exit ] + %1269 = phi ptr [ %.pre, %._ZL10isInSymtabRKN4llvm12MCSymbolWasmE.exit.thread1292_crit_edge ], [ %.pre1762, %1243 ], [ %1256, %_ZL10isInSymtabRKN4llvm12MCSymbolWasmE.exit ] %.not.i.i.i480 = icmp eq ptr %1269, null br i1 %.not.i.i.i480, label %1270, label %_ZNK4llvm8MCSymbol9isDefinedEv.exit483.thread @@ -6957,18 +6957,18 @@ _ZN4llvm23SmallVectorTemplateBaseIjLb1EE9push_backEj.exit: ; preds = %_ZN4llvm12 br label %_ZNK4llvm8MCSymbol7getNameEv.exit410.thread _ZNK4llvm8MCSymbol7getNameEv.exit410.thread: ; preds = %_ZNK4llvm8MCSymbol9isDefinedEv.exit415, %1088, %1348, %1451, %1405, %1351, %1270, %1250, %1259, %_ZNK4llvm8MCSymbol9isDefinedEv.exit.thread.i475, %_ZNK4llvm8MCSymbol9isDefinedEv.exit.i478, %1073, %1059, %1236, %_ZNSt6vectorIN12_GLOBAL__N_115WasmComdatEntryESaIS1_EE12emplace_backIJS1_EEERS1_DpOT_.exit464, %_ZNK4llvm8MCSymbol9isDefinedEv.exit502, %_ZN4llvm12DenseMapBaseINS_8DenseMapIPKNS_12MCSymbolWasmEjNS_12DenseMapInfoIS4_vEENS_6detail12DenseMapPairIS4_jEEEES4_jS6_S9_EixEOS4_.exit515, %_ZN4llvm23SmallVectorTemplateBaseIjLb1EE9push_backEj.exit, %_ZNK4llvm8MCSymbol9isDefinedEv.exit536, %_ZN4llvm12DenseMapBaseINS_8DenseMapIPKNS_12MCSymbolWasmEjNS_12DenseMapInfoIS4_vEENS_6detail12DenseMapPairIS4_jEEEES4_jS6_S9_EixEOS4_.exit532, %_ZNK4llvm8MCSymbol9isDefinedEv.exit519, %_ZN4llvm12DenseMapBaseINS_8DenseMapIPKNS_12MCSymbolWasmENS_4wasm17WasmDataReferenceENS_12DenseMapInfoIS4_vEENS_6detail12DenseMapPairIS4_S6_EEEES4_S6_S8_SB_EixEOS4_.exit, %_ZNK4llvm8MCSymbol9isDefinedEv.exit483, %_ZL10isInSymtabRKN4llvm12MCSymbolWasmE.exit, %_ZNK4llvm8MCSymbol9isDefinedEv.exit, %.critedge, %_ZNK4llvm8MCSymbol7getNameEv.exit410 - %1536 = getelementptr inbounds nuw i8, ptr %.sroa.01238.01574, i64 8 + %1536 = getelementptr inbounds nuw i8, ptr %.sroa.01238.01575, i64 8 %.not1337 = icmp eq ptr %1536, %1034 - br i1 %.not1337, label %._crit_edge1577, label %1054 + br i1 %.not1337, label %._crit_edge1578, label %1054 -._crit_edge1577: ; preds = %_ZNK4llvm8MCSymbol7getNameEv.exit410.thread, %1030 +._crit_edge1578: ; preds = %_ZNK4llvm8MCSymbol7getNameEv.exit410.thread, %1030 %1537 = load ptr, ptr %1031, align 8 %1538 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %1031) #21 %1539 = getelementptr inbounds ptr, ptr %1537, i64 %1538 - %.not13381578 = icmp eq i64 %1538, 0 - br i1 %.not13381578, label %.loopexit, label %.lr.ph1581 + %.not13381579 = icmp eq i64 %1538, 0 + br i1 %.not13381579, label %.loopexit, label %.lr.ph1582 -.lr.ph1581: ; preds = %._crit_edge1577 +.lr.ph1582: ; preds = %._crit_edge1578 %1540 = getelementptr inbounds nuw i8, ptr %0, i64 672 %1541 = getelementptr inbounds nuw i8, ptr %0, i64 264 %1542 = getelementptr inbounds nuw i8, ptr %0, i64 280 @@ -6976,9 +6976,9 @@ _ZNK4llvm8MCSymbol7getNameEv.exit410.thread: ; preds = %_ZNK4llvm8MCSymbol9 %1544 = getelementptr inbounds nuw i8, ptr %0, i64 232 br label %1545 -1545: ; preds = %.lr.ph1581, %1696 - %.sroa.01222.01579 = phi ptr [ %1537, %.lr.ph1581 ], [ %1697, %1696 ] - %1546 = load ptr, ptr %.sroa.01222.01579, align 8 +1545: ; preds = %.lr.ph1582, %1696 + %.sroa.01222.01580 = phi ptr [ %1537, %.lr.ph1582 ], [ %1697, %1696 ] + %1546 = load ptr, ptr %.sroa.01222.01580, align 8 %1547 = getelementptr inbounds nuw i8, ptr %1546, i64 8 %1548 = load i64, ptr %1547, align 8 %1549 = and i64 %1548, 28672 @@ -7260,19 +7260,19 @@ _ZN4llvm12DenseMapBaseINS_8DenseMapIPKNS_12MCSymbolWasmENS_4wasm17WasmDataRefere unreachable 1696: ; preds = %_ZN4llvm12DenseMapBaseINS_8DenseMapIPKNS_12MCSymbolWasmEjNS_12DenseMapInfoIS4_vEENS_6detail12DenseMapPairIS4_jEEEES4_jS6_S9_EixEOS4_.exit592, %_ZN4llvm12DenseMapBaseINS_8DenseMapIPKNS_12MCSymbolWasmENS_4wasm17WasmDataReferenceENS_12DenseMapInfoIS4_vEENS_6detail12DenseMapPairIS4_S6_EEEES4_S6_S8_SB_EixEOS4_.exit610, %1545 - %1697 = getelementptr inbounds nuw i8, ptr %.sroa.01222.01579, i64 8 + %1697 = getelementptr inbounds nuw i8, ptr %.sroa.01222.01580, i64 8 %.not1338 = icmp eq ptr %1697, %1539 br i1 %.not1338, label %.loopexit, label %1545 -.loopexit: ; preds = %1696, %._crit_edge1577, %._crit_edge +.loopexit: ; preds = %1696, %._crit_edge1578, %._crit_edge %1698 = getelementptr inbounds nuw i8, ptr %1, i64 56 %1699 = load ptr, ptr %1698, align 8 %1700 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %1698) #21 %1701 = getelementptr inbounds ptr, ptr %1699, i64 %1700 - %.not13501582 = icmp eq i64 %1700, 0 - br i1 %.not13501582, label %._crit_edge1586, label %.lr.ph1585 + %.not13501583 = icmp eq i64 %1700, 0 + br i1 %.not13501583, label %._crit_edge1587, label %.lr.ph1586 -.lr.ph1585: ; preds = %.loopexit +.lr.ph1586: ; preds = %.loopexit %1702 = getelementptr inbounds nuw i8, ptr %0, i64 112 %1703 = getelementptr inbounds nuw i8, ptr %93, i64 40 %1704 = getelementptr inbounds nuw i8, ptr %93, i64 64 @@ -7287,9 +7287,9 @@ _ZN4llvm12DenseMapBaseINS_8DenseMapIPKNS_12MCSymbolWasmENS_4wasm17WasmDataRefere %1712 = getelementptr inbounds nuw i8, ptr %0, i64 232 br label %1713 -1713: ; preds = %.lr.ph1585, %1875 - %.sroa.01208.01583 = phi ptr [ %1699, %.lr.ph1585 ], [ %1876, %1875 ] - %1714 = load ptr, ptr %.sroa.01208.01583, align 8 +1713: ; preds = %.lr.ph1586, %1875 + %.sroa.01208.01584 = phi ptr [ %1699, %.lr.ph1586 ], [ %1876, %1875 ] + %1714 = load ptr, ptr %.sroa.01208.01584, align 8 %1715 = getelementptr inbounds nuw i8, ptr %1714, i64 8 %1716 = load i64, ptr %1715, align 8 %1717 = and i64 %1716, 2048 @@ -7369,10 +7369,10 @@ _ZL10isInSymtabRKN4llvm12MCSymbolWasmE.exit627.thread1308: ; preds = %1713, %171 %1754 = or disjoint i32 %spec.select, 4 %.1257 = select i1 %1753, i32 %1754, i32 %spec.select %1755 = and i64 %1747, 32 - %.not1364 = icmp eq i64 %1755, 0 + %.not1365 = icmp eq i64 %1755, 0 %1756 = load ptr, ptr %1714, align 8 %.not.i.i.i628 = icmp eq ptr %1756, null - br i1 %.not1364, label %1757, label %_ZNK4llvm8MCSymbol9isDefinedEv.exit631.thread1311 + br i1 %.not1365, label %1757, label %_ZNK4llvm8MCSymbol9isDefinedEv.exit631.thread1311 1757: ; preds = %_ZL10isInSymtabRKN4llvm12MCSymbolWasmE.exit627.thread1308 br i1 %.not.i.i.i628, label %1759, label %_ZNK4llvm8MCSymbol9isDefinedEv.exit631.thread @@ -7393,16 +7393,16 @@ _ZNK4llvm8MCSymbol9isDefinedEv.exit631: ; preds = %1759 %1763 = load ptr, ptr %1762, align 8 %1764 = call noundef ptr @_ZNK4llvm6MCExpr22findAssociatedFragmentEv(ptr noundef nonnull align 8 dereferenceable(16) %1763) #21 store ptr %1764, ptr %1714, align 8 - %.not1365 = icmp eq ptr %1764, null + %.not1366 = icmp eq ptr %1764, null %1765 = or disjoint i32 %.1257, 2 - %.pre1764 = load i64, ptr %1715, align 8 - br i1 %.not1365, label %.thread1316, label %_ZNK4llvm8MCSymbol11isUndefinedEb.exit.thread + %.pre1765 = load i64, ptr %1715, align 8 + br i1 %.not1366, label %.thread1316, label %_ZNK4llvm8MCSymbol11isUndefinedEb.exit.thread _ZNK4llvm8MCSymbol9isDefinedEv.exit631.thread1311: ; preds = %_ZL10isInSymtabRKN4llvm12MCSymbolWasmE.exit627.thread1308 br i1 %.not.i.i.i628, label %.thread1316, label %_ZNK4llvm8MCSymbol11isUndefinedEb.exit.thread .thread1316: ; preds = %_ZNK4llvm8MCSymbol9isDefinedEv.exit631, %1759, %_ZNK4llvm8MCSymbol9isDefinedEv.exit631.thread1311 - %1766 = phi i64 [ %1747, %1759 ], [ %1747, %_ZNK4llvm8MCSymbol9isDefinedEv.exit631.thread1311 ], [ %.pre1764, %_ZNK4llvm8MCSymbol9isDefinedEv.exit631 ] + %1766 = phi i64 [ %1747, %1759 ], [ %1747, %_ZNK4llvm8MCSymbol9isDefinedEv.exit631.thread1311 ], [ %.pre1765, %_ZNK4llvm8MCSymbol9isDefinedEv.exit631 ] %1767 = and i64 %1766, 28800 %or.cond.not.i.i634 = icmp eq i64 %1767, 8192 br i1 %or.cond.not.i.i634, label %_ZNK4llvm8MCSymbol11isUndefinedEb.exit, label %_ZNK4llvm8MCSymbol11isUndefinedEb.exit.thread1322 @@ -7421,23 +7421,23 @@ _ZNK4llvm8MCSymbol11isUndefinedEb.exit: ; preds = %.thread1316 %1773 = icmp eq ptr %1772, null %1774 = or disjoint i32 %.1257, 16 %spec.select1335 = select i1 %1773, i32 %1774, i32 %.1257 - %.pre1763 = load i64, ptr %1715, align 8 + %.pre1764 = load i64, ptr %1715, align 8 br label %_ZNK4llvm8MCSymbol11isUndefinedEb.exit.thread _ZNK4llvm8MCSymbol11isUndefinedEb.exit.thread: ; preds = %_ZNK4llvm8MCSymbol11isUndefinedEb.exit, %_ZNK4llvm8MCSymbol9isDefinedEv.exit631, %_ZNK4llvm8MCSymbol9isDefinedEv.exit631.thread, %_ZNK4llvm8MCSymbol9isDefinedEv.exit631.thread1311, %_ZNK4llvm8MCSymbol11isUndefinedEb.exit.thread1322 - %1775 = phi i64 [ %1766, %_ZNK4llvm8MCSymbol11isUndefinedEb.exit.thread1322 ], [ %1747, %_ZNK4llvm8MCSymbol9isDefinedEv.exit631.thread1311 ], [ %1747, %_ZNK4llvm8MCSymbol9isDefinedEv.exit631.thread ], [ %.pre1764, %_ZNK4llvm8MCSymbol9isDefinedEv.exit631 ], [ %.pre1763, %_ZNK4llvm8MCSymbol11isUndefinedEb.exit ] + %1775 = phi i64 [ %1766, %_ZNK4llvm8MCSymbol11isUndefinedEb.exit.thread1322 ], [ %1747, %_ZNK4llvm8MCSymbol9isDefinedEv.exit631.thread1311 ], [ %1747, %_ZNK4llvm8MCSymbol9isDefinedEv.exit631.thread ], [ %.pre1765, %_ZNK4llvm8MCSymbol9isDefinedEv.exit631 ], [ %.pre1764, %_ZNK4llvm8MCSymbol11isUndefinedEb.exit ] %1776 = phi i32 [ %1768, %_ZNK4llvm8MCSymbol11isUndefinedEb.exit.thread1322 ], [ %.1257, %_ZNK4llvm8MCSymbol9isDefinedEv.exit631.thread1311 ], [ %1758, %_ZNK4llvm8MCSymbol9isDefinedEv.exit631.thread ], [ %1765, %_ZNK4llvm8MCSymbol9isDefinedEv.exit631 ], [ %spec.select1335, %_ZNK4llvm8MCSymbol11isUndefinedEb.exit ] %1777 = and i64 %1775, 549755813888 - %.not1366 = icmp eq i64 %1777, 0 - br i1 %.not1366, label %1781, label %1778 + %.not1367 = icmp eq i64 %1777, 0 + br i1 %.not1367, label %1781, label %1778 1778: ; preds = %_ZNK4llvm8MCSymbol11isUndefinedEb.exit.thread %.val315 = load ptr, ptr %1702, align 8 %1779 = getelementptr i8, ptr %.val315, i64 8 %.val315.val = load i8, ptr %1779, align 8 %1780 = and i8 %.val315.val, 2 - %.not1367 = icmp eq i8 %1780, 0 - %spec.select285.v = select i1 %.not1367, i32 128, i32 160 + %.not1368 = icmp eq i8 %1780, 0 + %spec.select285.v = select i1 %.not1368, i32 128, i32 160 %spec.select285 = or i32 %spec.select285.v, %1776 br label %1781 @@ -7481,17 +7481,17 @@ _ZNK4llvm8MCSymbol7getNameEv.exit640: ; preds = %1781, %1795 %1800 = getelementptr inbounds nuw i8, ptr %1714, i64 32 %.sroa.0.0.copyload.i641 = load i64, ptr %1800, align 8 %1801 = and i64 %.sroa.0.0.copyload.i641, 4294967296 - %.not1369 = icmp eq i64 %1801, 0 + %.not1370 = icmp eq i64 %1801, 0 %1802 = trunc i64 %.sroa.0.0.copyload.i641 to i8 - %1803 = select i1 %.not1369, i8 1, i8 %1802 + %1803 = select i1 %.not1370, i8 1, i8 %1802 store i8 %1803, ptr %1706, align 8 store i32 %.7, ptr %1707, align 4 %1804 = and i64 %.sroa.0.0.copyload.i641, 4294967296 %1805 = icmp ne i64 %1804, 0 %1806 = and i64 %.sroa.0.0.copyload.i641, 4294967295 %1807 = icmp ne i64 %1806, 1 - %.not1371 = and i1 %1805, %1807 - br i1 %.not1371, label %1808, label %1836 + %.not1372 = and i1 %1805, %1807 + br i1 %.not1372, label %1808, label %1836 1808: ; preds = %_ZNK4llvm8MCSymbol7getNameEv.exit640 %1809 = load ptr, ptr %1711, align 8 @@ -7560,8 +7560,8 @@ _ZNK4llvm8MCSymbol9isDefinedEv.exit661: ; preds = %1838 %1843 = load ptr, ptr %1842, align 8 %1844 = call noundef ptr @_ZNK4llvm6MCExpr22findAssociatedFragmentEv(ptr noundef nonnull align 8 dereferenceable(16) %1843) #21 store ptr %1844, ptr %1714, align 8 - %.not1372 = icmp eq ptr %1844, null - br i1 %.not1372, label %_ZNK4llvm8MCSymbol9isDefinedEv.exit661.thread1326, label %_ZNK4llvm8MCSymbol9isDefinedEv.exit661.thread + %.not1373 = icmp eq ptr %1844, null + br i1 %.not1373, label %_ZNK4llvm8MCSymbol9isDefinedEv.exit661.thread1326, label %_ZNK4llvm8MCSymbol9isDefinedEv.exit661.thread _ZNK4llvm8MCSymbol9isDefinedEv.exit661.thread: ; preds = %1836, %_ZNK4llvm8MCSymbol9isDefinedEv.exit661 %1845 = load ptr, ptr %1708, align 8 @@ -7620,11 +7620,11 @@ _ZNK4llvm8MCSymbol9isDefinedEv.exit661.thread1326: ; preds = %1838, %_ZNK4llvm8M br label %1875 1875: ; preds = %_ZNK4llvm8MCSymbol9isDefinedEv.exit661.thread1326, %_ZL10isInSymtabRKN4llvm12MCSymbolWasmE.exit627.thread - %1876 = getelementptr inbounds nuw i8, ptr %.sroa.01208.01583, i64 8 + %1876 = getelementptr inbounds nuw i8, ptr %.sroa.01208.01584, i64 8 %.not1350 = icmp eq ptr %1876, %1701 - br i1 %.not1350, label %._crit_edge1586, label %1713 + br i1 %.not1350, label %._crit_edge1587, label %1713 -._crit_edge1586: ; preds = %1875, %.loopexit +._crit_edge1587: ; preds = %1875, %.loopexit store ptr %1, ptr %94, align 8 %1877 = getelementptr inbounds nuw i8, ptr %94, i64 8 store ptr %0, ptr %1877, align 8 @@ -7634,53 +7634,53 @@ _ZNK4llvm8MCSymbol9isDefinedEv.exit661.thread1326: ; preds = %1838, %_ZNK4llvm8M %.val317 = load ptr, ptr %1879, align 8 %1880 = getelementptr inbounds nuw i8, ptr %0, i64 128 %.val319 = load ptr, ptr %1880, align 8 - %.not13511587 = icmp eq ptr %.val317, %.val319 - br i1 %.not13511587, label %._crit_edge1591, label %.lr.ph1590 + %.not13511588 = icmp eq ptr %.val317, %.val319 + br i1 %.not13511588, label %._crit_edge1592, label %.lr.ph1591 -.lr.ph1590: ; preds = %._crit_edge1586, %.lr.ph1590 - %.sroa.01199.01588 = phi ptr [ %1883, %.lr.ph1590 ], [ %.val317, %._crit_edge1586 ] - %1881 = getelementptr i8, ptr %.sroa.01199.01588, i64 8 +.lr.ph1591: ; preds = %._crit_edge1587, %.lr.ph1591 + %.sroa.01199.01589 = phi ptr [ %1883, %.lr.ph1591 ], [ %.val317, %._crit_edge1587 ] + %1881 = getelementptr i8, ptr %.sroa.01199.01589, i64 8 %.val326 = load ptr, ptr %1881, align 8 - %1882 = getelementptr i8, ptr %.sroa.01199.01588, i64 24 + %1882 = getelementptr i8, ptr %.sroa.01199.01589, i64 24 %.val327 = load i32, ptr %1882, align 8 call fastcc void @"_ZZN12_GLOBAL__N_116WasmObjectWriter14writeOneObjectERN4llvm11MCAssemblerENS0_7DwoModeEENK3$_0clERKNS_19WasmRelocationEntryE"(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr %.val326, i32 %.val327) - %1883 = getelementptr inbounds nuw i8, ptr %.sroa.01199.01588, i64 40 + %1883 = getelementptr inbounds nuw i8, ptr %.sroa.01199.01589, i64 40 %.not1351 = icmp eq ptr %1883, %.val319 - br i1 %.not1351, label %._crit_edge1591, label %.lr.ph1590 + br i1 %.not1351, label %._crit_edge1592, label %.lr.ph1591 -._crit_edge1591: ; preds = %.lr.ph1590, %._crit_edge1586 +._crit_edge1592: ; preds = %.lr.ph1591, %._crit_edge1587 %1884 = getelementptr inbounds nuw i8, ptr %0, i64 144 %.val316 = load ptr, ptr %1884, align 8 %1885 = getelementptr inbounds nuw i8, ptr %0, i64 152 %.val318 = load ptr, ptr %1885, align 8 - %.not13521592 = icmp eq ptr %.val316, %.val318 - br i1 %.not13521592, label %._crit_edge1596, label %.lr.ph1595 + %.not13521593 = icmp eq ptr %.val316, %.val318 + br i1 %.not13521593, label %._crit_edge1597, label %.lr.ph1596 -.lr.ph1595: ; preds = %._crit_edge1591, %.lr.ph1595 - %.sroa.01197.01593 = phi ptr [ %1888, %.lr.ph1595 ], [ %.val316, %._crit_edge1591 ] - %1886 = getelementptr i8, ptr %.sroa.01197.01593, i64 8 +.lr.ph1596: ; preds = %._crit_edge1592, %.lr.ph1596 + %.sroa.01197.01594 = phi ptr [ %1888, %.lr.ph1596 ], [ %.val316, %._crit_edge1592 ] + %1886 = getelementptr i8, ptr %.sroa.01197.01594, i64 8 %.val328 = load ptr, ptr %1886, align 8 - %1887 = getelementptr i8, ptr %.sroa.01197.01593, i64 24 + %1887 = getelementptr i8, ptr %.sroa.01197.01594, i64 24 %.val329 = load i32, ptr %1887, align 8 call fastcc void @"_ZZN12_GLOBAL__N_116WasmObjectWriter14writeOneObjectERN4llvm11MCAssemblerENS0_7DwoModeEENK3$_0clERKNS_19WasmRelocationEntryE"(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr %.val328, i32 %.val329) - %1888 = getelementptr inbounds nuw i8, ptr %.sroa.01197.01593, i64 40 + %1888 = getelementptr inbounds nuw i8, ptr %.sroa.01197.01594, i64 40 %.not1352 = icmp eq ptr %1888, %.val318 - br i1 %.not1352, label %._crit_edge1596, label %.lr.ph1595 + br i1 %.not1352, label %._crit_edge1597, label %.lr.ph1596 -._crit_edge1596: ; preds = %.lr.ph1595, %._crit_edge1591 +._crit_edge1597: ; preds = %.lr.ph1596, %._crit_edge1592 %1889 = load ptr, ptr %680, align 8 %1890 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %680) #21 %1891 = getelementptr inbounds ptr, ptr %1889, i64 %1890 - %.not13531606 = icmp eq i64 %1890, 0 - br i1 %.not13531606, label %._crit_edge1610, label %.lr.ph1609 + %.not13531607 = icmp eq i64 %1890, 0 + br i1 %.not13531607, label %._crit_edge1611, label %.lr.ph1610 -.lr.ph1609: ; preds = %._crit_edge1596 +.lr.ph1610: ; preds = %._crit_edge1597 %1892 = getelementptr inbounds nuw i8, ptr %0, i64 112 br label %1893 -1893: ; preds = %.lr.ph1609, %_ZNK4llvm9StringRef11starts_withES0_.exit689.thread1329 - %.sroa.01193.01607 = phi ptr [ %1889, %.lr.ph1609 ], [ %1981, %_ZNK4llvm9StringRef11starts_withES0_.exit689.thread1329 ] - %1894 = load ptr, ptr %.sroa.01193.01607, align 8 +1893: ; preds = %.lr.ph1610, %_ZNK4llvm9StringRef11starts_withES0_.exit689.thread1329 + %.sroa.01193.01608 = phi ptr [ %1889, %.lr.ph1610 ], [ %1981, %_ZNK4llvm9StringRef11starts_withES0_.exit689.thread1329 ] + %1894 = load ptr, ptr %.sroa.01193.01608, align 8 %1895 = getelementptr inbounds nuw i8, ptr %1894, i64 128 %.sroa.0.0.copyload.i674 = load ptr, ptr %1895, align 8 %.sroa.2.0..sroa_idx.i675 = getelementptr inbounds nuw i8, ptr %1894, i64 136 @@ -7738,8 +7738,8 @@ _ZNK4llvm9StringRef11starts_withES0_.exit689.thread: ; preds = %_ZNK4llvm9String %.val.val = load i8, ptr %1913, align 8 %1914 = and i8 %.val.val, 1 %1915 = or disjoint i8 %1914, 2 - %.not1360 = icmp eq i8 %.sroa.0.0.copyload.i690, %1915 - br i1 %.not1360, label %1917, label %1916 + %.not1361 = icmp eq i8 %.sroa.0.0.copyload.i690, %1915 + br i1 %.not1361, label %1917, label %1916 1916: ; preds = %1911 call void @_ZN4llvm18report_fatal_errorEPKcb(ptr noundef nonnull @.str.26, i1 noundef zeroext true) #23 @@ -7763,8 +7763,8 @@ _ZNK4llvm9StringRef11starts_withES0_.exit689.thread: ; preds = %_ZNK4llvm9String unreachable 1926: ; preds = %1922 - %.not1361 = icmp eq i64 %.sroa.2.0.copyload.i676, 11 - br i1 %.not1361, label %1938, label %1927 + %.not1362 = icmp eq i64 %.sroa.2.0.copyload.i676, 11 + br i1 %.not1362, label %1938, label %1927 1927: ; preds = %1926 %1928 = getelementptr inbounds nuw i8, ptr %.sroa.0.0.copyload.i674, i64 11 @@ -7803,44 +7803,44 @@ _ZNK4llvm9StringRef12getAsIntegerItEEbjRT_.exit: ; preds = %1935 %1940 = load ptr, ptr %1939, align 8 %1941 = call noundef i64 @_ZNK4llvm15SmallVectorBaseImE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1939) #21 %1942 = getelementptr inbounds i8, ptr %1940, i64 %1941 - %.not2721597 = icmp eq i64 %1941, 0 - br i1 %.not2721597, label %._crit_edge1601, label %.lr.ph1600 + %.not2721598 = icmp eq i64 %1941, 0 + br i1 %.not2721598, label %._crit_edge1602, label %.lr.ph1601 -1943: ; preds = %.lr.ph1600 - %1944 = getelementptr inbounds nuw i8, ptr %.02581598, i64 1 +1943: ; preds = %.lr.ph1601 + %1944 = getelementptr inbounds nuw i8, ptr %.02581599, i64 1 %.not272 = icmp eq ptr %1944, %1942 - br i1 %.not272, label %._crit_edge1601, label %.lr.ph1600, !llvm.loop !135 + br i1 %.not272, label %._crit_edge1602, label %.lr.ph1601, !llvm.loop !135 -.lr.ph1600: ; preds = %1938, %1943 - %.02581598 = phi ptr [ %1944, %1943 ], [ %1940, %1938 ] - %1945 = load i8, ptr %.02581598, align 1 +.lr.ph1601: ; preds = %1938, %1943 + %.02581599 = phi ptr [ %1944, %1943 ], [ %1940, %1938 ] + %1945 = load i8, ptr %.02581599, align 1 %.not275 = icmp eq i8 %1945, 0 br i1 %.not275, label %1943, label %1946 -1946: ; preds = %.lr.ph1600 +1946: ; preds = %.lr.ph1601 call void @_ZN4llvm18report_fatal_errorEPKcb(ptr noundef nonnull @.str.30, i1 noundef zeroext true) #23 unreachable -._crit_edge1601: ; preds = %1943, %1938 +._crit_edge1602: ; preds = %1943, %1938 %1947 = getelementptr inbounds nuw i8, ptr %1918, i64 96 %1948 = load ptr, ptr %1947, align 8 %1949 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %1947) #21 %1950 = getelementptr inbounds %"class.llvm::MCFixup", ptr %1948, i64 %1949 - %.not2731602 = icmp eq i64 %1949, 0 - br i1 %.not2731602, label %_ZNK4llvm9StringRef11starts_withES0_.exit689.thread1329, label %.lr.ph1605 + %.not2731603 = icmp eq i64 %1949, 0 + br i1 %.not2731603, label %_ZNK4llvm9StringRef11starts_withES0_.exit689.thread1329, label %.lr.ph1606 -.lr.ph1605: ; preds = %._crit_edge1601, %_ZN4llvm23SmallVectorTemplateBaseISt4pairItjELb1EE9push_backES2_.exit - %.02591603 = phi ptr [ %1980, %_ZN4llvm23SmallVectorTemplateBaseISt4pairItjELb1EE9push_backES2_.exit ], [ %1948, %._crit_edge1601 ] - %1951 = load ptr, ptr %.02591603, align 8 +.lr.ph1606: ; preds = %._crit_edge1602, %_ZN4llvm23SmallVectorTemplateBaseISt4pairItjELb1EE9push_backES2_.exit + %.02591604 = phi ptr [ %1980, %_ZN4llvm23SmallVectorTemplateBaseISt4pairItjELb1EE9push_backES2_.exit ], [ %1948, %._crit_edge1602 ] + %1951 = load ptr, ptr %.02591604, align 8 %1952 = load i8, ptr %1951, align 8 - %.not1363 = icmp eq i8 %1952, 2 - br i1 %.not1363, label %1954, label %1953 + %.not1364 = icmp eq i8 %1952, 2 + br i1 %.not1364, label %1954, label %1953 -1953: ; preds = %.lr.ph1605 +1953: ; preds = %.lr.ph1606 call void @_ZN4llvm18report_fatal_errorEPKcb(ptr noundef nonnull @.str.31, i1 noundef zeroext true) #23 unreachable -1954: ; preds = %.lr.ph1605 +1954: ; preds = %.lr.ph1606 %1955 = getelementptr inbounds nuw i8, ptr %1951, i64 16 %1956 = load ptr, ptr %1955, align 8 %1957 = getelementptr inbounds nuw i8, ptr %1956, i64 16 @@ -7888,16 +7888,16 @@ _ZN4llvm23SmallVectorTemplateBaseISt4pairItjELb1EE9push_backES2_.exit: ; preds = %1978 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %70) #21 %1979 = add i64 %1978, 1 call void @_ZN4llvm15SmallVectorBaseIjE8set_sizeEm(ptr noundef nonnull align 8 dereferenceable(16) %70, i64 noundef %1979) #21 - %1980 = getelementptr inbounds nuw i8, ptr %.02591603, i64 24 + %1980 = getelementptr inbounds nuw i8, ptr %.02591604, i64 24 %.not273 = icmp eq ptr %1980, %1950 - br i1 %.not273, label %_ZNK4llvm9StringRef11starts_withES0_.exit689.thread1329, label %.lr.ph1605 + br i1 %.not273, label %_ZNK4llvm9StringRef11starts_withES0_.exit689.thread1329, label %.lr.ph1606 -_ZNK4llvm9StringRef11starts_withES0_.exit689.thread1329: ; preds = %_ZN4llvm23SmallVectorTemplateBaseISt4pairItjELb1EE9push_backES2_.exit, %1893, %._crit_edge1601, %_ZNK4llvm9StringRef11starts_withES0_.exit689.thread, %_ZNK4llvm9StringRef11starts_withES0_.exit689 - %1981 = getelementptr inbounds nuw i8, ptr %.sroa.01193.01607, i64 8 +_ZNK4llvm9StringRef11starts_withES0_.exit689.thread1329: ; preds = %_ZN4llvm23SmallVectorTemplateBaseISt4pairItjELb1EE9push_backES2_.exit, %1893, %._crit_edge1602, %_ZNK4llvm9StringRef11starts_withES0_.exit689.thread, %_ZNK4llvm9StringRef11starts_withES0_.exit689 + %1981 = getelementptr inbounds nuw i8, ptr %.sroa.01193.01608, i64 8 %.not1353 = icmp eq ptr %1981, %1891 - br i1 %.not1353, label %._crit_edge1610, label %1893 + br i1 %.not1353, label %._crit_edge1611, label %1893 -._crit_edge1610: ; preds = %_ZNK4llvm9StringRef11starts_withES0_.exit689.thread1329, %._crit_edge1596 +._crit_edge1611: ; preds = %_ZNK4llvm9StringRef11starts_withES0_.exit689.thread1329, %._crit_edge1597 %1982 = load ptr, ptr %96, align 8 %1983 = load ptr, ptr %1982, align 8 %1984 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4llvm11raw_ostream5writeEPKcm(ptr noundef nonnull align 8 dereferenceable(48) %1983, ptr noundef nonnull @_ZN4llvm4wasmL9WasmMagicE, i64 noundef 4) #21 @@ -7913,7 +7913,7 @@ _ZNK4llvm9StringRef11starts_withES0_.exit689.thread1329: ; preds = %_ZN4llvm23Sm call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) br i1 %.not, label %3479, label %1990 -1990: ; preds = %._crit_edge1610 +1990: ; preds = %._crit_edge1611 %1991 = getelementptr inbounds nuw i8, ptr %0, i64 400 %1992 = load ptr, ptr %1991, align 8 %1993 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %1991) #21 @@ -11104,63 +11104,63 @@ _ZN12_GLOBAL__N_116WasmObjectWriter16writeDataSectionERKN4llvm11MCAssemblerE.exi call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) br label %3479 -3479: ; preds = %_ZN12_GLOBAL__N_116WasmObjectWriter16writeDataSectionERKN4llvm11MCAssemblerE.exit, %._crit_edge1610 - %.0261 = phi i32 [ %.0.i1074, %_ZN12_GLOBAL__N_116WasmObjectWriter16writeDataSectionERKN4llvm11MCAssemblerE.exit ], [ undef, %._crit_edge1610 ] - %.0260 = phi i32 [ %.0.i1035, %_ZN12_GLOBAL__N_116WasmObjectWriter16writeDataSectionERKN4llvm11MCAssemblerE.exit ], [ undef, %._crit_edge1610 ] +3479: ; preds = %_ZN12_GLOBAL__N_116WasmObjectWriter16writeDataSectionERKN4llvm11MCAssemblerE.exit, %._crit_edge1611 + %.0261 = phi i32 [ %.0.i1074, %_ZN12_GLOBAL__N_116WasmObjectWriter16writeDataSectionERKN4llvm11MCAssemblerE.exit ], [ undef, %._crit_edge1611 ] + %.0260 = phi i32 [ %.0.i1035, %_ZN12_GLOBAL__N_116WasmObjectWriter16writeDataSectionERKN4llvm11MCAssemblerE.exit ], [ undef, %._crit_edge1611 ] %.val330 = load ptr, ptr %124, align 8 - %.not13541616 = icmp eq ptr %.val330, %122 - br i1 %.not13541616, label %._crit_edge1620, label %.lr.ph1619 + %.not13541617 = icmp eq ptr %.val330, %122 + br i1 %.not13541617, label %._crit_edge1621, label %.lr.ph1620 -.lr.ph1619: ; preds = %3479, %._crit_edge1615 - %.sroa.01153.01617 = phi ptr [ %3491, %._crit_edge1615 ], [ %.val330, %3479 ] - %3480 = getelementptr inbounds nuw i8, ptr %.sroa.01153.01617, i64 48 +.lr.ph1620: ; preds = %3479, %._crit_edge1616 + %.sroa.01153.01618 = phi ptr [ %3491, %._crit_edge1616 ], [ %.val330, %3479 ] + %3480 = getelementptr inbounds nuw i8, ptr %.sroa.01153.01618, i64 48 %.val293 = load ptr, ptr %3480, align 8 - %3481 = getelementptr i8, ptr %.sroa.01153.01617, i64 56 + %3481 = getelementptr i8, ptr %.sroa.01153.01618, i64 56 %.val292 = load ptr, ptr %3481, align 8 - %.not13581611 = icmp eq ptr %.val293, %.val292 - br i1 %.not13581611, label %._crit_edge1615, label %.lr.ph1614 + %.not13581612 = icmp eq ptr %.val293, %.val292 + br i1 %.not13581612, label %._crit_edge1616, label %.lr.ph1615 -.lr.ph1614: ; preds = %.lr.ph1619, %3489 - %.sroa.01151.01612 = phi ptr [ %3490, %3489 ], [ %.val293, %.lr.ph1619 ] - %3482 = load i32, ptr %.sroa.01151.01612, align 4 +.lr.ph1615: ; preds = %.lr.ph1620, %3489 + %.sroa.01151.01613 = phi ptr [ %3490, %3489 ], [ %.val293, %.lr.ph1620 ] + %3482 = load i32, ptr %.sroa.01151.01613, align 4 %3483 = icmp eq i32 %3482, 5 br i1 %3483, label %3484, label %3489 -3484: ; preds = %.lr.ph1614 +3484: ; preds = %.lr.ph1615 %3485 = load i32, ptr %107, align 8 - %3486 = getelementptr inbounds nuw i8, ptr %.sroa.01151.01612, i64 4 + %3486 = getelementptr inbounds nuw i8, ptr %.sroa.01151.01613, i64 4 %3487 = load i32, ptr %3486, align 4 %3488 = add i32 %3487, %3485 store i32 %3488, ptr %3486, align 4 br label %3489 -3489: ; preds = %.lr.ph1614, %3484 - %3490 = getelementptr inbounds nuw i8, ptr %.sroa.01151.01612, i64 8 +3489: ; preds = %.lr.ph1615, %3484 + %3490 = getelementptr inbounds nuw i8, ptr %.sroa.01151.01613, i64 8 %.not1358 = icmp eq ptr %3490, %.val292 - br i1 %.not1358, label %._crit_edge1615, label %.lr.ph1614 + br i1 %.not1358, label %._crit_edge1616, label %.lr.ph1615 -._crit_edge1615: ; preds = %3489, %.lr.ph1619 - %3491 = call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %.sroa.01153.01617) #24 +._crit_edge1616: ; preds = %3489, %.lr.ph1620 + %3491 = call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %.sroa.01153.01618) #24 %.not1354 = icmp eq ptr %3491, %122 - br i1 %.not1354, label %._crit_edge1620, label %.lr.ph1619 + br i1 %.not1354, label %._crit_edge1621, label %.lr.ph1620 -._crit_edge1620: ; preds = %._crit_edge1615, %3479 +._crit_edge1621: ; preds = %._crit_edge1616, %3479 %.val309 = load ptr, ptr %108, align 8 %.val308 = load ptr, ptr %110, align 8 - %.not13551621 = icmp eq ptr %.val309, %.val308 - br i1 %.not13551621, label %._crit_edge1625, label %.lr.ph1624 + %.not13551622 = icmp eq ptr %.val309, %.val308 + br i1 %.not13551622, label %._crit_edge1626, label %.lr.ph1625 -.lr.ph1624: ; preds = %._crit_edge1620, %.lr.ph1624 - %.sroa.01149.01622 = phi ptr [ %3492, %.lr.ph1624 ], [ %.val309, %._crit_edge1620 ] - call fastcc void @_ZN12_GLOBAL__N_116WasmObjectWriter18writeCustomSectionERNS_17WasmCustomSectionERKN4llvm11MCAssemblerE(ptr noundef nonnull align 8 dereferenceable(1048) %0, ptr noundef nonnull align 8 dereferenceable(32) %.sroa.01149.01622, ptr noundef nonnull align 8 dereferenceable(372) %1) - %3492 = getelementptr inbounds nuw i8, ptr %.sroa.01149.01622, i64 32 +.lr.ph1625: ; preds = %._crit_edge1621, %.lr.ph1625 + %.sroa.01149.01623 = phi ptr [ %3492, %.lr.ph1625 ], [ %.val309, %._crit_edge1621 ] + call fastcc void @_ZN12_GLOBAL__N_116WasmObjectWriter18writeCustomSectionERNS_17WasmCustomSectionERKN4llvm11MCAssemblerE(ptr noundef nonnull align 8 dereferenceable(1048) %0, ptr noundef nonnull align 8 dereferenceable(32) %.sroa.01149.01623, ptr noundef nonnull align 8 dereferenceable(372) %1) + %3492 = getelementptr inbounds nuw i8, ptr %.sroa.01149.01623, i64 32 %.not1355 = icmp eq ptr %3492, %.val308 - br i1 %.not1355, label %._crit_edge1625, label %.lr.ph1624 + br i1 %.not1355, label %._crit_edge1626, label %.lr.ph1625 -._crit_edge1625: ; preds = %.lr.ph1624, %._crit_edge1620 +._crit_edge1626: ; preds = %.lr.ph1625, %._crit_edge1621 br i1 %.not, label %4171, label %3493 -3493: ; preds = %._crit_edge1625 +3493: ; preds = %._crit_edge1626 %3494 = load ptr, ptr %69, align 8 %3495 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %69) #21 %3496 = load ptr, ptr %70, align 8 @@ -12653,7 +12653,7 @@ _ZN12_GLOBAL__N_116WasmObjectWriter27writeLinkingMetaDataSectionEN4llvm8ArrayRef call fastcc void @_ZN12_GLOBAL__N_116WasmObjectWriter17writeRelocSectionEjN4llvm9StringRefERSt6vectorINS_19WasmRelocationEntryESaIS4_EE(ptr noundef nonnull align 8 dereferenceable(1048) %0, i32 noundef %.0261, ptr nonnull @.str.35, i64 4, ptr noundef nonnull align 8 dereferenceable(24) %1884) br label %4171 -4171: ; preds = %_ZN12_GLOBAL__N_116WasmObjectWriter27writeLinkingMetaDataSectionEN4llvm8ArrayRefINS1_4wasm14WasmSymbolInfoEEENS2_ISt4pairItjEEERKSt3mapINS1_9StringRefESt6vectorINS_15WasmComdatEntryESaISC_EESt4lessISA_ESaIS6_IKSA_SE_EEE.exit, %._crit_edge1625 +4171: ; preds = %_ZN12_GLOBAL__N_116WasmObjectWriter27writeLinkingMetaDataSectionEN4llvm8ArrayRefINS1_4wasm14WasmSymbolInfoEEENS2_ISt4pairItjEEERKSt3mapINS1_9StringRefESt6vectorINS_15WasmComdatEntryESaISC_EESt4lessISA_ESaIS6_IKSA_SE_EEE.exit, %._crit_edge1626 %.val7.i = load ptr, ptr %108, align 8 %.val.i1127 = load ptr, ptr %110, align 8 %.not15.i = icmp eq ptr %.val7.i, %.val.i1127 @@ -12866,8 +12866,8 @@ _ZN4llvm11SmallVectorIN12_GLOBAL__N_112WasmFunctionELj4EED2Ev.exit: ; preds = %_ %4264 = ptrtoint ptr %104 to i64 %4265 = add i64 %102, %4264 %4266 = sub i64 %4263, %4265 - %.neg1431 = add i64 %4266, %4220 - %.neg = add i64 %.neg1431, %4261 + %.neg1432 = add i64 %4266, %4220 + %.neg = add i64 %.neg1432, %4261 %4267 = sub i64 %.neg, %4262 ret i64 %4267 } diff --git a/bench/ncnn/optimized/innerproduct_x86.cpp.ll b/bench/ncnn/optimized/innerproduct_x86.cpp.ll index 34164fee25e..c7509ea1304 100644 --- a/bench/ncnn/optimized/innerproduct_x86.cpp.ll +++ b/bench/ncnn/optimized/innerproduct_x86.cpp.ll @@ -82,7 +82,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull br i1 %.not45, label %18, label %17 17: ; preds = %16 - tail call void @free(ptr noundef nonnull %11) #15 + tail call void @free(ptr noundef nonnull %11) #14 br label %18 18: ; preds = %12, %17, %16, %5, %1 @@ -101,7 +101,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull %25 = landingpad { ptr, i32 } catch ptr null %26 = extractvalue { ptr, i32 } %25, 0 - tail call void @__clang_call_terminate(ptr %26) #16 + tail call void @__clang_call_terminate(ptr %26) #15 unreachable 27: ; preds = %18 @@ -128,7 +128,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull br i1 %.not48, label %40, label %39 39: ; preds = %38 - tail call void @free(ptr noundef nonnull %33) #15 + tail call void @free(ptr noundef nonnull %33) #14 br label %40 40: ; preds = %34, %39, %38, %27, %18 @@ -147,7 +147,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull %47 = landingpad { ptr, i32 } catch ptr null %48 = extractvalue { ptr, i32 } %47, 0 - tail call void @__clang_call_terminate(ptr %48) #16 + tail call void @__clang_call_terminate(ptr %48) #15 unreachable 49: ; preds = %40 @@ -174,7 +174,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull br i1 %.not51, label %62, label %61 61: ; preds = %60 - tail call void @free(ptr noundef nonnull %55) #15 + tail call void @free(ptr noundef nonnull %55) #14 br label %62 62: ; preds = %56, %61, %60, %49, %40 @@ -193,7 +193,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull %69 = landingpad { ptr, i32 } catch ptr null %70 = extractvalue { ptr, i32 } %69, 0 - tail call void @__clang_call_terminate(ptr %70) #16 + tail call void @__clang_call_terminate(ptr %70) #15 unreachable 71: ; preds = %62 @@ -220,7 +220,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull br i1 %.not54, label %84, label %83 83: ; preds = %82 - tail call void @free(ptr noundef nonnull %77) #15 + tail call void @free(ptr noundef nonnull %77) #14 br label %84 84: ; preds = %78, %83, %82, %71, %62 @@ -239,7 +239,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull %91 = landingpad { ptr, i32 } catch ptr null %92 = extractvalue { ptr, i32 } %91, 0 - tail call void @__clang_call_terminate(ptr %92) #16 + tail call void @__clang_call_terminate(ptr %92) #15 unreachable 93: ; preds = %84 @@ -266,7 +266,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull br i1 %.not57, label %106, label %105 105: ; preds = %104 - tail call void @free(ptr noundef nonnull %99) #15 + tail call void @free(ptr noundef nonnull %99) #14 br label %106 106: ; preds = %100, %105, %104, %93, %84 @@ -275,14 +275,14 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull store i64 0, ptr %108, align 8 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(28) %87, i8 0, i64 28, i1 false) tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %107, i8 0, i64 20, i1 false) - tail call void @_ZN4ncnn5LayerD2Ev(ptr noundef nonnull align 8 dereferenceable(208) %0) #15 + tail call void @_ZN4ncnn5LayerD2Ev(ptr noundef nonnull align 8 dereferenceable(208) %0) #14 ret void 109: ; preds = %100 %110 = landingpad { ptr, i32 } catch ptr null %111 = extractvalue { ptr, i32 } %110, 0 - tail call void @__clang_call_terminate(ptr %111) #16 + tail call void @__clang_call_terminate(ptr %111) #15 unreachable } @@ -310,7 +310,7 @@ define hidden noundef i32 @_ZN4ncnn16InnerProduct_x8615create_pipelineERKNS_6Opt to label %18 unwind label %27 18: ; preds = %12 - call void @_ZN4ncnn9ParamDictD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #15 + call void @_ZN4ncnn9ParamDictD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #14 %19 = getelementptr inbounds nuw i8, ptr %1, i64 30 %20 = load i8, ptr %19, align 2 %21 = trunc i8 %20 to i1 @@ -331,7 +331,7 @@ common.resume: ; preds = %157, %161, %168, %1 27: ; preds = %12, %2 %28 = landingpad { ptr, i32 } cleanup - call void @_ZN4ncnn9ParamDictD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #15 + call void @_ZN4ncnn9ParamDictD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #14 br label %common.resume 29: ; preds = %18 @@ -576,14 +576,14 @@ common.resume: ; preds = %157, %161, %168, %1 br i1 %.not167.i, label %common.resume, label %173 173: ; preds = %172 - call void @free(ptr noundef nonnull %167) #15 + call void @free(ptr noundef nonnull %167) #14 br label %common.resume 174: ; preds = %168 %175 = landingpad { ptr, i32 } catch ptr null %176 = extractvalue { ptr, i32 } %175, 0 - call void @__clang_call_terminate(ptr %176) #16 + call void @__clang_call_terminate(ptr %176) #15 unreachable ._crit_edge22.i: ; preds = %._crit_edge.us32.i, %._crit_edge.us.i, %.lr.ph21.split.i, %.preheader1.i @@ -616,14 +616,14 @@ common.resume: ; preds = %157, %161, %168, %1 br i1 %.not170.i, label %_ZN4ncnnL33innerproduct_transform_kernel_sseERKNS_3MatERS0_iiRKNS_6OptionE.exit, label %191 191: ; preds = %190 - call void @free(ptr noundef nonnull %185) #15 + call void @free(ptr noundef nonnull %185) #14 br label %_ZN4ncnnL33innerproduct_transform_kernel_sseERKNS_3MatERS0_iiRKNS_6OptionE.exit 192: ; preds = %186 %193 = landingpad { ptr, i32 } catch ptr null %194 = extractvalue { ptr, i32 } %193, 0 - call void @__clang_call_terminate(ptr %194) #16 + call void @__clang_call_terminate(ptr %194) #15 unreachable 195: ; preds = %29 @@ -666,7 +666,7 @@ common.resume: ; preds = %157, %161, %168, %1 br i1 %.not174.i, label %216, label %215 215: ; preds = %214 - call void @free(ptr noundef nonnull %209) #15 + call void @free(ptr noundef nonnull %209) #14 br label %216 216: ; preds = %215, %214, %210, %203, %200 @@ -747,7 +747,7 @@ _ZN4ncnnL33innerproduct_transform_kernel_sseERKNS_3MatERS0_iiRKNS_6OptionE.exit: br i1 %.not18, label %263, label %262 262: ; preds = %261 - call void @free(ptr noundef nonnull %256) #15 + call void @free(ptr noundef nonnull %256) #14 br label %263 263: ; preds = %257, %262, %261, %250, %247 @@ -799,7 +799,7 @@ define hidden noundef i32 @_ZN4ncnn16InnerProduct_x8624create_pipeline_int8_x86E br i1 %.not93, label %._crit_edge90, label %.lr.ph .lr.ph: ; preds = %.preheader84 - %21 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %.065, i1 true) + %21 = select i1 %14, i32 3, i32 0 %22 = getelementptr inbounds nuw i8, ptr %0, i64 644 %23 = getelementptr inbounds nuw i8, ptr %0, i64 616 %24 = icmp sgt i32 %8, 0 @@ -895,7 +895,7 @@ define hidden noundef i32 @_ZN4ncnn16InnerProduct_x8624create_pipeline_int8_x86E br i1 %.not77, label %69, label %68 68: ; preds = %67 - call void @free(ptr noundef nonnull %62) #15 + call void @free(ptr noundef nonnull %62) #14 br label %69 69: ; preds = %63, %68, %67, %56, %52 @@ -905,7 +905,7 @@ define hidden noundef i32 @_ZN4ncnn16InnerProduct_x8624create_pipeline_int8_x86E %71 = landingpad { ptr, i32 } catch ptr null %72 = extractvalue { ptr, i32 } %71, 0 - call void @__clang_call_terminate(ptr %72) #16 + call void @__clang_call_terminate(ptr %72) #15 unreachable ._crit_edge90: ; preds = %._crit_edge.us, %.lr.ph, %.preheader84 @@ -938,7 +938,7 @@ define hidden noundef i32 @_ZN4ncnn16InnerProduct_x8624create_pipeline_int8_x86E br i1 %.not80, label %88, label %87 87: ; preds = %86 - call void @free(ptr noundef nonnull %81) #15 + call void @free(ptr noundef nonnull %81) #14 br label %88 88: ; preds = %82, %87, %86, %75, %._crit_edge90 @@ -963,7 +963,7 @@ define hidden noundef i32 @_ZN4ncnn16InnerProduct_x8624create_pipeline_int8_x86E %98 = landingpad { ptr, i32 } catch ptr null %99 = extractvalue { ptr, i32 } %98, 0 - call void @__clang_call_terminate(ptr %99) #16 + call void @__clang_call_terminate(ptr %99) #15 unreachable 100: ; preds = %.lr.ph92, %110 @@ -1027,7 +1027,7 @@ define hidden noundef i32 @_ZN4ncnn16InnerProduct_x8624create_pipeline_int8_x86E br i1 %.not83, label %134, label %133 133: ; preds = %132 - call void @free(ptr noundef nonnull %127) #15 + call void @free(ptr noundef nonnull %127) #14 br label %134 134: ; preds = %128, %133, %132, %121, %118 @@ -1062,7 +1062,7 @@ define hidden noundef i32 @_ZN4ncnn16InnerProduct_x8616destroy_pipelineERKNS_6Op %13 = load ptr, ptr %10, align 8 %14 = getelementptr inbounds nuw i8, ptr %13, i64 8 %15 = load ptr, ptr %14, align 8 - tail call void %15(ptr noundef nonnull align 8 dereferenceable(208) %10) #15 + tail call void %15(ptr noundef nonnull align 8 dereferenceable(208) %10) #14 br label %16 16: ; preds = %12, %5 @@ -2818,7 +2818,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn16InnerProduct_x867forwar br i1 %.not87, label %1358, label %1357 1357: ; preds = %1356 - call void @free(ptr noundef nonnull %1351) #15 + call void @free(ptr noundef nonnull %1351) #14 br label %1358 1358: ; preds = %1352, %1357, %1356, %1346, %1343 @@ -2828,7 +2828,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn16InnerProduct_x867forwar %1360 = landingpad { ptr, i32 } catch ptr null %1361 = extractvalue { ptr, i32 } %1360, 0 - call void @__clang_call_terminate(ptr %1361) #16 + call void @__clang_call_terminate(ptr %1361) #15 unreachable 1362: ; preds = %1337, %1322 @@ -3762,14 +3762,14 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn16InnerProduct_x867forwar br i1 %.not90, label %.critedge, label %2001 2001: ; preds = %2000 - call void @free(ptr noundef nonnull %1995) #15 + call void @free(ptr noundef nonnull %1995) #14 br label %.critedge 2002: ; preds = %1996 %2003 = landingpad { ptr, i32 } catch ptr null %2004 = extractvalue { ptr, i32 } %2003, 0 - call void @__clang_call_terminate(ptr %2004) #16 + call void @__clang_call_terminate(ptr %2004) #15 unreachable .critedge: ; preds = %.loopexit.i, %.critedge2, %1990, %2000, %2001, %1996, %46, %38, %27, %12 @@ -3953,7 +3953,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn16InnerProduct_x8616forwa br i1 %.not9707, label %109, label %108 108: ; preds = %107 - call void @free(ptr noundef nonnull %102) #15 + call void @free(ptr noundef nonnull %102) #14 br label %109 109: ; preds = %103, %108, %107, %97, %94 @@ -3966,7 +3966,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn16InnerProduct_x8616forwa %111 = landingpad { ptr, i32 } catch ptr null %112 = extractvalue { ptr, i32 } %111, 0 - call void @__clang_call_terminate(ptr %112) #16 + call void @__clang_call_terminate(ptr %112) #15 unreachable 113: ; preds = %88 @@ -6734,7 +6734,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn16InnerProduct_x8616forwa br i1 %.not9730, label %2342, label %2341 2341: ; preds = %2340 - call void @free(ptr noundef nonnull %2335) #15 + call void @free(ptr noundef nonnull %2335) #14 br label %2342 2342: ; preds = %2336, %2341, %2340, %2330, %.critedge2 @@ -6745,7 +6745,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn16InnerProduct_x8616forwa %2344 = landingpad { ptr, i32 } catch ptr null %2345 = extractvalue { ptr, i32 } %2344, 0 - call void @__clang_call_terminate(ptr %2345) #16 + call void @__clang_call_terminate(ptr %2345) #15 unreachable 2346: ; preds = %68 @@ -6849,7 +6849,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn16InnerProduct_x8616forwa br i1 %.not9698, label %2404, label %2403 2403: ; preds = %2402 - call void @free(ptr noundef nonnull %2397) #15 + call void @free(ptr noundef nonnull %2397) #14 br label %2404 2404: ; preds = %2398, %2403, %2402, %2392, %2389 @@ -6862,7 +6862,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn16InnerProduct_x8616forwa %2406 = landingpad { ptr, i32 } catch ptr null %2407 = extractvalue { ptr, i32 } %2406, 0 - call void @__clang_call_terminate(ptr %2407) #16 + call void @__clang_call_terminate(ptr %2407) #15 unreachable 2408: ; preds = %2383, %2368 @@ -7550,7 +7550,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn16InnerProduct_x8616forwa br i1 %.not9704, label %2924, label %2923 2923: ; preds = %2922 - call void @free(ptr noundef nonnull %2917) #15 + call void @free(ptr noundef nonnull %2917) #14 br label %2924 2924: ; preds = %2918, %2923, %2922, %2912, %.critedge13 @@ -7561,7 +7561,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn16InnerProduct_x8616forwa %2926 = landingpad { ptr, i32 } catch ptr null %2927 = extractvalue { ptr, i32 } %2926, 0 - call void @__clang_call_terminate(ptr %2927) #16 + call void @__clang_call_terminate(ptr %2927) #15 unreachable .critedge.sink.split: ; preds = %2342, %2924 @@ -7601,7 +7601,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn16InnerProduct_x8616forwa br i1 %.not9733, label %2941, label %2940 2940: ; preds = %2939 - call void @free(ptr noundef nonnull %2934) #15 + call void @free(ptr noundef nonnull %2934) #14 br label %2941 2941: ; preds = %2935, %2940, %2939, %2929, %.critedge @@ -7611,7 +7611,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn16InnerProduct_x8616forwa %2943 = landingpad { ptr, i32 } catch ptr null %2944 = extractvalue { ptr, i32 } %2943, 0 - call void @__clang_call_terminate(ptr %2944) #16 + call void @__clang_call_terminate(ptr %2944) #15 unreachable 2945: ; preds = %2404, %109, %66 @@ -7643,7 +7643,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn16InnerProduct_x8616forwa br i1 %.not9711, label %2959, label %2958 2958: ; preds = %2957 - call void @free(ptr noundef nonnull %2952) #15 + call void @free(ptr noundef nonnull %2952) #14 br label %2959 2959: ; preds = %2953, %2958, %2957, %2947, %2945 @@ -7653,7 +7653,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn16InnerProduct_x8616forwa %2961 = landingpad { ptr, i32 } catch ptr null %2962 = extractvalue { ptr, i32 } %2961, 0 - call void @__clang_call_terminate(ptr %2962) #16 + call void @__clang_call_terminate(ptr %2962) #15 unreachable } @@ -7705,7 +7705,7 @@ define linkonce_odr hidden void @_ZN4ncnn16InnerProduct_x86D2Ev(ptr noundef nonn br i1 %.not18, label %18, label %17 17: ; preds = %16 - tail call void @free(ptr noundef nonnull %11) #15 + tail call void @free(ptr noundef nonnull %11) #14 br label %18 18: ; preds = %12, %17, %16, %5, %1 @@ -7724,7 +7724,7 @@ define linkonce_odr hidden void @_ZN4ncnn16InnerProduct_x86D2Ev(ptr noundef nonn %25 = landingpad { ptr, i32 } catch ptr null %26 = extractvalue { ptr, i32 } %25, 0 - tail call void @__clang_call_terminate(ptr %26) #16 + tail call void @__clang_call_terminate(ptr %26) #15 unreachable 27: ; preds = %18 @@ -7751,7 +7751,7 @@ define linkonce_odr hidden void @_ZN4ncnn16InnerProduct_x86D2Ev(ptr noundef nonn br i1 %.not21, label %40, label %39 39: ; preds = %38 - tail call void @free(ptr noundef nonnull %33) #15 + tail call void @free(ptr noundef nonnull %33) #14 br label %40 40: ; preds = %34, %39, %38, %27, %18 @@ -7760,21 +7760,21 @@ define linkonce_odr hidden void @_ZN4ncnn16InnerProduct_x86D2Ev(ptr noundef nonn store i64 0, ptr %42, align 8 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(28) %21, i8 0, i64 28, i1 false) tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %41, i8 0, i64 20, i1 false) - tail call void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull align 8 dereferenceable(592) %0) #15 + tail call void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull align 8 dereferenceable(592) %0) #14 ret void 43: ; preds = %34 %44 = landingpad { ptr, i32 } catch ptr null %45 = extractvalue { ptr, i32 } %44, 0 - tail call void @__clang_call_terminate(ptr %45) #16 + tail call void @__clang_call_terminate(ptr %45) #15 unreachable } ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr hidden void @_ZN4ncnn16InnerProduct_x86D0Ev(ptr noundef nonnull align 8 dereferenceable(744) %0) unnamed_addr #2 comdat align 2 { - tail call void @_ZN4ncnn16InnerProduct_x86D2Ev(ptr noundef nonnull align 8 dereferenceable(744) %0) #15 - tail call void @_ZdlPvm(ptr noundef nonnull %0, i64 noundef 744) #17 + tail call void @_ZN4ncnn16InnerProduct_x86D2Ev(ptr noundef nonnull align 8 dereferenceable(744) %0) #14 + tail call void @_ZdlPvm(ptr noundef nonnull %0, i64 noundef 744) #16 ret void } @@ -7790,8 +7790,8 @@ declare noundef i32 @_ZNK4ncnn5Layer15forward_inplaceERNS_3MatERKNS_6OptionE(ptr ; Function Attrs: noreturn nounwind uwtable define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) local_unnamed_addr #6 comdat { - %2 = tail call ptr @__cxa_begin_catch(ptr %0) #15 - tail call void @_ZSt9terminatev() #16 + %2 = tail call ptr @__cxa_begin_catch(ptr %0) #14 + tail call void @_ZSt9terminatev() #15 unreachable } @@ -7833,17 +7833,14 @@ declare float @llvm.tanh.f32(float) #10 ; Function Attrs: nobuiltin nounwind declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #11 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.cttz.i32(i32, i1 immarg) #12 - ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #13 +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #12 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #14 +declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #13 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #14 +declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #13 attributes #0 = { mustprogress uwtable "approx-func-fp-math"="true" "frame-pointer"="all" "min-legal-vector-width"="0" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" "unsafe-fp-math"="true" } attributes #1 = { "approx-func-fp-math"="true" "frame-pointer"="all" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" "unsafe-fp-math"="true" } @@ -7857,12 +7854,11 @@ attributes #8 = { mustprogress nounwind willreturn allockind("free") memory(argm attributes #9 = { mustprogress nocallback nofree nosync nounwind willreturn memory(none) } attributes #10 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #11 = { nobuiltin nounwind "approx-func-fp-math"="true" "frame-pointer"="all" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" "unsafe-fp-math"="true" } -attributes #12 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #13 = { nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #14 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #15 = { nounwind } -attributes #16 = { noreturn nounwind } -attributes #17 = { builtin nounwind } +attributes #12 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #13 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } +attributes #14 = { nounwind } +attributes #15 = { noreturn nounwind } +attributes #16 = { builtin nounwind } !llvm.module.flags = !{!0, !1, !2, !3} diff --git a/bench/ncnn/optimized/innerproduct_x86_avx.cpp.ll b/bench/ncnn/optimized/innerproduct_x86_avx.cpp.ll index 638d4884344..b989e90f8e7 100644 --- a/bench/ncnn/optimized/innerproduct_x86_avx.cpp.ll +++ b/bench/ncnn/optimized/innerproduct_x86_avx.cpp.ll @@ -82,7 +82,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull br i1 %.not45, label %18, label %17 17: ; preds = %16 - tail call void @free(ptr noundef nonnull %11) #17 + tail call void @free(ptr noundef nonnull %11) #16 br label %18 18: ; preds = %12, %17, %16, %5, %1 @@ -101,7 +101,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull %25 = landingpad { ptr, i32 } catch ptr null %26 = extractvalue { ptr, i32 } %25, 0 - tail call void @__clang_call_terminate(ptr %26) #18 + tail call void @__clang_call_terminate(ptr %26) #17 unreachable 27: ; preds = %18 @@ -128,7 +128,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull br i1 %.not48, label %40, label %39 39: ; preds = %38 - tail call void @free(ptr noundef nonnull %33) #17 + tail call void @free(ptr noundef nonnull %33) #16 br label %40 40: ; preds = %34, %39, %38, %27, %18 @@ -147,7 +147,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull %47 = landingpad { ptr, i32 } catch ptr null %48 = extractvalue { ptr, i32 } %47, 0 - tail call void @__clang_call_terminate(ptr %48) #18 + tail call void @__clang_call_terminate(ptr %48) #17 unreachable 49: ; preds = %40 @@ -174,7 +174,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull br i1 %.not51, label %62, label %61 61: ; preds = %60 - tail call void @free(ptr noundef nonnull %55) #17 + tail call void @free(ptr noundef nonnull %55) #16 br label %62 62: ; preds = %56, %61, %60, %49, %40 @@ -193,7 +193,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull %69 = landingpad { ptr, i32 } catch ptr null %70 = extractvalue { ptr, i32 } %69, 0 - tail call void @__clang_call_terminate(ptr %70) #18 + tail call void @__clang_call_terminate(ptr %70) #17 unreachable 71: ; preds = %62 @@ -220,7 +220,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull br i1 %.not54, label %84, label %83 83: ; preds = %82 - tail call void @free(ptr noundef nonnull %77) #17 + tail call void @free(ptr noundef nonnull %77) #16 br label %84 84: ; preds = %78, %83, %82, %71, %62 @@ -239,7 +239,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull %91 = landingpad { ptr, i32 } catch ptr null %92 = extractvalue { ptr, i32 } %91, 0 - tail call void @__clang_call_terminate(ptr %92) #18 + tail call void @__clang_call_terminate(ptr %92) #17 unreachable 93: ; preds = %84 @@ -266,7 +266,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull br i1 %.not57, label %106, label %105 105: ; preds = %104 - tail call void @free(ptr noundef nonnull %99) #17 + tail call void @free(ptr noundef nonnull %99) #16 br label %106 106: ; preds = %100, %105, %104, %93, %84 @@ -275,14 +275,14 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull store i64 0, ptr %108, align 8 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(28) %87, i8 0, i64 28, i1 false) tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %107, i8 0, i64 20, i1 false) - tail call void @_ZN4ncnn5LayerD2Ev(ptr noundef nonnull align 8 dereferenceable(208) %0) #17 + tail call void @_ZN4ncnn5LayerD2Ev(ptr noundef nonnull align 8 dereferenceable(208) %0) #16 ret void 109: ; preds = %100 %110 = landingpad { ptr, i32 } catch ptr null %111 = extractvalue { ptr, i32 } %110, 0 - tail call void @__clang_call_terminate(ptr %111) #18 + tail call void @__clang_call_terminate(ptr %111) #17 unreachable } @@ -311,7 +311,7 @@ define hidden noundef i32 @_ZN4ncnn20InnerProduct_x86_avx15create_pipelineERKNS_ to label %19 unwind label %28 19: ; preds = %13 - call void @_ZN4ncnn9ParamDictD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %5) #17 + call void @_ZN4ncnn9ParamDictD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %5) #16 %20 = getelementptr inbounds nuw i8, ptr %1, i64 30 %21 = load i8, ptr %20, align 2 %22 = trunc i8 %21 to i1 @@ -332,7 +332,7 @@ common.resume: ; preds = %181, %185, %192, %1 28: ; preds = %13, %2 %29 = landingpad { ptr, i32 } cleanup - call void @_ZN4ncnn9ParamDictD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %5) #17 + call void @_ZN4ncnn9ParamDictD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %5) #16 br label %common.resume 30: ; preds = %19 @@ -397,7 +397,7 @@ _ZN4ncnnL39innerproduct_transform_kernel_fp16s_sseERKNS_3MatERS0_iiRKNS_6OptionE br i1 %.not11.i, label %64, label %63 63: ; preds = %62 - call void @free(ptr noundef nonnull %57) #17 + call void @free(ptr noundef nonnull %57) #16 br label %64 64: ; preds = %63, %62, %58, %51, %48 @@ -614,7 +614,7 @@ _ZN4ncnnL39innerproduct_transform_kernel_fp16s_sseERKNS_3MatERS0_iiRKNS_6OptionE %198 = landingpad { ptr, i32 } catch ptr null %199 = extractvalue { ptr, i32 } %198, 0 - call void @__clang_call_terminate(ptr %199) #18 + call void @__clang_call_terminate(ptr %199) #17 unreachable .lr.ph69.i: ; preds = %.preheader.i, %.lr.ph69.i @@ -700,14 +700,14 @@ _ZN4ncnnL39innerproduct_transform_kernel_fp16s_sseERKNS_3MatERS0_iiRKNS_6OptionE br i1 %.not418.i, label %_ZN4ncnnL33innerproduct_transform_kernel_sseERKNS_3MatERS0_iiRKNS_6OptionE.exit, label %241 241: ; preds = %240 - call void @free(ptr noundef nonnull %235) #17 + call void @free(ptr noundef nonnull %235) #16 br label %_ZN4ncnnL33innerproduct_transform_kernel_sseERKNS_3MatERS0_iiRKNS_6OptionE.exit 242: ; preds = %236 %243 = landingpad { ptr, i32 } catch ptr null %244 = extractvalue { ptr, i32 } %243, 0 - call void @__clang_call_terminate(ptr %244) #18 + call void @__clang_call_terminate(ptr %244) #17 unreachable 245: ; preds = %80 @@ -938,7 +938,7 @@ _ZN4ncnnL39innerproduct_transform_kernel_fp16s_sseERKNS_3MatERS0_iiRKNS_6OptionE %377 = landingpad { ptr, i32 } catch ptr null %378 = extractvalue { ptr, i32 } %377, 0 - call void @__clang_call_terminate(ptr %378) #18 + call void @__clang_call_terminate(ptr %378) #17 unreachable ._crit_edge29.i: ; preds = %._crit_edge.us39.i, %._crit_edge.us.i, %.lr.ph28.split.i, %.preheader8.i @@ -971,14 +971,14 @@ _ZN4ncnnL39innerproduct_transform_kernel_fp16s_sseERKNS_3MatERS0_iiRKNS_6OptionE br i1 %.not425.i, label %_ZN4ncnnL33innerproduct_transform_kernel_sseERKNS_3MatERS0_iiRKNS_6OptionE.exit, label %393 393: ; preds = %392 - call void @free(ptr noundef nonnull %387) #17 + call void @free(ptr noundef nonnull %387) #16 br label %_ZN4ncnnL33innerproduct_transform_kernel_sseERKNS_3MatERS0_iiRKNS_6OptionE.exit 394: ; preds = %388 %395 = landingpad { ptr, i32 } catch ptr null %396 = extractvalue { ptr, i32 } %395, 0 - call void @__clang_call_terminate(ptr %396) #18 + call void @__clang_call_terminate(ptr %396) #17 unreachable .thread4.i: ; preds = %80, %67 @@ -1021,7 +1021,7 @@ _ZN4ncnnL39innerproduct_transform_kernel_fp16s_sseERKNS_3MatERS0_iiRKNS_6OptionE br i1 %.not429.i, label %417, label %416 416: ; preds = %415 - call void @free(ptr noundef nonnull %410) #17 + call void @free(ptr noundef nonnull %410) #16 br label %417 417: ; preds = %416, %415, %411, %404, %401 @@ -1069,7 +1069,7 @@ _ZN4ncnnL39innerproduct_transform_kernel_fp16s_sseERKNS_3MatERS0_iiRKNS_6OptionE .sink.split.i: ; preds = %375, %196 %.sink.i = phi ptr [ %191, %196 ], [ %370, %375 ] %.pn.ph.i = phi { ptr, i32 } [ %182, %196 ], [ %361, %375 ] - call void @free(ptr noundef nonnull %.sink.i) #17 + call void @free(ptr noundef nonnull %.sink.i) #16 br label %common.resume _ZN4ncnnL33innerproduct_transform_kernel_sseERKNS_3MatERS0_iiRKNS_6OptionE.exit: ; preds = %._crit_edge29.i, %381, %388, %392, %393, %._crit_edge72.i, %229, %236, %240, %241, %417 @@ -1109,7 +1109,7 @@ _ZN4ncnnL33innerproduct_transform_kernel_sseERKNS_3MatERS0_iiRKNS_6OptionE.exit: br i1 %.not21, label %464, label %463 463: ; preds = %462 - call void @free(ptr noundef nonnull %457) #17 + call void @free(ptr noundef nonnull %457) #16 br label %464 464: ; preds = %458, %463, %462, %451, %448 @@ -1161,7 +1161,7 @@ define hidden noundef i32 @_ZN4ncnn20InnerProduct_x86_avx24create_pipeline_int8_ br i1 %.not93, label %._crit_edge90, label %.lr.ph .lr.ph: ; preds = %.preheader84 - %21 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %.065, i1 true) + %21 = select i1 %14, i32 3, i32 0 %22 = getelementptr inbounds nuw i8, ptr %0, i64 644 %23 = getelementptr inbounds nuw i8, ptr %0, i64 616 %24 = icmp sgt i32 %8, 0 @@ -1257,7 +1257,7 @@ define hidden noundef i32 @_ZN4ncnn20InnerProduct_x86_avx24create_pipeline_int8_ br i1 %.not77, label %69, label %68 68: ; preds = %67 - call void @free(ptr noundef nonnull %62) #17 + call void @free(ptr noundef nonnull %62) #16 br label %69 69: ; preds = %63, %68, %67, %56, %52 @@ -1267,7 +1267,7 @@ define hidden noundef i32 @_ZN4ncnn20InnerProduct_x86_avx24create_pipeline_int8_ %71 = landingpad { ptr, i32 } catch ptr null %72 = extractvalue { ptr, i32 } %71, 0 - call void @__clang_call_terminate(ptr %72) #18 + call void @__clang_call_terminate(ptr %72) #17 unreachable ._crit_edge90: ; preds = %._crit_edge.us, %.lr.ph, %.preheader84 @@ -1300,7 +1300,7 @@ define hidden noundef i32 @_ZN4ncnn20InnerProduct_x86_avx24create_pipeline_int8_ br i1 %.not80, label %88, label %87 87: ; preds = %86 - call void @free(ptr noundef nonnull %81) #17 + call void @free(ptr noundef nonnull %81) #16 br label %88 88: ; preds = %82, %87, %86, %75, %._crit_edge90 @@ -1325,7 +1325,7 @@ define hidden noundef i32 @_ZN4ncnn20InnerProduct_x86_avx24create_pipeline_int8_ %98 = landingpad { ptr, i32 } catch ptr null %99 = extractvalue { ptr, i32 } %98, 0 - call void @__clang_call_terminate(ptr %99) #18 + call void @__clang_call_terminate(ptr %99) #17 unreachable 100: ; preds = %.lr.ph92, %110 @@ -1389,7 +1389,7 @@ define hidden noundef i32 @_ZN4ncnn20InnerProduct_x86_avx24create_pipeline_int8_ br i1 %.not83, label %134, label %133 133: ; preds = %132 - call void @free(ptr noundef nonnull %127) #17 + call void @free(ptr noundef nonnull %127) #16 br label %134 134: ; preds = %128, %133, %132, %121, %118 @@ -1458,7 +1458,7 @@ _ZN4ncnnL39innerproduct_transform_kernel_fp16s_sseERKNS_3MatERS0_iiRKNS_6OptionE br i1 %.not11, label %30, label %29 29: ; preds = %28 - tail call void @free(ptr noundef nonnull %23) #17 + tail call void @free(ptr noundef nonnull %23) #16 br label %30 30: ; preds = %24, %29, %28, %17, %14 @@ -1493,7 +1493,7 @@ define hidden noundef i32 @_ZN4ncnn20InnerProduct_x86_avx16destroy_pipelineERKNS %13 = load ptr, ptr %10, align 8 %14 = getelementptr inbounds nuw i8, ptr %13, i64 8 %15 = load ptr, ptr %14, align 8 - tail call void %15(ptr noundef nonnull align 8 dereferenceable(208) %10) #17 + tail call void %15(ptr noundef nonnull align 8 dereferenceable(208) %10) #16 br label %16 16: ; preds = %12, %5 @@ -1704,7 +1704,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_avx7fo br i1 %.not92, label %128, label %127 127: ; preds = %126 - call void @free(ptr noundef nonnull %121) #17 + call void @free(ptr noundef nonnull %121) #16 br label %128 128: ; preds = %122, %127, %126, %116, %113 @@ -1714,7 +1714,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_avx7fo %130 = landingpad { ptr, i32 } catch ptr null %131 = extractvalue { ptr, i32 } %130, 0 - call void @__clang_call_terminate(ptr %131) #18 + call void @__clang_call_terminate(ptr %131) #17 unreachable 132: ; preds = %107, %92 @@ -3668,14 +3668,14 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_avx7fo br i1 %.not95, label %.critedge, label %1476 1476: ; preds = %1475 - call void @free(ptr noundef nonnull %1470) #17 + call void @free(ptr noundef nonnull %1470) #16 br label %.critedge 1477: ; preds = %1471 %1478 = landingpad { ptr, i32 } catch ptr null %1479 = extractvalue { ptr, i32 } %1478, 0 - call void @__clang_call_terminate(ptr %1479) #18 + call void @__clang_call_terminate(ptr %1479) #17 unreachable .critedge: ; preds = %.critedge2, %1465, %1475, %1476, %1471, %46, %35, %54, %20, %12 @@ -3859,7 +3859,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_avx16f br i1 %.not9707, label %109, label %108 108: ; preds = %107 - call void @free(ptr noundef nonnull %102) #17 + call void @free(ptr noundef nonnull %102) #16 br label %109 109: ; preds = %103, %108, %107, %97, %94 @@ -3872,7 +3872,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_avx16f %111 = landingpad { ptr, i32 } catch ptr null %112 = extractvalue { ptr, i32 } %111, 0 - call void @__clang_call_terminate(ptr %112) #18 + call void @__clang_call_terminate(ptr %112) #17 unreachable 113: ; preds = %88 @@ -6640,7 +6640,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_avx16f br i1 %.not9730, label %2342, label %2341 2341: ; preds = %2340 - call void @free(ptr noundef nonnull %2335) #17 + call void @free(ptr noundef nonnull %2335) #16 br label %2342 2342: ; preds = %2336, %2341, %2340, %2330, %.critedge2 @@ -6651,7 +6651,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_avx16f %2344 = landingpad { ptr, i32 } catch ptr null %2345 = extractvalue { ptr, i32 } %2344, 0 - call void @__clang_call_terminate(ptr %2345) #18 + call void @__clang_call_terminate(ptr %2345) #17 unreachable 2346: ; preds = %68 @@ -6755,7 +6755,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_avx16f br i1 %.not9698, label %2404, label %2403 2403: ; preds = %2402 - call void @free(ptr noundef nonnull %2397) #17 + call void @free(ptr noundef nonnull %2397) #16 br label %2404 2404: ; preds = %2398, %2403, %2402, %2392, %2389 @@ -6768,7 +6768,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_avx16f %2406 = landingpad { ptr, i32 } catch ptr null %2407 = extractvalue { ptr, i32 } %2406, 0 - call void @__clang_call_terminate(ptr %2407) #18 + call void @__clang_call_terminate(ptr %2407) #17 unreachable 2408: ; preds = %2383, %2368 @@ -7456,7 +7456,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_avx16f br i1 %.not9704, label %2924, label %2923 2923: ; preds = %2922 - call void @free(ptr noundef nonnull %2917) #17 + call void @free(ptr noundef nonnull %2917) #16 br label %2924 2924: ; preds = %2918, %2923, %2922, %2912, %.critedge13 @@ -7467,7 +7467,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_avx16f %2926 = landingpad { ptr, i32 } catch ptr null %2927 = extractvalue { ptr, i32 } %2926, 0 - call void @__clang_call_terminate(ptr %2927) #18 + call void @__clang_call_terminate(ptr %2927) #17 unreachable .critedge.sink.split: ; preds = %2342, %2924 @@ -7507,7 +7507,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_avx16f br i1 %.not9733, label %2941, label %2940 2940: ; preds = %2939 - call void @free(ptr noundef nonnull %2934) #17 + call void @free(ptr noundef nonnull %2934) #16 br label %2941 2941: ; preds = %2935, %2940, %2939, %2929, %.critedge @@ -7517,7 +7517,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_avx16f %2943 = landingpad { ptr, i32 } catch ptr null %2944 = extractvalue { ptr, i32 } %2943, 0 - call void @__clang_call_terminate(ptr %2944) #18 + call void @__clang_call_terminate(ptr %2944) #17 unreachable 2945: ; preds = %2404, %109, %66 @@ -7549,7 +7549,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_avx16f br i1 %.not9711, label %2959, label %2958 2958: ; preds = %2957 - call void @free(ptr noundef nonnull %2952) #17 + call void @free(ptr noundef nonnull %2952) #16 br label %2959 2959: ; preds = %2953, %2958, %2957, %2947, %2945 @@ -7559,7 +7559,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_avx16f %2961 = landingpad { ptr, i32 } catch ptr null %2962 = extractvalue { ptr, i32 } %2961, 0 - call void @__clang_call_terminate(ptr %2962) #18 + call void @__clang_call_terminate(ptr %2962) #17 unreachable } @@ -7736,7 +7736,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_avx13f br i1 %.not82, label %113, label %112 112: ; preds = %111 - call void @free(ptr noundef nonnull %106) #17 + call void @free(ptr noundef nonnull %106) #16 br label %113 113: ; preds = %107, %112, %111, %101, %98 @@ -7746,7 +7746,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_avx13f %115 = landingpad { ptr, i32 } catch ptr null %116 = extractvalue { ptr, i32 } %115, 0 - call void @__clang_call_terminate(ptr %116) #18 + call void @__clang_call_terminate(ptr %116) #17 unreachable 117: ; preds = %92, %77 @@ -7840,14 +7840,14 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_avx13f br i1 %.not85, label %.critedge, label %169 169: ; preds = %168 - call void @free(ptr noundef nonnull %163) #17 + call void @free(ptr noundef nonnull %163) #16 br label %.critedge 170: ; preds = %164 %171 = landingpad { ptr, i32 } catch ptr null %172 = extractvalue { ptr, i32 } %171, 0 - call void @__clang_call_terminate(ptr %172) #18 + call void @__clang_call_terminate(ptr %172) #17 unreachable .critedge: ; preds = %.critedge2, %158, %168, %169, %164, %42, %38, %30, %19 @@ -13171,7 +13171,7 @@ define linkonce_odr hidden void @_ZN4ncnn20InnerProduct_x86_avxD2Ev(ptr noundef br i1 %.not18, label %18, label %17 17: ; preds = %16 - tail call void @free(ptr noundef nonnull %11) #17 + tail call void @free(ptr noundef nonnull %11) #16 br label %18 18: ; preds = %12, %17, %16, %5, %1 @@ -13190,7 +13190,7 @@ define linkonce_odr hidden void @_ZN4ncnn20InnerProduct_x86_avxD2Ev(ptr noundef %25 = landingpad { ptr, i32 } catch ptr null %26 = extractvalue { ptr, i32 } %25, 0 - tail call void @__clang_call_terminate(ptr %26) #18 + tail call void @__clang_call_terminate(ptr %26) #17 unreachable 27: ; preds = %18 @@ -13217,7 +13217,7 @@ define linkonce_odr hidden void @_ZN4ncnn20InnerProduct_x86_avxD2Ev(ptr noundef br i1 %.not21, label %40, label %39 39: ; preds = %38 - tail call void @free(ptr noundef nonnull %33) #17 + tail call void @free(ptr noundef nonnull %33) #16 br label %40 40: ; preds = %34, %39, %38, %27, %18 @@ -13226,21 +13226,21 @@ define linkonce_odr hidden void @_ZN4ncnn20InnerProduct_x86_avxD2Ev(ptr noundef store i64 0, ptr %42, align 8 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(28) %21, i8 0, i64 28, i1 false) tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %41, i8 0, i64 20, i1 false) - tail call void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull align 8 dereferenceable(592) %0) #17 + tail call void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull align 8 dereferenceable(592) %0) #16 ret void 43: ; preds = %34 %44 = landingpad { ptr, i32 } catch ptr null %45 = extractvalue { ptr, i32 } %44, 0 - tail call void @__clang_call_terminate(ptr %45) #18 + tail call void @__clang_call_terminate(ptr %45) #17 unreachable } ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr hidden void @_ZN4ncnn20InnerProduct_x86_avxD0Ev(ptr noundef nonnull align 8 dereferenceable(744) %0) unnamed_addr #2 comdat align 2 { - tail call void @_ZN4ncnn20InnerProduct_x86_avxD2Ev(ptr noundef nonnull align 8 dereferenceable(744) %0) #17 - tail call void @_ZdlPvm(ptr noundef nonnull %0, i64 noundef 744) #19 + tail call void @_ZN4ncnn20InnerProduct_x86_avxD2Ev(ptr noundef nonnull align 8 dereferenceable(744) %0) #16 + tail call void @_ZdlPvm(ptr noundef nonnull %0, i64 noundef 744) #18 ret void } @@ -13256,8 +13256,8 @@ declare noundef i32 @_ZNK4ncnn5Layer15forward_inplaceERNS_3MatERKNS_6OptionE(ptr ; Function Attrs: noreturn nounwind uwtable define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) local_unnamed_addr #8 comdat { - %2 = tail call ptr @__cxa_begin_catch(ptr %0) #17 - tail call void @_ZSt9terminatev() #18 + %2 = tail call ptr @__cxa_begin_catch(ptr %0) #16 + tail call void @_ZSt9terminatev() #17 unreachable } @@ -13320,17 +13320,14 @@ declare float @llvm.tanh.f32(float) #12 ; Function Attrs: nobuiltin nounwind declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #13 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.cttz.i32(i32, i1 immarg) #14 - ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #15 +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #14 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #16 +declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #15 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #16 +declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #15 attributes #0 = { mustprogress uwtable "approx-func-fp-math"="true" "frame-pointer"="all" "min-legal-vector-width"="0" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" "unsafe-fp-math"="true" } attributes #1 = { "approx-func-fp-math"="true" "frame-pointer"="all" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" "unsafe-fp-math"="true" } @@ -13346,12 +13343,11 @@ attributes #10 = { mustprogress nounwind willreturn allockind("free") memory(arg attributes #11 = { mustprogress nocallback nofree nosync nounwind willreturn memory(none) } attributes #12 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #13 = { nobuiltin nounwind "approx-func-fp-math"="true" "frame-pointer"="all" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" "unsafe-fp-math"="true" } -attributes #14 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #15 = { nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #16 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #17 = { nounwind } -attributes #18 = { noreturn nounwind } -attributes #19 = { builtin nounwind } +attributes #14 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #15 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } +attributes #16 = { nounwind } +attributes #17 = { noreturn nounwind } +attributes #18 = { builtin nounwind } !llvm.module.flags = !{!0, !1, !2, !3} diff --git a/bench/ncnn/optimized/innerproduct_x86_avx512.cpp.ll b/bench/ncnn/optimized/innerproduct_x86_avx512.cpp.ll index 3b6a4bc4b6e..e4a1ff82a52 100644 --- a/bench/ncnn/optimized/innerproduct_x86_avx512.cpp.ll +++ b/bench/ncnn/optimized/innerproduct_x86_avx512.cpp.ll @@ -107,7 +107,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull br i1 %.not45, label %18, label %17 17: ; preds = %16 - tail call void @free(ptr noundef nonnull %11) #18 + tail call void @free(ptr noundef nonnull %11) #17 br label %18 18: ; preds = %12, %17, %16, %5, %1 @@ -126,7 +126,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull %25 = landingpad { ptr, i32 } catch ptr null %26 = extractvalue { ptr, i32 } %25, 0 - tail call void @__clang_call_terminate(ptr %26) #19 + tail call void @__clang_call_terminate(ptr %26) #18 unreachable 27: ; preds = %18 @@ -153,7 +153,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull br i1 %.not48, label %40, label %39 39: ; preds = %38 - tail call void @free(ptr noundef nonnull %33) #18 + tail call void @free(ptr noundef nonnull %33) #17 br label %40 40: ; preds = %34, %39, %38, %27, %18 @@ -172,7 +172,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull %47 = landingpad { ptr, i32 } catch ptr null %48 = extractvalue { ptr, i32 } %47, 0 - tail call void @__clang_call_terminate(ptr %48) #19 + tail call void @__clang_call_terminate(ptr %48) #18 unreachable 49: ; preds = %40 @@ -199,7 +199,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull br i1 %.not51, label %62, label %61 61: ; preds = %60 - tail call void @free(ptr noundef nonnull %55) #18 + tail call void @free(ptr noundef nonnull %55) #17 br label %62 62: ; preds = %56, %61, %60, %49, %40 @@ -218,7 +218,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull %69 = landingpad { ptr, i32 } catch ptr null %70 = extractvalue { ptr, i32 } %69, 0 - tail call void @__clang_call_terminate(ptr %70) #19 + tail call void @__clang_call_terminate(ptr %70) #18 unreachable 71: ; preds = %62 @@ -245,7 +245,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull br i1 %.not54, label %84, label %83 83: ; preds = %82 - tail call void @free(ptr noundef nonnull %77) #18 + tail call void @free(ptr noundef nonnull %77) #17 br label %84 84: ; preds = %78, %83, %82, %71, %62 @@ -264,7 +264,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull %91 = landingpad { ptr, i32 } catch ptr null %92 = extractvalue { ptr, i32 } %91, 0 - tail call void @__clang_call_terminate(ptr %92) #19 + tail call void @__clang_call_terminate(ptr %92) #18 unreachable 93: ; preds = %84 @@ -291,7 +291,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull br i1 %.not57, label %106, label %105 105: ; preds = %104 - tail call void @free(ptr noundef nonnull %99) #18 + tail call void @free(ptr noundef nonnull %99) #17 br label %106 106: ; preds = %100, %105, %104, %93, %84 @@ -300,14 +300,14 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull store i64 0, ptr %108, align 8 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(28) %87, i8 0, i64 28, i1 false) tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %107, i8 0, i64 20, i1 false) - tail call void @_ZN4ncnn5LayerD2Ev(ptr noundef nonnull align 8 dereferenceable(208) %0) #18 + tail call void @_ZN4ncnn5LayerD2Ev(ptr noundef nonnull align 8 dereferenceable(208) %0) #17 ret void 109: ; preds = %100 %110 = landingpad { ptr, i32 } catch ptr null %111 = extractvalue { ptr, i32 } %110, 0 - tail call void @__clang_call_terminate(ptr %111) #19 + tail call void @__clang_call_terminate(ptr %111) #18 unreachable } @@ -337,7 +337,7 @@ define hidden noundef i32 @_ZN4ncnn23InnerProduct_x86_avx51215create_pipelineERK to label %20 unwind label %29 20: ; preds = %14 - call void @_ZN4ncnn9ParamDictD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #18 + call void @_ZN4ncnn9ParamDictD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #17 %21 = getelementptr inbounds nuw i8, ptr %1, i64 30 %22 = load i8, ptr %21, align 2 %23 = trunc i8 %22 to i1 @@ -358,7 +358,7 @@ common.resume: ; preds = %246, %250, %257, %2 29: ; preds = %14, %2 %30 = landingpad { ptr, i32 } cleanup - call void @_ZN4ncnn9ParamDictD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #18 + call void @_ZN4ncnn9ParamDictD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #17 br label %common.resume 31: ; preds = %20 @@ -701,7 +701,7 @@ common.resume: ; preds = %246, %250, %257, %2 %263 = landingpad { ptr, i32 } catch ptr null %264 = extractvalue { ptr, i32 } %263, 0 - call void @__clang_call_terminate(ptr %264) #19 + call void @__clang_call_terminate(ptr %264) #18 unreachable .preheader.i: ; preds = %.lr.ph149.i, %.preheader9.i @@ -985,14 +985,14 @@ common.resume: ; preds = %246, %250, %257, %2 br i1 %.not1380.i, label %_ZN4ncnnL33innerproduct_transform_kernel_sseERKNS_3MatERS0_iiRKNS_6OptionE.exit, label %430 430: ; preds = %429 - call void @free(ptr noundef nonnull %424) #18 + call void @free(ptr noundef nonnull %424) #17 br label %_ZN4ncnnL33innerproduct_transform_kernel_sseERKNS_3MatERS0_iiRKNS_6OptionE.exit 431: ; preds = %425 %432 = landingpad { ptr, i32 } catch ptr null %433 = extractvalue { ptr, i32 } %432, 0 - call void @__clang_call_terminate(ptr %433) #19 + call void @__clang_call_terminate(ptr %433) #18 unreachable 434: ; preds = %52 @@ -1185,7 +1185,7 @@ common.resume: ; preds = %246, %250, %257, %2 %559 = landingpad { ptr, i32 } catch ptr null %560 = extractvalue { ptr, i32 } %559, 0 - call void @__clang_call_terminate(ptr %560) #19 + call void @__clang_call_terminate(ptr %560) #18 unreachable .preheader11.i: ; preds = %.lr.ph67.i, %.preheader12.i @@ -1357,14 +1357,14 @@ common.resume: ; preds = %246, %250, %257, %2 br i1 %.not1386.i, label %_ZN4ncnnL33innerproduct_transform_kernel_sseERKNS_3MatERS0_iiRKNS_6OptionE.exit, label %654 654: ; preds = %653 - call void @free(ptr noundef nonnull %648) #18 + call void @free(ptr noundef nonnull %648) #17 br label %_ZN4ncnnL33innerproduct_transform_kernel_sseERKNS_3MatERS0_iiRKNS_6OptionE.exit 655: ; preds = %649 %656 = landingpad { ptr, i32 } catch ptr null %657 = extractvalue { ptr, i32 } %656, 0 - call void @__clang_call_terminate(ptr %657) #19 + call void @__clang_call_terminate(ptr %657) #18 unreachable 658: ; preds = %55 @@ -1591,7 +1591,7 @@ common.resume: ; preds = %246, %250, %257, %2 %788 = landingpad { ptr, i32 } catch ptr null %789 = extractvalue { ptr, i32 } %788, 0 - call void @__clang_call_terminate(ptr %789) #19 + call void @__clang_call_terminate(ptr %789) #18 unreachable ._crit_edge36.i: ; preds = %._crit_edge.i.loopexit.us, %._crit_edge.us.i, %.lr.ph35.split.i, %.preheader15.i @@ -1624,14 +1624,14 @@ common.resume: ; preds = %246, %250, %257, %2 br i1 %.not1393.i, label %_ZN4ncnnL33innerproduct_transform_kernel_sseERKNS_3MatERS0_iiRKNS_6OptionE.exit, label %804 804: ; preds = %803 - call void @free(ptr noundef nonnull %798) #18 + call void @free(ptr noundef nonnull %798) #17 br label %_ZN4ncnnL33innerproduct_transform_kernel_sseERKNS_3MatERS0_iiRKNS_6OptionE.exit 805: ; preds = %799 %806 = landingpad { ptr, i32 } catch ptr null %807 = extractvalue { ptr, i32 } %806, 0 - call void @__clang_call_terminate(ptr %807) #19 + call void @__clang_call_terminate(ptr %807) #18 unreachable 808: ; preds = %55, %39 @@ -1674,7 +1674,7 @@ common.resume: ; preds = %246, %250, %257, %2 br i1 %.not1397.i, label %829, label %828 828: ; preds = %827 - call void @free(ptr noundef nonnull %822) #18 + call void @free(ptr noundef nonnull %822) #17 br label %829 829: ; preds = %828, %827, %823, %816, %813 @@ -1722,7 +1722,7 @@ common.resume: ; preds = %246, %250, %257, %2 .sink.split.i: ; preds = %786, %557, %261 %.sink.i = phi ptr [ %256, %261 ], [ %552, %557 ], [ %781, %786 ] %.pn.ph.i = phi { ptr, i32 } [ %247, %261 ], [ %543, %557 ], [ %772, %786 ] - call void @free(ptr noundef nonnull %.sink.i) #18 + call void @free(ptr noundef nonnull %.sink.i) #17 br label %common.resume _ZN4ncnnL33innerproduct_transform_kernel_sseERKNS_3MatERS0_iiRKNS_6OptionE.exit: ; preds = %._crit_edge36.i, %792, %799, %803, %804, %._crit_edge92.i, %642, %649, %653, %654, %._crit_edge190.i, %418, %425, %429, %430, %829 @@ -1763,7 +1763,7 @@ _ZN4ncnnL33innerproduct_transform_kernel_sseERKNS_3MatERS0_iiRKNS_6OptionE.exit: br i1 %.not21, label %876, label %875 875: ; preds = %874 - call void @free(ptr noundef nonnull %869) #18 + call void @free(ptr noundef nonnull %869) #17 br label %876 876: ; preds = %870, %875, %874, %863, %860 @@ -1815,7 +1815,7 @@ define hidden noundef i32 @_ZN4ncnn23InnerProduct_x86_avx51224create_pipeline_in br i1 %.not93, label %._crit_edge90, label %.lr.ph .lr.ph: ; preds = %.preheader84 - %21 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %.065, i1 true) + %21 = select i1 %14, i32 3, i32 0 %22 = getelementptr inbounds nuw i8, ptr %0, i64 644 %23 = getelementptr inbounds nuw i8, ptr %0, i64 616 %24 = icmp sgt i32 %8, 0 @@ -1911,7 +1911,7 @@ define hidden noundef i32 @_ZN4ncnn23InnerProduct_x86_avx51224create_pipeline_in br i1 %.not77, label %69, label %68 68: ; preds = %67 - call void @free(ptr noundef nonnull %62) #18 + call void @free(ptr noundef nonnull %62) #17 br label %69 69: ; preds = %63, %68, %67, %56, %52 @@ -1921,7 +1921,7 @@ define hidden noundef i32 @_ZN4ncnn23InnerProduct_x86_avx51224create_pipeline_in %71 = landingpad { ptr, i32 } catch ptr null %72 = extractvalue { ptr, i32 } %71, 0 - call void @__clang_call_terminate(ptr %72) #19 + call void @__clang_call_terminate(ptr %72) #18 unreachable ._crit_edge90: ; preds = %._crit_edge.us, %.lr.ph, %.preheader84 @@ -1954,7 +1954,7 @@ define hidden noundef i32 @_ZN4ncnn23InnerProduct_x86_avx51224create_pipeline_in br i1 %.not80, label %88, label %87 87: ; preds = %86 - call void @free(ptr noundef nonnull %81) #18 + call void @free(ptr noundef nonnull %81) #17 br label %88 88: ; preds = %82, %87, %86, %75, %._crit_edge90 @@ -1979,7 +1979,7 @@ define hidden noundef i32 @_ZN4ncnn23InnerProduct_x86_avx51224create_pipeline_in %98 = landingpad { ptr, i32 } catch ptr null %99 = extractvalue { ptr, i32 } %98, 0 - call void @__clang_call_terminate(ptr %99) #19 + call void @__clang_call_terminate(ptr %99) #18 unreachable 100: ; preds = %.lr.ph92, %110 @@ -2043,7 +2043,7 @@ define hidden noundef i32 @_ZN4ncnn23InnerProduct_x86_avx51224create_pipeline_in br i1 %.not83, label %134, label %133 133: ; preds = %132 - call void @free(ptr noundef nonnull %127) #18 + call void @free(ptr noundef nonnull %127) #17 br label %134 134: ; preds = %128, %133, %132, %121, %118 @@ -2431,7 +2431,7 @@ define hidden noundef i32 @_ZN4ncnn23InnerProduct_x86_avx51221create_pipeline_fp %261 = landingpad { ptr, i32 } catch ptr null %262 = extractvalue { ptr, i32 } %261, 0 - call void @__clang_call_terminate(ptr %262) #19 + call void @__clang_call_terminate(ptr %262) #18 unreachable .preheader.i: ; preds = %.lr.ph1594.i, %.preheader1442.i @@ -2775,7 +2775,7 @@ define hidden noundef i32 @_ZN4ncnn23InnerProduct_x86_avx51221create_pipeline_fp %462 = landingpad { ptr, i32 } catch ptr null %463 = extractvalue { ptr, i32 } %462, 0 - call void @__clang_call_terminate(ptr %463) #19 + call void @__clang_call_terminate(ptr %463) #18 unreachable 464: ; preds = %20 @@ -2984,7 +2984,7 @@ define hidden noundef i32 @_ZN4ncnn23InnerProduct_x86_avx51221create_pipeline_fp %595 = landingpad { ptr, i32 } catch ptr null %596 = extractvalue { ptr, i32 } %595, 0 - call void @__clang_call_terminate(ptr %596) #19 + call void @__clang_call_terminate(ptr %596) #18 unreachable .preheader1444.i: ; preds = %.lr.ph1512.i, %.preheader1450.i @@ -3208,7 +3208,7 @@ define hidden noundef i32 @_ZN4ncnn23InnerProduct_x86_avx51221create_pipeline_fp %724 = landingpad { ptr, i32 } catch ptr null %725 = extractvalue { ptr, i32 } %724, 0 - call void @__clang_call_terminate(ptr %725) #19 + call void @__clang_call_terminate(ptr %725) #18 unreachable 726: ; preds = %23 @@ -3344,7 +3344,7 @@ define hidden noundef i32 @_ZN4ncnn23InnerProduct_x86_avx51221create_pipeline_fp %798 = landingpad { ptr, i32 } catch ptr null %799 = extractvalue { ptr, i32 } %798, 0 - call void @__clang_call_terminate(ptr %799) #19 + call void @__clang_call_terminate(ptr %799) #18 unreachable .lr.ph1476.i: ; preds = %.preheader1452.i, %816 @@ -3430,7 +3430,7 @@ define hidden noundef i32 @_ZN4ncnn23InnerProduct_x86_avx51221create_pipeline_fp %839 = landingpad { ptr, i32 } catch ptr null %840 = extractvalue { ptr, i32 } %839, 0 - call void @__clang_call_terminate(ptr %840) #19 + call void @__clang_call_terminate(ptr %840) #18 unreachable 841: ; preds = %23, %2 @@ -3471,7 +3471,7 @@ define hidden noundef i32 @_ZN4ncnn23InnerProduct_x86_avx51221create_pipeline_fp %858 = landingpad { ptr, i32 } catch ptr null %859 = extractvalue { ptr, i32 } %858, 0 - call void @__clang_call_terminate(ptr %859) #19 + call void @__clang_call_terminate(ptr %859) #18 unreachable 860: ; preds = %841 @@ -3509,18 +3509,18 @@ define hidden noundef i32 @_ZN4ncnn23InnerProduct_x86_avx51221create_pipeline_fp %877 = landingpad { ptr, i32 } catch ptr null %878 = extractvalue { ptr, i32 } %877, 0 - call void @__clang_call_terminate(ptr %878) #19 + call void @__clang_call_terminate(ptr %878) #18 unreachable .sink.split.i: ; preds = %856, %837, %722, %460 %.sink.i = phi ptr [ %455, %460 ], [ %717, %722 ], [ %832, %837 ], [ %851, %856 ] - call void @free(ptr noundef nonnull %.sink.i) #18 + call void @free(ptr noundef nonnull %.sink.i) #17 br label %_ZN4ncnnL39innerproduct_transform_kernel_fp16s_sseERKNS_3MatERS0_iiRKNS_6OptionE.exit .sink.split1775.i: ; preds = %875, %796, %593, %259 %.sink1776.i = phi ptr [ %254, %259 ], [ %588, %593 ], [ %791, %796 ], [ %870, %875 ] %.pn.ph.i = phi { ptr, i32 } [ %lpad.phi.i, %259 ], [ %lpad.phi1449.i, %593 ], [ %lpad.phi1457.i, %796 ], [ %861, %875 ] - call void @free(ptr noundef nonnull %.sink1776.i) #18 + call void @free(ptr noundef nonnull %.sink1776.i) #17 br label %879 879: ; preds = %.sink.split1775.i, %875, %871, %864, %860, %796, %792, %785, %782, %593, %589, %582, %579, %259, %255, %248, %245 @@ -3566,7 +3566,7 @@ _ZN4ncnnL39innerproduct_transform_kernel_fp16s_sseERKNS_3MatERS0_iiRKNS_6OptionE br i1 %.not11, label %898, label %897 897: ; preds = %896 - call void @free(ptr noundef nonnull %891) #18 + call void @free(ptr noundef nonnull %891) #17 br label %898 898: ; preds = %892, %897, %896, %885, %882 @@ -3601,7 +3601,7 @@ define hidden noundef i32 @_ZN4ncnn23InnerProduct_x86_avx51216destroy_pipelineER %13 = load ptr, ptr %10, align 8 %14 = getelementptr inbounds nuw i8, ptr %13, i64 8 %15 = load ptr, ptr %14, align 8 - tail call void %15(ptr noundef nonnull align 8 dereferenceable(208) %10) #18 + tail call void %15(ptr noundef nonnull align 8 dereferenceable(208) %10) #17 br label %16 16: ; preds = %12, %5 @@ -3812,7 +3812,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn23InnerProduct_x86_avx512 br i1 %.not92, label %128, label %127 127: ; preds = %126 - call void @free(ptr noundef nonnull %121) #18 + call void @free(ptr noundef nonnull %121) #17 br label %128 128: ; preds = %122, %127, %126, %116, %113 @@ -3822,7 +3822,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn23InnerProduct_x86_avx512 %130 = landingpad { ptr, i32 } catch ptr null %131 = extractvalue { ptr, i32 } %130, 0 - call void @__clang_call_terminate(ptr %131) #19 + call void @__clang_call_terminate(ptr %131) #18 unreachable 132: ; preds = %107, %92 @@ -6060,14 +6060,14 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn23InnerProduct_x86_avx512 br i1 %.not95, label %.critedge, label %1665 1665: ; preds = %1664 - call void @free(ptr noundef nonnull %1659) #18 + call void @free(ptr noundef nonnull %1659) #17 br label %.critedge 1666: ; preds = %1660 %1667 = landingpad { ptr, i32 } catch ptr null %1668 = extractvalue { ptr, i32 } %1667, 0 - call void @__clang_call_terminate(ptr %1668) #19 + call void @__clang_call_terminate(ptr %1668) #18 unreachable .critedge: ; preds = %.critedge2, %1654, %1664, %1665, %1660, %46, %35, %54, %20, %12 @@ -6251,7 +6251,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn23InnerProduct_x86_avx512 br i1 %.not9287, label %109, label %108 108: ; preds = %107 - call void @free(ptr noundef nonnull %102) #18 + call void @free(ptr noundef nonnull %102) #17 br label %109 109: ; preds = %103, %108, %107, %97, %94 @@ -6264,7 +6264,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn23InnerProduct_x86_avx512 %111 = landingpad { ptr, i32 } catch ptr null %112 = extractvalue { ptr, i32 } %111, 0 - call void @__clang_call_terminate(ptr %112) #19 + call void @__clang_call_terminate(ptr %112) #18 unreachable 113: ; preds = %88 @@ -8812,7 +8812,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn23InnerProduct_x86_avx512 br i1 %.not9310, label %2152, label %2151 2151: ; preds = %2150 - call void @free(ptr noundef nonnull %2145) #18 + call void @free(ptr noundef nonnull %2145) #17 br label %2152 2152: ; preds = %2146, %2151, %2150, %2140, %.critedge2 @@ -8823,7 +8823,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn23InnerProduct_x86_avx512 %2154 = landingpad { ptr, i32 } catch ptr null %2155 = extractvalue { ptr, i32 } %2154, 0 - call void @__clang_call_terminate(ptr %2155) #19 + call void @__clang_call_terminate(ptr %2155) #18 unreachable 2156: ; preds = %68 @@ -8927,7 +8927,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn23InnerProduct_x86_avx512 br i1 %.not9278, label %2214, label %2213 2213: ; preds = %2212 - call void @free(ptr noundef nonnull %2207) #18 + call void @free(ptr noundef nonnull %2207) #17 br label %2214 2214: ; preds = %2208, %2213, %2212, %2202, %2199 @@ -8940,7 +8940,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn23InnerProduct_x86_avx512 %2216 = landingpad { ptr, i32 } catch ptr null %2217 = extractvalue { ptr, i32 } %2216, 0 - call void @__clang_call_terminate(ptr %2217) #19 + call void @__clang_call_terminate(ptr %2217) #18 unreachable 2218: ; preds = %2193, %2178 @@ -9584,7 +9584,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn23InnerProduct_x86_avx512 br i1 %.not9284, label %2696, label %2695 2695: ; preds = %2694 - call void @free(ptr noundef nonnull %2689) #18 + call void @free(ptr noundef nonnull %2689) #17 br label %2696 2696: ; preds = %2690, %2695, %2694, %2684, %.critedge13 @@ -9595,7 +9595,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn23InnerProduct_x86_avx512 %2698 = landingpad { ptr, i32 } catch ptr null %2699 = extractvalue { ptr, i32 } %2698, 0 - call void @__clang_call_terminate(ptr %2699) #19 + call void @__clang_call_terminate(ptr %2699) #18 unreachable .critedge.sink.split: ; preds = %2152, %2696 @@ -9635,7 +9635,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn23InnerProduct_x86_avx512 br i1 %.not9313, label %2713, label %2712 2712: ; preds = %2711 - call void @free(ptr noundef nonnull %2706) #18 + call void @free(ptr noundef nonnull %2706) #17 br label %2713 2713: ; preds = %2707, %2712, %2711, %2701, %.critedge @@ -9645,7 +9645,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn23InnerProduct_x86_avx512 %2715 = landingpad { ptr, i32 } catch ptr null %2716 = extractvalue { ptr, i32 } %2715, 0 - call void @__clang_call_terminate(ptr %2716) #19 + call void @__clang_call_terminate(ptr %2716) #18 unreachable 2717: ; preds = %2214, %109, %66 @@ -9677,7 +9677,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn23InnerProduct_x86_avx512 br i1 %.not9291, label %2731, label %2730 2730: ; preds = %2729 - call void @free(ptr noundef nonnull %2724) #18 + call void @free(ptr noundef nonnull %2724) #17 br label %2731 2731: ; preds = %2725, %2730, %2729, %2719, %2717 @@ -9687,7 +9687,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn23InnerProduct_x86_avx512 %2733 = landingpad { ptr, i32 } catch ptr null %2734 = extractvalue { ptr, i32 } %2733, 0 - call void @__clang_call_terminate(ptr %2734) #19 + call void @__clang_call_terminate(ptr %2734) #18 unreachable } @@ -9881,7 +9881,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn23InnerProduct_x86_avx512 br i1 %.not82, label %110, label %109 109: ; preds = %108 - call void @free(ptr noundef nonnull %103) #18 + call void @free(ptr noundef nonnull %103) #17 br label %110 110: ; preds = %104, %109, %108, %98, %.loopexit.split-lp @@ -9891,7 +9891,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn23InnerProduct_x86_avx512 %112 = landingpad { ptr, i32 } catch ptr null %113 = extractvalue { ptr, i32 } %112, 0 - call void @__clang_call_terminate(ptr %113) #19 + call void @__clang_call_terminate(ptr %113) #18 unreachable 114: ; preds = %91, %76 @@ -12302,14 +12302,14 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn23InnerProduct_x86_avx512 br i1 %.not85, label %.critedge, label %1781 1781: ; preds = %1780 - call void @free(ptr noundef nonnull %1775) #18 + call void @free(ptr noundef nonnull %1775) #17 br label %.critedge 1782: ; preds = %1776 %1783 = landingpad { ptr, i32 } catch ptr null %1784 = extractvalue { ptr, i32 } %1783, 0 - call void @__clang_call_terminate(ptr %1784) #19 + call void @__clang_call_terminate(ptr %1784) #18 unreachable .critedge: ; preds = %.critedge2, %1770, %1780, %1781, %1776, %30, %19, %38 @@ -34260,7 +34260,7 @@ define linkonce_odr hidden void @_ZN4ncnn23InnerProduct_x86_avx512D2Ev(ptr nound br i1 %.not18, label %18, label %17 17: ; preds = %16 - tail call void @free(ptr noundef nonnull %11) #18 + tail call void @free(ptr noundef nonnull %11) #17 br label %18 18: ; preds = %12, %17, %16, %5, %1 @@ -34279,7 +34279,7 @@ define linkonce_odr hidden void @_ZN4ncnn23InnerProduct_x86_avx512D2Ev(ptr nound %25 = landingpad { ptr, i32 } catch ptr null %26 = extractvalue { ptr, i32 } %25, 0 - tail call void @__clang_call_terminate(ptr %26) #19 + tail call void @__clang_call_terminate(ptr %26) #18 unreachable 27: ; preds = %18 @@ -34306,7 +34306,7 @@ define linkonce_odr hidden void @_ZN4ncnn23InnerProduct_x86_avx512D2Ev(ptr nound br i1 %.not21, label %40, label %39 39: ; preds = %38 - tail call void @free(ptr noundef nonnull %33) #18 + tail call void @free(ptr noundef nonnull %33) #17 br label %40 40: ; preds = %34, %39, %38, %27, %18 @@ -34315,21 +34315,21 @@ define linkonce_odr hidden void @_ZN4ncnn23InnerProduct_x86_avx512D2Ev(ptr nound store i64 0, ptr %42, align 8 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(28) %21, i8 0, i64 28, i1 false) tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %41, i8 0, i64 20, i1 false) - tail call void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull align 8 dereferenceable(592) %0) #18 + tail call void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull align 8 dereferenceable(592) %0) #17 ret void 43: ; preds = %34 %44 = landingpad { ptr, i32 } catch ptr null %45 = extractvalue { ptr, i32 } %44, 0 - tail call void @__clang_call_terminate(ptr %45) #19 + tail call void @__clang_call_terminate(ptr %45) #18 unreachable } ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr hidden void @_ZN4ncnn23InnerProduct_x86_avx512D0Ev(ptr noundef nonnull align 8 dereferenceable(744) %0) unnamed_addr #2 comdat align 2 { - tail call void @_ZN4ncnn23InnerProduct_x86_avx512D2Ev(ptr noundef nonnull align 8 dereferenceable(744) %0) #18 - tail call void @_ZdlPvm(ptr noundef nonnull %0, i64 noundef 744) #20 + tail call void @_ZN4ncnn23InnerProduct_x86_avx512D2Ev(ptr noundef nonnull align 8 dereferenceable(744) %0) #17 + tail call void @_ZdlPvm(ptr noundef nonnull %0, i64 noundef 744) #19 ret void } @@ -34345,8 +34345,8 @@ declare noundef i32 @_ZNK4ncnn5Layer15forward_inplaceERNS_3MatERKNS_6OptionE(ptr ; Function Attrs: noreturn nounwind uwtable define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) local_unnamed_addr #8 comdat { - %2 = tail call ptr @__cxa_begin_catch(ptr %0) #18 - tail call void @_ZSt9terminatev() #19 + %2 = tail call ptr @__cxa_begin_catch(ptr %0) #17 + tail call void @_ZSt9terminatev() #18 unreachable } @@ -34442,17 +34442,14 @@ declare float @llvm.tanh.f32(float) #11 ; Function Attrs: nobuiltin nounwind declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #14 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.cttz.i32(i32, i1 immarg) #15 - ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #16 +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #15 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #17 +declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #16 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #17 +declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #16 attributes #0 = { mustprogress uwtable "approx-func-fp-math"="true" "frame-pointer"="all" "min-legal-vector-width"="0" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512vl,+cmov,+crc32,+cx8,+evex512,+f16c,+fma,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" "unsafe-fp-math"="true" } attributes #1 = { "approx-func-fp-math"="true" "frame-pointer"="all" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512vl,+cmov,+crc32,+cx8,+evex512,+f16c,+fma,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" "unsafe-fp-math"="true" } @@ -34469,12 +34466,11 @@ attributes #11 = { mustprogress nocallback nofree nosync nounwind speculatable w attributes #12 = { mustprogress nocallback nofree nosync nounwind willreturn memory(none) } attributes #13 = { mustprogress nocallback nofree nosync nounwind willreturn memory(read) } attributes #14 = { nobuiltin nounwind "approx-func-fp-math"="true" "frame-pointer"="all" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512vl,+cmov,+crc32,+cx8,+evex512,+f16c,+fma,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" "unsafe-fp-math"="true" } -attributes #15 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #16 = { nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #17 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #18 = { nounwind } -attributes #19 = { noreturn nounwind } -attributes #20 = { builtin nounwind } +attributes #15 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #16 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } +attributes #17 = { nounwind } +attributes #18 = { noreturn nounwind } +attributes #19 = { builtin nounwind } !llvm.module.flags = !{!0, !1, !2, !3} diff --git a/bench/ncnn/optimized/innerproduct_x86_fma.cpp.ll b/bench/ncnn/optimized/innerproduct_x86_fma.cpp.ll index e6539c3086f..5fdb223613f 100644 --- a/bench/ncnn/optimized/innerproduct_x86_fma.cpp.ll +++ b/bench/ncnn/optimized/innerproduct_x86_fma.cpp.ll @@ -82,7 +82,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull br i1 %.not45, label %18, label %17 17: ; preds = %16 - tail call void @free(ptr noundef nonnull %11) #18 + tail call void @free(ptr noundef nonnull %11) #17 br label %18 18: ; preds = %12, %17, %16, %5, %1 @@ -101,7 +101,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull %25 = landingpad { ptr, i32 } catch ptr null %26 = extractvalue { ptr, i32 } %25, 0 - tail call void @__clang_call_terminate(ptr %26) #19 + tail call void @__clang_call_terminate(ptr %26) #18 unreachable 27: ; preds = %18 @@ -128,7 +128,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull br i1 %.not48, label %40, label %39 39: ; preds = %38 - tail call void @free(ptr noundef nonnull %33) #18 + tail call void @free(ptr noundef nonnull %33) #17 br label %40 40: ; preds = %34, %39, %38, %27, %18 @@ -147,7 +147,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull %47 = landingpad { ptr, i32 } catch ptr null %48 = extractvalue { ptr, i32 } %47, 0 - tail call void @__clang_call_terminate(ptr %48) #19 + tail call void @__clang_call_terminate(ptr %48) #18 unreachable 49: ; preds = %40 @@ -174,7 +174,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull br i1 %.not51, label %62, label %61 61: ; preds = %60 - tail call void @free(ptr noundef nonnull %55) #18 + tail call void @free(ptr noundef nonnull %55) #17 br label %62 62: ; preds = %56, %61, %60, %49, %40 @@ -193,7 +193,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull %69 = landingpad { ptr, i32 } catch ptr null %70 = extractvalue { ptr, i32 } %69, 0 - tail call void @__clang_call_terminate(ptr %70) #19 + tail call void @__clang_call_terminate(ptr %70) #18 unreachable 71: ; preds = %62 @@ -220,7 +220,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull br i1 %.not54, label %84, label %83 83: ; preds = %82 - tail call void @free(ptr noundef nonnull %77) #18 + tail call void @free(ptr noundef nonnull %77) #17 br label %84 84: ; preds = %78, %83, %82, %71, %62 @@ -239,7 +239,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull %91 = landingpad { ptr, i32 } catch ptr null %92 = extractvalue { ptr, i32 } %91, 0 - tail call void @__clang_call_terminate(ptr %92) #19 + tail call void @__clang_call_terminate(ptr %92) #18 unreachable 93: ; preds = %84 @@ -266,7 +266,7 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull br i1 %.not57, label %106, label %105 105: ; preds = %104 - tail call void @free(ptr noundef nonnull %99) #18 + tail call void @free(ptr noundef nonnull %99) #17 br label %106 106: ; preds = %100, %105, %104, %93, %84 @@ -275,14 +275,14 @@ define linkonce_odr hidden void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull store i64 0, ptr %108, align 8 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(28) %87, i8 0, i64 28, i1 false) tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %107, i8 0, i64 20, i1 false) - tail call void @_ZN4ncnn5LayerD2Ev(ptr noundef nonnull align 8 dereferenceable(208) %0) #18 + tail call void @_ZN4ncnn5LayerD2Ev(ptr noundef nonnull align 8 dereferenceable(208) %0) #17 ret void 109: ; preds = %100 %110 = landingpad { ptr, i32 } catch ptr null %111 = extractvalue { ptr, i32 } %110, 0 - tail call void @__clang_call_terminate(ptr %111) #19 + tail call void @__clang_call_terminate(ptr %111) #18 unreachable } @@ -311,7 +311,7 @@ define hidden noundef i32 @_ZN4ncnn20InnerProduct_x86_fma15create_pipelineERKNS_ to label %19 unwind label %28 19: ; preds = %13 - call void @_ZN4ncnn9ParamDictD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %5) #18 + call void @_ZN4ncnn9ParamDictD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %5) #17 %20 = getelementptr inbounds nuw i8, ptr %1, i64 30 %21 = load i8, ptr %20, align 2 %22 = trunc i8 %21 to i1 @@ -332,7 +332,7 @@ common.resume: ; preds = %152, %156, %163, %1 28: ; preds = %13, %2 %29 = landingpad { ptr, i32 } cleanup - call void @_ZN4ncnn9ParamDictD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %5) #18 + call void @_ZN4ncnn9ParamDictD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %5) #17 br label %common.resume 30: ; preds = %19 @@ -556,7 +556,7 @@ common.resume: ; preds = %152, %156, %163, %1 %169 = landingpad { ptr, i32 } catch ptr null %170 = extractvalue { ptr, i32 } %169, 0 - call void @__clang_call_terminate(ptr %170) #19 + call void @__clang_call_terminate(ptr %170) #18 unreachable .lr.ph69.i: ; preds = %.preheader.i, %.lr.ph69.i @@ -642,14 +642,14 @@ common.resume: ; preds = %152, %156, %163, %1 br i1 %.not418.i, label %_ZN4ncnnL33innerproduct_transform_kernel_sseERKNS_3MatERS0_iiRKNS_6OptionE.exit, label %212 212: ; preds = %211 - call void @free(ptr noundef nonnull %206) #18 + call void @free(ptr noundef nonnull %206) #17 br label %_ZN4ncnnL33innerproduct_transform_kernel_sseERKNS_3MatERS0_iiRKNS_6OptionE.exit 213: ; preds = %207 %214 = landingpad { ptr, i32 } catch ptr null %215 = extractvalue { ptr, i32 } %214, 0 - call void @__clang_call_terminate(ptr %215) #19 + call void @__clang_call_terminate(ptr %215) #18 unreachable 216: ; preds = %51 @@ -880,7 +880,7 @@ common.resume: ; preds = %152, %156, %163, %1 %348 = landingpad { ptr, i32 } catch ptr null %349 = extractvalue { ptr, i32 } %348, 0 - call void @__clang_call_terminate(ptr %349) #19 + call void @__clang_call_terminate(ptr %349) #18 unreachable ._crit_edge29.i: ; preds = %._crit_edge.us39.i, %._crit_edge.us.i, %.lr.ph28.split.i, %.preheader8.i @@ -913,14 +913,14 @@ common.resume: ; preds = %152, %156, %163, %1 br i1 %.not425.i, label %_ZN4ncnnL33innerproduct_transform_kernel_sseERKNS_3MatERS0_iiRKNS_6OptionE.exit, label %364 364: ; preds = %363 - call void @free(ptr noundef nonnull %358) #18 + call void @free(ptr noundef nonnull %358) #17 br label %_ZN4ncnnL33innerproduct_transform_kernel_sseERKNS_3MatERS0_iiRKNS_6OptionE.exit 365: ; preds = %359 %366 = landingpad { ptr, i32 } catch ptr null %367 = extractvalue { ptr, i32 } %366, 0 - call void @__clang_call_terminate(ptr %367) #19 + call void @__clang_call_terminate(ptr %367) #18 unreachable .thread4.i: ; preds = %51, %38 @@ -963,7 +963,7 @@ common.resume: ; preds = %152, %156, %163, %1 br i1 %.not429.i, label %388, label %387 387: ; preds = %386 - call void @free(ptr noundef nonnull %381) #18 + call void @free(ptr noundef nonnull %381) #17 br label %388 388: ; preds = %387, %386, %382, %375, %372 @@ -1011,7 +1011,7 @@ common.resume: ; preds = %152, %156, %163, %1 .sink.split.i: ; preds = %346, %167 %.sink.i = phi ptr [ %162, %167 ], [ %341, %346 ] %.pn.ph.i = phi { ptr, i32 } [ %153, %167 ], [ %332, %346 ] - call void @free(ptr noundef nonnull %.sink.i) #18 + call void @free(ptr noundef nonnull %.sink.i) #17 br label %common.resume _ZN4ncnnL33innerproduct_transform_kernel_sseERKNS_3MatERS0_iiRKNS_6OptionE.exit: ; preds = %._crit_edge29.i, %352, %359, %363, %364, %._crit_edge72.i, %200, %207, %211, %212, %388 @@ -1051,7 +1051,7 @@ _ZN4ncnnL33innerproduct_transform_kernel_sseERKNS_3MatERS0_iiRKNS_6OptionE.exit: br i1 %.not21, label %435, label %434 434: ; preds = %433 - call void @free(ptr noundef nonnull %428) #18 + call void @free(ptr noundef nonnull %428) #17 br label %435 435: ; preds = %429, %434, %433, %422, %419 @@ -1103,7 +1103,7 @@ define hidden noundef i32 @_ZN4ncnn20InnerProduct_x86_fma24create_pipeline_int8_ br i1 %.not93, label %._crit_edge90, label %.lr.ph .lr.ph: ; preds = %.preheader84 - %21 = call range(i32 0, 33) i32 @llvm.cttz.i32(i32 %.065, i1 true) + %21 = select i1 %14, i32 3, i32 0 %22 = getelementptr inbounds nuw i8, ptr %0, i64 644 %23 = getelementptr inbounds nuw i8, ptr %0, i64 616 %24 = icmp sgt i32 %8, 0 @@ -1199,7 +1199,7 @@ define hidden noundef i32 @_ZN4ncnn20InnerProduct_x86_fma24create_pipeline_int8_ br i1 %.not77, label %69, label %68 68: ; preds = %67 - call void @free(ptr noundef nonnull %62) #18 + call void @free(ptr noundef nonnull %62) #17 br label %69 69: ; preds = %63, %68, %67, %56, %52 @@ -1209,7 +1209,7 @@ define hidden noundef i32 @_ZN4ncnn20InnerProduct_x86_fma24create_pipeline_int8_ %71 = landingpad { ptr, i32 } catch ptr null %72 = extractvalue { ptr, i32 } %71, 0 - call void @__clang_call_terminate(ptr %72) #19 + call void @__clang_call_terminate(ptr %72) #18 unreachable ._crit_edge90: ; preds = %._crit_edge.us, %.lr.ph, %.preheader84 @@ -1242,7 +1242,7 @@ define hidden noundef i32 @_ZN4ncnn20InnerProduct_x86_fma24create_pipeline_int8_ br i1 %.not80, label %88, label %87 87: ; preds = %86 - call void @free(ptr noundef nonnull %81) #18 + call void @free(ptr noundef nonnull %81) #17 br label %88 88: ; preds = %82, %87, %86, %75, %._crit_edge90 @@ -1267,7 +1267,7 @@ define hidden noundef i32 @_ZN4ncnn20InnerProduct_x86_fma24create_pipeline_int8_ %98 = landingpad { ptr, i32 } catch ptr null %99 = extractvalue { ptr, i32 } %98, 0 - call void @__clang_call_terminate(ptr %99) #19 + call void @__clang_call_terminate(ptr %99) #18 unreachable 100: ; preds = %.lr.ph92, %110 @@ -1331,7 +1331,7 @@ define hidden noundef i32 @_ZN4ncnn20InnerProduct_x86_fma24create_pipeline_int8_ br i1 %.not83, label %134, label %133 133: ; preds = %132 - call void @free(ptr noundef nonnull %127) #18 + call void @free(ptr noundef nonnull %127) #17 br label %134 134: ; preds = %128, %133, %132, %121, %118 @@ -1591,7 +1591,7 @@ define hidden noundef i32 @_ZN4ncnn20InnerProduct_x86_fma21create_pipeline_fp16s %158 = landingpad { ptr, i32 } catch ptr null %159 = extractvalue { ptr, i32 } %158, 0 - call void @__clang_call_terminate(ptr %159) #19 + call void @__clang_call_terminate(ptr %159) #18 unreachable .lr.ph525.i: ; preds = %.preheader.i, %196 @@ -1713,7 +1713,7 @@ define hidden noundef i32 @_ZN4ncnn20InnerProduct_x86_fma21create_pipeline_fp16s %219 = landingpad { ptr, i32 } catch ptr null %220 = extractvalue { ptr, i32 } %219, 0 - call void @__clang_call_terminate(ptr %220) #19 + call void @__clang_call_terminate(ptr %220) #18 unreachable 221: ; preds = %19 @@ -1849,7 +1849,7 @@ define hidden noundef i32 @_ZN4ncnn20InnerProduct_x86_fma21create_pipeline_fp16s %293 = landingpad { ptr, i32 } catch ptr null %294 = extractvalue { ptr, i32 } %293, 0 - call void @__clang_call_terminate(ptr %294) #19 + call void @__clang_call_terminate(ptr %294) #18 unreachable .lr.ph489.i: ; preds = %.preheader465.i, %311 @@ -1935,7 +1935,7 @@ define hidden noundef i32 @_ZN4ncnn20InnerProduct_x86_fma21create_pipeline_fp16s %334 = landingpad { ptr, i32 } catch ptr null %335 = extractvalue { ptr, i32 } %334, 0 - call void @__clang_call_terminate(ptr %335) #19 + call void @__clang_call_terminate(ptr %335) #18 unreachable .thread461.i: ; preds = %19, %2 @@ -1976,7 +1976,7 @@ define hidden noundef i32 @_ZN4ncnn20InnerProduct_x86_fma21create_pipeline_fp16s %352 = landingpad { ptr, i32 } catch ptr null %353 = extractvalue { ptr, i32 } %352, 0 - call void @__clang_call_terminate(ptr %353) #19 + call void @__clang_call_terminate(ptr %353) #18 unreachable 354: ; preds = %.thread461.i @@ -2014,18 +2014,18 @@ define hidden noundef i32 @_ZN4ncnn20InnerProduct_x86_fma21create_pipeline_fp16s %371 = landingpad { ptr, i32 } catch ptr null %372 = extractvalue { ptr, i32 } %371, 0 - call void @__clang_call_terminate(ptr %372) #19 + call void @__clang_call_terminate(ptr %372) #18 unreachable .sink.split.i: ; preds = %350, %332, %217 %.sink.i = phi ptr [ %212, %217 ], [ %327, %332 ], [ %345, %350 ] - call void @free(ptr noundef nonnull %.sink.i) #18 + call void @free(ptr noundef nonnull %.sink.i) #17 br label %_ZN4ncnnL39innerproduct_transform_kernel_fp16s_sseERKNS_3MatERS0_iiRKNS_6OptionE.exit .sink.split574.i: ; preds = %369, %291, %156 %.sink575.i = phi ptr [ %151, %156 ], [ %286, %291 ], [ %364, %369 ] %.pn.ph.i = phi { ptr, i32 } [ %lpad.phi.i, %156 ], [ %lpad.phi470.i, %291 ], [ %355, %369 ] - call void @free(ptr noundef nonnull %.sink575.i) #18 + call void @free(ptr noundef nonnull %.sink575.i) #17 br label %373 373: ; preds = %.sink.split574.i, %369, %365, %358, %354, %291, %287, %280, %277, %156, %152, %145, %142 @@ -2070,7 +2070,7 @@ _ZN4ncnnL39innerproduct_transform_kernel_fp16s_sseERKNS_3MatERS0_iiRKNS_6OptionE br i1 %.not11, label %392, label %391 391: ; preds = %390 - call void @free(ptr noundef nonnull %385) #18 + call void @free(ptr noundef nonnull %385) #17 br label %392 392: ; preds = %386, %391, %390, %379, %376 @@ -2105,7 +2105,7 @@ define hidden noundef i32 @_ZN4ncnn20InnerProduct_x86_fma16destroy_pipelineERKNS %13 = load ptr, ptr %10, align 8 %14 = getelementptr inbounds nuw i8, ptr %13, i64 8 %15 = load ptr, ptr %14, align 8 - tail call void %15(ptr noundef nonnull align 8 dereferenceable(208) %10) #18 + tail call void %15(ptr noundef nonnull align 8 dereferenceable(208) %10) #17 br label %16 16: ; preds = %12, %5 @@ -2316,7 +2316,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_fma7fo br i1 %.not92, label %128, label %127 127: ; preds = %126 - call void @free(ptr noundef nonnull %121) #18 + call void @free(ptr noundef nonnull %121) #17 br label %128 128: ; preds = %122, %127, %126, %116, %113 @@ -2326,7 +2326,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_fma7fo %130 = landingpad { ptr, i32 } catch ptr null %131 = extractvalue { ptr, i32 } %130, 0 - call void @__clang_call_terminate(ptr %131) #19 + call void @__clang_call_terminate(ptr %131) #18 unreachable 132: ; preds = %107, %92 @@ -4146,14 +4146,14 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_fma7fo br i1 %.not95, label %.critedge, label %1354 1354: ; preds = %1353 - call void @free(ptr noundef nonnull %1348) #18 + call void @free(ptr noundef nonnull %1348) #17 br label %.critedge 1355: ; preds = %1349 %1356 = landingpad { ptr, i32 } catch ptr null %1357 = extractvalue { ptr, i32 } %1356, 0 - call void @__clang_call_terminate(ptr %1357) #19 + call void @__clang_call_terminate(ptr %1357) #18 unreachable .critedge: ; preds = %.critedge2, %1343, %1353, %1354, %1349, %46, %35, %54, %20, %12 @@ -4337,7 +4337,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_fma16f br i1 %.not9287, label %109, label %108 108: ; preds = %107 - call void @free(ptr noundef nonnull %102) #18 + call void @free(ptr noundef nonnull %102) #17 br label %109 109: ; preds = %103, %108, %107, %97, %94 @@ -4350,7 +4350,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_fma16f %111 = landingpad { ptr, i32 } catch ptr null %112 = extractvalue { ptr, i32 } %111, 0 - call void @__clang_call_terminate(ptr %112) #19 + call void @__clang_call_terminate(ptr %112) #18 unreachable 113: ; preds = %88 @@ -6898,7 +6898,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_fma16f br i1 %.not9310, label %2152, label %2151 2151: ; preds = %2150 - call void @free(ptr noundef nonnull %2145) #18 + call void @free(ptr noundef nonnull %2145) #17 br label %2152 2152: ; preds = %2146, %2151, %2150, %2140, %.critedge2 @@ -6909,7 +6909,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_fma16f %2154 = landingpad { ptr, i32 } catch ptr null %2155 = extractvalue { ptr, i32 } %2154, 0 - call void @__clang_call_terminate(ptr %2155) #19 + call void @__clang_call_terminate(ptr %2155) #18 unreachable 2156: ; preds = %68 @@ -7013,7 +7013,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_fma16f br i1 %.not9278, label %2214, label %2213 2213: ; preds = %2212 - call void @free(ptr noundef nonnull %2207) #18 + call void @free(ptr noundef nonnull %2207) #17 br label %2214 2214: ; preds = %2208, %2213, %2212, %2202, %2199 @@ -7026,7 +7026,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_fma16f %2216 = landingpad { ptr, i32 } catch ptr null %2217 = extractvalue { ptr, i32 } %2216, 0 - call void @__clang_call_terminate(ptr %2217) #19 + call void @__clang_call_terminate(ptr %2217) #18 unreachable 2218: ; preds = %2193, %2178 @@ -7670,7 +7670,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_fma16f br i1 %.not9284, label %2696, label %2695 2695: ; preds = %2694 - call void @free(ptr noundef nonnull %2689) #18 + call void @free(ptr noundef nonnull %2689) #17 br label %2696 2696: ; preds = %2690, %2695, %2694, %2684, %.critedge13 @@ -7681,7 +7681,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_fma16f %2698 = landingpad { ptr, i32 } catch ptr null %2699 = extractvalue { ptr, i32 } %2698, 0 - call void @__clang_call_terminate(ptr %2699) #19 + call void @__clang_call_terminate(ptr %2699) #18 unreachable .critedge.sink.split: ; preds = %2152, %2696 @@ -7721,7 +7721,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_fma16f br i1 %.not9313, label %2713, label %2712 2712: ; preds = %2711 - call void @free(ptr noundef nonnull %2706) #18 + call void @free(ptr noundef nonnull %2706) #17 br label %2713 2713: ; preds = %2707, %2712, %2711, %2701, %.critedge @@ -7731,7 +7731,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_fma16f %2715 = landingpad { ptr, i32 } catch ptr null %2716 = extractvalue { ptr, i32 } %2715, 0 - call void @__clang_call_terminate(ptr %2716) #19 + call void @__clang_call_terminate(ptr %2716) #18 unreachable 2717: ; preds = %2214, %109, %66 @@ -7763,7 +7763,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_fma16f br i1 %.not9291, label %2731, label %2730 2730: ; preds = %2729 - call void @free(ptr noundef nonnull %2724) #18 + call void @free(ptr noundef nonnull %2724) #17 br label %2731 2731: ; preds = %2725, %2730, %2729, %2719, %2717 @@ -7773,7 +7773,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_fma16f %2733 = landingpad { ptr, i32 } catch ptr null %2734 = extractvalue { ptr, i32 } %2733, 0 - call void @__clang_call_terminate(ptr %2734) #19 + call void @__clang_call_terminate(ptr %2734) #18 unreachable } @@ -7967,7 +7967,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_fma13f br i1 %.not82, label %110, label %109 109: ; preds = %108 - call void @free(ptr noundef nonnull %103) #18 + call void @free(ptr noundef nonnull %103) #17 br label %110 110: ; preds = %104, %109, %108, %98, %.loopexit.split-lp @@ -7977,7 +7977,7 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_fma13f %112 = landingpad { ptr, i32 } catch ptr null %113 = extractvalue { ptr, i32 } %112, 0 - call void @__clang_call_terminate(ptr %113) #19 + call void @__clang_call_terminate(ptr %113) #18 unreachable 114: ; preds = %91, %76 @@ -9944,14 +9944,14 @@ define hidden noundef range(i32 -100, 1) i32 @_ZNK4ncnn20InnerProduct_x86_fma13f br i1 %.not85, label %.critedge, label %1444 1444: ; preds = %1443 - call void @free(ptr noundef nonnull %1438) #18 + call void @free(ptr noundef nonnull %1438) #17 br label %.critedge 1445: ; preds = %1439 %1446 = landingpad { ptr, i32 } catch ptr null %1447 = extractvalue { ptr, i32 } %1446, 0 - call void @__clang_call_terminate(ptr %1447) #19 + call void @__clang_call_terminate(ptr %1447) #18 unreachable .critedge: ; preds = %.critedge2, %1433, %1443, %1444, %1439, %30, %19, %38 @@ -19273,7 +19273,7 @@ define linkonce_odr hidden void @_ZN4ncnn20InnerProduct_x86_fmaD2Ev(ptr noundef br i1 %.not18, label %18, label %17 17: ; preds = %16 - tail call void @free(ptr noundef nonnull %11) #18 + tail call void @free(ptr noundef nonnull %11) #17 br label %18 18: ; preds = %12, %17, %16, %5, %1 @@ -19292,7 +19292,7 @@ define linkonce_odr hidden void @_ZN4ncnn20InnerProduct_x86_fmaD2Ev(ptr noundef %25 = landingpad { ptr, i32 } catch ptr null %26 = extractvalue { ptr, i32 } %25, 0 - tail call void @__clang_call_terminate(ptr %26) #19 + tail call void @__clang_call_terminate(ptr %26) #18 unreachable 27: ; preds = %18 @@ -19319,7 +19319,7 @@ define linkonce_odr hidden void @_ZN4ncnn20InnerProduct_x86_fmaD2Ev(ptr noundef br i1 %.not21, label %40, label %39 39: ; preds = %38 - tail call void @free(ptr noundef nonnull %33) #18 + tail call void @free(ptr noundef nonnull %33) #17 br label %40 40: ; preds = %34, %39, %38, %27, %18 @@ -19328,21 +19328,21 @@ define linkonce_odr hidden void @_ZN4ncnn20InnerProduct_x86_fmaD2Ev(ptr noundef store i64 0, ptr %42, align 8 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(28) %21, i8 0, i64 28, i1 false) tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %41, i8 0, i64 20, i1 false) - tail call void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull align 8 dereferenceable(592) %0) #18 + tail call void @_ZN4ncnn12InnerProductD2Ev(ptr noundef nonnull align 8 dereferenceable(592) %0) #17 ret void 43: ; preds = %34 %44 = landingpad { ptr, i32 } catch ptr null %45 = extractvalue { ptr, i32 } %44, 0 - tail call void @__clang_call_terminate(ptr %45) #19 + tail call void @__clang_call_terminate(ptr %45) #18 unreachable } ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr hidden void @_ZN4ncnn20InnerProduct_x86_fmaD0Ev(ptr noundef nonnull align 8 dereferenceable(744) %0) unnamed_addr #2 comdat align 2 { - tail call void @_ZN4ncnn20InnerProduct_x86_fmaD2Ev(ptr noundef nonnull align 8 dereferenceable(744) %0) #18 - tail call void @_ZdlPvm(ptr noundef nonnull %0, i64 noundef 744) #20 + tail call void @_ZN4ncnn20InnerProduct_x86_fmaD2Ev(ptr noundef nonnull align 8 dereferenceable(744) %0) #17 + tail call void @_ZdlPvm(ptr noundef nonnull %0, i64 noundef 744) #19 ret void } @@ -19358,8 +19358,8 @@ declare noundef i32 @_ZNK4ncnn5Layer15forward_inplaceERNS_3MatERKNS_6OptionE(ptr ; Function Attrs: noreturn nounwind uwtable define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) local_unnamed_addr #8 comdat { - %2 = tail call ptr @__cxa_begin_catch(ptr %0) #18 - tail call void @_ZSt9terminatev() #19 + %2 = tail call ptr @__cxa_begin_catch(ptr %0) #17 + tail call void @_ZSt9terminatev() #18 unreachable } @@ -19437,17 +19437,14 @@ declare float @llvm.tanh.f32(float) #11 ; Function Attrs: nobuiltin nounwind declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #14 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.cttz.i32(i32, i1 immarg) #15 - ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #16 +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #15 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #17 +declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #16 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #17 +declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #16 attributes #0 = { mustprogress uwtable "approx-func-fp-math"="true" "frame-pointer"="all" "min-legal-vector-width"="0" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+cmov,+crc32,+cx8,+f16c,+fma,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" "unsafe-fp-math"="true" } attributes #1 = { "approx-func-fp-math"="true" "frame-pointer"="all" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+cmov,+crc32,+cx8,+f16c,+fma,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" "unsafe-fp-math"="true" } @@ -19464,12 +19461,11 @@ attributes #11 = { mustprogress nocallback nofree nosync nounwind speculatable w attributes #12 = { mustprogress nocallback nofree nosync nounwind willreturn memory(none) } attributes #13 = { mustprogress nocallback nofree nosync nounwind willreturn memory(read) } attributes #14 = { nobuiltin nounwind "approx-func-fp-math"="true" "frame-pointer"="all" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+cmov,+crc32,+cx8,+f16c,+fma,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" "unsafe-fp-math"="true" } -attributes #15 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #16 = { nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #17 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #18 = { nounwind } -attributes #19 = { noreturn nounwind } -attributes #20 = { builtin nounwind } +attributes #15 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #16 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } +attributes #17 = { nounwind } +attributes #18 = { noreturn nounwind } +attributes #19 = { builtin nounwind } !llvm.module.flags = !{!0, !1, !2, !3}