From 0f5f7a7727b3673884539c098ad64133aa099fc8 Mon Sep 17 00:00:00 2001 From: dtcxzyw <15650457+dtcxzyw@users.noreply.github.com> Date: Tue, 9 Sep 2025 10:27:46 +0800 Subject: [PATCH 1/3] pre-commit: PR157030 --- 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..7b67f0768a3 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/157030 export COMPTIME_MODE=0 # Please rebase manually From a2a52173ecbf2e90eac4ed1628da4df896716bd3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 9 Sep 2025 02:43:33 +0000 Subject: [PATCH 2/3] pre-commit: Update --- bench/c3c/optimized/c_abi.ll | 4 +- bench/libigl/optimized/closest_facet.ll | 16 +- bench/lightgbm/optimized/c_api.ll | 12 +- bench/llvm/optimized/CGObjCMac.ll | 141 +++--- bench/meshlab/optimized/alignset.ll | 8 +- bench/nix/optimized/primops.ll | 28 +- bench/nix/optimized/trivial.ll | 20 +- bench/ocio/optimized/GammaOpData.ll | 30 +- bench/wasmedge/optimized/controlInstr.ll | 99 ++-- .../wasmtime-rs/optimized/2ly4gzztxx8hlwxv.ll | 3 +- bench/wireshark/optimized/packet-ehdlc.ll | 458 +++++++++--------- bench/wireshark/optimized/packet-ieee1722.ll | 403 ++++++++------- 12 files changed, 580 insertions(+), 642 deletions(-) diff --git a/bench/c3c/optimized/c_abi.ll b/bench/c3c/optimized/c_abi.ll index ae15badcebd..62cce4cf916 100644 --- a/bench/c3c/optimized/c_abi.ll +++ b/bench/c3c/optimized/c_abi.ll @@ -161,9 +161,7 @@ define dso_local noundef zeroext i1 @abi_arg_is_indirect(ptr noundef readonly ca unreachable switch.lookup: ; preds = %1 - %switch.cast = zext nneg i8 %4 to i9 - %switch.downshift = lshr i9 128, %switch.cast - %switch.masked = trunc i9 %switch.downshift to i1 + %switch.masked = icmp eq i8 %4, 7 ret i1 %switch.masked } diff --git a/bench/libigl/optimized/closest_facet.ll b/bench/libigl/optimized/closest_facet.ll index 28638875937..76311f6e151 100644 --- a/bench/libigl/optimized/closest_facet.ll +++ b/bench/libigl/optimized/closest_facet.ll @@ -51023,9 +51023,7 @@ _ZN4CGAL6HandleD2Ev.exit29: ; preds = %124, %128, %131, %1 br label %_ZN4CGAL6HandleD2Ev.exit33 _ZN4CGAL6HandleD2Ev.exit33: ; preds = %148, %152, %155, %158, %161, %_ZN4CGAL6HandleD2Ev.exit29 - %switch.cast = trunc nuw i32 %switch.tableidx to i3 - %switch.downshift = lshr exact i3 -4, %switch.cast - %switch.masked = trunc i3 %switch.downshift to i1 + %switch.masked = icmp eq i32 %switch.tableidx, 2 call void @llvm.lifetime.end.p0(ptr nonnull %14) %165 = load ptr, ptr %13, align 8, !tbaa !1216 call void @free(ptr noundef %165) #23 @@ -56455,9 +56453,7 @@ _ZN4CGAL6HandleD2Ev.exit29: ; preds = %121, %125, %128, %1 br label %_ZN4CGAL6HandleD2Ev.exit33 _ZN4CGAL6HandleD2Ev.exit33: ; preds = %145, %149, %152, %155, %158, %_ZN4CGAL6HandleD2Ev.exit29 - %switch.cast = trunc nuw i32 %switch.tableidx to i3 - %switch.downshift = lshr exact i3 -4, %switch.cast - %switch.masked = trunc i3 %switch.downshift to i1 + %switch.masked = icmp eq i32 %switch.tableidx, 2 call void @llvm.lifetime.end.p0(ptr nonnull %14) %162 = load ptr, ptr %13, align 8, !tbaa !1216 call void @free(ptr noundef %162) #23 @@ -57715,9 +57711,7 @@ _ZN4CGAL6HandleD2Ev.exit29: ; preds = %124, %128, %131, %1 br label %_ZN4CGAL6HandleD2Ev.exit33 _ZN4CGAL6HandleD2Ev.exit33: ; preds = %148, %152, %155, %158, %161, %_ZN4CGAL6HandleD2Ev.exit29 - %switch.cast = trunc nuw i32 %switch.tableidx to i3 - %switch.downshift = lshr exact i3 -4, %switch.cast - %switch.masked = trunc i3 %switch.downshift to i1 + %switch.masked = icmp eq i32 %switch.tableidx, 2 call void @llvm.lifetime.end.p0(ptr nonnull %14) %165 = load ptr, ptr %13, align 8, !tbaa !1216 call void @free(ptr noundef %165) #23 @@ -59031,9 +59025,7 @@ _ZN4CGAL6HandleD2Ev.exit29: ; preds = %121, %125, %128, %1 br label %_ZN4CGAL6HandleD2Ev.exit33 _ZN4CGAL6HandleD2Ev.exit33: ; preds = %145, %149, %152, %155, %158, %_ZN4CGAL6HandleD2Ev.exit29 - %switch.cast = trunc nuw i32 %switch.tableidx to i3 - %switch.downshift = lshr exact i3 -4, %switch.cast - %switch.masked = trunc i3 %switch.downshift to i1 + %switch.masked = icmp eq i32 %switch.tableidx, 2 call void @llvm.lifetime.end.p0(ptr nonnull %14) %162 = load ptr, ptr %13, align 8, !tbaa !1216 call void @free(ptr noundef %162) #23 diff --git a/bench/lightgbm/optimized/c_api.ll b/bench/lightgbm/optimized/c_api.ll index 373a1e38ab3..855845d0611 100644 --- a/bench/lightgbm/optimized/c_api.ll +++ b/bench/lightgbm/optimized/c_api.ll @@ -45465,15 +45465,9 @@ define linkonce_odr void @_ZNK8LightGBM7Booster15CreatePredictorEiiiiRKNS_6Confi 26: ; preds = %19, %11, %7 %27 = icmp ult i32 %4, 4 - %switch.cast = trunc nuw i32 %4 to i4 - %switch.downshift = lshr i4 2, %switch.cast - %switch.masked = trunc i4 %switch.downshift to i1 - %switch.cast17 = trunc nuw i32 %4 to i4 - %switch.downshift19 = lshr exact i4 -8, %switch.cast17 - %switch.masked20 = trunc i4 %switch.downshift19 to i1 - %switch.cast21 = trunc nuw i32 %4 to i4 - %switch.downshift23 = lshr i4 4, %switch.cast21 - %switch.masked24 = trunc i4 %switch.downshift23 to i1 + %switch.masked = icmp eq i32 %4, 1 + %switch.masked20 = icmp eq i32 %4, 3 + %switch.masked24 = icmp eq i32 %4, 2 %.015 = select i1 %27, i1 %switch.masked, i1 false %.014 = select i1 %27, i1 %switch.masked20, i1 false %.0 = select i1 %27, i1 %switch.masked24, i1 false diff --git a/bench/llvm/optimized/CGObjCMac.ll b/bench/llvm/optimized/CGObjCMac.ll index 4b2cefc652f..092157eaea4 100644 --- a/bench/llvm/optimized/CGObjCMac.ll +++ b/bench/llvm/optimized/CGObjCMac.ll @@ -20588,103 +20588,102 @@ _ZNK5clang8QualType15getObjCLifetimeEv.exit.i: ; preds = %_ZNK5clang8QualType %99 = and i32 %98, 7 %.not.not48.i = icmp eq i32 %99, 0 %brmerge.i = or i1 %.tr50.i, %.not.not48.i - br i1 %brmerge.i, label %100, label %switch.lookup + br i1 %brmerge.i, label %101, label %switch.lookup switch.lookup: ; preds = %_ZNK5clang8QualType15getObjCLifetimeEv.exit.i %switch.tableidx = add nsw i32 %99, -1 %switch.idx.cast = trunc i32 %switch.tableidx to i1 %switch.offset = xor i1 %switch.idx.cast, true - %switch.cast = trunc i32 %switch.tableidx to i3 - %switch.downshift = lshr i3 3, %switch.cast - %switch.masked = trunc i3 %switch.downshift to i1 + %100 = and i32 %switch.tableidx, 6 + %switch.masked = icmp eq i32 %100, 0 br label %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit -100: ; preds = %_ZNK5clang8QualType15getObjCLifetimeEv.exit.i +101: ; preds = %_ZNK5clang8QualType15getObjCLifetimeEv.exit.i br i1 %.not.not48.i, label %.thread40.i, label %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit -.thread40.i: ; preds = %100, %tailrecurse.i - %101 = load ptr, ptr %90, align 16, !tbaa !971 - %102 = getelementptr inbounds nuw i8, ptr %101, i64 8 - %.sroa.0.0.copyload.i.i.i.i23.i = load i64, ptr %102, align 8, !tbaa !394 - %103 = and i64 %.sroa.0.0.copyload.i.i.i.i23.i, -16 - %104 = inttoptr i64 %103 to ptr - %105 = load ptr, ptr %104, align 16, !tbaa !971 - %106 = getelementptr inbounds nuw i8, ptr %105, i64 16 - %107 = load i8, ptr %106, align 16 - switch i8 %107, label %108 [ +.thread40.i: ; preds = %101, %tailrecurse.i + %102 = load ptr, ptr %90, align 16, !tbaa !971 + %103 = getelementptr inbounds nuw i8, ptr %102, i64 8 + %.sroa.0.0.copyload.i.i.i.i23.i = load i64, ptr %103, align 8, !tbaa !394 + %104 = and i64 %.sroa.0.0.copyload.i.i.i.i23.i, -16 + %105 = inttoptr i64 %104 to ptr + %106 = load ptr, ptr %105, align 16, !tbaa !971 + %107 = getelementptr inbounds nuw i8, ptr %106, i64 16 + %108 = load i8, ptr %107, align 16 + switch i8 %108, label %109 [ i8 33, label %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit i8 11, label %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit ] -108: ; preds = %.thread40.i - %109 = load ptr, ptr %88, align 8, !tbaa !1452 - %110 = getelementptr inbounds nuw i8, ptr %109, i64 200 - %111 = load i32, ptr %110, align 8 - %112 = and i32 %111, 192 - %.not13.i = icmp eq i32 %112, 0 - br i1 %.not13.i, label %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit, label %113 +109: ; preds = %.thread40.i + %110 = load ptr, ptr %88, align 8, !tbaa !1452 + %111 = getelementptr inbounds nuw i8, ptr %110, i64 200 + %112 = load i32, ptr %111, align 8 + %113 = and i32 %112, 192 + %.not13.i = icmp eq i32 %113, 0 + br i1 %.not13.i, label %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit, label %114 -113: ; preds = %108 - %114 = getelementptr inbounds nuw i8, ptr %101, i64 16 - %115 = load i8, ptr %114, align 16 - %.not.i68 = icmp eq i8 %115, 41 - br i1 %.not.i68, label %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit.thread24, label %116 +114: ; preds = %109 + %115 = getelementptr inbounds nuw i8, ptr %102, i64 16 + %116 = load i8, ptr %115, align 16 + %.not.i68 = icmp eq i8 %116, 41 + br i1 %.not.i68, label %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit.thread24, label %117 -116: ; preds = %113 - %117 = icmp eq i8 %107, 41 - br i1 %117, label %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit, label %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit +117: ; preds = %114 + %118 = icmp eq i8 %108, 41 + br i1 %118, label %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit, label %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit -_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit: ; preds = %116 - %118 = tail call noundef ptr @_ZNK5clang4Type27getUnqualifiedDesugaredTypeEv(ptr noundef nonnull align 16 dereferenceable(24) %101) #27 - %.not14.not.i = icmp eq ptr %118, null +_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit: ; preds = %117 + %119 = tail call noundef ptr @_ZNK5clang4Type27getUnqualifiedDesugaredTypeEv(ptr noundef nonnull align 16 dereferenceable(24) %102) #27 + %.not14.not.i = icmp eq ptr %119, null br i1 %.not14.not.i, label %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit, label %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit.thread24 -_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit.thread24: ; preds = %113, %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit - %.1.i27 = phi ptr [ %118, %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit ], [ %101, %113 ] - %119 = getelementptr inbounds nuw i8, ptr %.1.i27, i64 32 - %.sroa.0.0.copyload.i.i = load i64, ptr %119, align 16, !tbaa !394 +_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit.thread24: ; preds = %114, %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit + %.1.i27 = phi ptr [ %119, %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit ], [ %102, %114 ] + %120 = getelementptr inbounds nuw i8, ptr %.1.i27, i64 32 + %.sroa.0.0.copyload.i.i = load i64, ptr %120, align 16, !tbaa !394 br label %tailrecurse.i _ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit.loopexit: ; preds = %_ZNK5clang8QualType14isObjCGCStrongEv.exit.i br label %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit -_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit: ; preds = %116, %100, %.thread40.i, %.thread40.i, %108, %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit, %_ZNK5clang8QualType14isObjCGCStrongEv.exit.i, %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit.loopexit, %switch.lookup - %120 = phi i1 [ %switch.offset, %switch.lookup ], [ true, %_ZNK5clang8QualType14isObjCGCStrongEv.exit.i ], [ true, %116 ], [ true, %100 ], [ false, %.thread40.i ], [ true, %108 ], [ true, %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit ], [ false, %.thread40.i ], [ false, %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit.loopexit ] - %121 = phi i1 [ %switch.masked, %switch.lookup ], [ false, %_ZNK5clang8QualType14isObjCGCStrongEv.exit.i ], [ true, %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit ], [ true, %108 ], [ true, %.thread40.i ], [ true, %.thread40.i ], [ true, %100 ], [ true, %116 ], [ true, %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit.loopexit ] - %122 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %123 = load i8, ptr %122, align 8, !tbaa !1413, !range !1011, !noundef !1012 - %124 = trunc nuw i8 %123 to i1 - %or.cond55 = select i1 %124, i1 %120, i1 %121 - br i1 %or.cond55, label %.loopexit, label %125 - -125: ; preds = %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit - %126 = getelementptr inbounds nuw i8, ptr %0, i64 32 - %127 = getelementptr inbounds nuw i8, ptr %0, i64 40 - %128 = load i32, ptr %127, align 8, !tbaa !353 - %129 = getelementptr inbounds nuw i8, ptr %0, i64 44 - %130 = load i32, ptr %129, align 4, !tbaa !354 - %.not.not.i.i.i62 = icmp ult i32 %128, %130 - br i1 %.not.not.i.i.i62, label %_ZN4llvm23SmallVectorTemplateBaseIN12_GLOBAL__N_18IvarInfoELb1EE9push_backES2_.exit67, label %131, !prof !895 - -131: ; preds = %125 - %132 = zext i32 %128 to i64 - %133 = add nuw nsw i64 %132, 1 - %134 = getelementptr inbounds nuw i8, ptr %0, i64 48 - tail call void @_ZN4llvm15SmallVectorBaseIjE8grow_podEPvmm(ptr noundef nonnull align 8 dereferenceable(16) %126, ptr noundef nonnull %134, i64 noundef %133, i64 noundef 16) #27 - %.val2.pre.i63 = load i32, ptr %127, align 8, !tbaa !353 +_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit: ; preds = %117, %101, %.thread40.i, %.thread40.i, %109, %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit, %_ZNK5clang8QualType14isObjCGCStrongEv.exit.i, %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit.loopexit, %switch.lookup + %121 = phi i1 [ %switch.offset, %switch.lookup ], [ true, %_ZNK5clang8QualType14isObjCGCStrongEv.exit.i ], [ true, %117 ], [ true, %101 ], [ false, %.thread40.i ], [ true, %109 ], [ true, %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit ], [ false, %.thread40.i ], [ false, %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit.loopexit ] + %122 = phi i1 [ %switch.masked, %switch.lookup ], [ false, %_ZNK5clang8QualType14isObjCGCStrongEv.exit.i ], [ true, %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit ], [ true, %109 ], [ true, %.thread40.i ], [ true, %.thread40.i ], [ true, %101 ], [ true, %117 ], [ true, %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit.loopexit ] + %123 = getelementptr inbounds nuw i8, ptr %0, i64 24 + %124 = load i8, ptr %123, align 8, !tbaa !1413, !range !1011, !noundef !1012 + %125 = trunc nuw i8 %124 to i1 + %or.cond55 = select i1 %125, i1 %121, i1 %122 + br i1 %or.cond55, label %.loopexit, label %126 + +126: ; preds = %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit + %127 = getelementptr inbounds nuw i8, ptr %0, i64 32 + %128 = getelementptr inbounds nuw i8, ptr %0, i64 40 + %129 = load i32, ptr %128, align 8, !tbaa !353 + %130 = getelementptr inbounds nuw i8, ptr %0, i64 44 + %131 = load i32, ptr %130, align 4, !tbaa !354 + %.not.not.i.i.i62 = icmp ult i32 %129, %131 + br i1 %.not.not.i.i.i62, label %_ZN4llvm23SmallVectorTemplateBaseIN12_GLOBAL__N_18IvarInfoELb1EE9push_backES2_.exit67, label %132, !prof !895 + +132: ; preds = %126 + %133 = zext i32 %129 to i64 + %134 = add nuw nsw i64 %133, 1 + %135 = getelementptr inbounds nuw i8, ptr %0, i64 48 + tail call void @_ZN4llvm15SmallVectorBaseIjE8grow_podEPvmm(ptr noundef nonnull align 8 dereferenceable(16) %127, ptr noundef nonnull %135, i64 noundef %134, i64 noundef 16) #27 + %.val2.pre.i63 = load i32, ptr %128, align 8, !tbaa !353 br label %_ZN4llvm23SmallVectorTemplateBaseIN12_GLOBAL__N_18IvarInfoELb1EE9push_backES2_.exit67 -_ZN4llvm23SmallVectorTemplateBaseIN12_GLOBAL__N_18IvarInfoELb1EE9push_backES2_.exit67: ; preds = %125, %131 - %.val2.i64 = phi i32 [ %128, %125 ], [ %.val2.pre.i63, %131 ] - %.val.i65 = load ptr, ptr %126, align 8, !tbaa !352 - %135 = zext i32 %.val2.i64 to i64 - %136 = getelementptr inbounds nuw %"struct.(anonymous namespace)::IvarInfo", ptr %.val.i65, i64 %135 - store i64 %1, ptr %136, align 1 - %.sroa.2.0..sroa_idx.i66 = getelementptr inbounds nuw i8, ptr %136, i64 8 +_ZN4llvm23SmallVectorTemplateBaseIN12_GLOBAL__N_18IvarInfoELb1EE9push_backES2_.exit67: ; preds = %126, %132 + %.val2.i64 = phi i32 [ %129, %126 ], [ %.val2.pre.i63, %132 ] + %.val.i65 = load ptr, ptr %127, align 8, !tbaa !352 + %136 = zext i32 %.val2.i64 to i64 + %137 = getelementptr inbounds nuw %"struct.(anonymous namespace)::IvarInfo", ptr %.val.i65, i64 %136 + store i64 %1, ptr %137, align 1 + %.sroa.2.0..sroa_idx.i66 = getelementptr inbounds nuw i8, ptr %137, i64 8 store i64 %.1.lcssa, ptr %.sroa.2.0..sroa_idx.i66, align 1 - %137 = load i32, ptr %127, align 8, !tbaa !353 - %138 = add i32 %137, 1 - store i32 %138, ptr %127, align 8, !tbaa !353 + %138 = load i32, ptr %128, align 8, !tbaa !353 + %139 = add i32 %138, 1 + store i32 %139, ptr %128, align 8, !tbaa !353 br label %.loopexit .loopexit: ; preds = %._crit_edge39, %53, %_ZN4llvm23SmallVectorTemplateBaseIN12_GLOBAL__N_18IvarInfoELb1EE9push_backES2_.exit67, %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit, %._crit_edge diff --git a/bench/meshlab/optimized/alignset.ll b/bench/meshlab/optimized/alignset.ll index dc4a2cbc1d6..a46b1150f8f 100644 --- a/bench/meshlab/optimized/alignset.ll +++ b/bench/meshlab/optimized/alignset.ll @@ -3576,12 +3576,8 @@ switch.lookup: ; preds = %58 %switch.cast89 = trunc nuw i32 %61 to i8 %switch.downshift91 = lshr i8 -21, %switch.cast89 %switch.masked92 = trunc i8 %switch.downshift91 to i1 - %switch.cast93 = trunc nuw i32 %61 to i8 - %switch.downshift95 = lshr i8 64, %switch.cast93 - %switch.masked96 = trunc i8 %switch.downshift95 to i1 - %switch.cast97 = trunc nuw i32 %61 to i8 - %switch.downshift99 = lshr exact i8 -128, %switch.cast97 - %switch.masked100 = trunc i8 %switch.downshift99 to i1 + %switch.masked96 = icmp eq i32 %61, 6 + %switch.masked100 = icmp eq i32 %61, 7 br label %66 66: ; preds = %switch.lookup, %58 diff --git a/bench/nix/optimized/primops.ll b/bench/nix/optimized/primops.ll index 9a9d9a67ca3..8334284fa40 100644 --- a/bench/nix/optimized/primops.ll +++ b/bench/nix/optimized/primops.ll @@ -94657,9 +94657,7 @@ define linkonce_odr noundef zeroext i1 @_ZNK3nix15IsIntEqMatcherPIiE10gmock_Impl unreachable switch.lookup: ; preds = %3 - %switch.cast = trunc nuw i32 %switch.tableidx to i16 - %switch.downshift = lshr i16 1, %switch.cast - %switch.masked = trunc nuw i16 %switch.downshift to i1 + %switch.masked = icmp eq i32 %switch.tableidx, 0 %7 = getelementptr inbounds nuw i8, ptr %1, i64 8 %8 = load i64, ptr %7, align 8 %9 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -105037,9 +105035,7 @@ define linkonce_odr noundef zeroext i1 @_ZNK3nix14IsFalseMatcher10gmock_ImplIRKN unreachable switch.lookup: ; preds = %3 - %switch.cast = trunc nuw i32 %switch.tableidx to i16 - %switch.downshift = lshr i16 2, %switch.cast - %switch.masked = trunc i16 %switch.downshift to i1 + %switch.masked = icmp eq i32 %switch.tableidx, 1 %7 = getelementptr inbounds nuw i8, ptr %1, i64 8 %8 = load i8, ptr %7, align 8 %9 = and i8 %8, 1 @@ -105277,9 +105273,7 @@ define linkonce_odr noundef zeroext i1 @_ZNK3nix14IsAttrsMatcher10gmock_ImplIRKN unreachable switch.lookup: ; preds = %3 - %switch.cast = trunc nuw i32 %switch.tableidx to i16 - %switch.downshift = lshr i16 32, %switch.cast - %switch.masked = trunc i16 %switch.downshift to i1 + %switch.masked = icmp eq i32 %switch.tableidx, 5 ret i1 %switch.masked } @@ -105512,9 +105506,7 @@ define linkonce_odr noundef zeroext i1 @_ZNK3nix13IsTrueMatcher10gmock_ImplIRKNS unreachable switch.lookup: ; preds = %3 - %switch.cast = trunc nuw i32 %switch.tableidx to i16 - %switch.downshift = lshr i16 2, %switch.cast - %switch.masked = trunc i16 %switch.downshift to i1 + %switch.masked = icmp eq i32 %switch.tableidx, 1 %7 = getelementptr inbounds nuw i8, ptr %1, i64 8 %8 = load i8, ptr %7, align 8 %9 = trunc i8 %8 to i1 @@ -108243,9 +108235,7 @@ define linkonce_odr noundef zeroext i1 @_ZNK3nix15IsStringMatcher10gmock_ImplIRK unreachable switch.lookup: ; preds = %3 - %switch.cast = trunc nuw i32 %switch.tableidx to i16 - %switch.downshift = lshr i16 4, %switch.cast - %switch.masked = trunc i16 %switch.downshift to i1 + %switch.masked = icmp eq i32 %switch.tableidx, 2 ret i1 %switch.masked } @@ -109215,9 +109205,7 @@ define linkonce_odr noundef zeroext i1 @_ZNK3nix17IsFloatEqMatcherPIdE10gmock_Im unreachable switch.lookup: ; preds = %3 - %switch.cast = trunc nuw i32 %switch.tableidx to i16 - %switch.downshift = lshr exact i16 -32768, %switch.cast - %switch.masked = trunc i16 %switch.downshift to i1 + %switch.masked = icmp eq i32 %switch.tableidx, 15 %7 = getelementptr inbounds nuw i8, ptr %1, i64 8 %8 = load double, ptr %7, align 8 %9 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -120008,9 +119996,7 @@ define linkonce_odr noundef zeroext i1 @_ZNK3nix13IsNullMatcher10gmock_ImplIRKNS unreachable switch.lookup: ; preds = %3 - %switch.cast = trunc nuw i32 %switch.tableidx to i16 - %switch.downshift = lshr i16 16, %switch.cast - %switch.masked = trunc i16 %switch.downshift to i1 + %switch.masked = icmp eq i32 %switch.tableidx, 4 ret i1 %switch.masked } diff --git a/bench/nix/optimized/trivial.ll b/bench/nix/optimized/trivial.ll index d693c7d0320..e77ff237a8c 100644 --- a/bench/nix/optimized/trivial.ll +++ b/bench/nix/optimized/trivial.ll @@ -27914,9 +27914,7 @@ define linkonce_odr noundef zeroext i1 @_ZNK3nix13IsTrueMatcher10gmock_ImplIRKNS unreachable switch.lookup: ; preds = %3 - %switch.cast = trunc nuw i32 %switch.tableidx to i16 - %switch.downshift = lshr i16 2, %switch.cast - %switch.masked = trunc i16 %switch.downshift to i1 + %switch.masked = icmp eq i32 %switch.tableidx, 1 %7 = getelementptr inbounds nuw i8, ptr %1, i64 8 %8 = load i8, ptr %7, align 8 %9 = trunc i8 %8 to i1 @@ -28533,9 +28531,7 @@ define linkonce_odr noundef zeroext i1 @_ZNK3nix14IsFalseMatcher10gmock_ImplIRKN unreachable switch.lookup: ; preds = %3 - %switch.cast = trunc nuw i32 %switch.tableidx to i16 - %switch.downshift = lshr i16 2, %switch.cast - %switch.masked = trunc i16 %switch.downshift to i1 + %switch.masked = icmp eq i32 %switch.tableidx, 1 %7 = getelementptr inbounds nuw i8, ptr %1, i64 8 %8 = load i8, ptr %7, align 8 %9 = and i8 %8, 1 @@ -28773,9 +28769,7 @@ define linkonce_odr noundef zeroext i1 @_ZNK3nix13IsNullMatcher10gmock_ImplIRKNS unreachable switch.lookup: ; preds = %3 - %switch.cast = trunc nuw i32 %switch.tableidx to i16 - %switch.downshift = lshr i16 16, %switch.cast - %switch.masked = trunc i16 %switch.downshift to i1 + %switch.masked = icmp eq i32 %switch.tableidx, 4 ret i1 %switch.masked } @@ -29008,9 +29002,7 @@ define linkonce_odr noundef zeroext i1 @_ZNK3nix15IsIntEqMatcherPIiE10gmock_Impl unreachable switch.lookup: ; preds = %3 - %switch.cast = trunc nuw i32 %switch.tableidx to i16 - %switch.downshift = lshr i16 1, %switch.cast - %switch.masked = trunc nuw i16 %switch.downshift to i1 + %switch.masked = icmp eq i32 %switch.tableidx, 0 %7 = getelementptr inbounds nuw i8, ptr %1, i64 8 %8 = load i64, ptr %7, align 8 %9 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -38835,9 +38827,7 @@ define linkonce_odr noundef zeroext i1 @_ZNK3nix17IsFloatEqMatcherPIdE10gmock_Im unreachable switch.lookup: ; preds = %3 - %switch.cast = trunc nuw i32 %switch.tableidx to i16 - %switch.downshift = lshr exact i16 -32768, %switch.cast - %switch.masked = trunc i16 %switch.downshift to i1 + %switch.masked = icmp eq i32 %switch.tableidx, 15 %7 = getelementptr inbounds nuw i8, ptr %1, i64 8 %8 = load double, ptr %7, align 8 %9 = getelementptr inbounds nuw i8, ptr %0, i64 8 diff --git a/bench/ocio/optimized/GammaOpData.ll b/bench/ocio/optimized/GammaOpData.ll index 51da245a904..950aff199bd 100644 --- a/bench/ocio/optimized/GammaOpData.ll +++ b/bench/ocio/optimized/GammaOpData.ll @@ -3106,43 +3106,35 @@ define hidden noundef zeroext i1 @_ZNK19OpenColorIO_v2_5dev11GammaOpData10mayCom 7: ; preds = %2 %8 = icmp ult i32 %6, 10 - br i1 %8, label %switch.lookup, label %15 + %switch.masked = icmp ult i32 %6, 6 + %spec.select = select i1 %8, i1 %switch.masked, i1 false + br label %switch.lookup 9: ; preds = %2 %10 = and i32 %4, -2 - switch i32 %10, label %15 [ + switch i32 %10, label %switch.lookup [ i32 2, label %11 i32 4, label %13 ] 11: ; preds = %9 %12 = icmp ult i32 %6, 10 - br i1 %12, label %switch.lookup18, label %15 + %switch.masked22 = icmp ult i32 %6, 4 + %spec.select28 = select i1 %12, i1 %switch.masked22, i1 false + br label %switch.lookup 13: ; preds = %9 %14 = icmp ult i32 %6, 10 - br i1 %14, label %switch.lookup23, label %15 - -switch.lookup: ; preds = %7 - %switch.cast = trunc nuw i32 %6 to i10 - %switch.downshift = lshr i10 63, %switch.cast - %switch.masked = trunc i10 %switch.downshift to i1 - br label %15 - -switch.lookup18: ; preds = %11 - %switch.cast19 = trunc nuw i32 %6 to i10 - %switch.downshift21 = lshr i10 15, %switch.cast19 - %switch.masked22 = trunc i10 %switch.downshift21 to i1 - br label %15 + br i1 %14, label %switch.lookup23, label %switch.lookup switch.lookup23: ; preds = %13 %switch.cast24 = trunc nuw i32 %6 to i10 %switch.downshift26 = lshr i10 51, %switch.cast24 %switch.masked27 = trunc i10 %switch.downshift26 to i1 - br label %15 + br label %switch.lookup -15: ; preds = %9, %7, %11, %13, %switch.lookup23, %switch.lookup18, %switch.lookup - %.0 = phi i1 [ %switch.masked, %switch.lookup ], [ %switch.masked22, %switch.lookup18 ], [ %switch.masked27, %switch.lookup23 ], [ false, %13 ], [ false, %11 ], [ false, %7 ], [ false, %9 ] +switch.lookup: ; preds = %11, %7, %9, %13, %switch.lookup23 + %.0 = phi i1 [ %switch.masked27, %switch.lookup23 ], [ false, %13 ], [ false, %9 ], [ %spec.select, %7 ], [ %spec.select28, %11 ] ret i1 %.0 } diff --git a/bench/wasmedge/optimized/controlInstr.ll b/bench/wasmedge/optimized/controlInstr.ll index d5d2023ec30..67768502a2d 100644 --- a/bench/wasmedge/optimized/controlInstr.ll +++ b/bench/wasmedge/optimized/controlInstr.ll @@ -1286,89 +1286,88 @@ switch.lookup: ; preds = %40 %46 = getelementptr inbounds nuw i8, ptr %45, i64 32 %47 = load i8, ptr %46, align 8 %switch.tableidx = add nsw i8 %47, -94 - %switch.cast = trunc i8 %switch.tableidx to i3 - %switch.downshift = lshr exact i3 -4, %switch.cast - %switch.masked = trunc i3 %switch.downshift to i1 + %48 = and i8 %switch.tableidx, 7 + %switch.masked = icmp eq i8 %48, 2 %switch.cast83 = zext i8 %switch.tableidx to i24 %switch.shiftamt84 = shl nuw nsw i24 %switch.cast83, 3 %switch.downshift85 = lshr i24 7367530, %switch.shiftamt84 %switch.masked86 = trunc i24 %switch.downshift85 to i8 - %48 = icmp eq i8 %20, %switch.masked86 - br i1 %48, label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit, label %49 + %49 = icmp eq i8 %20, %switch.masked86 + br i1 %49, label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit, label %50 -49: ; preds = %switch.lookup - switch i8 %20, label %50 [ +50: ; preds = %switch.lookup + switch i8 %20, label %51 [ i8 115, label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit i8 112, label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit ] -50: ; preds = %49 - br i1 %switch.masked, label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit, label %51 - 51: ; preds = %50 - switch i8 %20, label %52 [ + br i1 %switch.masked, label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit, label %52 + +52: ; preds = %51 + switch i8 %20, label %53 [ i8 114, label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit i8 111, label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit ] -52: ; preds = %51 +53: ; preds = %52 %.off = add i8 %20, -109 %switch = icmp ult i8 %.off, 2 br label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit _ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40: ; preds = %18, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit - %53 = getelementptr inbounds nuw i8, ptr %5, i64 3 - %54 = load i8, ptr %53, align 1 - switch i8 %54, label %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit47 [ - i8 115, label %55 - i8 114, label %55 - i8 113, label %55 - i8 112, label %55 - i8 111, label %55 - i8 110, label %55 - i8 109, label %55 - i8 108, label %55 - i8 107, label %55 - i8 106, label %55 - i8 105, label %55 - i8 -128, label %55 + %54 = getelementptr inbounds nuw i8, ptr %5, i64 3 + %55 = load i8, ptr %54, align 1 + switch i8 %55, label %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit47 [ + i8 115, label %56 + i8 114, label %56 + i8 113, label %56 + i8 112, label %56 + i8 111, label %56 + i8 110, label %56 + i8 109, label %56 + i8 108, label %56 + i8 107, label %56 + i8 106, label %56 + i8 105, label %56 + i8 -128, label %56 ] -55: ; preds = %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40 - %56 = getelementptr inbounds nuw i8, ptr %2, i64 4 - %57 = load i32, ptr %56, align 4 - %58 = zext i32 %57 to i64 - %.not = icmp ugt i64 %1, %58 +56: ; preds = %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40 + %57 = getelementptr inbounds nuw i8, ptr %2, i64 4 + %58 = load i32, ptr %57, align 4 + %59 = zext i32 %58 to i64 + %.not = icmp ugt i64 %1, %59 br i1 %.not, label %_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49, label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit -_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49: ; preds = %55 - %59 = getelementptr inbounds nuw ptr, ptr %0, i64 %58 - %60 = load ptr, ptr %59, align 8 - %61 = getelementptr inbounds nuw i8, ptr %60, i64 32 - %62 = load i8, ptr %61, align 8 - %switch78 = icmp eq i8 %62, 96 - switch i8 %54, label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit [ - i8 113, label %63 - i8 115, label %64 +_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49: ; preds = %56 + %60 = getelementptr inbounds nuw ptr, ptr %0, i64 %59 + %61 = load ptr, ptr %60, align 8 + %62 = getelementptr inbounds nuw i8, ptr %61, i64 32 + %63 = load i8, ptr %62, align 8 + %switch78 = icmp eq i8 %63, 96 + switch i8 %55, label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit [ + i8 113, label %64 + i8 115, label %65 ] -63: ; preds = %_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49 +64: ; preds = %_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49 %not. = xor i1 %switch78, true br label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit -64: ; preds = %_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49 +65: ; preds = %_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49 br label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit _ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit47: ; preds = %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40 - %65 = getelementptr inbounds nuw i8, ptr %2, i64 4 - %66 = load i32, ptr %65, align 4 - %67 = getelementptr inbounds nuw i8, ptr %5, i64 4 - %68 = load i32, ptr %67, align 4 - %69 = tail call noundef zeroext i1 @_ZN8WasmEdge3AST11TypeMatcher9matchTypeEN5cxx204spanIKPKNS0_7SubTypeELm18446744073709551615EEEjS8_j(ptr %0, i64 %1, i32 noundef %66, ptr %3, i64 %4, i32 noundef %68) #19 + %66 = getelementptr inbounds nuw i8, ptr %2, i64 4 + %67 = load i32, ptr %66, align 4 + %68 = getelementptr inbounds nuw i8, ptr %5, i64 4 + %69 = load i32, ptr %68, align 4 + %70 = tail call noundef zeroext i1 @_ZN8WasmEdge3AST11TypeMatcher9matchTypeEN5cxx204spanIKPKNS0_7SubTypeELm18446744073709551615EEEjS8_j(ptr %0, i64 %1, i32 noundef %67, ptr %3, i64 %4, i32 noundef %69) #19 br label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit -_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit: ; preds = %63, %11, %64, %52, %15, %50, %switch.lookup, %49, %49, %51, %51, %39, %37, %35, %34, %33, %33, %31, %29, %29, %27, %24, %14, %_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49, %55, %40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit47 - %.0 = phi i1 [ %69, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit47 ], [ false, %40 ], [ false, %55 ], [ false, %14 ], [ %28, %27 ], [ %32, %31 ], [ false, %39 ], [ %36, %35 ], [ %38, %37 ], [ true, %24 ], [ false, %29 ], [ false, %29 ], [ false, %33 ], [ false, %33 ], [ true, %34 ], [ true, %switch.lookup ], [ false, %50 ], [ false, %49 ], [ false, %49 ], [ false, %51 ], [ false, %51 ], [ false, %15 ], [ %switch, %52 ], [ %switch78, %64 ], [ false, %_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49 ], [ %or.cond, %11 ], [ %not., %63 ] +_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit: ; preds = %64, %11, %65, %53, %15, %51, %switch.lookup, %50, %50, %52, %52, %39, %37, %35, %34, %33, %33, %31, %29, %29, %27, %24, %14, %_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49, %56, %40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit47 + %.0 = phi i1 [ %70, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit47 ], [ false, %40 ], [ false, %56 ], [ false, %14 ], [ %28, %27 ], [ %32, %31 ], [ false, %39 ], [ %36, %35 ], [ %38, %37 ], [ true, %24 ], [ false, %29 ], [ false, %29 ], [ false, %33 ], [ false, %33 ], [ true, %34 ], [ true, %switch.lookup ], [ false, %51 ], [ false, %50 ], [ false, %50 ], [ false, %52 ], [ false, %52 ], [ false, %15 ], [ %switch, %53 ], [ %switch78, %65 ], [ false, %_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49 ], [ %or.cond, %11 ], [ %not., %64 ] ret i1 %.0 } diff --git a/bench/wasmtime-rs/optimized/2ly4gzztxx8hlwxv.ll b/bench/wasmtime-rs/optimized/2ly4gzztxx8hlwxv.ll index d71a5a5991d..e5c8b1eab5b 100644 --- a/bench/wasmtime-rs/optimized/2ly4gzztxx8hlwxv.ll +++ b/bench/wasmtime-rs/optimized/2ly4gzztxx8hlwxv.ll @@ -3516,8 +3516,7 @@ define noundef zeroext i1 @_ZN17cranelift_codegen2ir8memflags8MemFlags6notrap17h unreachable switch.lookup: ; preds = %1 - %switch.downshift = lshr exact i16 -32768, %3 - %switch.masked = trunc i16 %switch.downshift to i1 + %switch.masked = icmp eq i16 %3, 15 ret i1 %switch.masked } diff --git a/bench/wireshark/optimized/packet-ehdlc.ll b/bench/wireshark/optimized/packet-ehdlc.ll index a9f05bb0b29..fbf692b3690 100644 --- a/bench/wireshark/optimized/packet-ehdlc.ll +++ b/bench/wireshark/optimized/packet-ehdlc.ll @@ -151,263 +151,261 @@ define internal i32 @dissect_ehdlc(ptr noundef %0, ptr noundef %1, ptr noundef % %.not = icmp eq ptr %2, null br label %switch.lookup -switch.lookup: ; preds = %.lr.ph, %150 - %.0124 = phi i32 [ 4, %.lr.ph ], [ %.1, %150 ] +switch.lookup: ; preds = %.lr.ph, %149 + %.0124 = phi i32 [ 4, %.lr.ph ], [ %.1, %149 ] %10 = tail call zeroext i16 @tvb_get_uint16(ptr noundef %0, i32 noundef %.0124, i32 noundef 0) %11 = and i16 %10, 511 %12 = lshr i16 %10, 13 - %13 = trunc nuw nsw i16 %12 to i8 - %switch.downshift = lshr i8 16, %13 - %switch.masked = trunc i8 %switch.downshift to i1 - %14 = shl nuw nsw i16 %12, 3 - %switch.shiftamt133 = zext nneg i16 %14 to i64 + %switch.masked = icmp eq i16 %12, 4 + %13 = shl nuw nsw i16 %12, 3 + %switch.shiftamt133 = zext nneg i16 %13 to i64 %switch.downshift134 = lshr i64 17519670001795072, %switch.shiftamt133 %switch.masked135 = trunc i64 %switch.downshift134 to i8 %switch.selectcmp.case1.i = icmp eq i16 %12, 1 %switch.selectcmp.case2.i = icmp eq i16 %12, 6 %switch.selectcmp.i = or i1 %switch.selectcmp.case1.i, %switch.selectcmp.case2.i - %15 = lshr i16 %10, 9 - %16 = trunc nuw nsw i16 %15 to i8 - %17 = and i8 %16, 15 - %18 = icmp samesign ult i8 %17, 12 - %19 = or disjoint i8 %17, 48 - %.0.i117 = select i1 %18, i8 %17, i8 %19 - %20 = load ptr, ptr %5, align 8 - %21 = zext nneg i8 %.0.i117 to i32 - tail call void (ptr, i32, ptr, ...) @col_append_fstr(ptr noundef %20, i32 noundef 25, ptr noundef nonnull @.str.55, i32 noundef %21) - %22 = load ptr, ptr %5, align 8 - tail call void @col_set_fence(ptr noundef %22, i32 noundef 25) - br i1 %.not, label %71, label %23 - -23: ; preds = %switch.lookup - %24 = load i32, ptr @proto_ehdlc, align 4 - %25 = zext nneg i16 %11 to i32 - %26 = tail call i32 @tvb_captured_length_remaining(ptr noundef %0, i32 noundef %.0124) - %27 = icmp sgt i32 %26, %25 - br i1 %27, label %30, label %28 - -28: ; preds = %23 - %29 = tail call i32 @tvb_captured_length_remaining(ptr noundef %0, i32 noundef %.0124) - br label %30 - -30: ; preds = %23, %28 - %31 = phi i32 [ %29, %28 ], [ %25, %23 ] - %32 = tail call ptr (ptr, i32, ptr, i32, i32, ptr, ...) @proto_tree_add_protocol_format(ptr noundef nonnull %2, i32 noundef %24, ptr noundef %0, i32 noundef %.0124, i32 noundef %31, ptr noundef nonnull @.str.56) - %33 = load i32, ptr @ett_ehdlc, align 4 - %34 = tail call ptr @proto_item_add_subtree(ptr noundef %32, i32 noundef %33) - %35 = load i32, ptr @hf_ehdlc_csapi, align 4 - %36 = tail call ptr @proto_tree_add_item(ptr noundef %34, i32 noundef %35, ptr noundef %0, i32 noundef %.0124, i32 noundef 1, i32 noundef 0) - %37 = load i32, ptr @hf_ehdlc_ctei, align 4 - %38 = tail call ptr @proto_tree_add_item(ptr noundef %34, i32 noundef %37, ptr noundef %0, i32 noundef %.0124, i32 noundef 1, i32 noundef 0) - %39 = load i32, ptr @hf_ehdlc_c_r, align 4 - %40 = zext i1 %switch.selectcmp.i to i32 - %41 = tail call ptr @proto_tree_add_uint(ptr noundef %34, i32 noundef %39, ptr noundef %0, i32 noundef %.0124, i32 noundef 1, i32 noundef %40) - %.not.i = icmp eq ptr %41, null - br i1 %.not.i, label %proto_item_set_generated.exit, label %42 - -42: ; preds = %30 - %43 = getelementptr inbounds nuw i8, ptr %41, i64 40 - %44 = load ptr, ptr %43, align 8 - %.not5.i = icmp eq ptr %44, null - br i1 %.not5.i, label %proto_item_set_generated.exit, label %45 - -45: ; preds = %42 - %46 = getelementptr inbounds nuw i8, ptr %44, i64 28 - %47 = load i32, ptr %46, align 4 - %48 = or i32 %47, 2 - store i32 %48, ptr %46, align 4 + %14 = lshr i16 %10, 9 + %15 = trunc nuw nsw i16 %14 to i8 + %16 = and i8 %15, 15 + %17 = icmp samesign ult i8 %16, 12 + %18 = or disjoint i8 %16, 48 + %.0.i117 = select i1 %17, i8 %16, i8 %18 + %19 = load ptr, ptr %5, align 8 + %20 = zext nneg i8 %.0.i117 to i32 + tail call void (ptr, i32, ptr, ...) @col_append_fstr(ptr noundef %19, i32 noundef 25, ptr noundef nonnull @.str.55, i32 noundef %20) + %21 = load ptr, ptr %5, align 8 + tail call void @col_set_fence(ptr noundef %21, i32 noundef 25) + br i1 %.not, label %70, label %22 + +22: ; preds = %switch.lookup + %23 = load i32, ptr @proto_ehdlc, align 4 + %24 = zext nneg i16 %11 to i32 + %25 = tail call i32 @tvb_captured_length_remaining(ptr noundef %0, i32 noundef %.0124) + %26 = icmp sgt i32 %25, %24 + br i1 %26, label %29, label %27 + +27: ; preds = %22 + %28 = tail call i32 @tvb_captured_length_remaining(ptr noundef %0, i32 noundef %.0124) + br label %29 + +29: ; preds = %22, %27 + %30 = phi i32 [ %28, %27 ], [ %24, %22 ] + %31 = tail call ptr (ptr, i32, ptr, i32, i32, ptr, ...) @proto_tree_add_protocol_format(ptr noundef nonnull %2, i32 noundef %23, ptr noundef %0, i32 noundef %.0124, i32 noundef %30, ptr noundef nonnull @.str.56) + %32 = load i32, ptr @ett_ehdlc, align 4 + %33 = tail call ptr @proto_item_add_subtree(ptr noundef %31, i32 noundef %32) + %34 = load i32, ptr @hf_ehdlc_csapi, align 4 + %35 = tail call ptr @proto_tree_add_item(ptr noundef %33, i32 noundef %34, ptr noundef %0, i32 noundef %.0124, i32 noundef 1, i32 noundef 0) + %36 = load i32, ptr @hf_ehdlc_ctei, align 4 + %37 = tail call ptr @proto_tree_add_item(ptr noundef %33, i32 noundef %36, ptr noundef %0, i32 noundef %.0124, i32 noundef 1, i32 noundef 0) + %38 = load i32, ptr @hf_ehdlc_c_r, align 4 + %39 = zext i1 %switch.selectcmp.i to i32 + %40 = tail call ptr @proto_tree_add_uint(ptr noundef %33, i32 noundef %38, ptr noundef %0, i32 noundef %.0124, i32 noundef 1, i32 noundef %39) + %.not.i = icmp eq ptr %40, null + br i1 %.not.i, label %proto_item_set_generated.exit, label %41 + +41: ; preds = %29 + %42 = getelementptr inbounds nuw i8, ptr %40, i64 40 + %43 = load ptr, ptr %42, align 8 + %.not5.i = icmp eq ptr %43, null + br i1 %.not5.i, label %proto_item_set_generated.exit, label %44 + +44: ; preds = %41 + %45 = getelementptr inbounds nuw i8, ptr %43, i64 28 + %46 = load i32, ptr %45, align 4 + %47 = or i32 %46, 2 + store i32 %47, ptr %45, align 4 br label %proto_item_set_generated.exit -proto_item_set_generated.exit: ; preds = %30, %42, %45 - %49 = load i32, ptr @hf_ehdlc_sapi, align 4 - %50 = trunc i64 %switch.downshift134 to i32 - %51 = and i32 %50, 63 - %52 = tail call ptr @proto_tree_add_uint(ptr noundef %34, i32 noundef %49, ptr noundef %0, i32 noundef %.0124, i32 noundef 1, i32 noundef %51) - %.not.i118 = icmp eq ptr %52, null - br i1 %.not.i118, label %proto_item_set_generated.exit120, label %53 - -53: ; preds = %proto_item_set_generated.exit - %54 = getelementptr inbounds nuw i8, ptr %52, i64 40 - %55 = load ptr, ptr %54, align 8 - %.not5.i119 = icmp eq ptr %55, null - br i1 %.not5.i119, label %proto_item_set_generated.exit120, label %56 - -56: ; preds = %53 - %57 = getelementptr inbounds nuw i8, ptr %55, i64 28 - %58 = load i32, ptr %57, align 4 - %59 = or i32 %58, 2 - store i32 %59, ptr %57, align 4 +proto_item_set_generated.exit: ; preds = %29, %41, %44 + %48 = load i32, ptr @hf_ehdlc_sapi, align 4 + %49 = trunc i64 %switch.downshift134 to i32 + %50 = and i32 %49, 63 + %51 = tail call ptr @proto_tree_add_uint(ptr noundef %33, i32 noundef %48, ptr noundef %0, i32 noundef %.0124, i32 noundef 1, i32 noundef %50) + %.not.i118 = icmp eq ptr %51, null + br i1 %.not.i118, label %proto_item_set_generated.exit120, label %52 + +52: ; preds = %proto_item_set_generated.exit + %53 = getelementptr inbounds nuw i8, ptr %51, i64 40 + %54 = load ptr, ptr %53, align 8 + %.not5.i119 = icmp eq ptr %54, null + br i1 %.not5.i119, label %proto_item_set_generated.exit120, label %55 + +55: ; preds = %52 + %56 = getelementptr inbounds nuw i8, ptr %54, i64 28 + %57 = load i32, ptr %56, align 4 + %58 = or i32 %57, 2 + store i32 %58, ptr %56, align 4 br label %proto_item_set_generated.exit120 -proto_item_set_generated.exit120: ; preds = %proto_item_set_generated.exit, %53, %56 - %60 = load i32, ptr @hf_ehdlc_tei, align 4 - %61 = tail call ptr @proto_tree_add_uint(ptr noundef %34, i32 noundef %60, ptr noundef %0, i32 noundef %.0124, i32 noundef 1, i32 noundef %21) - %.not.i121 = icmp eq ptr %61, null - br i1 %.not.i121, label %proto_item_set_generated.exit123, label %62 - -62: ; preds = %proto_item_set_generated.exit120 - %63 = getelementptr inbounds nuw i8, ptr %61, i64 40 - %64 = load ptr, ptr %63, align 8 - %.not5.i122 = icmp eq ptr %64, null - br i1 %.not5.i122, label %proto_item_set_generated.exit123, label %65 - -65: ; preds = %62 - %66 = getelementptr inbounds nuw i8, ptr %64, i64 28 - %67 = load i32, ptr %66, align 4 - %68 = or i32 %67, 2 - store i32 %68, ptr %66, align 4 +proto_item_set_generated.exit120: ; preds = %proto_item_set_generated.exit, %52, %55 + %59 = load i32, ptr @hf_ehdlc_tei, align 4 + %60 = tail call ptr @proto_tree_add_uint(ptr noundef %33, i32 noundef %59, ptr noundef %0, i32 noundef %.0124, i32 noundef 1, i32 noundef %20) + %.not.i121 = icmp eq ptr %60, null + br i1 %.not.i121, label %proto_item_set_generated.exit123, label %61 + +61: ; preds = %proto_item_set_generated.exit120 + %62 = getelementptr inbounds nuw i8, ptr %60, i64 40 + %63 = load ptr, ptr %62, align 8 + %.not5.i122 = icmp eq ptr %63, null + br i1 %.not5.i122, label %proto_item_set_generated.exit123, label %64 + +64: ; preds = %61 + %65 = getelementptr inbounds nuw i8, ptr %63, i64 28 + %66 = load i32, ptr %65, align 4 + %67 = or i32 %66, 2 + store i32 %67, ptr %65, align 4 br label %proto_item_set_generated.exit123 -proto_item_set_generated.exit123: ; preds = %proto_item_set_generated.exit120, %62, %65 - %69 = load i32, ptr @hf_ehdlc_data_len, align 4 - %70 = tail call ptr @proto_tree_add_item(ptr noundef %34, i32 noundef %69, ptr noundef %0, i32 noundef %.0124, i32 noundef 2, i32 noundef 0) - br label %71 - -71: ; preds = %proto_item_set_generated.exit123, %switch.lookup - %.0112 = phi ptr [ %34, %proto_item_set_generated.exit123 ], [ null, %switch.lookup ] - %72 = and i8 %switch.masked135, 62 - %or.cond = icmp eq i8 %72, 10 - %73 = add i32 %.0124, 2 - br i1 %or.cond, label %74, label %80 - -74: ; preds = %71 - %75 = zext nneg i16 %11 to i32 - %76 = add nsw i32 %75, -2 - %77 = tail call ptr @tvb_new_subset_length(ptr noundef %0, i32 noundef %73, i32 noundef %76) - %78 = load ptr, ptr @sub_handles.2, align 16 - %79 = tail call i32 @call_dissector(ptr noundef %78, ptr noundef %77, ptr noundef %1, ptr noundef %2) - br label %150, !llvm.loop !6 - -80: ; preds = %71 - br i1 %switch.masked, label %81, label %87 - -81: ; preds = %80 - %82 = zext nneg i16 %11 to i32 - %83 = add nsw i32 %82, -2 - %84 = tail call ptr @tvb_new_subset_length(ptr noundef %0, i32 noundef %73, i32 noundef %83) - %85 = load ptr, ptr @sub_handles.3, align 8 - %86 = tail call i32 @call_dissector(ptr noundef %85, ptr noundef %84, ptr noundef %1, ptr noundef %2) - br label %150, !llvm.loop !6 - -87: ; preds = %80 - %88 = load i32, ptr @hf_ehdlc_control, align 4 - %89 = load i32, ptr @ett_ehdlc_control, align 4 - %90 = tail call i32 @dissect_xdlc_control(ptr noundef %0, i32 noundef %73, ptr noundef %1, ptr noundef %.0112, i32 noundef %88, i32 noundef %89, ptr noundef nonnull @ehdlc_cf_items, ptr noundef nonnull @ehdlc_cf_items_ext, ptr noundef null, ptr noundef null, i1 noundef zeroext false, i1 noundef zeroext true, i1 noundef zeroext false) - %91 = and i32 %90, 65535 - %92 = and i32 %90, 3 - %93 = icmp eq i32 %92, 3 - %94 = select i1 %93, i32 3, i32 4 - %95 = and i32 %90, 1 - %96 = icmp eq i32 %95, 0 - %97 = icmp eq i32 %91, 3 - %or.cond5 = or i1 %96, %97 - br i1 %or.cond5, label %98, label %107 - -98: ; preds = %87 - %99 = add i32 %94, %.0124 - %100 = zext nneg i16 %11 to i32 - %101 = sub nsw i32 %100, %94 - %102 = tail call ptr @tvb_new_subset_length(ptr noundef %0, i32 noundef %99, i32 noundef %101) +proto_item_set_generated.exit123: ; preds = %proto_item_set_generated.exit120, %61, %64 + %68 = load i32, ptr @hf_ehdlc_data_len, align 4 + %69 = tail call ptr @proto_tree_add_item(ptr noundef %33, i32 noundef %68, ptr noundef %0, i32 noundef %.0124, i32 noundef 2, i32 noundef 0) + br label %70 + +70: ; preds = %proto_item_set_generated.exit123, %switch.lookup + %.0112 = phi ptr [ %33, %proto_item_set_generated.exit123 ], [ null, %switch.lookup ] + %71 = and i8 %switch.masked135, 62 + %or.cond = icmp eq i8 %71, 10 + %72 = add i32 %.0124, 2 + br i1 %or.cond, label %73, label %79 + +73: ; preds = %70 + %74 = zext nneg i16 %11 to i32 + %75 = add nsw i32 %74, -2 + %76 = tail call ptr @tvb_new_subset_length(ptr noundef %0, i32 noundef %72, i32 noundef %75) + %77 = load ptr, ptr @sub_handles.2, align 16 + %78 = tail call i32 @call_dissector(ptr noundef %77, ptr noundef %76, ptr noundef %1, ptr noundef %2) + br label %149, !llvm.loop !6 + +79: ; preds = %70 + br i1 %switch.masked, label %80, label %86 + +80: ; preds = %79 + %81 = zext nneg i16 %11 to i32 + %82 = add nsw i32 %81, -2 + %83 = tail call ptr @tvb_new_subset_length(ptr noundef %0, i32 noundef %72, i32 noundef %82) + %84 = load ptr, ptr @sub_handles.3, align 8 + %85 = tail call i32 @call_dissector(ptr noundef %84, ptr noundef %83, ptr noundef %1, ptr noundef %2) + br label %149, !llvm.loop !6 + +86: ; preds = %79 + %87 = load i32, ptr @hf_ehdlc_control, align 4 + %88 = load i32, ptr @ett_ehdlc_control, align 4 + %89 = tail call i32 @dissect_xdlc_control(ptr noundef %0, i32 noundef %72, ptr noundef %1, ptr noundef %.0112, i32 noundef %87, i32 noundef %88, ptr noundef nonnull @ehdlc_cf_items, ptr noundef nonnull @ehdlc_cf_items_ext, ptr noundef null, ptr noundef null, i1 noundef zeroext false, i1 noundef zeroext true, i1 noundef zeroext false) + %90 = and i32 %89, 65535 + %91 = and i32 %89, 3 + %92 = icmp eq i32 %91, 3 + %93 = select i1 %92, i32 3, i32 4 + %94 = and i32 %89, 1 + %95 = icmp eq i32 %94, 0 + %96 = icmp eq i32 %90, 3 + %or.cond5 = or i1 %95, %96 + br i1 %or.cond5, label %97, label %106 + +97: ; preds = %86 + %98 = add i32 %93, %.0124 + %99 = zext nneg i16 %11 to i32 + %100 = sub nsw i32 %99, %93 + %101 = tail call ptr @tvb_new_subset_length(ptr noundef %0, i32 noundef %98, i32 noundef %100) switch i8 %switch.masked135, label %dissect_ehdlc_xid.exit.sink.split [ - i8 0, label %103 - i8 62, label %105 + i8 0, label %102 + i8 62, label %104 ] -103: ; preds = %98 - %104 = icmp samesign ult i16 %11, 5 - br i1 %104, label %dissect_ehdlc_xid.exit, label %dissect_ehdlc_xid.exit.sink.split - -105: ; preds = %98 - %106 = icmp samesign ult i16 %11, 5 - br i1 %106, label %dissect_ehdlc_xid.exit, label %dissect_ehdlc_xid.exit.sink.split - -107: ; preds = %87 - %108 = icmp eq i32 %91, 175 - br i1 %108, label %109, label %dissect_ehdlc_xid.exit - -109: ; preds = %107 - %110 = add i32 %94, %.0124 - %111 = zext nneg i16 %11 to i32 - %112 = sub nsw i32 %111, %94 - %113 = load i32, ptr @hf_ehdlc_xid_payload, align 4 - %114 = tail call ptr @proto_tree_add_item(ptr noundef %.0112, i32 noundef %113, ptr noundef %0, i32 noundef %110, i32 noundef range(i32 -4, 509) %112, i32 noundef 0) - %115 = load i32, ptr @ett_ehdlc_xid, align 4 - %116 = tail call ptr @proto_item_add_subtree(ptr noundef %114, i32 noundef %115) - %117 = load i32, ptr @hf_ehdlc_xid_format_id, align 4 - %118 = add i32 %110, 1 - %119 = tail call ptr @proto_tree_add_item(ptr noundef %116, i32 noundef %117, ptr noundef %0, i32 noundef %110, i32 noundef 1, i32 noundef 0) - %120 = load i32, ptr @hf_ehdlc_xid_group_id, align 4 - %121 = add i32 %110, 2 - %122 = tail call ptr @proto_tree_add_item(ptr noundef %116, i32 noundef %120, ptr noundef %0, i32 noundef %118, i32 noundef 1, i32 noundef 0) - %123 = load i32, ptr @hf_ehdlc_xid_len, align 4 - %124 = tail call ptr @proto_tree_add_item(ptr noundef %116, i32 noundef %123, ptr noundef %0, i32 noundef %121, i32 noundef 2, i32 noundef 0) - %125 = add i32 %110, 4 - %126 = tail call i32 @tvb_reported_length_remaining(ptr noundef %0, i32 noundef %125) - %127 = icmp sgt i32 %126, 1 - br i1 %127, label %.lr.ph.i, label %dissect_ehdlc_xid.exit - -.lr.ph.i: ; preds = %109, %144 - %.038.i = phi i32 [ %145, %144 ], [ %125, %109 ] - %128 = add i32 %.038.i, 1 - %129 = tail call zeroext i8 @tvb_get_uint8(ptr noundef %0, i32 noundef %.038.i) - %130 = add i32 %.038.i, 2 - %131 = tail call zeroext i8 @tvb_get_uint8(ptr noundef %0, i32 noundef %128) - switch i8 %129, label %.lr.ph._crit_edge.i [ - i8 7, label %132 - i8 8, label %136 - i8 9, label %140 +102: ; preds = %97 + %103 = icmp samesign ult i16 %11, 5 + br i1 %103, label %dissect_ehdlc_xid.exit, label %dissect_ehdlc_xid.exit.sink.split + +104: ; preds = %97 + %105 = icmp samesign ult i16 %11, 5 + br i1 %105, label %dissect_ehdlc_xid.exit, label %dissect_ehdlc_xid.exit.sink.split + +106: ; preds = %86 + %107 = icmp eq i32 %90, 175 + br i1 %107, label %108, label %dissect_ehdlc_xid.exit + +108: ; preds = %106 + %109 = add i32 %93, %.0124 + %110 = zext nneg i16 %11 to i32 + %111 = sub nsw i32 %110, %93 + %112 = load i32, ptr @hf_ehdlc_xid_payload, align 4 + %113 = tail call ptr @proto_tree_add_item(ptr noundef %.0112, i32 noundef %112, ptr noundef %0, i32 noundef %109, i32 noundef range(i32 -4, 509) %111, i32 noundef 0) + %114 = load i32, ptr @ett_ehdlc_xid, align 4 + %115 = tail call ptr @proto_item_add_subtree(ptr noundef %113, i32 noundef %114) + %116 = load i32, ptr @hf_ehdlc_xid_format_id, align 4 + %117 = add i32 %109, 1 + %118 = tail call ptr @proto_tree_add_item(ptr noundef %115, i32 noundef %116, ptr noundef %0, i32 noundef %109, i32 noundef 1, i32 noundef 0) + %119 = load i32, ptr @hf_ehdlc_xid_group_id, align 4 + %120 = add i32 %109, 2 + %121 = tail call ptr @proto_tree_add_item(ptr noundef %115, i32 noundef %119, ptr noundef %0, i32 noundef %117, i32 noundef 1, i32 noundef 0) + %122 = load i32, ptr @hf_ehdlc_xid_len, align 4 + %123 = tail call ptr @proto_tree_add_item(ptr noundef %115, i32 noundef %122, ptr noundef %0, i32 noundef %120, i32 noundef 2, i32 noundef 0) + %124 = add i32 %109, 4 + %125 = tail call i32 @tvb_reported_length_remaining(ptr noundef %0, i32 noundef %124) + %126 = icmp sgt i32 %125, 1 + br i1 %126, label %.lr.ph.i, label %dissect_ehdlc_xid.exit + +.lr.ph.i: ; preds = %108, %143 + %.038.i = phi i32 [ %144, %143 ], [ %124, %108 ] + %127 = add i32 %.038.i, 1 + %128 = tail call zeroext i8 @tvb_get_uint8(ptr noundef %0, i32 noundef %.038.i) + %129 = add i32 %.038.i, 2 + %130 = tail call zeroext i8 @tvb_get_uint8(ptr noundef %0, i32 noundef %127) + switch i8 %128, label %.lr.ph._crit_edge.i [ + i8 7, label %131 + i8 8, label %135 + i8 9, label %139 ] .lr.ph._crit_edge.i: ; preds = %.lr.ph.i - %.pre.i = zext i8 %131 to i32 - br label %144 - -132: ; preds = %.lr.ph.i - %133 = load i32, ptr @hf_ehdlc_xid_win_tx, align 4 - %134 = zext i8 %131 to i32 - %135 = tail call ptr @proto_tree_add_item(ptr noundef %116, i32 noundef %133, ptr noundef %0, i32 noundef %130, i32 noundef %134, i32 noundef 0) - br label %144 - -136: ; preds = %.lr.ph.i - %137 = load i32, ptr @hf_ehdlc_xid_win_rx, align 4 - %138 = zext i8 %131 to i32 - %139 = tail call ptr @proto_tree_add_item(ptr noundef %116, i32 noundef %137, ptr noundef %0, i32 noundef %130, i32 noundef %138, i32 noundef 0) - br label %144 - -140: ; preds = %.lr.ph.i - %141 = load i32, ptr @hf_ehdlc_xid_ack_tmr_ms, align 4 - %142 = zext i8 %131 to i32 - %143 = tail call ptr @proto_tree_add_item(ptr noundef %116, i32 noundef %141, ptr noundef %0, i32 noundef %130, i32 noundef %142, i32 noundef 0) - br label %144 - -144: ; preds = %140, %136, %132, %.lr.ph._crit_edge.i - %.pre-phi.i = phi i32 [ %.pre.i, %.lr.ph._crit_edge.i ], [ %142, %140 ], [ %138, %136 ], [ %134, %132 ] - %145 = add i32 %.pre-phi.i, %130 - %146 = tail call i32 @tvb_reported_length_remaining(ptr noundef %0, i32 noundef %145) - %147 = icmp sgt i32 %146, 1 - br i1 %147, label %.lr.ph.i, label %dissect_ehdlc_xid.exit, !llvm.loop !8 - -dissect_ehdlc_xid.exit.sink.split: ; preds = %98, %105, %103 - %.sink.in = phi ptr [ @sub_handles.0, %103 ], [ @sub_handles.1, %105 ], [ @sub_handles.4, %98 ] + %.pre.i = zext i8 %130 to i32 + br label %143 + +131: ; preds = %.lr.ph.i + %132 = load i32, ptr @hf_ehdlc_xid_win_tx, align 4 + %133 = zext i8 %130 to i32 + %134 = tail call ptr @proto_tree_add_item(ptr noundef %115, i32 noundef %132, ptr noundef %0, i32 noundef %129, i32 noundef %133, i32 noundef 0) + br label %143 + +135: ; preds = %.lr.ph.i + %136 = load i32, ptr @hf_ehdlc_xid_win_rx, align 4 + %137 = zext i8 %130 to i32 + %138 = tail call ptr @proto_tree_add_item(ptr noundef %115, i32 noundef %136, ptr noundef %0, i32 noundef %129, i32 noundef %137, i32 noundef 0) + br label %143 + +139: ; preds = %.lr.ph.i + %140 = load i32, ptr @hf_ehdlc_xid_ack_tmr_ms, align 4 + %141 = zext i8 %130 to i32 + %142 = tail call ptr @proto_tree_add_item(ptr noundef %115, i32 noundef %140, ptr noundef %0, i32 noundef %129, i32 noundef %141, i32 noundef 0) + br label %143 + +143: ; preds = %139, %135, %131, %.lr.ph._crit_edge.i + %.pre-phi.i = phi i32 [ %.pre.i, %.lr.ph._crit_edge.i ], [ %141, %139 ], [ %137, %135 ], [ %133, %131 ] + %144 = add i32 %.pre-phi.i, %129 + %145 = tail call i32 @tvb_reported_length_remaining(ptr noundef %0, i32 noundef %144) + %146 = icmp sgt i32 %145, 1 + br i1 %146, label %.lr.ph.i, label %dissect_ehdlc_xid.exit, !llvm.loop !8 + +dissect_ehdlc_xid.exit.sink.split: ; preds = %97, %104, %102 + %.sink.in = phi ptr [ @sub_handles.0, %102 ], [ @sub_handles.1, %104 ], [ @sub_handles.4, %97 ] %.sink = load ptr, ptr %.sink.in, align 8 - %148 = tail call i32 @call_dissector(ptr noundef %.sink, ptr noundef %102, ptr noundef %1, ptr noundef %2) + %147 = tail call i32 @call_dissector(ptr noundef %.sink, ptr noundef %101, ptr noundef %1, ptr noundef %2) br label %dissect_ehdlc_xid.exit -dissect_ehdlc_xid.exit: ; preds = %144, %dissect_ehdlc_xid.exit.sink.split, %109, %107, %103, %105 +dissect_ehdlc_xid.exit: ; preds = %143, %dissect_ehdlc_xid.exit.sink.split, %108, %106, %102, %104 %spec.store.select = tail call i16 @llvm.umax.i16(i16 %11, i16 1) - %149 = zext nneg i16 %spec.store.select to i32 - br label %150 + %148 = zext nneg i16 %spec.store.select to i32 + br label %149 -150: ; preds = %dissect_ehdlc_xid.exit, %81, %74 - %.pn = phi i32 [ %75, %74 ], [ %82, %81 ], [ %149, %dissect_ehdlc_xid.exit ] +149: ; preds = %dissect_ehdlc_xid.exit, %80, %73 + %.pn = phi i32 [ %74, %73 ], [ %81, %80 ], [ %148, %dissect_ehdlc_xid.exit ] %.1 = add i32 %.pn, %.0124 - %151 = tail call i32 @tvb_reported_length_remaining(ptr noundef %0, i32 noundef %.1) - %152 = icmp sgt i32 %151, 0 - br i1 %152, label %switch.lookup, label %._crit_edge + %150 = tail call i32 @tvb_reported_length_remaining(ptr noundef %0, i32 noundef %.1) + %151 = icmp sgt i32 %150, 0 + br i1 %151, label %switch.lookup, label %._crit_edge -._crit_edge: ; preds = %150, %4 - %153 = tail call i32 @tvb_captured_length(ptr noundef %0) - ret i32 %153 +._crit_edge: ; preds = %149, %4 + %152 = tail call i32 @tvb_captured_length(ptr noundef %0) + ret i32 %152 } ; Function Attrs: null_pointer_is_valid sspstrong uwtable diff --git a/bench/wireshark/optimized/packet-ieee1722.ll b/bench/wireshark/optimized/packet-ieee1722.ll index 4d5fe54e235..54568740183 100644 --- a/bench/wireshark/optimized/packet-ieee1722.ll +++ b/bench/wireshark/optimized/packet-ieee1722.ll @@ -903,231 +903,226 @@ switch.lookup: ; preds = %.sink.split, %56, % %62 = load i32, ptr @hf_1722_61883_cip_fn, align 4 %63 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %62, ptr noundef %0, i32 noundef 26, i32 noundef 1, i32 noundef 0) %64 = call zeroext i8 @tvb_get_uint8(ptr noundef %0, i32 noundef 26) - %65 = lshr i8 %64, 6 - %switch.cast = trunc nuw nsw i8 %65 to i4 - %switch.downshift = lshr exact i4 -8, %switch.cast - %switch.masked = trunc i4 %switch.downshift to i1 - %switch.cast265 = trunc nuw nsw i8 %65 to i4 - %switch.downshift267 = lshr i4 1, %switch.cast265 - %switch.masked268 = trunc nuw i4 %switch.downshift267 to i1 - %66 = load i32, ptr @hf_1722_61883_cip_qpc, align 4 - %67 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %66, ptr noundef %0, i32 noundef 26, i32 noundef 1, i32 noundef 0) - %68 = call zeroext i8 @tvb_get_uint8(ptr noundef %0, i32 noundef 26) - %69 = and i8 %68, 56 - %.not231 = icmp eq i8 %69, 0 - br i1 %.not231, label %72, label %70 - -70: ; preds = %switch.lookup - %71 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %67, ptr noundef nonnull @ei_1722_61883_incorrect_qpc) - br label %72 - -72: ; preds = %70, %switch.lookup - %73 = load i32, ptr @hf_1722_61883_cip_sph, align 4 - %74 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %73, ptr noundef %0, i32 noundef 26, i32 noundef 1, i32 noundef 0) - %75 = call zeroext i8 @tvb_get_uint8(ptr noundef %0, i32 noundef 26) - %76 = and i8 %75, 4 - %77 = load i32, ptr @hf_1722_61883_cip_dbc, align 4 - %78 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %77, ptr noundef %0, i32 noundef 27, i32 noundef 1, i32 noundef 0) - %79 = load i32, ptr @hf_1722_61883_cip_qi2, align 4 - %80 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %79, ptr noundef %0, i32 noundef 28, i32 noundef 1, i32 noundef 0) - %81 = call zeroext i8 @tvb_get_uint8(ptr noundef %0, i32 noundef 28) - %.not232 = icmp slt i8 %81, -64 - br i1 %.not232, label %84, label %82 - -82: ; preds = %72 - %83 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %80, ptr noundef nonnull @ei_1722_61883_incorrect_qi2) - br label %84 - -84: ; preds = %82, %72 - %85 = load i32, ptr @hf_1722_61883_cip_fmt, align 4 - %86 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %85, ptr noundef %0, i32 noundef 28, i32 noundef 1, i32 noundef 0) - %87 = call zeroext i8 @tvb_get_uint8(ptr noundef %0, i32 noundef 28) - %88 = and i8 %87, 63 - %89 = icmp samesign ult i8 %88, 32 - br i1 %89, label %90, label %95 - -90: ; preds = %84 - %91 = load i32, ptr @hf_1722_61883_cip_fdf, align 4 - %92 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %91, ptr noundef %0, i32 noundef 29, i32 noundef 1, i32 noundef 0) - %93 = load i32, ptr @hf_1722_61883_cip_syt, align 4 - %94 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %93, ptr noundef %0, i32 noundef 30, i32 noundef 2, i32 noundef 0) - br label %105 - -95: ; preds = %84 - %96 = load i32, ptr @hf_1722_61883_cip_fdf_no_syt, align 4 - %97 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %96, ptr noundef %0, i32 noundef 29, i32 noundef 3, i32 noundef 0) - %98 = call i32 @tvb_get_ntoh24(ptr noundef %0, i32 noundef 29) - %99 = and i32 %98, 8388607 - %.not233 = icmp eq i32 %99, 0 - br i1 %.not233, label %102, label %100 - -100: ; preds = %95 - %101 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %97, ptr noundef nonnull @ei_1722_61883_incorrect_cip_fdf) - br label %102 - -102: ; preds = %100, %95 - %103 = load i32, ptr @hf_1722_61883_cip_fdf_tsf, align 4 - %104 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %103, ptr noundef %0, i32 noundef 29, i32 noundef 3, i32 noundef 0) - br label %105 - -105: ; preds = %102, %90 - %106 = load i32, ptr %5, align 4 - %107 = add i32 %106, -8 - store i32 %107, ptr %5, align 4 - %108 = icmp eq i8 %.fr253, 0 - %109 = zext i8 %.fr253 to i32 - %.0222 = select i1 %108, i32 256, i32 %109 - switch i8 %88, label %179 [ - i8 16, label %110 - i8 32, label %148 + %switch.masked = icmp ugt i8 %64, -65 + %switch.masked268 = icmp ult i8 %64, 64 + %65 = load i32, ptr @hf_1722_61883_cip_qpc, align 4 + %66 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %65, ptr noundef %0, i32 noundef 26, i32 noundef 1, i32 noundef 0) + %67 = call zeroext i8 @tvb_get_uint8(ptr noundef %0, i32 noundef 26) + %68 = and i8 %67, 56 + %.not231 = icmp eq i8 %68, 0 + br i1 %.not231, label %71, label %69 + +69: ; preds = %switch.lookup + %70 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %66, ptr noundef nonnull @ei_1722_61883_incorrect_qpc) + br label %71 + +71: ; preds = %69, %switch.lookup + %72 = load i32, ptr @hf_1722_61883_cip_sph, align 4 + %73 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %72, ptr noundef %0, i32 noundef 26, i32 noundef 1, i32 noundef 0) + %74 = call zeroext i8 @tvb_get_uint8(ptr noundef %0, i32 noundef 26) + %75 = and i8 %74, 4 + %76 = load i32, ptr @hf_1722_61883_cip_dbc, align 4 + %77 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %76, ptr noundef %0, i32 noundef 27, i32 noundef 1, i32 noundef 0) + %78 = load i32, ptr @hf_1722_61883_cip_qi2, align 4 + %79 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %78, ptr noundef %0, i32 noundef 28, i32 noundef 1, i32 noundef 0) + %80 = call zeroext i8 @tvb_get_uint8(ptr noundef %0, i32 noundef 28) + %.not232 = icmp slt i8 %80, -64 + br i1 %.not232, label %83, label %81 + +81: ; preds = %71 + %82 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %79, ptr noundef nonnull @ei_1722_61883_incorrect_qi2) + br label %83 + +83: ; preds = %81, %71 + %84 = load i32, ptr @hf_1722_61883_cip_fmt, align 4 + %85 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %84, ptr noundef %0, i32 noundef 28, i32 noundef 1, i32 noundef 0) + %86 = call zeroext i8 @tvb_get_uint8(ptr noundef %0, i32 noundef 28) + %87 = and i8 %86, 63 + %88 = icmp samesign ult i8 %87, 32 + br i1 %88, label %89, label %94 + +89: ; preds = %83 + %90 = load i32, ptr @hf_1722_61883_cip_fdf, align 4 + %91 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %90, ptr noundef %0, i32 noundef 29, i32 noundef 1, i32 noundef 0) + %92 = load i32, ptr @hf_1722_61883_cip_syt, align 4 + %93 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %92, ptr noundef %0, i32 noundef 30, i32 noundef 2, i32 noundef 0) + br label %104 + +94: ; preds = %83 + %95 = load i32, ptr @hf_1722_61883_cip_fdf_no_syt, align 4 + %96 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %95, ptr noundef %0, i32 noundef 29, i32 noundef 3, i32 noundef 0) + %97 = call i32 @tvb_get_ntoh24(ptr noundef %0, i32 noundef 29) + %98 = and i32 %97, 8388607 + %.not233 = icmp eq i32 %98, 0 + br i1 %.not233, label %101, label %99 + +99: ; preds = %94 + %100 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %96, ptr noundef nonnull @ei_1722_61883_incorrect_cip_fdf) + br label %101 + +101: ; preds = %99, %94 + %102 = load i32, ptr @hf_1722_61883_cip_fdf_tsf, align 4 + %103 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %102, ptr noundef %0, i32 noundef 29, i32 noundef 3, i32 noundef 0) + br label %104 + +104: ; preds = %101, %89 + %105 = load i32, ptr %5, align 4 + %106 = add i32 %105, -8 + store i32 %106, ptr %5, align 4 + %107 = icmp eq i8 %.fr253, 0 + %108 = zext i8 %.fr253 to i32 + %.0222 = select i1 %107, i32 256, i32 %108 + switch i8 %87, label %178 [ + i8 16, label %109 + i8 32, label %147 ] -110: ; preds = %105 - br i1 %switch.masked268, label %113, label %111 - -111: ; preds = %110 - %112 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %63, ptr noundef nonnull @ei_1722_61883_6_incorrect_cip_fn) - br label %113 - -113: ; preds = %111, %110 - %.not239 = icmp eq i8 %76, 0 - br i1 %.not239, label %116, label %114 - -114: ; preds = %113 - %115 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %74, ptr noundef nonnull @ei_1722_61883_6_incorrect_cip_sph) - br label %116 - -116: ; preds = %114, %113 - %117 = load i32, ptr @hf_1722_61883_audio_data, align 4 - %118 = load i32, ptr %5, align 4 - %119 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %117, ptr noundef %0, i32 noundef 32, i32 noundef %118, i32 noundef 0) - %120 = load i32, ptr @ett_1722_61883_audio, align 4 - %121 = call ptr @proto_item_add_subtree(ptr noundef %119, i32 noundef %120) - %122 = load i32, ptr %5, align 4 - %123 = shl nuw nsw i32 %.0222, 2 - %124 = urem i32 %122, %123 - %.not240 = icmp eq i32 %124, 0 - br i1 %.not240, label %128, label %125 - -125: ; preds = %116 - %126 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %119, ptr noundef nonnull @ei_1722_61883_incorrect_datalen) - %127 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %21, ptr noundef nonnull @ei_1722_61883_incorrect_datalen) +109: ; preds = %104 + br i1 %switch.masked268, label %112, label %110 + +110: ; preds = %109 + %111 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %63, ptr noundef nonnull @ei_1722_61883_6_incorrect_cip_fn) + br label %112 + +112: ; preds = %110, %109 + %.not239 = icmp eq i8 %75, 0 + br i1 %.not239, label %115, label %113 + +113: ; preds = %112 + %114 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %73, ptr noundef nonnull @ei_1722_61883_6_incorrect_cip_sph) + br label %115 + +115: ; preds = %113, %112 + %116 = load i32, ptr @hf_1722_61883_audio_data, align 4 + %117 = load i32, ptr %5, align 4 + %118 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %116, ptr noundef %0, i32 noundef 32, i32 noundef %117, i32 noundef 0) + %119 = load i32, ptr @ett_1722_61883_audio, align 4 + %120 = call ptr @proto_item_add_subtree(ptr noundef %118, i32 noundef %119) + %121 = load i32, ptr %5, align 4 + %122 = shl nuw nsw i32 %.0222, 2 + %123 = urem i32 %121, %122 + %.not240 = icmp eq i32 %123, 0 + br i1 %.not240, label %127, label %124 + +124: ; preds = %115 + %125 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %118, ptr noundef nonnull @ei_1722_61883_incorrect_datalen) + %126 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %21, ptr noundef nonnull @ei_1722_61883_incorrect_datalen) %.pre259 = load i32, ptr %5, align 4 - br label %128 - -128: ; preds = %125, %116 - %129 = phi i32 [ %.pre259, %125 ], [ %122, %116 ] - %130 = udiv i32 %129, %123 - %.not241 = icmp ne ptr %121, null - %131 = icmp ule i32 %123, %129 - %or.cond = select i1 %.not241, i1 %131, i1 false + br label %127 + +127: ; preds = %124, %115 + %128 = phi i32 [ %.pre259, %124 ], [ %121, %115 ] + %129 = udiv i32 %128, %122 + %.not241 = icmp ne ptr %120, null + %130 = icmp ule i32 %122, %128 + %or.cond = select i1 %.not241, i1 %130, i1 false br i1 %or.cond, label %.lr.ph251, label %.loopexit242 -.lr.ph251: ; preds = %128 +.lr.ph251: ; preds = %127 %.not255 = icmp eq i32 %.0222, 0 br i1 %.not255, label %.loopexit, label %.lr.ph248.us .lr.ph248.us: ; preds = %.lr.ph251, %..loopexit_crit_edge.us - %.0250.us = phi i32 [ %133, %..loopexit_crit_edge.us ], [ 0, %.lr.ph251 ] - %.1225249.us = phi i32 [ %141, %..loopexit_crit_edge.us ], [ 32, %.lr.ph251 ] - %132 = load i32, ptr @ett_1722_61883_sample, align 4 - %133 = add nuw nsw i32 %.0250.us, 1 - %134 = call ptr (ptr, ptr, i32, i32, i32, ptr, ptr, ...) @proto_tree_add_subtree_format(ptr noundef nonnull %121, ptr noundef %0, i32 noundef %.1225249.us, i32 noundef 1, i32 noundef %132, ptr noundef null, ptr noundef nonnull @.str.363, i32 noundef %133) - br label %135 - -135: ; preds = %.lr.ph248.us, %135 - %.0221247.us = phi i32 [ 0, %.lr.ph248.us ], [ %142, %135 ] - %.2246.us = phi i32 [ %.1225249.us, %.lr.ph248.us ], [ %141, %135 ] - %136 = load i32, ptr @hf_1722_61883_label, align 4 - %137 = call ptr @proto_tree_add_item(ptr noundef %134, i32 noundef %136, ptr noundef %0, i32 noundef %.2246.us, i32 noundef 1, i32 noundef 0) - %138 = add i32 %.2246.us, 1 - %139 = load i32, ptr @hf_1722_61883_sample, align 4 - %140 = call ptr @proto_tree_add_item(ptr noundef %134, i32 noundef %139, ptr noundef %0, i32 noundef %138, i32 noundef 3, i32 noundef 0) - %141 = add i32 %.2246.us, 4 - %142 = add nuw nsw i32 %.0221247.us, 1 - %exitcond258.not = icmp eq i32 %142, %.0222 - br i1 %exitcond258.not, label %..loopexit_crit_edge.us, label %135, !llvm.loop !6 - -..loopexit_crit_edge.us: ; preds = %135 - %143 = icmp ult i32 %133, %130 - br i1 %143, label %.lr.ph248.us, label %.loopexit242, !llvm.loop !8 + %.0250.us = phi i32 [ %132, %..loopexit_crit_edge.us ], [ 0, %.lr.ph251 ] + %.1225249.us = phi i32 [ %140, %..loopexit_crit_edge.us ], [ 32, %.lr.ph251 ] + %131 = load i32, ptr @ett_1722_61883_sample, align 4 + %132 = add nuw nsw i32 %.0250.us, 1 + %133 = call ptr (ptr, ptr, i32, i32, i32, ptr, ptr, ...) @proto_tree_add_subtree_format(ptr noundef nonnull %120, ptr noundef %0, i32 noundef %.1225249.us, i32 noundef 1, i32 noundef %131, ptr noundef null, ptr noundef nonnull @.str.363, i32 noundef %132) + br label %134 + +134: ; preds = %.lr.ph248.us, %134 + %.0221247.us = phi i32 [ 0, %.lr.ph248.us ], [ %141, %134 ] + %.2246.us = phi i32 [ %.1225249.us, %.lr.ph248.us ], [ %140, %134 ] + %135 = load i32, ptr @hf_1722_61883_label, align 4 + %136 = call ptr @proto_tree_add_item(ptr noundef %133, i32 noundef %135, ptr noundef %0, i32 noundef %.2246.us, i32 noundef 1, i32 noundef 0) + %137 = add i32 %.2246.us, 1 + %138 = load i32, ptr @hf_1722_61883_sample, align 4 + %139 = call ptr @proto_tree_add_item(ptr noundef %133, i32 noundef %138, ptr noundef %0, i32 noundef %137, i32 noundef 3, i32 noundef 0) + %140 = add i32 %.2246.us, 4 + %141 = add nuw nsw i32 %.0221247.us, 1 + %exitcond258.not = icmp eq i32 %141, %.0222 + br i1 %exitcond258.not, label %..loopexit_crit_edge.us, label %134, !llvm.loop !6 + +..loopexit_crit_edge.us: ; preds = %134 + %142 = icmp ult i32 %132, %129 + br i1 %142, label %.lr.ph248.us, label %.loopexit242, !llvm.loop !8 .loopexit: ; preds = %.lr.ph251, %.loopexit - %.0250 = phi i32 [ %145, %.loopexit ], [ 0, %.lr.ph251 ] - %144 = load i32, ptr @ett_1722_61883_sample, align 4 - %145 = add nuw nsw i32 %.0250, 1 - %146 = call ptr (ptr, ptr, i32, i32, i32, ptr, ptr, ...) @proto_tree_add_subtree_format(ptr noundef nonnull %121, ptr noundef %0, i32 noundef 32, i32 noundef 1, i32 noundef %144, ptr noundef null, ptr noundef nonnull @.str.363, i32 noundef %145) - %147 = icmp ult i32 %145, %130 - br i1 %147, label %.loopexit, label %.loopexit242, !llvm.loop !8 - -148: ; preds = %105 + %.0250 = phi i32 [ %144, %.loopexit ], [ 0, %.lr.ph251 ] + %143 = load i32, ptr @ett_1722_61883_sample, align 4 + %144 = add nuw nsw i32 %.0250, 1 + %145 = call ptr (ptr, ptr, i32, i32, i32, ptr, ptr, ...) @proto_tree_add_subtree_format(ptr noundef nonnull %120, ptr noundef %0, i32 noundef 32, i32 noundef 1, i32 noundef %143, ptr noundef null, ptr noundef nonnull @.str.363, i32 noundef %144) + %146 = icmp ult i32 %144, %129 + br i1 %146, label %.loopexit, label %.loopexit242, !llvm.loop !8 + +147: ; preds = %104 %.not234 = icmp eq i32 %.0222, 6 - br i1 %.not234, label %151, label %149 - -149: ; preds = %148 - %150 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %60, ptr noundef nonnull @ei_1722_61883_4_incorrect_cip_dbs) - br label %151 - -151: ; preds = %149, %148 - br i1 %switch.masked, label %154, label %152 - -152: ; preds = %151 - %153 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %63, ptr noundef nonnull @ei_1722_61883_4_incorrect_cip_fn) - br label %154 - -154: ; preds = %152, %151 - %.not236.not = icmp eq i8 %76, 0 - br i1 %.not236.not, label %155, label %157 - -155: ; preds = %154 - %156 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %74, ptr noundef nonnull @ei_1722_61883_4_incorrect_cip_sph) - br label %157 - -157: ; preds = %155, %154 - %158 = load i32, ptr @hf_1722_61883_video_data, align 4 - %159 = load i32, ptr %5, align 4 - %160 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %158, ptr noundef %0, i32 noundef 32, i32 noundef %159, i32 noundef 0) - %161 = load i32, ptr @ett_1722_61883_video, align 4 - %162 = call ptr @proto_item_add_subtree(ptr noundef %160, i32 noundef %161) - %163 = load i32, ptr %5, align 4 - %164 = urem i32 %163, 192 - %.not237 = icmp eq i32 %164, 0 - br i1 %.not237, label %168, label %165 - -165: ; preds = %157 - %166 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %160, ptr noundef nonnull @ei_1722_61883_incorrect_datalen) - %167 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %21, ptr noundef nonnull @ei_1722_61883_incorrect_datalen) + br i1 %.not234, label %150, label %148 + +148: ; preds = %147 + %149 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %60, ptr noundef nonnull @ei_1722_61883_4_incorrect_cip_dbs) + br label %150 + +150: ; preds = %148, %147 + br i1 %switch.masked, label %153, label %151 + +151: ; preds = %150 + %152 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %63, ptr noundef nonnull @ei_1722_61883_4_incorrect_cip_fn) + br label %153 + +153: ; preds = %151, %150 + %.not236.not = icmp eq i8 %75, 0 + br i1 %.not236.not, label %154, label %156 + +154: ; preds = %153 + %155 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %73, ptr noundef nonnull @ei_1722_61883_4_incorrect_cip_sph) + br label %156 + +156: ; preds = %154, %153 + %157 = load i32, ptr @hf_1722_61883_video_data, align 4 + %158 = load i32, ptr %5, align 4 + %159 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %157, ptr noundef %0, i32 noundef 32, i32 noundef %158, i32 noundef 0) + %160 = load i32, ptr @ett_1722_61883_video, align 4 + %161 = call ptr @proto_item_add_subtree(ptr noundef %159, i32 noundef %160) + %162 = load i32, ptr %5, align 4 + %163 = urem i32 %162, 192 + %.not237 = icmp eq i32 %163, 0 + br i1 %.not237, label %167, label %164 + +164: ; preds = %156 + %165 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %159, ptr noundef nonnull @ei_1722_61883_incorrect_datalen) + %166 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %21, ptr noundef nonnull @ei_1722_61883_incorrect_datalen) %.pre = load i32, ptr %5, align 4 - br label %168 + br label %167 -168: ; preds = %165, %157 - %169 = phi i32 [ %.pre, %165 ], [ %163, %157 ] - %170 = udiv i32 %169, 192 - %.not252 = icmp ult i32 %169, 192 +167: ; preds = %164, %156 + %168 = phi i32 [ %.pre, %164 ], [ %162, %156 ] + %169 = udiv i32 %168, 192 + %.not252 = icmp ult i32 %168, 192 br i1 %.not252, label %.loopexit242, label %.lr.ph -.lr.ph: ; preds = %168, %.lr.ph - %.1245 = phi i32 [ %178, %.lr.ph ], [ 0, %168 ] - %.3244 = phi i32 [ %177, %.lr.ph ], [ 32, %168 ] - %171 = load i32, ptr @hf_1722_61883_source_packet_header_timestamp, align 4 - %172 = call ptr @proto_tree_add_item(ptr noundef %162, i32 noundef %171, ptr noundef %0, i32 noundef %.3244, i32 noundef 4, i32 noundef 0) - %173 = or disjoint i32 %.3244, 4 - %174 = load ptr, ptr @mp2t_handle, align 8 - %175 = call ptr @tvb_new_subset_length(ptr noundef %0, i32 noundef %173, i32 noundef 188) - %176 = call i32 @call_dissector(ptr noundef %174, ptr noundef %175, ptr noundef %1, ptr noundef %162) - %177 = add nuw i32 %.3244, 192 - %178 = add nuw nsw i32 %.1245, 1 - %exitcond.not = icmp eq i32 %178, %170 +.lr.ph: ; preds = %167, %.lr.ph + %.1245 = phi i32 [ %177, %.lr.ph ], [ 0, %167 ] + %.3244 = phi i32 [ %176, %.lr.ph ], [ 32, %167 ] + %170 = load i32, ptr @hf_1722_61883_source_packet_header_timestamp, align 4 + %171 = call ptr @proto_tree_add_item(ptr noundef %161, i32 noundef %170, ptr noundef %0, i32 noundef %.3244, i32 noundef 4, i32 noundef 0) + %172 = or disjoint i32 %.3244, 4 + %173 = load ptr, ptr @mp2t_handle, align 8 + %174 = call ptr @tvb_new_subset_length(ptr noundef %0, i32 noundef %172, i32 noundef 188) + %175 = call i32 @call_dissector(ptr noundef %173, ptr noundef %174, ptr noundef %1, ptr noundef %161) + %176 = add nuw i32 %.3244, 192 + %177 = add nuw nsw i32 %.1245, 1 + %exitcond.not = icmp eq i32 %177, %169 br i1 %exitcond.not, label %.loopexit242, label %.lr.ph, !llvm.loop !9 -179: ; preds = %105 - %180 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %86, ptr noundef nonnull @ei_1722_61883_unknown_format) +178: ; preds = %104 + %179 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %85, ptr noundef nonnull @ei_1722_61883_unknown_format) br label %.loopexit242 -.loopexit242: ; preds = %.lr.ph, %..loopexit_crit_edge.us, %.loopexit, %168, %40, %179, %128, %43 - %181 = call i32 @tvb_captured_length(ptr noundef %0) +.loopexit242: ; preds = %.lr.ph, %..loopexit_crit_edge.us, %.loopexit, %167, %40, %178, %127, %43 + %180 = call i32 @tvb_captured_length(ptr noundef %0) call void @llvm.lifetime.end.p0(ptr nonnull %5) - ret i32 %181 + ret i32 %180 } ; Function Attrs: null_pointer_is_valid sspstrong uwtable From aa2c038b95da8ed806fb95b07ab74e936b66bd67 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 9 Sep 2025 02:43:36 +0000 Subject: [PATCH 3/3] pre-commit: Remap --- bench/llvm/optimized/CGObjCMac.ll | 136 +++--- bench/ocio/optimized/GammaOpData.ll | 6 +- bench/wasmedge/optimized/controlInstr.ll | 84 ++-- bench/wireshark/optimized/packet-ehdlc.ll | 446 +++++++++---------- bench/wireshark/optimized/packet-ieee1722.ll | 270 +++++------ 5 files changed, 471 insertions(+), 471 deletions(-) diff --git a/bench/llvm/optimized/CGObjCMac.ll b/bench/llvm/optimized/CGObjCMac.ll index 092157eaea4..64da8735bd7 100644 --- a/bench/llvm/optimized/CGObjCMac.ll +++ b/bench/llvm/optimized/CGObjCMac.ll @@ -20588,7 +20588,7 @@ _ZNK5clang8QualType15getObjCLifetimeEv.exit.i: ; preds = %_ZNK5clang8QualType %99 = and i32 %98, 7 %.not.not48.i = icmp eq i32 %99, 0 %brmerge.i = or i1 %.tr50.i, %.not.not48.i - br i1 %brmerge.i, label %101, label %switch.lookup + br i1 %brmerge.i, label %100, label %switch.lookup switch.lookup: ; preds = %_ZNK5clang8QualType15getObjCLifetimeEv.exit.i %switch.tableidx = add nsw i32 %99, -1 @@ -20598,92 +20598,92 @@ switch.lookup: ; preds = %_ZNK5clang8QualType %switch.masked = icmp eq i32 %100, 0 br label %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit -101: ; preds = %_ZNK5clang8QualType15getObjCLifetimeEv.exit.i +100: ; preds = %_ZNK5clang8QualType15getObjCLifetimeEv.exit.i br i1 %.not.not48.i, label %.thread40.i, label %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit -.thread40.i: ; preds = %101, %tailrecurse.i - %102 = load ptr, ptr %90, align 16, !tbaa !971 - %103 = getelementptr inbounds nuw i8, ptr %102, i64 8 - %.sroa.0.0.copyload.i.i.i.i23.i = load i64, ptr %103, align 8, !tbaa !394 - %104 = and i64 %.sroa.0.0.copyload.i.i.i.i23.i, -16 - %105 = inttoptr i64 %104 to ptr - %106 = load ptr, ptr %105, align 16, !tbaa !971 - %107 = getelementptr inbounds nuw i8, ptr %106, i64 16 - %108 = load i8, ptr %107, align 16 - switch i8 %108, label %109 [ +.thread40.i: ; preds = %100, %tailrecurse.i + %101 = load ptr, ptr %90, align 16, !tbaa !971 + %102 = getelementptr inbounds nuw i8, ptr %101, i64 8 + %.sroa.0.0.copyload.i.i.i.i23.i = load i64, ptr %102, align 8, !tbaa !394 + %103 = and i64 %.sroa.0.0.copyload.i.i.i.i23.i, -16 + %104 = inttoptr i64 %103 to ptr + %105 = load ptr, ptr %104, align 16, !tbaa !971 + %106 = getelementptr inbounds nuw i8, ptr %105, i64 16 + %107 = load i8, ptr %106, align 16 + switch i8 %107, label %109 [ i8 33, label %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit i8 11, label %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit ] -109: ; preds = %.thread40.i - %110 = load ptr, ptr %88, align 8, !tbaa !1452 - %111 = getelementptr inbounds nuw i8, ptr %110, i64 200 - %112 = load i32, ptr %111, align 8 - %113 = and i32 %112, 192 - %.not13.i = icmp eq i32 %113, 0 - br i1 %.not13.i, label %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit, label %114 +108: ; preds = %.thread40.i + %109 = load ptr, ptr %88, align 8, !tbaa !1452 + %110 = getelementptr inbounds nuw i8, ptr %109, i64 200 + %111 = load i32, ptr %110, align 8 + %112 = and i32 %111, 192 + %.not13.i = icmp eq i32 %112, 0 + br i1 %.not13.i, label %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit, label %113 -114: ; preds = %109 - %115 = getelementptr inbounds nuw i8, ptr %102, i64 16 - %116 = load i8, ptr %115, align 16 - %.not.i68 = icmp eq i8 %116, 41 - br i1 %.not.i68, label %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit.thread24, label %117 +113: ; preds = %108 + %114 = getelementptr inbounds nuw i8, ptr %101, i64 16 + %115 = load i8, ptr %114, align 16 + %.not.i68 = icmp eq i8 %115, 41 + br i1 %.not.i68, label %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit.thread24, label %116 -117: ; preds = %114 - %118 = icmp eq i8 %108, 41 - br i1 %118, label %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit, label %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit +116: ; preds = %113 + %117 = icmp eq i8 %107, 41 + br i1 %117, label %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit, label %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit -_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit: ; preds = %117 - %119 = tail call noundef ptr @_ZNK5clang4Type27getUnqualifiedDesugaredTypeEv(ptr noundef nonnull align 16 dereferenceable(24) %102) #27 - %.not14.not.i = icmp eq ptr %119, null +_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit: ; preds = %116 + %118 = tail call noundef ptr @_ZNK5clang4Type27getUnqualifiedDesugaredTypeEv(ptr noundef nonnull align 16 dereferenceable(24) %101) #27 + %.not14.not.i = icmp eq ptr %118, null br i1 %.not14.not.i, label %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit, label %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit.thread24 -_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit.thread24: ; preds = %114, %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit - %.1.i27 = phi ptr [ %119, %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit ], [ %102, %114 ] - %120 = getelementptr inbounds nuw i8, ptr %.1.i27, i64 32 - %.sroa.0.0.copyload.i.i = load i64, ptr %120, align 16, !tbaa !394 +_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit.thread24: ; preds = %113, %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit + %.1.i27 = phi ptr [ %118, %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit ], [ %101, %114 ] + %119 = getelementptr inbounds nuw i8, ptr %.1.i27, i64 32 + %.sroa.0.0.copyload.i.i = load i64, ptr %119, align 16, !tbaa !394 br label %tailrecurse.i _ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit.loopexit: ; preds = %_ZNK5clang8QualType14isObjCGCStrongEv.exit.i br label %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit -_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit: ; preds = %117, %101, %.thread40.i, %.thread40.i, %109, %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit, %_ZNK5clang8QualType14isObjCGCStrongEv.exit.i, %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit.loopexit, %switch.lookup - %121 = phi i1 [ %switch.offset, %switch.lookup ], [ true, %_ZNK5clang8QualType14isObjCGCStrongEv.exit.i ], [ true, %117 ], [ true, %101 ], [ false, %.thread40.i ], [ true, %109 ], [ true, %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit ], [ false, %.thread40.i ], [ false, %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit.loopexit ] - %122 = phi i1 [ %switch.masked, %switch.lookup ], [ false, %_ZNK5clang8QualType14isObjCGCStrongEv.exit.i ], [ true, %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit ], [ true, %109 ], [ true, %.thread40.i ], [ true, %.thread40.i ], [ true, %101 ], [ true, %117 ], [ true, %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit.loopexit ] - %123 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %124 = load i8, ptr %123, align 8, !tbaa !1413, !range !1011, !noundef !1012 - %125 = trunc nuw i8 %124 to i1 - %or.cond55 = select i1 %125, i1 %121, i1 %122 - br i1 %or.cond55, label %.loopexit, label %126 - -126: ; preds = %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit - %127 = getelementptr inbounds nuw i8, ptr %0, i64 32 - %128 = getelementptr inbounds nuw i8, ptr %0, i64 40 - %129 = load i32, ptr %128, align 8, !tbaa !353 - %130 = getelementptr inbounds nuw i8, ptr %0, i64 44 - %131 = load i32, ptr %130, align 4, !tbaa !354 - %.not.not.i.i.i62 = icmp ult i32 %129, %131 - br i1 %.not.not.i.i.i62, label %_ZN4llvm23SmallVectorTemplateBaseIN12_GLOBAL__N_18IvarInfoELb1EE9push_backES2_.exit67, label %132, !prof !895 - -132: ; preds = %126 - %133 = zext i32 %129 to i64 - %134 = add nuw nsw i64 %133, 1 - %135 = getelementptr inbounds nuw i8, ptr %0, i64 48 - tail call void @_ZN4llvm15SmallVectorBaseIjE8grow_podEPvmm(ptr noundef nonnull align 8 dereferenceable(16) %127, ptr noundef nonnull %135, i64 noundef %134, i64 noundef 16) #27 - %.val2.pre.i63 = load i32, ptr %128, align 8, !tbaa !353 +_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit: ; preds = %116, %100, %.thread40.i, %.thread40.i, %108, %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit, %_ZNK5clang8QualType14isObjCGCStrongEv.exit.i, %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit.loopexit, %switch.lookup + %120 = phi i1 [ %switch.offset, %switch.lookup ], [ true, %_ZNK5clang8QualType14isObjCGCStrongEv.exit.i ], [ true, %117 ], [ true, %101 ], [ false, %.thread40.i ], [ true, %109 ], [ true, %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit ], [ false, %.thread40.i ], [ false, %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit.loopexit ] + %121 = phi i1 [ %switch.masked, %switch.lookup ], [ false, %_ZNK5clang8QualType14isObjCGCStrongEv.exit.i ], [ true, %_ZNK5clang4Type5getAsINS_11PointerTypeEEEPKT_v.exit ], [ true, %109 ], [ true, %.thread40.i ], [ true, %.thread40.i ], [ true, %101 ], [ true, %117 ], [ true, %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit.loopexit ] + %122 = getelementptr inbounds nuw i8, ptr %0, i64 24 + %123 = load i8, ptr %122, align 8, !tbaa !1413, !range !1011, !noundef !1012 + %124 = trunc nuw i8 %123 to i1 + %or.cond55 = select i1 %124, i1 %120, i1 %121 + br i1 %or.cond55, label %.loopexit, label %125 + +125: ; preds = %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit + %126 = getelementptr inbounds nuw i8, ptr %0, i64 32 + %127 = getelementptr inbounds nuw i8, ptr %0, i64 40 + %128 = load i32, ptr %127, align 8, !tbaa !353 + %129 = getelementptr inbounds nuw i8, ptr %0, i64 44 + %130 = load i32, ptr %129, align 4, !tbaa !354 + %.not.not.i.i.i62 = icmp ult i32 %128, %130 + br i1 %.not.not.i.i.i62, label %_ZN4llvm23SmallVectorTemplateBaseIN12_GLOBAL__N_18IvarInfoELb1EE9push_backES2_.exit67, label %131, !prof !895 + +131: ; preds = %125 + %132 = zext i32 %128 to i64 + %133 = add nuw nsw i64 %132, 1 + %134 = getelementptr inbounds nuw i8, ptr %0, i64 48 + tail call void @_ZN4llvm15SmallVectorBaseIjE8grow_podEPvmm(ptr noundef nonnull align 8 dereferenceable(16) %126, ptr noundef nonnull %134, i64 noundef %133, i64 noundef 16) #27 + %.val2.pre.i63 = load i32, ptr %127, align 8, !tbaa !353 br label %_ZN4llvm23SmallVectorTemplateBaseIN12_GLOBAL__N_18IvarInfoELb1EE9push_backES2_.exit67 -_ZN4llvm23SmallVectorTemplateBaseIN12_GLOBAL__N_18IvarInfoELb1EE9push_backES2_.exit67: ; preds = %126, %132 - %.val2.i64 = phi i32 [ %129, %126 ], [ %.val2.pre.i63, %132 ] - %.val.i65 = load ptr, ptr %127, align 8, !tbaa !352 - %136 = zext i32 %.val2.i64 to i64 - %137 = getelementptr inbounds nuw %"struct.(anonymous namespace)::IvarInfo", ptr %.val.i65, i64 %136 - store i64 %1, ptr %137, align 1 - %.sroa.2.0..sroa_idx.i66 = getelementptr inbounds nuw i8, ptr %137, i64 8 +_ZN4llvm23SmallVectorTemplateBaseIN12_GLOBAL__N_18IvarInfoELb1EE9push_backES2_.exit67: ; preds = %125, %131 + %.val2.i64 = phi i32 [ %128, %126 ], [ %.val2.pre.i63, %132 ] + %.val.i65 = load ptr, ptr %126, align 8, !tbaa !352 + %135 = zext i32 %.val2.i64 to i64 + %136 = getelementptr inbounds nuw %"struct.(anonymous namespace)::IvarInfo", ptr %.val.i65, i64 %135 + store i64 %1, ptr %136, align 1 + %.sroa.2.0..sroa_idx.i66 = getelementptr inbounds nuw i8, ptr %136, i64 8 store i64 %.1.lcssa, ptr %.sroa.2.0..sroa_idx.i66, align 1 - %138 = load i32, ptr %128, align 8, !tbaa !353 - %139 = add i32 %138, 1 - store i32 %139, ptr %128, align 8, !tbaa !353 + %137 = load i32, ptr %127, align 8, !tbaa !353 + %138 = add i32 %137, 1 + store i32 %138, ptr %127, align 8, !tbaa !353 br label %.loopexit .loopexit: ; preds = %._crit_edge39, %53, %_ZN4llvm23SmallVectorTemplateBaseIN12_GLOBAL__N_18IvarInfoELb1EE9push_backES2_.exit67, %_ZL20GetGCAttrTypeForTypeRN5clang10ASTContextENS_8QualTypeEb.exit, %._crit_edge diff --git a/bench/ocio/optimized/GammaOpData.ll b/bench/ocio/optimized/GammaOpData.ll index 950aff199bd..290722d7dbe 100644 --- a/bench/ocio/optimized/GammaOpData.ll +++ b/bench/ocio/optimized/GammaOpData.ll @@ -3125,15 +3125,15 @@ define hidden noundef zeroext i1 @_ZNK19OpenColorIO_v2_5dev11GammaOpData10mayCom 13: ; preds = %9 %14 = icmp ult i32 %6, 10 - br i1 %14, label %switch.lookup23, label %switch.lookup + br i1 %14, label %switch.lookup23, label %15 switch.lookup23: ; preds = %13 %switch.cast24 = trunc nuw i32 %6 to i10 %switch.downshift26 = lshr i10 51, %switch.cast24 %switch.masked27 = trunc i10 %switch.downshift26 to i1 - br label %switch.lookup + br label %15 -switch.lookup: ; preds = %11, %7, %9, %13, %switch.lookup23 +15: ; preds = %11, %7, %9, %13, %switch.lookup23 %.0 = phi i1 [ %switch.masked27, %switch.lookup23 ], [ false, %13 ], [ false, %9 ], [ %spec.select, %7 ], [ %spec.select28, %11 ] ret i1 %.0 } diff --git a/bench/wasmedge/optimized/controlInstr.ll b/bench/wasmedge/optimized/controlInstr.ll index 67768502a2d..049dcc51b46 100644 --- a/bench/wasmedge/optimized/controlInstr.ll +++ b/bench/wasmedge/optimized/controlInstr.ll @@ -1292,10 +1292,10 @@ switch.lookup: ; preds = %40 %switch.shiftamt84 = shl nuw nsw i24 %switch.cast83, 3 %switch.downshift85 = lshr i24 7367530, %switch.shiftamt84 %switch.masked86 = trunc i24 %switch.downshift85 to i8 - %49 = icmp eq i8 %20, %switch.masked86 - br i1 %49, label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit, label %50 + %48 = icmp eq i8 %20, %switch.masked86 + br i1 %48, label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit, label %49 -50: ; preds = %switch.lookup +49: ; preds = %switch.lookup switch i8 %20, label %51 [ i8 115, label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit i8 112, label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit @@ -1310,64 +1310,64 @@ switch.lookup: ; preds = %40 i8 111, label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit ] -53: ; preds = %52 +52: ; preds = %52 %.off = add i8 %20, -109 %switch = icmp ult i8 %.off, 2 br label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit _ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40: ; preds = %18, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit - %54 = getelementptr inbounds nuw i8, ptr %5, i64 3 - %55 = load i8, ptr %54, align 1 - switch i8 %55, label %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit47 [ - i8 115, label %56 - i8 114, label %56 - i8 113, label %56 - i8 112, label %56 - i8 111, label %56 - i8 110, label %56 - i8 109, label %56 - i8 108, label %56 - i8 107, label %56 - i8 106, label %56 - i8 105, label %56 - i8 -128, label %56 + %53 = getelementptr inbounds nuw i8, ptr %5, i64 3 + %54 = load i8, ptr %53, align 1 + switch i8 %54, label %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit47 [ + i8 115, label %55 + i8 114, label %55 + i8 113, label %55 + i8 112, label %55 + i8 111, label %55 + i8 110, label %55 + i8 109, label %55 + i8 108, label %55 + i8 107, label %55 + i8 106, label %55 + i8 105, label %55 + i8 -128, label %55 ] -56: ; preds = %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40 - %57 = getelementptr inbounds nuw i8, ptr %2, i64 4 - %58 = load i32, ptr %57, align 4 - %59 = zext i32 %58 to i64 - %.not = icmp ugt i64 %1, %59 +55: ; preds = %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40 + %56 = getelementptr inbounds nuw i8, ptr %2, i64 4 + %57 = load i32, ptr %56, align 4 + %58 = zext i32 %57 to i64 + %.not = icmp ugt i64 %1, %58 br i1 %.not, label %_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49, label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit -_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49: ; preds = %56 - %60 = getelementptr inbounds nuw ptr, ptr %0, i64 %59 - %61 = load ptr, ptr %60, align 8 - %62 = getelementptr inbounds nuw i8, ptr %61, i64 32 - %63 = load i8, ptr %62, align 8 - %switch78 = icmp eq i8 %63, 96 - switch i8 %55, label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit [ - i8 113, label %64 - i8 115, label %65 +_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49: ; preds = %55 + %59 = getelementptr inbounds nuw ptr, ptr %0, i64 %58 + %60 = load ptr, ptr %59, align 8 + %61 = getelementptr inbounds nuw i8, ptr %60, i64 32 + %62 = load i8, ptr %61, align 8 + %switch78 = icmp eq i8 %62, 96 + switch i8 %54, label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit [ + i8 113, label %63 + i8 115, label %64 ] -64: ; preds = %_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49 +63: ; preds = %_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49 %not. = xor i1 %switch78, true br label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit -65: ; preds = %_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49 +64: ; preds = %_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49 br label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit _ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit47: ; preds = %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit40 - %66 = getelementptr inbounds nuw i8, ptr %2, i64 4 - %67 = load i32, ptr %66, align 4 - %68 = getelementptr inbounds nuw i8, ptr %5, i64 4 - %69 = load i32, ptr %68, align 4 - %70 = tail call noundef zeroext i1 @_ZN8WasmEdge3AST11TypeMatcher9matchTypeEN5cxx204spanIKPKNS0_7SubTypeELm18446744073709551615EEEjS8_j(ptr %0, i64 %1, i32 noundef %67, ptr %3, i64 %4, i32 noundef %69) #19 + %65 = getelementptr inbounds nuw i8, ptr %2, i64 4 + %66 = load i32, ptr %65, align 4 + %67 = getelementptr inbounds nuw i8, ptr %5, i64 4 + %68 = load i32, ptr %67, align 4 + %69 = tail call noundef zeroext i1 @_ZN8WasmEdge3AST11TypeMatcher9matchTypeEN5cxx204spanIKPKNS0_7SubTypeELm18446744073709551615EEEjS8_j(ptr %0, i64 %1, i32 noundef %66, ptr %3, i64 %4, i32 noundef %68) #19 br label %_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit -_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit: ; preds = %64, %11, %65, %53, %15, %51, %switch.lookup, %50, %50, %52, %52, %39, %37, %35, %34, %33, %33, %31, %29, %29, %27, %24, %14, %_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49, %56, %40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit47 - %.0 = phi i1 [ %70, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit47 ], [ false, %40 ], [ false, %56 ], [ false, %14 ], [ %28, %27 ], [ %32, %31 ], [ false, %39 ], [ %36, %35 ], [ %38, %37 ], [ true, %24 ], [ false, %29 ], [ false, %29 ], [ false, %33 ], [ false, %33 ], [ true, %34 ], [ true, %switch.lookup ], [ false, %51 ], [ false, %50 ], [ false, %50 ], [ false, %52 ], [ false, %52 ], [ false, %15 ], [ %switch, %53 ], [ %switch78, %65 ], [ false, %_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49 ], [ %or.cond, %11 ], [ %not., %64 ] +_ZN8WasmEdge3AST11TypeMatcher13matchTypeCodeENS_8TypeCodeES2_.exit: ; preds = %63, %11, %64, %52, %15, %51, %switch.lookup, %49, %49, %52, %52, %39, %37, %35, %34, %33, %33, %31, %29, %29, %27, %24, %14, %_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49, %55, %40, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit47 + %.0 = phi i1 [ %69, %_ZNK8WasmEdge7ValType13isAbsHeapTypeEv.exit47 ], [ false, %40 ], [ false, %56 ], [ false, %14 ], [ %28, %27 ], [ %32, %31 ], [ false, %39 ], [ %36, %35 ], [ %38, %37 ], [ true, %24 ], [ false, %29 ], [ false, %29 ], [ false, %33 ], [ false, %33 ], [ true, %34 ], [ true, %switch.lookup ], [ false, %51 ], [ false, %50 ], [ false, %50 ], [ false, %52 ], [ false, %52 ], [ false, %15 ], [ %switch, %53 ], [ %switch78, %65 ], [ false, %_ZNK8WasmEdge3AST13CompositeType6expandEv.exit49 ], [ %or.cond, %11 ], [ %not., %64 ] ret i1 %.0 } diff --git a/bench/wireshark/optimized/packet-ehdlc.ll b/bench/wireshark/optimized/packet-ehdlc.ll index fbf692b3690..9ba9a974ebe 100644 --- a/bench/wireshark/optimized/packet-ehdlc.ll +++ b/bench/wireshark/optimized/packet-ehdlc.ll @@ -151,7 +151,7 @@ define internal i32 @dissect_ehdlc(ptr noundef %0, ptr noundef %1, ptr noundef % %.not = icmp eq ptr %2, null br label %switch.lookup -switch.lookup: ; preds = %.lr.ph, %149 +switch.lookup: ; preds = %.lr.ph, %150 %.0124 = phi i32 [ 4, %.lr.ph ], [ %.1, %149 ] %10 = tail call zeroext i16 @tvb_get_uint16(ptr noundef %0, i32 noundef %.0124, i32 noundef 0) %11 = and i16 %10, 511 @@ -164,248 +164,248 @@ switch.lookup: ; preds = %.lr.ph, %149 %switch.selectcmp.case1.i = icmp eq i16 %12, 1 %switch.selectcmp.case2.i = icmp eq i16 %12, 6 %switch.selectcmp.i = or i1 %switch.selectcmp.case1.i, %switch.selectcmp.case2.i - %14 = lshr i16 %10, 9 - %15 = trunc nuw nsw i16 %14 to i8 - %16 = and i8 %15, 15 - %17 = icmp samesign ult i8 %16, 12 - %18 = or disjoint i8 %16, 48 - %.0.i117 = select i1 %17, i8 %16, i8 %18 - %19 = load ptr, ptr %5, align 8 - %20 = zext nneg i8 %.0.i117 to i32 - tail call void (ptr, i32, ptr, ...) @col_append_fstr(ptr noundef %19, i32 noundef 25, ptr noundef nonnull @.str.55, i32 noundef %20) - %21 = load ptr, ptr %5, align 8 - tail call void @col_set_fence(ptr noundef %21, i32 noundef 25) - br i1 %.not, label %70, label %22 - -22: ; preds = %switch.lookup - %23 = load i32, ptr @proto_ehdlc, align 4 - %24 = zext nneg i16 %11 to i32 - %25 = tail call i32 @tvb_captured_length_remaining(ptr noundef %0, i32 noundef %.0124) - %26 = icmp sgt i32 %25, %24 - br i1 %26, label %29, label %27 - -27: ; preds = %22 - %28 = tail call i32 @tvb_captured_length_remaining(ptr noundef %0, i32 noundef %.0124) - br label %29 - -29: ; preds = %22, %27 - %30 = phi i32 [ %28, %27 ], [ %24, %22 ] - %31 = tail call ptr (ptr, i32, ptr, i32, i32, ptr, ...) @proto_tree_add_protocol_format(ptr noundef nonnull %2, i32 noundef %23, ptr noundef %0, i32 noundef %.0124, i32 noundef %30, ptr noundef nonnull @.str.56) - %32 = load i32, ptr @ett_ehdlc, align 4 - %33 = tail call ptr @proto_item_add_subtree(ptr noundef %31, i32 noundef %32) - %34 = load i32, ptr @hf_ehdlc_csapi, align 4 - %35 = tail call ptr @proto_tree_add_item(ptr noundef %33, i32 noundef %34, ptr noundef %0, i32 noundef %.0124, i32 noundef 1, i32 noundef 0) - %36 = load i32, ptr @hf_ehdlc_ctei, align 4 - %37 = tail call ptr @proto_tree_add_item(ptr noundef %33, i32 noundef %36, ptr noundef %0, i32 noundef %.0124, i32 noundef 1, i32 noundef 0) - %38 = load i32, ptr @hf_ehdlc_c_r, align 4 - %39 = zext i1 %switch.selectcmp.i to i32 - %40 = tail call ptr @proto_tree_add_uint(ptr noundef %33, i32 noundef %38, ptr noundef %0, i32 noundef %.0124, i32 noundef 1, i32 noundef %39) - %.not.i = icmp eq ptr %40, null - br i1 %.not.i, label %proto_item_set_generated.exit, label %41 - -41: ; preds = %29 - %42 = getelementptr inbounds nuw i8, ptr %40, i64 40 - %43 = load ptr, ptr %42, align 8 - %.not5.i = icmp eq ptr %43, null - br i1 %.not5.i, label %proto_item_set_generated.exit, label %44 - -44: ; preds = %41 - %45 = getelementptr inbounds nuw i8, ptr %43, i64 28 - %46 = load i32, ptr %45, align 4 - %47 = or i32 %46, 2 - store i32 %47, ptr %45, align 4 + %15 = lshr i16 %10, 9 + %16 = trunc nuw nsw i16 %15 to i8 + %17 = and i8 %16, 15 + %18 = icmp samesign ult i8 %17, 12 + %19 = or disjoint i8 %17, 48 + %.0.i117 = select i1 %18, i8 %17, i8 %19 + %20 = load ptr, ptr %5, align 8 + %21 = zext nneg i8 %.0.i117 to i32 + tail call void (ptr, i32, ptr, ...) @col_append_fstr(ptr noundef %20, i32 noundef 25, ptr noundef nonnull @.str.55, i32 noundef %21) + %22 = load ptr, ptr %5, align 8 + tail call void @col_set_fence(ptr noundef %22, i32 noundef 25) + br i1 %.not, label %71, label %23 + +23: ; preds = %switch.lookup + %24 = load i32, ptr @proto_ehdlc, align 4 + %25 = zext nneg i16 %11 to i32 + %26 = tail call i32 @tvb_captured_length_remaining(ptr noundef %0, i32 noundef %.0124) + %27 = icmp sgt i32 %26, %25 + br i1 %27, label %30, label %28 + +28: ; preds = %23 + %29 = tail call i32 @tvb_captured_length_remaining(ptr noundef %0, i32 noundef %.0124) + br label %30 + +30: ; preds = %23, %28 + %31 = phi i32 [ %29, %27 ], [ %25, %22 ] + %32 = tail call ptr (ptr, i32, ptr, i32, i32, ptr, ...) @proto_tree_add_protocol_format(ptr noundef nonnull %2, i32 noundef %24, ptr noundef %0, i32 noundef %.0124, i32 noundef %31, ptr noundef nonnull @.str.56) + %33 = load i32, ptr @ett_ehdlc, align 4 + %34 = tail call ptr @proto_item_add_subtree(ptr noundef %32, i32 noundef %33) + %35 = load i32, ptr @hf_ehdlc_csapi, align 4 + %36 = tail call ptr @proto_tree_add_item(ptr noundef %34, i32 noundef %35, ptr noundef %0, i32 noundef %.0124, i32 noundef 1, i32 noundef 0) + %37 = load i32, ptr @hf_ehdlc_ctei, align 4 + %38 = tail call ptr @proto_tree_add_item(ptr noundef %34, i32 noundef %37, ptr noundef %0, i32 noundef %.0124, i32 noundef 1, i32 noundef 0) + %39 = load i32, ptr @hf_ehdlc_c_r, align 4 + %40 = zext i1 %switch.selectcmp.i to i32 + %41 = tail call ptr @proto_tree_add_uint(ptr noundef %34, i32 noundef %39, ptr noundef %0, i32 noundef %.0124, i32 noundef 1, i32 noundef %40) + %.not.i = icmp eq ptr %41, null + br i1 %.not.i, label %proto_item_set_generated.exit, label %42 + +42: ; preds = %30 + %43 = getelementptr inbounds nuw i8, ptr %41, i64 40 + %44 = load ptr, ptr %43, align 8 + %.not5.i = icmp eq ptr %44, null + br i1 %.not5.i, label %proto_item_set_generated.exit, label %45 + +45: ; preds = %42 + %46 = getelementptr inbounds nuw i8, ptr %44, i64 28 + %47 = load i32, ptr %46, align 4 + %48 = or i32 %47, 2 + store i32 %48, ptr %46, align 4 br label %proto_item_set_generated.exit -proto_item_set_generated.exit: ; preds = %29, %41, %44 - %48 = load i32, ptr @hf_ehdlc_sapi, align 4 - %49 = trunc i64 %switch.downshift134 to i32 - %50 = and i32 %49, 63 - %51 = tail call ptr @proto_tree_add_uint(ptr noundef %33, i32 noundef %48, ptr noundef %0, i32 noundef %.0124, i32 noundef 1, i32 noundef %50) - %.not.i118 = icmp eq ptr %51, null - br i1 %.not.i118, label %proto_item_set_generated.exit120, label %52 - -52: ; preds = %proto_item_set_generated.exit - %53 = getelementptr inbounds nuw i8, ptr %51, i64 40 - %54 = load ptr, ptr %53, align 8 - %.not5.i119 = icmp eq ptr %54, null - br i1 %.not5.i119, label %proto_item_set_generated.exit120, label %55 - -55: ; preds = %52 - %56 = getelementptr inbounds nuw i8, ptr %54, i64 28 - %57 = load i32, ptr %56, align 4 - %58 = or i32 %57, 2 - store i32 %58, ptr %56, align 4 +proto_item_set_generated.exit: ; preds = %30, %42, %45 + %49 = load i32, ptr @hf_ehdlc_sapi, align 4 + %50 = trunc i64 %switch.downshift134 to i32 + %51 = and i32 %50, 63 + %52 = tail call ptr @proto_tree_add_uint(ptr noundef %34, i32 noundef %49, ptr noundef %0, i32 noundef %.0124, i32 noundef 1, i32 noundef %51) + %.not.i118 = icmp eq ptr %52, null + br i1 %.not.i118, label %proto_item_set_generated.exit120, label %53 + +53: ; preds = %proto_item_set_generated.exit + %54 = getelementptr inbounds nuw i8, ptr %52, i64 40 + %55 = load ptr, ptr %54, align 8 + %.not5.i119 = icmp eq ptr %55, null + br i1 %.not5.i119, label %proto_item_set_generated.exit120, label %56 + +56: ; preds = %53 + %57 = getelementptr inbounds nuw i8, ptr %55, i64 28 + %58 = load i32, ptr %57, align 4 + %59 = or i32 %58, 2 + store i32 %59, ptr %57, align 4 br label %proto_item_set_generated.exit120 -proto_item_set_generated.exit120: ; preds = %proto_item_set_generated.exit, %52, %55 - %59 = load i32, ptr @hf_ehdlc_tei, align 4 - %60 = tail call ptr @proto_tree_add_uint(ptr noundef %33, i32 noundef %59, ptr noundef %0, i32 noundef %.0124, i32 noundef 1, i32 noundef %20) - %.not.i121 = icmp eq ptr %60, null - br i1 %.not.i121, label %proto_item_set_generated.exit123, label %61 - -61: ; preds = %proto_item_set_generated.exit120 - %62 = getelementptr inbounds nuw i8, ptr %60, i64 40 - %63 = load ptr, ptr %62, align 8 - %.not5.i122 = icmp eq ptr %63, null - br i1 %.not5.i122, label %proto_item_set_generated.exit123, label %64 - -64: ; preds = %61 - %65 = getelementptr inbounds nuw i8, ptr %63, i64 28 - %66 = load i32, ptr %65, align 4 - %67 = or i32 %66, 2 - store i32 %67, ptr %65, align 4 +proto_item_set_generated.exit120: ; preds = %proto_item_set_generated.exit, %53, %56 + %60 = load i32, ptr @hf_ehdlc_tei, align 4 + %61 = tail call ptr @proto_tree_add_uint(ptr noundef %34, i32 noundef %60, ptr noundef %0, i32 noundef %.0124, i32 noundef 1, i32 noundef %21) + %.not.i121 = icmp eq ptr %61, null + br i1 %.not.i121, label %proto_item_set_generated.exit123, label %62 + +62: ; preds = %proto_item_set_generated.exit120 + %63 = getelementptr inbounds nuw i8, ptr %61, i64 40 + %64 = load ptr, ptr %63, align 8 + %.not5.i122 = icmp eq ptr %64, null + br i1 %.not5.i122, label %proto_item_set_generated.exit123, label %65 + +65: ; preds = %62 + %66 = getelementptr inbounds nuw i8, ptr %64, i64 28 + %67 = load i32, ptr %66, align 4 + %68 = or i32 %67, 2 + store i32 %68, ptr %66, align 4 br label %proto_item_set_generated.exit123 -proto_item_set_generated.exit123: ; preds = %proto_item_set_generated.exit120, %61, %64 - %68 = load i32, ptr @hf_ehdlc_data_len, align 4 - %69 = tail call ptr @proto_tree_add_item(ptr noundef %33, i32 noundef %68, ptr noundef %0, i32 noundef %.0124, i32 noundef 2, i32 noundef 0) - br label %70 - -70: ; preds = %proto_item_set_generated.exit123, %switch.lookup - %.0112 = phi ptr [ %33, %proto_item_set_generated.exit123 ], [ null, %switch.lookup ] - %71 = and i8 %switch.masked135, 62 - %or.cond = icmp eq i8 %71, 10 - %72 = add i32 %.0124, 2 - br i1 %or.cond, label %73, label %79 - -73: ; preds = %70 - %74 = zext nneg i16 %11 to i32 - %75 = add nsw i32 %74, -2 - %76 = tail call ptr @tvb_new_subset_length(ptr noundef %0, i32 noundef %72, i32 noundef %75) - %77 = load ptr, ptr @sub_handles.2, align 16 - %78 = tail call i32 @call_dissector(ptr noundef %77, ptr noundef %76, ptr noundef %1, ptr noundef %2) - br label %149, !llvm.loop !6 - -79: ; preds = %70 - br i1 %switch.masked, label %80, label %86 - -80: ; preds = %79 - %81 = zext nneg i16 %11 to i32 - %82 = add nsw i32 %81, -2 - %83 = tail call ptr @tvb_new_subset_length(ptr noundef %0, i32 noundef %72, i32 noundef %82) - %84 = load ptr, ptr @sub_handles.3, align 8 - %85 = tail call i32 @call_dissector(ptr noundef %84, ptr noundef %83, ptr noundef %1, ptr noundef %2) - br label %149, !llvm.loop !6 - -86: ; preds = %79 - %87 = load i32, ptr @hf_ehdlc_control, align 4 - %88 = load i32, ptr @ett_ehdlc_control, align 4 - %89 = tail call i32 @dissect_xdlc_control(ptr noundef %0, i32 noundef %72, ptr noundef %1, ptr noundef %.0112, i32 noundef %87, i32 noundef %88, ptr noundef nonnull @ehdlc_cf_items, ptr noundef nonnull @ehdlc_cf_items_ext, ptr noundef null, ptr noundef null, i1 noundef zeroext false, i1 noundef zeroext true, i1 noundef zeroext false) - %90 = and i32 %89, 65535 - %91 = and i32 %89, 3 - %92 = icmp eq i32 %91, 3 - %93 = select i1 %92, i32 3, i32 4 - %94 = and i32 %89, 1 - %95 = icmp eq i32 %94, 0 - %96 = icmp eq i32 %90, 3 - %or.cond5 = or i1 %95, %96 - br i1 %or.cond5, label %97, label %106 - -97: ; preds = %86 - %98 = add i32 %93, %.0124 - %99 = zext nneg i16 %11 to i32 - %100 = sub nsw i32 %99, %93 - %101 = tail call ptr @tvb_new_subset_length(ptr noundef %0, i32 noundef %98, i32 noundef %100) +proto_item_set_generated.exit123: ; preds = %proto_item_set_generated.exit120, %62, %65 + %69 = load i32, ptr @hf_ehdlc_data_len, align 4 + %70 = tail call ptr @proto_tree_add_item(ptr noundef %34, i32 noundef %69, ptr noundef %0, i32 noundef %.0124, i32 noundef 2, i32 noundef 0) + br label %71 + +71: ; preds = %proto_item_set_generated.exit123, %switch.lookup + %.0112 = phi ptr [ %34, %proto_item_set_generated.exit123 ], [ null, %switch.lookup ] + %72 = and i8 %switch.masked135, 62 + %or.cond = icmp eq i8 %72, 10 + %73 = add i32 %.0124, 2 + br i1 %or.cond, label %74, label %80 + +74: ; preds = %71 + %75 = zext nneg i16 %11 to i32 + %76 = add nsw i32 %75, -2 + %77 = tail call ptr @tvb_new_subset_length(ptr noundef %0, i32 noundef %73, i32 noundef %76) + %78 = load ptr, ptr @sub_handles.2, align 16 + %79 = tail call i32 @call_dissector(ptr noundef %78, ptr noundef %77, ptr noundef %1, ptr noundef %2) + br label %150, !llvm.loop !6 + +80: ; preds = %71 + br i1 %switch.masked, label %81, label %87 + +81: ; preds = %80 + %82 = zext nneg i16 %11 to i32 + %83 = add nsw i32 %82, -2 + %84 = tail call ptr @tvb_new_subset_length(ptr noundef %0, i32 noundef %73, i32 noundef %83) + %85 = load ptr, ptr @sub_handles.3, align 8 + %86 = tail call i32 @call_dissector(ptr noundef %85, ptr noundef %84, ptr noundef %1, ptr noundef %2) + br label %150, !llvm.loop !6 + +87: ; preds = %80 + %88 = load i32, ptr @hf_ehdlc_control, align 4 + %89 = load i32, ptr @ett_ehdlc_control, align 4 + %90 = tail call i32 @dissect_xdlc_control(ptr noundef %0, i32 noundef %73, ptr noundef %1, ptr noundef %.0112, i32 noundef %88, i32 noundef %89, ptr noundef nonnull @ehdlc_cf_items, ptr noundef nonnull @ehdlc_cf_items_ext, ptr noundef null, ptr noundef null, i1 noundef zeroext false, i1 noundef zeroext true, i1 noundef zeroext false) + %91 = and i32 %90, 65535 + %92 = and i32 %90, 3 + %93 = icmp eq i32 %92, 3 + %94 = select i1 %93, i32 3, i32 4 + %95 = and i32 %90, 1 + %96 = icmp eq i32 %95, 0 + %97 = icmp eq i32 %91, 3 + %or.cond5 = or i1 %96, %97 + br i1 %or.cond5, label %98, label %107 + +98: ; preds = %87 + %99 = add i32 %94, %.0124 + %100 = zext nneg i16 %11 to i32 + %101 = sub nsw i32 %100, %94 + %102 = tail call ptr @tvb_new_subset_length(ptr noundef %0, i32 noundef %99, i32 noundef %101) switch i8 %switch.masked135, label %dissect_ehdlc_xid.exit.sink.split [ - i8 0, label %102 - i8 62, label %104 + i8 0, label %103 + i8 62, label %105 ] -102: ; preds = %97 - %103 = icmp samesign ult i16 %11, 5 - br i1 %103, label %dissect_ehdlc_xid.exit, label %dissect_ehdlc_xid.exit.sink.split - -104: ; preds = %97 - %105 = icmp samesign ult i16 %11, 5 - br i1 %105, label %dissect_ehdlc_xid.exit, label %dissect_ehdlc_xid.exit.sink.split - -106: ; preds = %86 - %107 = icmp eq i32 %90, 175 - br i1 %107, label %108, label %dissect_ehdlc_xid.exit - -108: ; preds = %106 - %109 = add i32 %93, %.0124 - %110 = zext nneg i16 %11 to i32 - %111 = sub nsw i32 %110, %93 - %112 = load i32, ptr @hf_ehdlc_xid_payload, align 4 - %113 = tail call ptr @proto_tree_add_item(ptr noundef %.0112, i32 noundef %112, ptr noundef %0, i32 noundef %109, i32 noundef range(i32 -4, 509) %111, i32 noundef 0) - %114 = load i32, ptr @ett_ehdlc_xid, align 4 - %115 = tail call ptr @proto_item_add_subtree(ptr noundef %113, i32 noundef %114) - %116 = load i32, ptr @hf_ehdlc_xid_format_id, align 4 - %117 = add i32 %109, 1 - %118 = tail call ptr @proto_tree_add_item(ptr noundef %115, i32 noundef %116, ptr noundef %0, i32 noundef %109, i32 noundef 1, i32 noundef 0) - %119 = load i32, ptr @hf_ehdlc_xid_group_id, align 4 - %120 = add i32 %109, 2 - %121 = tail call ptr @proto_tree_add_item(ptr noundef %115, i32 noundef %119, ptr noundef %0, i32 noundef %117, i32 noundef 1, i32 noundef 0) - %122 = load i32, ptr @hf_ehdlc_xid_len, align 4 - %123 = tail call ptr @proto_tree_add_item(ptr noundef %115, i32 noundef %122, ptr noundef %0, i32 noundef %120, i32 noundef 2, i32 noundef 0) - %124 = add i32 %109, 4 - %125 = tail call i32 @tvb_reported_length_remaining(ptr noundef %0, i32 noundef %124) - %126 = icmp sgt i32 %125, 1 - br i1 %126, label %.lr.ph.i, label %dissect_ehdlc_xid.exit - -.lr.ph.i: ; preds = %108, %143 - %.038.i = phi i32 [ %144, %143 ], [ %124, %108 ] - %127 = add i32 %.038.i, 1 - %128 = tail call zeroext i8 @tvb_get_uint8(ptr noundef %0, i32 noundef %.038.i) - %129 = add i32 %.038.i, 2 - %130 = tail call zeroext i8 @tvb_get_uint8(ptr noundef %0, i32 noundef %127) - switch i8 %128, label %.lr.ph._crit_edge.i [ - i8 7, label %131 - i8 8, label %135 - i8 9, label %139 +103: ; preds = %98 + %104 = icmp samesign ult i16 %11, 5 + br i1 %104, label %dissect_ehdlc_xid.exit, label %dissect_ehdlc_xid.exit.sink.split + +105: ; preds = %98 + %106 = icmp samesign ult i16 %11, 5 + br i1 %106, label %dissect_ehdlc_xid.exit, label %dissect_ehdlc_xid.exit.sink.split + +107: ; preds = %87 + %108 = icmp eq i32 %91, 175 + br i1 %108, label %109, label %dissect_ehdlc_xid.exit + +109: ; preds = %107 + %110 = add i32 %94, %.0124 + %111 = zext nneg i16 %11 to i32 + %112 = sub nsw i32 %111, %94 + %113 = load i32, ptr @hf_ehdlc_xid_payload, align 4 + %114 = tail call ptr @proto_tree_add_item(ptr noundef %.0112, i32 noundef %113, ptr noundef %0, i32 noundef %110, i32 noundef range(i32 -4, 509) %112, i32 noundef 0) + %115 = load i32, ptr @ett_ehdlc_xid, align 4 + %116 = tail call ptr @proto_item_add_subtree(ptr noundef %114, i32 noundef %115) + %117 = load i32, ptr @hf_ehdlc_xid_format_id, align 4 + %118 = add i32 %110, 1 + %119 = tail call ptr @proto_tree_add_item(ptr noundef %116, i32 noundef %117, ptr noundef %0, i32 noundef %110, i32 noundef 1, i32 noundef 0) + %120 = load i32, ptr @hf_ehdlc_xid_group_id, align 4 + %121 = add i32 %110, 2 + %122 = tail call ptr @proto_tree_add_item(ptr noundef %116, i32 noundef %120, ptr noundef %0, i32 noundef %118, i32 noundef 1, i32 noundef 0) + %123 = load i32, ptr @hf_ehdlc_xid_len, align 4 + %124 = tail call ptr @proto_tree_add_item(ptr noundef %116, i32 noundef %123, ptr noundef %0, i32 noundef %121, i32 noundef 2, i32 noundef 0) + %125 = add i32 %110, 4 + %126 = tail call i32 @tvb_reported_length_remaining(ptr noundef %0, i32 noundef %125) + %127 = icmp sgt i32 %126, 1 + br i1 %127, label %.lr.ph.i, label %dissect_ehdlc_xid.exit + +.lr.ph.i: ; preds = %109, %144 + %.038.i = phi i32 [ %145, %143 ], [ %125, %108 ] + %128 = add i32 %.038.i, 1 + %129 = tail call zeroext i8 @tvb_get_uint8(ptr noundef %0, i32 noundef %.038.i) + %130 = add i32 %.038.i, 2 + %131 = tail call zeroext i8 @tvb_get_uint8(ptr noundef %0, i32 noundef %128) + switch i8 %129, label %.lr.ph._crit_edge.i [ + i8 7, label %132 + i8 8, label %136 + i8 9, label %140 ] .lr.ph._crit_edge.i: ; preds = %.lr.ph.i - %.pre.i = zext i8 %130 to i32 - br label %143 - -131: ; preds = %.lr.ph.i - %132 = load i32, ptr @hf_ehdlc_xid_win_tx, align 4 - %133 = zext i8 %130 to i32 - %134 = tail call ptr @proto_tree_add_item(ptr noundef %115, i32 noundef %132, ptr noundef %0, i32 noundef %129, i32 noundef %133, i32 noundef 0) - br label %143 - -135: ; preds = %.lr.ph.i - %136 = load i32, ptr @hf_ehdlc_xid_win_rx, align 4 - %137 = zext i8 %130 to i32 - %138 = tail call ptr @proto_tree_add_item(ptr noundef %115, i32 noundef %136, ptr noundef %0, i32 noundef %129, i32 noundef %137, i32 noundef 0) - br label %143 - -139: ; preds = %.lr.ph.i - %140 = load i32, ptr @hf_ehdlc_xid_ack_tmr_ms, align 4 - %141 = zext i8 %130 to i32 - %142 = tail call ptr @proto_tree_add_item(ptr noundef %115, i32 noundef %140, ptr noundef %0, i32 noundef %129, i32 noundef %141, i32 noundef 0) - br label %143 - -143: ; preds = %139, %135, %131, %.lr.ph._crit_edge.i - %.pre-phi.i = phi i32 [ %.pre.i, %.lr.ph._crit_edge.i ], [ %141, %139 ], [ %137, %135 ], [ %133, %131 ] - %144 = add i32 %.pre-phi.i, %129 - %145 = tail call i32 @tvb_reported_length_remaining(ptr noundef %0, i32 noundef %144) - %146 = icmp sgt i32 %145, 1 - br i1 %146, label %.lr.ph.i, label %dissect_ehdlc_xid.exit, !llvm.loop !8 - -dissect_ehdlc_xid.exit.sink.split: ; preds = %97, %104, %102 + %.pre.i = zext i8 %131 to i32 + br label %144 + +132: ; preds = %.lr.ph.i + %133 = load i32, ptr @hf_ehdlc_xid_win_tx, align 4 + %134 = zext i8 %131 to i32 + %135 = tail call ptr @proto_tree_add_item(ptr noundef %116, i32 noundef %133, ptr noundef %0, i32 noundef %130, i32 noundef %134, i32 noundef 0) + br label %144 + +136: ; preds = %.lr.ph.i + %137 = load i32, ptr @hf_ehdlc_xid_win_rx, align 4 + %138 = zext i8 %131 to i32 + %139 = tail call ptr @proto_tree_add_item(ptr noundef %116, i32 noundef %137, ptr noundef %0, i32 noundef %130, i32 noundef %138, i32 noundef 0) + br label %144 + +140: ; preds = %.lr.ph.i + %141 = load i32, ptr @hf_ehdlc_xid_ack_tmr_ms, align 4 + %142 = zext i8 %131 to i32 + %143 = tail call ptr @proto_tree_add_item(ptr noundef %116, i32 noundef %141, ptr noundef %0, i32 noundef %130, i32 noundef %142, i32 noundef 0) + br label %144 + +144: ; preds = %140, %136, %132, %.lr.ph._crit_edge.i + %.pre-phi.i = phi i32 [ %.pre.i, %.lr.ph._crit_edge.i ], [ %142, %139 ], [ %138, %135 ], [ %134, %131 ] + %145 = add i32 %.pre-phi.i, %130 + %146 = tail call i32 @tvb_reported_length_remaining(ptr noundef %0, i32 noundef %145) + %147 = icmp sgt i32 %146, 1 + br i1 %147, label %.lr.ph.i, label %dissect_ehdlc_xid.exit, !llvm.loop !8 + +dissect_ehdlc_xid.exit.sink.split: ; preds = %98, %105, %103 %.sink.in = phi ptr [ @sub_handles.0, %102 ], [ @sub_handles.1, %104 ], [ @sub_handles.4, %97 ] %.sink = load ptr, ptr %.sink.in, align 8 - %147 = tail call i32 @call_dissector(ptr noundef %.sink, ptr noundef %101, ptr noundef %1, ptr noundef %2) + %148 = tail call i32 @call_dissector(ptr noundef %.sink, ptr noundef %102, ptr noundef %1, ptr noundef %2) br label %dissect_ehdlc_xid.exit -dissect_ehdlc_xid.exit: ; preds = %143, %dissect_ehdlc_xid.exit.sink.split, %108, %106, %102, %104 +dissect_ehdlc_xid.exit: ; preds = %144, %dissect_ehdlc_xid.exit.sink.split, %109, %107, %103, %105 %spec.store.select = tail call i16 @llvm.umax.i16(i16 %11, i16 1) - %148 = zext nneg i16 %spec.store.select to i32 - br label %149 + %149 = zext nneg i16 %spec.store.select to i32 + br label %150 -149: ; preds = %dissect_ehdlc_xid.exit, %80, %73 - %.pn = phi i32 [ %74, %73 ], [ %81, %80 ], [ %148, %dissect_ehdlc_xid.exit ] +150: ; preds = %dissect_ehdlc_xid.exit, %81, %74 + %.pn = phi i32 [ %75, %73 ], [ %82, %80 ], [ %149, %dissect_ehdlc_xid.exit ] %.1 = add i32 %.pn, %.0124 - %150 = tail call i32 @tvb_reported_length_remaining(ptr noundef %0, i32 noundef %.1) - %151 = icmp sgt i32 %150, 0 - br i1 %151, label %switch.lookup, label %._crit_edge + %151 = tail call i32 @tvb_reported_length_remaining(ptr noundef %0, i32 noundef %.1) + %152 = icmp sgt i32 %151, 0 + br i1 %152, label %switch.lookup, label %._crit_edge -._crit_edge: ; preds = %149, %4 - %152 = tail call i32 @tvb_captured_length(ptr noundef %0) - ret i32 %152 +._crit_edge: ; preds = %150, %4 + %153 = tail call i32 @tvb_captured_length(ptr noundef %0) + ret i32 %153 } ; Function Attrs: null_pointer_is_valid sspstrong uwtable diff --git a/bench/wireshark/optimized/packet-ieee1722.ll b/bench/wireshark/optimized/packet-ieee1722.ll index 54568740183..997c4bd4ee6 100644 --- a/bench/wireshark/optimized/packet-ieee1722.ll +++ b/bench/wireshark/optimized/packet-ieee1722.ll @@ -912,62 +912,62 @@ switch.lookup: ; preds = %.sink.split, %56, % %.not231 = icmp eq i8 %68, 0 br i1 %.not231, label %71, label %69 -69: ; preds = %switch.lookup +69:; preds = %switch.lookup %70 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %66, ptr noundef nonnull @ei_1722_61883_incorrect_qpc) br label %71 71: ; preds = %69, %switch.lookup %72 = load i32, ptr @hf_1722_61883_cip_sph, align 4 - %73 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %72, ptr noundef %0, i32 noundef 26, i32 noundef 1, i32 noundef 0) + %71 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %72, ptr noundef %0, i32 noundef 26, i32 noundef 1, i32 noundef 0) %74 = call zeroext i8 @tvb_get_uint8(ptr noundef %0, i32 noundef 26) %75 = and i8 %74, 4 %76 = load i32, ptr @hf_1722_61883_cip_dbc, align 4 %77 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %76, ptr noundef %0, i32 noundef 27, i32 noundef 1, i32 noundef 0) %78 = load i32, ptr @hf_1722_61883_cip_qi2, align 4 - %79 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %78, ptr noundef %0, i32 noundef 28, i32 noundef 1, i32 noundef 0) + %75 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %78, ptr noundef %0, i32 noundef 28, i32 noundef 1, i32 noundef 0) %80 = call zeroext i8 @tvb_get_uint8(ptr noundef %0, i32 noundef 28) %.not232 = icmp slt i8 %80, -64 br i1 %.not232, label %83, label %81 -81: ; preds = %71 - %82 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %79, ptr noundef nonnull @ei_1722_61883_incorrect_qi2) +81:; preds = %71 + %81 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %79, ptr noundef nonnull @ei_1722_61883_incorrect_qi2) br label %83 83: ; preds = %81, %71 %84 = load i32, ptr @hf_1722_61883_cip_fmt, align 4 - %85 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %84, ptr noundef %0, i32 noundef 28, i32 noundef 1, i32 noundef 0) + %83 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %84, ptr noundef %0, i32 noundef 28, i32 noundef 1, i32 noundef 0) %86 = call zeroext i8 @tvb_get_uint8(ptr noundef %0, i32 noundef 28) %87 = and i8 %86, 63 %88 = icmp samesign ult i8 %87, 32 br i1 %88, label %89, label %94 -89: ; preds = %83 +89:; preds = %83 %90 = load i32, ptr @hf_1722_61883_cip_fdf, align 4 %91 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %90, ptr noundef %0, i32 noundef 29, i32 noundef 1, i32 noundef 0) %92 = load i32, ptr @hf_1722_61883_cip_syt, align 4 %93 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %92, ptr noundef %0, i32 noundef 30, i32 noundef 2, i32 noundef 0) br label %104 -94: ; preds = %83 - %95 = load i32, ptr @hf_1722_61883_cip_fdf_no_syt, align 4 - %96 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %95, ptr noundef %0, i32 noundef 29, i32 noundef 3, i32 noundef 0) +94:; preds = %83 + %93 = load i32, ptr @hf_1722_61883_cip_fdf_no_syt, align 4 + %94 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %93, ptr noundef %0, i32 noundef 29, i32 noundef 3, i32 noundef 0) %97 = call i32 @tvb_get_ntoh24(ptr noundef %0, i32 noundef 29) %98 = and i32 %97, 8388607 %.not233 = icmp eq i32 %98, 0 br i1 %.not233, label %101, label %99 -99: ; preds = %94 +99:; preds = %94 %100 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %96, ptr noundef nonnull @ei_1722_61883_incorrect_cip_fdf) br label %101 101: ; preds = %99, %94 %102 = load i32, ptr @hf_1722_61883_cip_fdf_tsf, align 4 - %103 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %102, ptr noundef %0, i32 noundef 29, i32 noundef 3, i32 noundef 0) - br label %104 + %101 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %102, ptr noundef %0, i32 noundef 29, i32 noundef 3, i32 noundef 0) + br label %102 -104: ; preds = %101, %89 - %105 = load i32, ptr %5, align 4 - %106 = add i32 %105, -8 +102: ; preds = %101, %89 + %103 = load i32, ptr %5, align 4 + %106 = add i32 %103, -8 store i32 %106, ptr %5, align 4 %107 = icmp eq i8 %.fr253, 0 %108 = zext i8 %.fr253 to i32 @@ -977,152 +977,152 @@ switch.lookup: ; preds = %.sink.split, %56, % i8 32, label %147 ] -109: ; preds = %104 - br i1 %switch.masked268, label %112, label %110 +110: ; preds = %104 + br i1 %switch.masked268, label %113, label %111 -110: ; preds = %109 - %111 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %63, ptr noundef nonnull @ei_1722_61883_6_incorrect_cip_fn) - br label %112 +111: ; preds = %110 + %112 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %63, ptr noundef nonnull @ei_1722_61883_6_incorrect_cip_fn) + br label %113 -112: ; preds = %110, %109 +113: ; preds = %111, %110 %.not239 = icmp eq i8 %75, 0 - br i1 %.not239, label %115, label %113 - -113: ; preds = %112 - %114 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %73, ptr noundef nonnull @ei_1722_61883_6_incorrect_cip_sph) - br label %115 - -115: ; preds = %113, %112 - %116 = load i32, ptr @hf_1722_61883_audio_data, align 4 - %117 = load i32, ptr %5, align 4 - %118 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %116, ptr noundef %0, i32 noundef 32, i32 noundef %117, i32 noundef 0) - %119 = load i32, ptr @ett_1722_61883_audio, align 4 - %120 = call ptr @proto_item_add_subtree(ptr noundef %118, i32 noundef %119) - %121 = load i32, ptr %5, align 4 - %122 = shl nuw nsw i32 %.0222, 2 - %123 = urem i32 %121, %122 - %.not240 = icmp eq i32 %123, 0 - br i1 %.not240, label %127, label %124 - -124: ; preds = %115 - %125 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %118, ptr noundef nonnull @ei_1722_61883_incorrect_datalen) - %126 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %21, ptr noundef nonnull @ei_1722_61883_incorrect_datalen) + br i1 %.not239, label %116, label %114 + +114: ; preds = %113 + %115 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %73, ptr noundef nonnull @ei_1722_61883_6_incorrect_cip_sph) + br label %116 + +116: ; preds = %114, %113 + %117 = load i32, ptr @hf_1722_61883_audio_data, align 4 + %118 = load i32, ptr %5, align 4 + %119 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %117, ptr noundef %0, i32 noundef 32, i32 noundef %118, i32 noundef 0) + %120 = load i32, ptr @ett_1722_61883_audio, align 4 + %121 = call ptr @proto_item_add_subtree(ptr noundef %119, i32 noundef %120) + %122 = load i32, ptr %5, align 4 + %123 = shl nuw nsw i32 %.0222, 2 + %124 = urem i32 %122, %123 + %.not240 = icmp eq i32 %124, 0 + br i1 %.not240, label %128, label %125 + +125: ; preds = %116 + %126 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %119, ptr noundef nonnull @ei_1722_61883_incorrect_datalen) + %127 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %21, ptr noundef nonnull @ei_1722_61883_incorrect_datalen) %.pre259 = load i32, ptr %5, align 4 - br label %127 - -127: ; preds = %124, %115 - %128 = phi i32 [ %.pre259, %124 ], [ %121, %115 ] - %129 = udiv i32 %128, %122 - %.not241 = icmp ne ptr %120, null - %130 = icmp ule i32 %122, %128 - %or.cond = select i1 %.not241, i1 %130, i1 false + br label %128 + +128: ; preds = %125, %116 + %129 = phi i32 [ %.pre259, %124 ], [ %122, %115 ] + %130 = udiv i32 %129, %123 + %.not241 = icmp ne ptr %121, null + %131 = icmp ule i32 %123, %129 + %or.cond = select i1 %.not241, i1 %131, i1 false br i1 %or.cond, label %.lr.ph251, label %.loopexit242 -.lr.ph251: ; preds = %127 +.lr.ph251: ; preds = %128 %.not255 = icmp eq i32 %.0222, 0 br i1 %.not255, label %.loopexit, label %.lr.ph248.us .lr.ph248.us: ; preds = %.lr.ph251, %..loopexit_crit_edge.us - %.0250.us = phi i32 [ %132, %..loopexit_crit_edge.us ], [ 0, %.lr.ph251 ] - %.1225249.us = phi i32 [ %140, %..loopexit_crit_edge.us ], [ 32, %.lr.ph251 ] - %131 = load i32, ptr @ett_1722_61883_sample, align 4 - %132 = add nuw nsw i32 %.0250.us, 1 - %133 = call ptr (ptr, ptr, i32, i32, i32, ptr, ptr, ...) @proto_tree_add_subtree_format(ptr noundef nonnull %120, ptr noundef %0, i32 noundef %.1225249.us, i32 noundef 1, i32 noundef %131, ptr noundef null, ptr noundef nonnull @.str.363, i32 noundef %132) - br label %134 - -134: ; preds = %.lr.ph248.us, %134 - %.0221247.us = phi i32 [ 0, %.lr.ph248.us ], [ %141, %134 ] - %.2246.us = phi i32 [ %.1225249.us, %.lr.ph248.us ], [ %140, %134 ] - %135 = load i32, ptr @hf_1722_61883_label, align 4 - %136 = call ptr @proto_tree_add_item(ptr noundef %133, i32 noundef %135, ptr noundef %0, i32 noundef %.2246.us, i32 noundef 1, i32 noundef 0) - %137 = add i32 %.2246.us, 1 - %138 = load i32, ptr @hf_1722_61883_sample, align 4 - %139 = call ptr @proto_tree_add_item(ptr noundef %133, i32 noundef %138, ptr noundef %0, i32 noundef %137, i32 noundef 3, i32 noundef 0) - %140 = add i32 %.2246.us, 4 - %141 = add nuw nsw i32 %.0221247.us, 1 - %exitcond258.not = icmp eq i32 %141, %.0222 - br i1 %exitcond258.not, label %..loopexit_crit_edge.us, label %134, !llvm.loop !6 - -..loopexit_crit_edge.us: ; preds = %134 - %142 = icmp ult i32 %132, %129 - br i1 %142, label %.lr.ph248.us, label %.loopexit242, !llvm.loop !8 + %.0250.us = phi i32 [ %133, %..loopexit_crit_edge.us ], [ 0, %.lr.ph251 ] + %.1225249.us = phi i32 [ %141, %..loopexit_crit_edge.us ], [ 32, %.lr.ph251 ] + %132 = load i32, ptr @ett_1722_61883_sample, align 4 + %133 = add nuw nsw i32 %.0250.us, 1 + %134 = call ptr (ptr, ptr, i32, i32, i32, ptr, ptr, ...) @proto_tree_add_subtree_format(ptr noundef nonnull %121, ptr noundef %0, i32 noundef %.1225249.us, i32 noundef 1, i32 noundef %132, ptr noundef null, ptr noundef nonnull @.str.363, i32 noundef %133) + br label %135 + +135: ; preds = %.lr.ph248.us, %135 + %.0221247.us = phi i32 [ 0, %.lr.ph248.us ], [ %142, %134 ] + %.2246.us = phi i32 [ %.1225249.us, %.lr.ph248.us ], [ %141, %134 ] + %136 = load i32, ptr @hf_1722_61883_label, align 4 + %137 = call ptr @proto_tree_add_item(ptr noundef %134, i32 noundef %136, ptr noundef %0, i32 noundef %.2246.us, i32 noundef 1, i32 noundef 0) + %138 = add i32 %.2246.us, 1 + %139 = load i32, ptr @hf_1722_61883_sample, align 4 + %140 = call ptr @proto_tree_add_item(ptr noundef %134, i32 noundef %139, ptr noundef %0, i32 noundef %138, i32 noundef 3, i32 noundef 0) + %141 = add i32 %.2246.us, 4 + %142 = add nuw nsw i32 %.0221247.us, 1 + %exitcond258.not = icmp eq i32 %142, %.0222 + br i1 %exitcond258.not, label %..loopexit_crit_edge.us, label %135, !llvm.loop !6 + +..loopexit_crit_edge.us: ; preds = %135 + %143 = icmp ult i32 %133, %130 + br i1 %143, label %.lr.ph248.us, label %.loopexit242, !llvm.loop !8 .loopexit: ; preds = %.lr.ph251, %.loopexit - %.0250 = phi i32 [ %144, %.loopexit ], [ 0, %.lr.ph251 ] - %143 = load i32, ptr @ett_1722_61883_sample, align 4 - %144 = add nuw nsw i32 %.0250, 1 - %145 = call ptr (ptr, ptr, i32, i32, i32, ptr, ptr, ...) @proto_tree_add_subtree_format(ptr noundef nonnull %120, ptr noundef %0, i32 noundef 32, i32 noundef 1, i32 noundef %143, ptr noundef null, ptr noundef nonnull @.str.363, i32 noundef %144) - %146 = icmp ult i32 %144, %129 - br i1 %146, label %.loopexit, label %.loopexit242, !llvm.loop !8 - -147: ; preds = %104 + %.0250 = phi i32 [ %145, %.loopexit ], [ 0, %.lr.ph251 ] + %144 = load i32, ptr @ett_1722_61883_sample, align 4 + %145 = add nuw nsw i32 %.0250, 1 + %146 = call ptr (ptr, ptr, i32, i32, i32, ptr, ptr, ...) @proto_tree_add_subtree_format(ptr noundef nonnull %121, ptr noundef %0, i32 noundef 32, i32 noundef 1, i32 noundef %144, ptr noundef null, ptr noundef nonnull @.str.363, i32 noundef %145) + %147 = icmp ult i32 %145, %130 + br i1 %147, label %.loopexit, label %.loopexit242, !llvm.loop !8 + +148: ; preds = %104 %.not234 = icmp eq i32 %.0222, 6 - br i1 %.not234, label %150, label %148 + br i1 %.not234, label %151, label %149 -148: ; preds = %147 - %149 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %60, ptr noundef nonnull @ei_1722_61883_4_incorrect_cip_dbs) - br label %150 +149: ; preds = %148 + %150 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %60, ptr noundef nonnull @ei_1722_61883_4_incorrect_cip_dbs) + br label %151 -150: ; preds = %148, %147 - br i1 %switch.masked, label %153, label %151 +151: ; preds = %149, %148 + br i1 %switch.masked, label %154, label %152 -151: ; preds = %150 - %152 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %63, ptr noundef nonnull @ei_1722_61883_4_incorrect_cip_fn) - br label %153 +152: ; preds = %151 + %153 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %63, ptr noundef nonnull @ei_1722_61883_4_incorrect_cip_fn) + br label %154 -153: ; preds = %151, %150 +154: ; preds = %152, %151 %.not236.not = icmp eq i8 %75, 0 - br i1 %.not236.not, label %154, label %156 - -154: ; preds = %153 - %155 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %73, ptr noundef nonnull @ei_1722_61883_4_incorrect_cip_sph) - br label %156 - -156: ; preds = %154, %153 - %157 = load i32, ptr @hf_1722_61883_video_data, align 4 - %158 = load i32, ptr %5, align 4 - %159 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %157, ptr noundef %0, i32 noundef 32, i32 noundef %158, i32 noundef 0) - %160 = load i32, ptr @ett_1722_61883_video, align 4 - %161 = call ptr @proto_item_add_subtree(ptr noundef %159, i32 noundef %160) - %162 = load i32, ptr %5, align 4 - %163 = urem i32 %162, 192 - %.not237 = icmp eq i32 %163, 0 - br i1 %.not237, label %167, label %164 - -164: ; preds = %156 - %165 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %159, ptr noundef nonnull @ei_1722_61883_incorrect_datalen) - %166 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %21, ptr noundef nonnull @ei_1722_61883_incorrect_datalen) + br i1 %.not236.not, label %155, label %157 + +155: ; preds = %154 + %156 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %73, ptr noundef nonnull @ei_1722_61883_4_incorrect_cip_sph) + br label %157 + +157: ; preds = %155, %154 + %158 = load i32, ptr @hf_1722_61883_video_data, align 4 + %159 = load i32, ptr %5, align 4 + %160 = call ptr @proto_tree_add_item(ptr noundef %9, i32 noundef %158, ptr noundef %0, i32 noundef 32, i32 noundef %159, i32 noundef 0) + %161 = load i32, ptr @ett_1722_61883_video, align 4 + %162 = call ptr @proto_item_add_subtree(ptr noundef %160, i32 noundef %161) + %163 = load i32, ptr %5, align 4 + %164 = urem i32 %163, 192 + %.not237 = icmp eq i32 %164, 0 + br i1 %.not237, label %168, label %165 + +165: ; preds = %157 + %166 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %160, ptr noundef nonnull @ei_1722_61883_incorrect_datalen) + %167 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %21, ptr noundef nonnull @ei_1722_61883_incorrect_datalen) %.pre = load i32, ptr %5, align 4 - br label %167 + br label %168 -167: ; preds = %164, %156 - %168 = phi i32 [ %.pre, %164 ], [ %162, %156 ] - %169 = udiv i32 %168, 192 - %.not252 = icmp ult i32 %168, 192 +168: ; preds = %165, %157 + %169 = phi i32 [ %.pre, %164 ], [ %163, %156 ] + %170 = udiv i32 %169, 192 + %.not252 = icmp ult i32 %169, 192 br i1 %.not252, label %.loopexit242, label %.lr.ph -.lr.ph: ; preds = %167, %.lr.ph - %.1245 = phi i32 [ %177, %.lr.ph ], [ 0, %167 ] - %.3244 = phi i32 [ %176, %.lr.ph ], [ 32, %167 ] - %170 = load i32, ptr @hf_1722_61883_source_packet_header_timestamp, align 4 - %171 = call ptr @proto_tree_add_item(ptr noundef %161, i32 noundef %170, ptr noundef %0, i32 noundef %.3244, i32 noundef 4, i32 noundef 0) - %172 = or disjoint i32 %.3244, 4 - %173 = load ptr, ptr @mp2t_handle, align 8 - %174 = call ptr @tvb_new_subset_length(ptr noundef %0, i32 noundef %172, i32 noundef 188) - %175 = call i32 @call_dissector(ptr noundef %173, ptr noundef %174, ptr noundef %1, ptr noundef %161) - %176 = add nuw i32 %.3244, 192 - %177 = add nuw nsw i32 %.1245, 1 - %exitcond.not = icmp eq i32 %177, %169 +.lr.ph: ; preds = %168, %.lr.ph + %.1245 = phi i32 [ %178, %.lr.ph ], [ 0, %167 ] + %.3244 = phi i32 [ %177, %.lr.ph ], [ 32, %167 ] + %171 = load i32, ptr @hf_1722_61883_source_packet_header_timestamp, align 4 + %172 = call ptr @proto_tree_add_item(ptr noundef %162, i32 noundef %171, ptr noundef %0, i32 noundef %.3244, i32 noundef 4, i32 noundef 0) + %173 = or disjoint i32 %.3244, 4 + %174 = load ptr, ptr @mp2t_handle, align 8 + %175 = call ptr @tvb_new_subset_length(ptr noundef %0, i32 noundef %173, i32 noundef 188) + %176 = call i32 @call_dissector(ptr noundef %174, ptr noundef %175, ptr noundef %1, ptr noundef %162) + %177 = add nuw i32 %.3244, 192 + %178 = add nuw nsw i32 %.1245, 1 + %exitcond.not = icmp eq i32 %178, %170 br i1 %exitcond.not, label %.loopexit242, label %.lr.ph, !llvm.loop !9 -178: ; preds = %104 - %179 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %85, ptr noundef nonnull @ei_1722_61883_unknown_format) +179: ; preds = %104 + %180 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %85, ptr noundef nonnull @ei_1722_61883_unknown_format) br label %.loopexit242 -.loopexit242: ; preds = %.lr.ph, %..loopexit_crit_edge.us, %.loopexit, %167, %40, %178, %127, %43 - %180 = call i32 @tvb_captured_length(ptr noundef %0) +.loopexit242: ; preds = %.lr.ph, %..loopexit_crit_edge.us, %.loopexit, %168, %40, %179, %128, %43 + %181 = call i32 @tvb_captured_length(ptr noundef %0) call void @llvm.lifetime.end.p0(ptr nonnull %5) - ret i32 %180 + ret i32 %181 } ; Function Attrs: null_pointer_is_valid sspstrong uwtable