From 0b7fea0004e7c0f57fc7a07f9051d224e02c0787 Mon Sep 17 00:00:00 2001 From: dtcxzyw <15650457+dtcxzyw@users.noreply.github.com> Date: Sat, 1 Feb 2025 15:10:26 +0800 Subject: [PATCH 1/3] pre-commit: PR121958 --- 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..2796c030c68 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/121958 export COMPTIME_MODE=0 # Please rebase manually From 04540a9f849f0bf608b064803b7fa8435174560e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 1 Feb 2025 07:39:08 +0000 Subject: [PATCH 2/3] pre-commit: Update --- bench/abc/optimized/fretMain.c.ll | 7 +- bench/clamav/optimized/regex_pcre.c.ll | 146 ++++--- bench/cpython/optimized/_cursesmodule.ll | 229 +++++----- bench/cpython/optimized/dtoa.ll | 379 ++++++++-------- bench/cpython/optimized/traceback.ll | 68 ++- bench/eastl/optimized/EASprintfOrdered.cpp.ll | 31 +- bench/eastl/optimized/eathread.cpp.ll | 6 +- bench/freetype/optimized/ftcache.c.ll | 13 +- bench/freetype/optimized/type1cid.c.ll | 29 +- bench/git/optimized/http-backend.ll | 107 ++--- bench/gromacs/optimized/gmx_mindist.cpp.ll | 5 +- bench/grpc/optimized/socket_utils_posix.cc.ll | 77 ++-- bench/grpc/optimized/tcp_socket_utils.cc.ll | 131 +++--- bench/hermes/optimized/dtoa.c.ll | 319 +++++++------- bench/icu/optimized/locdispnames.ll | 409 +++++++++--------- bench/icu/optimized/nfrule.ll | 154 +++---- bench/icu/optimized/unames.ll | 161 ++++--- bench/icu/optimized/unistr.ll | 7 +- bench/libevent/optimized/event_tagging.c.ll | 13 +- bench/libquic/optimized/dtoa.cc.ll | 291 +++++++------ bench/libquic/optimized/exponentiation.c.ll | 93 ++-- bench/libwebp/optimized/cost.c.ll | 110 ++--- bench/lief/optimized/File.cpp.ll | 2 +- bench/linux/optimized/act_api.ll | 70 +-- bench/linux/optimized/check.ll | 99 +++-- bench/linux/optimized/intel_panel.ll | 356 +++++++-------- bench/linux/optimized/net_namespace.ll | 114 ++--- bench/lodepng/optimized/lodepng.cpp.ll | 165 ++++--- bench/lvgl/optimized/lv_style.ll | 28 +- bench/openblas/optimized/dgeqr.c.ll | 96 ++-- bench/openblas/optimized/dhseqr.c.ll | 380 ++++++++-------- bench/openblas/optimized/dlatrs3.c.ll | 4 +- bench/opencv/optimized/bitstrm.cpp.ll | 50 +-- bench/opencv/optimized/qrcode_reader.cpp.ll | 162 +++---- bench/opencv/optimized/stringutils.cpp.ll | 90 ++-- bench/opencv/optimized/ts.cpp.ll | 20 +- bench/openjdk/optimized/SctpNet.ll | 230 +++++----- bench/openjdk/optimized/ifnode.ll | 30 +- bench/openjdk/optimized/macroAssembler_x86.ll | 17 +- .../optimized/ca_internals_test-bin-ca.ll | 176 ++++---- .../openssl/optimized/libdefault-lib-crngt.ll | 21 +- bench/openusd/optimized/faceSurface.cpp.ll | 172 ++++---- bench/php/optimized/pcre2_study.ll | 33 +- bench/postgres/optimized/aggregatecmds.ll | 322 +++++++------- bench/qemu/optimized/fdt.c.ll | 33 +- .../qemu/optimized/hw_block_pflash_cfi01.c.ll | 337 ++++++++------- bench/re2/optimized/compile.cc.ll | 282 ++++++------ bench/rocksdb/optimized/filter_policy.cc.ll | 82 ++-- bench/rocksdb/optimized/version_set.cc.ll | 9 +- bench/slurm/optimized/job_test.ll | 8 +- .../optimized/mpi_cray_shasta_la-apinfo.ll | 5 +- bench/slurm/optimized/priority_basic.ll | 12 +- bench/snappy/optimized/snappy.cc.ll | 42 +- bench/velox/optimized/ExprCompiler.cpp.ll | 8 +- bench/wireshark/optimized/netscaler.c.ll | 50 ++- bench/wireshark/optimized/packet-asterix.c.ll | 206 ++++----- bench/wireshark/optimized/packet-ppp.c.ll | 132 +++--- bench/wireshark/optimized/pcapng.c.ll | 129 +++--- bench/yosys/optimized/clkbufmap.ll | 19 +- bench/yosys/optimized/iopadmap.ll | 6 +- bench/yosys/optimized/memlib.ll | 14 +- bench/yosys/optimized/pmux2shiftx.ll | 125 +++--- bench/yosys/optimized/qbfsat.ll | 12 +- bench/yosys/optimized/sim.ll | 20 +- bench/yyjson/optimized/yyjson.c.ll | 111 ++--- 65 files changed, 3566 insertions(+), 3498 deletions(-) diff --git a/bench/abc/optimized/fretMain.c.ll b/bench/abc/optimized/fretMain.c.ll index a180836a5b7..e1c0182902f 100644 --- a/bench/abc/optimized/fretMain.c.ll +++ b/bench/abc/optimized/fretMain.c.ll @@ -4671,7 +4671,7 @@ define internal fastcc range(i32 -1, 2) i32 @Abc_FlowRetime_VerifyPathLatencies_ %39 = tail call fastcc i32 @Abc_FlowRetime_VerifyPathLatencies_rec(ptr noundef nonnull %23, i32 noundef %38) %40 = icmp sgt i32 %39, -1 %spec.select68.us = select i1 %40, i32 1, i32 %.140106.us - %41 = select i1 %40, i32 %39, i32 0 + %41 = tail call i32 @llvm.smax.i32(i32 %39, i32 0) %spec.select69.us = or i32 %41, %.2107.us br label %46 @@ -4740,7 +4740,7 @@ define internal fastcc range(i32 -1, 2) i32 @Abc_FlowRetime_VerifyPathLatencies_ %66 = tail call fastcc i32 @Abc_FlowRetime_VerifyPathLatencies_rec(ptr noundef nonnull %56, i32 noundef 1) %67 = icmp sgt i32 %66, -1 %spec.select68 = select i1 %67, i32 1, i32 %.140106 - %68 = select i1 %67, i32 %66, i32 0 + %68 = tail call i32 @llvm.smax.i32(i32 %66, i32 0) %spec.select69 = or i32 %68, %.2107 br label %69 @@ -4935,6 +4935,9 @@ declare noundef i32 @putchar(i32 noundef) local_unnamed_addr #12 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.smin.i32(i32, i32) #14 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i32 @llvm.smax.i32(i32, i32) #14 + attributes #0 = { nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { nofree nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/clamav/optimized/regex_pcre.c.ll b/bench/clamav/optimized/regex_pcre.c.ll index 5bcd659c06a..a61c76904d8 100644 --- a/bench/clamav/optimized/regex_pcre.c.ll +++ b/bench/clamav/optimized/regex_pcre.c.ll @@ -30,7 +30,7 @@ target triple = "x86_64-pc-linux-gnu" ; Function Attrs: nounwind uwtable define ptr @cli_pcre_malloc(i64 noundef %0, ptr readnone captures(none) %1) #0 { - %3 = tail call ptr @cli_max_malloc(i64 noundef %0) #6 + %3 = tail call ptr @cli_max_malloc(i64 noundef %0) #7 ret ptr %3 } @@ -38,7 +38,7 @@ declare ptr @cli_max_malloc(i64 noundef) local_unnamed_addr #1 ; Function Attrs: mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable define void @cli_pcre_free(ptr noundef captures(none) %0, ptr readnone captures(none) %1) #2 { - tail call void @free(ptr noundef %0) #6 + tail call void @free(ptr noundef %0) #7 ret void } @@ -99,7 +99,7 @@ define range(i32 0, 28) i32 @cli_pcre_addoptions(ptr noundef %0, ptr noundef %1, 19: ; preds = %18 %20 = sext i8 %11 to i32 - tail call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str, i32 noundef %20) #6 + tail call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str, i32 noundef %20) #7 br label %.loopexit 21: ; preds = %9, %17, %16, %15, %14, %13, %12 @@ -134,26 +134,26 @@ define range(i32 0, 21) i32 @cli_pcre_compile(ptr noundef %0, i64 noundef %1, i6 br i1 %.not33, label %12, label %13 12: ; preds = %9, %5 - tail call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.1) #6 + tail call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.1) #7 br label %41 13: ; preds = %9 - %14 = tail call ptr @pcre2_general_context_create_8(ptr noundef nonnull @cli_pcre_malloc, ptr noundef nonnull @cli_pcre_free, ptr noundef null) #6 + %14 = tail call ptr @pcre2_general_context_create_8(ptr noundef nonnull @cli_pcre_malloc, ptr noundef nonnull @cli_pcre_free, ptr noundef null) #7 %.not34 = icmp eq ptr %14, null br i1 %.not34, label %15, label %16 15: ; preds = %13 - tail call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.2) #6 + tail call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.2) #7 br label %41 16: ; preds = %13 - %17 = tail call ptr @pcre2_compile_context_create_8(ptr noundef nonnull %14) #6 + %17 = tail call ptr @pcre2_compile_context_create_8(ptr noundef nonnull %14) #7 %.not35 = icmp eq ptr %17, null br i1 %.not35, label %18, label %19 18: ; preds = %16 - tail call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.3) #6 - tail call void @pcre2_general_context_free_8(ptr noundef nonnull %14) #6 + tail call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.3) #7 + tail call void @pcre2_general_context_free_8(ptr noundef nonnull %14) #7 br label %41 19: ; preds = %16 @@ -168,41 +168,41 @@ define range(i32 0, 21) i32 @cli_pcre_compile(ptr noundef %0, i64 noundef %1, i6 24: ; preds = %19, %21 %.sink = phi i32 [ %23, %21 ], [ %3, %19 ] - %25 = call ptr @pcre2_compile_8(ptr noundef %20, i64 noundef -1, i32 noundef %.sink, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull %17) #6 + %25 = call ptr @pcre2_compile_8(ptr noundef %20, i64 noundef -1, i32 noundef %.sink, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull %17) #7 store ptr %25, ptr %0, align 8 %26 = icmp eq ptr %25, null br i1 %26, label %27, label %31 27: ; preds = %24 %28 = load i32, ptr %6, align 4 - %29 = call i32 @pcre2_get_error_message_8(i32 noundef %28, ptr noundef nonnull %8, i64 noundef 256) #6 + %29 = call i32 @pcre2_get_error_message_8(i32 noundef %28, ptr noundef nonnull %8, i64 noundef 256) #7 %30 = load i64, ptr %7, align 8 - call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.4, i64 noundef %30, ptr noundef nonnull %8) #6 - call void @pcre2_compile_context_free_8(ptr noundef nonnull %17) #6 - call void @pcre2_general_context_free_8(ptr noundef nonnull %14) #6 + call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.4, i64 noundef %30, ptr noundef nonnull %8) #7 + call void @pcre2_compile_context_free_8(ptr noundef nonnull %17) #7 + call void @pcre2_general_context_free_8(ptr noundef nonnull %14) #7 br label %41 31: ; preds = %24 - %32 = call ptr @pcre2_match_context_create_8(ptr noundef nonnull %14) #6 + %32 = call ptr @pcre2_match_context_create_8(ptr noundef nonnull %14) #7 %33 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %32, ptr %33, align 8 %.not37 = icmp eq ptr %32, null br i1 %.not37, label %34, label %35 34: ; preds = %31 - call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.5) #6 - call void @pcre2_compile_context_free_8(ptr noundef nonnull %17) #6 - call void @pcre2_general_context_free_8(ptr noundef nonnull %14) #6 + call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.5) #7 + call void @pcre2_compile_context_free_8(ptr noundef nonnull %17) #7 + call void @pcre2_general_context_free_8(ptr noundef nonnull %14) #7 br label %41 35: ; preds = %31 %36 = trunc i64 %1 to i32 - %37 = call i32 @pcre2_set_match_limit_8(ptr noundef nonnull %32, i32 noundef %36) #6 + %37 = call i32 @pcre2_set_match_limit_8(ptr noundef nonnull %32, i32 noundef %36) #7 %38 = load ptr, ptr %33, align 8 %39 = trunc i64 %2 to i32 - %40 = call i32 @pcre2_set_recursion_limit_8(ptr noundef %38, i32 noundef %39) #6 - call void @pcre2_compile_context_free_8(ptr noundef nonnull %17) #6 - call void @pcre2_general_context_free_8(ptr noundef nonnull %14) #6 + %40 = call i32 @pcre2_set_recursion_limit_8(ptr noundef %38, i32 noundef %39) #7 + call void @pcre2_compile_context_free_8(ptr noundef nonnull %17) #7 + call void @pcre2_general_context_free_8(ptr noundef nonnull %14) #7 br label %41 41: ; preds = %35, %34, %27, %18, %15, %12 @@ -235,7 +235,7 @@ define i32 @cli_pcre_match(ptr noundef readonly captures(none) %0, ptr noundef % %9 = load ptr, ptr %8, align 8 %10 = getelementptr inbounds nuw i8, ptr %0, i64 8 %11 = load ptr, ptr %10, align 8 - %12 = tail call i32 @pcre2_match_8(ptr noundef %7, ptr noundef %1, i64 noundef %2, i64 noundef %3, i32 noundef %4, ptr noundef %9, ptr noundef %11) #6 + %12 = tail call i32 @pcre2_match_8(ptr noundef %7, ptr noundef %1, i64 noundef %2, i64 noundef %3, i32 noundef %4, ptr noundef %9, ptr noundef %11) #7 %or.cond = icmp slt i32 %12, -1 br i1 %or.cond, label %13, label %18 @@ -248,20 +248,20 @@ define i32 @cli_pcre_match(ptr noundef readonly captures(none) %0, ptr noundef % ] 14: ; preds = %13 - tail call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.6) #6 + tail call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.6) #7 store i32 20, ptr %5, align 8 br label %33 15: ; preds = %13 - tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.7) #6 + tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.7) #7 br label %33 16: ; preds = %13 - tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.8) #6 + tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.8) #7 br label %33 17: ; preds = %13 - tail call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.9, i32 noundef %12) #6 + tail call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.9, i32 noundef %12) #7 store i32 22, ptr %5, align 8 br label %33 @@ -271,7 +271,7 @@ define i32 @cli_pcre_match(ptr noundef readonly captures(none) %0, ptr noundef % 20: ; preds = %18 %21 = load ptr, ptr %8, align 8 - %22 = tail call ptr @pcre2_get_ovector_pointer_8(ptr noundef %21) #6 + %22 = tail call ptr @pcre2_get_ovector_pointer_8(ptr noundef %21) #7 %23 = load i64, ptr %22, align 8 %24 = trunc i64 %23 to i32 %25 = getelementptr inbounds nuw i8, ptr %5, i64 4 @@ -309,12 +309,12 @@ define void @cli_pcre_report(ptr noundef readonly captures(none) %0, ptr noundef %10 = alloca [2057 x i8], align 16 %11 = getelementptr inbounds nuw i8, ptr %4, i64 16 %12 = load ptr, ptr %11, align 8 - %13 = tail call ptr @pcre2_get_ovector_pointer_8(ptr noundef %12) #6 - tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.10) #6 - tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.11) #6 + %13 = tail call ptr @pcre2_get_ovector_pointer_8(ptr noundef %12) #7 + tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.10) #7 + tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.11) #7 %14 = getelementptr inbounds nuw i8, ptr %0, i64 24 %15 = load ptr, ptr %14, align 8 - tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.12, ptr noundef %15, i32 noundef %3) #6 + tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.12, ptr noundef %15, i32 noundef %3) #7 %16 = icmp sgt i32 %3, 0 br i1 %16, label %.preheader.preheader, label %90 @@ -335,33 +335,36 @@ define void @cli_pcre_report(ptr noundef readonly captures(none) %0, ptr noundef br i1 %24, label %25, label %26 25: ; preds = %.preheader - call void (ptr, ...) @cli_warnmsg(ptr noundef nonnull @.str.13) #6 + call void (ptr, ...) @cli_warnmsg(ptr noundef nonnull @.str.13) #7 br label %39 26: ; preds = %.preheader %27 = sub i64 %23, %19 %28 = icmp ult i64 %27, 1029 - %spec.select = select i1 %28, i64 %27, i64 1028 - %.not = icmp eq i64 %spec.select, 0 - br i1 %.not, label %._crit_edge, label %.lr.ph + %.not = icmp eq i64 %23, %19 + br i1 %.not, label %._crit_edge, label %.lr.ph.preheader -.lr.ph: ; preds = %26, %.lr.ph - %.03438 = phi i64 [ %36, %.lr.ph ], [ 0, %26 ] +.lr.ph.preheader: ; preds = %26 + %spec.select = call i64 @llvm.umin.i64(i64 %27, i64 1028) + br label %.lr.ph + +.lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph + %.03438 = phi i64 [ %36, %.lr.ph ], [ 0, %.lr.ph.preheader ] %29 = shl nuw nsw i64 %.03438, 1 %30 = getelementptr inbounds nuw i8, ptr %10, i64 %29 %31 = sub nuw nsw i64 2057, %29 %32 = getelementptr inbounds nuw i8, ptr %20, i64 %.03438 %33 = load i8, ptr %32, align 1 %34 = sext i8 %33 to i32 - %35 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %30, i64 noundef %31, ptr noundef nonnull @.str.14, i32 noundef %34) #6 - %36 = add nuw i64 %.03438, 1 + %35 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %30, i64 noundef %31, ptr noundef nonnull @.str.14, i32 noundef %34) #7 + %36 = add nuw nsw i64 %.03438, 1 %exitcond.not = icmp eq i64 %36, %spec.select br i1 %exitcond.not, label %._crit_edge, label %.lr.ph ._crit_edge: ; preds = %.lr.ph, %26 %37 = select i1 %28, ptr @.str.17, ptr @.str.16 %38 = trunc nuw nsw i64 %indvars.iv to i32 - call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.15, i32 noundef %38, ptr noundef nonnull %10, ptr noundef nonnull %37) #6 + call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.15, i32 noundef %38, ptr noundef nonnull %10, ptr noundef nonnull %37) #7 br label %39 39: ; preds = %._crit_edge, %25 @@ -375,21 +378,21 @@ define void @cli_pcre_report(ptr noundef readonly captures(none) %0, ptr noundef call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) call void @llvm.lifetime.start.p0(i64 2057, ptr nonnull %9) %41 = load ptr, ptr %0, align 8 - %42 = call i32 @pcre2_pattern_info_8(ptr noundef %41, i32 noundef 17, ptr noundef nonnull %6) #6 + %42 = call i32 @pcre2_pattern_info_8(ptr noundef %41, i32 noundef 17, ptr noundef nonnull %6) #7 %43 = load i32, ptr %6, align 4 %44 = icmp slt i32 %43, 1 br i1 %44, label %45, label %46 45: ; preds = %40 - call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.21) #6 + call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.21) #7 br label %named_substr_print.exit 46: ; preds = %40 - call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.22) #6 + call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.22) #7 %47 = load ptr, ptr %0, align 8 - %48 = call i32 @pcre2_pattern_info_8(ptr noundef %47, i32 noundef 19, ptr noundef nonnull %8) #6 + %48 = call i32 @pcre2_pattern_info_8(ptr noundef %47, i32 noundef 19, ptr noundef nonnull %8) #7 %49 = load ptr, ptr %0, align 8 - %50 = call i32 @pcre2_pattern_info_8(ptr noundef %49, i32 noundef 18, ptr noundef nonnull %7) #6 + %50 = call i32 @pcre2_pattern_info_8(ptr noundef %49, i32 noundef 18, ptr noundef nonnull %7) #7 %51 = load i32, ptr %6, align 4 %52 = icmp sgt i32 %51, 0 br i1 %52, label %.lr.ph34.preheader.i, label %named_substr_print.exit @@ -419,20 +422,23 @@ define void @cli_pcre_report(ptr noundef readonly captures(none) %0, ptr noundef %69 = load i64, ptr %68, align 8 %70 = sub i64 %69, %64 %71 = icmp ult i64 %70, 1029 - %spec.select.i = select i1 %71, i64 %70, i64 1028 - %.not.i = icmp eq i64 %spec.select.i, 0 - br i1 %.not.i, label %._crit_edge.i, label %.lr.ph.i + %.not.i = icmp eq i64 %69, %64 + br i1 %.not.i, label %._crit_edge.i, label %.lr.ph.preheader.i + +.lr.ph.preheader.i: ; preds = %.lr.ph34.i + %spec.select.i = call i64 @llvm.umin.i64(i64 %70, i64 1028) + br label %.lr.ph.i -.lr.ph.i: ; preds = %.lr.ph34.i, %.lr.ph.i - %.02730.i = phi i64 [ %79, %.lr.ph.i ], [ 0, %.lr.ph34.i ] +.lr.ph.i: ; preds = %.lr.ph.i, %.lr.ph.preheader.i + %.02730.i = phi i64 [ %79, %.lr.ph.i ], [ 0, %.lr.ph.preheader.i ] %72 = shl nuw nsw i64 %.02730.i, 1 %73 = getelementptr inbounds nuw i8, ptr %9, i64 %72 %74 = sub nuw nsw i64 2057, %72 %75 = getelementptr inbounds nuw i8, ptr %65, i64 %.02730.i %76 = load i8, ptr %75, align 1 %77 = sext i8 %76 to i32 - %78 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %73, i64 noundef %74, ptr noundef nonnull @.str.14, i32 noundef %77) #6 - %79 = add nuw i64 %.02730.i, 1 + %78 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %73, i64 noundef %74, ptr noundef nonnull @.str.14, i32 noundef %77) #7 + %79 = add nuw nsw i64 %.02730.i, 1 %exitcond.not.i = icmp eq i64 %79, %spec.select.i br i1 %exitcond.not.i, label %._crit_edge.i, label %.lr.ph.i @@ -441,7 +447,7 @@ define void @cli_pcre_report(ptr noundef readonly captures(none) %0, ptr noundef %81 = add nsw i32 %80, -3 %82 = getelementptr inbounds nuw i8, ptr %.02631.i, i64 2 %83 = select i1 %71, ptr @.str.17, ptr @.str.16 - call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.23, i32 noundef %60, i32 noundef %81, ptr noundef nonnull %82, ptr noundef nonnull %9, ptr noundef nonnull %83) #6 + call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.23, i32 noundef %60, i32 noundef %81, ptr noundef nonnull %82, ptr noundef nonnull %9, ptr noundef nonnull %83) #7 %84 = load i32, ptr %7, align 4 %85 = sext i32 %84 to i64 %86 = getelementptr inbounds i8, ptr %.02631.i, i64 %85 @@ -463,16 +469,16 @@ named_substr_print.exit: ; preds = %._crit_edge.i, %45, br i1 %or.cond, label %92, label %93 92: ; preds = %90 - tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.18) #6 + tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.18) #7 br label %94 93: ; preds = %90 - tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.19, i32 noundef %3) #6 + tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.19, i32 noundef %3) #7 br label %94 94: ; preds = %92, %93, %named_substr_print.exit - call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.20) #6 - call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.10) #6 + call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.20) #7 + call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.10) #7 ret void } @@ -494,12 +500,12 @@ define range(i32 0, 21) i32 @cli_pcre_results_reset(ptr noundef captures(none) i br i1 %.not, label %8, label %7 7: ; preds = %2 - tail call void @pcre2_match_data_free_8(ptr noundef nonnull %6) #6 + tail call void @pcre2_match_data_free_8(ptr noundef nonnull %6) #7 br label %8 8: ; preds = %7, %2 %9 = load ptr, ptr %1, align 8 - %10 = tail call ptr @pcre2_match_data_create_from_pattern_8(ptr noundef %9, ptr noundef null) #6 + %10 = tail call ptr @pcre2_match_data_create_from_pattern_8(ptr noundef %9, ptr noundef null) #7 store ptr %10, ptr %5, align 8 %.not9 = icmp eq ptr %10, null %. = select i1 %.not9, i32 20, i32 0 @@ -518,7 +524,7 @@ define void @cli_pcre_results_free(ptr noundef readonly captures(none) %0) local br i1 %.not, label %5, label %4 4: ; preds = %1 - tail call void @pcre2_match_data_free_8(ptr noundef nonnull %3) #6 + tail call void @pcre2_match_data_free_8(ptr noundef nonnull %3) #7 br label %5 5: ; preds = %4, %1 @@ -532,7 +538,7 @@ define void @cli_pcre_free_single(ptr noundef captures(none) %0) local_unnamed_a br i1 %.not, label %4, label %3 3: ; preds = %1 - tail call void @pcre2_code_free_8(ptr noundef nonnull %2) #6 + tail call void @pcre2_code_free_8(ptr noundef nonnull %2) #7 store ptr null, ptr %0, align 8 br label %4 @@ -543,7 +549,7 @@ define void @cli_pcre_free_single(ptr noundef captures(none) %0) local_unnamed_a br i1 %.not11, label %8, label %7 7: ; preds = %4 - tail call void @pcre2_match_context_free_8(ptr noundef nonnull %6) #6 + tail call void @pcre2_match_context_free_8(ptr noundef nonnull %6) #7 store ptr null, ptr %5, align 8 br label %8 @@ -554,7 +560,7 @@ define void @cli_pcre_free_single(ptr noundef captures(none) %0) local_unnamed_a br i1 %.not12, label %12, label %11 11: ; preds = %8 - tail call void @free(ptr noundef nonnull %10) #6 + tail call void @free(ptr noundef nonnull %10) #7 store ptr null, ptr %9, align 8 br label %12 @@ -568,19 +574,23 @@ declare void @pcre2_match_context_free_8(ptr noundef) local_unnamed_addr #1 declare i32 @pcre2_pattern_info_8(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #1 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i64 @llvm.umin.i64(i64, i64) #5 + ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #5 +declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #6 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #5 +declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #6 attributes #0 = { nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { nofree nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #5 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #6 = { nounwind } +attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #6 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } +attributes #7 = { nounwind } !llvm.module.flags = !{!0, !1, !2, !3} diff --git a/bench/cpython/optimized/_cursesmodule.ll b/bench/cpython/optimized/_cursesmodule.ll index ce0684e4d88..02251f41198 100644 --- a/bench/cpython/optimized/_cursesmodule.ll +++ b/bench/cpython/optimized/_cursesmodule.ll @@ -8619,8 +8619,8 @@ if.end.i.i: ; preds = %land.lhs.true.i.i, %1 = load i32, ptr @COLORS, align 4 %conv.i.i = sext i32 %1 to i64 %cmp3.not.i.i = icmp slt i64 %call.i.i, %conv.i.i - %or.cond4.i.i = select i1 %cmp2.i.i, i1 %cmp3.not.i.i, i1 false - br i1 %or.cond4.i.i, label %if.end.i, label %if.then5.i.i + %or.cond.i.i = select i1 %cmp2.i.i, i1 %cmp3.not.i.i, i1 false + br i1 %or.cond.i.i, label %if.end.i, label %if.then5.i.i if.then5.i.i: ; preds = %if.end.i.i %2 = load ptr, ptr @PyExc_ValueError, align 8 @@ -8633,17 +8633,17 @@ color_allow_default_converter.exit.thread.i: ; preds = %if.then5.i.i, %land br label %exit if.end.i: ; preds = %if.end.i.i - %cmp7.i.i = icmp ne i32 %0, 0 - %3 = trunc i64 %call.i.i to i32 + %cmp7.not.i.i = icmp ne i32 %0, 0 + %3 = call i64 @llvm.smax.i64(i64 %call.i.i, i64 -1) + %4 = trunc i64 %3 to i32 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %overflow.i.i) - %4 = and i64 %call.i.i, -9223372034707292160 - %5 = icmp ne i64 %4, 0 - %cmp.i = or i1 %5, %cmp7.i.i + %cmp.i6 = icmp slt i32 %4, 0 + %cmp.i = or i1 %cmp.i6, %cmp7.not.i.i br i1 %cmp.i, label %if.then1.i, label %if.end if.then1.i: ; preds = %if.end.i - %6 = load ptr, ptr @PyExc_ValueError, align 8 - call void @PyErr_SetString(ptr noundef %6, ptr noundef nonnull @.str.354) #9 + %5 = load ptr, ptr @PyExc_ValueError, align 8 + call void @PyErr_SetString(ptr noundef %5, ptr noundef nonnull @.str.354) #9 br label %exit if.end: ; preds = %if.end.i @@ -8654,8 +8654,8 @@ if.end: ; preds = %if.end.i br i1 %.b.i, label %if.end.i2, label %if.then.i if.then.i: ; preds = %if.end - %7 = load ptr, ptr @PyCursesError, align 8 - call void @PyErr_SetString(ptr noundef %7, ptr noundef nonnull @.str.353) #9 + %6 = load ptr, ptr @PyCursesError, align 8 + call void @PyErr_SetString(ptr noundef %6, ptr noundef nonnull @.str.353) #9 br label %_curses_color_content_impl.exit if.end.i2: ; preds = %if.end @@ -8663,25 +8663,25 @@ if.end.i2: ; preds = %if.end br i1 %.b1.i, label %if.end3.i, label %if.then2.i if.then2.i: ; preds = %if.end.i2 - %8 = load ptr, ptr @PyCursesError, align 8 - call void @PyErr_SetString(ptr noundef %8, ptr noundef nonnull @.str.356) #9 + %7 = load ptr, ptr @PyCursesError, align 8 + call void @PyErr_SetString(ptr noundef %7, ptr noundef nonnull @.str.356) #9 br label %_curses_color_content_impl.exit if.end3.i: ; preds = %if.end.i2 - %call.i = call i32 @extended_color_content(i32 noundef %3, ptr noundef nonnull %r.i, ptr noundef nonnull %g.i, ptr noundef nonnull %b.i) #9 + %call.i = call i32 @extended_color_content(i32 noundef %4, ptr noundef nonnull %r.i, ptr noundef nonnull %g.i, ptr noundef nonnull %b.i) #9 %cmp4.i = icmp eq i32 %call.i, -1 br i1 %cmp4.i, label %if.then5.i, label %if.end7.i if.then5.i: ; preds = %if.end3.i - %9 = load ptr, ptr @PyCursesError, align 8 - %call6.i = call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %9, ptr noundef nonnull @.str.156, ptr noundef nonnull @.str.357) #9 + %8 = load ptr, ptr @PyCursesError, align 8 + %call6.i = call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %8, ptr noundef nonnull @.str.156, ptr noundef nonnull @.str.357) #9 br label %_curses_color_content_impl.exit if.end7.i: ; preds = %if.end3.i - %10 = load i32, ptr %r.i, align 4 - %11 = load i32, ptr %g.i, align 4 - %12 = load i32, ptr %b.i, align 4 - %call8.i = call ptr (ptr, ...) @Py_BuildValue(ptr noundef nonnull @.str.358, i32 noundef %10, i32 noundef %11, i32 noundef %12) #9 + %9 = load i32, ptr %r.i, align 4 + %10 = load i32, ptr %g.i, align 4 + %11 = load i32, ptr %b.i, align 4 + %call8.i = call ptr (ptr, ...) @Py_BuildValue(ptr noundef nonnull @.str.358, i32 noundef %9, i32 noundef %10, i32 noundef %11) #9 br label %_curses_color_content_impl.exit _curses_color_content_impl.exit: ; preds = %if.then.i, %if.then2.i, %if.then5.i, %if.end7.i @@ -9724,8 +9724,8 @@ if.end.i.i: ; preds = %land.lhs.true.i.i, %2 = load i32, ptr @COLORS, align 4 %conv.i.i = sext i32 %2 to i64 %cmp3.not.i.i = icmp slt i64 %call.i.i, %conv.i.i - %or.cond4.i.i = select i1 %cmp2.i.i, i1 %cmp3.not.i.i, i1 false - br i1 %or.cond4.i.i, label %if.end.i, label %if.then5.i.i + %or.cond.i.i = select i1 %cmp2.i.i, i1 %cmp3.not.i.i, i1 false + br i1 %or.cond.i.i, label %if.end.i, label %if.then5.i.i if.then5.i.i: ; preds = %if.end.i.i %3 = load ptr, ptr @PyExc_ValueError, align 8 @@ -9738,24 +9738,24 @@ color_allow_default_converter.exit.thread.i: ; preds = %if.then5.i.i, %land br label %exit if.end.i: ; preds = %if.end.i.i - %cmp7.i.i = icmp ne i32 %1, 0 - %4 = trunc i64 %call.i.i to i32 + %cmp7.not.i.i = icmp ne i32 %1, 0 + %4 = call i64 @llvm.smax.i64(i64 %call.i.i, i64 -1) + %5 = trunc i64 %4 to i32 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %overflow.i.i) - %5 = and i64 %call.i.i, -9223372034707292160 - %6 = icmp ne i64 %5, 0 - %cmp.i = or i1 %6, %cmp7.i.i + %cmp.i66 = icmp slt i32 %5, 0 + %cmp.i = or i1 %cmp.i66, %cmp7.not.i.i br i1 %cmp.i, label %if.then1.i, label %if.end5 if.then1.i: ; preds = %if.end.i - %7 = load ptr, ptr @PyExc_ValueError, align 8 - call void @PyErr_SetString(ptr noundef %7, ptr noundef nonnull @.str.354) #9 + %6 = load ptr, ptr @PyExc_ValueError, align 8 + call void @PyErr_SetString(ptr noundef %6, ptr noundef nonnull @.str.354) #9 br label %exit if.end5: ; preds = %if.end.i %arrayidx6 = getelementptr i8, ptr %args, i64 8 - %8 = load ptr, ptr %arrayidx6, align 8 + %7 = load ptr, ptr %arrayidx6, align 8 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %overflow.i) - %call.i = call i64 @PyLong_AsLongAndOverflow(ptr noundef %8, ptr noundef nonnull %overflow.i) #9 + %call.i = call i64 @PyLong_AsLongAndOverflow(ptr noundef %7, ptr noundef nonnull %overflow.i) #9 %cmp.i6 = icmp eq i64 %call.i, -1 br i1 %cmp.i6, label %land.lhs.true.i, label %if.end.i7 @@ -9765,22 +9765,22 @@ land.lhs.true.i: ; preds = %if.end5 br i1 %tobool.not.i, label %if.end.i7, label %component_converter.exit.thread if.end.i7: ; preds = %land.lhs.true.i, %if.end5 - %9 = load i32, ptr %overflow.i, align 4 - %cmp2.i = icmp sgt i32 %9, 0 + %8 = load i32, ptr %overflow.i, align 4 + %cmp2.i = icmp sgt i32 %8, 0 %cmp3.i = icmp sgt i64 %call.i, 1000 %or.cond.i = or i1 %cmp3.i, %cmp2.i br i1 %or.cond.i, label %component_converter.exit.thread.sink.split, label %if.else.i if.else.i: ; preds = %if.end.i7 - %cmp5.i = icmp slt i32 %9, 0 + %cmp5.i = icmp slt i32 %8, 0 %cmp7.i = icmp slt i64 %call.i, 0 %or.cond1.i = or i1 %cmp7.i, %cmp5.i br i1 %or.cond1.i, label %component_converter.exit.thread.sink.split, label %if.end10 component_converter.exit.thread.sink.split: ; preds = %if.else.i, %if.end.i7 %.str.370.sink = phi ptr [ @.str.370, %if.end.i7 ], [ @.str.371, %if.else.i ] - %10 = load ptr, ptr @PyExc_ValueError, align 8 - call void @PyErr_SetString(ptr noundef %10, ptr noundef nonnull %.str.370.sink) #9 + %9 = load ptr, ptr @PyExc_ValueError, align 8 + call void @PyErr_SetString(ptr noundef %9, ptr noundef nonnull %.str.370.sink) #9 br label %component_converter.exit.thread component_converter.exit.thread: ; preds = %component_converter.exit.thread.sink.split, %land.lhs.true.i @@ -9791,9 +9791,9 @@ if.end10: ; preds = %if.else.i %conv.i = trunc i64 %call.i to i32 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %overflow.i) %arrayidx11 = getelementptr i8, ptr %args, i64 16 - %11 = load ptr, ptr %arrayidx11, align 8 + %10 = load ptr, ptr %arrayidx11, align 8 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %overflow.i9) - %call.i10 = call i64 @PyLong_AsLongAndOverflow(ptr noundef %11, ptr noundef nonnull %overflow.i9) #9 + %call.i10 = call i64 @PyLong_AsLongAndOverflow(ptr noundef %10, ptr noundef nonnull %overflow.i9) #9 %cmp.i11 = icmp eq i64 %call.i10, -1 br i1 %cmp.i11, label %land.lhs.true.i25, label %if.end.i12 @@ -9803,22 +9803,22 @@ land.lhs.true.i25: ; preds = %if.end10 br i1 %tobool.not.i27, label %if.end.i12, label %component_converter.exit28.thread if.end.i12: ; preds = %land.lhs.true.i25, %if.end10 - %12 = load i32, ptr %overflow.i9, align 4 - %cmp2.i13 = icmp sgt i32 %12, 0 + %11 = load i32, ptr %overflow.i9, align 4 + %cmp2.i13 = icmp sgt i32 %11, 0 %cmp3.i14 = icmp sgt i64 %call.i10, 1000 %or.cond.i15 = or i1 %cmp3.i14, %cmp2.i13 br i1 %or.cond.i15, label %component_converter.exit28.thread.sink.split, label %if.else.i16 if.else.i16: ; preds = %if.end.i12 - %cmp5.i17 = icmp slt i32 %12, 0 + %cmp5.i17 = icmp slt i32 %11, 0 %cmp7.i18 = icmp slt i64 %call.i10, 0 %or.cond1.i19 = or i1 %cmp7.i18, %cmp5.i17 br i1 %or.cond1.i19, label %component_converter.exit28.thread.sink.split, label %if.end15 component_converter.exit28.thread.sink.split: ; preds = %if.else.i16, %if.end.i12 %.str.370.sink67 = phi ptr [ @.str.370, %if.end.i12 ], [ @.str.371, %if.else.i16 ] - %13 = load ptr, ptr @PyExc_ValueError, align 8 - call void @PyErr_SetString(ptr noundef %13, ptr noundef nonnull %.str.370.sink67) #9 + %12 = load ptr, ptr @PyExc_ValueError, align 8 + call void @PyErr_SetString(ptr noundef %12, ptr noundef nonnull %.str.370.sink67) #9 br label %component_converter.exit28.thread component_converter.exit28.thread: ; preds = %component_converter.exit28.thread.sink.split, %land.lhs.true.i25 @@ -9829,9 +9829,9 @@ if.end15: ; preds = %if.else.i16 %conv.i21 = trunc i64 %call.i10 to i32 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %overflow.i9) %arrayidx16 = getelementptr i8, ptr %args, i64 24 - %14 = load ptr, ptr %arrayidx16, align 8 + %13 = load ptr, ptr %arrayidx16, align 8 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %overflow.i29) - %call.i30 = call i64 @PyLong_AsLongAndOverflow(ptr noundef %14, ptr noundef nonnull %overflow.i29) #9 + %call.i30 = call i64 @PyLong_AsLongAndOverflow(ptr noundef %13, ptr noundef nonnull %overflow.i29) #9 %cmp.i31 = icmp eq i64 %call.i30, -1 br i1 %cmp.i31, label %land.lhs.true.i45, label %if.end.i32 @@ -9841,22 +9841,22 @@ land.lhs.true.i45: ; preds = %if.end15 br i1 %tobool.not.i47, label %if.end.i32, label %component_converter.exit48.thread if.end.i32: ; preds = %land.lhs.true.i45, %if.end15 - %15 = load i32, ptr %overflow.i29, align 4 - %cmp2.i33 = icmp sgt i32 %15, 0 + %14 = load i32, ptr %overflow.i29, align 4 + %cmp2.i33 = icmp sgt i32 %14, 0 %cmp3.i34 = icmp sgt i64 %call.i30, 1000 %or.cond.i35 = or i1 %cmp3.i34, %cmp2.i33 br i1 %or.cond.i35, label %component_converter.exit48.thread.sink.split, label %if.else.i36 if.else.i36: ; preds = %if.end.i32 - %cmp5.i37 = icmp slt i32 %15, 0 + %cmp5.i37 = icmp slt i32 %14, 0 %cmp7.i38 = icmp slt i64 %call.i30, 0 %or.cond1.i39 = or i1 %cmp7.i38, %cmp5.i37 br i1 %or.cond1.i39, label %component_converter.exit48.thread.sink.split, label %if.end20 component_converter.exit48.thread.sink.split: ; preds = %if.else.i36, %if.end.i32 %.str.370.sink68 = phi ptr [ @.str.370, %if.end.i32 ], [ @.str.371, %if.else.i36 ] - %16 = load ptr, ptr @PyExc_ValueError, align 8 - call void @PyErr_SetString(ptr noundef %16, ptr noundef nonnull %.str.370.sink68) #9 + %15 = load ptr, ptr @PyExc_ValueError, align 8 + call void @PyErr_SetString(ptr noundef %15, ptr noundef nonnull %.str.370.sink68) #9 br label %component_converter.exit48.thread component_converter.exit48.thread: ; preds = %component_converter.exit48.thread.sink.split, %land.lhs.true.i45 @@ -9870,8 +9870,8 @@ if.end20: ; preds = %if.else.i36 br i1 %.b.i, label %if.end.i50, label %if.then.i if.then.i: ; preds = %if.end20 - %17 = load ptr, ptr @PyCursesError, align 8 - call void @PyErr_SetString(ptr noundef %17, ptr noundef nonnull @.str.353) #9 + %16 = load ptr, ptr @PyCursesError, align 8 + call void @PyErr_SetString(ptr noundef %16, ptr noundef nonnull @.str.353) #9 br label %exit if.end.i50: ; preds = %if.end20 @@ -9879,18 +9879,18 @@ if.end.i50: ; preds = %if.end20 br i1 %.b1.i, label %if.end3.i, label %if.then2.i if.then2.i: ; preds = %if.end.i50 - %18 = load ptr, ptr @PyCursesError, align 8 - call void @PyErr_SetString(ptr noundef %18, ptr noundef nonnull @.str.356) #9 + %17 = load ptr, ptr @PyCursesError, align 8 + call void @PyErr_SetString(ptr noundef %17, ptr noundef nonnull @.str.356) #9 br label %exit if.end3.i: ; preds = %if.end.i50 - %call.i52 = call i32 @init_extended_color(i32 noundef %4, i32 noundef %conv.i, i32 noundef %conv.i21, i32 noundef %conv.i41) #9 + %call.i52 = call i32 @init_extended_color(i32 noundef %5, i32 noundef %conv.i, i32 noundef %conv.i21, i32 noundef %conv.i41) #9 %cmp.not.i.i = icmp eq i32 %call.i52, -1 br i1 %cmp.not.i.i, label %if.else.i.i, label %exit if.else.i.i: ; preds = %if.end3.i - %19 = load ptr, ptr @PyCursesError, align 8 - %call.i.i53 = call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %19, ptr noundef nonnull @.str.156, ptr noundef nonnull @.str.372) #9 + %18 = load ptr, ptr @PyCursesError, align 8 + %call.i.i53 = call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %18, ptr noundef nonnull @.str.156, ptr noundef nonnull @.str.372) #9 br label %exit exit: ; preds = %color_allow_default_converter.exit.thread.i, %if.then1.i, %if.else.i.i, %if.end3.i, %if.then2.i, %if.then.i, %component_converter.exit48.thread, %component_converter.exit28.thread, %component_converter.exit.thread, %lor.lhs.false @@ -9972,8 +9972,8 @@ if.end.i8: ; preds = %land.lhs.true.i14, %6 = load i32, ptr @COLORS, align 4 %conv.i10 = sext i32 %6 to i64 %cmp3.not.i = icmp slt i64 %call.i6, %conv.i10 - %or.cond4.i = select i1 %cmp2.i9, i1 %cmp3.not.i, i1 false - br i1 %or.cond4.i, label %if.end10, label %if.then5.i + %or.cond.i11 = select i1 %cmp2.i9, i1 %cmp3.not.i, i1 false + br i1 %or.cond.i11, label %if.end10, label %if.then5.i if.then5.i: ; preds = %if.end.i8 %7 = load ptr, ptr @PyExc_ValueError, align 8 @@ -9986,90 +9986,88 @@ color_allow_default_converter.exit.thread: ; preds = %if.then5.i, %land.l br label %exit if.end10: ; preds = %if.end.i8 - %cmp7.i = icmp ne i32 %5, 0 - %cmp10.i = icmp slt i64 %call.i6, 0 - %or.cond.i13 = or i1 %cmp10.i, %cmp7.i - %8 = trunc i64 %call.i6 to i32 - %conv15.i = select i1 %or.cond.i13, i32 -1, i32 %8 + %cmp7.not.i = icmp eq i32 %5, 0 + %8 = call i64 @llvm.smax.i64(i64 %call.i6, i64 -1) + %9 = trunc i64 %8 to i32 + %conv15.i = select i1 %cmp7.not.i, i32 %9, i32 -1 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %overflow.i5) %arrayidx11 = getelementptr i8, ptr %args, i64 16 - %9 = load ptr, ptr %arrayidx11, align 8 + %10 = load ptr, ptr %arrayidx11, align 8 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %overflow.i17) - %call.i18 = call i64 @PyLong_AsLongAndOverflow(ptr noundef %9, ptr noundef nonnull %overflow.i17) #9 + %call.i18 = call i64 @PyLong_AsLongAndOverflow(ptr noundef %10, ptr noundef nonnull %overflow.i17) #9 %cmp.i19 = icmp eq i64 %call.i18, -1 - br i1 %cmp.i19, label %land.lhs.true.i34, label %if.end.i20 - -land.lhs.true.i34: ; preds = %if.end10 - %call1.i35 = call ptr @PyErr_Occurred() #9 - %tobool.not.i36 = icmp eq ptr %call1.i35, null - br i1 %tobool.not.i36, label %if.end.i20, label %color_allow_default_converter.exit37.thread - -if.end.i20: ; preds = %land.lhs.true.i34, %if.end10 - %10 = load i32, ptr %overflow.i17, align 4 - %cmp2.i21 = icmp slt i32 %10, 1 - %11 = load i32, ptr @COLORS, align 4 - %conv.i22 = sext i32 %11 to i64 + br i1 %cmp.i19, label %land.lhs.true.i32, label %if.end.i20 + +land.lhs.true.i32: ; preds = %if.end10 + %call1.i33 = call ptr @PyErr_Occurred() #9 + %tobool.not.i34 = icmp eq ptr %call1.i33, null + br i1 %tobool.not.i34, label %if.end.i20, label %color_allow_default_converter.exit35.thread + +if.end.i20: ; preds = %land.lhs.true.i32, %if.end10 + %11 = load i32, ptr %overflow.i17, align 4 + %cmp2.i21 = icmp slt i32 %11, 1 + %12 = load i32, ptr @COLORS, align 4 + %conv.i22 = sext i32 %12 to i64 %cmp3.not.i23 = icmp slt i64 %call.i18, %conv.i22 - %or.cond4.i24 = select i1 %cmp2.i21, i1 %cmp3.not.i23, i1 false - br i1 %or.cond4.i24, label %if.end15, label %if.then5.i25 + %or.cond.i24 = select i1 %cmp2.i21, i1 %cmp3.not.i23, i1 false + br i1 %or.cond.i24, label %if.end15, label %if.then5.i25 if.then5.i25: ; preds = %if.end.i20 - %12 = load ptr, ptr @PyExc_ValueError, align 8 - %sub.i26 = add i32 %11, -1 - %call6.i27 = call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %12, ptr noundef nonnull @.str.355, i32 noundef %sub.i26) #9 - br label %color_allow_default_converter.exit37.thread + %13 = load ptr, ptr @PyExc_ValueError, align 8 + %sub.i26 = add i32 %12, -1 + %call6.i27 = call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %13, ptr noundef nonnull @.str.355, i32 noundef %sub.i26) #9 + br label %color_allow_default_converter.exit35.thread -color_allow_default_converter.exit37.thread: ; preds = %if.then5.i25, %land.lhs.true.i34 +color_allow_default_converter.exit35.thread: ; preds = %if.then5.i25, %land.lhs.true.i32 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %overflow.i17) br label %exit if.end15: ; preds = %if.end.i20 - %cmp7.i30 = icmp ne i32 %10, 0 - %cmp10.i31 = icmp slt i64 %call.i18, 0 - %or.cond.i32 = or i1 %cmp10.i31, %cmp7.i30 - %13 = trunc i64 %call.i18 to i32 - %conv15.i33 = select i1 %or.cond.i32, i32 -1, i32 %13 + %cmp7.not.i30 = icmp eq i32 %11, 0 + %14 = call i64 @llvm.smax.i64(i64 %call.i18, i64 -1) + %15 = trunc i64 %14 to i32 + %conv15.i31 = select i1 %cmp7.not.i30, i32 %15, i32 -1 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %overflow.i17) %.b.i = load i1, ptr @initialised, align 4 - br i1 %.b.i, label %if.end.i39, label %if.then.i + br i1 %.b.i, label %if.end.i37, label %if.then.i if.then.i: ; preds = %if.end15 - %14 = load ptr, ptr @PyCursesError, align 8 - call void @PyErr_SetString(ptr noundef %14, ptr noundef nonnull @.str.353) #9 + %16 = load ptr, ptr @PyCursesError, align 8 + call void @PyErr_SetString(ptr noundef %16, ptr noundef nonnull @.str.353) #9 br label %exit -if.end.i39: ; preds = %if.end15 +if.end.i37: ; preds = %if.end15 %.b2.i = load i1, ptr @initialisedcolors, align 4 br i1 %.b2.i, label %if.end3.i, label %if.then2.i -if.then2.i: ; preds = %if.end.i39 - %15 = load ptr, ptr @PyCursesError, align 8 - call void @PyErr_SetString(ptr noundef %15, ptr noundef nonnull @.str.356) #9 +if.then2.i: ; preds = %if.end.i37 + %17 = load ptr, ptr @PyCursesError, align 8 + call void @PyErr_SetString(ptr noundef %17, ptr noundef nonnull @.str.356) #9 br label %exit -if.end3.i: ; preds = %if.end.i39 - %call.i40 = call i32 @init_extended_pair(i32 noundef %conv.i, i32 noundef %conv15.i, i32 noundef %conv15.i33) #9 - %cmp4.i = icmp eq i32 %call.i40, -1 - br i1 %cmp4.i, label %if.then5.i41, label %exit +if.end3.i: ; preds = %if.end.i37 + %call.i38 = call i32 @init_extended_pair(i32 noundef %conv.i, i32 noundef %conv15.i, i32 noundef %conv15.i31) #9 + %cmp4.i = icmp eq i32 %call.i38, -1 + br i1 %cmp4.i, label %if.then5.i39, label %exit -if.then5.i41: ; preds = %if.end3.i - %16 = load i32, ptr @COLOR_PAIRS, align 4 - %cmp6.not.i = icmp sgt i32 %16, %conv.i - br i1 %cmp6.not.i, label %if.else.i43, label %if.then7.i +if.then5.i39: ; preds = %if.end3.i + %18 = load i32, ptr @COLOR_PAIRS, align 4 + %cmp6.not.i = icmp sgt i32 %18, %conv.i + br i1 %cmp6.not.i, label %if.else.i41, label %if.then7.i -if.then7.i: ; preds = %if.then5.i41 - %17 = load ptr, ptr @PyExc_ValueError, align 8 - %sub.i42 = add i32 %16, -1 - %call8.i = call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %17, ptr noundef nonnull @.str.375, i32 noundef %sub.i42) #9 +if.then7.i: ; preds = %if.then5.i39 + %19 = load ptr, ptr @PyExc_ValueError, align 8 + %sub.i40 = add i32 %18, -1 + %call8.i = call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %19, ptr noundef nonnull @.str.375, i32 noundef %sub.i40) #9 br label %exit -if.else.i43: ; preds = %if.then5.i41 - %18 = load ptr, ptr @PyCursesError, align 8 - %call9.i = call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %18, ptr noundef nonnull @.str.156, ptr noundef nonnull @.str.376) #9 +if.else.i41: ; preds = %if.then5.i39 + %20 = load ptr, ptr @PyCursesError, align 8 + %call9.i = call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %20, ptr noundef nonnull @.str.156, ptr noundef nonnull @.str.376) #9 br label %exit -exit: ; preds = %if.else.i43, %if.then7.i, %if.end3.i, %if.then2.i, %if.then.i, %color_allow_default_converter.exit37.thread, %color_allow_default_converter.exit.thread, %pair_converter.exit.thread, %lor.lhs.false - %return_value.0 = phi ptr [ null, %lor.lhs.false ], [ null, %pair_converter.exit.thread ], [ null, %color_allow_default_converter.exit.thread ], [ null, %color_allow_default_converter.exit37.thread ], [ null, %if.then.i ], [ null, %if.then2.i ], [ null, %if.else.i43 ], [ null, %if.then7.i ], [ @_Py_NoneStruct, %if.end3.i ] +exit: ; preds = %if.else.i41, %if.then7.i, %if.end3.i, %if.then2.i, %if.then.i, %color_allow_default_converter.exit35.thread, %color_allow_default_converter.exit.thread, %pair_converter.exit.thread, %lor.lhs.false + %return_value.0 = phi ptr [ null, %lor.lhs.false ], [ null, %pair_converter.exit.thread ], [ null, %color_allow_default_converter.exit.thread ], [ null, %color_allow_default_converter.exit35.thread ], [ null, %if.then.i ], [ null, %if.then2.i ], [ null, %if.else.i41 ], [ null, %if.then7.i ], [ @_Py_NoneStruct, %if.end3.i ] ret ptr %return_value.0 } @@ -14343,6 +14341,9 @@ declare void @PyStructSequence_SetItem(ptr noundef, i64 noundef, ptr noundef) lo ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.smin.i32(i32, i32) #5 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i64 @llvm.smax.i64(i64, i64) #5 + ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #6 diff --git a/bench/cpython/optimized/dtoa.ll b/bench/cpython/optimized/dtoa.ll index 1cab0fc488a..5226d7aaf89 100644 --- a/bench/cpython/optimized/dtoa.ll +++ b/bench/cpython/optimized/dtoa.ll @@ -41,12 +41,12 @@ sw.epilog: ; preds = %sw.bb1, %entry %c.0.in = phi i8 [ %0, %entry ], [ %2, %sw.bb1 ] %sign.0 = phi i1 [ true, %entry ], [ %1, %sw.bb1 ] %s.0 = phi ptr [ %s00, %entry ], [ %incdec.ptr, %sw.bb1 ] - %cmp764 = icmp eq i8 %c.0.in, 48 - br i1 %cmp764, label %while.body, label %while.end + %cmp765 = icmp eq i8 %c.0.in, 48 + br i1 %cmp765, label %while.body, label %while.end while.body: ; preds = %sw.epilog, %while.body - %s.1765 = phi ptr [ %incdec.ptr4, %while.body ], [ %s.0, %sw.epilog ] - %incdec.ptr4 = getelementptr i8, ptr %s.1765, i64 1 + %s.1766 = phi ptr [ %incdec.ptr4, %while.body ], [ %s.0, %sw.epilog ] + %incdec.ptr4 = getelementptr i8, ptr %s.1766, i64 1 %3 = load i8, ptr %incdec.ptr4, align 1 %cmp = icmp eq i8 %3, 48 br i1 %cmp, label %while.body, label %while.end, !llvm.loop !5 @@ -60,8 +60,8 @@ while.end: ; preds = %while.body, %sw.epi br i1 %5, label %while.body13, label %while.end16 while.body13: ; preds = %while.end, %while.body13 - %s.2767 = phi ptr [ %incdec.ptr14, %while.body13 ], [ %s.1.lcssa, %while.end ] - %incdec.ptr14 = getelementptr i8, ptr %s.2767, i64 1 + %s.2768 = phi ptr [ %incdec.ptr14, %while.body13 ], [ %s.1.lcssa, %while.end ] + %incdec.ptr14 = getelementptr i8, ptr %s.2768, i64 1 %6 = load i8, ptr %incdec.ptr14, align 1 %7 = add i8 %6, -48 %8 = icmp ult i8 %7, 10 @@ -85,12 +85,12 @@ if.then: ; preds = %while.end16 br i1 %tobool.not, label %while.cond22.preheader, label %if.end while.cond22.preheader: ; preds = %if.then - %cmp23770 = icmp eq i8 %9, 48 - br i1 %cmp23770, label %while.body25, label %while.end28 + %cmp23771 = icmp eq i8 %9, 48 + br i1 %cmp23771, label %while.body25, label %while.end28 while.body25: ; preds = %while.cond22.preheader, %while.body25 - %s.5771 = phi ptr [ %incdec.ptr26, %while.body25 ], [ %incdec.ptr19, %while.cond22.preheader ] - %incdec.ptr26 = getelementptr i8, ptr %s.5771, i64 1 + %s.5772 = phi ptr [ %incdec.ptr26, %while.body25 ], [ %incdec.ptr19, %while.cond22.preheader ] + %incdec.ptr26 = getelementptr i8, ptr %s.5772, i64 1 %10 = load i8, ptr %incdec.ptr26, align 1 %cmp23 = icmp eq i8 %10, 48 br i1 %cmp23, label %while.body25, label %while.end28.loopexit, !llvm.loop !8 @@ -120,8 +120,8 @@ if.end: ; preds = %while.end28, %if.th br i1 %13, label %while.body42, label %while.end45 while.body42: ; preds = %if.end, %while.body42 - %s.6774 = phi ptr [ %incdec.ptr43, %while.body42 ], [ %s.4, %if.end ] - %incdec.ptr43 = getelementptr i8, ptr %s.6774, i64 1 + %s.6775 = phi ptr [ %incdec.ptr43, %while.body42 ], [ %s.4, %if.end ] + %incdec.ptr43 = getelementptr i8, ptr %s.6775, i64 1 %14 = load i8, ptr %incdec.ptr43, align 1 %conv44 = sext i8 %14 to i32 %15 = add nsw i32 %conv44, -48 @@ -200,12 +200,12 @@ sw.epilog86: ; preds = %sw.bb83, %if.then79 %c.7.in = phi i8 [ %18, %if.then79 ], [ %20, %sw.bb83 ] %esign.0 = phi i1 [ true, %if.then79 ], [ %19, %sw.bb83 ] %s.8 = phi ptr [ %incdec.ptr80, %if.then79 ], [ %incdec.ptr84, %sw.bb83 ] - %cmp88777 = icmp eq i8 %c.7.in, 48 - br i1 %cmp88777, label %while.body90, label %while.end93 + %cmp88778 = icmp eq i8 %c.7.in, 48 + br i1 %cmp88778, label %while.body90, label %while.end93 while.body90: ; preds = %sw.epilog86, %while.body90 - %s.9778 = phi ptr [ %incdec.ptr91, %while.body90 ], [ %s.8, %sw.epilog86 ] - %incdec.ptr91 = getelementptr i8, ptr %s.9778, i64 1 + %s.9779 = phi ptr [ %incdec.ptr91, %while.body90 ], [ %s.8, %sw.epilog86 ] + %incdec.ptr91 = getelementptr i8, ptr %s.9779, i64 1 %21 = load i8, ptr %incdec.ptr91, align 1 %cmp88 = icmp eq i8 %21, 48 br i1 %cmp88, label %while.body90, label %while.end93, !llvm.loop !10 @@ -219,14 +219,14 @@ while.end93: ; preds = %while.body90, %sw.e br i1 %23, label %while.body103, label %while.end108 while.body103: ; preds = %while.end93, %while.body103 - %abs_exp.0783 = phi i32 [ %add105, %while.body103 ], [ 0, %while.end93 ] - %s.10782 = phi ptr [ %incdec.ptr106, %while.body103 ], [ %s.9.lcssa, %while.end93 ] - %c.9.in781 = phi i8 [ %24, %while.body103 ], [ %c.8.in.lcssa, %while.end93 ] - %c.9 = zext nneg i8 %c.9.in781 to i32 - %mul = mul i32 %abs_exp.0783, 10 + %abs_exp.0784 = phi i32 [ %add105, %while.body103 ], [ 0, %while.end93 ] + %s.10783 = phi ptr [ %incdec.ptr106, %while.body103 ], [ %s.9.lcssa, %while.end93 ] + %c.9.in782 = phi i8 [ %24, %while.body103 ], [ %c.8.in.lcssa, %while.end93 ] + %c.9 = zext nneg i8 %c.9.in782 to i32 + %mul = mul i32 %abs_exp.0784, 10 %sub104 = add nsw i32 %c.9, -48 %add105 = add i32 %sub104, %mul - %incdec.ptr106 = getelementptr i8, ptr %s.10782, i64 1 + %incdec.ptr106 = getelementptr i8, ptr %s.10783, i64 1 %24 = load i8, ptr %incdec.ptr106, align 1 %25 = add i8 %24, -48 %26 = icmp ult i8 %25, 10 @@ -288,24 +288,24 @@ for.end199.thread: ; preds = %for.cond br label %land.lhs.true218 for.body161.preheader: ; preds = %for.body - %sub152932 = sub nsw i32 %conv71, %i.0 - %add153933 = add i32 %sub152932, %sub131 - %spec.select319934 = tail call i32 @llvm.smin.i32(i32 %spec.select, i32 %i.0) - store i32 %add153933, ptr %bc, align 4 + %sub152933 = sub nsw i32 %conv71, %i.0 + %add153934 = add i32 %sub152933, %sub131 + %spec.select319935 = tail call i32 @llvm.smin.i32(i32 %spec.select, i32 %i.0) + store i32 %add153934, ptr %bc, align 4 br label %for.body161 for.body161: ; preds = %for.body161.preheader, %for.inc - %z.0789 = phi i32 [ %z.1, %for.inc ], [ 0, %for.body161.preheader ] - %y.0788 = phi i32 [ %y.1, %for.inc ], [ 0, %for.body161.preheader ] - %i.2787 = phi i32 [ %inc198, %for.inc ], [ 0, %for.body161.preheader ] - %cmp162 = icmp samesign ult i32 %i.2787, 9 + %z.0790 = phi i32 [ %z.1, %for.inc ], [ 0, %for.body161.preheader ] + %y.0789 = phi i32 [ %y.1, %for.inc ], [ 0, %for.body161.preheader ] + %i.2788 = phi i32 [ %inc198, %for.inc ], [ 0, %for.body161.preheader ] + %cmp162 = icmp samesign ult i32 %i.2788, 9 br i1 %cmp162, label %if.then164, label %if.else178 if.then164: ; preds = %for.body161 - %mul165 = mul i32 %y.0788, 10 - %cmp166 = icmp sge i32 %i.2787, %spec.select319934 + %mul165 = mul i32 %y.0789, 10 + %cmp166 = icmp sge i32 %i.2788, %spec.select319935 %add170 = zext i1 %cmp166 to i32 - %cond172 = add nuw nsw i32 %i.2787, %add170 + %cond172 = add nuw nsw i32 %i.2788, %add170 %idxprom173 = zext nneg i32 %cond172 to i64 %arrayidx174 = getelementptr i8, ptr %s0.0, i64 %idxprom173 %29 = load i8, ptr %arrayidx174, align 1 @@ -315,14 +315,14 @@ if.then164: ; preds = %for.body161 br label %for.inc if.else178: ; preds = %for.body161 - %cmp179 = icmp samesign ult i32 %i.2787, 16 + %cmp179 = icmp samesign ult i32 %i.2788, 16 br i1 %cmp179, label %if.then181, label %for.end199 if.then181: ; preds = %if.else178 - %mul182 = mul i32 %z.0789, 10 - %cmp183 = icmp sge i32 %i.2787, %spec.select319934 + %mul182 = mul i32 %z.0790, 10 + %cmp183 = icmp sge i32 %i.2788, %spec.select319935 %add187 = zext i1 %cmp183 to i32 - %cond189 = add nuw nsw i32 %i.2787, %add187 + %cond189 = add nuw nsw i32 %i.2788, %add187 %idxprom190 = zext nneg i32 %cond189 to i64 %arrayidx191 = getelementptr i8, ptr %s0.0, i64 %idxprom190 %30 = load i8, ptr %arrayidx191, align 1 @@ -332,15 +332,15 @@ if.then181: ; preds = %if.else178 br label %for.inc for.inc: ; preds = %if.then164, %if.then181 - %y.1 = phi i32 [ %sub177, %if.then164 ], [ %y.0788, %if.then181 ] - %z.1 = phi i32 [ %z.0789, %if.then164 ], [ %sub194, %if.then181 ] - %inc198 = add nuw nsw i32 %i.2787, 1 + %y.1 = phi i32 [ %sub177, %if.then164 ], [ %y.0789, %if.then181 ] + %z.1 = phi i32 [ %z.0790, %if.then164 ], [ %sub194, %if.then181 ] + %inc198 = add nuw nsw i32 %i.2788, 1 %exitcond.not = icmp eq i32 %inc198, %i.0 br i1 %exitcond.not, label %for.end199, label %for.body161, !llvm.loop !13 for.end199: ; preds = %for.inc, %if.else178 - %y.0.lcssa.ph = phi i32 [ %y.1, %for.inc ], [ %y.0788, %if.else178 ] - %z.0.lcssa.ph = phi i32 [ %z.1, %for.inc ], [ %z.0789, %if.else178 ] + %y.0.lcssa.ph = phi i32 [ %y.1, %for.inc ], [ %y.0789, %if.else178 ] + %z.0.lcssa.ph = phi i32 [ %z.1, %for.inc ], [ %z.0790, %if.else178 ] %cond205 = tail call i32 @llvm.smin.i32(i32 %i.0, i32 16) %conv206 = uitofp i32 %y.0.lcssa.ph to double store double %conv206, ptr %rv, align 8 @@ -359,43 +359,43 @@ if.end215: ; preds = %for.end199 br i1 %cmp216, label %land.lhs.true218, label %if.end257 land.lhs.true218: ; preds = %for.end199.thread, %for.end199, %if.end215 - %cond205959 = phi i32 [ %cond205, %for.end199 ], [ %cond205, %if.end215 ], [ 0, %for.end199.thread ] - %y.0.lcssa957 = phi i32 [ %y.0.lcssa.ph, %for.end199 ], [ %y.0.lcssa.ph, %if.end215 ], [ 0, %for.end199.thread ] - %i.0.lcssa936955 = phi i32 [ %i.0, %for.end199 ], [ %i.0, %if.end215 ], [ 0, %for.end199.thread ] - %add153938952 = phi i32 [ %add153933, %for.end199 ], [ %add153933, %if.end215 ], [ %add153, %for.end199.thread ] - %spec.select319941951 = phi i32 [ %spec.select319934, %for.end199 ], [ %spec.select319934, %if.end215 ], [ %spec.select319, %for.end199.thread ] + %cond205960 = phi i32 [ %cond205, %for.end199 ], [ %cond205, %if.end215 ], [ 0, %for.end199.thread ] + %y.0.lcssa958 = phi i32 [ %y.0.lcssa.ph, %for.end199 ], [ %y.0.lcssa.ph, %if.end215 ], [ 0, %for.end199.thread ] + %i.0.lcssa937956 = phi i32 [ %i.0, %for.end199 ], [ %i.0, %if.end215 ], [ 0, %for.end199.thread ] + %add153939953 = phi i32 [ %add153934, %for.end199 ], [ %add153934, %if.end215 ], [ %add153, %for.end199.thread ] + %spec.select319942952 = phi i32 [ %spec.select319935, %for.end199 ], [ %spec.select319935, %if.end215 ], [ %spec.select319, %for.end199.thread ] %34 = phi double [ %conv206, %for.end199 ], [ %33, %if.end215 ], [ 0.000000e+00, %for.end199.thread ] %35 = tail call i32 @llvm.get.rounding() %cmp219 = icmp eq i32 %35, 1 br i1 %cmp219, label %if.then221, label %if.end257 if.then221: ; preds = %land.lhs.true218 - %tobool222.not = icmp eq i32 %add153938952, 0 + %tobool222.not = icmp eq i32 %add153939953, 0 br i1 %tobool222.not, label %ret, label %if.end224 if.end224: ; preds = %if.then221 - %cmp225 = icmp sgt i32 %add153938952, 0 + %cmp225 = icmp sgt i32 %add153939953, 0 br i1 %cmp225, label %if.then227, label %if.else248 if.then227: ; preds = %if.end224 - %cmp228 = icmp samesign ult i32 %add153938952, 23 + %cmp228 = icmp samesign ult i32 %add153939953, 23 br i1 %cmp228, label %if.then230, label %if.end234 if.then230: ; preds = %if.then227 - %idxprom231 = zext nneg i32 %add153938952 to i64 + %idxprom231 = zext nneg i32 %add153939953 to i64 %arrayidx232 = getelementptr [23 x double], ptr @tens, i64 0, i64 %idxprom231 %36 = load double, ptr %arrayidx232, align 8 %mul233 = fmul double %36, %34 br label %ret if.end234: ; preds = %if.then227 - %add236 = sub nsw i32 37, %i.0.lcssa936955 - %cmp237.not = icmp samesign ugt i32 %add153938952, %add236 + %add236 = sub nsw i32 37, %i.0.lcssa937956 + %cmp237.not = icmp samesign ugt i32 %add153939953, %add236 br i1 %cmp237.not, label %if.end257, label %if.then239 if.then239: ; preds = %if.end234 - %sub235 = sub nuw nsw i32 15, %i.0.lcssa936955 - %sub240 = sub nuw nsw i32 %add153938952, %sub235 + %sub235 = sub nuw nsw i32 15, %i.0.lcssa937956 + %sub240 = sub nuw nsw i32 %add153939953, %sub235 %idxprom241 = zext nneg i32 %sub235 to i64 %arrayidx242 = getelementptr [23 x double], ptr @tens, i64 0, i64 %idxprom241 %37 = load double, ptr %arrayidx242, align 8 @@ -407,11 +407,11 @@ if.then239: ; preds = %if.end234 br label %ret if.else248: ; preds = %if.end224 - %cmp249 = icmp samesign ugt i32 %add153938952, -23 + %cmp249 = icmp samesign ugt i32 %add153939953, -23 br i1 %cmp249, label %if.then251, label %if.end257 if.then251: ; preds = %if.else248 - %sub252 = sub nsw i32 0, %add153938952 + %sub252 = sub nsw i32 0, %add153939953 %idxprom253 = zext nneg i32 %sub252 to i64 %arrayidx254 = getelementptr [23 x double], ptr @tens, i64 0, i64 %idxprom253 %39 = load double, ptr %arrayidx254, align 8 @@ -419,14 +419,14 @@ if.then251: ; preds = %if.else248 br label %ret if.end257: ; preds = %if.end234, %if.else248, %land.lhs.true218, %if.end215 - %cond205958 = phi i32 [ %cond205959, %if.end234 ], [ %cond205959, %if.else248 ], [ %cond205959, %land.lhs.true218 ], [ %cond205, %if.end215 ] - %y.0.lcssa956 = phi i32 [ %y.0.lcssa957, %if.end234 ], [ %y.0.lcssa957, %if.else248 ], [ %y.0.lcssa957, %land.lhs.true218 ], [ %y.0.lcssa.ph, %if.end215 ] - %i.0.lcssa936954 = phi i32 [ %i.0.lcssa936955, %if.end234 ], [ %i.0.lcssa936955, %if.else248 ], [ %i.0.lcssa936955, %land.lhs.true218 ], [ %i.0, %if.end215 ] - %add153938953 = phi i32 [ %add153938952, %if.end234 ], [ %add153938952, %if.else248 ], [ %add153938952, %land.lhs.true218 ], [ %add153933, %if.end215 ] - %spec.select319941950 = phi i32 [ %spec.select319941951, %if.end234 ], [ %spec.select319941951, %if.else248 ], [ %spec.select319941951, %land.lhs.true218 ], [ %spec.select319934, %if.end215 ] + %cond205959 = phi i32 [ %cond205960, %if.end234 ], [ %cond205960, %if.else248 ], [ %cond205960, %land.lhs.true218 ], [ %cond205, %if.end215 ] + %y.0.lcssa957 = phi i32 [ %y.0.lcssa958, %if.end234 ], [ %y.0.lcssa958, %if.else248 ], [ %y.0.lcssa958, %land.lhs.true218 ], [ %y.0.lcssa.ph, %if.end215 ] + %i.0.lcssa937955 = phi i32 [ %i.0.lcssa937956, %if.end234 ], [ %i.0.lcssa937956, %if.else248 ], [ %i.0.lcssa937956, %land.lhs.true218 ], [ %i.0, %if.end215 ] + %add153939954 = phi i32 [ %add153939953, %if.end234 ], [ %add153939953, %if.else248 ], [ %add153939953, %land.lhs.true218 ], [ %add153934, %if.end215 ] + %spec.select319942951 = phi i32 [ %spec.select319942952, %if.end234 ], [ %spec.select319942952, %if.else248 ], [ %spec.select319942952, %land.lhs.true218 ], [ %spec.select319935, %if.end215 ] %40 = phi double [ %34, %if.end234 ], [ %34, %if.else248 ], [ %34, %land.lhs.true218 ], [ %33, %if.end215 ] - %sub258 = sub nsw i32 %i.0.lcssa936954, %cond205958 - %add259 = add i32 %add153938953, %sub258 + %sub258 = sub nsw i32 %i.0.lcssa937955, %cond205959 + %add259 = add i32 %add153939954, %sub258 %scale = getelementptr inbounds nuw i8, ptr %bc, i64 12 store i32 0, ptr %scale, align 4 %cmp260 = icmp sgt i32 %add259, 0 @@ -446,7 +446,7 @@ if.then264: ; preds = %if.then262 br label %if.end268 if.end268: ; preds = %if.then264, %if.then262 - %rv.promoted801 = phi double [ %mul267, %if.then264 ], [ %40, %if.then262 ] + %rv.promoted802 = phi double [ %mul267, %if.then264 ], [ %40, %if.then262 ] %and269 = and i32 %add259, 2147483632 %tobool270.not = icmp eq i32 %and269, 0 br i1 %tobool270.not, label %if.end385, label %if.then271 @@ -456,45 +456,45 @@ if.then271: ; preds = %if.end268 br i1 %cmp272, label %ovfl, label %if.end275 if.end275: ; preds = %if.then271 - %cmp277804 = icmp samesign ugt i32 %add259, 31 - br i1 %cmp277804, label %for.body279.preheader, label %for.end290 + %cmp277805 = icmp samesign ugt i32 %add259, 31 + br i1 %cmp277805, label %for.body279.preheader, label %for.end290 for.body279.preheader: ; preds = %if.end275 %shr = lshr i32 %add259, 4 br label %for.body279 for.body279: ; preds = %for.body279.preheader, %for.inc287 - %indvars.iv916 = phi i64 [ 0, %for.body279.preheader ], [ %indvars.iv.next917, %for.inc287 ] - %e1.0806 = phi i32 [ %shr, %for.body279.preheader ], [ %shr289, %for.inc287 ] - %mul285803805 = phi double [ %rv.promoted801, %for.body279.preheader ], [ %mul285802, %for.inc287 ] - %and280 = and i32 %e1.0806, 1 + %indvars.iv917 = phi i64 [ 0, %for.body279.preheader ], [ %indvars.iv.next918, %for.inc287 ] + %e1.0807 = phi i32 [ %shr, %for.body279.preheader ], [ %shr289, %for.inc287 ] + %mul285804806 = phi double [ %rv.promoted802, %for.body279.preheader ], [ %mul285803, %for.inc287 ] + %and280 = and i32 %e1.0807, 1 %tobool281.not = icmp eq i32 %and280, 0 br i1 %tobool281.not, label %for.inc287, label %if.then282 if.then282: ; preds = %for.body279 - %arrayidx284 = getelementptr [5 x double], ptr @bigtens, i64 0, i64 %indvars.iv916 + %arrayidx284 = getelementptr [5 x double], ptr @bigtens, i64 0, i64 %indvars.iv917 %42 = load double, ptr %arrayidx284, align 8 - %mul285 = fmul double %42, %mul285803805 + %mul285 = fmul double %42, %mul285804806 br label %for.inc287 for.inc287: ; preds = %for.body279, %if.then282 - %mul285802 = phi double [ %mul285803805, %for.body279 ], [ %mul285, %if.then282 ] - %indvars.iv.next917 = add nuw nsw i64 %indvars.iv916, 1 - %shr289 = lshr i32 %e1.0806, 1 - %cmp277 = icmp samesign ugt i32 %e1.0806, 3 + %mul285803 = phi double [ %mul285804806, %for.body279 ], [ %mul285, %if.then282 ] + %indvars.iv.next918 = add nuw nsw i64 %indvars.iv917, 1 + %shr289 = lshr i32 %e1.0807, 1 + %cmp277 = icmp samesign ugt i32 %e1.0807, 3 br i1 %cmp277, label %for.body279, label %for.end290.loopexit, !llvm.loop !14 for.end290.loopexit: ; preds = %for.inc287 - %sext = shl i64 %indvars.iv.next917, 32 + %sext = shl i64 %indvars.iv.next918, 32 %43 = ashr exact i64 %sext, 32 br label %for.end290 for.end290: ; preds = %for.end290.loopexit, %if.end275 - %mul285803.lcssa = phi double [ %rv.promoted801, %if.end275 ], [ %mul285802, %for.end290.loopexit ] + %mul285804.lcssa = phi double [ %rv.promoted802, %if.end275 ], [ %mul285803, %for.end290.loopexit ] %j.0.lcssa = phi i64 [ 0, %if.end275 ], [ %43, %for.end290.loopexit ] - store double %mul285803.lcssa, ptr %rv, align 8 + store double %mul285804.lcssa, ptr %rv, align 8 %arrayidx291 = getelementptr inbounds nuw i8, ptr %rv, i64 4 - %44 = bitcast double %mul285803.lcssa to i64 + %44 = bitcast double %mul285804.lcssa to i64 %45 = lshr i64 %44, 32 %46 = trunc nuw i64 %45 to i32 %sub292 = add i32 %46, -55574528 @@ -564,34 +564,34 @@ if.then333: ; preds = %if.end330 if.end335: ; preds = %if.then333, %if.end330 %54 = phi i32 [ 106, %if.then333 ], [ 0, %if.end330 ] - %cmp337796 = icmp sgt i32 %shr324, 0 - br i1 %cmp337796, label %for.body339, label %for.end350 + %cmp337797 = icmp sgt i32 %shr324, 0 + br i1 %cmp337797, label %for.body339, label %for.end350 for.body339: ; preds = %if.end335, %for.inc347 %indvars.iv = phi i64 [ %indvars.iv.next, %for.inc347 ], [ 0, %if.end335 ] - %e1.1798 = phi i32 [ %shr349, %for.inc347 ], [ %shr324, %if.end335 ] - %mul345795797 = phi double [ %mul345794, %for.inc347 ], [ %rv.promoted, %if.end335 ] - %and340 = and i32 %e1.1798, 1 + %e1.1799 = phi i32 [ %shr349, %for.inc347 ], [ %shr324, %if.end335 ] + %mul345796798 = phi double [ %mul345795, %for.inc347 ], [ %rv.promoted, %if.end335 ] + %and340 = and i32 %e1.1799, 1 %tobool341.not = icmp eq i32 %and340, 0 br i1 %tobool341.not, label %for.inc347, label %if.then342 if.then342: ; preds = %for.body339 %arrayidx344 = getelementptr [5 x double], ptr @tinytens, i64 0, i64 %indvars.iv %55 = load double, ptr %arrayidx344, align 8 - %mul345 = fmul double %55, %mul345795797 + %mul345 = fmul double %55, %mul345796798 br label %for.inc347 for.inc347: ; preds = %for.body339, %if.then342 - %mul345794 = phi double [ %mul345795797, %for.body339 ], [ %mul345, %if.then342 ] + %mul345795 = phi double [ %mul345796798, %for.body339 ], [ %mul345, %if.then342 ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %shr349 = lshr i32 %e1.1798, 1 - %cmp337.not = icmp samesign ult i32 %e1.1798, 2 + %shr349 = lshr i32 %e1.1799, 1 + %cmp337.not = icmp samesign ult i32 %e1.1799, 2 br i1 %cmp337.not, label %for.end350, label %for.body339, !llvm.loop !15 for.end350: ; preds = %for.inc347, %if.end335 - %mul345795.lcssa = phi double [ %rv.promoted, %if.end335 ], [ %mul345794, %for.inc347 ] - store double %mul345795.lcssa, ptr %rv, align 8 - %56 = bitcast double %mul345795.lcssa to i64 + %mul345796.lcssa = phi double [ %rv.promoted, %if.end335 ], [ %mul345795, %for.inc347 ] + store double %mul345796.lcssa, ptr %rv, align 8 + %56 = bitcast double %mul345796.lcssa to i64 %57 = lshr i64 %56, 32 %58 = trunc nuw i64 %57 to i32 %59 = trunc i64 %56 to i32 @@ -636,17 +636,17 @@ if.end379thread-pre-split: ; preds = %land.lhs.true353, % br label %if.end379 if.end379: ; preds = %if.end379thread-pre-split, %for.end350 - %60 = phi double [ %.pr, %if.end379thread-pre-split ], [ %mul345795.lcssa, %for.end350 ] + %60 = phi double [ %.pr, %if.end379thread-pre-split ], [ %mul345796.lcssa, %for.end350 ] %tobool380 = fcmp une double %60, 0.000000e+00 br i1 %tobool380, label %if.end385, label %undfl if.end385: ; preds = %if.else312, %if.end379, %if.end323, %if.end268, %if.else307, %if.then304 %61 = phi i32 [ 0, %if.else312 ], [ %54, %if.end379 ], [ 0, %if.end323 ], [ 0, %if.end268 ], [ 0, %if.else307 ], [ 0, %if.then304 ] %nd386 = getelementptr inbounds nuw i8, ptr %bc, i64 4 - store i32 %i.0.lcssa936954, ptr %nd386, align 4 + store i32 %i.0.lcssa937955, ptr %nd386, align 4 %nd0387 = getelementptr inbounds nuw i8, ptr %bc, i64 8 - store i32 %spec.select319941950, ptr %nd0387, align 4 - %cmp388 = icmp sgt i32 %i.0.lcssa936954, 40 + store i32 %spec.select319942951, ptr %nd0387, align 4 + %cmp388 = icmp sgt i32 %i.0.lcssa937955, 40 br i1 %cmp388, label %for.cond391, label %if.end449 for.cond391: ; preds = %if.end385, %for.body394 @@ -655,13 +655,13 @@ for.cond391: ; preds = %if.end385, %for.bod br i1 %cmp392.not, label %if.end449.thread, label %for.body394 if.end449.thread: ; preds = %for.cond391 - %add413962 = add i32 %i.0.lcssa936954, %add153938953 - %spec.select320963 = tail call i32 @llvm.smin.i32(i32 %spec.select319941950, i32 0) + %add413963 = add i32 %i.0.lcssa937955, %add153939954 + %spec.select320964 = tail call i32 @llvm.smin.i32(i32 %spec.select319942951, i32 0) br label %for.end.thread.i for.body394: ; preds = %for.cond391 %dec395 = add nsw i32 %i.3, -1 - %cmp396.not = icmp sgt i32 %i.3, %spec.select319941950 + %cmp396.not = icmp sgt i32 %i.3, %spec.select319942951 %cond402 = select i1 %cmp396.not, i32 %i.3, i32 %dec395 %idxprom403 = zext nneg i32 %cond402 to i64 %arrayidx404 = getelementptr i8, ptr %s0.0, i64 %idxprom403 @@ -670,29 +670,29 @@ for.body394: ; preds = %for.cond391 br i1 %cmp406.not, label %for.cond391, label %for.end411, !llvm.loop !16 for.end411: ; preds = %for.body394 - %sub412 = sub i32 %i.0.lcssa936954, %i.3 - %add413 = add i32 %sub412, %add153938953 - %spec.select320 = tail call i32 @llvm.smin.i32(i32 %spec.select319941950, i32 %i.3) + %sub412 = sub i32 %i.0.lcssa937955, %i.3 + %add413 = add i32 %sub412, %add153939954 + %spec.select320 = tail call i32 @llvm.smin.i32(i32 %spec.select319942951, i32 %i.3) %cmp418 = icmp slt i32 %i.3, 9 br i1 %cmp418, label %for.cond421.preheader, label %if.end449 for.cond421.preheader: ; preds = %for.end411 - %cmp422810 = icmp sgt i32 %spec.select320, 0 - br i1 %cmp422810, label %for.body424.preheader, label %for.cond434.preheader + %cmp422811 = icmp sgt i32 %spec.select320, 0 + br i1 %cmp422811, label %for.body424.preheader, label %for.cond434.preheader for.body424.preheader: ; preds = %for.cond421.preheader %63 = zext nneg i32 %spec.select320 to i64 br label %for.body424 for.cond434.preheader.loopexit: ; preds = %for.body424 - %64 = trunc nuw nsw i64 %indvars.iv.next920 to i32 + %64 = trunc nuw nsw i64 %indvars.iv.next921 to i32 br label %for.cond434.preheader for.cond434.preheader: ; preds = %for.cond434.preheader.loopexit, %for.cond421.preheader %i.5.lcssa = phi i32 [ 0, %for.cond421.preheader ], [ %64, %for.cond434.preheader.loopexit ] %y.3.lcssa = phi i32 [ 0, %for.cond421.preheader ], [ %sub430, %for.cond434.preheader.loopexit ] - %cmp435815 = icmp slt i32 %i.5.lcssa, %i.3 - br i1 %cmp435815, label %for.body437.preheader, label %if.end449 + %cmp435816 = icmp slt i32 %i.5.lcssa, %i.3 + br i1 %cmp435816, label %for.body437.preheader, label %if.end449 for.body437.preheader: ; preds = %for.cond434.preheader %65 = zext nneg i32 %i.5.lcssa to i64 @@ -700,46 +700,46 @@ for.body437.preheader: ; preds = %for.cond434.prehead br label %for.body437 for.body424: ; preds = %for.body424.preheader, %for.body424 - %indvars.iv919 = phi i64 [ 0, %for.body424.preheader ], [ %indvars.iv.next920, %for.body424 ] - %y.3812 = phi i32 [ 0, %for.body424.preheader ], [ %sub430, %for.body424 ] - %mul425 = mul i32 %y.3812, 10 - %arrayidx427 = getelementptr i8, ptr %s0.0, i64 %indvars.iv919 + %indvars.iv920 = phi i64 [ 0, %for.body424.preheader ], [ %indvars.iv.next921, %for.body424 ] + %y.3813 = phi i32 [ 0, %for.body424.preheader ], [ %sub430, %for.body424 ] + %mul425 = mul i32 %y.3813, 10 + %arrayidx427 = getelementptr i8, ptr %s0.0, i64 %indvars.iv920 %66 = load i8, ptr %arrayidx427, align 1 %conv428 = sext i8 %66 to i32 %add429 = add i32 %mul425, -48 %sub430 = add i32 %add429, %conv428 - %indvars.iv.next920 = add nuw nsw i64 %indvars.iv919, 1 - %cmp422 = icmp samesign ult i64 %indvars.iv.next920, %63 + %indvars.iv.next921 = add nuw nsw i64 %indvars.iv920, 1 + %cmp422 = icmp samesign ult i64 %indvars.iv.next921, %63 br i1 %cmp422, label %for.body424, label %for.cond434.preheader.loopexit, !llvm.loop !17 for.body437: ; preds = %for.body437.preheader, %for.body437 - %indvars.iv922 = phi i64 [ %65, %for.body437.preheader ], [ %indvars.iv.next923, %for.body437 ] - %y.4817 = phi i32 [ %y.3.lcssa, %for.body437.preheader ], [ %sub444, %for.body437 ] - %mul438 = mul i32 %y.4817, 10 - %indvars.iv.next923 = add nuw nsw i64 %indvars.iv922, 1 - %arrayidx441 = getelementptr i8, ptr %s0.0, i64 %indvars.iv.next923 + %indvars.iv923 = phi i64 [ %65, %for.body437.preheader ], [ %indvars.iv.next924, %for.body437 ] + %y.4818 = phi i32 [ %y.3.lcssa, %for.body437.preheader ], [ %sub444, %for.body437 ] + %mul438 = mul i32 %y.4818, 10 + %indvars.iv.next924 = add nuw nsw i64 %indvars.iv923, 1 + %arrayidx441 = getelementptr i8, ptr %s0.0, i64 %indvars.iv.next924 %67 = load i8, ptr %arrayidx441, align 1 %conv442 = sext i8 %67 to i32 %add443 = add i32 %mul438, -48 %sub444 = add i32 %add443, %conv442 - %exitcond926.not = icmp eq i64 %indvars.iv.next923, %wide.trip.count - br i1 %exitcond926.not, label %if.end449, label %for.body437, !llvm.loop !18 + %exitcond927.not = icmp eq i64 %indvars.iv.next924, %wide.trip.count + br i1 %exitcond927.not, label %if.end449, label %for.body437, !llvm.loop !18 if.end449: ; preds = %for.body437, %for.cond434.preheader, %for.end411, %if.end385 - %e.3 = phi i32 [ %add413, %for.end411 ], [ %add153938953, %if.end385 ], [ %add413, %for.cond434.preheader ], [ %add413, %for.body437 ] - %nd.0 = phi i32 [ %i.3, %for.end411 ], [ %i.0.lcssa936954, %if.end385 ], [ %i.3, %for.cond434.preheader ], [ %i.3, %for.body437 ] - %nd0.2 = phi i32 [ %spec.select320, %for.end411 ], [ %spec.select319941950, %if.end385 ], [ %spec.select320, %for.cond434.preheader ], [ %spec.select320, %for.body437 ] - %y.2 = phi i32 [ %y.0.lcssa956, %for.end411 ], [ %y.0.lcssa956, %if.end385 ], [ %y.3.lcssa, %for.cond434.preheader ], [ %sub444, %for.body437 ] + %e.3 = phi i32 [ %add413, %for.end411 ], [ %add153939954, %if.end385 ], [ %add413, %for.cond434.preheader ], [ %add413, %for.body437 ] + %nd.0 = phi i32 [ %i.3, %for.end411 ], [ %i.0.lcssa937955, %if.end385 ], [ %i.3, %for.cond434.preheader ], [ %i.3, %for.body437 ] + %nd0.2 = phi i32 [ %spec.select320, %for.end411 ], [ %spec.select319942951, %if.end385 ], [ %spec.select320, %for.cond434.preheader ], [ %spec.select320, %for.body437 ] + %y.2 = phi i32 [ %y.0.lcssa957, %for.end411 ], [ %y.0.lcssa957, %if.end385 ], [ %y.3.lcssa, %for.cond434.preheader ], [ %sub444, %for.body437 ] %add.i = add i32 %nd.0, 8 %div.i = sdiv i32 %add.i, 9 %cmp25.i = icmp sgt i32 %add.i, 17 br i1 %cmp25.i, label %for.inc.i, label %for.end.thread.i for.end.thread.i: ; preds = %if.end449.thread, %if.end449 - %y.21007 = phi i32 [ 0, %if.end449.thread ], [ %y.2, %if.end449 ] - %nd0.21002 = phi i32 [ %spec.select320963, %if.end449.thread ], [ %nd0.2, %if.end449 ] - %nd.0997 = phi i32 [ 0, %if.end449.thread ], [ %nd.0, %if.end449 ] - %e.3992 = phi i32 [ %add413962, %if.end449.thread ], [ %e.3, %if.end449 ] + %y.21008 = phi i32 [ 0, %if.end449.thread ], [ %y.2, %if.end449 ] + %nd0.21003 = phi i32 [ %spec.select320964, %if.end449.thread ], [ %nd0.2, %if.end449 ] + %nd.0998 = phi i32 [ 0, %if.end449.thread ], [ %nd.0, %if.end449 ] + %e.3993 = phi i32 [ %add413963, %if.end449.thread ], [ %e.3, %if.end449 ] %68 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_Py_tss_tstate) br label %land.lhs.true.i.i @@ -757,10 +757,10 @@ for.end.i: ; preds = %for.inc.i br i1 %cmp.i.i, label %land.lhs.true.i.i, label %if.else.i.i land.lhs.true.i.i: ; preds = %for.end.i, %for.end.thread.i - %y.21006 = phi i32 [ %y.21007, %for.end.thread.i ], [ %y.2, %for.end.i ] - %nd0.21001 = phi i32 [ %nd0.21002, %for.end.thread.i ], [ %nd0.2, %for.end.i ] - %nd.0996 = phi i32 [ %nd.0997, %for.end.thread.i ], [ %nd.0, %for.end.i ] - %e.3991 = phi i32 [ %e.3992, %for.end.thread.i ], [ %e.3, %for.end.i ] + %y.21007 = phi i32 [ %y.21008, %for.end.thread.i ], [ %y.2, %for.end.i ] + %nd0.21002 = phi i32 [ %nd0.21003, %for.end.thread.i ], [ %nd0.2, %for.end.i ] + %nd.0997 = phi i32 [ %nd.0998, %for.end.thread.i ], [ %nd.0, %for.end.i ] + %e.3992 = phi i32 [ %e.3993, %for.end.thread.i ], [ %e.3, %for.end.i ] %.pn.in.i = phi ptr [ %68, %for.end.thread.i ], [ %69, %for.end.i ] %k.0.lcssa48.i = phi i32 [ 0, %for.end.thread.i ], [ %inc.i, %for.end.i ] %.pn.i = load ptr, ptr %.pn.in.i, align 8 @@ -810,10 +810,10 @@ if.then17.i.i: ; preds = %land.lhs.true10.i.i br label %if.end29.i.i if.else22.i.i: ; preds = %land.lhs.true10.i.i, %if.else.i.i - %y.21005 = phi i32 [ %y.21006, %land.lhs.true10.i.i ], [ %y.2, %if.else.i.i ] - %nd0.21000 = phi i32 [ %nd0.21001, %land.lhs.true10.i.i ], [ %nd0.2, %if.else.i.i ] - %nd.0995 = phi i32 [ %nd.0996, %land.lhs.true10.i.i ], [ %nd.0, %if.else.i.i ] - %e.3990 = phi i32 [ %e.3991, %land.lhs.true10.i.i ], [ %e.3, %if.else.i.i ] + %y.21006 = phi i32 [ %y.21007, %land.lhs.true10.i.i ], [ %y.2, %if.else.i.i ] + %nd0.21001 = phi i32 [ %nd0.21002, %land.lhs.true10.i.i ], [ %nd0.2, %if.else.i.i ] + %nd.0996 = phi i32 [ %nd.0997, %land.lhs.true10.i.i ], [ %nd.0, %if.else.i.i ] + %e.3991 = phi i32 [ %e.3992, %land.lhs.true10.i.i ], [ %e.3, %if.else.i.i ] %k.0.lcssa50.i = phi i32 [ %k.0.lcssa48.i, %land.lhs.true10.i.i ], [ %inc.i, %if.else.i.i ] %sub631.i.i = phi i64 [ %sub626.i.i, %land.lhs.true10.i.i ], [ %sub6.i.i, %if.else.i.i ] %shl28.i.i = phi i32 [ %shl21.i.i, %land.lhs.true10.i.i ], [ %shl.i.i, %if.else.i.i ] @@ -823,10 +823,10 @@ if.else22.i.i: ; preds = %land.lhs.true10.i.i br i1 %cmp26.i.i, label %failed_malloc, label %if.end29.i.i if.end29.i.i: ; preds = %if.else22.i.i, %if.then17.i.i - %y.21004 = phi i32 [ %y.21006, %if.then17.i.i ], [ %y.21005, %if.else22.i.i ] - %nd0.2999 = phi i32 [ %nd0.21001, %if.then17.i.i ], [ %nd0.21000, %if.else22.i.i ] - %nd.0994 = phi i32 [ %nd.0996, %if.then17.i.i ], [ %nd.0995, %if.else22.i.i ] - %e.3989 = phi i32 [ %e.3991, %if.then17.i.i ], [ %e.3990, %if.else22.i.i ] + %y.21005 = phi i32 [ %y.21007, %if.then17.i.i ], [ %y.21006, %if.else22.i.i ] + %nd0.21000 = phi i32 [ %nd0.21002, %if.then17.i.i ], [ %nd0.21001, %if.else22.i.i ] + %nd.0995 = phi i32 [ %nd.0997, %if.then17.i.i ], [ %nd.0996, %if.else22.i.i ] + %e.3990 = phi i32 [ %e.3992, %if.then17.i.i ], [ %e.3991, %if.else22.i.i ] %k.0.lcssa49.i = phi i32 [ %k.0.lcssa48.i, %if.then17.i.i ], [ %k.0.lcssa50.i, %if.else22.i.i ] %shl27.i.i = phi i32 [ %shl21.i.i, %if.then17.i.i ], [ %shl28.i.i, %if.else22.i.i ] %rv.1.i.i = phi ptr [ %73, %if.then17.i.i ], [ %call25.i.i, %if.else22.i.i ] @@ -837,30 +837,30 @@ if.end29.i.i: ; preds = %if.else22.i.i, %if. br label %if.end.i if.end.i: ; preds = %if.end29.i.i, %if.then.i.i - %y.21003 = phi i32 [ %y.21006, %if.then.i.i ], [ %y.21004, %if.end29.i.i ] - %nd0.2998 = phi i32 [ %nd0.21001, %if.then.i.i ], [ %nd0.2999, %if.end29.i.i ] - %nd.0993 = phi i32 [ %nd.0996, %if.then.i.i ], [ %nd.0994, %if.end29.i.i ] - %e.3988 = phi i32 [ %e.3991, %if.then.i.i ], [ %e.3989, %if.end29.i.i ] + %y.21004 = phi i32 [ %y.21007, %if.then.i.i ], [ %y.21005, %if.end29.i.i ] + %nd0.2999 = phi i32 [ %nd0.21002, %if.then.i.i ], [ %nd0.21000, %if.end29.i.i ] + %nd.0994 = phi i32 [ %nd.0997, %if.then.i.i ], [ %nd.0995, %if.end29.i.i ] + %e.3989 = phi i32 [ %e.3992, %if.then.i.i ], [ %e.3990, %if.end29.i.i ] %rv.0.i.i = phi ptr [ %71, %if.then.i.i ], [ %rv.1.i.i, %if.end29.i.i ] %wds.i.i = getelementptr inbounds nuw i8, ptr %rv.0.i.i, i64 20 %sign.i.i = getelementptr inbounds nuw i8, ptr %rv.0.i.i, i64 16 store i32 0, ptr %sign.i.i, align 8 %x2.i = getelementptr inbounds nuw i8, ptr %rv.0.i.i, i64 24 - store i32 %y.21003, ptr %x2.i, align 8 + store i32 %y.21004, ptr %x2.i, align 8 store i32 1, ptr %wds.i.i, align 4 - %cmp3.i = icmp slt i32 %nd.0993, 10 + %cmp3.i = icmp slt i32 %nd.0994, 10 br i1 %cmp3.i, label %s2b.exit, label %if.end5.i if.end5.i: ; preds = %if.end.i %add.ptr.i = getelementptr i8, ptr %s0.0, i64 9 - %cmp728.i = icmp sgt i32 %nd0.2998, 9 + %cmp728.i = icmp sgt i32 %nd0.2999, 9 br i1 %cmp728.i, label %for.body8.i, label %for.cond18.preheader.i for.cond18.preheader.i: ; preds = %for.inc14.i, %if.end5.i %s.addr.0.lcssa.i = phi ptr [ %add.ptr.i, %if.end5.i ], [ %incdec.ptr.i, %for.inc14.i ] %b.0.lcssa.i = phi ptr [ %rv.0.i.i, %if.end5.i ], [ %call9.i, %for.inc14.i ] - %i.0.lcssa.i = phi i32 [ 9, %if.end5.i ], [ %nd0.2998, %for.inc14.i ] - %cmp1936.i = icmp slt i32 %i.0.lcssa.i, %nd.0993 + %i.0.lcssa.i = phi i32 [ 9, %if.end5.i ], [ %nd0.2999, %for.inc14.i ] + %cmp1936.i = icmp slt i32 %i.0.lcssa.i, %nd.0994 br i1 %cmp1936.i, label %for.body21.i, label %s2b.exit for.body8.i: ; preds = %if.end5.i, %for.inc14.i @@ -877,12 +877,12 @@ for.body8.i: ; preds = %if.end5.i, %for.inc for.inc14.i: ; preds = %for.body8.i %incdec.ptr.i = getelementptr i8, ptr %s.addr.029.i, i64 1 %inc15.i = add nuw nsw i32 %i.031.i, 1 - %exitcond.not.i = icmp eq i32 %inc15.i, %nd0.2998 + %exitcond.not.i = icmp eq i32 %inc15.i, %nd0.2999 br i1 %exitcond.not.i, label %for.cond18.preheader.i, label %for.body8.i, !llvm.loop !20 for.cond18.i: ; preds = %for.body21.i %inc31.i = add nuw nsw i32 %i.138.i, 1 - %exitcond44.not.i = icmp eq i32 %inc31.i, %nd.0993 + %exitcond44.not.i = icmp eq i32 %inc31.i, %nd.0994 br i1 %exitcond44.not.i, label %s2b.exit, label %for.body21.i, !llvm.loop !21 for.body21.i: ; preds = %for.cond18.preheader.i, %for.cond18.i @@ -903,10 +903,10 @@ s2b.exit: ; preds = %for.cond18.i, %if.e %76 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_Py_tss_tstate) %sign462 = getelementptr inbounds nuw i8, ptr %retval.0.i, i64 16 %wds = getelementptr inbounds nuw i8, ptr %retval.0.i, i64 20 - %cmp479 = icmp sgt i32 %e.3988, -1 - %sub483 = sub i32 0, %e.3988 - %bd2.0 = select i1 %cmp479, i32 %e.3988, i32 0 - %bb2.0 = select i1 %cmp479, i32 0, i32 %sub483 + %sub483 = sub i32 0, %e.3989 + %bd2.0 = tail call i32 @llvm.smax.i32(i32 %e.3989, i32 0) + %cmp479.inv = icmp slt i32 %e.3989, 0 + %bb2.0 = select i1 %cmp479.inv, i32 %sub483, i32 0 %cmp511 = icmp sgt i32 %bb2.0, 0 %and.i = and i32 %bb2.0, 3 %tobool.not.i363 = icmp eq i32 %and.i, 0 @@ -915,20 +915,20 @@ s2b.exit: ; preds = %for.cond18.i, %if.e %arrayidx.i367 = getelementptr [3 x i32], ptr @pow5mult.p05, i64 0, i64 %idxprom.i366 %tobool3.not.i = icmp samesign ult i32 %bb2.0, 4 %shr.i = lshr i32 %bb2.0, 2 - %cmp534 = icmp sgt i32 %bd2.0, 0 + %cmp534.not = icmp slt i32 %e.3989, 1 %and.i389 = and i32 %bd2.0, 3 %tobool.not.i390 = icmp eq i32 %and.i389, 0 %sub.i392 = add nsw i32 %and.i389, -1 %idxprom.i393 = zext nneg i32 %sub.i392 to i64 %arrayidx.i394 = getelementptr [3 x i32], ptr @pow5mult.p05, i64 0, i64 %idxprom.i393 - %tobool3.not.i399 = icmp samesign ult i32 %bd2.0, 4 + %tobool3.not.i399 = icmp slt i32 %e.3989, 4 %shr.i401 = lshr i32 %bd2.0, 2 - %cmp570 = icmp sgt i32 %i.0.lcssa936954, %nd.0993 + %cmp570 = icmp sgt i32 %i.0.lcssa937955, %nd.0994 %arrayidx745 = getelementptr inbounds nuw i8, ptr %rv, i64 4 %tobool809 = icmp ne i32 %61, 0 - %cmp841 = icmp eq i32 %i.0.lcssa936954, %nd.0993 + %cmp841 = icmp eq i32 %i.0.lcssa937955, %nd.0994 %tobool845 = icmp eq i32 %61, 0 - %or.cond13.not672 = and i1 %tobool845, %cmp841 + %or.cond13.not673 = and i1 %tobool845, %cmp841 br label %for.cond454 for.cond454: ; preds = %for.cond454.backedge, %s2b.exit @@ -1068,10 +1068,9 @@ if.end478: ; preds = %if.end29.i.i357, %i store i32 1, ptr %x.i, align 8 store i32 1, ptr %wds.i.i344, align 4 %90 = load i32, ptr %bbe, align 4 - %cmp485 = icmp sgt i32 %90, -1 - %sub490 = select i1 %cmp485, i32 0, i32 %90 + %sub490 = tail call i32 @llvm.smin.i32(i32 %90, i32 0) %bd2.1 = sub i32 %bd2.0, %sub490 - %add488 = select i1 %cmp485, i32 %90, i32 0 + %add488 = tail call i32 @llvm.smax.i32(i32 %90, i32 0) %bb2.1 = add nuw i32 %add488, %bb2.0 %inc492 = add i32 %bb2.1, 1 %inc493 = add i32 %bd2.1, 1 @@ -1195,7 +1194,7 @@ if.then527: ; preds = %if.end524 if.end533: ; preds = %if.then527, %if.end524 %bb.6 = phi ptr [ %call528, %if.then527 ], [ %bb.5, %if.end524 ] - br i1 %cmp534, label %if.then536, label %if.end542 + br i1 %cmp534.not, label %if.end542, label %if.then536 if.then536: ; preds = %if.end533 br i1 %tobool.not.i390, label %if.end2.i397, label %if.then.i391 @@ -1380,7 +1379,7 @@ if.then593: ; preds = %if.then585 br label %for.end878 if.end599.thread: ; preds = %if.end578, %land.lhs.true581, %if.then585 - store i32 %nd.0993, ptr %nd386, align 4 + store i32 %nd.0994, ptr %nd386, align 4 br label %if.then602 if.end599: ; preds = %cmp.exit @@ -1395,8 +1394,8 @@ if.then602.loopexit: ; preds = %if.end599 if.then602: ; preds = %if.then602.loopexit, %if.end599.thread %122 = phi i32 [ %116, %if.end599.thread ], [ %.pre, %if.then602.loopexit ] %tobool603 = phi i1 [ false, %if.end599.thread ], [ %121, %if.then602.loopexit ] - %123 = phi i32 [ %nd.0993, %if.end599.thread ], [ %i.0.lcssa936954, %if.then602.loopexit ] - %wds1.i1098 = getelementptr inbounds nuw i8, ptr %bs.6, i64 20 + %123 = phi i32 [ %nd.0994, %if.end599.thread ], [ %i.0.lcssa937955, %if.then602.loopexit ] + %wds1.i1099 = getelementptr inbounds nuw i8, ptr %bs.6, i64 20 %tobool606 = icmp ne i32 %122, 0 %or.cond6 = select i1 %tobool603, i1 true, i1 %tobool606 br i1 %or.cond6, label %for.end878, label %lor.lhs.false607 @@ -1426,7 +1425,7 @@ if.end626: ; preds = %if.end617 if.end631: ; preds = %if.end626 %wds.i445 = getelementptr inbounds nuw i8, ptr %call627, i64 20 %126 = load i32, ptr %wds.i445, align 4 - %127 = load i32, ptr %wds1.i1098, align 4 + %127 = load i32, ptr %wds1.i1099, align 4 %tobool.not.i448 = icmp eq i32 %126, %127 br i1 %tobool.not.i448, label %if.end.i450, label %cmp.exit467 @@ -1508,21 +1507,21 @@ if.else673: ; preds = %if.then640 drop_down: ; preds = %if.then7.i462, %if.else673, %cmp.exit467 %133 = phi i32 [ %124, %cmp.exit467 ], [ %130, %if.else673 ], [ %124, %if.then7.i462 ] - %134 = phi i32 [ %123, %cmp.exit467 ], [ %i.0.lcssa936954, %if.else673 ], [ %123, %if.then7.i462 ] + %134 = phi i32 [ %123, %cmp.exit467 ], [ %i.0.lcssa937955, %if.else673 ], [ %123, %if.then7.i462 ] %delta.6 = phi ptr [ %call627, %cmp.exit467 ], [ %call561, %if.else673 ], [ %call627, %if.then7.i462 ] - %.pre930 = and i32 %133, 2146435072 - %cmp686 = icmp samesign ugt i32 %.pre930, 112197632 - %or.cond1125.not = select i1 %tobool845, i1 true, i1 %cmp686 - br i1 %or.cond1125.not, label %if.end699, label %if.then688 + %.pre931 = and i32 %133, 2146435072 + %cmp686 = icmp samesign ugt i32 %.pre931, 112197632 + %or.cond1126.not = select i1 %tobool845, i1 true, i1 %cmp686 + br i1 %or.cond1126.not, label %if.end699, label %if.then688 if.then688: ; preds = %drop_down - %cmp689 = icmp samesign ugt i32 %.pre930, 57671680 - %cmp694 = icmp sgt i32 %134, %nd.0993 + %cmp689 = icmp samesign ugt i32 %.pre931, 57671680 + %cmp694 = icmp sgt i32 %134, %nd.0994 %or.cond322 = or i1 %cmp694, %cmp689 br i1 %or.cond322, label %for.end878, label %undfl if.end699: ; preds = %drop_down - %or = add nsw i32 %.pre930, -1 + %or = add nsw i32 %.pre931, -1 store i32 %or, ptr %arrayidx745, align 4 store i32 -1, ptr %rv, align 8 br label %for.end878 @@ -1876,8 +1875,8 @@ if.end829: ; preds = %if.then816, %if.the %160 = bitcast double %aadj1.2 to i64 %aadj2.sroa.0.4.extract.shift = lshr i64 %160, 32 %aadj2.sroa.0.4.extract.trunc = trunc nuw i64 %aadj2.sroa.0.4.extract.shift to i32 - %reass.sub820 = sub i32 %aadj2.sroa.0.4.extract.trunc, %and778 - %add832 = add i32 %reass.sub820, 112197632 + %reass.sub821 = sub i32 %aadj2.sroa.0.4.extract.trunc, %and778 + %add832 = add i32 %reass.sub821, 112197632 %aadj2.sroa.0.4.insert.ext = zext i32 %add832 to i64 %aadj2.sroa.0.4.insert.shift = shl nuw i64 %aadj2.sroa.0.4.insert.ext, 32 %aadj2.sroa.0.4.insert.mask = and i64 %160, 4294967295 @@ -1907,7 +1906,7 @@ if.end837: ; preds = %if.end833, %if.else %aadj.2 = phi double [ %aadj.1, %if.else803 ], [ %aadj.3, %if.end833 ] %and839 = and i32 %167, 2146435072 %cmp847 = icmp eq i32 %and778, %and839 - %or.cond324 = select i1 %or.cond13.not672, i1 %cmp847, i1 false + %or.cond324 = select i1 %or.cond13.not673, i1 %cmp847, i1 false br i1 %or.cond324, label %if.then849, label %if.then.i505 if.then849: ; preds = %if.end837 @@ -1917,10 +1916,10 @@ if.then849: ; preds = %if.end837 %tobool853 = icmp eq i32 %111, 0 %168 = and i64 %.in, 4294967295 %tobool856 = icmp eq i64 %168, 0 - %or.cond11.not673 = select i1 %tobool853, i1 %tobool856, i1 false + %or.cond11.not674 = select i1 %tobool853, i1 %tobool856, i1 false %and859 = and i32 %167, 1048575 %tobool860.not = icmp eq i32 %and859, 0 - %or.cond325 = select i1 %or.cond11.not673, i1 %tobool860.not, i1 false + %or.cond325 = select i1 %or.cond11.not674, i1 %tobool860.not, i1 false br i1 %or.cond325, label %if.else869, label %if.then861 if.then861: ; preds = %if.then849 @@ -2029,9 +2028,9 @@ if.else.i541: ; preds = %if.then.i538 br label %for.cond454.backedge for.end878: ; preds = %if.else869, %if.then861, %if.end9.i465, %if.end617, %if.then7.i462, %if.end706.thread, %if.then747, %if.then711, %if.else714, %if.end706, %if.then688, %cmp.exit467, %if.then602, %lor.lhs.false607, %if.then575, %if.end699, %if.then666, %if.then593 - %185 = phi i32 [ %i.0.lcssa936954, %if.then575 ], [ %123, %if.then602 ], [ %123, %lor.lhs.false607 ], [ %134, %if.then688 ], [ %134, %if.end699 ], [ %123, %cmp.exit467 ], [ %i.0.lcssa936954, %if.then666 ], [ %i.0.lcssa936954, %if.then711 ], [ %i.0.lcssa936954, %if.else714 ], [ %i.0.lcssa936954, %if.end706 ], [ %i.0.lcssa936954, %if.then747 ], [ %i.0.lcssa936954, %if.then593 ], [ %i.0.lcssa936954, %if.end706.thread ], [ %123, %if.then7.i462 ], [ %123, %if.end617 ], [ %123, %if.end9.i465 ], [ %i.0.lcssa936954, %if.then861 ], [ %i.0.lcssa936954, %if.else869 ] + %185 = phi i32 [ %i.0.lcssa937955, %if.then575 ], [ %123, %if.then602 ], [ %123, %lor.lhs.false607 ], [ %134, %if.then688 ], [ %134, %if.end699 ], [ %123, %cmp.exit467 ], [ %i.0.lcssa937955, %if.then666 ], [ %i.0.lcssa937955, %if.then711 ], [ %i.0.lcssa937955, %if.else714 ], [ %i.0.lcssa937955, %if.end706 ], [ %i.0.lcssa937955, %if.then747 ], [ %i.0.lcssa937955, %if.then593 ], [ %i.0.lcssa937955, %if.end706.thread ], [ %123, %if.then7.i462 ], [ %123, %if.end617 ], [ %123, %if.end9.i465 ], [ %i.0.lcssa937955, %if.then861 ], [ %i.0.lcssa937955, %if.else869 ] %delta.5 = phi ptr [ %call561, %if.then575 ], [ %call561, %if.then602 ], [ %call561, %lor.lhs.false607 ], [ %delta.6, %if.then688 ], [ %delta.6, %if.end699 ], [ %call627, %cmp.exit467 ], [ %call561, %if.then666 ], [ %call561, %if.then711 ], [ %call561, %if.else714 ], [ %call561, %if.end706 ], [ %call561, %if.then747 ], [ %call561, %if.then593 ], [ %call561, %if.end706.thread ], [ %call627, %if.then7.i462 ], [ %call561, %if.end617 ], [ %call627, %if.end9.i465 ], [ %call561, %if.then861 ], [ %call561, %if.else869 ] - %cmp880 = icmp sgt i32 %185, %nd.0993 + %cmp880 = icmp sgt i32 %185, %nd.0994 br i1 %cmp880, label %if.then882, label %if.end887 if.then882: ; preds = %for.end878 @@ -2040,15 +2039,15 @@ if.then882: ; preds = %for.end878 br i1 %tobool884.not, label %if.end887, label %failed_malloc if.end887: ; preds = %if.then882, %for.end878 - %.pre929 = load double, ptr %rv, align 8 + %.pre930 = load double, ptr %rv, align 8 br i1 %tobool845, label %ret, label %if.then890 if.then890: ; preds = %if.end887 - %mul893 = fmul double %.pre929, 0x3950000000000000 + %mul893 = fmul double %.pre930, 0x3950000000000000 br label %ret ret: ; preds = %if.end887, %if.then890, %if.then221, %if.end138, %if.then251, %if.then239, %if.then230 - %186 = phi double [ %mul233, %if.then230 ], [ %mul246, %if.then239 ], [ %mul893, %if.then890 ], [ %.pre929, %if.end887 ], [ %div, %if.then251 ], [ %34, %if.then221 ], [ 0.000000e+00, %if.end138 ] + %186 = phi double [ %mul233, %if.then230 ], [ %mul246, %if.then239 ], [ %mul893, %if.then890 ], [ %.pre930, %if.end887 ], [ %div, %if.then251 ], [ %34, %if.then221 ], [ 0.000000e+00, %if.end138 ] %bb.0 = phi ptr [ null, %if.then230 ], [ null, %if.then239 ], [ %bb.6, %if.then890 ], [ %bb.6, %if.end887 ], [ null, %if.then251 ], [ null, %if.then221 ], [ null, %if.end138 ] %bd.0 = phi ptr [ null, %if.then230 ], [ null, %if.then239 ], [ %bd.5, %if.then890 ], [ %bd.5, %if.end887 ], [ null, %if.then251 ], [ null, %if.then221 ], [ null, %if.end138 ] %bd0.0 = phi ptr [ null, %if.then230 ], [ null, %if.then239 ], [ %retval.0.i, %if.then890 ], [ %retval.0.i, %if.end887 ], [ null, %if.then251 ], [ null, %if.then221 ], [ null, %if.end138 ] @@ -4534,10 +4533,10 @@ if.end69: ; preds = %if.then62, %select. %k.1 = phi i32 [ %k.0, %if.then62 ], [ %k.0, %if.end45 ], [ %dec67, %select.unfold ] %32 = xor i32 %i.0, -1 %sub71 = add nsw i32 %bbits.0.ph, %32 - %cmp72 = icmp sgt i32 %sub71, -1 %sub76 = sub nsw i32 0, %sub71 - %b2.0 = select i1 %cmp72, i32 0, i32 %sub76 - %s2.0 = select i1 %cmp72, i32 %sub71, i32 0 + %cmp72.inv = icmp slt i32 %sub71, 0 + %b2.0 = select i1 %cmp72.inv, i32 %sub76, i32 0 + %s2.0 = tail call i32 @llvm.smax.i32(i32 %sub71, i32 0) %cmp78 = icmp sgt i32 %k.1, -1 br i1 %cmp78, label %if.then80, label %if.else82 diff --git a/bench/cpython/optimized/traceback.ll b/bench/cpython/optimized/traceback.ll index 173d78376fc..aa6e276ecc5 100644 --- a/bench/cpython/optimized/traceback.ll +++ b/bench/cpython/optimized/traceback.ll @@ -2915,15 +2915,16 @@ if.then7: ; preds = %if.end %5 = and i32 %bf.load, 64 %tobool12.not = icmp eq i32 %5, 0 %cmp2181 = icmp slt i64 %3, 501 + %.82 = tail call i64 @llvm.smin.i64(i64 %3, i64 500) br i1 %tobool12.not, label %if.end20.thread, label %if.end20.thread87 if.end20.thread87: ; preds = %if.then7 %add.ptr = getelementptr i8, ptr %text, i64 40 - br i1 %cmp2181, label %for.cond.preheader, label %for.body.preheader + br label %for.cond.preheader if.end20.thread: ; preds = %if.then7 %add.ptr14 = getelementptr i8, ptr %text, i64 56 - br i1 %cmp2181, label %if.end42, label %for.body46.lr.ph + br label %if.end42 if.else16: ; preds = %if.end %data17 = getelementptr inbounds nuw i8, ptr %text, i64 56 @@ -2935,53 +2936,41 @@ if.end20: ; preds = %if.else16 %.pre = and i32 %bf.load, 64 %7 = icmp eq i32 %.pre, 0 %cmp21 = icmp slt i64 %3, 501 - %. = select i1 %cmp21, i64 %3, i64 500 + %. = tail call i64 @llvm.smin.i64(i64 %3, i64 500) br i1 %7, label %if.end42, label %for.cond.preheader for.cond.preheader: ; preds = %if.end20.thread87, %if.end20 - %.94 = phi i64 [ %., %if.end20 ], [ %3, %if.end20.thread87 ] - %cmp2193 = phi i1 [ %cmp21, %if.end20 ], [ true, %if.end20.thread87 ] - %data.092 = phi ptr [ %6, %if.end20 ], [ %add.ptr, %if.end20.thread87 ] - %cmp31.not74 = icmp sgt i64 %.94, 0 - br i1 %cmp31.not74, label %for.body.preheader, label %if.then39 - -for.body.preheader: ; preds = %if.end20.thread87, %for.cond.preheader - %data.092103 = phi ptr [ %data.092, %for.cond.preheader ], [ %add.ptr, %if.end20.thread87 ] - %cmp2193101 = phi i1 [ %cmp2193, %for.cond.preheader ], [ false, %if.end20.thread87 ] - %.94100 = phi i64 [ %.94, %for.cond.preheader ], [ 500, %if.end20.thread87 ] - br label %for.body + %.94 = phi i64 [ %.82, %if.end20.thread87 ], [ %., %if.end20 ] + %cmp2193 = phi i1 [ %cmp2181, %if.end20.thread87 ], [ %cmp21, %if.end20 ] + %data.092 = phi ptr [ %add.ptr, %if.end20.thread87 ], [ %6, %if.end20 ] + %cmp31.not74 = icmp sgt i64 %3, 0 + br i1 %cmp31.not74, label %for.body, label %if.then39 for.cond: ; preds = %for.body %inc = add nuw nsw i64 %i.075, 1 - %exitcond.not = icmp eq i64 %inc, %.94100 + %exitcond.not = icmp eq i64 %inc, %.94 br i1 %exitcond.not, label %if.then39, label %for.body, !llvm.loop !15 -for.body: ; preds = %for.body.preheader, %for.cond - %i.075 = phi i64 [ %inc, %for.cond ], [ 0, %for.body.preheader ] - %arrayidx = getelementptr i8, ptr %data.092103, i64 %i.075 +for.body: ; preds = %for.cond.preheader, %for.cond + %i.075 = phi i64 [ %inc, %for.cond ], [ 0, %for.cond.preheader ] + %arrayidx = getelementptr i8, ptr %data.092, i64 %i.075 %8 = load i8, ptr %arrayidx, align 1 %9 = add i8 %8, -32 %or.cond = icmp ult i8 %9, 95 - br i1 %or.cond, label %for.cond, label %for.body46.lr.ph + br i1 %or.cond, label %for.cond, label %if.end42 if.then39: ; preds = %for.cond, %for.cond.preheader - %data.092104 = phi ptr [ %data.092, %for.cond.preheader ], [ %data.092103, %for.cond ] - %cmp2193102 = phi i1 [ %cmp2193, %for.cond.preheader ], [ %cmp2193101, %for.cond ] - %.9499 = phi i64 [ %.94, %for.cond.preheader ], [ %.94100, %for.cond ] - %call40 = tail call i64 @_Py_write_noraise(i32 noundef %fd, ptr noundef %data.092104, i64 noundef %.9499) #10 - br i1 %cmp2193102, label %if.end80, label %if.then78 - -if.end42: ; preds = %if.end20.thread, %if.end20 - %.86 = phi i64 [ %., %if.end20 ], [ %3, %if.end20.thread ] - %cmp2185 = phi i1 [ %cmp21, %if.end20 ], [ true, %if.end20.thread ] - %data.083 = phi ptr [ %6, %if.end20 ], [ %add.ptr14, %if.end20.thread ] - %cmp4476 = icmp sgt i64 %.86, 0 + %call40 = tail call i64 @_Py_write_noraise(i32 noundef %fd, ptr noundef %data.092, i64 noundef %.94) #10 + br i1 %cmp2193, label %if.end80, label %if.then78 + +if.end42: ; preds = %for.body, %if.end20.thread, %if.end20 + %.86 = phi i64 [ %.82, %if.end20.thread ], [ %., %if.end20 ], [ %.94, %for.body ] + %cmp2185 = phi i1 [ %cmp2181, %if.end20.thread ], [ %cmp21, %if.end20 ], [ %cmp2193, %for.body ] + %data.083 = phi ptr [ %add.ptr14, %if.end20.thread ], [ %6, %if.end20 ], [ %data.092, %for.body ] + %cmp4476 = icmp sgt i64 %3, 0 br i1 %cmp4476, label %for.body46.lr.ph, label %done -for.body46.lr.ph: ; preds = %for.body, %if.end20.thread, %if.end42 - %data.083112 = phi ptr [ %data.083, %if.end42 ], [ %add.ptr14, %if.end20.thread ], [ %data.092103, %for.body ] - %cmp2185111 = phi i1 [ %cmp2185, %if.end42 ], [ false, %if.end20.thread ], [ %cmp2193101, %for.body ] - %.86110 = phi i64 [ %.86, %if.end42 ], [ 500, %if.end20.thread ], [ %.94100, %for.body ] +for.body46.lr.ph: ; preds = %if.end42 %arrayidx.i59 = getelementptr inbounds nuw i8, ptr %buffer.i58, i64 16 %sub.ptr.lhs.cast.i60 = ptrtoint ptr %arrayidx.i59 to i64 %arrayidx.i43 = getelementptr inbounds nuw i8, ptr %buffer.i42, i64 16 @@ -2998,19 +2987,19 @@ for.body46: ; preds = %for.body46.lr.ph, % ] if.then.i: ; preds = %for.body46 - %arrayidx.i = getelementptr i8, ptr %data.083112, i64 %i.177 + %arrayidx.i = getelementptr i8, ptr %data.083, i64 %i.177 %10 = load i8, ptr %arrayidx.i, align 1 %conv.i39 = zext i8 %10 to i32 br label %PyUnicode_READ.exit if.then3.i: ; preds = %for.body46 - %arrayidx4.i = getelementptr i16, ptr %data.083112, i64 %i.177 + %arrayidx4.i = getelementptr i16, ptr %data.083, i64 %i.177 %11 = load i16, ptr %arrayidx4.i, align 2 %conv5.i = zext i16 %11 to i32 br label %PyUnicode_READ.exit if.end6.i: ; preds = %for.body46 - %arrayidx7.i = getelementptr i32, ptr %data.083112, i64 %i.177 + %arrayidx7.i = getelementptr i32, ptr %data.083, i64 %i.177 %12 = load i32, ptr %arrayidx7.i, align 4 br label %PyUnicode_READ.exit @@ -3121,12 +3110,11 @@ _Py_DumpHexadecimal.exit73: ; preds = %do.body.i61 for.inc74: ; preds = %if.then53, %_Py_DumpHexadecimal.exit57, %_Py_DumpHexadecimal.exit73, %_Py_DumpHexadecimal.exit %inc75 = add nuw nsw i64 %i.177, 1 - %exitcond78.not = icmp eq i64 %inc75, %.86110 + %exitcond78.not = icmp eq i64 %inc75, %.86 br i1 %exitcond78.not, label %done, label %for.body46, !llvm.loop !16 done: ; preds = %for.inc74, %if.end42 - %cmp2184 = phi i1 [ %cmp2185, %if.end42 ], [ %cmp2185111, %for.inc74 ] - br i1 %cmp2184, label %if.end80, label %if.then78 + br i1 %cmp2185, label %if.end80, label %if.then78 if.then78: ; preds = %if.then39, %done %call79 = call i64 @_Py_write_noraise(i32 noundef %fd, ptr noundef nonnull @.str.7, i64 noundef 3) #10 diff --git a/bench/eastl/optimized/EASprintfOrdered.cpp.ll b/bench/eastl/optimized/EASprintfOrdered.cpp.ll index 189d44eccd7..3a9e7cb1b6f 100644 --- a/bench/eastl/optimized/EASprintfOrdered.cpp.ll +++ b/bench/eastl/optimized/EASprintfOrdered.cpp.ll @@ -181,8 +181,7 @@ sw.bb.i: ; preds = %if.then63.i, %if.th %add.ptr73.i = getelementptr inbounds nuw i8, ptr %p.0.i, i64 1 %mpEnd76.i = getelementptr inbounds nuw i8, ptr %arrayidx65.i, i64 8 store ptr %add.ptr73.i, ptr %mpEnd76.i, align 8, !noalias !8 - %cmp80.not.i = icmp eq i32 %nFormatLength.0.i, 15 - %cond.i = select i1 %cmp80.not.i, i32 15, i32 %inc67.i + %cond.i = tail call i32 @llvm.smin.i32(i32 %inc67.i, i32 15) %idxprom81.i = sext i32 %cond.i to i64 %arrayidx82.i = getelementptr inbounds [16 x i8], ptr %mFormat66.i, i64 0, i64 %idxprom81.i store i8 0, ptr %arrayidx82.i, align 1, !noalias !8 @@ -1388,8 +1387,7 @@ sw.bb.i: ; preds = %if.then63.i, %if.th %add.ptr73.i = getelementptr inbounds nuw i8, ptr %p.0.i, i64 2 %mpEnd76.i = getelementptr inbounds nuw i8, ptr %arrayidx65.i, i64 8 store ptr %add.ptr73.i, ptr %mpEnd76.i, align 8, !noalias !37 - %cmp80.not.i = icmp eq i32 %nFormatLength.0.i, 15 - %cond.i = select i1 %cmp80.not.i, i32 15, i32 %inc67.i + %cond.i = tail call i32 @llvm.smin.i32(i32 %inc67.i, i32 15) %idxprom81.i = sext i32 %cond.i to i64 %arrayidx82.i = getelementptr inbounds [16 x i16], ptr %mFormat66.i, i64 0, i64 %idxprom81.i store i16 0, ptr %arrayidx82.i, align 2, !noalias !37 @@ -2586,8 +2584,7 @@ sw.bb.i: ; preds = %if.then58.i, %if.th %add.ptr67.i = getelementptr inbounds nuw i8, ptr %p.0.i, i64 4 %mpEnd70.i = getelementptr inbounds nuw i8, ptr %arrayidx60.i, i64 8 store ptr %add.ptr67.i, ptr %mpEnd70.i, align 8, !noalias !65 - %cmp74.not.i = icmp eq i32 %nFormatLength.0.i, 15 - %cond.i = select i1 %cmp74.not.i, i32 15, i32 %inc62.i + %cond.i = tail call i32 @llvm.smin.i32(i32 %inc62.i, i32 15) %idxprom75.i = sext i32 %cond.i to i64 %arrayidx76.i = getelementptr inbounds [16 x i32], ptr %mFormat61.i, i64 0, i64 %idxprom75.i store i32 0, ptr %arrayidx76.i, align 4, !noalias !65 @@ -3671,30 +3668,30 @@ declare noundef i32 @_ZN2EA4StdC12SprintfLocal11VprintfCoreEPFiPKDimPvNS0_18Writ ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn declare void @llvm.va_start.p0(ptr) #4 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i32 @llvm.smin.i32(i32, i32) #5 + ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) -declare void @llvm.memmove.p0.p0.i64(ptr writeonly captures(none), ptr readonly captures(none), i64, i1 immarg) #5 +declare void @llvm.memmove.p0.p0.i64(ptr writeonly captures(none), ptr readonly captures(none), i64, i1 immarg) #6 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) -declare void @llvm.experimental.noalias.scope.decl(metadata) #6 +declare void @llvm.experimental.noalias.scope.decl(metadata) #7 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #7 +declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #8 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #7 - -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.smin.i32(i32, i32) #8 +declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #8 attributes #0 = { mustprogress uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #3 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #4 = { mustprogress nocallback nofree nosync nounwind willreturn } -attributes #5 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #6 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) } -attributes #7 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #8 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #6 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #7 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) } +attributes #8 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } !llvm.module.flags = !{!0, !1, !2, !3, !4} diff --git a/bench/eastl/optimized/eathread.cpp.ll b/bench/eastl/optimized/eathread.cpp.ll index ad71ccdea09..8c901f2c31d 100644 --- a/bench/eastl/optimized/eathread.cpp.ll +++ b/bench/eastl/optimized/eathread.cpp.ll @@ -159,9 +159,9 @@ declare i32 @pthread_getschedparam(i64 noundef, ptr noundef, ptr noundef) local_ define dso_local noundef zeroext i1 @_ZN2EA6Thread17SetThreadPriorityEi(i32 noundef %nPriority) local_unnamed_addr #6 { entry: %param = alloca %struct.sched_param, align 4 - %cmp = icmp slt i32 %nPriority, 1 - %.nPriority = select i1 %cmp, i32 0, i32 %nPriority - %. = select i1 %cmp, i32 0, i32 2 + %.nPriority = tail call i32 @llvm.smax.i32(i32 %nPriority, i32 0) + %cmp.inv = icmp sgt i32 %nPriority, 0 + %. = select i1 %cmp.inv, i32 2, i32 0 store i32 %.nPriority, ptr %param, align 4 %call = tail call i64 @pthread_self() #18 %call2 = call i32 @pthread_setschedparam(i64 noundef %call, i32 noundef %., ptr noundef nonnull %param) #19 diff --git a/bench/freetype/optimized/ftcache.c.ll b/bench/freetype/optimized/ftcache.c.ll index 7a4a2e22cb4..04292ad3372 100644 --- a/bench/freetype/optimized/ftcache.c.ll +++ b/bench/freetype/optimized/ftcache.c.ll @@ -2471,7 +2471,7 @@ define i32 @FTC_CMapCache_Lookup(ptr noundef %0, ptr noundef %1, i32 noundef %2, %6 = alloca %struct.FTC_CMapQueryRec_, align 8 %7 = alloca ptr, align 8 %8 = icmp sgt i32 %2, -1 - %spec.select = select i1 %8, i32 %2, i32 0 + %spec.select = tail call i32 @llvm.smax.i32(i32 %2, i32 0) %.not = icmp eq ptr %0, null br i1 %.not, label %132, label %9 @@ -2487,10 +2487,10 @@ define i32 @FTC_CMapCache_Lookup(ptr noundef %0, ptr noundef %1, i32 noundef %2, %15 = xor i64 %13, %14 %16 = mul i32 %spec.select, 211 %17 = zext i32 %16 to i64 - %18 = lshr i32 %3, 7 - %19 = zext nneg i32 %18 to i64 - %20 = add i64 %15, %19 - %21 = add i64 %20, %17 + %18 = add i64 %15, %17 + %19 = lshr i32 %3, 7 + %20 = zext nneg i32 %19 to i64 + %21 = add i64 %18, %20 %22 = getelementptr inbounds nuw i8, ptr %0, i64 16 %23 = load ptr, ptr %22, align 8 %24 = getelementptr inbounds nuw i8, ptr %0, i64 4 @@ -5378,6 +5378,9 @@ declare i16 @llvm.abs.i16(i16, i1 immarg) #9 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.umax.i32(i32, i32) #9 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i32 @llvm.smax.i32(i32, i32) #9 + attributes #0 = { nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/freetype/optimized/type1cid.c.ll b/bench/freetype/optimized/type1cid.c.ll index f06fefc7f83..f3301cfcd68 100644 --- a/bench/freetype/optimized/type1cid.c.ll +++ b/bench/freetype/optimized/type1cid.c.ll @@ -2892,26 +2892,26 @@ cid_get_offset.exit: ; preds = %.lr.ph.i, %36 %94 = load i32, ptr %93, align 4 %95 = getelementptr inbounds nuw i8, ptr %0, i64 2712 store i32 %94, ptr %95, align 8 - %96 = icmp sgt i32 %94, -1 - %narrow = select i1 %96, i32 %94, i32 0 - %spec.select = zext i32 %narrow to i64 - %97 = icmp ult i64 %.089, %spec.select - br i1 %97, label %98, label %99 + %narrow = call i32 @llvm.smax.i32(i32 %94, i32 0) + %spec.select = zext nneg i32 %narrow to i64 + %96 = icmp ult i64 %.089, %spec.select + br i1 %96, label %97, label %98 -98: ; preds = %75 +97: ; preds = %75 store i32 9, ptr %4, align 4 br label %173 -99: ; preds = %75 - br i1 %96, label %100, label %103 +98: ; preds = %75 + %99 = icmp sgt i32 %94, -1 + br i1 %99, label %100, label %103 -100: ; preds = %99 +100: ; preds = %98 %101 = getelementptr inbounds nuw i8, ptr %18, i64 32 %102 = load ptr, ptr %101, align 8 call void %102(ptr noundef %.0, i64 noundef %.089, i16 noundef zeroext 4330) #13 br label %103 -103: ; preds = %100, %99 +103: ; preds = %100, %98 %104 = getelementptr inbounds nuw i8, ptr %0, i64 134 %105 = load i8, ptr %104, align 2 %.not102 = icmp eq i8 %105, 0 @@ -3018,9 +3018,9 @@ cid_get_offset.exit: ; preds = %.lr.ph.i, %36 store i64 %172, ptr %156, align 8 br label %173 -173: ; preds = %98, %30, %24, %53, %59, %69, %66, %61, %145, %141, %138 - %.191 = phi i8 [ 0, %24 ], [ 0, %30 ], [ 0, %53 ], [ 0, %98 ], [ %.090, %145 ], [ %.090, %141 ], [ %.090, %138 ], [ 0, %59 ], [ 0, %61 ], [ 0, %66 ], [ 0, %69 ] - %.1 = phi ptr [ null, %24 ], [ null, %30 ], [ %46, %53 ], [ %.0, %98 ], [ %.0, %145 ], [ %.0, %141 ], [ %.0, %138 ], [ null, %59 ], [ null, %61 ], [ %67, %66 ], [ %67, %69 ] +173: ; preds = %97, %30, %24, %53, %59, %69, %66, %61, %145, %141, %138 + %.191 = phi i8 [ 0, %24 ], [ 0, %30 ], [ 0, %53 ], [ 0, %97 ], [ %.090, %145 ], [ %.090, %141 ], [ %.090, %138 ], [ 0, %59 ], [ 0, %61 ], [ 0, %66 ], [ 0, %69 ] + %.1 = phi ptr [ null, %24 ], [ null, %30 ], [ %46, %53 ], [ %.0, %97 ], [ %.0, %145 ], [ %.0, %141 ], [ %.0, %138 ], [ null, %59 ], [ null, %61 ], [ %67, %66 ], [ %67, %69 ] call void @ft_mem_free(ptr noundef %16, ptr noundef %.1) #13 %174 = getelementptr inbounds nuw i8, ptr %0, i64 16 %175 = load ptr, ptr %174, align 8 @@ -3053,6 +3053,9 @@ declare i32 @bcmp(ptr captures(none), ptr captures(none), i64) local_unnamed_add ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.abs.i64(i64, i1 immarg) #10 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i32 @llvm.smax.i32(i32, i32) #10 + ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #12 diff --git a/bench/git/optimized/http-backend.ll b/bench/git/optimized/http-backend.ll index 08fdd6059f1..aab44702c9e 100644 --- a/bench/git/optimized/http-backend.ll +++ b/bench/git/optimized/http-backend.ll @@ -1385,27 +1385,29 @@ if.then48: ; preds = %if.end45 br i1 %tobool.not.i19, label %entry.split.us.i, label %if.end.i entry.split.us.i: ; preds = %if.then48 - %req_remaining_len.0..us46.i = call i64 @llvm.umin.i64(i64 %1, i64 8192) - %call10.us47.i = call i64 @xread(i32 noundef 0, ptr noundef nonnull %in_buf.i, i64 noundef %req_remaining_len.0..us46.i) #18 + %6 = call i64 @llvm.umin.i64(i64 %1, i64 8192) + %req_remaining_len.0..us44.i = select i1 %cmp, i64 %6, i64 8192 + %call10.us45.i = call i64 @xread(i32 noundef 0, ptr noundef nonnull %in_buf.i, i64 noundef %req_remaining_len.0..us44.i) #18 store ptr %in_buf.i, ptr %next_in.i, align 8 - %cmp20.us50.i = icmp slt i64 %call10.us47.i, 1 - br i1 %cmp20.us50.i, label %if.then22.i, label %if.end23.us.lr.ph.i + %cmp20.us48.i = icmp slt i64 %call10.us45.i, 1 + br i1 %cmp20.us48.i, label %if.then22.i, label %if.end23.us.lr.ph.i if.end23.us.lr.ph.i: ; preds = %entry.split.us.i - br i1 %cmp, label %if.end23.us.preheader.i, label %if.end23.us.us.i + br i1 %cmp, label %if.end23.us.us.preheader.i, label %if.end23.us.i -if.end23.us.preheader.i: ; preds = %if.end23.us.lr.ph.i - %spec.select.us49.i = sub nsw i64 %1, %call10.us47.i - br label %if.end23.us.i +if.end23.us.us.preheader.i: ; preds = %if.end23.us.lr.ph.i + %spec.select.us47.i = sub nsw i64 %1, %call10.us45.i + br label %if.end23.us.us.i -if.end23.us.us.i: ; preds = %if.end23.us.lr.ph.i, %while.body.loopexit.us.us.i - %call10.us52.us.i = phi i64 [ %call10.us.us.i, %while.body.loopexit.us.us.i ], [ %call10.us47.i, %if.end23.us.lr.ph.i ] - %cnt.0.us51.us.i = phi i64 [ %7, %while.body.loopexit.us.us.i ], [ 0, %if.end23.us.lr.ph.i ] - store i64 %call10.us52.us.i, ptr %avail_in.i, align 8 +if.end23.us.us.i: ; preds = %while.body.loopexit.us.us.i, %if.end23.us.us.preheader.i + %spec.select.us51.us.i = phi i64 [ %spec.select.us.us.i, %while.body.loopexit.us.us.i ], [ %spec.select.us47.i, %if.end23.us.us.preheader.i ] + %call10.us50.us.i = phi i64 [ %call10.us.us.i, %while.body.loopexit.us.us.i ], [ %call10.us45.i, %if.end23.us.us.preheader.i ] + %cnt.0.us49.us.i = phi i64 [ %8, %while.body.loopexit.us.us.i ], [ 0, %if.end23.us.us.preheader.i ] + store i64 %call10.us50.us.i, ptr %avail_in.i, align 8 br label %while.body28.us.us.i while.body28.us.us.i: ; preds = %while.cond24thread-pre-split.us.us.i, %if.end23.us.us.i - %cnt.121.us.us.i = phi i64 [ %cnt.0.us51.us.i, %if.end23.us.us.i ], [ %7, %while.cond24thread-pre-split.us.us.i ] + %cnt.121.us.us.i = phi i64 [ %cnt.0.us49.us.i, %if.end23.us.us.i ], [ %8, %while.cond24thread-pre-split.us.us.i ] store ptr %out_buf.i, ptr %next_out.i, align 8 store i64 8192, ptr %avail_out.i, align 8 %call30.us.us.i = call i32 @git_inflate(ptr noundef nonnull %stream.i, i32 noundef 0) #18 @@ -1413,8 +1415,8 @@ while.body28.us.us.i: ; preds = %while.cond24thread- br i1 %or.cond2.us.us.i, label %if.then36.i, label %if.end37.us.us.i if.end37.us.us.i: ; preds = %while.body28.us.us.i - %6 = load i64, ptr %total_out.i, align 8 - %sub41.us.us.i = sub i64 %6, %cnt.121.us.us.i + %7 = load i64, ptr %total_out.i, align 8 + %sub41.us.us.i = sub i64 %7, %cnt.121.us.us.i %call.i.us.us.i = call i64 @write_in_full(i32 noundef %5, ptr noundef nonnull %out_buf.i, i64 noundef %sub41.us.us.i) #18 %cmp.i.us.us.i = icmp slt i64 %call.i.us.us.i, 0 br i1 %cmp.i.us.us.i, label %if.then.i.i, label %write_to_child.exit.us.us.i @@ -1424,26 +1426,27 @@ write_to_child.exit.us.us.i: ; preds = %if.end37.us.us.i br i1 %cmp43.us.us.i, label %inflate_request.exit, label %while.cond24thread-pre-split.us.us.i, !llvm.loop !13 while.cond24thread-pre-split.us.us.i: ; preds = %write_to_child.exit.us.us.i - %7 = load i64, ptr %total_out.i, align 8 + %8 = load i64, ptr %total_out.i, align 8 %.pr.us.us.i = load i64, ptr %avail_in.i, align 8 %cmp26.not.us.us.i = icmp eq i64 %.pr.us.us.i, 0 br i1 %cmp26.not.us.us.i, label %while.body.loopexit.us.us.i, label %while.body28.us.us.i while.body.loopexit.us.us.i: ; preds = %while.cond24thread-pre-split.us.us.i - %call10.us.us.i = call i64 @xread(i32 noundef 0, ptr noundef nonnull %in_buf.i, i64 noundef 8192) #18 + %9 = call i64 @llvm.umin.i64(i64 %spec.select.us51.us.i, i64 8192) + %call10.us.us.i = call i64 @xread(i32 noundef 0, ptr noundef nonnull %in_buf.i, i64 noundef %9) #18 store ptr %in_buf.i, ptr %next_in.i, align 8 + %spec.select.us.us.i = sub i64 %spec.select.us51.us.i, %call10.us.us.i %cmp20.us.us.i = icmp slt i64 %call10.us.us.i, 1 br i1 %cmp20.us.us.i, label %if.then22.i, label %if.end23.us.us.i -if.end23.us.i: ; preds = %while.body.loopexit.us.i, %if.end23.us.preheader.i - %spec.select.us53.i = phi i64 [ %spec.select.us.i, %while.body.loopexit.us.i ], [ %spec.select.us49.i, %if.end23.us.preheader.i ] - %call10.us52.i = phi i64 [ %call10.us.i, %while.body.loopexit.us.i ], [ %call10.us47.i, %if.end23.us.preheader.i ] - %cnt.0.us51.i = phi i64 [ %9, %while.body.loopexit.us.i ], [ 0, %if.end23.us.preheader.i ] - store i64 %call10.us52.i, ptr %avail_in.i, align 8 +if.end23.us.i: ; preds = %if.end23.us.lr.ph.i, %while.body.loopexit.us.i + %call10.us50.i = phi i64 [ %call10.us.i, %while.body.loopexit.us.i ], [ %call10.us45.i, %if.end23.us.lr.ph.i ] + %cnt.0.us49.i = phi i64 [ %11, %while.body.loopexit.us.i ], [ 0, %if.end23.us.lr.ph.i ] + store i64 %call10.us50.i, ptr %avail_in.i, align 8 br label %while.body28.us.i while.body28.us.i: ; preds = %while.cond24thread-pre-split.us.i, %if.end23.us.i - %cnt.121.us.i = phi i64 [ %cnt.0.us51.i, %if.end23.us.i ], [ %9, %while.cond24thread-pre-split.us.i ] + %cnt.121.us.i = phi i64 [ %cnt.0.us49.i, %if.end23.us.i ], [ %11, %while.cond24thread-pre-split.us.i ] store ptr %out_buf.i, ptr %next_out.i, align 8 store i64 8192, ptr %avail_out.i, align 8 %call30.us.i = call i32 @git_inflate(ptr noundef nonnull %stream.i, i32 noundef 0) #18 @@ -1451,8 +1454,8 @@ while.body28.us.i: ; preds = %while.cond24thread- br i1 %or.cond2.us.i, label %if.then36.i, label %if.end37.us.i if.end37.us.i: ; preds = %while.body28.us.i - %8 = load i64, ptr %total_out.i, align 8 - %sub41.us.i = sub i64 %8, %cnt.121.us.i + %10 = load i64, ptr %total_out.i, align 8 + %sub41.us.i = sub i64 %10, %cnt.121.us.i %call.i.us.i = call i64 @write_in_full(i32 noundef %5, ptr noundef nonnull %out_buf.i, i64 noundef %sub41.us.i) #18 %cmp.i.us.i = icmp slt i64 %call.i.us.i, 0 br i1 %cmp.i.us.i, label %if.then.i.i, label %write_to_child.exit.us.i @@ -1462,16 +1465,14 @@ write_to_child.exit.us.i: ; preds = %if.end37.us.i br i1 %cmp43.us.i, label %inflate_request.exit, label %while.cond24thread-pre-split.us.i, !llvm.loop !13 while.cond24thread-pre-split.us.i: ; preds = %write_to_child.exit.us.i - %9 = load i64, ptr %total_out.i, align 8 + %11 = load i64, ptr %total_out.i, align 8 %.pr.us.i = load i64, ptr %avail_in.i, align 8 %cmp26.not.us.i = icmp eq i64 %.pr.us.i, 0 br i1 %cmp26.not.us.i, label %while.body.loopexit.us.i, label %while.body28.us.i while.body.loopexit.us.i: ; preds = %while.cond24thread-pre-split.us.i - %spec.select.i = call i64 @llvm.umin.i64(i64 %spec.select.us53.i, i64 8192) - %call10.us.i = call i64 @xread(i32 noundef 0, ptr noundef nonnull %in_buf.i, i64 noundef %spec.select.i) #18 + %call10.us.i = call i64 @xread(i32 noundef 0, ptr noundef nonnull %in_buf.i, i64 noundef 8192) #18 store ptr %in_buf.i, ptr %next_in.i, align 8 - %spec.select.us.i = sub i64 %spec.select.us53.i, %call10.us.i %cmp20.us.i = icmp slt i64 %call10.us.i, 1 br i1 %cmp20.us.i, label %if.then22.i, label %if.end23.us.i @@ -1484,14 +1485,14 @@ if.end.thread.i: ; preds = %while.body.loopexit br label %if.then22.i if.end.i: ; preds = %if.then48, %while.body.loopexit.i - %cnt.0.i66 = phi i64 [ %10, %while.body.loopexit.i ], [ 0, %if.then48 ] + %cnt.0.i66 = phi i64 [ %12, %while.body.loopexit.i ], [ 0, %if.then48 ] %call.i21 = call fastcc i64 @read_request(ptr noundef %full_request.i, i64 noundef %1) %.pre.i22 = load ptr, ptr %full_request.i, align 8 store ptr %.pre.i22, ptr %next_in.i, align 8 %cmp20.i = icmp slt i64 %call.i21, 1 br i1 %cmp20.i, label %if.then22.i, label %if.end23.i -if.then22.i: ; preds = %if.end.i, %while.body.loopexit.us.us.i, %while.body.loopexit.us.i, %if.end.thread.i, %entry.split.us.i +if.then22.i: ; preds = %if.end.i, %while.body.loopexit.us.i, %while.body.loopexit.us.us.i, %if.end.thread.i, %entry.split.us.i call void (ptr, ...) @die(ptr noundef nonnull @.str.76) #19 unreachable @@ -1500,32 +1501,32 @@ if.end23.i: ; preds = %if.end.i br label %while.body28.i while.cond24thread-pre-split.i: ; preds = %write_to_child.exit.i - %10 = load i64, ptr %total_out.i, align 8 + %12 = load i64, ptr %total_out.i, align 8 %.pr.i = load i64, ptr %avail_in.i, align 8 %cmp26.not.i = icmp eq i64 %.pr.i, 0 br i1 %cmp26.not.i, label %while.body.loopexit.i, label %while.body28.i, !llvm.loop !14 while.body28.i: ; preds = %while.cond24thread-pre-split.i, %if.end23.i - %cnt.121.i = phi i64 [ %cnt.0.i66, %if.end23.i ], [ %10, %while.cond24thread-pre-split.i ] + %cnt.121.i = phi i64 [ %cnt.0.i66, %if.end23.i ], [ %12, %while.cond24thread-pre-split.i ] store ptr %out_buf.i, ptr %next_out.i, align 8 store i64 8192, ptr %avail_out.i, align 8 %call30.i = call i32 @git_inflate(ptr noundef nonnull %stream.i, i32 noundef 0) #18 %or.cond2.i = icmp ugt i32 %call30.i, 1 br i1 %or.cond2.i, label %if.then36.i, label %if.end37.i -if.then36.i: ; preds = %while.body28.i, %while.body28.us.us.i, %while.body28.us.i - %.us-phi.i = phi i32 [ %call30.us.i, %while.body28.us.i ], [ %call30.us.us.i, %while.body28.us.us.i ], [ %call30.i, %while.body28.i ] +if.then36.i: ; preds = %while.body28.i, %while.body28.us.i, %while.body28.us.us.i + %.us-phi.i = phi i32 [ %call30.us.us.i, %while.body28.us.us.i ], [ %call30.us.i, %while.body28.us.i ], [ %call30.i, %while.body28.i ] call void (ptr, ...) @die(ptr noundef nonnull @.str.77, i32 noundef %.us-phi.i) #19 unreachable if.end37.i: ; preds = %while.body28.i - %11 = load i64, ptr %total_out.i, align 8 - %sub41.i = sub i64 %11, %cnt.121.i + %13 = load i64, ptr %total_out.i, align 8 + %sub41.i = sub i64 %13, %cnt.121.i %call.i.i = call i64 @write_in_full(i32 noundef %5, ptr noundef nonnull %out_buf.i, i64 noundef %sub41.i) #18 %cmp.i.i = icmp slt i64 %call.i.i, 0 br i1 %cmp.i.i, label %if.then.i.i, label %write_to_child.exit.i -if.then.i.i: ; preds = %if.end37.i, %if.end37.us.us.i, %if.end37.us.i +if.then.i.i: ; preds = %if.end37.i, %if.end37.us.i, %if.end37.us.us.i call void (ptr, ...) @die(ptr noundef nonnull @.str.81, ptr noundef %4) #19 unreachable @@ -1533,11 +1534,11 @@ write_to_child.exit.i: ; preds = %if.end37.i %cmp43.i = icmp eq i32 %call30.i, 1 br i1 %cmp43.i, label %inflate_request.exit, label %while.cond24thread-pre-split.i, !llvm.loop !13 -inflate_request.exit: ; preds = %write_to_child.exit.i, %write_to_child.exit.us.us.i, %write_to_child.exit.us.i - %12 = phi ptr [ null, %write_to_child.exit.us.i ], [ null, %write_to_child.exit.us.us.i ], [ %.pre.i22, %write_to_child.exit.i ] +inflate_request.exit: ; preds = %write_to_child.exit.i, %write_to_child.exit.us.i, %write_to_child.exit.us.us.i + %14 = phi ptr [ null, %write_to_child.exit.us.us.i ], [ null, %write_to_child.exit.us.i ], [ %.pre.i22, %write_to_child.exit.i ] call void @git_inflate_end(ptr noundef nonnull %stream.i) #18 %call47.i = call i32 @close(i32 noundef %5) #18 - call void @free(ptr noundef %12) #18 + call void @free(ptr noundef %14) #18 call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %stream.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %full_request.i) call void @llvm.lifetime.end.p0(i64 8192, ptr nonnull %in_buf.i) @@ -1548,9 +1549,9 @@ if.else: ; preds = %if.end45 br i1 %tobool29, label %if.then51, label %if.else54 if.then51: ; preds = %if.else - %13 = load ptr, ptr %argv, align 8 + %15 = load ptr, ptr %argv, align 8 %in53 = getelementptr inbounds nuw i8, ptr %cld, i64 80 - %14 = load i32, ptr %in53, align 8 + %16 = load i32, ptr %in53, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %buf.i) %call.i23 = call fastcc i64 @read_request(ptr noundef %buf.i, i64 noundef %1) %cmp.i24 = icmp slt i64 %call.i23, 0 @@ -1561,18 +1562,18 @@ if.then.i30: ; preds = %if.then51 unreachable if.end.i25: ; preds = %if.then51 - %15 = load ptr, ptr %buf.i, align 8 - %call.i.i26 = call i64 @write_in_full(i32 noundef %14, ptr noundef %15, i64 noundef %call.i23) #18 + %17 = load ptr, ptr %buf.i, align 8 + %call.i.i26 = call i64 @write_in_full(i32 noundef %16, ptr noundef %17, i64 noundef %call.i23) #18 %cmp.i.i27 = icmp slt i64 %call.i.i26, 0 br i1 %cmp.i.i27, label %if.then.i.i29, label %copy_request.exit if.then.i.i29: ; preds = %if.end.i25 - call void (ptr, ...) @die(ptr noundef nonnull @.str.81, ptr noundef %13) #19 + call void (ptr, ...) @die(ptr noundef nonnull @.str.81, ptr noundef %15) #19 unreachable copy_request.exit: ; preds = %if.end.i25 - %call1.i = call i32 @close(i32 noundef %14) #18 - call void @free(ptr noundef %15) #18 + %call1.i = call i32 @close(i32 noundef %16) #18 + call void @free(ptr noundef %17) #18 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %buf.i) br label %if.end63 @@ -1580,9 +1581,9 @@ if.else54: ; preds = %if.else br i1 %cmp, label %if.then56, label %if.else59 if.then56: ; preds = %if.else54 - %16 = load ptr, ptr %argv, align 8 + %18 = load ptr, ptr %argv, align 8 %in58 = getelementptr inbounds nuw i8, ptr %cld, i64 80 - %17 = load i32, ptr %in58, align 8 + %19 = load i32, ptr %in58, align 8 call void @llvm.lifetime.start.p0(i64 8192, ptr nonnull %buf.i31) %cmp.not7.i = icmp eq i64 %1, 0 br i1 %cmp.not7.i, label %pipe_fixed_length.exit, label %while.body.i32 @@ -1604,16 +1605,16 @@ if.then.i38: ; preds = %while.body.i32 unreachable if.end.i34: ; preds = %while.body.i32 - %call.i.i35 = call i64 @write_in_full(i32 noundef %17, ptr noundef nonnull %buf.i31, i64 noundef %call.i33) #18 + %call.i.i35 = call i64 @write_in_full(i32 noundef %19, ptr noundef nonnull %buf.i31, i64 noundef %call.i33) #18 %cmp.i.i36 = icmp slt i64 %call.i.i35, 0 br i1 %cmp.i.i36, label %if.then.i.i37, label %while.cond.i if.then.i.i37: ; preds = %if.end.i34 - call void (ptr, ...) @die(ptr noundef nonnull @.str.81, ptr noundef %16) #19 + call void (ptr, ...) @die(ptr noundef nonnull @.str.81, ptr noundef %18) #19 unreachable pipe_fixed_length.exit: ; preds = %while.cond.i, %if.then56 - %call4.i = call i32 @close(i32 noundef %17) #18 + %call4.i = call i32 @close(i32 noundef %19) #18 call void @llvm.lifetime.end.p0(i64 8192, ptr nonnull %buf.i31) br label %if.end63 diff --git a/bench/gromacs/optimized/gmx_mindist.cpp.ll b/bench/gromacs/optimized/gmx_mindist.cpp.ll index d67299df648..1c5d27d1f13 100644 --- a/bench/gromacs/optimized/gmx_mindist.cpp.ll +++ b/bench/gromacs/optimized/gmx_mindist.cpp.ll @@ -2779,7 +2779,7 @@ _ZL13gmx_snew_implIPfEvPKcS2_iRPT_m.exit388.i: ; preds = %.lr.ph518.i, %_ZL13 %wide.trip.count632.i = zext nneg i32 %.047 to i64 %wide.trip.count649.i = zext i32 %.pre.i to i64 %brmerge.i = or i1 %1008, %1007 - %.mux.i = select i1 %1007, i32 1, i32 %714 + %.mux.i = call i32 @llvm.smax.i32(i32 %714, i32 1) br label %1012 1012: ; preds = %1232, %.loopexit468.i @@ -4715,6 +4715,9 @@ declare i64 @llvm.umin.i64(i64, i64) #17 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) declare void @llvm.assume(i1 noundef) #18 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i32 @llvm.smax.i32(i32, i32) #17 + attributes #0 = { mustprogress uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fma,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } attributes #1 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/bench/grpc/optimized/socket_utils_posix.cc.ll b/bench/grpc/optimized/socket_utils_posix.cc.ll index bf40be8a849..cf1a0185f02 100644 --- a/bench/grpc/optimized/socket_utils_posix.cc.ll +++ b/bench/grpc/optimized/socket_utils_posix.cc.ll @@ -177,62 +177,60 @@ invoke.cont83: ; preds = %invoke.cont71 %actual_value.sroa.0.0.extract.trunc.i73 = trunc i64 %call84 to i32 %15 = and i64 %call84, 4294967296 %tobool.i.i.not4.i74 = icmp eq i64 %15, 0 - %cmp.i75 = icmp slt i32 %actual_value.sroa.0.0.extract.trunc.i73, 1 - %or.cond.i76 = or i1 %tobool.i.i.not4.i74, %cmp.i75 - %retval.0.i79 = select i1 %or.cond.i76, i32 0, i32 %actual_value.sroa.0.0.extract.trunc.i73 + %16 = tail call i32 @llvm.smax.i32(i32 %actual_value.sroa.0.0.extract.trunc.i73, i32 0) + %retval.0.i79 = select i1 %tobool.i.i.not4.i74, i32 0, i32 %16 store i32 %retval.0.i79, ptr %keep_alive_time_ms.i, align 4 %vtable93 = load ptr, ptr %config, align 8 %vfn94 = getelementptr inbounds nuw i8, ptr %vtable93, i64 16 - %16 = load ptr, ptr %vfn94, align 8 - %call96 = invoke i64 %16(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 25, ptr nonnull @.str.8) + %17 = load ptr, ptr %vfn94, align 8 + %call96 = invoke i64 %17(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 25, ptr nonnull @.str.8) to label %invoke.cont95 unwind label %lpad invoke.cont95: ; preds = %invoke.cont83 %actual_value.sroa.0.0.extract.trunc.i82 = trunc i64 %call96 to i32 - %17 = and i64 %call96, 4294967296 - %tobool.i.i.not4.i83 = icmp eq i64 %17, 0 - %cmp.i84 = icmp slt i32 %actual_value.sroa.0.0.extract.trunc.i82, 1 - %or.cond.i85 = or i1 %tobool.i.i.not4.i83, %cmp.i84 - %retval.0.i88 = select i1 %or.cond.i85, i32 0, i32 %actual_value.sroa.0.0.extract.trunc.i82 + %18 = and i64 %call96, 4294967296 + %tobool.i.i.not4.i83 = icmp eq i64 %18, 0 + %19 = tail call i32 @llvm.smax.i32(i32 %actual_value.sroa.0.0.extract.trunc.i82, i32 0) + %retval.0.i88 = select i1 %tobool.i.i.not4.i83, i32 0, i32 %19 store i32 %retval.0.i88, ptr %keep_alive_timeout_ms.i, align 8 %vtable105 = load ptr, ptr %config, align 8 %vfn106 = getelementptr inbounds nuw i8, ptr %vtable105, i64 16 - %18 = load ptr, ptr %vfn106, align 8 - %call108 = invoke i64 %18(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 26, ptr nonnull @.str.9) + %20 = load ptr, ptr %vfn106, align 8 + %call108 = invoke i64 %20(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 26, ptr nonnull @.str.9) to label %invoke.cont107 unwind label %lpad invoke.cont107: ; preds = %invoke.cont95 %actual_value.sroa.0.0.extract.trunc.i91 = trunc i64 %call108 to i32 - %19 = and i64 %call108, 4294967296 - %tobool.i.i.not4.i92 = icmp ne i64 %19, 0 - %cmp.i93 = icmp sgt i32 %actual_value.sroa.0.0.extract.trunc.i91, 0 - %or.cond.i94.not = and i1 %tobool.i.i.not4.i92, %cmp.i93 - %frombool116 = zext i1 %or.cond.i94.not to i8 + %21 = and i64 %call108, 4294967296 + %tobool.i.i.not4.i92 = icmp ne i64 %21, 0 + %cmp115126 = icmp sgt i32 %actual_value.sroa.0.0.extract.trunc.i91, 0 + %cmp115 = and i1 %tobool.i.i.not4.i92, %cmp115126 + %frombool116 = zext i1 %cmp115 to i8 store i8 %frombool116, ptr %expand_wildcard_addrs.i, align 8 %vtable119 = load ptr, ptr %config, align 8 %vfn120 = getelementptr inbounds nuw i8, ptr %vtable119, i64 16 - %20 = load ptr, ptr %vfn120, align 8 - %call122 = invoke i64 %20(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 17, ptr nonnull @.str.10) + %22 = load ptr, ptr %vfn120, align 8 + %call122 = invoke i64 %22(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 17, ptr nonnull @.str.10) to label %invoke.cont121 unwind label %lpad invoke.cont121: ; preds = %invoke.cont107 %actual_value.sroa.0.0.extract.trunc.i100 = trunc i64 %call122 to i32 - %21 = and i64 %call122, 4294967296 - %tobool.i.i.not4.i101 = icmp ne i64 %21, 0 - %cmp.i102 = icmp sgt i32 %actual_value.sroa.0.0.extract.trunc.i100, 0 - %or.cond.i103.not = and i1 %tobool.i.i.not4.i101, %cmp.i102 - %frombool130 = zext i1 %or.cond.i103.not to i8 + %23 = and i64 %call122, 4294967296 + %tobool.i.i.not4.i101 = icmp ne i64 %23, 0 + %cmp129127 = icmp sgt i32 %actual_value.sroa.0.0.extract.trunc.i100, 0 + %cmp129 = and i1 %tobool.i.i.not4.i101, %cmp129127 + %frombool130 = zext i1 %cmp129 to i8 store i8 %frombool130, ptr %allow_reuse_port.i, align 1 %vtable133 = load ptr, ptr %config, align 8 %vfn134 = getelementptr inbounds nuw i8, ptr %vtable133, i64 16 - %22 = load ptr, ptr %vfn134, align 8 - %call136 = invoke i64 %22(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 9, ptr nonnull @.str.11) + %24 = load ptr, ptr %vfn134, align 8 + %call136 = invoke i64 %24(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 9, ptr nonnull @.str.11) to label %invoke.cont135 unwind label %lpad invoke.cont135: ; preds = %invoke.cont121 %actual_value.sroa.0.0.extract.trunc.i109 = trunc i64 %call136 to i32 - %23 = and i64 %call136, 8589934528 - %or.cond3.i114.not = icmp eq i64 %23, 4294967296 + %25 = and i64 %call136, 8589934528 + %or.cond3.i114.not = icmp eq i64 %25, 4294967296 %retval.0.i115 = select i1 %or.cond3.i114.not, i32 %actual_value.sroa.0.0.extract.trunc.i109, i32 -1 store i32 %retval.0.i115, ptr %dscp.i, align 4 %cmp145 = icmp sgt i32 %retval.0.i25, %retval.0.i34 @@ -243,21 +241,21 @@ if.then: ; preds = %invoke.cont135 br label %if.end lpad: ; preds = %if.then170, %if.end163, %if.end, %invoke.cont121, %invoke.cont107, %invoke.cont95, %invoke.cont83, %invoke.cont71, %invoke.cont59, %invoke.cont47, %invoke.cont35, %invoke.cont23, %invoke.cont11, %invoke.cont, %entry - %24 = landingpad { ptr, i32 } + %26 = landingpad { ptr, i32 } cleanup tail call void @_ZN9grpc_core15PosixTcpOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %agg.result) #11 - resume { ptr, i32 } %24 + resume { ptr, i32 } %26 if.end: ; preds = %if.then, %invoke.cont135 - %25 = phi i32 [ %retval.0.i34, %if.then ], [ %retval.0.i25, %invoke.cont135 ] - %cmp.i116 = icmp slt i32 %retval.0.i, %25 + %27 = phi i32 [ %retval.0.i34, %if.then ], [ %retval.0.i25, %invoke.cont135 ] + %cmp.i116 = icmp slt i32 %retval.0.i, %27 %max.val.i = tail call i32 @llvm.smin.i32(i32 %retval.0.i34, i32 %retval.0.i) - %retval.0.i117 = select i1 %cmp.i116, i32 %25, i32 %max.val.i + %retval.0.i117 = select i1 %cmp.i116, i32 %27, i32 %max.val.i store i32 %retval.0.i117, ptr %agg.result, align 8 %vtable155 = load ptr, ptr %config, align 8 %vfn156 = getelementptr inbounds nuw i8, ptr %vtable155, i64 32 - %26 = load ptr, ptr %vfn156, align 8 - %call158 = invoke noundef ptr %26(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 19, ptr nonnull @.str.12) + %28 = load ptr, ptr %vfn156, align 8 + %call158 = invoke noundef ptr %28(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 19, ptr nonnull @.str.12) to label %invoke.cont157 unwind label %lpad invoke.cont157: ; preds = %if.end @@ -266,15 +264,15 @@ invoke.cont157: ; preds = %if.end invoke.cont161: ; preds = %invoke.cont157 %refs_.i.i = getelementptr inbounds nuw i8, ptr %call158, i64 8 - %27 = atomicrmw add ptr %refs_.i.i, i64 1 monotonic, align 8, !noalias !4 + %29 = atomicrmw add ptr %refs_.i.i, i64 1 monotonic, align 8, !noalias !4 store ptr %call158, ptr %resource_quota.i, align 8 br label %if.end163 if.end163: ; preds = %invoke.cont161, %invoke.cont157 %vtable165 = load ptr, ptr %config, align 8 %vfn166 = getelementptr inbounds nuw i8, ptr %vtable165, i64 32 - %28 = load ptr, ptr %vfn166, align 8 - %call168 = invoke noundef ptr %28(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 19, ptr nonnull @.str.13) + %30 = load ptr, ptr %vfn166, align 8 + %call168 = invoke noundef ptr %30(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 19, ptr nonnull @.str.13) to label %invoke.cont167 unwind label %lpad invoke.cont167: ; preds = %if.end163 @@ -384,6 +382,9 @@ entry: ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.smin.i32(i32, i32) #10 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i32 @llvm.smax.i32(i32, i32) #10 + attributes #0 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { nofree nounwind } diff --git a/bench/grpc/optimized/tcp_socket_utils.cc.ll b/bench/grpc/optimized/tcp_socket_utils.cc.ll index 43049a8aad2..896d2675f8e 100644 --- a/bench/grpc/optimized/tcp_socket_utils.cc.ll +++ b/bench/grpc/optimized/tcp_socket_utils.cc.ll @@ -263,59 +263,57 @@ invoke.cont83: ; preds = %invoke.cont71 %actual_value.sroa.0.0.extract.trunc.i77 = trunc i64 %call84 to i32 %15 = and i64 %call84, 4294967296 %tobool.i.i.not4.i78 = icmp eq i64 %15, 0 - %cmp.i79 = icmp slt i32 %actual_value.sroa.0.0.extract.trunc.i77, 1 - %or.cond.i80 = or i1 %tobool.i.i.not4.i78, %cmp.i79 - %retval.0.i83 = select i1 %or.cond.i80, i32 0, i32 %actual_value.sroa.0.0.extract.trunc.i77 + %16 = tail call i32 @llvm.smax.i32(i32 %actual_value.sroa.0.0.extract.trunc.i77, i32 0) + %retval.0.i83 = select i1 %tobool.i.i.not4.i78, i32 0, i32 %16 store i32 %retval.0.i83, ptr %keep_alive_time_ms.i, align 4 %vtable93 = load ptr, ptr %config, align 8 %vfn94 = getelementptr inbounds nuw i8, ptr %vtable93, i64 16 - %16 = load ptr, ptr %vfn94, align 8 - %call96 = invoke i64 %16(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 25, ptr nonnull @.str.8) + %17 = load ptr, ptr %vfn94, align 8 + %call96 = invoke i64 %17(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 25, ptr nonnull @.str.8) to label %invoke.cont95 unwind label %lpad invoke.cont95: ; preds = %invoke.cont83 %actual_value.sroa.0.0.extract.trunc.i86 = trunc i64 %call96 to i32 - %17 = and i64 %call96, 4294967296 - %tobool.i.i.not4.i87 = icmp eq i64 %17, 0 - %cmp.i88 = icmp slt i32 %actual_value.sroa.0.0.extract.trunc.i86, 1 - %or.cond.i89 = or i1 %tobool.i.i.not4.i87, %cmp.i88 - %retval.0.i92 = select i1 %or.cond.i89, i32 0, i32 %actual_value.sroa.0.0.extract.trunc.i86 + %18 = and i64 %call96, 4294967296 + %tobool.i.i.not4.i87 = icmp eq i64 %18, 0 + %19 = tail call i32 @llvm.smax.i32(i32 %actual_value.sroa.0.0.extract.trunc.i86, i32 0) + %retval.0.i92 = select i1 %tobool.i.i.not4.i87, i32 0, i32 %19 %keep_alive_timeout_ms = getelementptr inbounds nuw i8, ptr %agg.result, i64 32 store i32 %retval.0.i92, ptr %keep_alive_timeout_ms, align 8 %vtable105 = load ptr, ptr %config, align 8 %vfn106 = getelementptr inbounds nuw i8, ptr %vtable105, i64 16 - %18 = load ptr, ptr %vfn106, align 8 - %call108 = invoke i64 %18(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 26, ptr nonnull @.str.9) + %20 = load ptr, ptr %vfn106, align 8 + %call108 = invoke i64 %20(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 26, ptr nonnull @.str.9) to label %invoke.cont107 unwind label %lpad invoke.cont107: ; preds = %invoke.cont95 %actual_value.sroa.0.0.extract.trunc.i95 = trunc i64 %call108 to i32 - %19 = and i64 %call108, 4294967296 - %tobool.i.i.not4.i96 = icmp ne i64 %19, 0 - %cmp.i97 = icmp sgt i32 %actual_value.sroa.0.0.extract.trunc.i95, 0 - %or.cond.i98.not = and i1 %tobool.i.i.not4.i96, %cmp.i97 + %21 = and i64 %call108, 4294967296 + %tobool.i.i.not4.i96 = icmp ne i64 %21, 0 + %cmp115135 = icmp sgt i32 %actual_value.sroa.0.0.extract.trunc.i95, 0 + %cmp115 = and i1 %tobool.i.i.not4.i96, %cmp115135 %expand_wildcard_addrs = getelementptr inbounds nuw i8, ptr %agg.result, i64 36 - %frombool116 = zext i1 %or.cond.i98.not to i8 + %frombool116 = zext i1 %cmp115 to i8 store i8 %frombool116, ptr %expand_wildcard_addrs, align 4 %vtable119 = load ptr, ptr %config, align 8 %vfn120 = getelementptr inbounds nuw i8, ptr %vtable119, i64 16 - %20 = load ptr, ptr %vfn120, align 8 - %call122 = invoke i64 %20(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 9, ptr nonnull @.str.10) + %22 = load ptr, ptr %vfn120, align 8 + %call122 = invoke i64 %22(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 9, ptr nonnull @.str.10) to label %invoke.cont121 unwind label %lpad invoke.cont121: ; preds = %invoke.cont107 %actual_value.sroa.0.0.extract.trunc.i104 = trunc i64 %call122 to i32 - %21 = and i64 %call122, 8589934528 - %or.cond3.i109.not = icmp eq i64 %21, 4294967296 + %23 = and i64 %call122, 8589934528 + %or.cond3.i109.not = icmp eq i64 %23, 4294967296 %retval.0.i110 = select i1 %or.cond3.i109.not, i32 %actual_value.sroa.0.0.extract.trunc.i104, i32 -1 store i32 %retval.0.i110, ptr %dscp.i, align 8 - %22 = load atomic i8, ptr @_ZGVZN17grpc_event_engine12experimental18PosixSocketWrapper26IsSocketReusePortSupportedEvE19kSupportSoReusePort acquire, align 8 - %guard.uninitialized.i = icmp eq i8 %22, 0 + %24 = load atomic i8, ptr @_ZGVZN17grpc_event_engine12experimental18PosixSocketWrapper26IsSocketReusePortSupportedEvE19kSupportSoReusePort acquire, align 8 + %guard.uninitialized.i = icmp eq i8 %24, 0 br i1 %guard.uninitialized.i, label %init.check.i, label %invoke.cont129, !prof !4 init.check.i: ; preds = %invoke.cont121 - %23 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN17grpc_event_engine12experimental18PosixSocketWrapper26IsSocketReusePortSupportedEvE19kSupportSoReusePort) #19 - %tobool.not.i = icmp eq i32 %23, 0 + %25 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN17grpc_event_engine12experimental18PosixSocketWrapper26IsSocketReusePortSupportedEvE19kSupportSoReusePort) #19 + %tobool.not.i = icmp eq i32 %25, 0 br i1 %tobool.not.i, label %invoke.cont129, label %init.i init.i: ; preds = %init.check.i @@ -329,75 +327,75 @@ invoke.cont.i: ; preds = %init.i br label %invoke.cont129 lpad.i: ; preds = %init.i - %24 = landingpad { ptr, i32 } + %26 = landingpad { ptr, i32 } cleanup tail call void @__cxa_guard_abort(ptr nonnull @_ZGVZN17grpc_event_engine12experimental18PosixSocketWrapper26IsSocketReusePortSupportedEvE19kSupportSoReusePort) #19 br label %lpad.body invoke.cont129: ; preds = %invoke.cont.i, %init.check.i, %invoke.cont121 - %25 = load i8, ptr @_ZZN17grpc_event_engine12experimental18PosixSocketWrapper26IsSocketReusePortSupportedEvE19kSupportSoReusePort, align 1 + %27 = load i8, ptr @_ZZN17grpc_event_engine12experimental18PosixSocketWrapper26IsSocketReusePortSupportedEvE19kSupportSoReusePort, align 1 %allow_reuse_port = getelementptr inbounds nuw i8, ptr %agg.result, i64 37 - %frombool131 = and i8 %25, 1 + %frombool131 = and i8 %27, 1 store i8 %frombool131, ptr %allow_reuse_port, align 1 %vtable133 = load ptr, ptr %config, align 8 %vfn134 = getelementptr inbounds nuw i8, ptr %vtable133, i64 16 - %26 = load ptr, ptr %vfn134, align 8 - %call136 = invoke i64 %26(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 17, ptr nonnull @.str.11) + %28 = load ptr, ptr %vfn134, align 8 + %call136 = invoke i64 %28(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 17, ptr nonnull @.str.11) to label %invoke.cont135 unwind label %lpad invoke.cont135: ; preds = %invoke.cont129 - %27 = and i64 %call136, 4294967296 - %tobool.i.i.not = icmp eq i64 %27, 0 + %29 = and i64 %call136, 4294967296 + %tobool.i.i.not = icmp eq i64 %29, 0 br i1 %tobool.i.i.not, label %if.end, label %if.then if.then: ; preds = %invoke.cont135 %vtable142 = load ptr, ptr %config, align 8 %vfn143 = getelementptr inbounds nuw i8, ptr %vtable142, i64 16 - %28 = load ptr, ptr %vfn143, align 8 - %call145 = invoke i64 %28(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 17, ptr nonnull @.str.11) + %30 = load ptr, ptr %vfn143, align 8 + %call145 = invoke i64 %30(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 17, ptr nonnull @.str.11) to label %invoke.cont144 unwind label %lpad invoke.cont144: ; preds = %if.then %actual_value.sroa.0.0.extract.trunc.i115 = trunc i64 %call145 to i32 - %29 = and i64 %call145, 4294967296 - %tobool.i.i.not4.i116 = icmp ne i64 %29, 0 - %cmp.i117 = icmp sgt i32 %actual_value.sroa.0.0.extract.trunc.i115, 0 - %or.cond.i118.not = and i1 %tobool.i.i.not4.i116, %cmp.i117 - %frombool154 = zext i1 %or.cond.i118.not to i8 + %31 = and i64 %call145, 4294967296 + %tobool.i.i.not4.i116 = icmp ne i64 %31, 0 + %cmp152136 = icmp sgt i32 %actual_value.sroa.0.0.extract.trunc.i115, 0 + %cmp152 = and i1 %tobool.i.i.not4.i116, %cmp152136 + %frombool154 = zext i1 %cmp152 to i8 store i8 %frombool154, ptr %allow_reuse_port, align 1 br label %if.end lpad: ; preds = %if.end187, %if.then184, %if.end177, %if.end161, %if.then, %invoke.cont129, %invoke.cont107, %invoke.cont95, %invoke.cont83, %invoke.cont71, %invoke.cont59, %invoke.cont47, %invoke.cont35, %invoke.cont23, %invoke.cont11, %invoke.cont, %entry - %30 = landingpad { ptr, i32 } + %32 = landingpad { ptr, i32 } cleanup br label %lpad.body lpad.body: ; preds = %lpad.i, %lpad - %eh.lpad-body = phi { ptr, i32 } [ %30, %lpad ], [ %24, %lpad.i ] + %eh.lpad-body = phi { ptr, i32 } [ %32, %lpad ], [ %26, %lpad.i ] tail call void @_ZN17grpc_event_engine12experimental15PosixTcpOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %agg.result) #19 resume { ptr, i32 } %eh.lpad-body if.end: ; preds = %invoke.cont144, %invoke.cont135 - %31 = load i32, ptr %tcp_min_read_chunk_size.i, align 4 - %32 = load i32, ptr %tcp_max_read_chunk_size.i, align 8 - %cmp157 = icmp sgt i32 %31, %32 + %33 = load i32, ptr %tcp_min_read_chunk_size.i, align 4 + %34 = load i32, ptr %tcp_max_read_chunk_size.i, align 8 + %cmp157 = icmp sgt i32 %33, %34 br i1 %cmp157, label %if.then158, label %if.end161 if.then158: ; preds = %if.end - store i32 %32, ptr %tcp_min_read_chunk_size.i, align 4 + store i32 %34, ptr %tcp_min_read_chunk_size.i, align 4 br label %if.end161 if.end161: ; preds = %if.then158, %if.end - %33 = phi i32 [ %32, %if.then158 ], [ %31, %if.end ] - %34 = load i32, ptr %agg.result, align 8 - %cmp.i122 = icmp slt i32 %34, %33 - %max.val.i = tail call i32 @llvm.smin.i32(i32 %32, i32 %34) - %retval.0.i123 = select i1 %cmp.i122, i32 %33, i32 %max.val.i + %35 = phi i32 [ %34, %if.then158 ], [ %33, %if.end ] + %36 = load i32, ptr %agg.result, align 8 + %cmp.i122 = icmp slt i32 %36, %35 + %max.val.i = tail call i32 @llvm.smin.i32(i32 %34, i32 %36) + %retval.0.i123 = select i1 %cmp.i122, i32 %35, i32 %max.val.i store i32 %retval.0.i123, ptr %agg.result, align 8 %vtable169 = load ptr, ptr %config, align 8 %vfn170 = getelementptr inbounds nuw i8, ptr %vtable169, i64 32 - %35 = load ptr, ptr %vfn170, align 8 - %call172 = invoke noundef ptr %35(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 19, ptr nonnull @.str.12) + %37 = load ptr, ptr %vfn170, align 8 + %call172 = invoke noundef ptr %37(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 19, ptr nonnull @.str.12) to label %invoke.cont171 unwind label %lpad invoke.cont171: ; preds = %if.end161 @@ -406,30 +404,30 @@ invoke.cont171: ; preds = %if.end161 invoke.cont175: ; preds = %invoke.cont171 %refs_.i.i = getelementptr inbounds nuw i8, ptr %call172, i64 8 - %36 = atomicrmw add ptr %refs_.i.i, i64 1 monotonic, align 8, !noalias !5 - %37 = load ptr, ptr %resource_quota.i, align 8 + %38 = atomicrmw add ptr %refs_.i.i, i64 1 monotonic, align 8, !noalias !5 + %39 = load ptr, ptr %resource_quota.i, align 8 store ptr %call172, ptr %resource_quota.i, align 8 - %cmp.not.i.i = icmp eq ptr %37, null + %cmp.not.i.i = icmp eq ptr %39, null br i1 %cmp.not.i.i, label %if.end177, label %if.then.i.i if.then.i.i: ; preds = %invoke.cont175 - %refs_.i.i.i = getelementptr inbounds nuw i8, ptr %37, i64 8 - %38 = atomicrmw sub ptr %refs_.i.i.i, i64 1 acq_rel, align 8 - %cmp.i.i.i.i = icmp eq i64 %38, 1 + %refs_.i.i.i = getelementptr inbounds nuw i8, ptr %39, i64 8 + %40 = atomicrmw sub ptr %refs_.i.i.i, i64 1 acq_rel, align 8 + %cmp.i.i.i.i = icmp eq i64 %40, 1 br i1 %cmp.i.i.i.i, label %if.then.i.i.i, label %if.end177 if.then.i.i.i: ; preds = %if.then.i.i - %vtable.i.i.i.i = load ptr, ptr %37, align 8 + %vtable.i.i.i.i = load ptr, ptr %39, align 8 %vfn.i.i.i.i = getelementptr inbounds nuw i8, ptr %vtable.i.i.i.i, i64 8 - %39 = load ptr, ptr %vfn.i.i.i.i, align 8 - tail call void %39(ptr noundef nonnull align 8 dereferenceable(40) %37) #19 + %41 = load ptr, ptr %vfn.i.i.i.i, align 8 + tail call void %41(ptr noundef nonnull align 8 dereferenceable(40) %39) #19 br label %if.end177 if.end177: ; preds = %invoke.cont175, %if.then.i.i, %if.then.i.i.i, %invoke.cont171 %vtable179 = load ptr, ptr %config, align 8 %vfn180 = getelementptr inbounds nuw i8, ptr %vtable179, i64 32 - %40 = load ptr, ptr %vfn180, align 8 - %call182 = invoke noundef ptr %40(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 19, ptr nonnull @.str.13) + %42 = load ptr, ptr %vfn180, align 8 + %call182 = invoke noundef ptr %42(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 19, ptr nonnull @.str.13) to label %invoke.cont181 unwind label %lpad invoke.cont181: ; preds = %if.end177 @@ -448,8 +446,8 @@ invoke.cont185: ; preds = %if.then184 if.end187: ; preds = %invoke.cont185, %invoke.cont181 %vtable189 = load ptr, ptr %config, align 8 %vfn190 = getelementptr inbounds nuw i8, ptr %vtable189, i64 32 - %41 = load ptr, ptr %vfn190, align 8 - %call192 = invoke noundef ptr %41(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 46, ptr nonnull @.str.14) + %43 = load ptr, ptr %vfn190, align 8 + %call192 = invoke noundef ptr %43(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 46, ptr nonnull @.str.14) to label %invoke.cont191 unwind label %lpad invoke.cont191: ; preds = %if.end187 @@ -3659,6 +3657,9 @@ declare void @llvm.experimental.noalias.scope.decl(metadata) #16 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.smin.i32(i32, i32) #17 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i32 @llvm.smax.i32(i32, i32) #17 + ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #18 diff --git a/bench/hermes/optimized/dtoa.c.ll b/bench/hermes/optimized/dtoa.c.ll index 9f46fc4e381..5b47d821a2b 100644 --- a/bench/hermes/optimized/dtoa.c.ll +++ b/bench/hermes/optimized/dtoa.c.ll @@ -151,42 +151,42 @@ while.cond.i: ; preds = %break2.i, %while.co if.end15.i: ; preds = %while.cond.i, %break2.i %4 = phi i8 [ %2, %break2.i ], [ %3, %while.cond.i ] %s.2.i = phi ptr [ %s.1.i, %break2.i ], [ %incdec.ptr8.i, %while.cond.i ] - %s.2959.i = ptrtoint ptr %s.2.i to i64 - %conv17800.i = sext i8 %4 to i32 + %s.2960.i = ptrtoint ptr %s.2.i to i64 + %conv17801.i = sext i8 %4 to i32 %5 = add i8 %4, -48 %6 = icmp ult i8 %5, 10 br i1 %6, label %for.body.i, label %for.end47.thread.i for.body.i: ; preds = %if.end15.i, %for.inc33.i - %conv17805.i = phi i32 [ %conv17.i, %for.inc33.i ], [ %conv17800.i, %if.end15.i ] - %z.0804.i = phi i32 [ %z.1.i, %for.inc33.i ], [ 0, %if.end15.i ] - %y.0803.i = phi i32 [ %y.1.i, %for.inc33.i ], [ 0, %if.end15.i ] - %s.5802.i = phi ptr [ %incdec.ptr34.i, %for.inc33.i ], [ %s.2.i, %if.end15.i ] - %nd.0801.i = phi i32 [ %inc.i, %for.inc33.i ], [ 0, %if.end15.i ] - %cmp22.i = icmp samesign ult i32 %nd.0801.i, 9 + %conv17806.i = phi i32 [ %conv17.i, %for.inc33.i ], [ %conv17801.i, %if.end15.i ] + %z.0805.i = phi i32 [ %z.1.i, %for.inc33.i ], [ 0, %if.end15.i ] + %y.0804.i = phi i32 [ %y.1.i, %for.inc33.i ], [ 0, %if.end15.i ] + %s.5803.i = phi ptr [ %incdec.ptr34.i, %for.inc33.i ], [ %s.2.i, %if.end15.i ] + %nd.0802.i = phi i32 [ %inc.i, %for.inc33.i ], [ 0, %if.end15.i ] + %cmp22.i = icmp samesign ult i32 %nd.0802.i, 9 br i1 %cmp22.i, label %if.then24.i, label %if.else.i if.then24.i: ; preds = %for.body.i - %mul.i = mul i32 %y.0803.i, 10 - %add.i = add nsw i32 %conv17805.i, -48 + %mul.i = mul i32 %y.0804.i, 10 + %add.i = add nsw i32 %conv17806.i, -48 %sub.i = add i32 %add.i, %mul.i br label %for.inc33.i if.else.i: ; preds = %for.body.i - %cmp25.i = icmp samesign ult i32 %nd.0801.i, 17 + %cmp25.i = icmp samesign ult i32 %nd.0802.i, 17 br i1 %cmp25.i, label %if.then27.i, label %for.inc33.i if.then27.i: ; preds = %if.else.i - %mul28.i = mul i32 %z.0804.i, 10 - %add29.i = add nsw i32 %conv17805.i, -48 + %mul28.i = mul i32 %z.0805.i, 10 + %add29.i = add nsw i32 %conv17806.i, -48 %sub30.i = add i32 %add29.i, %mul28.i br label %for.inc33.i for.inc33.i: ; preds = %if.then27.i, %if.else.i, %if.then24.i - %y.1.i = phi i32 [ %sub.i, %if.then24.i ], [ %y.0803.i, %if.then27.i ], [ %y.0803.i, %if.else.i ] - %z.1.i = phi i32 [ %z.0804.i, %if.then24.i ], [ %sub30.i, %if.then27.i ], [ %z.0804.i, %if.else.i ] - %inc.i = add nuw nsw i32 %nd.0801.i, 1 - %incdec.ptr34.i = getelementptr inbounds nuw i8, ptr %s.5802.i, i64 1 + %y.1.i = phi i32 [ %sub.i, %if.then24.i ], [ %y.0804.i, %if.then27.i ], [ %y.0804.i, %if.else.i ] + %z.1.i = phi i32 [ %z.0805.i, %if.then24.i ], [ %sub30.i, %if.then27.i ], [ %z.0805.i, %if.else.i ] + %inc.i = add nuw nsw i32 %nd.0802.i, 1 + %incdec.ptr34.i = getelementptr inbounds nuw i8, ptr %s.5803.i, i64 1 %7 = load i8, ptr %incdec.ptr34.i, align 1 %conv17.i = sext i8 %7 to i32 %8 = add i8 %7, -48 @@ -194,59 +194,59 @@ for.inc33.i: ; preds = %if.then27.i, %if.el br i1 %9, label %for.body.i, label %for.end.i, !llvm.loop !7 for.end.i: ; preds = %for.inc33.i - %.pre978.i = ptrtoint ptr %incdec.ptr34.i to i64 - %sub.ptr.sub.i = sub i64 %.pre978.i, %s.2959.i + %.pre979.i = ptrtoint ptr %incdec.ptr34.i to i64 + %sub.ptr.sub.i = sub i64 %.pre979.i, %s.2960.i %conv35.i = trunc i64 %sub.ptr.sub.i to i32 - %cmp37811.i = icmp ugt ptr %incdec.ptr34.i, %s.2.i - br i1 %cmp37811.i, label %land.rhs39.preheader.i, label %for.end47.i + %cmp37812.i = icmp ugt ptr %incdec.ptr34.i, %s.2.i + br i1 %cmp37812.i, label %land.rhs39.preheader.i, label %for.end47.i land.rhs39.preheader.i: ; preds = %for.end.i - %10 = trunc i64 %.pre978.i to i32 - %11 = trunc i64 %s.2959.i to i32 + %10 = trunc i64 %.pre979.i to i32 + %11 = trunc i64 %s.2960.i to i32 %12 = sub i32 %10, %11 br label %land.rhs39.i land.rhs39.i: ; preds = %for.body45.i, %land.rhs39.preheader.i - %s1.0813.i = phi ptr [ %incdec.ptr40.i, %for.body45.i ], [ %incdec.ptr34.i, %land.rhs39.preheader.i ] - %nz1.0812.i = phi i32 [ %inc46.i, %for.body45.i ], [ 0, %land.rhs39.preheader.i ] - %incdec.ptr40.i = getelementptr inbounds i8, ptr %s1.0813.i, i64 -1 + %s1.0814.i = phi ptr [ %incdec.ptr40.i, %for.body45.i ], [ %incdec.ptr34.i, %land.rhs39.preheader.i ] + %nz1.0813.i = phi i32 [ %inc46.i, %for.body45.i ], [ 0, %land.rhs39.preheader.i ] + %incdec.ptr40.i = getelementptr inbounds i8, ptr %s1.0814.i, i64 -1 %13 = load i8, ptr %incdec.ptr40.i, align 1 %cmp42.i = icmp eq i8 %13, 48 br i1 %cmp42.i, label %for.body45.i, label %for.end47.i for.body45.i: ; preds = %land.rhs39.i - %inc46.i = add nuw nsw i32 %nz1.0812.i, 1 + %inc46.i = add nuw nsw i32 %nz1.0813.i, 1 %cmp37.i = icmp ugt ptr %incdec.ptr40.i, %s.2.i br i1 %cmp37.i, label %land.rhs39.i, label %for.end47.i, !llvm.loop !8 for.end47.i: ; preds = %for.body45.i, %land.rhs39.i, %for.end.i - %nz1.0.lcssa.i = phi i32 [ 0, %for.end.i ], [ %nz1.0812.i, %land.rhs39.i ], [ %12, %for.body45.i ] + %nz1.0.lcssa.i = phi i32 [ 0, %for.end.i ], [ %nz1.0813.i, %land.rhs39.i ], [ %12, %for.body45.i ] %cmp48.i = icmp eq i8 %7, 46 br i1 %cmp48.i, label %if.then50.i, label %dig_done.i for.end47.thread.i: ; preds = %if.end15.i - %cmp481006.i = icmp eq i8 %4, 46 - br i1 %cmp481006.i, label %for.cond64.preheader.i, label %dig_done.i + %cmp481007.i = icmp eq i8 %4, 46 + br i1 %cmp481007.i, label %for.cond64.preheader.i, label %dig_done.i if.then50.i: ; preds = %for.end47.i - %incdec.ptr51.i = getelementptr inbounds nuw i8, ptr %s.5802.i, i64 2 + %incdec.ptr51.i = getelementptr inbounds nuw i8, ptr %s.5803.i, i64 2 %sub.ptr.lhs.cast53.i = ptrtoint ptr %incdec.ptr51.i to i64 - %sub.ptr.sub55.i = sub i64 %sub.ptr.lhs.cast53.i, %s.2959.i + %sub.ptr.sub55.i = sub i64 %sub.ptr.lhs.cast53.i, %s.2960.i %conv56.i = trunc i64 %sub.ptr.sub55.i to i32 %sub60.i = sub nsw i32 %conv56.i, %conv35.i br label %for.cond90.i for.cond64.preheader.i: ; preds = %for.end47.thread.i - %incdec.ptr511020.i = getelementptr inbounds nuw i8, ptr %s.2.i, i64 1 - %14 = load i8, ptr %incdec.ptr511020.i, align 1 - %cmp65816.i = icmp eq i8 %14, 48 - br i1 %cmp65816.i, label %for.body67.i, label %for.end72.i + %incdec.ptr511021.i = getelementptr inbounds nuw i8, ptr %s.2.i, i64 1 + %14 = load i8, ptr %incdec.ptr511021.i, align 1 + %cmp65817.i = icmp eq i8 %14, 48 + br i1 %cmp65817.i, label %for.body67.i, label %for.end72.i for.body67.i: ; preds = %for.cond64.preheader.i, %for.body67.i - %s.6818.i = phi ptr [ %incdec.ptr70.i, %for.body67.i ], [ %incdec.ptr511020.i, %for.cond64.preheader.i ] - %nz.0817.i = phi i32 [ %inc68.i, %for.body67.i ], [ 0, %for.cond64.preheader.i ] - %inc68.i = add nuw nsw i32 %nz.0817.i, 1 - %incdec.ptr70.i = getelementptr inbounds nuw i8, ptr %s.6818.i, i64 1 + %s.6819.i = phi ptr [ %incdec.ptr70.i, %for.body67.i ], [ %incdec.ptr511021.i, %for.cond64.preheader.i ] + %nz.0818.i = phi i32 [ %inc68.i, %for.body67.i ], [ 0, %for.cond64.preheader.i ] + %inc68.i = add nuw nsw i32 %nz.0818.i, 1 + %incdec.ptr70.i = getelementptr inbounds nuw i8, ptr %s.6819.i, i64 1 %15 = load i8, ptr %incdec.ptr70.i, align 1 %cmp65.i = icmp eq i8 %15, 48 br i1 %cmp65.i, label %for.body67.i, label %for.end72.i, !llvm.loop !9 @@ -254,15 +254,15 @@ for.body67.i: ; preds = %for.cond64.preheade for.end72.i: ; preds = %for.body67.i, %for.cond64.preheader.i %c.0.lcssa.in.i = phi i8 [ %14, %for.cond64.preheader.i ], [ %15, %for.body67.i ] %nz.0.lcssa.i = phi i32 [ 0, %for.cond64.preheader.i ], [ %inc68.i, %for.body67.i ] - %s.6.lcssa.i = phi ptr [ %incdec.ptr511020.i, %for.cond64.preheader.i ], [ %incdec.ptr70.i, %for.body67.i ] + %s.6.lcssa.i = phi ptr [ %incdec.ptr511021.i, %for.cond64.preheader.i ], [ %incdec.ptr70.i, %for.body67.i ] %c.0.lcssa.i = sext i8 %c.0.lcssa.in.i to i32 %16 = add nsw i32 %c.0.lcssa.i, -49 %or.cond.i = icmp ult i32 %16, 9 br i1 %or.cond.i, label %for.end121.i.thread, label %dig_done.i for.cond90.i: ; preds = %for.inc137.i, %if.then50.i - %sub601039.i = phi i32 [ %sub601038.i28, %for.inc137.i ], [ %sub60.i, %if.then50.i ] - %nd.0.lcssa99110111029.i = phi i32 [ %nd.0.lcssa99110111028.i30, %for.inc137.i ], [ %inc.i, %if.then50.i ] + %sub601040.i = phi i32 [ %sub601039.i28, %for.inc137.i ], [ %sub60.i, %if.then50.i ] + %nd.0.lcssa99210121030.i = phi i32 [ %nd.0.lcssa99210121029.i30, %for.inc137.i ], [ %inc.i, %if.then50.i ] %bc.sroa.4.2.i = phi i32 [ %bc.sroa.4.0.i32, %for.inc137.i ], [ %conv56.i, %if.then50.i ] %bc.sroa.0.2.i = phi i32 [ %bc.sroa.0.0.i34, %for.inc137.i ], [ %conv35.i, %if.then50.i ] %nd.3.i = phi i32 [ %nd.5.i, %for.inc137.i ], [ %inc.i, %if.then50.i ] @@ -286,7 +286,7 @@ have_dig.i: ; preds = %for.cond90.i for.end121.i.thread: ; preds = %for.end72.i %sub.ptr.rhs.cast79.i = ptrtoint ptr %s.6.lcssa.i to i64 - %sub.ptr.sub80.i = sub i64 %s.2959.i, %sub.ptr.rhs.cast79.i + %sub.ptr.sub80.i = sub i64 %s.2960.i, %sub.ptr.rhs.cast79.i %conv81.i = trunc i64 %sub.ptr.sub80.i to i32 %add85.i = add nsw i32 %conv81.i, 1 %sub99.i25 = add nsw i32 %c.0.lcssa.i, -48 @@ -295,24 +295,24 @@ for.end121.i.thread: ; preds = %for.end72.i if.then101.i: ; preds = %have_dig.i %add102.i = add nsw i32 %inc98.i, %nf.2.i - %cmp104.not822.i = icmp slt i32 %nz.3.i, 1 - br i1 %cmp104.not822.i, label %for.end121.i, label %for.body106.i + %cmp104.not823.i = icmp slt i32 %nz.3.i, 1 + br i1 %cmp104.not823.i, label %for.end121.i, label %for.body106.i for.body106.i: ; preds = %if.then101.i, %for.body106.i - %z.5826.i = phi i32 [ %z.6.i, %for.body106.i ], [ %z.4.i, %if.then101.i ] - %y.5825.i = phi i32 [ %y.6.i, %for.body106.i ], [ %y.4.i, %if.then101.i ] - %nd.4824.i = phi i32 [ %inc107.i, %for.body106.i ], [ %nd.3.i, %if.then101.i ] - %i.0823.i = phi i32 [ %inc120.i, %for.body106.i ], [ 1, %if.then101.i ] - %inc107.i = add nsw i32 %nd.4824.i, 1 - %cmp108.i = icmp slt i32 %nd.4824.i, 9 - %mul111.i = mul i32 %y.5825.i, 10 - %cmp113.i = icmp slt i32 %nd.4824.i, 17 - %mul116.i = mul i32 %z.5826.i, 10 - %spec.select.i = select i1 %cmp113.i, i32 %mul116.i, i32 %z.5826.i - %y.6.i = select i1 %cmp108.i, i32 %mul111.i, i32 %y.5825.i - %z.6.i = select i1 %cmp108.i, i32 %z.5826.i, i32 %spec.select.i - %inc120.i = add nuw i32 %i.0823.i, 1 - %exitcond.not.i = icmp eq i32 %i.0823.i, %nz.3.i + %z.5827.i = phi i32 [ %z.6.i, %for.body106.i ], [ %z.4.i, %if.then101.i ] + %y.5826.i = phi i32 [ %y.6.i, %for.body106.i ], [ %y.4.i, %if.then101.i ] + %nd.4825.i = phi i32 [ %inc107.i, %for.body106.i ], [ %nd.3.i, %if.then101.i ] + %i.0824.i = phi i32 [ %inc120.i, %for.body106.i ], [ 1, %if.then101.i ] + %inc107.i = add nsw i32 %nd.4825.i, 1 + %cmp108.i = icmp slt i32 %nd.4825.i, 9 + %mul111.i = mul i32 %y.5826.i, 10 + %cmp113.i = icmp slt i32 %nd.4825.i, 17 + %mul116.i = mul i32 %z.5827.i, 10 + %spec.select.i = select i1 %cmp113.i, i32 %mul116.i, i32 %z.5827.i + %y.6.i = select i1 %cmp108.i, i32 %mul111.i, i32 %y.5826.i + %z.6.i = select i1 %cmp108.i, i32 %z.5827.i, i32 %spec.select.i + %inc120.i = add nuw i32 %i.0824.i, 1 + %exitcond.not.i = icmp eq i32 %i.0824.i, %nz.3.i br i1 %exitcond.not.i, label %for.end121.loopexit.i, label %for.body106.i, !llvm.loop !10 for.end121.loopexit.i: ; preds = %for.body106.i @@ -336,8 +336,8 @@ if.then125.i: ; preds = %for.end121.i.thread %s.7.i386387 = phi ptr [ %s.6.lcssa.i, %for.end121.i.thread ], [ %s.9.i, %for.end121.i ] %bc.sroa.0.0.i336486 = phi i32 [ %conv81.i, %for.end121.i.thread ], [ %bc.sroa.0.2.i, %for.end121.i ] %bc.sroa.4.0.i316585 = phi i32 [ %add85.i, %for.end121.i.thread ], [ %bc.sroa.4.2.i, %for.end121.i ] - %nd.0.lcssa99110111028.i296684 = phi i32 [ 0, %for.end121.i.thread ], [ %nd.0.lcssa99110111029.i, %for.end121.i ] - %sub601038.i276783 = phi i32 [ 1, %for.end121.i.thread ], [ %sub601039.i, %for.end121.i ] + %nd.0.lcssa99210121029.i296684 = phi i32 [ 0, %for.end121.i.thread ], [ %nd.0.lcssa99210121030.i, %for.end121.i ] + %sub601039.i276783 = phi i32 [ 1, %for.end121.i.thread ], [ %sub601040.i, %for.end121.i ] %add102.i6882 = phi i32 [ %add102.i59, %for.end121.i.thread ], [ %add102.i, %for.end121.i ] %mul126.i = mul i32 %y.5.lcssa.i90, 10 %add127.i = add i32 %mul126.i, %sub99.i456189 @@ -357,8 +357,8 @@ for.inc137.i: ; preds = %if.then131.i, %if.e %s.7.i39 = phi ptr [ %s.9.i, %have_dig.i ], [ %s.9.i, %if.else128.i ], [ %s.9.i, %if.then131.i ], [ %s.7.i386387, %if.then125.i ] %bc.sroa.0.0.i34 = phi i32 [ %bc.sroa.0.2.i, %have_dig.i ], [ %bc.sroa.0.2.i, %if.else128.i ], [ %bc.sroa.0.2.i, %if.then131.i ], [ %bc.sroa.0.0.i336486, %if.then125.i ] %bc.sroa.4.0.i32 = phi i32 [ %bc.sroa.4.2.i, %have_dig.i ], [ %bc.sroa.4.2.i, %if.else128.i ], [ %bc.sroa.4.2.i, %if.then131.i ], [ %bc.sroa.4.0.i316585, %if.then125.i ] - %nd.0.lcssa99110111028.i30 = phi i32 [ %nd.0.lcssa99110111029.i, %have_dig.i ], [ %nd.0.lcssa99110111029.i, %if.else128.i ], [ %nd.0.lcssa99110111029.i, %if.then131.i ], [ %nd.0.lcssa99110111028.i296684, %if.then125.i ] - %sub601038.i28 = phi i32 [ %sub601039.i, %have_dig.i ], [ %sub601039.i, %if.else128.i ], [ %sub601039.i, %if.then131.i ], [ %sub601038.i276783, %if.then125.i ] + %nd.0.lcssa99210121029.i30 = phi i32 [ %nd.0.lcssa99210121030.i, %have_dig.i ], [ %nd.0.lcssa99210121030.i, %if.else128.i ], [ %nd.0.lcssa99210121030.i, %if.then131.i ], [ %nd.0.lcssa99210121029.i296684, %if.then125.i ] + %sub601039.i28 = phi i32 [ %sub601040.i, %have_dig.i ], [ %sub601040.i, %if.else128.i ], [ %sub601040.i, %if.then131.i ], [ %sub601039.i276783, %if.then125.i ] %nd.5.i = phi i32 [ %nd.3.i, %have_dig.i ], [ %inc122.i, %if.else128.i ], [ %inc122.i, %if.then131.i ], [ %inc122.i92, %if.then125.i ] %nf.3.i = phi i32 [ %nf.2.i, %have_dig.i ], [ %add102.i, %if.else128.i ], [ %add102.i, %if.then131.i ], [ %add102.i6882, %if.then125.i ] %nz.4.i = phi i32 [ %inc98.i, %have_dig.i ], [ 0, %if.else128.i ], [ 0, %if.then131.i ], [ 0, %if.then125.i ] @@ -369,11 +369,11 @@ for.inc137.i: ; preds = %if.then131.i, %if.e br label %for.cond90.i, !llvm.loop !11 dig_done.i: ; preds = %for.cond90.i, %for.end72.i, %for.end47.thread.i, %for.end47.i - %nd.0.lcssa9911012.i = phi i32 [ %nd.0.lcssa99110111029.i, %for.cond90.i ], [ 0, %for.end72.i ], [ %inc.i, %for.end47.i ], [ 0, %for.end47.thread.i ] - %bc.sroa.10.0.i = phi i32 [ %sub601039.i, %for.cond90.i ], [ 1, %for.end72.i ], [ 0, %for.end47.i ], [ 0, %for.end47.thread.i ] + %nd.0.lcssa9921013.i = phi i32 [ %nd.0.lcssa99210121030.i, %for.cond90.i ], [ 0, %for.end72.i ], [ %inc.i, %for.end47.i ], [ 0, %for.end47.thread.i ] + %bc.sroa.10.0.i = phi i32 [ %sub601040.i, %for.cond90.i ], [ 1, %for.end72.i ], [ 0, %for.end47.i ], [ 0, %for.end47.thread.i ] %bc.sroa.4.1.i = phi i32 [ %bc.sroa.4.2.i, %for.cond90.i ], [ 1, %for.end72.i ], [ %conv35.i, %for.end47.i ], [ 0, %for.end47.thread.i ] %bc.sroa.0.1.i = phi i32 [ %bc.sroa.0.2.i, %for.cond90.i ], [ 0, %for.end72.i ], [ %conv35.i, %for.end47.i ], [ 0, %for.end47.thread.i ] - %c.2.i = phi i32 [ %c.3.i, %for.cond90.i ], [ %c.0.lcssa.i, %for.end72.i ], [ %conv17.i, %for.end47.i ], [ %conv17800.i, %for.end47.thread.i ] + %c.2.i = phi i32 [ %c.3.i, %for.cond90.i ], [ %c.0.lcssa.i, %for.end72.i ], [ %conv17.i, %for.end47.i ], [ %conv17801.i, %for.end47.thread.i ] %nd.2.i = phi i32 [ %nd.3.i, %for.cond90.i ], [ 0, %for.end72.i ], [ %inc.i, %for.end47.i ], [ 0, %for.end47.thread.i ] %nf.1.i = phi i32 [ %nf.2.i, %for.cond90.i ], [ 0, %for.end72.i ], [ 0, %for.end47.i ], [ 0, %for.end47.thread.i ] %nz.2.i = phi i32 [ %nz.3.i, %for.cond90.i ], [ %nz.0.lcssa.i, %for.end72.i ], [ 0, %for.end47.i ], [ 0, %for.end47.thread.i ] @@ -419,12 +419,12 @@ sw.epilog.i: ; preds = %sw.bb157.i, %if.end br i1 %or.cond4.i, label %while.cond166.preheader.i, label %if.end213.i while.cond166.preheader.i: ; preds = %sw.epilog.i - %cmp167830.i = icmp eq i8 %c.4.in.i, 48 - br i1 %cmp167830.i, label %while.body169.i, label %while.end172.i + %cmp167831.i = icmp eq i8 %c.4.in.i, 48 + br i1 %cmp167831.i, label %while.body169.i, label %while.end172.i while.body169.i: ; preds = %while.cond166.preheader.i, %while.body169.i - %s.12831.i = phi ptr [ %incdec.ptr170.i, %while.body169.i ], [ %s.11.i, %while.cond166.preheader.i ] - %incdec.ptr170.i = getelementptr inbounds nuw i8, ptr %s.12831.i, i64 1 + %s.12832.i = phi ptr [ %incdec.ptr170.i, %while.body169.i ], [ %s.11.i, %while.cond166.preheader.i ] + %incdec.ptr170.i = getelementptr inbounds nuw i8, ptr %s.12832.i, i64 1 %25 = load i8, ptr %incdec.ptr170.i, align 1 %cmp167.i = icmp eq i8 %25, 48 br i1 %cmp167.i, label %while.body169.i, label %while.end172.i, !llvm.loop !12 @@ -439,21 +439,21 @@ while.end172.i: ; preds = %while.body169.i, %w if.then178.i: ; preds = %while.end172.i %narrow.i = add nsw i8 %c.5.in.lcssa.i, -48 %sub179.i = zext nneg i8 %narrow.i to i32 - %incdec.ptr181834.i = getelementptr inbounds nuw i8, ptr %s.12.lcssa.i, i64 1 - %27 = load i8, ptr %incdec.ptr181834.i, align 1 + %incdec.ptr181835.i = getelementptr inbounds nuw i8, ptr %s.12.lcssa.i, i64 1 + %27 = load i8, ptr %incdec.ptr181835.i, align 1 %28 = add i8 %27, -48 %29 = icmp ult i8 %28, 10 br i1 %29, label %while.body189.i, label %while.end193.i while.body189.i: ; preds = %if.then178.i, %while.body189.i %30 = phi i8 [ %31, %while.body189.i ], [ %27, %if.then178.i ] - %incdec.ptr181836.i = phi ptr [ %incdec.ptr181.i, %while.body189.i ], [ %incdec.ptr181834.i, %if.then178.i ] - %UL.0835.i = phi i32 [ %sub192.i, %while.body189.i ], [ %sub179.i, %if.then178.i ] + %incdec.ptr181837.i = phi ptr [ %incdec.ptr181.i, %while.body189.i ], [ %incdec.ptr181835.i, %if.then178.i ] + %UL.0836.i = phi i32 [ %sub192.i, %while.body189.i ], [ %sub179.i, %if.then178.i ] %conv182.i = zext nneg i8 %30 to i32 - %mul190.i = mul i32 %UL.0835.i, 10 + %mul190.i = mul i32 %UL.0836.i, 10 %add191.i = add nsw i32 %conv182.i, -48 %sub192.i = add i32 %add191.i, %mul190.i - %incdec.ptr181.i = getelementptr inbounds nuw i8, ptr %incdec.ptr181836.i, i64 1 + %incdec.ptr181.i = getelementptr inbounds nuw i8, ptr %incdec.ptr181837.i, i64 1 %31 = load i8, ptr %incdec.ptr181.i, align 1 %32 = add i8 %31, -48 %33 = icmp ult i8 %32, 10 @@ -461,7 +461,7 @@ while.body189.i: ; preds = %if.then178.i, %whil while.end193.i: ; preds = %while.body189.i, %if.then178.i %UL.0.lcssa.i = phi i32 [ %sub179.i, %if.then178.i ], [ %sub192.i, %while.body189.i ] - %incdec.ptr181.lcssa.i = phi ptr [ %incdec.ptr181834.i, %if.then178.i ], [ %incdec.ptr181.i, %while.body189.i ] + %incdec.ptr181.lcssa.i = phi ptr [ %incdec.ptr181835.i, %if.then178.i ], [ %incdec.ptr181.i, %while.body189.i ] %sub.ptr.lhs.cast194.i = ptrtoint ptr %incdec.ptr181.lcssa.i to i64 %sub.ptr.rhs.cast195.i = ptrtoint ptr %s.12.lcssa.i to i64 %sub.ptr.sub196.i = sub i64 %sub.ptr.lhs.cast194.i, %sub.ptr.rhs.cast195.i @@ -488,8 +488,8 @@ if.then215.i: ; preds = %if.end213.i if.end221.i: ; preds = %if.end213.i %sub222.i = sub nsw i32 %e.0.i, %nf.1.i - %tobool223.not.i = icmp eq i32 %nd.0.lcssa9911012.i, 0 - %spec.select334.i = select i1 %tobool223.not.i, i32 %nd.2.i, i32 %nd.0.lcssa9911012.i + %tobool223.not.i = icmp eq i32 %nd.0.lcssa9921013.i, 0 + %spec.select334.i = select i1 %tobool223.not.i, i32 %nd.2.i, i32 %nd.0.lcssa9921013.i %cond.i = call i32 @llvm.smin.i32(i32 %nd.2.i, i32 17) %conv228.i = uitofp i32 %y.3.i to double store double %conv228.i, ptr %rv.i, align 8 @@ -602,7 +602,7 @@ if.then284.i: ; preds = %if.then282.i if.end288.i: ; preds = %if.then284.i, %if.then282.i %60 = phi i32 [ %59, %if.then284.i ], [ %53, %if.then282.i ] - %rv.promoted1147.i = phi double [ %mul287.i, %if.then284.i ], [ %55, %if.then282.i ] + %rv.promoted1148.i = phi double [ %mul287.i, %if.then284.i ], [ %55, %if.then282.i ] %and289.i = and i32 %add279.i, 2147483632 %tobool290.not.i = icmp eq i32 %and289.i, 0 br i1 %tobool290.not.i, label %if.end414.i, label %if.then291.i @@ -748,44 +748,44 @@ if.end299.i: ; preds = %if.else.i383.i, %if br label %ret.i if.end300.i: ; preds = %if.then291.i - %cmp302848.i = icmp samesign ugt i32 %add279.i, 31 - br i1 %cmp302848.i, label %for.body304.preheader.i, label %for.end315.i + %cmp302849.i = icmp samesign ugt i32 %add279.i, 31 + br i1 %cmp302849.i, label %for.body304.preheader.i, label %for.end315.i for.body304.preheader.i: ; preds = %if.end300.i %shr.i = lshr i32 %add279.i, 4 br label %for.body304.i for.body304.i: ; preds = %for.inc312.i, %for.body304.preheader.i - %mul3101148.i = phi double [ %rv.promoted1147.i, %for.body304.preheader.i ], [ %mul3101149.i, %for.inc312.i ] + %mul3101149.i = phi double [ %rv.promoted1148.i, %for.body304.preheader.i ], [ %mul3101150.i, %for.inc312.i ] %71 = phi i32 [ %60, %for.body304.preheader.i ], [ %76, %for.inc312.i ] - %indvars.iv961.i = phi i64 [ 0, %for.body304.preheader.i ], [ %indvars.iv.next962.i, %for.inc312.i ] - %e1.0850.i = phi i32 [ %shr.i, %for.body304.preheader.i ], [ %shr314.i, %for.inc312.i ] - %mul310847849.i = phi double [ %rv.promoted1147.i, %for.body304.preheader.i ], [ %mul310846.i, %for.inc312.i ] - %and305.i = and i32 %e1.0850.i, 1 + %indvars.iv962.i = phi i64 [ 0, %for.body304.preheader.i ], [ %indvars.iv.next963.i, %for.inc312.i ] + %e1.0851.i = phi i32 [ %shr.i, %for.body304.preheader.i ], [ %shr314.i, %for.inc312.i ] + %mul310848850.i = phi double [ %rv.promoted1148.i, %for.body304.preheader.i ], [ %mul310847.i, %for.inc312.i ] + %and305.i = and i32 %e1.0851.i, 1 %tobool306.not.i = icmp eq i32 %and305.i, 0 br i1 %tobool306.not.i, label %for.inc312.i, label %if.then307.i if.then307.i: ; preds = %for.body304.i - %arrayidx309.i = getelementptr inbounds nuw [5 x double], ptr @bigtens, i64 0, i64 %indvars.iv961.i + %arrayidx309.i = getelementptr inbounds nuw [5 x double], ptr @bigtens, i64 0, i64 %indvars.iv962.i %72 = load double, ptr %arrayidx309.i, align 8 - %mul310.i = fmul double %mul310847849.i, %72 + %mul310.i = fmul double %mul310848850.i, %72 %73 = bitcast double %mul310.i to i64 %74 = lshr i64 %73, 32 %75 = trunc nuw i64 %74 to i32 br label %for.inc312.i for.inc312.i: ; preds = %if.then307.i, %for.body304.i - %mul3101149.i = phi double [ %mul3101148.i, %for.body304.i ], [ %mul310.i, %if.then307.i ] + %mul3101150.i = phi double [ %mul3101149.i, %for.body304.i ], [ %mul310.i, %if.then307.i ] %76 = phi i32 [ %71, %for.body304.i ], [ %75, %if.then307.i ] - %mul310846.i = phi double [ %mul310847849.i, %for.body304.i ], [ %mul310.i, %if.then307.i ] - %indvars.iv.next962.i = add nuw nsw i64 %indvars.iv961.i, 1 - %shr314.i = lshr i32 %e1.0850.i, 1 - %cmp302.i = icmp samesign ugt i32 %e1.0850.i, 3 + %mul310847.i = phi double [ %mul310848850.i, %for.body304.i ], [ %mul310.i, %if.then307.i ] + %indvars.iv.next963.i = add nuw nsw i64 %indvars.iv962.i, 1 + %shr314.i = lshr i32 %e1.0851.i, 1 + %cmp302.i = icmp samesign ugt i32 %e1.0851.i, 3 br i1 %cmp302.i, label %for.body304.i, label %for.end315.loopexit.i, !llvm.loop !14 for.end315.loopexit.i: ; preds = %for.inc312.i - store double %mul3101149.i, ptr %rv.i, align 8 - %77 = and i64 %indvars.iv.next962.i, 4294967295 + store double %mul3101150.i, ptr %rv.i, align 8 + %77 = and i64 %indvars.iv.next963.i, 4294967295 br label %for.end315.i for.end315.i: ; preds = %for.end315.loopexit.i, %if.end300.i @@ -845,7 +845,7 @@ if.then344.i: ; preds = %if.then340.i if.end348.i: ; preds = %if.then344.i, %if.then340.i %89 = phi i32 [ %88, %if.then344.i ], [ %54, %if.then340.i ] %90 = phi i32 [ %87, %if.then344.i ], [ %53, %if.then340.i ] - %rv.promoted1144.i = phi double [ %div347.i, %if.then344.i ], [ %55, %if.then340.i ] + %rv.promoted1145.i = phi double [ %div347.i, %if.then344.i ], [ %55, %if.then340.i ] %shr349.i = lshr i32 %sub341.i, 4 %tobool350.not.i = icmp samesign ult i32 %sub341.i, 16 br i1 %tobool350.not.i, label %if.end414.i, label %if.then351.i @@ -859,20 +859,20 @@ for.body364.preheader.i: ; preds = %if.then351.i br label %for.body364.i for.body364.i: ; preds = %for.inc372.i, %for.body364.preheader.i - %mul3701145.i = phi double [ %rv.promoted1144.i, %for.body364.preheader.i ], [ %mul3701146.i, %for.inc372.i ] + %mul3701146.i = phi double [ %rv.promoted1145.i, %for.body364.preheader.i ], [ %mul3701147.i, %for.inc372.i ] %91 = phi i32 [ %89, %for.body364.preheader.i ], [ %98, %for.inc372.i ] %92 = phi i32 [ %90, %for.body364.preheader.i ], [ %99, %for.inc372.i ] %indvars.iv.i = phi i64 [ 0, %for.body364.preheader.i ], [ %indvars.iv.next.i, %for.inc372.i ] - %e1.1843.i = phi i32 [ %shr349.i, %for.body364.preheader.i ], [ %shr374.i, %for.inc372.i ] - %mul370840842.i = phi double [ %rv.promoted1144.i, %for.body364.preheader.i ], [ %mul370839.i, %for.inc372.i ] - %and365.i = and i32 %e1.1843.i, 1 + %e1.1844.i = phi i32 [ %shr349.i, %for.body364.preheader.i ], [ %shr374.i, %for.inc372.i ] + %mul370841843.i = phi double [ %rv.promoted1145.i, %for.body364.preheader.i ], [ %mul370840.i, %for.inc372.i ] + %and365.i = and i32 %e1.1844.i, 1 %tobool366.not.i = icmp eq i32 %and365.i, 0 br i1 %tobool366.not.i, label %for.inc372.i, label %if.then367.i if.then367.i: ; preds = %for.body364.i %arrayidx369.i = getelementptr inbounds nuw [5 x double], ptr @tinytens, i64 0, i64 %indvars.iv.i %93 = load double, ptr %arrayidx369.i, align 8 - %mul370.i = fmul double %mul370840842.i, %93 + %mul370.i = fmul double %mul370841843.i, %93 %94 = bitcast double %mul370.i to i64 %95 = lshr i64 %94, 32 %96 = trunc nuw i64 %95 to i32 @@ -880,18 +880,18 @@ if.then367.i: ; preds = %for.body364.i br label %for.inc372.i for.inc372.i: ; preds = %if.then367.i, %for.body364.i - %mul3701146.i = phi double [ %mul3701145.i, %for.body364.i ], [ %mul370.i, %if.then367.i ] + %mul3701147.i = phi double [ %mul3701146.i, %for.body364.i ], [ %mul370.i, %if.then367.i ] %98 = phi i32 [ %91, %for.body364.i ], [ %97, %if.then367.i ] %99 = phi i32 [ %92, %for.body364.i ], [ %96, %if.then367.i ] - %mul370839.i = phi double [ %mul370840842.i, %for.body364.i ], [ %mul370.i, %if.then367.i ] + %mul370840.i = phi double [ %mul370841843.i, %for.body364.i ], [ %mul370.i, %if.then367.i ] %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 - %shr374.i = lshr i32 %e1.1843.i, 1 - %cmp362.not.i = icmp samesign ult i32 %e1.1843.i, 2 + %shr374.i = lshr i32 %e1.1844.i, 1 + %cmp362.not.i = icmp samesign ult i32 %e1.1844.i, 2 br i1 %cmp362.not.i, label %for.end375.i, label %for.body364.i, !llvm.loop !15 for.end375.i: ; preds = %for.inc372.i %spec.select686.i = select i1 %tobool357.not.i, i32 0, i32 106 - store double %mul3701146.i, ptr %rv.i, align 8 + store double %mul3701147.i, ptr %rv.i, align 8 br i1 %tobool357.not.i, label %if.end408.i, label %land.lhs.true378.i land.lhs.true378.i: ; preds = %for.end375.i @@ -937,7 +937,7 @@ if.end408.ithread-pre-split: ; preds = %land.lhs.true378.i, br label %if.end408.i if.end408.i: ; preds = %if.end408.ithread-pre-split, %for.end375.i - %100 = phi double [ %.pr, %if.end408.ithread-pre-split ], [ %mul3701146.i, %for.end375.i ] + %100 = phi double [ %.pr, %if.end408.ithread-pre-split ], [ %mul3701147.i, %for.end375.i ] %tobool409.i = fcmp une double %100, 0.000000e+00 br i1 %tobool409.i, label %if.end414.i, label %undfl.i @@ -984,8 +984,8 @@ for.end447.i: ; preds = %for.cond427.i br i1 %cmp454.i, label %for.cond457.preheader.i, label %if.end486.i for.cond457.preheader.i: ; preds = %for.end447.i - %cmp458853.i = icmp sgt i32 %spec.select336.i, 0 - br i1 %cmp458853.i, label %for.body460.preheader.i, label %for.cond471.preheader.i + %cmp458854.i = icmp sgt i32 %spec.select336.i, 0 + br i1 %cmp458854.i, label %for.body460.preheader.i, label %for.cond471.preheader.i for.body460.preheader.i: ; preds = %for.cond457.preheader.i %wide.trip.count.i = zext nneg i32 %spec.select336.i to i64 @@ -994,40 +994,40 @@ for.body460.preheader.i: ; preds = %for.cond457.prehead for.cond471.preheader.i: ; preds = %for.body460.i, %for.cond457.preheader.i %i.2.lcssa.i = phi i32 [ 0, %for.cond457.preheader.i ], [ %spec.select336.i, %for.body460.i ] %y.10.lcssa.i = phi i32 [ 0, %for.cond457.preheader.i ], [ %sub466.i, %for.body460.i ] - %cmp472858.i = icmp slt i32 %i.2.lcssa.i, %i.1.i - br i1 %cmp472858.i, label %for.body474.preheader.i, label %if.end486.i + %cmp472859.i = icmp slt i32 %i.2.lcssa.i, %i.1.i + br i1 %cmp472859.i, label %for.body474.preheader.i, label %if.end486.i for.body474.preheader.i: ; preds = %for.cond471.preheader.i %102 = sext i32 %bc.sroa.4.1.i to i64 br label %for.body474.i for.body460.i: ; preds = %for.body460.i, %for.body460.preheader.i - %indvars.iv964.i = phi i64 [ 0, %for.body460.preheader.i ], [ %indvars.iv.next965.i, %for.body460.i ] - %y.10855.i = phi i32 [ 0, %for.body460.preheader.i ], [ %sub466.i, %for.body460.i ] - %mul461.i = mul i32 %y.10855.i, 10 - %arrayidx463.i = getelementptr inbounds nuw i8, ptr %s0.1.i, i64 %indvars.iv964.i + %indvars.iv965.i = phi i64 [ 0, %for.body460.preheader.i ], [ %indvars.iv.next966.i, %for.body460.i ] + %y.10856.i = phi i32 [ 0, %for.body460.preheader.i ], [ %sub466.i, %for.body460.i ] + %mul461.i = mul i32 %y.10856.i, 10 + %arrayidx463.i = getelementptr inbounds nuw i8, ptr %s0.1.i, i64 %indvars.iv965.i %103 = load i8, ptr %arrayidx463.i, align 1 %conv464.i = sext i8 %103 to i32 %add465.i = add i32 %mul461.i, -48 %sub466.i = add i32 %add465.i, %conv464.i - %indvars.iv.next965.i = add nuw nsw i64 %indvars.iv964.i, 1 - %exitcond968.not.i = icmp eq i64 %indvars.iv.next965.i, %wide.trip.count.i - br i1 %exitcond968.not.i, label %for.cond471.preheader.i, label %for.body460.i, !llvm.loop !16 + %indvars.iv.next966.i = add nuw nsw i64 %indvars.iv965.i, 1 + %exitcond969.not.i = icmp eq i64 %indvars.iv.next966.i, %wide.trip.count.i + br i1 %exitcond969.not.i, label %for.cond471.preheader.i, label %for.body460.i, !llvm.loop !16 for.body474.i: ; preds = %for.body474.i, %for.body474.preheader.i - %indvars.iv969.i = phi i64 [ %102, %for.body474.preheader.i ], [ %indvars.iv.next970.i, %for.body474.i ] - %y.11861.i = phi i32 [ %y.10.lcssa.i, %for.body474.preheader.i ], [ %sub481.i, %for.body474.i ] - %i.3859.i = phi i32 [ %i.2.lcssa.i, %for.body474.preheader.i ], [ %inc483.i, %for.body474.i ] - %mul475.i = mul i32 %y.11861.i, 10 - %indvars.iv.next970.i = add nsw i64 %indvars.iv969.i, 1 - %arrayidx478.i = getelementptr inbounds i8, ptr %s0.1.i, i64 %indvars.iv969.i + %indvars.iv970.i = phi i64 [ %102, %for.body474.preheader.i ], [ %indvars.iv.next971.i, %for.body474.i ] + %y.11862.i = phi i32 [ %y.10.lcssa.i, %for.body474.preheader.i ], [ %sub481.i, %for.body474.i ] + %i.3860.i = phi i32 [ %i.2.lcssa.i, %for.body474.preheader.i ], [ %inc483.i, %for.body474.i ] + %mul475.i = mul i32 %y.11862.i, 10 + %indvars.iv.next971.i = add nsw i64 %indvars.iv970.i, 1 + %arrayidx478.i = getelementptr inbounds i8, ptr %s0.1.i, i64 %indvars.iv970.i %104 = load i8, ptr %arrayidx478.i, align 1 %conv479.i = sext i8 %104 to i32 %add480.i = add i32 %mul475.i, -48 %sub481.i = add i32 %add480.i, %conv479.i - %inc483.i = add nuw nsw i32 %i.3859.i, 1 - %exitcond973.not.i = icmp eq i32 %inc483.i, %i.1.i - br i1 %exitcond973.not.i, label %if.end486.i, label %for.body474.i, !llvm.loop !17 + %inc483.i = add nuw nsw i32 %i.3860.i, 1 + %exitcond974.not.i = icmp eq i32 %inc483.i, %i.1.i + br i1 %exitcond974.not.i, label %if.end486.i, label %for.body474.i, !llvm.loop !17 if.end486.i: ; preds = %for.body474.i, %for.cond471.preheader.i, %for.end447.i, %if.end414.i %e.2.i = phi i32 [ %add449.i, %for.end447.i ], [ %sub222.i, %if.end414.i ], [ %add449.i, %for.cond471.preheader.i ], [ %add449.i, %for.body474.i ] @@ -1166,22 +1166,22 @@ s2b.exit.i: ; preds = %for.body14.i.i, %if %sign493.i = getelementptr inbounds nuw i8, ptr %b.2.lcssa.i.i, i64 16 %wds.i = getelementptr inbounds nuw i8, ptr %b.2.lcssa.i.i, i64 20 %arrayidx.i.i404.i = getelementptr inbounds nuw i8, ptr %dalloc, i64 24 - %cmp499.i = icmp sgt i32 %e.2.i, -1 %sub503.i = sub nsw i32 0, %e.2.i - %bd5.0.i = select i1 %cmp499.i, i32 %e.2.i, i32 0 - %bb2.0.i = select i1 %cmp499.i, i32 0, i32 %sub503.i - %bd2.1.i = add i32 %bd5.0.i, %bc.sroa.42.0.i + %bd5.0.i = call i32 @llvm.smax.i32(i32 %e.2.i, i32 0) + %cmp499.inv.i = icmp slt i32 %e.2.i, 0 + %bb2.0.i = select i1 %cmp499.inv.i, i32 %sub503.i, i32 0 + %bd2.1.i = add nuw i32 %bd5.0.i, %bc.sroa.42.0.i %cmp557.i = icmp sgt i32 %bb2.0.i, 0 %freelist.i398.i = getelementptr inbounds nuw i8, ptr %dalloc, i64 16 %sub.ptr.rhs.cast.i.i = ptrtoint ptr %private_mem.i to i64 %used_heap.i.i = getelementptr inbounds nuw i8, ptr %dalloc, i64 4 - %cmp568.i = icmp sgt i32 %bd5.0.i, 0 + %cmp568.not.i = icmp slt i32 %e.2.i, 1 %cmp588.i = icmp sgt i32 %sub415.i, %nd.6.i %arrayidx774.i = getelementptr inbounds nuw i8, ptr %rv.i, i64 4 %tobool840.i = icmp ne i32 %bc.sroa.42.0.i, 0 %cmp881.i = icmp eq i32 %sub415.i, %nd.6.i %tobool885.i = icmp eq i32 %bc.sroa.42.0.i, 0 - %or.cond18.not688.i = select i1 %cmp881.i, i1 %tobool885.i, i1 false + %or.cond18.not689.i = select i1 %cmp881.i, i1 %tobool885.i, i1 false br label %for.cond489.i for.cond489.i: ; preds = %for.cond489.i.backedge, %s2b.exit.i @@ -1307,9 +1307,8 @@ i2b.exit.i: ; preds = %if.end.i.i423.i, %i store i32 1, ptr %x.i.i, align 8 store i32 1, ptr %wds.i.i409.i, align 4 %120 = load i32, ptr %bbe.i, align 4 - %cmp505.i = icmp sgt i32 %120, -1 - %sub510.i = select i1 %cmp505.i, i32 0, i32 %120 - %add508.i = select i1 %cmp505.i, i32 %120, i32 0 + %sub510.i = call i32 @llvm.smin.i32(i32 %120, i32 0) + %add508.i = call i32 @llvm.smax.i32(i32 %120, i32 0) %bb2.1.i = add nuw nsw i32 %add508.i, %bb2.0.i %sub513.i = sub nsw i32 %120, %bc.sroa.42.0.i %121 = load i32, ptr %bbbits.i, align 4 @@ -1388,7 +1387,7 @@ if.then565.i: ; preds = %if.end562.i if.end567.i: ; preds = %if.then565.i, %if.end562.i %bb.4.i = phi ptr [ %call566.i, %if.then565.i ], [ %bb.3.i, %if.end562.i ] - br i1 %cmp568.i, label %if.then570.i, label %if.end572.i + br i1 %cmp568.not.i, label %if.end572.i, label %if.then570.i if.then570.i: ; preds = %if.end567.i %call571.i = call fastcc ptr @pow5mult(ptr noundef nonnull %dalloc, ptr noundef nonnull %rv.0.i.i, i32 noundef %bd5.0.i) @@ -1586,25 +1585,25 @@ if.else679.i: ; preds = %if.then635.i drop_down.i: ; preds = %if.then7.i463.i %cmp692.i = icmp samesign ugt i32 %and613.i, 112197632 - %or.cond1150.not.i = select i1 %tobool885.i, i1 true, i1 %cmp692.i - br i1 %or.cond1150.not.i, label %if.end706.i, label %if.then694.i + %or.cond1151.not.i = select i1 %tobool885.i, i1 true, i1 %cmp692.i + br i1 %or.cond1151.not.i, label %if.end706.i, label %if.then694.i drop_down.i.thread: ; preds = %if.else679.i - %.pre979.i94 = and i32 %136, 2146435072 - %cmp692.i95 = icmp samesign ugt i32 %.pre979.i94, 112197632 - %or.cond1150.not.i96 = select i1 %tobool885.i, i1 true, i1 %cmp692.i95 - br i1 %or.cond1150.not.i96, label %if.end706.i.thread, label %if.then694.i + %.pre980.i94 = and i32 %136, 2146435072 + %cmp692.i95 = icmp samesign ugt i32 %.pre980.i94, 112197632 + %or.cond1151.not.i96 = select i1 %tobool885.i, i1 true, i1 %cmp692.i95 + br i1 %or.cond1151.not.i96, label %if.end706.i.thread, label %if.then694.i if.end706.i.thread: ; preds = %drop_down.i.thread - %or.i103 = add nsw i32 %.pre979.i94, -1 + %or.i103 = add nsw i32 %.pre980.i94, -1 store i32 %or.i103, ptr %arrayidx774.i, align 4 store i32 -1, ptr %rv.i, align 8 br label %for.end919.i if.then694.i: ; preds = %drop_down.i, %drop_down.i.thread - %.pre979.i99 = phi i32 [ %.pre979.i94, %drop_down.i.thread ], [ %and613.i, %drop_down.i ] + %.pre980.i99 = phi i32 [ %.pre980.i94, %drop_down.i.thread ], [ %and613.i, %drop_down.i ] %delta.4.i97 = phi ptr [ %call583.i, %drop_down.i.thread ], [ %call626.i, %drop_down.i ] - %cmp695.i = icmp samesign ugt i32 %.pre979.i99, 57671680 + %cmp695.i = icmp samesign ugt i32 %.pre980.i99, 57671680 %brmerge.i = or i1 %cmp588.i, %cmp695.i br i1 %brmerge.i, label %for.end919.i, label %undfl.i @@ -1889,7 +1888,7 @@ if.end877.i: ; preds = %if.else872.i, %if.e %aadj.2.i = phi double [ %aadj.1.i, %if.else834.i ], [ %aadj.3.i, %if.end861.i ], [ %aadj.1.i, %if.else872.i ] %and879.i = and i32 %177, 2146435072 %cmp887.i = icmp eq i32 %and809.i, %and879.i - %or.cond339.i = select i1 %or.cond18.not688.i, i1 %cmp887.i, i1 false + %or.cond339.i = select i1 %or.cond18.not689.i, i1 %cmp887.i, i1 false br i1 %or.cond339.i, label %if.then889.i, label %cont.i if.then889.i: ; preds = %if.end877.i @@ -1899,10 +1898,10 @@ if.then889.i: ; preds = %if.end877.i %tobool894.i = icmp eq i32 %124, 0 %178 = and i64 %.in.i, 4294967295 %tobool897.i = icmp eq i64 %178, 0 - %or.cond15.not689.i = select i1 %tobool894.i, i1 %tobool897.i, i1 false + %or.cond15.not690.i = select i1 %tobool894.i, i1 %tobool897.i, i1 false %and900.i = and i32 %177, 1048575 %tobool901.not.i = icmp eq i32 %and900.i, 0 - %or.cond340.i = select i1 %or.cond15.not689.i, i1 %tobool901.not.i, i1 false + %or.cond340.i = select i1 %or.cond15.not690.i, i1 %tobool901.not.i, i1 false br i1 %or.cond340.i, label %if.else910.i, label %if.then902.i if.then902.i: ; preds = %if.then889.i @@ -2520,11 +2519,11 @@ if.else115.i.i: ; preds = %Bfree.exit132.i.i br i1 %cmp116.i.i, label %if.then118.i.i, label %if.else124.i.i if.then118.i.i: ; preds = %if.else115.i.i - %.pre976.i = load i32, ptr %arrayidx774.i, align 4 + %.pre977.i = load i32, ptr %arrayidx774.i, align 4 br i1 %dsign.0.i.i, label %retlow1.i.i, label %bigcomp.exit.i retlow1.i.i: ; preds = %odd.i.i, %if.then118.i.i - %rv.val90.i.i = phi i32 [ %231, %odd.i.i ], [ %.pre976.i, %if.then118.i.i ] + %rv.val90.i.i = phi i32 [ %231, %odd.i.i ], [ %.pre977.i, %if.then118.i.i ] %and.i.i.i.i = and i32 %rv.val90.i.i, 2146435072 %sub.i.i.i.i = add nsw i32 %and.i.i.i.i, -54525952 %u.sroa.0.4.insert.ext.i.i.i.i = zext i32 %sub.i.i.i.i to i64 @@ -2634,7 +2633,7 @@ if.end170.sink.split.i.i: ; preds = %sulp.exit151.i.i, % br label %bigcomp.exit.i bigcomp.exit.i: ; preds = %if.end170.sink.split.i.i, %if.else158.i.i, %if.else149.i.i, %if.then143.i.i, %if.then127.i.i, %if.then118.i.i, %if.then110.i.bigcomp.exit_crit_edge.i - %241 = phi i32 [ %.pre.i, %if.then110.i.bigcomp.exit_crit_edge.i ], [ %.pre976.i, %if.then118.i.i ], [ %231, %if.then127.i.i ], [ %231, %if.then143.i.i ], [ %231, %if.else149.i.i ], [ %231, %if.else158.i.i ], [ %240, %if.end170.sink.split.i.i ] + %241 = phi i32 [ %.pre.i, %if.then110.i.bigcomp.exit_crit_edge.i ], [ %.pre977.i, %if.then118.i.i ], [ %231, %if.then127.i.i ], [ %231, %if.then143.i.i ], [ %231, %if.else149.i.i ], [ %231, %if.else158.i.i ], [ %240, %if.end170.sink.split.i.i ] call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %bbits.i.i) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %p2.i.i) %and925.i = and i32 %241, 2146435072 @@ -3076,10 +3075,10 @@ if.end66: ; preds = %if.then59, %select. %33 = load i32, ptr %bbits, align 4 %34 = xor i32 %i.0, -1 %sub68 = add i32 %33, %34 - %cmp69 = icmp sgt i32 %sub68, -1 %sub73 = sub nsw i32 0, %sub68 - %s2.0 = select i1 %cmp69, i32 %sub68, i32 0 - %b2.0 = select i1 %cmp69, i32 0, i32 %sub73 + %s2.0 = tail call i32 @llvm.smax.i32(i32 %sub68, i32 0) + %cmp69.inv = icmp slt i32 %sub68, 0 + %b2.0 = select i1 %cmp69.inv, i32 %sub73, i32 0 %cmp75 = icmp sgt i32 %k.1, -1 br i1 %cmp75, label %if.then77, label %if.else79 @@ -6406,10 +6405,10 @@ if.end66: ; preds = %if.then59, %select. %33 = load i32, ptr %bbits, align 4 %34 = xor i32 %i.0, -1 %sub68 = add i32 %33, %34 - %cmp69 = icmp sgt i32 %sub68, -1 %sub73 = sub nsw i32 0, %sub68 - %s2.0 = select i1 %cmp69, i32 %sub68, i32 0 - %b2.0 = select i1 %cmp69, i32 0, i32 %sub73 + %s2.0 = tail call i32 @llvm.smax.i32(i32 %sub68, i32 0) + %cmp69.inv = icmp slt i32 %sub68, 0 + %b2.0 = select i1 %cmp69.inv, i32 %sub73, i32 0 %cmp75 = icmp sgt i32 %k.1, -1 br i1 %cmp75, label %if.then77, label %if.else79 diff --git a/bench/icu/optimized/locdispnames.ll b/bench/icu/optimized/locdispnames.ll index 83e5de7af87..ad161c900f4 100644 --- a/bench/icu/optimized/locdispnames.ll +++ b/bench/icu/optimized/locdispnames.ll @@ -1684,8 +1684,8 @@ return: ; preds = %if.then4.i27, %if.e ; Function Attrs: mustprogress uwtable define i32 @uloc_getDisplayName_75(ptr noundef %locale, ptr noundef %displayLocale, ptr noundef %dest, i32 noundef %destCapacity, ptr noundef %pErrorCode) local_unnamed_addr #1 personality ptr @__gxx_personality_v0 { entry: - %localeBuffer.i.i210 = alloca [628 x i8], align 16 - %localStatus.i.i211 = alloca i32, align 4 + %localeBuffer.i.i208 = alloca [628 x i8], align 16 + %localStatus.i.i209 = alloca i32, align 4 %localeBuffer.i.i182 = alloca [628 x i8], align 16 %localStatus.i.i183 = alloca i32, align 4 %localeBuffer.i.i159 = alloca [628 x i8], align 16 @@ -1884,8 +1884,8 @@ if.then68: ; preds = %do.body br i1 %cmp69.not, label %for.body.preheader, label %while.cond.preheader while.cond.preheader: ; preds = %if.then68 - %cmp71268 = icmp sgt i32 %sub0Pos.2, 0 - br i1 %cmp71268, label %while.body.preheader, label %for.body.preheader + %cmp71264 = icmp sgt i32 %sub0Pos.2, 0 + br i1 %cmp71264, label %while.body.preheader, label %for.body.preheader while.body.preheader: ; preds = %while.cond.preheader %wide.trip.count = zext nneg i32 %sub0Pos.2 to i64 @@ -1893,45 +1893,45 @@ while.body.preheader: ; preds = %while.cond.preheade while.body: ; preds = %while.body.preheader, %while.body %indvars.iv = phi i64 [ 0, %while.body.preheader ], [ %indvars.iv.next, %while.body ] - %p.0269 = phi ptr [ %dest, %while.body.preheader ], [ %incdec.ptr, %while.body ] + %p.0265 = phi ptr [ %dest, %while.body.preheader ], [ %incdec.ptr, %while.body ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %arrayidx = getelementptr inbounds nuw i16, ptr %pattern.0, i64 %indvars.iv %9 = load i16, ptr %arrayidx, align 2 - %incdec.ptr = getelementptr inbounds nuw i8, ptr %p.0269, i64 2 - store i16 %9, ptr %p.0269, align 2 + %incdec.ptr = getelementptr inbounds nuw i8, ptr %p.0265, i64 2 + store i16 %9, ptr %p.0265, align 2 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count br i1 %exitcond.not, label %for.body.preheader, label %while.body, !llvm.loop !5 for.body.preheader: ; preds = %while.body, %while.cond.preheader, %do.body, %if.then68 - %patPos.3290.ph = phi i32 [ %sub0Pos.2, %if.then68 ], [ 0, %do.body ], [ 0, %while.cond.preheader ], [ %sub0Pos.2, %while.body ] - %p.3289.ph = phi ptr [ %dest, %if.then68 ], [ %dest, %do.body ], [ %dest, %while.cond.preheader ], [ %incdec.ptr, %while.body ] + %patPos.3286.ph = phi i32 [ %sub0Pos.2, %if.then68 ], [ 0, %do.body ], [ 0, %while.cond.preheader ], [ %sub0Pos.2, %while.body ] + %p.3285.ph = phi ptr [ %dest, %if.then68 ], [ %dest, %do.body ], [ %dest, %while.cond.preheader ], [ %incdec.ptr, %while.body ] br label %for.body for.body: ; preds = %for.body.preheader, %if.end268 - %length.1297 = phi i32 [ %length.5, %if.end268 ], [ %sub0Pos.2, %for.body.preheader ] - %resti.0296 = phi i32 [ %resti.1, %if.end268 ], [ 0, %for.body.preheader ] - %subi.0295 = phi i32 [ %subi.1, %if.end268 ], [ 0, %for.body.preheader ] - %restPos.0294 = phi i32 [ %restPos.1, %if.end268 ], [ 0, %for.body.preheader ] - %restLen.0293 = phi i32 [ %restLen.1, %if.end268 ], [ 0, %for.body.preheader ] - %langPos.0292 = phi i32 [ %langPos.2, %if.end268 ], [ 0, %for.body.preheader ] - %langLen.0291 = phi i32 [ %langLen.2, %if.end268 ], [ 0, %for.body.preheader ] - %patPos.3290 = phi i32 [ %patPos.4, %if.end268 ], [ %patPos.3290.ph, %for.body.preheader ] - %p.3289 = phi ptr [ %p.12, %if.end268 ], [ %p.3289.ph, %for.body.preheader ] - %sub0Pos.3288 = phi i32 [ %sub0Pos.4, %if.end268 ], [ %sub0Pos.2, %for.body.preheader ] - %retry.1287 = phi i8 [ %retry.2, %if.end268 ], [ %retry.0, %for.body.preheader ] - %haveRest.1286 = phi i8 [ %haveRest.2, %if.end268 ], [ %haveRest.0, %for.body.preheader ] - %haveLang.1285 = phi i8 [ %haveLang.3, %if.end268 ], [ %haveLang.0, %for.body.preheader ] - %sub = sub nsw i32 %destCapacity, %length.1297 - %cmp77 = icmp sgt i32 %sub, 0 - %idx.ext = sext i32 %length.1297 to i64 + %length.1293 = phi i32 [ %length.5, %if.end268 ], [ %sub0Pos.2, %for.body.preheader ] + %resti.0292 = phi i32 [ %resti.1, %if.end268 ], [ 0, %for.body.preheader ] + %subi.0291 = phi i32 [ %subi.1, %if.end268 ], [ 0, %for.body.preheader ] + %restPos.0290 = phi i32 [ %restPos.1, %if.end268 ], [ 0, %for.body.preheader ] + %restLen.0289 = phi i32 [ %restLen.1, %if.end268 ], [ 0, %for.body.preheader ] + %langPos.0288 = phi i32 [ %langPos.2, %if.end268 ], [ 0, %for.body.preheader ] + %langLen.0287 = phi i32 [ %langLen.2, %if.end268 ], [ 0, %for.body.preheader ] + %patPos.3286 = phi i32 [ %patPos.4, %if.end268 ], [ %patPos.3286.ph, %for.body.preheader ] + %p.3285 = phi ptr [ %p.12, %if.end268 ], [ %p.3285.ph, %for.body.preheader ] + %sub0Pos.3284 = phi i32 [ %sub0Pos.4, %if.end268 ], [ %sub0Pos.2, %for.body.preheader ] + %retry.1283 = phi i8 [ %retry.2, %if.end268 ], [ %retry.0, %for.body.preheader ] + %haveRest.1282 = phi i8 [ %haveRest.2, %if.end268 ], [ %haveRest.0, %for.body.preheader ] + %haveLang.1281 = phi i8 [ %haveLang.3, %if.end268 ], [ %haveLang.0, %for.body.preheader ] + %sub = sub nsw i32 %destCapacity, %length.1293 + %cmp77 = icmp slt i32 %sub, 1 + %idx.ext = sext i32 %length.1293 to i64 %add.ptr80 = getelementptr inbounds i16, ptr %dest, i64 %idx.ext - %p.4 = select i1 %cmp77, ptr %add.ptr80, ptr %p.3289 + %p.4 = select i1 %cmp77, ptr %p.3285, ptr %add.ptr80 %cap.0 = call i32 @llvm.smax.i32(i32 %sub, i32 0) - %cmp82 = icmp eq i32 %subi.0295, %langi.0 + %cmp82 = icmp eq i32 %subi.0291, %langi.0 br i1 %cmp82, label %if.then83, label %if.else92 if.then83: ; preds = %for.body - %tobool84.not = icmp eq i8 %haveLang.1285, 0 + %tobool84.not = icmp eq i8 %haveLang.1281, 0 br i1 %tobool84.not, label %if.end201, label %lor.lhs.false.i.i lor.lhs.false.i.i: ; preds = %if.then83 @@ -1939,14 +1939,15 @@ lor.lhs.false.i.i: ; preds = %if.then83 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %localStatus.i.i) %10 = load i32, ptr %pErrorCode, align 4 %cmp.i.i.i = icmp slt i32 %10, 1 - br i1 %cmp.i.i.i, label %lor.lhs.false2.i.i, label %invoke.cont87 + br i1 %cmp.i.i.i, label %if.end.i.i, label %invoke.cont87 -lor.lhs.false2.i.i: ; preds = %lor.lhs.false.i.i +if.end.i.i: ; preds = %lor.lhs.false.i.i + %cmp3.i.i = icmp sgt i32 %sub, 0 %cmp4.i.i = icmp eq ptr %p.4, null - %or.cond.i.i = and i1 %cmp77, %cmp4.i.i + %or.cond.i.i = and i1 %cmp3.i.i, %cmp4.i.i br i1 %or.cond.i.i, label %invoke.cont87.sink.split, label %if.end6.i.i -if.end6.i.i: ; preds = %lor.lhs.false2.i.i +if.end6.i.i: ; preds = %if.end.i.i store i32 0, ptr %localStatus.i.i, align 4 %call7.i.i157 = invoke noundef i32 @uloc_getLanguage_75(ptr noundef %locale, ptr noundef nonnull %localeBuffer.i.i, i32 noundef 628, ptr noundef nonnull %localStatus.i.i) to label %call7.i.i.noexc unwind label %lpad86 @@ -1970,7 +1971,7 @@ if.end22.i.i: ; preds = %if.then15.i.i, %if. %call26.i.i158 = invoke fastcc noundef i32 @_ZL19_getStringOrCopyKeyPKcS0_S0_S0_S0_S0_PDsiP10UErrorCode(ptr noundef nonnull @.str, ptr noundef %displayLocale, ptr noundef nonnull @_ZL11_kLanguages, ptr noundef null, ptr noundef nonnull %localeBuffer.i.i, ptr noundef nonnull %localeBuffer.i.i, ptr noundef %p.4, i32 noundef %cap.0, ptr noundef nonnull %pErrorCode) to label %invoke.cont87 unwind label %lpad86 -invoke.cont87.sink.split: ; preds = %call7.i.i.noexc, %lor.lhs.false2.i.i +invoke.cont87.sink.split: ; preds = %call7.i.i.noexc, %if.end.i.i store i32 1, ptr %pErrorCode, align 4 br label %invoke.cont87 @@ -1978,27 +1979,27 @@ invoke.cont87: ; preds = %invoke.cont87.sink. %retval.0.i.i = phi i32 [ 0, %lor.lhs.false.i.i ], [ %call26.i.i158, %if.end22.i.i ], [ 0, %invoke.cont87.sink.split ] call void @llvm.lifetime.end.p0(i64 628, ptr nonnull %localeBuffer.i.i) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %localStatus.i.i) - %add = add nsw i32 %retval.0.i.i, %length.1297 + %add = add nsw i32 %retval.0.i.i, %length.1293 %cmp89 = icmp sgt i32 %retval.0.i.i, 0 %conv90 = zext i1 %cmp89 to i8 br label %if.end201 -lpad86: ; preds = %if.end6.i, %if.then.i239, %if.end22.i.i228, %if.then15.i.i229, %if.end6.i.i222, %if.end22.i.i200, %if.then15.i.i201, %if.end6.i.i194, %if.end22.i.i173, %if.then15.i.i174, %if.end6.i.i167, %if.end22.i.i, %if.end6.i.i, %if.then251, %if.end136, %sw.default, %sw.bb105 +lpad86: ; preds = %if.end6.i, %if.then.i235, %if.end22.i.i224, %if.then15.i.i225, %if.end6.i.i218, %if.end22.i.i198, %if.then15.i.i199, %if.end6.i.i192, %if.end22.i.i173, %if.then15.i.i174, %if.end6.i.i167, %if.end22.i.i, %if.end6.i.i, %if.then251, %if.end136, %sw.default, %sw.bb105 %12 = landingpad { ptr, i32 } cleanup call void @_ZN6icu_7524LocalUEnumerationPointerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %kenum) #12 br label %eh.resume if.else92: ; preds = %for.body - %tobool93.not = icmp eq i8 %haveRest.1286, 0 + %tobool93.not = icmp eq i8 %haveRest.1282, 0 br i1 %tobool93.not, label %if.end201, label %if.else95 if.else95: ; preds = %if.else92 - %inc96 = add nsw i32 %resti.0296, 1 - switch i32 %resti.0296, label %if.else95.sw.default_crit_edge [ + %inc96 = add nsw i32 %resti.0292, 1 + switch i32 %resti.0292, label %if.else95.sw.default_crit_edge [ i32 0, label %sw.bb i32 1, label %lor.lhs.false.i.i185 - i32 2, label %lor.lhs.false.i.i213 + i32 2, label %lor.lhs.false.i.i211 i32 3, label %sw.bb105 ] @@ -2014,8 +2015,9 @@ sw.bb: ; preds = %if.else95 br i1 %cmp.i.i.i161, label %if.end.i.i163, label %invoke.cont97 if.end.i.i163: ; preds = %sw.bb + %cmp3.i.i164 = icmp sgt i32 %sub, 0 %cmp4.i.i165 = icmp eq ptr %p.4, null - %or.cond.i.i166 = and i1 %cmp77, %cmp4.i.i165 + %or.cond.i.i166 = and i1 %cmp3.i.i164, %cmp4.i.i165 br i1 %or.cond.i.i166, label %invoke.cont97.sink.split, label %if.end6.i.i167 if.end6.i.i167: ; preds = %if.end.i.i163 @@ -2057,91 +2059,93 @@ lor.lhs.false.i.i185: ; preds = %if.else95 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %localStatus.i.i183) %15 = load i32, ptr %pErrorCode, align 4 %cmp.i.i.i186 = icmp slt i32 %15, 1 - br i1 %cmp.i.i.i186, label %lor.lhs.false2.i.i190, label %invoke.cont100 + br i1 %cmp.i.i.i186, label %if.end.i.i188, label %invoke.cont100 -lor.lhs.false2.i.i190: ; preds = %lor.lhs.false.i.i185 - %cmp4.i.i192 = icmp eq ptr %p.4, null - %or.cond.i.i193 = and i1 %cmp77, %cmp4.i.i192 - br i1 %or.cond.i.i193, label %invoke.cont100.sink.split, label %if.end6.i.i194 +if.end.i.i188: ; preds = %lor.lhs.false.i.i185 + %cmp3.i.i189 = icmp sgt i32 %sub, 0 + %cmp4.i.i190 = icmp eq ptr %p.4, null + %or.cond.i.i191 = and i1 %cmp3.i.i189, %cmp4.i.i190 + br i1 %or.cond.i.i191, label %invoke.cont100.sink.split, label %if.end6.i.i192 -if.end6.i.i194: ; preds = %lor.lhs.false2.i.i190 +if.end6.i.i192: ; preds = %if.end.i.i188 store i32 0, ptr %localStatus.i.i183, align 4 - %call7.i.i205 = invoke noundef i32 @uloc_getCountry_75(ptr noundef %locale, ptr noundef nonnull %localeBuffer.i.i182, i32 noundef 628, ptr noundef nonnull %localStatus.i.i183) - to label %call7.i.i.noexc204 unwind label %lpad86 + %call7.i.i203 = invoke noundef i32 @uloc_getCountry_75(ptr noundef %locale, ptr noundef nonnull %localeBuffer.i.i182, i32 noundef 628, ptr noundef nonnull %localStatus.i.i183) + to label %call7.i.i.noexc202 unwind label %lpad86 -call7.i.i.noexc204: ; preds = %if.end6.i.i194 +call7.i.i.noexc202: ; preds = %if.end6.i.i192 %16 = load i32, ptr %localStatus.i.i183, align 4 - %cmp.i14.i.i195 = icmp sgt i32 %16, 0 - %cmp11.i.i196 = icmp eq i32 %16, -124 - %or.cond1.i.i197 = or i1 %cmp.i14.i.i195, %cmp11.i.i196 - br i1 %or.cond1.i.i197, label %invoke.cont100.sink.split, label %if.end13.i.i198 + %cmp.i14.i.i193 = icmp sgt i32 %16, 0 + %cmp11.i.i194 = icmp eq i32 %16, -124 + %or.cond1.i.i195 = or i1 %cmp.i14.i.i193, %cmp11.i.i194 + br i1 %or.cond1.i.i195, label %invoke.cont100.sink.split, label %if.end13.i.i196 -if.end13.i.i198: ; preds = %call7.i.i.noexc204 - %cmp14.i.i199 = icmp eq i32 %call7.i.i205, 0 - br i1 %cmp14.i.i199, label %if.then15.i.i201, label %if.end22.i.i200 +if.end13.i.i196: ; preds = %call7.i.i.noexc202 + %cmp14.i.i197 = icmp eq i32 %call7.i.i203, 0 + br i1 %cmp14.i.i197, label %if.then15.i.i199, label %if.end22.i.i198 -if.then15.i.i201: ; preds = %if.end13.i.i198 - %call20.i.i207 = invoke i32 @u_terminateUChars_75(ptr noundef %p.4, i32 noundef %cap.0, i32 noundef 0, ptr noundef nonnull %pErrorCode) +if.then15.i.i199: ; preds = %if.end13.i.i196 + %call20.i.i205 = invoke i32 @u_terminateUChars_75(ptr noundef %p.4, i32 noundef %cap.0, i32 noundef 0, ptr noundef nonnull %pErrorCode) to label %invoke.cont100 unwind label %lpad86 -if.end22.i.i200: ; preds = %if.end13.i.i198 - %call26.i.i209 = invoke fastcc noundef i32 @_ZL19_getStringOrCopyKeyPKcS0_S0_S0_S0_S0_PDsiP10UErrorCode(ptr noundef nonnull @.str.3, ptr noundef %displayLocale, ptr noundef nonnull @_ZL11_kCountries, ptr noundef null, ptr noundef nonnull %localeBuffer.i.i182, ptr noundef nonnull %localeBuffer.i.i182, ptr noundef %p.4, i32 noundef %cap.0, ptr noundef nonnull %pErrorCode) +if.end22.i.i198: ; preds = %if.end13.i.i196 + %call26.i.i207 = invoke fastcc noundef i32 @_ZL19_getStringOrCopyKeyPKcS0_S0_S0_S0_S0_PDsiP10UErrorCode(ptr noundef nonnull @.str.3, ptr noundef %displayLocale, ptr noundef nonnull @_ZL11_kCountries, ptr noundef null, ptr noundef nonnull %localeBuffer.i.i182, ptr noundef nonnull %localeBuffer.i.i182, ptr noundef %p.4, i32 noundef %cap.0, ptr noundef nonnull %pErrorCode) to label %invoke.cont100 unwind label %lpad86 -invoke.cont100.sink.split: ; preds = %call7.i.i.noexc204, %lor.lhs.false2.i.i190 +invoke.cont100.sink.split: ; preds = %call7.i.i.noexc202, %if.end.i.i188 store i32 1, ptr %pErrorCode, align 4 br label %invoke.cont100 -invoke.cont100: ; preds = %invoke.cont100.sink.split, %lor.lhs.false.i.i185, %if.then15.i.i201, %if.end22.i.i200 - %retval.0.i.i187 = phi i32 [ 0, %lor.lhs.false.i.i185 ], [ %call20.i.i207, %if.then15.i.i201 ], [ %call26.i.i209, %if.end22.i.i200 ], [ 0, %invoke.cont100.sink.split ] +invoke.cont100: ; preds = %invoke.cont100.sink.split, %lor.lhs.false.i.i185, %if.then15.i.i199, %if.end22.i.i198 + %retval.0.i.i187 = phi i32 [ 0, %lor.lhs.false.i.i185 ], [ %call20.i.i205, %if.then15.i.i199 ], [ %call26.i.i207, %if.end22.i.i198 ], [ 0, %invoke.cont100.sink.split ] call void @llvm.lifetime.end.p0(i64 628, ptr nonnull %localeBuffer.i.i182) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %localStatus.i.i183) br label %sw.epilog -lor.lhs.false.i.i213: ; preds = %if.else95 - call void @llvm.lifetime.start.p0(i64 628, ptr nonnull %localeBuffer.i.i210) - call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %localStatus.i.i211) +lor.lhs.false.i.i211: ; preds = %if.else95 + call void @llvm.lifetime.start.p0(i64 628, ptr nonnull %localeBuffer.i.i208) + call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %localStatus.i.i209) %17 = load i32, ptr %pErrorCode, align 4 - %cmp.i.i.i214 = icmp slt i32 %17, 1 - br i1 %cmp.i.i.i214, label %lor.lhs.false2.i.i218, label %invoke.cont103 - -lor.lhs.false2.i.i218: ; preds = %lor.lhs.false.i.i213 - %cmp4.i.i220 = icmp eq ptr %p.4, null - %or.cond.i.i221 = and i1 %cmp77, %cmp4.i.i220 - br i1 %or.cond.i.i221, label %invoke.cont103.sink.split, label %if.end6.i.i222 - -if.end6.i.i222: ; preds = %lor.lhs.false2.i.i218 - store i32 0, ptr %localStatus.i.i211, align 4 - %call7.i.i233 = invoke noundef i32 @uloc_getVariant_75(ptr noundef %locale, ptr noundef nonnull %localeBuffer.i.i210, i32 noundef 628, ptr noundef nonnull %localStatus.i.i211) - to label %call7.i.i.noexc232 unwind label %lpad86 - -call7.i.i.noexc232: ; preds = %if.end6.i.i222 - %18 = load i32, ptr %localStatus.i.i211, align 4 - %cmp.i14.i.i223 = icmp sgt i32 %18, 0 - %cmp11.i.i224 = icmp eq i32 %18, -124 - %or.cond1.i.i225 = or i1 %cmp.i14.i.i223, %cmp11.i.i224 - br i1 %or.cond1.i.i225, label %invoke.cont103.sink.split, label %if.end13.i.i226 - -if.end13.i.i226: ; preds = %call7.i.i.noexc232 - %cmp14.i.i227 = icmp eq i32 %call7.i.i233, 0 - br i1 %cmp14.i.i227, label %if.then15.i.i229, label %if.end22.i.i228 - -if.then15.i.i229: ; preds = %if.end13.i.i226 - %call20.i.i235 = invoke i32 @u_terminateUChars_75(ptr noundef %p.4, i32 noundef %cap.0, i32 noundef 0, ptr noundef nonnull %pErrorCode) + %cmp.i.i.i212 = icmp slt i32 %17, 1 + br i1 %cmp.i.i.i212, label %if.end.i.i214, label %invoke.cont103 + +if.end.i.i214: ; preds = %lor.lhs.false.i.i211 + %cmp3.i.i215 = icmp sgt i32 %sub, 0 + %cmp4.i.i216 = icmp eq ptr %p.4, null + %or.cond.i.i217 = and i1 %cmp3.i.i215, %cmp4.i.i216 + br i1 %or.cond.i.i217, label %invoke.cont103.sink.split, label %if.end6.i.i218 + +if.end6.i.i218: ; preds = %if.end.i.i214 + store i32 0, ptr %localStatus.i.i209, align 4 + %call7.i.i229 = invoke noundef i32 @uloc_getVariant_75(ptr noundef %locale, ptr noundef nonnull %localeBuffer.i.i208, i32 noundef 628, ptr noundef nonnull %localStatus.i.i209) + to label %call7.i.i.noexc228 unwind label %lpad86 + +call7.i.i.noexc228: ; preds = %if.end6.i.i218 + %18 = load i32, ptr %localStatus.i.i209, align 4 + %cmp.i14.i.i219 = icmp sgt i32 %18, 0 + %cmp11.i.i220 = icmp eq i32 %18, -124 + %or.cond1.i.i221 = or i1 %cmp.i14.i.i219, %cmp11.i.i220 + br i1 %or.cond1.i.i221, label %invoke.cont103.sink.split, label %if.end13.i.i222 + +if.end13.i.i222: ; preds = %call7.i.i.noexc228 + %cmp14.i.i223 = icmp eq i32 %call7.i.i229, 0 + br i1 %cmp14.i.i223, label %if.then15.i.i225, label %if.end22.i.i224 + +if.then15.i.i225: ; preds = %if.end13.i.i222 + %call20.i.i231 = invoke i32 @u_terminateUChars_75(ptr noundef %p.4, i32 noundef %cap.0, i32 noundef 0, ptr noundef nonnull %pErrorCode) to label %invoke.cont103 unwind label %lpad86 -if.end22.i.i228: ; preds = %if.end13.i.i226 - %call26.i.i237 = invoke fastcc noundef i32 @_ZL19_getStringOrCopyKeyPKcS0_S0_S0_S0_S0_PDsiP10UErrorCode(ptr noundef nonnull @.str, ptr noundef %displayLocale, ptr noundef nonnull @_ZL10_kVariants, ptr noundef null, ptr noundef nonnull %localeBuffer.i.i210, ptr noundef nonnull %localeBuffer.i.i210, ptr noundef %p.4, i32 noundef %cap.0, ptr noundef nonnull %pErrorCode) +if.end22.i.i224: ; preds = %if.end13.i.i222 + %call26.i.i233 = invoke fastcc noundef i32 @_ZL19_getStringOrCopyKeyPKcS0_S0_S0_S0_S0_PDsiP10UErrorCode(ptr noundef nonnull @.str, ptr noundef %displayLocale, ptr noundef nonnull @_ZL10_kVariants, ptr noundef null, ptr noundef nonnull %localeBuffer.i.i208, ptr noundef nonnull %localeBuffer.i.i208, ptr noundef %p.4, i32 noundef %cap.0, ptr noundef nonnull %pErrorCode) to label %invoke.cont103 unwind label %lpad86 -invoke.cont103.sink.split: ; preds = %call7.i.i.noexc232, %lor.lhs.false2.i.i218 +invoke.cont103.sink.split: ; preds = %call7.i.i.noexc228, %if.end.i.i214 store i32 1, ptr %pErrorCode, align 4 br label %invoke.cont103 -invoke.cont103: ; preds = %invoke.cont103.sink.split, %lor.lhs.false.i.i213, %if.then15.i.i229, %if.end22.i.i228 - %retval.0.i.i215 = phi i32 [ 0, %lor.lhs.false.i.i213 ], [ %call20.i.i235, %if.then15.i.i229 ], [ %call26.i.i237, %if.end22.i.i228 ], [ 0, %invoke.cont103.sink.split ] - call void @llvm.lifetime.end.p0(i64 628, ptr nonnull %localeBuffer.i.i210) - call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %localStatus.i.i211) +invoke.cont103: ; preds = %invoke.cont103.sink.split, %lor.lhs.false.i.i211, %if.then15.i.i225, %if.end22.i.i224 + %retval.0.i.i213 = phi i32 [ 0, %lor.lhs.false.i.i211 ], [ %call20.i.i231, %if.then15.i.i225 ], [ %call26.i.i233, %if.end22.i.i224 ], [ 0, %invoke.cont103.sink.split ] + call void @llvm.lifetime.end.p0(i64 628, ptr nonnull %localeBuffer.i.i208) + call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %localStatus.i.i209) br label %sw.epilog sw.bb105: ; preds = %if.else95 @@ -2150,14 +2154,14 @@ sw.bb105: ; preds = %if.else95 invoke.cont106: ; preds = %sw.bb105 %19 = load ptr, ptr %kenum, align 8 - %cmp.not.i238 = icmp eq ptr %19, null - br i1 %cmp.not.i238, label %_ZN6icu_7524LocalUEnumerationPointer12adoptInsteadEP12UEnumeration.exit, label %if.then.i239 + %cmp.not.i234 = icmp eq ptr %19, null + br i1 %cmp.not.i234, label %_ZN6icu_7524LocalUEnumerationPointer12adoptInsteadEP12UEnumeration.exit, label %if.then.i235 -if.then.i239: ; preds = %invoke.cont106 +if.then.i235: ; preds = %invoke.cont106 invoke void @uenum_close_75(ptr noundef nonnull %19) to label %_ZN6icu_7524LocalUEnumerationPointer12adoptInsteadEP12UEnumeration.exit unwind label %lpad86 -_ZN6icu_7524LocalUEnumerationPointer12adoptInsteadEP12UEnumeration.exit: ; preds = %if.then.i239, %invoke.cont106 +_ZN6icu_7524LocalUEnumerationPointer12adoptInsteadEP12UEnumeration.exit: ; preds = %if.then.i235, %invoke.cont106 store ptr %call107, ptr %kenum, align 8 br label %sw.default @@ -2172,20 +2176,21 @@ invoke.cont111: ; preds = %sw.default lor.lhs.false.i: ; preds = %invoke.cont111 %21 = load i32, ptr %pErrorCode, align 4 - %cmp.i.i241 = icmp slt i32 %21, 1 - br i1 %cmp.i.i241, label %lor.lhs.false2.i, label %invoke.cont116.thread + %cmp.i.i237 = icmp slt i32 %21, 1 + br i1 %cmp.i.i237, label %if.end.i, label %invoke.cont116.thread -lor.lhs.false2.i: ; preds = %lor.lhs.false.i +if.end.i: ; preds = %lor.lhs.false.i + %cmp3.i = icmp sgt i32 %sub, 0 %cmp4.i = icmp eq ptr %p.4, null - %or.cond.i = and i1 %cmp77, %cmp4.i + %or.cond.i = and i1 %cmp3.i, %cmp4.i br i1 %or.cond.i, label %if.then5.i, label %if.end6.i -if.then5.i: ; preds = %lor.lhs.false2.i +if.then5.i: ; preds = %if.end.i store i32 1, ptr %pErrorCode, align 4 br label %invoke.cont116.thread -if.end6.i: ; preds = %lor.lhs.false2.i - %call7.i242 = invoke fastcc noundef i32 @_ZL19_getStringOrCopyKeyPKcS0_S0_S0_S0_S0_PDsiP10UErrorCode(ptr noundef nonnull @.str, ptr noundef %displayLocale, ptr noundef nonnull @_ZL6_kKeys, ptr noundef null, ptr noundef nonnull %call112, ptr noundef nonnull %call112, ptr noundef %p.4, i32 noundef %cap.0, ptr noundef nonnull %pErrorCode) +if.end6.i: ; preds = %if.end.i + %call7.i238 = invoke fastcc noundef i32 @_ZL19_getStringOrCopyKeyPKcS0_S0_S0_S0_S0_PDsiP10UErrorCode(ptr noundef nonnull @.str, ptr noundef %displayLocale, ptr noundef nonnull @_ZL6_kKeys, ptr noundef null, ptr noundef nonnull %call112, ptr noundef nonnull %call112, ptr noundef %p.4, i32 noundef %cap.0, ptr noundef nonnull %pErrorCode) to label %invoke.cont116 unwind label %lpad86 invoke.cont116.thread: ; preds = %if.then5.i, %lor.lhs.false.i @@ -2193,23 +2198,23 @@ invoke.cont116.thread: ; preds = %if.then5.i, %lor.lh br label %if.end133 invoke.cont116: ; preds = %if.end6.i - store i32 %call7.i242, ptr %len, align 4 - %tobool118.not = icmp eq i32 %call7.i242, 0 + store i32 %call7.i238, ptr %len, align 4 + %tobool118.not = icmp eq i32 %call7.i238, 0 br i1 %tobool118.not, label %if.end133, label %if.then119 if.then119: ; preds = %invoke.cont116 - %cmp120 = icmp slt i32 %call7.i242, %cap.0 + %cmp120 = icmp slt i32 %call7.i238, %cap.0 br i1 %cmp120, label %if.then121, label %if.end124 if.then121: ; preds = %if.then119 - %idxprom122 = sext i32 %call7.i242 to i64 + %idxprom122 = sext i32 %call7.i238 to i64 %arrayidx123 = getelementptr inbounds i16, ptr %p.4, i64 %idxprom122 store i16 61, ptr %arrayidx123, align 2 - %.pre307 = load i32, ptr %len, align 4 + %.pre303 = load i32, ptr %len, align 4 br label %if.end124 if.end124: ; preds = %if.then121, %if.then119 - %22 = phi i32 [ %.pre307, %if.then121 ], [ %call7.i242, %if.then119 ] + %22 = phi i32 [ %.pre303, %if.then121 ], [ %call7.i238, %if.then119 ] %add125 = add nsw i32 %22, 1 store i32 %add125, ptr %len, align 4 %sub126 = sub nsw i32 %cap.0, %add125 @@ -2241,26 +2246,26 @@ invoke.cont137: ; preds = %if.end136 %tobool139.not = icmp eq i32 %24, 0 %cmp141 = icmp eq i32 %call138, 0 %dec = sext i1 %cmp141 to i32 - %spec.select310 = add nsw i32 %24, %dec - %spec.select260 = select i1 %cmp77, ptr %add.ptr80, ptr %p.7 - %25 = select i1 %tobool139.not, i32 0, i32 %spec.select310 - %p.8 = select i1 %tobool139.not, ptr %p.7, ptr %spec.select260 + %spec.select306 = add nsw i32 %24, %dec + %25 = select i1 %tobool139.not, i32 0, i32 %spec.select306 + %26 = select i1 %tobool139.not, i1 true, i1 %cmp77 + %p.8 = select i1 %26, ptr %p.7, ptr %add.ptr80 %cap.3 = select i1 %tobool139.not, i32 %cap.2, i32 %cap.0 %add152 = add nsw i32 %25, %call138 br label %sw.epilog sw.epilog: ; preds = %invoke.cont137, %invoke.cont103, %invoke.cont100, %invoke.cont97 - %add152.sink = phi i32 [ %add152, %invoke.cont137 ], [ %retval.0.i.i215, %invoke.cont103 ], [ %retval.0.i.i187, %invoke.cont100 ], [ %retval.0.i.i162, %invoke.cont97 ] + %add152.sink = phi i32 [ %add152, %invoke.cont137 ], [ %retval.0.i.i213, %invoke.cont103 ], [ %retval.0.i.i187, %invoke.cont100 ], [ %retval.0.i.i162, %invoke.cont97 ] %p.6 = phi ptr [ %p.8, %invoke.cont137 ], [ %p.4, %invoke.cont103 ], [ %p.4, %invoke.cont100 ], [ %p.4, %invoke.cont97 ] - %restPos.2 = phi i32 [ %restPos.0294, %invoke.cont137 ], [ %restPos.0294, %invoke.cont103 ], [ %restPos.0294, %invoke.cont100 ], [ %length.1297, %invoke.cont97 ] + %restPos.2 = phi i32 [ %restPos.0290, %invoke.cont137 ], [ %restPos.0290, %invoke.cont103 ], [ %restPos.0290, %invoke.cont100 ], [ %length.1293, %invoke.cont97 ] %cap.1 = phi i32 [ %cap.3, %invoke.cont137 ], [ %cap.0, %invoke.cont103 ], [ %cap.0, %invoke.cont100 ], [ %cap.0, %invoke.cont97 ] store i32 %add152.sink, ptr %len, align 4 %cmp154 = icmp sgt i32 %add152.sink, 0 br i1 %cmp154, label %if.then155, label %if.end201 if.then155: ; preds = %sw.epilog - %26 = load i32, ptr %sepLen, align 4 - %add156 = add nsw i32 %26, %add152.sink + %27 = load i32, ptr %sepLen, align 4 + %add156 = add nsw i32 %27, %add152.sink %cmp157.not = icmp sgt i32 %add156, %cap.1 br i1 %cmp157.not, label %if.end185, label %for.body163.preheader @@ -2270,14 +2275,14 @@ for.body163.preheader: ; preds = %if.then155 br label %for.body163 for.cond176.preheader: ; preds = %for.inc - %.pre308 = load i32, ptr %sepLen, align 4 - %cmp177275 = icmp sgt i32 %.pre308, 0 - br i1 %cmp177275, label %for.body178, label %if.end185 + %.pre304 = load i32, ptr %sepLen, align 4 + %cmp177271 = icmp sgt i32 %.pre304, 0 + br i1 %cmp177271, label %for.body178, label %if.end185 for.body163: ; preds = %for.body163.preheader, %for.inc - %p.10273 = phi ptr [ %incdec.ptr175, %for.inc ], [ %p.6, %for.body163.preheader ] - %27 = load i16, ptr %p.10273, align 2 - %conv164 = zext i16 %27 to i32 + %p.10269 = phi ptr [ %incdec.ptr175, %for.inc ], [ %p.6, %for.body163.preheader ] + %28 = load i16, ptr %p.10269, align 2 + %conv164 = zext i16 %28 to i32 %cmp166 = icmp eq i32 %formatOpenParen.0, %conv164 br i1 %cmp166, label %for.inc.sink.split, label %if.else168 @@ -2287,59 +2292,59 @@ if.else168: ; preds = %for.body163 for.inc.sink.split: ; preds = %if.else168, %for.body163 %formatReplaceOpenParen.0.sink = phi i16 [ %formatReplaceOpenParen.0, %for.body163 ], [ %formatReplaceCloseParen.0, %if.else168 ] - store i16 %formatReplaceOpenParen.0.sink, ptr %p.10273, align 2 + store i16 %formatReplaceOpenParen.0.sink, ptr %p.10269, align 2 br label %for.inc for.inc: ; preds = %for.inc.sink.split, %if.else168 - %incdec.ptr175 = getelementptr inbounds nuw i8, ptr %p.10273, i64 2 + %incdec.ptr175 = getelementptr inbounds nuw i8, ptr %p.10269, i64 2 %cmp162 = icmp ult ptr %incdec.ptr175, %add.ptr160 br i1 %cmp162, label %for.body163, label %for.cond176.preheader, !llvm.loop !7 for.body178: ; preds = %for.cond176.preheader, %for.body178 - %indvars.iv300 = phi i64 [ %indvars.iv.next301, %for.body178 ], [ 0, %for.cond176.preheader ] - %p.11276 = phi ptr [ %incdec.ptr181, %for.body178 ], [ %incdec.ptr175, %for.cond176.preheader ] - %arrayidx180 = getelementptr inbounds nuw i16, ptr %add.ptr, i64 %indvars.iv300 - %28 = load i16, ptr %arrayidx180, align 2 - %incdec.ptr181 = getelementptr inbounds nuw i8, ptr %p.11276, i64 2 - store i16 %28, ptr %p.11276, align 2 - %indvars.iv.next301 = add nuw nsw i64 %indvars.iv300, 1 - %29 = load i32, ptr %sepLen, align 4 - %30 = sext i32 %29 to i64 - %cmp177 = icmp slt i64 %indvars.iv.next301, %30 + %indvars.iv296 = phi i64 [ %indvars.iv.next297, %for.body178 ], [ 0, %for.cond176.preheader ] + %p.11272 = phi ptr [ %incdec.ptr181, %for.body178 ], [ %incdec.ptr175, %for.cond176.preheader ] + %arrayidx180 = getelementptr inbounds nuw i16, ptr %add.ptr, i64 %indvars.iv296 + %29 = load i16, ptr %arrayidx180, align 2 + %incdec.ptr181 = getelementptr inbounds nuw i8, ptr %p.11272, i64 2 + store i16 %29, ptr %p.11272, align 2 + %indvars.iv.next297 = add nuw nsw i64 %indvars.iv296, 1 + %30 = load i32, ptr %sepLen, align 4 + %31 = sext i32 %30 to i64 + %cmp177 = icmp slt i64 %indvars.iv.next297, %31 br i1 %cmp177, label %for.body178, label %if.end185, !llvm.loop !8 if.end185: ; preds = %for.body178, %for.cond176.preheader, %if.then155 - %31 = phi i32 [ %26, %if.then155 ], [ %.pre308, %for.cond176.preheader ], [ %29, %for.body178 ] + %32 = phi i32 [ %27, %if.then155 ], [ %.pre304, %for.cond176.preheader ], [ %30, %for.body178 ] %p.9 = phi ptr [ %p.6, %if.then155 ], [ %incdec.ptr175, %for.cond176.preheader ], [ %incdec.ptr181, %for.body178 ] - %32 = load i32, ptr %len, align 4 - %add186 = add i32 %32, %length.1297 - %add187 = add i32 %add186, %31 + %33 = load i32, ptr %len, align 4 + %add186 = add i32 %33, %length.1293 + %add187 = add i32 %add186, %32 br label %if.end201 if.then190: ; preds = %invoke.cont111 store i32 0, ptr %len, align 4 - %cmp191.not = icmp eq i32 %length.1297, %restPos.0294 - %33 = load i32, ptr %sepLen, align 4 - %sub193 = select i1 %cmp191.not, i32 0, i32 %33 - %length.4 = sub nsw i32 %length.1297, %sub193 - %sub195 = sub nsw i32 %length.4, %restPos.0294 + %cmp191.not = icmp eq i32 %length.1293, %restPos.0290 + %34 = load i32, ptr %sepLen, align 4 + %sub193 = select i1 %cmp191.not, i32 0, i32 %34 + %length.4 = sub nsw i32 %length.1293, %sub193 + %sub195 = sub nsw i32 %length.4, %restPos.0290 %cmp196 = icmp sgt i32 %sub195, 0 %conv197 = zext i1 %cmp196 to i8 br label %if.end201 if.end201: ; preds = %sw.epilog, %if.else92, %if.then83, %invoke.cont87, %if.then190, %if.end185 - %haveLang.3 = phi i8 [ %haveLang.1285, %if.end185 ], [ %haveLang.1285, %if.then190 ], [ %conv90, %invoke.cont87 ], [ 0, %if.then83 ], [ %haveLang.1285, %if.else92 ], [ %haveLang.1285, %sw.epilog ] - %haveRest.2 = phi i8 [ 1, %if.end185 ], [ %conv197, %if.then190 ], [ %haveRest.1286, %invoke.cont87 ], [ %haveRest.1286, %if.then83 ], [ 0, %if.else92 ], [ 1, %sw.epilog ] + %haveLang.3 = phi i8 [ %haveLang.1281, %if.end185 ], [ %haveLang.1281, %if.then190 ], [ %conv90, %invoke.cont87 ], [ 0, %if.then83 ], [ %haveLang.1281, %if.else92 ], [ %haveLang.1281, %sw.epilog ] + %haveRest.2 = phi i8 [ 1, %if.end185 ], [ %conv197, %if.then190 ], [ %haveRest.1282, %invoke.cont87 ], [ %haveRest.1282, %if.then83 ], [ 0, %if.else92 ], [ 1, %sw.epilog ] %p.5 = phi ptr [ %p.9, %if.end185 ], [ %p.4, %if.then190 ], [ %p.4, %invoke.cont87 ], [ %p.4, %if.then83 ], [ %p.4, %if.else92 ], [ %p.6, %sw.epilog ] - %langLen.2 = phi i32 [ %langLen.0291, %if.end185 ], [ %langLen.0291, %if.then190 ], [ %retval.0.i.i, %invoke.cont87 ], [ %langLen.0291, %if.then83 ], [ %langLen.0291, %if.else92 ], [ %langLen.0291, %sw.epilog ] - %langPos.2 = phi i32 [ %langPos.0292, %if.end185 ], [ %langPos.0292, %if.then190 ], [ %length.1297, %invoke.cont87 ], [ %langPos.0292, %if.then83 ], [ %langPos.0292, %if.else92 ], [ %langPos.0292, %sw.epilog ] - %restLen.1 = phi i32 [ %restLen.0293, %if.end185 ], [ %sub195, %if.then190 ], [ %restLen.0293, %invoke.cont87 ], [ %restLen.0293, %if.then83 ], [ %restLen.0293, %if.else92 ], [ %restLen.0293, %sw.epilog ] - %restPos.1 = phi i32 [ %restPos.2, %if.end185 ], [ %restPos.0294, %if.then190 ], [ %restPos.0294, %invoke.cont87 ], [ %restPos.0294, %if.then83 ], [ %restPos.0294, %if.else92 ], [ %restPos.2, %sw.epilog ] - %resti.1 = phi i32 [ %inc96, %if.end185 ], [ %inc96, %if.then190 ], [ %resti.0296, %invoke.cont87 ], [ %resti.0296, %if.then83 ], [ %resti.0296, %if.else92 ], [ %inc96, %sw.epilog ] + %langLen.2 = phi i32 [ %langLen.0287, %if.end185 ], [ %langLen.0287, %if.then190 ], [ %retval.0.i.i, %invoke.cont87 ], [ %langLen.0287, %if.then83 ], [ %langLen.0287, %if.else92 ], [ %langLen.0287, %sw.epilog ] + %langPos.2 = phi i32 [ %langPos.0288, %if.end185 ], [ %langPos.0288, %if.then190 ], [ %length.1293, %invoke.cont87 ], [ %langPos.0288, %if.then83 ], [ %langPos.0288, %if.else92 ], [ %langPos.0288, %sw.epilog ] + %restLen.1 = phi i32 [ %restLen.0289, %if.end185 ], [ %sub195, %if.then190 ], [ %restLen.0289, %invoke.cont87 ], [ %restLen.0289, %if.then83 ], [ %restLen.0289, %if.else92 ], [ %restLen.0289, %sw.epilog ] + %restPos.1 = phi i32 [ %restPos.2, %if.end185 ], [ %restPos.0290, %if.then190 ], [ %restPos.0290, %invoke.cont87 ], [ %restPos.0290, %if.then83 ], [ %restPos.0290, %if.else92 ], [ %restPos.2, %sw.epilog ] + %resti.1 = phi i32 [ %inc96, %if.end185 ], [ %inc96, %if.then190 ], [ %resti.0292, %invoke.cont87 ], [ %resti.0292, %if.then83 ], [ %resti.0292, %if.else92 ], [ %inc96, %sw.epilog ] %subdone.0 = phi i1 [ true, %if.end185 ], [ false, %if.then190 ], [ false, %invoke.cont87 ], [ false, %if.then83 ], [ false, %if.else92 ], [ true, %sw.epilog ] - %length.3 = phi i32 [ %add187, %if.end185 ], [ %length.4, %if.then190 ], [ %add, %invoke.cont87 ], [ %length.1297, %if.then83 ], [ %length.1297, %if.else92 ], [ %length.1297, %sw.epilog ] - %34 = load i32, ptr %pErrorCode, align 4 - %cmp202 = icmp eq i32 %34, 15 + %length.3 = phi i32 [ %add187, %if.end185 ], [ %length.4, %if.then190 ], [ %add, %invoke.cont87 ], [ %length.1293, %if.then83 ], [ %length.1293, %if.else92 ], [ %length.1293, %sw.epilog ] + %35 = load i32, ptr %pErrorCode, align 4 + %cmp202 = icmp eq i32 %35, 15 br i1 %cmp202, label %if.then203, label %if.end204 if.then203: ; preds = %if.end201 @@ -2356,10 +2361,10 @@ if.then206: ; preds = %if.end204 br i1 %or.cond3, label %if.then210, label %if.else234 if.then210: ; preds = %if.then206 - %add211 = add nsw i32 %patPos.3290, 3 - %cmp212 = icmp eq i32 %subi.0295, 0 - %35 = load i32, ptr %patLen, align 4 - %cond = select i1 %cmp212, i32 %sub1Pos.0, i32 %35 + %add211 = add nsw i32 %patPos.3286, 3 + %cmp212 = icmp eq i32 %subi.0291, 0 + %36 = load i32, ptr %patLen, align 4 + %cond = select i1 %cmp212, i32 %sub1Pos.0, i32 %36 %sub213 = sub nsw i32 %cond, %add211 %add214 = add nsw i32 %sub213, %length.3 %cmp215.not = icmp sgt i32 %add214, %destCapacity @@ -2368,28 +2373,28 @@ if.then210: ; preds = %if.then206 if.then216: ; preds = %if.then210 %idx.ext217 = sext i32 %length.3 to i64 %add.ptr218 = getelementptr inbounds i16, ptr %dest, i64 %idx.ext217 - %cmp221279 = icmp sgt i32 %sub213, 0 - br i1 %cmp221279, label %for.body222.preheader, label %if.end266 + %cmp221275 = icmp sgt i32 %sub213, 0 + br i1 %cmp221275, label %for.body222.preheader, label %if.end266 for.body222.preheader: ; preds = %if.then216 - %36 = sext i32 %add211 to i64 + %37 = sext i32 %add211 to i64 br label %for.body222 for.body222: ; preds = %for.body222.preheader, %for.body222 - %indvars.iv303 = phi i64 [ %36, %for.body222.preheader ], [ %indvars.iv.next304, %for.body222 ] - %i219.0282 = phi i32 [ 0, %for.body222.preheader ], [ %inc228, %for.body222 ] - %p.13280 = phi ptr [ %add.ptr218, %for.body222.preheader ], [ %incdec.ptr226, %for.body222 ] - %indvars.iv.next304 = add nsw i64 %indvars.iv303, 1 - %arrayidx225 = getelementptr inbounds i16, ptr %pattern.0, i64 %indvars.iv303 - %37 = load i16, ptr %arrayidx225, align 2 - %incdec.ptr226 = getelementptr inbounds nuw i8, ptr %p.13280, i64 2 - store i16 %37, ptr %p.13280, align 2 - %inc228 = add nuw nsw i32 %i219.0282, 1 - %exitcond306.not = icmp eq i32 %inc228, %sub213 - br i1 %exitcond306.not, label %if.end266.loopexit, label %for.body222, !llvm.loop !9 + %indvars.iv299 = phi i64 [ %37, %for.body222.preheader ], [ %indvars.iv.next300, %for.body222 ] + %i219.0278 = phi i32 [ 0, %for.body222.preheader ], [ %inc228, %for.body222 ] + %p.13276 = phi ptr [ %add.ptr218, %for.body222.preheader ], [ %incdec.ptr226, %for.body222 ] + %indvars.iv.next300 = add nsw i64 %indvars.iv299, 1 + %arrayidx225 = getelementptr inbounds i16, ptr %pattern.0, i64 %indvars.iv299 + %38 = load i16, ptr %arrayidx225, align 2 + %incdec.ptr226 = getelementptr inbounds nuw i8, ptr %p.13276, i64 2 + store i16 %38, ptr %p.13276, align 2 + %inc228 = add nuw nsw i32 %i219.0278, 1 + %exitcond302.not = icmp eq i32 %inc228, %sub213 + br i1 %exitcond302.not, label %if.end266.loopexit, label %for.body222, !llvm.loop !9 if.else234: ; preds = %if.then206 - %cmp235 = icmp eq i32 %subi.0295, 0 + %cmp235 = icmp eq i32 %subi.0291, 0 br i1 %cmp235, label %if.end266, label %if.else237 if.else237: ; preds = %if.else234 @@ -2398,12 +2403,12 @@ if.else237: ; preds = %if.else234 if.then239: ; preds = %if.else237 %cond244 = select i1 %tobool207, i32 %langLen.2, i32 %restLen.1 - %cmp247 = icmp ne i32 %sub0Pos.3288, 0 + %cmp247 = icmp ne i32 %sub0Pos.3284, 0 %or.cond4 = select i1 %tobool245, i1 %cmp247, i1 false br i1 %or.cond4, label %if.then248, label %if.end266 if.then248: ; preds = %if.then239 - %add249 = add nsw i32 %cond244, %sub0Pos.3288 + %add249 = add nsw i32 %cond244, %sub0Pos.3284 %cmp250.not = icmp sgt i32 %add249, %destCapacity br i1 %cmp250.not, label %if.end266, label %if.then251 @@ -2415,45 +2420,45 @@ if.then251: ; preds = %if.then248 to label %if.end266 unwind label %lpad86 if.end266.loopexit: ; preds = %for.body222 - %38 = trunc nsw i64 %indvars.iv.next304 to i32 + %39 = trunc nsw i64 %indvars.iv.next300 to i32 br label %if.end266 if.end266: ; preds = %if.end266.loopexit, %if.then216, %if.then248, %if.else234, %if.then210, %if.then239, %if.then251, %if.else237 - %retry.3 = phi i8 [ %retry.1287, %if.then251 ], [ %retry.1287, %if.then239 ], [ %retry.1287, %if.else237 ], [ %retry.1287, %if.then210 ], [ %retry.1287, %if.else234 ], [ 1, %if.then248 ], [ %retry.1287, %if.then216 ], [ %retry.1287, %if.end266.loopexit ] - %sub0Pos.5 = phi i32 [ %sub0Pos.3288, %if.then251 ], [ %sub0Pos.3288, %if.then239 ], [ %sub0Pos.3288, %if.else237 ], [ %sub0Pos.3288, %if.then210 ], [ 0, %if.else234 ], [ 0, %if.then248 ], [ %sub0Pos.3288, %if.then216 ], [ %sub0Pos.3288, %if.end266.loopexit ] + %retry.3 = phi i8 [ %retry.1283, %if.then251 ], [ %retry.1283, %if.then239 ], [ %retry.1283, %if.else237 ], [ %retry.1283, %if.then210 ], [ %retry.1283, %if.else234 ], [ 1, %if.then248 ], [ %retry.1283, %if.then216 ], [ %retry.1283, %if.end266.loopexit ] + %sub0Pos.5 = phi i32 [ %sub0Pos.3284, %if.then251 ], [ %sub0Pos.3284, %if.then239 ], [ %sub0Pos.3284, %if.else237 ], [ %sub0Pos.3284, %if.then210 ], [ 0, %if.else234 ], [ 0, %if.then248 ], [ %sub0Pos.3284, %if.then216 ], [ %sub0Pos.3284, %if.end266.loopexit ] %p.15 = phi ptr [ %p.5, %if.then251 ], [ %p.5, %if.then239 ], [ %p.5, %if.else237 ], [ %p.5, %if.then210 ], [ %p.5, %if.else234 ], [ %p.5, %if.then248 ], [ %add.ptr218, %if.then216 ], [ %incdec.ptr226, %if.end266.loopexit ] - %patPos.7 = phi i32 [ %patPos.3290, %if.then251 ], [ %patPos.3290, %if.then239 ], [ %patPos.3290, %if.else237 ], [ %cond, %if.then210 ], [ %patPos.3290, %if.else234 ], [ %patPos.3290, %if.then248 ], [ %add211, %if.then216 ], [ %38, %if.end266.loopexit ] + %patPos.7 = phi i32 [ %patPos.3286, %if.then251 ], [ %patPos.3286, %if.then239 ], [ %patPos.3286, %if.else237 ], [ %cond, %if.then210 ], [ %patPos.3286, %if.else234 ], [ %patPos.3286, %if.then248 ], [ %add211, %if.then216 ], [ %39, %if.end266.loopexit ] %length.6 = phi i32 [ %cond244, %if.then251 ], [ %cond244, %if.then239 ], [ %length.3, %if.else237 ], [ %add214, %if.then210 ], [ 0, %if.else234 ], [ %cond244, %if.then248 ], [ %add214, %if.then216 ], [ %add214, %if.end266.loopexit ] - %inc267 = add nuw nsw i32 %subi.0295, 1 + %inc267 = add nuw nsw i32 %subi.0291, 1 br label %if.end268 if.end268: ; preds = %if.end266, %if.end204 - %retry.2 = phi i8 [ %retry.3, %if.end266 ], [ %retry.1287, %if.end204 ] - %sub0Pos.4 = phi i32 [ %sub0Pos.5, %if.end266 ], [ %sub0Pos.3288, %if.end204 ] + %retry.2 = phi i8 [ %retry.3, %if.end266 ], [ %retry.1283, %if.end204 ] + %sub0Pos.4 = phi i32 [ %sub0Pos.5, %if.end266 ], [ %sub0Pos.3284, %if.end204 ] %p.12 = phi ptr [ %p.15, %if.end266 ], [ %p.5, %if.end204 ] - %patPos.4 = phi i32 [ %patPos.7, %if.end266 ], [ %patPos.3290, %if.end204 ] - %subi.1 = phi i32 [ %inc267, %if.end266 ], [ %subi.0295, %if.end204 ] + %patPos.4 = phi i32 [ %patPos.7, %if.end266 ], [ %patPos.3286, %if.end204 ] + %subi.1 = phi i32 [ %inc267, %if.end266 ], [ %subi.0291, %if.end204 ] %length.5 = phi i32 [ %length.6, %if.end266 ], [ %length.3, %if.end204 ] %cmp76 = icmp slt i32 %subi.1, 2 br i1 %cmp76, label %for.body, label %for.end269, !llvm.loop !10 for.end269: ; preds = %if.end268 - %39 = load ptr, ptr %kenum, align 8 - %cmp.not.i243 = icmp eq ptr %39, null - br i1 %cmp.not.i243, label %_ZN6icu_7524LocalUEnumerationPointerD2Ev.exit, label %if.then.i244 + %40 = load ptr, ptr %kenum, align 8 + %cmp.not.i239 = icmp eq ptr %40, null + br i1 %cmp.not.i239, label %_ZN6icu_7524LocalUEnumerationPointerD2Ev.exit, label %if.then.i240 -if.then.i244: ; preds = %for.end269 - invoke void @uenum_close_75(ptr noundef nonnull %39) - to label %_ZN6icu_7524LocalUEnumerationPointerD2Ev.exit unwind label %terminate.lpad.i245 +if.then.i240: ; preds = %for.end269 + invoke void @uenum_close_75(ptr noundef nonnull %40) + to label %_ZN6icu_7524LocalUEnumerationPointerD2Ev.exit unwind label %terminate.lpad.i241 -terminate.lpad.i245: ; preds = %if.then.i244 - %40 = landingpad { ptr, i32 } +terminate.lpad.i241: ; preds = %if.then.i240 + %41 = landingpad { ptr, i32 } catch ptr null - %41 = extractvalue { ptr, i32 } %40, 0 - call void @__clang_call_terminate(ptr %41) #14 + %42 = extractvalue { ptr, i32 } %41, 0 + call void @__clang_call_terminate(ptr %42) #14 unreachable -_ZN6icu_7524LocalUEnumerationPointerD2Ev.exit: ; preds = %for.end269, %if.then.i244 +_ZN6icu_7524LocalUEnumerationPointerD2Ev.exit: ; preds = %for.end269, %if.then.i240 %tobool271.not = icmp eq i8 %retry.2, 0 br i1 %tobool271.not, label %do.end, label %do.body, !llvm.loop !11 diff --git a/bench/icu/optimized/nfrule.ll b/bench/icu/optimized/nfrule.ll index 90326aef1a2..2510eb89d9c 100644 --- a/bench/icu/optimized/nfrule.ll +++ b/bench/icu/optimized/nfrule.ll @@ -2992,9 +2992,8 @@ invoke.cont51.invoke: ; preds = %if.then47, %if.then to label %cleanup unwind label %lpad20 if.end54: ; preds = %if.end - %cmp56 = icmp slt i64 %30, 1 - %32 = uitofp nneg i64 %30 to double - %cond61 = select i1 %cmp56, double 0.000000e+00, double %32 + %cond61147 = call i64 @llvm.smax.i64(i64 %30, i64 0) + %cond61 = uitofp nneg i64 %cond61147 to double store ptr getelementptr inbounds nuw (i8, ptr @_ZTVN6icu_7513UnicodeStringE, i64 16), ptr %temp, align 8 %fUnion2.i78 = getelementptr inbounds nuw i8, ptr %temp, i64 8 store i16 2, ptr %fUnion2.i78, align 8 @@ -3019,92 +3018,92 @@ do.body: ; preds = %invoke.cont157, %if to label %.noexc85 unwind label %lpad63.loopexit .noexc85: ; preds = %do.body - %33 = load i16, ptr %fUnion2.i78, align 8 - %cmp.i.i.i81 = icmp slt i16 %33, 0 - %34 = ashr i16 %33, 5 - %shr.i.i.i82 = sext i16 %34 to i32 - %35 = load i32, ptr %fLength.i.i83, align 4 - %cond.i.i84 = select i1 %cmp.i.i.i81, i32 %35, i32 %shr.i.i.i82 + %32 = load i16, ptr %fUnion2.i78, align 8 + %cmp.i.i.i81 = icmp slt i16 %32, 0 + %33 = ashr i16 %32, 5 + %shr.i.i.i82 = sext i16 %33 to i32 + %34 = load i32, ptr %fLength.i.i83, align 4 + %cond.i.i84 = select i1 %cmp.i.i.i81, i32 %34, i32 %shr.i.i.i82 %call2.i87 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6icu_7513UnicodeString9doReplaceEiiRKS0_ii(ptr noundef nonnull align 8 dereferenceable(64) %temp, i32 noundef 0, i32 noundef %cond.i.i84, ptr noundef nonnull align 8 dereferenceable(64) %fRuleText19, i32 noundef %cond, i32 noundef %sub66) to label %invoke.cont67 unwind label %lpad63.loopexit invoke.cont67: ; preds = %.noexc85 - %36 = load ptr, ptr %sub1, align 8 - %call71 = invoke noundef double @_ZNK6icu_756NFRule16matchToDelimiterERKNS_13UnicodeStringEidS3_RNS_13ParsePositionEPKNS_14NFSubstitutionEjd(ptr noundef nonnull align 8 dereferenceable(112) %this, ptr noundef nonnull align 8 dereferenceable(64) %workText, i32 noundef %start.0, double noundef %cond61, ptr noundef nonnull align 8 dereferenceable(64) %temp, ptr noundef nonnull align 8 dereferenceable(16) %pp, ptr noundef %36, i32 noundef %nonNumericalExecutedRuleMask, double noundef %upperBound) + %35 = load ptr, ptr %sub1, align 8 + %call71 = invoke noundef double @_ZNK6icu_756NFRule16matchToDelimiterERKNS_13UnicodeStringEidS3_RNS_13ParsePositionEPKNS_14NFSubstitutionEjd(ptr noundef nonnull align 8 dereferenceable(112) %this, ptr noundef nonnull align 8 dereferenceable(64) %workText, i32 noundef %start.0, double noundef %cond61, ptr noundef nonnull align 8 dereferenceable(64) %temp, ptr noundef nonnull align 8 dereferenceable(16) %pp, ptr noundef %35, i32 noundef %nonNumericalExecutedRuleMask, double noundef %upperBound) to label %invoke.cont70 unwind label %lpad63.loopexit invoke.cont70: ; preds = %invoke.cont67 - %37 = load i32, ptr %index.i, align 8 - %cmp74.not = icmp ne i32 %37, 0 - %38 = load ptr, ptr %sub1, align 8 - %cmp76 = icmp eq ptr %38, null + %36 = load i32, ptr %index.i, align 8 + %cmp74.not = icmp ne i32 %36, 0 + %37 = load ptr, ptr %sub1, align 8 + %cmp76 = icmp eq ptr %37, null %or.cond43 = select i1 %cmp74.not, i1 true, i1 %cmp76 br i1 %or.cond43, label %invoke.cont84, label %if.else137 invoke.cont84: ; preds = %invoke.cont70 store ptr getelementptr inbounds nuw (i8, ptr @_ZTVN6icu_7513UnicodeStringE, i64 16), ptr %workText2, align 8 store i16 2, ptr %fUnion2.i91, align 8 - %39 = load i16, ptr %fUnion.i.i66, align 8 - %40 = load i32, ptr %fLength.i69, align 4 + %38 = load i16, ptr %fUnion.i.i66, align 8 + %39 = load i32, ptr %fLength.i69, align 4 invoke void @_ZN6icu_7513UnicodeString7unBogusEv(ptr noundef nonnull align 8 dereferenceable(64) %workText2) to label %.noexc104 unwind label %lpad81 .noexc104: ; preds = %invoke.cont84 - %cmp.i.i94 = icmp slt i16 %39, 0 - %41 = ashr i16 %39, 5 - %shr.i.i95 = sext i16 %41 to i32 - %cond.i97 = select i1 %cmp.i.i94, i32 %40, i32 %shr.i.i95 - %sub88 = sub nsw i32 %cond.i97, %37 - %42 = load i16, ptr %fUnion2.i91, align 8 - %cmp.i.i.i100 = icmp slt i16 %42, 0 - %43 = ashr i16 %42, 5 - %shr.i.i.i101 = sext i16 %43 to i32 - %44 = load i32, ptr %fLength.i.i102, align 4 - %cond.i.i103 = select i1 %cmp.i.i.i100, i32 %44, i32 %shr.i.i.i101 - %call2.i106 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6icu_7513UnicodeString9doReplaceEiiRKS0_ii(ptr noundef nonnull align 8 dereferenceable(64) %workText2, i32 noundef 0, i32 noundef %cond.i.i103, ptr noundef nonnull align 8 dereferenceable(64) %workText, i32 noundef %37, i32 noundef %sub88) + %cmp.i.i94 = icmp slt i16 %38, 0 + %40 = ashr i16 %38, 5 + %shr.i.i95 = sext i16 %40 to i32 + %cond.i97 = select i1 %cmp.i.i94, i32 %39, i32 %shr.i.i95 + %sub88 = sub nsw i32 %cond.i97, %36 + %41 = load i16, ptr %fUnion2.i91, align 8 + %cmp.i.i.i100 = icmp slt i16 %41, 0 + %42 = ashr i16 %41, 5 + %shr.i.i.i101 = sext i16 %42 to i32 + %43 = load i32, ptr %fLength.i.i102, align 4 + %cond.i.i103 = select i1 %cmp.i.i.i100, i32 %43, i32 %shr.i.i.i101 + %call2.i106 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6icu_7513UnicodeString9doReplaceEiiRKS0_ii(ptr noundef nonnull align 8 dereferenceable(64) %workText2, i32 noundef 0, i32 noundef %cond.i.i103, ptr noundef nonnull align 8 dereferenceable(64) %workText, i32 noundef %36, i32 noundef %sub88) to label %invoke.cont95 unwind label %lpad81 invoke.cont95: ; preds = %.noexc104 store ptr getelementptr inbounds nuw (i8, ptr @_ZTVN6icu_7513ParsePositionE, i64 16), ptr %pp2, align 8 store i32 0, ptr %index.i108, align 8 store i32 -1, ptr %errorIndex.i109, align 4 - %45 = load i16, ptr %fUnion.i.i110, align 8 - %46 = load i32, ptr %fLength.i113, align 4 + %44 = load i16, ptr %fUnion.i.i110, align 8 + %45 = load i32, ptr %fLength.i113, align 4 invoke void @_ZN6icu_7513UnicodeString7unBogusEv(ptr noundef nonnull align 8 dereferenceable(64) %temp) to label %.noexc120 unwind label %lpad94 .noexc120: ; preds = %invoke.cont95 - %cmp.i.i111 = icmp slt i16 %45, 0 - %47 = ashr i16 %45, 5 - %shr.i.i112 = sext i16 %47 to i32 - %cond.i114 = select i1 %cmp.i.i111, i32 %46, i32 %shr.i.i112 + %cmp.i.i111 = icmp slt i16 %44, 0 + %46 = ashr i16 %44, 5 + %shr.i.i112 = sext i16 %46 to i32 + %cond.i114 = select i1 %cmp.i.i111, i32 %45, i32 %shr.i.i112 %sub97 = sub nsw i32 %cond.i114, %cond17 - %48 = load i16, ptr %fUnion2.i78, align 8 - %cmp.i.i.i116 = icmp slt i16 %48, 0 - %49 = ashr i16 %48, 5 - %shr.i.i.i117 = sext i16 %49 to i32 - %50 = load i32, ptr %fLength.i.i83, align 4 - %cond.i.i119 = select i1 %cmp.i.i.i116, i32 %50, i32 %shr.i.i.i117 + %47 = load i16, ptr %fUnion2.i78, align 8 + %cmp.i.i.i116 = icmp slt i16 %47, 0 + %48 = ashr i16 %47, 5 + %shr.i.i.i117 = sext i16 %48 to i32 + %49 = load i32, ptr %fLength.i.i83, align 4 + %cond.i.i119 = select i1 %cmp.i.i.i116, i32 %49, i32 %shr.i.i.i117 %call2.i122 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6icu_7513UnicodeString9doReplaceEiiRKS0_ii(ptr noundef nonnull align 8 dereferenceable(64) %temp, i32 noundef 0, i32 noundef %cond.i.i119, ptr noundef nonnull align 8 dereferenceable(64) %fRuleText19, i32 noundef %cond17, i32 noundef %sub97) to label %invoke.cont98 unwind label %lpad94 invoke.cont98: ; preds = %.noexc120 - %51 = load ptr, ptr %sub2, align 8 - %call102 = invoke noundef double @_ZNK6icu_756NFRule16matchToDelimiterERKNS_13UnicodeStringEidS3_RNS_13ParsePositionEPKNS_14NFSubstitutionEjd(ptr noundef nonnull align 8 dereferenceable(112) %this, ptr noundef nonnull align 8 dereferenceable(64) %workText2, i32 noundef 0, double noundef %call71, ptr noundef nonnull align 8 dereferenceable(64) %temp, ptr noundef nonnull align 8 dereferenceable(16) %pp2, ptr noundef %51, i32 noundef %nonNumericalExecutedRuleMask, double noundef %upperBound) + %50 = load ptr, ptr %sub2, align 8 + %call102 = invoke noundef double @_ZNK6icu_756NFRule16matchToDelimiterERKNS_13UnicodeStringEidS3_RNS_13ParsePositionEPKNS_14NFSubstitutionEjd(ptr noundef nonnull align 8 dereferenceable(112) %this, ptr noundef nonnull align 8 dereferenceable(64) %workText2, i32 noundef 0, double noundef %call71, ptr noundef nonnull align 8 dereferenceable(64) %temp, ptr noundef nonnull align 8 dereferenceable(16) %pp2, ptr noundef %50, i32 noundef %nonNumericalExecutedRuleMask, double noundef %upperBound) to label %invoke.cont101 unwind label %lpad94 invoke.cont101: ; preds = %invoke.cont98 - %52 = load i32, ptr %index.i108, align 8 - %cmp105.not = icmp ne i32 %52, 0 - %53 = load ptr, ptr %sub2, align 8 - %cmp108 = icmp eq ptr %53, null + %51 = load i32, ptr %index.i108, align 8 + %cmp105.not = icmp ne i32 %51, 0 + %52 = load ptr, ptr %sub2, align 8 + %cmp108 = icmp eq ptr %52, null %or.cond44 = select i1 %cmp105.not, i1 true, i1 %cmp108 br i1 %or.cond44, label %if.then109, label %if.else if.then109: ; preds = %invoke.cont101 - %54 = load i32, ptr %index.i, align 8 - %add = add i32 %sub, %52 - %add114 = add i32 %add, %54 + %53 = load i32, ptr %index.i, align 8 + %add = add i32 %sub, %51 + %add114 = add i32 %add, %53 %cmp115 = icmp sgt i32 %add114, %highWaterMark.0 br i1 %cmp115, label %if.then116, label %if.end136 @@ -3122,23 +3121,23 @@ lpad63.loopexit.split-lp: ; preds = %if.end167 br label %ehcleanup176 lpad81: ; preds = %.noexc104, %invoke.cont84 - %55 = landingpad { ptr, i32 } + %54 = landingpad { ptr, i32 } cleanup br label %ehcleanup lpad94: ; preds = %.noexc120, %invoke.cont95, %invoke.cont98 - %56 = landingpad { ptr, i32 } + %55 = landingpad { ptr, i32 } cleanup call void @_ZN6icu_7513ParsePositionD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %pp2) #8 br label %ehcleanup if.else: ; preds = %invoke.cont101 - %57 = load i32, ptr %errorIndex.i109, align 4 - %add126 = add nsw i32 %57, %cond - %58 = load i32, ptr %index.i, align 8 - %add129 = add nsw i32 %add126, %58 - %59 = load i32, ptr %errorIndex.i134, align 4 - %cmp132 = icmp sgt i32 %add129, %59 + %56 = load i32, ptr %errorIndex.i109, align 4 + %add126 = add nsw i32 %56, %cond + %57 = load i32, ptr %index.i, align 8 + %add129 = add nsw i32 %add126, %57 + %58 = load i32, ptr %errorIndex.i134, align 4 + %cmp132 = icmp sgt i32 %add129, %58 br i1 %cmp132, label %if.then133, label %if.end136 if.then133: ; preds = %if.else @@ -3153,15 +3152,15 @@ if.end136: ; preds = %if.else, %if.then13 br label %do.cond ehcleanup: ; preds = %lpad94, %lpad81 - %.pn = phi { ptr, i32 } [ %56, %lpad94 ], [ %55, %lpad81 ] + %.pn = phi { ptr, i32 } [ %55, %lpad94 ], [ %54, %lpad81 ] call void @_ZN6icu_7513UnicodeStringD1Ev(ptr noundef nonnull align 8 dereferenceable(64) %workText2) #8 br label %ehcleanup176 if.else137: ; preds = %invoke.cont70 - %60 = load i32, ptr %errorIndex.i, align 4 - %add141 = add nsw i32 %60, %cond - %61 = load i32, ptr %errorIndex.i134, align 4 - %cmp144 = icmp sgt i32 %add141, %61 + %59 = load i32, ptr %errorIndex.i, align 4 + %add141 = add nsw i32 %59, %cond + %60 = load i32, ptr %errorIndex.i134, align 4 + %cmp144 = icmp sgt i32 %add141, %60 br i1 %cmp144, label %if.then145, label %do.cond if.then145: ; preds = %if.else137 @@ -3171,23 +3170,23 @@ if.then145: ; preds = %if.else137 do.cond: ; preds = %if.end136, %if.then145, %if.else137 %highWaterMark.2 = phi i32 [ %highWaterMark.1, %if.end136 ], [ %highWaterMark.0, %if.then145 ], [ %highWaterMark.0, %if.else137 ] %result.2 = phi double [ %result.1, %if.end136 ], [ %result.0, %if.then145 ], [ %result.0, %if.else137 ] - %start.1 = phi i32 [ %37, %if.end136 ], [ %start.0, %if.then145 ], [ %start.0, %if.else137 ] + %start.1 = phi i32 [ %36, %if.end136 ], [ %start.0, %if.then145 ], [ %start.0, %if.else137 ] br i1 %cmp149.not, label %do.end, label %land.lhs.true150 land.lhs.true150: ; preds = %do.cond - %62 = load i32, ptr %index.i, align 8 - %cmp153 = icmp sgt i32 %62, 0 + %61 = load i32, ptr %index.i, align 8 + %cmp153 = icmp sgt i32 %61, 0 br i1 %cmp153, label %invoke.cont157, label %do.end invoke.cont157: ; preds = %land.lhs.true150 - %63 = load i16, ptr %fUnion.i.i66, align 8 - %cmp.i.i139 = icmp slt i16 %63, 0 - %64 = ashr i16 %63, 5 - %shr.i.i140 = sext i16 %64 to i32 - %65 = load i32, ptr %fLength.i69, align 4 - %cond.i142 = select i1 %cmp.i.i139, i32 %65, i32 %shr.i.i140 - %cmp159 = icmp sge i32 %62, %cond.i142 - %cmp162.not = icmp eq i32 %62, %start.1 + %62 = load i16, ptr %fUnion.i.i66, align 8 + %cmp.i.i139 = icmp slt i16 %62, 0 + %63 = ashr i16 %62, 5 + %shr.i.i140 = sext i16 %63 to i32 + %64 = load i32, ptr %fLength.i69, align 4 + %cond.i142 = select i1 %cmp.i.i139, i32 %64, i32 %shr.i.i140 + %cmp159 = icmp sge i32 %61, %cond.i142 + %cmp162.not = icmp eq i32 %61, %start.1 %or.cond146 = select i1 %cmp159, i1 true, i1 %cmp162.not br i1 %or.cond146, label %do.end, label %do.body, !llvm.loop !12 @@ -3204,8 +3203,8 @@ if.then165: ; preds = %do.end if.end167: ; preds = %if.then165, %do.end %tobool = icmp ne i8 %isFractionRule, 0 %or.cond1 = and i1 %tobool, %cmp164 - %66 = load ptr, ptr %sub1, align 8 - %cmp172 = icmp eq ptr %66, null + %65 = load ptr, ptr %sub1, align 8 + %cmp172 = icmp eq ptr %65, null %or.cond45 = select i1 %or.cond1, i1 %cmp172, i1 false %div = fdiv double 1.000000e+00, %result.2 %result.3 = select i1 %or.cond45, double %div, double %result.2 @@ -4433,6 +4432,9 @@ declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #7 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.umin.i32(i32, i32) #6 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i64 @llvm.smax.i64(i64, i64) #6 + attributes #0 = { mustprogress uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/icu/optimized/unames.ll b/bench/icu/optimized/unames.ll index 6dcf6a26f5e..681f2fbf936 100644 --- a/bench/icu/optimized/unames.ll +++ b/bench/icu/optimized/unames.ll @@ -3485,26 +3485,26 @@ if.then56: ; preds = %if.end37 %call60 = tail call noundef i32 %14(i32 noundef %15) %add = add i32 %call45, 4 %invariant.gep = getelementptr inbounds nuw i8, ptr %add.ptr38, i64 10 - %cmp61271.not = icmp eq i32 %call60, 0 - br i1 %cmp61271.not, label %if.end326, label %for.body.lr.ph + %cmp61272.not = icmp eq i32 %call60, 0 + br i1 %cmp61272.not, label %if.end326, label %for.body.lr.ph for.body.lr.ph: ; preds = %if.then56 %readUInt16 = getelementptr inbounds nuw i8, ptr %ds, i64 8 br label %for.body for.body: ; preds = %for.body.lr.ph, %for.body - %offset.0273 = phi i32 [ %add, %for.body.lr.ph ], [ %add66, %for.body ] - %i.0272 = phi i32 [ 0, %for.body.lr.ph ], [ %inc, %for.body ] - %idx.ext62 = zext i32 %offset.0273 to i64 + %offset.0274 = phi i32 [ %add, %for.body.lr.ph ], [ %add66, %for.body ] + %i.0273 = phi i32 [ 0, %for.body.lr.ph ], [ %inc, %for.body ] + %idx.ext62 = zext i32 %offset.0274 to i64 %16 = load ptr, ptr %readUInt16, align 8 %gep = getelementptr inbounds nuw i8, ptr %invariant.gep, i64 %idx.ext62 %17 = load i16, ptr %gep, align 2 %call64 = tail call noundef zeroext i16 %16(i16 noundef zeroext %17) %conv65 = zext i16 %call64 to i32 - %add66 = add i32 %offset.0273, %conv65 - %inc = add nuw i32 %i.0272, 1 - %exitcond302.not = icmp eq i32 %inc, %call60 - br i1 %exitcond302.not, label %if.end326, label %for.body, !llvm.loop !57 + %add66 = add i32 %offset.0274, %conv65 + %inc = add nuw i32 %i.0273, 1 + %exitcond303.not = icmp eq i32 %inc, %call60 + br i1 %exitcond303.not, label %if.end326, label %for.body, !llvm.loop !57 if.else67: ; preds = %lor.lhs.false47 %cmp68.not = icmp eq ptr %add.ptr38, %cond @@ -3542,28 +3542,28 @@ if.end71: ; preds = %do.body, %if.else67 %incdec.ptr = getelementptr inbounds nuw i8, ptr %add.ptr38, i64 18 %incdec.ptr87 = getelementptr inbounds nuw i8, ptr %cond, i64 18 %conv88 = zext i16 %call85 to i32 - %cmp89 = icmp ult i16 %call85, 513 - %conv88. = select i1 %cmp89, i32 %conv88, i32 512 - %cmp95249.not = icmp eq i32 %conv88., 0 - br i1 %cmp95249.not, label %for.body106.preheader, label %for.body96.preheader + %conv88.241 = tail call i16 @llvm.umin.i16(i16 %call85, i16 512) + %conv88. = zext nneg i16 %conv88.241 to i32 + %cmp95250.not = icmp eq i16 %call85, 0 + br i1 %cmp95250.not, label %for.body106.preheader, label %for.body96.preheader for.body96.preheader: ; preds = %if.end71 - %wide.trip.count = zext nneg i32 %conv88. to i64 + %wide.trip.count = zext nneg i16 %conv88.241 to i64 br label %for.body96 for.cond104.preheader: ; preds = %for.body96 - %cmp105251 = icmp samesign ult i32 %conv88., 512 - br i1 %cmp105251, label %for.body106.preheader, label %for.end111 + %cmp105252 = icmp ult i16 %call85, 512 + br i1 %cmp105252, label %for.body106.preheader, label %for.end111 for.body106.preheader: ; preds = %if.end71, %for.cond104.preheader - %i.1.lcssa305 = phi i32 [ %conv88., %for.cond104.preheader ], [ 0, %if.end71 ] - %28 = shl nuw nsw i32 %i.1.lcssa305, 1 + %i.1.lcssa306 = phi i32 [ %conv88., %for.cond104.preheader ], [ 0, %if.end71 ] + %28 = shl nuw nsw i32 %i.1.lcssa306, 1 %29 = zext nneg i32 %28 to i64 %scevgep = getelementptr i8, ptr %tokens, i64 %29 - %30 = shl nuw nsw i32 %i.1.lcssa305, 1 + %30 = shl nuw nsw i32 %i.1.lcssa306, 1 %narrow = sub nuw nsw i32 1024, %30 %31 = zext nneg i32 %narrow to i64 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 2 dereferenceable(1) %scevgep, i8 0, i64 %31, i1 false) + call void @llvm.memset.p0.i64(ptr align 2 %scevgep, i8 0, i64 %31, i1 false) br label %for.end111 for.body96: ; preds = %for.body96.preheader, %for.body96 @@ -3595,11 +3595,10 @@ if.end128: ; preds = %for.end111 for.cond136.preheader: ; preds = %if.end128 %invariant.umin = tail call i32 @llvm.umin.i32(i32 %conv88, i32 256) - %.not = icmp eq i16 %call85, 0 - br i1 %.not, label %for.cond153.preheader, label %for.body140.preheader + br i1 %cmp95250.not, label %for.cond153.preheader, label %for.body140.preheader for.body140.preheader: ; preds = %for.cond136.preheader - %wide.trip.count290 = zext nneg i32 %invariant.umin to i64 + %wide.trip.count291 = zext nneg i32 %invariant.umin to i64 br label %for.body140 if.then133: ; preds = %if.end128 @@ -3609,42 +3608,42 @@ if.then133: ; preds = %if.end128 for.cond153.preheader: ; preds = %for.body140, %for.cond136.preheader %i.3.lcssa = phi i32 [ 0, %for.cond136.preheader ], [ %invariant.umin, %for.body140 ] - %cmp155255 = icmp samesign ult i32 %i.3.lcssa, %conv88 - br i1 %cmp155255, label %for.body156.preheader, label %do.body172 + %cmp155256 = icmp samesign ult i32 %i.3.lcssa, %conv88 + br i1 %cmp155256, label %for.body156.preheader, label %do.body172 for.body156.preheader: ; preds = %for.cond153.preheader %34 = zext nneg i32 %i.3.lcssa to i64 - %wide.trip.count295 = zext i16 %call85 to i64 + %wide.trip.count296 = zext i16 %call85 to i64 br label %for.body156 for.body140: ; preds = %for.body140.preheader, %for.body140 - %indvars.iv287 = phi i64 [ 0, %for.body140.preheader ], [ %indvars.iv.next288, %for.body140 ] + %indvars.iv288 = phi i64 [ 0, %for.body140.preheader ], [ %indvars.iv.next289, %for.body140 ] %35 = load ptr, ptr %swapArray16, align 8 - %add.ptr143 = getelementptr inbounds nuw i16, ptr %incdec.ptr, i64 %indvars.iv287 - %arrayidx145 = getelementptr inbounds nuw [256 x i8], ptr %map, i64 0, i64 %indvars.iv287 + %add.ptr143 = getelementptr inbounds nuw i16, ptr %incdec.ptr, i64 %indvars.iv288 + %arrayidx145 = getelementptr inbounds nuw [256 x i8], ptr %map, i64 0, i64 %indvars.iv288 %36 = load i8, ptr %arrayidx145, align 1 %idx.ext147 = zext i8 %36 to i64 %add.ptr148 = getelementptr inbounds nuw i16, ptr %call131, i64 %idx.ext147 %call149 = tail call noundef i32 %35(ptr noundef nonnull %ds, ptr noundef nonnull %add.ptr143, i32 noundef 2, ptr noundef nonnull %add.ptr148, ptr noundef nonnull %pErrorCode) - %indvars.iv.next288 = add nuw nsw i64 %indvars.iv287, 1 - %exitcond291.not = icmp eq i64 %indvars.iv.next288, %wide.trip.count290 - br i1 %exitcond291.not, label %for.cond153.preheader, label %for.body140, !llvm.loop !59 + %indvars.iv.next289 = add nuw nsw i64 %indvars.iv288, 1 + %exitcond292.not = icmp eq i64 %indvars.iv.next289, %wide.trip.count291 + br i1 %exitcond292.not, label %for.cond153.preheader, label %for.body140, !llvm.loop !59 for.body156: ; preds = %for.body156.preheader, %for.body156 - %indvars.iv292 = phi i64 [ %34, %for.body156.preheader ], [ %indvars.iv.next293, %for.body156 ] + %indvars.iv293 = phi i64 [ %34, %for.body156.preheader ], [ %indvars.iv.next294, %for.body156 ] %37 = load ptr, ptr %swapArray16, align 8 - %add.ptr159 = getelementptr inbounds nuw i16, ptr %incdec.ptr, i64 %indvars.iv292 - %and = and i64 %indvars.iv292, 2147483392 + %add.ptr159 = getelementptr inbounds nuw i16, ptr %incdec.ptr, i64 %indvars.iv293 + %and = and i64 %indvars.iv293, 2147483392 %add.ptr161 = getelementptr inbounds nuw i16, ptr %call131, i64 %and - %and162 = and i64 %indvars.iv292, 255 + %and162 = and i64 %indvars.iv293, 255 %arrayidx164 = getelementptr inbounds nuw [256 x i8], ptr %trailMap, i64 0, i64 %and162 %38 = load i8, ptr %arrayidx164, align 1 %idx.ext166 = zext i8 %38 to i64 %add.ptr167 = getelementptr inbounds nuw i16, ptr %add.ptr161, i64 %idx.ext166 %call168 = tail call noundef i32 %37(ptr noundef nonnull %ds, ptr noundef nonnull %add.ptr159, i32 noundef 2, ptr noundef nonnull %add.ptr167, ptr noundef nonnull %pErrorCode) - %indvars.iv.next293 = add nuw nsw i64 %indvars.iv292, 1 - %exitcond296.not = icmp eq i64 %indvars.iv.next293, %wide.trip.count295 - br i1 %exitcond296.not, label %do.body172, label %for.body156, !llvm.loop !60 + %indvars.iv.next294 = add nuw nsw i64 %indvars.iv293, 1 + %exitcond297.not = icmp eq i64 %indvars.iv.next294, %wide.trip.count296 + br i1 %exitcond297.not, label %do.body172, label %for.body156, !llvm.loop !60 do.body172: ; preds = %for.body156, %for.cond153.preheader tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 2 %incdec.ptr87, ptr nonnull align 2 %call131, i64 %conv130, i1 false) @@ -3683,8 +3682,8 @@ if.end186: ; preds = %do.body172 if.then204: ; preds = %if.end186 %sub209 = sub i32 %call50, %call80 - %cmp210263 = icmp ugt i32 %sub209, 32 - br i1 %cmp210263, label %while.body.lr.ph, label %if.end246 + %cmp210264 = icmp ugt i32 %sub209, 32 + br i1 %cmp210264, label %while.body.lr.ph, label %if.end246 while.body.lr.ph: ; preds = %if.then204 %idx.ext205 = zext i32 %call80 to i64 @@ -3701,48 +3700,48 @@ while.cond.loopexit: ; preds = %if.end244, %while.b br i1 %cmp210, label %while.body, label %if.end246, !llvm.loop !61 while.body: ; preds = %while.body.lr.ph, %while.cond.loopexit - %outStrings.0266 = phi ptr [ %add.ptr208, %while.body.lr.ph ], [ %outStrings.1.lcssa, %while.cond.loopexit ] - %inStrings.0265 = phi ptr [ %add.ptr206, %while.body.lr.ph ], [ %inStrings.1.lcssa, %while.cond.loopexit ] - %stringsCount.0264 = phi i32 [ %sub209, %while.body.lr.ph ], [ %sub225, %while.cond.loopexit ] - %call213 = call fastcc noundef ptr @_ZN6icu_75L18expandGroupLengthsEPKhPtS2_(ptr noundef %inStrings.0265, ptr noundef %offsets, ptr noundef %lengths) + %outStrings.0267 = phi ptr [ %add.ptr208, %while.body.lr.ph ], [ %outStrings.1.lcssa, %while.cond.loopexit ] + %inStrings.0266 = phi ptr [ %add.ptr206, %while.body.lr.ph ], [ %inStrings.1.lcssa, %while.cond.loopexit ] + %stringsCount.0265 = phi i32 [ %sub209, %while.body.lr.ph ], [ %sub225, %while.cond.loopexit ] + %call213 = call fastcc noundef ptr @_ZN6icu_75L18expandGroupLengthsEPKhPtS2_(ptr noundef %inStrings.0266, ptr noundef %offsets, ptr noundef %lengths) %sub.ptr.lhs.cast = ptrtoint ptr %call213 to i64 - %sub.ptr.rhs.cast = ptrtoint ptr %inStrings.0265 to i64 + %sub.ptr.rhs.cast = ptrtoint ptr %inStrings.0266 to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast %conv214 = trunc i64 %sub.ptr.sub to i32 - %add.ptr219 = getelementptr inbounds i8, ptr %outStrings.0266, i64 %sub.ptr.sub + %add.ptr219 = getelementptr inbounds i8, ptr %outStrings.0267, i64 %sub.ptr.sub %45 = load i16, ptr %arrayidx220, align 2 %conv221 = zext i16 %45 to i32 %46 = load i16, ptr %arrayidx222, align 2 %conv223 = zext i16 %46 to i32 %add224 = add nuw nsw i32 %conv223, %conv221 %47 = add i32 %add224, %conv214 - %sub225 = sub i32 %stringsCount.0264, %47 - %cmp227.not257 = icmp eq i32 %add224, 0 - br i1 %cmp227.not257, label %while.cond.loopexit, label %while.body228 + %sub225 = sub i32 %stringsCount.0265, %47 + %cmp227.not258 = icmp eq i32 %add224, 0 + br i1 %cmp227.not258, label %while.cond.loopexit, label %while.body228 while.body228: ; preds = %while.body, %if.end244 - %outStrings.1260 = phi ptr [ %outStrings.2, %if.end244 ], [ %add.ptr219, %while.body ] - %inStrings.1259 = phi ptr [ %inStrings.2, %if.end244 ], [ %call213, %while.body ] - %count.1258 = phi i32 [ %sub243, %if.end244 ], [ %add224, %while.body ] - %incdec.ptr229 = getelementptr inbounds nuw i8, ptr %inStrings.1259, i64 1 - %48 = load i8, ptr %inStrings.1259, align 1 + %outStrings.1261 = phi ptr [ %outStrings.2, %if.end244 ], [ %add.ptr219, %while.body ] + %inStrings.1260 = phi ptr [ %inStrings.2, %if.end244 ], [ %call213, %while.body ] + %count.1259 = phi i32 [ %sub243, %if.end244 ], [ %add224, %while.body ] + %incdec.ptr229 = getelementptr inbounds nuw i8, ptr %inStrings.1260, i64 1 + %48 = load i8, ptr %inStrings.1260, align 1 %idxprom230 = zext i8 %48 to i64 %arrayidx231 = getelementptr inbounds nuw [256 x i8], ptr %map, i64 0, i64 %idxprom230 %49 = load i8, ptr %arrayidx231, align 1 - %incdec.ptr232 = getelementptr inbounds nuw i8, ptr %outStrings.1260, i64 1 - store i8 %49, ptr %outStrings.1260, align 1 + %incdec.ptr232 = getelementptr inbounds nuw i8, ptr %outStrings.1261, i64 1 + store i8 %49, ptr %outStrings.1261, align 1 %arrayidx234 = getelementptr inbounds nuw [512 x i16], ptr %tokens, i64 0, i64 %idxprom230 %50 = load i16, ptr %arrayidx234, align 2 %cmp236.not = icmp eq i16 %50, -2 br i1 %cmp236.not, label %if.else238, label %if.end244 if.else238: ; preds = %while.body228 - %incdec.ptr239 = getelementptr inbounds nuw i8, ptr %inStrings.1259, i64 2 + %incdec.ptr239 = getelementptr inbounds nuw i8, ptr %inStrings.1260, i64 2 %51 = load i8, ptr %incdec.ptr229, align 1 %idxprom240 = zext i8 %51 to i64 %arrayidx241 = getelementptr inbounds nuw [256 x i8], ptr %trailMap, i64 0, i64 %idxprom240 %52 = load i8, ptr %arrayidx241, align 1 - %incdec.ptr242 = getelementptr inbounds nuw i8, ptr %outStrings.1260, i64 2 + %incdec.ptr242 = getelementptr inbounds nuw i8, ptr %outStrings.1261, i64 2 store i8 %52, ptr %incdec.ptr232, align 1 br label %if.end244 @@ -3750,7 +3749,7 @@ if.end244: ; preds = %while.body228, %if. %.sink = phi i32 [ -2, %if.else238 ], [ -1, %while.body228 ] %inStrings.2 = phi ptr [ %incdec.ptr239, %if.else238 ], [ %incdec.ptr229, %while.body228 ] %outStrings.2 = phi ptr [ %incdec.ptr242, %if.else238 ], [ %incdec.ptr232, %while.body228 ] - %sub243 = add i32 %count.1258, %.sink + %sub243 = add i32 %count.1259, %.sink %cmp227.not = icmp eq i32 %sub243, 0 br i1 %cmp227.not, label %while.cond.loopexit, label %while.body228, !llvm.loop !62 @@ -3764,26 +3763,26 @@ if.end246: ; preds = %while.cond.loopexit %add.ptr255 = getelementptr inbounds nuw i8, ptr %cond, i64 %idx.ext248 %call256 = tail call noundef i32 %55(ptr noundef nonnull %ds, ptr noundef nonnull %add.ptr249, i32 noundef 4, ptr noundef %add.ptr255, ptr noundef nonnull %pErrorCode) %add257 = add i32 %call50, 4 - %cmp259267.not = icmp eq i32 %call250, 0 - br i1 %cmp259267.not, label %if.end326, label %for.body260.lr.ph + %cmp259268.not = icmp eq i32 %call250, 0 + br i1 %cmp259268.not, label %if.end326, label %for.body260.lr.ph for.body260.lr.ph: ; preds = %if.end246 %swapInvChars319 = getelementptr inbounds nuw i8, ptr %ds, i64 72 br label %for.body260 for.body260: ; preds = %for.body260.lr.ph, %for.inc323 - %offset.2269 = phi i32 [ %add257, %for.body260.lr.ph ], [ %add272, %for.inc323 ] - %i.5268 = phi i32 [ 0, %for.body260.lr.ph ], [ %inc324, %for.inc323 ] - %cmp261 = icmp ugt i32 %offset.2269, %sub + %offset.2270 = phi i32 [ %add257, %for.body260.lr.ph ], [ %add272, %for.inc323 ] + %i.5269 = phi i32 [ 0, %for.body260.lr.ph ], [ %inc324, %for.inc323 ] + %cmp261 = icmp ugt i32 %offset.2270, %sub br i1 %cmp261, label %if.then262, label %if.end263 if.then262: ; preds = %for.body260 - tail call void (ptr, ptr, ...) @udata_printError_75(ptr noundef nonnull %ds, ptr noundef nonnull @.str.4, i32 noundef %sub, i32 noundef %i.5268) + tail call void (ptr, ptr, ...) @udata_printError_75(ptr noundef nonnull %ds, ptr noundef nonnull @.str.4, i32 noundef %sub, i32 noundef %i.5269) store i32 8, ptr %pErrorCode, align 4 br label %return if.end263: ; preds = %for.body260 - %idx.ext264 = zext nneg i32 %offset.2269 to i64 + %idx.ext264 = zext nneg i32 %offset.2270 to i64 %add.ptr265 = getelementptr inbounds nuw i8, ptr %add.ptr38, i64 %idx.ext264 %add.ptr267 = getelementptr inbounds nuw i8, ptr %cond, i64 %idx.ext264 %56 = load ptr, ptr %readUInt1684, align 8 @@ -3791,7 +3790,7 @@ if.end263: ; preds = %for.body260 %57 = load i16, ptr %size269, align 2 %call270 = tail call noundef zeroext i16 %56(i16 noundef zeroext %57) %conv271 = zext i16 %call270 to i32 - %add272 = add nuw i32 %offset.2269, %conv271 + %add272 = add nuw i32 %offset.2270, %conv271 %58 = load ptr, ptr %swapArray32, align 8 %call274 = tail call noundef i32 %58(ptr noundef nonnull %ds, ptr noundef nonnull %add.ptr265, i32 noundef 8, ptr noundef %add.ptr267, ptr noundef nonnull %pErrorCode) %59 = load ptr, ptr %swapArray16, align 8 @@ -3816,7 +3815,7 @@ sw.bb: ; preds = %if.end263 br i1 %cmp.i235, label %for.inc323, label %if.then288 if.then288: ; preds = %sw.bb - tail call void (ptr, ptr, ...) @udata_printError_75(ptr noundef nonnull %ds, ptr noundef nonnull @.str.5, i32 noundef %i.5268) + tail call void (ptr, ptr, ...) @udata_printError_75(ptr noundef nonnull %ds, ptr noundef nonnull @.str.5, i32 noundef %i.5269) br label %return sw.bb290: ; preds = %if.end263 @@ -3837,37 +3836,37 @@ sw.bb290: ; preds = %if.end263 br label %while.cond307 while.cond307: ; preds = %land.rhs309, %sw.bb290 - %indvars.iv297 = phi i64 [ %68, %land.rhs309 ], [ %67, %sw.bb290 ] - %cmp308.not = icmp eq i64 %indvars.iv297, 0 + %indvars.iv298 = phi i64 [ %68, %land.rhs309 ], [ %67, %sw.bb290 ] + %cmp308.not = icmp eq i64 %indvars.iv298, 0 br i1 %cmp308.not, label %while.end318, label %land.rhs309 land.rhs309: ; preds = %while.cond307 - %68 = add nsw i64 %indvars.iv297, -1 + %68 = add nsw i64 %indvars.iv298, -1 %arrayidx312 = getelementptr inbounds nuw i8, ptr %add.ptr298, i64 %68 %69 = load i8, ptr %arrayidx312, align 1 %cmp314.not = icmp eq i8 %69, 0 - br i1 %cmp314.not, label %while.end318.split.loop.exit314, label %while.cond307, !llvm.loop !63 + br i1 %cmp314.not, label %while.end318.split.loop.exit315, label %while.cond307, !llvm.loop !63 -while.end318.split.loop.exit314: ; preds = %land.rhs309 - %70 = trunc nuw i64 %indvars.iv297 to i32 +while.end318.split.loop.exit315: ; preds = %land.rhs309 + %70 = trunc nuw i64 %indvars.iv298 to i32 br label %while.end318 -while.end318: ; preds = %while.cond307, %while.end318.split.loop.exit314 - %stringsCount.1.lcssa = phi i32 [ %70, %while.end318.split.loop.exit314 ], [ 0, %while.cond307 ] +while.end318: ; preds = %while.cond307, %while.end318.split.loop.exit315 + %stringsCount.1.lcssa = phi i32 [ %70, %while.end318.split.loop.exit315 ], [ 0, %while.cond307 ] %71 = load ptr, ptr %swapInvChars319, align 8 %call320 = tail call noundef i32 %71(ptr noundef nonnull %ds, ptr noundef nonnull %add.ptr298, i32 noundef %stringsCount.1.lcssa, ptr noundef nonnull %add.ptr300, ptr noundef nonnull %pErrorCode) br label %for.inc323 sw.default: ; preds = %if.end263 %conv279 = zext i8 %60 to i32 - tail call void (ptr, ptr, ...) @udata_printError_75(ptr noundef nonnull %ds, ptr noundef nonnull @.str.6, i32 noundef %conv279, i32 noundef %i.5268) + tail call void (ptr, ptr, ...) @udata_printError_75(ptr noundef nonnull %ds, ptr noundef nonnull @.str.6, i32 noundef %conv279, i32 noundef %i.5269) store i32 16, ptr %pErrorCode, align 4 br label %return for.inc323: ; preds = %while.end318, %sw.bb - %inc324 = add nuw i32 %i.5268, 1 - %exitcond301.not = icmp eq i32 %inc324, %call250 - br i1 %exitcond301.not, label %if.end326, label %for.body260, !llvm.loop !64 + %inc324 = add nuw i32 %i.5269, 1 + %exitcond302.not = icmp eq i32 %inc324, %call250 + br i1 %exitcond302.not, label %if.end326, label %for.body260, !llvm.loop !64 if.end326: ; preds = %for.inc323, %for.body, %if.end246, %if.then56 %offset.1 = phi i32 [ %add, %if.then56 ], [ %add257, %if.end246 ], [ %add66, %for.body ], [ %add272, %for.inc323 ] diff --git a/bench/icu/optimized/unistr.ll b/bench/icu/optimized/unistr.ll index 11af325d27a..517531888ed 100644 --- a/bench/icu/optimized/unistr.ll +++ b/bench/icu/optimized/unistr.ll @@ -4209,8 +4209,7 @@ entry: br i1 %or.cond, label %return, label %if.end if.end: ; preds = %entry - %cmp3 = icmp sgt i32 %dstSize, -1 - %cond = select i1 %cmp3, i32 %dstSize, i32 2147483647 + %cond = tail call i32 @llvm.umin.i32(i32 %dstSize, i32 2147483647) call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %length8.i) call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %errorCode.i) %fUnion.i.i.i.i = getelementptr inbounds nuw i8, ptr %this, i64 8 @@ -6618,10 +6617,10 @@ declare i32 @llvm.smin.i32(i32, i32) #21 declare i32 @bcmp(ptr captures(none), ptr captures(none), i64) local_unnamed_addr #22 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.umax.i32(i32, i32) #21 +declare i32 @llvm.umin.i32(i32, i32) #21 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.umin.i32(i32, i32) #21 +declare i32 @llvm.umax.i32(i32, i32) #21 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.smax.i32(i32, i32) #21 diff --git a/bench/libevent/optimized/event_tagging.c.ll b/bench/libevent/optimized/event_tagging.c.ll index 69bd0f1fff5..3990bc88c0f 100644 --- a/bench/libevent/optimized/event_tagging.c.ll +++ b/bench/libevent/optimized/event_tagging.c.ll @@ -1469,10 +1469,9 @@ while.end.i: ; preds = %while.body.i10 decode_int_internal.exit: ; preds = %if.end12, %if.end.i, %if.end5.i, %lor.lhs.false.i, %if.end16.i, %while.end.i %retval.0.i12 = phi i32 [ %add11.i, %while.end.i ], [ -1, %if.end12 ], [ -1, %if.end.i ], [ -1, %lor.lhs.false.i ], [ -1, %if.end5.i ], [ -1, %if.end16.i ] %call15 = tail call i32 @evbuffer_drain(ptr noundef %evbuf, i64 noundef %conv) #7 - %cmp16 = icmp slt i32 %retval.0.i12, 0 %cmp20 = icmp ugt i32 %retval.0.i12, %3 - %or.cond = or i1 %cmp16, %cmp20 - %spec.select = select i1 %or.cond, i32 -1, i32 %retval.0.i12 + %9 = tail call i32 @llvm.smax.i32(i32 %retval.0.i12, i32 -1) + %spec.select = select i1 %cmp20, i32 -1, i32 %9 br label %return return: ; preds = %while.cond.i, %if.then4.i, %entry, %decode_int_internal.exit, %if.end7, %if.end3, %decode_tag_internal.exit @@ -1590,10 +1589,9 @@ while.end.i: ; preds = %while.body.i10 decode_int64_internal.exit: ; preds = %if.end12, %if.end.i, %if.end5.i, %if.end16.i, %while.end.i %retval.0.i12 = phi i32 [ %add11.i, %while.end.i ], [ -1, %if.end12 ], [ -1, %if.end.i ], [ -1, %if.end5.i ], [ -1, %if.end16.i ] %call15 = tail call i32 @evbuffer_drain(ptr noundef %evbuf, i64 noundef %conv) #7 - %cmp16 = icmp slt i32 %retval.0.i12, 0 %cmp20 = icmp ugt i32 %retval.0.i12, %3 - %or.cond = or i1 %cmp16, %cmp20 - %spec.select = select i1 %or.cond, i32 -1, i32 %retval.0.i12 + %9 = tail call i32 @llvm.smax.i32(i32 %retval.0.i12, i32 -1) + %spec.select = select i1 %cmp20, i32 -1, i32 %9 br label %return return: ; preds = %while.cond.i, %if.then4.i, %entry, %decode_int64_internal.exit, %if.end7, %if.end3, %decode_tag_internal.exit @@ -1814,6 +1812,9 @@ declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #6 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #6 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i32 @llvm.smax.i32(i32, i32) #5 + attributes #0 = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/libquic/optimized/dtoa.cc.ll b/bench/libquic/optimized/dtoa.cc.ll index 248ef3a678e..0b608117e66 100644 --- a/bench/libquic/optimized/dtoa.cc.ll +++ b/bench/libquic/optimized/dtoa.cc.ll @@ -42,7 +42,7 @@ for.cond: ; preds = %for.inc, %entry %storemerge = phi ptr [ %s00, %entry ], [ %incdec.ptr4, %for.inc ] %0 = load i8, ptr %storemerge, align 1 switch i8 %0, label %break2.loopexit [ - i8 45, label %sw.bb1.loopexit1116 + i8 45, label %sw.bb1.loopexit1117 i8 43, label %sw.bb1 i8 0, label %ret0 i8 9, label %for.inc @@ -53,11 +53,11 @@ for.cond: ; preds = %for.inc, %entry i8 32, label %for.inc ] -sw.bb1.loopexit1116: ; preds = %for.cond +sw.bb1.loopexit1117: ; preds = %for.cond br label %sw.bb1 -sw.bb1: ; preds = %for.cond, %sw.bb1.loopexit1116 - %sign.0 = phi i32 [ 1, %sw.bb1.loopexit1116 ], [ 0, %for.cond ] +sw.bb1: ; preds = %for.cond, %sw.bb1.loopexit1117 + %sign.0 = phi i32 [ 1, %sw.bb1.loopexit1117 ], [ 0, %for.cond ] %incdec.ptr = getelementptr inbounds nuw i8, ptr %storemerge, i64 1 store ptr %incdec.ptr, ptr %s, align 8 %1 = load i8, ptr %incdec.ptr, align 1 @@ -80,8 +80,8 @@ break2: ; preds = %break2.loopexit, %s br i1 %cmp, label %while.cond, label %if.end13 while.cond: ; preds = %break2, %while.cond - %incdec.ptr7657 = phi ptr [ %incdec.ptr7, %while.cond ], [ %s.promoted, %break2 ] - %incdec.ptr7 = getelementptr inbounds nuw i8, ptr %incdec.ptr7657, i64 1 + %incdec.ptr7658 = phi ptr [ %incdec.ptr7, %while.cond ], [ %s.promoted, %break2 ] + %incdec.ptr7 = getelementptr inbounds nuw i8, ptr %incdec.ptr7658, i64 1 %3 = load i8, ptr %incdec.ptr7, align 1 switch i8 %3, label %if.end13.loopexit [ i8 48, label %while.cond @@ -96,41 +96,41 @@ if.end13.loopexit: ; preds = %while.cond if.end13: ; preds = %if.end13.loopexit, %break2 %4 = phi i8 [ %.pre, %if.end13.loopexit ], [ %2, %break2 ] %5 = phi ptr [ %incdec.ptr7, %if.end13.loopexit ], [ %s.promoted, %break2 ] - %conv15661 = sext i8 %4 to i32 + %conv15662 = sext i8 %4 to i32 %6 = add i8 %4, -48 %7 = icmp ult i8 %6, 10 br i1 %7, label %for.body, label %for.end for.body: ; preds = %if.end13, %for.inc27 - %conv15666 = phi i32 [ %conv15, %for.inc27 ], [ %conv15661, %if.end13 ] - %z.0665 = phi i32 [ %z.1, %for.inc27 ], [ 0, %if.end13 ] - %y.0664 = phi i32 [ %y.1, %for.inc27 ], [ 0, %if.end13 ] - %nd.0663 = phi i32 [ %inc, %for.inc27 ], [ 0, %if.end13 ] - %incdec.ptr28660662 = phi ptr [ %incdec.ptr28, %for.inc27 ], [ %5, %if.end13 ] - %cmp18 = icmp samesign ult i32 %nd.0663, 9 + %conv15667 = phi i32 [ %conv15, %for.inc27 ], [ %conv15662, %if.end13 ] + %z.0666 = phi i32 [ %z.1, %for.inc27 ], [ 0, %if.end13 ] + %y.0665 = phi i32 [ %y.1, %for.inc27 ], [ 0, %if.end13 ] + %nd.0664 = phi i32 [ %inc, %for.inc27 ], [ 0, %if.end13 ] + %incdec.ptr28661663 = phi ptr [ %incdec.ptr28, %for.inc27 ], [ %5, %if.end13 ] + %cmp18 = icmp samesign ult i32 %nd.0664, 9 br i1 %cmp18, label %if.then19, label %if.else if.then19: ; preds = %for.body - %mul = mul i32 %y.0664, 10 + %mul = mul i32 %y.0665, 10 %add = add i32 %mul, -48 - %sub = add i32 %add, %conv15666 + %sub = add i32 %add, %conv15667 br label %for.inc27 if.else: ; preds = %for.body - %cmp20 = icmp samesign ult i32 %nd.0663, 16 + %cmp20 = icmp samesign ult i32 %nd.0664, 16 br i1 %cmp20, label %if.then21, label %for.inc27 if.then21: ; preds = %if.else - %mul22 = mul i32 %z.0665, 10 + %mul22 = mul i32 %z.0666, 10 %add23 = add i32 %mul22, -48 - %sub24 = add i32 %add23, %conv15666 + %sub24 = add i32 %add23, %conv15667 br label %for.inc27 for.inc27: ; preds = %if.then19, %if.then21, %if.else - %y.1 = phi i32 [ %sub, %if.then19 ], [ %y.0664, %if.then21 ], [ %y.0664, %if.else ] - %z.1 = phi i32 [ %z.0665, %if.then19 ], [ %sub24, %if.then21 ], [ %z.0665, %if.else ] - %inc = add nuw nsw i32 %nd.0663, 1 - %incdec.ptr28 = getelementptr inbounds nuw i8, ptr %incdec.ptr28660662, i64 1 + %y.1 = phi i32 [ %sub, %if.then19 ], [ %y.0665, %if.then21 ], [ %y.0665, %if.else ] + %z.1 = phi i32 [ %z.0666, %if.then19 ], [ %sub24, %if.then21 ], [ %z.0666, %if.else ] + %inc = add nuw nsw i32 %nd.0664, 1 + %incdec.ptr28 = getelementptr inbounds nuw i8, ptr %incdec.ptr28661663, i64 1 %8 = load i8, ptr %incdec.ptr28, align 1 %conv15 = sext i8 %8 to i32 %9 = add i8 %8, -48 @@ -138,22 +138,22 @@ for.inc27: ; preds = %if.then19, %if.then br i1 %10, label %for.body, label %for.end, !llvm.loop !7 for.end: ; preds = %for.inc27, %if.end13 - %incdec.ptr28660.lcssa = phi ptr [ %5, %if.end13 ], [ %incdec.ptr28, %for.inc27 ] + %incdec.ptr28661.lcssa = phi ptr [ %5, %if.end13 ], [ %incdec.ptr28, %for.inc27 ] %nd.0.lcssa = phi i32 [ 0, %if.end13 ], [ %inc, %for.inc27 ] %y.0.lcssa = phi i32 [ 0, %if.end13 ], [ %y.1, %for.inc27 ] %z.0.lcssa = phi i32 [ 0, %if.end13 ], [ %z.1, %for.inc27 ] - %.lcssa648 = phi i8 [ %4, %if.end13 ], [ %8, %for.inc27 ] - %conv15.lcssa = phi i32 [ %conv15661, %if.end13 ], [ %conv15, %for.inc27 ] - store ptr %incdec.ptr28660.lcssa, ptr %s, align 8 - %sub.ptr.lhs.cast = ptrtoint ptr %incdec.ptr28660.lcssa to i64 + %.lcssa649 = phi i8 [ %4, %if.end13 ], [ %8, %for.inc27 ] + %conv15.lcssa = phi i32 [ %conv15662, %if.end13 ], [ %conv15, %for.inc27 ] + store ptr %incdec.ptr28661.lcssa, ptr %s, align 8 + %sub.ptr.lhs.cast = ptrtoint ptr %incdec.ptr28661.lcssa to i64 %sub.ptr.rhs.cast = ptrtoint ptr %5 to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast %conv29 = trunc i64 %sub.ptr.sub to i32 - %cmp30 = icmp eq i8 %.lcssa648, 46 + %cmp30 = icmp eq i8 %.lcssa649, 46 br i1 %cmp30, label %if.then31, label %dig_done if.then31: ; preds = %for.end - %incdec.ptr32 = getelementptr inbounds nuw i8, ptr %incdec.ptr28660.lcssa, i64 1 + %incdec.ptr32 = getelementptr inbounds nuw i8, ptr %incdec.ptr28661.lcssa, i64 1 store ptr %incdec.ptr32, ptr %s, align 8 %11 = load i8, ptr %incdec.ptr32, align 1 %conv33 = sext i8 %11 to i32 @@ -165,14 +165,14 @@ if.then31: ; preds = %for.end br i1 %tobool43.not, label %for.cond45.preheader, label %for.cond59 for.cond45.preheader: ; preds = %if.then31 - %cmp46675 = icmp eq i8 %11, 48 - br i1 %cmp46675, label %for.body47, label %for.end52 + %cmp46676 = icmp eq i8 %11, 48 + br i1 %cmp46676, label %for.body47, label %for.end52 for.body47: ; preds = %for.cond45.preheader, %for.body47 - %nz.0677 = phi i32 [ %inc48, %for.body47 ], [ 0, %for.cond45.preheader ] - %incdec.ptr50674676 = phi ptr [ %incdec.ptr50, %for.body47 ], [ %incdec.ptr32, %for.cond45.preheader ] - %inc48 = add nuw nsw i32 %nz.0677, 1 - %incdec.ptr50 = getelementptr inbounds nuw i8, ptr %incdec.ptr50674676, i64 1 + %nz.0678 = phi i32 [ %inc48, %for.body47 ], [ 0, %for.cond45.preheader ] + %incdec.ptr50675677 = phi ptr [ %incdec.ptr50, %for.body47 ], [ %incdec.ptr32, %for.cond45.preheader ] + %inc48 = add nuw nsw i32 %nz.0678, 1 + %incdec.ptr50 = getelementptr inbounds nuw i8, ptr %incdec.ptr50675677, i64 1 %12 = load i8, ptr %incdec.ptr50, align 1 %cmp46 = icmp eq i8 %12, 48 br i1 %cmp46, label %for.body47, label %for.end52.loopexit, !llvm.loop !8 @@ -219,24 +219,24 @@ have_dig: ; preds = %for.end52, %for.con if.then68: ; preds = %have_dig %add69 = add nsw i32 %inc65, %nf.0 - %cmp71.not681 = icmp slt i32 %nz.1, 1 - br i1 %cmp71.not681, label %for.end85, label %for.body72 + %cmp71.not682 = icmp slt i32 %nz.1, 1 + br i1 %cmp71.not682, label %for.end85, label %for.body72 for.body72: ; preds = %if.then68, %for.body72 - %z.5685 = phi i32 [ %z.6, %for.body72 ], [ %z.2, %if.then68 ] - %y.5684 = phi i32 [ %y.6, %for.body72 ], [ %y.2, %if.then68 ] - %nd.4683 = phi i32 [ %inc73, %for.body72 ], [ %nd.1, %if.then68 ] - %i.0682 = phi i32 [ %inc84, %for.body72 ], [ 1, %if.then68 ] - %inc73 = add nsw i32 %nd.4683, 1 - %cmp74 = icmp slt i32 %nd.4683, 9 - %mul76 = mul i32 %y.5684, 10 - %cmp78 = icmp slt i32 %nd.4683, 16 - %mul80 = mul i32 %z.5685, 10 - %spec.select = select i1 %cmp78, i32 %mul80, i32 %z.5685 - %y.6 = select i1 %cmp74, i32 %mul76, i32 %y.5684 - %z.6 = select i1 %cmp74, i32 %z.5685, i32 %spec.select - %inc84 = add nuw i32 %i.0682, 1 - %exitcond.not = icmp eq i32 %i.0682, %nz.1 + %z.5686 = phi i32 [ %z.6, %for.body72 ], [ %z.2, %if.then68 ] + %y.5685 = phi i32 [ %y.6, %for.body72 ], [ %y.2, %if.then68 ] + %nd.4684 = phi i32 [ %inc73, %for.body72 ], [ %nd.1, %if.then68 ] + %i.0683 = phi i32 [ %inc84, %for.body72 ], [ 1, %if.then68 ] + %inc73 = add nsw i32 %nd.4684, 1 + %cmp74 = icmp slt i32 %nd.4684, 9 + %mul76 = mul i32 %y.5685, 10 + %cmp78 = icmp slt i32 %nd.4684, 16 + %mul80 = mul i32 %z.5686, 10 + %spec.select = select i1 %cmp78, i32 %mul80, i32 %z.5686 + %y.6 = select i1 %cmp74, i32 %mul76, i32 %y.5685 + %z.6 = select i1 %cmp74, i32 %z.5686, i32 %spec.select + %inc84 = add nuw i32 %i.0683, 1 + %exitcond.not = icmp eq i32 %i.0683, %nz.1 br i1 %exitcond.not, label %for.end85.loopexit, label %for.body72, !llvm.loop !9 for.end85.loopexit: ; preds = %for.body72 @@ -278,7 +278,7 @@ for.inc99: ; preds = %if.then88, %if.then br label %for.cond59, !llvm.loop !10 dig_done: ; preds = %for.end, %for.cond59, %for.end52 - %21 = phi ptr [ %15, %for.cond59 ], [ %13, %for.end52 ], [ %incdec.ptr28660.lcssa, %for.end ] + %21 = phi ptr [ %15, %for.cond59 ], [ %13, %for.end52 ], [ %incdec.ptr28661.lcssa, %for.end ] %bc.sroa.8.0 = phi i32 [ %sub41, %for.cond59 ], [ %sub41, %for.end52 ], [ 0, %for.end ] %bc.sroa.3.0 = phi i32 [ %conv37, %for.cond59 ], [ %conv37, %for.end52 ], [ %conv29, %for.end ] %c.2 = phi i32 [ %c.3, %for.cond59 ], [ %c.0.lcssa, %for.end52 ], [ %conv15.lcssa, %for.end ] @@ -319,7 +319,7 @@ sw.bb117: ; preds = %sw.bb116, %if.end11 br label %sw.epilog sw.epilog: ; preds = %sw.bb117, %if.end113 - %s.promoted689 = phi ptr [ %incdec.ptr114, %if.end113 ], [ %incdec.ptr118, %sw.bb117 ] + %s.promoted690 = phi ptr [ %incdec.ptr114, %if.end113 ], [ %incdec.ptr118, %sw.bb117 ] %c.5.in = phi i8 [ %23, %if.end113 ], [ %25, %sw.bb117 ] %esign.0 = phi i1 [ true, %if.end113 ], [ %24, %sw.bb117 ] %c.5 = sext i8 %c.5.in to i32 @@ -328,12 +328,12 @@ sw.epilog: ; preds = %sw.bb117, %if.end11 br i1 %or.cond4, label %while.cond124.preheader, label %if.else165 while.cond124.preheader: ; preds = %sw.epilog - %cmp125691 = icmp eq i8 %c.5.in, 48 - br i1 %cmp125691, label %while.body126, label %while.end129 + %cmp125692 = icmp eq i8 %c.5.in, 48 + br i1 %cmp125692, label %while.body126, label %while.end129 while.body126: ; preds = %while.cond124.preheader, %while.body126 - %incdec.ptr127690692 = phi ptr [ %incdec.ptr127, %while.body126 ], [ %s.promoted689, %while.cond124.preheader ] - %incdec.ptr127 = getelementptr inbounds nuw i8, ptr %incdec.ptr127690692, i64 1 + %incdec.ptr127691693 = phi ptr [ %incdec.ptr127, %while.body126 ], [ %s.promoted690, %while.cond124.preheader ] + %incdec.ptr127 = getelementptr inbounds nuw i8, ptr %incdec.ptr127691693, i64 1 %27 = load i8, ptr %incdec.ptr127, align 1 %cmp125 = icmp eq i8 %27, 48 br i1 %cmp125, label %while.body126, label %while.end129.loopexit, !llvm.loop !11 @@ -343,7 +343,7 @@ while.end129.loopexit: ; preds = %while.body126 br label %while.end129 while.end129: ; preds = %while.end129.loopexit, %while.cond124.preheader - %28 = phi ptr [ %s.promoted689, %while.cond124.preheader ], [ %incdec.ptr127, %while.end129.loopexit ] + %28 = phi ptr [ %s.promoted690, %while.cond124.preheader ], [ %incdec.ptr127, %while.end129.loopexit ] %c.6.lcssa = phi i32 [ %c.5, %while.cond124.preheader ], [ %conv128, %while.end129.loopexit ] store ptr %28, ptr %s, align 8 %29 = add nsw i32 %c.6.lcssa, -49 @@ -355,9 +355,9 @@ if.then133: ; preds = %while.end129 br label %while.cond135 while.cond135: ; preds = %while.body142, %if.then133 - %incdec.ptr136697 = phi ptr [ %28, %if.then133 ], [ %incdec.ptr136, %while.body142 ] + %incdec.ptr136698 = phi ptr [ %28, %if.then133 ], [ %incdec.ptr136, %while.body142 ] %L.0 = phi i32 [ %sub134, %if.then133 ], [ %sub145, %while.body142 ] - %incdec.ptr136 = getelementptr inbounds nuw i8, ptr %incdec.ptr136697, i64 1 + %incdec.ptr136 = getelementptr inbounds nuw i8, ptr %incdec.ptr136698, i64 1 %30 = load i8, ptr %incdec.ptr136, align 1 %conv137 = sext i8 %30 to i32 %31 = add i8 %30, -48 @@ -417,14 +417,14 @@ for.cond.i289.preheader: ; preds = %if.then176, %if.the br label %for.cond.i289 sw.bb177: ; preds = %if.then176, %if.then176 - %scevgep823 = getelementptr i8, ptr %34, i64 2 + %scevgep824 = getelementptr i8, ptr %34, i64 2 br label %for.cond.i for.cond.i: ; preds = %for.body.i, %sw.bb177 %d.0.in.in.i.idx = phi i64 [ 0, %sw.bb177 ], [ %d.0.in.in.i.add, %for.body.i ] %s.0.i = phi ptr [ %34, %sw.bb177 ], [ %incdec.ptr1.i, %for.body.i ] - %exitcond824 = icmp eq i64 %d.0.in.in.i.idx, 2 - br i1 %exitcond824, label %if.then179, label %for.body.i + %exitcond825 = icmp eq i64 %d.0.in.in.i.idx, 2 + br i1 %exitcond825, label %if.then179, label %for.body.i for.body.i: ; preds = %for.cond.i %d.0.in.in.i.ptr = getelementptr inbounds nuw i8, ptr @.str, i64 %d.0.in.in.i.idx @@ -442,14 +442,14 @@ for.body.i: ; preds = %for.cond.i br i1 %cmp4.not.i, label %for.cond.i, label %ret0, !llvm.loop !13 if.then179: ; preds = %for.cond.i - store ptr %scevgep823, ptr %s, align 8 + store ptr %scevgep824, ptr %s, align 8 br label %for.cond.i271 for.cond.i271: ; preds = %for.body.i276, %if.then179 %d.0.in.in.i272.idx = phi i64 [ 0, %if.then179 ], [ %d.0.in.in.i272.add, %for.body.i276 ] - %s.0.i273 = phi ptr [ %scevgep823, %if.then179 ], [ %incdec.ptr1.i279, %for.body.i276 ] - %exitcond826 = icmp eq i64 %d.0.in.in.i272.idx, 5 - br i1 %exitcond826, label %if.end185, label %for.body.i276 + %s.0.i273 = phi ptr [ %scevgep824, %if.then179 ], [ %incdec.ptr1.i279, %for.body.i276 ] + %exitcond827 = icmp eq i64 %d.0.in.in.i272.idx, 5 + br i1 %exitcond827, label %if.end185, label %for.body.i276 for.body.i276: ; preds = %for.cond.i271 %d.0.in.in.i272.ptr = getelementptr inbounds nuw i8, ptr @.str.1, i64 %d.0.in.in.i272.idx @@ -469,8 +469,8 @@ for.body.i276: ; preds = %for.cond.i271 if.end185: ; preds = %for.cond.i271, %for.body.i276 %39 = phi i64 [ 2, %for.body.i276 ], [ 7, %for.cond.i271 ] %40 = getelementptr i8, ptr %34, i64 %39 - %storemerge564 = getelementptr inbounds nuw i8, ptr %40, i64 1 - store ptr %storemerge564, ptr %s, align 8 + %storemerge565 = getelementptr inbounds nuw i8, ptr %40, i64 1 + store ptr %storemerge565, ptr %s, align 8 %arrayidx = getelementptr inbounds nuw i8, ptr %rv, i64 4 store i32 2146435072, ptr %arrayidx, align 4 store i32 0, ptr %rv, align 8 @@ -479,8 +479,8 @@ if.end185: ; preds = %for.cond.i271, %for for.cond.i289: ; preds = %for.cond.i289.preheader, %for.body.i294 %d.0.in.in.i290.idx = phi i64 [ %d.0.in.in.i290.add, %for.body.i294 ], [ 0, %for.cond.i289.preheader ] %s.0.i291 = phi ptr [ %incdec.ptr1.i297, %for.body.i294 ], [ %34, %for.cond.i289.preheader ] - %exitcond822 = icmp eq i64 %d.0.in.in.i290.idx, 2 - br i1 %exitcond822, label %if.then191, label %for.body.i294 + %exitcond823 = icmp eq i64 %d.0.in.in.i290.idx, 2 + br i1 %exitcond823, label %if.then191, label %for.body.i294 for.body.i294: ; preds = %for.cond.i289 %d.0.in.in.i290.ptr = getelementptr inbounds nuw i8, ptr @.str.2, i64 %d.0.in.in.i290.idx @@ -632,7 +632,7 @@ if.then257: ; preds = %if.then255 if.end261: ; preds = %if.then257, %if.then255 %69 = phi i32 [ %68, %if.then257 ], [ %62, %if.then255 ] - %rv.promoted704 = phi double [ %mul260, %if.then257 ], [ %64, %if.then255 ] + %rv.promoted705 = phi double [ %mul260, %if.then257 ], [ %64, %if.then255 ] %and262 = and i32 %add253, 2147483632 %tobool263.not = icmp eq i32 %and262, 0 br i1 %tobool263.not, label %if.end372, label %if.then264 @@ -650,45 +650,45 @@ ovfl: ; preds = %if.then703, %for.en br label %ret if.end270: ; preds = %if.then264 - %cmp272707 = icmp samesign ugt i32 %add253, 31 - br i1 %cmp272707, label %for.body273.preheader, label %for.end284 + %cmp272708 = icmp samesign ugt i32 %add253, 31 + br i1 %cmp272708, label %for.body273.preheader, label %for.end284 for.body273.preheader: ; preds = %if.end270 %shr = lshr i32 %add253, 4 - %rv.promoted937 = load double, ptr %rv, align 8 + %rv.promoted938 = load double, ptr %rv, align 8 br label %for.body273 for.body273: ; preds = %for.body273.preheader, %for.inc281 - %mul279938 = phi double [ %rv.promoted937, %for.body273.preheader ], [ %mul279939, %for.inc281 ] + %mul279939 = phi double [ %rv.promoted938, %for.body273.preheader ], [ %mul279940, %for.inc281 ] %70 = phi i32 [ %69, %for.body273.preheader ], [ %75, %for.inc281 ] - %indvars.iv809 = phi i64 [ 0, %for.body273.preheader ], [ %indvars.iv.next810, %for.inc281 ] - %e1.0709 = phi i32 [ %shr, %for.body273.preheader ], [ %shr283, %for.inc281 ] - %mul279706708 = phi double [ %rv.promoted704, %for.body273.preheader ], [ %mul279705, %for.inc281 ] - %and274 = and i32 %e1.0709, 1 + %indvars.iv810 = phi i64 [ 0, %for.body273.preheader ], [ %indvars.iv.next811, %for.inc281 ] + %e1.0710 = phi i32 [ %shr, %for.body273.preheader ], [ %shr283, %for.inc281 ] + %mul279707709 = phi double [ %rv.promoted705, %for.body273.preheader ], [ %mul279706, %for.inc281 ] + %and274 = and i32 %e1.0710, 1 %tobool275.not = icmp eq i32 %and274, 0 br i1 %tobool275.not, label %for.inc281, label %if.then276 if.then276: ; preds = %for.body273 - %arrayidx278 = getelementptr inbounds nuw [5 x double], ptr @_ZN6dmg_fpL7bigtensE, i64 0, i64 %indvars.iv809 + %arrayidx278 = getelementptr inbounds nuw [5 x double], ptr @_ZN6dmg_fpL7bigtensE, i64 0, i64 %indvars.iv810 %71 = load double, ptr %arrayidx278, align 8 - %mul279 = fmul double %71, %mul279706708 + %mul279 = fmul double %71, %mul279707709 %72 = bitcast double %mul279 to i64 %73 = lshr i64 %72, 32 %74 = trunc nuw i64 %73 to i32 br label %for.inc281 for.inc281: ; preds = %for.body273, %if.then276 - %mul279939 = phi double [ %mul279938, %for.body273 ], [ %mul279, %if.then276 ] + %mul279940 = phi double [ %mul279939, %for.body273 ], [ %mul279, %if.then276 ] %75 = phi i32 [ %70, %for.body273 ], [ %74, %if.then276 ] - %mul279705 = phi double [ %mul279706708, %for.body273 ], [ %mul279, %if.then276 ] - %indvars.iv.next810 = add nuw nsw i64 %indvars.iv809, 1 - %shr283 = lshr i32 %e1.0709, 1 - %cmp272 = icmp samesign ugt i32 %e1.0709, 3 + %mul279706 = phi double [ %mul279707709, %for.body273 ], [ %mul279, %if.then276 ] + %indvars.iv.next811 = add nuw nsw i64 %indvars.iv810, 1 + %shr283 = lshr i32 %e1.0710, 1 + %cmp272 = icmp samesign ugt i32 %e1.0710, 3 br i1 %cmp272, label %for.body273, label %for.end284.loopexit, !llvm.loop !14 for.end284.loopexit: ; preds = %for.inc281 - store double %mul279939, ptr %rv, align 8 - %76 = and i64 %indvars.iv.next810, 4294967295 + store double %mul279940, ptr %rv, align 8 + %76 = and i64 %indvars.iv.next811, 4294967295 br label %for.end284 for.end284: ; preds = %for.end284.loopexit, %if.end270 @@ -760,24 +760,24 @@ if.then317: ; preds = %if.end314 for.body328.preheader: ; preds = %if.then317 %tobool322.not = icmp samesign ult i32 %sub307, 256 %spec.select559 = select i1 %tobool322.not, i32 0, i32 106 - %rv.promoted934 = load double, ptr %rv, align 8 + %rv.promoted935 = load double, ptr %rv, align 8 br label %for.body328 for.body328: ; preds = %for.body328.preheader, %for.inc336 - %mul334935 = phi double [ %rv.promoted934, %for.body328.preheader ], [ %mul334936, %for.inc336 ] + %mul334936 = phi double [ %rv.promoted935, %for.body328.preheader ], [ %mul334937, %for.inc336 ] %90 = phi i32 [ %88, %for.body328.preheader ], [ %97, %for.inc336 ] %91 = phi i32 [ %89, %for.body328.preheader ], [ %98, %for.inc336 ] %indvars.iv = phi i64 [ 0, %for.body328.preheader ], [ %indvars.iv.next, %for.inc336 ] - %e1.1702 = phi i32 [ %shr315, %for.body328.preheader ], [ %shr338, %for.inc336 ] - %mul334699701 = phi double [ %rv.promoted, %for.body328.preheader ], [ %mul334698, %for.inc336 ] - %and329 = and i32 %e1.1702, 1 + %e1.1703 = phi i32 [ %shr315, %for.body328.preheader ], [ %shr338, %for.inc336 ] + %mul334700702 = phi double [ %rv.promoted, %for.body328.preheader ], [ %mul334699, %for.inc336 ] + %and329 = and i32 %e1.1703, 1 %tobool330.not = icmp eq i32 %and329, 0 br i1 %tobool330.not, label %for.inc336, label %if.then331 if.then331: ; preds = %for.body328 %arrayidx333 = getelementptr inbounds nuw [5 x double], ptr @_ZN6dmg_fpL8tinytensE, i64 0, i64 %indvars.iv %92 = load double, ptr %arrayidx333, align 8 - %mul334 = fmul double %92, %mul334699701 + %mul334 = fmul double %92, %mul334700702 %93 = bitcast double %mul334 to i64 %94 = lshr i64 %93, 32 %95 = trunc nuw i64 %94 to i32 @@ -785,17 +785,17 @@ if.then331: ; preds = %for.body328 br label %for.inc336 for.inc336: ; preds = %for.body328, %if.then331 - %mul334936 = phi double [ %mul334935, %for.body328 ], [ %mul334, %if.then331 ] + %mul334937 = phi double [ %mul334936, %for.body328 ], [ %mul334, %if.then331 ] %97 = phi i32 [ %90, %for.body328 ], [ %96, %if.then331 ] %98 = phi i32 [ %91, %for.body328 ], [ %95, %if.then331 ] - %mul334698 = phi double [ %mul334699701, %for.body328 ], [ %mul334, %if.then331 ] + %mul334699 = phi double [ %mul334700702, %for.body328 ], [ %mul334, %if.then331 ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %shr338 = lshr i32 %e1.1702, 1 - %cmp327.not = icmp samesign ult i32 %e1.1702, 2 + %shr338 = lshr i32 %e1.1703, 1 + %cmp327.not = icmp samesign ult i32 %e1.1703, 2 br i1 %cmp327.not, label %for.end339, label %for.body328, !llvm.loop !15 for.end339: ; preds = %for.inc336 - store double %mul334936, ptr %rv, align 8 + store double %mul334937, ptr %rv, align 8 br i1 %tobool322.not, label %if.end365, label %land.lhs.true342 land.lhs.true342: ; preds = %for.end339 @@ -878,8 +878,8 @@ for.end399: ; preds = %for.cond382 br i1 %cmp405, label %for.cond407.preheader, label %if.end434 for.cond407.preheader: ; preds = %for.end399 - %cmp408712 = icmp sgt i32 %spec.select263, 0 - br i1 %cmp408712, label %for.body409.preheader, label %for.cond420.preheader + %cmp408713 = icmp sgt i32 %spec.select263, 0 + br i1 %cmp408713, label %for.body409.preheader, label %for.cond420.preheader for.body409.preheader: ; preds = %for.cond407.preheader %wide.trip.count = zext nneg i32 %spec.select263 to i64 @@ -888,40 +888,40 @@ for.body409.preheader: ; preds = %for.cond407.prehead for.cond420.preheader: ; preds = %for.body409, %for.cond407.preheader %i.2.lcssa = phi i32 [ 0, %for.cond407.preheader ], [ %spec.select263, %for.body409 ] %y.10.lcssa = phi i32 [ 0, %for.cond407.preheader ], [ %sub415, %for.body409 ] - %cmp421717 = icmp slt i32 %i.2.lcssa, %i.1 - br i1 %cmp421717, label %for.body422.preheader, label %if.end434 + %cmp421718 = icmp slt i32 %i.2.lcssa, %i.1 + br i1 %cmp421718, label %for.body422.preheader, label %if.end434 for.body422.preheader: ; preds = %for.cond420.preheader %101 = sext i32 %bc.sroa.3.0 to i64 br label %for.body422 for.body409: ; preds = %for.body409.preheader, %for.body409 - %indvars.iv812 = phi i64 [ 0, %for.body409.preheader ], [ %indvars.iv.next813, %for.body409 ] - %y.10714 = phi i32 [ 0, %for.body409.preheader ], [ %sub415, %for.body409 ] - %mul410 = mul i32 %y.10714, 10 - %arrayidx412 = getelementptr inbounds nuw i8, ptr %s0.1, i64 %indvars.iv812 + %indvars.iv813 = phi i64 [ 0, %for.body409.preheader ], [ %indvars.iv.next814, %for.body409 ] + %y.10715 = phi i32 [ 0, %for.body409.preheader ], [ %sub415, %for.body409 ] + %mul410 = mul i32 %y.10715, 10 + %arrayidx412 = getelementptr inbounds nuw i8, ptr %s0.1, i64 %indvars.iv813 %102 = load i8, ptr %arrayidx412, align 1 %conv413 = sext i8 %102 to i32 %add414 = add i32 %mul410, -48 %sub415 = add i32 %add414, %conv413 - %indvars.iv.next813 = add nuw nsw i64 %indvars.iv812, 1 - %exitcond816.not = icmp eq i64 %indvars.iv.next813, %wide.trip.count - br i1 %exitcond816.not, label %for.cond420.preheader, label %for.body409, !llvm.loop !17 + %indvars.iv.next814 = add nuw nsw i64 %indvars.iv813, 1 + %exitcond817.not = icmp eq i64 %indvars.iv.next814, %wide.trip.count + br i1 %exitcond817.not, label %for.cond420.preheader, label %for.body409, !llvm.loop !17 for.body422: ; preds = %for.body422.preheader, %for.body422 - %indvars.iv817 = phi i64 [ %101, %for.body422.preheader ], [ %indvars.iv.next818, %for.body422 ] - %y.11720 = phi i32 [ %y.10.lcssa, %for.body422.preheader ], [ %sub429, %for.body422 ] - %i.3718 = phi i32 [ %i.2.lcssa, %for.body422.preheader ], [ %inc431, %for.body422 ] - %mul423 = mul i32 %y.11720, 10 - %indvars.iv.next818 = add nsw i64 %indvars.iv817, 1 - %arrayidx426 = getelementptr inbounds i8, ptr %s0.1, i64 %indvars.iv817 + %indvars.iv818 = phi i64 [ %101, %for.body422.preheader ], [ %indvars.iv.next819, %for.body422 ] + %y.11721 = phi i32 [ %y.10.lcssa, %for.body422.preheader ], [ %sub429, %for.body422 ] + %i.3719 = phi i32 [ %i.2.lcssa, %for.body422.preheader ], [ %inc431, %for.body422 ] + %mul423 = mul i32 %y.11721, 10 + %indvars.iv.next819 = add nsw i64 %indvars.iv818, 1 + %arrayidx426 = getelementptr inbounds i8, ptr %s0.1, i64 %indvars.iv818 %103 = load i8, ptr %arrayidx426, align 1 %conv427 = sext i8 %103 to i32 %add428 = add i32 %mul423, -48 %sub429 = add i32 %add428, %conv427 - %inc431 = add nuw nsw i32 %i.3718, 1 - %exitcond821.not = icmp eq i32 %inc431, %i.1 - br i1 %exitcond821.not, label %if.end434, label %for.body422, !llvm.loop !18 + %inc431 = add nuw nsw i32 %i.3719, 1 + %exitcond822.not = icmp eq i32 %inc431, %i.1 + br i1 %exitcond822.not, label %if.end434, label %for.body422, !llvm.loop !18 if.end434: ; preds = %for.body422, %for.cond420.preheader, %for.end399, %if.end372 %e.2 = phi i32 [ %add401, %for.end399 ], [ %sub203, %if.end372 ], [ %add401, %for.cond420.preheader ], [ %add401, %for.body422 ] @@ -1068,19 +1068,19 @@ _ZN6dmg_fpL3s2bEPKciiji.exit: ; preds = %for.body12.i, %if.e %k438 = getelementptr inbounds nuw i8, ptr %b.2.lcssa.i, i64 8 %sign441 = getelementptr inbounds nuw i8, ptr %b.2.lcssa.i, i64 16 %wds = getelementptr inbounds nuw i8, ptr %b.2.lcssa.i, i64 20 - %cmp447 = icmp sgt i32 %e.2, -1 %sub450 = sub nsw i32 0, %e.2 - %bd2.0 = select i1 %cmp447, i32 %e.2, i32 0 - %bb2.0 = select i1 %cmp447, i32 0, i32 %sub450 - %bd2.1 = add i32 %bd2.0, %bc.sroa.39.0 + %bd2.0 = tail call i32 @llvm.smax.i32(i32 %e.2, i32 0) + %cmp447.inv = icmp slt i32 %e.2, 0 + %bb2.0 = select i1 %cmp447.inv, i32 %sub450, i32 0 + %bd2.1 = add nuw i32 %bd2.0, %bc.sroa.39.0 %cmp486 = icmp sgt i32 %bb2.0, 0 - %cmp495 = icmp sgt i32 %bd2.0, 0 + %cmp495.not = icmp slt i32 %e.2, 1 %cmp512 = icmp sgt i32 %nd.2, %nd.6 %arrayidx660 = getelementptr inbounds nuw i8, ptr %rv, i64 4 %tobool719 = icmp ne i32 %bc.sroa.39.0, 0 %cmp749 = icmp eq i32 %nd.2, %nd.6 %tobool752 = icmp eq i32 %bc.sroa.39.0, 0 - %or.cond16.not562 = select i1 %cmp749, i1 %tobool752, i1 false + %or.cond16.not563 = select i1 %cmp749, i1 %tobool752, i1 false br label %for.cond437 for.cond437: ; preds = %for.cond437.backedge, %_ZN6dmg_fpL3s2bEPKciiji.exit @@ -1198,9 +1198,8 @@ _ZN6dmg_fpL3i2bEi.exit: ; preds = %if.then.i.i320, %if store i32 1, ptr %x.i, align 8 store i32 1, ptr %wds.i.i323, align 4 %119 = load i32, ptr %bbe, align 4 - %cmp452 = icmp sgt i32 %119, -1 - %sub456 = select i1 %cmp452, i32 0, i32 %119 - %add454 = select i1 %cmp452, i32 %119, i32 0 + %sub456 = tail call i32 @llvm.smin.i32(i32 %119, i32 0) + %add454 = tail call i32 @llvm.smax.i32(i32 %119, i32 0) %bb2.1 = add nuw nsw i32 %add454, %bb2.0 %sub459 = sub nsw i32 %119, %bc.sroa.39.0 %120 = load i32, ptr %bbbits, align 4 @@ -1256,7 +1255,7 @@ if.then492: ; preds = %if.end490 if.end494: ; preds = %if.then492, %if.end490 %bb.1 = phi ptr [ %call493, %if.then492 ], [ %bb.0, %if.end490 ] - br i1 %cmp495, label %if.then496, label %if.end498 + br i1 %cmp495.not, label %if.end498, label %if.then496 if.then496: ; preds = %if.end494 %call497 = tail call fastcc noundef ptr @_ZN6dmg_fpL8pow5multEPNS_6BigintEi(ptr noundef nonnull %rv.0.i, i32 noundef %bd2.0) @@ -1451,19 +1450,19 @@ drop_down: ; preds = %if.then7.i368, %if. %138 = phi i32 [ %130, %_ZN6dmg_fpL3cmpEPNS_6BigintES1_.exit373 ], [ %136, %if.else585 ], [ %130, %if.then7.i368 ] %bc.sroa.28.1547 = phi i32 [ %bc.sroa.28.1546, %_ZN6dmg_fpL3cmpEPNS_6BigintES1_.exit373 ], [ %nd.2, %if.else585 ], [ %bc.sroa.28.1546, %if.then7.i368 ] %delta.1 = phi ptr [ %call546, %_ZN6dmg_fpL3cmpEPNS_6BigintES1_.exit373 ], [ %call507, %if.else585 ], [ %call546, %if.then7.i368 ] - %.pre831 = and i32 %138, 2146435072 - %cmp598 = icmp samesign ugt i32 %.pre831, 112197632 - %or.cond940.not = select i1 %tobool752, i1 true, i1 %cmp598 - br i1 %or.cond940.not, label %if.end609, label %if.then599 + %.pre832 = and i32 %138, 2146435072 + %cmp598 = icmp samesign ugt i32 %.pre832, 112197632 + %or.cond941.not = select i1 %tobool752, i1 true, i1 %cmp598 + br i1 %or.cond941.not, label %if.end609, label %if.then599 if.then599: ; preds = %drop_down - %cmp600 = icmp samesign ugt i32 %.pre831, 57671680 + %cmp600 = icmp samesign ugt i32 %.pre832, 57671680 %cmp604 = icmp sgt i32 %bc.sroa.28.1547, %nd.6 %or.cond561 = select i1 %cmp600, i1 true, i1 %cmp604 br i1 %or.cond561, label %for.end782, label %undfl if.end609: ; preds = %drop_down - %or = add nsw i32 %.pre831, -1 + %or = add nsw i32 %.pre832, -1 store i32 %or, ptr %arrayidx660, align 4 store i32 -1, ptr %rv, align 8 br label %for.end782 @@ -1661,8 +1660,8 @@ if.end737: ; preds = %if.then724, %if.the %161 = bitcast double %aadj1.2 to i64 %aadj2.sroa.0.4.extract.shift = lshr i64 %161, 32 %aadj2.sroa.0.4.extract.trunc = trunc nuw i64 %aadj2.sroa.0.4.extract.shift to i32 - %reass.sub727 = sub i32 %aadj2.sroa.0.4.extract.trunc, %and692 - %add740 = add i32 %reass.sub727, 112197632 + %reass.sub728 = sub i32 %aadj2.sroa.0.4.extract.trunc, %and692 + %add740 = add i32 %reass.sub728, 112197632 %aadj2.sroa.0.4.insert.ext = zext i32 %add740 to i64 %aadj2.sroa.0.4.insert.shift = shl nuw i64 %aadj2.sroa.0.4.insert.ext, 32 %aadj2.sroa.0.4.insert.mask = and i64 %161, 4294967295 @@ -1692,7 +1691,7 @@ if.end745: ; preds = %if.end741, %if.else %aadj.2 = phi double [ %aadj.1, %if.else713 ], [ %aadj.3, %if.end741 ] %and747 = and i32 %168, 2146435072 %cmp754 = icmp eq i32 %and692, %and747 - %or.cond265 = select i1 %or.cond16.not562, i1 %cmp754, i1 false + %or.cond265 = select i1 %or.cond16.not563, i1 %cmp754, i1 false br i1 %or.cond265, label %if.then755, label %cont if.then755: ; preds = %if.end745 @@ -1702,10 +1701,10 @@ if.then755: ; preds = %if.end745 %tobool760 = icmp eq i32 %123, 0 %169 = and i64 %.in, 4294967295 %tobool763 = icmp eq i64 %169, 0 - %or.cond14.not563 = select i1 %tobool760, i1 %tobool763, i1 false + %or.cond14.not564 = select i1 %tobool760, i1 %tobool763, i1 false %and766 = and i32 %168, 1048575 %tobool767.not = icmp eq i32 %and766, 0 - %or.cond266 = select i1 %or.cond14.not563, i1 %tobool767.not, i1 false + %or.cond266 = select i1 %or.cond14.not564, i1 %tobool767.not, i1 false br i1 %or.cond266, label %if.else774, label %if.then768 if.then768: ; preds = %if.then755 @@ -2097,8 +2096,8 @@ if.end25.i: ; preds = %if.then21.i, %if.el %tobool19.not16.i.i.i = icmp slt i32 %x.addr.3.i.i.i, 0 %retval.0.i.i.i = select i1 %tobool19.not16.i.i.i, i32 %k.3.i.i.i, i32 %spec.select15.i.i.i %sub2.i.i = tail call i32 @llvm.smax.i32(i32 %d2.0.i, i32 0) - %reass.sub728 = sub nsw i32 %retval.0.i.i.i, %sub2.i.i - %spec.select.i.i = add nsw i32 %reass.sub728, 28 + %reass.sub729 = sub nsw i32 %retval.0.i.i.i, %sub2.i.i + %spec.select.i.i = add nsw i32 %reass.sub729, 28 %and.i.i = and i32 %spec.select.i.i, 31 %add32.i = add nuw nsw i32 %and.i.i, %b2.0.i %cmp33.not.i = icmp eq i32 %add32.i, 0 @@ -3943,10 +3942,10 @@ if.end64: ; preds = %if.then58, %select. %33 = load i32, ptr %bbits, align 4 %34 = xor i32 %i.0, -1 %sub66 = add i32 %33, %34 - %cmp67 = icmp sgt i32 %sub66, -1 %sub70 = sub nsw i32 0, %sub66 - %s2.0 = select i1 %cmp67, i32 %sub66, i32 0 - %b2.0 = select i1 %cmp67, i32 0, i32 %sub70 + %s2.0 = tail call i32 @llvm.smax.i32(i32 %sub66, i32 0) + %cmp67.inv = icmp slt i32 %sub66, 0 + %b2.0 = select i1 %cmp67.inv, i32 %sub70, i32 0 %cmp72 = icmp sgt i32 %k.1, -1 br i1 %cmp72, label %if.then73, label %if.else75 diff --git a/bench/libquic/optimized/exponentiation.c.ll b/bench/libquic/optimized/exponentiation.c.ll index 7e853455170..14849459da5 100644 --- a/bench/libquic/optimized/exponentiation.c.ll +++ b/bench/libquic/optimized/exponentiation.c.ll @@ -1153,7 +1153,7 @@ cond.end75: ; preds = %cond.false67, %cond %cond76 = phi i32 [ 6, %if.end63 ], [ %cond72, %cond.false67 ], [ 5, %cond.false ] %cmp77 = icmp samesign ugt i32 %cond76, 4 %mul = shl i32 %0, 3 - %spec.select = select i1 %cmp77, i32 5, i32 %cond76 + %spec.select = tail call i32 @llvm.umin.i32(i32 %cond76, i32 5) %spec.select278 = select i1 %cmp77, i32 %mul, i32 0 %shl = shl nuw nsw i32 1, %spec.select %mul82277 = shl nsw i32 %0, %spec.select @@ -1282,13 +1282,13 @@ for.body181.preheader: ; preds = %if.then174 br label %for.body181 for.body181: ; preds = %for.body181.preheader, %for.body181 - %indvars.iv390 = phi i64 [ %28, %for.body181.preheader ], [ %indvars.iv.next391, %for.body181 ] + %indvars.iv391 = phi i64 [ %28, %for.body181.preheader ], [ %indvars.iv.next392, %for.body181 ] %29 = load ptr, ptr %am, align 8 - %arrayidx184 = getelementptr inbounds i64, ptr %29, i64 %indvars.iv390 + %arrayidx184 = getelementptr inbounds i64, ptr %29, i64 %indvars.iv391 store i64 0, ptr %arrayidx184, align 8 - %indvars.iv.next391 = add nsw i64 %indvars.iv390, 1 - %exitcond394.not = icmp eq i64 %indvars.iv.next391, %conv105 - br i1 %exitcond394.not, label %for.end187, label %for.body181, !llvm.loop !18 + %indvars.iv.next392 = add nsw i64 %indvars.iv391, 1 + %exitcond395.not = icmp eq i64 %indvars.iv.next392, %conv105 + br i1 %exitcond395.not, label %for.end187, label %for.body181, !llvm.loop !18 for.end187: ; preds = %for.body181, %if.then174 %30 = load i32, ptr %top115, align 8 @@ -1300,13 +1300,13 @@ for.body192.preheader: ; preds = %for.end187 br label %for.body192 for.body192: ; preds = %for.body192.preheader, %for.body192 - %indvars.iv395 = phi i64 [ %31, %for.body192.preheader ], [ %indvars.iv.next396, %for.body192 ] + %indvars.iv396 = phi i64 [ %31, %for.body192.preheader ], [ %indvars.iv.next397, %for.body192 ] %32 = load ptr, ptr %tmp, align 8 - %arrayidx195 = getelementptr inbounds i64, ptr %32, i64 %indvars.iv395 + %arrayidx195 = getelementptr inbounds i64, ptr %32, i64 %indvars.iv396 store i64 0, ptr %arrayidx195, align 8 - %indvars.iv.next396 = add nsw i64 %indvars.iv395, 1 - %exitcond399.not = icmp eq i64 %indvars.iv.next396, %conv105 - br i1 %exitcond399.not, label %for.end198, label %for.body192, !llvm.loop !19 + %indvars.iv.next397 = add nsw i64 %indvars.iv396, 1 + %exitcond400.not = icmp eq i64 %indvars.iv.next397, %conv105 + br i1 %exitcond400.not, label %for.end198, label %for.body192, !llvm.loop !19 for.end198: ; preds = %for.body192, %for.end187 %33 = load ptr, ptr %am, align 8 @@ -1316,19 +1316,19 @@ for.end198: ; preds = %for.body192, %for.e for.body205.lr.ph: ; preds = %for.end198 %N = getelementptr inbounds nuw i8, ptr %mont.addr.0, i64 24 - %wide.trip.count403 = zext nneg i32 %0 to i64 + %wide.trip.count404 = zext nneg i32 %0 to i64 br label %for.body205 for.body205: ; preds = %for.body205.lr.ph, %for.body205 - %indvars.iv400 = phi i64 [ 0, %for.body205.lr.ph ], [ %indvars.iv.next401, %for.body205 ] + %indvars.iv401 = phi i64 [ 0, %for.body205.lr.ph ], [ %indvars.iv.next402, %for.body205 ] %34 = load ptr, ptr %N, align 8 - %arrayidx208 = getelementptr inbounds nuw i64, ptr %34, i64 %indvars.iv400 + %arrayidx208 = getelementptr inbounds nuw i64, ptr %34, i64 %indvars.iv401 %35 = load i64, ptr %arrayidx208, align 8 - %arrayidx210 = getelementptr inbounds nuw i64, ptr %add.ptr201, i64 %indvars.iv400 + %arrayidx210 = getelementptr inbounds nuw i64, ptr %add.ptr201, i64 %indvars.iv401 store i64 %35, ptr %arrayidx210, align 8 - %indvars.iv.next401 = add nuw nsw i64 %indvars.iv400, 1 - %exitcond404.not = icmp eq i64 %indvars.iv.next401, %wide.trip.count403 - br i1 %exitcond404.not, label %for.end213, label %for.body205, !llvm.loop !20 + %indvars.iv.next402 = add nuw nsw i64 %indvars.iv401, 1 + %exitcond405.not = icmp eq i64 %indvars.iv.next402, %wide.trip.count404 + br i1 %exitcond405.not, label %for.end213, label %for.body205, !llvm.loop !20 for.end213: ; preds = %for.body205, %for.end198 %36 = load ptr, ptr %tmp, align 8 @@ -1356,15 +1356,15 @@ for.body228: ; preds = %for.end213, %for.bo br i1 %cmp226, label %for.body228, label %for.body242, !llvm.loop !21 for.body242: ; preds = %for.body228, %for.inc264 - %indvars.iv405 = phi i64 [ %indvars.iv.next406, %for.inc264 ], [ 3, %for.body228 ] + %indvars.iv406 = phi i64 [ %indvars.iv.next407, %for.inc264 ], [ 3, %for.body228 ] %44 = load ptr, ptr %tmp, align 8 %45 = load ptr, ptr %am, align 8 - %46 = trunc i64 %indvars.iv405 to i32 + %46 = trunc i64 %indvars.iv406 to i32 %47 = add nsw i32 %46, -1 call void @bn_mul_mont_gather5(ptr noundef %44, ptr noundef %45, ptr noundef nonnull %add.ptr, ptr noundef %add.ptr201, ptr noundef nonnull %n0176, i32 noundef %0, i32 noundef %47) #7 %48 = load ptr, ptr %tmp, align 8 - call void @bn_scatter5(ptr noundef %48, i64 noundef %conv105, ptr noundef nonnull %add.ptr, i64 noundef %indvars.iv405) #7 - %49 = trunc nuw nsw i64 %indvars.iv405 to i32 + call void @bn_scatter5(ptr noundef %48, i64 noundef %conv105, ptr noundef nonnull %add.ptr, i64 noundef %indvars.iv406) #7 + %49 = trunc nuw nsw i64 %indvars.iv406 to i32 br label %for.body253 for.body253: ; preds = %for.body242, %for.body253 @@ -1379,39 +1379,39 @@ for.body253: ; preds = %for.body242, %for.b br i1 %cmp251, label %for.body253, label %for.inc264, !llvm.loop !22 for.inc264: ; preds = %for.body253 - %indvars.iv.next406 = add nuw nsw i64 %indvars.iv405, 2 - %cmp240 = icmp samesign ult i64 %indvars.iv405, 6 + %indvars.iv.next407 = add nuw nsw i64 %indvars.iv406, 2 + %cmp240 = icmp samesign ult i64 %indvars.iv406, 6 br i1 %cmp240, label %for.body242, label %for.body270, !llvm.loop !23 for.body270: ; preds = %for.inc264, %for.body270 - %indvars.iv409 = phi i64 [ %indvars.iv.next410, %for.body270 ], [ 9, %for.inc264 ] + %indvars.iv410 = phi i64 [ %indvars.iv.next411, %for.body270 ], [ 9, %for.inc264 ] %52 = load ptr, ptr %tmp, align 8 %53 = load ptr, ptr %am, align 8 - %54 = trunc i64 %indvars.iv409 to i32 + %54 = trunc i64 %indvars.iv410 to i32 %55 = add nsw i32 %54, -1 call void @bn_mul_mont_gather5(ptr noundef %52, ptr noundef %53, ptr noundef nonnull %add.ptr, ptr noundef %add.ptr201, ptr noundef nonnull %n0176, i32 noundef %0, i32 noundef %55) #7 %56 = load ptr, ptr %tmp, align 8 - call void @bn_scatter5(ptr noundef %56, i64 noundef %conv105, ptr noundef nonnull %add.ptr, i64 noundef %indvars.iv409) #7 + call void @bn_scatter5(ptr noundef %56, i64 noundef %conv105, ptr noundef nonnull %add.ptr, i64 noundef %indvars.iv410) #7 %57 = load ptr, ptr %tmp, align 8 %call280 = call i32 @bn_mul_mont(ptr noundef %57, ptr noundef %57, ptr noundef %57, ptr noundef %add.ptr201, ptr noundef nonnull %n0176, i32 noundef %0) #7 %58 = load ptr, ptr %tmp, align 8 - %59 = shl nuw nsw i64 %indvars.iv409, 1 + %59 = shl nuw nsw i64 %indvars.iv410, 1 call void @bn_scatter5(ptr noundef %58, i64 noundef %conv105, ptr noundef nonnull %add.ptr, i64 noundef %59) #7 - %indvars.iv.next410 = add nuw nsw i64 %indvars.iv409, 2 - %cmp268 = icmp samesign ult i64 %indvars.iv409, 14 + %indvars.iv.next411 = add nuw nsw i64 %indvars.iv410, 2 + %cmp268 = icmp samesign ult i64 %indvars.iv410, 14 br i1 %cmp268, label %for.body270, label %for.body291, !llvm.loop !24 for.body291: ; preds = %for.body270, %for.body291 - %indvars.iv414 = phi i64 [ %indvars.iv.next415, %for.body291 ], [ 17, %for.body270 ] + %indvars.iv415 = phi i64 [ %indvars.iv.next416, %for.body291 ], [ 17, %for.body270 ] %60 = load ptr, ptr %tmp, align 8 %61 = load ptr, ptr %am, align 8 - %62 = trunc i64 %indvars.iv414 to i32 + %62 = trunc i64 %indvars.iv415 to i32 %63 = add nsw i32 %62, -1 call void @bn_mul_mont_gather5(ptr noundef %60, ptr noundef %61, ptr noundef nonnull %add.ptr, ptr noundef %add.ptr201, ptr noundef nonnull %n0176, i32 noundef %0, i32 noundef %63) #7 %64 = load ptr, ptr %tmp, align 8 - call void @bn_scatter5(ptr noundef %64, i64 noundef %conv105, ptr noundef nonnull %add.ptr, i64 noundef %indvars.iv414) #7 - %indvars.iv.next415 = add nuw nsw i64 %indvars.iv414, 2 - %cmp289 = icmp samesign ult i64 %indvars.iv414, 30 + call void @bn_scatter5(ptr noundef %64, i64 noundef %conv105, ptr noundef nonnull %add.ptr, i64 noundef %indvars.iv415) #7 + %indvars.iv.next416 = add nuw nsw i64 %indvars.iv415, 2 + %cmp289 = icmp samesign ult i64 %indvars.iv415, 30 br i1 %cmp289, label %for.body291, label %for.end300, !llvm.loop !25 for.end300: ; preds = %for.body291 @@ -1458,8 +1458,8 @@ for.body323: ; preds = %while.cond.preheade %add326 = add nsw i32 %call325, %shl324 %inc328 = add nuw nsw i32 %i.9375, 1 %dec329 = add nsw i32 %bits.2374, -1 - %exitcond418.not = icmp eq i32 %inc328, 5 - br i1 %exitcond418.not, label %for.end330, label %for.body323.backedge + %exitcond419.not = icmp eq i32 %inc328, 5 + br i1 %exitcond419.not, label %for.end330, label %for.body323.backedge for.body323.backedge: ; preds = %for.body323, %for.end330 %i.9375.be = phi i32 [ %inc328, %for.body323 ], [ 0, %for.end330 ] @@ -1592,7 +1592,7 @@ for.body.i287: ; preds = %for.body.i287, %for br i1 %exitcond.not.i294, label %copy_to_prebuf.exit295, label %for.body.i287, !llvm.loop !29 copy_to_prebuf.exit295: ; preds = %for.body.i287, %copy_to_prebuf.exit - %cmp411 = icmp sgt i32 %spec.select, 1 + %cmp411 = icmp ugt i32 %cond76, 1 br i1 %cmp411, label %if.then413, label %if.end435 if.then413: ; preds = %copy_to_prebuf.exit295 @@ -1687,10 +1687,14 @@ for.end448: ; preds = %for.body441, %if.en %bits.5.lcssa = phi i32 [ %dec436, %if.end435 ], [ %dec447, %for.body441 ] %call449 = call fastcc i32 @copy_from_prebuf(ptr noundef %tmp, i32 noundef %0, ptr noundef %add.ptr, i32 noundef %wvalue.2.lcssa, i32 noundef %spec.select) %tobool450.not = icmp eq i32 %call449, 0 - br i1 %tobool450.not, label %if.then488, label %while.cond453 + br i1 %tobool450.not, label %if.then488, label %while.cond453.preheader + +while.cond453.preheader: ; preds = %for.end448 + %umax389 = call i32 @llvm.umax.i32(i32 %spec.select, i32 1) + br label %while.cond453 -while.cond453: ; preds = %for.end448, %if.end475 - %bits.6 = phi i32 [ %dec470, %if.end475 ], [ %bits.5.lcssa, %for.end448 ] +while.cond453: ; preds = %while.cond453.preheader, %if.end475 + %bits.6 = phi i32 [ %dec470, %if.end475 ], [ %bits.5.lcssa, %while.cond453.preheader ] %cmp454 = icmp sgt i32 %bits.6, -1 br i1 %cmp454, label %for.body460, label %if.end481 @@ -1708,8 +1712,8 @@ if.end464: ; preds = %for.body460 %add467 = add nsw i32 %call466, %shl465 %inc469 = add nuw nsw i32 %i.12352, 1 %dec470 = add nsw i32 %bits.7351, -1 - %exitcond389.not = icmp eq i32 %inc469, %spec.select - br i1 %exitcond389.not, label %for.end471, label %for.body460, !llvm.loop !32 + %exitcond390.not = icmp eq i32 %inc469, %umax389 + br i1 %exitcond390.not, label %for.end471, label %for.body460, !llvm.loop !32 for.end471: ; preds = %if.end464 %call472 = call fastcc i32 @copy_from_prebuf(ptr noundef %am, i32 noundef %0, ptr noundef %add.ptr, i32 noundef %add467, i32 noundef %spec.select) @@ -2678,6 +2682,9 @@ declare i32 @llvm.smin.i32(i32, i32) #5 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.umax.i32(i32, i32) #5 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i32 @llvm.umin.i32(i32, i32) #5 + ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #6 diff --git a/bench/libwebp/optimized/cost.c.ll b/bench/libwebp/optimized/cost.c.ll index 714b989cce1..7eec166f977 100644 --- a/bench/libwebp/optimized/cost.c.ll +++ b/bench/libwebp/optimized/cost.c.ll @@ -105,75 +105,76 @@ define internal i32 @GetResidualCost_C(i32 noundef %0, ptr noundef readonly capt %.in.in.i44 = getelementptr inbounds nuw [256 x i16], ptr @VP8EntropyCost, i64 0, i64 %.pn.i43 %.in.i45 = load i16, ptr %.in.in.i44, align 2 %26 = zext i16 %.in.i45 to i32 - br label %72 + br label %74 27: ; preds = %.lr.ph, %27 %indvars.iv = phi i64 [ %6, %.lr.ph ], [ %indvars.iv.next, %27 ] - %.04051 = phi ptr [ %13, %.lr.ph ], [ %44, %27 ] - %.04150 = phi i32 [ %18, %.lr.ph ], [ %41, %27 ] + %.04051 = phi ptr [ %13, %.lr.ph ], [ %46, %27 ] + %.04150 = phi i32 [ %18, %.lr.ph ], [ %43, %27 ] %28 = getelementptr inbounds i16, ptr %24, i64 %indvars.iv %29 = load i16, ptr %28, align 2 %30 = tail call i16 @llvm.abs.i16(i16 %29, i1 false) - %31 = zext i16 %30 to i64 - %32 = getelementptr inbounds nuw [2048 x i16], ptr @VP8LevelFixedCosts, i64 0, i64 %31 - %33 = load i16, ptr %32, align 2 - %34 = zext i16 %33 to i32 - %35 = tail call i16 @llvm.umin.i16(i16 %30, i16 67) - %36 = zext nneg i16 %35 to i64 - %37 = getelementptr inbounds nuw i16, ptr %.04051, i64 %36 - %38 = load i16, ptr %37, align 2 - %39 = zext i16 %38 to i32 - %40 = add nuw nsw i32 %.04150, %34 - %41 = add nuw nsw i32 %40, %39 + %31 = zext i16 %30 to i32 + %32 = tail call i32 @llvm.umin.i32(i32 %31, i32 2) + %33 = zext i16 %30 to i64 + %34 = getelementptr inbounds nuw [2048 x i16], ptr @VP8LevelFixedCosts, i64 0, i64 %33 + %35 = load i16, ptr %34, align 2 + %36 = zext i16 %35 to i32 + %37 = tail call i32 @llvm.umin.i32(i32 range(i32 0, 32769) %31, i32 67) + %38 = zext nneg i32 %37 to i64 + %39 = getelementptr inbounds nuw i16, ptr %.04051, i64 %38 + %40 = load i16, ptr %39, align 2 + %41 = zext i16 %40 to i32 + %42 = add nuw nsw i32 %.04150, %36 + %43 = add nuw nsw i32 %42, %41 %indvars.iv.next = add nsw i64 %indvars.iv, 1 - %narrow = tail call i16 @llvm.umin.i16(i16 %30, i16 2) - %42 = zext nneg i16 %narrow to i64 - %43 = getelementptr inbounds [3 x ptr], ptr %11, i64 %indvars.iv.next, i64 %42 - %44 = load ptr, ptr %43, align 8 + %44 = zext nneg i32 %32 to i64 + %45 = getelementptr inbounds [3 x ptr], ptr %11, i64 %indvars.iv.next, i64 %44 + %46 = load ptr, ptr %45, align 8 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count br i1 %exitcond.not, label %._crit_edge, label %27, !llvm.loop !4 ._crit_edge: ; preds = %27, %.preheader %.pre-phi = phi i64 [ %6, %.preheader ], [ %wide.trip.count, %27 ] - %.041.lcssa = phi i32 [ %18, %.preheader ], [ %41, %27 ] - %.040.lcssa = phi ptr [ %13, %.preheader ], [ %44, %27 ] + %.041.lcssa = phi i32 [ %18, %.preheader ], [ %43, %27 ] + %.040.lcssa = phi ptr [ %13, %.preheader ], [ %46, %27 ] %.039.lcssa = phi i32 [ %3, %.preheader ], [ %20, %27 ] - %45 = getelementptr inbounds i16, ptr %24, i64 %.pre-phi - %46 = load i16, ptr %45, align 2 - %47 = tail call i16 @llvm.abs.i16(i16 %46, i1 false) - %48 = zext i16 %47 to i64 - %49 = getelementptr inbounds nuw [2048 x i16], ptr @VP8LevelFixedCosts, i64 0, i64 %48 - %50 = load i16, ptr %49, align 2 - %51 = zext i16 %50 to i32 - %52 = tail call i16 @llvm.umin.i16(i16 %47, i16 67) - %53 = zext nneg i16 %52 to i64 - %54 = getelementptr inbounds nuw i16, ptr %.040.lcssa, i64 %53 - %55 = load i16, ptr %54, align 2 - %56 = zext i16 %55 to i32 - %57 = add nuw nsw i32 %.041.lcssa, %51 - %58 = add nuw nsw i32 %57, %56 - %59 = icmp slt i32 %.039.lcssa, 15 - br i1 %59, label %60, label %72 - -60: ; preds = %._crit_edge - %61 = add nsw i32 %.039.lcssa, 1 - %62 = sext i32 %61 to i64 - %63 = getelementptr inbounds [17 x i8], ptr @VP8EncBands, i64 0, i64 %62 - %64 = load i8, ptr %63, align 1 - %65 = icmp eq i16 %47, 1 - %66 = zext i8 %64 to i64 - %67 = select i1 %65, i64 1, i64 2 - %68 = getelementptr inbounds nuw [3 x [11 x i8]], ptr %5, i64 %66, i64 %67 - %69 = load i8, ptr %68, align 1 - %.pn.i47 = zext i8 %69 to i64 + %47 = getelementptr inbounds i16, ptr %24, i64 %.pre-phi + %48 = load i16, ptr %47, align 2 + %49 = tail call i16 @llvm.abs.i16(i16 %48, i1 false) + %50 = zext i16 %49 to i64 + %51 = getelementptr inbounds nuw [2048 x i16], ptr @VP8LevelFixedCosts, i64 0, i64 %50 + %52 = load i16, ptr %51, align 2 + %53 = zext i16 %52 to i32 + %54 = tail call i16 @llvm.umin.i16(i16 %49, i16 67) + %55 = zext nneg i16 %54 to i64 + %56 = getelementptr inbounds nuw i16, ptr %.040.lcssa, i64 %55 + %57 = load i16, ptr %56, align 2 + %58 = zext i16 %57 to i32 + %59 = add nuw nsw i32 %.041.lcssa, %53 + %60 = add nuw nsw i32 %59, %58 + %61 = icmp slt i32 %.039.lcssa, 15 + br i1 %61, label %62, label %74 + +62: ; preds = %._crit_edge + %63 = add nsw i32 %.039.lcssa, 1 + %64 = sext i32 %63 to i64 + %65 = getelementptr inbounds [17 x i8], ptr @VP8EncBands, i64 0, i64 %64 + %66 = load i8, ptr %65, align 1 + %67 = icmp eq i16 %49, 1 + %68 = zext i8 %66 to i64 + %69 = select i1 %67, i64 1, i64 2 + %70 = getelementptr inbounds nuw [3 x [11 x i8]], ptr %5, i64 %68, i64 %69 + %71 = load i8, ptr %70, align 1 + %.pn.i47 = zext i8 %71 to i64 %.in.in.i48 = getelementptr inbounds nuw [256 x i16], ptr @VP8EntropyCost, i64 0, i64 %.pn.i47 %.in.i49 = load i16, ptr %.in.in.i48, align 2 - %70 = zext i16 %.in.i49 to i32 - %71 = add nuw nsw i32 %58, %70 - br label %72 + %72 = zext i16 %.in.i49 to i32 + %73 = add nuw nsw i32 %60, %72 + br label %74 -72: ; preds = %._crit_edge, %60, %25 - %.0 = phi i32 [ %26, %25 ], [ %71, %60 ], [ %58, %._crit_edge ] +74: ; preds = %._crit_edge, %62, %25 + %.0 = phi i32 [ %26, %25 ], [ %73, %62 ], [ %60, %._crit_edge ] ret i32 %.0 } @@ -211,6 +212,9 @@ declare void @VP8EncDspCostInitSSE2() local_unnamed_addr #4 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i16 @llvm.abs.i16(i16, i1 immarg) #5 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i32 @llvm.umin.i32(i32, i32) #5 + ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i16 @llvm.umin.i16(i16, i16) #5 diff --git a/bench/lief/optimized/File.cpp.ll b/bench/lief/optimized/File.cpp.ll index 76fda4068a6..edc54ca98b4 100644 --- a/bench/lief/optimized/File.cpp.ll +++ b/bench/lief/optimized/File.cpp.ll @@ -5220,7 +5220,7 @@ _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_cold _ZN8nlohmann16json_abi_v3_11_26detail14output_adapterIcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev.exit: ; preds = %_ZNSt10shared_ptrIN8nlohmann16json_abi_v3_11_26detail23output_adapter_protocolIcEEED2Ev.exit, %75, %88, %_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i.i %93 = icmp sgt i32 %2, -1 - %94 = select i1 %93, i32 %2, i32 0 + %94 = call i32 @llvm.smax.i32(i32 %2, i32 0) invoke void @_ZN8nlohmann16json_abi_v3_11_26detail10serializerINS0_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS0_14adl_serializerES5_IhSaIhEEEEE4dumpERKSF_bbjj(ptr noundef nonnull align 8 dereferenceable(644) %7, ptr noundef nonnull align 8 dereferenceable(16) %1, i1 noundef zeroext %93, i1 noundef zeroext %4, i32 noundef %94, i32 noundef 0) to label %101 unwind label %99 diff --git a/bench/linux/optimized/act_api.ll b/bench/linux/optimized/act_api.ll index dd9e1ed298c..1a7a5f4d3f0 100644 --- a/bench/linux/optimized/act_api.ll +++ b/bench/linux/optimized/act_api.ll @@ -3077,8 +3077,8 @@ define dso_local noundef range(i32 -22, 1) i32 @tcf_action_reoffload_cb(ptr noun 97: ; preds = %90 %98 = call i32 %0(ptr noundef null, ptr noundef null, ptr noundef %1, i32 noundef 20, ptr noundef null, ptr noundef nonnull %4, ptr noundef null) #14 - %99 = icmp sgt i32 %98, -1 - br i1 %99, label %100, label %tcf_action_offload_del_ex.exit.thread + %99 = icmp slt i32 %98, 0 + br i1 %99, label %tcf_action_offload_del_ex.exit.thread, label %100 100: ; preds = %97 %101 = load i32, ptr %79, align 8 @@ -3086,7 +3086,7 @@ define dso_local noundef range(i32 -22, 1) i32 @tcf_action_reoffload_cb(ptr noun store i32 %102, ptr %79, align 8 br label %tcf_action_offload_del_ex.exit.thread15 -tcf_action_offload_del_ex.exit.thread: ; preds = %82, %97 +tcf_action_offload_del_ex.exit.thread: ; preds = %97, %82 call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %4) #14 br label %173 @@ -3263,7 +3263,7 @@ define internal fastcc i32 @tcf_action_offload_add_ex(ptr noundef %0, ptr nounde store ptr %0, ptr %5, align 16 %10 = and i32 %7, 2 %11 = icmp eq i32 %10, 0 - br i1 %11, label %12, label %79 + br i1 %11, label %12, label %80 12: ; preds = %4 %13 = load ptr, ptr %0, align 16 @@ -3290,7 +3290,7 @@ define internal fastcc i32 @tcf_action_offload_add_ex(ptr noundef %0, ptr nounde %26 = phi i32 [ %24, %19 ], [ 1, %15 ], [ 1, %12 ] %27 = tail call ptr @offload_action_alloc(i32 noundef %26) #14 %28 = icmp eq ptr %27, null - br i1 %28, label %79, label %29 + br i1 %28, label %80, label %29 29: ; preds = %25 store ptr %1, ptr %27, align 8 @@ -3337,59 +3337,59 @@ define internal fastcc i32 @tcf_action_offload_add_ex(ptr noundef %0, ptr nounde 54: ; preds = %47 %55 = icmp eq ptr %2, null - br i1 %55, label %59, label %56 + br i1 %55, label %56, label %.thread6 56: ; preds = %54 - %57 = call i32 %2(ptr noundef null, ptr noundef null, ptr noundef %3, i32 noundef 20, ptr noundef null, ptr noundef nonnull %27, ptr noundef null) #14 + %57 = call i32 @flow_indr_dev_setup_offload(ptr noundef null, ptr noundef null, i32 noundef 20, ptr noundef nonnull %27, ptr noundef null, ptr noundef null) #14 %58 = icmp sgt i32 %57, -1 - br i1 %58, label %63, label %.thread7 + br i1 %58, label %61, label %70 -59: ; preds = %54 - %60 = call i32 @flow_indr_dev_setup_offload(ptr noundef null, ptr noundef null, i32 noundef 20, ptr noundef nonnull %27, ptr noundef null, ptr noundef null) #14 - %61 = icmp sgt i32 %60, -1 - br i1 %61, label %.thread8, label %.thread7 +.thread6: ; preds = %54 + %59 = call i32 %2(ptr noundef null, ptr noundef null, ptr noundef %3, i32 noundef 20, ptr noundef null, ptr noundef nonnull %27, ptr noundef null) #14 + %60 = icmp sgt i32 %59, -1 + br i1 %60, label %63, label %70 -.thread8: ; preds = %59 +61: ; preds = %56 %62 = getelementptr inbounds nuw i8, ptr %0, i64 200 br label %67 -63: ; preds = %56 +63: ; preds = %.thread6 %64 = getelementptr inbounds nuw i8, ptr %0, i64 200 %65 = load i32, ptr %64, align 8 %66 = add i32 %65, 1 br label %67 -67: ; preds = %.thread8, %63 - %68 = phi ptr [ %64, %63 ], [ %62, %.thread8 ] - %69 = phi i32 [ %66, %63 ], [ %60, %.thread8 ] +67: ; preds = %61, %63 + %68 = phi ptr [ %64, %63 ], [ %62, %61 ] + %69 = phi i32 [ %66, %63 ], [ %57, %61 ] store i32 %69, ptr %68, align 8 - br label %.thread7 + br label %70 -.thread7: ; preds = %56, %67, %59 - %70 = phi i32 [ 0, %67 ], [ %60, %59 ], [ %57, %56 ] - br i1 %9, label %76, label %71 +70: ; preds = %.thread6, %67, %56 + %71 = phi i32 [ %59, %.thread6 ], [ 0, %67 ], [ %57, %56 ] + br i1 %9, label %77, label %72 -71: ; preds = %.thread7 - %72 = getelementptr inbounds nuw i8, ptr %0, i64 200 - %73 = load i32, ptr %72, align 8 - %74 = icmp eq i32 %73, 0 - %75 = select i1 %74, i32 -22, i32 %70 - br label %76 +72: ; preds = %70 + %73 = getelementptr inbounds nuw i8, ptr %0, i64 200 + %74 = load i32, ptr %73, align 8 + %75 = icmp eq i32 %74, 0 + %76 = select i1 %75, i32 -22, i32 %71 + br label %77 -76: ; preds = %71, %.thread7 - %77 = phi i32 [ %70, %.thread7 ], [ %75, %71 ] +77: ; preds = %72, %70 + %78 = phi i32 [ %71, %70 ], [ %76, %72 ] call void @tc_cleanup_offload_action(ptr noundef nonnull %48) #14 br label %.thread -.thread: ; preds = %29, %76, %53, %51, %40 - %78 = phi i32 [ %45, %40 ], [ %77, %76 ], [ %49, %53 ], [ %49, %51 ], [ -95, %29 ] +.thread: ; preds = %29, %77, %53, %51, %40 + %79 = phi i32 [ %45, %40 ], [ %78, %77 ], [ %49, %53 ], [ %49, %51 ], [ -95, %29 ] call void @kfree(ptr noundef nonnull %27) #14 - br label %79 + br label %80 -79: ; preds = %.thread, %25, %4 - %80 = phi i32 [ %78, %.thread ], [ 0, %4 ], [ -12, %25 ] +80: ; preds = %.thread, %25, %4 + %81 = phi i32 [ %79, %.thread ], [ 0, %4 ], [ -12, %25 ] call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %5) #14 - ret i32 %80 + ret i32 %81 } ; Function Attrs: null_pointer_is_valid diff --git a/bench/linux/optimized/check.ll b/bench/linux/optimized/check.ll index cb0858972aa..2588e2c2368 100644 --- a/bench/linux/optimized/check.ll +++ b/bench/linux/optimized/check.ll @@ -168,11 +168,11 @@ define dso_local void @setup_bios_corruption_check() local_unnamed_addr #0 secti .thread: ; preds = %.thread7, %6 store i32 0, ptr @memory_corruption_check, align 4 - br label %57 + br label %56 11: ; preds = %6 %12 = icmp eq i32 %4, 0 - br i1 %12, label %57, label %.thread10 + br i1 %12, label %56, label %.thread10 .thread10: ; preds = %.thread7, %11 %13 = phi i32 [ %7, %11 ], [ %9, %.thread7 ] @@ -188,7 +188,7 @@ define dso_local void @setup_bios_corruption_check() local_unnamed_addr #0 secti %18 = icmp eq i64 %17, -1 br i1 %18, label %.loopexit, label %.preheader -.preheader: ; preds = %.thread10, %51 +.preheader: ; preds = %.thread10, %50 %19 = load i64, ptr %1, align 8 %20 = add i64 %19, -1 %21 = or i64 %20, 4095 @@ -196,58 +196,57 @@ define dso_local void @setup_bios_corruption_check() local_unnamed_addr #0 secti %23 = load i32, ptr @corruption_check_size, align 4 %24 = zext i32 %23 to i64 %25 = icmp ult i64 %22, %24 - %26 = icmp ult i64 %22, 4097 - %27 = select i1 %26, i64 4096, i64 %22 - %28 = select i1 %25, i64 %27, i64 %24 - store i64 %28, ptr %1, align 8 - %29 = load i64, ptr %2, align 8 - %30 = and i64 %29, -4096 - %31 = icmp ult i64 %30, %24 - %32 = call i64 @llvm.umax.i64(i64 %30, i64 4096) - %33 = select i1 %31, i64 %32, i64 %24 - store i64 %33, ptr %2, align 8 - %34 = icmp ult i64 %28, %33 - br i1 %34, label %35, label %51 - -35: ; preds = %.preheader - %36 = sub nuw nsw i64 %33, %28 - %37 = call i32 @memblock_reserve(i64 noundef %28, i64 noundef %36) #7 - %38 = load i64, ptr %1, align 8 - %39 = load i32, ptr @num_scan_areas, align 4 - %40 = sext i32 %39 to i64 - %41 = getelementptr [8 x %struct.scan_area], ptr @scan_areas, i64 0, i64 %40 - store i64 %38, ptr %41, align 16 - %42 = load i64, ptr %2, align 8 - %43 = sub i64 %42, %38 - %44 = getelementptr [8 x %struct.scan_area], ptr @scan_areas, i64 0, i64 %40, i32 1 - store i64 %43, ptr %44, align 8 - %45 = load i64, ptr @page_offset_base, align 8 - %46 = add i64 %45, %38 - %47 = inttoptr i64 %46 to ptr - call void @llvm.memset.p0.i64(ptr align 1 %47, i8 0, i64 %43, i1 false) - %48 = load i32, ptr @num_scan_areas, align 4 - %49 = add i32 %48, 1 - store i32 %49, ptr @num_scan_areas, align 4 - %50 = icmp sgt i32 %49, 7 - br i1 %50, label %.thread5, label %51 - -51: ; preds = %35, %.preheader + %26 = call i64 @llvm.umax.i64(i64 %22, i64 4096) + %27 = select i1 %25, i64 %26, i64 %24 + store i64 %27, ptr %1, align 8 + %28 = load i64, ptr %2, align 8 + %29 = and i64 %28, -4096 + %30 = icmp ult i64 %29, %24 + %31 = call i64 @llvm.umax.i64(i64 %29, i64 4096) + %32 = select i1 %30, i64 %31, i64 %24 + store i64 %32, ptr %2, align 8 + %33 = icmp ult i64 %27, %32 + br i1 %33, label %34, label %50 + +34: ; preds = %.preheader + %35 = sub nuw nsw i64 %32, %27 + %36 = call i32 @memblock_reserve(i64 noundef %27, i64 noundef %35) #7 + %37 = load i64, ptr %1, align 8 + %38 = load i32, ptr @num_scan_areas, align 4 + %39 = sext i32 %38 to i64 + %40 = getelementptr [8 x %struct.scan_area], ptr @scan_areas, i64 0, i64 %39 + store i64 %37, ptr %40, align 16 + %41 = load i64, ptr %2, align 8 + %42 = sub i64 %41, %37 + %43 = getelementptr [8 x %struct.scan_area], ptr @scan_areas, i64 0, i64 %39, i32 1 + store i64 %42, ptr %43, align 8 + %44 = load i64, ptr @page_offset_base, align 8 + %45 = add i64 %44, %37 + %46 = inttoptr i64 %45 to ptr + call void @llvm.memset.p0.i64(ptr align 1 %46, i8 0, i64 %42, i1 false) + %47 = load i32, ptr @num_scan_areas, align 4 + %48 = add i32 %47, 1 + store i32 %48, ptr @num_scan_areas, align 4 + %49 = icmp sgt i32 %48, 7 + br i1 %49, label %.thread5, label %50 + +50: ; preds = %34, %.preheader call void @__next_mem_range(ptr noundef nonnull %3, i32 noundef -1, i32 noundef 0, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @memblock, i64 16), ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @memblock, i64 56), ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef null) #7 - %52 = load i64, ptr %3, align 8 - %53 = icmp eq i64 %52, -1 - br i1 %53, label %.loopexit, label %.preheader, !llvm.loop !6 + %51 = load i64, ptr %3, align 8 + %52 = icmp eq i64 %51, -1 + br i1 %52, label %.loopexit, label %.preheader, !llvm.loop !6 -.loopexit: ; preds = %51, %.thread10 +.loopexit: ; preds = %50, %.thread10 %.pr4 = load i32, ptr @num_scan_areas, align 4 - %54 = icmp eq i32 %.pr4, 0 - br i1 %54, label %57, label %.thread5 + %53 = icmp eq i32 %.pr4, 0 + br i1 %53, label %56, label %.thread5 -.thread5: ; preds = %35, %.loopexit - %55 = phi i32 [ %.pr4, %.loopexit ], [ %49, %35 ] - %56 = call i32 (ptr, ...) @_printk(ptr noundef nonnull @.str, i32 noundef %55) #8 - br label %57 +.thread5: ; preds = %34, %.loopexit + %54 = phi i32 [ %.pr4, %.loopexit ], [ %48, %34 ] + %55 = call i32 (ptr, ...) @_printk(ptr noundef nonnull @.str, i32 noundef %54) #8 + br label %56 -57: ; preds = %.thread, %.thread5, %.loopexit, %11 +56: ; preds = %.thread, %.thread5, %.loopexit, %11 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #7 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #7 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1) #7 diff --git a/bench/linux/optimized/intel_panel.ll b/bench/linux/optimized/intel_panel.ll index 136307d23e5..7cfa64a34ae 100644 --- a/bench/linux/optimized/intel_panel.ll +++ b/bench/linux/optimized/intel_panel.ll @@ -869,7 +869,7 @@ define dso_local noundef range(i32 -22, 1) i32 @intel_panel_fitting(ptr noundef %21 = getelementptr inbounds nuw i8, ptr %0, i64 640 %22 = load i16, ptr %21, align 8 %23 = zext i16 %22 to i32 - br i1 %10, label %241, label %24 + br i1 %10, label %237, label %24 24: ; preds = %2 %25 = icmp ne i32 %15, %23 @@ -880,7 +880,12 @@ define dso_local noundef range(i32 -22, 1) i32 @intel_panel_fitting(ptr noundef %28 = load i16, ptr %27, align 2 %29 = zext i16 %28 to i32 %30 = icmp eq i32 %20, %29 - br i1 %30, label %223, label %31 + br i1 %30, label %..thread_crit_edge, label %31 + +..thread_crit_edge: ; preds = %26 + %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %4, i64 2632 + %.pre = load i16, ptr %.phi.trans.insert, align 8 + br label %.thread 31: ; preds = %26, %24 %32 = getelementptr inbounds nuw i8, ptr %1, i64 120 @@ -906,11 +911,11 @@ define dso_local noundef range(i32 -22, 1) i32 @intel_panel_fitting(ptr noundef %46 = load i16, ptr %45, align 2 %47 = zext i16 %46 to i32 %48 = sub nsw i32 %44, %47 - %reass.sub20 = sub nsw i32 %48, %41 - %49 = add nsw i32 %reass.sub20, 1 + %reass.sub22 = sub nsw i32 %48, %41 + %49 = add nsw i32 %reass.sub22, 1 %50 = lshr i32 %49, 1 - %reass.sub21 = sub i32 %23, %15 - %51 = add i32 %reass.sub21, 1 + %reass.sub23 = sub i32 %23, %15 + %51 = add i32 %reass.sub23, 1 %52 = sdiv i32 %51, 2 %53 = and i32 %52, 1 %54 = trunc i32 %15 to i16 @@ -942,14 +947,14 @@ define dso_local noundef range(i32 -22, 1) i32 @intel_panel_fitting(ptr noundef %75 = load i16, ptr %74, align 8 %76 = zext i16 %75 to i32 %77 = sub nsw i32 %73, %76 - %reass.sub22 = sub nsw i32 %77, %70 - %78 = add nsw i32 %reass.sub22, 1 + %reass.sub24 = sub nsw i32 %77, %70 + %78 = add nsw i32 %reass.sub24, 1 %79 = lshr i32 %78, 1 %80 = getelementptr inbounds nuw i8, ptr %0, i64 654 %81 = load i16, ptr %80, align 2 %82 = zext i16 %81 to i32 - %reass.sub23 = sub i32 %82, %20 - %83 = add i32 %reass.sub23, 1 + %reass.sub25 = sub i32 %82, %20 + %83 = add i32 %reass.sub25, 1 %84 = sdiv i32 %83, 2 %85 = trunc i32 %20 to i16 store i16 %85, ptr %80, align 2 @@ -1010,8 +1015,8 @@ define dso_local noundef range(i32 -22, 1) i32 @intel_panel_fitting(ptr noundef %124 = load i16, ptr %123, align 2 %125 = zext i16 %124 to i32 %126 = sub nsw i32 %122, %125 - %reass.sub19 = sub nsw i32 %126, %119 - %127 = add nsw i32 %reass.sub19, 1 + %reass.sub21 = sub nsw i32 %126, %119 + %127 = add nsw i32 %reass.sub21, 1 %128 = lshr i32 %127, 1 %129 = add nuw nsw i32 %23, 1 %130 = sub i32 %129, %112 @@ -1120,7 +1125,7 @@ define dso_local noundef range(i32 -22, 1) i32 @intel_panel_fitting(ptr noundef tail call void asm sideeffect "1:\09.byte 0x0f, 0x0b\0A.pushsection __bug_table,\22aw\22\0A2:\09.long 1b - .\09# bug_entry::bug_addr\0A\09.long ${0:c} - .\09# bug_entry::file\0A\09.word ${1:c}\09# bug_entry::line\0A\09.word ${2:c}\09# bug_entry::flags\0A\09.org 2b+${3:c}\0A.popsection\0A998:\0A\09.pushsection .discard.reachable\0A\09.long 998b\0A\09.popsection\0A\09", "i,i,i,i,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @.str.13, i32 640, i32 2313, i64 12) #8, !srcloc !16 tail call void asm sideeffect "908: nop\0A\09.pushsection .discard.instr_end\0A\09.long 908b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 908) #8, !srcloc !17 tail call void asm sideeffect "909: nop\0A\09.pushsection .discard.instr_end\0A\09.long 909b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 909) #8, !srcloc !18 - br label %316 + br label %312 205: ; preds = %197, %191, %184, %153, %151, %144, %111, %107, %105, %104, %34 %206 = phi i32 [ 0, %34 ], [ -2013265920, %104 ], [ -1946157056, %105 ], [ %109, %107 ], [ 0, %111 ], [ -2147482560, %144 ], [ 0, %153 ], [ -2147482560, %184 ], [ -2147482016, %151 ], [ 0, %191 ], [ %201, %197 ] @@ -1129,187 +1134,183 @@ define dso_local noundef range(i32 -22, 1) i32 @intel_panel_fitting(ptr noundef %209 = getelementptr inbounds nuw i8, ptr %4, i64 2632 %210 = load i16, ptr %209, align 8 %211 = icmp ugt i16 %210, 3 - br i1 %211, label %.thread25, label %.thread - -.thread: ; preds = %205 - %212 = icmp sgt i32 %206, -1 - %213 = select i1 %212, i32 0, i32 %206 - %214 = select i1 %212, i32 0, i32 %207 - br label %225 - -.thread25: ; preds = %205 - %215 = getelementptr inbounds nuw i8, ptr %3, i64 1648 - %216 = load i32, ptr %215, align 8 - %217 = shl i32 %216, 29 - %218 = and i32 %217, 1610612736 - %219 = or disjoint i32 %218, %206 - %220 = icmp sgt i32 %206, -1 - %221 = select i1 %220, i32 0, i32 %219 - %222 = select i1 %220, i32 0, i32 %207 - br label %234 - -223: ; preds = %26 - %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %4, i64 2632 - %.pre = load i16, ptr %.phi.trans.insert, align 8 - %224 = icmp ult i16 %.pre, 4 - br i1 %224, label %225, label %234 - -225: ; preds = %.thread, %223 - %226 = phi i32 [ %214, %.thread ], [ 0, %223 ] - %227 = phi i32 [ %213, %.thread ], [ 0, %223 ] - %228 = phi i32 [ %208, %.thread ], [ 0, %223 ] - %229 = getelementptr inbounds nuw i8, ptr %0, i64 1364 - %230 = load i32, ptr %229, align 4 - %231 = icmp eq i32 %230, 18 - %232 = or i32 %227, 8 - %233 = select i1 %231, i32 %232, i32 %227 - br label %234 - -234: ; preds = %.thread25, %225, %223 - %235 = phi i32 [ 0, %223 ], [ %226, %225 ], [ %222, %.thread25 ] - %236 = phi i32 [ 0, %223 ], [ %228, %225 ], [ %208, %.thread25 ] - %237 = phi i32 [ 0, %223 ], [ %233, %225 ], [ %221, %.thread25 ] - %238 = getelementptr inbounds nuw i8, ptr %0, i64 1460 - store i32 %237, ptr %238, align 4 - %239 = getelementptr inbounds nuw i8, ptr %0, i64 1464 - store i32 %235, ptr %239, align 4 - %240 = getelementptr inbounds nuw i8, ptr %0, i64 1468 - store i32 %236, ptr %240, align 4 - br label %316 - -241: ; preds = %2 - %242 = icmp eq i32 %15, %23 - br i1 %242, label %243, label %252 - -243: ; preds = %241 - %244 = getelementptr inbounds nuw i8, ptr %0, i64 654 - %245 = load i16, ptr %244, align 2 - %246 = zext i16 %245 to i32 - %247 = icmp eq i32 %20, %246 - br i1 %247, label %248, label %252 - -248: ; preds = %243 - %249 = getelementptr inbounds nuw i8, ptr %0, i64 4744 + br i1 %211, label %212, label %218 + +212: ; preds = %205 + %213 = getelementptr inbounds nuw i8, ptr %3, i64 1648 + %214 = load i32, ptr %213, align 8 + %215 = shl i32 %214, 29 + %216 = and i32 %215, 1610612736 + %217 = or disjoint i32 %216, %206 + br label %218 + +218: ; preds = %212, %205 + %219 = phi i32 [ %217, %212 ], [ %206, %205 ] + %.fr = freeze i32 %219 + %220 = tail call i32 @llvm.smin.i32(i32 %.fr, i32 0) + %.inv = icmp slt i32 %.fr, 0 + %spec.select = select i1 %.inv, i32 %207, i32 0 + br label %.thread + +.thread: ; preds = %..thread_crit_edge, %218 + %221 = phi i16 [ %.pre, %..thread_crit_edge ], [ %210, %218 ] + %222 = phi i32 [ 0, %..thread_crit_edge ], [ %220, %218 ] + %223 = phi i32 [ 0, %..thread_crit_edge ], [ %208, %218 ] + %224 = phi i32 [ 0, %..thread_crit_edge ], [ %spec.select, %218 ] + %225 = icmp ult i16 %221, 4 + br i1 %225, label %226, label %232 + +226: ; preds = %.thread + %227 = getelementptr inbounds nuw i8, ptr %0, i64 1364 + %228 = load i32, ptr %227, align 4 + %229 = icmp eq i32 %228, 18 + %230 = or i32 %222, 8 + %231 = select i1 %229, i32 %230, i32 %222 + br label %232 + +232: ; preds = %226, %.thread + %233 = phi i32 [ %222, %.thread ], [ %231, %226 ] + %234 = getelementptr inbounds nuw i8, ptr %0, i64 1460 + store i32 %233, ptr %234, align 4 + %235 = getelementptr inbounds nuw i8, ptr %0, i64 1464 + store i32 %224, ptr %235, align 4 + %236 = getelementptr inbounds nuw i8, ptr %0, i64 1468 + store i32 %223, ptr %236, align 4 + br label %312 + +237: ; preds = %2 + %238 = icmp eq i32 %15, %23 + br i1 %238, label %239, label %248 + +239: ; preds = %237 + %240 = getelementptr inbounds nuw i8, ptr %0, i64 654 + %241 = load i16, ptr %240, align 2 + %242 = zext i16 %241 to i32 + %243 = icmp eq i32 %20, %242 + br i1 %243, label %244, label %248 + +244: ; preds = %239 + %245 = getelementptr inbounds nuw i8, ptr %0, i64 4744 + %246 = load i32, ptr %245, align 8 + %247 = icmp eq i32 %246, 1 + br i1 %247, label %248, label %312 + +248: ; preds = %244, %239, %237 + %249 = getelementptr inbounds nuw i8, ptr %1, i64 120 %250 = load i32, ptr %249, align 8 - %251 = icmp eq i32 %250, 1 - br i1 %251, label %252, label %316 - -252: ; preds = %248, %243, %241 - %253 = getelementptr inbounds nuw i8, ptr %1, i64 120 - %254 = load i32, ptr %253, align 8 - switch i32 %254, label %301 [ - i32 2, label %255 - i32 3, label %264 - i32 0, label %287 - i32 1, label %295 + switch i32 %250, label %297 [ + i32 2, label %251 + i32 3, label %260 + i32 0, label %283 + i32 1, label %291 ] -255: ; preds = %252 - %256 = add nuw nsw i32 %23, 1 - %257 = sub i32 %256, %15 - %258 = sdiv i32 %257, 2 - %259 = getelementptr inbounds nuw i8, ptr %0, i64 654 - %260 = load i16, ptr %259, align 2 - %261 = zext i16 %260 to i32 - %reass.sub24 = sub i32 %261, %20 - %262 = add i32 %reass.sub24, 1 - %263 = sdiv i32 %262, 2 - br label %304 - -264: ; preds = %252 - %265 = mul i32 %20, %23 - %266 = getelementptr inbounds nuw i8, ptr %0, i64 654 - %267 = load i16, ptr %266, align 2 - %268 = zext i16 %267 to i32 - %269 = mul i32 %15, %268 - %270 = icmp ugt i32 %265, %269 - br i1 %270, label %271, label %278 - -271: ; preds = %264 - %272 = udiv i32 %269, %20 - %273 = and i32 %272, 1 - %274 = add nuw i32 %273, %272 - %275 = add nuw nsw i32 %23, 1 - %276 = sub i32 %275, %274 - %277 = sdiv i32 %276, 2 - br label %304 - -278: ; preds = %264 - %279 = icmp ult i32 %265, %269 - br i1 %279, label %280, label %304 - -280: ; preds = %278 - %281 = udiv i32 %265, %15 - %282 = and i32 %281, 1 - %283 = add nuw i32 %282, %281 - %284 = add nuw nsw i32 %268, 1 - %285 = sub i32 %284, %283 - %286 = sdiv i32 %285, 2 - br label %304 - -287: ; preds = %252 - br i1 %242, label %289, label %288, !prof !19 - -288: ; preds = %287 +251: ; preds = %248 + %252 = add nuw nsw i32 %23, 1 + %253 = sub i32 %252, %15 + %254 = sdiv i32 %253, 2 + %255 = getelementptr inbounds nuw i8, ptr %0, i64 654 + %256 = load i16, ptr %255, align 2 + %257 = zext i16 %256 to i32 + %reass.sub26 = sub i32 %257, %20 + %258 = add i32 %reass.sub26, 1 + %259 = sdiv i32 %258, 2 + br label %300 + +260: ; preds = %248 + %261 = mul i32 %20, %23 + %262 = getelementptr inbounds nuw i8, ptr %0, i64 654 + %263 = load i16, ptr %262, align 2 + %264 = zext i16 %263 to i32 + %265 = mul i32 %15, %264 + %266 = icmp ugt i32 %261, %265 + br i1 %266, label %267, label %274 + +267: ; preds = %260 + %268 = udiv i32 %265, %20 + %269 = and i32 %268, 1 + %270 = add nuw i32 %269, %268 + %271 = add nuw nsw i32 %23, 1 + %272 = sub i32 %271, %270 + %273 = sdiv i32 %272, 2 + br label %300 + +274: ; preds = %260 + %275 = icmp ult i32 %261, %265 + br i1 %275, label %276, label %300 + +276: ; preds = %274 + %277 = udiv i32 %261, %15 + %278 = and i32 %277, 1 + %279 = add nuw i32 %278, %277 + %280 = add nuw nsw i32 %264, 1 + %281 = sub i32 %280, %279 + %282 = sdiv i32 %281, 2 + br label %300 + +283: ; preds = %248 + br i1 %238, label %285, label %284, !prof !19 + +284: ; preds = %283 tail call void asm sideeffect "898: nop\0A\09.pushsection .discard.instr_begin\0A\09.long 898b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 898) #8, !srcloc !20 tail call void asm sideeffect "1:\09.byte 0x0f, 0x0b\0A.pushsection __bug_table,\22aw\22\0A2:\09.long 1b - .\09# bug_entry::bug_addr\0A\09.long ${0:c} - .\09# bug_entry::file\0A\09.word ${1:c}\09# bug_entry::line\0A\09.word ${2:c}\09# bug_entry::flags\0A\09.org 2b+${3:c}\0A.popsection\0A998:\0A\09.pushsection .discard.reachable\0A\09.long 998b\0A\09.popsection\0A\09", "i,i,i,i,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @.str.13, i32 435, i32 2305, i64 12) #8, !srcloc !21 tail call void asm sideeffect "899: nop\0A\09.pushsection .discard.instr_end\0A\09.long 899b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 899) #8, !srcloc !22 - br label %289 + br label %285 -289: ; preds = %288, %287 - %290 = getelementptr inbounds nuw i8, ptr %0, i64 654 - %291 = load i16, ptr %290, align 2 - %292 = zext i16 %291 to i32 - %293 = icmp eq i32 %20, %292 - br i1 %293, label %295, label %294, !prof !19 +285: ; preds = %284, %283 + %286 = getelementptr inbounds nuw i8, ptr %0, i64 654 + %287 = load i16, ptr %286, align 2 + %288 = zext i16 %287 to i32 + %289 = icmp eq i32 %20, %288 + br i1 %289, label %291, label %290, !prof !19 -294: ; preds = %289 +290: ; preds = %285 tail call void asm sideeffect "900: nop\0A\09.pushsection .discard.instr_begin\0A\09.long 900b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 900) #8, !srcloc !23 tail call void asm sideeffect "1:\09.byte 0x0f, 0x0b\0A.pushsection __bug_table,\22aw\22\0A2:\09.long 1b - .\09# bug_entry::bug_addr\0A\09.long ${0:c} - .\09# bug_entry::file\0A\09.word ${1:c}\09# bug_entry::line\0A\09.word ${2:c}\09# bug_entry::flags\0A\09.org 2b+${3:c}\0A.popsection\0A998:\0A\09.pushsection .discard.reachable\0A\09.long 998b\0A\09.popsection\0A\09", "i,i,i,i,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @.str.13, i32 436, i32 2305, i64 12) #8, !srcloc !24 tail call void asm sideeffect "901: nop\0A\09.pushsection .discard.instr_end\0A\09.long 901b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 901) #8, !srcloc !25 - br label %295 + br label %291 -295: ; preds = %294, %289, %252 - %296 = load i16, ptr %21, align 8 - %297 = zext i16 %296 to i32 - %298 = getelementptr inbounds nuw i8, ptr %0, i64 654 - %299 = load i16, ptr %298, align 2 - %300 = zext i16 %299 to i32 - br label %304 +291: ; preds = %290, %285, %248 + %292 = load i16, ptr %21, align 8 + %293 = zext i16 %292 to i32 + %294 = getelementptr inbounds nuw i8, ptr %0, i64 654 + %295 = load i16, ptr %294, align 2 + %296 = zext i16 %295 to i32 + br label %300 -301: ; preds = %252 +297: ; preds = %248 tail call void asm sideeffect "902: nop\0A\09.pushsection .discard.instr_begin\0A\09.long 902b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 902) #8, !srcloc !26 - %302 = load i32, ptr %253, align 8 - %303 = zext i32 %302 to i64 - tail call void (ptr, ...) @__warn_printk(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.12, i64 noundef %303) #8 + %298 = load i32, ptr %249, align 8 + %299 = zext i32 %298 to i64 + tail call void (ptr, ...) @__warn_printk(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.12, i64 noundef %299) #8 tail call void asm sideeffect "903: nop\0A\09.pushsection .discard.instr_begin\0A\09.long 903b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 903) #8, !srcloc !27 tail call void asm sideeffect "1:\09.byte 0x0f, 0x0b\0A.pushsection __bug_table,\22aw\22\0A2:\09.long 1b - .\09# bug_entry::bug_addr\0A\09.long ${0:c} - .\09# bug_entry::file\0A\09.word ${1:c}\09# bug_entry::line\0A\09.word ${2:c}\09# bug_entry::flags\0A\09.org 2b+${3:c}\0A.popsection\0A998:\0A\09.pushsection .discard.reachable\0A\09.long 998b\0A\09.popsection\0A\09", "i,i,i,i,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @.str.13, i32 445, i32 2313, i64 12) #8, !srcloc !28 tail call void asm sideeffect "904: nop\0A\09.pushsection .discard.instr_end\0A\09.long 904b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 904) #8, !srcloc !29 tail call void asm sideeffect "905: nop\0A\09.pushsection .discard.instr_end\0A\09.long 905b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 905) #8, !srcloc !30 - br label %316 - -304: ; preds = %295, %280, %278, %271, %255 - %305 = phi i32 [ %297, %295 ], [ %15, %255 ], [ %274, %271 ], [ %23, %280 ], [ %23, %278 ] - %306 = phi i32 [ %300, %295 ], [ %20, %255 ], [ %268, %271 ], [ %283, %280 ], [ %268, %278 ] - %307 = phi i32 [ 0, %295 ], [ %263, %255 ], [ 0, %271 ], [ %286, %280 ], [ 0, %278 ] - %308 = phi i32 [ 0, %295 ], [ %258, %255 ], [ %277, %271 ], [ 0, %280 ], [ 0, %278 ] - %309 = getelementptr inbounds nuw i8, ptr %0, i64 1472 - store i32 %308, ptr %309, align 4 - %310 = getelementptr inbounds nuw i8, ptr %0, i64 1476 - store i32 %307, ptr %310, align 4 - %311 = add i32 %308, %305 - %312 = getelementptr inbounds nuw i8, ptr %0, i64 1480 - store i32 %311, ptr %312, align 4 - %313 = add i32 %307, %306 - %314 = getelementptr inbounds nuw i8, ptr %0, i64 1484 - store i32 %313, ptr %314, align 4 - %315 = getelementptr inbounds nuw i8, ptr %0, i64 1488 - store i8 1, ptr %315, align 8 - br label %316 - -316: ; preds = %304, %301, %248, %234, %202 - %317 = phi i32 [ 0, %234 ], [ -22, %202 ], [ -22, %301 ], [ 0, %304 ], [ 0, %248 ] - ret i32 %317 + br label %312 + +300: ; preds = %291, %276, %274, %267, %251 + %301 = phi i32 [ %293, %291 ], [ %15, %251 ], [ %270, %267 ], [ %23, %276 ], [ %23, %274 ] + %302 = phi i32 [ %296, %291 ], [ %20, %251 ], [ %264, %267 ], [ %279, %276 ], [ %264, %274 ] + %303 = phi i32 [ 0, %291 ], [ %259, %251 ], [ 0, %267 ], [ %282, %276 ], [ 0, %274 ] + %304 = phi i32 [ 0, %291 ], [ %254, %251 ], [ %273, %267 ], [ 0, %276 ], [ 0, %274 ] + %305 = getelementptr inbounds nuw i8, ptr %0, i64 1472 + store i32 %304, ptr %305, align 4 + %306 = getelementptr inbounds nuw i8, ptr %0, i64 1476 + store i32 %303, ptr %306, align 4 + %307 = add i32 %304, %301 + %308 = getelementptr inbounds nuw i8, ptr %0, i64 1480 + store i32 %307, ptr %308, align 4 + %309 = add i32 %303, %302 + %310 = getelementptr inbounds nuw i8, ptr %0, i64 1484 + store i32 %309, ptr %310, align 4 + %311 = getelementptr inbounds nuw i8, ptr %0, i64 1488 + store i8 1, ptr %311, align 8 + br label %312 + +312: ; preds = %300, %297, %244, %232, %202 + %313 = phi i32 [ 0, %232 ], [ -22, %202 ], [ -22, %297 ], [ 0, %300 ], [ 0, %244 ] + ret i32 %313 } ; Function Attrs: fn_ret_thunk_extern nounwind null_pointer_is_valid @@ -1549,6 +1550,9 @@ declare dso_local void @__warn_printk(ptr noundef, ...) local_unnamed_addr #1 ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.abs.i32(i32, i1 immarg) #6 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i32 @llvm.smin.i32(i32, i32) #7 + ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.smax.i32(i32, i32) #7 diff --git a/bench/linux/optimized/net_namespace.ll b/bench/linux/optimized/net_namespace.ll index f0bf2fd0891..f75a1697be7 100644 --- a/bench/linux/optimized/net_namespace.ll +++ b/bench/linux/optimized/net_namespace.ll @@ -1278,74 +1278,74 @@ get_net_ns_by_fd.exit: ; preds = %42, %70, %74 br label %147 106: ; preds = %93 - %107 = icmp sgt i32 %29, -1 - %108 = select i1 %107, i32 %29, i32 0 - %109 = call i32 @llvm.smax.i32(i32 %29, i32 -1) - %110 = add i32 %109, 1 - %111 = call i32 @idr_alloc(ptr noundef nonnull %95, ptr noundef %82, i32 noundef %108, i32 noundef %110, i32 noundef 2080) #17 + %107 = call i32 @llvm.smax.i32(i32 %29, i32 0) + %108 = call i32 @llvm.smax.i32(i32 %29, i32 -1) + %109 = add i32 %108, 1 + %110 = call i32 @idr_alloc(ptr noundef nonnull %95, ptr noundef %82, i32 noundef %107, i32 noundef %109, i32 noundef 2080) #17 call void @_raw_spin_unlock_bh(ptr noundef nonnull %94) #17 - %112 = icmp sgt i32 %111, -1 - br i1 %112, label %113, label %137 + %111 = icmp sgt i32 %110, -1 + br i1 %111, label %112, label %136 -113: ; preds = %106 - %114 = getelementptr inbounds nuw i8, ptr %0, i64 52 - %115 = load i32, ptr %114, align 4 +112: ; preds = %106 + %113 = getelementptr inbounds nuw i8, ptr %0, i64 52 + %114 = load i32, ptr %113, align 4 call void @llvm.lifetime.start.p0(i64 28, ptr nonnull %4) #17 - %116 = getelementptr inbounds nuw i8, ptr %4, i64 20 - store i32 %115, ptr %4, align 4 - %117 = getelementptr inbounds nuw i8, ptr %4, i64 4 - %118 = icmp eq ptr %1, null - br i1 %118, label %122, label %119 - -119: ; preds = %113 - %120 = getelementptr inbounds nuw i8, ptr %1, i64 8 - %121 = load i32, ptr %120, align 4 - br label %122 - -122: ; preds = %119, %113 - %123 = phi i32 [ %121, %119 ], [ 0, %113 ] - store i32 %123, ptr %117, align 4 - %124 = getelementptr inbounds nuw i8, ptr %4, i64 8 - store i32 0, ptr %124, align 4 - %125 = getelementptr inbounds nuw i8, ptr %4, i64 12 - store i32 88, ptr %125, align 4 - %126 = getelementptr inbounds nuw i8, ptr %4, i64 16 - store i32 %111, ptr %126, align 4 - %127 = getelementptr inbounds nuw i8, ptr %4, i64 24 - store i32 0, ptr %127, align 4 - %128 = call ptr @__alloc_skb(i32 noundef 36, i32 noundef 3264, i32 noundef 0, i32 noundef -1) #17 - %129 = icmp eq ptr %128, null - br i1 %129, label %135, label %130 - -130: ; preds = %122 - store i32 0, ptr %116, align 4, !annotation !14 - %131 = call fastcc i32 @rtnl_net_fill(ptr noundef nonnull %128, ptr noundef nonnull %4), !range !15 - %132 = icmp slt i32 %131, 0 - br i1 %132, label %134, label %133 - -133: ; preds = %130 - call void @rtnl_notify(ptr noundef nonnull %128, ptr noundef %9, i32 noundef %115, i32 noundef 28, ptr noundef %1, i32 noundef 3264) #17 + %115 = getelementptr inbounds nuw i8, ptr %4, i64 20 + store i32 %114, ptr %4, align 4 + %116 = getelementptr inbounds nuw i8, ptr %4, i64 4 + %117 = icmp eq ptr %1, null + br i1 %117, label %121, label %118 + +118: ; preds = %112 + %119 = getelementptr inbounds nuw i8, ptr %1, i64 8 + %120 = load i32, ptr %119, align 4 + br label %121 + +121: ; preds = %118, %112 + %122 = phi i32 [ %120, %118 ], [ 0, %112 ] + store i32 %122, ptr %116, align 4 + %123 = getelementptr inbounds nuw i8, ptr %4, i64 8 + store i32 0, ptr %123, align 4 + %124 = getelementptr inbounds nuw i8, ptr %4, i64 12 + store i32 88, ptr %124, align 4 + %125 = getelementptr inbounds nuw i8, ptr %4, i64 16 + store i32 %110, ptr %125, align 4 + %126 = getelementptr inbounds nuw i8, ptr %4, i64 24 + store i32 0, ptr %126, align 4 + %127 = call ptr @__alloc_skb(i32 noundef 36, i32 noundef 3264, i32 noundef 0, i32 noundef -1) #17 + %128 = icmp eq ptr %127, null + br i1 %128, label %134, label %129 + +129: ; preds = %121 + store i32 0, ptr %115, align 4, !annotation !14 + %130 = call fastcc i32 @rtnl_net_fill(ptr noundef nonnull %127, ptr noundef nonnull %4), !range !15 + %131 = icmp slt i32 %130, 0 + br i1 %131, label %133, label %132 + +132: ; preds = %129 + call void @rtnl_notify(ptr noundef nonnull %127, ptr noundef %9, i32 noundef %114, i32 noundef 28, ptr noundef %1, i32 noundef 3264) #17 br label %rtnl_net_notifyid.exit -134: ; preds = %130 - call void @kfree_skb_reason(ptr noundef nonnull %128, i32 noundef 2) #17 - br label %135 +133: ; preds = %129 + call void @kfree_skb_reason(ptr noundef nonnull %127, i32 noundef 2) #17 + br label %134 -135: ; preds = %134, %122 - %136 = phi i32 [ %131, %134 ], [ -12, %122 ] - call void @rtnl_set_sk_err(ptr noundef %9, i32 noundef 28, i32 noundef %136) #17 +134: ; preds = %133, %121 + %135 = phi i32 [ %130, %133 ], [ -12, %121 ] + call void @rtnl_set_sk_err(ptr noundef %9, i32 noundef 28, i32 noundef %135) #17 br label %rtnl_net_notifyid.exit -rtnl_net_notifyid.exit: ; preds = %133, %135 +rtnl_net_notifyid.exit: ; preds = %132, %134 call void @llvm.lifetime.end.p0(i64 28, ptr nonnull %4) #17 br label %147 -137: ; preds = %106 - %138 = icmp eq i32 %111, -28 - %139 = and i1 %107, %138 +136: ; preds = %106 + %137 = icmp sgt i32 %29, -1 + %138 = icmp eq i32 %110, -28 + %139 = and i1 %137, %138 br i1 %139, label %140, label %147 -140: ; preds = %137 +140: ; preds = %136 %141 = icmp eq ptr %2, null br i1 %141, label %146, label %142 @@ -1363,8 +1363,8 @@ rtnl_net_notifyid.exit: ; preds = %133, %135 call void @do_trace_netlink_extack(ptr noundef nonnull @rtnl_net_newid.__msg.18) #17 br label %147 -147: ; preds = %146, %142, %137, %rtnl_net_notifyid.exit, %105, %102 - %148 = phi i32 [ 0, %rtnl_net_notifyid.exit ], [ %111, %137 ], [ -17, %105 ], [ -17, %102 ], [ -17, %146 ], [ -17, %142 ] +147: ; preds = %146, %142, %136, %rtnl_net_notifyid.exit, %105, %102 + %148 = phi i32 [ 0, %rtnl_net_notifyid.exit ], [ %110, %136 ], [ -17, %105 ], [ -17, %102 ], [ -17, %146 ], [ -17, %142 ] %149 = getelementptr inbounds nuw i8, ptr %82, i64 140 %150 = call i32 asm sideeffect ".pushsection .smp_locks,\22a\22\0A.balign 4\0A.long 671f - .\0A.popsection\0A671:\0A\09lock; xaddl $0, $1\0A", "=r,=*m,0,*m,~{memory},~{cc},~{dirflag},~{fpsr},~{flags}"(ptr nonnull elementtype(i32) %149, i32 -1, ptr nonnull elementtype(i32) %149) #17, !srcloc !12 %151 = icmp eq i32 %150, 1 diff --git a/bench/lodepng/optimized/lodepng.cpp.ll b/bench/lodepng/optimized/lodepng.cpp.ll index 678f72091c1..44dd098582c 100644 --- a/bench/lodepng/optimized/lodepng.cpp.ll +++ b/bench/lodepng/optimized/lodepng.cpp.ll @@ -15429,21 +15429,20 @@ entry: %5 = load i32, ptr %allow_greyscale, align 4 %tobool9.not = icmp ne i32 %5, 0 %narrow = select i1 %tobool9.not, i1 %tobool8.not, i1 false - %cmp14 = icmp ugt i32 %bits.0, 7 - %or.cond2.not = select i1 %narrow, i1 true, i1 %cmp14 - %spec.store.select6 = select i1 %or.cond2.not, i32 %bits.0, i32 8 + %6 = tail call i32 @llvm.umax.i32(i32 %bits.0, i32 8) + %spec.store.select6 = select i1 %narrow, i32 %bits.0, i32 %6 %numcolors = getelementptr inbounds nuw i8, ptr %stats, i64 20 - %6 = load i32, ptr %numcolors, align 4 - %conv17 = zext i32 %6 to i64 - %cmp18 = icmp ult i32 %6, 3 - %cmp19 = icmp ult i32 %6, 5 - %cmp22 = icmp ult i32 %6, 17 + %7 = load i32, ptr %numcolors, align 4 + %conv17 = zext i32 %7 to i64 + %cmp18 = icmp ult i32 %7, 3 + %cmp19 = icmp ult i32 %7, 5 + %cmp22 = icmp ult i32 %7, 17 %cond = select i1 %cmp22, i32 4, i32 8 %cond23 = select i1 %cmp19, i32 2, i32 %cond %cond25 = select i1 %cmp18, i32 1, i32 %cond23 %cmp28 = icmp ugt i32 %spec.store.select6, 8 - %7 = add i32 %6, -257 - %8 = icmp ult i32 %7, -256 + %8 = add i32 %7, -257 + %9 = icmp ult i32 %8, -256 %mul = shl nuw nsw i64 %conv17, 1 %cmp31 = icmp ult i64 %0, %mul %tobool3677 = icmp eq i32 %1, 0 @@ -15452,29 +15451,29 @@ entry: %cmp38.not = icmp ule i32 %spec.store.select6, %cond25 %or.cond64.not.not = select i1 %or.cond5.not, i1 %cmp38.not, i1 false %allow_palette = getelementptr inbounds nuw i8, ptr %stats, i64 1064 - %9 = load i32, ptr %allow_palette, align 8 - %tobool41.not = icmp eq i32 %9, 0 + %10 = load i32, ptr %allow_palette, align 8 + %tobool41.not = icmp eq i32 %10, 0 %.not84 = select i1 %tobool41.not, i1 true, i1 %or.cond64.not.not %.not83 = select i1 %.not84, i1 true, i1 %cmp31 - %.not82 = select i1 %.not83, i1 true, i1 %8 + %.not82 = select i1 %.not83, i1 true, i1 %9 %narrow79.not = select i1 %.not82, i1 true, i1 %cmp28 br i1 %narrow79.not, label %if.else, label %if.then45 if.then45: ; preds = %entry %palette = getelementptr inbounds nuw i8, ptr %stats, i64 24 %palette.i = getelementptr inbounds nuw i8, ptr %mode_out, i64 8 - %10 = load ptr, ptr %palette.i, align 8 - %tobool.not.i = icmp eq ptr %10, null + %11 = load ptr, ptr %palette.i, align 8 + %tobool.not.i = icmp eq ptr %11, null br i1 %tobool.not.i, label %_Z21lodepng_palette_clearP16LodePNGColorMode.exit, label %if.then.i if.then.i: ; preds = %if.then45 - tail call void @free(ptr noundef nonnull %10) #31 + tail call void @free(ptr noundef nonnull %11) #31 br label %_Z21lodepng_palette_clearP16LodePNGColorMode.exit _Z21lodepng_palette_clearP16LodePNGColorMode.exit: ; preds = %if.then45, %if.then.i tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %palette.i, i8 0, i64 16, i1 false) - %11 = load i32, ptr %numcolors, align 4 - %cmp48.not87 = icmp eq i32 %11, 0 + %12 = load i32, ptr %numcolors, align 4 + %cmp48.not87 = icmp eq i32 %12, 0 br i1 %cmp48.not87, label %for.end, label %for.body.lr.ph for.body.lr.ph: ; preds = %_Z21lodepng_palette_clearP16LodePNGColorMode.exit @@ -15482,47 +15481,47 @@ for.body.lr.ph: ; preds = %_Z21lodepng_palette br label %for.body for.body: ; preds = %for.body.lr.ph, %for.inc - %12 = phi i64 [ 0, %for.body.lr.ph ], [ %inc.i, %for.inc ] + %13 = phi i64 [ 0, %for.body.lr.ph ], [ %inc.i, %for.inc ] %i.088 = phi i64 [ 0, %for.body.lr.ph ], [ %inc, %for.inc ] %mul49 = shl i64 %i.088, 2 %arrayidx = getelementptr inbounds i8, ptr %palette, i64 %mul49 - %13 = load i8, ptr %arrayidx, align 1 + %14 = load i8, ptr %arrayidx, align 1 %add51 = or disjoint i64 %mul49, 1 %arrayidx52 = getelementptr inbounds i8, ptr %palette, i64 %add51 - %14 = load i8, ptr %arrayidx52, align 1 + %15 = load i8, ptr %arrayidx52, align 1 %add54 = or disjoint i64 %mul49, 2 %arrayidx55 = getelementptr inbounds i8, ptr %palette, i64 %add54 - %15 = load i8, ptr %arrayidx55, align 1 + %16 = load i8, ptr %arrayidx55, align 1 %add57 = or disjoint i64 %mul49, 3 %arrayidx58 = getelementptr inbounds i8, ptr %palette, i64 %add57 - %16 = load i8, ptr %arrayidx58, align 1 - %17 = load ptr, ptr %palette.i, align 8 - %tobool.not.i66 = icmp eq ptr %17, null + %17 = load i8, ptr %arrayidx58, align 1 + %18 = load ptr, ptr %palette.i, align 8 + %tobool.not.i66 = icmp eq ptr %18, null br i1 %tobool.not.i66, label %if.then.i.i, label %if.end4.i if.then.i.i: ; preds = %for.body %call.i.i.i = tail call noalias noundef dereferenceable_or_null(1024) ptr @malloc(i64 noundef 1024) #30 store ptr %call.i.i.i, ptr %palette.i, align 8 - %18 = icmp eq ptr %call.i.i.i, null - br i1 %18, label %for.end, label %for.body.i.i + %19 = icmp eq ptr %call.i.i.i, null + br i1 %19, label %for.end, label %for.body.i.i for.body.i.i: ; preds = %if.then.i.i, %for.body.i.i %i.012.i.i = phi i64 [ %inc.i.i, %for.body.i.i ], [ 0, %if.then.i.i ] - %19 = load ptr, ptr %palette.i, align 8 + %20 = load ptr, ptr %palette.i, align 8 %mul.i.i = shl i64 %i.012.i.i, 2 - %arrayidx.i.i = getelementptr inbounds i8, ptr %19, i64 %mul.i.i + %arrayidx.i.i = getelementptr inbounds i8, ptr %20, i64 %mul.i.i store i8 0, ptr %arrayidx.i.i, align 1 - %20 = load ptr, ptr %palette.i, align 8 + %21 = load ptr, ptr %palette.i, align 8 %add9.i.i = or disjoint i64 %mul.i.i, 1 - %arrayidx10.i.i = getelementptr inbounds i8, ptr %20, i64 %add9.i.i + %arrayidx10.i.i = getelementptr inbounds i8, ptr %21, i64 %add9.i.i store i8 0, ptr %arrayidx10.i.i, align 1 - %21 = load ptr, ptr %palette.i, align 8 + %22 = load ptr, ptr %palette.i, align 8 %add13.i.i = or disjoint i64 %mul.i.i, 2 - %arrayidx14.i.i = getelementptr inbounds i8, ptr %21, i64 %add13.i.i + %arrayidx14.i.i = getelementptr inbounds i8, ptr %22, i64 %add13.i.i store i8 0, ptr %arrayidx14.i.i, align 1 - %22 = load ptr, ptr %palette.i, align 8 + %23 = load ptr, ptr %palette.i, align 8 %add17.i.i = or disjoint i64 %mul.i.i, 3 - %arrayidx18.i.i = getelementptr inbounds i8, ptr %22, i64 %add17.i.i + %arrayidx18.i.i = getelementptr inbounds i8, ptr %23, i64 %add17.i.i store i8 -1, ptr %arrayidx18.i.i, align 1 %inc.i.i = add nuw nsw i64 %i.012.i.i, 1 %cmp.not.i.i = icmp eq i64 %inc.i.i, 256 @@ -15538,39 +15537,39 @@ _ZL32lodepng_color_mode_alloc_paletteP16LodePNGColorMode.exit.i.if.end4.i_crit_e br label %if.end4.i if.end4.i: ; preds = %_ZL32lodepng_color_mode_alloc_paletteP16LodePNGColorMode.exit.i.if.end4.i_crit_edge, %for.body - %23 = phi i64 [ %.pre, %_ZL32lodepng_color_mode_alloc_paletteP16LodePNGColorMode.exit.i.if.end4.i_crit_edge ], [ %12, %for.body ] - %24 = phi ptr [ %.pr.i, %_ZL32lodepng_color_mode_alloc_paletteP16LodePNGColorMode.exit.i.if.end4.i_crit_edge ], [ %17, %for.body ] - %cmp.i = icmp ugt i64 %23, 255 + %24 = phi i64 [ %.pre, %_ZL32lodepng_color_mode_alloc_paletteP16LodePNGColorMode.exit.i.if.end4.i_crit_edge ], [ %13, %for.body ] + %25 = phi ptr [ %.pr.i, %_ZL32lodepng_color_mode_alloc_paletteP16LodePNGColorMode.exit.i.if.end4.i_crit_edge ], [ %18, %for.body ] + %cmp.i = icmp ugt i64 %24, 255 br i1 %cmp.i, label %for.end, label %for.inc for.inc: ; preds = %if.end4.i - %mul.i = shl nuw nsw i64 %23, 2 - %arrayidx.i = getelementptr inbounds nuw i8, ptr %24, i64 %mul.i - store i8 %13, ptr %arrayidx.i, align 1 - %25 = load ptr, ptr %palette.i, align 8 - %26 = load i64, ptr %palettesize.i, align 8 - %mul11.i = shl i64 %26, 2 + %mul.i = shl nuw nsw i64 %24, 2 + %arrayidx.i = getelementptr inbounds nuw i8, ptr %25, i64 %mul.i + store i8 %14, ptr %arrayidx.i, align 1 + %26 = load ptr, ptr %palette.i, align 8 + %27 = load i64, ptr %palettesize.i, align 8 + %mul11.i = shl i64 %27, 2 %add12.i = or disjoint i64 %mul11.i, 1 - %arrayidx13.i = getelementptr inbounds i8, ptr %25, i64 %add12.i - store i8 %14, ptr %arrayidx13.i, align 1 - %27 = load ptr, ptr %palette.i, align 8 - %28 = load i64, ptr %palettesize.i, align 8 - %mul16.i = shl i64 %28, 2 + %arrayidx13.i = getelementptr inbounds i8, ptr %26, i64 %add12.i + store i8 %15, ptr %arrayidx13.i, align 1 + %28 = load ptr, ptr %palette.i, align 8 + %29 = load i64, ptr %palettesize.i, align 8 + %mul16.i = shl i64 %29, 2 %add17.i = or disjoint i64 %mul16.i, 2 - %arrayidx18.i = getelementptr inbounds i8, ptr %27, i64 %add17.i - store i8 %15, ptr %arrayidx18.i, align 1 - %29 = load ptr, ptr %palette.i, align 8 - %30 = load i64, ptr %palettesize.i, align 8 - %mul21.i = shl i64 %30, 2 - %add22.i = or disjoint i64 %mul21.i, 3 - %arrayidx23.i = getelementptr inbounds i8, ptr %29, i64 %add22.i - store i8 %16, ptr %arrayidx23.i, align 1 + %arrayidx18.i = getelementptr inbounds i8, ptr %28, i64 %add17.i + store i8 %16, ptr %arrayidx18.i, align 1 + %30 = load ptr, ptr %palette.i, align 8 %31 = load i64, ptr %palettesize.i, align 8 - %inc.i = add i64 %31, 1 + %mul21.i = shl i64 %31, 2 + %add22.i = or disjoint i64 %mul21.i, 3 + %arrayidx23.i = getelementptr inbounds i8, ptr %30, i64 %add22.i + store i8 %17, ptr %arrayidx23.i, align 1 + %32 = load i64, ptr %palettesize.i, align 8 + %inc.i = add i64 %32, 1 store i64 %inc.i, ptr %palettesize.i, align 8 %inc = add i64 %i.088, 1 - %32 = load i32, ptr %numcolors, align 4 - %conv47 = zext i32 %32 to i64 + %33 = load i32, ptr %numcolors, align 4 + %conv47 = zext i32 %33 to i64 %cmp48.not = icmp eq i64 %inc, %conv47 br i1 %cmp48.not, label %for.end, label %for.body, !llvm.loop !359 @@ -15579,39 +15578,39 @@ for.end: ; preds = %for.inc, %_ZL32lode store i32 3, ptr %mode_out, align 8 %bitdepth = getelementptr inbounds nuw i8, ptr %mode_out, i64 4 store i32 %cond25, ptr %bitdepth, align 4 - %33 = load i32, ptr %mode_in, align 8 - %cmp63 = icmp eq i32 %33, 3 + %34 = load i32, ptr %mode_in, align 8 + %cmp63 = icmp eq i32 %34, 3 br i1 %cmp63, label %land.lhs.true64, label %if.end98 land.lhs.true64: ; preds = %for.end %palettesize = getelementptr inbounds nuw i8, ptr %mode_in, i64 16 - %34 = load i64, ptr %palettesize, align 8 + %35 = load i64, ptr %palettesize, align 8 %palettesize65 = getelementptr inbounds nuw i8, ptr %mode_out, i64 16 - %35 = load i64, ptr %palettesize65, align 8 - %cmp66.not = icmp ult i64 %34, %35 + %36 = load i64, ptr %palettesize65, align 8 + %cmp66.not = icmp ult i64 %35, %36 br i1 %cmp66.not, label %if.end98, label %land.lhs.true67 land.lhs.true67: ; preds = %land.lhs.true64 %bitdepth68 = getelementptr inbounds nuw i8, ptr %mode_in, i64 4 - %36 = load i32, ptr %bitdepth68, align 4 - %cmp70 = icmp eq i32 %36, %cond25 + %37 = load i32, ptr %bitdepth68, align 4 + %cmp70 = icmp eq i32 %37, %cond25 br i1 %cmp70, label %if.then71, label %if.end98 if.then71: ; preds = %land.lhs.true67 - %37 = load ptr, ptr %palette.i, align 8 - %tobool.not.i.i = icmp eq ptr %37, null + %38 = load ptr, ptr %palette.i, align 8 + %tobool.not.i.i = icmp eq ptr %38, null br i1 %tobool.not.i.i, label %_Z26lodepng_color_mode_cleanupP16LodePNGColorMode.exit.i, label %if.then.i.i67 if.then.i.i67: ; preds = %if.then71 - tail call void @free(ptr noundef nonnull %37) #31 + tail call void @free(ptr noundef nonnull %38) #31 br label %_Z26lodepng_color_mode_cleanupP16LodePNGColorMode.exit.i _Z26lodepng_color_mode_cleanupP16LodePNGColorMode.exit.i: ; preds = %if.then.i.i67, %if.then71 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %palette.i, i8 0, i64 16, i1 false) tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(40) %mode_out, ptr noundef nonnull readonly align 1 dereferenceable(40) %mode_in, i64 40, i1 false), !alias.scope !360 %palette.i68 = getelementptr inbounds nuw i8, ptr %mode_in, i64 8 - %38 = load ptr, ptr %palette.i68, align 8 - %tobool.not.i69 = icmp eq ptr %38, null + %39 = load ptr, ptr %palette.i68, align 8 + %tobool.not.i69 = icmp eq ptr %39, null br i1 %tobool.not.i69, label %if.end98, label %if.then.i70 if.then.i70: ; preds = %_Z26lodepng_color_mode_cleanupP16LodePNGColorMode.exit.i @@ -15621,14 +15620,14 @@ if.then.i70: ; preds = %_Z26lodepng_color_m br i1 %tobool3.not.i, label %if.end98, label %if.end.i if.end.i: ; preds = %if.then.i70 - %39 = load i64, ptr %palettesize, align 8 - %40 = shl i64 %39, 2 - %cmp4.not.i.i = icmp eq i64 %40, 0 + %40 = load i64, ptr %palettesize, align 8 + %41 = shl i64 %40, 2 + %cmp4.not.i.i = icmp eq i64 %41, 0 br i1 %cmp4.not.i.i, label %if.end98, label %for.body.preheader.i.i for.body.preheader.i.i: ; preds = %if.end.i - %41 = load ptr, ptr %palette.i68, align 8 - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %call.i.i, ptr readonly align 1 %41, i64 %40, i1 false), !alias.scope !364 + %42 = load ptr, ptr %palette.i68, align 8 + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %call.i.i, ptr readonly align 1 %42, i64 %41, i1 false), !alias.scope !364 br label %if.end98 if.else: ; preds = %entry @@ -15646,20 +15645,20 @@ if.then86: ; preds = %if.else %notmask = shl nsw i32 -1, %spec.store.select6 %sub = xor i32 %notmask, -1 %key_r = getelementptr inbounds nuw i8, ptr %stats, i64 8 - %42 = load i16, ptr %key_r, align 8 - %conv88 = zext i16 %42 to i32 + %43 = load i16, ptr %key_r, align 8 + %conv88 = zext i16 %43 to i32 %and = and i32 %conv88, %sub %key_r89 = getelementptr inbounds nuw i8, ptr %mode_out, i64 28 store i32 %and, ptr %key_r89, align 4 %key_g = getelementptr inbounds nuw i8, ptr %stats, i64 10 - %43 = load i16, ptr %key_g, align 2 - %conv90 = zext i16 %43 to i32 + %44 = load i16, ptr %key_g, align 2 + %conv90 = zext i16 %44 to i32 %and91 = and i32 %conv90, %sub %key_g92 = getelementptr inbounds nuw i8, ptr %mode_out, i64 32 store i32 %and91, ptr %key_g92, align 8 %key_b = getelementptr inbounds nuw i8, ptr %stats, i64 12 - %44 = load i16, ptr %key_b, align 4 - %conv93 = zext i16 %44 to i32 + %45 = load i16, ptr %key_b, align 4 + %conv93 = zext i16 %45 to i32 %and94 = and i32 %conv93, %sub %key_b95 = getelementptr inbounds nuw i8, ptr %mode_out, i64 36 store i32 %and94, ptr %key_b95, align 4 diff --git a/bench/lvgl/optimized/lv_style.ll b/bench/lvgl/optimized/lv_style.ll index 0b7a7cb93df..31ce703f5c8 100644 --- a/bench/lvgl/optimized/lv_style.ll +++ b/bench/lvgl/optimized/lv_style.ll @@ -203,7 +203,7 @@ define void @lv_style_set_prop(ptr noundef captures(none) %0, i8 noundef zeroext %4 = getelementptr i8, ptr %0, i64 12 %.val = load i8, ptr %4, align 4, !tbaa !3 %5 = icmp eq i8 %.val, -1 - br i1 %5, label %49, label %6 + br i1 %5, label %50, label %6 6: ; preds = %3 %.not = icmp eq i8 %1, 0 @@ -238,14 +238,14 @@ define void @lv_style_set_prop(ptr noundef captures(none) %0, i8 noundef zeroext 18: ; preds = %14 %19 = getelementptr inbounds nuw %union.lv_style_value_t, ptr %8, i64 %indvars.iv.next store ptr %2, ptr %19, align 8, !tbaa !23 - br label %49 + br label %50 .loopexit: ; preds = %12, %7 %20 = mul nuw nsw i64 %.pre51, 9 %21 = add nuw nsw i64 %20, 9 %22 = tail call ptr @lv_realloc(ptr noundef %8, i64 noundef %21) #8 %23 = icmp eq ptr %22, null - br i1 %23, label %49, label %24 + br i1 %23, label %50, label %24 24: ; preds = %.loopexit store ptr %22, ptr %0, align 8, !tbaa !9 @@ -285,17 +285,17 @@ define void @lv_style_set_prop(ptr noundef captures(none) %0, i8 noundef zeroext %42 = getelementptr %union.lv_style_value_t, ptr %22, i64 %41 %43 = getelementptr i8, ptr %42, i64 -8 store ptr %2, ptr %43, align 8, !tbaa !23 - %44 = tail call i8 @llvm.umin.i8(i8 %1, i8 124) - %narrow.i = lshr i8 %44, 2 - %spec.store.select.i = zext nneg i8 %narrow.i to i32 - %45 = shl nuw i32 1, %spec.store.select.i - %46 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %47 = load i32, ptr %46, align 8, !tbaa !29 - %48 = or i32 %47, %45 - store i32 %48, ptr %46, align 8, !tbaa !29 - br label %49 - -49: ; preds = %18, %.loopexit, %._crit_edge, %3 + %44 = lshr i8 %1, 2 + %45 = tail call i8 @llvm.umin.i8(i8 %44, i8 31) + %spec.store.select.i = zext nneg i8 %45 to i32 + %46 = shl nuw i32 1, %spec.store.select.i + %47 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %48 = load i32, ptr %47, align 8, !tbaa !29 + %49 = or i32 %48, %46 + store i32 %49, ptr %47, align 8, !tbaa !29 + br label %50 + +50: ; preds = %18, %.loopexit, %._crit_edge, %3 ret void } diff --git a/bench/openblas/optimized/dgeqr.c.ll b/bench/openblas/optimized/dgeqr.c.ll index 8a31ac4b03c..3d60d4eabb9 100644 --- a/bench/openblas/optimized/dgeqr.c.ll +++ b/bench/openblas/optimized/dgeqr.c.ll @@ -203,12 +203,12 @@ thread-pre-split: ; preds = %17, %.thread .thread13: ; preds = %95, %100, %102, %106, %115 %120 = phi i32 [ -1, %95 ], [ -2, %100 ], [ -4, %102 ], [ -6, %106 ], [ -8, %115 ] store i32 %120, ptr %8, align 4, !tbaa !3 - br label %139 + br label %135 121: ; preds = %115 %.pr12 = load i32, ptr %8, align 4, !tbaa !3 %122 = icmp eq i32 %.pr12, 0 - br i1 %122, label %123, label %139 + br i1 %122, label %123, label %135 123: ; preds = %121 %124 = mul i32 %97, %69 @@ -223,53 +223,51 @@ thread-pre-split: ; preds = %17, %.thread %131 = uitofp nneg i32 %97 to double %132 = getelementptr inbounds nuw i8, ptr %4, i64 16 store double %131, ptr %132, align 8, !tbaa !7 - %133 = icmp samesign ult i32 %.pr10.pre20, 2 - %134 = uitofp nneg i32 %.pr10.pre20 to double - %135 = select i1 %133, double 1.000000e+00, double %134 - %136 = uitofp nneg i32 %116 to double - %137 = select i1 %29, double %136, double %135 - store double %137, ptr %6, align 8, !tbaa !7 - %138 = icmp eq i32 %50, 0 - %or.cond = or i1 %27, %138 - br i1 %or.cond, label %159, label %143 - -139: ; preds = %.thread13, %121 - %140 = phi i32 [ %120, %.thread13 ], [ %.pr12, %121 ] - %141 = sub nsw i32 0, %140 - store i32 %141, ptr %10, align 4, !tbaa !3 - %142 = call i32 @xerbla_(ptr noundef nonnull @.str.2, ptr noundef nonnull %10, i32 noundef 5) #5 - br label %159 - -143: ; preds = %123 - %144 = icmp samesign ugt i32 %47, %.pr10.pre20 - br i1 %144, label %145, label %149 - -145: ; preds = %143 - %146 = icmp sgt i32 %96, %.pr10.pre20 - %147 = icmp slt i32 %96, %47 - %148 = and i1 %147, %146 - br i1 %148, label %151, label %149 - -149: ; preds = %145, %143 - %150 = getelementptr inbounds nuw i8, ptr %4, i64 40 - call void @dgeqrt_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %12, ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull %150, ptr noundef nonnull %12, ptr noundef nonnull %6, ptr noundef nonnull %8) #5 - br label %153 - -151: ; preds = %145 - %152 = getelementptr inbounds nuw i8, ptr %4, i64 40 - call void @dlatsqr_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %11, ptr noundef nonnull %12, ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull %152, ptr noundef nonnull %12, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull %8) #5 - br label %153 - -153: ; preds = %151, %149 - %154 = load i32, ptr %12, align 4, !tbaa !3 - %155 = load i32, ptr %1, align 4, !tbaa !3 - %156 = mul nsw i32 %155, %154 - %157 = call i32 @llvm.smax.i32(i32 %156, i32 1) - %158 = uitofp nneg i32 %157 to double - store double %158, ptr %6, align 8, !tbaa !7 - br label %159 - -159: ; preds = %153, %123, %139 + %minmaxop = select i1 %29, i32 %107, i32 %.pr10.pre20 + %.in = tail call i32 @llvm.umax.i32(i32 %minmaxop, i32 1) + %133 = uitofp nneg i32 %.in to double + store double %133, ptr %6, align 8, !tbaa !7 + %134 = icmp eq i32 %50, 0 + %or.cond = or i1 %27, %134 + br i1 %or.cond, label %155, label %139 + +135: ; preds = %.thread13, %121 + %136 = phi i32 [ %120, %.thread13 ], [ %.pr12, %121 ] + %137 = sub nsw i32 0, %136 + store i32 %137, ptr %10, align 4, !tbaa !3 + %138 = call i32 @xerbla_(ptr noundef nonnull @.str.2, ptr noundef nonnull %10, i32 noundef 5) #5 + br label %155 + +139: ; preds = %123 + %140 = icmp samesign ugt i32 %47, %.pr10.pre20 + br i1 %140, label %141, label %145 + +141: ; preds = %139 + %142 = icmp sgt i32 %96, %.pr10.pre20 + %143 = icmp slt i32 %96, %47 + %144 = and i1 %143, %142 + br i1 %144, label %147, label %145 + +145: ; preds = %141, %139 + %146 = getelementptr inbounds nuw i8, ptr %4, i64 40 + call void @dgeqrt_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %12, ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull %146, ptr noundef nonnull %12, ptr noundef nonnull %6, ptr noundef nonnull %8) #5 + br label %149 + +147: ; preds = %141 + %148 = getelementptr inbounds nuw i8, ptr %4, i64 40 + call void @dlatsqr_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %11, ptr noundef nonnull %12, ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull %148, ptr noundef nonnull %12, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull %8) #5 + br label %149 + +149: ; preds = %147, %145 + %150 = load i32, ptr %12, align 4, !tbaa !3 + %151 = load i32, ptr %1, align 4, !tbaa !3 + %152 = mul nsw i32 %151, %150 + %153 = call i32 @llvm.smax.i32(i32 %152, i32 1) + %154 = uitofp nneg i32 %153 to double + store double %154, ptr %6, align 8, !tbaa !7 + br label %155 + +155: ; preds = %149, %123, %135 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #5 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #5 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #5 diff --git a/bench/openblas/optimized/dhseqr.c.ll b/bench/openblas/optimized/dhseqr.c.ll index 7b860378b20..1e2fa740acd 100644 --- a/bench/openblas/optimized/dhseqr.c.ll +++ b/bench/openblas/optimized/dhseqr.c.ll @@ -136,235 +136,233 @@ define void @dhseqr_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %84 = sub nsw i32 0, %83 store i32 %84, ptr %15, align 4, !tbaa !3 %85 = call i32 @xerbla_(ptr noundef nonnull @.str.5, ptr noundef nonnull %15, i32 noundef 6) #6 - br label %209 + br label %207 86: ; preds = %80 %87 = icmp eq i32 %53, 0 - br i1 %87, label %209, label %88 + br i1 %87, label %207, label %88 88: ; preds = %86 - br i1 %42, label %89, label %97 + br i1 %42, label %89, label %96 89: ; preds = %88 call void @dlaqr0_(ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef nonnull %12, ptr noundef nonnull %13) #6 %90 = load i32, ptr %2, align 4, !tbaa !3 - %91 = icmp slt i32 %90, 2 - %92 = sitofp i32 %90 to double - %93 = select i1 %91, double 1.000000e+00, double %92 - %94 = load double, ptr %11, align 8, !tbaa !7 - %95 = fcmp oge double %93, %94 - %96 = select i1 %95, double %93, double %94 - store double %96, ptr %11, align 8, !tbaa !7 - br label %209 - -97: ; preds = %88 + %91 = call i32 @llvm.smax.i32(i32 %90, i32 1) + %92 = uitofp nneg i32 %91 to double + %93 = load double, ptr %11, align 8, !tbaa !7 + %94 = fcmp ole double %93, %92 + %95 = select i1 %94, double %92, double %93 + store double %95, ptr %11, align 8, !tbaa !7 + br label %207 + +96: ; preds = %88 %.not = icmp eq i32 %56, 1 - br i1 %.not, label %.loopexit20, label %98 - -98: ; preds = %97 - %99 = add i32 %23, 1 - %100 = zext nneg i32 %56 to i64 - br label %101 - -101: ; preds = %101, %98 - %102 = phi i64 [ 1, %98 ], [ %110, %101 ] - %103 = trunc i64 %102 to i32 - %104 = mul i32 %99, %103 - %105 = sext i32 %104 to i64 - %106 = getelementptr inbounds double, ptr %26, i64 %105 - %107 = load double, ptr %106, align 8, !tbaa !7 - %108 = getelementptr inbounds nuw double, ptr %27, i64 %102 - store double %107, ptr %108, align 8, !tbaa !7 - %109 = getelementptr inbounds nuw double, ptr %28, i64 %102 - store double 0.000000e+00, ptr %109, align 8, !tbaa !7 - %110 = add nuw nsw i64 %102, 1 - %111 = icmp eq i64 %110, %100 - br i1 %111, label %.loopexit20, label %101, !llvm.loop !9 - -.loopexit20: ; preds = %101, %97 + br i1 %.not, label %.loopexit20, label %97 + +97: ; preds = %96 + %98 = add i32 %23, 1 + %99 = zext nneg i32 %56 to i64 + br label %100 + +100: ; preds = %100, %97 + %101 = phi i64 [ 1, %97 ], [ %109, %100 ] + %102 = trunc i64 %101 to i32 + %103 = mul i32 %98, %102 + %104 = sext i32 %103 to i64 + %105 = getelementptr inbounds double, ptr %26, i64 %104 + %106 = load double, ptr %105, align 8, !tbaa !7 + %107 = getelementptr inbounds nuw double, ptr %27, i64 %101 + store double %106, ptr %107, align 8, !tbaa !7 + %108 = getelementptr inbounds nuw double, ptr %28, i64 %101 + store double 0.000000e+00, ptr %108, align 8, !tbaa !7 + %109 = add nuw nsw i64 %101, 1 + %110 = icmp eq i64 %109, %99 + br i1 %110, label %.loopexit20, label %100, !llvm.loop !9 + +.loopexit20: ; preds = %100, %96 store i32 %53, ptr %15, align 4, !tbaa !3 - %112 = icmp slt i32 %62, %53 - br i1 %112, label %113, label %.loopexit19 - -113: ; preds = %.loopexit20 - %114 = add i32 %23, 1 - %115 = sext i32 %62 to i64 - %116 = zext nneg i32 %53 to i64 - br label %117 - -117: ; preds = %117, %113 - %118 = phi i64 [ %115, %113 ], [ %119, %117 ] - %119 = add nsw i64 %118, 1 - %120 = trunc i64 %119 to i32 - %121 = mul i32 %114, %120 - %122 = sext i32 %121 to i64 - %123 = getelementptr inbounds double, ptr %26, i64 %122 - %124 = load double, ptr %123, align 8, !tbaa !7 - %125 = getelementptr double, ptr %7, i64 %118 - store double %124, ptr %125, align 8, !tbaa !7 - %126 = getelementptr double, ptr %8, i64 %118 - store double 0.000000e+00, ptr %126, align 8, !tbaa !7 - %127 = icmp eq i64 %119, %116 - br i1 %127, label %.loopexit19, label %117, !llvm.loop !12 - -.loopexit19: ; preds = %117, %.loopexit20 - br i1 %31, label %129, label %128 - -128: ; preds = %.loopexit19 + %111 = icmp slt i32 %62, %53 + br i1 %111, label %112, label %.loopexit19 + +112: ; preds = %.loopexit20 + %113 = add i32 %23, 1 + %114 = sext i32 %62 to i64 + %115 = zext nneg i32 %53 to i64 + br label %116 + +116: ; preds = %116, %112 + %117 = phi i64 [ %114, %112 ], [ %118, %116 ] + %118 = add nsw i64 %117, 1 + %119 = trunc i64 %118 to i32 + %120 = mul i32 %113, %119 + %121 = sext i32 %120 to i64 + %122 = getelementptr inbounds double, ptr %26, i64 %121 + %123 = load double, ptr %122, align 8, !tbaa !7 + %124 = getelementptr double, ptr %7, i64 %117 + store double %123, ptr %124, align 8, !tbaa !7 + %125 = getelementptr double, ptr %8, i64 %117 + store double 0.000000e+00, ptr %125, align 8, !tbaa !7 + %126 = icmp eq i64 %118, %115 + br i1 %126, label %.loopexit19, label %116, !llvm.loop !12 + +.loopexit19: ; preds = %116, %.loopexit20 + br i1 %31, label %128, label %127 + +127: ; preds = %.loopexit19 tail call void @dlaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b11, ptr noundef nonnull @c_b12, ptr noundef %9, ptr noundef nonnull %10) #6 %.pre = load i32, ptr %3, align 4, !tbaa !3 %.pre33 = load i32, ptr %4, align 4, !tbaa !3 - br label %129 - -129: ; preds = %128, %.loopexit19 - %130 = phi i32 [ %.pre33, %128 ], [ %62, %.loopexit19 ] - %131 = phi i32 [ %.pre, %128 ], [ %56, %.loopexit19 ] - %132 = icmp eq i32 %131, %130 - br i1 %132, label %133, label %142 - -133: ; preds = %129 - %134 = add i32 %23, 1 - %135 = mul i32 %130, %134 - %136 = sext i32 %135 to i64 - %137 = getelementptr inbounds double, ptr %26, i64 %136 - %138 = load double, ptr %137, align 8, !tbaa !7 - %139 = sext i32 %130 to i64 - %140 = getelementptr inbounds double, ptr %27, i64 %139 - store double %138, ptr %140, align 8, !tbaa !7 - %141 = getelementptr inbounds double, ptr %28, i64 %139 - store double 0.000000e+00, ptr %141, align 8, !tbaa !7 - br label %209 - -142: ; preds = %129 + br label %128 + +128: ; preds = %127, %.loopexit19 + %129 = phi i32 [ %.pre33, %127 ], [ %62, %.loopexit19 ] + %130 = phi i32 [ %.pre, %127 ], [ %56, %.loopexit19 ] + %131 = icmp eq i32 %130, %129 + br i1 %131, label %132, label %141 + +132: ; preds = %128 + %133 = add i32 %23, 1 + %134 = mul i32 %129, %133 + %135 = sext i32 %134 to i64 + %136 = getelementptr inbounds double, ptr %26, i64 %135 + %137 = load double, ptr %136, align 8, !tbaa !7 + %138 = sext i32 %129 to i64 + %139 = getelementptr inbounds double, ptr %27, i64 %138 + store double %137, ptr %139, align 8, !tbaa !7 + %140 = getelementptr inbounds double, ptr %28, i64 %138 + store double 0.000000e+00, ptr %140, align 8, !tbaa !7 + br label %207 + +141: ; preds = %128 store ptr %0, ptr %.sroa.031, align 16, !tbaa !13 store ptr %1, ptr %.sroa.432, align 8, !tbaa !13 - br label %150 - -143: ; preds = %.loopexit - %144 = icmp sgt i32 %155, 0 - br i1 %144, label %145, label %161 - -145: ; preds = %143 - %146 = xor i32 %154, -1 - %147 = add i32 %153, %146 - %148 = zext i32 %147 to i64 - %149 = add nuw nsw i64 %148, 1 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %160, i8 32, i64 %149, i1 false), !tbaa !15 - br label %161 - -150: ; preds = %.loopexit, %142 - %151 = phi i1 [ true, %142 ], [ false, %.loopexit ] - %.sroa.phi = phi ptr [ %.sroa.031, %142 ], [ %.sroa.432, %.loopexit ] - %152 = phi ptr [ %17, %142 ], [ %160, %.loopexit ] - %153 = phi i32 [ 2, %142 ], [ %155, %.loopexit ] - %154 = tail call i32 @llvm.smin.i32(i32 %153, i32 1) - %155 = sub nsw i32 %153, %154 - %156 = icmp sgt i32 %153, 0 - br i1 %156, label %.loopexit.loopexit, label %.loopexit - -.loopexit.loopexit: ; preds = %150 - %157 = load ptr, ptr %.sroa.phi, align 8, !tbaa !13 - %158 = load i8, ptr %157, align 1, !tbaa !15 - store i8 %158, ptr %152, align 1, !tbaa !15 - %159 = getelementptr inbounds nuw i8, ptr %152, i64 1 + br label %149 + +142: ; preds = %.loopexit + %143 = icmp sgt i32 %154, 0 + br i1 %143, label %144, label %160 + +144: ; preds = %142 + %145 = xor i32 %153, -1 + %146 = add i32 %152, %145 + %147 = zext i32 %146 to i64 + %148 = add nuw nsw i64 %147, 1 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %159, i8 32, i64 %148, i1 false), !tbaa !15 + br label %160 + +149: ; preds = %.loopexit, %141 + %150 = phi i1 [ true, %141 ], [ false, %.loopexit ] + %.sroa.phi = phi ptr [ %.sroa.031, %141 ], [ %.sroa.432, %.loopexit ] + %151 = phi ptr [ %17, %141 ], [ %159, %.loopexit ] + %152 = phi i32 [ 2, %141 ], [ %154, %.loopexit ] + %153 = tail call i32 @llvm.smin.i32(i32 %152, i32 1) + %154 = sub nsw i32 %152, %153 + %155 = icmp sgt i32 %152, 0 + br i1 %155, label %.loopexit.loopexit, label %.loopexit + +.loopexit.loopexit: ; preds = %149 + %156 = load ptr, ptr %.sroa.phi, align 8, !tbaa !13 + %157 = load i8, ptr %156, align 1, !tbaa !15 + store i8 %157, ptr %151, align 1, !tbaa !15 + %158 = getelementptr inbounds nuw i8, ptr %151, i64 1 br label %.loopexit -.loopexit: ; preds = %.loopexit.loopexit, %150 - %160 = phi ptr [ %152, %150 ], [ %159, %.loopexit.loopexit ] - br i1 %151, label %150, label %143, !llvm.loop !16 +.loopexit: ; preds = %.loopexit.loopexit, %149 + %159 = phi ptr [ %151, %149 ], [ %158, %.loopexit.loopexit ] + br i1 %150, label %149, label %142, !llvm.loop !16 -161: ; preds = %145, %143 - %162 = call i32 @ilaenv_(ptr noundef nonnull @c__12, ptr noundef nonnull @.str.5, ptr noundef nonnull %17, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %12, i32 noundef 6, i32 noundef 2) #6 - %163 = call i32 @llvm.smax.i32(i32 %162, i32 15) - %164 = load i32, ptr %2, align 4, !tbaa !3 - %165 = icmp sgt i32 %164, %163 - br i1 %165, label %166, label %167 +160: ; preds = %144, %142 + %161 = call i32 @ilaenv_(ptr noundef nonnull @c__12, ptr noundef nonnull @.str.5, ptr noundef nonnull %17, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %12, i32 noundef 6, i32 noundef 2) #6 + %162 = call i32 @llvm.smax.i32(i32 %161, i32 15) + %163 = load i32, ptr %2, align 4, !tbaa !3 + %164 = icmp sgt i32 %163, %162 + br i1 %164, label %165, label %166 -166: ; preds = %161 +165: ; preds = %160 call void @dlaqr0_(ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef nonnull %12, ptr noundef nonnull %13) #6 - br label %190 + br label %189 -167: ; preds = %161 +166: ; preds = %160 call void @dlahqr_(ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %13) #6 - %168 = load i32, ptr %13, align 4, !tbaa !3 - %169 = icmp sgt i32 %168, 0 - br i1 %169, label %170, label %190 + %167 = load i32, ptr %13, align 4, !tbaa !3 + %168 = icmp sgt i32 %167, 0 + br i1 %168, label %169, label %189 -170: ; preds = %167 - store i32 %168, ptr %18, align 4, !tbaa !3 - %171 = load i32, ptr %2, align 4, !tbaa !3 - %172 = icmp sgt i32 %171, 48 - br i1 %172, label %173, label %174 +169: ; preds = %166 + store i32 %167, ptr %18, align 4, !tbaa !3 + %170 = load i32, ptr %2, align 4, !tbaa !3 + %171 = icmp sgt i32 %170, 48 + br i1 %171, label %172, label %173 -173: ; preds = %170 +172: ; preds = %169 call void @dlaqr0_(ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %18, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef nonnull %12, ptr noundef nonnull %13) #6 - br label %190 + br label %189 -174: ; preds = %170 +173: ; preds = %169 call void @dlacpy_(ptr noundef nonnull @.str.6, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %22, ptr noundef nonnull @c__49) #6 - %175 = load i32, ptr %2, align 4, !tbaa !3 - %176 = mul nsw i32 %175, 49 - %177 = add i32 %175, -49 - %178 = add i32 %177, %176 - %179 = sext i32 %178 to i64 - %180 = getelementptr inbounds [2401 x double], ptr %22, i64 0, i64 %179 - store double 0.000000e+00, ptr %180, align 8, !tbaa !7 - %181 = sub nsw i32 49, %175 - store i32 %181, ptr %15, align 4, !tbaa !3 - %182 = sext i32 %176 to i64 - %183 = getelementptr inbounds [2401 x double], ptr %22, i64 0, i64 %182 - call void @dlaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull @c__49, ptr noundef nonnull %15, ptr noundef nonnull @c_b11, ptr noundef nonnull @c_b11, ptr noundef nonnull %183, ptr noundef nonnull @c__49) #6 + %174 = load i32, ptr %2, align 4, !tbaa !3 + %175 = mul nsw i32 %174, 49 + %176 = add i32 %174, -49 + %177 = add i32 %176, %175 + %178 = sext i32 %177 to i64 + %179 = getelementptr inbounds [2401 x double], ptr %22, i64 0, i64 %178 + store double 0.000000e+00, ptr %179, align 8, !tbaa !7 + %180 = sub nsw i32 49, %174 + store i32 %180, ptr %15, align 4, !tbaa !3 + %181 = sext i32 %175 to i64 + %182 = getelementptr inbounds [2401 x double], ptr %22, i64 0, i64 %181 + call void @dlaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull @c__49, ptr noundef nonnull %15, ptr noundef nonnull @c_b11, ptr noundef nonnull @c_b11, ptr noundef nonnull %182, ptr noundef nonnull @c__49) #6 call void @dlaqr0_(ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull @c__49, ptr noundef nonnull %3, ptr noundef nonnull %18, ptr noundef nonnull %22, ptr noundef nonnull @c__49, ptr noundef %7, ptr noundef %8, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %19, ptr noundef nonnull @c__49, ptr noundef nonnull %13) #6 - %184 = load i32, ptr %20, align 4, !tbaa !3 - %185 = icmp eq i32 %184, 0 - br i1 %185, label %186, label %189 + %183 = load i32, ptr %20, align 4, !tbaa !3 + %184 = icmp eq i32 %183, 0 + br i1 %184, label %185, label %188 -186: ; preds = %174 - %187 = load i32, ptr %13, align 4, !tbaa !3 - %188 = icmp eq i32 %187, 0 - br i1 %188, label %.thread18, label %189 +185: ; preds = %173 + %186 = load i32, ptr %13, align 4, !tbaa !3 + %187 = icmp eq i32 %186, 0 + br i1 %187, label %.thread18, label %188 -189: ; preds = %186, %174 +188: ; preds = %185, %173 call void @dlacpy_(ptr noundef nonnull @.str.6, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %22, ptr noundef nonnull @c__49, ptr noundef %5, ptr noundef nonnull %6) #6 - br label %190 + br label %189 -190: ; preds = %189, %173, %167, %166 +189: ; preds = %188, %172, %166, %165 %.pr14 = load i32, ptr %20, align 4, !tbaa !3 - %191 = icmp eq i32 %.pr14, 0 - br i1 %191, label %192, label %194 + %190 = icmp eq i32 %.pr14, 0 + br i1 %190, label %191, label %193 -192: ; preds = %190 +191: ; preds = %189 %.pr17 = load i32, ptr %13, align 4, !tbaa !3 - %193 = icmp eq i32 %.pr17, 0 - br i1 %193, label %.thread18, label %194 - -194: ; preds = %192, %190 - %195 = load i32, ptr %2, align 4, !tbaa !3 - %196 = icmp sgt i32 %195, 2 - br i1 %196, label %197, label %.thread18 - -197: ; preds = %194 - %198 = add nsw i32 %195, -2 - store i32 %198, ptr %15, align 4, !tbaa !3 - store i32 %198, ptr %16, align 4, !tbaa !3 - %199 = sext i32 %23 to i64 - %200 = getelementptr double, ptr %26, i64 %199 - %201 = getelementptr i8, ptr %200, i64 24 - call void @dlaset_(ptr noundef nonnull @.str.7, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef nonnull @c_b11, ptr noundef nonnull @c_b11, ptr noundef %201, ptr noundef nonnull %6) #6 + %192 = icmp eq i32 %.pr17, 0 + br i1 %192, label %.thread18, label %193 + +193: ; preds = %191, %189 + %194 = load i32, ptr %2, align 4, !tbaa !3 + %195 = icmp sgt i32 %194, 2 + br i1 %195, label %196, label %.thread18 + +196: ; preds = %193 + %197 = add nsw i32 %194, -2 + store i32 %197, ptr %15, align 4, !tbaa !3 + store i32 %197, ptr %16, align 4, !tbaa !3 + %198 = sext i32 %23 to i64 + %199 = getelementptr double, ptr %26, i64 %198 + %200 = getelementptr i8, ptr %199, i64 24 + call void @dlaset_(ptr noundef nonnull @.str.7, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef nonnull @c_b11, ptr noundef nonnull @c_b11, ptr noundef %200, ptr noundef nonnull %6) #6 br label %.thread18 -.thread18: ; preds = %186, %197, %194, %192 - %202 = load i32, ptr %2, align 4, !tbaa !3 - %203 = icmp slt i32 %202, 2 - %204 = sitofp i32 %202 to double - %205 = select i1 %203, double 1.000000e+00, double %204 - %206 = load double, ptr %11, align 8, !tbaa !7 - %207 = fcmp oge double %205, %206 - %208 = select i1 %207, double %205, double %206 - store double %208, ptr %11, align 8, !tbaa !7 - br label %209 - -209: ; preds = %.thread18, %133, %89, %86, %82 +.thread18: ; preds = %185, %196, %193, %191 + %201 = load i32, ptr %2, align 4, !tbaa !3 + %202 = call i32 @llvm.smax.i32(i32 %201, i32 1) + %203 = uitofp nneg i32 %202 to double + %204 = load double, ptr %11, align 8, !tbaa !7 + %205 = fcmp ole double %204, %203 + %206 = select i1 %205, double %203, double %204 + store double %206, ptr %11, align 8, !tbaa !7 + br label %207 + +207: ; preds = %.thread18, %132, %89, %86, %82 call void @llvm.lifetime.end.p0(i64 19208, ptr nonnull %22) #6 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #6 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #6 diff --git a/bench/openblas/optimized/dlatrs3.c.ll b/bench/openblas/optimized/dlatrs3.c.ll index 82c0492e442..af5e37ef825 100644 --- a/bench/openblas/optimized/dlatrs3.c.ll +++ b/bench/openblas/optimized/dlatrs3.c.ll @@ -81,10 +81,10 @@ define void @dlatrs3_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr nounde %55 = sdiv i32 %54, 32 %56 = icmp slt i32 %53, 33 %57 = select i1 %56, i32 1, i32 %55 - %58 = select i1 %56, i32 %53, i32 32 + %58 = tail call i32 @llvm.smin.i32(i32 %53, i32 32) %59 = tail call i32 @llvm.smax.i32(i32 %52, i32 %58) %60 = mul nuw nsw i32 %59, %52 - %61 = add nuw i32 %59, %52 + %61 = add nuw nsw i32 %59, %52 %62 = mul i32 %61, %52 %63 = sitofp i32 %62 to double store double %63, ptr %12, align 8, !tbaa !7 diff --git a/bench/opencv/optimized/bitstrm.cpp.ll b/bench/opencv/optimized/bitstrm.cpp.ll index 4ae5fb95b99..13b60b2751b 100644 --- a/bench/opencv/optimized/bitstrm.cpp.ll +++ b/bench/opencv/optimized/bitstrm.cpp.ll @@ -97,26 +97,26 @@ define hidden void @_ZN2cv11RBaseStream8allocateEv(ptr noundef nonnull align 8 c %2 = getelementptr inbounds nuw i8, ptr %0, i64 8 %3 = load i8, ptr %2, align 8 %4 = trunc i8 %3 to i1 - br i1 %4, label %15, label %5 + br i1 %4, label %16, label %5 5: ; preds = %1 %6 = getelementptr inbounds nuw i8, ptr %0, i64 48 %7 = load i32, ptr %6, align 8 - %narrow = tail call i32 @llvm.smax.i32(i32 %7, i32 -1) - %8 = sext i32 %narrow to i64 - %9 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %8) #19 - %10 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %9, ptr %10, align 8 - %11 = sext i32 %7 to i64 - %12 = getelementptr inbounds i8, ptr %9, i64 %11 - %13 = getelementptr inbounds nuw i8, ptr %0, i64 24 - store ptr %12, ptr %13, align 8 - %14 = getelementptr inbounds nuw i8, ptr %0, i64 32 - store ptr %12, ptr %14, align 8 + %8 = tail call i32 @llvm.smax.i32(i32 %7, i32 -1) + %9 = sext i32 %8 to i64 + %10 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %9) #19 + %11 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store ptr %10, ptr %11, align 8 + %12 = sext i32 %7 to i64 + %13 = getelementptr inbounds i8, ptr %10, i64 %12 + %14 = getelementptr inbounds nuw i8, ptr %0, i64 24 + store ptr %13, ptr %14, align 8 + %15 = getelementptr inbounds nuw i8, ptr %0, i64 32 + store ptr %13, ptr %15, align 8 store i8 1, ptr %2, align 8 - br label %15 + br label %16 -15: ; preds = %5, %1 +16: ; preds = %5, %1 ret void } @@ -1519,20 +1519,20 @@ define hidden void @_ZN2cv11WBaseStream8allocateEv(ptr noundef nonnull align 8 c br i1 %.not, label %6, label %._crit_edge 6: ; preds = %1 - %narrow = tail call i32 @llvm.smax.i32(i32 %5, i32 -1) - %7 = sext i32 %narrow to i64 - %8 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %7) #19 - store ptr %8, ptr %2, align 8 + %7 = tail call i32 @llvm.smax.i32(i32 %5, i32 -1) + %8 = sext i32 %7 to i64 + %9 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %8) #19 + store ptr %9, ptr %2, align 8 br label %._crit_edge ._crit_edge: ; preds = %1, %6 - %9 = phi ptr [ %8, %6 ], [ %3, %1 ] - %10 = sext i32 %5 to i64 - %11 = getelementptr inbounds i8, ptr %9, i64 %10 - %12 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %11, ptr %12, align 8 - %13 = getelementptr inbounds nuw i8, ptr %0, i64 24 - store ptr %9, ptr %13, align 8 + %10 = phi ptr [ %9, %6 ], [ %3, %1 ] + %11 = sext i32 %5 to i64 + %12 = getelementptr inbounds i8, ptr %10, i64 %11 + %13 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store ptr %12, ptr %13, align 8 + %14 = getelementptr inbounds nuw i8, ptr %0, i64 24 + store ptr %10, ptr %14, align 8 ret void } diff --git a/bench/opencv/optimized/qrcode_reader.cpp.ll b/bench/opencv/optimized/qrcode_reader.cpp.ll index 947255ccec9..e9c5768438d 100644 --- a/bench/opencv/optimized/qrcode_reader.cpp.ll +++ b/bench/opencv/optimized/qrcode_reader.cpp.ll @@ -5520,109 +5520,108 @@ define hidden noundef i32 @_ZN5zxing6qrcode12QRCodeReader6smoothEPjNS_3RefINS_9B %11 = getelementptr inbounds nuw i8, ptr %5, i64 20 %12 = load i32, ptr %11, align 4 %13 = sext i32 %12 to i64 - %14 = icmp slt i32 %12, 0 - %15 = select i1 %14, i64 -1, i64 %13 - %16 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %15) #19 - %17 = mul nsw i32 %7, %7 - %18 = add nsw i32 %7, 1 - %19 = xor i32 %7, -1 - %20 = add i32 %10, %19 - %21 = icmp slt i32 %18, %20 - br i1 %21, label %.lr.ph84, label %._crit_edge85 + %14 = tail call i64 @llvm.smax.i64(i64 %13, i64 -1) + %15 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %14) #19 + %16 = mul nsw i32 %7, %7 + %17 = add nsw i32 %7, 1 + %18 = xor i32 %7, -1 + %19 = add i32 %10, %18 + %20 = icmp slt i32 %17, %19 + br i1 %20, label %.lr.ph84, label %._crit_edge85 .lr.ph84: ; preds = %4 - %22 = add i32 %8, %19 - %23 = icmp slt i32 %18, %22 - %24 = shl nuw i32 %17, 1 - br i1 %23, label %.lr.ph.us.preheader, label %.lr.ph84.split + %21 = add i32 %8, %18 + %22 = icmp slt i32 %17, %21 + %23 = shl nuw i32 %16, 1 + br i1 %22, label %.lr.ph.us.preheader, label %.lr.ph84.split .lr.ph.us.preheader: ; preds = %.lr.ph84 %narrow = add nsw i32 %7, 1 - %25 = sext i32 %narrow to i64 - %wide.trip.count = sext i32 %22 to i64 + %24 = sext i32 %narrow to i64 + %wide.trip.count = sext i32 %21 to i64 br label %.lr.ph.us .lr.ph.us: ; preds = %.lr.ph.us.preheader, %._crit_edge.us - %.06282.us = phi i32 [ %56, %._crit_edge.us ], [ 0, %.lr.ph.us.preheader ] - %.06381.us = phi i32 [ %57, %._crit_edge.us ], [ %18, %.lr.ph.us.preheader ] - %26 = add i32 %.06381.us, %19 - %27 = add nsw i32 %.06381.us, %7 + %.06282.us = phi i32 [ %55, %._crit_edge.us ], [ 0, %.lr.ph.us.preheader ] + %.06381.us = phi i32 [ %56, %._crit_edge.us ], [ %17, %.lr.ph.us.preheader ] + %25 = add i32 %.06381.us, %18 + %26 = add nsw i32 %.06381.us, %7 + %27 = mul nsw i32 %25, %8 %28 = mul nsw i32 %26, %8 - %29 = mul nsw i32 %27, %8 - %30 = tail call noundef ptr @_ZN5zxing9BitMatrix13getRowBoolPtrEi(ptr noundef nonnull align 8 dereferenceable(346) %5, i32 noundef %.06381.us) - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %16, ptr align 1 %30, i64 %13, i1 false) - %invariant.op.us = add i32 %7, %29 - %invariant.op73.us = add i32 %29, %19 - %invariant.op75.us = add i32 %7, %28 - %invariant.op77.us = add i32 %28, %19 - br label %31 - -31: ; preds = %.lr.ph.us, %.thread.us - %indvars.iv = phi i64 [ %25, %.lr.ph.us ], [ %indvars.iv.next, %.thread.us ] - %.180.us = phi i32 [ %.06282.us, %.lr.ph.us ], [ %56, %.thread.us ] - %32 = trunc nsw i64 %indvars.iv to i32 - %.reass.us = add i32 %invariant.op.us, %32 - %33 = sext i32 %.reass.us to i64 - %34 = getelementptr inbounds i32, ptr %0, i64 %33 - %35 = load i32, ptr %34, align 4 - %.reass74.us = add i32 %invariant.op73.us, %32 - %36 = sext i32 %.reass74.us to i64 - %37 = getelementptr inbounds i32, ptr %0, i64 %36 - %38 = load i32, ptr %37, align 4 - %.reass76.us = add i32 %invariant.op75.us, %32 - %39 = sext i32 %.reass76.us to i64 - %40 = getelementptr inbounds i32, ptr %0, i64 %39 - %41 = load i32, ptr %40, align 4 - %.reass78.us = add i32 %invariant.op77.us, %32 - %42 = sext i32 %.reass78.us to i64 - %43 = getelementptr inbounds i32, ptr %0, i64 %42 - %44 = load i32, ptr %43, align 4 - %45 = add i32 %35, %41 - %46 = add i32 %38, %44 - %47 = sub i32 %45, %46 - %48 = getelementptr inbounds i8, ptr %30, i64 %indvars.iv - %49 = load i8, ptr %48, align 1 - %50 = mul i32 %47, 3 - %.not.us = icmp ugt i32 %50, %17 - %.not67.us = icmp uge i32 %50, %24 - %51 = trunc i8 %49 to i1 - %spec.select.us = select i1 %.not67.us, i1 true, i1 %51 + %29 = tail call noundef ptr @_ZN5zxing9BitMatrix13getRowBoolPtrEi(ptr noundef nonnull align 8 dereferenceable(346) %5, i32 noundef %.06381.us) + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %15, ptr align 1 %29, i64 %13, i1 false) + %invariant.op.us = add i32 %7, %28 + %invariant.op73.us = add i32 %28, %18 + %invariant.op75.us = add i32 %7, %27 + %invariant.op77.us = add i32 %27, %18 + br label %30 + +30: ; preds = %.lr.ph.us, %.thread.us + %indvars.iv = phi i64 [ %24, %.lr.ph.us ], [ %indvars.iv.next, %.thread.us ] + %.180.us = phi i32 [ %.06282.us, %.lr.ph.us ], [ %55, %.thread.us ] + %31 = trunc nsw i64 %indvars.iv to i32 + %.reass.us = add i32 %invariant.op.us, %31 + %32 = sext i32 %.reass.us to i64 + %33 = getelementptr inbounds i32, ptr %0, i64 %32 + %34 = load i32, ptr %33, align 4 + %.reass74.us = add i32 %invariant.op73.us, %31 + %35 = sext i32 %.reass74.us to i64 + %36 = getelementptr inbounds i32, ptr %0, i64 %35 + %37 = load i32, ptr %36, align 4 + %.reass76.us = add i32 %invariant.op75.us, %31 + %38 = sext i32 %.reass76.us to i64 + %39 = getelementptr inbounds i32, ptr %0, i64 %38 + %40 = load i32, ptr %39, align 4 + %.reass78.us = add i32 %invariant.op77.us, %31 + %41 = sext i32 %.reass78.us to i64 + %42 = getelementptr inbounds i32, ptr %0, i64 %41 + %43 = load i32, ptr %42, align 4 + %44 = add i32 %34, %40 + %45 = add i32 %37, %43 + %46 = sub i32 %44, %45 + %47 = getelementptr inbounds i8, ptr %29, i64 %indvars.iv + %48 = load i8, ptr %47, align 1 + %49 = mul i32 %46, 3 + %.not.us = icmp ugt i32 %49, %16 + %.not67.us = icmp uge i32 %49, %23 + %50 = trunc i8 %48 to i1 + %spec.select.us = select i1 %.not67.us, i1 true, i1 %50 %or.cond = select i1 %.not.us, i1 %spec.select.us, i1 false - br i1 %or.cond, label %52, label %.thread.us + br i1 %or.cond, label %51, label %.thread.us -52: ; preds = %31 - %53 = getelementptr inbounds i8, ptr %16, i64 %indvars.iv - store i8 1, ptr %53, align 1 +51: ; preds = %30 + %52 = getelementptr inbounds i8, ptr %15, i64 %indvars.iv + store i8 1, ptr %52, align 1 br label %.thread.us -.thread.us: ; preds = %52, %31 - %.070.us = phi i32 [ 1, %52 ], [ 0, %31 ] - %54 = and i8 %49, 1 - %.masked.us = zext nneg i8 %54 to i32 - %55 = xor i32 %.070.us, %.masked.us - %56 = add i32 %55, %.180.us +.thread.us: ; preds = %51, %30 + %.070.us = phi i32 [ 1, %51 ], [ 0, %30 ] + %53 = and i8 %48, 1 + %.masked.us = zext nneg i8 %53 to i32 + %54 = xor i32 %.070.us, %.masked.us + %55 = add i32 %54, %.180.us %indvars.iv.next = add nsw i64 %indvars.iv, 1 %exitcond90.not = icmp eq i64 %indvars.iv.next, %wide.trip.count - br i1 %exitcond90.not, label %._crit_edge.us, label %31, !llvm.loop !23 + br i1 %exitcond90.not, label %._crit_edge.us, label %30, !llvm.loop !23 ._crit_edge.us: ; preds = %.thread.us - tail call void @_ZN5zxing9BitMatrix10setRowBoolEiPb(ptr noundef nonnull align 8 dereferenceable(346) %6, i32 noundef %.06381.us, ptr noundef nonnull %16) - %57 = add nsw i32 %.06381.us, 1 - %exitcond91.not = icmp eq i32 %57, %20 + tail call void @_ZN5zxing9BitMatrix10setRowBoolEiPb(ptr noundef nonnull align 8 dereferenceable(346) %6, i32 noundef %.06381.us, ptr noundef nonnull %15) + %56 = add nsw i32 %.06381.us, 1 + %exitcond91.not = icmp eq i32 %56, %19 br i1 %exitcond91.not, label %._crit_edge85, label %.lr.ph.us, !llvm.loop !24 .lr.ph84.split: ; preds = %.lr.ph84, %.lr.ph84.split - %.06381 = phi i32 [ %59, %.lr.ph84.split ], [ %18, %.lr.ph84 ] - %58 = tail call noundef ptr @_ZN5zxing9BitMatrix13getRowBoolPtrEi(ptr noundef nonnull align 8 dereferenceable(346) %5, i32 noundef %.06381) - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %16, ptr align 1 %58, i64 %13, i1 false) - tail call void @_ZN5zxing9BitMatrix10setRowBoolEiPb(ptr noundef nonnull align 8 dereferenceable(346) %6, i32 noundef %.06381, ptr noundef nonnull %16) - %59 = add i32 %.06381, 1 - %exitcond.not = icmp eq i32 %59, %20 + %.06381 = phi i32 [ %58, %.lr.ph84.split ], [ %17, %.lr.ph84 ] + %57 = tail call noundef ptr @_ZN5zxing9BitMatrix13getRowBoolPtrEi(ptr noundef nonnull align 8 dereferenceable(346) %5, i32 noundef %.06381) + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %15, ptr align 1 %57, i64 %13, i1 false) + tail call void @_ZN5zxing9BitMatrix10setRowBoolEiPb(ptr noundef nonnull align 8 dereferenceable(346) %6, i32 noundef %.06381, ptr noundef nonnull %15) + %58 = add i32 %.06381, 1 + %exitcond.not = icmp eq i32 %58, %19 br i1 %exitcond.not, label %._crit_edge85, label %.lr.ph84.split, !llvm.loop !24 ._crit_edge85: ; preds = %.lr.ph84.split, %._crit_edge.us, %4 - %.062.lcssa = phi i32 [ 0, %4 ], [ %56, %._crit_edge.us ], [ 0, %.lr.ph84.split ] - tail call void @_ZdaPv(ptr noundef nonnull %16) #18 + %.062.lcssa = phi i32 [ 0, %4 ], [ %55, %._crit_edge.us ], [ 0, %.lr.ph84.split ] + tail call void @_ZdaPv(ptr noundef nonnull %15) #18 ret i32 %.062.lcssa } @@ -6628,6 +6627,9 @@ define internal void @_GLOBAL__sub_I_qrcode_reader.cpp() #14 section ".text.star ret void } +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i64 @llvm.smax.i64(i64, i64) #15 + ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.umax.i64(i64, i64) #15 diff --git a/bench/opencv/optimized/stringutils.cpp.ll b/bench/opencv/optimized/stringutils.cpp.ll index 9a252e31207..a64ff527fd3 100644 --- a/bench/opencv/optimized/stringutils.cpp.ll +++ b/bench/opencv/optimized/stringutils.cpp.ll @@ -51,12 +51,12 @@ define hidden void @_ZN5zxing6common11StringUtils13convertStringB5cxx11EPKciS3_S 17: ; preds = %14 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %6) #10 - br label %57 + br label %56 -18: ; preds = %54, %46, %43, %40, %33, %30, %26, %14 +18: ; preds = %53, %45, %42, %39, %33, %30, %26, %14 %19 = landingpad { ptr, i32 } cleanup - br label %58 + br label %57 20: ; preds = %5 %21 = icmp eq i32 %2, 0 @@ -69,13 +69,13 @@ define hidden void @_ZN5zxing6common11StringUtils13convertStringB5cxx11EPKciS3_S 23: ; preds = %22 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #10 - br label %57 + br label %56 24: ; preds = %22 %25 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #10 - br label %58 + br label %57 26: ; preds = %20 %27 = invoke ptr @iconv_open(ptr noundef nonnull %4, ptr noundef nonnull %3) @@ -91,58 +91,57 @@ define hidden void @_ZN5zxing6common11StringUtils13convertStringB5cxx11EPKciS3_S 32: ; preds = %30 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %6) #10 - br label %57 + br label %56 33: ; preds = %28 %34 = shl nsw i32 %2, 2 %35 = or disjoint i32 %34, 1 %36 = sext i32 %35 to i64 - %37 = icmp slt i32 %2, 0 - %38 = select i1 %37, i64 -1, i64 %36 - %39 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %38) #12 - to label %40 unwind label %18 + %37 = call i64 @llvm.smax.i64(i64 %36, i64 -1) + %38 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %37) #12 + to label %39 unwind label %18 -40: ; preds = %33 +39: ; preds = %33 store ptr %1, ptr %8, align 8 - %41 = sext i32 %2 to i64 - store i64 %41, ptr %9, align 8 - store ptr %39, ptr %10, align 8 + %40 = sext i32 %2 to i64 + store i64 %40, ptr %9, align 8 + store ptr %38, ptr %10, align 8 store i64 %36, ptr %11, align 8 - %42 = invoke i64 @iconv(ptr noundef %27, ptr noundef nonnull %8, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %11) - to label %43 unwind label %18 - -43: ; preds = %40 - %44 = icmp eq i64 %42, -1 - %45 = invoke i32 @iconv_close(ptr noundef %27) - to label %46 unwind label %18 - -46: ; preds = %43 - %47 = load i64, ptr %11, align 8 - %48 = trunc i64 %47 to i32 - %49 = sub i32 %35, %48 - %50 = sext i32 %49 to i64 - %51 = getelementptr inbounds i8, ptr %39, i64 %50 - store i8 0, ptr %51, align 1 - %52 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull %39) - to label %53 unwind label %18 - -53: ; preds = %46 - call void @_ZdaPv(ptr noundef nonnull %39) #13 - br i1 %44, label %54, label %56 - -54: ; preds = %53 - %55 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.10) - to label %56 unwind label %18 - -56: ; preds = %54, %53 + %41 = invoke i64 @iconv(ptr noundef %27, ptr noundef nonnull %8, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %11) + to label %42 unwind label %18 + +42: ; preds = %39 + %43 = icmp eq i64 %41, -1 + %44 = invoke i32 @iconv_close(ptr noundef %27) + to label %45 unwind label %18 + +45: ; preds = %42 + %46 = load i64, ptr %11, align 8 + %47 = trunc i64 %46 to i32 + %48 = sub i32 %35, %47 + %49 = sext i32 %48 to i64 + %50 = getelementptr inbounds i8, ptr %38, i64 %49 + store i8 0, ptr %50, align 1 + %51 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull %38) + to label %52 unwind label %18 + +52: ; preds = %45 + call void @_ZdaPv(ptr noundef nonnull %38) #13 + br i1 %43, label %53, label %55 + +53: ; preds = %52 + %54 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.10) + to label %55 unwind label %18 + +55: ; preds = %53, %52 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %6) #10 - br label %57 + br label %56 -57: ; preds = %56, %32, %23, %17 +56: ; preds = %55, %32, %23, %17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #10 ret void -58: ; preds = %24, %18 +57: ; preds = %24, %18 %.pn = phi { ptr, i32 } [ %19, %18 ], [ %25, %24 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #10 resume { ptr, i32 } %.pn @@ -1409,6 +1408,9 @@ define hidden noundef range(i32 0, 2) i32 @_ZN5zxing6common11StringUtils16shift_ ret i32 %.053 } +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i64 @llvm.smax.i64(i64, i64) #9 + ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.smax.i32(i32, i32) #9 diff --git a/bench/opencv/optimized/ts.cpp.ll b/bench/opencv/optimized/ts.cpp.ll index b882ca12152..caff82c4ceb 100644 --- a/bench/opencv/optimized/ts.cpp.ll +++ b/bench/opencv/optimized/ts.cpp.ll @@ -1142,9 +1142,8 @@ define hidden void @_ZN6cvtest8BaseTest3runEi(ptr noundef nonnull align 8 derefe %12 = getelementptr inbounds nuw i8, ptr %11, i64 32 %13 = load ptr, ptr %12, align 8 %14 = tail call noundef zeroext i1 %13(ptr noundef nonnull align 8 dereferenceable(56) %0) - %15 = icmp sgt i32 %1, -1 - %or.cond = and i1 %15, %14 - %16 = select i1 %or.cond, i32 %1, i32 0 + %15 = tail call i32 @llvm.smax.i32(i32 %1, i32 0) + %16 = select i1 %14, i32 %15, i32 0 %17 = icmp slt i32 %8, 0 %18 = icmp ugt i32 %8, %16 br i1 %18, label %.lr.ph, label %.loopexit @@ -6899,17 +6898,20 @@ define internal void @_GLOBAL__sub_I_ts.cpp() #30 section ".text.startup" { ret void } +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i32 @llvm.smax.i32(i32, i32) #31 + ; Function Attrs: nofree nounwind declare noundef i32 @puts(ptr noundef readonly captures(none)) local_unnamed_addr #2 ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immarg) #31 +declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immarg) #32 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.umax.i64(i64, i64) #32 +declare i64 @llvm.umax.i64(i64, i64) #31 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.umin.i64(i64, i64) #32 +declare i64 @llvm.umin.i64(i64, i64) #31 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) declare void @llvm.assume(i1 noundef) #33 @@ -6918,7 +6920,7 @@ declare void @llvm.assume(i1 noundef) #33 declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #34 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.smin.i32(i32, i32) #32 +declare i32 @llvm.smin.i32(i32, i32) #31 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #35 @@ -6960,8 +6962,8 @@ attributes #27 = { mustprogress nocallback nofree nosync nounwind willreturn mem attributes #28 = { noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+sse3,+x87" "tune-cpu"="generic" } attributes #29 = { nobuiltin allocsize(0) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+sse3,+x87" "tune-cpu"="generic" } attributes #30 = { uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+sse3,+x87" "tune-cpu"="generic" } -attributes #31 = { nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #32 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #31 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #32 = { nocallback nofree nounwind willreturn memory(argmem: write) } attributes #33 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } attributes #34 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #35 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } diff --git a/bench/openjdk/optimized/SctpNet.ll b/bench/openjdk/optimized/SctpNet.ll index 4223596db32..8e57391e3e2 100644 --- a/bench/openjdk/optimized/SctpNet.ll +++ b/bench/openjdk/optimized/SctpNet.ll @@ -93,17 +93,17 @@ define hidden range(i32 -5, 1) i32 @sctpHandleSocketErrorWithMessage(ptr noundef 8: ; preds = %3, %7, %6, %5, %4 %.0 = phi ptr [ @.str.4, %7 ], [ @.str.3, %6 ], [ @.str.2, %5 ], [ @.str.1, %4 ], [ @.str, %3 ] - %9 = tail call ptr @__errno_location() #9 + %9 = tail call ptr @__errno_location() #10 store i32 %1, ptr %9, align 4 %10 = icmp eq ptr %2, null br i1 %10, label %11, label %12 11: ; preds = %8 - tail call void @JNU_ThrowByNameWithLastError(ptr noundef %0, ptr noundef nonnull %.0, ptr noundef nonnull @.str.5) #10 + tail call void @JNU_ThrowByNameWithLastError(ptr noundef %0, ptr noundef nonnull %.0, ptr noundef nonnull @.str.5) #11 br label %13 12: ; preds = %8 - tail call void @JNU_ThrowByNameWithMessageAndLastError(ptr noundef %0, ptr noundef nonnull %.0, ptr noundef nonnull %2) #10 + tail call void @JNU_ThrowByNameWithMessageAndLastError(ptr noundef %0, ptr noundef nonnull %.0, ptr noundef nonnull %2) #11 br label %13 13: ; preds = %11, %12, %3 @@ -127,12 +127,12 @@ define hidden range(i32 -5, 1) i32 @sctpHandleSocketError(ptr noundef %0, i32 no ; Function Attrs: nounwind uwtable define void @Java_sun_nio_ch_sctp_SctpNet_init(ptr noundef %0, ptr noundef readnone captures(none) %1) local_unnamed_addr #1 { %3 = alloca [2 x i32], align 4 - %4 = call i32 @socketpair(i32 noundef 1, i32 noundef 1, i32 noundef 0, ptr noundef nonnull %3) #10 + %4 = call i32 @socketpair(i32 noundef 1, i32 noundef 1, i32 noundef 0, ptr noundef nonnull %3) #11 %5 = icmp slt i32 %4, 0 br i1 %5, label %6, label %7 6: ; preds = %2 - call void @JNU_ThrowIOExceptionWithLastError(ptr noundef %0, ptr noundef nonnull @.str.6) #10 + call void @JNU_ThrowIOExceptionWithLastError(ptr noundef %0, ptr noundef nonnull @.str.6) #11 br label %12 7: ; preds = %2 @@ -140,8 +140,8 @@ define void @Java_sun_nio_ch_sctp_SctpNet_init(ptr noundef %0, ptr noundef readn store i32 %8, ptr @preCloseFD, align 4 %9 = getelementptr inbounds nuw i8, ptr %3, i64 4 %10 = load i32, ptr %9, align 4 - %11 = call i32 @close(i32 noundef %10) #10 - call void @initInetAddressIDs(ptr noundef %0) #10 + %11 = call i32 @close(i32 noundef %10) #11 + call void @initInetAddressIDs(ptr noundef %0) #11 br label %12 12: ; preds = %7, %6 @@ -160,86 +160,86 @@ declare void @initInetAddressIDs(ptr noundef) local_unnamed_addr #3 ; Function Attrs: nounwind uwtable define range(i32 -5, -2147483648) i32 @Java_sun_nio_ch_sctp_SctpNet_socket0(ptr noundef %0, ptr noundef readnone captures(none) %1, i8 noundef zeroext %2) local_unnamed_addr #1 { %4 = alloca %struct.sctp_event_subscribe, align 8 - %5 = tail call i32 (...) @ipv6_available() #10 + %5 = tail call i32 (...) @ipv6_available() #11 %.not = icmp eq i32 %5, 0 %6 = select i1 %.not, i32 2, i32 10 %.b = load i1, ptr @funcsLoaded, align 1 br i1 %.b, label %42, label %7 7: ; preds = %3 - %8 = tail call ptr @dlopen(ptr noundef nonnull @.str.31, i32 noundef 257) #10 + %8 = tail call ptr @dlopen(ptr noundef nonnull @.str.31, i32 noundef 257) #11 %9 = icmp eq ptr %8, null br i1 %9, label %10, label %12 10: ; preds = %7 - %11 = tail call ptr @dlerror() #10 - tail call void @JNU_ThrowByName(ptr noundef %0, ptr noundef nonnull @.str.7, ptr noundef %11) #10 + %11 = tail call ptr @dlerror() #11 + tail call void @JNU_ThrowByName(ptr noundef %0, ptr noundef nonnull @.str.7, ptr noundef %11) #11 br label %loadSocketExtensionFuncs.exit.thread 12: ; preds = %7 - %13 = tail call ptr @dlsym(ptr noundef null, ptr noundef nonnull @.str.25) #10 + %13 = tail call ptr @dlsym(ptr noundef null, ptr noundef nonnull @.str.25) #11 store ptr %13, ptr @nio_sctp_getladdrs, align 8 %14 = icmp eq ptr %13, null br i1 %14, label %15, label %17 15: ; preds = %12 - %16 = tail call ptr @dlerror() #10 - tail call void @JNU_ThrowByName(ptr noundef %0, ptr noundef nonnull @.str.7, ptr noundef %16) #10 + %16 = tail call ptr @dlerror() #11 + tail call void @JNU_ThrowByName(ptr noundef %0, ptr noundef nonnull @.str.7, ptr noundef %16) #11 br label %loadSocketExtensionFuncs.exit.thread 17: ; preds = %12 - %18 = tail call ptr @dlsym(ptr noundef null, ptr noundef nonnull @.str.26) #10 + %18 = tail call ptr @dlsym(ptr noundef null, ptr noundef nonnull @.str.26) #11 store ptr %18, ptr @nio_sctp_freeladdrs, align 8 %19 = icmp eq ptr %18, null br i1 %19, label %20, label %22 20: ; preds = %17 - %21 = tail call ptr @dlerror() #10 - tail call void @JNU_ThrowByName(ptr noundef %0, ptr noundef nonnull @.str.7, ptr noundef %21) #10 + %21 = tail call ptr @dlerror() #11 + tail call void @JNU_ThrowByName(ptr noundef %0, ptr noundef nonnull @.str.7, ptr noundef %21) #11 br label %loadSocketExtensionFuncs.exit.thread 22: ; preds = %17 - %23 = tail call ptr @dlsym(ptr noundef null, ptr noundef nonnull @.str.27) #10 + %23 = tail call ptr @dlsym(ptr noundef null, ptr noundef nonnull @.str.27) #11 store ptr %23, ptr @nio_sctp_getpaddrs, align 8 %24 = icmp eq ptr %23, null br i1 %24, label %25, label %27 25: ; preds = %22 - %26 = tail call ptr @dlerror() #10 - tail call void @JNU_ThrowByName(ptr noundef %0, ptr noundef nonnull @.str.7, ptr noundef %26) #10 + %26 = tail call ptr @dlerror() #11 + tail call void @JNU_ThrowByName(ptr noundef %0, ptr noundef nonnull @.str.7, ptr noundef %26) #11 br label %loadSocketExtensionFuncs.exit.thread 27: ; preds = %22 - %28 = tail call ptr @dlsym(ptr noundef null, ptr noundef nonnull @.str.28) #10 + %28 = tail call ptr @dlsym(ptr noundef null, ptr noundef nonnull @.str.28) #11 store ptr %28, ptr @nio_sctp_freepaddrs, align 8 %29 = icmp eq ptr %28, null br i1 %29, label %30, label %32 30: ; preds = %27 - %31 = tail call ptr @dlerror() #10 - tail call void @JNU_ThrowByName(ptr noundef %0, ptr noundef nonnull @.str.7, ptr noundef %31) #10 + %31 = tail call ptr @dlerror() #11 + tail call void @JNU_ThrowByName(ptr noundef %0, ptr noundef nonnull @.str.7, ptr noundef %31) #11 br label %loadSocketExtensionFuncs.exit.thread 32: ; preds = %27 - %33 = tail call ptr @dlsym(ptr noundef null, ptr noundef nonnull @.str.29) #10 + %33 = tail call ptr @dlsym(ptr noundef null, ptr noundef nonnull @.str.29) #11 store ptr %33, ptr @nio_sctp_bindx, align 8 %34 = icmp eq ptr %33, null br i1 %34, label %35, label %37 35: ; preds = %32 - %36 = tail call ptr @dlerror() #10 - tail call void @JNU_ThrowByName(ptr noundef %0, ptr noundef nonnull @.str.7, ptr noundef %36) #10 + %36 = tail call ptr @dlerror() #11 + tail call void @JNU_ThrowByName(ptr noundef %0, ptr noundef nonnull @.str.7, ptr noundef %36) #11 br label %loadSocketExtensionFuncs.exit.thread 37: ; preds = %32 - %38 = tail call ptr @dlsym(ptr noundef null, ptr noundef nonnull @.str.30) #10 + %38 = tail call ptr @dlsym(ptr noundef null, ptr noundef nonnull @.str.30) #11 store ptr %38, ptr @nio_sctp_peeloff, align 8 %39 = icmp eq ptr %38, null br i1 %39, label %40, label %loadSocketExtensionFuncs.exit 40: ; preds = %37 - %41 = tail call ptr @dlerror() #10 - tail call void @JNU_ThrowByName(ptr noundef %0, ptr noundef nonnull @.str.7, ptr noundef %41) #10 + %41 = tail call ptr @dlerror() #11 + tail call void @JNU_ThrowByName(ptr noundef %0, ptr noundef nonnull @.str.7, ptr noundef %41) #11 br label %loadSocketExtensionFuncs.exit.thread loadSocketExtensionFuncs.exit: ; preds = %37 @@ -249,19 +249,19 @@ loadSocketExtensionFuncs.exit: ; preds = %37 42: ; preds = %loadSocketExtensionFuncs.exit, %3 %.not12 = icmp eq i8 %2, 0 %43 = select i1 %.not12, i32 5, i32 1 - %44 = tail call i32 @socket(i32 noundef %6, i32 noundef %43, i32 noundef 132) #10 + %44 = tail call i32 @socket(i32 noundef %6, i32 noundef %43, i32 noundef 132) #11 %45 = icmp slt i32 %44, 0 br i1 %45, label %46, label %52 46: ; preds = %42 - %47 = tail call ptr @__errno_location() #9 + %47 = tail call ptr @__errno_location() #10 %48 = load i32, ptr %47, align 4 %.off = add i32 %48, -93 %switch = icmp ult i32 %.off, 2 br i1 %switch, label %49, label %50 49: ; preds = %46 - tail call void @JNU_ThrowByNameWithLastError(ptr noundef %0, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.8) #10 + tail call void @JNU_ThrowByNameWithLastError(ptr noundef %0, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.8) #11 br label %loadSocketExtensionFuncs.exit.thread 50: ; preds = %46 @@ -271,12 +271,12 @@ loadSocketExtensionFuncs.exit: ; preds = %37 52: ; preds = %42 store i64 1099511627776, ptr %4, align 8 store i32 16843009, ptr %4, align 8 - %53 = call i32 @setsockopt(i32 noundef %44, i32 noundef 132, i32 noundef 11, ptr noundef nonnull %4, i32 noundef 8) #10 + %53 = call i32 @setsockopt(i32 noundef %44, i32 noundef 132, i32 noundef 11, ptr noundef nonnull %4, i32 noundef 8) #11 %.not13 = icmp eq i32 %53, 0 br i1 %.not13, label %loadSocketExtensionFuncs.exit.thread, label %54 54: ; preds = %52 - %55 = tail call ptr @__errno_location() #9 + %55 = tail call ptr @__errno_location() #10 %56 = load i32, ptr %55, align 4 %57 = call i32 @sctpHandleSocketErrorWithMessage(ptr noundef %0, i32 noundef %56, ptr noundef nonnull @.str.10) br label %loadSocketExtensionFuncs.exit.thread @@ -304,12 +304,12 @@ define void @Java_sun_nio_ch_sctp_SctpNet_bindx(ptr noundef %0, ptr noundef read 10: ; preds = %8 %11 = zext nneg i32 %5 to i64 - %12 = tail call noalias ptr @calloc(i64 noundef %11, i64 noundef 28) #11 + %12 = tail call noalias ptr @calloc(i64 noundef %11, i64 noundef 28) #12 %13 = icmp eq ptr %12, null br i1 %13, label %14, label %.lr.ph 14: ; preds = %10 - tail call void @JNU_ThrowOutOfMemoryError(ptr noundef %0, ptr noundef nonnull @.str.11) #10 + tail call void @JNU_ThrowOutOfMemoryError(ptr noundef %0, ptr noundef nonnull @.str.11) #11 br label %32 .lr.ph: ; preds = %10, %21 @@ -318,13 +318,13 @@ define void @Java_sun_nio_ch_sctp_SctpNet_bindx(ptr noundef %0, ptr noundef read %15 = load ptr, ptr %0, align 8 %16 = getelementptr inbounds nuw i8, ptr %15, i64 1384 %17 = load ptr, ptr %16, align 8 - %18 = tail call ptr %17(ptr noundef nonnull %0, ptr noundef %3, i32 noundef %.02328) #10 - %19 = tail call i32 @NET_InetAddressToSockaddr(ptr noundef nonnull %0, ptr noundef %18, i32 noundef %4, ptr noundef nonnull %.029, ptr noundef null, i8 noundef zeroext %7) #10 + %18 = tail call ptr %17(ptr noundef nonnull %0, ptr noundef %3, i32 noundef %.02328) #11 + %19 = tail call i32 @NET_InetAddressToSockaddr(ptr noundef nonnull %0, ptr noundef %18, i32 noundef %4, ptr noundef nonnull %.029, ptr noundef null, i8 noundef zeroext %7) #11 %.not27 = icmp eq i32 %19, 0 br i1 %.not27, label %21, label %20 20: ; preds = %.lr.ph - tail call void @free(ptr noundef %12) #10 + tail call void @free(ptr noundef %12) #11 br label %32 21: ; preds = %.lr.ph @@ -337,18 +337,18 @@ define void @Java_sun_nio_ch_sctp_SctpNet_bindx(ptr noundef %0, ptr noundef read %24 = load ptr, ptr @nio_sctp_bindx, align 8 %.not = icmp eq i8 %6, 0 %25 = select i1 %.not, i32 2, i32 1 - %26 = tail call i32 %24(i32 noundef %2, ptr noundef nonnull %12, i32 noundef %5, i32 noundef %25) #10 + %26 = tail call i32 %24(i32 noundef %2, ptr noundef nonnull %12, i32 noundef %5, i32 noundef %25) #11 %.not26 = icmp eq i32 %26, 0 br i1 %.not26, label %31, label %27 27: ; preds = %._crit_edge - %28 = tail call ptr @__errno_location() #9 + %28 = tail call ptr @__errno_location() #10 %29 = load i32, ptr %28, align 4 %30 = tail call range(i32 -5, 1) i32 @sctpHandleSocketErrorWithMessage(ptr noundef nonnull %0, i32 noundef %29, ptr noundef null) br label %31 31: ; preds = %27, %._crit_edge - tail call void @free(ptr noundef %12) #10 + tail call void @free(ptr noundef %12) #11 br label %32 32: ; preds = %8, %31, %20, %14 @@ -367,12 +367,12 @@ declare void @free(ptr allocptr noundef captures(none)) local_unnamed_addr #7 ; Function Attrs: nounwind uwtable define void @Java_sun_nio_ch_sctp_SctpNet_listen0(ptr noundef %0, ptr noundef readnone captures(none) %1, i32 noundef %2, i32 noundef %3) local_unnamed_addr #1 { - %5 = tail call i32 @listen(i32 noundef %2, i32 noundef %3) #10 + %5 = tail call i32 @listen(i32 noundef %2, i32 noundef %3) #11 %6 = icmp slt i32 %5, 0 br i1 %6, label %7, label %11 7: ; preds = %4 - %8 = tail call ptr @__errno_location() #9 + %8 = tail call ptr @__errno_location() #10 %9 = load i32, ptr %8, align 4 %10 = tail call range(i32 -5, 1) i32 @sctpHandleSocketErrorWithMessage(ptr noundef %0, i32 noundef %9, ptr noundef null) br label %11 @@ -389,18 +389,18 @@ define range(i32 -5, 2) i32 @Java_sun_nio_ch_sctp_SctpNet_connect0(ptr noundef % %6 = alloca %union.SOCKETADDRESS, align 4 %7 = alloca i32, align 4 store i32 0, ptr %7, align 4 - %8 = call i32 @NET_InetAddressToSockaddr(ptr noundef %0, ptr noundef %3, i32 noundef %4, ptr noundef nonnull %6, ptr noundef nonnull %7, i8 noundef zeroext 1) #10 + %8 = call i32 @NET_InetAddressToSockaddr(ptr noundef %0, ptr noundef %3, i32 noundef %4, ptr noundef nonnull %6, ptr noundef nonnull %7, i8 noundef zeroext 1) #11 %.not = icmp eq i32 %8, 0 br i1 %.not, label %9, label %18 9: ; preds = %5 %10 = load i32, ptr %7, align 4 - %11 = call i32 @connect(i32 noundef %2, ptr nonnull %6, i32 noundef %10) #10 + %11 = call i32 @connect(i32 noundef %2, ptr nonnull %6, i32 noundef %10) #11 %.not7 = icmp eq i32 %11, 0 br i1 %.not7, label %18, label %12 12: ; preds = %9 - %13 = tail call ptr @__errno_location() #9 + %13 = tail call ptr @__errno_location() #10 %14 = load i32, ptr %13, align 4 switch i32 %14, label %16 [ i32 115, label %18 @@ -427,12 +427,12 @@ define void @Java_sun_nio_ch_sctp_SctpNet_close0(ptr noundef %0, ptr noundef rea br i1 %.not, label %8, label %4 4: ; preds = %3 - %5 = tail call i32 @close(i32 noundef %2) #10 + %5 = tail call i32 @close(i32 noundef %2) #11 %6 = icmp slt i32 %5, 0 br i1 %6, label %7, label %8 7: ; preds = %4 - tail call void @JNU_ThrowIOExceptionWithLastError(ptr noundef %0, ptr noundef nonnull @.str.12) #10 + tail call void @JNU_ThrowIOExceptionWithLastError(ptr noundef %0, ptr noundef nonnull @.str.12) #11 br label %8 8: ; preds = %4, %7, %3 @@ -446,12 +446,12 @@ define void @Java_sun_nio_ch_sctp_SctpNet_preClose0(ptr noundef %0, ptr noundef br i1 %5, label %6, label %10 6: ; preds = %3 - %7 = tail call i32 @dup2(i32 noundef %4, i32 noundef %2) #10 + %7 = tail call i32 @dup2(i32 noundef %4, i32 noundef %2) #11 %8 = icmp slt i32 %7, 0 br i1 %8, label %9, label %10 9: ; preds = %6 - tail call void @JNU_ThrowIOExceptionWithLastError(ptr noundef %0, ptr noundef nonnull @.str.13) #10 + tail call void @JNU_ThrowIOExceptionWithLastError(ptr noundef %0, ptr noundef nonnull @.str.13) #11 br label %10 10: ; preds = %6, %9, %3 @@ -471,7 +471,7 @@ define hidden void @initializeISA(ptr noundef %0) local_unnamed_addr #1 { %5 = load ptr, ptr %0, align 8 %6 = getelementptr inbounds nuw i8, ptr %5, i64 48 %7 = load ptr, ptr %6, align 8 - %8 = tail call ptr %7(ptr noundef nonnull %0, ptr noundef nonnull @.str.14) #10 + %8 = tail call ptr %7(ptr noundef nonnull %0, ptr noundef nonnull @.str.14) #11 %9 = icmp eq ptr %8, null br i1 %9, label %26, label %10 @@ -479,7 +479,7 @@ define hidden void @initializeISA(ptr noundef %0) local_unnamed_addr #1 { %11 = load ptr, ptr %0, align 8 %12 = getelementptr inbounds nuw i8, ptr %11, i64 264 %13 = load ptr, ptr %12, align 8 - %14 = tail call ptr %13(ptr noundef nonnull %0, ptr noundef nonnull %8, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.16) #10 + %14 = tail call ptr %13(ptr noundef nonnull %0, ptr noundef nonnull %8, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.16) #11 store ptr %14, ptr @isaCtrID, align 8 %15 = icmp eq ptr %14, null br i1 %15, label %26, label %16 @@ -488,7 +488,7 @@ define hidden void @initializeISA(ptr noundef %0) local_unnamed_addr #1 { %17 = load ptr, ptr %0, align 8 %18 = getelementptr inbounds nuw i8, ptr %17, i64 168 %19 = load ptr, ptr %18, align 8 - %20 = tail call ptr %19(ptr noundef nonnull %0, ptr noundef nonnull %8) #10 + %20 = tail call ptr %19(ptr noundef nonnull %0, ptr noundef nonnull %8) #11 store ptr %20, ptr @isaCls, align 8 %21 = icmp eq ptr %20, null br i1 %21, label %26, label %22 @@ -497,7 +497,7 @@ define hidden void @initializeISA(ptr noundef %0) local_unnamed_addr #1 { %23 = load ptr, ptr %0, align 8 %24 = getelementptr inbounds nuw i8, ptr %23, i64 184 %25 = load ptr, ptr %24, align 8 - tail call void %25(ptr noundef nonnull %0, ptr noundef nonnull %8) #10 + tail call void %25(ptr noundef nonnull %0, ptr noundef nonnull %8) #11 br label %26 26: ; preds = %16, %10, %4, %22, %1 @@ -508,7 +508,7 @@ define hidden void @initializeISA(ptr noundef %0) local_unnamed_addr #1 { define hidden ptr @SockAddrToInetSocketAddress(ptr noundef %0, ptr noundef %1) local_unnamed_addr #1 { %3 = alloca i32, align 4 store i32 0, ptr %3, align 4 - %4 = call ptr @NET_SockaddrToInetAddress(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %3) #10 + %4 = call ptr @NET_SockaddrToInetAddress(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %3) #11 %5 = icmp eq ptr %4, null br i1 %5, label %initializeISA.exit.thread, label %6 @@ -521,7 +521,7 @@ define hidden ptr @SockAddrToInetSocketAddress(ptr noundef %0, ptr noundef %1) l %10 = load ptr, ptr %0, align 8 %11 = getelementptr inbounds nuw i8, ptr %10, i64 48 %12 = load ptr, ptr %11, align 8 - %13 = call ptr %12(ptr noundef nonnull %0, ptr noundef nonnull @.str.14) #10 + %13 = call ptr %12(ptr noundef nonnull %0, ptr noundef nonnull @.str.14) #11 %14 = icmp eq ptr %13, null br i1 %14, label %initializeISA.exit, label %15 @@ -529,7 +529,7 @@ define hidden ptr @SockAddrToInetSocketAddress(ptr noundef %0, ptr noundef %1) l %16 = load ptr, ptr %0, align 8 %17 = getelementptr inbounds nuw i8, ptr %16, i64 264 %18 = load ptr, ptr %17, align 8 - %19 = call ptr %18(ptr noundef nonnull %0, ptr noundef nonnull %13, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.16) #10 + %19 = call ptr %18(ptr noundef nonnull %0, ptr noundef nonnull %13, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.16) #11 store ptr %19, ptr @isaCtrID, align 8 %20 = icmp eq ptr %19, null br i1 %20, label %initializeISA.exit, label %21 @@ -538,7 +538,7 @@ define hidden ptr @SockAddrToInetSocketAddress(ptr noundef %0, ptr noundef %1) l %22 = load ptr, ptr %0, align 8 %23 = getelementptr inbounds nuw i8, ptr %22, i64 168 %24 = load ptr, ptr %23, align 8 - %25 = call ptr %24(ptr noundef nonnull %0, ptr noundef nonnull %13) #10 + %25 = call ptr %24(ptr noundef nonnull %0, ptr noundef nonnull %13) #11 store ptr %25, ptr @isaCls, align 8 %26 = icmp eq ptr %25, null br i1 %26, label %initializeISA.exit.thread, label %27 @@ -547,7 +547,7 @@ define hidden ptr @SockAddrToInetSocketAddress(ptr noundef %0, ptr noundef %1) l %28 = load ptr, ptr %0, align 8 %29 = getelementptr inbounds nuw i8, ptr %28, i64 184 %30 = load ptr, ptr %29, align 8 - call void %30(ptr noundef nonnull %0, ptr noundef nonnull %13) #10 + call void %30(ptr noundef nonnull %0, ptr noundef nonnull %13) #11 br label %initializeISA.exit initializeISA.exit: ; preds = %9, %15, %27 @@ -562,7 +562,7 @@ initializeISA.exit: ; preds = %9, %15, %27 %36 = load ptr, ptr %35, align 8 %37 = load ptr, ptr @isaCtrID, align 8 %38 = load i32, ptr %3, align 4 - %39 = call ptr (ptr, ptr, ptr, ...) %36(ptr noundef nonnull %0, ptr noundef nonnull %33, ptr noundef %37, ptr noundef nonnull %4, i32 noundef %38) #10 + %39 = call ptr (ptr, ptr, ptr, ...) %36(ptr noundef nonnull %0, ptr noundef nonnull %33, ptr noundef %37, ptr noundef nonnull %4, i32 noundef %38) #11 br label %initializeISA.exit.thread initializeISA.exit.thread: ; preds = %21, %initializeISA.exit, %2, %32 @@ -577,12 +577,12 @@ define ptr @Java_sun_nio_ch_sctp_SctpNet_getLocalAddresses0(ptr noundef %0, ptr %4 = alloca ptr, align 8 %5 = alloca i32, align 4 %6 = load ptr, ptr @nio_sctp_getladdrs, align 8 - %7 = call i32 %6(i32 noundef %2, i32 noundef 0, ptr noundef nonnull %4) #10 + %7 = call i32 %6(i32 noundef %2, i32 noundef 0, ptr noundef nonnull %4) #11 %8 = icmp eq i32 %7, -1 br i1 %8, label %9, label %13 9: ; preds = %3 - %10 = tail call ptr @__errno_location() #9 + %10 = tail call ptr @__errno_location() #10 %11 = load i32, ptr %10, align 4 %12 = call range(i32 -5, 1) i32 @sctpHandleSocketErrorWithMessage(ptr noundef %0, i32 noundef %11, ptr noundef null) br label %initializeISA.exit.thread @@ -600,7 +600,7 @@ define ptr @Java_sun_nio_ch_sctp_SctpNet_getLocalAddresses0(ptr noundef %0, ptr %19 = load ptr, ptr %0, align 8 %20 = getelementptr inbounds nuw i8, ptr %19, i64 48 %21 = load ptr, ptr %20, align 8 - %22 = call ptr %21(ptr noundef nonnull %0, ptr noundef nonnull @.str.14) #10 + %22 = call ptr %21(ptr noundef nonnull %0, ptr noundef nonnull @.str.14) #11 %23 = icmp eq ptr %22, null br i1 %23, label %initializeISA.exit, label %24 @@ -608,7 +608,7 @@ define ptr @Java_sun_nio_ch_sctp_SctpNet_getLocalAddresses0(ptr noundef %0, ptr %25 = load ptr, ptr %0, align 8 %26 = getelementptr inbounds nuw i8, ptr %25, i64 264 %27 = load ptr, ptr %26, align 8 - %28 = call ptr %27(ptr noundef nonnull %0, ptr noundef nonnull %22, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.16) #10 + %28 = call ptr %27(ptr noundef nonnull %0, ptr noundef nonnull %22, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.16) #11 store ptr %28, ptr @isaCtrID, align 8 %29 = icmp eq ptr %28, null br i1 %29, label %initializeISA.exit, label %30 @@ -617,7 +617,7 @@ define ptr @Java_sun_nio_ch_sctp_SctpNet_getLocalAddresses0(ptr noundef %0, ptr %31 = load ptr, ptr %0, align 8 %32 = getelementptr inbounds nuw i8, ptr %31, i64 168 %33 = load ptr, ptr %32, align 8 - %34 = call ptr %33(ptr noundef nonnull %0, ptr noundef nonnull %22) #10 + %34 = call ptr %33(ptr noundef nonnull %0, ptr noundef nonnull %22) #11 store ptr %34, ptr @isaCls, align 8 %35 = icmp eq ptr %34, null br i1 %35, label %initializeISA.exit.thread, label %36 @@ -626,7 +626,7 @@ define ptr @Java_sun_nio_ch_sctp_SctpNet_getLocalAddresses0(ptr noundef %0, ptr %37 = load ptr, ptr %0, align 8 %38 = getelementptr inbounds nuw i8, ptr %37, i64 184 %39 = load ptr, ptr %38, align 8 - call void %39(ptr noundef nonnull %0, ptr noundef nonnull %22) #10 + call void %39(ptr noundef nonnull %0, ptr noundef nonnull %22) #11 br label %initializeISA.exit initializeISA.exit: ; preds = %18, %24, %36 @@ -639,14 +639,14 @@ initializeISA.exit: ; preds = %18, %24, %36 %43 = load ptr, ptr %0, align 8 %44 = getelementptr inbounds nuw i8, ptr %43, i64 1376 %45 = load ptr, ptr %44, align 8 - %46 = call ptr %45(ptr noundef nonnull %0, i32 noundef %7, ptr noundef nonnull %42, ptr noundef null) #10 + %46 = call ptr %45(ptr noundef nonnull %0, i32 noundef %7, ptr noundef nonnull %42, ptr noundef null) #11 %47 = icmp eq ptr %46, null br i1 %47, label %48, label %.lr.ph.preheader 48: ; preds = %41 %49 = load ptr, ptr @nio_sctp_freeladdrs, align 8 %50 = load ptr, ptr %4, align 8 - %51 = call i32 %49(ptr noundef %50) #10 + %51 = call i32 %49(ptr noundef %50) #11 br label %initializeISA.exit.thread .lr.ph.preheader: ; preds = %41 @@ -657,7 +657,7 @@ initializeISA.exit: ; preds = %18, %24, %36 %53 = phi ptr [ %storemerge, %64 ], [ %52, %.lr.ph.preheader ] %.02530 = phi i32 [ %71, %64 ], [ 0, %.lr.ph.preheader ] store i32 0, ptr %5, align 4 - %54 = call ptr @NET_SockaddrToInetAddress(ptr noundef nonnull %0, ptr noundef %53, ptr noundef nonnull %5) #10 + %54 = call ptr @NET_SockaddrToInetAddress(ptr noundef nonnull %0, ptr noundef %53, ptr noundef nonnull %5) #11 %.not = icmp eq ptr %54, null br i1 %.not, label %.thread, label %55 @@ -668,7 +668,7 @@ initializeISA.exit: ; preds = %18, %24, %36 %59 = load ptr, ptr @isaCls, align 8 %60 = load ptr, ptr @isaCtrID, align 8 %61 = load i32, ptr %5, align 4 - %62 = call ptr (ptr, ptr, ptr, ...) %58(ptr noundef nonnull %0, ptr noundef %59, ptr noundef %60, ptr noundef nonnull %54, i32 noundef %61) #10 + %62 = call ptr (ptr, ptr, ptr, ...) %58(ptr noundef nonnull %0, ptr noundef %59, ptr noundef %60, ptr noundef nonnull %54, i32 noundef %61) #11 %63 = icmp eq ptr %62, null br i1 %63, label %.thread, label %64 @@ -676,7 +676,7 @@ initializeISA.exit: ; preds = %18, %24, %36 %65 = load ptr, ptr %0, align 8 %66 = getelementptr inbounds nuw i8, ptr %65, i64 1392 %67 = load ptr, ptr %66, align 8 - call void %67(ptr noundef nonnull %0, ptr noundef nonnull %46, i32 noundef %.02530, ptr noundef nonnull %62) #10 + call void %67(ptr noundef nonnull %0, ptr noundef nonnull %46, i32 noundef %.02530, ptr noundef nonnull %62) #11 %68 = load ptr, ptr %4, align 8 %69 = load i16, ptr %68, align 2 %70 = icmp eq i16 %69, 2 @@ -689,7 +689,7 @@ initializeISA.exit: ; preds = %18, %24, %36 .thread: ; preds = %64, %55, %.lr.ph %72 = load ptr, ptr @nio_sctp_freeladdrs, align 8 - %73 = call i32 %72(ptr noundef %52) #10 + %73 = call i32 %72(ptr noundef %52) #11 br label %initializeISA.exit.thread initializeISA.exit.thread: ; preds = %30, %initializeISA.exit, %13, %.thread, %48, %9 @@ -702,12 +702,12 @@ define hidden ptr @getRemoteAddresses(ptr noundef %0, i32 noundef %1, i32 nounde %4 = alloca ptr, align 8 %5 = alloca i32, align 4 %6 = load ptr, ptr @nio_sctp_getpaddrs, align 8 - %7 = call i32 %6(i32 noundef %1, i32 noundef %2, ptr noundef nonnull %4) #10 + %7 = call i32 %6(i32 noundef %1, i32 noundef %2, ptr noundef nonnull %4) #11 %8 = icmp eq i32 %7, -1 br i1 %8, label %9, label %13 9: ; preds = %3 - %10 = tail call ptr @__errno_location() #9 + %10 = tail call ptr @__errno_location() #10 %11 = load i32, ptr %10, align 4 %12 = call range(i32 -5, 1) i32 @sctpHandleSocketErrorWithMessage(ptr noundef %0, i32 noundef %11, ptr noundef null) br label %initializeISA.exit.thread @@ -725,7 +725,7 @@ define hidden ptr @getRemoteAddresses(ptr noundef %0, i32 noundef %1, i32 nounde %19 = load ptr, ptr %0, align 8 %20 = getelementptr inbounds nuw i8, ptr %19, i64 48 %21 = load ptr, ptr %20, align 8 - %22 = call ptr %21(ptr noundef nonnull %0, ptr noundef nonnull @.str.14) #10 + %22 = call ptr %21(ptr noundef nonnull %0, ptr noundef nonnull @.str.14) #11 %23 = icmp eq ptr %22, null br i1 %23, label %initializeISA.exit, label %24 @@ -733,7 +733,7 @@ define hidden ptr @getRemoteAddresses(ptr noundef %0, i32 noundef %1, i32 nounde %25 = load ptr, ptr %0, align 8 %26 = getelementptr inbounds nuw i8, ptr %25, i64 264 %27 = load ptr, ptr %26, align 8 - %28 = call ptr %27(ptr noundef nonnull %0, ptr noundef nonnull %22, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.16) #10 + %28 = call ptr %27(ptr noundef nonnull %0, ptr noundef nonnull %22, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.16) #11 store ptr %28, ptr @isaCtrID, align 8 %29 = icmp eq ptr %28, null br i1 %29, label %initializeISA.exit, label %30 @@ -742,7 +742,7 @@ define hidden ptr @getRemoteAddresses(ptr noundef %0, i32 noundef %1, i32 nounde %31 = load ptr, ptr %0, align 8 %32 = getelementptr inbounds nuw i8, ptr %31, i64 168 %33 = load ptr, ptr %32, align 8 - %34 = call ptr %33(ptr noundef nonnull %0, ptr noundef nonnull %22) #10 + %34 = call ptr %33(ptr noundef nonnull %0, ptr noundef nonnull %22) #11 store ptr %34, ptr @isaCls, align 8 %35 = icmp eq ptr %34, null br i1 %35, label %initializeISA.exit.thread, label %36 @@ -751,7 +751,7 @@ define hidden ptr @getRemoteAddresses(ptr noundef %0, i32 noundef %1, i32 nounde %37 = load ptr, ptr %0, align 8 %38 = getelementptr inbounds nuw i8, ptr %37, i64 184 %39 = load ptr, ptr %38, align 8 - call void %39(ptr noundef nonnull %0, ptr noundef nonnull %22) #10 + call void %39(ptr noundef nonnull %0, ptr noundef nonnull %22) #11 br label %initializeISA.exit initializeISA.exit: ; preds = %18, %24, %36 @@ -764,14 +764,14 @@ initializeISA.exit: ; preds = %18, %24, %36 %43 = load ptr, ptr %0, align 8 %44 = getelementptr inbounds nuw i8, ptr %43, i64 1376 %45 = load ptr, ptr %44, align 8 - %46 = call ptr %45(ptr noundef nonnull %0, i32 noundef %7, ptr noundef nonnull %42, ptr noundef null) #10 + %46 = call ptr %45(ptr noundef nonnull %0, i32 noundef %7, ptr noundef nonnull %42, ptr noundef null) #11 %47 = icmp eq ptr %46, null br i1 %47, label %48, label %.lr.ph.preheader 48: ; preds = %41 %49 = load ptr, ptr @nio_sctp_freepaddrs, align 8 %50 = load ptr, ptr %4, align 8 - %51 = call i32 %49(ptr noundef %50) #10 + %51 = call i32 %49(ptr noundef %50) #11 br label %initializeISA.exit.thread .lr.ph.preheader: ; preds = %41 @@ -782,7 +782,7 @@ initializeISA.exit: ; preds = %18, %24, %36 %53 = phi ptr [ %storemerge, %64 ], [ %52, %.lr.ph.preheader ] %.02631 = phi i32 [ %71, %64 ], [ 0, %.lr.ph.preheader ] store i32 0, ptr %5, align 4 - %54 = call ptr @NET_SockaddrToInetAddress(ptr noundef nonnull %0, ptr noundef %53, ptr noundef nonnull %5) #10 + %54 = call ptr @NET_SockaddrToInetAddress(ptr noundef nonnull %0, ptr noundef %53, ptr noundef nonnull %5) #11 %.not = icmp eq ptr %54, null br i1 %.not, label %.thread, label %55 @@ -793,7 +793,7 @@ initializeISA.exit: ; preds = %18, %24, %36 %59 = load ptr, ptr @isaCls, align 8 %60 = load ptr, ptr @isaCtrID, align 8 %61 = load i32, ptr %5, align 4 - %62 = call ptr (ptr, ptr, ptr, ...) %58(ptr noundef nonnull %0, ptr noundef %59, ptr noundef %60, ptr noundef nonnull %54, i32 noundef %61) #10 + %62 = call ptr (ptr, ptr, ptr, ...) %58(ptr noundef nonnull %0, ptr noundef %59, ptr noundef %60, ptr noundef nonnull %54, i32 noundef %61) #11 %63 = icmp eq ptr %62, null br i1 %63, label %.thread, label %64 @@ -801,7 +801,7 @@ initializeISA.exit: ; preds = %18, %24, %36 %65 = load ptr, ptr %0, align 8 %66 = getelementptr inbounds nuw i8, ptr %65, i64 1392 %67 = load ptr, ptr %66, align 8 - call void %67(ptr noundef nonnull %0, ptr noundef nonnull %46, i32 noundef %.02631, ptr noundef nonnull %62) #10 + call void %67(ptr noundef nonnull %0, ptr noundef nonnull %46, i32 noundef %.02631, ptr noundef nonnull %62) #11 %68 = load ptr, ptr %4, align 8 %69 = load i16, ptr %68, align 2 %70 = icmp eq i16 %69, 2 @@ -814,7 +814,7 @@ initializeISA.exit: ; preds = %18, %24, %36 .thread: ; preds = %64, %55, %.lr.ph %72 = load ptr, ptr @nio_sctp_freepaddrs, align 8 - %73 = call i32 %72(ptr noundef %52) #10 + %73 = call i32 %72(ptr noundef %52) #11 br label %initializeISA.exit.thread initializeISA.exit.thread: ; preds = %30, %initializeISA.exit, %13, %.thread, %48, %9 @@ -878,7 +878,7 @@ define void @Java_sun_nio_ch_sctp_SctpNet_setIntOption0(ptr noundef %0, ptr noun br i1 %12, label %14, label %8 13: ; preds = %8 - tail call void @JNU_ThrowByNameWithLastError(ptr noundef %0, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.17) #10 + tail call void @JNU_ThrowByNameWithLastError(ptr noundef %0, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.17) #11 br label %26 14: ; preds = %9 @@ -893,7 +893,7 @@ define void @Java_sun_nio_ch_sctp_SctpNet_setIntOption0(ptr noundef %0, ptr noun %20 = icmp sgt i32 %4, -1 %21 = getelementptr inbounds nuw i8, ptr %7, i64 4 %. = zext i1 %20 to i32 - %.17 = select i1 %20, i32 %4, i32 0 + %.17 = tail call i32 @llvm.smax.i32(i32 %4, i32 0) store i32 %., ptr %7, align 4 store i32 %.17, ptr %21, align 4 br label %22 @@ -901,12 +901,12 @@ define void @Java_sun_nio_ch_sctp_SctpNet_setIntOption0(ptr noundef %0, ptr noun 22: ; preds = %.sink.split, %14 %.06 = phi ptr [ %6, %14 ], [ %7, %.sink.split ] %.0 = phi i32 [ 4, %14 ], [ 8, %.sink.split ] - %23 = call i32 @NET_SetSockOpt(i32 noundef %2, i32 noundef %16, i32 noundef %18, ptr noundef nonnull %.06, i32 noundef %.0) #10 + %23 = call i32 @NET_SetSockOpt(i32 noundef %2, i32 noundef %16, i32 noundef %18, ptr noundef nonnull %.06, i32 noundef %.0) #11 %24 = icmp slt i32 %23, 0 br i1 %24, label %25, label %26 25: ; preds = %22 - call void @JNU_ThrowByNameWithLastError(ptr noundef %0, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.18) #10 + call void @JNU_ThrowByNameWithLastError(ptr noundef %0, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.18) #11 br label %26 26: ; preds = %25, %22, %13 @@ -936,7 +936,7 @@ define i32 @Java_sun_nio_ch_sctp_SctpNet_getIntOption0(ptr noundef %0, ptr nound br i1 %12, label %14, label %8 13: ; preds = %8 - tail call void @JNU_ThrowByNameWithLastError(ptr noundef %0, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.17) #10 + tail call void @JNU_ThrowByNameWithLastError(ptr noundef %0, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.17) #11 br label %31 14: ; preds = %9 @@ -948,12 +948,12 @@ define i32 @Java_sun_nio_ch_sctp_SctpNet_getIntOption0(ptr noundef %0, ptr nound %. = select i1 %19, i32 8, i32 4 %.8 = select i1 %19, ptr %6, ptr %5 store i32 %., ptr %7, align 4 - %20 = call i32 @NET_GetSockOpt(i32 noundef %2, i32 noundef %16, i32 noundef %18, ptr noundef nonnull %.8, ptr noundef nonnull %7) #10 + %20 = call i32 @NET_GetSockOpt(i32 noundef %2, i32 noundef %16, i32 noundef %18, ptr noundef nonnull %.8, ptr noundef nonnull %7) #11 %21 = icmp slt i32 %20, 0 br i1 %21, label %22, label %23 22: ; preds = %14 - call void @JNU_ThrowByNameWithLastError(ptr noundef %0, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.19) #10 + call void @JNU_ThrowByNameWithLastError(ptr noundef %0, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.19) #11 br label %31 23: ; preds = %14 @@ -984,12 +984,12 @@ define ptr @Java_sun_nio_ch_sctp_SctpNet_getPrimAddrOption0(ptr noundef %0, ptr %6 = alloca i32, align 4 store i32 132, ptr %6, align 4 store i32 %3, ptr %5, align 4 - %7 = call i32 @getsockopt(i32 noundef %2, i32 noundef 132, i32 noundef 6, ptr noundef nonnull %5, ptr noundef nonnull %6) #10 + %7 = call i32 @getsockopt(i32 noundef %2, i32 noundef 132, i32 noundef 6, ptr noundef nonnull %5, ptr noundef nonnull %6) #11 %8 = icmp slt i32 %7, 0 br i1 %8, label %9, label %10 9: ; preds = %4 - call void @JNU_ThrowByNameWithLastError(ptr noundef %0, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.20) #10 + call void @JNU_ThrowByNameWithLastError(ptr noundef %0, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.20) #11 br label %13 10: ; preds = %4 @@ -1009,18 +1009,18 @@ declare i32 @getsockopt(i32 noundef, i32 noundef, i32 noundef, ptr noundef, ptr define void @Java_sun_nio_ch_sctp_SctpNet_setPrimAddrOption0(ptr noundef %0, ptr noundef readnone captures(none) %1, i32 noundef %2, i32 noundef %3, ptr noundef %4, i32 noundef %5) local_unnamed_addr #1 { %7 = alloca %struct.sctp_setprim, align 4 %8 = getelementptr inbounds nuw i8, ptr %7, i64 4 - %9 = call i32 @NET_InetAddressToSockaddr(ptr noundef %0, ptr noundef %4, i32 noundef %5, ptr noundef nonnull %8, ptr noundef null, i8 noundef zeroext 1) #10 + %9 = call i32 @NET_InetAddressToSockaddr(ptr noundef %0, ptr noundef %4, i32 noundef %5, ptr noundef nonnull %8, ptr noundef null, i8 noundef zeroext 1) #11 %.not = icmp eq i32 %9, 0 br i1 %.not, label %10, label %14 10: ; preds = %6 store i32 %3, ptr %7, align 4 - %11 = call i32 @setsockopt(i32 noundef %2, i32 noundef 132, i32 noundef 6, ptr noundef nonnull %7, i32 noundef 132) #10 + %11 = call i32 @setsockopt(i32 noundef %2, i32 noundef 132, i32 noundef 6, ptr noundef nonnull %7, i32 noundef 132) #11 %12 = icmp slt i32 %11, 0 br i1 %12, label %13, label %14 13: ; preds = %10 - call void @JNU_ThrowByNameWithLastError(ptr noundef %0, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.21) #10 + call void @JNU_ThrowByNameWithLastError(ptr noundef %0, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.21) #11 br label %14 14: ; preds = %6, %13, %10 @@ -1031,18 +1031,18 @@ define void @Java_sun_nio_ch_sctp_SctpNet_setPrimAddrOption0(ptr noundef %0, ptr define void @Java_sun_nio_ch_sctp_SctpNet_setPeerPrimAddrOption0(ptr noundef %0, ptr noundef readnone captures(none) %1, i32 noundef %2, i32 noundef %3, ptr noundef %4, i32 noundef %5, i8 noundef zeroext %6) local_unnamed_addr #1 { %8 = alloca %struct.sctp_setpeerprim, align 4 %9 = getelementptr inbounds nuw i8, ptr %8, i64 4 - %10 = call i32 @NET_InetAddressToSockaddr(ptr noundef %0, ptr noundef %4, i32 noundef %5, ptr noundef nonnull %9, ptr noundef null, i8 noundef zeroext %6) #10 + %10 = call i32 @NET_InetAddressToSockaddr(ptr noundef %0, ptr noundef %4, i32 noundef %5, ptr noundef nonnull %9, ptr noundef null, i8 noundef zeroext %6) #11 %.not = icmp eq i32 %10, 0 br i1 %.not, label %11, label %15 11: ; preds = %7 store i32 %3, ptr %8, align 4 - %12 = call i32 @setsockopt(i32 noundef %2, i32 noundef 132, i32 noundef 5, ptr noundef nonnull %8, i32 noundef 132) #10 + %12 = call i32 @setsockopt(i32 noundef %2, i32 noundef 132, i32 noundef 5, ptr noundef nonnull %8, i32 noundef 132) #11 %13 = icmp slt i32 %12, 0 br i1 %13, label %14, label %15 14: ; preds = %11 - call void @JNU_ThrowByNameWithLastError(ptr noundef %0, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.22) #10 + call void @JNU_ThrowByNameWithLastError(ptr noundef %0, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.22) #11 br label %15 15: ; preds = %7, %14, %11 @@ -1055,12 +1055,12 @@ define void @Java_sun_nio_ch_sctp_SctpNet_getInitMsgOption0(ptr noundef %0, ptr %6 = alloca i32, align 4 %7 = alloca [2 x i32], align 4 store i32 8, ptr %6, align 4 - %8 = call i32 @getsockopt(i32 noundef %2, i32 noundef 132, i32 noundef 2, ptr noundef nonnull %5, ptr noundef nonnull %6) #10 + %8 = call i32 @getsockopt(i32 noundef %2, i32 noundef 132, i32 noundef 2, ptr noundef nonnull %5, ptr noundef nonnull %6) #11 %9 = icmp slt i32 %8, 0 br i1 %9, label %10, label %11 10: ; preds = %4 - call void @JNU_ThrowByNameWithLastError(ptr noundef %0, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.23) #10 + call void @JNU_ThrowByNameWithLastError(ptr noundef %0, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.23) #11 br label %21 11: ; preds = %4 @@ -1075,7 +1075,7 @@ define void @Java_sun_nio_ch_sctp_SctpNet_getInitMsgOption0(ptr noundef %0, ptr %18 = load ptr, ptr %0, align 8 %19 = getelementptr inbounds nuw i8, ptr %18, i64 1688 %20 = load ptr, ptr %19, align 8 - call void %20(ptr noundef nonnull %0, ptr noundef %3, i32 noundef 0, i32 noundef 2, ptr noundef nonnull %7) #10 + call void %20(ptr noundef nonnull %0, ptr noundef %3, i32 noundef 0, i32 noundef 2, ptr noundef nonnull %7) #11 br label %21 21: ; preds = %11, %10 @@ -1094,12 +1094,12 @@ define void @Java_sun_nio_ch_sctp_SctpNet_setInitMsgOption0(ptr noundef %0, ptr store i16 0, ptr %10, align 2 %11 = getelementptr inbounds nuw i8, ptr %6, i64 6 store i16 0, ptr %11, align 2 - %12 = call i32 @setsockopt(i32 noundef %2, i32 noundef 132, i32 noundef 2, ptr noundef nonnull %6, i32 noundef 8) #10 + %12 = call i32 @setsockopt(i32 noundef %2, i32 noundef 132, i32 noundef 2, ptr noundef nonnull %6, i32 noundef 8) #11 %13 = icmp slt i32 %12, 0 br i1 %13, label %14, label %15 14: ; preds = %5 - call void @JNU_ThrowByNameWithLastError(ptr noundef %0, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.24) #10 + call void @JNU_ThrowByNameWithLastError(ptr noundef %0, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.24) #11 br label %15 15: ; preds = %14, %5 @@ -1115,7 +1115,7 @@ define void @Java_sun_nio_ch_sctp_SctpNet_shutdown0(ptr noundef %0, ptr noundef br i1 %8, label %9, label %11 9: ; preds = %4 - %10 = tail call i32 @shutdown(i32 noundef %2, i32 noundef 1) #10 + %10 = tail call i32 @shutdown(i32 noundef %2, i32 noundef 1) #11 br label %29 11: ; preds = %4 @@ -1147,13 +1147,13 @@ define void @Java_sun_nio_ch_sctp_SctpNet_shutdown0(ptr noundef %0, ptr noundef %22 = getelementptr inbounds nuw i8, ptr %7, i64 20 store i16 512, ptr %22, align 4 store i64 48, ptr %15, align 8 - %23 = call i64 @sendmsg(i32 noundef %2, ptr noundef nonnull %5, i32 noundef 0) #10 + %23 = call i64 @sendmsg(i32 noundef %2, ptr noundef nonnull %5, i32 noundef 0) #11 %24 = and i64 %23, 2147483648 %.not16 = icmp eq i64 %24, 0 br i1 %.not16, label %29, label %25 25: ; preds = %21 - %26 = tail call ptr @__errno_location() #9 + %26 = tail call ptr @__errno_location() #10 %27 = load i32, ptr %26, align 4 %28 = call range(i32 -5, 1) i32 @sctpHandleSocketErrorWithMessage(ptr noundef %0, i32 noundef %27, ptr noundef null) br label %29 @@ -1170,12 +1170,12 @@ declare i64 @sendmsg(i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr # ; Function Attrs: nounwind uwtable define i32 @Java_sun_nio_ch_sctp_SctpNet_branch0(ptr noundef %0, ptr noundef readnone captures(none) %1, i32 noundef %2, i32 noundef %3) local_unnamed_addr #1 { %5 = load ptr, ptr @nio_sctp_peeloff, align 8 - %6 = tail call i32 %5(i32 noundef %2, i32 noundef %3) #10 + %6 = tail call i32 %5(i32 noundef %2, i32 noundef %3) #11 %7 = icmp slt i32 %6, 0 br i1 %7, label %8, label %12 8: ; preds = %4 - %9 = tail call ptr @__errno_location() #9 + %9 = tail call ptr @__errno_location() #10 %10 = load i32, ptr %9, align 4 %11 = tail call range(i32 -5, 1) i32 @sctpHandleSocketErrorWithMessage(ptr noundef %0, i32 noundef %10, ptr noundef null) br label %12 @@ -1195,6 +1195,9 @@ declare ptr @dlerror() local_unnamed_addr #4 ; Function Attrs: nounwind declare ptr @dlsym(ptr noundef, ptr noundef) local_unnamed_addr #4 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i32 @llvm.smax.i32(i32, i32) #9 + attributes #0 = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nofree nosync nounwind willreturn memory(none) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -1204,9 +1207,10 @@ attributes #5 = { mustprogress nocallback nofree nounwind willreturn memory(argm attributes #6 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #8 = { nofree norecurse nosync nounwind memory(argmem: write) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #9 = { nounwind willreturn memory(none) } -attributes #10 = { nounwind } -attributes #11 = { nounwind allocsize(0,1) } +attributes #9 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #10 = { nounwind willreturn memory(none) } +attributes #11 = { nounwind } +attributes #12 = { nounwind allocsize(0,1) } !llvm.module.flags = !{!0, !1, !2, !3, !4, !5} diff --git a/bench/openjdk/optimized/ifnode.ll b/bench/openjdk/optimized/ifnode.ll index 91ef8fbc853..98be68c78c4 100644 --- a/bench/openjdk/optimized/ifnode.ll +++ b/bench/openjdk/optimized/ifnode.ll @@ -782,27 +782,31 @@ _ZNK4Node12find_int_conEi.exit.thread: ; preds = %71, %65 97: ; preds = %60 %98 = tail call noundef ptr @_ZNK4Node13find_int_typeEv(ptr noundef nonnull align 8 dereferenceable(52) %.034) #8 %.not.i20 = icmp eq ptr %98, null - br i1 %.not.i20, label %_ZNK4Node12find_int_conEi.exit22, label %99 + br i1 %.not.i20, label %_ZNK4Node12find_int_conEi.exit22.thread, label %99 99: ; preds = %97 %100 = getelementptr inbounds nuw i8, ptr %98, i64 24 %101 = load i32, ptr %100, align 8 + %.fr = freeze i32 %101 %102 = getelementptr inbounds nuw i8, ptr %98, i64 28 %103 = load i32, ptr %102, align 4 - %104 = icmp eq i32 %101, %103 - %spec.select.i21 = select i1 %104, i32 %101, i32 -1 - br label %_ZNK4Node12find_int_conEi.exit22 - -_ZNK4Node12find_int_conEi.exit22: ; preds = %97, %99 - %105 = phi i32 [ -1, %97 ], [ %spec.select.i21, %99 ] - %106 = icmp sgt i32 %105, -1 - %. = select i1 %106, ptr null, ptr %.034 - %.15 = select i1 %106, i32 %105, i32 0 + %104 = icmp eq i32 %.fr, %103 + br i1 %104, label %_ZNK4Node12find_int_conEi.exit22, label %_ZNK4Node12find_int_conEi.exit22.thread + +_ZNK4Node12find_int_conEi.exit22: ; preds = %99 + %105 = icmp sgt i32 %.fr, -1 + %spec.select = select i1 %105, ptr null, ptr %.034 + br label %_ZNK4Node12find_int_conEi.exit22.thread + +_ZNK4Node12find_int_conEi.exit22.thread: ; preds = %_ZNK4Node12find_int_conEi.exit22, %99, %97 + %106 = phi i32 [ -1, %97 ], [ -1, %99 ], [ %.fr, %_ZNK4Node12find_int_conEi.exit22 ] + %107 = phi ptr [ %.034, %97 ], [ %.034, %99 ], [ %spec.select, %_ZNK4Node12find_int_conEi.exit22 ] + %.15 = tail call i32 @llvm.smax.i32(i32 %106, i32 0) br label %_ZNK4Node12find_int_conEi.exit19.thread -_ZNK4Node12find_int_conEi.exit19.thread: ; preds = %86, %_ZNK4Node12find_int_conEi.exit.thread, %_ZNK4Node12find_int_conEi.exit22, %92, %77 - %.08 = phi ptr [ %81, %77 ], [ %96, %92 ], [ %., %_ZNK4Node12find_int_conEi.exit22 ], [ %.034, %_ZNK4Node12find_int_conEi.exit.thread ], [ %.034, %86 ] - %.0 = phi i32 [ %73, %77 ], [ %88, %92 ], [ %.15, %_ZNK4Node12find_int_conEi.exit22 ], [ 0, %_ZNK4Node12find_int_conEi.exit.thread ], [ 0, %86 ] +_ZNK4Node12find_int_conEi.exit19.thread: ; preds = %86, %_ZNK4Node12find_int_conEi.exit.thread, %_ZNK4Node12find_int_conEi.exit22.thread, %92, %77 + %.08 = phi ptr [ %81, %77 ], [ %96, %92 ], [ %107, %_ZNK4Node12find_int_conEi.exit22.thread ], [ %.034, %_ZNK4Node12find_int_conEi.exit.thread ], [ %.034, %86 ] + %.0 = phi i32 [ %73, %77 ], [ %88, %92 ], [ %.15, %_ZNK4Node12find_int_conEi.exit22.thread ], [ 0, %_ZNK4Node12find_int_conEi.exit.thread ], [ 0, %86 ] store ptr %.08, ptr %2, align 8 store i32 %.0, ptr %3, align 4 store ptr %.033, ptr %1, align 8 diff --git a/bench/openjdk/optimized/macroAssembler_x86.ll b/bench/openjdk/optimized/macroAssembler_x86.ll index b3b67b4c740..5dbb7221933 100644 --- a/bench/openjdk/optimized/macroAssembler_x86.ll +++ b/bench/openjdk/optimized/macroAssembler_x86.ll @@ -14876,10 +14876,9 @@ declare void @_ZN9Assembler6vpsrawE11XMMRegisterS0_ii(ptr noundef nonnull align define hidden void @_ZN14MacroAssembler7evpsraqE11XMMRegisterS0_S0_i(ptr noundef nonnull align 8 dereferenceable(40) %0, i32 %1, i32 %2, i32 %3, i32 noundef %4) local_unnamed_addr #0 align 2 { %6 = load i64, ptr @_ZN19Abstract_VM_Version9_featuresE, align 8 %7 = and i64 %6, 8589934592 - %8 = icmp ne i64 %7, 0 - %9 = icmp sgt i32 %4, 1 - %or.cond.not = or i1 %9, %8 - %spec.store.select = select i1 %or.cond.not, i32 %4, i32 2 + %.not = icmp eq i64 %7, 0 + %8 = tail call i32 @llvm.smax.i32(i32 %4, i32 2) + %spec.store.select = select i1 %.not, i32 %8, i32 %4 tail call void @_ZN9Assembler7evpsraqE11XMMRegisterS0_S0_i(ptr noundef nonnull align 8 dereferenceable(40) %0, i32 %1, i32 %2, i32 %3, i32 noundef %spec.store.select) #18 ret void } @@ -14890,10 +14889,9 @@ declare void @_ZN9Assembler7evpsraqE11XMMRegisterS0_S0_i(ptr noundef nonnull ali define hidden void @_ZN14MacroAssembler7evpsraqE11XMMRegisterS0_ii(ptr noundef nonnull align 8 dereferenceable(40) %0, i32 %1, i32 %2, i32 noundef %3, i32 noundef %4) local_unnamed_addr #0 align 2 { %6 = load i64, ptr @_ZN19Abstract_VM_Version9_featuresE, align 8 %7 = and i64 %6, 8589934592 - %8 = icmp ne i64 %7, 0 - %9 = icmp sgt i32 %4, 1 - %or.cond.not = or i1 %9, %8 - %spec.store.select = select i1 %or.cond.not, i32 %4, i32 2 + %.not = icmp eq i64 %7, 0 + %8 = tail call i32 @llvm.smax.i32(i32 %4, i32 2) + %spec.store.select = select i1 %.not, i32 %8, i32 %4 tail call void @_ZN9Assembler7evpsraqE11XMMRegisterS0_ii(ptr noundef nonnull align 8 dereferenceable(40) %0, i32 %1, i32 %2, i32 noundef %3, i32 noundef %spec.store.select) #18 ret void } @@ -36238,6 +36236,9 @@ declare i64 @llvm.ctlz.i64(i64, i1 immarg) #12 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.fshl.i32(i32, i32, i32) #13 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i32 @llvm.smax.i32(i32, i32) #13 + ; Function Attrs: nofree nounwind declare noundef i32 @puts(ptr noundef readonly captures(none)) local_unnamed_addr #14 diff --git a/bench/openssl/optimized/ca_internals_test-bin-ca.ll b/bench/openssl/optimized/ca_internals_test-bin-ca.ll index 921078e5042..298d45fcbb6 100644 --- a/bench/openssl/optimized/ca_internals_test-bin-ca.ll +++ b/bench/openssl/optimized/ca_internals_test-bin-ca.ll @@ -1948,17 +1948,17 @@ for.body914: ; preds = %for.body914.lr.ph, %call917 = call ptr @X509_get0_serialNumber(ptr noundef %call916) #12 %call918 = call ptr @ASN1_STRING_get0_data(ptr noundef %call917) #12 %call919 = call i32 @ASN1_STRING_length(ptr noundef %call917) #12 - %141 = call i32 @llvm.smax.i32(i32 %call919, i32 1) - %mul = shl nuw i32 %141, 1 - %add923 = add i32 %mul, 5 - %conv926 = sext i32 %add923 to i64 + %cond = call i32 @llvm.smax.i32(i32 %call919, i32 1) + %mul = shl nuw nsw i32 %cond, 1 + %narrow = add nuw i32 %mul, 5 + %conv926 = sext i32 %narrow to i64 %add927 = add i64 %call904, %conv926 %cmp928 = icmp ugt i64 %add927, 4096 br i1 %cmp928, label %if.then930, label %if.end932 if.then930: ; preds = %for.body914 - %142 = load ptr, ptr @bio_err, align 8 - %call931 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %142, ptr noundef nonnull @.str.208) #12 + %141 = load ptr, ptr @bio_err, align 8 + %call931 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %141, ptr noundef nonnull @.str.208) #12 br label %if.then1233 if.end932: ; preds = %for.body914 @@ -1969,20 +1969,20 @@ for.body939: ; preds = %if.end932, %for.bod %n.0742 = phi ptr [ %incdec.ptr948, %for.body939 ], [ %add.ptr, %if.end932 ] %psn.0741 = phi ptr [ %incdec.ptr951, %for.body939 ], [ %call918, %if.end932 ] %j.1740 = phi i32 [ %inc950, %for.body939 ], [ 0, %if.end932 ] - %143 = load i8, ptr %psn.0741, align 1 - %144 = lshr i8 %143, 4 - %idxprom941 = zext nneg i8 %144 to i64 + %142 = load i8, ptr %psn.0741, align 1 + %143 = lshr i8 %142, 4 + %idxprom941 = zext nneg i8 %143 to i64 %arrayidx942 = getelementptr inbounds nuw [17 x i8], ptr @ca_main.HEX_DIGITS, i64 0, i64 %idxprom941 - %145 = load i8, ptr %arrayidx942, align 1 + %144 = load i8, ptr %arrayidx942, align 1 %incdec.ptr943 = getelementptr inbounds nuw i8, ptr %n.0742, i64 1 - store i8 %145, ptr %n.0742, align 1 - %146 = load i8, ptr %psn.0741, align 1 - %147 = and i8 %146, 15 - %idxprom946 = zext nneg i8 %147 to i64 + store i8 %144, ptr %n.0742, align 1 + %145 = load i8, ptr %psn.0741, align 1 + %146 = and i8 %145, 15 + %idxprom946 = zext nneg i8 %146 to i64 %arrayidx947 = getelementptr inbounds nuw [17 x i8], ptr @ca_main.HEX_DIGITS, i64 0, i64 %idxprom946 - %148 = load i8, ptr %arrayidx947, align 1 + %147 = load i8, ptr %arrayidx947, align 1 %incdec.ptr948 = getelementptr inbounds nuw i8, ptr %n.0742, i64 2 - store i8 %148, ptr %incdec.ptr943, align 1 + store i8 %147, ptr %incdec.ptr943, align 1 %inc950 = add nuw nsw i32 %j.1740, 1 %incdec.ptr951 = getelementptr inbounds nuw i8, ptr %psn.0741, i64 1 %exitcond970.not = icmp eq i32 %inc950, %call919 @@ -2007,8 +2007,8 @@ if.end956: ; preds = %for.body939, %if.el br i1 %tobool455.not, label %if.end965, label %if.then962 if.then962: ; preds = %if.end956 - %149 = load ptr, ptr @bio_err, align 8 - %call964 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %149, ptr noundef nonnull @.str.209, ptr noundef nonnull %new_cert) #12 + %148 = load ptr, ptr @bio_err, align 8 + %call964 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %148, ptr noundef nonnull @.str.209, ptr noundef nonnull %new_cert) #12 br label %if.end965 if.end965: ; preds = %if.then962, %if.end956 @@ -2062,8 +2062,8 @@ if.end993: ; preds = %land.lhs.true989, % br i1 %tobool995.not, label %if.then1233, label %if.end997 if.end997: ; preds = %if.end993 - %150 = load ptr, ptr @bio_err, align 8 - %call998 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %150, ptr noundef nonnull @.str.211) #12 + %149 = load ptr, ptr @bio_err, align 8 + %call998 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %149, ptr noundef nonnull @.str.211) #12 br label %if.end1000 if.end1000: ; preds = %for.end982, %if.end997, %if.end578 @@ -2088,8 +2088,8 @@ if.then1010: ; preds = %if.then1002, %if.en br i1 %tobool1013.not, label %if.then1014, label %if.end1017 if.then1014: ; preds = %if.then1010 - %151 = load ptr, ptr @bio_err, align 8 - %call1015 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %151, ptr noundef nonnull @.str.213, ptr noundef nonnull %crl_ext.2461) #12 + %150 = load ptr, ptr @bio_err, align 8 + %call1015 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %150, ptr noundef nonnull @.str.213, ptr noundef nonnull %crl_ext.2461) #12 br label %if.then1233 if.end1017: ; preds = %if.then1010, %if.end1007 @@ -2105,16 +2105,16 @@ if.then1021: ; preds = %if.end1017 br i1 %cmp1023, label %if.then1025, label %if.end1028 if.then1025: ; preds = %if.then1021 - %152 = load ptr, ptr @bio_err, align 8 - %call1026 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %152, ptr noundef nonnull @.str.215) #12 + %151 = load ptr, ptr @bio_err, align 8 + %call1026 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %151, ptr noundef nonnull @.str.215) #12 br label %if.then1233 if.end1028: ; preds = %if.then1021, %if.end1017 %crlnumber.2 = phi ptr [ %call1022, %if.then1021 ], [ null, %if.end1017 ] - %153 = load i64, ptr %crldays, align 8 - %tobool1029 = icmp ne i64 %153, 0 - %154 = load i64, ptr %crlhours, align 8 - %tobool1031 = icmp ne i64 %154, 0 + %152 = load i64, ptr %crldays, align 8 + %tobool1029 = icmp ne i64 %152, 0 + %153 = load i64, ptr %crlhours, align 8 + %tobool1031 = icmp ne i64 %153, 0 %or.cond10 = select i1 %tobool1029, i1 true, i1 %tobool1031 %tobool1033 = icmp ne i64 %crlsec.0, 0 %or.cond11 = select i1 %or.cond10, i1 true, i1 %tobool1033 @@ -2143,28 +2143,28 @@ if.then1041: ; preds = %if.end1038 br label %if.end1043 if.end1043: ; preds = %if.end1038.if.end1043_crit_edge, %if.then1041, %if.end1028 - %155 = phi i64 [ %.pre972, %if.end1038.if.end1043_crit_edge ], [ 0, %if.then1041 ], [ %154, %if.end1028 ] + %154 = phi i64 [ %.pre972, %if.end1038.if.end1043_crit_edge ], [ 0, %if.then1041 ], [ %153, %if.end1028 ] %cmp1044 = icmp eq ptr %crl_nextupdate.0, null - %156 = load i64, ptr %crldays, align 8 - %cmp1047 = icmp eq i64 %156, 0 + %155 = load i64, ptr %crldays, align 8 + %cmp1047 = icmp eq i64 %155, 0 %or.cond12 = select i1 %cmp1044, i1 %cmp1047, i1 false - %cmp1050 = icmp eq i64 %155, 0 + %cmp1050 = icmp eq i64 %154, 0 %or.cond13 = select i1 %or.cond12, i1 %cmp1050, i1 false %cmp1053 = icmp eq i64 %crlsec.0, 0 %or.cond14 = select i1 %or.cond13, i1 %cmp1053, i1 false br i1 %or.cond14, label %if.then1055, label %if.end1057 if.then1055: ; preds = %if.end1043 - %157 = load ptr, ptr @bio_err, align 8 - %call1056 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %157, ptr noundef nonnull @.str.218) #12 + %156 = load ptr, ptr @bio_err, align 8 + %call1056 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %156, ptr noundef nonnull @.str.218) #12 br label %if.then1233 if.end1057: ; preds = %if.end1043 br i1 %tobool455.not, label %if.end1061, label %if.then1059 if.then1059: ; preds = %if.end1057 - %158 = load ptr, ptr @bio_err, align 8 - %call1060 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %158, ptr noundef nonnull @.str.219) #12 + %157 = load ptr, ptr @bio_err, align 8 + %call1060 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %157, ptr noundef nonnull @.str.219) #12 br label %if.end1061 if.end1061: ; preds = %if.then1059, %if.end1057 @@ -2186,40 +2186,40 @@ if.end1073: ; preds = %if.end1068 br i1 %tobool1075.not, label %if.then1076, label %if.end1078 if.then1076: ; preds = %if.end1073 - %159 = load ptr, ptr @bio_err, align 8 - %call1077 = call i32 @BIO_puts(ptr noundef %159, ptr noundef nonnull @.str.220) #12 + %158 = load ptr, ptr @bio_err, align 8 + %call1077 = call i32 @BIO_puts(ptr noundef %158, ptr noundef nonnull @.str.220) #12 br label %if.then1233 if.end1078: ; preds = %if.end1073 - %160 = load i64, ptr %crldays, align 8 - %161 = load i64, ptr %crlhours, align 8 - %call1079 = call i32 @set_crl_nextupdate(ptr noundef nonnull %call1064, ptr noundef %crl_nextupdate.0, i64 noundef %160, i64 noundef %161, i64 noundef %crlsec.0) #12 + %159 = load i64, ptr %crldays, align 8 + %160 = load i64, ptr %crlhours, align 8 + %call1079 = call i32 @set_crl_nextupdate(ptr noundef nonnull %call1064, ptr noundef %crl_nextupdate.0, i64 noundef %159, i64 noundef %160, i64 noundef %crlsec.0) #12 %tobool1080.not = icmp eq i32 %call1079, 0 br i1 %tobool1080.not, label %if.then1081, label %for.cond1084.preheader for.cond1084.preheader: ; preds = %if.end1078 - %162 = load ptr, ptr %db380, align 8 - %data1086746 = getelementptr inbounds nuw i8, ptr %162, i64 8 - %163 = load ptr, ptr %data1086746, align 8 - %call.i436747 = call i32 @OPENSSL_sk_num(ptr noundef %163) #12 + %161 = load ptr, ptr %db380, align 8 + %data1086746 = getelementptr inbounds nuw i8, ptr %161, i64 8 + %162 = load ptr, ptr %data1086746, align 8 + %call.i436747 = call i32 @OPENSSL_sk_num(ptr noundef %162) #12 %cmp1088748 = icmp sgt i32 %call.i436747, 0 br i1 %cmp1088748, label %for.body1090, label %for.end1128 if.then1081: ; preds = %if.end1078 - %164 = load ptr, ptr @bio_err, align 8 - %call1082 = call i32 @BIO_puts(ptr noundef %164, ptr noundef nonnull @.str.221) #12 + %163 = load ptr, ptr @bio_err, align 8 + %call1082 = call i32 @BIO_puts(ptr noundef %163, ptr noundef nonnull @.str.221) #12 br label %if.then1233 for.body1090: ; preds = %for.cond1084.preheader, %for.inc1126 %crl_v2.0750 = phi i32 [ %crl_v2.2, %for.inc1126 ], [ 0, %for.cond1084.preheader ] %i.3749 = phi i32 [ %inc1127, %for.inc1126 ], [ 0, %for.cond1084.preheader ] - %165 = load ptr, ptr %db380, align 8 - %data1092 = getelementptr inbounds nuw i8, ptr %165, i64 8 - %166 = load ptr, ptr %data1092, align 8 - %call.i437 = call ptr @OPENSSL_sk_value(ptr noundef %166, i32 noundef %i.3749) #12 - %167 = load ptr, ptr %call.i437, align 8 - %168 = load i8, ptr %167, align 1 - %cmp1097 = icmp eq i8 %168, 82 + %164 = load ptr, ptr %db380, align 8 + %data1092 = getelementptr inbounds nuw i8, ptr %164, i64 8 + %165 = load ptr, ptr %data1092, align 8 + %call.i437 = call ptr @OPENSSL_sk_value(ptr noundef %165, i32 noundef %i.3749) #12 + %166 = load ptr, ptr %call.i437, align 8 + %167 = load i8, ptr %166, align 1 + %cmp1097 = icmp eq i8 %167, 82 br i1 %cmp1097, label %if.then1099, label %for.inc1126 if.then1099: ; preds = %for.body1090 @@ -2229,8 +2229,8 @@ if.then1099: ; preds = %for.body1090 if.end1104: ; preds = %if.then1099 %arrayidx1105 = getelementptr inbounds nuw i8, ptr %call.i437, i64 16 - %169 = load ptr, ptr %arrayidx1105, align 8 - %call1106 = call fastcc i32 @make_revoked(ptr noundef nonnull %call1100, ptr noundef %169) + %168 = load ptr, ptr %arrayidx1105, align 8 + %call1106 = call fastcc i32 @make_revoked(ptr noundef nonnull %call1100, ptr noundef %168) switch i32 %call1106, label %if.end1113 [ i32 0, label %if.then1233 i32 2, label %if.then1112 @@ -2242,16 +2242,16 @@ if.then1112: ; preds = %if.end1104 if.end1113: ; preds = %if.end1104, %if.then1112 %crl_v2.1 = phi i32 [ 1, %if.then1112 ], [ %crl_v2.0750, %if.end1104 ] %arrayidx1114 = getelementptr inbounds nuw i8, ptr %call.i437, i64 24 - %170 = load ptr, ptr %arrayidx1114, align 8 - %call1115 = call i32 @BN_hex2bn(ptr noundef nonnull %serial, ptr noundef %170) #12 + %169 = load ptr, ptr %arrayidx1114, align 8 + %call1115 = call i32 @BN_hex2bn(ptr noundef nonnull %serial, ptr noundef %169) #12 %tobool1116.not = icmp eq i32 %call1115, 0 br i1 %tobool1116.not, label %if.then1233, label %if.end1118 if.end1118: ; preds = %if.end1113 + %170 = load ptr, ptr %serial, align 8 + %call1119 = call ptr @BN_to_ASN1_INTEGER(ptr noundef %170, ptr noundef null) #12 %171 = load ptr, ptr %serial, align 8 - %call1119 = call ptr @BN_to_ASN1_INTEGER(ptr noundef %171, ptr noundef null) #12 - %172 = load ptr, ptr %serial, align 8 - call void @BN_free(ptr noundef %172) #12 + call void @BN_free(ptr noundef %171) #12 store ptr null, ptr %serial, align 8 %tobool1120.not = icmp eq ptr %call1119, null br i1 %tobool1120.not, label %if.then1233, label %if.end1122 @@ -2265,25 +2265,25 @@ if.end1122: ; preds = %if.end1118 for.inc1126: ; preds = %for.body1090, %if.end1122 %crl_v2.2 = phi i32 [ %crl_v2.1, %if.end1122 ], [ %crl_v2.0750, %for.body1090 ] %inc1127 = add nuw nsw i32 %i.3749, 1 - %173 = load ptr, ptr %db380, align 8 - %data1086 = getelementptr inbounds nuw i8, ptr %173, i64 8 - %174 = load ptr, ptr %data1086, align 8 - %call.i436 = call i32 @OPENSSL_sk_num(ptr noundef %174) #12 + %172 = load ptr, ptr %db380, align 8 + %data1086 = getelementptr inbounds nuw i8, ptr %172, i64 8 + %173 = load ptr, ptr %data1086, align 8 + %call.i436 = call i32 @OPENSSL_sk_num(ptr noundef %173) #12 %cmp1088 = icmp slt i32 %inc1127, %call.i436 br i1 %cmp1088, label %for.body1090, label %for.end1128.loopexit, !llvm.loop !12 for.end1128.loopexit: ; preds = %for.inc1126 - %175 = icmp ne i32 %crl_v2.2, 0 + %174 = icmp ne i32 %crl_v2.2, 0 br label %for.end1128 for.end1128: ; preds = %for.end1128.loopexit, %for.cond1084.preheader - %crl_v2.0.lcssa = phi i1 [ false, %for.cond1084.preheader ], [ %175, %for.end1128.loopexit ] + %crl_v2.0.lcssa = phi i1 [ false, %for.cond1084.preheader ], [ %174, %for.end1128.loopexit ] %call1129 = call i32 @X509_CRL_sort(ptr noundef nonnull %call1064) #12 br i1 %tobool455.not, label %if.end1133, label %if.then1131 if.then1131: ; preds = %for.end1128 - %176 = load ptr, ptr @bio_err, align 8 - %call1132 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %176, ptr noundef nonnull @.str.222) #12 + %175 = load ptr, ptr @bio_err, align 8 + %call1132 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %175, ptr noundef nonnull @.str.222) #12 br label %if.end1133 if.end1133: ; preds = %if.then1131, %for.end1128 @@ -2301,8 +2301,8 @@ if.then1142: ; preds = %if.then1139 br i1 %tobool1144.not, label %if.then1145, label %if.end1148 if.then1145: ; preds = %if.then1142 - %177 = load ptr, ptr @bio_err, align 8 - %call1146 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %177, ptr noundef nonnull @.str.223, ptr noundef nonnull %crl_ext.2462) #12 + %176 = load ptr, ptr @bio_err, align 8 + %call1146 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %176, ptr noundef nonnull @.str.223, ptr noundef nonnull %crl_ext.2462) #12 br label %if.then1233 if.end1148: ; preds = %if.then1142, %if.then1139 @@ -2370,14 +2370,14 @@ if.then1201: ; preds = %if.end1199 br i1 %cmp1202, label %if.then1204, label %if.else1206 if.then1204: ; preds = %if.then1201 - %178 = load ptr, ptr @bio_err, align 8 - %call1205 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %178, ptr noundef nonnull @.str.224) #12 + %177 = load ptr, ptr @bio_err, align 8 + %call1205 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %177, ptr noundef nonnull @.str.224) #12 br label %if.then1233 if.else1206: ; preds = %if.then1201 - %179 = load i32, ptr %informat, align 4 - %180 = load ptr, ptr %passin, align 8 - %call1207 = call ptr @load_cert_pass(ptr noundef nonnull %infile.0, i32 noundef %179, i32 noundef 1, ptr noundef %180, ptr noundef nonnull @.str.225) #12 + %178 = load i32, ptr %informat, align 4 + %179 = load ptr, ptr %passin, align 8 + %call1207 = call ptr @load_cert_pass(ptr noundef nonnull %infile.0, i32 noundef %178, i32 noundef 1, ptr noundef %179, ptr noundef nonnull @.str.225) #12 %cmp1208 = icmp eq ptr %call1207, null br i1 %cmp1208, label %if.then1233, label %if.end1211 @@ -2400,8 +2400,8 @@ if.end1224: ; preds = %if.end1220 br i1 %tobool1226.not, label %if.then1233, label %if.end1228 if.end1228: ; preds = %if.end1224 - %181 = load ptr, ptr @bio_err, align 8 - %call1229 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %181, ptr noundef nonnull @.str.211) #12 + %180 = load ptr, ptr @bio_err, align 8 + %call1229 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %180, ptr noundef nonnull @.str.211) #12 br label %if.end1234 if.then1233: ; preds = %if.end95, %lor.lhs.false98, %if.end80, %lor.lhs.false, %sw.bb57, %sw.bb51, %for.body825, %if.end965, %if.then1099, %if.end1118, %if.end1113, %if.end1104, %end_of_options, %if.then219, %if.then228, %if.end230, %if.then239, %if.end235, %land.lhs.true245, %if.end259, %land.lhs.true275, %if.end280, %if.then359, %if.then365, %if.end368, %if.then377, %if.then397, %if.then433, %if.then446, %if.then417, %if.then410, %if.end464, %if.then479, %land.lhs.true600, %if.then689, %if.then700, %if.then729, %if.then735, %if.then740, %if.then768, %if.then796, %if.then848, %if.then842, %if.then930, %if.then977, %if.then1025, %if.then1055, %if.end1061, %if.end1183, %if.then1204, %if.else1206, %if.end1211, %if.end1224, %if.end1220, %land.lhs.true1194, %if.end1179, %land.lhs.true1175, %if.then1167, %if.end1155, %if.then1151, %if.then1145, %if.then1081, %if.then1076, %if.end1068, %if.then1014, %if.end993, %land.lhs.true989, %if.end895, %land.lhs.true891, %if.then817, %if.then806, %if.then789, %if.then778, %if.then761, %if.then750, %if.then707, %if.else716, %if.then673, %if.then656, %if.then626, %if.then641, %if.else614, %land.lhs.true554, %if.then572, %if.end493, %if.else489, %if.then347, %if.then337, %if.then327, %if.then288, %if.then256, %if.then195, %if.end184, %if.end180, %land.lhs.true, %opthelp, %if.then506, %lookup_conf.exit.thread, %if.then1167.thread @@ -2416,8 +2416,8 @@ if.then1233: ; preds = %if.end95, %lor.lhs. %pkey.0.ph = phi ptr [ %call260, %if.then1167.thread ], [ null, %lookup_conf.exit.thread ], [ %call260, %if.then506 ], [ null, %opthelp ], [ null, %land.lhs.true ], [ null, %if.end180 ], [ null, %if.end184 ], [ null, %if.then195 ], [ null, %if.then256 ], [ %call260, %if.then288 ], [ %call260, %if.then327 ], [ %call260, %if.then337 ], [ %call260, %if.then347 ], [ %call260, %if.else489 ], [ %call260, %if.end493 ], [ %call260, %if.then572 ], [ %call260, %land.lhs.true554 ], [ %call260, %if.else614 ], [ %call260, %if.then641 ], [ %call260, %if.then626 ], [ %call260, %if.then656 ], [ %call260, %if.then673 ], [ %call260, %if.else716 ], [ %call260, %if.then707 ], [ %call260, %if.then750 ], [ %call260, %if.then761 ], [ %call260, %if.then778 ], [ %call260, %if.then789 ], [ %call260, %if.then806 ], [ %call260, %if.then817 ], [ %call260, %land.lhs.true891 ], [ %call260, %if.end895 ], [ %call260, %land.lhs.true989 ], [ %call260, %if.end993 ], [ %call260, %if.then1014 ], [ %call260, %if.end1068 ], [ %call260, %if.then1076 ], [ %call260, %if.then1081 ], [ %call260, %if.then1145 ], [ %call260, %if.then1151 ], [ %call260, %if.end1155 ], [ %call260, %if.then1167 ], [ %call260, %land.lhs.true1175 ], [ %call260, %if.end1179 ], [ %call260, %land.lhs.true1194 ], [ %call260, %if.end1220 ], [ %call260, %if.end1224 ], [ %call260, %if.end1211 ], [ %call260, %if.else1206 ], [ %call260, %if.then1204 ], [ %call260, %if.end1183 ], [ %call260, %if.end1061 ], [ %call260, %if.then1055 ], [ %call260, %if.then1025 ], [ %call260, %if.then977 ], [ %call260, %if.then930 ], [ %call260, %if.then842 ], [ %call260, %if.then848 ], [ %call260, %if.then796 ], [ %call260, %if.then768 ], [ %call260, %if.then740 ], [ %call260, %if.then735 ], [ %call260, %if.then729 ], [ %call260, %if.then700 ], [ %call260, %if.then689 ], [ %call260, %land.lhs.true600 ], [ %call260, %if.then479 ], [ %call260, %if.end464 ], [ %call260, %if.then410 ], [ %call260, %if.then417 ], [ %call260, %if.then446 ], [ %call260, %if.then433 ], [ %call260, %if.then397 ], [ %call260, %if.then377 ], [ %call260, %if.end368 ], [ %call260, %if.then365 ], [ %call260, %if.then359 ], [ %call260, %if.end280 ], [ %call260, %land.lhs.true275 ], [ null, %if.end259 ], [ null, %land.lhs.true245 ], [ null, %if.end235 ], [ null, %if.then239 ], [ null, %if.end230 ], [ null, %if.then228 ], [ null, %if.then219 ], [ null, %end_of_options ], [ %call260, %if.end1104 ], [ %call260, %if.end1113 ], [ %call260, %if.end1118 ], [ %call260, %if.then1099 ], [ %call260, %if.end965 ], [ %call260, %for.body825 ], [ null, %sw.bb51 ], [ null, %sw.bb57 ], [ null, %lor.lhs.false ], [ null, %if.end80 ], [ null, %lor.lhs.false98 ], [ null, %if.end95 ] %crlnumber.0.ph = phi ptr [ %crlnumber.2, %if.then1167.thread ], [ null, %lookup_conf.exit.thread ], [ null, %if.then506 ], [ null, %opthelp ], [ null, %land.lhs.true ], [ null, %if.end180 ], [ null, %if.end184 ], [ null, %if.then195 ], [ null, %if.then256 ], [ null, %if.then288 ], [ null, %if.then327 ], [ null, %if.then337 ], [ null, %if.then347 ], [ null, %if.else489 ], [ null, %if.end493 ], [ null, %if.then572 ], [ null, %land.lhs.true554 ], [ null, %if.else614 ], [ null, %if.then641 ], [ null, %if.then626 ], [ null, %if.then656 ], [ null, %if.then673 ], [ null, %if.else716 ], [ null, %if.then707 ], [ null, %if.then750 ], [ null, %if.then761 ], [ null, %if.then778 ], [ null, %if.then789 ], [ null, %if.then806 ], [ null, %if.then817 ], [ null, %land.lhs.true891 ], [ null, %if.end895 ], [ null, %land.lhs.true989 ], [ null, %if.end993 ], [ null, %if.then1014 ], [ %crlnumber.2, %if.end1068 ], [ %crlnumber.2, %if.then1076 ], [ %crlnumber.2, %if.then1081 ], [ %crlnumber.2, %if.then1145 ], [ %crlnumber.2, %if.then1151 ], [ %crlnumber.2, %if.end1155 ], [ %crlnumber.2, %if.then1167 ], [ %crlnumber.2, %land.lhs.true1175 ], [ null, %if.end1179 ], [ null, %land.lhs.true1194 ], [ null, %if.end1220 ], [ null, %if.end1224 ], [ null, %if.end1211 ], [ null, %if.else1206 ], [ null, %if.then1204 ], [ null, %if.end1183 ], [ %crlnumber.2, %if.end1061 ], [ %crlnumber.2, %if.then1055 ], [ null, %if.then1025 ], [ null, %if.then977 ], [ null, %if.then930 ], [ null, %if.then842 ], [ null, %if.then848 ], [ null, %if.then796 ], [ null, %if.then768 ], [ null, %if.then740 ], [ null, %if.then735 ], [ null, %if.then729 ], [ null, %if.then700 ], [ null, %if.then689 ], [ null, %land.lhs.true600 ], [ null, %if.then479 ], [ null, %if.end464 ], [ null, %if.then410 ], [ null, %if.then417 ], [ null, %if.then446 ], [ null, %if.then433 ], [ null, %if.then397 ], [ null, %if.then377 ], [ null, %if.end368 ], [ null, %if.then365 ], [ null, %if.then359 ], [ null, %if.end280 ], [ null, %land.lhs.true275 ], [ null, %if.end259 ], [ null, %land.lhs.true245 ], [ null, %if.end235 ], [ null, %if.then239 ], [ null, %if.end230 ], [ null, %if.then228 ], [ null, %if.then219 ], [ null, %end_of_options ], [ %crlnumber.2, %if.end1104 ], [ %crlnumber.2, %if.end1113 ], [ %crlnumber.2, %if.end1118 ], [ %crlnumber.2, %if.then1099 ], [ null, %if.end965 ], [ null, %for.body825 ], [ null, %sw.bb51 ], [ null, %sw.bb57 ], [ null, %lor.lhs.false ], [ null, %if.end80 ], [ null, %lor.lhs.false98 ], [ null, %if.end95 ] %conf.0.ph = phi ptr [ %call150, %if.then1167.thread ], [ %call150, %lookup_conf.exit.thread ], [ %call150, %if.then506 ], [ null, %opthelp ], [ %call150, %land.lhs.true ], [ %call150, %if.end180 ], [ %call150, %if.end184 ], [ %call150, %if.then195 ], [ %call150, %if.then256 ], [ %call150, %if.then288 ], [ %call150, %if.then327 ], [ %call150, %if.then337 ], [ %call150, %if.then347 ], [ %call150, %if.else489 ], [ %call150, %if.end493 ], [ %call150, %if.then572 ], [ %call150, %land.lhs.true554 ], [ %call150, %if.else614 ], [ %call150, %if.then641 ], [ %call150, %if.then626 ], [ %call150, %if.then656 ], [ %call150, %if.then673 ], [ %call150, %if.else716 ], [ %call150, %if.then707 ], [ %call150, %if.then750 ], [ %call150, %if.then761 ], [ %call150, %if.then778 ], [ %call150, %if.then789 ], [ %call150, %if.then806 ], [ %call150, %if.then817 ], [ %call150, %land.lhs.true891 ], [ %call150, %if.end895 ], [ %call150, %land.lhs.true989 ], [ %call150, %if.end993 ], [ %call150, %if.then1014 ], [ %call150, %if.end1068 ], [ %call150, %if.then1076 ], [ %call150, %if.then1081 ], [ %call150, %if.then1145 ], [ %call150, %if.then1151 ], [ %call150, %if.end1155 ], [ %call150, %if.then1167 ], [ %call150, %land.lhs.true1175 ], [ %call150, %if.end1179 ], [ %call150, %land.lhs.true1194 ], [ %call150, %if.end1220 ], [ %call150, %if.end1224 ], [ %call150, %if.end1211 ], [ %call150, %if.else1206 ], [ %call150, %if.then1204 ], [ %call150, %if.end1183 ], [ %call150, %if.end1061 ], [ %call150, %if.then1055 ], [ %call150, %if.then1025 ], [ %call150, %if.then977 ], [ %call150, %if.then930 ], [ %call150, %if.then842 ], [ %call150, %if.then848 ], [ %call150, %if.then796 ], [ %call150, %if.then768 ], [ %call150, %if.then740 ], [ %call150, %if.then735 ], [ %call150, %if.then729 ], [ %call150, %if.then700 ], [ %call150, %if.then689 ], [ %call150, %land.lhs.true600 ], [ %call150, %if.then479 ], [ %call150, %if.end464 ], [ %call150, %if.then410 ], [ %call150, %if.then417 ], [ %call150, %if.then446 ], [ %call150, %if.then433 ], [ %call150, %if.then397 ], [ %call150, %if.then377 ], [ %call150, %if.end368 ], [ %call150, %if.then365 ], [ %call150, %if.then359 ], [ %call150, %if.end280 ], [ %call150, %land.lhs.true275 ], [ %call150, %if.end259 ], [ %call150, %land.lhs.true245 ], [ %call150, %if.end235 ], [ %call150, %if.then239 ], [ %call150, %if.end230 ], [ %call150, %if.then228 ], [ %call150, %if.then219 ], [ null, %end_of_options ], [ %call150, %if.end1104 ], [ %call150, %if.end1113 ], [ %call150, %if.end1118 ], [ %call150, %if.then1099 ], [ %call150, %if.end965 ], [ %call150, %for.body825 ], [ null, %sw.bb51 ], [ null, %sw.bb57 ], [ null, %lor.lhs.false ], [ null, %if.end80 ], [ null, %lor.lhs.false98 ], [ null, %if.end95 ] - %182 = load ptr, ptr @bio_err, align 8 - call void @ERR_print_errors(ptr noundef %182) #12 + %181 = load ptr, ptr @bio_err, align 8 + call void @ERR_print_errors(ptr noundef %181) #12 br label %if.end1234 if.end1234: ; preds = %sw.bb3, %if.then870, %if.then882, %if.end1228, %if.end1199, %if.then1233 @@ -2437,19 +2437,19 @@ if.end1234: ; preds = %sw.bb3, %if.then870 call void @BIO_free_all(ptr noundef null) #12 call void @BIO_free_all(ptr noundef null) #12 call void @OSSL_STACK_OF_X509_free(ptr noundef %cert_sk.0489) #12 - %183 = load ptr, ptr %passin, align 8 - call void @cleanse(ptr noundef %183) #12 + %182 = load ptr, ptr %passin, align 8 + call void @cleanse(ptr noundef %182) #12 %tobool1235.not = icmp eq i32 %free_passin.0493, 0 br i1 %tobool1235.not, label %if.end1237, label %if.then1236 if.then1236: ; preds = %if.end1234 - %184 = load ptr, ptr %passin, align 8 - call void @CRYPTO_free(ptr noundef %184, ptr noundef nonnull @.str.198, i32 noundef 1315) #12 + %183 = load ptr, ptr %passin, align 8 + call void @CRYPTO_free(ptr noundef %183, ptr noundef nonnull @.str.198, i32 noundef 1315) #12 br label %if.end1237 if.end1237: ; preds = %if.then1236, %if.end1234 - %185 = load ptr, ptr %serial, align 8 - call void @BN_free(ptr noundef %185) #12 + %184 = load ptr, ptr %serial, align 8 + call void @BN_free(ptr noundef %184) #12 call void @BN_free(ptr noundef %crlnumber.0505) #12 call void @free_index(ptr noundef %db.0495) #12 call void @OPENSSL_sk_free(ptr noundef %sigopts.2485) #12 @@ -2458,8 +2458,8 @@ if.end1237: ; preds = %if.then1236, %if.en call void @X509_free(ptr noundef %x509.0499) #12 call void @X509_CRL_free(ptr noundef %crl.0491) #12 call void @NCONF_free(ptr noundef %conf.0507) #12 - %186 = load ptr, ptr @extfile_conf, align 8 - call void @NCONF_free(ptr noundef %186) #12 + %185 = load ptr, ptr @extfile_conf, align 8 + call void @NCONF_free(ptr noundef %185) #12 call void @release_engine(ptr noundef %e.0) #12 ret i32 %ret.0497 } diff --git a/bench/openssl/optimized/libdefault-lib-crngt.ll b/bench/openssl/optimized/libdefault-lib-crngt.ll index aafba0bf99d..a9b3316ef28 100644 --- a/bench/openssl/optimized/libdefault-lib-crngt.ll +++ b/bench/openssl/optimized/libdefault-lib-crngt.ll @@ -183,7 +183,7 @@ for.body: ; preds = %for.body.lr.ph, %if %t.071 = phi i64 [ %spec.select, %for.body.lr.ph ], [ %sub, %if.end78 ] %entp.070 = phi ptr [ %call25, %for.body.lr.ph ], [ %add.ptr, %if.end78 ] %cmp41 = icmp ugt i64 %t.071, 15 - %cond = select i1 %cmp41, i64 16, i64 %t.071 + %cond = call i64 @llvm.umin.i64(i64 %t.071, i64 16) %cond49 = select i1 %cmp41, ptr %entp.070, ptr %buf %9 = load ptr, ptr %provctx, align 8 %10 = load ptr, ptr %md51, align 8 @@ -248,7 +248,7 @@ prov_crngt_compare_previous.exit.thread: ; preds = %if.end70 if.end78: ; preds = %if.end70 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %call1, ptr nonnull align 16 %md, i64 %.pre82, i1 false) - %add.ptr = getelementptr inbounds i8, ptr %entp.070, i64 %cond + %add.ptr = getelementptr inbounds nuw i8, ptr %entp.070, i64 %cond %sub = sub i64 %t.071, %cond %cmp39.not = icmp eq i64 %sub, 0 br i1 %cmp39.not, label %for.end, label %for.body, !llvm.loop !4 @@ -322,24 +322,27 @@ declare void @ossl_prov_cleanup_entropy(ptr noundef, ptr noundef, i64 noundef) l declare void @ossl_set_error_state(ptr noundef) local_unnamed_addr #1 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i64 @llvm.umin.i64(i64, i64) #3 + ; Function Attrs: nofree nounwind willreturn memory(argmem: read) -declare i32 @bcmp(ptr captures(none), ptr captures(none), i64) local_unnamed_addr #3 +declare i32 @bcmp(ptr captures(none), ptr captures(none), i64) local_unnamed_addr #4 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #4 +declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #5 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #4 +declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #5 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.umax.i64(i64, i64) #5 +declare i64 @llvm.umax.i64(i64, i64) #3 attributes #0 = { nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #3 = { nofree nounwind willreturn memory(argmem: read) } -attributes #4 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #3 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #4 = { nofree nounwind willreturn memory(argmem: read) } +attributes #5 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #6 = { nounwind } !llvm.module.flags = !{!0, !1, !2, !3} diff --git a/bench/openusd/optimized/faceSurface.cpp.ll b/bench/openusd/optimized/faceSurface.cpp.ll index 6e3bc567ebb..961f09cbff9 100644 --- a/bench/openusd/optimized/faceSurface.cpp.ll +++ b/bench/openusd/optimized/faceSurface.cpp.ll @@ -1179,9 +1179,9 @@ define noundef float @_ZN10OpenSubdiv6v3_6_03Bfr9fvar_plus21getDependentSharpnes %9 = getelementptr inbounds nuw i8, ptr %0, i64 154 %10 = load i16, ptr %9, align 2 %11 = sext i16 %10 to i32 - br i1 %.not.i.i.i.i, label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread47, label %23 + br i1 %.not.i.i.i.i, label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread46, label %23 -_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread47: ; preds = %2 +_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread46: ; preds = %2 %12 = sub nsw i32 %11, %5 %13 = getelementptr inbounds nuw i8, ptr %0, i64 2 %14 = load i16, ptr %13, align 2 @@ -1239,9 +1239,9 @@ _ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE. br i1 %44, label %39, label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread, !llvm.loop !34 _ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread.sink.split: ; preds = %24, %27 - %.sink87 = phi i32 [ %34, %27 ], [ %11, %24 ] + %.sink86 = phi i32 [ %34, %27 ], [ %11, %24 ] %.sink = phi ptr [ %29, %27 ], [ %26, %24 ] - %45 = shl nsw i32 %.sink87, 1 + %45 = shl nsw i32 %.sink86, 1 %46 = sext i32 %45 to i64 %47 = getelementptr inbounds i16, ptr %.sink, i64 %46 %48 = load i16, ptr %47, align 2 @@ -1249,7 +1249,7 @@ _ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE. br label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread _ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread: ; preds = %39, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread.sink.split, %35 - %.09.i.i46 = phi i32 [ %11, %35 ], [ %49, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread.sink.split ], [ %.0.i.i, %39 ] + %.09.i.i45 = phi i32 [ %11, %35 ], [ %49, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread.sink.split ], [ %.0.i.i, %39 ] %.in = getelementptr inbounds nuw i8, ptr %1, i64 4 %50 = load i16, ptr %.in, align 4 switch i16 %50, label %63 [ @@ -1277,31 +1277,31 @@ _ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE. %64 = icmp sgt i16 %50, 0 %65 = getelementptr inbounds nuw i8, ptr %0, i64 168 %66 = load ptr, ptr %65, align 8 - br i1 %64, label %.lr.ph.i.i29.preheader, label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread + br i1 %64, label %.lr.ph.i.i28.preheader, label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread -.lr.ph.i.i29.preheader: ; preds = %63 +.lr.ph.i.i28.preheader: ; preds = %63 %67 = zext nneg i16 %50 to i32 - br label %.lr.ph.i.i29 + br label %.lr.ph.i.i28 -.lr.ph.i.i29: ; preds = %.lr.ph.i.i29.preheader, %.lr.ph.i.i29 - %.014.i.i30 = phi i32 [ %.0.i.i33, %.lr.ph.i.i29 ], [ %11, %.lr.ph.i.i29.preheader ] - %.0813.i.i31 = phi i32 [ %72, %.lr.ph.i.i29 ], [ %67, %.lr.ph.i.i29.preheader ] - %68 = shl nsw i32 %.014.i.i30, 1 +.lr.ph.i.i28: ; preds = %.lr.ph.i.i28.preheader, %.lr.ph.i.i28 + %.014.i.i29 = phi i32 [ %.0.i.i32, %.lr.ph.i.i28 ], [ %11, %.lr.ph.i.i28.preheader ] + %.0813.i.i30 = phi i32 [ %72, %.lr.ph.i.i28 ], [ %67, %.lr.ph.i.i28.preheader ] + %68 = shl nsw i32 %.014.i.i29, 1 %69 = or disjoint i32 %68, 1 %70 = sext i32 %69 to i64 %71 = getelementptr inbounds i16, ptr %66, i64 %70 - %72 = add nsw i32 %.0813.i.i31, -1 - %.0.in.i.i32 = load i16, ptr %71, align 2 - %.0.i.i33 = sext i16 %.0.in.i.i32 to i32 - %73 = icmp samesign ugt i32 %.0813.i.i31, 1 - br i1 %73, label %.lr.ph.i.i29, label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread, !llvm.loop !35 + %72 = add nsw i32 %.0813.i.i30, -1 + %.0.in.i.i31 = load i16, ptr %71, align 2 + %.0.i.i32 = sext i16 %.0.in.i.i31 to i32 + %73 = icmp samesign ugt i32 %.0813.i.i30, 1 + br i1 %73, label %.lr.ph.i.i28, label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread, !llvm.loop !35 -74: ; preds = %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread47 +74: ; preds = %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread46 %75 = add nsw i32 %17, -1 - %.pre80 = add nsw i32 %15, -1 + %.pre79 = add nsw i32 %15, -1 br label %98 -76: ; preds = %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread47 +76: ; preds = %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread46 %77 = and i16 %7, 1 %.not6.i = icmp eq i16 %77, 0 %78 = add nsw i32 %15, -1 @@ -1309,37 +1309,37 @@ _ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE. br label %98 _ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread.sink.split: ; preds = %51, %54 - %.sink94 = phi i32 [ %62, %54 ], [ %11, %51 ] - %.sink90 = phi ptr [ %56, %54 ], [ %53, %51 ] - %80 = shl nsw i32 %.sink94, 1 + %.sink93 = phi i32 [ %62, %54 ], [ %11, %51 ] + %.sink89 = phi ptr [ %56, %54 ], [ %53, %51 ] + %80 = shl nsw i32 %.sink93, 1 %81 = or disjoint i32 %80, 1 %82 = sext i32 %81 to i64 - %83 = getelementptr inbounds i16, ptr %.sink90, i64 %82 + %83 = getelementptr inbounds i16, ptr %.sink89, i64 %82 %84 = load i16, ptr %83, align 2 %85 = sext i16 %84 to i32 br label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread -_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread: ; preds = %.lr.ph.i.i29, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread.sink.split, %63 - %86 = phi ptr [ %66, %63 ], [ %.sink90, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread.sink.split ], [ %66, %.lr.ph.i.i29 ] - %.09.i.i2855 = phi i32 [ %11, %63 ], [ %85, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread.sink.split ], [ %.0.i.i33, %.lr.ph.i.i29 ] - %87 = shl nsw i32 %.09.i.i46, 1 +_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread: ; preds = %.lr.ph.i.i28, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread.sink.split, %63 + %86 = phi ptr [ %66, %63 ], [ %.sink89, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread.sink.split ], [ %66, %.lr.ph.i.i28 ] + %.09.i.i2754 = phi i32 [ %11, %63 ], [ %85, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread.sink.split ], [ %.0.i.i32, %.lr.ph.i.i28 ] + %87 = shl nsw i32 %.09.i.i45, 1 %88 = sext i32 %87 to i64 %89 = getelementptr inbounds i16, ptr %86, i64 %88 %90 = load i16, ptr %89, align 2 %91 = sext i16 %90 to i32 - %92 = shl nsw i32 %.09.i.i2855, 1 + %92 = shl nsw i32 %.09.i.i2754, 1 %93 = or disjoint i32 %92, 1 %94 = sext i32 %93 to i64 %95 = getelementptr inbounds i16, ptr %86, i64 %94 %96 = load i16, ptr %95, align 2 %97 = sext i16 %96 to i32 - %.phi.trans.insert78 = getelementptr inbounds nuw i8, ptr %0, i64 2 - %.pre79 = load i16, ptr %.phi.trans.insert78, align 2 - %.pre81 = sext i16 %.pre79 to i32 + %.phi.trans.insert77 = getelementptr inbounds nuw i8, ptr %0, i64 2 + %.pre78 = load i16, ptr %.phi.trans.insert77, align 2 + %.pre80 = sext i16 %.pre78 to i32 br label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceNextEi.exit 98: ; preds = %74, %76 - %.pre-phi = phi i32 [ %.pre80, %74 ], [ %78, %76 ] + %.pre-phi = phi i32 [ %.pre79, %74 ], [ %78, %76 ] %.0.i.ph = phi i32 [ %75, %74 ], [ %79, %76 ] %99 = icmp slt i32 %22, %.pre-phi br i1 %99, label %100, label %102 @@ -1355,13 +1355,13 @@ _ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.e br label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceNextEi.exit _ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceNextEi.exit: ; preds = %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread, %100, %102 - %.pre-phi82 = phi i32 [ %.pre81, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread ], [ %15, %100 ], [ %15, %102 ] - %105 = phi i16 [ %.pre79, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread ], [ %14, %100 ], [ %14, %102 ] - %.0.i67 = phi i32 [ %91, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread ], [ %.0.i.ph, %100 ], [ %.0.i.ph, %102 ] - %.09.i.i455265 = phi i32 [ %.09.i.i46, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread ], [ %17, %100 ], [ %17, %102 ] - %.0.i35 = phi i32 [ %97, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread ], [ %101, %100 ], [ %104, %102 ] - %.inv = icmp sgt i32 %.0.i67, -1 - %106 = tail call i32 @llvm.smax.i32(i32 %.0.i35, i32 -1) + %.pre-phi81 = phi i32 [ %.pre80, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread ], [ %15, %100 ], [ %15, %102 ] + %105 = phi i16 [ %.pre78, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread ], [ %14, %100 ], [ %14, %102 ] + %.0.i66 = phi i32 [ %91, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread ], [ %.0.i.ph, %100 ], [ %.0.i.ph, %102 ] + %.09.i.i445164 = phi i32 [ %.09.i.i45, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread ], [ %17, %100 ], [ %17, %102 ] + %.0.i34 = phi i32 [ %97, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread ], [ %101, %100 ], [ %104, %102 ] + %.inv = icmp sgt i32 %.0.i66, -1 + %106 = tail call i32 @llvm.smax.i32(i32 %.0.i34, i32 -1) %107 = icmp sgt i16 %105, 0 br i1 %107, label %.lr.ph, label %._crit_edge @@ -1369,86 +1369,86 @@ _ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceNextEi.exit: ; preds = %_ZNK10Op %108 = getelementptr inbounds nuw i8, ptr %0, i64 168 %109 = load ptr, ptr %108, align 8 %110 = and i16 %7, 1 - %.not6.i39 = icmp eq i16 %110, 0 - %111 = add nsw i32 %.pre-phi82, -1 - %112 = select i1 %.not6.i39, i32 %111, i32 -2147483648 + %.not6.i38 = icmp eq i16 %110, 0 + %111 = add nsw i32 %.pre-phi81, -1 + %112 = select i1 %.not6.i38, i32 %111, i32 -2147483648 %113 = getelementptr inbounds nuw i8, ptr %0, i64 8 %114 = load ptr, ptr %113, align 8 - %wide.trip.count76 = zext i32 %.pre-phi82 to i64 - br i1 %.not.i.i.i.i, label %.lr.ph.split.us.preheader, label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit40.preheader + %wide.trip.count75 = zext i32 %.pre-phi81 to i64 + br i1 %.not.i.i.i.i, label %.lr.ph.split.us.preheader, label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit39.preheader -_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit40.preheader: ; preds = %.lr.ph +_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit39.preheader: ; preds = %.lr.ph %115 = zext i32 %106 to i64 - %116 = zext i32 %.09.i.i455265 to i64 - br label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit40 + %116 = zext i32 %.09.i.i445164 to i64 + br label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit39 .lr.ph.split.us.preheader: ; preds = %.lr.ph - %117 = zext i32 %.09.i.i455265 to i64 + %117 = zext i32 %.09.i.i445164 to i64 %118 = zext i32 %106 to i64 br label %.lr.ph.split.us .lr.ph.split.us: ; preds = %.lr.ph.split.us.preheader, %126 - %indvars.iv73 = phi i64 [ 0, %.lr.ph.split.us.preheader ], [ %indvars.iv.next74, %126 ] - %.04369.us = phi float [ 0.000000e+00, %.lr.ph.split.us.preheader ], [ %.1.us, %126 ] - %.not.i38.us = icmp eq i64 %indvars.iv73, 0 - %119 = trunc i64 %indvars.iv73 to i32 + %indvars.iv72 = phi i64 [ 0, %.lr.ph.split.us.preheader ], [ %indvars.iv.next73, %126 ] + %.04268.us = phi float [ 0.000000e+00, %.lr.ph.split.us.preheader ], [ %.1.us, %126 ] + %.not.i37.us = icmp eq i64 %indvars.iv72, 0 + %119 = trunc i64 %indvars.iv72 to i32 %120 = add i32 %119, -1 - %.0.i37.us = select i1 %.not.i38.us, i32 %112, i32 %120 - %121 = icmp slt i32 %.0.i37.us, 0 - %.not24.us = icmp eq i64 %indvars.iv73, %117 - %.not.us = select i1 %.inv, i1 %.not24.us, i1 false + %.0.i36.us = select i1 %.not.i37.us, i32 %112, i32 %120 + %121 = icmp slt i32 %.0.i36.us, 0 + %.not23.us = icmp eq i64 %indvars.iv72, %117 + %.not.us = select i1 %.inv, i1 %.not23.us, i1 false %or.cond.us = select i1 %121, i1 true, i1 %.not.us - %.not25.us = icmp eq i64 %indvars.iv73, %118 - %or.cond26.us = select i1 %or.cond.us, i1 true, i1 %.not25.us - br i1 %or.cond26.us, label %126, label %122 + %.not24.us = icmp eq i64 %indvars.iv72, %118 + %or.cond25.us = select i1 %or.cond.us, i1 true, i1 %.not24.us + br i1 %or.cond25.us, label %126, label %122 122: ; preds = %.lr.ph.split.us - %.idx = shl nuw nsw i64 %indvars.iv73, 3 + %.idx = shl nuw nsw i64 %indvars.iv72, 3 %123 = getelementptr inbounds nuw i8, ptr %114, i64 %.idx %124 = load float, ptr %123, align 4 - %125 = fcmp olt float %.04369.us, %124 - %.sroa.speculated.us = select i1 %125, float %124, float %.04369.us + %125 = fcmp olt float %.04268.us, %124 + %.sroa.speculated.us = select i1 %125, float %124, float %.04268.us br label %126 126: ; preds = %122, %.lr.ph.split.us - %.1.us = phi float [ %.04369.us, %.lr.ph.split.us ], [ %.sroa.speculated.us, %122 ] - %indvars.iv.next74 = add nuw nsw i64 %indvars.iv73, 1 - %exitcond77.not = icmp eq i64 %indvars.iv.next74, %wide.trip.count76 - br i1 %exitcond77.not, label %._crit_edge, label %.lr.ph.split.us, !llvm.loop !36 - -_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit40: ; preds = %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit40.preheader, %135 - %indvars.iv = phi i64 [ 0, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit40.preheader ], [ %indvars.iv.next, %135 ] - %.04369 = phi float [ 0.000000e+00, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit40.preheader ], [ %.1, %135 ] + %.1.us = phi float [ %.04268.us, %.lr.ph.split.us ], [ %.sroa.speculated.us, %122 ] + %indvars.iv.next73 = add nuw nsw i64 %indvars.iv72, 1 + %exitcond76.not = icmp eq i64 %indvars.iv.next73, %wide.trip.count75 + br i1 %exitcond76.not, label %._crit_edge, label %.lr.ph.split.us, !llvm.loop !36 + +_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit39: ; preds = %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit39.preheader, %135 + %indvars.iv = phi i64 [ 0, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit39.preheader ], [ %indvars.iv.next, %135 ] + %.04268 = phi float [ 0.000000e+00, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit39.preheader ], [ %.1, %135 ] %127 = shl nuw nsw i64 %indvars.iv, 1 %128 = getelementptr inbounds nuw i16, ptr %109, i64 %127 %129 = load i16, ptr %128, align 2 %130 = icmp slt i16 %129, 0 - %.not24 = icmp eq i64 %indvars.iv, %116 - %.not = select i1 %.inv, i1 %.not24, i1 false + %.not23 = icmp eq i64 %indvars.iv, %116 + %.not = select i1 %.inv, i1 %.not23, i1 false %or.cond = select i1 %130, i1 true, i1 %.not - %.not25 = icmp eq i64 %indvars.iv, %115 - %or.cond26 = select i1 %or.cond, i1 true, i1 %.not25 - br i1 %or.cond26, label %135, label %131 + %.not24 = icmp eq i64 %indvars.iv, %115 + %or.cond25 = select i1 %or.cond, i1 true, i1 %.not24 + br i1 %or.cond25, label %135, label %131 -131: ; preds = %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit40 +131: ; preds = %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit39 %132 = getelementptr inbounds nuw float, ptr %114, i64 %127 %133 = load float, ptr %132, align 4 - %134 = fcmp olt float %.04369, %133 - %.sroa.speculated = select i1 %134, float %133, float %.04369 + %134 = fcmp olt float %.04268, %133 + %.sroa.speculated = select i1 %134, float %133, float %.04268 br label %135 -135: ; preds = %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit40, %131 - %.1 = phi float [ %.04369, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit40 ], [ %.sroa.speculated, %131 ] +135: ; preds = %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit39, %131 + %.1 = phi float [ %.04268, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit39 ], [ %.sroa.speculated, %131 ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count76 - br i1 %exitcond.not, label %._crit_edge, label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit40, !llvm.loop !36 + %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count75 + br i1 %exitcond.not, label %._crit_edge, label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit39, !llvm.loop !36 ._crit_edge: ; preds = %135, %126, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceNextEi.exit - %.043.lcssa = phi float [ 0.000000e+00, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceNextEi.exit ], [ %.1.us, %126 ], [ %.1, %135 ] + %.042.lcssa = phi float [ 0.000000e+00, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceNextEi.exit ], [ %.1.us, %126 ], [ %.1, %135 ] %136 = getelementptr inbounds nuw i8, ptr %0, i64 4 %137 = load float, ptr %136, align 4 - %138 = fcmp ogt float %.043.lcssa, %137 - %139 = select i1 %138, float %.043.lcssa, float 0.000000e+00 + %138 = fcmp ogt float %.042.lcssa, %137 + %139 = select i1 %138, float %.042.lcssa, float 0.000000e+00 ret float %139 } diff --git a/bench/php/optimized/pcre2_study.ll b/bench/php/optimized/pcre2_study.ll index 35bee07cc3f..750b6b082c2 100644 --- a/bench/php/optimized/pcre2_study.ll +++ b/bench/php/optimized/pcre2_study.ll @@ -47,7 +47,7 @@ define hidden range(i32 0, 4) i32 @_pcre2_study_8(ptr noundef %0) local_unnamed_ store i32 0, ptr %3, align 4 %24 = call fastcc i32 @set_start_bits(ptr noundef nonnull %0, ptr noundef nonnull %17, i32 noundef %.lobit, i32 noundef %.lobit86, ptr noundef %3) switch i32 %24, label %._crit_edge [ - i32 3, label %183 + i32 3, label %182 i32 1, label %25 ] @@ -389,13 +389,13 @@ define hidden range(i32 0, 4) i32 @_pcre2_study_8(ptr noundef %0) local_unnamed_ %168 = phi i32 [ %.pre, %._crit_edge ], [ %166, %.loopexit ], [ %19, %1 ] %169 = and i32 %168, 8396800 %170 = icmp eq i32 %169, 0 - br i1 %170, label %171, label %183 + br i1 %170, label %171, label %182 171: ; preds = %167 %172 = getelementptr inbounds nuw i8, ptr %0, i64 130 %173 = load i16, ptr %172, align 2 %174 = icmp ult i16 %173, 129 - br i1 %174, label %175, label %183 + br i1 %174, label %175, label %182 175: ; preds = %171 store i32 0, ptr %4, align 16 @@ -404,20 +404,19 @@ define hidden range(i32 0, 4) i32 @_pcre2_study_8(ptr noundef %0) local_unnamed_ br i1 %177, label %switch.lookup, label %178 178: ; preds = %175 - %179 = call i32 @llvm.smin.i32(i32 %176, i32 65535) - %180 = trunc i32 %179 to i16 - %181 = getelementptr inbounds nuw i8, ptr %0, i64 126 - store i16 %180, ptr %181, align 2 - br label %183 + %179 = trunc i32 %176 to i16 + %180 = getelementptr inbounds nuw i8, ptr %0, i64 126 + store i16 %179, ptr %180, align 2 + br label %182 switch.lookup: ; preds = %175 %switch.tableidx = add nsw i32 %176, 3 - %182 = sext i32 %switch.tableidx to i64 - %switch.gep = getelementptr inbounds [3 x i32], ptr @switch.table._pcre2_study_8, i64 0, i64 %182 + %181 = sext i32 %switch.tableidx to i64 + %switch.gep = getelementptr inbounds [3 x i32], ptr @switch.table._pcre2_study_8, i64 0, i64 %181 %switch.load = load i32, ptr %switch.gep, align 4 - br label %183 + br label %182 -183: ; preds = %167, %171, %178, %switch.lookup, %22 +182: ; preds = %167, %171, %178, %switch.lookup, %22 %.0 = phi i32 [ 1, %22 ], [ %switch.load, %switch.lookup ], [ 0, %178 ], [ 0, %171 ], [ 0, %167 ] ret i32 %.0 } @@ -1901,7 +1900,7 @@ set_nottype_bits.exit: ; preds = %.loopexit429, %.loo } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @find_minlength(ptr noundef %0, ptr noundef %1, ptr noundef %2, i32 noundef range(i32 0, 2) %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef nonnull %6) unnamed_addr #0 { +define internal fastcc range(i32 -2147483648, 65536) i32 @find_minlength(ptr noundef %0, ptr noundef %1, ptr noundef %2, i32 noundef range(i32 0, 2) %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef nonnull %6) unnamed_addr #0 { %8 = alloca %struct.recurse_check, align 8 %9 = getelementptr inbounds nuw i8, ptr %0, i64 96 %10 = load i32, ptr %9, align 8 @@ -1954,7 +1953,7 @@ define internal fastcc i32 @find_minlength(ptr noundef %0, ptr noundef %1, ptr n %.0352 = phi ptr [ %26, %.preheader457 ], [ %.0352.be, %.backedge ] %.1347 = phi ptr [ %spec.select439, %.preheader457 ], [ %.1347.be, %.backedge ] %32 = icmp sgt i32 %.0381, 65534 - %spec.select = select i1 %32, i32 65535, i32 %.0381 + %spec.select = call i32 @llvm.smin.i32(i32 %.0381, i32 65535) %spec.select428 = select i1 %32, ptr %.0352, ptr %.1347 %33 = load i8, ptr %spec.select428, align 1 switch i8 %33, label %.loopexit450 [ @@ -2355,7 +2354,7 @@ define internal fastcc i32 @find_minlength(ptr noundef %0, ptr noundef %1, ptr n %195 = load i8, ptr %194, align 1 %196 = zext i8 %195 to i32 %197 = or disjoint i32 %193, %196 - %198 = add i32 %197, %spec.select + %198 = add nsw i32 %197, %spec.select %199 = getelementptr inbounds nuw i8, ptr %spec.select428, i64 4 br i1 %.not415, label %.backedge, label %200 @@ -2383,7 +2382,7 @@ define internal fastcc i32 @find_minlength(ptr noundef %0, ptr noundef %1, ptr n %217 = load i8, ptr %216, align 1 %218 = zext i8 %217 to i32 %219 = or disjoint i32 %215, %218 - %220 = add i32 %219, %spec.select + %220 = add nsw i32 %219, %spec.select %221 = getelementptr inbounds nuw i8, ptr %spec.select428, i64 3 %222 = load i8, ptr %221, align 1 %223 = add i8 %222, -15 @@ -2500,7 +2499,7 @@ define internal fastcc i32 @find_minlength(ptr noundef %0, ptr noundef %1, ptr n %281 = load i8, ptr %280, align 1 %282 = zext i8 %281 to i32 %283 = or disjoint i32 %279, %282 - %284 = add i32 %283, %spec.select + %284 = add nsw i32 %283, %spec.select %285 = getelementptr inbounds nuw i8, ptr %.12, i64 5 br label %.backedge diff --git a/bench/postgres/optimized/aggregatecmds.ll b/bench/postgres/optimized/aggregatecmds.ll index 60df235198d..e2bb9bba773 100644 --- a/bench/postgres/optimized/aggregatecmds.ll +++ b/bench/postgres/optimized/aggregatecmds.ll @@ -74,15 +74,15 @@ define dso_local { i64, i32 } @DefineAggregate(ptr noundef %0, ptr noundef %1, p %17 = alloca i32, align 4 %18 = alloca i32, align 4 %19 = alloca i32, align 4 - %20 = call i32 @QualifiedNameGetCreationNamespace(ptr noundef %1, ptr noundef nonnull %7) #5 - %21 = call i32 @GetUserId() #5 - %22 = call i32 @object_aclcheck(i32 noundef 2615, i32 noundef %20, i32 noundef %21, i64 noundef 512) #5 + %20 = call i32 @QualifiedNameGetCreationNamespace(ptr noundef %1, ptr noundef nonnull %7) #6 + %21 = call i32 @GetUserId() #6 + %22 = call i32 @object_aclcheck(i32 noundef 2615, i32 noundef %20, i32 noundef %21, i64 noundef 512) #6 %.not = icmp eq i32 %22, 0 br i1 %.not, label %25, label %23 23: ; preds = %6 - %24 = call ptr @get_namespace_name(i32 noundef %20) #5 - call void @aclcheck_error(i32 noundef %22, i32 noundef 36, ptr noundef %24) #5 + %24 = call ptr @get_namespace_name(i32 noundef %20) #6 + call void @aclcheck_error(i32 noundef %22, i32 noundef 36, ptr noundef %24) #6 br label %25 25: ; preds = %23, %6 @@ -96,7 +96,7 @@ define dso_local { i64, i32 } @DefineAggregate(ptr noundef %0, ptr noundef %1, p %30 = getelementptr inbounds nuw i8, ptr %29, i64 4 %31 = load i32, ptr %30, align 4 %32 = icmp sgt i32 %31, -1 - %. = select i1 %32, i32 %31, i32 0 + %. = call i32 @llvm.smax.i32(i32 %31, i32 0) %.290 = select i1 %32, i8 111, i8 110 %33 = load ptr, ptr %.val, align 8 br label %34 @@ -144,106 +144,106 @@ define dso_local { i64, i32 } @DefineAggregate(ptr noundef %0, ptr noundef %1, p %41 = load ptr, ptr %40, align 8 %42 = getelementptr inbounds nuw i8, ptr %41, i64 16 %43 = load ptr, ptr %42, align 8 - %44 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(6) @.str) #6 + %44 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(6) @.str) #7 %45 = icmp eq i32 %44, 0 br i1 %45, label %46, label %48 46: ; preds = %.lr.ph483 - %47 = call ptr @defGetQualifiedName(ptr noundef nonnull %41) #5 + %47 = call ptr @defGetQualifiedName(ptr noundef nonnull %41) #6 br label %180 48: ; preds = %.lr.ph483 - %49 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(7) @.str.1) #6 + %49 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(7) @.str.1) #7 %50 = icmp eq i32 %49, 0 br i1 %50, label %51, label %53 51: ; preds = %48 - %52 = call ptr @defGetQualifiedName(ptr noundef nonnull %41) #5 + %52 = call ptr @defGetQualifiedName(ptr noundef nonnull %41) #6 br label %180 53: ; preds = %48 - %54 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(10) @.str.2) #6 + %54 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(10) @.str.2) #7 %55 = icmp eq i32 %54, 0 br i1 %55, label %56, label %58 56: ; preds = %53 - %57 = call ptr @defGetQualifiedName(ptr noundef nonnull %41) #5 + %57 = call ptr @defGetQualifiedName(ptr noundef nonnull %41) #6 br label %180 58: ; preds = %53 - %59 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(12) @.str.3) #6 + %59 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(12) @.str.3) #7 %60 = icmp eq i32 %59, 0 br i1 %60, label %61, label %63 61: ; preds = %58 - %62 = call ptr @defGetQualifiedName(ptr noundef nonnull %41) #5 + %62 = call ptr @defGetQualifiedName(ptr noundef nonnull %41) #6 br label %180 63: ; preds = %58 - %64 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(11) @.str.4) #6 + %64 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(11) @.str.4) #7 %65 = icmp eq i32 %64, 0 br i1 %65, label %66, label %68 66: ; preds = %63 - %67 = call ptr @defGetQualifiedName(ptr noundef nonnull %41) #5 + %67 = call ptr @defGetQualifiedName(ptr noundef nonnull %41) #6 br label %180 68: ; preds = %63 - %69 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(13) @.str.5) #6 + %69 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(13) @.str.5) #7 %70 = icmp eq i32 %69, 0 br i1 %70, label %71, label %73 71: ; preds = %68 - %72 = call ptr @defGetQualifiedName(ptr noundef nonnull %41) #5 + %72 = call ptr @defGetQualifiedName(ptr noundef nonnull %41) #6 br label %180 73: ; preds = %68 - %74 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(7) @.str.6) #6 + %74 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(7) @.str.6) #7 %75 = icmp eq i32 %74, 0 br i1 %75, label %76, label %78 76: ; preds = %73 - %77 = call ptr @defGetQualifiedName(ptr noundef nonnull %41) #5 + %77 = call ptr @defGetQualifiedName(ptr noundef nonnull %41) #6 br label %180 78: ; preds = %73 - %79 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(9) @.str.7) #6 + %79 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(9) @.str.7) #7 %80 = icmp eq i32 %79, 0 br i1 %80, label %81, label %83 81: ; preds = %78 - %82 = call ptr @defGetQualifiedName(ptr noundef nonnull %41) #5 + %82 = call ptr @defGetQualifiedName(ptr noundef nonnull %41) #6 br label %180 83: ; preds = %78 - %84 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(11) @.str.8) #6 + %84 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(11) @.str.8) #7 %85 = icmp eq i32 %84, 0 br i1 %85, label %86, label %88 86: ; preds = %83 - %87 = call ptr @defGetQualifiedName(ptr noundef nonnull %41) #5 + %87 = call ptr @defGetQualifiedName(ptr noundef nonnull %41) #6 br label %180 88: ; preds = %83 - %89 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(16) @.str.9) #6 + %89 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(16) @.str.9) #7 %90 = icmp eq i32 %89, 0 br i1 %90, label %91, label %93 91: ; preds = %88 - %92 = call zeroext i1 @defGetBoolean(ptr noundef nonnull %41) #5 + %92 = call zeroext i1 @defGetBoolean(ptr noundef nonnull %41) #6 br label %180 93: ; preds = %88 - %94 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(17) @.str.10) #6 + %94 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(17) @.str.10) #7 %95 = icmp eq i32 %94, 0 br i1 %95, label %96, label %98 96: ; preds = %93 - %97 = call zeroext i1 @defGetBoolean(ptr noundef nonnull %41) #5 + %97 = call zeroext i1 @defGetBoolean(ptr noundef nonnull %41) #6 br label %180 98: ; preds = %93 - %99 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(17) @.str.11) #6 + %99 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(17) @.str.11) #7 %100 = icmp eq i32 %99, 0 br i1 %100, label %101, label %103 @@ -252,7 +252,7 @@ define dso_local { i64, i32 } @DefineAggregate(ptr noundef %0, ptr noundef %1, p br label %180 103: ; preds = %98 - %104 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(18) @.str.12) #6 + %104 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(18) @.str.12) #7 %105 = icmp eq i32 %104, 0 br i1 %105, label %106, label %108 @@ -261,30 +261,30 @@ define dso_local { i64, i32 } @DefineAggregate(ptr noundef %0, ptr noundef %1, p br label %180 108: ; preds = %103 - %109 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(7) @.str.13) #6 + %109 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(7) @.str.13) #7 %110 = icmp eq i32 %109, 0 br i1 %110, label %111, label %113 111: ; preds = %108 - %112 = call ptr @defGetQualifiedName(ptr noundef nonnull %41) #5 + %112 = call ptr @defGetQualifiedName(ptr noundef nonnull %41) #6 br label %180 113: ; preds = %108 - %114 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(9) @.str.14) #6 + %114 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(9) @.str.14) #7 %115 = icmp eq i32 %114, 0 br i1 %115, label %116, label %118 116: ; preds = %113 - %117 = call ptr @defGetTypeName(ptr noundef nonnull %41) #5 + %117 = call ptr @defGetTypeName(ptr noundef nonnull %41) #6 br label %180 118: ; preds = %113 - %119 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(13) @.str.15) #6 + %119 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(13) @.str.15) #7 %120 = icmp eq i32 %119, 0 br i1 %120, label %121, label %129 121: ; preds = %118 - %122 = call zeroext i1 @defGetBoolean(ptr noundef nonnull %41) #5 + %122 = call zeroext i1 @defGetBoolean(ptr noundef nonnull %41) #6 br i1 %122, label %123, label %180 123: ; preds = %121 @@ -292,103 +292,103 @@ define dso_local { i64, i32 } @DefineAggregate(ptr noundef %0, ptr noundef %1, p br i1 %124, label %125, label %180 125: ; preds = %123 - %126 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #7 + %126 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #8 call void @llvm.assume(i1 %126) - %127 = call i32 @errcode(i32 noundef 50724996) #5 - %128 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.16) #5 - call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 171, ptr noundef nonnull @__func__.DefineAggregate) #5 + %127 = call i32 @errcode(i32 noundef 50724996) #6 + %128 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.16) #6 + call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 171, ptr noundef nonnull @__func__.DefineAggregate) #6 unreachable 129: ; preds = %118 - %130 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(6) @.str.18) #6 + %130 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(6) @.str.18) #7 %131 = icmp eq i32 %130, 0 br i1 %131, label %132, label %134 132: ; preds = %129 - %133 = call ptr @defGetTypeName(ptr noundef nonnull %41) #5 + %133 = call ptr @defGetTypeName(ptr noundef nonnull %41) #6 br label %180 134: ; preds = %129 - %135 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(7) @.str.19) #6 + %135 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(7) @.str.19) #7 %136 = icmp eq i32 %135, 0 br i1 %136, label %137, label %139 137: ; preds = %134 - %138 = call ptr @defGetTypeName(ptr noundef nonnull %41) #5 + %138 = call ptr @defGetTypeName(ptr noundef nonnull %41) #6 br label %180 139: ; preds = %134 - %140 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(7) @.str.20) #6 + %140 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(7) @.str.20) #7 %141 = icmp eq i32 %140, 0 br i1 %141, label %142, label %144 142: ; preds = %139 - %143 = call i32 @defGetInt32(ptr noundef nonnull %41) #5 + %143 = call i32 @defGetInt32(ptr noundef nonnull %41) #6 br label %180 144: ; preds = %139 - %145 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(7) @.str.21) #6 + %145 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(7) @.str.21) #7 %146 = icmp eq i32 %145, 0 br i1 %146, label %147, label %149 147: ; preds = %144 - %148 = call ptr @defGetTypeName(ptr noundef nonnull %41) #5 + %148 = call ptr @defGetTypeName(ptr noundef nonnull %41) #6 br label %180 149: ; preds = %144 - %150 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(8) @.str.22) #6 + %150 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(8) @.str.22) #7 %151 = icmp eq i32 %150, 0 br i1 %151, label %152, label %154 152: ; preds = %149 - %153 = call i32 @defGetInt32(ptr noundef nonnull %41) #5 + %153 = call i32 @defGetInt32(ptr noundef nonnull %41) #6 br label %180 154: ; preds = %149 - %155 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(9) @.str.23) #6 + %155 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(9) @.str.23) #7 %156 = icmp eq i32 %155, 0 br i1 %156, label %157, label %159 157: ; preds = %154 - %158 = call ptr @defGetString(ptr noundef nonnull %41) #5 + %158 = call ptr @defGetString(ptr noundef nonnull %41) #6 br label %180 159: ; preds = %154 - %160 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(10) @.str.24) #6 + %160 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(10) @.str.24) #7 %161 = icmp eq i32 %160, 0 br i1 %161, label %162, label %164 162: ; preds = %159 - %163 = call ptr @defGetString(ptr noundef nonnull %41) #5 + %163 = call ptr @defGetString(ptr noundef nonnull %41) #6 br label %180 164: ; preds = %159 - %165 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(10) @.str.25) #6 + %165 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(10) @.str.25) #7 %166 = icmp eq i32 %165, 0 br i1 %166, label %167, label %169 167: ; preds = %164 - %168 = call ptr @defGetString(ptr noundef nonnull %41) #5 + %168 = call ptr @defGetString(ptr noundef nonnull %41) #6 br label %180 169: ; preds = %164 - %170 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(9) @.str.26) #6 + %170 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %43, ptr noundef nonnull dereferenceable(9) @.str.26) #7 %171 = icmp eq i32 %170, 0 br i1 %171, label %172, label %174 172: ; preds = %169 - %173 = call ptr @defGetString(ptr noundef nonnull %41) #5 + %173 = call ptr @defGetString(ptr noundef nonnull %41) #6 br label %180 174: ; preds = %169 - %175 = call zeroext i1 @errstart(i32 noundef 19, ptr noundef null) #5 + %175 = call zeroext i1 @errstart(i32 noundef 19, ptr noundef null) #6 br i1 %175, label %176, label %180 176: ; preds = %174 - %177 = call i32 @errcode(i32 noundef 16801924) #5 + %177 = call i32 @errcode(i32 noundef 16801924) #6 %178 = load ptr, ptr %42, align 8 - %179 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.27, ptr noundef %178) #5 - call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 197, ptr noundef nonnull @__func__.DefineAggregate) #5 + %179 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.27, ptr noundef %178) #6 + call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 197, ptr noundef nonnull @__func__.DefineAggregate) #6 br label %180 180: ; preds = %123, %46, %56, %66, %76, %86, %96, %106, %116, %132, %142, %152, %162, %172, %174, %176, %167, %157, %147, %137, %121, %111, %101, %91, %81, %71, %61, %51 @@ -447,11 +447,11 @@ define dso_local { i64, i32 } @DefineAggregate(ptr noundef %0, ptr noundef %1, p br i1 %184, label %._crit_edge.thread, label %188 ._crit_edge.thread: ; preds = %34, %._crit_edge - %185 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #7 + %185 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #8 call void @llvm.assume(i1 %185) - %186 = call i32 @errcode(i32 noundef 50724996) #5 - %187 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.28) #5 - call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 206, ptr noundef nonnull @__func__.DefineAggregate) #5 + %186 = call i32 @errcode(i32 noundef 50724996) #6 + %187 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.28) #6 + call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 206, ptr noundef nonnull @__func__.DefineAggregate) #6 unreachable 188: ; preds = %._crit_edge @@ -459,11 +459,11 @@ define dso_local { i64, i32 } @DefineAggregate(ptr noundef %0, ptr noundef %1, p br i1 %189, label %190, label %194 190: ; preds = %188 - %191 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #7 + %191 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #8 call void @llvm.assume(i1 %191) - %192 = call i32 @errcode(i32 noundef 50724996) #5 - %193 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.29) #5 - call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 210, ptr noundef nonnull @__func__.DefineAggregate) #5 + %192 = call i32 @errcode(i32 noundef 50724996) #6 + %193 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.29) #6 + call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 210, ptr noundef nonnull @__func__.DefineAggregate) #6 unreachable 194: ; preds = %188 @@ -475,11 +475,11 @@ define dso_local { i64, i32 } @DefineAggregate(ptr noundef %0, ptr noundef %1, p br i1 %.not282, label %196, label %200 196: ; preds = %195 - %197 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #7 + %197 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #8 call void @llvm.assume(i1 %197) - %198 = call i32 @errcode(i32 noundef 50724996) #5 - %199 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.30) #5 - call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 222, ptr noundef nonnull @__func__.DefineAggregate) #5 + %198 = call i32 @errcode(i32 noundef 50724996) #6 + %199 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.30) #6 + call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 222, ptr noundef nonnull @__func__.DefineAggregate) #6 unreachable 200: ; preds = %195 @@ -487,22 +487,22 @@ define dso_local { i64, i32 } @DefineAggregate(ptr noundef %0, ptr noundef %1, p br i1 %201, label %202, label %231 202: ; preds = %200 - %203 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #7 + %203 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #8 call void @llvm.assume(i1 %203) - %204 = call i32 @errcode(i32 noundef 50724996) #5 - %205 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.31) #5 - call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 226, ptr noundef nonnull @__func__.DefineAggregate) #5 + %204 = call i32 @errcode(i32 noundef 50724996) #6 + %205 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.31) #6 + call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 226, ptr noundef nonnull @__func__.DefineAggregate) #6 unreachable 206: ; preds = %194 br i1 %.not282, label %211, label %207 207: ; preds = %206 - %208 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #7 + %208 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #8 call void @llvm.assume(i1 %208) - %209 = call i32 @errcode(i32 noundef 50724996) #5 - %210 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.32) #5 - call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 233, ptr noundef nonnull @__func__.DefineAggregate) #5 + %209 = call i32 @errcode(i32 noundef 50724996) #6 + %210 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.32) #6 + call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 233, ptr noundef nonnull @__func__.DefineAggregate) #6 unreachable 211: ; preds = %206 @@ -510,11 +510,11 @@ define dso_local { i64, i32 } @DefineAggregate(ptr noundef %0, ptr noundef %1, p br i1 %.not283, label %216, label %212 212: ; preds = %211 - %213 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #7 + %213 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #8 call void @llvm.assume(i1 %213) - %214 = call i32 @errcode(i32 noundef 50724996) #5 - %215 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.33) #5 - call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 237, ptr noundef nonnull @__func__.DefineAggregate) #5 + %214 = call i32 @errcode(i32 noundef 50724996) #6 + %215 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.33) #6 + call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 237, ptr noundef nonnull @__func__.DefineAggregate) #6 unreachable 216: ; preds = %211 @@ -522,11 +522,11 @@ define dso_local { i64, i32 } @DefineAggregate(ptr noundef %0, ptr noundef %1, p br i1 %.not284, label %221, label %217 217: ; preds = %216 - %218 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #7 + %218 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #8 call void @llvm.assume(i1 %218) - %219 = call i32 @errcode(i32 noundef 50724996) #5 - %220 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.34) #5 - call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 241, ptr noundef nonnull @__func__.DefineAggregate) #5 + %219 = call i32 @errcode(i32 noundef 50724996) #6 + %220 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.34) #6 + call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 241, ptr noundef nonnull @__func__.DefineAggregate) #6 unreachable 221: ; preds = %216 @@ -534,11 +534,11 @@ define dso_local { i64, i32 } @DefineAggregate(ptr noundef %0, ptr noundef %1, p br i1 %.not285, label %226, label %222 222: ; preds = %221 - %223 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #7 + %223 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #8 call void @llvm.assume(i1 %223) - %224 = call i32 @errcode(i32 noundef 50724996) #5 - %225 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.35) #5 - call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 245, ptr noundef nonnull @__func__.DefineAggregate) #5 + %224 = call i32 @errcode(i32 noundef 50724996) #6 + %225 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.35) #6 + call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 245, ptr noundef nonnull @__func__.DefineAggregate) #6 unreachable 226: ; preds = %221 @@ -546,11 +546,11 @@ define dso_local { i64, i32 } @DefineAggregate(ptr noundef %0, ptr noundef %1, p br i1 %.not286, label %231, label %227 227: ; preds = %226 - %228 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #7 + %228 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #8 call void @llvm.assume(i1 %228) - %229 = call i32 @errcode(i32 noundef 50724996) #5 - %230 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.36) #5 - call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 249, ptr noundef nonnull @__func__.DefineAggregate) #5 + %229 = call i32 @errcode(i32 noundef 50724996) #6 + %230 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.36) #6 + call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 249, ptr noundef nonnull @__func__.DefineAggregate) #6 unreachable 231: ; preds = %226, %200 @@ -561,28 +561,28 @@ define dso_local { i64, i32 } @DefineAggregate(ptr noundef %0, ptr noundef %1, p br i1 %232, label %234, label %238 234: ; preds = %233 - %235 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #7 + %235 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #8 call void @llvm.assume(i1 %235) - %236 = call i32 @errcode(i32 noundef 50724996) #5 - %237 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.37) #5 - call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 278, ptr noundef nonnull @__func__.DefineAggregate) #5 + %236 = call i32 @errcode(i32 noundef 50724996) #6 + %237 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.37) #6 + call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 278, ptr noundef nonnull @__func__.DefineAggregate) #6 unreachable 238: ; preds = %233 - %239 = call ptr @TypeNameToString(ptr noundef nonnull %.0257334.lcssa) #5 - %240 = call i32 @pg_strcasecmp(ptr noundef %239, ptr noundef nonnull @.str.38) #5 + %239 = call ptr @TypeNameToString(ptr noundef nonnull %.0257334.lcssa) #6 + %240 = call i32 @pg_strcasecmp(ptr noundef %239, ptr noundef nonnull @.str.38) #6 %241 = icmp eq i32 %240, 0 br i1 %241, label %244, label %242 242: ; preds = %238 - %243 = call i32 @typenameTypeId(ptr noundef null, ptr noundef nonnull %.0257334.lcssa) #5 + %243 = call i32 @typenameTypeId(ptr noundef null, ptr noundef nonnull %.0257334.lcssa) #6 br label %244 244: ; preds = %238, %242 %storemerge = phi i32 [ %243, %242 ], [ 0, %238 ] %.0241 = phi i32 [ 1, %242 ], [ 0, %238 ] store i32 %storemerge, ptr %14, align 4 - %245 = call ptr @buildoidvector(ptr noundef nonnull %14, i32 noundef %.0241) #5 + %245 = call ptr @buildoidvector(ptr noundef nonnull %14, i32 noundef %.0241) #6 store ptr %245, ptr %8, align 8 store ptr null, ptr %9, align 8 store ptr null, ptr %10, align 8 @@ -595,11 +595,11 @@ define dso_local { i64, i32 } @DefineAggregate(ptr noundef %0, ptr noundef %1, p br i1 %232, label %251, label %247 247: ; preds = %246 - %248 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #7 + %248 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #8 call void @llvm.assume(i1 %248) - %249 = call i32 @errcode(i32 noundef 50724996) #5 - %250 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.39) #5 - call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 308, ptr noundef nonnull @__func__.DefineAggregate) #5 + %249 = call i32 @errcode(i32 noundef 50724996) #6 + %250 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.39) #6 + call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 308, ptr noundef nonnull @__func__.DefineAggregate) #6 unreachable 251: ; preds = %246 @@ -613,13 +613,13 @@ define dso_local { i64, i32 } @DefineAggregate(ptr noundef %0, ptr noundef %1, p list_length.exit: ; preds = %251, %252 %255 = phi i32 [ %254, %252 ], [ 0, %251 ] - call void @interpret_function_parameter_list(ptr noundef %0, ptr noundef %.0, i32 noundef 0, i32 noundef 1, ptr noundef nonnull %8, ptr noundef null, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef null, ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull %15) #5 + call void @interpret_function_parameter_list(ptr noundef %0, ptr noundef %.0, i32 noundef 0, i32 noundef 1, ptr noundef nonnull %8, ptr noundef null, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef null, ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull %15) #6 br label %256 256: ; preds = %list_length.exit, %244 %.1242 = phi i32 [ %.0241, %244 ], [ %255, %list_length.exit ] - %257 = call i32 @typenameTypeId(ptr noundef null, ptr noundef nonnull %.0255335.lcssa) #5 - %258 = call signext i8 @get_typtype(i32 noundef %257) #5 + %257 = call i32 @typenameTypeId(ptr noundef null, ptr noundef nonnull %.0255335.lcssa) #6 + %258 = call signext i8 @get_typtype(i32 noundef %257) #6 %.fr = freeze i8 %258 %259 = icmp ne i8 %.fr, 112 br i1 %259, label %267, label %switch.early.test @@ -641,16 +641,16 @@ switch.early.test: ; preds = %256 ] 260: ; preds = %switch.early.test - %261 = call zeroext i1 @superuser() #5 + %261 = call zeroext i1 @superuser() #6 br i1 %261, label %.thread295, label %262 262: ; preds = %switch.early.test, %260 - %263 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #7 + %263 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #8 call void @llvm.assume(i1 %263) - %264 = call i32 @errcode(i32 noundef 50724996) #5 - %265 = call ptr @format_type_be(i32 noundef %257) #5 - %266 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.40, ptr noundef %265) #5 - call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 352, ptr noundef nonnull @__func__.DefineAggregate) #5 + %264 = call i32 @errcode(i32 noundef 50724996) #6 + %265 = call ptr @format_type_be(i32 noundef %257) #6 + %266 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.40, ptr noundef %265) #6 + call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 352, ptr noundef nonnull @__func__.DefineAggregate) #6 unreachable 267: ; preds = %switch.early.test, %switch.early.test, %switch.early.test, %switch.early.test, %switch.early.test, %switch.early.test, %switch.early.test, %switch.early.test, %switch.early.test, %switch.early.test, %switch.early.test, %256 @@ -670,12 +670,12 @@ switch.early.test: ; preds = %256 br i1 %.not288, label %.thread297, label %273 273: ; preds = %272 - %274 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #7 + %274 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #8 call void @llvm.assume(i1 %274) - %275 = call i32 @errcode(i32 noundef 50724996) #5 - %276 = call ptr @format_type_be(i32 noundef 2281) #5 - %277 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.41, ptr noundef %276) #5 - call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 364, ptr noundef nonnull @__func__.DefineAggregate) #5 + %275 = call i32 @errcode(i32 noundef 50724996) #6 + %276 = call ptr @format_type_be(i32 noundef 2281) #6 + %277 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.41, ptr noundef %276) #6 + call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 364, ptr noundef nonnull @__func__.DefineAggregate) #6 unreachable 278: ; preds = %.thread295, %267 @@ -685,19 +685,19 @@ switch.early.test: ; preds = %256 br i1 %or.cond25, label %281, label %.thread297 281: ; preds = %278 - %282 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #7 + %282 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #8 call void @llvm.assume(i1 %282) - %283 = call i32 @errcode(i32 noundef 50724996) #5 - %284 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.42) #5 - call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 373, ptr noundef nonnull @__func__.DefineAggregate) #5 + %283 = call i32 @errcode(i32 noundef 50724996) #6 + %284 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.42) #6 + call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 373, ptr noundef nonnull @__func__.DefineAggregate) #6 unreachable .thread297: ; preds = %.thread295, %278, %272 br i1 %.not281, label %295, label %285 285: ; preds = %.thread297 - %286 = call i32 @typenameTypeId(ptr noundef null, ptr noundef nonnull %.0253336.lcssa) #5 - %287 = call signext i8 @get_typtype(i32 noundef %286) #5 + %286 = call i32 @typenameTypeId(ptr noundef null, ptr noundef nonnull %.0253336.lcssa) #6 + %287 = call signext i8 @get_typtype(i32 noundef %286) #6 %.fr299 = freeze i8 %287 %.not300 = icmp eq i8 %.fr299, 112 br i1 %.not300, label %switch.early.test291, label %295 @@ -719,16 +719,16 @@ switch.early.test291: ; preds = %285 ] 288: ; preds = %switch.early.test291 - %289 = call zeroext i1 @superuser() #5 + %289 = call zeroext i1 @superuser() #6 br i1 %289, label %295, label %290 290: ; preds = %switch.early.test291, %288 - %291 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #7 + %291 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #8 call void @llvm.assume(i1 %291) - %292 = call i32 @errcode(i32 noundef 50724996) #5 - %293 = call ptr @format_type_be(i32 noundef %286) #5 - %294 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.40, ptr noundef %293) #5 - call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 393, ptr noundef nonnull @__func__.DefineAggregate) #5 + %292 = call i32 @errcode(i32 noundef 50724996) #6 + %293 = call ptr @format_type_be(i32 noundef %286) #6 + %294 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.40, ptr noundef %293) #6 + call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 393, ptr noundef nonnull @__func__.DefineAggregate) #6 unreachable 295: ; preds = %switch.early.test291, %switch.early.test291, %switch.early.test291, %switch.early.test291, %switch.early.test291, %switch.early.test291, %switch.early.test291, %switch.early.test291, %switch.early.test291, %switch.early.test291, %switch.early.test291, %285, %288, %.thread297 @@ -739,10 +739,10 @@ switch.early.test291: ; preds = %285 br i1 %or.cond50, label %297, label %301 297: ; preds = %295 - call void @getTypeInputInfo(i32 noundef %257, ptr noundef nonnull %16, ptr noundef nonnull %17) #5 + call void @getTypeInputInfo(i32 noundef %257, ptr noundef nonnull %16, ptr noundef nonnull %17) #6 %298 = load i32, ptr %16, align 4 %299 = load i32, ptr %17, align 4 - %300 = call i64 @OidInputFunctionCall(i32 noundef %298, ptr noundef nonnull %.0247339.lcssa, i32 noundef %299, i32 noundef -1) #5 + %300 = call i64 @OidInputFunctionCall(i32 noundef %298, ptr noundef nonnull %.0247339.lcssa, i32 noundef %299, i32 noundef -1) #6 br label %301 301: ; preds = %297, %295 @@ -751,10 +751,10 @@ switch.early.test291: ; preds = %285 br i1 %or.cond53, label %303, label %307 303: ; preds = %301 - call void @getTypeInputInfo(i32 noundef %.0236, ptr noundef nonnull %18, ptr noundef nonnull %19) #5 + call void @getTypeInputInfo(i32 noundef %.0236, ptr noundef nonnull %18, ptr noundef nonnull %19) #6 %304 = load i32, ptr %18, align 4 %305 = load i32, ptr %19, align 4 - %306 = call i64 @OidInputFunctionCall(i32 noundef %304, ptr noundef nonnull %.0245340.lcssa, i32 noundef %305, i32 noundef -1) #5 + %306 = call i64 @OidInputFunctionCall(i32 noundef %304, ptr noundef nonnull %.0245340.lcssa, i32 noundef %305, i32 noundef -1) #6 br label %307 307: ; preds = %303, %301 @@ -762,26 +762,26 @@ switch.early.test291: ; preds = %285 br i1 %.not289, label %321, label %308 308: ; preds = %307 - %309 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.0243341.lcssa, ptr noundef nonnull dereferenceable(5) @.str.43) #6 + %309 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.0243341.lcssa, ptr noundef nonnull dereferenceable(5) @.str.43) #7 %310 = icmp eq i32 %309, 0 br i1 %310, label %321, label %311 311: ; preds = %308 - %312 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.0243341.lcssa, ptr noundef nonnull dereferenceable(11) @.str.44) #6 + %312 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.0243341.lcssa, ptr noundef nonnull dereferenceable(11) @.str.44) #7 %313 = icmp eq i32 %312, 0 br i1 %313, label %321, label %314 314: ; preds = %311 - %315 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.0243341.lcssa, ptr noundef nonnull dereferenceable(7) @.str.45) #6 + %315 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.0243341.lcssa, ptr noundef nonnull dereferenceable(7) @.str.45) #7 %316 = icmp eq i32 %315, 0 br i1 %316, label %321, label %317 317: ; preds = %314 - %318 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #7 + %318 = call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #8 call void @llvm.assume(i1 %318) - %319 = call i32 @errcode(i32 noundef 16801924) #5 - %320 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.46) #5 - call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 438, ptr noundef nonnull @__func__.DefineAggregate) #5 + %319 = call i32 @errcode(i32 noundef 16801924) #6 + %320 = call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.46) #6 + call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 438, ptr noundef nonnull @__func__.DefineAggregate) #6 unreachable 321: ; preds = %314, %311, %308, %307 @@ -802,7 +802,7 @@ switch.early.test291: ; preds = %285 %333 = ptrtoint ptr %332 to i64 %334 = load ptr, ptr %12, align 8 %335 = load i32, ptr %13, align 4 - %336 = call { i64, i32 } @AggregateCreate(ptr noundef %326, i32 noundef %20, i1 noundef zeroext %5, i8 noundef signext %.2349.lcssa, i32 noundef %.1242, i32 noundef %.0239, ptr noundef %327, i64 noundef %329, i64 noundef %331, i64 noundef %333, ptr noundef %334, i32 noundef %335, ptr noundef nonnull %.0223348.lcssa, ptr noundef %.0225347.lcssa, ptr noundef %.0227346.lcssa, ptr noundef %.0229345.lcssa, ptr noundef %.0234343.lcssa, ptr noundef %.0237342.lcssa, ptr noundef %.0273327.lcssa, ptr noundef %.0271328.lcssa, i1 noundef zeroext %.0269329.lcssa, i1 noundef zeroext %.0267330.lcssa, i8 noundef signext %.2266, i8 noundef signext %.2263, ptr noundef %.0259333.lcssa, i32 noundef %257, i32 noundef %.0251337.lcssa, i32 noundef %.0236, i32 noundef %.0249338.lcssa, ptr noundef %.0247339.lcssa, ptr noundef %.0245340.lcssa, i8 noundef signext %.0232) #5 + %336 = call { i64, i32 } @AggregateCreate(ptr noundef %326, i32 noundef %20, i1 noundef zeroext %5, i8 noundef signext %.2349.lcssa, i32 noundef %.1242, i32 noundef %.0239, ptr noundef %327, i64 noundef %329, i64 noundef %331, i64 noundef %333, ptr noundef %334, i32 noundef %335, ptr noundef nonnull %.0223348.lcssa, ptr noundef %.0225347.lcssa, ptr noundef %.0227346.lcssa, ptr noundef %.0229345.lcssa, ptr noundef %.0234343.lcssa, ptr noundef %.0237342.lcssa, ptr noundef %.0273327.lcssa, ptr noundef %.0271328.lcssa, i1 noundef zeroext %.0269329.lcssa, i1 noundef zeroext %.0267330.lcssa, i8 noundef signext %.2266, i8 noundef signext %.2263, ptr noundef %.0259333.lcssa, i32 noundef %257, i32 noundef %.0251337.lcssa, i32 noundef %.0236, i32 noundef %.0249338.lcssa, ptr noundef %.0247339.lcssa, ptr noundef %.0245340.lcssa, i8 noundef signext %.0232) #6 ret { i64, i32 } %336 } @@ -825,29 +825,29 @@ declare zeroext i1 @defGetBoolean(ptr noundef) local_unnamed_addr #1 ; Function Attrs: nounwind uwtable define internal fastcc signext range(i8 114, 120) i8 @extractModify(ptr noundef %0) unnamed_addr #0 { - %2 = tail call ptr @defGetString(ptr noundef %0) #5 - %3 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %2, ptr noundef nonnull dereferenceable(10) @.str.47) #6 + %2 = tail call ptr @defGetString(ptr noundef %0) #6 + %3 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %2, ptr noundef nonnull dereferenceable(10) @.str.47) #7 %4 = icmp eq i32 %3, 0 br i1 %4, label %17, label %5 5: ; preds = %1 - %6 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %2, ptr noundef nonnull dereferenceable(10) @.str.48) #6 + %6 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %2, ptr noundef nonnull dereferenceable(10) @.str.48) #7 %7 = icmp eq i32 %6, 0 br i1 %7, label %17, label %8 8: ; preds = %5 - %9 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %2, ptr noundef nonnull dereferenceable(11) @.str.49) #6 + %9 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %2, ptr noundef nonnull dereferenceable(11) @.str.49) #7 %10 = icmp eq i32 %9, 0 br i1 %10, label %17, label %11 11: ; preds = %8 - %12 = tail call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #7 + %12 = tail call zeroext i1 @errstart_cold(i32 noundef 21, ptr noundef null) #8 tail call void @llvm.assume(i1 %12) - %13 = tail call i32 @errcode(i32 noundef 16801924) #5 + %13 = tail call i32 @errcode(i32 noundef 16801924) #6 %14 = getelementptr inbounds nuw i8, ptr %0, i64 16 %15 = load ptr, ptr %14, align 8 - %16 = tail call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.50, ptr noundef %15) #5 - tail call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 495, ptr noundef nonnull @__func__.extractModify) #5 + %16 = tail call i32 (ptr, ...) @errmsg(ptr noundef nonnull @.str.50, ptr noundef %15) #6 + tail call void @errfinish(ptr noundef nonnull @.str.17, i32 noundef 495, ptr noundef nonnull @__func__.extractModify) #6 unreachable 17: ; preds = %8, %5, %1 @@ -897,14 +897,18 @@ declare { i64, i32 } @AggregateCreate(ptr noundef, i32 noundef, i1 noundef zeroe ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) declare void @llvm.assume(i1 noundef) #4 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i32 @llvm.smax.i32(i32, i32) #5 + attributes #0 = { nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nofree nounwind willreturn memory(argmem: read) "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #3 = { cold "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } -attributes #5 = { nounwind } -attributes #6 = { nounwind willreturn memory(read) } -attributes #7 = { cold nounwind } +attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #6 = { nounwind } +attributes #7 = { nounwind willreturn memory(read) } +attributes #8 = { cold nounwind } !llvm.module.flags = !{!0, !1, !2, !3, !4} diff --git a/bench/qemu/optimized/fdt.c.ll b/bench/qemu/optimized/fdt.c.ll index 30a340a7ec3..882a2b1cfb5 100644 --- a/bench/qemu/optimized/fdt.c.ll +++ b/bench/qemu/optimized/fdt.c.ll @@ -821,13 +821,13 @@ if.end.i.i: ; preds = %if.then.i fdt_check_node_offset_.exit.thread.i: ; preds = %if.end.i.i, %if.then.i call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %offset.addr.i.i) - br label %fdt_next_node.exit + br label %if.then11.i fdt_check_node_offset_.exit.i: ; preds = %if.end.i.i %1 = load i32, ptr %offset.addr.i.i, align 4 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %offset.addr.i.i) %cmp1.i = icmp slt i32 %1, 0 - br i1 %cmp1.i, label %fdt_next_node.exit, label %do.body.i.preheader + br i1 %cmp1.i, label %if.then11.i, label %do.body.i.preheader do.body.i.preheader: ; preds = %fdt_check_node_offset_.exit.i, %entry %.ph = phi i32 [ 0, %entry ], [ %1, %fdt_check_node_offset_.exit.i ] @@ -837,7 +837,7 @@ do.body.i: ; preds = %do.body.i.preheader %2 = phi i32 [ %.pre.i, %do.body.backedge.i ], [ %.ph, %do.body.i.preheader ] %call4.i = call i32 @fdt_next_tag(ptr noundef %fdt, i32 noundef %2, ptr noundef nonnull %nextoffset.i) switch i32 %call4.i, label %do.body.backedge.i [ - i32 9, label %sw.bb13.i + i32 9, label %if.then11.i i32 2, label %if.then11.i i32 1, label %fdt_next_node.exit ] @@ -846,23 +846,18 @@ do.body.backedge.i: ; preds = %do.body.i %.pre.i = load i32, ptr %nextoffset.i, align 4 br label %do.body.i, !llvm.loop !7 -if.then11.i: ; preds = %do.body.i - %3 = load i32, ptr %nextoffset.i, align 4 - br label %fdt_next_node.exit - -sw.bb13.i: ; preds = %do.body.i - %4 = load i32, ptr %nextoffset.i, align 4 - %spec.select = tail call i32 @llvm.smin.i32(i32 %4, i32 -1) - br label %fdt_next_node.exit +fdt_next_node.exit: ; preds = %do.body.i + call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %nextoffset.i) + %3 = tail call i32 @llvm.smax.i32(i32 %2, i32 -1) + br label %4 -fdt_next_node.exit: ; preds = %do.body.i, %sw.bb13.i, %fdt_check_node_offset_.exit.thread.i, %fdt_check_node_offset_.exit.i, %if.then11.i - %cmp1 = phi i1 [ true, %fdt_check_node_offset_.exit.i ], [ true, %if.then11.i ], [ true, %fdt_check_node_offset_.exit.thread.i ], [ true, %sw.bb13.i ], [ false, %do.body.i ] - %retval.0.i = phi i32 [ %1, %fdt_check_node_offset_.exit.i ], [ %3, %if.then11.i ], [ -4, %fdt_check_node_offset_.exit.thread.i ], [ %spec.select, %sw.bb13.i ], [ %2, %do.body.i ] +if.then11.i: ; preds = %do.body.i, %do.body.i, %fdt_check_node_offset_.exit.i, %fdt_check_node_offset_.exit.thread.i call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %nextoffset.i) - %cmp = icmp slt i32 %retval.0.i, 0 - %or.cond = or i1 %cmp, %cmp1 - %.call = select i1 %or.cond, i32 -1, i32 %retval.0.i - ret i32 %.call + br label %4 + +4: ; preds = %fdt_next_node.exit, %if.then11.i + %5 = phi i32 [ -1, %if.then11.i ], [ %3, %fdt_next_node.exit ] + ret i32 %5 } ; Function Attrs: nofree norecurse nosync nounwind memory(read, argmem: readwrite, inaccessiblemem: none) uwtable @@ -1238,7 +1233,7 @@ declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #9 declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #9 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.smin.i32(i32, i32) #7 +declare i32 @llvm.smax.i32(i32, i32) #7 attributes #0 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/qemu/optimized/hw_block_pflash_cfi01.c.ll b/bench/qemu/optimized/hw_block_pflash_cfi01.c.ll index dbb44125664..bc8964791f2 100644 --- a/bench/qemu/optimized/hw_block_pflash_cfi01.c.ll +++ b/bench/qemu/optimized/hw_block_pflash_cfi01.c.ll @@ -153,7 +153,7 @@ target triple = "x86_64-unknown-linux-gnu" ; Function Attrs: nounwind sspstrong uwtable define internal void @do_qemu_init_pflash_cfi01_register_types() #0 { entry: - tail call void @register_module_init(ptr noundef nonnull @pflash_cfi01_register_types, i32 noundef 3) #12 + tail call void @register_module_init(ptr noundef nonnull @pflash_cfi01_register_types, i32 noundef 3) #13 ret void } @@ -162,19 +162,19 @@ declare void @register_module_init(ptr noundef, i32 noundef) local_unnamed_addr ; Function Attrs: nounwind sspstrong uwtable define internal void @pflash_cfi01_register_types() #0 { entry: - %call = tail call ptr @type_register_static(ptr noundef nonnull @pflash_cfi01_info) #12 + %call = tail call ptr @type_register_static(ptr noundef nonnull @pflash_cfi01_info) #13 ret void } ; Function Attrs: nounwind sspstrong uwtable define dso_local ptr @pflash_cfi01_register(i64 noundef %base, ptr noundef %name, i64 noundef %size, ptr noundef %blk, i32 noundef %sector_len, i32 noundef %bank_width, i16 noundef zeroext %id0, i16 noundef zeroext %id1, i16 noundef zeroext %id2, i16 noundef zeroext %id3, i32 noundef %be) local_unnamed_addr #0 { entry: - %call = tail call ptr @qdev_new(ptr noundef nonnull @.str) #12 + %call = tail call ptr @qdev_new(ptr noundef nonnull @.str) #13 %tobool.not = icmp eq ptr %blk, null br i1 %tobool.not, label %if.end, label %if.then if.then: ; preds = %entry - tail call void @qdev_prop_set_drive(ptr noundef %call, ptr noundef nonnull @.str.1, ptr noundef nonnull %blk) #12 + tail call void @qdev_prop_set_drive(ptr noundef %call, ptr noundef nonnull @.str.1, ptr noundef nonnull %blk) #13 br label %if.end if.end: ; preds = %if.then, %entry @@ -185,27 +185,27 @@ if.end: ; preds = %if.then, %entry br i1 %cmp, label %if.end3, label %if.else if.else: ; preds = %if.end - tail call void @__assert_fail(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, i32 noundef 970, ptr noundef nonnull @__PRETTY_FUNCTION__.pflash_cfi01_register) #13 + tail call void @__assert_fail(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, i32 noundef 970, ptr noundef nonnull @__PRETTY_FUNCTION__.pflash_cfi01_register) #14 unreachable if.end3: ; preds = %if.end %conv5 = trunc i64 %div to i32 - tail call void @qdev_prop_set_uint32(ptr noundef %call, ptr noundef nonnull @.str.4, i32 noundef %conv5) #12 - tail call void @qdev_prop_set_uint64(ptr noundef %call, ptr noundef nonnull @.str.5, i64 noundef %conv) #12 + tail call void @qdev_prop_set_uint32(ptr noundef %call, ptr noundef nonnull @.str.4, i32 noundef %conv5) #13 + tail call void @qdev_prop_set_uint64(ptr noundef %call, ptr noundef nonnull @.str.5, i64 noundef %conv) #13 %conv7 = trunc i32 %bank_width to i8 - tail call void @qdev_prop_set_uint8(ptr noundef %call, ptr noundef nonnull @.str.6, i8 noundef zeroext %conv7) #12 + tail call void @qdev_prop_set_uint8(ptr noundef %call, ptr noundef nonnull @.str.6, i8 noundef zeroext %conv7) #13 %tobool8 = icmp ne i32 %be, 0 - tail call void @qdev_prop_set_bit(ptr noundef %call, ptr noundef nonnull @.str.7, i1 noundef zeroext %tobool8) #12 - tail call void @qdev_prop_set_uint16(ptr noundef %call, ptr noundef nonnull @.str.8, i16 noundef zeroext %id0) #12 - tail call void @qdev_prop_set_uint16(ptr noundef %call, ptr noundef nonnull @.str.9, i16 noundef zeroext %id1) #12 - tail call void @qdev_prop_set_uint16(ptr noundef %call, ptr noundef nonnull @.str.10, i16 noundef zeroext %id2) #12 - tail call void @qdev_prop_set_uint16(ptr noundef %call, ptr noundef nonnull @.str.11, i16 noundef zeroext %id3) #12 - tail call void @qdev_prop_set_string(ptr noundef %call, ptr noundef nonnull @.str.12, ptr noundef %name) #12 - %call.i = tail call ptr @object_dynamic_cast_assert(ptr noundef %call, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.81, i32 noundef 20, ptr noundef nonnull @__func__.SYS_BUS_DEVICE) #12 - %call11 = tail call zeroext i1 @sysbus_realize_and_unref(ptr noundef %call.i, ptr noundef nonnull @error_fatal) #12 - %call.i17 = tail call ptr @object_dynamic_cast_assert(ptr noundef %call, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.81, i32 noundef 20, ptr noundef nonnull @__func__.SYS_BUS_DEVICE) #12 - tail call void @sysbus_mmio_map(ptr noundef %call.i17, i32 noundef 0, i64 noundef %base) #12 - %call.i18 = tail call ptr @object_dynamic_cast_assert(ptr noundef %call, ptr noundef nonnull @.str, ptr noundef nonnull @.str.82, i32 noundef 12, ptr noundef nonnull @__func__.PFLASH_CFI01) #12 + tail call void @qdev_prop_set_bit(ptr noundef %call, ptr noundef nonnull @.str.7, i1 noundef zeroext %tobool8) #13 + tail call void @qdev_prop_set_uint16(ptr noundef %call, ptr noundef nonnull @.str.8, i16 noundef zeroext %id0) #13 + tail call void @qdev_prop_set_uint16(ptr noundef %call, ptr noundef nonnull @.str.9, i16 noundef zeroext %id1) #13 + tail call void @qdev_prop_set_uint16(ptr noundef %call, ptr noundef nonnull @.str.10, i16 noundef zeroext %id2) #13 + tail call void @qdev_prop_set_uint16(ptr noundef %call, ptr noundef nonnull @.str.11, i16 noundef zeroext %id3) #13 + tail call void @qdev_prop_set_string(ptr noundef %call, ptr noundef nonnull @.str.12, ptr noundef %name) #13 + %call.i = tail call ptr @object_dynamic_cast_assert(ptr noundef %call, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.81, i32 noundef 20, ptr noundef nonnull @__func__.SYS_BUS_DEVICE) #13 + %call11 = tail call zeroext i1 @sysbus_realize_and_unref(ptr noundef %call.i, ptr noundef nonnull @error_fatal) #13 + %call.i17 = tail call ptr @object_dynamic_cast_assert(ptr noundef %call, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.81, i32 noundef 20, ptr noundef nonnull @__func__.SYS_BUS_DEVICE) #13 + tail call void @sysbus_mmio_map(ptr noundef %call.i17, i32 noundef 0, i64 noundef %base) #13 + %call.i18 = tail call ptr @object_dynamic_cast_assert(ptr noundef %call, ptr noundef nonnull @.str, ptr noundef nonnull @.str.82, i32 noundef 12, ptr noundef nonnull @__func__.PFLASH_CFI01) #13 ret ptr %call.i18 } @@ -255,25 +255,25 @@ entry: br i1 %tobool.not, label %return, label %if.end if.end: ; preds = %entry - %call = call ptr @loc_push_none(ptr noundef nonnull %loc) #12 + %call = call ptr @loc_push_none(ptr noundef nonnull %loc) #13 %opts = getelementptr inbounds nuw i8, ptr %dinfo, i64 24 %0 = load ptr, ptr %opts, align 8 - call void @qemu_opts_loc_restore(ptr noundef %0) #12 + call void @qemu_opts_loc_restore(ptr noundef %0) #13 %blk = getelementptr inbounds nuw i8, ptr %fl, i64 816 %1 = load ptr, ptr %blk, align 16 %tobool1.not = icmp eq ptr %1, null br i1 %tobool1.not, label %if.end3, label %if.then2 if.then2: ; preds = %if.end - call void (ptr, ...) @error_report(ptr noundef nonnull @.str.13) #12 - call void @exit(i32 noundef 1) #14 + call void (ptr, ...) @error_report(ptr noundef nonnull @.str.13) #13 + call void @exit(i32 noundef 1) #15 unreachable if.end3: ; preds = %if.end - %call.i = call ptr @object_dynamic_cast_assert(ptr noundef nonnull %fl, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.16, i32 noundef 77, ptr noundef nonnull @__func__.DEVICE) #12 - %call5 = call ptr @blk_by_legacy_dinfo(ptr noundef nonnull %dinfo) #12 - %call6 = call zeroext i1 @qdev_prop_set_drive_err(ptr noundef %call.i, ptr noundef nonnull @.str.1, ptr noundef %call5, ptr noundef nonnull @error_fatal) #12 - %call7 = call ptr @loc_pop(ptr noundef nonnull %loc) #12 + %call.i = call ptr @object_dynamic_cast_assert(ptr noundef nonnull %fl, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.16, i32 noundef 77, ptr noundef nonnull @__func__.DEVICE) #13 + %call5 = call ptr @blk_by_legacy_dinfo(ptr noundef nonnull %dinfo) #13 + %call6 = call zeroext i1 @qdev_prop_set_drive_err(ptr noundef %call.i, ptr noundef nonnull @.str.1, ptr noundef %call5, ptr noundef nonnull @error_fatal) #13 + %call7 = call ptr @loc_pop(ptr noundef nonnull %loc) #13 br label %return return: ; preds = %entry, %if.end3 @@ -300,12 +300,12 @@ declare ptr @type_register_static(ptr noundef) local_unnamed_addr #1 ; Function Attrs: nounwind sspstrong uwtable define internal void @pflash_cfi01_class_init(ptr noundef %klass, ptr readnone captures(none) %data) #0 { entry: - %call.i = tail call ptr @object_class_dynamic_cast_assert(ptr noundef %klass, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.16, i32 noundef 77, ptr noundef nonnull @__func__.DEVICE_CLASS) #12 + %call.i = tail call ptr @object_class_dynamic_cast_assert(ptr noundef %klass, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.16, i32 noundef 77, ptr noundef nonnull @__func__.DEVICE_CLASS) #13 %reset = getelementptr inbounds nuw i8, ptr %call.i, i64 136 store ptr @pflash_cfi01_system_reset, ptr %reset, align 8 %realize = getelementptr inbounds nuw i8, ptr %call.i, i64 144 store ptr @pflash_cfi01_realize, ptr %realize, align 8 - tail call void @device_class_set_props(ptr noundef %call.i, ptr noundef nonnull @pflash_cfi01_properties) #12 + tail call void @device_class_set_props(ptr noundef %call.i, ptr noundef nonnull @pflash_cfi01_properties) #13 %vmsd = getelementptr inbounds nuw i8, ptr %call.i, i64 160 store ptr @vmstate_pflash, ptr %vmsd, align 8 %categories = getelementptr inbounds nuw i8, ptr %call.i, i64 96 @@ -319,7 +319,7 @@ entry: define internal void @pflash_cfi01_system_reset(ptr noundef %dev) #0 { entry: %_now.i.i = alloca %struct.timeval, align 8 - %call.i = tail call ptr @object_dynamic_cast_assert(ptr noundef %dev, ptr noundef nonnull @.str, ptr noundef nonnull @.str.82, i32 noundef 12, ptr noundef nonnull @__func__.PFLASH_CFI01) #12 + %call.i = tail call ptr @object_dynamic_cast_assert(ptr noundef %dev, ptr noundef nonnull @.str, ptr noundef nonnull @.str.82, i32 noundef 12, ptr noundef nonnull @__func__.PFLASH_CFI01) #13 %name = getelementptr inbounds nuw i8, ptr %call.i, i64 1232 %0 = load ptr, ptr %name, align 16 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %_now.i.i) @@ -342,16 +342,16 @@ if.then.i.i: ; preds = %land.lhs.true5.i.i br i1 %tobool7.i.i, label %if.then8.i.i, label %if.else.i.i if.then8.i.i: ; preds = %if.then.i.i - %call9.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i, ptr noundef null) #12 - %call10.i.i = tail call i32 @qemu_get_thread_id() #12 + %call9.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i, ptr noundef null) #13 + %call10.i.i = tail call i32 @qemu_get_thread_id() #13 %5 = load i64, ptr %_now.i.i, align 8 %tv_usec.i.i = getelementptr inbounds nuw i8, ptr %_now.i.i, i64 8 %6 = load i64, ptr %tv_usec.i.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.17, i32 noundef %call10.i.i, i64 noundef %5, i64 noundef %6, ptr noundef %0) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.17, i32 noundef %call10.i.i, i64 noundef %5, i64 noundef %6, ptr noundef %0) #13 br label %trace_pflash_reset.exit if.else.i.i: ; preds = %if.then.i.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.18, ptr noundef %0) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.18, ptr noundef %0) #13 br label %trace_pflash_reset.exit trace_pflash_reset.exit: ; preds = %entry, %land.lhs.true5.i.i, %if.then8.i.i, %if.else.i.i @@ -361,7 +361,7 @@ trace_pflash_reset.exit: ; preds = %entry, %land.lhs.tr %wcycle = getelementptr inbounds nuw i8, ptr %call.i, i64 848 store i8 0, ptr %wcycle, align 16 %mem = getelementptr inbounds nuw i8, ptr %call.i, i64 960 - tail call void @memory_region_rom_device_set_romd(ptr noundef nonnull %mem, i1 noundef zeroext true) #12 + tail call void @memory_region_rom_device_set_romd(ptr noundef nonnull %mem, i1 noundef zeroext true) #13 %status = getelementptr inbounds nuw i8, ptr %call.i, i64 851 store i8 -128, ptr %status, align 1 ret void @@ -378,14 +378,14 @@ entry: %cmp = icmp eq ptr %errp, @error_fatal %or.cond = or i1 %tobool, %cmp %spec.select = select i1 %or.cond, ptr %_auto_errp_prop, ptr %errp - %call.i = tail call ptr @object_dynamic_cast_assert(ptr noundef %dev, ptr noundef nonnull @.str, ptr noundef nonnull @.str.82, i32 noundef 12, ptr noundef nonnull @__func__.PFLASH_CFI01) #12 + %call.i = tail call ptr @object_dynamic_cast_assert(ptr noundef %dev, ptr noundef nonnull @.str, ptr noundef nonnull @.str.82, i32 noundef 12, ptr noundef nonnull @__func__.PFLASH_CFI01) #13 %sector_len = getelementptr inbounds nuw i8, ptr %call.i, i64 832 %0 = load i64, ptr %sector_len, align 16 %cmp3 = icmp eq i64 %0, 0 br i1 %cmp3, label %if.then4, label %if.end5 if.then4: ; preds = %entry - call void (ptr, ptr, i32, ptr, ptr, ...) @error_setg_internal(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.3, i32 noundef 806, ptr noundef nonnull @__func__.pflash_cfi01_realize, ptr noundef nonnull @.str.19) #12 + call void (ptr, ptr, i32, ptr, ptr, ...) @error_setg_internal(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.3, i32 noundef 806, ptr noundef nonnull @__func__.pflash_cfi01_realize, ptr noundef nonnull @.str.19) #13 br label %cleanup if.end5: ; preds = %entry @@ -395,7 +395,7 @@ if.end5: ; preds = %entry br i1 %cmp6, label %if.then7, label %if.end8 if.then7: ; preds = %if.end5 - call void (ptr, ptr, i32, ptr, ptr, ...) @error_setg_internal(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.3, i32 noundef 810, ptr noundef nonnull @__func__.pflash_cfi01_realize, ptr noundef nonnull @.str.20) #12 + call void (ptr, ptr, i32, ptr, ptr, ...) @error_setg_internal(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.3, i32 noundef 810, ptr noundef nonnull @__func__.pflash_cfi01_realize, ptr noundef nonnull @.str.20) #13 br label %cleanup if.end8: ; preds = %if.end5 @@ -405,38 +405,38 @@ if.end8: ; preds = %if.end5 br i1 %cmp9, label %if.then10, label %if.end11 if.then10: ; preds = %if.end8 - call void (ptr, ptr, i32, ptr, ptr, ...) @error_setg_internal(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.3, i32 noundef 814, ptr noundef nonnull @__func__.pflash_cfi01_realize, ptr noundef nonnull @.str.21) #12 + call void (ptr, ptr, i32, ptr, ptr, ...) @error_setg_internal(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.3, i32 noundef 814, ptr noundef nonnull @__func__.pflash_cfi01_realize, ptr noundef nonnull @.str.21) #13 br label %cleanup if.end11: ; preds = %if.end8 %conv = zext i32 %1 to i64 %mul = mul i64 %0, %conv %mem = getelementptr inbounds nuw i8, ptr %call.i, i64 960 - call void @memory_region_init_rom_device(ptr noundef nonnull %mem, ptr noundef %dev, ptr noundef nonnull @pflash_cfi01_ops, ptr noundef nonnull %call.i, ptr noundef nonnull %2, i64 noundef %mul, ptr noundef nonnull %spec.select) #12 + call void @memory_region_init_rom_device(ptr noundef nonnull %mem, ptr noundef %dev, ptr noundef nonnull @pflash_cfi01_ops, ptr noundef nonnull %call.i, ptr noundef nonnull %2, i64 noundef %mul, ptr noundef nonnull %spec.select) #13 %3 = load ptr, ptr %spec.select, align 8 %tobool15.not = icmp eq ptr %3, null br i1 %tobool15.not, label %if.end17, label %cleanup if.end17: ; preds = %if.end11 - %call19 = call ptr @memory_region_get_ram_ptr(ptr noundef nonnull %mem) #12 + %call19 = call ptr @memory_region_get_ram_ptr(ptr noundef nonnull %mem) #13 %storage = getelementptr inbounds nuw i8, ptr %call.i, i64 1240 store ptr %call19, ptr %storage, align 8 - %call.i46 = call ptr @object_dynamic_cast_assert(ptr noundef %dev, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.81, i32 noundef 20, ptr noundef nonnull @__func__.SYS_BUS_DEVICE) #12 - call void @sysbus_init_mmio(ptr noundef %call.i46, ptr noundef nonnull %mem) #12 + %call.i46 = call ptr @object_dynamic_cast_assert(ptr noundef %dev, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.81, i32 noundef 20, ptr noundef nonnull @__func__.SYS_BUS_DEVICE) #13 + call void @sysbus_init_mmio(ptr noundef %call.i46, ptr noundef nonnull %mem) #13 %blk = getelementptr inbounds nuw i8, ptr %call.i, i64 816 %4 = load ptr, ptr %blk, align 16 %tobool22.not = icmp eq ptr %4, null br i1 %tobool22.not, label %if.end37.thread, label %if.then23 if.then23: ; preds = %if.end17 - %call25 = call zeroext i1 @blk_supports_write_perm(ptr noundef nonnull %4) #12 + %call25 = call zeroext i1 @blk_supports_write_perm(ptr noundef nonnull %4) #13 %lnot = xor i1 %call25, true %ro = getelementptr inbounds nuw i8, ptr %call.i, i64 849 %frombool = zext i1 %lnot to i8 store i8 %frombool, ptr %ro, align 1 %conv29 = select i1 %call25, i64 3, i64 1 %5 = load ptr, ptr %blk, align 16 - %call31 = call i32 @blk_set_perm(ptr noundef %5, i64 noundef %conv29, i64 noundef 15, ptr noundef nonnull %spec.select) #12 + %call31 = call i32 @blk_set_perm(ptr noundef %5, i64 noundef %conv29, i64 noundef 15, ptr noundef nonnull %spec.select) #13 %cmp32 = icmp slt i32 %call31, 0 br i1 %cmp32, label %cleanup, label %if.end37 @@ -452,12 +452,12 @@ if.end37: ; preds = %if.then23 if.then40: ; preds = %if.end37 %6 = load ptr, ptr %storage, align 8 - %call43 = call zeroext i1 @blk_check_size_and_read_all(ptr noundef nonnull %.pr, ptr noundef %6, i64 noundef %mul, ptr noundef nonnull %spec.select) #12 + %call43 = call zeroext i1 @blk_check_size_and_read_all(ptr noundef nonnull %.pr, ptr noundef %6, i64 noundef %mul, ptr noundef nonnull %spec.select) #13 br i1 %call43, label %if.end48, label %if.then44 if.then44: ; preds = %if.then40 - %call.i47 = call ptr @object_dynamic_cast_assert(ptr noundef nonnull %call.i, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.16, i32 noundef 77, ptr noundef nonnull @__func__.DEVICE) #12 - call void @vmstate_unregister_ram(ptr noundef nonnull %mem, ptr noundef %call.i47) #12 + %call.i47 = call ptr @object_dynamic_cast_assert(ptr noundef nonnull %call.i, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.16, i32 noundef 77, ptr noundef nonnull @__func__.DEVICE) #13 + call void @vmstate_unregister_ram(ptr noundef nonnull %mem, ptr noundef %call.i47) #13 br label %cleanup if.end48: ; preds = %if.end37.thread, %if.then40, %if.end37 @@ -565,9 +565,8 @@ pflash_cfi01_fill_cfi_table.exit: ; preds = %if.then.i, %if.else %spec.select68.i = select i1 %cmp.i, i8 8, i8 11 %18 = getelementptr i8, ptr %call.i, i64 902 store i8 %spec.select68.i, ptr %18, align 2 - %cmp79.i = icmp samesign ult i32 %cond.i, 2 - %or.cond.not.i = select i1 %tobool4.i, i1 true, i1 %cmp79.i - %spec.select.i = select i1 %or.cond.not.i, i32 1, i32 %cond.i + %19 = call i32 @llvm.umax.i32(i32 %cond.i, i32 1) + %spec.select.i = select i1 %tobool4.i, i32 1, i32 %19 %writeblock_size.i = getelementptr inbounds nuw i8, ptr %call.i, i64 952 %conv76.i = zext nneg i8 %spec.select68.i to i32 %storemerge.i = shl nuw nsw i32 %spec.select.i, %conv76.i @@ -612,7 +611,7 @@ pflash_cfi01_fill_cfi_table.exit: ; preds = %if.then.i, %if.else cleanup: ; preds = %if.then23, %if.end11, %pflash_cfi01_fill_cfi_table.exit, %if.then44, %if.then10, %if.then7, %if.then4 %_auto_errp_prop.val = load ptr, ptr %_auto_errp_prop, align 8 %_auto_errp_prop.val45 = load ptr, ptr %errp1, align 8 - call void @error_propagate(ptr noundef %_auto_errp_prop.val45, ptr noundef %_auto_errp_prop.val) #12 + call void @error_propagate(ptr noundef %_auto_errp_prop.val45, ptr noundef %_auto_errp_prop.val) #13 ret void } @@ -711,18 +710,18 @@ if.then.i.i.i: ; preds = %land.lhs.true5.i.i. br i1 %tobool7.i.i.i, label %if.then8.i.i.i, label %if.else.i.i.i if.then8.i.i.i: ; preds = %if.then.i.i.i - %call9.i.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i.i, ptr noundef null) #12 - %call10.i.i.i = tail call i32 @qemu_get_thread_id() #12 + %call9.i.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i.i, ptr noundef null) #13 + %call10.i.i.i = tail call i32 @qemu_get_thread_id() #13 %8 = load i64, ptr %_now.i.i.i, align 8 %tv_usec.i.i.i = getelementptr inbounds nuw i8, ptr %_now.i.i.i, i64 8 %9 = load i64, ptr %tv_usec.i.i.i, align 8 %conv11.i.i.i = zext i8 %2 to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.24, i32 noundef %call10.i.i.i, i64 noundef %8, i64 noundef %9, ptr noundef %3, i32 noundef %conv11.i.i.i) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.24, i32 noundef %call10.i.i.i, i64 noundef %8, i64 noundef %9, ptr noundef %3, i32 noundef %conv11.i.i.i) #13 br label %trace_pflash_read_unknown_state.exit.i if.else.i.i.i: ; preds = %if.then.i.i.i %conv12.i.i.i = zext i8 %2 to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.25, ptr noundef %3, i32 noundef %conv12.i.i.i) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.25, ptr noundef %3, i32 noundef %conv12.i.i.i) #13 br label %trace_pflash_read_unknown_state.exit.i trace_pflash_read_unknown_state.exit.i: ; preds = %if.else.i.i.i, %if.then8.i.i.i, %land.lhs.true5.i.i.i, %sw.default.i @@ -800,16 +799,16 @@ if.then.i.i83.i: ; preds = %land.lhs.true5.i.i8 br i1 %tobool7.i.i84.i, label %if.then8.i.i86.i, label %if.else.i.i85.i if.then8.i.i86.i: ; preds = %if.then.i.i83.i - %call9.i.i87.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i76.i, ptr noundef null) #12 - %call10.i.i88.i = tail call i32 @qemu_get_thread_id() #12 + %call9.i.i87.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i76.i, ptr noundef null) #13 + %call10.i.i88.i = tail call i32 @qemu_get_thread_id() #13 %17 = load i64, ptr %_now.i.i76.i, align 8 %tv_usec.i.i89.i = getelementptr inbounds nuw i8, ptr %_now.i.i76.i, i64 8 %18 = load i64, ptr %tv_usec.i.i89.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.26, i32 noundef %call10.i.i88.i, i64 noundef %17, i64 noundef %18, ptr noundef %12, i32 noundef %ret.2.i) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.26, i32 noundef %call10.i.i88.i, i64 noundef %17, i64 noundef %18, ptr noundef %12, i32 noundef %ret.2.i) #13 br label %trace_pflash_read_status.exit.i if.else.i.i85.i: ; preds = %if.then.i.i83.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.27, ptr noundef %12, i32 noundef %ret.2.i) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.27, ptr noundef %12, i32 noundef %ret.2.i) #13 br label %trace_pflash_read_status.exit.i trace_pflash_read_status.exit.i: ; preds = %if.else.i.i85.i, %if.then8.i.i86.i, %land.lhs.true5.i.i80.i, %if.end33.i @@ -948,17 +947,17 @@ if.then.i.i.i.i: ; preds = %land.lhs.true5.i.i. br i1 %tobool7.i.i.i.i, label %if.then8.i.i.i.i, label %if.else.i.i.i.i if.then8.i.i.i.i: ; preds = %if.then.i.i.i.i - %call9.i.i.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i.i.i, ptr noundef null) #12 - %call10.i.i.i.i = tail call i32 @qemu_get_thread_id() #12 + %call9.i.i.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i.i.i, ptr noundef null) #13 + %call10.i.i.i.i = tail call i32 @qemu_get_thread_id() #13 %40 = load i64, ptr %_now.i.i.i.i, align 8 %41 = load i64, ptr %tv_usec.i.i.i.i, align 8 %conv11.i.i.i.i = zext i16 %34 to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.28, i32 noundef %call10.i.i.i.i, i64 noundef %40, i64 noundef %41, ptr noundef %35, i32 noundef %conv11.i.i.i.i) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.28, i32 noundef %call10.i.i.i.i, i64 noundef %40, i64 noundef %41, ptr noundef %35, i32 noundef %conv11.i.i.i.i) #13 br label %trace_pflash_manufacturer_id.exit.i.i if.else.i.i.i.i: ; preds = %if.then.i.i.i.i %conv12.i.i.i.i = zext i16 %34 to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.29, ptr noundef %35, i32 noundef %conv12.i.i.i.i) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.29, ptr noundef %35, i32 noundef %conv12.i.i.i.i) #13 br label %trace_pflash_manufacturer_id.exit.i.i trace_pflash_manufacturer_id.exit.i.i: ; preds = %if.else.i.i.i.i, %if.then8.i.i.i.i, %land.lhs.true5.i.i.i.i, %sw.bb.i.i @@ -988,17 +987,17 @@ if.then.i.i28.i.i: ; preds = %land.lhs.true5.i.i2 br i1 %tobool7.i.i29.i.i, label %if.then8.i.i32.i.i, label %if.else.i.i30.i.i if.then8.i.i32.i.i: ; preds = %if.then.i.i28.i.i - %call9.i.i33.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i21.i.i, ptr noundef null) #12 - %call10.i.i34.i.i = tail call i32 @qemu_get_thread_id() #12 + %call9.i.i33.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i21.i.i, ptr noundef null) #13 + %call10.i.i34.i.i = tail call i32 @qemu_get_thread_id() #13 %48 = load i64, ptr %_now.i.i21.i.i, align 8 %49 = load i64, ptr %tv_usec.i.i35.i.i, align 8 %conv11.i.i36.i.i = zext i16 %42 to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.30, i32 noundef %call10.i.i34.i.i, i64 noundef %48, i64 noundef %49, ptr noundef %43, i32 noundef %conv11.i.i36.i.i) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.30, i32 noundef %call10.i.i34.i.i, i64 noundef %48, i64 noundef %49, ptr noundef %43, i32 noundef %conv11.i.i36.i.i) #13 br label %trace_pflash_device_id.exit.i.i if.else.i.i30.i.i: ; preds = %if.then.i.i28.i.i %conv12.i.i31.i.i = zext i16 %42 to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.31, ptr noundef %43, i32 noundef %conv12.i.i31.i.i) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.31, ptr noundef %43, i32 noundef %conv12.i.i31.i.i) #13 br label %trace_pflash_device_id.exit.i.i trace_pflash_device_id.exit.i.i: ; preds = %if.else.i.i30.i.i, %if.then8.i.i32.i.i, %land.lhs.true5.i.i25.i.i, %sw.bb7.i.i @@ -1027,15 +1026,15 @@ if.then.i.i44.i.i: ; preds = %land.lhs.true5.i.i4 br i1 %tobool7.i.i45.i.i, label %if.then8.i.i47.i.i, label %if.else.i.i46.i.i if.then8.i.i47.i.i: ; preds = %if.then.i.i44.i.i - %call9.i.i48.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i37.i.i, ptr noundef null) #12 - %call10.i.i49.i.i = tail call i32 @qemu_get_thread_id() #12 + %call9.i.i48.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i37.i.i, ptr noundef null) #13 + %call10.i.i49.i.i = tail call i32 @qemu_get_thread_id() #13 %55 = load i64, ptr %_now.i.i37.i.i, align 8 %56 = load i64, ptr %tv_usec.i.i50.i.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.32, i32 noundef %call10.i.i49.i.i, i64 noundef %55, i64 noundef %56, ptr noundef %50, i64 noundef %add79.i) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.32, i32 noundef %call10.i.i49.i.i, i64 noundef %55, i64 noundef %56, ptr noundef %50, i64 noundef %add79.i) #13 br label %trace_pflash_device_info.exit.i.i if.else.i.i46.i.i: ; preds = %if.then.i.i44.i.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.33, ptr noundef %50, i64 noundef %add79.i) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.33, ptr noundef %50, i64 noundef %add79.i) #13 br label %trace_pflash_device_info.exit.i.i trace_pflash_device_info.exit.i.i: ; preds = %if.else.i.i46.i.i, %if.then8.i.i47.i.i, %land.lhs.true5.i.i41.i.i, %sw.default.i.i @@ -1068,7 +1067,7 @@ for.body.i.i: ; preds = %if.then.i.i, %depos br i1 %cmp3.not.i.i.i, label %if.else.i.split.i.i, label %deposit32.exit.i.i if.else.i.split.i.i: ; preds = %if.then.i.i, %for.body.i.i - tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.deposit32) #13 + tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.deposit32) #14 unreachable deposit32.exit.i.i: ; preds = %for.body.i.i @@ -1093,7 +1092,7 @@ pflash_devid_query.exit.i: ; preds = %deposit32.exit.i.i, br i1 %or.cond8.i.i, label %if.else.i.i, label %deposit32.exit.i if.else.i.i: ; preds = %pflash_devid_query.exit.i - tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.deposit32) #13 + tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.deposit32) #14 unreachable deposit32.exit.i: ; preds = %pflash_devid_query.exit.i @@ -1229,15 +1228,15 @@ if.then.i.i.i126.i: ; preds = %land.lhs.true5.i.i. br i1 %tobool7.i.i.i127.i, label %if.then8.i.i.i129.i, label %if.else.i.i.i128.i if.then8.i.i.i129.i: ; preds = %if.then.i.i.i126.i - %call9.i.i.i130.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i.i93.i, ptr noundef null) #12 - %call10.i.i.i131.i = tail call i32 @qemu_get_thread_id() #12 + %call9.i.i.i130.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i.i93.i, ptr noundef null) #13 + %call10.i.i.i131.i = tail call i32 @qemu_get_thread_id() #13 %77 = load i64, ptr %_now.i.i.i93.i, align 8 %78 = load i64, ptr %tv_usec.i.i.i132.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.36, i32 noundef %call10.i.i.i131.i, i64 noundef %77, i64 noundef %78, ptr noundef %72, i32 noundef %conv3.i101.i, i32 noundef %conv1.i97.i) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.36, i32 noundef %call10.i.i.i131.i, i64 noundef %77, i64 noundef %78, ptr noundef %72, i32 noundef %conv3.i101.i, i32 noundef %conv1.i97.i) #13 br label %trace_pflash_unsupported_device_configuration.exit.i.i if.else.i.i.i128.i: ; preds = %if.then.i.i.i126.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.37, ptr noundef %72, i32 noundef %conv3.i101.i, i32 noundef %conv1.i97.i) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.37, ptr noundef %72, i32 noundef %conv3.i101.i, i32 noundef %conv1.i97.i) #13 br label %trace_pflash_unsupported_device_configuration.exit.i.i trace_pflash_unsupported_device_configuration.exit.i.i: ; preds = %if.else.i.i.i128.i, %if.then8.i.i.i129.i, %land.lhs.true5.i.i.i123.i, %if.then22.i.i @@ -1258,7 +1257,7 @@ for.body.i107.i: ; preds = %for.body.preheader. br i1 %exitcond.not.i.i, label %if.end34.i.i, label %for.body.i107.i, !llvm.loop !9 if.else.i.i118.i: ; preds = %for.body.preheader.i.i - tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.deposit32) #13 + tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.deposit32) #14 unreachable if.end34.i.i: ; preds = %for.body.i107.i, %if.end.i.i @@ -1291,7 +1290,7 @@ for.body49.i.i: ; preds = %deposit32.exit40.i. br i1 %cmp3.not.i31.i.i, label %if.else.i39.split.i.i, label %deposit32.exit40.i.i if.else.i39.split.i.i: ; preds = %for.cond44.preheader.i.i, %for.body49.i.i - tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.deposit32) #13 + tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.deposit32) #14 unreachable deposit32.exit40.i.i: ; preds = %for.body49.i.i @@ -1316,7 +1315,7 @@ pflash_cfi_query.exit.i: ; preds = %deposit32.exit40.i. br i1 %or.cond8.i138.i, label %if.else.i148.i, label %deposit32.exit149.i if.else.i148.i: ; preds = %pflash_cfi_query.exit.i - tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.deposit32) #13 + tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.deposit32) #14 unreachable deposit32.exit149.i: ; preds = %pflash_cfi_query.exit.i @@ -1361,20 +1360,20 @@ if.then.i.i157.i: ; preds = %land.lhs.true5.i.i1 br i1 %tobool7.i.i158.i, label %if.then8.i.i160.i, label %if.else.i.i159.i if.then8.i.i160.i: ; preds = %if.then.i.i157.i - %call9.i.i161.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i150.i, ptr noundef null) #12 - %call10.i.i162.i = tail call i32 @qemu_get_thread_id() #12 + %call9.i.i161.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i150.i, ptr noundef null) #13 + %call10.i.i162.i = tail call i32 @qemu_get_thread_id() #13 %87 = load i64, ptr %_now.i.i150.i, align 8 %tv_usec.i.i163.i = getelementptr inbounds nuw i8, ptr %_now.i.i150.i, i64 8 %88 = load i64, ptr %tv_usec.i.i163.i, align 8 %conv11.i.i164.i = zext i8 %81 to i32 %conv12.i.i165.i = zext i8 %82 to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.38, i32 noundef %call10.i.i162.i, i64 noundef %87, i64 noundef %88, ptr noundef %80, i64 noundef %addr, i32 noundef %len, i32 noundef %ret.0.i, i32 noundef %conv11.i.i164.i, i32 noundef %conv12.i.i165.i) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.38, i32 noundef %call10.i.i162.i, i64 noundef %87, i64 noundef %88, ptr noundef %80, i64 noundef %addr, i32 noundef %len, i32 noundef %ret.0.i, i32 noundef %conv11.i.i164.i, i32 noundef %conv12.i.i165.i) #13 br label %pflash_read.exit if.else.i.i159.i: ; preds = %if.then.i.i157.i %conv13.i.i.i = zext i8 %81 to i32 %conv14.i.i.i = zext i8 %82 to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.39, ptr noundef %80, i64 noundef %addr, i32 noundef %len, i32 noundef %ret.0.i, i32 noundef %conv13.i.i.i, i32 noundef %conv14.i.i.i) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.39, ptr noundef %80, i64 noundef %addr, i32 noundef %len, i32 noundef %ret.0.i, i32 noundef %conv13.i.i.i, i32 noundef %conv14.i.i.i) #13 br label %pflash_read.exit pflash_read.exit: ; preds = %sw.epilog135.i, %land.lhs.true5.i.i154.i, %if.then8.i.i160.i, %if.else.i.i159.i @@ -1435,18 +1434,18 @@ if.then.i.i.i: ; preds = %land.lhs.true5.i.i. br i1 %tobool7.i.i.i, label %if.then8.i.i.i, label %if.else.i.i.i if.then8.i.i.i: ; preds = %if.then.i.i.i - %call9.i.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i.i, ptr noundef null) #12 - %call10.i.i.i = tail call i32 @qemu_get_thread_id() #12 + %call9.i.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i.i, ptr noundef null) #13 + %call10.i.i.i = tail call i32 @qemu_get_thread_id() #13 %8 = load i64, ptr %_now.i.i.i, align 8 %tv_usec.i.i.i = getelementptr inbounds nuw i8, ptr %_now.i.i.i, i64 8 %9 = load i64, ptr %tv_usec.i.i.i, align 8 %conv11.i.i.i = zext i8 %3 to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.57, i32 noundef %call10.i.i.i, i64 noundef %8, i64 noundef %9, ptr noundef %2, i64 noundef %addr, i32 noundef %len, i32 noundef %conv, i32 noundef %conv11.i.i.i) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.57, i32 noundef %call10.i.i.i, i64 noundef %8, i64 noundef %9, ptr noundef %2, i64 noundef %addr, i32 noundef %len, i32 noundef %conv, i32 noundef %conv11.i.i.i) #13 br label %trace_pflash_io_write.exit.i if.else.i.i.i: ; preds = %if.then.i.i.i %conv12.i.i.i = zext i8 %3 to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.58, ptr noundef %2, i64 noundef %addr, i32 noundef %len, i32 noundef %conv, i32 noundef %conv12.i.i.i) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.58, ptr noundef %2, i64 noundef %addr, i32 noundef %len, i32 noundef %conv, i32 noundef %conv12.i.i.i) #13 br label %trace_pflash_io_write.exit.i trace_pflash_io_write.exit.i: ; preds = %if.else.i.i.i, %if.then8.i.i.i, %land.lhs.true5.i.i.i, %if.else @@ -1457,7 +1456,7 @@ trace_pflash_io_write.exit.i: ; preds = %if.else.i.i.i, %if. if.then.i: ; preds = %trace_pflash_io_write.exit.i %mem.i = getelementptr inbounds nuw i8, ptr %opaque, i64 960 - tail call void @memory_region_rom_device_set_romd(ptr noundef nonnull %mem.i, i1 noundef zeroext false) #12 + tail call void @memory_region_rom_device_set_romd(ptr noundef nonnull %mem.i, i1 noundef zeroext false) #13 %.pr.i = load i8, ptr %wcycle.i, align 16 br label %if.end.i @@ -1508,16 +1507,16 @@ if.then.i.i116.i: ; preds = %land.lhs.true5.i.i1 br i1 %tobool7.i.i117.i, label %if.then8.i.i119.i, label %if.else.i.i118.i if.then8.i.i119.i: ; preds = %if.then.i.i116.i - %call9.i.i120.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i109.i, ptr noundef null) #12 - %call10.i.i121.i = tail call i32 @qemu_get_thread_id() #12 + %call9.i.i120.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i109.i, ptr noundef null) #13 + %call10.i.i121.i = tail call i32 @qemu_get_thread_id() #13 %17 = load i64, ptr %_now.i.i109.i, align 8 %tv_usec.i.i122.i = getelementptr inbounds nuw i8, ptr %_now.i.i109.i, i64 8 %18 = load i64, ptr %tv_usec.i.i122.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.59, i32 noundef %call10.i.i121.i, i64 noundef %17, i64 noundef %18, ptr noundef %12, ptr noundef nonnull @.str.40) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.59, i32 noundef %call10.i.i121.i, i64 noundef %17, i64 noundef %18, ptr noundef %12, ptr noundef nonnull @.str.40) #13 br label %trace_pflash_write.exit.i if.else.i.i118.i: ; preds = %if.then.i.i116.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.60, ptr noundef %12, ptr noundef nonnull @.str.40) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.60, ptr noundef %12, ptr noundef nonnull @.str.40) #13 br label %trace_pflash_write.exit.i trace_pflash_write.exit.i: ; preds = %if.else.i.i118.i, %if.then8.i.i119.i, %land.lhs.true5.i.i113.i, %sw.bb6.i @@ -1603,7 +1602,7 @@ sw.bb37.i: ; preds = %sw.bb.i br i1 %cmp.i.not.i, label %do.end.i, label %if.then42.i if.then42.i: ; preds = %sw.bb37.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.47, ptr noundef nonnull @__func__.pflash_write) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.47, ptr noundef nonnull @__func__.pflash_write) #13 br label %do.end.i do.end.i: ; preds = %if.then42.i, %sw.bb37.i @@ -1666,16 +1665,16 @@ if.then.i.i130.i: ; preds = %land.lhs.true5.i.i1 br i1 %tobool7.i.i131.i, label %if.then8.i.i133.i, label %if.else.i.i132.i if.then8.i.i133.i: ; preds = %if.then.i.i130.i - %call9.i.i134.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i123.i, ptr noundef null) #12 - %call10.i.i135.i = tail call i32 @qemu_get_thread_id() #12 + %call9.i.i134.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i123.i, ptr noundef null) #13 + %call10.i.i135.i = tail call i32 @qemu_get_thread_id() #13 %47 = load i64, ptr %_now.i.i123.i, align 8 %tv_usec.i.i136.i = getelementptr inbounds nuw i8, ptr %_now.i.i123.i, i64 8 %48 = load i64, ptr %tv_usec.i.i136.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.59, i32 noundef %call10.i.i135.i, i64 noundef %47, i64 noundef %48, ptr noundef %42, ptr noundef nonnull @.str.50) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.59, i32 noundef %call10.i.i135.i, i64 noundef %47, i64 noundef %48, ptr noundef %42, ptr noundef nonnull @.str.50) #13 br label %trace_pflash_write.exit137.i if.else.i.i132.i: ; preds = %if.then.i.i130.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.60, ptr noundef %42, ptr noundef nonnull @.str.50) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.60, ptr noundef %42, ptr noundef nonnull @.str.50) #13 br label %trace_pflash_write.exit137.i trace_pflash_write.exit137.i: ; preds = %if.else.i.i132.i, %if.then8.i.i133.i, %land.lhs.true5.i.i127.i, %sw.bb57.i @@ -1704,14 +1703,14 @@ if.then.i.i: ; preds = %if.then61.i %storage.i.i = getelementptr inbounds nuw i8, ptr %opaque, i64 1240 %52 = load ptr, ptr %storage.i.i, align 8 %add.ptr.i.i = getelementptr i8, ptr %52, i64 %conv8.i.i - %call.i.i = tail call i32 @blk_pwrite(ptr noundef nonnull %50, i64 noundef %conv8.i.i, i64 noundef %conv10.i.i, ptr noundef %add.ptr.i.i, i32 noundef 0) #12 + %call.i.i = tail call i32 @blk_pwrite(ptr noundef nonnull %50, i64 noundef %conv8.i.i, i64 noundef %conv10.i.i, ptr noundef %add.ptr.i.i, i32 noundef 0) #13 %cmp.i138.i = icmp slt i32 %call.i.i, 0 br i1 %cmp.i138.i, label %if.then12.i.i, label %if.end68.i if.then12.i.i: ; preds = %if.then.i.i %sub13.i.i = sub i32 0, %call.i.i - %call14.i.i = tail call ptr @strerror(i32 noundef %sub13.i.i) #12 - tail call void (ptr, ...) @error_report(ptr noundef nonnull @.str.63, ptr noundef %call14.i.i) #12 + %call14.i.i = tail call ptr @strerror(i32 noundef %sub13.i.i) #13 + tail call void (ptr, ...) @error_report(ptr noundef nonnull @.str.63, ptr noundef %call14.i.i) #13 br label %if.end68.i if.else63.i: ; preds = %trace_pflash_write.exit137.i @@ -1754,7 +1753,7 @@ if.then92.i: ; preds = %sw.bb90.i br i1 %or.cond.i.i, label %extract32.exit.i, label %if.else.i.i if.else.i.i: ; preds = %if.then92.i - tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 338, ptr noundef nonnull @__PRETTY_FUNCTION__.extract32) #13 + tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 338, ptr noundef nonnull @__PRETTY_FUNCTION__.extract32) #14 unreachable extract32.exit.i: ; preds = %if.then92.i @@ -1772,7 +1771,7 @@ if.else96.i: ; preds = %sw.bb90.i br i1 %or.cond.i140.i, label %if.end100.i, label %if.else.i141.i if.else.i141.i: ; preds = %if.else96.i - tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 338, ptr noundef nonnull @__PRETTY_FUNCTION__.extract32) #13 + tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 338, ptr noundef nonnull @__PRETTY_FUNCTION__.extract32) #14 unreachable if.end100.i: ; preds = %if.else96.i, %extract32.exit.i @@ -1801,16 +1800,16 @@ if.then.i.i153.i: ; preds = %land.lhs.true5.i.i1 br i1 %tobool7.i.i154.i, label %if.then8.i.i156.i, label %if.else.i.i155.i if.then8.i.i156.i: ; preds = %if.then.i.i153.i - %call9.i.i157.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i146.i, ptr noundef null) #12 - %call10.i.i158.i = tail call i32 @qemu_get_thread_id() #12 + %call9.i.i157.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i146.i, ptr noundef null) #13 + %call10.i.i158.i = tail call i32 @qemu_get_thread_id() #13 %68 = load i64, ptr %_now.i.i146.i, align 8 %tv_usec.i.i159.i = getelementptr inbounds nuw i8, ptr %_now.i.i146.i, i64 8 %69 = load i64, ptr %tv_usec.i.i159.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.66, i32 noundef %call10.i.i158.i, i64 noundef %68, i64 noundef %69, ptr noundef %63, i32 noundef %value.addr.0.i) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.66, i32 noundef %call10.i.i158.i, i64 noundef %68, i64 noundef %69, ptr noundef %63, i32 noundef %value.addr.0.i) #13 br label %trace_pflash_write_block.exit.i if.else.i.i155.i: ; preds = %if.then.i.i153.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.67, ptr noundef %63, i32 noundef %value.addr.0.i) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.67, ptr noundef %63, i32 noundef %value.addr.0.i) #13 br label %trace_pflash_write_block.exit.i trace_pflash_write_block.exit.i: ; preds = %if.else.i.i155.i, %if.then8.i.i156.i, %land.lhs.true5.i.i150.i, %if.end100.i @@ -1919,16 +1918,16 @@ if.then.i.i167.i: ; preds = %land.lhs.true5.i.i1 br i1 %tobool7.i.i168.i, label %if.then8.i.i170.i, label %if.else.i.i169.i if.then8.i.i170.i: ; preds = %if.then.i.i167.i - %call9.i.i171.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i160.i, ptr noundef null) #12 - %call10.i.i172.i = tail call i32 @qemu_get_thread_id() #12 + %call9.i.i171.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i160.i, ptr noundef null) #13 + %call10.i.i172.i = tail call i32 @qemu_get_thread_id() #13 %90 = load i64, ptr %_now.i.i160.i, align 8 %tv_usec.i.i173.i = getelementptr inbounds nuw i8, ptr %_now.i.i160.i, i64 8 %91 = load i64, ptr %tv_usec.i.i173.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.59, i32 noundef %call10.i.i172.i, i64 noundef %90, i64 noundef %91, ptr noundef %85, ptr noundef nonnull @.str.53) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.59, i32 noundef %call10.i.i172.i, i64 noundef %90, i64 noundef %91, ptr noundef %85, ptr noundef nonnull @.str.53) #13 br label %trace_pflash_write.exit174.i if.else.i.i169.i: ; preds = %if.then.i.i167.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.60, ptr noundef %85, ptr noundef nonnull @.str.53) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.60, ptr noundef %85, ptr noundef nonnull @.str.53) #13 br label %trace_pflash_write.exit174.i trace_pflash_write.exit174.i: ; preds = %if.else.i.i169.i, %if.then8.i.i170.i, %land.lhs.true5.i.i164.i, %if.then163.i @@ -1988,7 +1987,7 @@ do.body200.i: ; preds = %sw.bb189.i br i1 %cmp.i176.not.i, label %mode_read_array.i, label %if.then208.i if.then208.i: ; preds = %do.body200.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.54, ptr noundef nonnull @__func__.pflash_write) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.54, ptr noundef nonnull @__func__.pflash_write) #13 br label %mode_read_array.i sw.default214.i: ; preds = %if.end.i @@ -2013,16 +2012,16 @@ if.then.i.i184.i: ; preds = %land.lhs.true5.i.i1 br i1 %tobool7.i.i185.i, label %if.then8.i.i187.i, label %if.else.i.i186.i if.then8.i.i187.i: ; preds = %if.then.i.i184.i - %call9.i.i188.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i177.i, ptr noundef null) #12 - %call10.i.i189.i = tail call i32 @qemu_get_thread_id() #12 + %call9.i.i188.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i177.i, ptr noundef null) #13 + %call10.i.i189.i = tail call i32 @qemu_get_thread_id() #13 %107 = load i64, ptr %_now.i.i177.i, align 8 %tv_usec.i.i190.i = getelementptr inbounds nuw i8, ptr %_now.i.i177.i, i64 8 %108 = load i64, ptr %tv_usec.i.i190.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.59, i32 noundef %call10.i.i189.i, i64 noundef %107, i64 noundef %108, ptr noundef %102, ptr noundef nonnull @.str.55) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.59, i32 noundef %call10.i.i189.i, i64 noundef %107, i64 noundef %108, ptr noundef %102, ptr noundef nonnull @.str.55) #13 br label %trace_pflash_write.exit191.i if.else.i.i186.i: ; preds = %if.then.i.i184.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.60, ptr noundef %102, ptr noundef nonnull @.str.55) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.60, ptr noundef %102, ptr noundef nonnull @.str.55) #13 br label %trace_pflash_write.exit191.i trace_pflash_write.exit191.i: ; preds = %if.else.i.i186.i, %if.then8.i.i187.i, %land.lhs.true5.i.i181.i, %sw.default214.i @@ -2040,7 +2039,7 @@ if.then225.i: ; preds = %do.body217.i %cmd228.i = getelementptr inbounds nuw i8, ptr %opaque, i64 850 %110 = load i8, ptr %cmd228.i, align 2 %conv229.i = zext i8 %110 to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.56, ptr noundef nonnull @__func__.pflash_write, i64 noundef %addr, i32 noundef %conv227.i, i32 noundef %conv229.i, i32 noundef %conv) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.56, ptr noundef nonnull @__func__.pflash_write, i64 noundef %addr, i32 noundef %conv227.i, i32 noundef %conv229.i, i32 noundef %conv) #13 br label %mode_read_array.i mode_read_array.i: ; preds = %if.then225.i, %do.body217.i, %trace_pflash_write.exit191.i, %if.then208.i, %do.body200.i, %sw.bb134.i, %if.else130.i, %sw.bb105.i, %sw.bb74.i, %sw.bb50.i, %sw.bb48.i, %sw.bb24.i, %sw.bb.i @@ -2065,22 +2064,22 @@ if.then.i.i201.i: ; preds = %land.lhs.true5.i.i1 br i1 %tobool7.i.i202.i, label %if.then8.i.i204.i, label %if.else.i.i203.i if.then8.i.i204.i: ; preds = %if.then.i.i201.i - %call9.i.i205.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i194.i, ptr noundef null) #12 - %call10.i.i206.i = tail call i32 @qemu_get_thread_id() #12 + %call9.i.i205.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i194.i, ptr noundef null) #13 + %call10.i.i206.i = tail call i32 @qemu_get_thread_id() #13 %116 = load i64, ptr %_now.i.i194.i, align 8 %tv_usec.i.i207.i = getelementptr inbounds nuw i8, ptr %_now.i.i194.i, i64 8 %117 = load i64, ptr %tv_usec.i.i207.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.68, i32 noundef %call10.i.i206.i, i64 noundef %116, i64 noundef %117, ptr noundef %111) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.68, i32 noundef %call10.i.i206.i, i64 noundef %116, i64 noundef %117, ptr noundef %111) #13 br label %trace_pflash_mode_read_array.exit.i if.else.i.i203.i: ; preds = %if.then.i.i201.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.69, ptr noundef %111) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.69, ptr noundef %111) #13 br label %trace_pflash_mode_read_array.exit.i trace_pflash_mode_read_array.exit.i: ; preds = %if.else.i.i203.i, %if.then8.i.i204.i, %land.lhs.true5.i.i198.i, %mode_read_array.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %_now.i.i194.i) %mem233.i = getelementptr inbounds nuw i8, ptr %opaque, i64 960 - tail call void @memory_region_rom_device_set_romd(ptr noundef nonnull %mem233.i, i1 noundef zeroext true) #12 + tail call void @memory_region_rom_device_set_romd(ptr noundef nonnull %mem233.i, i1 noundef zeroext true) #13 store i8 0, ptr %wcycle.i, align 16 %cmd235.i = getelementptr inbounds nuw i8, ptr %opaque, i64 850 store i8 0, ptr %cmd235.i, align 2 @@ -2159,7 +2158,7 @@ if.else33: ; preds = %sw.bb13 br label %sw.epilog sw.default: ; preds = %entry - tail call void @abort() #13 + tail call void @abort() #14 unreachable sw.epilog: ; preds = %if.then15, %if.else33, %if.then, %if.else, %sw.bb @@ -2186,16 +2185,16 @@ if.then.i.i: ; preds = %land.lhs.true5.i.i br i1 %tobool7.i.i, label %if.then8.i.i, label %if.else.i.i if.then8.i.i: ; preds = %if.then.i.i - %call9.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i, ptr noundef null) #12 - %call10.i.i = tail call i32 @qemu_get_thread_id() #12 + %call9.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i, ptr noundef null) #13 + %call10.i.i = tail call i32 @qemu_get_thread_id() #13 %16 = load i64, ptr %_now.i.i, align 8 %tv_usec.i.i = getelementptr inbounds nuw i8, ptr %_now.i.i, i64 8 %17 = load i64, ptr %tv_usec.i.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.22, i32 noundef %call10.i.i, i64 noundef %16, i64 noundef %17, ptr noundef %11, i64 noundef %offset, i32 noundef %width, i32 noundef %ret.0) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.22, i32 noundef %call10.i.i, i64 noundef %16, i64 noundef %17, ptr noundef %11, i64 noundef %offset, i32 noundef %width, i32 noundef %ret.0) #13 br label %trace_pflash_data_read.exit if.else.i.i: ; preds = %if.then.i.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.23, ptr noundef %11, i64 noundef %offset, i32 noundef %width, i32 noundef %ret.0) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.23, ptr noundef %11, i64 noundef %offset, i32 noundef %width, i32 noundef %ret.0) #13 br label %trace_pflash_data_read.exit trace_pflash_data_read.exit: ; preds = %sw.epilog, %land.lhs.true5.i.i, %if.then8.i.i, %if.else.i.i @@ -2230,18 +2229,18 @@ if.then.i: ; preds = %land.lhs.true5.i br i1 %tobool7.i, label %if.then8.i, label %if.else.i if.then8.i: ; preds = %if.then.i - %call9.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i, ptr noundef null) #12 - %call10.i = tail call i32 @qemu_get_thread_id() #12 + %call9.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i, ptr noundef null) #13 + %call10.i = tail call i32 @qemu_get_thread_id() #13 %4 = load i64, ptr %_now.i, align 8 %tv_usec.i = getelementptr inbounds nuw i8, ptr %_now.i, i64 8 %5 = load i64, ptr %tv_usec.i, align 8 %conv11.i = zext i16 %id to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.28, i32 noundef %call10.i, i64 noundef %4, i64 noundef %5, ptr noundef %name, i32 noundef %conv11.i) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.28, i32 noundef %call10.i, i64 noundef %4, i64 noundef %5, ptr noundef %name, i32 noundef %conv11.i) #13 br label %_nocheck__trace_pflash_manufacturer_id.exit if.else.i: ; preds = %if.then.i %conv12.i = zext i16 %id to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.29, ptr noundef %name, i32 noundef %conv12.i) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.29, ptr noundef %name, i32 noundef %conv12.i) #13 br label %_nocheck__trace_pflash_manufacturer_id.exit _nocheck__trace_pflash_manufacturer_id.exit: ; preds = %entry, %land.lhs.true5.i, %if.then8.i, %if.else.i @@ -2273,18 +2272,18 @@ if.then.i: ; preds = %land.lhs.true5.i br i1 %tobool7.i, label %if.then8.i, label %if.else.i if.then8.i: ; preds = %if.then.i - %call9.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i, ptr noundef null) #12 - %call10.i = tail call i32 @qemu_get_thread_id() #12 + %call9.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i, ptr noundef null) #13 + %call10.i = tail call i32 @qemu_get_thread_id() #13 %4 = load i64, ptr %_now.i, align 8 %tv_usec.i = getelementptr inbounds nuw i8, ptr %_now.i, i64 8 %5 = load i64, ptr %tv_usec.i, align 8 %conv11.i = zext i16 %id to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.30, i32 noundef %call10.i, i64 noundef %4, i64 noundef %5, ptr noundef %name, i32 noundef %conv11.i) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.30, i32 noundef %call10.i, i64 noundef %4, i64 noundef %5, ptr noundef %name, i32 noundef %conv11.i) #13 br label %_nocheck__trace_pflash_device_id.exit if.else.i: ; preds = %if.then.i %conv12.i = zext i16 %id to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.31, ptr noundef %name, i32 noundef %conv12.i) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.31, ptr noundef %name, i32 noundef %conv12.i) #13 br label %_nocheck__trace_pflash_device_id.exit _nocheck__trace_pflash_device_id.exit: ; preds = %entry, %land.lhs.true5.i, %if.then8.i, %if.else.i @@ -2316,16 +2315,16 @@ if.then.i: ; preds = %land.lhs.true5.i br i1 %tobool7.i, label %if.then8.i, label %if.else.i if.then8.i: ; preds = %if.then.i - %call9.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i, ptr noundef null) #12 - %call10.i = tail call i32 @qemu_get_thread_id() #12 + %call9.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i, ptr noundef null) #13 + %call10.i = tail call i32 @qemu_get_thread_id() #13 %4 = load i64, ptr %_now.i, align 8 %tv_usec.i = getelementptr inbounds nuw i8, ptr %_now.i, i64 8 %5 = load i64, ptr %tv_usec.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.32, i32 noundef %call10.i, i64 noundef %4, i64 noundef %5, ptr noundef %name, i64 noundef %offset) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.32, i32 noundef %call10.i, i64 noundef %4, i64 noundef %5, ptr noundef %name, i64 noundef %offset) #13 br label %_nocheck__trace_pflash_device_info.exit if.else.i: ; preds = %if.then.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.33, ptr noundef %name, i64 noundef %offset) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.33, ptr noundef %name, i64 noundef %offset) #13 br label %_nocheck__trace_pflash_device_info.exit _nocheck__trace_pflash_device_info.exit: ; preds = %entry, %land.lhs.true5.i, %if.then8.i, %if.else.i @@ -2360,16 +2359,16 @@ if.then.i: ; preds = %land.lhs.true5.i br i1 %tobool7.i, label %if.then8.i, label %if.else.i if.then8.i: ; preds = %if.then.i - %call9.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i, ptr noundef null) #12 - %call10.i = tail call i32 @qemu_get_thread_id() #12 + %call9.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i, ptr noundef null) #13 + %call10.i = tail call i32 @qemu_get_thread_id() #13 %4 = load i64, ptr %_now.i, align 8 %tv_usec.i = getelementptr inbounds nuw i8, ptr %_now.i, i64 8 %5 = load i64, ptr %tv_usec.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.59, i32 noundef %call10.i, i64 noundef %4, i64 noundef %5, ptr noundef %name, ptr noundef %str) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.59, i32 noundef %call10.i, i64 noundef %4, i64 noundef %5, ptr noundef %name, ptr noundef %str) #13 br label %_nocheck__trace_pflash_write.exit if.else.i: ; preds = %if.then.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.60, ptr noundef %name, ptr noundef %str) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.60, ptr noundef %name, ptr noundef %str) #13 br label %_nocheck__trace_pflash_write.exit _nocheck__trace_pflash_write.exit: ; preds = %entry, %land.lhs.true5.i, %if.then8.i, %if.else.i @@ -2401,16 +2400,16 @@ if.then.i: ; preds = %land.lhs.true5.i br i1 %tobool7.i, label %if.then8.i, label %if.else.i if.then8.i: ; preds = %if.then.i - %call9.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i, ptr noundef null) #12 - %call10.i = tail call i32 @qemu_get_thread_id() #12 + %call9.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i, ptr noundef null) #13 + %call10.i = tail call i32 @qemu_get_thread_id() #13 %4 = load i64, ptr %_now.i, align 8 %tv_usec.i = getelementptr inbounds nuw i8, ptr %_now.i, i64 8 %5 = load i64, ptr %tv_usec.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.61, i32 noundef %call10.i, i64 noundef %4, i64 noundef %5, ptr noundef %name, i64 noundef %offset, i64 noundef %len) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.61, i32 noundef %call10.i, i64 noundef %4, i64 noundef %5, ptr noundef %name, i64 noundef %offset, i64 noundef %len) #13 br label %_nocheck__trace_pflash_write_block_erase.exit if.else.i: ; preds = %if.then.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.62, ptr noundef %name, i64 noundef %offset, i64 noundef %len) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.62, ptr noundef %name, i64 noundef %offset, i64 noundef %len) #13 br label %_nocheck__trace_pflash_write_block_erase.exit _nocheck__trace_pflash_write_block_erase.exit: ; preds = %entry, %land.lhs.true5.i, %if.then8.i, %if.else.i @@ -2440,14 +2439,14 @@ if.then: ; preds = %entry %storage = getelementptr inbounds nuw i8, ptr %pfl, i64 1240 %2 = load ptr, ptr %storage, align 8 %add.ptr = getelementptr i8, ptr %2, i64 %conv8 - %call = tail call i32 @blk_pwrite(ptr noundef nonnull %0, i64 noundef %conv8, i64 noundef %conv10, ptr noundef %add.ptr, i32 noundef 0) #12 + %call = tail call i32 @blk_pwrite(ptr noundef nonnull %0, i64 noundef %conv8, i64 noundef %conv10, ptr noundef %add.ptr, i32 noundef 0) #13 %cmp = icmp slt i32 %call, 0 br i1 %cmp, label %if.then12, label %if.end15 if.then12: ; preds = %if.then %sub13 = sub i32 0, %call - %call14 = tail call ptr @strerror(i32 noundef %sub13) #12 - tail call void (ptr, ...) @error_report(ptr noundef nonnull @.str.63, ptr noundef %call14) #12 + %call14 = tail call ptr @strerror(i32 noundef %sub13) #13 + tail call void (ptr, ...) @error_report(ptr noundef nonnull @.str.63, ptr noundef %call14) #13 br label %if.end15 if.end15: ; preds = %if.then, %if.then12, %entry @@ -2484,16 +2483,16 @@ if.then.i.i: ; preds = %land.lhs.true5.i.i br i1 %tobool7.i.i, label %if.then8.i.i, label %if.else.i.i if.then8.i.i: ; preds = %if.then.i.i - %call9.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i, ptr noundef null) #12 - %call10.i.i = tail call i32 @qemu_get_thread_id() #12 + %call9.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i, ptr noundef null) #13 + %call10.i.i = tail call i32 @qemu_get_thread_id() #13 %7 = load i64, ptr %_now.i.i, align 8 %tv_usec.i.i = getelementptr inbounds nuw i8, ptr %_now.i.i, i64 8 %8 = load i64, ptr %tv_usec.i.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.64, i32 noundef %call10.i.i, i64 noundef %7, i64 noundef %8, ptr noundef %1, i64 noundef %offset, i32 noundef %width, i32 noundef %value, i64 noundef %2) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.64, i32 noundef %call10.i.i, i64 noundef %7, i64 noundef %8, ptr noundef %1, i64 noundef %offset, i32 noundef %width, i32 noundef %value, i64 noundef %2) #13 br label %trace_pflash_data_write.exit if.else.i.i: ; preds = %if.then.i.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.65, ptr noundef %1, i64 noundef %offset, i32 noundef %width, i32 noundef %value, i64 noundef %2) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.65, ptr noundef %1, i64 noundef %offset, i32 noundef %width, i32 noundef %value, i64 noundef %2) #13 br label %trace_pflash_data_write.exit trace_pflash_data_write.exit: ; preds = %entry, %land.lhs.true5.i.i, %if.then8.i.i, %if.else.i.i @@ -2592,7 +2591,7 @@ entry: br i1 %tobool, label %if.end, label %if.then if.then: ; preds = %entry - %call = tail call ptr @qemu_add_vm_change_state_handler(ptr noundef nonnull @postload_update_cb, ptr noundef nonnull %opaque) #12 + %call = tail call ptr @qemu_add_vm_change_state_handler(ptr noundef nonnull @postload_update_cb, ptr noundef nonnull %opaque) #13 %vmstate = getelementptr inbounds nuw i8, ptr %opaque, i64 1248 store ptr %call, ptr %vmstate, align 16 br label %if.end @@ -2609,7 +2608,7 @@ entry: %_now.i.i = alloca %struct.timeval, align 8 %vmstate = getelementptr inbounds nuw i8, ptr %opaque, i64 1248 %0 = load ptr, ptr %vmstate, align 16 - tail call void @qemu_del_vm_change_state_handler(ptr noundef %0) #12 + tail call void @qemu_del_vm_change_state_handler(ptr noundef %0) #13 store ptr null, ptr %vmstate, align 16 %name = getelementptr inbounds nuw i8, ptr %opaque, i64 1232 %1 = load ptr, ptr %name, align 16 @@ -2633,16 +2632,16 @@ if.then.i.i: ; preds = %land.lhs.true5.i.i br i1 %tobool7.i.i, label %if.then8.i.i, label %if.else.i.i if.then8.i.i: ; preds = %if.then.i.i - %call9.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i, ptr noundef null) #12 - %call10.i.i = tail call i32 @qemu_get_thread_id() #12 + %call9.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i, ptr noundef null) #13 + %call10.i.i = tail call i32 @qemu_get_thread_id() #13 %6 = load i64, ptr %_now.i.i, align 8 %tv_usec.i.i = getelementptr inbounds nuw i8, ptr %_now.i.i, i64 8 %7 = load i64, ptr %tv_usec.i.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.79, i32 noundef %call10.i.i, i64 noundef %6, i64 noundef %7, ptr noundef %1) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.79, i32 noundef %call10.i.i, i64 noundef %6, i64 noundef %7, ptr noundef %1) #13 br label %trace_pflash_postload_cb.exit if.else.i.i: ; preds = %if.then.i.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.80, ptr noundef %1) #12 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.80, ptr noundef %1) #13 br label %trace_pflash_postload_cb.exit trace_pflash_postload_cb.exit: ; preds = %entry, %land.lhs.true5.i.i, %if.then8.i.i, %if.else.i.i @@ -2664,14 +2663,14 @@ if.then.i: ; preds = %trace_pflash_postlo %conv10.i = sext i32 %div410.i to i64 %storage.i = getelementptr inbounds nuw i8, ptr %opaque, i64 1240 %12 = load ptr, ptr %storage.i, align 8 - %call.i = tail call i32 @blk_pwrite(ptr noundef nonnull %8, i64 noundef 0, i64 noundef %conv10.i, ptr noundef %12, i32 noundef 0) #12 + %call.i = tail call i32 @blk_pwrite(ptr noundef nonnull %8, i64 noundef 0, i64 noundef %conv10.i, ptr noundef %12, i32 noundef 0) #13 %cmp.i = icmp slt i32 %call.i, 0 br i1 %cmp.i, label %if.then12.i, label %pflash_update.exit if.then12.i: ; preds = %if.then.i %sub13.i = sub i32 0, %call.i - %call14.i = tail call ptr @strerror(i32 noundef %sub13.i) #12 - tail call void (ptr, ...) @error_report(ptr noundef nonnull @.str.63, ptr noundef %call14.i) #12 + %call14.i = tail call ptr @strerror(i32 noundef %sub13.i) #13 + tail call void (ptr, ...) @error_report(ptr noundef nonnull @.str.63, ptr noundef %call14.i) #13 br label %pflash_update.exit pflash_update.exit: ; preds = %trace_pflash_postload_cb.exit, %if.then.i, %if.then12.i @@ -2688,6 +2687,9 @@ declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #11 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #11 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i32 @llvm.umax.i32(i32, i32) #12 + attributes #0 = { nounwind sspstrong uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { noreturn nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -2700,9 +2702,10 @@ attributes #8 = { mustprogress nocallback nofree nosync nounwind speculatable wi attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #10 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #11 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #12 = { nounwind } -attributes #13 = { noreturn nounwind } -attributes #14 = { cold noreturn nounwind } +attributes #12 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #13 = { nounwind } +attributes #14 = { noreturn nounwind } +attributes #15 = { cold noreturn nounwind } !llvm.module.flags = !{!0, !1, !2, !3, !4} diff --git a/bench/re2/optimized/compile.cc.ll b/bench/re2/optimized/compile.cc.ll index bbf3b41ce71..5c7ceb92220 100644 --- a/bench/re2/optimized/compile.cc.ll +++ b/bench/re2/optimized/compile.cc.ll @@ -4871,8 +4871,8 @@ if.else: ; preds = %if.end if.else6: ; preds = %if.else %sub = add nsw i64 %max_mem, -432 - %0 = tail call i64 @llvm.umin.i64(i64 %sub, i64 134217728) - %spec.store.select = lshr i64 %0, 3 + %div7 = lshr i64 %sub, 3 + %spec.store.select = tail call i64 @llvm.umin.i64(i64 %div7, i64 16777216) %conv = trunc nuw nsw i64 %spec.store.select to i32 br label %if.end15 @@ -4919,8 +4919,8 @@ if.else.i: ; preds = %if.end.i if.else6.i: ; preds = %if.else.i %sub.i = add nsw i64 %max_mem, -432 - %2 = call i64 @llvm.umin.i64(i64 %sub.i, i64 134217728) - %spec.store.select.i = lshr i64 %2, 3 + %div7.i = lshr i64 %sub.i, 3 + %spec.store.select.i = call i64 @llvm.umin.i64(i64 %div7.i, i64 16777216) %conv.i29 = trunc nuw nsw i64 %spec.store.select.i to i32 br label %invoke.cont1 @@ -4942,10 +4942,10 @@ invoke.cont3: ; preds = %invoke.cont1 br i1 %cmp, label %cleanup, label %if.end lpad: ; preds = %if.then3.i.i.i100.invoke, %_ZN3re28PODArrayINS_4Prog4InstEEC2Ei.exit.i78, %_ZN3re28PODArrayINS_4Prog4InstEEC2Ei.exit.i, %_ZN3re28Compiler9ByteRangeEiib.exit.i, %if.end.i.i, %if.end.i32, %invoke.cont8, %if.end57, %invoke.cont12, %invoke.cont5, %if.end, %invoke.cont1 - %3 = landingpad { ptr, i32 } + %2 = landingpad { ptr, i32 } cleanup call void @_ZN3re28CompilerD1Ev(ptr noundef nonnull align 8 dereferenceable(212) %c) #26 - resume { ptr, i32 } %3 + resume { ptr, i32 } %2 if.end: ; preds = %invoke.cont3 %call6 = invoke fastcc noundef zeroext i1 @_ZN3re2L13IsAnchorStartEPPNS_6RegexpEi(ptr noundef %sre, i32 noundef 0) @@ -4956,43 +4956,43 @@ invoke.cont5: ; preds = %if.end to label %invoke.cont8 unwind label %lpad invoke.cont8: ; preds = %invoke.cont5 - %4 = load ptr, ptr %sre, align 8 + %3 = load ptr, ptr %sre, align 8 store i32 0, ptr %agg.tmp, align 8 %agg.tmp.4.agg.tmp.4.agg.tmp.4.end.i.sroa_idx = getelementptr inbounds nuw i8, ptr %agg.tmp, i64 4 store i64 0, ptr %agg.tmp.4.agg.tmp.4.agg.tmp.4.end.i.sroa_idx, align 4 %agg.tmp.12.agg.tmp.12.agg.tmp.12.nullable.i.sroa_idx = getelementptr inbounds nuw i8, ptr %agg.tmp, i64 12 store i8 0, ptr %agg.tmp.12.agg.tmp.12.agg.tmp.12.nullable.i.sroa_idx, align 4 - %5 = load i32, ptr %max_ninst_5.i, align 4 - %mul = shl nsw i32 %5, 1 + %4 = load i32, ptr %max_ninst_5.i, align 4 + %mul = shl nsw i32 %4, 1 %agg.tmp.0.agg.tmp.0.agg.tmp.0. = load i64, ptr %agg.tmp, align 8 %agg.tmp.8.agg.tmp.8.agg.tmp.8..sroa_idx = getelementptr inbounds nuw i8, ptr %agg.tmp, i64 8 %agg.tmp.8.agg.tmp.8.agg.tmp.8. = load i64, ptr %agg.tmp.8.agg.tmp.8.agg.tmp.8..sroa_idx, align 8 %max_visits_.i = getelementptr inbounds nuw i8, ptr %c, i64 92 store i32 %mul, ptr %max_visits_.i, align 4 - %call.i30 = invoke { i64, i64 } @_ZN3re26Regexp6WalkerINS_4FragEE12WalkInternalEPS0_S2_b(ptr noundef nonnull align 8 dereferenceable(96) %c, ptr noundef %4, i64 %agg.tmp.0.agg.tmp.0.agg.tmp.0., i64 %agg.tmp.8.agg.tmp.8.agg.tmp.8., i1 noundef zeroext false) + %call.i30 = invoke { i64, i64 } @_ZN3re26Regexp6WalkerINS_4FragEE12WalkInternalEPS0_S2_b(ptr noundef nonnull align 8 dereferenceable(96) %c, ptr noundef %3, i64 %agg.tmp.0.agg.tmp.0.agg.tmp.0., i64 %agg.tmp.8.agg.tmp.8.agg.tmp.8., i1 noundef zeroext false) to label %invoke.cont12 unwind label %lpad invoke.cont12: ; preds = %invoke.cont8 - %6 = extractvalue { i64, i64 } %call.i30, 0 - %7 = extractvalue { i64, i64 } %call.i30, 1 - %all.sroa.12.8.extract.shift = and i64 %7, -1099511627776 - invoke void @_ZN3re26Regexp6DecrefEv(ptr noundef nonnull align 8 dereferenceable(40) %4) + %5 = extractvalue { i64, i64 } %call.i30, 0 + %6 = extractvalue { i64, i64 } %call.i30, 1 + %all.sroa.12.8.extract.shift = and i64 %6, -1099511627776 + invoke void @_ZN3re26Regexp6DecrefEv(ptr noundef nonnull align 8 dereferenceable(40) %3) to label %invoke.cont14 unwind label %lpad invoke.cont14: ; preds = %invoke.cont12 %failed_ = getelementptr inbounds nuw i8, ptr %c, i64 104 - %8 = load i8, ptr %failed_, align 8 - %tobool15 = trunc i8 %8 to i1 + %7 = load i8, ptr %failed_, align 8 + %tobool15 = trunc i8 %7 to i1 br i1 %tobool15, label %cleanup, label %lor.lhs.false.i lor.lhs.false.i: ; preds = %invoke.cont14 store i8 0, ptr %reversed_, align 8 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %retval.i) %ninst_.i = getelementptr inbounds nuw i8, ptr %c, i64 136 - %9 = load i32, ptr %ninst_.i, align 8 - %add.i = add nsw i32 %9, 1 - %10 = load i32, ptr %max_ninst_5.i, align 4 - %cmp.i48.not = icmp slt i32 %9, %10 + %8 = load i32, ptr %ninst_.i, align 8 + %add.i = add nsw i32 %8, 1 + %9 = load i32, ptr %max_ninst_5.i, align 4 + %cmp.i48.not = icmp slt i32 %8, %9 br i1 %cmp.i48.not, label %if.end.i49, label %call.i.noexc.thread call.i.noexc.thread: ; preds = %lor.lhs.false.i @@ -5001,18 +5001,18 @@ call.i.noexc.thread: ; preds = %lor.lhs.false.i if.end.i49: ; preds = %lor.lhs.false.i %inst_.i = getelementptr inbounds nuw i8, ptr %c, i64 120 - %11 = load i32, ptr %inst_.i, align 8 - %cmp5.i.not = icmp slt i32 %9, %11 + %10 = load i32, ptr %inst_.i, align 8 + %cmp5.i.not = icmp slt i32 %8, %10 br i1 %cmp5.i.not, label %call.i.noexc, label %if.then6.i if.then6.i: ; preds = %if.end.i49 - %cmp9.i = icmp eq i32 %11, 0 - %spec.store.select.i50 = select i1 %cmp9.i, i32 8, i32 %11 + %cmp9.i = icmp eq i32 %10, 0 + %spec.store.select.i50 = select i1 %cmp9.i, i32 8, i32 %10 br label %while.cond.i while.cond.i: ; preds = %while.cond.i, %if.then6.i %cap.0.i = phi i32 [ %spec.store.select.i50, %if.then6.i ], [ %mul.i, %while.cond.i ] - %cmp14.i.not = icmp slt i32 %9, %cap.0.i + %cmp14.i.not = icmp slt i32 %8, %cap.0.i %mul.i = shl nsw i32 %cap.0.i, 1 br i1 %cmp14.i.not, label %while.end.i, label %while.cond.i, !llvm.loop !4 @@ -5028,14 +5028,14 @@ _ZN3re28PODArrayINS_4Prog4InstEEC2Ei.exit.i: ; preds = %while.end.i call5.i3.i.i.noexc: ; preds = %_ZN3re28PODArrayINS_4Prog4InstEEC2Ei.exit.i %add.ptr.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %c, i64 128 - %12 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i, align 8 - %cmp17.not.i = icmp eq ptr %12, null - %idx.ext15.i = sext i32 %9 to i64 + %11 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i, align 8 + %cmp17.not.i = icmp eq ptr %11, null + %idx.ext15.i = sext i32 %8 to i64 br i1 %cmp17.not.i, label %if.end26.thread.i, label %if.then.i.i.i.i.i.i if.end26.thread.i: ; preds = %call5.i3.i.i.noexc %add.ptr16.i = getelementptr inbounds %"class.re2::Prog::Inst", ptr %call5.i3.i.i55, i64 %idx.ext15.i - %sub17.i = sub nsw i32 %cap.0.i, %9 + %sub17.i = sub nsw i32 %cap.0.i, %8 %conv3118.i = sext i32 %sub17.i to i64 %mul3219.i = shl nsw i64 %conv3118.i, 3 call void @llvm.memset.p0.i64(ptr nonnull align 4 %add.ptr16.i, i8 0, i64 %mul3219.i, i1 false) @@ -5044,29 +5044,29 @@ if.end26.thread.i: ; preds = %call5.i3.i.i.noexc if.then.i.i.i.i.i.i: ; preds = %call5.i3.i.i.noexc %mul25.i = shl nsw i64 %idx.ext15.i, 3 - call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %call5.i3.i.i55, ptr nonnull align 4 %12, i64 %mul25.i, i1 false) + call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %call5.i3.i.i55, ptr nonnull align 4 %11, i64 %mul25.i, i1 false) %add.ptr.i = getelementptr inbounds %"class.re2::Prog::Inst", ptr %call5.i3.i.i55, i64 %idx.ext15.i - %sub.i52 = sub nsw i32 %cap.0.i, %9 + %sub.i52 = sub nsw i32 %cap.0.i, %8 %conv31.i = sext i32 %sub.i52 to i64 %mul32.i = shl nsw i64 %conv31.i, 3 call void @llvm.memset.p0.i64(ptr nonnull align 4 %add.ptr.i, i8 0, i64 %mul32.i, i1 false) store ptr %call5.i3.i.i55, ptr %add.ptr.i.i.i.i.i.i.i, align 8 - call void @_ZdlPv(ptr noundef nonnull %12) #25 + call void @_ZdlPv(ptr noundef nonnull %11) #25 %.pre.pre.i = load i32, ptr %ninst_.i, align 8 %.pre22.i = add nsw i32 %.pre.pre.i, 1 br label %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i _ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i: ; preds = %if.then.i.i.i.i.i.i, %if.end26.thread.i %.pre21.pre-phi.i = phi i32 [ %.pre22.i, %if.then.i.i.i.i.i.i ], [ %add.i, %if.end26.thread.i ] - %.pre.i = phi i32 [ %.pre.pre.i, %if.then.i.i.i.i.i.i ], [ %9, %if.end26.thread.i ] + %.pre.i = phi i32 [ %.pre.pre.i, %if.then.i.i.i.i.i.i ], [ %8, %if.end26.thread.i ] store i32 %cap.0.i, ptr %inst_.i, align 8 br label %call.i.noexc call.i.noexc: ; preds = %if.end.i49, %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i %add38.pre-phi.i = phi i32 [ %.pre21.pre-phi.i, %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i ], [ %add.i, %if.end.i49 ] - %13 = phi i32 [ %.pre.i, %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i ], [ %9, %if.end.i49 ] + %12 = phi i32 [ %.pre.i, %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i ], [ %8, %if.end.i49 ] store i32 %add38.pre-phi.i, ptr %ninst_.i, align 8 - %cmp.i31 = icmp slt i32 %13, 0 + %cmp.i31 = icmp slt i32 %12, 0 br i1 %cmp.i31, label %if.then.i33, label %if.end.i32 if.then.i33: ; preds = %call.i.noexc.thread, %call.i.noexc @@ -5083,15 +5083,15 @@ if.then.i33: ; preds = %call.i.noexc.thread br label %invoke.cont21 if.end.i32: ; preds = %call.i.noexc - %conv.i.i = zext nneg i32 %13 to i64 + %conv.i.i = zext nneg i32 %12 to i64 %add.ptr.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %c, i64 128 - %14 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i.i, align 8 - %arrayidx.i.i.i = getelementptr inbounds nuw %"class.re2::Prog::Inst", ptr %14, i64 %conv.i.i + %13 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i.i, align 8 + %arrayidx.i.i.i = getelementptr inbounds nuw %"class.re2::Prog::Inst", ptr %13, i64 %conv.i.i invoke void @_ZN3re24Prog4Inst9InitMatchEi(ptr noundef nonnull align 4 dereferenceable(8) %arrayidx.i.i.i, i32 noundef 0) to label %.noexc unwind label %lpad .noexc: ; preds = %if.end.i32 - store i32 %13, ptr %retval.i, align 8 + store i32 %12, ptr %retval.i, align 8 %retval.i.4.retval.i.4.retval.i.4.retval.4.retval.4.end3.i.sroa_idx = getelementptr inbounds nuw i8, ptr %retval.i, i64 4 store i64 0, ptr %retval.i.4.retval.i.4.retval.i.4.retval.4.retval.4.end3.i.sroa_idx, align 4 %retval.i.12.retval.i.12.retval.i.12.retval.12.retval.12.nullable4.i.sroa_idx = getelementptr inbounds nuw i8, ptr %retval.i, i64 12 @@ -5105,45 +5105,45 @@ invoke.cont21: ; preds = %.noexc, %if.then.i3 %retval.8.retval.8..fca.1.load.i = phi i64 [ %retval.i.8.retval.i.8.retval.i.8.retval.8.retval.8..fca.1.load.pre.i, %.noexc ], [ %retval.i.i.8.retval.i.i.8.retval.i.i.8.retval.i.8.retval.i.8.retval.8.retval.8..fca.1.load.i.i, %if.then.i33 ] %retval.0.retval.0..fca.0.load.i = phi i64 [ %retval.i.0.retval.i.0.retval.i.0.retval.0.retval.0..fca.0.load.pre.i, %.noexc ], [ %retval.i.i.0.retval.i.i.0.retval.i.i.0.retval.i.0.retval.i.0.retval.0.retval.0..fca.0.load.i.i, %if.then.i33 ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %retval.i) - %call24 = call { i64, i64 } @_ZN3re28Compiler3CatENS_4FragES1_(ptr noundef nonnull align 8 dereferenceable(212) %c, i64 %6, i64 %7, i64 %retval.0.retval.0..fca.0.load.i, i64 %retval.8.retval.8..fca.1.load.i) - %15 = extractvalue { i64, i64 } %call24, 0 - %16 = extractvalue { i64, i64 } %call24, 1 - %all.sroa.0.0.extract.trunc6 = trunc i64 %15 to i32 + %call24 = call { i64, i64 } @_ZN3re28Compiler3CatENS_4FragES1_(ptr noundef nonnull align 8 dereferenceable(212) %c, i64 %5, i64 %6, i64 %retval.0.retval.0..fca.0.load.i, i64 %retval.8.retval.8..fca.1.load.i) + %14 = extractvalue { i64, i64 } %call24, 0 + %15 = extractvalue { i64, i64 } %call24, 1 + %all.sroa.0.0.extract.trunc6 = trunc i64 %14 to i32 %prog_ = getelementptr inbounds nuw i8, ptr %c, i64 96 - %17 = load ptr, ptr %prog_, align 8 - %reversed_.i = getelementptr inbounds nuw i8, ptr %17, i64 2 + %16 = load ptr, ptr %prog_, align 8 + %reversed_.i = getelementptr inbounds nuw i8, ptr %16, i64 2 store i8 %frombool, ptr %reversed_.i, align 2 - %18 = load ptr, ptr %prog_, align 8 - %reversed_.i35 = getelementptr inbounds nuw i8, ptr %18, i64 2 - %19 = load i8, ptr %reversed_.i35, align 2 - %tobool.i = trunc i8 %19 to i1 + %17 = load ptr, ptr %prog_, align 8 + %reversed_.i35 = getelementptr inbounds nuw i8, ptr %17, i64 2 + %18 = load i8, ptr %reversed_.i35, align 2 + %tobool.i = trunc i8 %18 to i1 %call9.call6 = select i1 %tobool.i, i1 %call9, i1 %call6 %call6.call9 = select i1 %tobool.i, i1 %call6, i1 %call9 %frombool.i38 = zext i1 %call9.call6 to i8 - store i8 %frombool.i38, ptr %18, align 8 - %20 = load ptr, ptr %prog_, align 8 + store i8 %frombool.i38, ptr %17, align 8 + %19 = load ptr, ptr %prog_, align 8 %frombool.i39 = zext i1 %call6.call9 to i8 - %anchor_end_.i40 = getelementptr inbounds nuw i8, ptr %20, i64 1 + %anchor_end_.i40 = getelementptr inbounds nuw i8, ptr %19, i64 1 store i8 %frombool.i39, ptr %anchor_end_.i40, align 1 - %21 = load ptr, ptr %prog_, align 8 - %start_.i = getelementptr inbounds nuw i8, ptr %21, i64 8 + %20 = load ptr, ptr %prog_, align 8 + %start_.i = getelementptr inbounds nuw i8, ptr %20, i64 8 store i32 %all.sroa.0.0.extract.trunc6, ptr %start_.i, align 8 - %22 = load ptr, ptr %prog_, align 8 - %23 = load i8, ptr %22, align 8 - %tobool.i41 = trunc i8 %23 to i1 + %21 = load ptr, ptr %prog_, align 8 + %22 = load i8, ptr %21, align 8 + %tobool.i41 = trunc i8 %22 to i1 br i1 %tobool.i41, label %if.end57, label %if.then49 if.then49: ; preds = %invoke.cont21 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %retval.i.i42) - %24 = load i8, ptr %failed_, align 8 - %tobool.i57 = trunc i8 %24 to i1 + %23 = load i8, ptr %failed_, align 8 + %tobool.i57 = trunc i8 %23 to i1 br i1 %tobool.i57, label %call.i.i.noexc.thread, label %lor.lhs.false.i58 lor.lhs.false.i58: ; preds = %if.then49 - %25 = load i32, ptr %ninst_.i, align 8 - %add.i60 = add nsw i32 %25, 1 - %26 = load i32, ptr %max_ninst_5.i, align 4 - %cmp.i62.not = icmp slt i32 %25, %26 + %24 = load i32, ptr %ninst_.i, align 8 + %add.i60 = add nsw i32 %24, 1 + %25 = load i32, ptr %max_ninst_5.i, align 4 + %cmp.i62.not = icmp slt i32 %24, %25 br i1 %cmp.i62.not, label %if.end.i63, label %call.i.i.noexc.thread call.i.i.noexc.thread: ; preds = %if.then49, %lor.lhs.false.i58 @@ -5152,18 +5152,18 @@ call.i.i.noexc.thread: ; preds = %if.then49, %lor.lhs if.end.i63: ; preds = %lor.lhs.false.i58 %inst_.i64 = getelementptr inbounds nuw i8, ptr %c, i64 120 - %27 = load i32, ptr %inst_.i64, align 8 - %cmp5.i65.not = icmp slt i32 %25, %27 + %26 = load i32, ptr %inst_.i64, align 8 + %cmp5.i65.not = icmp slt i32 %24, %26 br i1 %cmp5.i65.not, label %call.i.i.noexc, label %if.then6.i69 if.then6.i69: ; preds = %if.end.i63 - %cmp9.i70 = icmp eq i32 %27, 0 - %spec.store.select.i71 = select i1 %cmp9.i70, i32 8, i32 %27 + %cmp9.i70 = icmp eq i32 %26, 0 + %spec.store.select.i71 = select i1 %cmp9.i70, i32 8, i32 %26 br label %while.cond.i72 while.cond.i72: ; preds = %while.cond.i72, %if.then6.i69 %cap.0.i73 = phi i32 [ %spec.store.select.i71, %if.then6.i69 ], [ %mul.i75, %while.cond.i72 ] - %cmp14.i74.not = icmp slt i32 %25, %cap.0.i73 + %cmp14.i74.not = icmp slt i32 %24, %cap.0.i73 %mul.i75 = shl nsw i32 %cap.0.i73, 1 br i1 %cmp14.i74.not, label %while.end.i76, label %while.cond.i72, !llvm.loop !4 @@ -5186,14 +5186,14 @@ _ZN3re28PODArrayINS_4Prog4InstEEC2Ei.exit.i78: ; preds = %while.end.i76 call5.i3.i.i.noexc103: ; preds = %_ZN3re28PODArrayINS_4Prog4InstEEC2Ei.exit.i78 %add.ptr.i.i.i.i.i.i.i81 = getelementptr inbounds nuw i8, ptr %c, i64 128 - %28 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i81, align 8 - %cmp17.not.i82 = icmp eq ptr %28, null - %idx.ext15.i83 = sext i32 %25 to i64 + %27 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i81, align 8 + %cmp17.not.i82 = icmp eq ptr %27, null + %idx.ext15.i83 = sext i32 %24 to i64 br i1 %cmp17.not.i82, label %if.end26.thread.i95, label %if.then.i.i.i.i.i.i84 if.end26.thread.i95: ; preds = %call5.i3.i.i.noexc103 %add.ptr16.i96 = getelementptr inbounds %"class.re2::Prog::Inst", ptr %call5.i3.i.i104, i64 %idx.ext15.i83 - %sub17.i97 = sub nsw i32 %cap.0.i73, %25 + %sub17.i97 = sub nsw i32 %cap.0.i73, %24 %conv3118.i98 = sext i32 %sub17.i97 to i64 %mul3219.i99 = shl nsw i64 %conv3118.i98, 3 call void @llvm.memset.p0.i64(ptr nonnull align 4 %add.ptr16.i96, i8 0, i64 %mul3219.i99, i1 false) @@ -5202,29 +5202,29 @@ if.end26.thread.i95: ; preds = %call5.i3.i.i.noexc1 if.then.i.i.i.i.i.i84: ; preds = %call5.i3.i.i.noexc103 %mul25.i85 = shl nsw i64 %idx.ext15.i83, 3 - call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %call5.i3.i.i104, ptr nonnull align 4 %28, i64 %mul25.i85, i1 false) + call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %call5.i3.i.i104, ptr nonnull align 4 %27, i64 %mul25.i85, i1 false) %add.ptr.i86 = getelementptr inbounds %"class.re2::Prog::Inst", ptr %call5.i3.i.i104, i64 %idx.ext15.i83 - %sub.i87 = sub nsw i32 %cap.0.i73, %25 + %sub.i87 = sub nsw i32 %cap.0.i73, %24 %conv31.i88 = sext i32 %sub.i87 to i64 %mul32.i89 = shl nsw i64 %conv31.i88, 3 call void @llvm.memset.p0.i64(ptr nonnull align 4 %add.ptr.i86, i8 0, i64 %mul32.i89, i1 false) store ptr %call5.i3.i.i104, ptr %add.ptr.i.i.i.i.i.i.i81, align 8 - call void @_ZdlPv(ptr noundef nonnull %28) #25 + call void @_ZdlPv(ptr noundef nonnull %27) #25 %.pre.pre.i90 = load i32, ptr %ninst_.i, align 8 %.pre22.i91 = add nsw i32 %.pre.pre.i90, 1 br label %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i92 _ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i92: ; preds = %if.then.i.i.i.i.i.i84, %if.end26.thread.i95 %.pre21.pre-phi.i93 = phi i32 [ %.pre22.i91, %if.then.i.i.i.i.i.i84 ], [ %add.i60, %if.end26.thread.i95 ] - %.pre.i94 = phi i32 [ %.pre.pre.i90, %if.then.i.i.i.i.i.i84 ], [ %25, %if.end26.thread.i95 ] + %.pre.i94 = phi i32 [ %.pre.pre.i90, %if.then.i.i.i.i.i.i84 ], [ %24, %if.end26.thread.i95 ] store i32 %cap.0.i73, ptr %inst_.i64, align 8 br label %call.i.i.noexc call.i.i.noexc: ; preds = %if.end.i63, %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i92 %add38.pre-phi.i67 = phi i32 [ %.pre21.pre-phi.i93, %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i92 ], [ %add.i60, %if.end.i63 ] - %29 = phi i32 [ %.pre.i94, %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i92 ], [ %25, %if.end.i63 ] + %28 = phi i32 [ %.pre.i94, %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i92 ], [ %24, %if.end.i63 ] store i32 %add38.pre-phi.i67, ptr %ninst_.i, align 8 - %cmp.i.i = icmp slt i32 %29, 0 + %cmp.i.i = icmp slt i32 %28, 0 br i1 %cmp.i.i, label %if.then.i.i, label %if.end.i.i if.then.i.i: ; preds = %call.i.i.noexc.thread, %call.i.i.noexc @@ -5241,18 +5241,18 @@ if.then.i.i: ; preds = %call.i.i.noexc.thre br label %_ZN3re28Compiler9ByteRangeEiib.exit.i if.end.i.i: ; preds = %call.i.i.noexc - %conv.i.i.i = zext nneg i32 %29 to i64 + %conv.i.i.i = zext nneg i32 %28 to i64 %add.ptr.i.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %c, i64 128 - %30 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i.i.i, align 8 - %arrayidx.i.i.i.i = getelementptr inbounds nuw %"class.re2::Prog::Inst", ptr %30, i64 %conv.i.i.i + %29 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i.i.i, align 8 + %arrayidx.i.i.i.i = getelementptr inbounds nuw %"class.re2::Prog::Inst", ptr %29, i64 %conv.i.i.i invoke void @_ZN3re24Prog4Inst13InitByteRangeEiiij(ptr noundef nonnull align 4 dereferenceable(8) %arrayidx.i.i.i.i, i32 noundef 0, i32 noundef 255, i32 noundef 0, i32 noundef 0) to label %.noexc45 unwind label %lpad .noexc45: ; preds = %if.end.i.i - %shl.i.i = shl nuw i32 %29, 1 + %shl.i.i = shl nuw i32 %28, 1 %retval.sroa.2.0.insert.ext.i.i.i = zext i32 %shl.i.i to i64 %retval.sroa.0.0.insert.insert.i.i.i = mul nuw i64 %retval.sroa.2.0.insert.ext.i.i.i, 4294967297 - store i32 %29, ptr %retval.i.i42, align 8 + store i32 %28, ptr %retval.i.i42, align 8 %retval.i.i42.4.retval.i.i42.4.retval.i.i42.4.retval.i.4.retval.i.4.retval.4.retval.4.end3.i.sroa_idx = getelementptr inbounds nuw i8, ptr %retval.i.i42, i64 4 store i64 %retval.sroa.0.0.insert.insert.i.i.i, ptr %retval.i.i42.4.retval.i.i42.4.retval.i.i42.4.retval.i.4.retval.i.4.retval.4.retval.4.end3.i.sroa_idx, align 4 %retval.i.i42.12.retval.i.i42.12.retval.i.i42.12.retval.i.12.retval.i.12.retval.12.retval.12.nullable4.i.sroa_idx = getelementptr inbounds nuw i8, ptr %retval.i.i42, i64 12 @@ -5270,20 +5270,20 @@ _ZN3re28Compiler9ByteRangeEiib.exit.i: ; preds = %.noexc45, %if.then. to label %invoke.cont52 unwind label %lpad invoke.cont52: ; preds = %_ZN3re28Compiler9ByteRangeEiib.exit.i - %31 = extractvalue { i64, i64 } %call2.i46, 0 - %32 = extractvalue { i64, i64 } %call2.i46, 1 - %all.sroa.715.8.insert.ext = and i64 %16, 1099511627775 + %30 = extractvalue { i64, i64 } %call2.i46, 0 + %31 = extractvalue { i64, i64 } %call2.i46, 1 + %all.sroa.715.8.insert.ext = and i64 %15, 1099511627775 %all.sroa.715.8.insert.insert = or disjoint i64 %all.sroa.715.8.insert.ext, %all.sroa.12.8.extract.shift - %call56 = call { i64, i64 } @_ZN3re28Compiler3CatENS_4FragES1_(ptr noundef nonnull align 8 dereferenceable(212) %c, i64 %31, i64 %32, i64 %15, i64 %all.sroa.715.8.insert.insert) - %33 = extractvalue { i64, i64 } %call56, 0 - %all.sroa.0.0.extract.trunc2 = trunc i64 %33 to i32 + %call56 = call { i64, i64 } @_ZN3re28Compiler3CatENS_4FragES1_(ptr noundef nonnull align 8 dereferenceable(212) %c, i64 %30, i64 %31, i64 %14, i64 %all.sroa.715.8.insert.insert) + %32 = extractvalue { i64, i64 } %call56, 0 + %all.sroa.0.0.extract.trunc2 = trunc i64 %32 to i32 %.pre = load ptr, ptr %prog_, align 8 br label %if.end57 if.end57: ; preds = %invoke.cont52, %invoke.cont21 - %34 = phi ptr [ %22, %invoke.cont21 ], [ %.pre, %invoke.cont52 ] + %33 = phi ptr [ %21, %invoke.cont21 ], [ %.pre, %invoke.cont52 ] %all.sroa.0.0 = phi i32 [ %all.sroa.0.0.extract.trunc6, %invoke.cont21 ], [ %all.sroa.0.0.extract.trunc2, %invoke.cont52 ] - %start_unanchored_.i = getelementptr inbounds nuw i8, ptr %34, i64 12 + %start_unanchored_.i = getelementptr inbounds nuw i8, ptr %33, i64 12 store i32 %all.sroa.0.0, ptr %start_unanchored_.i, align 4 %call62 = invoke noundef ptr @_ZN3re28Compiler6FinishEPNS_6RegexpE(ptr noundef nonnull align 8 dereferenceable(212) %c, ptr noundef nonnull %re) to label %cleanup unwind label %lpad @@ -5839,8 +5839,8 @@ if.else.i: ; preds = %if.end.i if.else6.i: ; preds = %if.else.i %sub.i = add nsw i64 %max_mem, -432 - %2 = call i64 @llvm.umin.i64(i64 %sub.i, i64 134217728) - %spec.store.select.i = lshr i64 %2, 3 + %div7.i = lshr i64 %sub.i, 3 + %spec.store.select.i = call i64 @llvm.umin.i64(i64 %div7.i, i64 16777216) %conv.i14 = trunc nuw nsw i64 %spec.store.select.i to i32 br label %invoke.cont1 @@ -5858,10 +5858,10 @@ invoke.cont2: ; preds = %invoke.cont1 br i1 %cmp, label %cleanup, label %if.end lpad: ; preds = %_ZN3re28PODArrayINS_4Prog4InstEEC2Ei.exit.i, %if.then3.i.i.i, %_ZN3re28Compiler9ByteRangeEiib.exit.i, %if.end.i.i, %if.end, %if.end31, %if.end21, %invoke.cont5, %invoke.cont1 - %3 = landingpad { ptr, i32 } + %2 = landingpad { ptr, i32 } cleanup call void @_ZN3re28CompilerD1Ev(ptr noundef nonnull align 8 dereferenceable(212) %c) #26 - resume { ptr, i32 } %3 + resume { ptr, i32 } %2 if.end: ; preds = %invoke.cont2 store i32 0, ptr %agg.tmp, align 8 @@ -5869,8 +5869,8 @@ if.end: ; preds = %invoke.cont2 store i64 0, ptr %agg.tmp.4.agg.tmp.4.agg.tmp.4.end.i.sroa_idx, align 4 %agg.tmp.12.agg.tmp.12.agg.tmp.12.nullable.i.sroa_idx = getelementptr inbounds nuw i8, ptr %agg.tmp, i64 12 store i8 0, ptr %agg.tmp.12.agg.tmp.12.agg.tmp.12.nullable.i.sroa_idx, align 4 - %4 = load i32, ptr %max_ninst_5.i, align 4 - %mul = shl nsw i32 %4, 1 + %3 = load i32, ptr %max_ninst_5.i, align 4 + %mul = shl nsw i32 %3, 1 %agg.tmp.0.agg.tmp.0.agg.tmp.0. = load i64, ptr %agg.tmp, align 8 %agg.tmp.8.agg.tmp.8.agg.tmp.8..sroa_idx = getelementptr inbounds nuw i8, ptr %agg.tmp, i64 8 %agg.tmp.8.agg.tmp.8.agg.tmp.8. = load i64, ptr %agg.tmp.8.agg.tmp.8.agg.tmp.8..sroa_idx, align 8 @@ -5880,39 +5880,39 @@ if.end: ; preds = %invoke.cont2 to label %invoke.cont5 unwind label %lpad invoke.cont5: ; preds = %if.end - %5 = extractvalue { i64, i64 } %call.i15, 0 - %6 = extractvalue { i64, i64 } %call.i15, 1 + %4 = extractvalue { i64, i64 } %call.i15, 0 + %5 = extractvalue { i64, i64 } %call.i15, 1 invoke void @_ZN3re26Regexp6DecrefEv(ptr noundef nonnull align 8 dereferenceable(40) %call3) to label %invoke.cont7 unwind label %lpad invoke.cont7: ; preds = %invoke.cont5 %failed_ = getelementptr inbounds nuw i8, ptr %c, i64 104 - %7 = load i8, ptr %failed_, align 8 - %tobool = trunc i8 %7 to i1 + %6 = load i8, ptr %failed_, align 8 + %tobool = trunc i8 %6 to i1 br i1 %tobool, label %cleanup, label %if.end9 if.end9: ; preds = %invoke.cont7 %prog_ = getelementptr inbounds nuw i8, ptr %c, i64 96 + %7 = load ptr, ptr %prog_, align 8 + store i8 1, ptr %7, align 8 %8 = load ptr, ptr %prog_, align 8 - store i8 1, ptr %8, align 8 - %9 = load ptr, ptr %prog_, align 8 - %anchor_end_.i = getelementptr inbounds nuw i8, ptr %9, i64 1 + %anchor_end_.i = getelementptr inbounds nuw i8, ptr %8, i64 1 store i8 1, ptr %anchor_end_.i, align 1 %cmp13 = icmp eq i32 %anchor, 0 br i1 %cmp13, label %if.then14, label %if.end21 if.then14: ; preds = %if.end9 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %retval.i.i) - %10 = load i8, ptr %failed_, align 8 - %tobool.i = trunc i8 %10 to i1 + %9 = load i8, ptr %failed_, align 8 + %tobool.i = trunc i8 %9 to i1 br i1 %tobool.i, label %call.i.i.noexc.thread, label %lor.lhs.false.i lor.lhs.false.i: ; preds = %if.then14 %ninst_.i = getelementptr inbounds nuw i8, ptr %c, i64 136 - %11 = load i32, ptr %ninst_.i, align 8 - %add.i = add nsw i32 %11, 1 - %12 = load i32, ptr %max_ninst_5.i, align 4 - %cmp.i19.not = icmp slt i32 %11, %12 + %10 = load i32, ptr %ninst_.i, align 8 + %add.i = add nsw i32 %10, 1 + %11 = load i32, ptr %max_ninst_5.i, align 4 + %cmp.i19.not = icmp slt i32 %10, %11 br i1 %cmp.i19.not, label %if.end.i20, label %call.i.i.noexc.thread call.i.i.noexc.thread: ; preds = %if.then14, %lor.lhs.false.i @@ -5921,18 +5921,18 @@ call.i.i.noexc.thread: ; preds = %if.then14, %lor.lhs if.end.i20: ; preds = %lor.lhs.false.i %inst_.i = getelementptr inbounds nuw i8, ptr %c, i64 120 - %13 = load i32, ptr %inst_.i, align 8 - %cmp5.i.not = icmp slt i32 %11, %13 + %12 = load i32, ptr %inst_.i, align 8 + %cmp5.i.not = icmp slt i32 %10, %12 br i1 %cmp5.i.not, label %call.i.i.noexc, label %if.then6.i if.then6.i: ; preds = %if.end.i20 - %cmp9.i = icmp eq i32 %13, 0 - %spec.store.select.i21 = select i1 %cmp9.i, i32 8, i32 %13 + %cmp9.i = icmp eq i32 %12, 0 + %spec.store.select.i21 = select i1 %cmp9.i, i32 8, i32 %12 br label %while.cond.i while.cond.i: ; preds = %while.cond.i, %if.then6.i %cap.0.i = phi i32 [ %spec.store.select.i21, %if.then6.i ], [ %mul.i, %while.cond.i ] - %cmp14.i.not = icmp slt i32 %11, %cap.0.i + %cmp14.i.not = icmp slt i32 %10, %cap.0.i %mul.i = shl nsw i32 %cap.0.i, 1 br i1 %cmp14.i.not, label %while.end.i, label %while.cond.i, !llvm.loop !4 @@ -5955,14 +5955,14 @@ _ZN3re28PODArrayINS_4Prog4InstEEC2Ei.exit.i: ; preds = %while.end.i call5.i3.i.i.noexc: ; preds = %_ZN3re28PODArrayINS_4Prog4InstEEC2Ei.exit.i %add.ptr.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %c, i64 128 - %14 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i, align 8 - %cmp17.not.i = icmp eq ptr %14, null - %idx.ext15.i = sext i32 %11 to i64 + %13 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i, align 8 + %cmp17.not.i = icmp eq ptr %13, null + %idx.ext15.i = sext i32 %10 to i64 br i1 %cmp17.not.i, label %if.end26.thread.i, label %if.then.i.i.i.i.i.i if.end26.thread.i: ; preds = %call5.i3.i.i.noexc %add.ptr16.i = getelementptr inbounds %"class.re2::Prog::Inst", ptr %call5.i3.i.i25, i64 %idx.ext15.i - %sub17.i = sub nsw i32 %cap.0.i, %11 + %sub17.i = sub nsw i32 %cap.0.i, %10 %conv3118.i = sext i32 %sub17.i to i64 %mul3219.i = shl nsw i64 %conv3118.i, 3 call void @llvm.memset.p0.i64(ptr nonnull align 4 %add.ptr16.i, i8 0, i64 %mul3219.i, i1 false) @@ -5971,29 +5971,29 @@ if.end26.thread.i: ; preds = %call5.i3.i.i.noexc if.then.i.i.i.i.i.i: ; preds = %call5.i3.i.i.noexc %mul25.i = shl nsw i64 %idx.ext15.i, 3 - call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %call5.i3.i.i25, ptr nonnull align 4 %14, i64 %mul25.i, i1 false) + call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %call5.i3.i.i25, ptr nonnull align 4 %13, i64 %mul25.i, i1 false) %add.ptr.i = getelementptr inbounds %"class.re2::Prog::Inst", ptr %call5.i3.i.i25, i64 %idx.ext15.i - %sub.i22 = sub nsw i32 %cap.0.i, %11 + %sub.i22 = sub nsw i32 %cap.0.i, %10 %conv31.i = sext i32 %sub.i22 to i64 %mul32.i = shl nsw i64 %conv31.i, 3 call void @llvm.memset.p0.i64(ptr nonnull align 4 %add.ptr.i, i8 0, i64 %mul32.i, i1 false) store ptr %call5.i3.i.i25, ptr %add.ptr.i.i.i.i.i.i.i, align 8 - call void @_ZdlPv(ptr noundef nonnull %14) #25 + call void @_ZdlPv(ptr noundef nonnull %13) #25 %.pre.pre.i = load i32, ptr %ninst_.i, align 8 %.pre22.i = add nsw i32 %.pre.pre.i, 1 br label %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i _ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i: ; preds = %if.then.i.i.i.i.i.i, %if.end26.thread.i %.pre21.pre-phi.i = phi i32 [ %.pre22.i, %if.then.i.i.i.i.i.i ], [ %add.i, %if.end26.thread.i ] - %.pre.i = phi i32 [ %.pre.pre.i, %if.then.i.i.i.i.i.i ], [ %11, %if.end26.thread.i ] + %.pre.i = phi i32 [ %.pre.pre.i, %if.then.i.i.i.i.i.i ], [ %10, %if.end26.thread.i ] store i32 %cap.0.i, ptr %inst_.i, align 8 br label %call.i.i.noexc call.i.i.noexc: ; preds = %if.end.i20, %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i %add38.pre-phi.i = phi i32 [ %.pre21.pre-phi.i, %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i ], [ %add.i, %if.end.i20 ] - %15 = phi i32 [ %.pre.i, %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i ], [ %11, %if.end.i20 ] + %14 = phi i32 [ %.pre.i, %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i ], [ %10, %if.end.i20 ] store i32 %add38.pre-phi.i, ptr %ninst_.i, align 8 - %cmp.i.i = icmp slt i32 %15, 0 + %cmp.i.i = icmp slt i32 %14, 0 br i1 %cmp.i.i, label %if.then.i.i, label %if.end.i.i if.then.i.i: ; preds = %call.i.i.noexc.thread, %call.i.i.noexc @@ -6010,18 +6010,18 @@ if.then.i.i: ; preds = %call.i.i.noexc.thre br label %_ZN3re28Compiler9ByteRangeEiib.exit.i if.end.i.i: ; preds = %call.i.i.noexc - %conv.i.i.i = zext nneg i32 %15 to i64 + %conv.i.i.i = zext nneg i32 %14 to i64 %add.ptr.i.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %c, i64 128 - %16 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i.i.i, align 8 - %arrayidx.i.i.i.i = getelementptr inbounds nuw %"class.re2::Prog::Inst", ptr %16, i64 %conv.i.i.i + %15 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i.i.i, align 8 + %arrayidx.i.i.i.i = getelementptr inbounds nuw %"class.re2::Prog::Inst", ptr %15, i64 %conv.i.i.i invoke void @_ZN3re24Prog4Inst13InitByteRangeEiiij(ptr noundef nonnull align 4 dereferenceable(8) %arrayidx.i.i.i.i, i32 noundef 0, i32 noundef 255, i32 noundef 0, i32 noundef 0) to label %.noexc unwind label %lpad .noexc: ; preds = %if.end.i.i - %shl.i.i = shl nuw i32 %15, 1 + %shl.i.i = shl nuw i32 %14, 1 %retval.sroa.2.0.insert.ext.i.i.i = zext i32 %shl.i.i to i64 %retval.sroa.0.0.insert.insert.i.i.i = mul nuw i64 %retval.sroa.2.0.insert.ext.i.i.i, 4294967297 - store i32 %15, ptr %retval.i.i, align 8 + store i32 %14, ptr %retval.i.i, align 8 %retval.i.i.4.retval.i.i.4.retval.i.i.4.retval.i.4.retval.i.4.retval.4.retval.4.end3.i.sroa_idx = getelementptr inbounds nuw i8, ptr %retval.i.i, i64 4 store i64 %retval.sroa.0.0.insert.insert.i.i.i, ptr %retval.i.i.4.retval.i.i.4.retval.i.i.4.retval.i.4.retval.i.4.retval.4.retval.4.end3.i.sroa_idx, align 4 %retval.i.i.12.retval.i.i.12.retval.i.i.12.retval.i.12.retval.i.12.retval.12.retval.12.nullable4.i.sroa_idx = getelementptr inbounds nuw i8, ptr %retval.i.i, i64 12 @@ -6039,20 +6039,20 @@ _ZN3re28Compiler9ByteRangeEiib.exit.i: ; preds = %.noexc, %if.then.i. to label %invoke.cont16 unwind label %lpad invoke.cont16: ; preds = %_ZN3re28Compiler9ByteRangeEiib.exit.i - %17 = extractvalue { i64, i64 } %call2.i17, 0 - %18 = extractvalue { i64, i64 } %call2.i17, 1 - %call20 = call { i64, i64 } @_ZN3re28Compiler3CatENS_4FragES1_(ptr noundef nonnull align 8 dereferenceable(212) %c, i64 %17, i64 %18, i64 %5, i64 %6) - %19 = extractvalue { i64, i64 } %call20, 0 + %16 = extractvalue { i64, i64 } %call2.i17, 0 + %17 = extractvalue { i64, i64 } %call2.i17, 1 + %call20 = call { i64, i64 } @_ZN3re28Compiler3CatENS_4FragES1_(ptr noundef nonnull align 8 dereferenceable(212) %c, i64 %16, i64 %17, i64 %4, i64 %5) + %18 = extractvalue { i64, i64 } %call20, 0 br label %if.end21 if.end21: ; preds = %invoke.cont16, %if.end9 - %all.sroa.0.0.in = phi i64 [ %19, %invoke.cont16 ], [ %5, %if.end9 ] + %all.sroa.0.0.in = phi i64 [ %18, %invoke.cont16 ], [ %4, %if.end9 ] %all.sroa.0.0 = trunc i64 %all.sroa.0.0.in to i32 - %20 = load ptr, ptr %prog_, align 8 - %start_.i = getelementptr inbounds nuw i8, ptr %20, i64 8 + %19 = load ptr, ptr %prog_, align 8 + %start_.i = getelementptr inbounds nuw i8, ptr %19, i64 8 store i32 %all.sroa.0.0, ptr %start_.i, align 8 - %21 = load ptr, ptr %prog_, align 8 - %start_unanchored_.i = getelementptr inbounds nuw i8, ptr %21, i64 12 + %20 = load ptr, ptr %prog_, align 8 + %start_unanchored_.i = getelementptr inbounds nuw i8, ptr %20, i64 12 store i32 %all.sroa.0.0, ptr %start_unanchored_.i, align 4 %call28 = invoke noundef ptr @_ZN3re28Compiler6FinishEPNS_6RegexpE(ptr noundef nonnull align 8 dereferenceable(212) %c, ptr noundef nonnull %re) to label %invoke.cont27 unwind label %lpad @@ -6067,8 +6067,8 @@ if.end31: ; preds = %invoke.cont27 to label %invoke.cont35 unwind label %lpad invoke.cont35: ; preds = %if.end31 - %22 = load i8, ptr %dfa_failed, align 1 - %tobool37 = trunc i8 %22 to i1 + %21 = load i8, ptr %dfa_failed, align 1 + %tobool37 = trunc i8 %21 to i1 br i1 %tobool37, label %delete.notnull, label %cleanup delete.notnull: ; preds = %invoke.cont35 diff --git a/bench/rocksdb/optimized/filter_policy.cc.ll b/bench/rocksdb/optimized/filter_policy.cc.ll index 5636afd64a6..4bf7039a284 100644 --- a/bench/rocksdb/optimized/filter_policy.cc.ll +++ b/bench/rocksdb/optimized/filter_policy.cc.ll @@ -6655,7 +6655,7 @@ cond.end: ; preds = %entry, %cond.true } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) uwtable -define internal noundef range(i64 5, 2305843009213760) i64 @_ZN7rocksdb12_GLOBAL__N_125FastLocalBloomBitsBuilder14CalculateSpaceEm(ptr noundef nonnull readonly align 8 captures(none) dereferenceable(292) %this, i64 noundef %num_entries) unnamed_addr #17 align 2 { +define internal noundef range(i64 5, 4294967240) i64 @_ZN7rocksdb12_GLOBAL__N_125FastLocalBloomBitsBuilder14CalculateSpaceEm(ptr noundef nonnull readonly align 8 captures(none) dereferenceable(292) %this, i64 noundef %num_entries) unnamed_addr #17 align 2 { entry: %millibits_per_key_ = getelementptr inbounds nuw i8, ptr %this, i64 288 %0 = load i32, ptr %millibits_per_key_, align 8 @@ -6663,11 +6663,10 @@ entry: %mul = mul i64 %num_entries, %conv %add = add i64 %mul, 7999 %div = udiv i64 %add, 8000 - %cmp = icmp ugt i64 %add, 34359737855999 - %1 = add nuw nsw i64 %div, 63 - %2 = and i64 %1, 9007199254740928 - %3 = or disjoint i64 %2, 5 - %add3 = select i1 %cmp, i64 4294967237, i64 %3 + %spec.store.select = tail call i64 @llvm.umin.i64(i64 %div, i64 4294967232) + %add2 = add nuw nsw i64 %spec.store.select, 63 + %and = and i64 %add2, 8589934528 + %add3 = or disjoint i64 %and, 5 ret i64 %add3 } @@ -10808,32 +10807,30 @@ if.then: ; preds = %entry %mul.i = mul i64 %num_entries, %conv.i %add.i = add i64 %mul.i, 7999 %div.i = udiv i64 %add.i, 8000 - %cmp.i = icmp ugt i64 %add.i, 34359737855999 - %1 = add nuw nsw i64 %div.i, 63 - %2 = and i64 %1, 9007199254740928 - %3 = or disjoint i64 %2, 5 - %add3.i = select i1 %cmp.i, i64 4294967237, i64 %3 + %spec.store.select.i = tail call i64 @llvm.umin.i64(i64 %div.i, i64 4294967232) + %add2.i = add nuw nsw i64 %spec.store.select.i, 63 + %and.i = and i64 %add2.i, 8589934528 br label %if.end18.sink.split if.end: ; preds = %entry %_M_finish.i = getelementptr inbounds nuw i8, ptr %this, i64 168 %_M_start.i = getelementptr inbounds nuw i8, ptr %this, i64 136 - %4 = load ptr, ptr %_M_finish.i, align 8 - %5 = load ptr, ptr %_M_start.i, align 8 - %cmp.i.i = icmp eq ptr %4, %5 + %1 = load ptr, ptr %_M_finish.i, align 8 + %2 = load ptr, ptr %_M_start.i, align 8 + %cmp.i.i = icmp eq ptr %1, %2 br i1 %cmp.i.i, label %if.end8, label %if.then3 if.then3: ; preds = %if.end - %6 = load i64, ptr %5, align 8 - %shr.i = lshr i64 %6, 32 + %3 = load i64, ptr %2, align 8 + %shr.i = lshr i64 %3, 32 %conv.i12 = trunc nuw i64 %shr.i to i32 - %7 = uitofp i32 %conv.i12 to double - %8 = fadd double %7, 5.000000e-01 - %9 = fmul double %8, 0x3DF0000000000000 + %4 = uitofp i32 %conv.i12 to double + %5 = fadd double %4, 5.000000e-01 + %6 = fmul double %5, 0x3DF0000000000000 br label %if.end8 if.end8: ; preds = %if.then3, %if.end - %entropy.0 = phi double [ 0x3DE0000000000000, %if.end ], [ %9, %if.then3 ] + %entropy.0 = phi double [ 0x3DE0000000000000, %if.end ], [ %6, %if.then3 ] %conv = trunc nuw nsw i64 %num_entries to i32 %call.i = tail call noundef i32 @_ZN7rocksdb6ribbon6detail34BandingConfigHelper1MaybeSupportedILNS0_25ConstructionFailureChanceE1ELm128ELb0ELb0ELb1EE11GetNumSlotsEj(i32 noundef range(i32 0, 950000001) %conv) %sub.i.i = add i32 %call.i, 127 @@ -10842,34 +10839,34 @@ if.end8: ; preds = %if.then3, %if.end %spec.select.i.i = select i1 %cmp.i.i13, i32 256, i32 %div3.i.i store i32 %spec.select.i.i, ptr %num_slots, align 4 %desired_one_in_fp_rate_ = getelementptr inbounds nuw i8, ptr %this, i64 288 - %10 = load double, ptr %desired_one_in_fp_rate_, align 8 - %div.i14 = fdiv double 1.000000e+00, %10 - %cmp.i.i15 = fcmp ogt double %10, 1.000000e+00 + %7 = load double, ptr %desired_one_in_fp_rate_, align 8 + %div.i14 = fdiv double 1.000000e+00, %7 + %cmp.i.i15 = fcmp ogt double %7, 1.000000e+00 %cmp1.i.i = fcmp olt double %div.i14, 1.000000e+00 %or.cond.i.i = and i1 %cmp.i.i15, %cmp1.i.i br i1 %or.cond.i.i, label %if.then.i.i, label %_ZN7rocksdb6ribbon31SerializableInterleavedSolutionINS0_23StandardRehasherAdapterINS_12_GLOBAL__N_141Standard128RibbonRehasherTypesAndSettingsEEEE22GetBytesForOneInFpRateEjdj.exit if.then.i.i: ; preds = %if.end8 - %cmp2.i.i = fcmp ugt double %10, 0x41EFFFFFFFE00000 + %cmp2.i.i = fcmp ugt double %7, 0x41EFFFFFFFE00000 br i1 %cmp2.i.i, label %if.else.i.i, label %if.then3.i.i if.then3.i.i: ; preds = %if.then.i.i - %conv.i.i = fptoui double %10 to i32 - %11 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %conv.i.i, i1 true) - %sub.i.neg.i.i = add nsw i32 %11, -31 + %conv.i.i = fptoui double %7 to i32 + %8 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %conv.i.i, i1 true) + %sub.i.neg.i.i = add nsw i32 %8, -31 %ldexp.i.i = tail call double @ldexp(double 1.000000e+00, i32 %sub.i.neg.i.i) - %sub5.i.i = or disjoint i32 %11, -32 + %sub5.i.i = or disjoint i32 %8, -32 %ldexp14.i.i = tail call double @ldexp(double 1.000000e+00, i32 %sub5.i.i) %sub7.i.i = fsub double %div.i14, %ldexp14.i.i %sub8.i.i = fsub double %ldexp.i.i, %ldexp14.i.i %div.i.i = fdiv double %sub7.i.i, %sub8.i.i %add13.i.i = add i32 %spec.select.i.i, -127 %conv14.i.i = uitofp i32 %add13.i.i to double - %12 = tail call double @llvm.fmuladd.f64(double %div.i.i, double %conv14.i.i, double %entropy.0) - %div15.i.i = fmul double %12, 7.812500e-03 + %9 = tail call double @llvm.fmuladd.f64(double %div.i.i, double %conv14.i.i, double %entropy.0) + %div15.i.i = fmul double %9, 7.812500e-03 %conv16.i.i = fptoui double %div15.i.i to i32 %div1711.i.i = lshr exact i32 %spec.select.i.i, 7 - %mul15.i.i = sub nuw nsw i32 32, %11 + %mul15.i.i = sub nuw nsw i32 32, %8 %sub18.i.i = mul nuw nsw i32 %mul15.i.i, %div1711.i.i %add19.i.i = sub i32 %sub18.i.i, %conv16.i.i %conv20.i.i = zext i32 %add19.i.i to i64 @@ -10885,23 +10882,21 @@ _ZN7rocksdb6ribbon31SerializableInterleavedSolutionINS0_23StandardRehasherAdapte %retval.0.i.i = phi i64 [ %mul21.i.i, %if.then3.i.i ], [ %mul23.i.i, %if.else.i.i ], [ 16, %if.end8 ] %add = add nuw nsw i64 %retval.0.i.i, 5 store i64 %add, ptr %target_len_with_metadata, align 8 - %13 = load i32, ptr %num_slots, align 4 - %cmp11 = icmp ult i32 %13, 1024 + %10 = load i32, ptr %num_slots, align 4 + %cmp11 = icmp ult i32 %10, 1024 br i1 %cmp11, label %if.then12, label %if.end18 if.then12: ; preds = %_ZN7rocksdb6ribbon31SerializableInterleavedSolutionINS0_23StandardRehasherAdapterINS_12_GLOBAL__N_141Standard128RibbonRehasherTypesAndSettingsEEEE22GetBytesForOneInFpRateEjdj.exit %millibits_per_key_.i16 = getelementptr inbounds nuw i8, ptr %this, i64 592 - %14 = load i32, ptr %millibits_per_key_.i16, align 8 - %conv.i17 = sext i32 %14 to i64 + %11 = load i32, ptr %millibits_per_key_.i16, align 8 + %conv.i17 = sext i32 %11 to i64 %mul.i18 = mul nsw i64 %num_entries, %conv.i17 %add.i19 = add nsw i64 %mul.i18, 7999 %div.i20 = udiv i64 %add.i19, 8000 - %cmp.i21 = icmp ugt i64 %add.i19, 34359737855999 - %15 = add nuw nsw i64 %div.i20, 63 - %16 = and i64 %15, 9007199254740928 - %17 = or disjoint i64 %16, 5 - %add3.i22 = select i1 %cmp.i21, i64 4294967237, i64 %17 - %cmp15 = icmp samesign ult i64 %add3.i22, %add + %spec.store.select.i21 = tail call i64 @llvm.umin.i64(i64 %div.i20, i64 4294967232) + %add2.i22 = add nuw nsw i64 %spec.store.select.i21, 63 + %and.i23 = and i64 %add2.i22, 8589934528 + %cmp15 = icmp samesign ult i64 %and.i23, %retval.0.i.i br i1 %cmp15, label %if.then16, label %if.end18 if.then16: ; preds = %if.then12 @@ -10909,8 +10904,9 @@ if.then16: ; preds = %if.then12 br label %if.end18.sink.split if.end18.sink.split: ; preds = %if.then, %if.then16 - %add3.i22.sink = phi i64 [ %add3.i22, %if.then16 ], [ %add3.i, %if.then ] - store i64 %add3.i22.sink, ptr %target_len_with_metadata, align 8 + %add3.i24.sink.in = phi i64 [ %and.i23, %if.then16 ], [ %and.i, %if.then ] + %add3.i24.sink = or disjoint i64 %add3.i24.sink.in, 5 + store i64 %add3.i24.sink, ptr %target_len_with_metadata, align 8 br label %if.end18 if.end18: ; preds = %if.end18.sink.split, %if.then12, %_ZN7rocksdb6ribbon31SerializableInterleavedSolutionINS0_23StandardRehasherAdapterINS_12_GLOBAL__N_141Standard128RibbonRehasherTypesAndSettingsEEEE22GetBytesForOneInFpRateEjdj.exit diff --git a/bench/rocksdb/optimized/version_set.cc.ll b/bench/rocksdb/optimized/version_set.cc.ll index df975b6eed0..9fd5eca90e2 100644 --- a/bench/rocksdb/optimized/version_set.cc.ll +++ b/bench/rocksdb/optimized/version_set.cc.ll @@ -6613,9 +6613,8 @@ ehcleanup: ; preds = %lpad72, %lpad61 br label %ehcleanup92 cleanup: ; preds = %invoke.cont50 - %cmp88 = icmp slt i32 %num_entries_left.6, 1 - %spec.select = select i1 %cmp88, i32 0, i32 %num_entries_left.6 - %spec.select17 = select i1 %cmp88, i32 5, i32 0 + %spec.select = call i32 @llvm.smax.i32(i32 %num_entries_left.6, i32 0) + %spec.select17 = select i1 %cmp52, i32 0, i32 5 br label %nrvo.unused nrvo.unused: ; preds = %cleanup, %if.end42 @@ -84853,10 +84852,10 @@ declare i64 @llvm.umin.i64(i64, i64) #30 declare i32 @bcmp(ptr captures(none), ptr captures(none), i64) local_unnamed_addr #33 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.smin.i32(i32, i32) #30 +declare i32 @llvm.smax.i32(i32, i32) #30 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.smax.i32(i32, i32) #30 +declare i32 @llvm.smin.i32(i32, i32) #30 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.umax.i32(i32, i32) #30 diff --git a/bench/slurm/optimized/job_test.ll b/bench/slurm/optimized/job_test.ll index c00e06d0345..c974a731319 100644 --- a/bench/slurm/optimized/job_test.ll +++ b/bench/slurm/optimized/job_test.ll @@ -2405,10 +2405,9 @@ _build_gres_mc_data.exit: ; preds = %471, %475, %478 %489 = zext i32 %488 to i64 %490 = call i64 @bit_fls_from_bit(ptr noundef nonnull %486, i64 noundef %489) #9 %491 = trunc i64 %490 to i32 - %492 = icmp slt i32 %491, 1 %.not649 = icmp ugt i32 %2, %491 - %or.cond774 = or i1 %492, %.not649 - %spec.select786 = select i1 %or.cond774, i32 0, i32 %491 + %492 = call i32 @llvm.smax.i32(i32 %491, i32 0) + %spec.select786 = select i1 %.not649, i32 0, i32 %492 br label %493 493: ; preds = %487, %485 @@ -6948,6 +6947,9 @@ declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #8 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #8 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i32 @llvm.smax.i32(i32, i32) #7 + ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.ucmp.i32.i32(i32, i32) #7 diff --git a/bench/slurm/optimized/mpi_cray_shasta_la-apinfo.ll b/bench/slurm/optimized/mpi_cray_shasta_la-apinfo.ll index 0e926ebfe3a..c22d11ce8c4 100644 --- a/bench/slurm/optimized/mpi_cray_shasta_la-apinfo.ll +++ b/bench/slurm/optimized/mpi_cray_shasta_la-apinfo.ll @@ -1767,9 +1767,8 @@ define internal fastcc range(i32 -1, 1) i32 @_write_pals_nodes(i32 noundef range %15 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef nonnull readonly %13, ptr noundef nonnull @.str.38, ptr noundef nonnull %3) #11 %16 = icmp slt i32 %15, 1 %17 = load i32, ptr %3, align 4 - %18 = icmp slt i32 %17, 0 - %or.cond.i = select i1 %16, i1 true, i1 %18 - %..i = select i1 %or.cond.i, i32 -1, i32 %17 + %18 = call i32 @llvm.smax.i32(i32 %17, i32 -1) + %..i = select i1 %16, i32 -1, i32 %18 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) store i32 %..i, ptr %4, align 4 call void @free(ptr noundef nonnull %13) #11 diff --git a/bench/slurm/optimized/priority_basic.ll b/bench/slurm/optimized/priority_basic.ll index cf77d6c0906..81d4e17982e 100644 --- a/bench/slurm/optimized/priority_basic.ll +++ b/bench/slurm/optimized/priority_basic.ll @@ -68,11 +68,10 @@ define range(i32 1, 0) i32 @priority_p_set(i32 noundef %0, ptr noundef readonly %14 = getelementptr inbounds nuw i8, ptr %12, i64 288 %15 = load i32, ptr %14, align 8 %16 = xor i32 %15, -2147483648 - %17 = icmp slt i32 %16, 1 - %18 = add i32 %15, -2147483647 - %19 = icmp ugt i32 %spec.select, %18 - %or.cond = or i1 %17, %19 - %20 = select i1 %or.cond, i32 %16, i32 0 + %17 = add i32 %15, -2147483647 + %18 = icmp ugt i32 %spec.select, %17 + %19 = tail call i32 @llvm.smin.i32(i32 %16, i32 0) + %20 = select i1 %18, i32 %16, i32 %19 %spec.select22 = sub i32 %spec.select, %20 br label %21 @@ -375,6 +374,9 @@ declare i32 @llvm.umax.i32(i32, i32) #6 declare double @exp2(double) local_unnamed_addr +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i32 @llvm.smin.i32(i32, i32) #6 + ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare x86_fp80 @llvm.fabs.f80(x86_fp80) #6 diff --git a/bench/snappy/optimized/snappy.cc.ll b/bench/snappy/optimized/snappy.cc.ll index c5d7b9b501c..b0f33ee2734 100644 --- a/bench/snappy/optimized/snappy.cc.ll +++ b/bench/snappy/optimized/snappy.cc.ll @@ -4867,30 +4867,29 @@ return: ; preds = %while.body, %while. define linkonce_odr dso_local noundef ptr @_ZN6snappy19SnappySinkAllocator8AllocateEi(ptr noundef nonnull align 8 dereferenceable(32) %this, i32 noundef %size) local_unnamed_addr #2 comdat align 2 { entry: %0 = sext i32 %size to i64 - %1 = icmp slt i32 %size, 0 - %2 = select i1 %1, i64 -1, i64 %0 - %call = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %2) #21 + %1 = tail call i64 @llvm.smax.i64(i64 %0, i64 -1) + %call = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %1) #21 %blocks_ = getelementptr inbounds nuw i8, ptr %this, i64 8 %_M_finish.i = getelementptr inbounds nuw i8, ptr %this, i64 16 - %3 = load ptr, ptr %_M_finish.i, align 8 + %2 = load ptr, ptr %_M_finish.i, align 8 %_M_end_of_storage.i = getelementptr inbounds nuw i8, ptr %this, i64 24 - %4 = load ptr, ptr %_M_end_of_storage.i, align 8 - %cmp.not.i = icmp eq ptr %3, %4 + %3 = load ptr, ptr %_M_end_of_storage.i, align 8 + %cmp.not.i = icmp eq ptr %2, %3 br i1 %cmp.not.i, label %if.else.i, label %if.then.i if.then.i: ; preds = %entry - store ptr %call, ptr %3, align 8 - %block.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 8 + store ptr %call, ptr %2, align 8 + %block.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %2, i64 8 store i64 %0, ptr %block.sroa.4.0..sroa_idx, align 8 - %5 = load ptr, ptr %_M_finish.i, align 8 - %incdec.ptr.i = getelementptr inbounds nuw i8, ptr %5, i64 16 + %4 = load ptr, ptr %_M_finish.i, align 8 + %incdec.ptr.i = getelementptr inbounds nuw i8, ptr %4, i64 16 store ptr %incdec.ptr.i, ptr %_M_finish.i, align 8 br label %_ZNSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE9push_backERKS2_.exit if.else.i: ; preds = %entry - %6 = load ptr, ptr %blocks_, align 8 - %sub.ptr.lhs.cast.i.i.i.i = ptrtoint ptr %3 to i64 - %sub.ptr.rhs.cast.i.i.i.i = ptrtoint ptr %6 to i64 + %5 = load ptr, ptr %blocks_, align 8 + %sub.ptr.lhs.cast.i.i.i.i = ptrtoint ptr %2 to i64 + %sub.ptr.rhs.cast.i.i.i.i = ptrtoint ptr %5 to i64 %sub.ptr.sub.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i %cmp.i.i.i = icmp eq i64 %sub.ptr.sub.i.i.i.i, 9223372036854775792 br i1 %cmp.i.i.i, label %if.then.i.i.i, label %_ZNKSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE12_M_check_lenEmPKc.exit.i.i @@ -4904,8 +4903,8 @@ _ZNKSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE12_M_check_lenEmPK %.sroa.speculated.i.i.i = tail call i64 @llvm.umax.i64(i64 %sub.ptr.div.i.i.i.i, i64 1) %add.i.i.i = add nsw i64 %.sroa.speculated.i.i.i, %sub.ptr.div.i.i.i.i %cmp7.i.i.i = icmp ult i64 %add.i.i.i, %sub.ptr.div.i.i.i.i - %7 = tail call i64 @llvm.umin.i64(i64 %add.i.i.i, i64 576460752303423487) - %cond.i.i.i = select i1 %cmp7.i.i.i, i64 576460752303423487, i64 %7 + %6 = tail call i64 @llvm.umin.i64(i64 %add.i.i.i, i64 576460752303423487) + %cond.i.i.i = select i1 %cmp7.i.i.i, i64 576460752303423487, i64 %6 %cmp.not.i.i.i = icmp ne i64 %cond.i.i.i, 0 tail call void @llvm.assume(i1 %cmp.not.i.i.i) %mul.i.i.i.i.i = shl nuw nsw i64 %cond.i.i.i, 4 @@ -4914,26 +4913,26 @@ _ZNKSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE12_M_check_lenEmPK store ptr %call, ptr %add.ptr.i.i, align 8 %block.sroa.4.0.add.ptr.i.i.sroa_idx = getelementptr inbounds nuw i8, ptr %add.ptr.i.i, i64 8 store i64 %0, ptr %block.sroa.4.0.add.ptr.i.i.sroa_idx, align 8 - %cmp.not5.i.i.i.i.i.i = icmp eq ptr %6, %3 + %cmp.not5.i.i.i.i.i.i = icmp eq ptr %5, %2 br i1 %cmp.not5.i.i.i.i.i.i, label %_ZNSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit19.i.i, label %for.body.i.i.i.i.i.i for.body.i.i.i.i.i.i: ; preds = %_ZNKSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE12_M_check_lenEmPKc.exit.i.i, %for.body.i.i.i.i.i.i %__cur.07.i.i.i.i.i.i = phi ptr [ %incdec.ptr1.i.i.i.i.i.i, %for.body.i.i.i.i.i.i ], [ %call5.i.i.i.i.i, %_ZNKSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE12_M_check_lenEmPKc.exit.i.i ] - %__first.addr.06.i.i.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i.i.i, %for.body.i.i.i.i.i.i ], [ %6, %_ZNKSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE12_M_check_lenEmPKc.exit.i.i ] + %__first.addr.06.i.i.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i.i.i, %for.body.i.i.i.i.i.i ], [ %5, %_ZNKSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE12_M_check_lenEmPKc.exit.i.i ] tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %__cur.07.i.i.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(16) %__first.addr.06.i.i.i.i.i.i, i64 16, i1 false), !alias.scope !52 %incdec.ptr.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %__first.addr.06.i.i.i.i.i.i, i64 16 %incdec.ptr1.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %__cur.07.i.i.i.i.i.i, i64 16 - %cmp.not.i.i.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i.i, %3 + %cmp.not.i.i.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i.i, %2 br i1 %cmp.not.i.i.i.i.i.i, label %_ZNSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit19.i.i, label %for.body.i.i.i.i.i.i, !llvm.loop !56 _ZNSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit19.i.i: ; preds = %for.body.i.i.i.i.i.i, %_ZNKSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE12_M_check_lenEmPKc.exit.i.i %__cur.0.lcssa.i.i.i.i.i.i = phi ptr [ %call5.i.i.i.i.i, %_ZNKSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE12_M_check_lenEmPKc.exit.i.i ], [ %incdec.ptr1.i.i.i.i.i.i, %for.body.i.i.i.i.i.i ] %incdec.ptr.i.i = getelementptr inbounds nuw i8, ptr %__cur.0.lcssa.i.i.i.i.i.i, i64 16 - %tobool.not.i.i.i = icmp eq ptr %6, null + %tobool.not.i.i.i = icmp eq ptr %5, null br i1 %tobool.not.i.i.i, label %_ZNSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_.exit.i, label %if.then.i20.i.i if.then.i20.i.i: ; preds = %_ZNSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit19.i.i - tail call void @_ZdlPv(ptr noundef nonnull %6) #22 + tail call void @_ZdlPv(ptr noundef nonnull %5) #22 br label %_ZNSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_.exit.i _ZNSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_.exit.i: ; preds = %if.then.i20.i.i, %_ZNSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit19.i.i @@ -4970,6 +4969,9 @@ delete.end: ; preds = %delete.notnull, %en ; Function Attrs: nobuiltin nounwind declare void @_ZdaPv(ptr noundef) local_unnamed_addr #11 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i64 @llvm.smax.i64(i64, i64) #17 + ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.umin.i64(i64, i64) #17 diff --git a/bench/velox/optimized/ExprCompiler.cpp.ll b/bench/velox/optimized/ExprCompiler.cpp.ll index 3234c6eb851..9fa23798274 100644 --- a/bench/velox/optimized/ExprCompiler.cpp.ll +++ b/bench/velox/optimized/ExprCompiler.cpp.ll @@ -19503,13 +19503,13 @@ if.else11.i.i: ; preds = %if.then %add.i.i.i = sub nuw nsw i32 64, %4 %conv.i.i = zext nneg i32 %add.i.i.i to i64 %shl.i.i = shl nuw nsw i64 1, %conv.i.i - %sh_prom.i.i = tail call i32 @llvm.umin.i32(i32 %add.i.i.i, i32 12) - %shl25.i.i = shl nuw nsw i32 10, %sh_prom.i.i + %sub246.i.i = tail call i32 @llvm.umin.i32(i32 %add.i.i.i, i32 12) + %shl25.i.i = shl nuw nsw i32 10, %sub246.i.i %conv26.i.i = zext nneg i32 %shl25.i.i to i64 %sub.i.i.i = add nsw i64 %shl.i.i, -1 %shr.i.i.i = lshr i64 %sub.i.i.i, 12 - %add.i7.i.i = add nuw nsw i64 %shr.i.i.i, 1 - %mul.i.i.i = mul nuw nsw i64 %add.i7.i.i, %conv26.i.i + %add.i8.i.i = add nuw nsw i64 %shr.i.i.i, 1 + %mul.i.i.i = mul nuw nsw i64 %add.i8.i.i, %conv26.i.i %cmp32.i.i = icmp samesign ugt i64 %mul.i.i.i, 4294967295 br i1 %cmp32.i.i, label %if.then33.i.i, label %_ZN5folly6detail18rawOverAlignedImplISaIhELm16ELb1EEEvRKT_mRPv.exit.i.i.i.i diff --git a/bench/wireshark/optimized/netscaler.c.ll b/bench/wireshark/optimized/netscaler.c.ll index 7a73cf01a81..ce705ffcf86 100644 --- a/bench/wireshark/optimized/netscaler.c.ll +++ b/bench/wireshark/optimized/netscaler.c.ll @@ -4594,30 +4594,31 @@ define internal range(i32 0, 2) i32 @nstrace_read_v30(ptr noundef readonly captu %25 = zext i32 %.0330 to i64 %26 = getelementptr i8, ptr %9, i64 %25 %27 = load i8, ptr %26, align 1 - %28 = icmp ne i8 %27, 0 - %29 = load ptr, ptr %0, align 8 - %30 = tail call i32 @file_eof(ptr noundef %29) #10 - %31 = icmp ne i32 %30, 0 - %32 = add nsw i32 %.0331, -1 - %33 = icmp ult i32 %32, 16383 - %or.cond5 = and i1 %33, %31 - br i1 %or.cond5, label %34, label %39 - -34: ; preds = %24 - %35 = zext nneg i32 %.0331 to i64 - %36 = getelementptr i8, ptr %9, i64 %35 - %37 = sub nuw nsw i32 16384, %.0331 - %38 = zext nneg i32 %37 to i64 - tail call void @llvm.memset.p0.i64(ptr align 1 %36, i8 0, i64 %38, i1 false) - br label %39 - -39: ; preds = %34, %24 - %40 = icmp ult i32 %.0330, 16384 - %41 = and i1 %28, %40 + %28 = icmp eq i8 %27, 0 + %29 = tail call i32 @llvm.umax.i32(i32 %.0330, i32 16384) + %spec.store.select = select i1 %28, i32 %29, i32 %.0330 + %30 = load ptr, ptr %0, align 8 + %31 = tail call i32 @file_eof(ptr noundef %30) #10 + %32 = icmp ne i32 %31, 0 + %33 = add nsw i32 %.0331, -1 + %34 = icmp ult i32 %33, 16383 + %or.cond5 = and i1 %34, %32 + br i1 %or.cond5, label %35, label %40 + +35: ; preds = %24 + %36 = zext nneg i32 %.0331 to i64 + %37 = getelementptr i8, ptr %9, i64 %36 + %38 = sub nuw nsw i32 16384, %.0331 + %39 = zext nneg i32 %38 to i64 + tail call void @llvm.memset.p0.i64(ptr align 1 %37, i8 0, i64 %39, i1 false) + br label %40 + +40: ; preds = %35, %24 + %41 = icmp ult i32 %spec.store.select, 16384 br i1 %41, label %.lr.ph, label %.critedge -.lr.ph: ; preds = %39, %364 - %.1459 = phi i32 [ %.10, %364 ], [ %.0330, %39 ] +.lr.ph: ; preds = %40, %364 + %.1459 = phi i32 [ %.10, %364 ], [ %spec.store.select, %40 ] %42 = zext nneg i32 %.1459 to i64 %43 = getelementptr i8, ptr %9, i64 %42 %44 = load i8, ptr %43, align 1 @@ -5276,7 +5277,7 @@ nstrace_ensure_buflen.exit395: ; preds = %66 %365 = icmp ult i32 %.10, 16384 br i1 %365, label %.lr.ph, label %.critedge, !llvm.loop !18 -.critedge: ; preds = %.lr.ph, %364, %39 +.critedge: ; preds = %.lr.ph, %364, %40 %366 = zext i32 %.0333 to i64 %367 = load i64, ptr %20, align 8 %368 = add i64 %367, %366 @@ -6423,6 +6424,9 @@ define internal noundef i32 @nstrace_35_dump_open(ptr noundef writeonly captures ret i32 1 } +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i32 @llvm.umax.i32(i32, i32) #9 + ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.umin.i64(i64, i64) #9 diff --git a/bench/wireshark/optimized/packet-asterix.c.ll b/bench/wireshark/optimized/packet-asterix.c.ll index c0975b17ad2..55db08235e4 100644 --- a/bench/wireshark/optimized/packet-asterix.c.ll +++ b/bench/wireshark/optimized/packet-asterix.c.ll @@ -36116,40 +36116,40 @@ target triple = "x86_64-pc-linux-gnu" ; Function Attrs: nounwind uwtable define hidden void @proto_register_asterix() local_unnamed_addr #0 { - %1 = tail call i32 @proto_register_protocol(ptr noundef nonnull @.str.10822, ptr noundef nonnull @.str.10823, ptr noundef nonnull @.str.10824) #3 + %1 = tail call i32 @proto_register_protocol(ptr noundef nonnull @.str.10822, ptr noundef nonnull @.str.10823, ptr noundef nonnull @.str.10824) #4 store i32 %1, ptr @proto_asterix, align 4 - tail call void @proto_register_field_array(i32 noundef %1, ptr noundef nonnull @proto_register_asterix.hf, i32 noundef 9054) #3 - tail call void @proto_register_subtree_array(ptr noundef nonnull @proto_register_asterix.ett, i32 noundef 5) #3 + tail call void @proto_register_field_array(i32 noundef %1, ptr noundef nonnull @proto_register_asterix.hf, i32 noundef 9054) #4 + tail call void @proto_register_subtree_array(ptr noundef nonnull @proto_register_asterix.ett, i32 noundef 5) #4 %2 = load i32, ptr @proto_asterix, align 4 - %3 = tail call ptr @register_dissector(ptr noundef nonnull @.str.10824, ptr noundef nonnull @dissect_asterix, i32 noundef %2) #3 + %3 = tail call ptr @register_dissector(ptr noundef nonnull @.str.10824, ptr noundef nonnull @dissect_asterix, i32 noundef %2) #4 store ptr %3, ptr @asterix_handle, align 8 %4 = load i32, ptr @proto_asterix, align 4 - %5 = tail call ptr @prefs_register_protocol(i32 noundef %4, ptr noundef null) #3 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10825, ptr noundef nonnull @.str.10826, ptr noundef nonnull @.str.10827, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 4), ptr noundef nonnull @I001_versions, i32 noundef 0) #3 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10828, ptr noundef nonnull @.str.10829, ptr noundef nonnull @.str.10830, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 8), ptr noundef nonnull @I002_versions, i32 noundef 0) #3 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10831, ptr noundef nonnull @.str.10832, ptr noundef nonnull @.str.10833, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 16), ptr noundef nonnull @I004_versions, i32 noundef 0) #3 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10834, ptr noundef nonnull @.str.10835, ptr noundef nonnull @.str.10836, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 32), ptr noundef nonnull @I008_versions, i32 noundef 0) #3 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10837, ptr noundef nonnull @.str.10838, ptr noundef nonnull @.str.10839, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 36), ptr noundef nonnull @I009_versions, i32 noundef 0) #3 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10840, ptr noundef nonnull @.str.10841, ptr noundef nonnull @.str.10842, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 40), ptr noundef nonnull @I010_versions, i32 noundef 0) #3 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10843, ptr noundef nonnull @.str.10844, ptr noundef nonnull @.str.10845, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 44), ptr noundef nonnull @I011_versions, i32 noundef 0) #3 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10846, ptr noundef nonnull @.str.10847, ptr noundef nonnull @.str.10848, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 60), ptr noundef nonnull @I015_versions, i32 noundef 0) #3 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10849, ptr noundef nonnull @.str.10850, ptr noundef nonnull @.str.10851, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 64), ptr noundef nonnull @I016_versions, i32 noundef 0) #3 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10852, ptr noundef nonnull @.str.10853, ptr noundef nonnull @.str.10854, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 68), ptr noundef nonnull @I017_versions, i32 noundef 0) #3 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10855, ptr noundef nonnull @.str.10856, ptr noundef nonnull @.str.10857, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 72), ptr noundef nonnull @I018_versions, i32 noundef 0) #3 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10858, ptr noundef nonnull @.str.10859, ptr noundef nonnull @.str.10860, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 76), ptr noundef nonnull @I019_versions, i32 noundef 0) #3 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10861, ptr noundef nonnull @.str.10862, ptr noundef nonnull @.str.10863, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 80), ptr noundef nonnull @I020_versions, i32 noundef 0) #3 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10864, ptr noundef nonnull @.str.10865, ptr noundef nonnull @.str.10866, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 84), ptr noundef nonnull @I021_versions, i32 noundef 0) #3 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10867, ptr noundef nonnull @.str.10868, ptr noundef nonnull @.str.10869, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 92), ptr noundef nonnull @I023_versions, i32 noundef 0) #3 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10870, ptr noundef nonnull @.str.10871, ptr noundef nonnull @.str.10872, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 100), ptr noundef nonnull @I025_versions, i32 noundef 0) #3 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10873, ptr noundef nonnull @.str.10874, ptr noundef nonnull @.str.10875, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 128), ptr noundef nonnull @I032_versions, i32 noundef 0) #3 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10876, ptr noundef nonnull @.str.10877, ptr noundef nonnull @.str.10878, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 136), ptr noundef nonnull @I034_versions, i32 noundef 0) #3 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10879, ptr noundef nonnull @.str.10880, ptr noundef nonnull @.str.10881, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 192), ptr noundef nonnull @I048_versions, i32 noundef 0) #3 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10882, ptr noundef nonnull @.str.10883, ptr noundef nonnull @.str.10884, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 248), ptr noundef nonnull @I062_versions, i32 noundef 0) #3 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10885, ptr noundef nonnull @.str.10886, ptr noundef nonnull @.str.10887, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 252), ptr noundef nonnull @I063_versions, i32 noundef 0) #3 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10888, ptr noundef nonnull @.str.10889, ptr noundef nonnull @.str.10890, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 260), ptr noundef nonnull @I065_versions, i32 noundef 0) #3 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10891, ptr noundef nonnull @.str.10892, ptr noundef nonnull @.str.10893, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 820), ptr noundef nonnull @I205_versions, i32 noundef 0) #3 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10894, ptr noundef nonnull @.str.10895, ptr noundef nonnull @.str.10896, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 960), ptr noundef nonnull @I240_versions, i32 noundef 0) #3 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10897, ptr noundef nonnull @.str.10898, ptr noundef nonnull @.str.10899, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 988), ptr noundef nonnull @I247_versions, i32 noundef 0) #3 + %5 = tail call ptr @prefs_register_protocol(i32 noundef %4, ptr noundef null) #4 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10825, ptr noundef nonnull @.str.10826, ptr noundef nonnull @.str.10827, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 4), ptr noundef nonnull @I001_versions, i32 noundef 0) #4 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10828, ptr noundef nonnull @.str.10829, ptr noundef nonnull @.str.10830, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 8), ptr noundef nonnull @I002_versions, i32 noundef 0) #4 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10831, ptr noundef nonnull @.str.10832, ptr noundef nonnull @.str.10833, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 16), ptr noundef nonnull @I004_versions, i32 noundef 0) #4 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10834, ptr noundef nonnull @.str.10835, ptr noundef nonnull @.str.10836, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 32), ptr noundef nonnull @I008_versions, i32 noundef 0) #4 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10837, ptr noundef nonnull @.str.10838, ptr noundef nonnull @.str.10839, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 36), ptr noundef nonnull @I009_versions, i32 noundef 0) #4 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10840, ptr noundef nonnull @.str.10841, ptr noundef nonnull @.str.10842, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 40), ptr noundef nonnull @I010_versions, i32 noundef 0) #4 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10843, ptr noundef nonnull @.str.10844, ptr noundef nonnull @.str.10845, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 44), ptr noundef nonnull @I011_versions, i32 noundef 0) #4 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10846, ptr noundef nonnull @.str.10847, ptr noundef nonnull @.str.10848, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 60), ptr noundef nonnull @I015_versions, i32 noundef 0) #4 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10849, ptr noundef nonnull @.str.10850, ptr noundef nonnull @.str.10851, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 64), ptr noundef nonnull @I016_versions, i32 noundef 0) #4 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10852, ptr noundef nonnull @.str.10853, ptr noundef nonnull @.str.10854, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 68), ptr noundef nonnull @I017_versions, i32 noundef 0) #4 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10855, ptr noundef nonnull @.str.10856, ptr noundef nonnull @.str.10857, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 72), ptr noundef nonnull @I018_versions, i32 noundef 0) #4 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10858, ptr noundef nonnull @.str.10859, ptr noundef nonnull @.str.10860, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 76), ptr noundef nonnull @I019_versions, i32 noundef 0) #4 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10861, ptr noundef nonnull @.str.10862, ptr noundef nonnull @.str.10863, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 80), ptr noundef nonnull @I020_versions, i32 noundef 0) #4 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10864, ptr noundef nonnull @.str.10865, ptr noundef nonnull @.str.10866, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 84), ptr noundef nonnull @I021_versions, i32 noundef 0) #4 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10867, ptr noundef nonnull @.str.10868, ptr noundef nonnull @.str.10869, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 92), ptr noundef nonnull @I023_versions, i32 noundef 0) #4 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10870, ptr noundef nonnull @.str.10871, ptr noundef nonnull @.str.10872, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 100), ptr noundef nonnull @I025_versions, i32 noundef 0) #4 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10873, ptr noundef nonnull @.str.10874, ptr noundef nonnull @.str.10875, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 128), ptr noundef nonnull @I032_versions, i32 noundef 0) #4 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10876, ptr noundef nonnull @.str.10877, ptr noundef nonnull @.str.10878, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 136), ptr noundef nonnull @I034_versions, i32 noundef 0) #4 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10879, ptr noundef nonnull @.str.10880, ptr noundef nonnull @.str.10881, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 192), ptr noundef nonnull @I048_versions, i32 noundef 0) #4 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10882, ptr noundef nonnull @.str.10883, ptr noundef nonnull @.str.10884, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 248), ptr noundef nonnull @I062_versions, i32 noundef 0) #4 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10885, ptr noundef nonnull @.str.10886, ptr noundef nonnull @.str.10887, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 252), ptr noundef nonnull @I063_versions, i32 noundef 0) #4 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10888, ptr noundef nonnull @.str.10889, ptr noundef nonnull @.str.10890, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 260), ptr noundef nonnull @I065_versions, i32 noundef 0) #4 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10891, ptr noundef nonnull @.str.10892, ptr noundef nonnull @.str.10893, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 820), ptr noundef nonnull @I205_versions, i32 noundef 0) #4 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10894, ptr noundef nonnull @.str.10895, ptr noundef nonnull @.str.10896, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 960), ptr noundef nonnull @I240_versions, i32 noundef 0) #4 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10897, ptr noundef nonnull @.str.10898, ptr noundef nonnull @.str.10899, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 988), ptr noundef nonnull @I247_versions, i32 noundef 0) #4 ret void } @@ -36165,41 +36165,41 @@ declare ptr @register_dissector(ptr noundef, ptr noundef, i32 noundef) local_unn define internal i32 @dissect_asterix(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr readnone captures(none) %3) #0 { %5 = getelementptr inbounds nuw i8, ptr %1, i64 8 %6 = load ptr, ptr %5, align 8 - tail call void @col_set_str(ptr noundef %6, i32 noundef 34, ptr noundef nonnull @.str.10823) #3 + tail call void @col_set_str(ptr noundef %6, i32 noundef 34, ptr noundef nonnull @.str.10823) #4 %7 = load ptr, ptr %5, align 8 - tail call void @col_clear(ptr noundef %7, i32 noundef 25) #3 + tail call void @col_clear(ptr noundef %7, i32 noundef 25) #4 %.not = icmp eq ptr %2, null br i1 %.not, label %dissect_asterix_packet.exit, label %8 8: ; preds = %4 - %9 = tail call i32 @tvb_reported_length(ptr noundef %0) #3 + %9 = tail call i32 @tvb_reported_length(ptr noundef %0) #4 %.not.i = icmp eq i32 %9, 0 br i1 %.not.i, label %dissect_asterix_packet.exit, label %.lr.ph.i .lr.ph.i: ; preds = %8, %dissect_asterix_data_block.exit.i %.031.i = phi i32 [ %164, %dissect_asterix_data_block.exit.i ], [ 0, %8 ] - %10 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %.031.i) #3 + %10 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %.031.i) #4 %11 = add nuw i32 %.031.i, 1 - %12 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %11) #3 + %12 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %11) #4 %13 = zext i8 %12 to i32 %14 = shl nuw nsw i32 %13, 8 %15 = add i32 %.031.i, 2 - %16 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %15) #3 + %16 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %15) #4 %17 = zext i8 %16 to i32 %18 = or disjoint i32 %14, %17 %19 = add nuw nsw i32 %18, 65533 %20 = load i32, ptr @proto_asterix, align 4 %21 = and i32 %19, 65535 %22 = add nuw nsw i32 %21, 3 - %23 = tail call ptr @proto_tree_add_item(ptr noundef nonnull %2, i32 noundef %20, ptr noundef %0, i32 noundef %.031.i, i32 noundef %22, i32 noundef 0) #3 + %23 = tail call ptr @proto_tree_add_item(ptr noundef nonnull %2, i32 noundef %20, ptr noundef %0, i32 noundef %.031.i, i32 noundef %22, i32 noundef 0) #4 %24 = zext i8 %10 to i32 - tail call void (ptr, ptr, ...) @proto_item_append_text(ptr noundef %23, ptr noundef nonnull @.str.12112, i32 noundef %24) #3 + tail call void (ptr, ptr, ...) @proto_item_append_text(ptr noundef %23, ptr noundef nonnull @.str.12112, i32 noundef %24) #4 %25 = load i32, ptr @ett_asterix, align 4 - %26 = tail call ptr @proto_item_add_subtree(ptr noundef %23, i32 noundef %25) #3 + %26 = tail call ptr @proto_item_add_subtree(ptr noundef %23, i32 noundef %25) #4 %27 = load i32, ptr @hf_asterix_category, align 4 - %28 = tail call ptr @proto_tree_add_item(ptr noundef %26, i32 noundef %27, ptr noundef %0, i32 noundef %.031.i, i32 noundef 1, i32 noundef 0) #3 + %28 = tail call ptr @proto_tree_add_item(ptr noundef %26, i32 noundef %27, ptr noundef %0, i32 noundef %.031.i, i32 noundef 1, i32 noundef 0) #4 %29 = load i32, ptr @hf_asterix_length, align 4 - %30 = tail call ptr @proto_tree_add_item(ptr noundef %26, i32 noundef %29, ptr noundef %0, i32 noundef %11, i32 noundef 2, i32 noundef 0) #3 + %30 = tail call ptr @proto_tree_add_item(ptr noundef %26, i32 noundef %29, ptr noundef %0, i32 noundef %11, i32 noundef 2, i32 noundef 0) #4 %31 = add i32 %.031.i, 3 %.not.i.i = icmp eq i32 %18, 3 br i1 %.not.i.i, label %dissect_asterix_data_block.exit.i, label %.lr.ph.i.i @@ -36233,14 +36233,14 @@ define internal i32 @dissect_asterix(ptr noundef %0, ptr noundef %1, ptr noundef br i1 %.not30.i.i.i, label %asterix_get_active_uap.exit.i.i, label %47 47: ; preds = %45 - %48 = tail call i32 @tvb_reported_length(ptr noundef %0) #3 + %48 = tail call i32 @tvb_reported_length(ptr noundef %0) #4 %49 = sub i32 %48, %37 br label %50 50: ; preds = %50, %47 %.0.i.i.i.i = phi i32 [ 0, %47 ], [ %57, %50 ] %51 = add i32 %.0.i.i.i.i, %37 - %52 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %51) #3 + %52 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %51) #4 %53 = and i8 %52, 1 %54 = icmp ne i8 %53, 0 %55 = icmp ult i32 %.0.i.i.i.i, %49 @@ -36276,7 +36276,7 @@ asterix_fspec_len.exit.preheader.i.i.i: ; preds = %50 .lr.ph.i.i.i.i: ; preds = %65, %.lr.ph.i.i.preheader.i.i %indvars.iv.i.i.i = phi i32 [ %indvars.iv.next.i.i.i, %65 ], [ 0, %.lr.ph.i.i.preheader.i.i ] %66 = add i32 %indvars.iv.i.i.i, %37 - %67 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %66) #3 + %67 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %66) #4 %68 = and i8 %67, 1 %.not.i.i.i.i = icmp eq i8 %68, 0 br i1 %.not.i.i.i.i, label %asterix_field_exists.exit.thread.i.i.i, label %65 @@ -36284,7 +36284,7 @@ asterix_fspec_len.exit.preheader.i.i.i: ; preds = %50 asterix_field_exists.exit.i.i.i: ; preds = %65, %.lr.ph.i.i.i %.lcssa.i.i.i.i = phi i32 [ 0, %.lr.ph.i.i.i ], [ %64, %65 ] %69 = add i32 %.lcssa.i.i.i.i, %37 - %70 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %69) #3 + %70 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %69) #4 %71 = and i32 %61, 7 %72 = lshr exact i32 128, %71 %73 = zext i8 %70 to i32 @@ -36298,7 +36298,7 @@ asterix_field_exists.exit.i.i.i: ; preds = %65, %.lr.ph.i.i.i br i1 %76, label %78, label %82 78: ; preds = %75 - %79 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %77) #3 + %79 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %77) #4 %80 = lshr i8 %79, 7 %81 = zext nneg i8 %80 to i64 br label %asterix_get_active_uap.exit.i.i @@ -36335,14 +36335,14 @@ asterix_get_active_uap.exit.i.i: ; preds = %asterix_field_exist br i1 %.not24.i.i.i, label %dissect_asterix_data_block.exit.i, label %98 98: ; preds = %91 - %99 = tail call i32 @tvb_reported_length(ptr noundef %0) #3 + %99 = tail call i32 @tvb_reported_length(ptr noundef %0) #4 %100 = sub i32 %99, %37 br label %101 101: ; preds = %101, %98 %.0.i.i45.i.i = phi i32 [ 0, %98 ], [ %108, %101 ] %102 = add i32 %.0.i.i45.i.i, %37 - %103 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %102) #3 + %103 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %102) #4 %104 = and i8 %103, 1 %105 = icmp ne i8 %104, 0 %106 = icmp ult i32 %.0.i.i45.i.i, %100 @@ -36378,7 +36378,7 @@ asterix_fspec_len.exit.preheader.i46.i.i: ; preds = %101 .lr.ph.i.i49.i.i: ; preds = %116, %.lr.ph.i.i49.preheader.i.i %indvars.iv.i50.i.i = phi i32 [ %indvars.iv.next.i52.i.i, %116 ], [ 0, %.lr.ph.i.i49.preheader.i.i ] %117 = add i32 %indvars.iv.i50.i.i, %37 - %118 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %117) #3 + %118 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %117) #4 %119 = and i8 %118, 1 %.not.i.i51.i.i = icmp eq i8 %119, 0 br i1 %.not.i.i51.i.i, label %asterix_field_exists.exit.thread.i56.i.i, label %116 @@ -36386,7 +36386,7 @@ asterix_fspec_len.exit.preheader.i46.i.i: ; preds = %101 asterix_field_exists.exit.i53.i.i: ; preds = %116, %.lr.ph.i47.i.i %.lcssa.i.i54.i.i = phi i32 [ 0, %.lr.ph.i47.i.i ], [ %115, %116 ] %120 = add i32 %.lcssa.i.i54.i.i, %37 - %121 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %120) #3 + %121 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %120) #4 %122 = and i32 %112, 7 %123 = lshr exact i32 128, %122 %124 = zext i8 %121 to i32 @@ -36417,18 +36417,18 @@ asterix_message_length.exit.i.i: ; preds = %asterix_field_exist 136: ; preds = %asterix_message_length.exit.i.i %137 = load i32, ptr @hf_asterix_message, align 4 - %138 = tail call ptr @proto_tree_add_item(ptr noundef %26, i32 noundef %137, ptr noundef %0, i32 noundef %37, i32 noundef %.0.i58.i.i, i32 noundef 0) #3 - tail call void (ptr, ptr, ...) @proto_item_append_text(ptr noundef %138, ptr noundef nonnull @.str.12113, i32 noundef %.065.i.i, i32 noundef %.0.i58.i.i) #3 + %138 = tail call ptr @proto_tree_add_item(ptr noundef %26, i32 noundef %137, ptr noundef %0, i32 noundef %37, i32 noundef %.0.i58.i.i, i32 noundef 0) #4 + tail call void (ptr, ptr, ...) @proto_item_append_text(ptr noundef %138, ptr noundef nonnull @.str.12113, i32 noundef %.065.i.i, i32 noundef %.0.i58.i.i) #4 %139 = load i32, ptr @ett_asterix_message, align 4 - %140 = tail call ptr @proto_item_add_subtree(ptr noundef %138, i32 noundef %139) #3 - %141 = tail call i32 @tvb_reported_length(ptr noundef %0) #3 + %140 = tail call ptr @proto_item_add_subtree(ptr noundef %138, i32 noundef %139) #4 + %141 = tail call i32 @tvb_reported_length(ptr noundef %0) #4 %142 = sub i32 %141, %37 br label %143 143: ; preds = %143, %136 %.0.i59.i.i = phi i32 [ 0, %136 ], [ %150, %143 ] %144 = add i32 %.0.i59.i.i, %37 - %145 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %144) #3 + %145 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %144) #4 %146 = and i8 %145, 1 %147 = icmp ne i8 %146, 0 %148 = icmp ult i32 %.0.i59.i.i, %142 @@ -36438,7 +36438,7 @@ asterix_message_length.exit.i.i: ; preds = %asterix_field_exist asterix_message_length.exit.thread.i.i: ; preds = %143 %151 = load i32, ptr @hf_asterix_fspec, align 4 - %152 = tail call ptr @proto_tree_add_item(ptr noundef %140, i32 noundef %151, ptr noundef %0, i32 noundef %37, i32 noundef %150, i32 noundef 0) #3 + %152 = tail call ptr @proto_tree_add_item(ptr noundef %140, i32 noundef %151, ptr noundef %0, i32 noundef %37, i32 noundef %150, i32 noundef 0) #4 %153 = load i32, ptr %35, align 4 %154 = sext i32 %153 to i64 %155 = getelementptr ptr, ptr %90, i64 %154 @@ -36454,12 +36454,12 @@ asterix_message_length.exit.thread.i.i: ; preds = %143 dissect_asterix_data_block.exit.i: ; preds = %asterix_message_length.exit.thread.i.i, %asterix_message_length.exit.i.i, %91, %asterix_get_active_uap.exit.i.i, %.lr.ph.i %164 = add i32 %22, %.031.i - %165 = tail call i32 @tvb_reported_length(ptr noundef %0) #3 + %165 = tail call i32 @tvb_reported_length(ptr noundef %0) #4 %166 = icmp ult i32 %164, %165 br i1 %166, label %.lr.ph.i, label %dissect_asterix_packet.exit, !llvm.loop !10 dissect_asterix_packet.exit: ; preds = %dissect_asterix_data_block.exit.i, %8, %4 - %167 = tail call i32 @tvb_captured_length(ptr noundef %0) #3 + %167 = tail call i32 @tvb_captured_length(ptr noundef %0) #4 ret i32 %167 } @@ -36470,7 +36470,7 @@ declare void @prefs_register_enum_preference(ptr noundef, ptr noundef, ptr nound ; Function Attrs: nounwind uwtable define hidden void @proto_reg_handoff_asterix() local_unnamed_addr #0 { %1 = load ptr, ptr @asterix_handle, align 8 - tail call void @dissector_add_uint_with_preference(ptr noundef nonnull @.str.10900, i32 noundef 8600, ptr noundef %1) #3 + tail call void @dissector_add_uint_with_preference(ptr noundef nonnull @.str.10900, i32 noundef 8600, ptr noundef %1) #4 ret void } @@ -36522,14 +36522,14 @@ define internal fastcc i32 @dissect_asterix_fields(ptr noundef %0, ptr noundef % .lr.ph.i.i: ; preds = %.lr.ph135, %14 %indvars.iv.i = phi i32 [ %indvars.iv.next.i, %14 ], [ 0, %.lr.ph135 ] %15 = add i32 %indvars.iv.i, %2 - %16 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %15) #3 + %16 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %15) #4 %17 = and i8 %16, 1 %.not.i.i = icmp eq i8 %17, 0 br i1 %.not.i.i, label %asterix_field_offset.exit.thread, label %14 asterix_field_exists.exit.i: ; preds = %14, %.lr.ph135 %18 = add i32 %13, %2 - %19 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %18) #3 + %19 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %18) #4 %20 = and i32 %11, 7 %21 = lshr exact i32 128, %20 %22 = zext i8 %19 to i32 @@ -36538,14 +36538,14 @@ asterix_field_exists.exit.i: ; preds = %14, %.lr.ph135 br i1 %.not32.i, label %asterix_field_offset.exit.thread, label %24 24: ; preds = %asterix_field_exists.exit.i - %25 = tail call i32 @tvb_reported_length(ptr noundef %0) #3 + %25 = tail call i32 @tvb_reported_length(ptr noundef %0) #4 %26 = sub i32 %25, %2 br label %27 27: ; preds = %27, %24 %.0.i.i = phi i32 [ 0, %24 ], [ %34, %27 ] %28 = add i32 %.0.i.i, %2 - %29 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %28) #3 + %29 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %28) #4 %30 = and i8 %29, 1 %31 = icmp ne i8 %30, 0 %32 = icmp ult i32 %.0.i.i, %26 @@ -36577,7 +36577,7 @@ asterix_fspec_len.exit.preheader.i: ; preds = %27 .lr.ph.i21.i: ; preds = %.lr.ph.i, %41 %indvars.iv42.i = phi i32 [ %indvars.iv.next43.i, %41 ], [ 0, %.lr.ph.i ] %42 = add i32 %indvars.iv42.i, %2 - %43 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %42) #3 + %43 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %42) #4 %44 = and i8 %43, 1 %.not.i23.i = icmp eq i8 %44, 0 br i1 %.not.i23.i, label %asterix_field_exists.exit27.thread.i, label %41 @@ -36585,7 +36585,7 @@ asterix_fspec_len.exit.preheader.i: ; preds = %27 asterix_field_exists.exit27.i: ; preds = %41, %.lr.ph.i %.lcssa.i25.i = phi i32 [ 0, %.lr.ph.i ], [ %39, %41 ] %45 = add i32 %.lcssa.i25.i, %2 - %46 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %45) #3 + %46 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %45) #4 %47 = and i32 %37, 7 %48 = lshr exact i32 128, %47 %49 = zext i8 %46 to i32 @@ -36622,23 +36622,23 @@ asterix_field_offset.exit: ; preds = %asterix_field_exist %64 = getelementptr inbounds nuw i8, ptr %62, i64 16 %65 = load ptr, ptr %64, align 8 %66 = load i32, ptr %65, align 4 - %67 = tail call ptr @proto_tree_add_item(ptr noundef %3, i32 noundef %66, ptr noundef %0, i32 noundef %58, i32 noundef %60, i32 noundef 0) #3 + %67 = tail call ptr @proto_tree_add_item(ptr noundef %3, i32 noundef %66, ptr noundef %0, i32 noundef %58, i32 noundef %60, i32 noundef 0) #4 %68 = load i32, ptr @ett_asterix_subtree, align 4 - %69 = tail call ptr @proto_item_add_subtree(ptr noundef %67, i32 noundef %68) #3 + %69 = tail call ptr @proto_item_add_subtree(ptr noundef %67, i32 noundef %68) #4 switch i8 %63, label %127 [ i8 6, label %70 i8 2, label %86 ] 70: ; preds = %57 - %71 = tail call i32 @tvb_reported_length(ptr noundef %0) #3 + %71 = tail call i32 @tvb_reported_length(ptr noundef %0) #4 %72 = sub i32 %71, %58 br label %73 73: ; preds = %73, %70 %.0.i119 = phi i32 [ 0, %70 ], [ %80, %73 ] %74 = add i32 %.0.i119, %58 - %75 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %74) #3 + %75 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %74) #4 %76 = and i8 %75, 1 %77 = icmp ne i8 %76, 0 %78 = icmp ult i32 %.0.i119, %72 @@ -36648,7 +36648,7 @@ asterix_field_offset.exit: ; preds = %asterix_field_exist asterix_fspec_len.exit: ; preds = %73 %81 = load i32, ptr @hf_asterix_fspec, align 4 - %82 = tail call ptr @proto_tree_add_item(ptr noundef %69, i32 noundef %81, ptr noundef %0, i32 noundef %58, i32 noundef %80, i32 noundef 0) #3 + %82 = tail call ptr @proto_tree_add_item(ptr noundef %69, i32 noundef %81, ptr noundef %0, i32 noundef %58, i32 noundef %80, i32 noundef 0) #4 %83 = load ptr, ptr %8, align 8 %84 = getelementptr inbounds nuw i8, ptr %83, i64 32 %85 = tail call fastcc i32 @dissect_asterix_fields(ptr noundef %0, ptr noundef %1, i32 noundef %58, ptr noundef %69, ptr noundef nonnull %84) @@ -36663,7 +36663,7 @@ asterix_fspec_len.exit: ; preds = %73 ._crit_edge.thread: ; preds = %86 %90 = load i32, ptr @hf_counter, align 4 - %91 = tail call ptr @proto_tree_add_item(ptr noundef %69, i32 noundef %90, ptr noundef %0, i32 noundef %58, i32 noundef 0, i32 noundef 0) #3 + %91 = tail call ptr @proto_tree_add_item(ptr noundef %69, i32 noundef %90, ptr noundef %0, i32 noundef %58, i32 noundef 0, i32 noundef 0) #4 br label %asterix_field_offset.exit.thread .lr.ph: ; preds = %86, %.lr.ph @@ -36671,7 +36671,7 @@ asterix_fspec_len.exit: ; preds = %73 %.0112125 = phi i32 [ %97, %.lr.ph ], [ 0, %86 ] %92 = shl i64 %.0126, 8 %93 = add i32 %.0112125, %58 - %94 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %93) #3 + %94 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %93) #4 %95 = zext i8 %94 to i64 %96 = or disjoint i64 %92, %95 %97 = add nuw i32 %.0112125, 1 @@ -36683,7 +36683,7 @@ asterix_fspec_len.exit: ; preds = %73 ._crit_edge: ; preds = %.lr.ph %102 = load i32, ptr @hf_counter, align 4 - %103 = tail call ptr @proto_tree_add_item(ptr noundef %69, i32 noundef %102, ptr noundef %0, i32 noundef %58, i32 noundef %100, i32 noundef 0) #3 + %103 = tail call ptr @proto_tree_add_item(ptr noundef %69, i32 noundef %102, ptr noundef %0, i32 noundef %58, i32 noundef %100, i32 noundef 0) #4 %.not138 = icmp eq i64 %96, 0 br i1 %.not138, label %asterix_field_offset.exit.thread, label %.lr.ph131.preheader @@ -36705,9 +36705,9 @@ asterix_fspec_len.exit: ; preds = %73 %110 = load i32, ptr %109, align 8 %111 = add i32 %.0110129, %58 %112 = add i32 %111, %110 - %113 = tail call ptr @proto_tree_add_item(ptr noundef %69, i32 noundef %108, ptr noundef %0, i32 noundef %112, i32 noundef %104, i32 noundef 0) #3 + %113 = tail call ptr @proto_tree_add_item(ptr noundef %69, i32 noundef %108, ptr noundef %0, i32 noundef %112, i32 noundef %104, i32 noundef 0) #4 %114 = load i32, ptr @ett_asterix_subtree, align 4 - %115 = tail call ptr @proto_item_add_subtree(ptr noundef %113, i32 noundef %114) #3 + %115 = tail call ptr @proto_item_add_subtree(ptr noundef %113, i32 noundef %114) #4 %116 = load ptr, ptr %8, align 8 %117 = getelementptr inbounds nuw i8, ptr %116, i64 8 %118 = load i32, ptr %117, align 8 @@ -36774,7 +36774,7 @@ define internal fastcc i32 @asterix_field_length(ptr noundef %0, i32 noundef %1, %.04472 = phi i32 [ %16, %.lr.ph74 ], [ 0, %.preheader ] %12 = shl i32 %.04472, 8 %13 = add i32 %indvars.iv87, %1 - %14 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %13) #3 + %14 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %13) #4 %15 = zext i8 %14 to i32 %16 = or disjoint i32 %12, %15 %indvars.iv.next88 = add nuw nsw i32 %indvars.iv87, 1 @@ -36801,7 +36801,7 @@ define internal fastcc i32 @asterix_field_length(ptr noundef %0, i32 noundef %1, %30 = add i32 %29, %27 %31 = add i32 %1, -1 %32 = add i32 %31, %30 - %33 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %32) #3 + %33 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %32) #4 %34 = and i8 %33, 1 %.not5268 = icmp eq i8 %34, 0 br i1 %.not5268, label %.loopexit, label %.lr.ph70 @@ -36811,7 +36811,7 @@ define internal fastcc i32 @asterix_field_length(ptr noundef %0, i32 noundef %1, %35 = load i32, ptr %26, align 4 %36 = add i32 %35, %.14669 %37 = add i32 %31, %36 - %38 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %37) #3 + %38 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %37) #4 %39 = and i8 %38, 1 %.not52 = icmp eq i8 %39, 0 br i1 %.not52, label %.loopexit, label %.lr.ph70, !llvm.loop !16 @@ -36822,7 +36822,7 @@ define internal fastcc i32 @asterix_field_length(ptr noundef %0, i32 noundef %1, %.24764 = phi i32 [ %45, %.lr.ph66 ], [ 0, %.preheader56 ] %41 = shl i32 %.24764, 8 %42 = add i32 %40, %1 - %43 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %42) #3 + %43 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %42) #4 %44 = zext i8 %43 to i32 %45 = or disjoint i32 %41, %44 %46 = add i8 %.165, 1 @@ -36834,7 +36834,7 @@ define internal fastcc i32 @asterix_field_length(ptr noundef %0, i32 noundef %1, .preheader59: ; preds = %3, %.preheader59 %.3 = phi i32 [ %53, %.preheader59 ], [ 0, %3 ] %50 = add i32 %.3, %1 - %51 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %50) #3 + %51 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %50) #4 %52 = and i8 %51, 1 %.not = icmp eq i8 %52, 0 %53 = add i32 %.3, 1 @@ -36867,7 +36867,7 @@ define internal fastcc i32 @asterix_field_length(ptr noundef %0, i32 noundef %1, .lr.ph.i: ; preds = %.lr.ph, %63 %indvars.iv = phi i32 [ %indvars.iv.next, %63 ], [ 0, %.lr.ph ] %65 = add i32 %indvars.iv, %1 - %66 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %65) #3 + %66 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %65) #4 %67 = and i8 %66, 1 %.not.i = icmp eq i8 %67, 0 br i1 %.not.i, label %asterix_field_exists.exit.thread, label %63 @@ -36875,7 +36875,7 @@ define internal fastcc i32 @asterix_field_length(ptr noundef %0, i32 noundef %1, asterix_field_exists.exit: ; preds = %63, %.lr.ph %.lcssa.i = phi i32 [ 0, %.lr.ph ], [ %indvars.iv.next, %63 ] %68 = add i32 %.lcssa.i, %1 - %69 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %68) #3 + %69 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %68) #4 %70 = and i32 %60, 7 %71 = lshr exact i32 128, %70 %72 = zext i8 %69 to i32 @@ -36931,7 +36931,7 @@ define internal fastcc void @asterix_build_subtree(ptr noundef %0, ptr noundef % %16 = add i32 %.096118, %8 %17 = load i16, ptr %14, align 8 %18 = zext i16 %17 to i32 - %19 = tail call i64 @tvb_get_bits64(ptr noundef %0, i32 noundef %16, i32 noundef %18, i32 noundef 0) #3 + %19 = tail call i64 @tvb_get_bits64(ptr noundef %0, i32 noundef %16, i32 noundef %18, i32 noundef 0) #4 %20 = load ptr, ptr %6, align 8 %21 = getelementptr ptr, ptr %20, i64 %12 %22 = load ptr, ptr %21, align 8 @@ -36973,7 +36973,7 @@ define internal fastcc void @asterix_build_subtree(ptr noundef %0, ptr noundef % 37: ; preds = %36, %25, %25, %25, %25, %25 %.2 = phi i8 [ %.093119, %25 ], [ %.093119, %25 ], [ %.093119, %25 ], [ %.093119, %25 ], [ %.093119, %25 ], [ %spec.select, %36 ] %38 = load i32, ptr %24, align 4 - %39 = tail call ptr @proto_registrar_get_nth(i32 noundef %38) #3 + %39 = tail call ptr @proto_registrar_get_nth(i32 noundef %38) #4 %40 = getelementptr inbounds nuw i8, ptr %39, i64 32 %41 = load i64, ptr %40, align 8 %.not109 = icmp eq i64 %41, 0 @@ -36982,7 +36982,7 @@ define internal fastcc void @asterix_build_subtree(ptr noundef %0, ptr noundef % 42: ; preds = %37 %43 = getelementptr inbounds nuw i8, ptr %39, i64 16 %44 = load i32, ptr %43, align 8 - %45 = tail call i32 @ftype_wire_size(i32 noundef %44) #3 + %45 = tail call i32 @ftype_wire_size(i32 noundef %44) #4 %46 = icmp sgt i32 %45, 1 br i1 %46, label %47, label %56 @@ -36993,10 +36993,10 @@ define internal fastcc void @asterix_build_subtree(ptr noundef %0, ptr noundef % %51 = sub nuw nsw i32 71, %50 %52 = lshr i32 %51, 3 %53 = sub nsw i32 %45, %52 - %54 = icmp sgt i32 %53, -1 - %55 = select i1 %54, i32 %53, i32 0 - %spec.select110 = sub i32 %27, %55 - %spec.select111 = select i1 %54, i32 %45, i32 %33 + %54 = tail call i32 @llvm.smax.i32(i32 %53, i32 0) + %spec.select110 = sub i32 %27, %54 + %55 = icmp slt i32 %53, 0 + %spec.select111 = select i1 %55, i32 %33, i32 %45 br label %56 56: ; preds = %47, %42, %37 @@ -37008,7 +37008,7 @@ define internal fastcc void @asterix_build_subtree(ptr noundef %0, ptr noundef % %60 = getelementptr inbounds nuw i8, ptr %59, i64 24 %61 = load ptr, ptr %60, align 8 %62 = load i32, ptr %61, align 4 - %63 = tail call ptr @proto_tree_add_item(ptr noundef %3, i32 noundef %62, ptr noundef %0, i32 noundef %.095, i32 noundef %.094, i32 noundef 0) #3 + %63 = tail call ptr @proto_tree_add_item(ptr noundef %3, i32 noundef %62, ptr noundef %0, i32 noundef %.095, i32 noundef %.094, i32 noundef 0) #4 br label %165 64: ; preds = %25 @@ -37038,11 +37038,11 @@ twos_complement.exit: ; preds = %69, %64, %25 br i1 %.not107, label %82, label %80 80: ; preds = %twos_complement.exit - %81 = tail call ptr (ptr, i32, ptr, i32, i32, double, ptr, ...) @proto_tree_add_double_format_value(ptr noundef %3, i32 noundef %77, ptr noundef %0, i32 noundef %27, i32 noundef %33, double noundef %79, ptr noundef nonnull %76, double noundef %79) #3 + %81 = tail call ptr (ptr, i32, ptr, i32, i32, double, ptr, ...) @proto_tree_add_double_format_value(ptr noundef %3, i32 noundef %77, ptr noundef %0, i32 noundef %27, i32 noundef %33, double noundef %79, ptr noundef nonnull %76, double noundef %79) #4 br label %165 82: ; preds = %twos_complement.exit - %83 = tail call ptr @proto_tree_add_double(ptr noundef %3, i32 noundef %77, ptr noundef %0, i32 noundef %27, i32 noundef %33, double noundef %79) #3 + %83 = tail call ptr @proto_tree_add_double(ptr noundef %3, i32 noundef %77, ptr noundef %0, i32 noundef %27, i32 noundef %33, double noundef %79) #4 br label %165 84: ; preds = %25 @@ -37086,38 +37086,38 @@ twos_complement.exit: ; preds = %69, %64, %25 %122 = getelementptr [64 x i8], ptr @AISCode, i64 0, i64 %121 %123 = load i8, ptr %122, align 1 %124 = sext i8 %123 to i32 - %125 = tail call noalias ptr (ptr, ptr, ...) @wmem_strdup_printf(ptr noundef %85, ptr noundef nonnull @.str.12114, i32 noundef %90, i32 noundef %95, i32 noundef %100, i32 noundef %105, i32 noundef %110, i32 noundef %115, i32 noundef %120, i32 noundef %124) #3 + %125 = tail call noalias ptr (ptr, ptr, ...) @wmem_strdup_printf(ptr noundef %85, ptr noundef nonnull @.str.12114, i32 noundef %90, i32 noundef %95, i32 noundef %100, i32 noundef %105, i32 noundef %110, i32 noundef %115, i32 noundef %120, i32 noundef %124) #4 %126 = load ptr, ptr %6, align 8 %127 = getelementptr ptr, ptr %126, i64 %12 %128 = load ptr, ptr %127, align 8 %129 = getelementptr inbounds nuw i8, ptr %128, i64 24 %130 = load ptr, ptr %129, align 8 %131 = load i32, ptr %130, align 4 - %132 = tail call ptr @proto_tree_add_string(ptr noundef %3, i32 noundef %131, ptr noundef %0, i32 noundef %27, i32 noundef %33, ptr noundef %125) #3 + %132 = tail call ptr @proto_tree_add_string(ptr noundef %3, i32 noundef %131, ptr noundef %0, i32 noundef %27, i32 noundef %33, ptr noundef %125) #4 br label %165 133: ; preds = %25 %134 = load ptr, ptr %9, align 8 - %135 = tail call noalias ptr @wmem_alloc(ptr noundef %134, i64 noundef 1) #3 - %136 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %27) #3 + %135 = tail call noalias ptr @wmem_alloc(ptr noundef %134, i64 noundef 1) #4 + %136 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %27) #4 %137 = lshr i8 %136, 7 store i8 %137, ptr %135, align 1 %138 = load ptr, ptr %9, align 8 %139 = load i32, ptr @proto_asterix, align 4 - tail call void @p_add_proto_data(ptr noundef %138, ptr noundef %1, i32 noundef %139, i32 noundef 21150, ptr noundef nonnull %135) #3 + tail call void @p_add_proto_data(ptr noundef %138, ptr noundef %1, i32 noundef %139, i32 noundef 21150, ptr noundef nonnull %135) #4 %140 = load ptr, ptr %6, align 8 %141 = getelementptr ptr, ptr %140, i64 %12 %142 = load ptr, ptr %141, align 8 %143 = getelementptr inbounds nuw i8, ptr %142, i64 24 %144 = load ptr, ptr %143, align 8 %145 = load i32, ptr %144, align 4 - %146 = tail call ptr @proto_tree_add_item(ptr noundef %3, i32 noundef %145, ptr noundef %0, i32 noundef %27, i32 noundef %33, i32 noundef 0) #3 + %146 = tail call ptr @proto_tree_add_item(ptr noundef %3, i32 noundef %145, ptr noundef %0, i32 noundef %27, i32 noundef %33, i32 noundef 0) #4 br label %165 147: ; preds = %25 %148 = load ptr, ptr %9, align 8 %149 = load i32, ptr @proto_asterix, align 4 - %150 = tail call ptr @p_get_proto_data(ptr noundef %148, ptr noundef %1, i32 noundef %149, i32 noundef 21150) #3 + %150 = tail call ptr @p_get_proto_data(ptr noundef %148, ptr noundef %1, i32 noundef %149, i32 noundef 21150) #4 %.not106 = icmp eq ptr %150, null br i1 %.not106, label %155, label %151 @@ -37139,7 +37139,7 @@ twos_complement.exit: ; preds = %69, %64, %25 %161 = load i32, ptr %160, align 4 %162 = sitofp i64 %19 to double %163 = fmul double %.0, %162 - %164 = tail call ptr @proto_tree_add_double(ptr noundef %3, i32 noundef %161, ptr noundef %0, i32 noundef %27, i32 noundef %33, double noundef %163) #3 + %164 = tail call ptr @proto_tree_add_double(ptr noundef %3, i32 noundef %161, ptr noundef %0, i32 noundef %27, i32 noundef %33, double noundef %163) #4 br label %165 165: ; preds = %25, %56, %84, %133, %155, %82, %80, %15 @@ -37181,10 +37181,14 @@ declare ptr @p_get_proto_data(ptr noundef, ptr noundef, i32 noundef, i32 noundef ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.ctlz.i64(i64, i1 immarg) #2 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i32 @llvm.smax.i32(i32, i32) #3 + attributes #0 = { nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #3 = { nounwind } +attributes #3 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #4 = { nounwind } !llvm.module.flags = !{!0, !1, !2, !3} diff --git a/bench/wireshark/optimized/packet-ppp.c.ll b/bench/wireshark/optimized/packet-ppp.c.ll index 686956cc074..ea986d1b9e1 100644 --- a/bench/wireshark/optimized/packet-ppp.c.ll +++ b/bench/wireshark/optimized/packet-ppp.c.ll @@ -3970,7 +3970,7 @@ define internal i32 @dissect_lcp_multilink_ep_disc_opt(ptr noundef %0, ptr nound 12: ; preds = %4 %13 = tail call i32 @tvb_captured_length(ptr noundef %0) #6 - br label %74 + br label %72 14: ; preds = %4 %15 = load ptr, ptr %5, align 8 @@ -3985,102 +3985,100 @@ define internal i32 @dissect_lcp_multilink_ep_disc_opt(ptr noundef %0, ptr nound 22: ; preds = %14 %23 = call i32 @tvb_captured_length(ptr noundef %0) #6 - br label %74 + br label %72 24: ; preds = %14 %25 = add nsw i32 %8, -3 %26 = load i32, ptr %7, align 4 - switch i32 %26, label %70 [ + switch i32 %26, label %68 [ i32 0, label %.loopexit i32 1, label %27 - i32 2, label %32 - i32 3, label %40 - i32 4, label %48 - i32 5, label %66 + i32 2, label %31 + i32 3, label %39 + i32 4, label %47 + i32 5, label %64 ] 27: ; preds = %24 %28 = load i32, ptr @hf_lcp_opt_data, align 4 - %29 = icmp samesign ult i32 %8, 24 - %30 = select i1 %29, i32 %25, i32 20 - %31 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %28, ptr noundef %0, i32 noundef 3, i32 noundef %30, i32 noundef 0) #6 + %29 = call i32 @llvm.umin.i32(i32 %25, i32 20) + %30 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %28, ptr noundef %0, i32 noundef 3, i32 noundef %29, i32 noundef 0) #6 br label %.loopexit -32: ; preds = %24 - %33 = icmp samesign ugt i32 %8, 6 - br i1 %33, label %34, label %37 +31: ; preds = %24 + %32 = icmp samesign ugt i32 %8, 6 + br i1 %32, label %33, label %36 -34: ; preds = %32 - %35 = load i32, ptr @hf_lcp_opt_ip_address, align 4 - %36 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %35, ptr noundef %0, i32 noundef 3, i32 noundef 4, i32 noundef 0) #6 +33: ; preds = %31 + %34 = load i32, ptr @hf_lcp_opt_ip_address, align 4 + %35 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %34, ptr noundef %0, i32 noundef 3, i32 noundef 4, i32 noundef 0) #6 br label %.loopexit -37: ; preds = %32 - %38 = load i32, ptr @hf_lcp_opt_data, align 4 - %39 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %38, ptr noundef %0, i32 noundef 3, i32 noundef %25, i32 noundef 0) #6 +36: ; preds = %31 + %37 = load i32, ptr @hf_lcp_opt_data, align 4 + %38 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %37, ptr noundef %0, i32 noundef 3, i32 noundef %25, i32 noundef 0) #6 br label %.loopexit -40: ; preds = %24 - %41 = icmp samesign ugt i32 %8, 8 - br i1 %41, label %42, label %45 +39: ; preds = %24 + %40 = icmp samesign ugt i32 %8, 8 + br i1 %40, label %41, label %44 -42: ; preds = %40 - %43 = load i32, ptr @hf_lcp_opt_802_1_address, align 4 - %44 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %43, ptr noundef %0, i32 noundef 3, i32 noundef 6, i32 noundef 0) #6 +41: ; preds = %39 + %42 = load i32, ptr @hf_lcp_opt_802_1_address, align 4 + %43 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %42, ptr noundef %0, i32 noundef 3, i32 noundef 6, i32 noundef 0) #6 br label %.loopexit -45: ; preds = %40 - %46 = load i32, ptr @hf_lcp_opt_data, align 4 - %47 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %46, ptr noundef %0, i32 noundef 3, i32 noundef %25, i32 noundef 0) #6 +44: ; preds = %39 + %45 = load i32, ptr @hf_lcp_opt_data, align 4 + %46 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %45, ptr noundef %0, i32 noundef 3, i32 noundef %25, i32 noundef 0) #6 br label %.loopexit -48: ; preds = %24 - %49 = and i32 %25, 3 - %.not54 = icmp eq i32 %49, 0 - br i1 %.not54, label %53, label %50 +47: ; preds = %24 + %48 = and i32 %25, 3 + %.not54 = icmp eq i32 %48, 0 + br i1 %.not54, label %52, label %49 -50: ; preds = %48 - %51 = load i32, ptr @hf_lcp_opt_data, align 4 - %52 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %51, ptr noundef %0, i32 noundef 3, i32 noundef %25, i32 noundef 0) #6 +49: ; preds = %47 + %50 = load i32, ptr @hf_lcp_opt_data, align 4 + %51 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %50, ptr noundef %0, i32 noundef 3, i32 noundef %25, i32 noundef 0) #6 br label %.loopexit -53: ; preds = %48 - %54 = load i32, ptr @hf_lcp_opt_magic_block, align 4 - %55 = icmp samesign ult i32 %8, 24 - %56 = select i1 %55, i32 %25, i32 20 - %57 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %54, ptr noundef %0, i32 noundef 3, i32 noundef %56, i32 noundef 0) #6 - %58 = load i32, ptr @ett_lcp_magic_block, align 4 - %59 = call ptr @proto_item_add_subtree(ptr noundef %57, i32 noundef %58) #6 - %60 = icmp samesign ugt i32 %8, 6 - br i1 %60, label %.lr.ph, label %.loopexit - -.lr.ph: ; preds = %53, %.lr.ph - %.056 = phi i32 [ %63, %.lr.ph ], [ %25, %53 ] - %.05055 = phi i32 [ %64, %.lr.ph ], [ 3, %53 ] - %61 = load i32, ptr @hf_lcp_opt_magic_number, align 4 - %62 = call ptr @proto_tree_add_item(ptr noundef %59, i32 noundef %61, ptr noundef %0, i32 noundef %.05055, i32 noundef 4, i32 noundef 0) #6 - %63 = add nsw i32 %.056, -4 - %64 = add nuw nsw i32 %.05055, 4 - %65 = icmp samesign ugt i32 %.056, 7 - br i1 %65, label %.lr.ph, label %.loopexit, !llvm.loop !8 - -66: ; preds = %24 - %67 = load i32, ptr @hf_lcp_opt_psndn, align 4 - %68 = call i32 @llvm.umin.i32(i32 %25, i32 15) - %69 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %67, ptr noundef %0, i32 noundef 3, i32 noundef %68, i32 noundef 0) #6 +52: ; preds = %47 + %53 = load i32, ptr @hf_lcp_opt_magic_block, align 4 + %54 = call i32 @llvm.umin.i32(i32 %25, i32 20) + %55 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %53, ptr noundef %0, i32 noundef 3, i32 noundef %54, i32 noundef 0) #6 + %56 = load i32, ptr @ett_lcp_magic_block, align 4 + %57 = call ptr @proto_item_add_subtree(ptr noundef %55, i32 noundef %56) #6 + %58 = icmp samesign ugt i32 %8, 6 + br i1 %58, label %.lr.ph, label %.loopexit + +.lr.ph: ; preds = %52, %.lr.ph + %.056 = phi i32 [ %61, %.lr.ph ], [ %25, %52 ] + %.05055 = phi i32 [ %62, %.lr.ph ], [ 3, %52 ] + %59 = load i32, ptr @hf_lcp_opt_magic_number, align 4 + %60 = call ptr @proto_tree_add_item(ptr noundef %57, i32 noundef %59, ptr noundef %0, i32 noundef %.05055, i32 noundef 4, i32 noundef 0) #6 + %61 = add nsw i32 %.056, -4 + %62 = add nuw nsw i32 %.05055, 4 + %63 = icmp samesign ugt i32 %.056, 7 + br i1 %63, label %.lr.ph, label %.loopexit, !llvm.loop !8 + +64: ; preds = %24 + %65 = load i32, ptr @hf_lcp_opt_psndn, align 4 + %66 = call i32 @llvm.umin.i32(i32 %25, i32 15) + %67 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %65, ptr noundef %0, i32 noundef 3, i32 noundef %66, i32 noundef 0) #6 br label %.loopexit -70: ; preds = %24 - %71 = load i32, ptr @hf_lcp_opt_data, align 4 - %72 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %71, ptr noundef %0, i32 noundef 3, i32 noundef %25, i32 noundef 0) #6 +68: ; preds = %24 + %69 = load i32, ptr @hf_lcp_opt_data, align 4 + %70 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %69, ptr noundef %0, i32 noundef 3, i32 noundef %25, i32 noundef 0) #6 br label %.loopexit -.loopexit: ; preds = %.lr.ph, %53, %50, %42, %45, %34, %37, %24, %70, %66, %27 - %73 = call i32 @tvb_captured_length(ptr noundef %0) #6 - br label %74 +.loopexit: ; preds = %.lr.ph, %52, %49, %41, %44, %33, %36, %24, %68, %64, %27 + %71 = call i32 @tvb_captured_length(ptr noundef %0) #6 + br label %72 -74: ; preds = %.loopexit, %22, %12 - %.051 = phi i32 [ %23, %22 ], [ %73, %.loopexit ], [ %13, %12 ] +72: ; preds = %.loopexit, %22, %12 + %.051 = phi i32 [ %23, %22 ], [ %71, %.loopexit ], [ %13, %12 ] ret i32 %.051 } diff --git a/bench/wireshark/optimized/pcapng.c.ll b/bench/wireshark/optimized/pcapng.c.ll index f33ec05ea99..e4b2fd2f14e 100644 --- a/bench/wireshark/optimized/pcapng.c.ll +++ b/bench/wireshark/optimized/pcapng.c.ll @@ -1896,12 +1896,12 @@ define internal fastcc range(i32 0, 2) i32 @pcapng_read_if_descr_block(ptr nound %14 = load i32, ptr %10, align 4 %15 = tail call noalias ptr (ptr, ptr, ...) @wmem_strdup_printf(ptr noundef null, ptr noundef nonnull @.str.15, i32 noundef %14, i32 noundef 20) #16 store ptr %15, ptr %6, align 8 - br label %94 + br label %93 16: ; preds = %7 %17 = call i32 @wtap_read_bytes(ptr noundef %1, ptr noundef nonnull %8, i32 noundef 8, ptr noundef %5, ptr noundef %6) #16 %.not = icmp eq i32 %17, 0 - br i1 %.not, label %94, label %18 + br i1 %.not, label %93, label %18 18: ; preds = %16 %19 = call ptr @wtap_block_create(i32 noundef 1) #16 @@ -1938,13 +1938,13 @@ define internal fastcc range(i32 0, 2) i32 @pcapng_read_if_descr_block(ptr nound %36 = add i32 %35, -20 %37 = call i32 @pcapng_process_options(ptr noundef %1, ptr noundef nonnull %4, ptr noundef nonnull %3, i32 noundef %36, ptr noundef nonnull @pcapng_process_if_descr_block_option, i32 noundef 0, ptr noundef %5, ptr noundef %6) %.not85 = icmp eq i32 %37, 0 - br i1 %.not85, label %94, label %38 + br i1 %.not85, label %93, label %38 38: ; preds = %31 %39 = load ptr, ptr %20, align 8 %40 = call i32 @wtap_block_get_uint8_option_value(ptr noundef %39, i32 noundef 9, ptr noundef nonnull %9) #16 %41 = icmp eq i32 %40, 0 - br i1 %41, label %42, label %78 + br i1 %41, label %42, label %77 42: ; preds = %38 %43 = load i8, ptr %9, align 1 @@ -1961,46 +1961,46 @@ define internal fastcc range(i32 0, 2) i32 @pcapng_read_if_descr_block(ptr nound store i32 -4, ptr %5, align 4 %49 = call noalias ptr (ptr, ptr, ...) @wmem_strdup_printf(ptr noundef null, ptr noundef nonnull @.str.16, i32 noundef %48) #16 store ptr %49, ptr %6, align 8 - br label %94 + br label %93 50: ; preds = %45 %51 = zext nneg i8 %44 to i64 %52 = shl nuw i64 1, %51 %53 = icmp samesign ugt i8 %44, 29 - br i1 %53, label %78, label %54 + br i1 %53, label %77, label %54 54: ; preds = %50 %55 = icmp samesign ugt i8 %44, 26 - br i1 %55, label %78, label %56 + br i1 %55, label %77, label %56 56: ; preds = %54 %57 = icmp samesign ugt i8 %44, 23 - br i1 %57, label %78, label %58 + br i1 %57, label %77, label %58 58: ; preds = %56 %59 = icmp samesign ugt i8 %44, 19 - br i1 %59, label %78, label %60 + br i1 %59, label %77, label %60 60: ; preds = %58 %61 = icmp samesign ugt i8 %44, 16 - br i1 %61, label %78, label %62 + br i1 %61, label %77, label %62 62: ; preds = %60 %63 = icmp samesign ugt i8 %44, 13 - br i1 %63, label %78, label %64 + br i1 %63, label %77, label %64 64: ; preds = %62 %65 = icmp samesign ugt i8 %44, 9 - br i1 %65, label %78, label %66 + br i1 %65, label %77, label %66 66: ; preds = %64 %67 = icmp samesign ugt i8 %44, 6 - br i1 %67, label %78, label %68 + br i1 %67, label %77, label %68 68: ; preds = %66 %69 = icmp samesign ugt i8 %44, 3 %. = zext i1 %69 to i32 - br label %78 + br label %77 70: ; preds = %42 %71 = zext nneg i8 %44 to i32 @@ -2008,74 +2008,74 @@ define internal fastcc range(i32 0, 2) i32 @pcapng_read_if_descr_block(ptr nound br i1 %72, label %73, label %.preheader .preheader: ; preds = %70 - %.not92 = icmp eq i8 %44, 0 - br i1 %.not92, label %._crit_edge, label %.lr.ph + %.not93 = icmp eq i8 %44, 0 + br i1 %.not93, label %._crit_edge, label %.lr.ph 73: ; preds = %70 store i32 -4, ptr %5, align 4 %74 = call noalias ptr (ptr, ptr, ...) @wmem_strdup_printf(ptr noundef null, ptr noundef nonnull @.str.17, i32 noundef %71) #16 store ptr %74, ptr %6, align 8 - br label %94 + br label %93 .lr.ph: ; preds = %.preheader, %.lr.ph - %.091 = phi i32 [ %76, %.lr.ph ], [ 0, %.preheader ] - %.06790 = phi i64 [ %75, %.lr.ph ], [ 1, %.preheader ] - %75 = mul i64 %.06790, 10 - %76 = add nuw nsw i32 %.091, 1 + %.092 = phi i32 [ %76, %.lr.ph ], [ 0, %.preheader ] + %.06791 = phi i64 [ %75, %.lr.ph ], [ 1, %.preheader ] + %75 = mul i64 %.06791, 10 + %76 = add nuw nsw i32 %.092, 1 %exitcond.not = icmp eq i32 %76, %71 br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !7 ._crit_edge: ; preds = %.lr.ph, %.preheader %.067.lcssa = phi i64 [ 1, %.preheader ], [ %75, %.lr.ph ] - %77 = icmp samesign ult i8 %44, 10 - %.89 = select i1 %77, i32 %71, i32 9 - br label %78 + %.8990 = call i8 @llvm.umin.i8(i8 %44, i8 9) + %.89 = zext nneg i8 %.8990 to i32 + br label %77 -78: ; preds = %50, %54, %56, %58, %60, %62, %64, %66, %68, %._crit_edge, %38 +77: ; preds = %50, %54, %56, %58, %60, %62, %64, %66, %68, %._crit_edge, %38 %.071 = phi i32 [ 6, %38 ], [ 9, %50 ], [ 8, %54 ], [ 7, %56 ], [ 6, %58 ], [ 5, %60 ], [ 4, %62 ], [ 3, %64 ], [ 2, %66 ], [ %., %68 ], [ %.89, %._crit_edge ] %.070 = phi i64 [ 1000000, %38 ], [ %52, %50 ], [ %52, %54 ], [ %52, %56 ], [ %52, %58 ], [ %52, %60 ], [ %52, %62 ], [ %52, %64 ], [ %52, %66 ], [ %52, %68 ], [ %.067.lcssa, %._crit_edge ] - %79 = getelementptr inbounds nuw i8, ptr %21, i64 8 - store i64 %.070, ptr %79, align 8 - %80 = getelementptr inbounds nuw i8, ptr %21, i64 16 - store i32 %.071, ptr %80, align 8 - %81 = getelementptr inbounds nuw i8, ptr %0, i64 144 - %82 = load i32, ptr %81, align 8 - %83 = icmp eq i32 %82, -2 - %84 = load i32, ptr %21, align 8 - br i1 %83, label %.sink.split, label %85 - -85: ; preds = %78 - %.not87 = icmp eq i32 %82, %84 - br i1 %.not87, label %86, label %.sink.split - -.sink.split: ; preds = %85, %78 - %.sink93 = phi i32 [ %84, %78 ], [ -1, %85 ] - store i32 %.sink93, ptr %81, align 8 - br label %86 - -86: ; preds = %.sink.split, %85 - %87 = getelementptr inbounds nuw i8, ptr %0, i64 148 - %88 = load i32, ptr %87, align 4 - %89 = icmp eq i32 %88, -2 - %90 = load i32, ptr %80, align 8 - br i1 %89, label %.sink.split94, label %91 + %78 = getelementptr inbounds nuw i8, ptr %21, i64 8 + store i64 %.070, ptr %78, align 8 + %79 = getelementptr inbounds nuw i8, ptr %21, i64 16 + store i32 %.071, ptr %79, align 8 + %80 = getelementptr inbounds nuw i8, ptr %0, i64 144 + %81 = load i32, ptr %80, align 8 + %82 = icmp eq i32 %81, -2 + %83 = load i32, ptr %21, align 8 + br i1 %82, label %.sink.split, label %84 + +84: ; preds = %77 + %.not87 = icmp eq i32 %81, %83 + br i1 %.not87, label %85, label %.sink.split + +.sink.split: ; preds = %84, %77 + %.sink94 = phi i32 [ %83, %77 ], [ -1, %84 ] + store i32 %.sink94, ptr %80, align 8 + br label %85 -91: ; preds = %86 - %.not88 = icmp eq i32 %88, %90 - br i1 %.not88, label %92, label %.sink.split94 +85: ; preds = %.sink.split, %84 + %86 = getelementptr inbounds nuw i8, ptr %0, i64 148 + %87 = load i32, ptr %86, align 4 + %88 = icmp eq i32 %87, -2 + %89 = load i32, ptr %79, align 8 + br i1 %88, label %.sink.split95, label %90 -.sink.split94: ; preds = %91, %86 - %.sink95 = phi i32 [ %90, %86 ], [ -1, %91 ] - store i32 %.sink95, ptr %87, align 4 - br label %92 +90: ; preds = %85 + %.not88 = icmp eq i32 %87, %89 + br i1 %.not88, label %91, label %.sink.split95 -92: ; preds = %.sink.split94, %91 - %93 = getelementptr inbounds nuw i8, ptr %4, i64 4 - store i32 1, ptr %93, align 4 - br label %94 +.sink.split95: ; preds = %90, %85 + %.sink96 = phi i32 [ %89, %85 ], [ -1, %90 ] + store i32 %.sink96, ptr %86, align 4 + br label %91 -94: ; preds = %31, %16, %92, %73, %47, %13 - %.068 = phi i32 [ 0, %13 ], [ 0, %47 ], [ 1, %92 ], [ 0, %73 ], [ 0, %16 ], [ 0, %31 ] +91: ; preds = %.sink.split95, %90 + %92 = getelementptr inbounds nuw i8, ptr %4, i64 4 + store i32 1, ptr %92, align 4 + br label %93 + +93: ; preds = %31, %16, %91, %73, %47, %13 + %.068 = phi i32 [ 0, %13 ], [ 0, %47 ], [ 1, %91 ], [ 0, %73 ], [ 0, %16 ], [ 0, %31 ] ret i32 %.068 } @@ -7421,6 +7421,9 @@ declare i16 @llvm.bswap.i16(i16) #14 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.umin.i64(i64, i64) #14 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i8 @llvm.umin.i8(i8, i8) #14 + ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.umin.i32(i32, i32) #14 diff --git a/bench/yosys/optimized/clkbufmap.ll b/bench/yosys/optimized/clkbufmap.ll index af9fd99a914..97b06c3b5df 100644 --- a/bench/yosys/optimized/clkbufmap.ll +++ b/bench/yosys/optimized/clkbufmap.ll @@ -7700,7 +7700,7 @@ _ZNSt4pairIN5Yosys5RTLIL8IdStringEiED2Ev.exit.i.i1806: ; preds = %3631, %3624, % 3651: ; preds = %.noexc714 %3652 = icmp slt i32 %3650, 0 - %spec.select.i = select i1 %3652, i32 -1, i32 %3650 + %spec.select.i = call i32 @llvm.smax.i32(i32 %3650, i32 -1) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %63) %3653 = load i32, ptr %464, align 4 %3654 = load i8, ptr @_ZN5Yosys5RTLIL8IdString17destruct_guard_okE, align 1 @@ -9356,15 +9356,15 @@ _ZN5Yosys7hashlib8hash_opsINS_5RTLIL6SigBitEE3cmpERKS3_S6_.exit.thread.i.i792: ; .loopexit3551: ; preds = %4478, %_ZN5Yosys7hashlib8hash_opsINS_5RTLIL6SigBitEE3cmpERKS3_S6_.exit.i.us.i796, %.loopexit.i783 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %61) - %4486 = sext i32 %spec.select.i to i64 + %4486 = zext nneg i32 %spec.select.i to i64 %4487 = load ptr, ptr %581, align 8 - %4488 = getelementptr inbounds %"struct.Yosys::hashlib::dict>, std::pair>::entry_t", ptr %4487, i64 %4486, i32 0, i32 1 + %4488 = getelementptr inbounds nuw %"struct.Yosys::hashlib::dict>, std::pair>::entry_t", ptr %4487, i64 %4486, i32 0, i32 1 %4489 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZNK5Yosys5RTLIL4Cell7getPortERKNS0_8IdStringE(ptr noundef nonnull align 8 dereferenceable(192) %3450, ptr noundef nonnull align 4 dereferenceable(4) %4488) to label %4490 unwind label %.loopexit3571 4490: ; preds = %.loopexit3551 %4491 = load ptr, ptr %581, align 8 - %4492 = getelementptr inbounds %"struct.Yosys::hashlib::dict>, std::pair>::entry_t", ptr %4491, i64 %4486, i32 0, i32 1, i32 1 + %4492 = getelementptr inbounds nuw %"struct.Yosys::hashlib::dict>, std::pair>::entry_t", ptr %4491, i64 %4486, i32 0, i32 1, i32 1 %4493 = load i32, ptr %4492, align 4 %4494 = getelementptr inbounds nuw i8, ptr %4489, i64 16 %4495 = load ptr, ptr %4494, align 8 @@ -10455,7 +10455,7 @@ _ZNSt4pairIN5Yosys5RTLIL8IdStringEiED2Ev.exit.i.i1915: ; preds = %5020, %5013, % 5039: ; preds = %.noexc867 %5040 = icmp slt i32 %5038, 0 - %spec.select.i863 = select i1 %5040, i32 -1, i32 %5038 + %spec.select.i863 = call i32 @llvm.smax.i32(i32 %5038, i32 -1) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %58) %5041 = load i32, ptr %471, align 4 %5042 = load i8, ptr @_ZN5Yosys5RTLIL8IdString17destruct_guard_okE, align 1 @@ -10888,15 +10888,15 @@ _ZN5Yosys7hashlib8hash_opsINS_5RTLIL6SigBitEE3cmpERKS3_S6_.exit.thread.i.i885: ; br i1 %5266, label %.lr.ph.i.split.i883, label %.critedge2, !llvm.loop !74 .loopexit3543: ; preds = %5260, %_ZN5Yosys7hashlib8hash_opsINS_5RTLIL6SigBitEE3cmpERKS3_S6_.exit.i.us.i889 - %5267 = sext i32 %spec.select.i863 to i64 + %5267 = zext nneg i32 %spec.select.i863 to i64 %5268 = load ptr, ptr %591, align 8 - %5269 = getelementptr inbounds %"struct.Yosys::hashlib::dict>, std::pair>::entry_t", ptr %5268, i64 %5267, i32 0, i32 1 + %5269 = getelementptr inbounds nuw %"struct.Yosys::hashlib::dict>, std::pair>::entry_t", ptr %5268, i64 %5267, i32 0, i32 1 %5270 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZNK5Yosys5RTLIL4Cell7getPortERKNS0_8IdStringE(ptr noundef nonnull align 8 dereferenceable(192) %3450, ptr noundef nonnull align 4 dereferenceable(4) %5269) to label %5271 unwind label %.loopexit3571 5271: ; preds = %.loopexit3543 %5272 = load ptr, ptr %591, align 8 - %5273 = getelementptr inbounds %"struct.Yosys::hashlib::dict>, std::pair>::entry_t", ptr %5272, i64 %5267, i32 0, i32 1, i32 1 + %5273 = getelementptr inbounds nuw %"struct.Yosys::hashlib::dict>, std::pair>::entry_t", ptr %5272, i64 %5267, i32 0, i32 1, i32 1 %5274 = load i32, ptr %5273, align 4 %5275 = getelementptr inbounds nuw i8, ptr %5270, i64 16 %5276 = load ptr, ptr %5275, align 8 @@ -27331,6 +27331,9 @@ declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #20 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #20 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i32 @llvm.smax.i32(i32, i32) #17 + attributes #0 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { nofree nounwind } diff --git a/bench/yosys/optimized/iopadmap.ll b/bench/yosys/optimized/iopadmap.ll index e5244b5b7b0..b790886efcd 100644 --- a/bench/yosys/optimized/iopadmap.ll +++ b/bench/yosys/optimized/iopadmap.ll @@ -16607,6 +16607,7 @@ _ZN5Yosys7hashlib4poolIiNS0_8hash_opsIiEEED2Ev.exit: ; preds = %_ZNSt6vectorIN5Y 7154: ; preds = %.noexc1674 %7155 = icmp slt i32 %7153, 0 + %spec.select.i = call i32 @llvm.smax.i32(i32 %7153, i32 -1) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) br i1 %7155, label %7156, label %7167 @@ -16662,7 +16663,7 @@ _ZNSt16allocator_traitsISaISt4pairIN5Yosys5RTLIL7SigSpecES3_EEE9constructIS4_JRK br i1 %7169, label %.lr.ph4277, label %._crit_edge4278 .lr.ph4277: ; preds = %7167 - %7170 = zext nneg i32 %7153 to i64 + %7170 = zext nneg i32 %spec.select.i to i64 %7171 = getelementptr inbounds nuw i8, ptr %.sroa.03111.04280, i64 16 %7172 = getelementptr inbounds nuw i8, ptr %.sroa.03111.04280, i64 24 %7173 = getelementptr inbounds nuw i8, ptr %.sroa.03111.04280, i64 40 @@ -34963,6 +34964,9 @@ declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #22 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #22 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i32 @llvm.smax.i32(i32, i32) #19 + attributes #0 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { nofree nounwind } diff --git a/bench/yosys/optimized/memlib.ll b/bench/yosys/optimized/memlib.ll index 7997f6bd1b2..a014398bc0f 100644 --- a/bench/yosys/optimized/memlib.ll +++ b/bench/yosys/optimized/memlib.ll @@ -40201,12 +40201,12 @@ _ZNK5Yosys7hashlib4dictINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiNS0 to label %1061 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit 1061: ; preds = %_ZNK5Yosys7hashlib4dictINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiNS0_8hash_opsIS7_EEE7do_hashERKS7_.exit.i - %1062 = icmp slt i32 %1060, 0 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) - %1063 = load i32, ptr %.1.i, align 8 - %1064 = icmp eq i32 %1063, 0 - %1065 = zext i1 %1064 to i8 - br i1 %1062, label %1066, label %1089 + %1062 = load i32, ptr %.1.i, align 8 + %1063 = icmp eq i32 %1062, 0 + %1064 = zext i1 %1063 to i8 + %1065 = icmp slt i32 %1060, 0 + br i1 %1065, label %1066, label %1089 1066: ; preds = %1061 %1067 = load ptr, ptr %112, align 8 @@ -40227,7 +40227,7 @@ _ZNK5Yosys7hashlib4dictINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiNS0 to label %1077 unwind label %1087 1077: ; preds = %1075 - store i8 %1065, ptr %113, align 8 + store i8 %1064, ptr %113, align 8 %1078 = load ptr, ptr %112, align 8 %1079 = load ptr, ptr %114, align 8 %.not.i212 = icmp eq ptr %1078, %1079 @@ -40272,7 +40272,7 @@ _ZNSt6vectorIN5Yosys10MemLibrary8RamClockESaIS2_EE9push_backERKS2_.exit: ; preds %1096 = getelementptr inbounds %"struct.Yosys::MemLibrary::RamClock", ptr %1095, i64 %1094, i32 1 %1097 = load i8, ptr %1096, align 8 %1098 = trunc i8 %1097 to i1 - %1099 = xor i1 %1064, %1098 + %1099 = xor i1 %1063, %1098 br i1 %1099, label %1100, label %1107 1100: ; preds = %1089 diff --git a/bench/yosys/optimized/pmux2shiftx.ll b/bench/yosys/optimized/pmux2shiftx.ll index 07da49a0c2b..99c7afe7ff1 100644 --- a/bench/yosys/optimized/pmux2shiftx.ll +++ b/bench/yosys/optimized/pmux2shiftx.ll @@ -28024,6 +28024,7 @@ _ZN5Yosys7hashlib4dictINS_5RTLIL7SigSpecEbNS0_8hash_opsIS3_EEE4findERKS3_.exit: store i32 %.0.i.i46, ptr %9, align 4 %64 = call noundef i32 @_ZNK5Yosys7hashlib4dictINS_5RTLIL7SigSpecEbNS0_8hash_opsIS3_EEE9do_lookupERKS3_Ri(ptr noundef nonnull align 8 dereferenceable(49) %45, ptr noundef nonnull align 8 dereferenceable(64) %1, ptr noundef nonnull align 4 dereferenceable(4) %9) %65 = icmp slt i32 %64, 0 + %spec.select.i = call i32 @llvm.smax.i32(i32 %64, i32 -1) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) br i1 %65, label %84, label %66 @@ -28033,12 +28034,12 @@ _ZN5Yosys7hashlib4dictINS_5RTLIL7SigSpecEbNS0_8hash_opsIS3_EEE4findERKS3_.exit: br i1 %68, label %69, label %._crit_edge ._crit_edge: ; preds = %66 - %.pre184 = zext nneg i32 %64 to i64 + %.pre185 = zext nneg i32 %spec.select.i to i64 br label %77 69: ; preds = %66 %70 = getelementptr inbounds nuw i8, ptr %0, i64 168 - %71 = zext nneg i32 %64 to i64 + %71 = zext nneg i32 %spec.select.i to i64 %72 = load ptr, ptr %70, align 8 %73 = getelementptr inbounds nuw %"struct.Yosys::hashlib::dict::entry_t", ptr %72, i64 %71, i32 0, i32 1 %74 = load i8, ptr %73, align 8 @@ -28048,7 +28049,7 @@ _ZN5Yosys7hashlib4dictINS_5RTLIL7SigSpecEbNS0_8hash_opsIS3_EEE4findERKS3_.exit: br label %77 77: ; preds = %._crit_edge, %69 - %.pre-phi = phi i64 [ %.pre184, %._crit_edge ], [ %71, %69 ] + %.pre-phi = phi i64 [ %.pre185, %._crit_edge ], [ %71, %69 ] %78 = getelementptr inbounds nuw i8, ptr %0, i64 168 %79 = load ptr, ptr %78, align 8 %80 = getelementptr inbounds nuw %"struct.Yosys::hashlib::dict::entry_t", ptr %79, i64 %.pre-phi, i32 0, i32 1 @@ -28062,8 +28063,8 @@ _ZN5Yosys7hashlib4dictINS_5RTLIL7SigSpecEbNS0_8hash_opsIS3_EEE4findERKS3_.exit: 84: ; preds = %_ZN5Yosys7hashlib4dictINS_5RTLIL7SigSpecEbNS0_8hash_opsIS3_EEE4findERKS3_.exit %85 = load i32, ptr %1, align 8 - %.not137 = icmp eq i32 %85, 0 - br i1 %.not137, label %.loopexit129, label %.lr.ph + %.not124138 = icmp eq i32 %85, 0 + br i1 %.not124138, label %.loopexit130, label %.lr.ph .lr.ph: ; preds = %84 %86 = getelementptr inbounds nuw i8, ptr %1, i64 16 @@ -28075,14 +28076,14 @@ _ZN5Yosys7hashlib4dictINS_5RTLIL7SigSpecEbNS0_8hash_opsIS3_EEE4findERKS3_.exit: br label %93 92: ; preds = %_ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit - %.0.mux = select i1 %107, i1 true, i1 %.0139 + %.0.mux = select i1 %107, i1 true, i1 %.0140 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %.not = icmp eq i64 %indvars.iv.next, %91 - br i1 %.not, label %.loopexit129, label %93 + %.not124 = icmp eq i64 %indvars.iv.next, %91 + br i1 %.not124, label %.loopexit130, label %93 93: ; preds = %.lr.ph, %92 %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %92 ] - %.0139 = phi i1 [ false, %.lr.ph ], [ %.0.mux, %92 ] + %.0140 = phi i1 [ false, %.lr.ph ], [ %.0.mux, %92 ] %94 = load ptr, ptr %86, align 8 %95 = load ptr, ptr %87, align 8 %96 = icmp eq ptr %94, %95 @@ -28113,7 +28114,7 @@ _ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit: ; preds = %_ZNK5Yosys5RTLIL7Si %.sroa.27.0.copyload = load i32, ptr %.sroa.27.0..sroa_idx, align 8 %106 = call noundef zeroext i8 @_ZNK5Yosys10FfInitValsclENS_5RTLIL6SigBitE(ptr noundef nonnull align 8 dereferenceable(64) %90, ptr %.sroa.06.0.copyload, i32 %.sroa.27.0.copyload) %107 = icmp eq i8 %106, 1 - %brmerge.not = select i1 %107, i1 %.0139, i1 false + %brmerge.not = select i1 %107, i1 %.0140, i1 false br i1 %brmerge.not, label %108, label %92 108: ; preds = %_ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit @@ -28127,23 +28128,23 @@ _ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit: ; preds = %_ZNK5Yosys5RTLIL7Si 112: ; preds = %111, %108 store i8 0, ptr %2, align 1 - br label %.loopexit129 + br label %.loopexit130 -.loopexit129: ; preds = %92, %84, %112 +.loopexit130: ; preds = %92, %84, %112 %113 = load i8, ptr %2, align 1 %114 = trunc i8 %113 to i1 br i1 %114, label %115, label %.loopexit -115: ; preds = %.loopexit129 +115: ; preds = %.loopexit130 %116 = call noundef zeroext i1 @_ZNK5Yosys5RTLIL7SigSpec14is_fully_constEv(ptr noundef nonnull align 8 dereferenceable(64) %1) br i1 %116, label %117, label %156 117: ; preds = %115 %118 = load i32, ptr %1, align 8 - %.not125140 = icmp eq i32 %118, 0 - br i1 %.not125140, label %.loopexit, label %.lr.ph143 + %.not126141 = icmp eq i32 %118, 0 + br i1 %.not126141, label %.loopexit, label %.lr.ph144 -.lr.ph143: ; preds = %117 +.lr.ph144: ; preds = %117 %119 = getelementptr inbounds nuw i8, ptr %1, i64 16 %120 = getelementptr inbounds nuw i8, ptr %1, i64 24 %121 = getelementptr inbounds nuw i8, ptr %1, i64 40 @@ -28151,13 +28152,13 @@ _ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit: ; preds = %_ZNK5Yosys5RTLIL7Si %123 = load ptr, ptr %119, align 8 %124 = load ptr, ptr %120, align 8 %125 = icmp eq ptr %123, %124 - br i1 %125, label %.lr.ph143.split.us, label %.lr.ph143.split.preheader + br i1 %125, label %.lr.ph144.split.us, label %.lr.ph144.split.preheader -.lr.ph143.split.preheader: ; preds = %.lr.ph143 +.lr.ph144.split.preheader: ; preds = %.lr.ph144 %126 = zext i32 %118 to i64 - br label %.lr.ph143.split + br label %.lr.ph144.split -.lr.ph143.split.us: ; preds = %.lr.ph143 +.lr.ph144.split.us: ; preds = %.lr.ph144 %127 = load ptr, ptr %122, align 8 %128 = load ptr, ptr %121, align 8 %129 = ptrtoint ptr %127 to i64 @@ -28167,77 +28168,77 @@ _ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit: ; preds = %_ZNK5Yosys5RTLIL7Si %133 = zext i32 %118 to i64 br label %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59.us -_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59.us: ; preds = %134, %.lr.ph143.split.us - %indvars.iv182 = phi i64 [ %indvars.iv.next183, %134 ], [ 0, %.lr.ph143.split.us ] - %.042142.us = phi i1 [ %.042.mux.us, %134 ], [ false, %.lr.ph143.split.us ] - %exitcond.not = icmp eq i64 %indvars.iv182, %132 +_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59.us: ; preds = %134, %.lr.ph144.split.us + %indvars.iv183 = phi i64 [ %indvars.iv.next184, %134 ], [ 0, %.lr.ph144.split.us ] + %.042143.us = phi i1 [ %.042.mux.us, %134 ], [ false, %.lr.ph144.split.us ] + %exitcond.not = icmp eq i64 %indvars.iv183, %132 br i1 %exitcond.not, label %.split.us, label %_ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit61.us 134: ; preds = %_ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit61.us - %indvars.iv.next183 = add nuw nsw i64 %indvars.iv182, 1 - %.042.mux.us = select i1 %or.cond.us.not.not158, i1 true, i1 %.042142.us - %.not125.us = icmp eq i64 %indvars.iv.next183, %133 - br i1 %.not125.us, label %.loopexit, label %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59.us + %indvars.iv.next184 = add nuw nsw i64 %indvars.iv183, 1 + %.042.mux.us = select i1 %or.cond.us.not.not159, i1 true, i1 %.042143.us + %.not126.us = icmp eq i64 %indvars.iv.next184, %133 + br i1 %.not126.us, label %.loopexit, label %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59.us _ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit61.us: ; preds = %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59.us - %135 = getelementptr inbounds nuw %"struct.Yosys::RTLIL::SigBit", ptr %128, i64 %indvars.iv182 + %135 = getelementptr inbounds nuw %"struct.Yosys::RTLIL::SigBit", ptr %128, i64 %indvars.iv183 %.sroa.0102.0.copyload.us = load ptr, ptr %135, align 8 %.sroa.2103.0..sroa_idx.us = getelementptr inbounds nuw i8, ptr %135, i64 8 %.sroa.2103.0.copyload.us = load i32, ptr %.sroa.2103.0..sroa_idx.us, align 8 %136 = icmp eq ptr %.sroa.0102.0.copyload.us, null %137 = and i32 %.sroa.2103.0.copyload.us, 255 %138 = icmp eq i32 %137, 1 - %or.cond.us.not.not158 = select i1 %136, i1 %138, i1 false - %brmerge127.us.not = select i1 %or.cond.us.not.not158, i1 %.042142.us, i1 false - br i1 %brmerge127.us.not, label %.split146.us, label %134 + %or.cond.us.not.not159 = select i1 %136, i1 %138, i1 false + %brmerge128.us.not = select i1 %or.cond.us.not.not159, i1 %.042143.us, i1 false + br i1 %brmerge128.us.not, label %.split147.us, label %134 139: ; preds = %_ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit61 - %.042.mux = select i1 %or.cond.not150.not153, i1 true, i1 %.042142 - %indvars.iv.next181 = add nuw nsw i64 %indvars.iv180, 1 - %.not125 = icmp eq i64 %indvars.iv.next181, %126 - br i1 %.not125, label %.loopexit, label %.lr.ph143.split, !llvm.loop !225 - -.lr.ph143.split: ; preds = %.lr.ph143.split.preheader, %139 - %indvars.iv180 = phi i64 [ 0, %.lr.ph143.split.preheader ], [ %indvars.iv.next181, %139 ] - %.042142 = phi i1 [ false, %.lr.ph143.split.preheader ], [ %.042.mux, %139 ] + %.042.mux = select i1 %or.cond.not151.not154, i1 true, i1 %.042143 + %indvars.iv.next182 = add nuw nsw i64 %indvars.iv181, 1 + %.not126 = icmp eq i64 %indvars.iv.next182, %126 + br i1 %.not126, label %.loopexit, label %.lr.ph144.split, !llvm.loop !225 + +.lr.ph144.split: ; preds = %.lr.ph144.split.preheader, %139 + %indvars.iv181 = phi i64 [ 0, %.lr.ph144.split.preheader ], [ %indvars.iv.next182, %139 ] + %.042143 = phi i1 [ false, %.lr.ph144.split.preheader ], [ %.042.mux, %139 ] %140 = load ptr, ptr %119, align 8 %141 = load ptr, ptr %120, align 8 %142 = icmp eq ptr %140, %141 br i1 %142, label %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59, label %143 -143: ; preds = %.lr.ph143.split +143: ; preds = %.lr.ph144.split call void @_ZNK5Yosys5RTLIL7SigSpec6unpackEv(ptr noundef nonnull align 8 dereferenceable(64) %1) br label %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59 -_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59: ; preds = %143, %.lr.ph143.split +_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59: ; preds = %143, %.lr.ph144.split %144 = load ptr, ptr %122, align 8 %145 = load ptr, ptr %121, align 8 %146 = ptrtoint ptr %144 to i64 %147 = ptrtoint ptr %145 to i64 %148 = sub i64 %146, %147 %149 = ashr exact i64 %148, 4 - %.not.i.i.i.i60 = icmp ugt i64 %149, %indvars.iv180 + %.not.i.i.i.i60 = icmp ugt i64 %149, %indvars.iv181 br i1 %.not.i.i.i.i60, label %_ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit61, label %.split.us .split.us: ; preds = %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59, %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59.us - %.us-phi = phi i64 [ %132, %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59.us ], [ %indvars.iv180, %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59 ] - %.us-phi144 = phi i64 [ %132, %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59.us ], [ %149, %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59 ] - call void (ptr, ...) @_ZSt24__throw_out_of_range_fmtPKcz(ptr noundef nonnull @.str.63, i64 noundef %.us-phi, i64 noundef %.us-phi144) #27 + %.us-phi = phi i64 [ %132, %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59.us ], [ %indvars.iv181, %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59 ] + %.us-phi145 = phi i64 [ %132, %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59.us ], [ %149, %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59 ] + call void (ptr, ...) @_ZSt24__throw_out_of_range_fmtPKcz(ptr noundef nonnull @.str.63, i64 noundef %.us-phi, i64 noundef %.us-phi145) #27 unreachable _ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit61: ; preds = %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59 - %150 = getelementptr inbounds nuw %"struct.Yosys::RTLIL::SigBit", ptr %145, i64 %indvars.iv180 + %150 = getelementptr inbounds nuw %"struct.Yosys::RTLIL::SigBit", ptr %145, i64 %indvars.iv181 %.sroa.0102.0.copyload = load ptr, ptr %150, align 8 %.sroa.2103.0..sroa_idx = getelementptr inbounds nuw i8, ptr %150, i64 8 %.sroa.2103.0.copyload = load i32, ptr %.sroa.2103.0..sroa_idx, align 8 %151 = icmp eq ptr %.sroa.0102.0.copyload, null %152 = and i32 %.sroa.2103.0.copyload, 255 %153 = icmp eq i32 %152, 1 - %or.cond.not150.not153 = select i1 %151, i1 %153, i1 false - %brmerge127.not = select i1 %or.cond.not150.not153, i1 %.042142, i1 false - br i1 %brmerge127.not, label %.split146.us, label %139 + %or.cond.not151.not154 = select i1 %151, i1 %153, i1 false + %brmerge128.not = select i1 %or.cond.not151.not154, i1 %.042143, i1 false + br i1 %brmerge128.not, label %.split147.us, label %139 -.split146.us: ; preds = %_ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit61, %_ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit61.us +.split147.us: ; preds = %_ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit61, %_ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit61.us %154 = load i8, ptr %12, align 8 %155 = trunc i8 %154 to i1 br i1 %155, label %.loopexit.sink.split.sink.split, label %.loopexit.sink.split @@ -28281,8 +28282,8 @@ _ZN5Yosys7hashlib4dictINS_5RTLIL7SigSpecENS0_4poolIS3_NS0_8hash_opsIS3_EEEES6_E4 %.0.i.i64 = phi i32 [ 0, %156 ], [ %175, %_ZN5Yosys7hashlib8hash_opsINS_5RTLIL7SigSpecEE4hashERKS3_.exit.i.i63 ] store i32 %.0.i.i64, ptr %8, align 4 %176 = call noundef i32 @_ZNK5Yosys7hashlib4dictINS_5RTLIL7SigSpecENS0_4poolIS3_NS0_8hash_opsIS3_EEEES6_E9do_lookupERKS3_Ri(ptr noundef nonnull align 8 dereferenceable(49) %157, ptr noundef nonnull align 8 dereferenceable(64) %1, ptr noundef nonnull align 4 dereferenceable(4) %8) - %177 = icmp slt i32 %176, 0 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) + %177 = icmp slt i32 %176, 0 br i1 %177, label %178, label %181 178: ; preds = %_ZN5Yosys7hashlib4dictINS_5RTLIL7SigSpecENS0_4poolIS3_NS0_8hash_opsIS3_EEEES6_E4findERKS3_.exit @@ -28310,14 +28311,14 @@ _ZN5Yosys7hashlib4dictINS_5RTLIL7SigSpecENS0_4poolIS3_NS0_8hash_opsIS3_EEEES6_E4 br label %197 197: ; preds = %244, %181 - %indvars.iv177 = phi i64 [ %indvars.iv.next178, %244 ], [ %196, %181 ] - %indvars.iv.next178 = add nsw i64 %indvars.iv177, -1 - %198 = icmp eq i64 %indvars.iv177, 0 + %indvars.iv178 = phi i64 [ %indvars.iv.next179, %244 ], [ %196, %181 ] + %indvars.iv.next179 = add nsw i64 %indvars.iv178, -1 + %198 = icmp eq i64 %indvars.iv178, 0 br i1 %198, label %.loopexit, label %199 199: ; preds = %197 %200 = load ptr, ptr %186, align 8 - %201 = getelementptr inbounds %"struct.Yosys::hashlib::pool::entry_t", ptr %200, i64 %indvars.iv.next178 + %201 = getelementptr inbounds %"struct.Yosys::hashlib::pool::entry_t", ptr %200, i64 %indvars.iv.next179 store i8 1, ptr %11, align 1 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) %202 = load ptr, ptr %18, align 8, !noalias !227 @@ -28415,16 +28416,16 @@ _ZN5Yosys7hashlib4poolINS_5RTLIL7SigSpecENS0_8hash_opsIS3_EEE5eraseERKS3_.exit: %246 = trunc i8 %245 to i1 br i1 %246, label %197, label %.loopexit -.loopexit.sink.split.sink.split: ; preds = %178, %.split146.us - %.str.94.sink = phi ptr [ @.str.93, %.split146.us ], [ @.str.94, %178 ] +.loopexit.sink.split.sink.split: ; preds = %178, %.split147.us + %.str.94.sink = phi ptr [ @.str.93, %.split147.us ], [ @.str.94, %178 ] call void (ptr, ...) @_ZN5Yosys3logEPKcz(ptr noundef nonnull %.str.94.sink, i32 noundef %4, ptr noundef nonnull @.str.66) br label %.loopexit.sink.split -.loopexit.sink.split: ; preds = %.loopexit.sink.split.sink.split, %178, %.split146.us +.loopexit.sink.split: ; preds = %.loopexit.sink.split.sink.split, %178, %.split147.us store i8 0, ptr %2, align 1 br label %.loopexit -.loopexit: ; preds = %197, %244, %139, %134, %.loopexit.sink.split, %117, %.loopexit129 +.loopexit: ; preds = %197, %244, %139, %134, %.loopexit.sink.split, %117, %.loopexit130 %247 = load i8, ptr %3, align 1 %248 = trunc i8 %247 to i1 %.pre = load i8, ptr %2, align 1 @@ -38538,10 +38539,10 @@ declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #22 declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #22 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.smin.i32(i32, i32) #19 +declare i32 @llvm.smax.i32(i32, i32) #19 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.smax.i32(i32, i32) #19 +declare i32 @llvm.smin.i32(i32, i32) #19 attributes #0 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/yosys/optimized/qbfsat.ll b/bench/yosys/optimized/qbfsat.ll index d2d36ca4d8b..cd6c0a99927 100644 --- a/bench/yosys/optimized/qbfsat.ll +++ b/bench/yosys/optimized/qbfsat.ll @@ -5261,8 +5261,8 @@ _ZNK5Yosys7hashlib4dictINS0_4poolINSt7__cxx1112basic_stringIcSt11char_traitsIcES to label %871 unwind label %.loopexit313.i 871: ; preds = %_ZNK5Yosys7hashlib4dictINS0_4poolINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_8hash_opsIS8_EEEEPNS_5RTLIL4CellENS9_ISB_EEE7do_hashERKSB_.exit.i.i - %872 = icmp slt i32 %870, 0 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) + %872 = icmp slt i32 %870, 0 br i1 %872, label %873, label %879 873: ; preds = %871 @@ -12826,7 +12826,7 @@ _ZNSt6vectorIN5Yosys7hashlib4poolINSt7__cxx1112basic_stringIcSt11char_traitsIcES 463: ; preds = %.noexc68 %464 = icmp slt i32 %462, 0 - %spec.select.i64 = select i1 %464, i32 -1, i32 %462 + %spec.select.i64 = call i32 @llvm.smax.i32(i32 %462, i32 -1) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) %465 = load ptr, ptr %136, align 8 %466 = load ptr, ptr %139, align 8 @@ -14088,7 +14088,7 @@ _ZNSt6vectorIN5Yosys7hashlib4poolINSt7__cxx1112basic_stringIcSt11char_traitsIcES 351: ; preds = %.noexc %352 = icmp slt i32 %350, 0 - %spec.select.i = select i1 %352, i32 -1, i32 %350 + %spec.select.i = call i32 @llvm.smax.i32(i32 %350, i32 -1) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) %353 = load ptr, ptr %32, align 8 %354 = load ptr, ptr %35, align 8 @@ -96909,6 +96909,7 @@ _ZNK5Yosys7hashlib4dictINS0_4poolINSt7__cxx1112basic_stringIcSt11char_traitsIcES 93: ; preds = %_ZNK5Yosys7hashlib4dictINS0_4poolINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS0_8hash_opsIS8_EEEES8_NS9_ISB_EEE7do_hashERKSB_.exit.i %94 = icmp slt i32 %92, 0 + %spec.select.i = call i32 @llvm.smax.i32(i32 %92, i32 -1) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) br i1 %94, label %.critedge, label %95 @@ -96958,7 +96959,7 @@ _ZNK5Yosys5RTLIL8IdString2inIJPKcS4_EEEbDpT_.exit.thread: ; preds = %_ZNK5Yosys5 br i1 %116, label %.lr.ph, label %._crit_edge .lr.ph: ; preds = %114 - %117 = zext nneg i32 %92 to i64 + %117 = zext nneg i32 %spec.select.i to i64 %118 = zext nneg i32 %115 to i64 br label %119 @@ -104359,6 +104360,9 @@ declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #27 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #27 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i32 @llvm.smax.i32(i32, i32) #24 + attributes #0 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { nofree nounwind } diff --git a/bench/yosys/optimized/sim.ll b/bench/yosys/optimized/sim.ll index d0509241f57..0e830c80aa5 100644 --- a/bench/yosys/optimized/sim.ll +++ b/bench/yosys/optimized/sim.ll @@ -12789,8 +12789,8 @@ _ZNK5Yosys7hashlib4dictINS_6IdPathENS1_IibNS0_8hash_opsIiEEEENS3_IS2_EEE7do_hash to label %4162 unwind label %.loopexit.split-lp.loopexit.i.i 4162: ; preds = %_ZNK5Yosys7hashlib4dictINS_6IdPathENS1_IibNS0_8hash_opsIiEEEENS3_IS2_EEE7do_hashERKS2_.exit.i.i.i - %4163 = icmp slt i32 %4161, 0 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11), !noalias !105 + %4163 = icmp slt i32 %4161, 0 br i1 %4163, label %.loopexit186.i.i, label %4164 4164: ; preds = %4162 @@ -88693,7 +88693,7 @@ _ZNK5Yosys7hashlib4dictISt4pairINS_5RTLIL8IdStringEiENS3_5ConstENS0_8hash_opsIS5 store i32 %.0.i, ptr %3, align 4 %43 = call noundef i32 @_ZNK5Yosys7hashlib4dictISt4pairINS_5RTLIL8IdStringEiENS3_5ConstENS0_8hash_opsIS5_EEE9do_lookupERKS5_Ri(ptr noundef nonnull align 8 dereferenceable(49) %0, ptr noundef nonnull align 4 dereferenceable(8) %1, ptr noundef nonnull align 4 dereferenceable(4) %3) %44 = icmp slt i32 %43, 0 - %spec.select = select i1 %44, i32 -1, i32 %43 + %spec.select = call i32 @llvm.smax.i32(i32 %43, i32 -1) %spec.select4 = select i1 %44, ptr null, ptr %0 %.fca.0.insert = insertvalue { ptr, i32 } poison, ptr %spec.select4, 0 %.fca.1.insert = insertvalue { ptr, i32 } %.fca.0.insert, i32 %spec.select, 1 @@ -99944,8 +99944,8 @@ _ZNK5Yosys7hashlib4dictINS_6IdPathEN12_GLOBAL__N_19SimWorker11FoundYWPathENS0_8h %.0.i.i = phi i32 [ 0, %42 ], [ %55, %46 ] store i32 %.0.i.i, ptr %5, align 4 %56 = call fastcc noundef i32 @_ZNK5Yosys7hashlib4dictINS_6IdPathEN12_GLOBAL__N_19SimWorker11FoundYWPathENS0_8hash_opsIS2_EEE9do_lookupERKS2_Ri(ptr noundef nonnull align 8 dereferenceable(49) %2, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.079.0118, ptr noundef nonnull align 4 dereferenceable(4) %5) - %57 = icmp slt i32 %56, 0 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) + %57 = icmp slt i32 %56, 0 br i1 %57, label %_ZN5Yosys5RTLIL5ConstD2Ev.exit73, label %58 58: ; preds = %_ZNK5Yosys7hashlib4dictINS_6IdPathEN12_GLOBAL__N_19SimWorker11FoundYWPathENS0_8hash_opsIS2_EEE4findERKS2_.exit @@ -100517,8 +100517,8 @@ _ZNK5Yosys7hashlib4dictINS_6IdPathEN12_GLOBAL__N_19SimWorker11FoundYWPathENS0_8h %.0.i.i = phi i32 [ 0, %24 ], [ %37, %28 ] store i32 %.0.i.i, ptr %3, align 4 %38 = call fastcc noundef i32 @_ZNK5Yosys7hashlib4dictINS_6IdPathEN12_GLOBAL__N_19SimWorker11FoundYWPathENS0_8hash_opsIS2_EEE9do_lookupERKS2_Ri(ptr noundef nonnull align 8 dereferenceable(49) %0, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.04.011, ptr noundef nonnull align 4 dereferenceable(4) %3) - %39 = icmp slt i32 %38, 0 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) + %39 = icmp slt i32 %38, 0 br i1 %39, label %_ZN5Yosys5RTLIL8SigChunkD2Ev.exit, label %40 40: ; preds = %_ZNK5Yosys7hashlib4dictINS_6IdPathEN12_GLOBAL__N_19SimWorker11FoundYWPathENS0_8hash_opsIS2_EEE4findERKS2_.exit @@ -105475,7 +105475,7 @@ _ZN5Yosys7hashlib4dictINS_6IdPathENS0_4poolINS_5RTLIL8IdStringENS0_8hash_opsIS5_ store i32 %.0.i.i36, ptr %5, align 4 %106 = call noundef i32 @_ZNK5Yosys7hashlib4dictINS_6IdPathENS0_4poolINS_5RTLIL8IdStringENS0_8hash_opsIS5_EEEENS6_IS2_EEE9do_lookupERKS2_Ri(ptr noundef nonnull align 8 dereferenceable(49) %91, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 4 dereferenceable(4) %5) %107 = icmp slt i32 %106, 0 - %spec.select.i = select i1 %107, i32 -1, i32 %106 + %spec.select.i = call i32 @llvm.smax.i32(i32 %106, i32 -1) %spec.select4.i = select i1 %107, ptr null, ptr %91 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) br i1 %107, label %_ZN5Yosys6IdPathD2Ev.exit, label %108 @@ -105585,9 +105585,9 @@ _ZN5Yosys6IdPathC2ERKS0_.exit: ; preds = %_ZN5Yosys6IdPathC2E 149: ; preds = %146, %148 %150 = getelementptr inbounds nuw i8, ptr %spec.select4.i, i64 24 - %151 = sext i32 %spec.select.i to i64 + %151 = zext nneg i32 %spec.select.i to i64 %152 = load ptr, ptr %150, align 8 - %153 = getelementptr inbounds %"struct.Yosys::hashlib::dict>::entry_t", ptr %152, i64 %151, i32 0, i32 1 + %153 = getelementptr inbounds nuw %"struct.Yosys::hashlib::dict>::entry_t", ptr %152, i64 %151, i32 0, i32 1 %154 = getelementptr inbounds nuw i8, ptr %153, i64 24 %155 = getelementptr inbounds nuw i8, ptr %153, i64 32 %156 = load ptr, ptr %155, align 8 @@ -119705,12 +119705,12 @@ declare i64 @llvm.umin.i64(i64, i64) #30 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) declare void @llvm.experimental.noalias.scope.decl(metadata) #31 -; Function Attrs: nofree nounwind willreturn memory(argmem: read) -declare i32 @bcmp(ptr captures(none), ptr captures(none), i64) local_unnamed_addr #32 - ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.smax.i32(i32, i32) #30 +; Function Attrs: nofree nounwind willreturn memory(argmem: read) +declare i32 @bcmp(ptr captures(none), ptr captures(none), i64) local_unnamed_addr #32 + attributes #0 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { nofree nounwind } diff --git a/bench/yyjson/optimized/yyjson.c.ll b/bench/yyjson/optimized/yyjson.c.ll index 4b3e5077600..db05fd2dd29 100644 --- a/bench/yyjson/optimized/yyjson.c.ll +++ b/bench/yyjson/optimized/yyjson.c.ll @@ -58516,15 +58516,16 @@ if.else: ; preds = %entry %sub.ptr.rhs.cast = ptrtoint ptr %sig_cut to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast %conv8 = trunc i64 %sub.ptr.sub to i32 + %add = add i32 %conv8, 19 %conv10.neg = sext i1 %and83 to i32 - %add = add i32 %conv10.neg, %conv8 + %sub = add i32 %add, %conv10.neg %0 = load i8, ptr %sig_cut, align 1 %cmp12 = icmp ugt i8 %0, 52 %conv14.neg = sext i1 %cmp12 to i64 %sub15 = add i64 %sig, %conv14.neg - %1 = add i32 %add, -750 - %cmp16 = icmp ult i32 %1, -769 - %idx.ext = zext i32 %1 to i64 + %cmp16 = icmp ugt i32 %sub, 768 + %sub19 = add i32 %sub, -769 + %idx.ext = zext i32 %sub19 to i64 %idx.neg = sub nsw i64 0, %idx.ext %add.ptr = getelementptr inbounds i8, ptr %sig_end, i64 %idx.neg %add.ptr20 = getelementptr inbounds nuw i8, ptr %dot_pos, i64 1 @@ -58532,9 +58533,10 @@ if.else: ; preds = %entry %idx.ext23.neg = sext i1 %cmp21 to i64 %add.ptr25 = getelementptr inbounds i8, ptr %add.ptr, i64 %idx.ext23.neg %sig_end.addr.0 = select i1 %cmp16, ptr %add.ptr25, ptr %sig_end - %sub26 = select i1 %cmp16, i32 750, i32 %add - %2 = load i32, ptr %exp, align 4 - %sub27 = sub nsw i32 %2, %sub26 + %dig_len_total.0 = tail call i32 @llvm.umin.i32(i32 %sub, i32 769) + %1 = load i32, ptr %exp, align 4 + %reass.sub = sub i32 %1, %dig_len_total.0 + %sub27 = add i32 %reass.sub, 19 store i32 %sub27, ptr %exp, align 4 store i32 1, ptr %big, align 8 %bits = getelementptr inbounds nuw i8, ptr %big, i64 8 @@ -58543,8 +58545,8 @@ if.else: ; preds = %entry br i1 %cmp28106, label %while.body, label %if.end67 while.body: ; preds = %if.else, %if.end66 + %2 = phi i32 [ %25, %if.end66 ], [ 1, %if.else ] %3 = phi i32 [ %26, %if.end66 ], [ 1, %if.else ] - %4 = phi i32 [ %27, %if.end66 ], [ 1, %if.else ] %big.promoted = phi i32 [ %big.promoted133, %if.end66 ], [ 1, %if.else ] %val.0109 = phi i64 [ %val.2, %if.end66 ], [ 0, %if.else ] %len.0108 = phi i32 [ %len.1, %if.end66 ], [ 0, %if.else ] @@ -58555,14 +58557,14 @@ while.body: ; preds = %if.else, %if.end66 if.then38: ; preds = %while.body %mul = mul i64 %val.0109, 10 %incdec.ptr = getelementptr inbounds nuw i8, ptr %cur.0107, i64 1 - %5 = load i8, ptr %cur.0107, align 1 - %sub40 = add i8 %5, -48 + %4 = load i8, ptr %cur.0107, align 1 + %sub40 = add i8 %4, -48 %conv42 = zext i8 %sub40 to i64 %add43 = add i64 %mul, %conv42 %inc = add i32 %len.0108, 1 %cmp44 = icmp eq ptr %incdec.ptr, %sig_end.addr.0 - %6 = and i1 %cmp16, %cmp44 - br i1 %6, label %if.then54, label %if.end57 + %5 = and i1 %cmp16, %cmp44 + br i1 %5, label %if.then54, label %if.end57 if.then54: ; preds = %if.then38 %rem = urem i64 %add43, 10 @@ -58581,8 +58583,8 @@ for.cond.i.preheader: ; preds = %if.end57 br i1 %cmp.i91, label %for.body.i, label %for.end.i for.body.i: ; preds = %for.cond.i.preheader, %bigint_mul_u64.exit + %6 = phi i32 [ %12, %bigint_mul_u64.exit ], [ %2, %for.cond.i.preheader ] %7 = phi i32 [ %13, %bigint_mul_u64.exit ], [ %3, %for.cond.i.preheader ] - %8 = phi i32 [ %14, %bigint_mul_u64.exit ], [ %4, %for.cond.i.preheader ] %big.promoted137 = phi i32 [ %big.promoted136, %bigint_mul_u64.exit ], [ %big.promoted, %for.cond.i.preheader ] %inc17.i95 = phi i32 [ %inc17.i94, %bigint_mul_u64.exit ], [ %big.promoted, %for.cond.i.preheader ] %exp.addr.i.092 = phi i32 [ %sub.i, %bigint_mul_u64.exit ], [ %inc, %for.cond.i.preheader ] @@ -58596,8 +58598,8 @@ for.body.i86.preheader: ; preds = %for.body.i for.body.i86: ; preds = %for.body.i86.preheader, %if.end.i91 %indvars.iv = phi i64 [ 0, %for.body.i86.preheader ], [ %indvars.iv.next, %if.end.i91 ] %arrayidx.i89 = getelementptr inbounds nuw [64 x i64], ptr %bits, i64 0, i64 %indvars.iv - %9 = load i64, ptr %arrayidx.i89, align 8 - %tobool.i90.not = icmp eq i64 %9, 0 + %8 = load i64, ptr %arrayidx.i89, align 8 + %tobool.i90.not = icmp eq i64 %8, 0 br i1 %tobool.i90.not, label %if.end.i91, label %for.end.i84.loopexit if.end.i91: ; preds = %for.body.i86 @@ -58606,25 +58608,25 @@ if.end.i91: ; preds = %for.body.i86 br i1 %exitcond.not, label %bigint_mul_u64.exit, label %for.body.i86, !llvm.loop !56 for.end.i84.loopexit: ; preds = %for.body.i86 - %10 = trunc nuw i64 %indvars.iv to i32 + %9 = trunc nuw i64 %indvars.iv to i32 br label %for.end.i84 for.end.i84: ; preds = %for.end.i84.loopexit, %for.body.i - %idx.i80.0.lcssa = phi i32 [ 0, %for.body.i ], [ %10, %for.end.i84.loopexit ] + %idx.i80.0.lcssa = phi i32 [ 0, %for.body.i ], [ %9, %for.end.i84.loopexit ] %cmp2.i87 = icmp ult i32 %idx.i80.0.lcssa, %inc17.i95 br i1 %cmp2.i87, label %for.body3.i.preheader, label %bigint_mul_u64.exit for.body3.i.preheader: ; preds = %for.end.i84 - %11 = zext i32 %idx.i80.0.lcssa to i64 + %10 = zext i32 %idx.i80.0.lcssa to i64 %wide.trip.count116 = zext i32 %inc17.i95 to i64 br label %for.body3.i for.body3.i: ; preds = %for.body3.i.preheader, %for.body3.i - %indvars.iv113 = phi i64 [ %11, %for.body3.i.preheader ], [ %indvars.iv.next114, %for.body3.i ] + %indvars.iv113 = phi i64 [ %10, %for.body3.i.preheader ], [ %indvars.iv.next114, %for.body3.i ] %carry.i.088 = phi i64 [ 0, %for.body3.i.preheader ], [ %conv3.i144, %for.body3.i ] %arrayidx6.i = getelementptr inbounds nuw [64 x i64], ptr %bits, i64 0, i64 %indvars.iv113 - %12 = load i64, ptr %arrayidx6.i, align 8 - %conv.i138 = zext i64 %12 to i128 + %11 = load i64, ptr %arrayidx6.i, align 8 + %conv.i138 = zext i64 %11 to i128 %mul.i140 = mul nuw i128 %conv.i138, 10000000000000000000 %conv2.i141 = zext i64 %carry.i.088 to i128 %add.i142 = add nuw i128 %mul.i140, %conv2.i141 @@ -58649,8 +58651,8 @@ if.then14.i: ; preds = %for.end12.i br label %bigint_mul_u64.exit bigint_mul_u64.exit: ; preds = %if.end.i91, %for.end.i84, %if.then14.i, %for.end12.i + %12 = phi i32 [ %inc17.i, %if.then14.i ], [ %6, %for.end12.i ], [ %6, %for.end.i84 ], [ %6, %if.end.i91 ] %13 = phi i32 [ %inc17.i, %if.then14.i ], [ %7, %for.end12.i ], [ %7, %for.end.i84 ], [ %7, %if.end.i91 ] - %14 = phi i32 [ %inc17.i, %if.then14.i ], [ %8, %for.end12.i ], [ %8, %for.end.i84 ], [ %8, %if.end.i91 ] %big.promoted136 = phi i32 [ %inc17.i, %if.then14.i ], [ %big.promoted137, %for.end12.i ], [ %big.promoted137, %for.end.i84 ], [ %big.promoted137, %if.end.i91 ] %inc17.i94 = phi i32 [ %inc17.i, %if.then14.i ], [ %inc17.i95, %for.end12.i ], [ %inc17.i95, %for.end.i84 ], [ %inc17.i95, %if.end.i91 ] %sub.i = add nsw i32 %exp.addr.i.092, -19 @@ -58658,8 +58660,8 @@ bigint_mul_u64.exit: ; preds = %if.end.i91, %for.en br i1 %cmp.i, label %for.body.i, label %for.end.i, !llvm.loop !58 for.end.i: ; preds = %bigint_mul_u64.exit, %for.cond.i.preheader + %14 = phi i32 [ %2, %for.cond.i.preheader ], [ %12, %bigint_mul_u64.exit ] %15 = phi i32 [ %3, %for.cond.i.preheader ], [ %13, %bigint_mul_u64.exit ] - %16 = phi i32 [ %4, %for.cond.i.preheader ], [ %14, %bigint_mul_u64.exit ] %big.promoted135 = phi i32 [ %big.promoted, %for.cond.i.preheader ], [ %big.promoted136, %bigint_mul_u64.exit ] %exp.addr.i.0.lcssa = phi i32 [ %inc, %for.cond.i.preheader ], [ %sub.i, %bigint_mul_u64.exit ] %tobool.i.not = icmp eq i32 %exp.addr.i.0.lcssa, 0 @@ -58668,19 +58670,19 @@ for.end.i: ; preds = %bigint_mul_u64.exit if.then.i: ; preds = %for.end.i %idxprom.i = sext i32 %exp.addr.i.0.lcssa to i64 %arrayidx.i = getelementptr inbounds [20 x i64], ptr @u64_pow10_table, i64 0, i64 %idxprom.i - %17 = load i64, ptr %arrayidx.i, align 8 - %cmp.i10296.not = icmp eq i32 %16, 0 + %16 = load i64, ptr %arrayidx.i, align 8 + %cmp.i10296.not = icmp eq i32 %15, 0 br i1 %cmp.i10296.not, label %for.end.i103, label %for.body.i121.preheader for.body.i121.preheader: ; preds = %if.then.i - %wide.trip.count121 = zext i32 %16 to i64 + %wide.trip.count121 = zext i32 %15 to i64 br label %for.body.i121 for.body.i121: ; preds = %for.body.i121.preheader, %if.end.i126 %indvars.iv118 = phi i64 [ 0, %for.body.i121.preheader ], [ %indvars.iv.next119, %if.end.i126 ] %arrayidx.i124 = getelementptr inbounds nuw [64 x i64], ptr %bits, i64 0, i64 %indvars.iv118 - %18 = load i64, ptr %arrayidx.i124, align 8 - %tobool.i125.not = icmp eq i64 %18, 0 + %17 = load i64, ptr %arrayidx.i124, align 8 + %tobool.i125.not = icmp eq i64 %17, 0 br i1 %tobool.i125.not, label %if.end.i126, label %for.end.i103.loopexit if.end.i126: ; preds = %for.body.i121 @@ -58689,26 +58691,26 @@ if.end.i126: ; preds = %for.body.i121 br i1 %exitcond122.not, label %bigint_mul_pow10.exit, label %for.body.i121, !llvm.loop !56 for.end.i103.loopexit: ; preds = %for.body.i121 - %19 = trunc nuw i64 %indvars.iv118 to i32 + %18 = trunc nuw i64 %indvars.iv118 to i32 br label %for.end.i103 for.end.i103: ; preds = %for.end.i103.loopexit, %if.then.i - %idx.i96.0.lcssa = phi i32 [ 0, %if.then.i ], [ %19, %for.end.i103.loopexit ] - %cmp2.i105100 = icmp ult i32 %idx.i96.0.lcssa, %16 + %idx.i96.0.lcssa = phi i32 [ 0, %if.then.i ], [ %18, %for.end.i103.loopexit ] + %cmp2.i105100 = icmp ult i32 %idx.i96.0.lcssa, %15 br i1 %cmp2.i105100, label %for.body3.i113.lr.ph, label %bigint_mul_pow10.exit for.body3.i113.lr.ph: ; preds = %for.end.i103 - %conv1.i = zext i64 %17 to i128 - %20 = zext i32 %idx.i96.0.lcssa to i64 - %wide.trip.count126 = zext i32 %16 to i64 + %conv1.i = zext i64 %16 to i128 + %19 = zext i32 %idx.i96.0.lcssa to i64 + %wide.trip.count126 = zext i32 %15 to i64 br label %for.body3.i113 for.body3.i113: ; preds = %for.body3.i113.lr.ph, %for.body3.i113 - %indvars.iv123 = phi i64 [ %20, %for.body3.i113.lr.ph ], [ %indvars.iv.next124, %for.body3.i113 ] + %indvars.iv123 = phi i64 [ %19, %for.body3.i113.lr.ph ], [ %indvars.iv.next124, %for.body3.i113 ] %carry.i100.0101 = phi i64 [ 0, %for.body3.i113.lr.ph ], [ %conv3.i, %for.body3.i113 ] %arrayidx6.i116 = getelementptr inbounds nuw [64 x i64], ptr %bits, i64 0, i64 %indvars.iv123 - %21 = load i64, ptr %arrayidx6.i116, align 8 - %conv.i130 = zext i64 %21 to i128 + %20 = load i64, ptr %arrayidx6.i116, align 8 + %conv.i130 = zext i64 %20 to i128 %mul.i = mul nuw i128 %conv.i130, %conv1.i %conv2.i = zext i64 %carry.i100.0101 to i128 %add.i131 = add nuw i128 %mul.i, %conv2.i @@ -58725,37 +58727,37 @@ for.end12.i106: ; preds = %for.body3.i113 br i1 %tobool13.i107.not, label %bigint_mul_pow10.exit, label %if.then14.i108 if.then14.i108: ; preds = %for.end12.i106 - %inc17.i110 = add i32 %16, 1 + %inc17.i110 = add i32 %15, 1 store i32 %inc17.i110, ptr %big, align 8 - %idxprom18.i111 = zext i32 %16 to i64 + %idxprom18.i111 = zext i32 %15 to i64 %arrayidx19.i112 = getelementptr inbounds nuw [64 x i64], ptr %bits, i64 0, i64 %idxprom18.i111 store i64 %conv3.i, ptr %arrayidx19.i112, align 8 br label %bigint_mul_pow10.exit bigint_mul_pow10.exit: ; preds = %if.end.i126, %for.end.i103, %for.end12.i106, %if.then14.i108, %for.end.i + %21 = phi i32 [ %14, %for.end12.i106 ], [ %inc17.i110, %if.then14.i108 ], [ %14, %for.end.i ], [ %14, %for.end.i103 ], [ %14, %if.end.i126 ] %22 = phi i32 [ %15, %for.end12.i106 ], [ %inc17.i110, %if.then14.i108 ], [ %15, %for.end.i ], [ %15, %for.end.i103 ], [ %15, %if.end.i126 ] - %23 = phi i32 [ %16, %for.end12.i106 ], [ %inc17.i110, %if.then14.i108 ], [ %16, %for.end.i ], [ %16, %for.end.i103 ], [ %16, %if.end.i126 ] - %big.promoted134 = phi i32 [ %16, %for.end12.i106 ], [ %inc17.i110, %if.then14.i108 ], [ %big.promoted135, %for.end.i ], [ %16, %for.end.i103 ], [ %16, %if.end.i126 ] - %24 = load i64, ptr %bits, align 8 - %add1.i = add i64 %24, %val.1 + %big.promoted134 = phi i32 [ %15, %for.end12.i106 ], [ %inc17.i110, %if.then14.i108 ], [ %big.promoted135, %for.end.i ], [ %15, %for.end.i103 ], [ %15, %if.end.i126 ] + %23 = load i64, ptr %bits, align 8 + %add1.i = add i64 %23, %val.1 store i64 %add1.i, ptr %bits, align 8 - %cmp.i72.not = icmp ult i64 %add1.i, %24 + %cmp.i72.not = icmp ult i64 %add1.i, %23 br i1 %cmp.i72.not, label %if.end.i, label %if.end66 if.end.i: ; preds = %bigint_mul_pow10.exit - %cmp6.i104 = icmp ugt i32 %22, 1 - %wide.trip.count131 = zext i32 %22 to i64 + %cmp6.i104 = icmp ugt i32 %21, 1 + %wide.trip.count131 = zext i32 %21 to i64 br i1 %cmp6.i104, label %for.body.i75, label %for.end.i74 for.body.i75: ; preds = %if.end.i, %if.end23.i %indvars.iv128 = phi i64 [ %indvars.iv.next129, %if.end23.i ], [ 1, %if.end.i ] %arrayidx9.i = getelementptr inbounds nuw [64 x i64], ptr %bits, i64 0, i64 %indvars.iv128 - %25 = load i64, ptr %arrayidx9.i, align 8 - %cmp10.i.not = icmp eq i64 %25, -1 + %24 = load i64, ptr %arrayidx9.i, align 8 + %cmp10.i.not = icmp eq i64 %24, -1 br i1 %cmp10.i.not, label %if.end23.i, label %if.then18.i if.then18.i: ; preds = %for.body.i75 - %add22.i = add nuw i64 %25, 1 + %add22.i = add nuw i64 %24, 1 store i64 %add22.i, ptr %arrayidx9.i, align 8 br label %if.end66 @@ -58766,7 +58768,7 @@ if.end23.i: ; preds = %for.body.i75 br i1 %exitcond132.not, label %for.end.i74, label %for.body.i75, !llvm.loop !102 for.end.i74: ; preds = %if.end23.i, %if.end.i - %inc29.i = add i32 %22, 1 + %inc29.i = add i32 %21, 1 store i32 %inc29.i, ptr %big, align 8 %arrayidx31.i = getelementptr inbounds nuw [64 x i64], ptr %bits, i64 0, i64 %wide.trip.count131 store i64 1, ptr %arrayidx31.i, align 8 @@ -58777,9 +58779,9 @@ if.else64: ; preds = %while.body br label %if.end66 if.end66: ; preds = %if.then18.i, %for.end.i74, %bigint_mul_pow10.exit, %if.end57, %if.else64 - %26 = phi i32 [ %3, %if.else64 ], [ %3, %if.end57 ], [ %22, %bigint_mul_pow10.exit ], [ %inc29.i, %for.end.i74 ], [ %22, %if.then18.i ] - %27 = phi i32 [ %4, %if.else64 ], [ %4, %if.end57 ], [ %23, %bigint_mul_pow10.exit ], [ %inc29.i, %for.end.i74 ], [ %22, %if.then18.i ] - %big.promoted133 = phi i32 [ %big.promoted, %if.else64 ], [ %big.promoted, %if.end57 ], [ %big.promoted134, %bigint_mul_pow10.exit ], [ %inc29.i, %for.end.i74 ], [ %22, %if.then18.i ] + %25 = phi i32 [ %2, %if.else64 ], [ %2, %if.end57 ], [ %21, %bigint_mul_pow10.exit ], [ %inc29.i, %for.end.i74 ], [ %21, %if.then18.i ] + %26 = phi i32 [ %3, %if.else64 ], [ %3, %if.end57 ], [ %22, %bigint_mul_pow10.exit ], [ %inc29.i, %for.end.i74 ], [ %21, %if.then18.i ] + %big.promoted133 = phi i32 [ %big.promoted, %if.else64 ], [ %big.promoted, %if.end57 ], [ %big.promoted134, %bigint_mul_pow10.exit ], [ %inc29.i, %for.end.i74 ], [ %21, %if.then18.i ] %cur.1 = phi ptr [ %incdec.ptr65, %if.else64 ], [ %incdec.ptr, %if.end57 ], [ %incdec.ptr, %bigint_mul_pow10.exit ], [ %incdec.ptr, %for.end.i74 ], [ %incdec.ptr, %if.then18.i ] %len.1 = phi i32 [ %len.0108, %if.else64 ], [ %inc, %if.end57 ], [ 0, %bigint_mul_pow10.exit ], [ 0, %for.end.i74 ], [ 0, %if.then18.i ] %val.2 = phi i64 [ %val.0109, %if.else64 ], [ %val.1, %if.end57 ], [ 0, %bigint_mul_pow10.exit ], [ 0, %for.end.i74 ], [ 0, %if.then18.i ] @@ -58814,6 +58816,9 @@ declare i64 @llvm.umax.i64(i64, i64) #24 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.abs.i32(i32, i1 immarg) #24 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i32 @llvm.umin.i32(i32, i32) #24 + ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #25 From 10e2d1497804109adb499b8c7b19e2ffa01543b8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 1 Feb 2025 07:39:16 +0000 Subject: [PATCH 3/3] pre-commit: Remap --- bench/clamav/optimized/regex_pcre.c.ll | 120 +++--- bench/cpython/optimized/_cursesmodule.ll | 212 +++++----- bench/cpython/optimized/dtoa.ll | 370 +++++++++--------- bench/cpython/optimized/traceback.ll | 6 +- bench/eastl/optimized/EASprintfOrdered.cpp.ll | 18 +- bench/eastl/optimized/eathread.cpp.ll | 4 +- bench/freetype/optimized/type1cid.c.ll | 22 +- bench/git/optimized/http-backend.ll | 84 ++-- bench/grpc/optimized/socket_utils_posix.cc.ll | 60 +-- bench/grpc/optimized/tcp_socket_utils.cc.ll | 110 +++--- bench/hermes/optimized/dtoa.c.ll | 306 +++++++-------- bench/icu/optimized/locdispnames.ll | 368 ++++++++--------- bench/icu/optimized/nfrule.ll | 150 +++---- bench/icu/optimized/unames.ll | 154 ++++---- bench/icu/optimized/unistr.ll | 2 +- bench/libevent/optimized/event_tagging.c.ll | 4 +- bench/libquic/optimized/dtoa.cc.ll | 282 ++++++------- bench/libquic/optimized/exponentiation.c.ll | 76 ++-- bench/libwebp/optimized/cost.c.ll | 74 ++-- bench/linux/optimized/act_api.ll | 62 +-- bench/linux/optimized/check.ll | 22 +- bench/linux/optimized/intel_panel.ll | 256 ++++++------ bench/linux/optimized/net_namespace.ll | 104 ++--- bench/lodepng/optimized/lodepng.cpp.ll | 154 ++++---- bench/lvgl/optimized/lv_style.ll | 26 +- bench/openblas/optimized/dgeqr.c.ll | 34 +- bench/openblas/optimized/dhseqr.c.ll | 344 ++++++++-------- bench/opencv/optimized/bitstrm.cpp.ll | 50 +-- bench/opencv/optimized/qrcode_reader.cpp.ll | 98 ++--- bench/opencv/optimized/stringutils.cpp.ll | 74 ++-- bench/opencv/optimized/ts.cpp.ll | 10 +- bench/openjdk/optimized/ifnode.ll | 4 +- bench/openjdk/optimized/macroAssembler_x86.ll | 12 +- .../optimized/ca_internals_test-bin-ca.ll | 170 ++++---- .../openssl/optimized/libdefault-lib-crngt.ll | 10 +- bench/openusd/optimized/faceSurface.cpp.ll | 172 ++++---- bench/php/optimized/pcre2_study.ll | 14 +- bench/qemu/optimized/fdt.c.ll | 12 +- .../qemu/optimized/hw_block_pflash_cfi01.c.ll | 326 +++++++-------- bench/re2/optimized/compile.cc.ll | 276 ++++++------- bench/rocksdb/optimized/filter_policy.cc.ll | 74 ++-- bench/rocksdb/optimized/version_set.cc.ll | 4 +- bench/slurm/optimized/job_test.ll | 2 +- .../optimized/mpi_cray_shasta_la-apinfo.ll | 2 +- bench/slurm/optimized/priority_basic.ll | 2 +- bench/snappy/optimized/snappy.cc.ll | 36 +- bench/velox/optimized/ExprCompiler.cpp.ll | 8 +- bench/wireshark/optimized/netscaler.c.ll | 22 +- bench/wireshark/optimized/packet-asterix.c.ll | 194 ++++----- bench/wireshark/optimized/packet-ppp.c.ll | 108 ++--- bench/wireshark/optimized/pcapng.c.ll | 92 ++--- bench/yosys/optimized/memlib.ll | 10 +- bench/yosys/optimized/pmux2shiftx.ll | 116 +++--- bench/yyjson/optimized/yyjson.c.ll | 72 ++-- 54 files changed, 2697 insertions(+), 2697 deletions(-) diff --git a/bench/clamav/optimized/regex_pcre.c.ll b/bench/clamav/optimized/regex_pcre.c.ll index a61c76904d8..b38ca697f21 100644 --- a/bench/clamav/optimized/regex_pcre.c.ll +++ b/bench/clamav/optimized/regex_pcre.c.ll @@ -30,7 +30,7 @@ target triple = "x86_64-pc-linux-gnu" ; Function Attrs: nounwind uwtable define ptr @cli_pcre_malloc(i64 noundef %0, ptr readnone captures(none) %1) #0 { - %3 = tail call ptr @cli_max_malloc(i64 noundef %0) #7 + %3 = tail call ptr @cli_max_malloc(i64 noundef %0) #6 ret ptr %3 } @@ -38,7 +38,7 @@ declare ptr @cli_max_malloc(i64 noundef) local_unnamed_addr #1 ; Function Attrs: mustprogress nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable define void @cli_pcre_free(ptr noundef captures(none) %0, ptr readnone captures(none) %1) #2 { - tail call void @free(ptr noundef %0) #7 + tail call void @free(ptr noundef %0) #6 ret void } @@ -99,7 +99,7 @@ define range(i32 0, 28) i32 @cli_pcre_addoptions(ptr noundef %0, ptr noundef %1, 19: ; preds = %18 %20 = sext i8 %11 to i32 - tail call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str, i32 noundef %20) #7 + tail call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str, i32 noundef %20) #6 br label %.loopexit 21: ; preds = %9, %17, %16, %15, %14, %13, %12 @@ -134,26 +134,26 @@ define range(i32 0, 21) i32 @cli_pcre_compile(ptr noundef %0, i64 noundef %1, i6 br i1 %.not33, label %12, label %13 12: ; preds = %9, %5 - tail call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.1) #7 + tail call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.1) #6 br label %41 13: ; preds = %9 - %14 = tail call ptr @pcre2_general_context_create_8(ptr noundef nonnull @cli_pcre_malloc, ptr noundef nonnull @cli_pcre_free, ptr noundef null) #7 + %14 = tail call ptr @pcre2_general_context_create_8(ptr noundef nonnull @cli_pcre_malloc, ptr noundef nonnull @cli_pcre_free, ptr noundef null) #6 %.not34 = icmp eq ptr %14, null br i1 %.not34, label %15, label %16 15: ; preds = %13 - tail call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.2) #7 + tail call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.2) #6 br label %41 16: ; preds = %13 - %17 = tail call ptr @pcre2_compile_context_create_8(ptr noundef nonnull %14) #7 + %17 = tail call ptr @pcre2_compile_context_create_8(ptr noundef nonnull %14) #6 %.not35 = icmp eq ptr %17, null br i1 %.not35, label %18, label %19 18: ; preds = %16 - tail call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.3) #7 - tail call void @pcre2_general_context_free_8(ptr noundef nonnull %14) #7 + tail call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.3) #6 + tail call void @pcre2_general_context_free_8(ptr noundef nonnull %14) #6 br label %41 19: ; preds = %16 @@ -168,41 +168,41 @@ define range(i32 0, 21) i32 @cli_pcre_compile(ptr noundef %0, i64 noundef %1, i6 24: ; preds = %19, %21 %.sink = phi i32 [ %23, %21 ], [ %3, %19 ] - %25 = call ptr @pcre2_compile_8(ptr noundef %20, i64 noundef -1, i32 noundef %.sink, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull %17) #7 + %25 = call ptr @pcre2_compile_8(ptr noundef %20, i64 noundef -1, i32 noundef %.sink, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull %17) #6 store ptr %25, ptr %0, align 8 %26 = icmp eq ptr %25, null br i1 %26, label %27, label %31 27: ; preds = %24 %28 = load i32, ptr %6, align 4 - %29 = call i32 @pcre2_get_error_message_8(i32 noundef %28, ptr noundef nonnull %8, i64 noundef 256) #7 + %29 = call i32 @pcre2_get_error_message_8(i32 noundef %28, ptr noundef nonnull %8, i64 noundef 256) #6 %30 = load i64, ptr %7, align 8 - call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.4, i64 noundef %30, ptr noundef nonnull %8) #7 - call void @pcre2_compile_context_free_8(ptr noundef nonnull %17) #7 - call void @pcre2_general_context_free_8(ptr noundef nonnull %14) #7 + call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.4, i64 noundef %30, ptr noundef nonnull %8) #6 + call void @pcre2_compile_context_free_8(ptr noundef nonnull %17) #6 + call void @pcre2_general_context_free_8(ptr noundef nonnull %14) #6 br label %41 31: ; preds = %24 - %32 = call ptr @pcre2_match_context_create_8(ptr noundef nonnull %14) #7 + %32 = call ptr @pcre2_match_context_create_8(ptr noundef nonnull %14) #6 %33 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %32, ptr %33, align 8 %.not37 = icmp eq ptr %32, null br i1 %.not37, label %34, label %35 34: ; preds = %31 - call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.5) #7 - call void @pcre2_compile_context_free_8(ptr noundef nonnull %17) #7 - call void @pcre2_general_context_free_8(ptr noundef nonnull %14) #7 + call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.5) #6 + call void @pcre2_compile_context_free_8(ptr noundef nonnull %17) #6 + call void @pcre2_general_context_free_8(ptr noundef nonnull %14) #6 br label %41 35: ; preds = %31 %36 = trunc i64 %1 to i32 - %37 = call i32 @pcre2_set_match_limit_8(ptr noundef nonnull %32, i32 noundef %36) #7 + %37 = call i32 @pcre2_set_match_limit_8(ptr noundef nonnull %32, i32 noundef %36) #6 %38 = load ptr, ptr %33, align 8 %39 = trunc i64 %2 to i32 - %40 = call i32 @pcre2_set_recursion_limit_8(ptr noundef %38, i32 noundef %39) #7 - call void @pcre2_compile_context_free_8(ptr noundef nonnull %17) #7 - call void @pcre2_general_context_free_8(ptr noundef nonnull %14) #7 + %40 = call i32 @pcre2_set_recursion_limit_8(ptr noundef %38, i32 noundef %39) #6 + call void @pcre2_compile_context_free_8(ptr noundef nonnull %17) #6 + call void @pcre2_general_context_free_8(ptr noundef nonnull %14) #6 br label %41 41: ; preds = %35, %34, %27, %18, %15, %12 @@ -235,7 +235,7 @@ define i32 @cli_pcre_match(ptr noundef readonly captures(none) %0, ptr noundef % %9 = load ptr, ptr %8, align 8 %10 = getelementptr inbounds nuw i8, ptr %0, i64 8 %11 = load ptr, ptr %10, align 8 - %12 = tail call i32 @pcre2_match_8(ptr noundef %7, ptr noundef %1, i64 noundef %2, i64 noundef %3, i32 noundef %4, ptr noundef %9, ptr noundef %11) #7 + %12 = tail call i32 @pcre2_match_8(ptr noundef %7, ptr noundef %1, i64 noundef %2, i64 noundef %3, i32 noundef %4, ptr noundef %9, ptr noundef %11) #6 %or.cond = icmp slt i32 %12, -1 br i1 %or.cond, label %13, label %18 @@ -248,20 +248,20 @@ define i32 @cli_pcre_match(ptr noundef readonly captures(none) %0, ptr noundef % ] 14: ; preds = %13 - tail call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.6) #7 + tail call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.6) #6 store i32 20, ptr %5, align 8 br label %33 15: ; preds = %13 - tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.7) #7 + tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.7) #6 br label %33 16: ; preds = %13 - tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.8) #7 + tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.8) #6 br label %33 17: ; preds = %13 - tail call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.9, i32 noundef %12) #7 + tail call void (ptr, ...) @cli_errmsg(ptr noundef nonnull @.str.9, i32 noundef %12) #6 store i32 22, ptr %5, align 8 br label %33 @@ -271,7 +271,7 @@ define i32 @cli_pcre_match(ptr noundef readonly captures(none) %0, ptr noundef % 20: ; preds = %18 %21 = load ptr, ptr %8, align 8 - %22 = tail call ptr @pcre2_get_ovector_pointer_8(ptr noundef %21) #7 + %22 = tail call ptr @pcre2_get_ovector_pointer_8(ptr noundef %21) #6 %23 = load i64, ptr %22, align 8 %24 = trunc i64 %23 to i32 %25 = getelementptr inbounds nuw i8, ptr %5, i64 4 @@ -309,12 +309,12 @@ define void @cli_pcre_report(ptr noundef readonly captures(none) %0, ptr noundef %10 = alloca [2057 x i8], align 16 %11 = getelementptr inbounds nuw i8, ptr %4, i64 16 %12 = load ptr, ptr %11, align 8 - %13 = tail call ptr @pcre2_get_ovector_pointer_8(ptr noundef %12) #7 - tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.10) #7 - tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.11) #7 + %13 = tail call ptr @pcre2_get_ovector_pointer_8(ptr noundef %12) #6 + tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.10) #6 + tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.11) #6 %14 = getelementptr inbounds nuw i8, ptr %0, i64 24 %15 = load ptr, ptr %14, align 8 - tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.12, ptr noundef %15, i32 noundef %3) #7 + tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.12, ptr noundef %15, i32 noundef %3) #6 %16 = icmp sgt i32 %3, 0 br i1 %16, label %.preheader.preheader, label %90 @@ -335,17 +335,17 @@ define void @cli_pcre_report(ptr noundef readonly captures(none) %0, ptr noundef br i1 %24, label %25, label %26 25: ; preds = %.preheader - call void (ptr, ...) @cli_warnmsg(ptr noundef nonnull @.str.13) #7 + call void (ptr, ...) @cli_warnmsg(ptr noundef nonnull @.str.13) #6 br label %39 26: ; preds = %.preheader %27 = sub i64 %23, %19 %28 = icmp ult i64 %27, 1029 - %.not = icmp eq i64 %23, %19 - br i1 %.not, label %._crit_edge, label %.lr.ph.preheader + %spec.select = icmp eq i64 %23, %19 + br i1 %spec.select, label %._crit_edge, label %.lr.ph -.lr.ph.preheader: ; preds = %26 - %spec.select = call i64 @llvm.umin.i64(i64 %27, i64 1028) +.lr.ph: ; preds = %26 + %.03438 = call i64 @llvm.umin.i64(i64 %27, i64 1028) br label %.lr.ph .lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph @@ -356,7 +356,7 @@ define void @cli_pcre_report(ptr noundef readonly captures(none) %0, ptr noundef %32 = getelementptr inbounds nuw i8, ptr %20, i64 %.03438 %33 = load i8, ptr %32, align 1 %34 = sext i8 %33 to i32 - %35 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %30, i64 noundef %31, ptr noundef nonnull @.str.14, i32 noundef %34) #7 + %35 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %30, i64 noundef %31, ptr noundef nonnull @.str.14, i32 noundef %34) #6 %36 = add nuw nsw i64 %.03438, 1 %exitcond.not = icmp eq i64 %36, %spec.select br i1 %exitcond.not, label %._crit_edge, label %.lr.ph @@ -364,7 +364,7 @@ define void @cli_pcre_report(ptr noundef readonly captures(none) %0, ptr noundef ._crit_edge: ; preds = %.lr.ph, %26 %37 = select i1 %28, ptr @.str.17, ptr @.str.16 %38 = trunc nuw nsw i64 %indvars.iv to i32 - call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.15, i32 noundef %38, ptr noundef nonnull %10, ptr noundef nonnull %37) #7 + call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.15, i32 noundef %38, ptr noundef nonnull %10, ptr noundef nonnull %37) #6 br label %39 39: ; preds = %._crit_edge, %25 @@ -378,21 +378,21 @@ define void @cli_pcre_report(ptr noundef readonly captures(none) %0, ptr noundef call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) call void @llvm.lifetime.start.p0(i64 2057, ptr nonnull %9) %41 = load ptr, ptr %0, align 8 - %42 = call i32 @pcre2_pattern_info_8(ptr noundef %41, i32 noundef 17, ptr noundef nonnull %6) #7 + %42 = call i32 @pcre2_pattern_info_8(ptr noundef %41, i32 noundef 17, ptr noundef nonnull %6) #6 %43 = load i32, ptr %6, align 4 %44 = icmp slt i32 %43, 1 br i1 %44, label %45, label %46 45: ; preds = %40 - call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.21) #7 + call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.21) #6 br label %named_substr_print.exit 46: ; preds = %40 - call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.22) #7 + call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.22) #6 %47 = load ptr, ptr %0, align 8 - %48 = call i32 @pcre2_pattern_info_8(ptr noundef %47, i32 noundef 19, ptr noundef nonnull %8) #7 + %48 = call i32 @pcre2_pattern_info_8(ptr noundef %47, i32 noundef 19, ptr noundef nonnull %8) #6 %49 = load ptr, ptr %0, align 8 - %50 = call i32 @pcre2_pattern_info_8(ptr noundef %49, i32 noundef 18, ptr noundef nonnull %7) #7 + %50 = call i32 @pcre2_pattern_info_8(ptr noundef %49, i32 noundef 18, ptr noundef nonnull %7) #6 %51 = load i32, ptr %6, align 4 %52 = icmp sgt i32 %51, 0 br i1 %52, label %.lr.ph34.preheader.i, label %named_substr_print.exit @@ -422,8 +422,8 @@ define void @cli_pcre_report(ptr noundef readonly captures(none) %0, ptr noundef %69 = load i64, ptr %68, align 8 %70 = sub i64 %69, %64 %71 = icmp ult i64 %70, 1029 - %.not.i = icmp eq i64 %69, %64 - br i1 %.not.i, label %._crit_edge.i, label %.lr.ph.preheader.i + %spec.select.i = icmp eq i64 %69, %64 + br i1 %spec.select.i, label %._crit_edge.i, label %.lr.ph.preheader.i .lr.ph.preheader.i: ; preds = %.lr.ph34.i %spec.select.i = call i64 @llvm.umin.i64(i64 %70, i64 1028) @@ -437,7 +437,7 @@ define void @cli_pcre_report(ptr noundef readonly captures(none) %0, ptr noundef %75 = getelementptr inbounds nuw i8, ptr %65, i64 %.02730.i %76 = load i8, ptr %75, align 1 %77 = sext i8 %76 to i32 - %78 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %73, i64 noundef %74, ptr noundef nonnull @.str.14, i32 noundef %77) #7 + %78 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %73, i64 noundef %74, ptr noundef nonnull @.str.14, i32 noundef %77) #6 %79 = add nuw nsw i64 %.02730.i, 1 %exitcond.not.i = icmp eq i64 %79, %spec.select.i br i1 %exitcond.not.i, label %._crit_edge.i, label %.lr.ph.i @@ -447,7 +447,7 @@ define void @cli_pcre_report(ptr noundef readonly captures(none) %0, ptr noundef %81 = add nsw i32 %80, -3 %82 = getelementptr inbounds nuw i8, ptr %.02631.i, i64 2 %83 = select i1 %71, ptr @.str.17, ptr @.str.16 - call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.23, i32 noundef %60, i32 noundef %81, ptr noundef nonnull %82, ptr noundef nonnull %9, ptr noundef nonnull %83) #7 + call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.23, i32 noundef %60, i32 noundef %81, ptr noundef nonnull %82, ptr noundef nonnull %9, ptr noundef nonnull %83) #6 %84 = load i32, ptr %7, align 4 %85 = sext i32 %84 to i64 %86 = getelementptr inbounds i8, ptr %.02631.i, i64 %85 @@ -469,16 +469,16 @@ named_substr_print.exit: ; preds = %._crit_edge.i, %45, br i1 %or.cond, label %92, label %93 92: ; preds = %90 - tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.18) #7 + tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.18) #6 br label %94 93: ; preds = %90 - tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.19, i32 noundef %3) #7 + tail call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.19, i32 noundef %3) #6 br label %94 94: ; preds = %92, %93, %named_substr_print.exit - call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.20) #7 - call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.10) #7 + call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.20) #6 + call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.10) #6 ret void } @@ -500,12 +500,12 @@ define range(i32 0, 21) i32 @cli_pcre_results_reset(ptr noundef captures(none) i br i1 %.not, label %8, label %7 7: ; preds = %2 - tail call void @pcre2_match_data_free_8(ptr noundef nonnull %6) #7 + tail call void @pcre2_match_data_free_8(ptr noundef nonnull %6) #6 br label %8 8: ; preds = %7, %2 %9 = load ptr, ptr %1, align 8 - %10 = tail call ptr @pcre2_match_data_create_from_pattern_8(ptr noundef %9, ptr noundef null) #7 + %10 = tail call ptr @pcre2_match_data_create_from_pattern_8(ptr noundef %9, ptr noundef null) #6 store ptr %10, ptr %5, align 8 %.not9 = icmp eq ptr %10, null %. = select i1 %.not9, i32 20, i32 0 @@ -524,7 +524,7 @@ define void @cli_pcre_results_free(ptr noundef readonly captures(none) %0) local br i1 %.not, label %5, label %4 4: ; preds = %1 - tail call void @pcre2_match_data_free_8(ptr noundef nonnull %3) #7 + tail call void @pcre2_match_data_free_8(ptr noundef nonnull %3) #6 br label %5 5: ; preds = %4, %1 @@ -538,7 +538,7 @@ define void @cli_pcre_free_single(ptr noundef captures(none) %0) local_unnamed_a br i1 %.not, label %4, label %3 3: ; preds = %1 - tail call void @pcre2_code_free_8(ptr noundef nonnull %2) #7 + tail call void @pcre2_code_free_8(ptr noundef nonnull %2) #6 store ptr null, ptr %0, align 8 br label %4 @@ -549,7 +549,7 @@ define void @cli_pcre_free_single(ptr noundef captures(none) %0) local_unnamed_a br i1 %.not11, label %8, label %7 7: ; preds = %4 - tail call void @pcre2_match_context_free_8(ptr noundef nonnull %6) #7 + tail call void @pcre2_match_context_free_8(ptr noundef nonnull %6) #6 store ptr null, ptr %5, align 8 br label %8 @@ -560,7 +560,7 @@ define void @cli_pcre_free_single(ptr noundef captures(none) %0) local_unnamed_a br i1 %.not12, label %12, label %11 11: ; preds = %8 - tail call void @free(ptr noundef nonnull %10) #7 + tail call void @free(ptr noundef nonnull %10) #6 store ptr null, ptr %9, align 8 br label %12 @@ -578,10 +578,10 @@ declare i32 @pcre2_pattern_info_8(ptr noundef, i32 noundef, ptr noundef) local_u declare i64 @llvm.umin.i64(i64, i64) #5 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #6 +declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #5 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #6 +declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #5 attributes #0 = { nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/cpython/optimized/_cursesmodule.ll b/bench/cpython/optimized/_cursesmodule.ll index 02251f41198..e6116354984 100644 --- a/bench/cpython/optimized/_cursesmodule.ll +++ b/bench/cpython/optimized/_cursesmodule.ll @@ -8619,8 +8619,8 @@ if.end.i.i: ; preds = %land.lhs.true.i.i, %1 = load i32, ptr @COLORS, align 4 %conv.i.i = sext i32 %1 to i64 %cmp3.not.i.i = icmp slt i64 %call.i.i, %conv.i.i - %or.cond.i.i = select i1 %cmp2.i.i, i1 %cmp3.not.i.i, i1 false - br i1 %or.cond.i.i, label %if.end.i, label %if.then5.i.i + %or.cond4.i.i = select i1 %cmp2.i.i, i1 %cmp3.not.i.i, i1 false + br i1 %or.cond4.i.i, label %if.end.i, label %if.then5.i.i if.then5.i.i: ; preds = %if.end.i.i %2 = load ptr, ptr @PyExc_ValueError, align 8 @@ -8633,17 +8633,17 @@ color_allow_default_converter.exit.thread.i: ; preds = %if.then5.i.i, %land br label %exit if.end.i: ; preds = %if.end.i.i - %cmp7.not.i.i = icmp ne i32 %0, 0 + %cmp7.i.i = icmp ne i32 %0, 0 %3 = call i64 @llvm.smax.i64(i64 %call.i.i, i64 -1) %4 = trunc i64 %3 to i32 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %overflow.i.i) - %cmp.i6 = icmp slt i32 %4, 0 - %cmp.i = or i1 %cmp.i6, %cmp7.not.i.i + %4 = icmp slt i32 %4, 0 + %cmp.i = or i1 %4, %cmp7.i.i br i1 %cmp.i, label %if.then1.i, label %if.end if.then1.i: ; preds = %if.end.i - %5 = load ptr, ptr @PyExc_ValueError, align 8 - call void @PyErr_SetString(ptr noundef %5, ptr noundef nonnull @.str.354) #9 + %6 = load ptr, ptr @PyExc_ValueError, align 8 + call void @PyErr_SetString(ptr noundef %6, ptr noundef nonnull @.str.354) #9 br label %exit if.end: ; preds = %if.end.i @@ -8654,8 +8654,8 @@ if.end: ; preds = %if.end.i br i1 %.b.i, label %if.end.i2, label %if.then.i if.then.i: ; preds = %if.end - %6 = load ptr, ptr @PyCursesError, align 8 - call void @PyErr_SetString(ptr noundef %6, ptr noundef nonnull @.str.353) #9 + %7 = load ptr, ptr @PyCursesError, align 8 + call void @PyErr_SetString(ptr noundef %7, ptr noundef nonnull @.str.353) #9 br label %_curses_color_content_impl.exit if.end.i2: ; preds = %if.end @@ -8663,8 +8663,8 @@ if.end.i2: ; preds = %if.end br i1 %.b1.i, label %if.end3.i, label %if.then2.i if.then2.i: ; preds = %if.end.i2 - %7 = load ptr, ptr @PyCursesError, align 8 - call void @PyErr_SetString(ptr noundef %7, ptr noundef nonnull @.str.356) #9 + %8 = load ptr, ptr @PyCursesError, align 8 + call void @PyErr_SetString(ptr noundef %8, ptr noundef nonnull @.str.356) #9 br label %_curses_color_content_impl.exit if.end3.i: ; preds = %if.end.i2 @@ -8673,15 +8673,15 @@ if.end3.i: ; preds = %if.end.i2 br i1 %cmp4.i, label %if.then5.i, label %if.end7.i if.then5.i: ; preds = %if.end3.i - %8 = load ptr, ptr @PyCursesError, align 8 - %call6.i = call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %8, ptr noundef nonnull @.str.156, ptr noundef nonnull @.str.357) #9 + %9 = load ptr, ptr @PyCursesError, align 8 + %call6.i = call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %9, ptr noundef nonnull @.str.156, ptr noundef nonnull @.str.357) #9 br label %_curses_color_content_impl.exit if.end7.i: ; preds = %if.end3.i - %9 = load i32, ptr %r.i, align 4 - %10 = load i32, ptr %g.i, align 4 - %11 = load i32, ptr %b.i, align 4 - %call8.i = call ptr (ptr, ...) @Py_BuildValue(ptr noundef nonnull @.str.358, i32 noundef %9, i32 noundef %10, i32 noundef %11) #9 + %10 = load i32, ptr %r.i, align 4 + %11 = load i32, ptr %g.i, align 4 + %12 = load i32, ptr %b.i, align 4 + %call8.i = call ptr (ptr, ...) @Py_BuildValue(ptr noundef nonnull @.str.358, i32 noundef %10, i32 noundef %11, i32 noundef %12) #9 br label %_curses_color_content_impl.exit _curses_color_content_impl.exit: ; preds = %if.then.i, %if.then2.i, %if.then5.i, %if.end7.i @@ -9724,8 +9724,8 @@ if.end.i.i: ; preds = %land.lhs.true.i.i, %2 = load i32, ptr @COLORS, align 4 %conv.i.i = sext i32 %2 to i64 %cmp3.not.i.i = icmp slt i64 %call.i.i, %conv.i.i - %or.cond.i.i = select i1 %cmp2.i.i, i1 %cmp3.not.i.i, i1 false - br i1 %or.cond.i.i, label %if.end.i, label %if.then5.i.i + %or.cond4.i.i = select i1 %cmp2.i.i, i1 %cmp3.not.i.i, i1 false + br i1 %or.cond4.i.i, label %if.end.i, label %if.then5.i.i if.then5.i.i: ; preds = %if.end.i.i %3 = load ptr, ptr @PyExc_ValueError, align 8 @@ -9738,24 +9738,24 @@ color_allow_default_converter.exit.thread.i: ; preds = %if.then5.i.i, %land br label %exit if.end.i: ; preds = %if.end.i.i - %cmp7.not.i.i = icmp ne i32 %1, 0 + %cmp7.i.i = icmp ne i32 %1, 0 %4 = call i64 @llvm.smax.i64(i64 %call.i.i, i64 -1) %5 = trunc i64 %4 to i32 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %overflow.i.i) - %cmp.i66 = icmp slt i32 %5, 0 - %cmp.i = or i1 %cmp.i66, %cmp7.not.i.i + %5 = icmp slt i32 %5, 0 + %6 = or i1 %5, %cmp7.i.i br i1 %cmp.i, label %if.then1.i, label %if.end5 if.then1.i: ; preds = %if.end.i - %6 = load ptr, ptr @PyExc_ValueError, align 8 - call void @PyErr_SetString(ptr noundef %6, ptr noundef nonnull @.str.354) #9 + %7 = load ptr, ptr @PyExc_ValueError, align 8 + call void @PyErr_SetString(ptr noundef %7, ptr noundef nonnull @.str.354) #9 br label %exit if.end5: ; preds = %if.end.i %arrayidx6 = getelementptr i8, ptr %args, i64 8 - %7 = load ptr, ptr %arrayidx6, align 8 + %8 = load ptr, ptr %arrayidx6, align 8 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %overflow.i) - %call.i = call i64 @PyLong_AsLongAndOverflow(ptr noundef %7, ptr noundef nonnull %overflow.i) #9 + %call.i = call i64 @PyLong_AsLongAndOverflow(ptr noundef %8, ptr noundef nonnull %overflow.i) #9 %cmp.i6 = icmp eq i64 %call.i, -1 br i1 %cmp.i6, label %land.lhs.true.i, label %if.end.i7 @@ -9765,22 +9765,22 @@ land.lhs.true.i: ; preds = %if.end5 br i1 %tobool.not.i, label %if.end.i7, label %component_converter.exit.thread if.end.i7: ; preds = %land.lhs.true.i, %if.end5 - %8 = load i32, ptr %overflow.i, align 4 - %cmp2.i = icmp sgt i32 %8, 0 + %9 = load i32, ptr %overflow.i, align 4 + %cmp2.i = icmp sgt i32 %9, 0 %cmp3.i = icmp sgt i64 %call.i, 1000 %or.cond.i = or i1 %cmp3.i, %cmp2.i br i1 %or.cond.i, label %component_converter.exit.thread.sink.split, label %if.else.i if.else.i: ; preds = %if.end.i7 - %cmp5.i = icmp slt i32 %8, 0 + %cmp5.i = icmp slt i32 %9, 0 %cmp7.i = icmp slt i64 %call.i, 0 %or.cond1.i = or i1 %cmp7.i, %cmp5.i br i1 %or.cond1.i, label %component_converter.exit.thread.sink.split, label %if.end10 component_converter.exit.thread.sink.split: ; preds = %if.else.i, %if.end.i7 %.str.370.sink = phi ptr [ @.str.370, %if.end.i7 ], [ @.str.371, %if.else.i ] - %9 = load ptr, ptr @PyExc_ValueError, align 8 - call void @PyErr_SetString(ptr noundef %9, ptr noundef nonnull %.str.370.sink) #9 + %10 = load ptr, ptr @PyExc_ValueError, align 8 + call void @PyErr_SetString(ptr noundef %10, ptr noundef nonnull %.str.370.sink) #9 br label %component_converter.exit.thread component_converter.exit.thread: ; preds = %component_converter.exit.thread.sink.split, %land.lhs.true.i @@ -9791,9 +9791,9 @@ if.end10: ; preds = %if.else.i %conv.i = trunc i64 %call.i to i32 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %overflow.i) %arrayidx11 = getelementptr i8, ptr %args, i64 16 - %10 = load ptr, ptr %arrayidx11, align 8 + %11 = load ptr, ptr %arrayidx11, align 8 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %overflow.i9) - %call.i10 = call i64 @PyLong_AsLongAndOverflow(ptr noundef %10, ptr noundef nonnull %overflow.i9) #9 + %call.i10 = call i64 @PyLong_AsLongAndOverflow(ptr noundef %11, ptr noundef nonnull %overflow.i9) #9 %cmp.i11 = icmp eq i64 %call.i10, -1 br i1 %cmp.i11, label %land.lhs.true.i25, label %if.end.i12 @@ -9803,22 +9803,22 @@ land.lhs.true.i25: ; preds = %if.end10 br i1 %tobool.not.i27, label %if.end.i12, label %component_converter.exit28.thread if.end.i12: ; preds = %land.lhs.true.i25, %if.end10 - %11 = load i32, ptr %overflow.i9, align 4 - %cmp2.i13 = icmp sgt i32 %11, 0 + %12 = load i32, ptr %overflow.i9, align 4 + %cmp2.i13 = icmp sgt i32 %12, 0 %cmp3.i14 = icmp sgt i64 %call.i10, 1000 %or.cond.i15 = or i1 %cmp3.i14, %cmp2.i13 br i1 %or.cond.i15, label %component_converter.exit28.thread.sink.split, label %if.else.i16 if.else.i16: ; preds = %if.end.i12 - %cmp5.i17 = icmp slt i32 %11, 0 + %cmp5.i17 = icmp slt i32 %12, 0 %cmp7.i18 = icmp slt i64 %call.i10, 0 %or.cond1.i19 = or i1 %cmp7.i18, %cmp5.i17 br i1 %or.cond1.i19, label %component_converter.exit28.thread.sink.split, label %if.end15 component_converter.exit28.thread.sink.split: ; preds = %if.else.i16, %if.end.i12 %.str.370.sink67 = phi ptr [ @.str.370, %if.end.i12 ], [ @.str.371, %if.else.i16 ] - %12 = load ptr, ptr @PyExc_ValueError, align 8 - call void @PyErr_SetString(ptr noundef %12, ptr noundef nonnull %.str.370.sink67) #9 + %13 = load ptr, ptr @PyExc_ValueError, align 8 + call void @PyErr_SetString(ptr noundef %13, ptr noundef nonnull %.str.370.sink67) #9 br label %component_converter.exit28.thread component_converter.exit28.thread: ; preds = %component_converter.exit28.thread.sink.split, %land.lhs.true.i25 @@ -9829,9 +9829,9 @@ if.end15: ; preds = %if.else.i16 %conv.i21 = trunc i64 %call.i10 to i32 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %overflow.i9) %arrayidx16 = getelementptr i8, ptr %args, i64 24 - %13 = load ptr, ptr %arrayidx16, align 8 + %14 = load ptr, ptr %arrayidx16, align 8 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %overflow.i29) - %call.i30 = call i64 @PyLong_AsLongAndOverflow(ptr noundef %13, ptr noundef nonnull %overflow.i29) #9 + %call.i30 = call i64 @PyLong_AsLongAndOverflow(ptr noundef %14, ptr noundef nonnull %overflow.i29) #9 %cmp.i31 = icmp eq i64 %call.i30, -1 br i1 %cmp.i31, label %land.lhs.true.i45, label %if.end.i32 @@ -9841,22 +9841,22 @@ land.lhs.true.i45: ; preds = %if.end15 br i1 %tobool.not.i47, label %if.end.i32, label %component_converter.exit48.thread if.end.i32: ; preds = %land.lhs.true.i45, %if.end15 - %14 = load i32, ptr %overflow.i29, align 4 - %cmp2.i33 = icmp sgt i32 %14, 0 + %15 = load i32, ptr %overflow.i29, align 4 + %cmp2.i33 = icmp sgt i32 %15, 0 %cmp3.i34 = icmp sgt i64 %call.i30, 1000 %or.cond.i35 = or i1 %cmp3.i34, %cmp2.i33 br i1 %or.cond.i35, label %component_converter.exit48.thread.sink.split, label %if.else.i36 if.else.i36: ; preds = %if.end.i32 - %cmp5.i37 = icmp slt i32 %14, 0 + %cmp5.i37 = icmp slt i32 %15, 0 %cmp7.i38 = icmp slt i64 %call.i30, 0 %or.cond1.i39 = or i1 %cmp7.i38, %cmp5.i37 br i1 %or.cond1.i39, label %component_converter.exit48.thread.sink.split, label %if.end20 component_converter.exit48.thread.sink.split: ; preds = %if.else.i36, %if.end.i32 %.str.370.sink68 = phi ptr [ @.str.370, %if.end.i32 ], [ @.str.371, %if.else.i36 ] - %15 = load ptr, ptr @PyExc_ValueError, align 8 - call void @PyErr_SetString(ptr noundef %15, ptr noundef nonnull %.str.370.sink68) #9 + %16 = load ptr, ptr @PyExc_ValueError, align 8 + call void @PyErr_SetString(ptr noundef %16, ptr noundef nonnull %.str.370.sink68) #9 br label %component_converter.exit48.thread component_converter.exit48.thread: ; preds = %component_converter.exit48.thread.sink.split, %land.lhs.true.i45 @@ -9870,8 +9870,8 @@ if.end20: ; preds = %if.else.i36 br i1 %.b.i, label %if.end.i50, label %if.then.i if.then.i: ; preds = %if.end20 - %16 = load ptr, ptr @PyCursesError, align 8 - call void @PyErr_SetString(ptr noundef %16, ptr noundef nonnull @.str.353) #9 + %17 = load ptr, ptr @PyCursesError, align 8 + call void @PyErr_SetString(ptr noundef %17, ptr noundef nonnull @.str.353) #9 br label %exit if.end.i50: ; preds = %if.end20 @@ -9879,8 +9879,8 @@ if.end.i50: ; preds = %if.end20 br i1 %.b1.i, label %if.end3.i, label %if.then2.i if.then2.i: ; preds = %if.end.i50 - %17 = load ptr, ptr @PyCursesError, align 8 - call void @PyErr_SetString(ptr noundef %17, ptr noundef nonnull @.str.356) #9 + %18 = load ptr, ptr @PyCursesError, align 8 + call void @PyErr_SetString(ptr noundef %18, ptr noundef nonnull @.str.356) #9 br label %exit if.end3.i: ; preds = %if.end.i50 @@ -9889,8 +9889,8 @@ if.end3.i: ; preds = %if.end.i50 br i1 %cmp.not.i.i, label %if.else.i.i, label %exit if.else.i.i: ; preds = %if.end3.i - %18 = load ptr, ptr @PyCursesError, align 8 - %call.i.i53 = call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %18, ptr noundef nonnull @.str.156, ptr noundef nonnull @.str.372) #9 + %19 = load ptr, ptr @PyCursesError, align 8 + %call.i.i53 = call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %19, ptr noundef nonnull @.str.156, ptr noundef nonnull @.str.372) #9 br label %exit exit: ; preds = %color_allow_default_converter.exit.thread.i, %if.then1.i, %if.else.i.i, %if.end3.i, %if.then2.i, %if.then.i, %component_converter.exit48.thread, %component_converter.exit28.thread, %component_converter.exit.thread, %lor.lhs.false @@ -9972,8 +9972,8 @@ if.end.i8: ; preds = %land.lhs.true.i14, %6 = load i32, ptr @COLORS, align 4 %conv.i10 = sext i32 %6 to i64 %cmp3.not.i = icmp slt i64 %call.i6, %conv.i10 - %or.cond.i11 = select i1 %cmp2.i9, i1 %cmp3.not.i, i1 false - br i1 %or.cond.i11, label %if.end10, label %if.then5.i + %or.cond4.i = select i1 %cmp2.i9, i1 %cmp3.not.i, i1 false + br i1 %or.cond4.i, label %if.end10, label %if.then5.i if.then5.i: ; preds = %if.end.i8 %7 = load ptr, ptr @PyExc_ValueError, align 8 @@ -9986,88 +9986,88 @@ color_allow_default_converter.exit.thread: ; preds = %if.then5.i, %land.l br label %exit if.end10: ; preds = %if.end.i8 - %cmp7.not.i = icmp eq i32 %5, 0 - %8 = call i64 @llvm.smax.i64(i64 %call.i6, i64 -1) - %9 = trunc i64 %8 to i32 - %conv15.i = select i1 %cmp7.not.i, i32 %9, i32 -1 + %cmp7.i = icmp eq i32 %5, 0 + %cmp10.i = call i64 @llvm.smax.i64(i64 %call.i6, i64 -1) + %or.cond.i13 = trunc i64 %cmp10.i to i32 + %8 = select i1 %cmp7.i, i32 %9, i32 -1 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %overflow.i5) %arrayidx11 = getelementptr i8, ptr %args, i64 16 - %10 = load ptr, ptr %arrayidx11, align 8 + %9 = load ptr, ptr %arrayidx11, align 8 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %overflow.i17) - %call.i18 = call i64 @PyLong_AsLongAndOverflow(ptr noundef %10, ptr noundef nonnull %overflow.i17) #9 + %call.i18 = call i64 @PyLong_AsLongAndOverflow(ptr noundef %9, ptr noundef nonnull %overflow.i17) #9 %cmp.i19 = icmp eq i64 %call.i18, -1 - br i1 %cmp.i19, label %land.lhs.true.i32, label %if.end.i20 - -land.lhs.true.i32: ; preds = %if.end10 - %call1.i33 = call ptr @PyErr_Occurred() #9 - %tobool.not.i34 = icmp eq ptr %call1.i33, null - br i1 %tobool.not.i34, label %if.end.i20, label %color_allow_default_converter.exit35.thread - -if.end.i20: ; preds = %land.lhs.true.i32, %if.end10 - %11 = load i32, ptr %overflow.i17, align 4 - %cmp2.i21 = icmp slt i32 %11, 1 - %12 = load i32, ptr @COLORS, align 4 - %conv.i22 = sext i32 %12 to i64 + br i1 %cmp.i19, label %land.lhs.true.i34, label %if.end.i20 + +land.lhs.true.i34: ; preds = %if.end10 + %call1.i35 = call ptr @PyErr_Occurred() #9 + %tobool.not.i36 = icmp eq ptr %call1.i35, null + br i1 %tobool.not.i36, label %if.end.i20, label %color_allow_default_converter.exit37.thread + +if.end.i20: ; preds = %land.lhs.true.i34, %if.end10 + %10 = load i32, ptr %overflow.i17, align 4 + %cmp2.i21 = icmp slt i32 %10, 1 + %11 = load i32, ptr @COLORS, align 4 + %conv.i22 = sext i32 %11 to i64 %cmp3.not.i23 = icmp slt i64 %call.i18, %conv.i22 - %or.cond.i24 = select i1 %cmp2.i21, i1 %cmp3.not.i23, i1 false - br i1 %or.cond.i24, label %if.end15, label %if.then5.i25 + %or.cond4.i24 = select i1 %cmp2.i21, i1 %cmp3.not.i23, i1 false + br i1 %or.cond4.i24, label %if.end15, label %if.then5.i25 if.then5.i25: ; preds = %if.end.i20 - %13 = load ptr, ptr @PyExc_ValueError, align 8 - %sub.i26 = add i32 %12, -1 - %call6.i27 = call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %13, ptr noundef nonnull @.str.355, i32 noundef %sub.i26) #9 - br label %color_allow_default_converter.exit35.thread + %12 = load ptr, ptr @PyExc_ValueError, align 8 + %sub.i26 = add i32 %11, -1 + %call6.i27 = call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %12, ptr noundef nonnull @.str.355, i32 noundef %sub.i26) #9 + br label %color_allow_default_converter.exit37.thread -color_allow_default_converter.exit35.thread: ; preds = %if.then5.i25, %land.lhs.true.i32 +color_allow_default_converter.exit37.thread: ; preds = %if.then5.i25, %land.lhs.true.i34 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %overflow.i17) br label %exit if.end15: ; preds = %if.end.i20 - %cmp7.not.i30 = icmp eq i32 %11, 0 - %14 = call i64 @llvm.smax.i64(i64 %call.i18, i64 -1) - %15 = trunc i64 %14 to i32 - %conv15.i31 = select i1 %cmp7.not.i30, i32 %15, i32 -1 + %cmp7.i30 = icmp eq i32 %10, 0 + %cmp10.i31 = call i64 @llvm.smax.i64(i64 %call.i18, i64 -1) + %or.cond.i32 = trunc i64 %cmp10.i31 to i32 + %13 = select i1 %cmp7.i30, i32 %15, i32 -1 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %overflow.i17) %.b.i = load i1, ptr @initialised, align 4 - br i1 %.b.i, label %if.end.i37, label %if.then.i + br i1 %.b.i, label %if.end.i39, label %if.then.i if.then.i: ; preds = %if.end15 - %16 = load ptr, ptr @PyCursesError, align 8 - call void @PyErr_SetString(ptr noundef %16, ptr noundef nonnull @.str.353) #9 + %14 = load ptr, ptr @PyCursesError, align 8 + call void @PyErr_SetString(ptr noundef %14, ptr noundef nonnull @.str.353) #9 br label %exit -if.end.i37: ; preds = %if.end15 +if.end.i39: ; preds = %if.end15 %.b2.i = load i1, ptr @initialisedcolors, align 4 br i1 %.b2.i, label %if.end3.i, label %if.then2.i -if.then2.i: ; preds = %if.end.i37 - %17 = load ptr, ptr @PyCursesError, align 8 - call void @PyErr_SetString(ptr noundef %17, ptr noundef nonnull @.str.356) #9 +if.then2.i: ; preds = %if.end.i39 + %15 = load ptr, ptr @PyCursesError, align 8 + call void @PyErr_SetString(ptr noundef %15, ptr noundef nonnull @.str.356) #9 br label %exit -if.end3.i: ; preds = %if.end.i37 - %call.i38 = call i32 @init_extended_pair(i32 noundef %conv.i, i32 noundef %conv15.i, i32 noundef %conv15.i31) #9 - %cmp4.i = icmp eq i32 %call.i38, -1 - br i1 %cmp4.i, label %if.then5.i39, label %exit +if.end3.i: ; preds = %if.end.i39 + %call.i40 = call i32 @init_extended_pair(i32 noundef %conv.i, i32 noundef %conv15.i, i32 noundef %conv15.i31) #9 + %cmp4.i = icmp eq i32 %call.i40, -1 + br i1 %cmp4.i, label %if.then5.i41, label %exit -if.then5.i39: ; preds = %if.end3.i - %18 = load i32, ptr @COLOR_PAIRS, align 4 - %cmp6.not.i = icmp sgt i32 %18, %conv.i - br i1 %cmp6.not.i, label %if.else.i41, label %if.then7.i +if.then5.i41: ; preds = %if.end3.i + %16 = load i32, ptr @COLOR_PAIRS, align 4 + %cmp6.not.i = icmp sgt i32 %16, %conv.i + br i1 %cmp6.not.i, label %if.else.i43, label %if.then7.i -if.then7.i: ; preds = %if.then5.i39 - %19 = load ptr, ptr @PyExc_ValueError, align 8 - %sub.i40 = add i32 %18, -1 - %call8.i = call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %19, ptr noundef nonnull @.str.375, i32 noundef %sub.i40) #9 +if.then7.i: ; preds = %if.then5.i41 + %17 = load ptr, ptr @PyExc_ValueError, align 8 + %sub.i42 = add i32 %16, -1 + %call8.i = call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %17, ptr noundef nonnull @.str.375, i32 noundef %sub.i42) #9 br label %exit -if.else.i41: ; preds = %if.then5.i39 - %20 = load ptr, ptr @PyCursesError, align 8 - %call9.i = call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %20, ptr noundef nonnull @.str.156, ptr noundef nonnull @.str.376) #9 +if.else.i43: ; preds = %if.then5.i41 + %18 = load ptr, ptr @PyCursesError, align 8 + %call9.i = call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %18, ptr noundef nonnull @.str.156, ptr noundef nonnull @.str.376) #9 br label %exit -exit: ; preds = %if.else.i41, %if.then7.i, %if.end3.i, %if.then2.i, %if.then.i, %color_allow_default_converter.exit35.thread, %color_allow_default_converter.exit.thread, %pair_converter.exit.thread, %lor.lhs.false - %return_value.0 = phi ptr [ null, %lor.lhs.false ], [ null, %pair_converter.exit.thread ], [ null, %color_allow_default_converter.exit.thread ], [ null, %color_allow_default_converter.exit35.thread ], [ null, %if.then.i ], [ null, %if.then2.i ], [ null, %if.else.i41 ], [ null, %if.then7.i ], [ @_Py_NoneStruct, %if.end3.i ] +exit: ; preds = %if.else.i43, %if.then7.i, %if.end3.i, %if.then2.i, %if.then.i, %color_allow_default_converter.exit37.thread, %color_allow_default_converter.exit.thread, %pair_converter.exit.thread, %lor.lhs.false + %return_value.0 = phi ptr [ null, %lor.lhs.false ], [ null, %pair_converter.exit.thread ], [ null, %color_allow_default_converter.exit.thread ], [ null, %color_allow_default_converter.exit37.thread ], [ null, %if.then.i ], [ null, %if.then2.i ], [ null, %if.else.i43 ], [ null, %if.then7.i ], [ @_Py_NoneStruct, %if.end3.i ] ret ptr %return_value.0 } diff --git a/bench/cpython/optimized/dtoa.ll b/bench/cpython/optimized/dtoa.ll index 5226d7aaf89..a932185850e 100644 --- a/bench/cpython/optimized/dtoa.ll +++ b/bench/cpython/optimized/dtoa.ll @@ -41,12 +41,12 @@ sw.epilog: ; preds = %sw.bb1, %entry %c.0.in = phi i8 [ %0, %entry ], [ %2, %sw.bb1 ] %sign.0 = phi i1 [ true, %entry ], [ %1, %sw.bb1 ] %s.0 = phi ptr [ %s00, %entry ], [ %incdec.ptr, %sw.bb1 ] - %cmp765 = icmp eq i8 %c.0.in, 48 - br i1 %cmp765, label %while.body, label %while.end + %cmp764 = icmp eq i8 %c.0.in, 48 + br i1 %cmp764, label %while.body, label %while.end while.body: ; preds = %sw.epilog, %while.body - %s.1766 = phi ptr [ %incdec.ptr4, %while.body ], [ %s.0, %sw.epilog ] - %incdec.ptr4 = getelementptr i8, ptr %s.1766, i64 1 + %s.1765 = phi ptr [ %incdec.ptr4, %while.body ], [ %s.0, %sw.epilog ] + %incdec.ptr4 = getelementptr i8, ptr %s.1765, i64 1 %3 = load i8, ptr %incdec.ptr4, align 1 %cmp = icmp eq i8 %3, 48 br i1 %cmp, label %while.body, label %while.end, !llvm.loop !5 @@ -60,8 +60,8 @@ while.end: ; preds = %while.body, %sw.epi br i1 %5, label %while.body13, label %while.end16 while.body13: ; preds = %while.end, %while.body13 - %s.2768 = phi ptr [ %incdec.ptr14, %while.body13 ], [ %s.1.lcssa, %while.end ] - %incdec.ptr14 = getelementptr i8, ptr %s.2768, i64 1 + %s.2767 = phi ptr [ %incdec.ptr14, %while.body13 ], [ %s.1.lcssa, %while.end ] + %incdec.ptr14 = getelementptr i8, ptr %s.2767, i64 1 %6 = load i8, ptr %incdec.ptr14, align 1 %7 = add i8 %6, -48 %8 = icmp ult i8 %7, 10 @@ -85,12 +85,12 @@ if.then: ; preds = %while.end16 br i1 %tobool.not, label %while.cond22.preheader, label %if.end while.cond22.preheader: ; preds = %if.then - %cmp23771 = icmp eq i8 %9, 48 - br i1 %cmp23771, label %while.body25, label %while.end28 + %cmp23770 = icmp eq i8 %9, 48 + br i1 %cmp23770, label %while.body25, label %while.end28 while.body25: ; preds = %while.cond22.preheader, %while.body25 - %s.5772 = phi ptr [ %incdec.ptr26, %while.body25 ], [ %incdec.ptr19, %while.cond22.preheader ] - %incdec.ptr26 = getelementptr i8, ptr %s.5772, i64 1 + %s.5771 = phi ptr [ %incdec.ptr26, %while.body25 ], [ %incdec.ptr19, %while.cond22.preheader ] + %incdec.ptr26 = getelementptr i8, ptr %s.5771, i64 1 %10 = load i8, ptr %incdec.ptr26, align 1 %cmp23 = icmp eq i8 %10, 48 br i1 %cmp23, label %while.body25, label %while.end28.loopexit, !llvm.loop !8 @@ -120,8 +120,8 @@ if.end: ; preds = %while.end28, %if.th br i1 %13, label %while.body42, label %while.end45 while.body42: ; preds = %if.end, %while.body42 - %s.6775 = phi ptr [ %incdec.ptr43, %while.body42 ], [ %s.4, %if.end ] - %incdec.ptr43 = getelementptr i8, ptr %s.6775, i64 1 + %s.6774 = phi ptr [ %incdec.ptr43, %while.body42 ], [ %s.4, %if.end ] + %incdec.ptr43 = getelementptr i8, ptr %s.6774, i64 1 %14 = load i8, ptr %incdec.ptr43, align 1 %conv44 = sext i8 %14 to i32 %15 = add nsw i32 %conv44, -48 @@ -200,12 +200,12 @@ sw.epilog86: ; preds = %sw.bb83, %if.then79 %c.7.in = phi i8 [ %18, %if.then79 ], [ %20, %sw.bb83 ] %esign.0 = phi i1 [ true, %if.then79 ], [ %19, %sw.bb83 ] %s.8 = phi ptr [ %incdec.ptr80, %if.then79 ], [ %incdec.ptr84, %sw.bb83 ] - %cmp88778 = icmp eq i8 %c.7.in, 48 - br i1 %cmp88778, label %while.body90, label %while.end93 + %cmp88777 = icmp eq i8 %c.7.in, 48 + br i1 %cmp88777, label %while.body90, label %while.end93 while.body90: ; preds = %sw.epilog86, %while.body90 - %s.9779 = phi ptr [ %incdec.ptr91, %while.body90 ], [ %s.8, %sw.epilog86 ] - %incdec.ptr91 = getelementptr i8, ptr %s.9779, i64 1 + %s.9778 = phi ptr [ %incdec.ptr91, %while.body90 ], [ %s.8, %sw.epilog86 ] + %incdec.ptr91 = getelementptr i8, ptr %s.9778, i64 1 %21 = load i8, ptr %incdec.ptr91, align 1 %cmp88 = icmp eq i8 %21, 48 br i1 %cmp88, label %while.body90, label %while.end93, !llvm.loop !10 @@ -219,14 +219,14 @@ while.end93: ; preds = %while.body90, %sw.e br i1 %23, label %while.body103, label %while.end108 while.body103: ; preds = %while.end93, %while.body103 - %abs_exp.0784 = phi i32 [ %add105, %while.body103 ], [ 0, %while.end93 ] - %s.10783 = phi ptr [ %incdec.ptr106, %while.body103 ], [ %s.9.lcssa, %while.end93 ] - %c.9.in782 = phi i8 [ %24, %while.body103 ], [ %c.8.in.lcssa, %while.end93 ] - %c.9 = zext nneg i8 %c.9.in782 to i32 - %mul = mul i32 %abs_exp.0784, 10 + %abs_exp.0783 = phi i32 [ %add105, %while.body103 ], [ 0, %while.end93 ] + %s.10782 = phi ptr [ %incdec.ptr106, %while.body103 ], [ %s.9.lcssa, %while.end93 ] + %c.9.in781 = phi i8 [ %24, %while.body103 ], [ %c.8.in.lcssa, %while.end93 ] + %c.9 = zext nneg i8 %c.9.in781 to i32 + %mul = mul i32 %abs_exp.0783, 10 %sub104 = add nsw i32 %c.9, -48 %add105 = add i32 %sub104, %mul - %incdec.ptr106 = getelementptr i8, ptr %s.10783, i64 1 + %incdec.ptr106 = getelementptr i8, ptr %s.10782, i64 1 %24 = load i8, ptr %incdec.ptr106, align 1 %25 = add i8 %24, -48 %26 = icmp ult i8 %25, 10 @@ -288,24 +288,24 @@ for.end199.thread: ; preds = %for.cond br label %land.lhs.true218 for.body161.preheader: ; preds = %for.body - %sub152933 = sub nsw i32 %conv71, %i.0 - %add153934 = add i32 %sub152933, %sub131 - %spec.select319935 = tail call i32 @llvm.smin.i32(i32 %spec.select, i32 %i.0) - store i32 %add153934, ptr %bc, align 4 + %sub152932 = sub nsw i32 %conv71, %i.0 + %add153933 = add i32 %sub152932, %sub131 + %spec.select319934 = tail call i32 @llvm.smin.i32(i32 %spec.select, i32 %i.0) + store i32 %add153933, ptr %bc, align 4 br label %for.body161 for.body161: ; preds = %for.body161.preheader, %for.inc - %z.0790 = phi i32 [ %z.1, %for.inc ], [ 0, %for.body161.preheader ] - %y.0789 = phi i32 [ %y.1, %for.inc ], [ 0, %for.body161.preheader ] - %i.2788 = phi i32 [ %inc198, %for.inc ], [ 0, %for.body161.preheader ] - %cmp162 = icmp samesign ult i32 %i.2788, 9 + %z.0789 = phi i32 [ %z.1, %for.inc ], [ 0, %for.body161.preheader ] + %y.0788 = phi i32 [ %y.1, %for.inc ], [ 0, %for.body161.preheader ] + %i.2787 = phi i32 [ %inc198, %for.inc ], [ 0, %for.body161.preheader ] + %cmp162 = icmp samesign ult i32 %i.2787, 9 br i1 %cmp162, label %if.then164, label %if.else178 if.then164: ; preds = %for.body161 - %mul165 = mul i32 %y.0789, 10 - %cmp166 = icmp sge i32 %i.2788, %spec.select319935 + %mul165 = mul i32 %y.0788, 10 + %cmp166 = icmp sge i32 %i.2787, %spec.select319934 %add170 = zext i1 %cmp166 to i32 - %cond172 = add nuw nsw i32 %i.2788, %add170 + %cond172 = add nuw nsw i32 %i.2787, %add170 %idxprom173 = zext nneg i32 %cond172 to i64 %arrayidx174 = getelementptr i8, ptr %s0.0, i64 %idxprom173 %29 = load i8, ptr %arrayidx174, align 1 @@ -315,14 +315,14 @@ if.then164: ; preds = %for.body161 br label %for.inc if.else178: ; preds = %for.body161 - %cmp179 = icmp samesign ult i32 %i.2788, 16 + %cmp179 = icmp samesign ult i32 %i.2787, 16 br i1 %cmp179, label %if.then181, label %for.end199 if.then181: ; preds = %if.else178 - %mul182 = mul i32 %z.0790, 10 - %cmp183 = icmp sge i32 %i.2788, %spec.select319935 + %mul182 = mul i32 %z.0789, 10 + %cmp183 = icmp sge i32 %i.2787, %spec.select319934 %add187 = zext i1 %cmp183 to i32 - %cond189 = add nuw nsw i32 %i.2788, %add187 + %cond189 = add nuw nsw i32 %i.2787, %add187 %idxprom190 = zext nneg i32 %cond189 to i64 %arrayidx191 = getelementptr i8, ptr %s0.0, i64 %idxprom190 %30 = load i8, ptr %arrayidx191, align 1 @@ -332,15 +332,15 @@ if.then181: ; preds = %if.else178 br label %for.inc for.inc: ; preds = %if.then164, %if.then181 - %y.1 = phi i32 [ %sub177, %if.then164 ], [ %y.0789, %if.then181 ] - %z.1 = phi i32 [ %z.0790, %if.then164 ], [ %sub194, %if.then181 ] - %inc198 = add nuw nsw i32 %i.2788, 1 + %y.1 = phi i32 [ %sub177, %if.then164 ], [ %y.0788, %if.then181 ] + %z.1 = phi i32 [ %z.0789, %if.then164 ], [ %sub194, %if.then181 ] + %inc198 = add nuw nsw i32 %i.2787, 1 %exitcond.not = icmp eq i32 %inc198, %i.0 br i1 %exitcond.not, label %for.end199, label %for.body161, !llvm.loop !13 for.end199: ; preds = %for.inc, %if.else178 - %y.0.lcssa.ph = phi i32 [ %y.1, %for.inc ], [ %y.0789, %if.else178 ] - %z.0.lcssa.ph = phi i32 [ %z.1, %for.inc ], [ %z.0790, %if.else178 ] + %y.0.lcssa.ph = phi i32 [ %y.1, %for.inc ], [ %y.0788, %if.else178 ] + %z.0.lcssa.ph = phi i32 [ %z.1, %for.inc ], [ %z.0789, %if.else178 ] %cond205 = tail call i32 @llvm.smin.i32(i32 %i.0, i32 16) %conv206 = uitofp i32 %y.0.lcssa.ph to double store double %conv206, ptr %rv, align 8 @@ -359,43 +359,43 @@ if.end215: ; preds = %for.end199 br i1 %cmp216, label %land.lhs.true218, label %if.end257 land.lhs.true218: ; preds = %for.end199.thread, %for.end199, %if.end215 - %cond205960 = phi i32 [ %cond205, %for.end199 ], [ %cond205, %if.end215 ], [ 0, %for.end199.thread ] - %y.0.lcssa958 = phi i32 [ %y.0.lcssa.ph, %for.end199 ], [ %y.0.lcssa.ph, %if.end215 ], [ 0, %for.end199.thread ] - %i.0.lcssa937956 = phi i32 [ %i.0, %for.end199 ], [ %i.0, %if.end215 ], [ 0, %for.end199.thread ] - %add153939953 = phi i32 [ %add153934, %for.end199 ], [ %add153934, %if.end215 ], [ %add153, %for.end199.thread ] - %spec.select319942952 = phi i32 [ %spec.select319935, %for.end199 ], [ %spec.select319935, %if.end215 ], [ %spec.select319, %for.end199.thread ] + %cond205959 = phi i32 [ %cond205, %for.end199 ], [ %cond205, %if.end215 ], [ 0, %for.end199.thread ] + %y.0.lcssa957 = phi i32 [ %y.0.lcssa.ph, %for.end199 ], [ %y.0.lcssa.ph, %if.end215 ], [ 0, %for.end199.thread ] + %i.0.lcssa936955 = phi i32 [ %i.0, %for.end199 ], [ %i.0, %if.end215 ], [ 0, %for.end199.thread ] + %add153938952 = phi i32 [ %add153933, %for.end199 ], [ %add153933, %if.end215 ], [ %add153, %for.end199.thread ] + %spec.select319941951 = phi i32 [ %spec.select319934, %for.end199 ], [ %spec.select319934, %if.end215 ], [ %spec.select319, %for.end199.thread ] %34 = phi double [ %conv206, %for.end199 ], [ %33, %if.end215 ], [ 0.000000e+00, %for.end199.thread ] %35 = tail call i32 @llvm.get.rounding() %cmp219 = icmp eq i32 %35, 1 br i1 %cmp219, label %if.then221, label %if.end257 if.then221: ; preds = %land.lhs.true218 - %tobool222.not = icmp eq i32 %add153939953, 0 + %tobool222.not = icmp eq i32 %add153938952, 0 br i1 %tobool222.not, label %ret, label %if.end224 if.end224: ; preds = %if.then221 - %cmp225 = icmp sgt i32 %add153939953, 0 + %cmp225 = icmp sgt i32 %add153938952, 0 br i1 %cmp225, label %if.then227, label %if.else248 if.then227: ; preds = %if.end224 - %cmp228 = icmp samesign ult i32 %add153939953, 23 + %cmp228 = icmp samesign ult i32 %add153938952, 23 br i1 %cmp228, label %if.then230, label %if.end234 if.then230: ; preds = %if.then227 - %idxprom231 = zext nneg i32 %add153939953 to i64 + %idxprom231 = zext nneg i32 %add153938952 to i64 %arrayidx232 = getelementptr [23 x double], ptr @tens, i64 0, i64 %idxprom231 %36 = load double, ptr %arrayidx232, align 8 %mul233 = fmul double %36, %34 br label %ret if.end234: ; preds = %if.then227 - %add236 = sub nsw i32 37, %i.0.lcssa937956 - %cmp237.not = icmp samesign ugt i32 %add153939953, %add236 + %add236 = sub nsw i32 37, %i.0.lcssa936955 + %cmp237.not = icmp samesign ugt i32 %add153938952, %add236 br i1 %cmp237.not, label %if.end257, label %if.then239 if.then239: ; preds = %if.end234 - %sub235 = sub nuw nsw i32 15, %i.0.lcssa937956 - %sub240 = sub nuw nsw i32 %add153939953, %sub235 + %sub235 = sub nuw nsw i32 15, %i.0.lcssa936955 + %sub240 = sub nuw nsw i32 %add153938952, %sub235 %idxprom241 = zext nneg i32 %sub235 to i64 %arrayidx242 = getelementptr [23 x double], ptr @tens, i64 0, i64 %idxprom241 %37 = load double, ptr %arrayidx242, align 8 @@ -407,11 +407,11 @@ if.then239: ; preds = %if.end234 br label %ret if.else248: ; preds = %if.end224 - %cmp249 = icmp samesign ugt i32 %add153939953, -23 + %cmp249 = icmp samesign ugt i32 %add153938952, -23 br i1 %cmp249, label %if.then251, label %if.end257 if.then251: ; preds = %if.else248 - %sub252 = sub nsw i32 0, %add153939953 + %sub252 = sub nsw i32 0, %add153938952 %idxprom253 = zext nneg i32 %sub252 to i64 %arrayidx254 = getelementptr [23 x double], ptr @tens, i64 0, i64 %idxprom253 %39 = load double, ptr %arrayidx254, align 8 @@ -419,14 +419,14 @@ if.then251: ; preds = %if.else248 br label %ret if.end257: ; preds = %if.end234, %if.else248, %land.lhs.true218, %if.end215 - %cond205959 = phi i32 [ %cond205960, %if.end234 ], [ %cond205960, %if.else248 ], [ %cond205960, %land.lhs.true218 ], [ %cond205, %if.end215 ] - %y.0.lcssa957 = phi i32 [ %y.0.lcssa958, %if.end234 ], [ %y.0.lcssa958, %if.else248 ], [ %y.0.lcssa958, %land.lhs.true218 ], [ %y.0.lcssa.ph, %if.end215 ] - %i.0.lcssa937955 = phi i32 [ %i.0.lcssa937956, %if.end234 ], [ %i.0.lcssa937956, %if.else248 ], [ %i.0.lcssa937956, %land.lhs.true218 ], [ %i.0, %if.end215 ] - %add153939954 = phi i32 [ %add153939953, %if.end234 ], [ %add153939953, %if.else248 ], [ %add153939953, %land.lhs.true218 ], [ %add153934, %if.end215 ] - %spec.select319942951 = phi i32 [ %spec.select319942952, %if.end234 ], [ %spec.select319942952, %if.else248 ], [ %spec.select319942952, %land.lhs.true218 ], [ %spec.select319935, %if.end215 ] + %cond205958 = phi i32 [ %cond205959, %if.end234 ], [ %cond205959, %if.else248 ], [ %cond205959, %land.lhs.true218 ], [ %cond205, %if.end215 ] + %y.0.lcssa956 = phi i32 [ %y.0.lcssa957, %if.end234 ], [ %y.0.lcssa957, %if.else248 ], [ %y.0.lcssa957, %land.lhs.true218 ], [ %y.0.lcssa.ph, %if.end215 ] + %i.0.lcssa936954 = phi i32 [ %i.0.lcssa936955, %if.end234 ], [ %i.0.lcssa936955, %if.else248 ], [ %i.0.lcssa936955, %land.lhs.true218 ], [ %i.0, %if.end215 ] + %add153938953 = phi i32 [ %add153938952, %if.end234 ], [ %add153938952, %if.else248 ], [ %add153938952, %land.lhs.true218 ], [ %add153933, %if.end215 ] + %spec.select319941950 = phi i32 [ %spec.select319941951, %if.end234 ], [ %spec.select319941951, %if.else248 ], [ %spec.select319941951, %land.lhs.true218 ], [ %spec.select319934, %if.end215 ] %40 = phi double [ %34, %if.end234 ], [ %34, %if.else248 ], [ %34, %land.lhs.true218 ], [ %33, %if.end215 ] - %sub258 = sub nsw i32 %i.0.lcssa937955, %cond205959 - %add259 = add i32 %add153939954, %sub258 + %sub258 = sub nsw i32 %i.0.lcssa936954, %cond205958 + %add259 = add i32 %add153938953, %sub258 %scale = getelementptr inbounds nuw i8, ptr %bc, i64 12 store i32 0, ptr %scale, align 4 %cmp260 = icmp sgt i32 %add259, 0 @@ -446,7 +446,7 @@ if.then264: ; preds = %if.then262 br label %if.end268 if.end268: ; preds = %if.then264, %if.then262 - %rv.promoted802 = phi double [ %mul267, %if.then264 ], [ %40, %if.then262 ] + %rv.promoted801 = phi double [ %mul267, %if.then264 ], [ %40, %if.then262 ] %and269 = and i32 %add259, 2147483632 %tobool270.not = icmp eq i32 %and269, 0 br i1 %tobool270.not, label %if.end385, label %if.then271 @@ -456,45 +456,45 @@ if.then271: ; preds = %if.end268 br i1 %cmp272, label %ovfl, label %if.end275 if.end275: ; preds = %if.then271 - %cmp277805 = icmp samesign ugt i32 %add259, 31 - br i1 %cmp277805, label %for.body279.preheader, label %for.end290 + %cmp277804 = icmp samesign ugt i32 %add259, 31 + br i1 %cmp277804, label %for.body279.preheader, label %for.end290 for.body279.preheader: ; preds = %if.end275 %shr = lshr i32 %add259, 4 br label %for.body279 for.body279: ; preds = %for.body279.preheader, %for.inc287 - %indvars.iv917 = phi i64 [ 0, %for.body279.preheader ], [ %indvars.iv.next918, %for.inc287 ] - %e1.0807 = phi i32 [ %shr, %for.body279.preheader ], [ %shr289, %for.inc287 ] - %mul285804806 = phi double [ %rv.promoted802, %for.body279.preheader ], [ %mul285803, %for.inc287 ] - %and280 = and i32 %e1.0807, 1 + %indvars.iv916 = phi i64 [ 0, %for.body279.preheader ], [ %indvars.iv.next917, %for.inc287 ] + %e1.0806 = phi i32 [ %shr, %for.body279.preheader ], [ %shr289, %for.inc287 ] + %mul285803805 = phi double [ %rv.promoted801, %for.body279.preheader ], [ %mul285802, %for.inc287 ] + %and280 = and i32 %e1.0806, 1 %tobool281.not = icmp eq i32 %and280, 0 br i1 %tobool281.not, label %for.inc287, label %if.then282 if.then282: ; preds = %for.body279 - %arrayidx284 = getelementptr [5 x double], ptr @bigtens, i64 0, i64 %indvars.iv917 + %arrayidx284 = getelementptr [5 x double], ptr @bigtens, i64 0, i64 %indvars.iv916 %42 = load double, ptr %arrayidx284, align 8 - %mul285 = fmul double %42, %mul285804806 + %mul285 = fmul double %42, %mul285803805 br label %for.inc287 for.inc287: ; preds = %for.body279, %if.then282 - %mul285803 = phi double [ %mul285804806, %for.body279 ], [ %mul285, %if.then282 ] - %indvars.iv.next918 = add nuw nsw i64 %indvars.iv917, 1 - %shr289 = lshr i32 %e1.0807, 1 - %cmp277 = icmp samesign ugt i32 %e1.0807, 3 + %mul285802 = phi double [ %mul285803805, %for.body279 ], [ %mul285, %if.then282 ] + %indvars.iv.next917 = add nuw nsw i64 %indvars.iv916, 1 + %shr289 = lshr i32 %e1.0806, 1 + %cmp277 = icmp samesign ugt i32 %e1.0806, 3 br i1 %cmp277, label %for.body279, label %for.end290.loopexit, !llvm.loop !14 for.end290.loopexit: ; preds = %for.inc287 - %sext = shl i64 %indvars.iv.next918, 32 + %sext = shl i64 %indvars.iv.next917, 32 %43 = ashr exact i64 %sext, 32 br label %for.end290 for.end290: ; preds = %for.end290.loopexit, %if.end275 - %mul285804.lcssa = phi double [ %rv.promoted802, %if.end275 ], [ %mul285803, %for.end290.loopexit ] + %mul285803.lcssa = phi double [ %rv.promoted801, %if.end275 ], [ %mul285802, %for.end290.loopexit ] %j.0.lcssa = phi i64 [ 0, %if.end275 ], [ %43, %for.end290.loopexit ] - store double %mul285804.lcssa, ptr %rv, align 8 + store double %mul285803.lcssa, ptr %rv, align 8 %arrayidx291 = getelementptr inbounds nuw i8, ptr %rv, i64 4 - %44 = bitcast double %mul285804.lcssa to i64 + %44 = bitcast double %mul285803.lcssa to i64 %45 = lshr i64 %44, 32 %46 = trunc nuw i64 %45 to i32 %sub292 = add i32 %46, -55574528 @@ -564,34 +564,34 @@ if.then333: ; preds = %if.end330 if.end335: ; preds = %if.then333, %if.end330 %54 = phi i32 [ 106, %if.then333 ], [ 0, %if.end330 ] - %cmp337797 = icmp sgt i32 %shr324, 0 - br i1 %cmp337797, label %for.body339, label %for.end350 + %cmp337796 = icmp sgt i32 %shr324, 0 + br i1 %cmp337796, label %for.body339, label %for.end350 for.body339: ; preds = %if.end335, %for.inc347 %indvars.iv = phi i64 [ %indvars.iv.next, %for.inc347 ], [ 0, %if.end335 ] - %e1.1799 = phi i32 [ %shr349, %for.inc347 ], [ %shr324, %if.end335 ] - %mul345796798 = phi double [ %mul345795, %for.inc347 ], [ %rv.promoted, %if.end335 ] - %and340 = and i32 %e1.1799, 1 + %e1.1798 = phi i32 [ %shr349, %for.inc347 ], [ %shr324, %if.end335 ] + %mul345795797 = phi double [ %mul345794, %for.inc347 ], [ %rv.promoted, %if.end335 ] + %and340 = and i32 %e1.1798, 1 %tobool341.not = icmp eq i32 %and340, 0 br i1 %tobool341.not, label %for.inc347, label %if.then342 if.then342: ; preds = %for.body339 %arrayidx344 = getelementptr [5 x double], ptr @tinytens, i64 0, i64 %indvars.iv %55 = load double, ptr %arrayidx344, align 8 - %mul345 = fmul double %55, %mul345796798 + %mul345 = fmul double %55, %mul345795797 br label %for.inc347 for.inc347: ; preds = %for.body339, %if.then342 - %mul345795 = phi double [ %mul345796798, %for.body339 ], [ %mul345, %if.then342 ] + %mul345794 = phi double [ %mul345795797, %for.body339 ], [ %mul345, %if.then342 ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %shr349 = lshr i32 %e1.1799, 1 - %cmp337.not = icmp samesign ult i32 %e1.1799, 2 + %shr349 = lshr i32 %e1.1798, 1 + %cmp337.not = icmp samesign ult i32 %e1.1798, 2 br i1 %cmp337.not, label %for.end350, label %for.body339, !llvm.loop !15 for.end350: ; preds = %for.inc347, %if.end335 - %mul345796.lcssa = phi double [ %rv.promoted, %if.end335 ], [ %mul345795, %for.inc347 ] - store double %mul345796.lcssa, ptr %rv, align 8 - %56 = bitcast double %mul345796.lcssa to i64 + %mul345795.lcssa = phi double [ %rv.promoted, %if.end335 ], [ %mul345794, %for.inc347 ] + store double %mul345795.lcssa, ptr %rv, align 8 + %56 = bitcast double %mul345795.lcssa to i64 %57 = lshr i64 %56, 32 %58 = trunc nuw i64 %57 to i32 %59 = trunc i64 %56 to i32 @@ -636,17 +636,17 @@ if.end379thread-pre-split: ; preds = %land.lhs.true353, % br label %if.end379 if.end379: ; preds = %if.end379thread-pre-split, %for.end350 - %60 = phi double [ %.pr, %if.end379thread-pre-split ], [ %mul345796.lcssa, %for.end350 ] + %60 = phi double [ %.pr, %if.end379thread-pre-split ], [ %mul345795.lcssa, %for.end350 ] %tobool380 = fcmp une double %60, 0.000000e+00 br i1 %tobool380, label %if.end385, label %undfl if.end385: ; preds = %if.else312, %if.end379, %if.end323, %if.end268, %if.else307, %if.then304 %61 = phi i32 [ 0, %if.else312 ], [ %54, %if.end379 ], [ 0, %if.end323 ], [ 0, %if.end268 ], [ 0, %if.else307 ], [ 0, %if.then304 ] %nd386 = getelementptr inbounds nuw i8, ptr %bc, i64 4 - store i32 %i.0.lcssa937955, ptr %nd386, align 4 + store i32 %i.0.lcssa936954, ptr %nd386, align 4 %nd0387 = getelementptr inbounds nuw i8, ptr %bc, i64 8 - store i32 %spec.select319942951, ptr %nd0387, align 4 - %cmp388 = icmp sgt i32 %i.0.lcssa937955, 40 + store i32 %spec.select319941950, ptr %nd0387, align 4 + %cmp388 = icmp sgt i32 %i.0.lcssa936954, 40 br i1 %cmp388, label %for.cond391, label %if.end449 for.cond391: ; preds = %if.end385, %for.body394 @@ -655,13 +655,13 @@ for.cond391: ; preds = %if.end385, %for.bod br i1 %cmp392.not, label %if.end449.thread, label %for.body394 if.end449.thread: ; preds = %for.cond391 - %add413963 = add i32 %i.0.lcssa937955, %add153939954 - %spec.select320964 = tail call i32 @llvm.smin.i32(i32 %spec.select319942951, i32 0) + %add413962 = add i32 %i.0.lcssa936954, %add153938953 + %spec.select320963 = tail call i32 @llvm.smin.i32(i32 %spec.select319941950, i32 0) br label %for.end.thread.i for.body394: ; preds = %for.cond391 %dec395 = add nsw i32 %i.3, -1 - %cmp396.not = icmp sgt i32 %i.3, %spec.select319942951 + %cmp396.not = icmp sgt i32 %i.3, %spec.select319941950 %cond402 = select i1 %cmp396.not, i32 %i.3, i32 %dec395 %idxprom403 = zext nneg i32 %cond402 to i64 %arrayidx404 = getelementptr i8, ptr %s0.0, i64 %idxprom403 @@ -670,29 +670,29 @@ for.body394: ; preds = %for.cond391 br i1 %cmp406.not, label %for.cond391, label %for.end411, !llvm.loop !16 for.end411: ; preds = %for.body394 - %sub412 = sub i32 %i.0.lcssa937955, %i.3 - %add413 = add i32 %sub412, %add153939954 - %spec.select320 = tail call i32 @llvm.smin.i32(i32 %spec.select319942951, i32 %i.3) + %sub412 = sub i32 %i.0.lcssa936954, %i.3 + %add413 = add i32 %sub412, %add153938953 + %spec.select320 = tail call i32 @llvm.smin.i32(i32 %spec.select319941950, i32 %i.3) %cmp418 = icmp slt i32 %i.3, 9 br i1 %cmp418, label %for.cond421.preheader, label %if.end449 for.cond421.preheader: ; preds = %for.end411 - %cmp422811 = icmp sgt i32 %spec.select320, 0 - br i1 %cmp422811, label %for.body424.preheader, label %for.cond434.preheader + %cmp422810 = icmp sgt i32 %spec.select320, 0 + br i1 %cmp422810, label %for.body424.preheader, label %for.cond434.preheader for.body424.preheader: ; preds = %for.cond421.preheader %63 = zext nneg i32 %spec.select320 to i64 br label %for.body424 for.cond434.preheader.loopexit: ; preds = %for.body424 - %64 = trunc nuw nsw i64 %indvars.iv.next921 to i32 + %64 = trunc nuw nsw i64 %indvars.iv.next920 to i32 br label %for.cond434.preheader for.cond434.preheader: ; preds = %for.cond434.preheader.loopexit, %for.cond421.preheader %i.5.lcssa = phi i32 [ 0, %for.cond421.preheader ], [ %64, %for.cond434.preheader.loopexit ] %y.3.lcssa = phi i32 [ 0, %for.cond421.preheader ], [ %sub430, %for.cond434.preheader.loopexit ] - %cmp435816 = icmp slt i32 %i.5.lcssa, %i.3 - br i1 %cmp435816, label %for.body437.preheader, label %if.end449 + %cmp435815 = icmp slt i32 %i.5.lcssa, %i.3 + br i1 %cmp435815, label %for.body437.preheader, label %if.end449 for.body437.preheader: ; preds = %for.cond434.preheader %65 = zext nneg i32 %i.5.lcssa to i64 @@ -700,46 +700,46 @@ for.body437.preheader: ; preds = %for.cond434.prehead br label %for.body437 for.body424: ; preds = %for.body424.preheader, %for.body424 - %indvars.iv920 = phi i64 [ 0, %for.body424.preheader ], [ %indvars.iv.next921, %for.body424 ] - %y.3813 = phi i32 [ 0, %for.body424.preheader ], [ %sub430, %for.body424 ] - %mul425 = mul i32 %y.3813, 10 - %arrayidx427 = getelementptr i8, ptr %s0.0, i64 %indvars.iv920 + %indvars.iv919 = phi i64 [ 0, %for.body424.preheader ], [ %indvars.iv.next920, %for.body424 ] + %y.3812 = phi i32 [ 0, %for.body424.preheader ], [ %sub430, %for.body424 ] + %mul425 = mul i32 %y.3812, 10 + %arrayidx427 = getelementptr i8, ptr %s0.0, i64 %indvars.iv919 %66 = load i8, ptr %arrayidx427, align 1 %conv428 = sext i8 %66 to i32 %add429 = add i32 %mul425, -48 %sub430 = add i32 %add429, %conv428 - %indvars.iv.next921 = add nuw nsw i64 %indvars.iv920, 1 - %cmp422 = icmp samesign ult i64 %indvars.iv.next921, %63 + %indvars.iv.next920 = add nuw nsw i64 %indvars.iv919, 1 + %cmp422 = icmp samesign ult i64 %indvars.iv.next920, %63 br i1 %cmp422, label %for.body424, label %for.cond434.preheader.loopexit, !llvm.loop !17 for.body437: ; preds = %for.body437.preheader, %for.body437 - %indvars.iv923 = phi i64 [ %65, %for.body437.preheader ], [ %indvars.iv.next924, %for.body437 ] - %y.4818 = phi i32 [ %y.3.lcssa, %for.body437.preheader ], [ %sub444, %for.body437 ] - %mul438 = mul i32 %y.4818, 10 - %indvars.iv.next924 = add nuw nsw i64 %indvars.iv923, 1 - %arrayidx441 = getelementptr i8, ptr %s0.0, i64 %indvars.iv.next924 + %indvars.iv922 = phi i64 [ %65, %for.body437.preheader ], [ %indvars.iv.next923, %for.body437 ] + %y.4817 = phi i32 [ %y.3.lcssa, %for.body437.preheader ], [ %sub444, %for.body437 ] + %mul438 = mul i32 %y.4817, 10 + %indvars.iv.next923 = add nuw nsw i64 %indvars.iv922, 1 + %arrayidx441 = getelementptr i8, ptr %s0.0, i64 %indvars.iv.next923 %67 = load i8, ptr %arrayidx441, align 1 %conv442 = sext i8 %67 to i32 %add443 = add i32 %mul438, -48 %sub444 = add i32 %add443, %conv442 - %exitcond927.not = icmp eq i64 %indvars.iv.next924, %wide.trip.count - br i1 %exitcond927.not, label %if.end449, label %for.body437, !llvm.loop !18 + %exitcond926.not = icmp eq i64 %indvars.iv.next923, %wide.trip.count + br i1 %exitcond926.not, label %if.end449, label %for.body437, !llvm.loop !18 if.end449: ; preds = %for.body437, %for.cond434.preheader, %for.end411, %if.end385 - %e.3 = phi i32 [ %add413, %for.end411 ], [ %add153939954, %if.end385 ], [ %add413, %for.cond434.preheader ], [ %add413, %for.body437 ] - %nd.0 = phi i32 [ %i.3, %for.end411 ], [ %i.0.lcssa937955, %if.end385 ], [ %i.3, %for.cond434.preheader ], [ %i.3, %for.body437 ] - %nd0.2 = phi i32 [ %spec.select320, %for.end411 ], [ %spec.select319942951, %if.end385 ], [ %spec.select320, %for.cond434.preheader ], [ %spec.select320, %for.body437 ] - %y.2 = phi i32 [ %y.0.lcssa957, %for.end411 ], [ %y.0.lcssa957, %if.end385 ], [ %y.3.lcssa, %for.cond434.preheader ], [ %sub444, %for.body437 ] + %e.3 = phi i32 [ %add413, %for.end411 ], [ %add153938953, %if.end385 ], [ %add413, %for.cond434.preheader ], [ %add413, %for.body437 ] + %nd.0 = phi i32 [ %i.3, %for.end411 ], [ %i.0.lcssa936954, %if.end385 ], [ %i.3, %for.cond434.preheader ], [ %i.3, %for.body437 ] + %nd0.2 = phi i32 [ %spec.select320, %for.end411 ], [ %spec.select319941950, %if.end385 ], [ %spec.select320, %for.cond434.preheader ], [ %spec.select320, %for.body437 ] + %y.2 = phi i32 [ %y.0.lcssa956, %for.end411 ], [ %y.0.lcssa956, %if.end385 ], [ %y.3.lcssa, %for.cond434.preheader ], [ %sub444, %for.body437 ] %add.i = add i32 %nd.0, 8 %div.i = sdiv i32 %add.i, 9 %cmp25.i = icmp sgt i32 %add.i, 17 br i1 %cmp25.i, label %for.inc.i, label %for.end.thread.i for.end.thread.i: ; preds = %if.end449.thread, %if.end449 - %y.21008 = phi i32 [ 0, %if.end449.thread ], [ %y.2, %if.end449 ] - %nd0.21003 = phi i32 [ %spec.select320964, %if.end449.thread ], [ %nd0.2, %if.end449 ] - %nd.0998 = phi i32 [ 0, %if.end449.thread ], [ %nd.0, %if.end449 ] - %e.3993 = phi i32 [ %add413963, %if.end449.thread ], [ %e.3, %if.end449 ] + %y.21007 = phi i32 [ 0, %if.end449.thread ], [ %y.2, %if.end449 ] + %nd0.21002 = phi i32 [ %spec.select320963, %if.end449.thread ], [ %nd0.2, %if.end449 ] + %nd.0997 = phi i32 [ 0, %if.end449.thread ], [ %nd.0, %if.end449 ] + %e.3992 = phi i32 [ %add413962, %if.end449.thread ], [ %e.3, %if.end449 ] %68 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_Py_tss_tstate) br label %land.lhs.true.i.i @@ -757,10 +757,10 @@ for.end.i: ; preds = %for.inc.i br i1 %cmp.i.i, label %land.lhs.true.i.i, label %if.else.i.i land.lhs.true.i.i: ; preds = %for.end.i, %for.end.thread.i - %y.21007 = phi i32 [ %y.21008, %for.end.thread.i ], [ %y.2, %for.end.i ] - %nd0.21002 = phi i32 [ %nd0.21003, %for.end.thread.i ], [ %nd0.2, %for.end.i ] - %nd.0997 = phi i32 [ %nd.0998, %for.end.thread.i ], [ %nd.0, %for.end.i ] - %e.3992 = phi i32 [ %e.3993, %for.end.thread.i ], [ %e.3, %for.end.i ] + %y.21006 = phi i32 [ %y.21007, %for.end.thread.i ], [ %y.2, %for.end.i ] + %nd0.21001 = phi i32 [ %nd0.21002, %for.end.thread.i ], [ %nd0.2, %for.end.i ] + %nd.0996 = phi i32 [ %nd.0997, %for.end.thread.i ], [ %nd.0, %for.end.i ] + %e.3991 = phi i32 [ %e.3992, %for.end.thread.i ], [ %e.3, %for.end.i ] %.pn.in.i = phi ptr [ %68, %for.end.thread.i ], [ %69, %for.end.i ] %k.0.lcssa48.i = phi i32 [ 0, %for.end.thread.i ], [ %inc.i, %for.end.i ] %.pn.i = load ptr, ptr %.pn.in.i, align 8 @@ -810,10 +810,10 @@ if.then17.i.i: ; preds = %land.lhs.true10.i.i br label %if.end29.i.i if.else22.i.i: ; preds = %land.lhs.true10.i.i, %if.else.i.i - %y.21006 = phi i32 [ %y.21007, %land.lhs.true10.i.i ], [ %y.2, %if.else.i.i ] - %nd0.21001 = phi i32 [ %nd0.21002, %land.lhs.true10.i.i ], [ %nd0.2, %if.else.i.i ] - %nd.0996 = phi i32 [ %nd.0997, %land.lhs.true10.i.i ], [ %nd.0, %if.else.i.i ] - %e.3991 = phi i32 [ %e.3992, %land.lhs.true10.i.i ], [ %e.3, %if.else.i.i ] + %y.21005 = phi i32 [ %y.21006, %land.lhs.true10.i.i ], [ %y.2, %if.else.i.i ] + %nd0.21000 = phi i32 [ %nd0.21001, %land.lhs.true10.i.i ], [ %nd0.2, %if.else.i.i ] + %nd.0995 = phi i32 [ %nd.0996, %land.lhs.true10.i.i ], [ %nd.0, %if.else.i.i ] + %e.3990 = phi i32 [ %e.3991, %land.lhs.true10.i.i ], [ %e.3, %if.else.i.i ] %k.0.lcssa50.i = phi i32 [ %k.0.lcssa48.i, %land.lhs.true10.i.i ], [ %inc.i, %if.else.i.i ] %sub631.i.i = phi i64 [ %sub626.i.i, %land.lhs.true10.i.i ], [ %sub6.i.i, %if.else.i.i ] %shl28.i.i = phi i32 [ %shl21.i.i, %land.lhs.true10.i.i ], [ %shl.i.i, %if.else.i.i ] @@ -823,10 +823,10 @@ if.else22.i.i: ; preds = %land.lhs.true10.i.i br i1 %cmp26.i.i, label %failed_malloc, label %if.end29.i.i if.end29.i.i: ; preds = %if.else22.i.i, %if.then17.i.i - %y.21005 = phi i32 [ %y.21007, %if.then17.i.i ], [ %y.21006, %if.else22.i.i ] - %nd0.21000 = phi i32 [ %nd0.21002, %if.then17.i.i ], [ %nd0.21001, %if.else22.i.i ] - %nd.0995 = phi i32 [ %nd.0997, %if.then17.i.i ], [ %nd.0996, %if.else22.i.i ] - %e.3990 = phi i32 [ %e.3992, %if.then17.i.i ], [ %e.3991, %if.else22.i.i ] + %y.21004 = phi i32 [ %y.21006, %if.then17.i.i ], [ %y.21005, %if.else22.i.i ] + %nd0.2999 = phi i32 [ %nd0.21001, %if.then17.i.i ], [ %nd0.21000, %if.else22.i.i ] + %nd.0994 = phi i32 [ %nd.0996, %if.then17.i.i ], [ %nd.0995, %if.else22.i.i ] + %e.3989 = phi i32 [ %e.3991, %if.then17.i.i ], [ %e.3990, %if.else22.i.i ] %k.0.lcssa49.i = phi i32 [ %k.0.lcssa48.i, %if.then17.i.i ], [ %k.0.lcssa50.i, %if.else22.i.i ] %shl27.i.i = phi i32 [ %shl21.i.i, %if.then17.i.i ], [ %shl28.i.i, %if.else22.i.i ] %rv.1.i.i = phi ptr [ %73, %if.then17.i.i ], [ %call25.i.i, %if.else22.i.i ] @@ -837,30 +837,30 @@ if.end29.i.i: ; preds = %if.else22.i.i, %if. br label %if.end.i if.end.i: ; preds = %if.end29.i.i, %if.then.i.i - %y.21004 = phi i32 [ %y.21007, %if.then.i.i ], [ %y.21005, %if.end29.i.i ] - %nd0.2999 = phi i32 [ %nd0.21002, %if.then.i.i ], [ %nd0.21000, %if.end29.i.i ] - %nd.0994 = phi i32 [ %nd.0997, %if.then.i.i ], [ %nd.0995, %if.end29.i.i ] - %e.3989 = phi i32 [ %e.3992, %if.then.i.i ], [ %e.3990, %if.end29.i.i ] + %y.21003 = phi i32 [ %y.21006, %if.then.i.i ], [ %y.21004, %if.end29.i.i ] + %nd0.2998 = phi i32 [ %nd0.21001, %if.then.i.i ], [ %nd0.2999, %if.end29.i.i ] + %nd.0993 = phi i32 [ %nd.0996, %if.then.i.i ], [ %nd.0994, %if.end29.i.i ] + %e.3988 = phi i32 [ %e.3991, %if.then.i.i ], [ %e.3989, %if.end29.i.i ] %rv.0.i.i = phi ptr [ %71, %if.then.i.i ], [ %rv.1.i.i, %if.end29.i.i ] %wds.i.i = getelementptr inbounds nuw i8, ptr %rv.0.i.i, i64 20 %sign.i.i = getelementptr inbounds nuw i8, ptr %rv.0.i.i, i64 16 store i32 0, ptr %sign.i.i, align 8 %x2.i = getelementptr inbounds nuw i8, ptr %rv.0.i.i, i64 24 - store i32 %y.21004, ptr %x2.i, align 8 + store i32 %y.21003, ptr %x2.i, align 8 store i32 1, ptr %wds.i.i, align 4 - %cmp3.i = icmp slt i32 %nd.0994, 10 + %cmp3.i = icmp slt i32 %nd.0993, 10 br i1 %cmp3.i, label %s2b.exit, label %if.end5.i if.end5.i: ; preds = %if.end.i %add.ptr.i = getelementptr i8, ptr %s0.0, i64 9 - %cmp728.i = icmp sgt i32 %nd0.2999, 9 + %cmp728.i = icmp sgt i32 %nd0.2998, 9 br i1 %cmp728.i, label %for.body8.i, label %for.cond18.preheader.i for.cond18.preheader.i: ; preds = %for.inc14.i, %if.end5.i %s.addr.0.lcssa.i = phi ptr [ %add.ptr.i, %if.end5.i ], [ %incdec.ptr.i, %for.inc14.i ] %b.0.lcssa.i = phi ptr [ %rv.0.i.i, %if.end5.i ], [ %call9.i, %for.inc14.i ] - %i.0.lcssa.i = phi i32 [ 9, %if.end5.i ], [ %nd0.2999, %for.inc14.i ] - %cmp1936.i = icmp slt i32 %i.0.lcssa.i, %nd.0994 + %i.0.lcssa.i = phi i32 [ 9, %if.end5.i ], [ %nd0.2998, %for.inc14.i ] + %cmp1936.i = icmp slt i32 %i.0.lcssa.i, %nd.0993 br i1 %cmp1936.i, label %for.body21.i, label %s2b.exit for.body8.i: ; preds = %if.end5.i, %for.inc14.i @@ -877,12 +877,12 @@ for.body8.i: ; preds = %if.end5.i, %for.inc for.inc14.i: ; preds = %for.body8.i %incdec.ptr.i = getelementptr i8, ptr %s.addr.029.i, i64 1 %inc15.i = add nuw nsw i32 %i.031.i, 1 - %exitcond.not.i = icmp eq i32 %inc15.i, %nd0.2999 + %exitcond.not.i = icmp eq i32 %inc15.i, %nd0.2998 br i1 %exitcond.not.i, label %for.cond18.preheader.i, label %for.body8.i, !llvm.loop !20 for.cond18.i: ; preds = %for.body21.i %inc31.i = add nuw nsw i32 %i.138.i, 1 - %exitcond44.not.i = icmp eq i32 %inc31.i, %nd.0994 + %exitcond44.not.i = icmp eq i32 %inc31.i, %nd.0993 br i1 %exitcond44.not.i, label %s2b.exit, label %for.body21.i, !llvm.loop !21 for.body21.i: ; preds = %for.cond18.preheader.i, %for.cond18.i @@ -903,9 +903,9 @@ s2b.exit: ; preds = %for.cond18.i, %if.e %76 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_Py_tss_tstate) %sign462 = getelementptr inbounds nuw i8, ptr %retval.0.i, i64 16 %wds = getelementptr inbounds nuw i8, ptr %retval.0.i, i64 20 - %sub483 = sub i32 0, %e.3989 - %bd2.0 = tail call i32 @llvm.smax.i32(i32 %e.3989, i32 0) - %cmp479.inv = icmp slt i32 %e.3989, 0 + %cmp479 = sub i32 0, %e.3988 + %sub483 = tail call i32 @llvm.smax.i32(i32 %e.3988, i32 0) + %bd2.0 = icmp slt i32 %e.3988, 0 %bb2.0 = select i1 %cmp479.inv, i32 %sub483, i32 0 %cmp511 = icmp sgt i32 %bb2.0, 0 %and.i = and i32 %bb2.0, 3 @@ -915,7 +915,7 @@ s2b.exit: ; preds = %for.cond18.i, %if.e %arrayidx.i367 = getelementptr [3 x i32], ptr @pow5mult.p05, i64 0, i64 %idxprom.i366 %tobool3.not.i = icmp samesign ult i32 %bb2.0, 4 %shr.i = lshr i32 %bb2.0, 2 - %cmp534.not = icmp slt i32 %e.3989, 1 + %cmp534 = icmp slt i32 %e.3989, 1 %and.i389 = and i32 %bd2.0, 3 %tobool.not.i390 = icmp eq i32 %and.i389, 0 %sub.i392 = add nsw i32 %and.i389, -1 @@ -923,12 +923,12 @@ s2b.exit: ; preds = %for.cond18.i, %if.e %arrayidx.i394 = getelementptr [3 x i32], ptr @pow5mult.p05, i64 0, i64 %idxprom.i393 %tobool3.not.i399 = icmp slt i32 %e.3989, 4 %shr.i401 = lshr i32 %bd2.0, 2 - %cmp570 = icmp sgt i32 %i.0.lcssa937955, %nd.0994 + %cmp570 = icmp sgt i32 %i.0.lcssa936954, %nd.0993 %arrayidx745 = getelementptr inbounds nuw i8, ptr %rv, i64 4 %tobool809 = icmp ne i32 %61, 0 - %cmp841 = icmp eq i32 %i.0.lcssa937955, %nd.0994 + %cmp841 = icmp eq i32 %i.0.lcssa936954, %nd.0993 %tobool845 = icmp eq i32 %61, 0 - %or.cond13.not673 = and i1 %tobool845, %cmp841 + %or.cond13.not672 = and i1 %tobool845, %cmp841 br label %for.cond454 for.cond454: ; preds = %for.cond454.backedge, %s2b.exit @@ -1068,7 +1068,7 @@ if.end478: ; preds = %if.end29.i.i357, %i store i32 1, ptr %x.i, align 8 store i32 1, ptr %wds.i.i344, align 4 %90 = load i32, ptr %bbe, align 4 - %sub490 = tail call i32 @llvm.smin.i32(i32 %90, i32 0) + %cmp485 = tail call i32 @llvm.smin.i32(i32 %90, i32 0) %bd2.1 = sub i32 %bd2.0, %sub490 %add488 = tail call i32 @llvm.smax.i32(i32 %90, i32 0) %bb2.1 = add nuw i32 %add488, %bb2.0 @@ -1194,7 +1194,7 @@ if.then527: ; preds = %if.end524 if.end533: ; preds = %if.then527, %if.end524 %bb.6 = phi ptr [ %call528, %if.then527 ], [ %bb.5, %if.end524 ] - br i1 %cmp534.not, label %if.end542, label %if.then536 + br i1 %cmp534, label %if.end542, label %if.then536 if.then536: ; preds = %if.end533 br i1 %tobool.not.i390, label %if.end2.i397, label %if.then.i391 @@ -1379,7 +1379,7 @@ if.then593: ; preds = %if.then585 br label %for.end878 if.end599.thread: ; preds = %if.end578, %land.lhs.true581, %if.then585 - store i32 %nd.0994, ptr %nd386, align 4 + store i32 %nd.0993, ptr %nd386, align 4 br label %if.then602 if.end599: ; preds = %cmp.exit @@ -1394,8 +1394,8 @@ if.then602.loopexit: ; preds = %if.end599 if.then602: ; preds = %if.then602.loopexit, %if.end599.thread %122 = phi i32 [ %116, %if.end599.thread ], [ %.pre, %if.then602.loopexit ] %tobool603 = phi i1 [ false, %if.end599.thread ], [ %121, %if.then602.loopexit ] - %123 = phi i32 [ %nd.0994, %if.end599.thread ], [ %i.0.lcssa937955, %if.then602.loopexit ] - %wds1.i1099 = getelementptr inbounds nuw i8, ptr %bs.6, i64 20 + %123 = phi i32 [ %nd.0993, %if.end599.thread ], [ %i.0.lcssa936954, %if.then602.loopexit ] + %wds1.i1098 = getelementptr inbounds nuw i8, ptr %bs.6, i64 20 %tobool606 = icmp ne i32 %122, 0 %or.cond6 = select i1 %tobool603, i1 true, i1 %tobool606 br i1 %or.cond6, label %for.end878, label %lor.lhs.false607 @@ -1425,7 +1425,7 @@ if.end626: ; preds = %if.end617 if.end631: ; preds = %if.end626 %wds.i445 = getelementptr inbounds nuw i8, ptr %call627, i64 20 %126 = load i32, ptr %wds.i445, align 4 - %127 = load i32, ptr %wds1.i1099, align 4 + %127 = load i32, ptr %wds1.i1098, align 4 %tobool.not.i448 = icmp eq i32 %126, %127 br i1 %tobool.not.i448, label %if.end.i450, label %cmp.exit467 @@ -1507,21 +1507,21 @@ if.else673: ; preds = %if.then640 drop_down: ; preds = %if.then7.i462, %if.else673, %cmp.exit467 %133 = phi i32 [ %124, %cmp.exit467 ], [ %130, %if.else673 ], [ %124, %if.then7.i462 ] - %134 = phi i32 [ %123, %cmp.exit467 ], [ %i.0.lcssa937955, %if.else673 ], [ %123, %if.then7.i462 ] + %134 = phi i32 [ %123, %cmp.exit467 ], [ %i.0.lcssa936954, %if.else673 ], [ %123, %if.then7.i462 ] %delta.6 = phi ptr [ %call627, %cmp.exit467 ], [ %call561, %if.else673 ], [ %call627, %if.then7.i462 ] - %.pre931 = and i32 %133, 2146435072 - %cmp686 = icmp samesign ugt i32 %.pre931, 112197632 - %or.cond1126.not = select i1 %tobool845, i1 true, i1 %cmp686 - br i1 %or.cond1126.not, label %if.end699, label %if.then688 + %.pre930 = and i32 %133, 2146435072 + %cmp686 = icmp samesign ugt i32 %.pre930, 112197632 + %or.cond1125.not = select i1 %tobool845, i1 true, i1 %cmp686 + br i1 %or.cond1125.not, label %if.end699, label %if.then688 if.then688: ; preds = %drop_down - %cmp689 = icmp samesign ugt i32 %.pre931, 57671680 - %cmp694 = icmp sgt i32 %134, %nd.0994 + %cmp689 = icmp samesign ugt i32 %.pre930, 57671680 + %cmp694 = icmp sgt i32 %134, %nd.0993 %or.cond322 = or i1 %cmp694, %cmp689 br i1 %or.cond322, label %for.end878, label %undfl if.end699: ; preds = %drop_down - %or = add nsw i32 %.pre931, -1 + %or = add nsw i32 %.pre930, -1 store i32 %or, ptr %arrayidx745, align 4 store i32 -1, ptr %rv, align 8 br label %for.end878 @@ -1875,8 +1875,8 @@ if.end829: ; preds = %if.then816, %if.the %160 = bitcast double %aadj1.2 to i64 %aadj2.sroa.0.4.extract.shift = lshr i64 %160, 32 %aadj2.sroa.0.4.extract.trunc = trunc nuw i64 %aadj2.sroa.0.4.extract.shift to i32 - %reass.sub821 = sub i32 %aadj2.sroa.0.4.extract.trunc, %and778 - %add832 = add i32 %reass.sub821, 112197632 + %reass.sub820 = sub i32 %aadj2.sroa.0.4.extract.trunc, %and778 + %add832 = add i32 %reass.sub820, 112197632 %aadj2.sroa.0.4.insert.ext = zext i32 %add832 to i64 %aadj2.sroa.0.4.insert.shift = shl nuw i64 %aadj2.sroa.0.4.insert.ext, 32 %aadj2.sroa.0.4.insert.mask = and i64 %160, 4294967295 @@ -1906,7 +1906,7 @@ if.end837: ; preds = %if.end833, %if.else %aadj.2 = phi double [ %aadj.1, %if.else803 ], [ %aadj.3, %if.end833 ] %and839 = and i32 %167, 2146435072 %cmp847 = icmp eq i32 %and778, %and839 - %or.cond324 = select i1 %or.cond13.not673, i1 %cmp847, i1 false + %or.cond324 = select i1 %or.cond13.not672, i1 %cmp847, i1 false br i1 %or.cond324, label %if.then849, label %if.then.i505 if.then849: ; preds = %if.end837 @@ -1916,10 +1916,10 @@ if.then849: ; preds = %if.end837 %tobool853 = icmp eq i32 %111, 0 %168 = and i64 %.in, 4294967295 %tobool856 = icmp eq i64 %168, 0 - %or.cond11.not674 = select i1 %tobool853, i1 %tobool856, i1 false + %or.cond11.not673 = select i1 %tobool853, i1 %tobool856, i1 false %and859 = and i32 %167, 1048575 %tobool860.not = icmp eq i32 %and859, 0 - %or.cond325 = select i1 %or.cond11.not674, i1 %tobool860.not, i1 false + %or.cond325 = select i1 %or.cond11.not673, i1 %tobool860.not, i1 false br i1 %or.cond325, label %if.else869, label %if.then861 if.then861: ; preds = %if.then849 @@ -2028,9 +2028,9 @@ if.else.i541: ; preds = %if.then.i538 br label %for.cond454.backedge for.end878: ; preds = %if.else869, %if.then861, %if.end9.i465, %if.end617, %if.then7.i462, %if.end706.thread, %if.then747, %if.then711, %if.else714, %if.end706, %if.then688, %cmp.exit467, %if.then602, %lor.lhs.false607, %if.then575, %if.end699, %if.then666, %if.then593 - %185 = phi i32 [ %i.0.lcssa937955, %if.then575 ], [ %123, %if.then602 ], [ %123, %lor.lhs.false607 ], [ %134, %if.then688 ], [ %134, %if.end699 ], [ %123, %cmp.exit467 ], [ %i.0.lcssa937955, %if.then666 ], [ %i.0.lcssa937955, %if.then711 ], [ %i.0.lcssa937955, %if.else714 ], [ %i.0.lcssa937955, %if.end706 ], [ %i.0.lcssa937955, %if.then747 ], [ %i.0.lcssa937955, %if.then593 ], [ %i.0.lcssa937955, %if.end706.thread ], [ %123, %if.then7.i462 ], [ %123, %if.end617 ], [ %123, %if.end9.i465 ], [ %i.0.lcssa937955, %if.then861 ], [ %i.0.lcssa937955, %if.else869 ] + %185 = phi i32 [ %i.0.lcssa936954, %if.then575 ], [ %123, %if.then602 ], [ %123, %lor.lhs.false607 ], [ %134, %if.then688 ], [ %134, %if.end699 ], [ %123, %cmp.exit467 ], [ %i.0.lcssa936954, %if.then666 ], [ %i.0.lcssa936954, %if.then711 ], [ %i.0.lcssa936954, %if.else714 ], [ %i.0.lcssa936954, %if.end706 ], [ %i.0.lcssa936954, %if.then747 ], [ %i.0.lcssa936954, %if.then593 ], [ %i.0.lcssa936954, %if.end706.thread ], [ %123, %if.then7.i462 ], [ %123, %if.end617 ], [ %123, %if.end9.i465 ], [ %i.0.lcssa936954, %if.then861 ], [ %i.0.lcssa936954, %if.else869 ] %delta.5 = phi ptr [ %call561, %if.then575 ], [ %call561, %if.then602 ], [ %call561, %lor.lhs.false607 ], [ %delta.6, %if.then688 ], [ %delta.6, %if.end699 ], [ %call627, %cmp.exit467 ], [ %call561, %if.then666 ], [ %call561, %if.then711 ], [ %call561, %if.else714 ], [ %call561, %if.end706 ], [ %call561, %if.then747 ], [ %call561, %if.then593 ], [ %call561, %if.end706.thread ], [ %call627, %if.then7.i462 ], [ %call561, %if.end617 ], [ %call627, %if.end9.i465 ], [ %call561, %if.then861 ], [ %call561, %if.else869 ] - %cmp880 = icmp sgt i32 %185, %nd.0994 + %cmp880 = icmp sgt i32 %185, %nd.0993 br i1 %cmp880, label %if.then882, label %if.end887 if.then882: ; preds = %for.end878 @@ -2039,15 +2039,15 @@ if.then882: ; preds = %for.end878 br i1 %tobool884.not, label %if.end887, label %failed_malloc if.end887: ; preds = %if.then882, %for.end878 - %.pre930 = load double, ptr %rv, align 8 + %.pre929 = load double, ptr %rv, align 8 br i1 %tobool845, label %ret, label %if.then890 if.then890: ; preds = %if.end887 - %mul893 = fmul double %.pre930, 0x3950000000000000 + %mul893 = fmul double %.pre929, 0x3950000000000000 br label %ret ret: ; preds = %if.end887, %if.then890, %if.then221, %if.end138, %if.then251, %if.then239, %if.then230 - %186 = phi double [ %mul233, %if.then230 ], [ %mul246, %if.then239 ], [ %mul893, %if.then890 ], [ %.pre930, %if.end887 ], [ %div, %if.then251 ], [ %34, %if.then221 ], [ 0.000000e+00, %if.end138 ] + %186 = phi double [ %mul233, %if.then230 ], [ %mul246, %if.then239 ], [ %mul893, %if.then890 ], [ %.pre929, %if.end887 ], [ %div, %if.then251 ], [ %34, %if.then221 ], [ 0.000000e+00, %if.end138 ] %bb.0 = phi ptr [ null, %if.then230 ], [ null, %if.then239 ], [ %bb.6, %if.then890 ], [ %bb.6, %if.end887 ], [ null, %if.then251 ], [ null, %if.then221 ], [ null, %if.end138 ] %bd.0 = phi ptr [ null, %if.then230 ], [ null, %if.then239 ], [ %bd.5, %if.then890 ], [ %bd.5, %if.end887 ], [ null, %if.then251 ], [ null, %if.then221 ], [ null, %if.end138 ] %bd0.0 = phi ptr [ null, %if.then230 ], [ null, %if.then239 ], [ %retval.0.i, %if.then890 ], [ %retval.0.i, %if.end887 ], [ null, %if.then251 ], [ null, %if.then221 ], [ null, %if.end138 ] @@ -4534,8 +4534,8 @@ if.end69: ; preds = %if.then62, %select. %32 = xor i32 %i.0, -1 %sub71 = add nsw i32 %bbits.0.ph, %32 %sub76 = sub nsw i32 0, %sub71 - %cmp72.inv = icmp slt i32 %sub71, 0 - %b2.0 = select i1 %cmp72.inv, i32 %sub76, i32 0 + %b2.0 = icmp slt i32 %sub71, 0 + %s2.0 = select i1 %cmp72.inv, i32 %sub76, i32 0 %s2.0 = tail call i32 @llvm.smax.i32(i32 %sub71, i32 0) %cmp78 = icmp sgt i32 %k.1, -1 br i1 %cmp78, label %if.then80, label %if.else82 diff --git a/bench/cpython/optimized/traceback.ll b/bench/cpython/optimized/traceback.ll index aa6e276ecc5..6b1b705b780 100644 --- a/bench/cpython/optimized/traceback.ll +++ b/bench/cpython/optimized/traceback.ll @@ -2960,14 +2960,14 @@ for.body: ; preds = %for.cond.preheader, br i1 %or.cond, label %for.cond, label %if.end42 if.then39: ; preds = %for.cond, %for.cond.preheader - %call40 = tail call i64 @_Py_write_noraise(i32 noundef %fd, ptr noundef %data.092, i64 noundef %.94) #10 + %data.092104 = tail call i64 @_Py_write_noraise(i32 noundef %fd, ptr noundef %data.092, i64 noundef %.94) #10 br i1 %cmp2193, label %if.end80, label %if.then78 -if.end42: ; preds = %for.body, %if.end20.thread, %if.end20 +if.end42:; preds = %for.body, %if.end20.thread, %if.end20 %.86 = phi i64 [ %.82, %if.end20.thread ], [ %., %if.end20 ], [ %.94, %for.body ] %cmp2185 = phi i1 [ %cmp2181, %if.end20.thread ], [ %cmp21, %if.end20 ], [ %cmp2193, %for.body ] %data.083 = phi ptr [ %add.ptr14, %if.end20.thread ], [ %6, %if.end20 ], [ %data.092, %for.body ] - %cmp4476 = icmp sgt i64 %3, 0 + %.86 = icmp sgt i64 %3, 0 br i1 %cmp4476, label %for.body46.lr.ph, label %done for.body46.lr.ph: ; preds = %if.end42 diff --git a/bench/eastl/optimized/EASprintfOrdered.cpp.ll b/bench/eastl/optimized/EASprintfOrdered.cpp.ll index 3a9e7cb1b6f..4452af33e3e 100644 --- a/bench/eastl/optimized/EASprintfOrdered.cpp.ll +++ b/bench/eastl/optimized/EASprintfOrdered.cpp.ll @@ -181,7 +181,7 @@ sw.bb.i: ; preds = %if.then63.i, %if.th %add.ptr73.i = getelementptr inbounds nuw i8, ptr %p.0.i, i64 1 %mpEnd76.i = getelementptr inbounds nuw i8, ptr %arrayidx65.i, i64 8 store ptr %add.ptr73.i, ptr %mpEnd76.i, align 8, !noalias !8 - %cond.i = tail call i32 @llvm.smin.i32(i32 %inc67.i, i32 15) + %cmp80.not.i = tail call i32 @llvm.smin.i32(i32 %inc67.i, i32 15) %idxprom81.i = sext i32 %cond.i to i64 %arrayidx82.i = getelementptr inbounds [16 x i8], ptr %mFormat66.i, i64 0, i64 %idxprom81.i store i8 0, ptr %arrayidx82.i, align 1, !noalias !8 @@ -1387,7 +1387,7 @@ sw.bb.i: ; preds = %if.then63.i, %if.th %add.ptr73.i = getelementptr inbounds nuw i8, ptr %p.0.i, i64 2 %mpEnd76.i = getelementptr inbounds nuw i8, ptr %arrayidx65.i, i64 8 store ptr %add.ptr73.i, ptr %mpEnd76.i, align 8, !noalias !37 - %cond.i = tail call i32 @llvm.smin.i32(i32 %inc67.i, i32 15) + %cmp80.not.i = tail call i32 @llvm.smin.i32(i32 %inc67.i, i32 15) %idxprom81.i = sext i32 %cond.i to i64 %arrayidx82.i = getelementptr inbounds [16 x i16], ptr %mFormat66.i, i64 0, i64 %idxprom81.i store i16 0, ptr %arrayidx82.i, align 2, !noalias !37 @@ -2584,7 +2584,7 @@ sw.bb.i: ; preds = %if.then58.i, %if.th %add.ptr67.i = getelementptr inbounds nuw i8, ptr %p.0.i, i64 4 %mpEnd70.i = getelementptr inbounds nuw i8, ptr %arrayidx60.i, i64 8 store ptr %add.ptr67.i, ptr %mpEnd70.i, align 8, !noalias !65 - %cond.i = tail call i32 @llvm.smin.i32(i32 %inc62.i, i32 15) + %cmp74.not.i = tail call i32 @llvm.smin.i32(i32 %inc62.i, i32 15) %idxprom75.i = sext i32 %cond.i to i64 %arrayidx76.i = getelementptr inbounds [16 x i32], ptr %mFormat61.i, i64 0, i64 %idxprom75.i store i32 0, ptr %arrayidx76.i, align 4, !noalias !65 @@ -3672,16 +3672,16 @@ declare void @llvm.va_start.p0(ptr) #4 declare i32 @llvm.smin.i32(i32, i32) #5 ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) -declare void @llvm.memmove.p0.p0.i64(ptr writeonly captures(none), ptr readonly captures(none), i64, i1 immarg) #6 +declare void @llvm.memmove.p0.p0.i64(ptr writeonly captures(none), ptr readonly captures(none), i64, i1 immarg) #5 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) -declare void @llvm.experimental.noalias.scope.decl(metadata) #7 +declare void @llvm.experimental.noalias.scope.decl(metadata) #6 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #8 +declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #7 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #8 +declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #7 attributes #0 = { mustprogress uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -3689,8 +3689,8 @@ attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argm attributes #3 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #4 = { mustprogress nocallback nofree nosync nounwind willreturn } attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #6 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #7 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) } +attributes #6 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) } +attributes #7 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #8 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } !llvm.module.flags = !{!0, !1, !2, !3, !4} diff --git a/bench/eastl/optimized/eathread.cpp.ll b/bench/eastl/optimized/eathread.cpp.ll index 8c901f2c31d..af655fd48f2 100644 --- a/bench/eastl/optimized/eathread.cpp.ll +++ b/bench/eastl/optimized/eathread.cpp.ll @@ -159,8 +159,8 @@ declare i32 @pthread_getschedparam(i64 noundef, ptr noundef, ptr noundef) local_ define dso_local noundef zeroext i1 @_ZN2EA6Thread17SetThreadPriorityEi(i32 noundef %nPriority) local_unnamed_addr #6 { entry: %param = alloca %struct.sched_param, align 4 - %.nPriority = tail call i32 @llvm.smax.i32(i32 %nPriority, i32 0) - %cmp.inv = icmp sgt i32 %nPriority, 0 + %cmp = tail call i32 @llvm.smax.i32(i32 %nPriority, i32 0) + %.nPriority = icmp sgt i32 %nPriority, 0 %. = select i1 %cmp.inv, i32 2, i32 0 store i32 %.nPriority, ptr %param, align 4 %call = tail call i64 @pthread_self() #18 diff --git a/bench/freetype/optimized/type1cid.c.ll b/bench/freetype/optimized/type1cid.c.ll index f3301cfcd68..88a39d24d64 100644 --- a/bench/freetype/optimized/type1cid.c.ll +++ b/bench/freetype/optimized/type1cid.c.ll @@ -2892,26 +2892,26 @@ cid_get_offset.exit: ; preds = %.lr.ph.i, %36 %94 = load i32, ptr %93, align 4 %95 = getelementptr inbounds nuw i8, ptr %0, i64 2712 store i32 %94, ptr %95, align 8 - %narrow = call i32 @llvm.smax.i32(i32 %94, i32 0) - %spec.select = zext nneg i32 %narrow to i64 - %96 = icmp ult i64 %.089, %spec.select - br i1 %96, label %97, label %98 + %96 = call i32 @llvm.smax.i32(i32 %94, i32 0) + %narrow = zext nneg i32 %96 to i64 + %spec.select = icmp ult i64 %.089, %narrow + br i1 %spec.select, label %97, label %98 -97: ; preds = %75 +98: ; preds = %75 store i32 9, ptr %4, align 4 br label %173 -98: ; preds = %75 +99: ; preds = %75 %99 = icmp sgt i32 %94, -1 br i1 %99, label %100, label %103 -100: ; preds = %98 +100: ; preds = %99 %101 = getelementptr inbounds nuw i8, ptr %18, i64 32 %102 = load ptr, ptr %101, align 8 call void %102(ptr noundef %.0, i64 noundef %.089, i16 noundef zeroext 4330) #13 br label %103 -103: ; preds = %100, %98 +103: ; preds = %100, %99 %104 = getelementptr inbounds nuw i8, ptr %0, i64 134 %105 = load i8, ptr %104, align 2 %.not102 = icmp eq i8 %105, 0 @@ -3018,9 +3018,9 @@ cid_get_offset.exit: ; preds = %.lr.ph.i, %36 store i64 %172, ptr %156, align 8 br label %173 -173: ; preds = %97, %30, %24, %53, %59, %69, %66, %61, %145, %141, %138 - %.191 = phi i8 [ 0, %24 ], [ 0, %30 ], [ 0, %53 ], [ 0, %97 ], [ %.090, %145 ], [ %.090, %141 ], [ %.090, %138 ], [ 0, %59 ], [ 0, %61 ], [ 0, %66 ], [ 0, %69 ] - %.1 = phi ptr [ null, %24 ], [ null, %30 ], [ %46, %53 ], [ %.0, %97 ], [ %.0, %145 ], [ %.0, %141 ], [ %.0, %138 ], [ null, %59 ], [ null, %61 ], [ %67, %66 ], [ %67, %69 ] +173: ; preds = %98, %30, %24, %53, %59, %69, %66, %61, %145, %141, %138 + %.191 = phi i8 [ 0, %24 ], [ 0, %30 ], [ 0, %53 ], [ 0, %98 ], [ %.090, %145 ], [ %.090, %141 ], [ %.090, %138 ], [ 0, %59 ], [ 0, %61 ], [ 0, %66 ], [ 0, %69 ] + %.1 = phi ptr [ null, %24 ], [ null, %30 ], [ %46, %53 ], [ %.0, %98 ], [ %.0, %145 ], [ %.0, %141 ], [ %.0, %138 ], [ null, %59 ], [ null, %61 ], [ %67, %66 ], [ %67, %69 ] call void @ft_mem_free(ptr noundef %16, ptr noundef %.1) #13 %174 = getelementptr inbounds nuw i8, ptr %0, i64 16 %175 = load ptr, ptr %174, align 8 diff --git a/bench/git/optimized/http-backend.ll b/bench/git/optimized/http-backend.ll index aab44702c9e..c453af8fa6d 100644 --- a/bench/git/optimized/http-backend.ll +++ b/bench/git/optimized/http-backend.ll @@ -1385,29 +1385,29 @@ if.then48: ; preds = %if.end45 br i1 %tobool.not.i19, label %entry.split.us.i, label %if.end.i entry.split.us.i: ; preds = %if.then48 - %6 = call i64 @llvm.umin.i64(i64 %1, i64 8192) - %req_remaining_len.0..us44.i = select i1 %cmp, i64 %6, i64 8192 + %req_remaining_len.0..us46.i = call i64 @llvm.umin.i64(i64 %1, i64 8192) + %call10.us47.i = select i1 %cmp, i64 %req_remaining_len.0..us46.i, i64 8192 %call10.us45.i = call i64 @xread(i32 noundef 0, ptr noundef nonnull %in_buf.i, i64 noundef %req_remaining_len.0..us44.i) #18 store ptr %in_buf.i, ptr %next_in.i, align 8 - %cmp20.us48.i = icmp slt i64 %call10.us45.i, 1 - br i1 %cmp20.us48.i, label %if.then22.i, label %if.end23.us.lr.ph.i + %cmp20.us50.i = icmp slt i64 %call10.us45.i, 1 + br i1 %cmp20.us50.i, label %if.then22.i, label %if.end23.us.lr.ph.i if.end23.us.lr.ph.i: ; preds = %entry.split.us.i - br i1 %cmp, label %if.end23.us.us.preheader.i, label %if.end23.us.i + br i1 %cmp, label %if.end23.us.preheader.i, label %if.end23.us.i -if.end23.us.us.preheader.i: ; preds = %if.end23.us.lr.ph.i - %spec.select.us47.i = sub nsw i64 %1, %call10.us45.i +if.end23.us.preheader.i: ; preds = %if.end23.us.lr.ph.i + %spec.select.us49.i = sub nsw i64 %1, %call10.us45.i br label %if.end23.us.us.i -if.end23.us.us.i: ; preds = %while.body.loopexit.us.us.i, %if.end23.us.us.preheader.i - %spec.select.us51.us.i = phi i64 [ %spec.select.us.us.i, %while.body.loopexit.us.us.i ], [ %spec.select.us47.i, %if.end23.us.us.preheader.i ] - %call10.us50.us.i = phi i64 [ %call10.us.us.i, %while.body.loopexit.us.us.i ], [ %call10.us45.i, %if.end23.us.us.preheader.i ] - %cnt.0.us49.us.i = phi i64 [ %8, %while.body.loopexit.us.us.i ], [ 0, %if.end23.us.us.preheader.i ] +if.end23.us.us.i: ; preds = %while.body.loopexit.us.us.i, %if.end23.us.preheader.i + %call10.us52.us.i = phi i64 [ %spec.select.us.us.i, %while.body.loopexit.us.us.i ], [ %spec.select.us47.i, %if.end23.us.preheader.i ] + %cnt.0.us51.us.i = phi i64 [ %call10.us.us.i, %while.body.loopexit.us.us.i ], [ %call10.us45.i, %if.end23.us.preheader.i ] + %cnt.0.us49.us.i = phi i64 [ %8, %while.body.loopexit.us.us.i ], [ 0, %if.end23.us.preheader.i ] store i64 %call10.us50.us.i, ptr %avail_in.i, align 8 br label %while.body28.us.us.i while.body28.us.us.i: ; preds = %while.cond24thread-pre-split.us.us.i, %if.end23.us.us.i - %cnt.121.us.us.i = phi i64 [ %cnt.0.us49.us.i, %if.end23.us.us.i ], [ %8, %while.cond24thread-pre-split.us.us.i ] + %cnt.121.us.us.i = phi i64 [ %cnt.0.us49.us.i, %if.end23.us.us.i ], [ %7, %while.cond24thread-pre-split.us.us.i ] store ptr %out_buf.i, ptr %next_out.i, align 8 store i64 8192, ptr %avail_out.i, align 8 %call30.us.us.i = call i32 @git_inflate(ptr noundef nonnull %stream.i, i32 noundef 0) #18 @@ -1415,8 +1415,8 @@ while.body28.us.us.i: ; preds = %while.cond24thread- br i1 %or.cond2.us.us.i, label %if.then36.i, label %if.end37.us.us.i if.end37.us.us.i: ; preds = %while.body28.us.us.i - %7 = load i64, ptr %total_out.i, align 8 - %sub41.us.us.i = sub i64 %7, %cnt.121.us.us.i + %6 = load i64, ptr %total_out.i, align 8 + %sub41.us.us.i = sub i64 %6, %cnt.121.us.us.i %call.i.us.us.i = call i64 @write_in_full(i32 noundef %5, ptr noundef nonnull %out_buf.i, i64 noundef %sub41.us.us.i) #18 %cmp.i.us.us.i = icmp slt i64 %call.i.us.us.i, 0 br i1 %cmp.i.us.us.i, label %if.then.i.i, label %write_to_child.exit.us.us.i @@ -1426,13 +1426,13 @@ write_to_child.exit.us.us.i: ; preds = %if.end37.us.us.i br i1 %cmp43.us.us.i, label %inflate_request.exit, label %while.cond24thread-pre-split.us.us.i, !llvm.loop !13 while.cond24thread-pre-split.us.us.i: ; preds = %write_to_child.exit.us.us.i - %8 = load i64, ptr %total_out.i, align 8 + %7 = load i64, ptr %total_out.i, align 8 %.pr.us.us.i = load i64, ptr %avail_in.i, align 8 %cmp26.not.us.us.i = icmp eq i64 %.pr.us.us.i, 0 br i1 %cmp26.not.us.us.i, label %while.body.loopexit.us.us.i, label %while.body28.us.us.i while.body.loopexit.us.us.i: ; preds = %while.cond24thread-pre-split.us.us.i - %9 = call i64 @llvm.umin.i64(i64 %spec.select.us51.us.i, i64 8192) + %call10.us.us.i = call i64 @llvm.umin.i64(i64 %call10.us52.us.i, i64 8192) %call10.us.us.i = call i64 @xread(i32 noundef 0, ptr noundef nonnull %in_buf.i, i64 noundef %9) #18 store ptr %in_buf.i, ptr %next_in.i, align 8 %spec.select.us.us.i = sub i64 %spec.select.us51.us.i, %call10.us.us.i @@ -1440,13 +1440,13 @@ while.body.loopexit.us.us.i: ; preds = %while.cond24thread- br i1 %cmp20.us.us.i, label %if.then22.i, label %if.end23.us.us.i if.end23.us.i: ; preds = %if.end23.us.lr.ph.i, %while.body.loopexit.us.i - %call10.us50.i = phi i64 [ %call10.us.i, %while.body.loopexit.us.i ], [ %call10.us45.i, %if.end23.us.lr.ph.i ] - %cnt.0.us49.i = phi i64 [ %11, %while.body.loopexit.us.i ], [ 0, %if.end23.us.lr.ph.i ] + %spec.select.us53.i = phi i64 [ %spec.select.i, %while.body.loopexit.us.i ], [ %call10.us45.i, %if.end23.us.lr.ph.i ] + %call10.us52.i = phi i64 [ %11, %while.body.loopexit.us.i ], [ 0, %if.end23.us.lr.ph.i ] store i64 %call10.us50.i, ptr %avail_in.i, align 8 br label %while.body28.us.i while.body28.us.i: ; preds = %while.cond24thread-pre-split.us.i, %if.end23.us.i - %cnt.121.us.i = phi i64 [ %cnt.0.us49.i, %if.end23.us.i ], [ %11, %while.cond24thread-pre-split.us.i ] + %cnt.121.us.i = phi i64 [ %cnt.0.us49.i, %if.end23.us.i ], [ %9, %while.cond24thread-pre-split.us.i ] store ptr %out_buf.i, ptr %next_out.i, align 8 store i64 8192, ptr %avail_out.i, align 8 %call30.us.i = call i32 @git_inflate(ptr noundef nonnull %stream.i, i32 noundef 0) #18 @@ -1454,8 +1454,8 @@ while.body28.us.i: ; preds = %while.cond24thread- br i1 %or.cond2.us.i, label %if.then36.i, label %if.end37.us.i if.end37.us.i: ; preds = %while.body28.us.i - %10 = load i64, ptr %total_out.i, align 8 - %sub41.us.i = sub i64 %10, %cnt.121.us.i + %8 = load i64, ptr %total_out.i, align 8 + %sub41.us.i = sub i64 %8, %cnt.121.us.i %call.i.us.i = call i64 @write_in_full(i32 noundef %5, ptr noundef nonnull %out_buf.i, i64 noundef %sub41.us.i) #18 %cmp.i.us.i = icmp slt i64 %call.i.us.i, 0 br i1 %cmp.i.us.i, label %if.then.i.i, label %write_to_child.exit.us.i @@ -1465,13 +1465,13 @@ write_to_child.exit.us.i: ; preds = %if.end37.us.i br i1 %cmp43.us.i, label %inflate_request.exit, label %while.cond24thread-pre-split.us.i, !llvm.loop !13 while.cond24thread-pre-split.us.i: ; preds = %write_to_child.exit.us.i - %11 = load i64, ptr %total_out.i, align 8 + %9 = load i64, ptr %total_out.i, align 8 %.pr.us.i = load i64, ptr %avail_in.i, align 8 %cmp26.not.us.i = icmp eq i64 %.pr.us.i, 0 br i1 %cmp26.not.us.i, label %while.body.loopexit.us.i, label %while.body28.us.i while.body.loopexit.us.i: ; preds = %while.cond24thread-pre-split.us.i - %call10.us.i = call i64 @xread(i32 noundef 0, ptr noundef nonnull %in_buf.i, i64 noundef 8192) #18 + %spec.select.i = call i64 @xread(i32 noundef 0, ptr noundef nonnull %in_buf.i, i64 noundef 8192) #18 store ptr %in_buf.i, ptr %next_in.i, align 8 %cmp20.us.i = icmp slt i64 %call10.us.i, 1 br i1 %cmp20.us.i, label %if.then22.i, label %if.end23.us.i @@ -1485,7 +1485,7 @@ if.end.thread.i: ; preds = %while.body.loopexit br label %if.then22.i if.end.i: ; preds = %if.then48, %while.body.loopexit.i - %cnt.0.i66 = phi i64 [ %12, %while.body.loopexit.i ], [ 0, %if.then48 ] + %cnt.0.i66 = phi i64 [ %10, %while.body.loopexit.i ], [ 0, %if.then48 ] %call.i21 = call fastcc i64 @read_request(ptr noundef %full_request.i, i64 noundef %1) %.pre.i22 = load ptr, ptr %full_request.i, align 8 store ptr %.pre.i22, ptr %next_in.i, align 8 @@ -1501,13 +1501,13 @@ if.end23.i: ; preds = %if.end.i br label %while.body28.i while.cond24thread-pre-split.i: ; preds = %write_to_child.exit.i - %12 = load i64, ptr %total_out.i, align 8 + %10 = load i64, ptr %total_out.i, align 8 %.pr.i = load i64, ptr %avail_in.i, align 8 %cmp26.not.i = icmp eq i64 %.pr.i, 0 br i1 %cmp26.not.i, label %while.body.loopexit.i, label %while.body28.i, !llvm.loop !14 while.body28.i: ; preds = %while.cond24thread-pre-split.i, %if.end23.i - %cnt.121.i = phi i64 [ %cnt.0.i66, %if.end23.i ], [ %12, %while.cond24thread-pre-split.i ] + %cnt.121.i = phi i64 [ %cnt.0.i66, %if.end23.i ], [ %10, %while.cond24thread-pre-split.i ] store ptr %out_buf.i, ptr %next_out.i, align 8 store i64 8192, ptr %avail_out.i, align 8 %call30.i = call i32 @git_inflate(ptr noundef nonnull %stream.i, i32 noundef 0) #18 @@ -1520,8 +1520,8 @@ if.then36.i: ; preds = %while.body28.i, %wh unreachable if.end37.i: ; preds = %while.body28.i - %13 = load i64, ptr %total_out.i, align 8 - %sub41.i = sub i64 %13, %cnt.121.i + %11 = load i64, ptr %total_out.i, align 8 + %sub41.i = sub i64 %11, %cnt.121.i %call.i.i = call i64 @write_in_full(i32 noundef %5, ptr noundef nonnull %out_buf.i, i64 noundef %sub41.i) #18 %cmp.i.i = icmp slt i64 %call.i.i, 0 br i1 %cmp.i.i, label %if.then.i.i, label %write_to_child.exit.i @@ -1535,10 +1535,10 @@ write_to_child.exit.i: ; preds = %if.end37.i br i1 %cmp43.i, label %inflate_request.exit, label %while.cond24thread-pre-split.i, !llvm.loop !13 inflate_request.exit: ; preds = %write_to_child.exit.i, %write_to_child.exit.us.i, %write_to_child.exit.us.us.i - %14 = phi ptr [ null, %write_to_child.exit.us.us.i ], [ null, %write_to_child.exit.us.i ], [ %.pre.i22, %write_to_child.exit.i ] + %12 = phi ptr [ null, %write_to_child.exit.us.us.i ], [ null, %write_to_child.exit.us.i ], [ %.pre.i22, %write_to_child.exit.i ] call void @git_inflate_end(ptr noundef nonnull %stream.i) #18 %call47.i = call i32 @close(i32 noundef %5) #18 - call void @free(ptr noundef %14) #18 + call void @free(ptr noundef %12) #18 call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %stream.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %full_request.i) call void @llvm.lifetime.end.p0(i64 8192, ptr nonnull %in_buf.i) @@ -1549,9 +1549,9 @@ if.else: ; preds = %if.end45 br i1 %tobool29, label %if.then51, label %if.else54 if.then51: ; preds = %if.else - %15 = load ptr, ptr %argv, align 8 + %13 = load ptr, ptr %argv, align 8 %in53 = getelementptr inbounds nuw i8, ptr %cld, i64 80 - %16 = load i32, ptr %in53, align 8 + %14 = load i32, ptr %in53, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %buf.i) %call.i23 = call fastcc i64 @read_request(ptr noundef %buf.i, i64 noundef %1) %cmp.i24 = icmp slt i64 %call.i23, 0 @@ -1562,18 +1562,18 @@ if.then.i30: ; preds = %if.then51 unreachable if.end.i25: ; preds = %if.then51 - %17 = load ptr, ptr %buf.i, align 8 - %call.i.i26 = call i64 @write_in_full(i32 noundef %16, ptr noundef %17, i64 noundef %call.i23) #18 + %15 = load ptr, ptr %buf.i, align 8 + %call.i.i26 = call i64 @write_in_full(i32 noundef %14, ptr noundef %15, i64 noundef %call.i23) #18 %cmp.i.i27 = icmp slt i64 %call.i.i26, 0 br i1 %cmp.i.i27, label %if.then.i.i29, label %copy_request.exit if.then.i.i29: ; preds = %if.end.i25 - call void (ptr, ...) @die(ptr noundef nonnull @.str.81, ptr noundef %15) #19 + call void (ptr, ...) @die(ptr noundef nonnull @.str.81, ptr noundef %13) #19 unreachable copy_request.exit: ; preds = %if.end.i25 - %call1.i = call i32 @close(i32 noundef %16) #18 - call void @free(ptr noundef %17) #18 + %call1.i = call i32 @close(i32 noundef %14) #18 + call void @free(ptr noundef %15) #18 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %buf.i) br label %if.end63 @@ -1581,9 +1581,9 @@ if.else54: ; preds = %if.else br i1 %cmp, label %if.then56, label %if.else59 if.then56: ; preds = %if.else54 - %18 = load ptr, ptr %argv, align 8 + %16 = load ptr, ptr %argv, align 8 %in58 = getelementptr inbounds nuw i8, ptr %cld, i64 80 - %19 = load i32, ptr %in58, align 8 + %17 = load i32, ptr %in58, align 8 call void @llvm.lifetime.start.p0(i64 8192, ptr nonnull %buf.i31) %cmp.not7.i = icmp eq i64 %1, 0 br i1 %cmp.not7.i, label %pipe_fixed_length.exit, label %while.body.i32 @@ -1605,16 +1605,16 @@ if.then.i38: ; preds = %while.body.i32 unreachable if.end.i34: ; preds = %while.body.i32 - %call.i.i35 = call i64 @write_in_full(i32 noundef %19, ptr noundef nonnull %buf.i31, i64 noundef %call.i33) #18 + %call.i.i35 = call i64 @write_in_full(i32 noundef %17, ptr noundef nonnull %buf.i31, i64 noundef %call.i33) #18 %cmp.i.i36 = icmp slt i64 %call.i.i35, 0 br i1 %cmp.i.i36, label %if.then.i.i37, label %while.cond.i if.then.i.i37: ; preds = %if.end.i34 - call void (ptr, ...) @die(ptr noundef nonnull @.str.81, ptr noundef %18) #19 + call void (ptr, ...) @die(ptr noundef nonnull @.str.81, ptr noundef %16) #19 unreachable pipe_fixed_length.exit: ; preds = %while.cond.i, %if.then56 - %call4.i = call i32 @close(i32 noundef %19) #18 + %call4.i = call i32 @close(i32 noundef %17) #18 call void @llvm.lifetime.end.p0(i64 8192, ptr nonnull %buf.i31) br label %if.end63 diff --git a/bench/grpc/optimized/socket_utils_posix.cc.ll b/bench/grpc/optimized/socket_utils_posix.cc.ll index cf1a0185f02..2151248115f 100644 --- a/bench/grpc/optimized/socket_utils_posix.cc.ll +++ b/bench/grpc/optimized/socket_utils_posix.cc.ll @@ -177,60 +177,60 @@ invoke.cont83: ; preds = %invoke.cont71 %actual_value.sroa.0.0.extract.trunc.i73 = trunc i64 %call84 to i32 %15 = and i64 %call84, 4294967296 %tobool.i.i.not4.i74 = icmp eq i64 %15, 0 - %16 = tail call i32 @llvm.smax.i32(i32 %actual_value.sroa.0.0.extract.trunc.i73, i32 0) - %retval.0.i79 = select i1 %tobool.i.i.not4.i74, i32 0, i32 %16 + %cmp.i75 = tail call i32 @llvm.smax.i32(i32 %actual_value.sroa.0.0.extract.trunc.i73, i32 0) + %or.cond.i76 = select i1 %tobool.i.i.not4.i74, i32 0, i32 %cmp.i75 store i32 %retval.0.i79, ptr %keep_alive_time_ms.i, align 4 %vtable93 = load ptr, ptr %config, align 8 %vfn94 = getelementptr inbounds nuw i8, ptr %vtable93, i64 16 - %17 = load ptr, ptr %vfn94, align 8 + %16 = load ptr, ptr %vfn94, align 8 %call96 = invoke i64 %17(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 25, ptr nonnull @.str.8) to label %invoke.cont95 unwind label %lpad invoke.cont95: ; preds = %invoke.cont83 %actual_value.sroa.0.0.extract.trunc.i82 = trunc i64 %call96 to i32 - %18 = and i64 %call96, 4294967296 - %tobool.i.i.not4.i83 = icmp eq i64 %18, 0 - %19 = tail call i32 @llvm.smax.i32(i32 %actual_value.sroa.0.0.extract.trunc.i82, i32 0) - %retval.0.i88 = select i1 %tobool.i.i.not4.i83, i32 0, i32 %19 + %17 = and i64 %call96, 4294967296 + %tobool.i.i.not4.i83 = icmp eq i64 %17, 0 + %cmp.i84 = tail call i32 @llvm.smax.i32(i32 %actual_value.sroa.0.0.extract.trunc.i82, i32 0) + %or.cond.i85 = select i1 %tobool.i.i.not4.i83, i32 0, i32 %cmp.i84 store i32 %retval.0.i88, ptr %keep_alive_timeout_ms.i, align 8 %vtable105 = load ptr, ptr %config, align 8 %vfn106 = getelementptr inbounds nuw i8, ptr %vtable105, i64 16 - %20 = load ptr, ptr %vfn106, align 8 + %18 = load ptr, ptr %vfn106, align 8 %call108 = invoke i64 %20(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 26, ptr nonnull @.str.9) to label %invoke.cont107 unwind label %lpad invoke.cont107: ; preds = %invoke.cont95 %actual_value.sroa.0.0.extract.trunc.i91 = trunc i64 %call108 to i32 - %21 = and i64 %call108, 4294967296 - %tobool.i.i.not4.i92 = icmp ne i64 %21, 0 - %cmp115126 = icmp sgt i32 %actual_value.sroa.0.0.extract.trunc.i91, 0 - %cmp115 = and i1 %tobool.i.i.not4.i92, %cmp115126 - %frombool116 = zext i1 %cmp115 to i8 + %19 = and i64 %call108, 4294967296 + %tobool.i.i.not4.i92 = icmp ne i64 %19, 0 + %cmp.i93 = icmp sgt i32 %actual_value.sroa.0.0.extract.trunc.i91, 0 + %or.cond.i94.not = and i1 %tobool.i.i.not4.i92, %cmp.i93 + %frombool116 = zext i1 %or.cond.i94.not to i8 store i8 %frombool116, ptr %expand_wildcard_addrs.i, align 8 %vtable119 = load ptr, ptr %config, align 8 %vfn120 = getelementptr inbounds nuw i8, ptr %vtable119, i64 16 - %22 = load ptr, ptr %vfn120, align 8 + %20 = load ptr, ptr %vfn120, align 8 %call122 = invoke i64 %22(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 17, ptr nonnull @.str.10) to label %invoke.cont121 unwind label %lpad invoke.cont121: ; preds = %invoke.cont107 %actual_value.sroa.0.0.extract.trunc.i100 = trunc i64 %call122 to i32 - %23 = and i64 %call122, 4294967296 - %tobool.i.i.not4.i101 = icmp ne i64 %23, 0 - %cmp129127 = icmp sgt i32 %actual_value.sroa.0.0.extract.trunc.i100, 0 - %cmp129 = and i1 %tobool.i.i.not4.i101, %cmp129127 - %frombool130 = zext i1 %cmp129 to i8 + %21 = and i64 %call122, 4294967296 + %tobool.i.i.not4.i101 = icmp ne i64 %21, 0 + %cmp.i102 = icmp sgt i32 %actual_value.sroa.0.0.extract.trunc.i100, 0 + %or.cond.i103.not = and i1 %tobool.i.i.not4.i101, %cmp.i102 + %frombool130 = zext i1 %or.cond.i103.not to i8 store i8 %frombool130, ptr %allow_reuse_port.i, align 1 %vtable133 = load ptr, ptr %config, align 8 %vfn134 = getelementptr inbounds nuw i8, ptr %vtable133, i64 16 - %24 = load ptr, ptr %vfn134, align 8 + %22 = load ptr, ptr %vfn134, align 8 %call136 = invoke i64 %24(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 9, ptr nonnull @.str.11) to label %invoke.cont135 unwind label %lpad invoke.cont135: ; preds = %invoke.cont121 %actual_value.sroa.0.0.extract.trunc.i109 = trunc i64 %call136 to i32 - %25 = and i64 %call136, 8589934528 - %or.cond3.i114.not = icmp eq i64 %25, 4294967296 + %23 = and i64 %call136, 8589934528 + %or.cond3.i114.not = icmp eq i64 %23, 4294967296 %retval.0.i115 = select i1 %or.cond3.i114.not, i32 %actual_value.sroa.0.0.extract.trunc.i109, i32 -1 store i32 %retval.0.i115, ptr %dscp.i, align 4 %cmp145 = icmp sgt i32 %retval.0.i25, %retval.0.i34 @@ -241,20 +241,20 @@ if.then: ; preds = %invoke.cont135 br label %if.end lpad: ; preds = %if.then170, %if.end163, %if.end, %invoke.cont121, %invoke.cont107, %invoke.cont95, %invoke.cont83, %invoke.cont71, %invoke.cont59, %invoke.cont47, %invoke.cont35, %invoke.cont23, %invoke.cont11, %invoke.cont, %entry - %26 = landingpad { ptr, i32 } + %24 = landingpad { ptr, i32 } cleanup tail call void @_ZN9grpc_core15PosixTcpOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %agg.result) #11 - resume { ptr, i32 } %26 + resume { ptr, i32 } %24 if.end: ; preds = %if.then, %invoke.cont135 - %27 = phi i32 [ %retval.0.i34, %if.then ], [ %retval.0.i25, %invoke.cont135 ] - %cmp.i116 = icmp slt i32 %retval.0.i, %27 + %25 = phi i32 [ %retval.0.i34, %if.then ], [ %retval.0.i25, %invoke.cont135 ] + %cmp.i116 = icmp slt i32 %retval.0.i, %25 %max.val.i = tail call i32 @llvm.smin.i32(i32 %retval.0.i34, i32 %retval.0.i) - %retval.0.i117 = select i1 %cmp.i116, i32 %27, i32 %max.val.i + %retval.0.i117 = select i1 %cmp.i116, i32 %25, i32 %max.val.i store i32 %retval.0.i117, ptr %agg.result, align 8 %vtable155 = load ptr, ptr %config, align 8 %vfn156 = getelementptr inbounds nuw i8, ptr %vtable155, i64 32 - %28 = load ptr, ptr %vfn156, align 8 + %26 = load ptr, ptr %vfn156, align 8 %call158 = invoke noundef ptr %28(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 19, ptr nonnull @.str.12) to label %invoke.cont157 unwind label %lpad @@ -264,14 +264,14 @@ invoke.cont157: ; preds = %if.end invoke.cont161: ; preds = %invoke.cont157 %refs_.i.i = getelementptr inbounds nuw i8, ptr %call158, i64 8 - %29 = atomicrmw add ptr %refs_.i.i, i64 1 monotonic, align 8, !noalias !4 + %27 = atomicrmw add ptr %refs_.i.i, i64 1 monotonic, align 8, !noalias !4 store ptr %call158, ptr %resource_quota.i, align 8 br label %if.end163 if.end163: ; preds = %invoke.cont161, %invoke.cont157 %vtable165 = load ptr, ptr %config, align 8 %vfn166 = getelementptr inbounds nuw i8, ptr %vtable165, i64 32 - %30 = load ptr, ptr %vfn166, align 8 + %28 = load ptr, ptr %vfn166, align 8 %call168 = invoke noundef ptr %30(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 19, ptr nonnull @.str.13) to label %invoke.cont167 unwind label %lpad diff --git a/bench/grpc/optimized/tcp_socket_utils.cc.ll b/bench/grpc/optimized/tcp_socket_utils.cc.ll index 896d2675f8e..06bf137aaff 100644 --- a/bench/grpc/optimized/tcp_socket_utils.cc.ll +++ b/bench/grpc/optimized/tcp_socket_utils.cc.ll @@ -263,57 +263,57 @@ invoke.cont83: ; preds = %invoke.cont71 %actual_value.sroa.0.0.extract.trunc.i77 = trunc i64 %call84 to i32 %15 = and i64 %call84, 4294967296 %tobool.i.i.not4.i78 = icmp eq i64 %15, 0 - %16 = tail call i32 @llvm.smax.i32(i32 %actual_value.sroa.0.0.extract.trunc.i77, i32 0) - %retval.0.i83 = select i1 %tobool.i.i.not4.i78, i32 0, i32 %16 + %cmp.i79 = tail call i32 @llvm.smax.i32(i32 %actual_value.sroa.0.0.extract.trunc.i77, i32 0) + %or.cond.i80 = select i1 %tobool.i.i.not4.i78, i32 0, i32 %cmp.i79 store i32 %retval.0.i83, ptr %keep_alive_time_ms.i, align 4 %vtable93 = load ptr, ptr %config, align 8 %vfn94 = getelementptr inbounds nuw i8, ptr %vtable93, i64 16 - %17 = load ptr, ptr %vfn94, align 8 + %16 = load ptr, ptr %vfn94, align 8 %call96 = invoke i64 %17(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 25, ptr nonnull @.str.8) to label %invoke.cont95 unwind label %lpad invoke.cont95: ; preds = %invoke.cont83 %actual_value.sroa.0.0.extract.trunc.i86 = trunc i64 %call96 to i32 - %18 = and i64 %call96, 4294967296 - %tobool.i.i.not4.i87 = icmp eq i64 %18, 0 - %19 = tail call i32 @llvm.smax.i32(i32 %actual_value.sroa.0.0.extract.trunc.i86, i32 0) - %retval.0.i92 = select i1 %tobool.i.i.not4.i87, i32 0, i32 %19 + %17 = and i64 %call96, 4294967296 + %tobool.i.i.not4.i87 = icmp eq i64 %17, 0 + %cmp.i88 = tail call i32 @llvm.smax.i32(i32 %actual_value.sroa.0.0.extract.trunc.i86, i32 0) + %or.cond.i89 = select i1 %tobool.i.i.not4.i87, i32 0, i32 %cmp.i88 %keep_alive_timeout_ms = getelementptr inbounds nuw i8, ptr %agg.result, i64 32 store i32 %retval.0.i92, ptr %keep_alive_timeout_ms, align 8 %vtable105 = load ptr, ptr %config, align 8 %vfn106 = getelementptr inbounds nuw i8, ptr %vtable105, i64 16 - %20 = load ptr, ptr %vfn106, align 8 + %18 = load ptr, ptr %vfn106, align 8 %call108 = invoke i64 %20(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 26, ptr nonnull @.str.9) to label %invoke.cont107 unwind label %lpad invoke.cont107: ; preds = %invoke.cont95 %actual_value.sroa.0.0.extract.trunc.i95 = trunc i64 %call108 to i32 - %21 = and i64 %call108, 4294967296 - %tobool.i.i.not4.i96 = icmp ne i64 %21, 0 - %cmp115135 = icmp sgt i32 %actual_value.sroa.0.0.extract.trunc.i95, 0 - %cmp115 = and i1 %tobool.i.i.not4.i96, %cmp115135 + %19 = and i64 %call108, 4294967296 + %tobool.i.i.not4.i96 = icmp ne i64 %19, 0 + %cmp.i97 = icmp sgt i32 %actual_value.sroa.0.0.extract.trunc.i95, 0 + %or.cond.i98.not = and i1 %tobool.i.i.not4.i96, %cmp.i97 %expand_wildcard_addrs = getelementptr inbounds nuw i8, ptr %agg.result, i64 36 - %frombool116 = zext i1 %cmp115 to i8 + %frombool116 = zext i1 %or.cond.i98.not to i8 store i8 %frombool116, ptr %expand_wildcard_addrs, align 4 %vtable119 = load ptr, ptr %config, align 8 %vfn120 = getelementptr inbounds nuw i8, ptr %vtable119, i64 16 - %22 = load ptr, ptr %vfn120, align 8 + %20 = load ptr, ptr %vfn120, align 8 %call122 = invoke i64 %22(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 9, ptr nonnull @.str.10) to label %invoke.cont121 unwind label %lpad invoke.cont121: ; preds = %invoke.cont107 %actual_value.sroa.0.0.extract.trunc.i104 = trunc i64 %call122 to i32 - %23 = and i64 %call122, 8589934528 - %or.cond3.i109.not = icmp eq i64 %23, 4294967296 + %21 = and i64 %call122, 8589934528 + %or.cond3.i109.not = icmp eq i64 %21, 4294967296 %retval.0.i110 = select i1 %or.cond3.i109.not, i32 %actual_value.sroa.0.0.extract.trunc.i104, i32 -1 store i32 %retval.0.i110, ptr %dscp.i, align 8 - %24 = load atomic i8, ptr @_ZGVZN17grpc_event_engine12experimental18PosixSocketWrapper26IsSocketReusePortSupportedEvE19kSupportSoReusePort acquire, align 8 - %guard.uninitialized.i = icmp eq i8 %24, 0 + %22 = load atomic i8, ptr @_ZGVZN17grpc_event_engine12experimental18PosixSocketWrapper26IsSocketReusePortSupportedEvE19kSupportSoReusePort acquire, align 8 + %guard.uninitialized.i = icmp eq i8 %22, 0 br i1 %guard.uninitialized.i, label %init.check.i, label %invoke.cont129, !prof !4 init.check.i: ; preds = %invoke.cont121 - %25 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN17grpc_event_engine12experimental18PosixSocketWrapper26IsSocketReusePortSupportedEvE19kSupportSoReusePort) #19 - %tobool.not.i = icmp eq i32 %25, 0 + %23 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN17grpc_event_engine12experimental18PosixSocketWrapper26IsSocketReusePortSupportedEvE19kSupportSoReusePort) #19 + %tobool.not.i = icmp eq i32 %23, 0 br i1 %tobool.not.i, label %invoke.cont129, label %init.i init.i: ; preds = %init.check.i @@ -327,74 +327,74 @@ invoke.cont.i: ; preds = %init.i br label %invoke.cont129 lpad.i: ; preds = %init.i - %26 = landingpad { ptr, i32 } + %24 = landingpad { ptr, i32 } cleanup tail call void @__cxa_guard_abort(ptr nonnull @_ZGVZN17grpc_event_engine12experimental18PosixSocketWrapper26IsSocketReusePortSupportedEvE19kSupportSoReusePort) #19 br label %lpad.body invoke.cont129: ; preds = %invoke.cont.i, %init.check.i, %invoke.cont121 - %27 = load i8, ptr @_ZZN17grpc_event_engine12experimental18PosixSocketWrapper26IsSocketReusePortSupportedEvE19kSupportSoReusePort, align 1 + %25 = load i8, ptr @_ZZN17grpc_event_engine12experimental18PosixSocketWrapper26IsSocketReusePortSupportedEvE19kSupportSoReusePort, align 1 %allow_reuse_port = getelementptr inbounds nuw i8, ptr %agg.result, i64 37 - %frombool131 = and i8 %27, 1 + %frombool131 = and i8 %25, 1 store i8 %frombool131, ptr %allow_reuse_port, align 1 %vtable133 = load ptr, ptr %config, align 8 %vfn134 = getelementptr inbounds nuw i8, ptr %vtable133, i64 16 - %28 = load ptr, ptr %vfn134, align 8 + %26 = load ptr, ptr %vfn134, align 8 %call136 = invoke i64 %28(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 17, ptr nonnull @.str.11) to label %invoke.cont135 unwind label %lpad invoke.cont135: ; preds = %invoke.cont129 - %29 = and i64 %call136, 4294967296 - %tobool.i.i.not = icmp eq i64 %29, 0 + %27 = and i64 %call136, 4294967296 + %tobool.i.i.not = icmp eq i64 %27, 0 br i1 %tobool.i.i.not, label %if.end, label %if.then if.then: ; preds = %invoke.cont135 %vtable142 = load ptr, ptr %config, align 8 %vfn143 = getelementptr inbounds nuw i8, ptr %vtable142, i64 16 - %30 = load ptr, ptr %vfn143, align 8 + %28 = load ptr, ptr %vfn143, align 8 %call145 = invoke i64 %30(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 17, ptr nonnull @.str.11) to label %invoke.cont144 unwind label %lpad invoke.cont144: ; preds = %if.then %actual_value.sroa.0.0.extract.trunc.i115 = trunc i64 %call145 to i32 - %31 = and i64 %call145, 4294967296 - %tobool.i.i.not4.i116 = icmp ne i64 %31, 0 - %cmp152136 = icmp sgt i32 %actual_value.sroa.0.0.extract.trunc.i115, 0 - %cmp152 = and i1 %tobool.i.i.not4.i116, %cmp152136 - %frombool154 = zext i1 %cmp152 to i8 + %29 = and i64 %call145, 4294967296 + %tobool.i.i.not4.i116 = icmp ne i64 %29, 0 + %cmp.i117 = icmp sgt i32 %actual_value.sroa.0.0.extract.trunc.i115, 0 + %or.cond.i118.not = and i1 %tobool.i.i.not4.i116, %cmp.i117 + %frombool154 = zext i1 %or.cond.i118.not to i8 store i8 %frombool154, ptr %allow_reuse_port, align 1 br label %if.end lpad: ; preds = %if.end187, %if.then184, %if.end177, %if.end161, %if.then, %invoke.cont129, %invoke.cont107, %invoke.cont95, %invoke.cont83, %invoke.cont71, %invoke.cont59, %invoke.cont47, %invoke.cont35, %invoke.cont23, %invoke.cont11, %invoke.cont, %entry - %32 = landingpad { ptr, i32 } + %30 = landingpad { ptr, i32 } cleanup br label %lpad.body lpad.body: ; preds = %lpad.i, %lpad - %eh.lpad-body = phi { ptr, i32 } [ %32, %lpad ], [ %26, %lpad.i ] + %eh.lpad-body = phi { ptr, i32 } [ %30, %lpad ], [ %24, %lpad.i ] tail call void @_ZN17grpc_event_engine12experimental15PosixTcpOptionsD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %agg.result) #19 resume { ptr, i32 } %eh.lpad-body if.end: ; preds = %invoke.cont144, %invoke.cont135 - %33 = load i32, ptr %tcp_min_read_chunk_size.i, align 4 - %34 = load i32, ptr %tcp_max_read_chunk_size.i, align 8 - %cmp157 = icmp sgt i32 %33, %34 + %31 = load i32, ptr %tcp_min_read_chunk_size.i, align 4 + %32 = load i32, ptr %tcp_max_read_chunk_size.i, align 8 + %cmp157 = icmp sgt i32 %31, %32 br i1 %cmp157, label %if.then158, label %if.end161 if.then158: ; preds = %if.end - store i32 %34, ptr %tcp_min_read_chunk_size.i, align 4 + store i32 %32, ptr %tcp_min_read_chunk_size.i, align 4 br label %if.end161 if.end161: ; preds = %if.then158, %if.end - %35 = phi i32 [ %34, %if.then158 ], [ %33, %if.end ] - %36 = load i32, ptr %agg.result, align 8 - %cmp.i122 = icmp slt i32 %36, %35 - %max.val.i = tail call i32 @llvm.smin.i32(i32 %34, i32 %36) - %retval.0.i123 = select i1 %cmp.i122, i32 %35, i32 %max.val.i + %33 = phi i32 [ %32, %if.then158 ], [ %31, %if.end ] + %34 = load i32, ptr %agg.result, align 8 + %cmp.i122 = icmp slt i32 %34, %33 + %max.val.i = tail call i32 @llvm.smin.i32(i32 %32, i32 %34) + %retval.0.i123 = select i1 %cmp.i122, i32 %33, i32 %max.val.i store i32 %retval.0.i123, ptr %agg.result, align 8 %vtable169 = load ptr, ptr %config, align 8 %vfn170 = getelementptr inbounds nuw i8, ptr %vtable169, i64 32 - %37 = load ptr, ptr %vfn170, align 8 + %35 = load ptr, ptr %vfn170, align 8 %call172 = invoke noundef ptr %37(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 19, ptr nonnull @.str.12) to label %invoke.cont171 unwind label %lpad @@ -404,29 +404,29 @@ invoke.cont171: ; preds = %if.end161 invoke.cont175: ; preds = %invoke.cont171 %refs_.i.i = getelementptr inbounds nuw i8, ptr %call172, i64 8 - %38 = atomicrmw add ptr %refs_.i.i, i64 1 monotonic, align 8, !noalias !5 - %39 = load ptr, ptr %resource_quota.i, align 8 + %36 = atomicrmw add ptr %refs_.i.i, i64 1 monotonic, align 8, !noalias !5 + %37 = load ptr, ptr %resource_quota.i, align 8 store ptr %call172, ptr %resource_quota.i, align 8 - %cmp.not.i.i = icmp eq ptr %39, null + %cmp.not.i.i = icmp eq ptr %37, null br i1 %cmp.not.i.i, label %if.end177, label %if.then.i.i if.then.i.i: ; preds = %invoke.cont175 - %refs_.i.i.i = getelementptr inbounds nuw i8, ptr %39, i64 8 - %40 = atomicrmw sub ptr %refs_.i.i.i, i64 1 acq_rel, align 8 - %cmp.i.i.i.i = icmp eq i64 %40, 1 + %refs_.i.i.i = getelementptr inbounds nuw i8, ptr %37, i64 8 + %38 = atomicrmw sub ptr %refs_.i.i.i, i64 1 acq_rel, align 8 + %cmp.i.i.i.i = icmp eq i64 %38, 1 br i1 %cmp.i.i.i.i, label %if.then.i.i.i, label %if.end177 if.then.i.i.i: ; preds = %if.then.i.i - %vtable.i.i.i.i = load ptr, ptr %39, align 8 + %vtable.i.i.i.i = load ptr, ptr %37, align 8 %vfn.i.i.i.i = getelementptr inbounds nuw i8, ptr %vtable.i.i.i.i, i64 8 - %41 = load ptr, ptr %vfn.i.i.i.i, align 8 - tail call void %41(ptr noundef nonnull align 8 dereferenceable(40) %39) #19 + %39 = load ptr, ptr %vfn.i.i.i.i, align 8 + tail call void %41(ptr noundef nonnull align 8 dereferenceable(40) %37) #19 br label %if.end177 if.end177: ; preds = %invoke.cont175, %if.then.i.i, %if.then.i.i.i, %invoke.cont171 %vtable179 = load ptr, ptr %config, align 8 %vfn180 = getelementptr inbounds nuw i8, ptr %vtable179, i64 32 - %42 = load ptr, ptr %vfn180, align 8 + %40 = load ptr, ptr %vfn180, align 8 %call182 = invoke noundef ptr %42(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 19, ptr nonnull @.str.13) to label %invoke.cont181 unwind label %lpad @@ -446,7 +446,7 @@ invoke.cont185: ; preds = %if.then184 if.end187: ; preds = %invoke.cont185, %invoke.cont181 %vtable189 = load ptr, ptr %config, align 8 %vfn190 = getelementptr inbounds nuw i8, ptr %vtable189, i64 32 - %43 = load ptr, ptr %vfn190, align 8 + %41 = load ptr, ptr %vfn190, align 8 %call192 = invoke noundef ptr %43(ptr noundef nonnull align 8 dereferenceable(8) %config, i64 46, ptr nonnull @.str.14) to label %invoke.cont191 unwind label %lpad diff --git a/bench/hermes/optimized/dtoa.c.ll b/bench/hermes/optimized/dtoa.c.ll index 5b47d821a2b..1710516d68e 100644 --- a/bench/hermes/optimized/dtoa.c.ll +++ b/bench/hermes/optimized/dtoa.c.ll @@ -151,42 +151,42 @@ while.cond.i: ; preds = %break2.i, %while.co if.end15.i: ; preds = %while.cond.i, %break2.i %4 = phi i8 [ %2, %break2.i ], [ %3, %while.cond.i ] %s.2.i = phi ptr [ %s.1.i, %break2.i ], [ %incdec.ptr8.i, %while.cond.i ] - %s.2960.i = ptrtoint ptr %s.2.i to i64 - %conv17801.i = sext i8 %4 to i32 + %s.2959.i = ptrtoint ptr %s.2.i to i64 + %conv17800.i = sext i8 %4 to i32 %5 = add i8 %4, -48 %6 = icmp ult i8 %5, 10 br i1 %6, label %for.body.i, label %for.end47.thread.i for.body.i: ; preds = %if.end15.i, %for.inc33.i - %conv17806.i = phi i32 [ %conv17.i, %for.inc33.i ], [ %conv17801.i, %if.end15.i ] - %z.0805.i = phi i32 [ %z.1.i, %for.inc33.i ], [ 0, %if.end15.i ] - %y.0804.i = phi i32 [ %y.1.i, %for.inc33.i ], [ 0, %if.end15.i ] - %s.5803.i = phi ptr [ %incdec.ptr34.i, %for.inc33.i ], [ %s.2.i, %if.end15.i ] - %nd.0802.i = phi i32 [ %inc.i, %for.inc33.i ], [ 0, %if.end15.i ] - %cmp22.i = icmp samesign ult i32 %nd.0802.i, 9 + %conv17805.i = phi i32 [ %conv17.i, %for.inc33.i ], [ %conv17800.i, %if.end15.i ] + %z.0804.i = phi i32 [ %z.1.i, %for.inc33.i ], [ 0, %if.end15.i ] + %y.0803.i = phi i32 [ %y.1.i, %for.inc33.i ], [ 0, %if.end15.i ] + %s.5802.i = phi ptr [ %incdec.ptr34.i, %for.inc33.i ], [ %s.2.i, %if.end15.i ] + %nd.0801.i = phi i32 [ %inc.i, %for.inc33.i ], [ 0, %if.end15.i ] + %cmp22.i = icmp samesign ult i32 %nd.0801.i, 9 br i1 %cmp22.i, label %if.then24.i, label %if.else.i if.then24.i: ; preds = %for.body.i - %mul.i = mul i32 %y.0804.i, 10 - %add.i = add nsw i32 %conv17806.i, -48 + %mul.i = mul i32 %y.0803.i, 10 + %add.i = add nsw i32 %conv17805.i, -48 %sub.i = add i32 %add.i, %mul.i br label %for.inc33.i if.else.i: ; preds = %for.body.i - %cmp25.i = icmp samesign ult i32 %nd.0802.i, 17 + %cmp25.i = icmp samesign ult i32 %nd.0801.i, 17 br i1 %cmp25.i, label %if.then27.i, label %for.inc33.i if.then27.i: ; preds = %if.else.i - %mul28.i = mul i32 %z.0805.i, 10 - %add29.i = add nsw i32 %conv17806.i, -48 + %mul28.i = mul i32 %z.0804.i, 10 + %add29.i = add nsw i32 %conv17805.i, -48 %sub30.i = add i32 %add29.i, %mul28.i br label %for.inc33.i for.inc33.i: ; preds = %if.then27.i, %if.else.i, %if.then24.i - %y.1.i = phi i32 [ %sub.i, %if.then24.i ], [ %y.0804.i, %if.then27.i ], [ %y.0804.i, %if.else.i ] - %z.1.i = phi i32 [ %z.0805.i, %if.then24.i ], [ %sub30.i, %if.then27.i ], [ %z.0805.i, %if.else.i ] - %inc.i = add nuw nsw i32 %nd.0802.i, 1 - %incdec.ptr34.i = getelementptr inbounds nuw i8, ptr %s.5803.i, i64 1 + %y.1.i = phi i32 [ %sub.i, %if.then24.i ], [ %y.0803.i, %if.then27.i ], [ %y.0803.i, %if.else.i ] + %z.1.i = phi i32 [ %z.0804.i, %if.then24.i ], [ %sub30.i, %if.then27.i ], [ %z.0804.i, %if.else.i ] + %inc.i = add nuw nsw i32 %nd.0801.i, 1 + %incdec.ptr34.i = getelementptr inbounds nuw i8, ptr %s.5802.i, i64 1 %7 = load i8, ptr %incdec.ptr34.i, align 1 %conv17.i = sext i8 %7 to i32 %8 = add i8 %7, -48 @@ -194,59 +194,59 @@ for.inc33.i: ; preds = %if.then27.i, %if.el br i1 %9, label %for.body.i, label %for.end.i, !llvm.loop !7 for.end.i: ; preds = %for.inc33.i - %.pre979.i = ptrtoint ptr %incdec.ptr34.i to i64 - %sub.ptr.sub.i = sub i64 %.pre979.i, %s.2960.i + %.pre978.i = ptrtoint ptr %incdec.ptr34.i to i64 + %sub.ptr.sub.i = sub i64 %.pre978.i, %s.2959.i %conv35.i = trunc i64 %sub.ptr.sub.i to i32 - %cmp37812.i = icmp ugt ptr %incdec.ptr34.i, %s.2.i - br i1 %cmp37812.i, label %land.rhs39.preheader.i, label %for.end47.i + %cmp37811.i = icmp ugt ptr %incdec.ptr34.i, %s.2.i + br i1 %cmp37811.i, label %land.rhs39.preheader.i, label %for.end47.i land.rhs39.preheader.i: ; preds = %for.end.i - %10 = trunc i64 %.pre979.i to i32 - %11 = trunc i64 %s.2960.i to i32 + %10 = trunc i64 %.pre978.i to i32 + %11 = trunc i64 %s.2959.i to i32 %12 = sub i32 %10, %11 br label %land.rhs39.i land.rhs39.i: ; preds = %for.body45.i, %land.rhs39.preheader.i - %s1.0814.i = phi ptr [ %incdec.ptr40.i, %for.body45.i ], [ %incdec.ptr34.i, %land.rhs39.preheader.i ] - %nz1.0813.i = phi i32 [ %inc46.i, %for.body45.i ], [ 0, %land.rhs39.preheader.i ] - %incdec.ptr40.i = getelementptr inbounds i8, ptr %s1.0814.i, i64 -1 + %s1.0813.i = phi ptr [ %incdec.ptr40.i, %for.body45.i ], [ %incdec.ptr34.i, %land.rhs39.preheader.i ] + %nz1.0812.i = phi i32 [ %inc46.i, %for.body45.i ], [ 0, %land.rhs39.preheader.i ] + %incdec.ptr40.i = getelementptr inbounds i8, ptr %s1.0813.i, i64 -1 %13 = load i8, ptr %incdec.ptr40.i, align 1 %cmp42.i = icmp eq i8 %13, 48 br i1 %cmp42.i, label %for.body45.i, label %for.end47.i for.body45.i: ; preds = %land.rhs39.i - %inc46.i = add nuw nsw i32 %nz1.0813.i, 1 + %inc46.i = add nuw nsw i32 %nz1.0812.i, 1 %cmp37.i = icmp ugt ptr %incdec.ptr40.i, %s.2.i br i1 %cmp37.i, label %land.rhs39.i, label %for.end47.i, !llvm.loop !8 for.end47.i: ; preds = %for.body45.i, %land.rhs39.i, %for.end.i - %nz1.0.lcssa.i = phi i32 [ 0, %for.end.i ], [ %nz1.0813.i, %land.rhs39.i ], [ %12, %for.body45.i ] + %nz1.0.lcssa.i = phi i32 [ 0, %for.end.i ], [ %nz1.0812.i, %land.rhs39.i ], [ %12, %for.body45.i ] %cmp48.i = icmp eq i8 %7, 46 br i1 %cmp48.i, label %if.then50.i, label %dig_done.i for.end47.thread.i: ; preds = %if.end15.i - %cmp481007.i = icmp eq i8 %4, 46 - br i1 %cmp481007.i, label %for.cond64.preheader.i, label %dig_done.i + %cmp481006.i = icmp eq i8 %4, 46 + br i1 %cmp481006.i, label %for.cond64.preheader.i, label %dig_done.i if.then50.i: ; preds = %for.end47.i - %incdec.ptr51.i = getelementptr inbounds nuw i8, ptr %s.5803.i, i64 2 + %incdec.ptr51.i = getelementptr inbounds nuw i8, ptr %s.5802.i, i64 2 %sub.ptr.lhs.cast53.i = ptrtoint ptr %incdec.ptr51.i to i64 - %sub.ptr.sub55.i = sub i64 %sub.ptr.lhs.cast53.i, %s.2960.i + %sub.ptr.sub55.i = sub i64 %sub.ptr.lhs.cast53.i, %s.2959.i %conv56.i = trunc i64 %sub.ptr.sub55.i to i32 %sub60.i = sub nsw i32 %conv56.i, %conv35.i br label %for.cond90.i for.cond64.preheader.i: ; preds = %for.end47.thread.i - %incdec.ptr511021.i = getelementptr inbounds nuw i8, ptr %s.2.i, i64 1 - %14 = load i8, ptr %incdec.ptr511021.i, align 1 - %cmp65817.i = icmp eq i8 %14, 48 - br i1 %cmp65817.i, label %for.body67.i, label %for.end72.i + %incdec.ptr511020.i = getelementptr inbounds nuw i8, ptr %s.2.i, i64 1 + %14 = load i8, ptr %incdec.ptr511020.i, align 1 + %cmp65816.i = icmp eq i8 %14, 48 + br i1 %cmp65816.i, label %for.body67.i, label %for.end72.i for.body67.i: ; preds = %for.cond64.preheader.i, %for.body67.i - %s.6819.i = phi ptr [ %incdec.ptr70.i, %for.body67.i ], [ %incdec.ptr511021.i, %for.cond64.preheader.i ] - %nz.0818.i = phi i32 [ %inc68.i, %for.body67.i ], [ 0, %for.cond64.preheader.i ] - %inc68.i = add nuw nsw i32 %nz.0818.i, 1 - %incdec.ptr70.i = getelementptr inbounds nuw i8, ptr %s.6819.i, i64 1 + %s.6818.i = phi ptr [ %incdec.ptr70.i, %for.body67.i ], [ %incdec.ptr511020.i, %for.cond64.preheader.i ] + %nz.0817.i = phi i32 [ %inc68.i, %for.body67.i ], [ 0, %for.cond64.preheader.i ] + %inc68.i = add nuw nsw i32 %nz.0817.i, 1 + %incdec.ptr70.i = getelementptr inbounds nuw i8, ptr %s.6818.i, i64 1 %15 = load i8, ptr %incdec.ptr70.i, align 1 %cmp65.i = icmp eq i8 %15, 48 br i1 %cmp65.i, label %for.body67.i, label %for.end72.i, !llvm.loop !9 @@ -254,15 +254,15 @@ for.body67.i: ; preds = %for.cond64.preheade for.end72.i: ; preds = %for.body67.i, %for.cond64.preheader.i %c.0.lcssa.in.i = phi i8 [ %14, %for.cond64.preheader.i ], [ %15, %for.body67.i ] %nz.0.lcssa.i = phi i32 [ 0, %for.cond64.preheader.i ], [ %inc68.i, %for.body67.i ] - %s.6.lcssa.i = phi ptr [ %incdec.ptr511021.i, %for.cond64.preheader.i ], [ %incdec.ptr70.i, %for.body67.i ] + %s.6.lcssa.i = phi ptr [ %incdec.ptr511020.i, %for.cond64.preheader.i ], [ %incdec.ptr70.i, %for.body67.i ] %c.0.lcssa.i = sext i8 %c.0.lcssa.in.i to i32 %16 = add nsw i32 %c.0.lcssa.i, -49 %or.cond.i = icmp ult i32 %16, 9 br i1 %or.cond.i, label %for.end121.i.thread, label %dig_done.i for.cond90.i: ; preds = %for.inc137.i, %if.then50.i - %sub601040.i = phi i32 [ %sub601039.i28, %for.inc137.i ], [ %sub60.i, %if.then50.i ] - %nd.0.lcssa99210121030.i = phi i32 [ %nd.0.lcssa99210121029.i30, %for.inc137.i ], [ %inc.i, %if.then50.i ] + %sub601039.i = phi i32 [ %sub601038.i28, %for.inc137.i ], [ %sub60.i, %if.then50.i ] + %nd.0.lcssa99110111029.i = phi i32 [ %nd.0.lcssa99110111028.i30, %for.inc137.i ], [ %inc.i, %if.then50.i ] %bc.sroa.4.2.i = phi i32 [ %bc.sroa.4.0.i32, %for.inc137.i ], [ %conv56.i, %if.then50.i ] %bc.sroa.0.2.i = phi i32 [ %bc.sroa.0.0.i34, %for.inc137.i ], [ %conv35.i, %if.then50.i ] %nd.3.i = phi i32 [ %nd.5.i, %for.inc137.i ], [ %inc.i, %if.then50.i ] @@ -286,7 +286,7 @@ have_dig.i: ; preds = %for.cond90.i for.end121.i.thread: ; preds = %for.end72.i %sub.ptr.rhs.cast79.i = ptrtoint ptr %s.6.lcssa.i to i64 - %sub.ptr.sub80.i = sub i64 %s.2960.i, %sub.ptr.rhs.cast79.i + %sub.ptr.sub80.i = sub i64 %s.2959.i, %sub.ptr.rhs.cast79.i %conv81.i = trunc i64 %sub.ptr.sub80.i to i32 %add85.i = add nsw i32 %conv81.i, 1 %sub99.i25 = add nsw i32 %c.0.lcssa.i, -48 @@ -295,24 +295,24 @@ for.end121.i.thread: ; preds = %for.end72.i if.then101.i: ; preds = %have_dig.i %add102.i = add nsw i32 %inc98.i, %nf.2.i - %cmp104.not823.i = icmp slt i32 %nz.3.i, 1 - br i1 %cmp104.not823.i, label %for.end121.i, label %for.body106.i + %cmp104.not822.i = icmp slt i32 %nz.3.i, 1 + br i1 %cmp104.not822.i, label %for.end121.i, label %for.body106.i for.body106.i: ; preds = %if.then101.i, %for.body106.i - %z.5827.i = phi i32 [ %z.6.i, %for.body106.i ], [ %z.4.i, %if.then101.i ] - %y.5826.i = phi i32 [ %y.6.i, %for.body106.i ], [ %y.4.i, %if.then101.i ] - %nd.4825.i = phi i32 [ %inc107.i, %for.body106.i ], [ %nd.3.i, %if.then101.i ] - %i.0824.i = phi i32 [ %inc120.i, %for.body106.i ], [ 1, %if.then101.i ] - %inc107.i = add nsw i32 %nd.4825.i, 1 - %cmp108.i = icmp slt i32 %nd.4825.i, 9 - %mul111.i = mul i32 %y.5826.i, 10 - %cmp113.i = icmp slt i32 %nd.4825.i, 17 - %mul116.i = mul i32 %z.5827.i, 10 - %spec.select.i = select i1 %cmp113.i, i32 %mul116.i, i32 %z.5827.i - %y.6.i = select i1 %cmp108.i, i32 %mul111.i, i32 %y.5826.i - %z.6.i = select i1 %cmp108.i, i32 %z.5827.i, i32 %spec.select.i - %inc120.i = add nuw i32 %i.0824.i, 1 - %exitcond.not.i = icmp eq i32 %i.0824.i, %nz.3.i + %z.5826.i = phi i32 [ %z.6.i, %for.body106.i ], [ %z.4.i, %if.then101.i ] + %y.5825.i = phi i32 [ %y.6.i, %for.body106.i ], [ %y.4.i, %if.then101.i ] + %nd.4824.i = phi i32 [ %inc107.i, %for.body106.i ], [ %nd.3.i, %if.then101.i ] + %i.0823.i = phi i32 [ %inc120.i, %for.body106.i ], [ 1, %if.then101.i ] + %inc107.i = add nsw i32 %nd.4824.i, 1 + %cmp108.i = icmp slt i32 %nd.4824.i, 9 + %mul111.i = mul i32 %y.5825.i, 10 + %cmp113.i = icmp slt i32 %nd.4824.i, 17 + %mul116.i = mul i32 %z.5826.i, 10 + %spec.select.i = select i1 %cmp113.i, i32 %mul116.i, i32 %z.5826.i + %y.6.i = select i1 %cmp108.i, i32 %mul111.i, i32 %y.5825.i + %z.6.i = select i1 %cmp108.i, i32 %z.5826.i, i32 %spec.select.i + %inc120.i = add nuw i32 %i.0823.i, 1 + %exitcond.not.i = icmp eq i32 %i.0823.i, %nz.3.i br i1 %exitcond.not.i, label %for.end121.loopexit.i, label %for.body106.i, !llvm.loop !10 for.end121.loopexit.i: ; preds = %for.body106.i @@ -336,8 +336,8 @@ if.then125.i: ; preds = %for.end121.i.thread %s.7.i386387 = phi ptr [ %s.6.lcssa.i, %for.end121.i.thread ], [ %s.9.i, %for.end121.i ] %bc.sroa.0.0.i336486 = phi i32 [ %conv81.i, %for.end121.i.thread ], [ %bc.sroa.0.2.i, %for.end121.i ] %bc.sroa.4.0.i316585 = phi i32 [ %add85.i, %for.end121.i.thread ], [ %bc.sroa.4.2.i, %for.end121.i ] - %nd.0.lcssa99210121029.i296684 = phi i32 [ 0, %for.end121.i.thread ], [ %nd.0.lcssa99210121030.i, %for.end121.i ] - %sub601039.i276783 = phi i32 [ 1, %for.end121.i.thread ], [ %sub601040.i, %for.end121.i ] + %nd.0.lcssa99110111028.i296684 = phi i32 [ 0, %for.end121.i.thread ], [ %nd.0.lcssa99110111029.i, %for.end121.i ] + %sub601038.i276783 = phi i32 [ 1, %for.end121.i.thread ], [ %sub601039.i, %for.end121.i ] %add102.i6882 = phi i32 [ %add102.i59, %for.end121.i.thread ], [ %add102.i, %for.end121.i ] %mul126.i = mul i32 %y.5.lcssa.i90, 10 %add127.i = add i32 %mul126.i, %sub99.i456189 @@ -357,8 +357,8 @@ for.inc137.i: ; preds = %if.then131.i, %if.e %s.7.i39 = phi ptr [ %s.9.i, %have_dig.i ], [ %s.9.i, %if.else128.i ], [ %s.9.i, %if.then131.i ], [ %s.7.i386387, %if.then125.i ] %bc.sroa.0.0.i34 = phi i32 [ %bc.sroa.0.2.i, %have_dig.i ], [ %bc.sroa.0.2.i, %if.else128.i ], [ %bc.sroa.0.2.i, %if.then131.i ], [ %bc.sroa.0.0.i336486, %if.then125.i ] %bc.sroa.4.0.i32 = phi i32 [ %bc.sroa.4.2.i, %have_dig.i ], [ %bc.sroa.4.2.i, %if.else128.i ], [ %bc.sroa.4.2.i, %if.then131.i ], [ %bc.sroa.4.0.i316585, %if.then125.i ] - %nd.0.lcssa99210121029.i30 = phi i32 [ %nd.0.lcssa99210121030.i, %have_dig.i ], [ %nd.0.lcssa99210121030.i, %if.else128.i ], [ %nd.0.lcssa99210121030.i, %if.then131.i ], [ %nd.0.lcssa99210121029.i296684, %if.then125.i ] - %sub601039.i28 = phi i32 [ %sub601040.i, %have_dig.i ], [ %sub601040.i, %if.else128.i ], [ %sub601040.i, %if.then131.i ], [ %sub601039.i276783, %if.then125.i ] + %nd.0.lcssa99110111028.i30 = phi i32 [ %nd.0.lcssa99110111029.i, %have_dig.i ], [ %nd.0.lcssa99110111029.i, %if.else128.i ], [ %nd.0.lcssa99110111029.i, %if.then131.i ], [ %nd.0.lcssa99110111028.i296684, %if.then125.i ] + %sub601038.i28 = phi i32 [ %sub601039.i, %have_dig.i ], [ %sub601039.i, %if.else128.i ], [ %sub601039.i, %if.then131.i ], [ %sub601038.i276783, %if.then125.i ] %nd.5.i = phi i32 [ %nd.3.i, %have_dig.i ], [ %inc122.i, %if.else128.i ], [ %inc122.i, %if.then131.i ], [ %inc122.i92, %if.then125.i ] %nf.3.i = phi i32 [ %nf.2.i, %have_dig.i ], [ %add102.i, %if.else128.i ], [ %add102.i, %if.then131.i ], [ %add102.i6882, %if.then125.i ] %nz.4.i = phi i32 [ %inc98.i, %have_dig.i ], [ 0, %if.else128.i ], [ 0, %if.then131.i ], [ 0, %if.then125.i ] @@ -369,11 +369,11 @@ for.inc137.i: ; preds = %if.then131.i, %if.e br label %for.cond90.i, !llvm.loop !11 dig_done.i: ; preds = %for.cond90.i, %for.end72.i, %for.end47.thread.i, %for.end47.i - %nd.0.lcssa9921013.i = phi i32 [ %nd.0.lcssa99210121030.i, %for.cond90.i ], [ 0, %for.end72.i ], [ %inc.i, %for.end47.i ], [ 0, %for.end47.thread.i ] - %bc.sroa.10.0.i = phi i32 [ %sub601040.i, %for.cond90.i ], [ 1, %for.end72.i ], [ 0, %for.end47.i ], [ 0, %for.end47.thread.i ] + %nd.0.lcssa9911012.i = phi i32 [ %nd.0.lcssa99110111029.i, %for.cond90.i ], [ 0, %for.end72.i ], [ %inc.i, %for.end47.i ], [ 0, %for.end47.thread.i ] + %bc.sroa.10.0.i = phi i32 [ %sub601039.i, %for.cond90.i ], [ 1, %for.end72.i ], [ 0, %for.end47.i ], [ 0, %for.end47.thread.i ] %bc.sroa.4.1.i = phi i32 [ %bc.sroa.4.2.i, %for.cond90.i ], [ 1, %for.end72.i ], [ %conv35.i, %for.end47.i ], [ 0, %for.end47.thread.i ] %bc.sroa.0.1.i = phi i32 [ %bc.sroa.0.2.i, %for.cond90.i ], [ 0, %for.end72.i ], [ %conv35.i, %for.end47.i ], [ 0, %for.end47.thread.i ] - %c.2.i = phi i32 [ %c.3.i, %for.cond90.i ], [ %c.0.lcssa.i, %for.end72.i ], [ %conv17.i, %for.end47.i ], [ %conv17801.i, %for.end47.thread.i ] + %c.2.i = phi i32 [ %c.3.i, %for.cond90.i ], [ %c.0.lcssa.i, %for.end72.i ], [ %conv17.i, %for.end47.i ], [ %conv17800.i, %for.end47.thread.i ] %nd.2.i = phi i32 [ %nd.3.i, %for.cond90.i ], [ 0, %for.end72.i ], [ %inc.i, %for.end47.i ], [ 0, %for.end47.thread.i ] %nf.1.i = phi i32 [ %nf.2.i, %for.cond90.i ], [ 0, %for.end72.i ], [ 0, %for.end47.i ], [ 0, %for.end47.thread.i ] %nz.2.i = phi i32 [ %nz.3.i, %for.cond90.i ], [ %nz.0.lcssa.i, %for.end72.i ], [ 0, %for.end47.i ], [ 0, %for.end47.thread.i ] @@ -419,12 +419,12 @@ sw.epilog.i: ; preds = %sw.bb157.i, %if.end br i1 %or.cond4.i, label %while.cond166.preheader.i, label %if.end213.i while.cond166.preheader.i: ; preds = %sw.epilog.i - %cmp167831.i = icmp eq i8 %c.4.in.i, 48 - br i1 %cmp167831.i, label %while.body169.i, label %while.end172.i + %cmp167830.i = icmp eq i8 %c.4.in.i, 48 + br i1 %cmp167830.i, label %while.body169.i, label %while.end172.i while.body169.i: ; preds = %while.cond166.preheader.i, %while.body169.i - %s.12832.i = phi ptr [ %incdec.ptr170.i, %while.body169.i ], [ %s.11.i, %while.cond166.preheader.i ] - %incdec.ptr170.i = getelementptr inbounds nuw i8, ptr %s.12832.i, i64 1 + %s.12831.i = phi ptr [ %incdec.ptr170.i, %while.body169.i ], [ %s.11.i, %while.cond166.preheader.i ] + %incdec.ptr170.i = getelementptr inbounds nuw i8, ptr %s.12831.i, i64 1 %25 = load i8, ptr %incdec.ptr170.i, align 1 %cmp167.i = icmp eq i8 %25, 48 br i1 %cmp167.i, label %while.body169.i, label %while.end172.i, !llvm.loop !12 @@ -439,21 +439,21 @@ while.end172.i: ; preds = %while.body169.i, %w if.then178.i: ; preds = %while.end172.i %narrow.i = add nsw i8 %c.5.in.lcssa.i, -48 %sub179.i = zext nneg i8 %narrow.i to i32 - %incdec.ptr181835.i = getelementptr inbounds nuw i8, ptr %s.12.lcssa.i, i64 1 - %27 = load i8, ptr %incdec.ptr181835.i, align 1 + %incdec.ptr181834.i = getelementptr inbounds nuw i8, ptr %s.12.lcssa.i, i64 1 + %27 = load i8, ptr %incdec.ptr181834.i, align 1 %28 = add i8 %27, -48 %29 = icmp ult i8 %28, 10 br i1 %29, label %while.body189.i, label %while.end193.i while.body189.i: ; preds = %if.then178.i, %while.body189.i %30 = phi i8 [ %31, %while.body189.i ], [ %27, %if.then178.i ] - %incdec.ptr181837.i = phi ptr [ %incdec.ptr181.i, %while.body189.i ], [ %incdec.ptr181835.i, %if.then178.i ] - %UL.0836.i = phi i32 [ %sub192.i, %while.body189.i ], [ %sub179.i, %if.then178.i ] + %incdec.ptr181836.i = phi ptr [ %incdec.ptr181.i, %while.body189.i ], [ %incdec.ptr181834.i, %if.then178.i ] + %UL.0835.i = phi i32 [ %sub192.i, %while.body189.i ], [ %sub179.i, %if.then178.i ] %conv182.i = zext nneg i8 %30 to i32 - %mul190.i = mul i32 %UL.0836.i, 10 + %mul190.i = mul i32 %UL.0835.i, 10 %add191.i = add nsw i32 %conv182.i, -48 %sub192.i = add i32 %add191.i, %mul190.i - %incdec.ptr181.i = getelementptr inbounds nuw i8, ptr %incdec.ptr181837.i, i64 1 + %incdec.ptr181.i = getelementptr inbounds nuw i8, ptr %incdec.ptr181836.i, i64 1 %31 = load i8, ptr %incdec.ptr181.i, align 1 %32 = add i8 %31, -48 %33 = icmp ult i8 %32, 10 @@ -461,7 +461,7 @@ while.body189.i: ; preds = %if.then178.i, %whil while.end193.i: ; preds = %while.body189.i, %if.then178.i %UL.0.lcssa.i = phi i32 [ %sub179.i, %if.then178.i ], [ %sub192.i, %while.body189.i ] - %incdec.ptr181.lcssa.i = phi ptr [ %incdec.ptr181835.i, %if.then178.i ], [ %incdec.ptr181.i, %while.body189.i ] + %incdec.ptr181.lcssa.i = phi ptr [ %incdec.ptr181834.i, %if.then178.i ], [ %incdec.ptr181.i, %while.body189.i ] %sub.ptr.lhs.cast194.i = ptrtoint ptr %incdec.ptr181.lcssa.i to i64 %sub.ptr.rhs.cast195.i = ptrtoint ptr %s.12.lcssa.i to i64 %sub.ptr.sub196.i = sub i64 %sub.ptr.lhs.cast194.i, %sub.ptr.rhs.cast195.i @@ -488,8 +488,8 @@ if.then215.i: ; preds = %if.end213.i if.end221.i: ; preds = %if.end213.i %sub222.i = sub nsw i32 %e.0.i, %nf.1.i - %tobool223.not.i = icmp eq i32 %nd.0.lcssa9921013.i, 0 - %spec.select334.i = select i1 %tobool223.not.i, i32 %nd.2.i, i32 %nd.0.lcssa9921013.i + %tobool223.not.i = icmp eq i32 %nd.0.lcssa9911012.i, 0 + %spec.select334.i = select i1 %tobool223.not.i, i32 %nd.2.i, i32 %nd.0.lcssa9911012.i %cond.i = call i32 @llvm.smin.i32(i32 %nd.2.i, i32 17) %conv228.i = uitofp i32 %y.3.i to double store double %conv228.i, ptr %rv.i, align 8 @@ -602,7 +602,7 @@ if.then284.i: ; preds = %if.then282.i if.end288.i: ; preds = %if.then284.i, %if.then282.i %60 = phi i32 [ %59, %if.then284.i ], [ %53, %if.then282.i ] - %rv.promoted1148.i = phi double [ %mul287.i, %if.then284.i ], [ %55, %if.then282.i ] + %rv.promoted1147.i = phi double [ %mul287.i, %if.then284.i ], [ %55, %if.then282.i ] %and289.i = and i32 %add279.i, 2147483632 %tobool290.not.i = icmp eq i32 %and289.i, 0 br i1 %tobool290.not.i, label %if.end414.i, label %if.then291.i @@ -748,44 +748,44 @@ if.end299.i: ; preds = %if.else.i383.i, %if br label %ret.i if.end300.i: ; preds = %if.then291.i - %cmp302849.i = icmp samesign ugt i32 %add279.i, 31 - br i1 %cmp302849.i, label %for.body304.preheader.i, label %for.end315.i + %cmp302848.i = icmp samesign ugt i32 %add279.i, 31 + br i1 %cmp302848.i, label %for.body304.preheader.i, label %for.end315.i for.body304.preheader.i: ; preds = %if.end300.i %shr.i = lshr i32 %add279.i, 4 br label %for.body304.i for.body304.i: ; preds = %for.inc312.i, %for.body304.preheader.i - %mul3101149.i = phi double [ %rv.promoted1148.i, %for.body304.preheader.i ], [ %mul3101150.i, %for.inc312.i ] + %mul3101148.i = phi double [ %rv.promoted1147.i, %for.body304.preheader.i ], [ %mul3101149.i, %for.inc312.i ] %71 = phi i32 [ %60, %for.body304.preheader.i ], [ %76, %for.inc312.i ] - %indvars.iv962.i = phi i64 [ 0, %for.body304.preheader.i ], [ %indvars.iv.next963.i, %for.inc312.i ] - %e1.0851.i = phi i32 [ %shr.i, %for.body304.preheader.i ], [ %shr314.i, %for.inc312.i ] - %mul310848850.i = phi double [ %rv.promoted1148.i, %for.body304.preheader.i ], [ %mul310847.i, %for.inc312.i ] - %and305.i = and i32 %e1.0851.i, 1 + %indvars.iv961.i = phi i64 [ 0, %for.body304.preheader.i ], [ %indvars.iv.next962.i, %for.inc312.i ] + %e1.0850.i = phi i32 [ %shr.i, %for.body304.preheader.i ], [ %shr314.i, %for.inc312.i ] + %mul310847849.i = phi double [ %rv.promoted1147.i, %for.body304.preheader.i ], [ %mul310846.i, %for.inc312.i ] + %and305.i = and i32 %e1.0850.i, 1 %tobool306.not.i = icmp eq i32 %and305.i, 0 br i1 %tobool306.not.i, label %for.inc312.i, label %if.then307.i if.then307.i: ; preds = %for.body304.i - %arrayidx309.i = getelementptr inbounds nuw [5 x double], ptr @bigtens, i64 0, i64 %indvars.iv962.i + %arrayidx309.i = getelementptr inbounds nuw [5 x double], ptr @bigtens, i64 0, i64 %indvars.iv961.i %72 = load double, ptr %arrayidx309.i, align 8 - %mul310.i = fmul double %mul310848850.i, %72 + %mul310.i = fmul double %mul310847849.i, %72 %73 = bitcast double %mul310.i to i64 %74 = lshr i64 %73, 32 %75 = trunc nuw i64 %74 to i32 br label %for.inc312.i for.inc312.i: ; preds = %if.then307.i, %for.body304.i - %mul3101150.i = phi double [ %mul3101149.i, %for.body304.i ], [ %mul310.i, %if.then307.i ] + %mul3101149.i = phi double [ %mul3101148.i, %for.body304.i ], [ %mul310.i, %if.then307.i ] %76 = phi i32 [ %71, %for.body304.i ], [ %75, %if.then307.i ] - %mul310847.i = phi double [ %mul310848850.i, %for.body304.i ], [ %mul310.i, %if.then307.i ] - %indvars.iv.next963.i = add nuw nsw i64 %indvars.iv962.i, 1 - %shr314.i = lshr i32 %e1.0851.i, 1 - %cmp302.i = icmp samesign ugt i32 %e1.0851.i, 3 + %mul310846.i = phi double [ %mul310847849.i, %for.body304.i ], [ %mul310.i, %if.then307.i ] + %indvars.iv.next962.i = add nuw nsw i64 %indvars.iv961.i, 1 + %shr314.i = lshr i32 %e1.0850.i, 1 + %cmp302.i = icmp samesign ugt i32 %e1.0850.i, 3 br i1 %cmp302.i, label %for.body304.i, label %for.end315.loopexit.i, !llvm.loop !14 for.end315.loopexit.i: ; preds = %for.inc312.i - store double %mul3101150.i, ptr %rv.i, align 8 - %77 = and i64 %indvars.iv.next963.i, 4294967295 + store double %mul3101149.i, ptr %rv.i, align 8 + %77 = and i64 %indvars.iv.next962.i, 4294967295 br label %for.end315.i for.end315.i: ; preds = %for.end315.loopexit.i, %if.end300.i @@ -845,7 +845,7 @@ if.then344.i: ; preds = %if.then340.i if.end348.i: ; preds = %if.then344.i, %if.then340.i %89 = phi i32 [ %88, %if.then344.i ], [ %54, %if.then340.i ] %90 = phi i32 [ %87, %if.then344.i ], [ %53, %if.then340.i ] - %rv.promoted1145.i = phi double [ %div347.i, %if.then344.i ], [ %55, %if.then340.i ] + %rv.promoted1144.i = phi double [ %div347.i, %if.then344.i ], [ %55, %if.then340.i ] %shr349.i = lshr i32 %sub341.i, 4 %tobool350.not.i = icmp samesign ult i32 %sub341.i, 16 br i1 %tobool350.not.i, label %if.end414.i, label %if.then351.i @@ -859,20 +859,20 @@ for.body364.preheader.i: ; preds = %if.then351.i br label %for.body364.i for.body364.i: ; preds = %for.inc372.i, %for.body364.preheader.i - %mul3701146.i = phi double [ %rv.promoted1145.i, %for.body364.preheader.i ], [ %mul3701147.i, %for.inc372.i ] + %mul3701145.i = phi double [ %rv.promoted1144.i, %for.body364.preheader.i ], [ %mul3701146.i, %for.inc372.i ] %91 = phi i32 [ %89, %for.body364.preheader.i ], [ %98, %for.inc372.i ] %92 = phi i32 [ %90, %for.body364.preheader.i ], [ %99, %for.inc372.i ] %indvars.iv.i = phi i64 [ 0, %for.body364.preheader.i ], [ %indvars.iv.next.i, %for.inc372.i ] - %e1.1844.i = phi i32 [ %shr349.i, %for.body364.preheader.i ], [ %shr374.i, %for.inc372.i ] - %mul370841843.i = phi double [ %rv.promoted1145.i, %for.body364.preheader.i ], [ %mul370840.i, %for.inc372.i ] - %and365.i = and i32 %e1.1844.i, 1 + %e1.1843.i = phi i32 [ %shr349.i, %for.body364.preheader.i ], [ %shr374.i, %for.inc372.i ] + %mul370840842.i = phi double [ %rv.promoted1144.i, %for.body364.preheader.i ], [ %mul370839.i, %for.inc372.i ] + %and365.i = and i32 %e1.1843.i, 1 %tobool366.not.i = icmp eq i32 %and365.i, 0 br i1 %tobool366.not.i, label %for.inc372.i, label %if.then367.i if.then367.i: ; preds = %for.body364.i %arrayidx369.i = getelementptr inbounds nuw [5 x double], ptr @tinytens, i64 0, i64 %indvars.iv.i %93 = load double, ptr %arrayidx369.i, align 8 - %mul370.i = fmul double %mul370841843.i, %93 + %mul370.i = fmul double %mul370840842.i, %93 %94 = bitcast double %mul370.i to i64 %95 = lshr i64 %94, 32 %96 = trunc nuw i64 %95 to i32 @@ -880,18 +880,18 @@ if.then367.i: ; preds = %for.body364.i br label %for.inc372.i for.inc372.i: ; preds = %if.then367.i, %for.body364.i - %mul3701147.i = phi double [ %mul3701146.i, %for.body364.i ], [ %mul370.i, %if.then367.i ] + %mul3701146.i = phi double [ %mul3701145.i, %for.body364.i ], [ %mul370.i, %if.then367.i ] %98 = phi i32 [ %91, %for.body364.i ], [ %97, %if.then367.i ] %99 = phi i32 [ %92, %for.body364.i ], [ %96, %if.then367.i ] - %mul370840.i = phi double [ %mul370841843.i, %for.body364.i ], [ %mul370.i, %if.then367.i ] + %mul370839.i = phi double [ %mul370840842.i, %for.body364.i ], [ %mul370.i, %if.then367.i ] %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 - %shr374.i = lshr i32 %e1.1844.i, 1 - %cmp362.not.i = icmp samesign ult i32 %e1.1844.i, 2 + %shr374.i = lshr i32 %e1.1843.i, 1 + %cmp362.not.i = icmp samesign ult i32 %e1.1843.i, 2 br i1 %cmp362.not.i, label %for.end375.i, label %for.body364.i, !llvm.loop !15 for.end375.i: ; preds = %for.inc372.i %spec.select686.i = select i1 %tobool357.not.i, i32 0, i32 106 - store double %mul3701147.i, ptr %rv.i, align 8 + store double %mul3701146.i, ptr %rv.i, align 8 br i1 %tobool357.not.i, label %if.end408.i, label %land.lhs.true378.i land.lhs.true378.i: ; preds = %for.end375.i @@ -937,7 +937,7 @@ if.end408.ithread-pre-split: ; preds = %land.lhs.true378.i, br label %if.end408.i if.end408.i: ; preds = %if.end408.ithread-pre-split, %for.end375.i - %100 = phi double [ %.pr, %if.end408.ithread-pre-split ], [ %mul3701147.i, %for.end375.i ] + %100 = phi double [ %.pr, %if.end408.ithread-pre-split ], [ %mul3701146.i, %for.end375.i ] %tobool409.i = fcmp une double %100, 0.000000e+00 br i1 %tobool409.i, label %if.end414.i, label %undfl.i @@ -984,8 +984,8 @@ for.end447.i: ; preds = %for.cond427.i br i1 %cmp454.i, label %for.cond457.preheader.i, label %if.end486.i for.cond457.preheader.i: ; preds = %for.end447.i - %cmp458854.i = icmp sgt i32 %spec.select336.i, 0 - br i1 %cmp458854.i, label %for.body460.preheader.i, label %for.cond471.preheader.i + %cmp458853.i = icmp sgt i32 %spec.select336.i, 0 + br i1 %cmp458853.i, label %for.body460.preheader.i, label %for.cond471.preheader.i for.body460.preheader.i: ; preds = %for.cond457.preheader.i %wide.trip.count.i = zext nneg i32 %spec.select336.i to i64 @@ -994,40 +994,40 @@ for.body460.preheader.i: ; preds = %for.cond457.prehead for.cond471.preheader.i: ; preds = %for.body460.i, %for.cond457.preheader.i %i.2.lcssa.i = phi i32 [ 0, %for.cond457.preheader.i ], [ %spec.select336.i, %for.body460.i ] %y.10.lcssa.i = phi i32 [ 0, %for.cond457.preheader.i ], [ %sub466.i, %for.body460.i ] - %cmp472859.i = icmp slt i32 %i.2.lcssa.i, %i.1.i - br i1 %cmp472859.i, label %for.body474.preheader.i, label %if.end486.i + %cmp472858.i = icmp slt i32 %i.2.lcssa.i, %i.1.i + br i1 %cmp472858.i, label %for.body474.preheader.i, label %if.end486.i for.body474.preheader.i: ; preds = %for.cond471.preheader.i %102 = sext i32 %bc.sroa.4.1.i to i64 br label %for.body474.i for.body460.i: ; preds = %for.body460.i, %for.body460.preheader.i - %indvars.iv965.i = phi i64 [ 0, %for.body460.preheader.i ], [ %indvars.iv.next966.i, %for.body460.i ] - %y.10856.i = phi i32 [ 0, %for.body460.preheader.i ], [ %sub466.i, %for.body460.i ] - %mul461.i = mul i32 %y.10856.i, 10 - %arrayidx463.i = getelementptr inbounds nuw i8, ptr %s0.1.i, i64 %indvars.iv965.i + %indvars.iv964.i = phi i64 [ 0, %for.body460.preheader.i ], [ %indvars.iv.next965.i, %for.body460.i ] + %y.10855.i = phi i32 [ 0, %for.body460.preheader.i ], [ %sub466.i, %for.body460.i ] + %mul461.i = mul i32 %y.10855.i, 10 + %arrayidx463.i = getelementptr inbounds nuw i8, ptr %s0.1.i, i64 %indvars.iv964.i %103 = load i8, ptr %arrayidx463.i, align 1 %conv464.i = sext i8 %103 to i32 %add465.i = add i32 %mul461.i, -48 %sub466.i = add i32 %add465.i, %conv464.i - %indvars.iv.next966.i = add nuw nsw i64 %indvars.iv965.i, 1 - %exitcond969.not.i = icmp eq i64 %indvars.iv.next966.i, %wide.trip.count.i - br i1 %exitcond969.not.i, label %for.cond471.preheader.i, label %for.body460.i, !llvm.loop !16 + %indvars.iv.next965.i = add nuw nsw i64 %indvars.iv964.i, 1 + %exitcond968.not.i = icmp eq i64 %indvars.iv.next965.i, %wide.trip.count.i + br i1 %exitcond968.not.i, label %for.cond471.preheader.i, label %for.body460.i, !llvm.loop !16 for.body474.i: ; preds = %for.body474.i, %for.body474.preheader.i - %indvars.iv970.i = phi i64 [ %102, %for.body474.preheader.i ], [ %indvars.iv.next971.i, %for.body474.i ] - %y.11862.i = phi i32 [ %y.10.lcssa.i, %for.body474.preheader.i ], [ %sub481.i, %for.body474.i ] - %i.3860.i = phi i32 [ %i.2.lcssa.i, %for.body474.preheader.i ], [ %inc483.i, %for.body474.i ] - %mul475.i = mul i32 %y.11862.i, 10 - %indvars.iv.next971.i = add nsw i64 %indvars.iv970.i, 1 - %arrayidx478.i = getelementptr inbounds i8, ptr %s0.1.i, i64 %indvars.iv970.i + %indvars.iv969.i = phi i64 [ %102, %for.body474.preheader.i ], [ %indvars.iv.next970.i, %for.body474.i ] + %y.11861.i = phi i32 [ %y.10.lcssa.i, %for.body474.preheader.i ], [ %sub481.i, %for.body474.i ] + %i.3859.i = phi i32 [ %i.2.lcssa.i, %for.body474.preheader.i ], [ %inc483.i, %for.body474.i ] + %mul475.i = mul i32 %y.11861.i, 10 + %indvars.iv.next970.i = add nsw i64 %indvars.iv969.i, 1 + %arrayidx478.i = getelementptr inbounds i8, ptr %s0.1.i, i64 %indvars.iv969.i %104 = load i8, ptr %arrayidx478.i, align 1 %conv479.i = sext i8 %104 to i32 %add480.i = add i32 %mul475.i, -48 %sub481.i = add i32 %add480.i, %conv479.i - %inc483.i = add nuw nsw i32 %i.3860.i, 1 - %exitcond974.not.i = icmp eq i32 %inc483.i, %i.1.i - br i1 %exitcond974.not.i, label %if.end486.i, label %for.body474.i, !llvm.loop !17 + %inc483.i = add nuw nsw i32 %i.3859.i, 1 + %exitcond973.not.i = icmp eq i32 %inc483.i, %i.1.i + br i1 %exitcond973.not.i, label %if.end486.i, label %for.body474.i, !llvm.loop !17 if.end486.i: ; preds = %for.body474.i, %for.cond471.preheader.i, %for.end447.i, %if.end414.i %e.2.i = phi i32 [ %add449.i, %for.end447.i ], [ %sub222.i, %if.end414.i ], [ %add449.i, %for.cond471.preheader.i ], [ %add449.i, %for.body474.i ] @@ -1168,20 +1168,20 @@ s2b.exit.i: ; preds = %for.body14.i.i, %if %arrayidx.i.i404.i = getelementptr inbounds nuw i8, ptr %dalloc, i64 24 %sub503.i = sub nsw i32 0, %e.2.i %bd5.0.i = call i32 @llvm.smax.i32(i32 %e.2.i, i32 0) - %cmp499.inv.i = icmp slt i32 %e.2.i, 0 - %bb2.0.i = select i1 %cmp499.inv.i, i32 %sub503.i, i32 0 + %bb2.0.i = icmp slt i32 %e.2.i, 0 + %bd2.1.i = select i1 %bb2.0.i, i32 %sub503.i, i32 0 %bd2.1.i = add nuw i32 %bd5.0.i, %bc.sroa.42.0.i %cmp557.i = icmp sgt i32 %bb2.0.i, 0 %freelist.i398.i = getelementptr inbounds nuw i8, ptr %dalloc, i64 16 %sub.ptr.rhs.cast.i.i = ptrtoint ptr %private_mem.i to i64 %used_heap.i.i = getelementptr inbounds nuw i8, ptr %dalloc, i64 4 - %cmp568.not.i = icmp slt i32 %e.2.i, 1 + %cmp568.i = icmp slt i32 %e.2.i, 1 %cmp588.i = icmp sgt i32 %sub415.i, %nd.6.i %arrayidx774.i = getelementptr inbounds nuw i8, ptr %rv.i, i64 4 %tobool840.i = icmp ne i32 %bc.sroa.42.0.i, 0 %cmp881.i = icmp eq i32 %sub415.i, %nd.6.i %tobool885.i = icmp eq i32 %bc.sroa.42.0.i, 0 - %or.cond18.not689.i = select i1 %cmp881.i, i1 %tobool885.i, i1 false + %or.cond18.not688.i = select i1 %cmp881.i, i1 %tobool885.i, i1 false br label %for.cond489.i for.cond489.i: ; preds = %for.cond489.i.backedge, %s2b.exit.i @@ -1307,8 +1307,8 @@ i2b.exit.i: ; preds = %if.end.i.i423.i, %i store i32 1, ptr %x.i.i, align 8 store i32 1, ptr %wds.i.i409.i, align 4 %120 = load i32, ptr %bbe.i, align 4 - %sub510.i = call i32 @llvm.smin.i32(i32 %120, i32 0) - %add508.i = call i32 @llvm.smax.i32(i32 %120, i32 0) + %cmp505.i = call i32 @llvm.smin.i32(i32 %120, i32 0) + %sub510.i = call i32 @llvm.smax.i32(i32 %120, i32 0) %bb2.1.i = add nuw nsw i32 %add508.i, %bb2.0.i %sub513.i = sub nsw i32 %120, %bc.sroa.42.0.i %121 = load i32, ptr %bbbits.i, align 4 @@ -1387,7 +1387,7 @@ if.then565.i: ; preds = %if.end562.i if.end567.i: ; preds = %if.then565.i, %if.end562.i %bb.4.i = phi ptr [ %call566.i, %if.then565.i ], [ %bb.3.i, %if.end562.i ] - br i1 %cmp568.not.i, label %if.end572.i, label %if.then570.i + br i1 %cmp568.i, label %if.end572.i, label %if.then570.i if.then570.i: ; preds = %if.end567.i %call571.i = call fastcc ptr @pow5mult(ptr noundef nonnull %dalloc, ptr noundef nonnull %rv.0.i.i, i32 noundef %bd5.0.i) @@ -1585,25 +1585,25 @@ if.else679.i: ; preds = %if.then635.i drop_down.i: ; preds = %if.then7.i463.i %cmp692.i = icmp samesign ugt i32 %and613.i, 112197632 - %or.cond1151.not.i = select i1 %tobool885.i, i1 true, i1 %cmp692.i - br i1 %or.cond1151.not.i, label %if.end706.i, label %if.then694.i + %or.cond1150.not.i = select i1 %tobool885.i, i1 true, i1 %cmp692.i + br i1 %or.cond1150.not.i, label %if.end706.i, label %if.then694.i drop_down.i.thread: ; preds = %if.else679.i - %.pre980.i94 = and i32 %136, 2146435072 - %cmp692.i95 = icmp samesign ugt i32 %.pre980.i94, 112197632 - %or.cond1151.not.i96 = select i1 %tobool885.i, i1 true, i1 %cmp692.i95 - br i1 %or.cond1151.not.i96, label %if.end706.i.thread, label %if.then694.i + %.pre979.i94 = and i32 %136, 2146435072 + %cmp692.i95 = icmp samesign ugt i32 %.pre979.i94, 112197632 + %or.cond1150.not.i96 = select i1 %tobool885.i, i1 true, i1 %cmp692.i95 + br i1 %or.cond1150.not.i96, label %if.end706.i.thread, label %if.then694.i if.end706.i.thread: ; preds = %drop_down.i.thread - %or.i103 = add nsw i32 %.pre980.i94, -1 + %or.i103 = add nsw i32 %.pre979.i94, -1 store i32 %or.i103, ptr %arrayidx774.i, align 4 store i32 -1, ptr %rv.i, align 8 br label %for.end919.i if.then694.i: ; preds = %drop_down.i, %drop_down.i.thread - %.pre980.i99 = phi i32 [ %.pre980.i94, %drop_down.i.thread ], [ %and613.i, %drop_down.i ] + %.pre979.i99 = phi i32 [ %.pre979.i94, %drop_down.i.thread ], [ %and613.i, %drop_down.i ] %delta.4.i97 = phi ptr [ %call583.i, %drop_down.i.thread ], [ %call626.i, %drop_down.i ] - %cmp695.i = icmp samesign ugt i32 %.pre980.i99, 57671680 + %cmp695.i = icmp samesign ugt i32 %.pre979.i99, 57671680 %brmerge.i = or i1 %cmp588.i, %cmp695.i br i1 %brmerge.i, label %for.end919.i, label %undfl.i @@ -1888,7 +1888,7 @@ if.end877.i: ; preds = %if.else872.i, %if.e %aadj.2.i = phi double [ %aadj.1.i, %if.else834.i ], [ %aadj.3.i, %if.end861.i ], [ %aadj.1.i, %if.else872.i ] %and879.i = and i32 %177, 2146435072 %cmp887.i = icmp eq i32 %and809.i, %and879.i - %or.cond339.i = select i1 %or.cond18.not689.i, i1 %cmp887.i, i1 false + %or.cond339.i = select i1 %or.cond18.not688.i, i1 %cmp887.i, i1 false br i1 %or.cond339.i, label %if.then889.i, label %cont.i if.then889.i: ; preds = %if.end877.i @@ -1898,10 +1898,10 @@ if.then889.i: ; preds = %if.end877.i %tobool894.i = icmp eq i32 %124, 0 %178 = and i64 %.in.i, 4294967295 %tobool897.i = icmp eq i64 %178, 0 - %or.cond15.not690.i = select i1 %tobool894.i, i1 %tobool897.i, i1 false + %or.cond15.not689.i = select i1 %tobool894.i, i1 %tobool897.i, i1 false %and900.i = and i32 %177, 1048575 %tobool901.not.i = icmp eq i32 %and900.i, 0 - %or.cond340.i = select i1 %or.cond15.not690.i, i1 %tobool901.not.i, i1 false + %or.cond340.i = select i1 %or.cond15.not689.i, i1 %tobool901.not.i, i1 false br i1 %or.cond340.i, label %if.else910.i, label %if.then902.i if.then902.i: ; preds = %if.then889.i @@ -2519,11 +2519,11 @@ if.else115.i.i: ; preds = %Bfree.exit132.i.i br i1 %cmp116.i.i, label %if.then118.i.i, label %if.else124.i.i if.then118.i.i: ; preds = %if.else115.i.i - %.pre977.i = load i32, ptr %arrayidx774.i, align 4 + %.pre976.i = load i32, ptr %arrayidx774.i, align 4 br i1 %dsign.0.i.i, label %retlow1.i.i, label %bigcomp.exit.i retlow1.i.i: ; preds = %odd.i.i, %if.then118.i.i - %rv.val90.i.i = phi i32 [ %231, %odd.i.i ], [ %.pre977.i, %if.then118.i.i ] + %rv.val90.i.i = phi i32 [ %231, %odd.i.i ], [ %.pre976.i, %if.then118.i.i ] %and.i.i.i.i = and i32 %rv.val90.i.i, 2146435072 %sub.i.i.i.i = add nsw i32 %and.i.i.i.i, -54525952 %u.sroa.0.4.insert.ext.i.i.i.i = zext i32 %sub.i.i.i.i to i64 @@ -2633,7 +2633,7 @@ if.end170.sink.split.i.i: ; preds = %sulp.exit151.i.i, % br label %bigcomp.exit.i bigcomp.exit.i: ; preds = %if.end170.sink.split.i.i, %if.else158.i.i, %if.else149.i.i, %if.then143.i.i, %if.then127.i.i, %if.then118.i.i, %if.then110.i.bigcomp.exit_crit_edge.i - %241 = phi i32 [ %.pre.i, %if.then110.i.bigcomp.exit_crit_edge.i ], [ %.pre977.i, %if.then118.i.i ], [ %231, %if.then127.i.i ], [ %231, %if.then143.i.i ], [ %231, %if.else149.i.i ], [ %231, %if.else158.i.i ], [ %240, %if.end170.sink.split.i.i ] + %241 = phi i32 [ %.pre.i, %if.then110.i.bigcomp.exit_crit_edge.i ], [ %.pre976.i, %if.then118.i.i ], [ %231, %if.then127.i.i ], [ %231, %if.then143.i.i ], [ %231, %if.else149.i.i ], [ %231, %if.else158.i.i ], [ %240, %if.end170.sink.split.i.i ] call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %bbits.i.i) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %p2.i.i) %and925.i = and i32 %241, 2146435072 @@ -3077,7 +3077,7 @@ if.end66: ; preds = %if.then59, %select. %sub68 = add i32 %33, %34 %sub73 = sub nsw i32 0, %sub68 %s2.0 = tail call i32 @llvm.smax.i32(i32 %sub68, i32 0) - %cmp69.inv = icmp slt i32 %sub68, 0 + %b2.0 = icmp slt i32 %sub68, 0 %b2.0 = select i1 %cmp69.inv, i32 %sub73, i32 0 %cmp75 = icmp sgt i32 %k.1, -1 br i1 %cmp75, label %if.then77, label %if.else79 @@ -6407,7 +6407,7 @@ if.end66: ; preds = %if.then59, %select. %sub68 = add i32 %33, %34 %sub73 = sub nsw i32 0, %sub68 %s2.0 = tail call i32 @llvm.smax.i32(i32 %sub68, i32 0) - %cmp69.inv = icmp slt i32 %sub68, 0 + %b2.0 = icmp slt i32 %sub68, 0 %b2.0 = select i1 %cmp69.inv, i32 %sub73, i32 0 %cmp75 = icmp sgt i32 %k.1, -1 br i1 %cmp75, label %if.then77, label %if.else79 diff --git a/bench/icu/optimized/locdispnames.ll b/bench/icu/optimized/locdispnames.ll index ad161c900f4..76cf270e5ef 100644 --- a/bench/icu/optimized/locdispnames.ll +++ b/bench/icu/optimized/locdispnames.ll @@ -1684,8 +1684,8 @@ return: ; preds = %if.then4.i27, %if.e ; Function Attrs: mustprogress uwtable define i32 @uloc_getDisplayName_75(ptr noundef %locale, ptr noundef %displayLocale, ptr noundef %dest, i32 noundef %destCapacity, ptr noundef %pErrorCode) local_unnamed_addr #1 personality ptr @__gxx_personality_v0 { entry: - %localeBuffer.i.i208 = alloca [628 x i8], align 16 - %localStatus.i.i209 = alloca i32, align 4 + %localeBuffer.i.i210 = alloca [628 x i8], align 16 + %localStatus.i.i211 = alloca i32, align 4 %localeBuffer.i.i182 = alloca [628 x i8], align 16 %localStatus.i.i183 = alloca i32, align 4 %localeBuffer.i.i159 = alloca [628 x i8], align 16 @@ -1884,8 +1884,8 @@ if.then68: ; preds = %do.body br i1 %cmp69.not, label %for.body.preheader, label %while.cond.preheader while.cond.preheader: ; preds = %if.then68 - %cmp71264 = icmp sgt i32 %sub0Pos.2, 0 - br i1 %cmp71264, label %while.body.preheader, label %for.body.preheader + %cmp71268 = icmp sgt i32 %sub0Pos.2, 0 + br i1 %cmp71268, label %while.body.preheader, label %for.body.preheader while.body.preheader: ; preds = %while.cond.preheader %wide.trip.count = zext nneg i32 %sub0Pos.2 to i64 @@ -1893,45 +1893,45 @@ while.body.preheader: ; preds = %while.cond.preheade while.body: ; preds = %while.body.preheader, %while.body %indvars.iv = phi i64 [ 0, %while.body.preheader ], [ %indvars.iv.next, %while.body ] - %p.0265 = phi ptr [ %dest, %while.body.preheader ], [ %incdec.ptr, %while.body ] + %p.0269 = phi ptr [ %dest, %while.body.preheader ], [ %incdec.ptr, %while.body ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %arrayidx = getelementptr inbounds nuw i16, ptr %pattern.0, i64 %indvars.iv %9 = load i16, ptr %arrayidx, align 2 - %incdec.ptr = getelementptr inbounds nuw i8, ptr %p.0265, i64 2 - store i16 %9, ptr %p.0265, align 2 + %incdec.ptr = getelementptr inbounds nuw i8, ptr %p.0269, i64 2 + store i16 %9, ptr %p.0269, align 2 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count br i1 %exitcond.not, label %for.body.preheader, label %while.body, !llvm.loop !5 for.body.preheader: ; preds = %while.body, %while.cond.preheader, %do.body, %if.then68 - %patPos.3286.ph = phi i32 [ %sub0Pos.2, %if.then68 ], [ 0, %do.body ], [ 0, %while.cond.preheader ], [ %sub0Pos.2, %while.body ] - %p.3285.ph = phi ptr [ %dest, %if.then68 ], [ %dest, %do.body ], [ %dest, %while.cond.preheader ], [ %incdec.ptr, %while.body ] + %patPos.3290.ph = phi i32 [ %sub0Pos.2, %if.then68 ], [ 0, %do.body ], [ 0, %while.cond.preheader ], [ %sub0Pos.2, %while.body ] + %p.3289.ph = phi ptr [ %dest, %if.then68 ], [ %dest, %do.body ], [ %dest, %while.cond.preheader ], [ %incdec.ptr, %while.body ] br label %for.body for.body: ; preds = %for.body.preheader, %if.end268 - %length.1293 = phi i32 [ %length.5, %if.end268 ], [ %sub0Pos.2, %for.body.preheader ] - %resti.0292 = phi i32 [ %resti.1, %if.end268 ], [ 0, %for.body.preheader ] - %subi.0291 = phi i32 [ %subi.1, %if.end268 ], [ 0, %for.body.preheader ] - %restPos.0290 = phi i32 [ %restPos.1, %if.end268 ], [ 0, %for.body.preheader ] - %restLen.0289 = phi i32 [ %restLen.1, %if.end268 ], [ 0, %for.body.preheader ] - %langPos.0288 = phi i32 [ %langPos.2, %if.end268 ], [ 0, %for.body.preheader ] - %langLen.0287 = phi i32 [ %langLen.2, %if.end268 ], [ 0, %for.body.preheader ] - %patPos.3286 = phi i32 [ %patPos.4, %if.end268 ], [ %patPos.3286.ph, %for.body.preheader ] - %p.3285 = phi ptr [ %p.12, %if.end268 ], [ %p.3285.ph, %for.body.preheader ] - %sub0Pos.3284 = phi i32 [ %sub0Pos.4, %if.end268 ], [ %sub0Pos.2, %for.body.preheader ] - %retry.1283 = phi i8 [ %retry.2, %if.end268 ], [ %retry.0, %for.body.preheader ] - %haveRest.1282 = phi i8 [ %haveRest.2, %if.end268 ], [ %haveRest.0, %for.body.preheader ] - %haveLang.1281 = phi i8 [ %haveLang.3, %if.end268 ], [ %haveLang.0, %for.body.preheader ] - %sub = sub nsw i32 %destCapacity, %length.1293 + %length.1297 = phi i32 [ %length.5, %if.end268 ], [ %sub0Pos.2, %for.body.preheader ] + %resti.0296 = phi i32 [ %resti.1, %if.end268 ], [ 0, %for.body.preheader ] + %subi.0295 = phi i32 [ %subi.1, %if.end268 ], [ 0, %for.body.preheader ] + %restPos.0294 = phi i32 [ %restPos.1, %if.end268 ], [ 0, %for.body.preheader ] + %restLen.0293 = phi i32 [ %restLen.1, %if.end268 ], [ 0, %for.body.preheader ] + %langPos.0292 = phi i32 [ %langPos.2, %if.end268 ], [ 0, %for.body.preheader ] + %langLen.0291 = phi i32 [ %langLen.2, %if.end268 ], [ 0, %for.body.preheader ] + %patPos.3290 = phi i32 [ %patPos.4, %if.end268 ], [ %patPos.3290.ph, %for.body.preheader ] + %p.3289 = phi ptr [ %p.12, %if.end268 ], [ %p.3289.ph, %for.body.preheader ] + %sub0Pos.3288 = phi i32 [ %sub0Pos.4, %if.end268 ], [ %sub0Pos.2, %for.body.preheader ] + %retry.1287 = phi i8 [ %retry.2, %if.end268 ], [ %retry.0, %for.body.preheader ] + %haveRest.1286 = phi i8 [ %haveRest.2, %if.end268 ], [ %haveRest.0, %for.body.preheader ] + %haveLang.1285 = phi i8 [ %haveLang.3, %if.end268 ], [ %haveLang.0, %for.body.preheader ] + %sub = sub nsw i32 %destCapacity, %length.1297 %cmp77 = icmp slt i32 %sub, 1 - %idx.ext = sext i32 %length.1293 to i64 + %idx.ext = sext i32 %length.1297 to i64 %add.ptr80 = getelementptr inbounds i16, ptr %dest, i64 %idx.ext %p.4 = select i1 %cmp77, ptr %p.3285, ptr %add.ptr80 %cap.0 = call i32 @llvm.smax.i32(i32 %sub, i32 0) - %cmp82 = icmp eq i32 %subi.0291, %langi.0 + %cmp82 = icmp eq i32 %subi.0295, %langi.0 br i1 %cmp82, label %if.then83, label %if.else92 if.then83: ; preds = %for.body - %tobool84.not = icmp eq i8 %haveLang.1281, 0 + %tobool84.not = icmp eq i8 %haveLang.1285, 0 br i1 %tobool84.not, label %if.end201, label %lor.lhs.false.i.i lor.lhs.false.i.i: ; preds = %if.then83 @@ -1939,15 +1939,15 @@ lor.lhs.false.i.i: ; preds = %if.then83 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %localStatus.i.i) %10 = load i32, ptr %pErrorCode, align 4 %cmp.i.i.i = icmp slt i32 %10, 1 - br i1 %cmp.i.i.i, label %if.end.i.i, label %invoke.cont87 + br i1 %cmp.i.i.i, label %lor.lhs.false2.i.i, label %invoke.cont87 -if.end.i.i: ; preds = %lor.lhs.false.i.i +lor.lhs.false2.i.i: ; preds = %lor.lhs.false.i.i %cmp3.i.i = icmp sgt i32 %sub, 0 %cmp4.i.i = icmp eq ptr %p.4, null %or.cond.i.i = and i1 %cmp3.i.i, %cmp4.i.i br i1 %or.cond.i.i, label %invoke.cont87.sink.split, label %if.end6.i.i -if.end6.i.i: ; preds = %if.end.i.i +if.end6.i.i: ; preds = %lor.lhs.false2.i.i store i32 0, ptr %localStatus.i.i, align 4 %call7.i.i157 = invoke noundef i32 @uloc_getLanguage_75(ptr noundef %locale, ptr noundef nonnull %localeBuffer.i.i, i32 noundef 628, ptr noundef nonnull %localStatus.i.i) to label %call7.i.i.noexc unwind label %lpad86 @@ -1971,7 +1971,7 @@ if.end22.i.i: ; preds = %if.then15.i.i, %if. %call26.i.i158 = invoke fastcc noundef i32 @_ZL19_getStringOrCopyKeyPKcS0_S0_S0_S0_S0_PDsiP10UErrorCode(ptr noundef nonnull @.str, ptr noundef %displayLocale, ptr noundef nonnull @_ZL11_kLanguages, ptr noundef null, ptr noundef nonnull %localeBuffer.i.i, ptr noundef nonnull %localeBuffer.i.i, ptr noundef %p.4, i32 noundef %cap.0, ptr noundef nonnull %pErrorCode) to label %invoke.cont87 unwind label %lpad86 -invoke.cont87.sink.split: ; preds = %call7.i.i.noexc, %if.end.i.i +invoke.cont87.sink.split: ; preds = %call7.i.i.noexc, %lor.lhs.false2.i.i store i32 1, ptr %pErrorCode, align 4 br label %invoke.cont87 @@ -1979,27 +1979,27 @@ invoke.cont87: ; preds = %invoke.cont87.sink. %retval.0.i.i = phi i32 [ 0, %lor.lhs.false.i.i ], [ %call26.i.i158, %if.end22.i.i ], [ 0, %invoke.cont87.sink.split ] call void @llvm.lifetime.end.p0(i64 628, ptr nonnull %localeBuffer.i.i) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %localStatus.i.i) - %add = add nsw i32 %retval.0.i.i, %length.1293 + %add = add nsw i32 %retval.0.i.i, %length.1297 %cmp89 = icmp sgt i32 %retval.0.i.i, 0 %conv90 = zext i1 %cmp89 to i8 br label %if.end201 -lpad86: ; preds = %if.end6.i, %if.then.i235, %if.end22.i.i224, %if.then15.i.i225, %if.end6.i.i218, %if.end22.i.i198, %if.then15.i.i199, %if.end6.i.i192, %if.end22.i.i173, %if.then15.i.i174, %if.end6.i.i167, %if.end22.i.i, %if.end6.i.i, %if.then251, %if.end136, %sw.default, %sw.bb105 +lpad86: ; preds = %if.end6.i, %if.then.i239, %if.end22.i.i228, %if.then15.i.i225, %if.end6.i.i218, %if.end22.i.i200, %if.then15.i.i201, %if.end6.i.i194, %if.end22.i.i173, %if.then15.i.i174, %if.end6.i.i167, %if.end22.i.i, %if.end6.i.i, %if.then251, %if.end136, %sw.default, %sw.bb105 %12 = landingpad { ptr, i32 } cleanup call void @_ZN6icu_7524LocalUEnumerationPointerD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %kenum) #12 br label %eh.resume if.else92: ; preds = %for.body - %tobool93.not = icmp eq i8 %haveRest.1282, 0 + %tobool93.not = icmp eq i8 %haveRest.1286, 0 br i1 %tobool93.not, label %if.end201, label %if.else95 if.else95: ; preds = %if.else92 - %inc96 = add nsw i32 %resti.0292, 1 - switch i32 %resti.0292, label %if.else95.sw.default_crit_edge [ + %inc96 = add nsw i32 %resti.0296, 1 + switch i32 %resti.0296, label %if.else95.sw.default_crit_edge [ i32 0, label %sw.bb i32 1, label %lor.lhs.false.i.i185 - i32 2, label %lor.lhs.false.i.i211 + i32 2, label %lor.lhs.false.i.i213 i32 3, label %sw.bb105 ] @@ -2059,93 +2059,93 @@ lor.lhs.false.i.i185: ; preds = %if.else95 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %localStatus.i.i183) %15 = load i32, ptr %pErrorCode, align 4 %cmp.i.i.i186 = icmp slt i32 %15, 1 - br i1 %cmp.i.i.i186, label %if.end.i.i188, label %invoke.cont100 + br i1 %cmp.i.i.i186, label %lor.lhs.false2.i.i190, label %invoke.cont100 -if.end.i.i188: ; preds = %lor.lhs.false.i.i185 - %cmp3.i.i189 = icmp sgt i32 %sub, 0 - %cmp4.i.i190 = icmp eq ptr %p.4, null - %or.cond.i.i191 = and i1 %cmp3.i.i189, %cmp4.i.i190 +lor.lhs.false2.i.i190: ; preds = %lor.lhs.false.i.i185 + %cmp4.i.i192 = icmp sgt i32 %sub, 0 + %or.cond.i.i193 = icmp eq ptr %p.4, null + %or.cond.i.i191 = and i1 %cmp4.i.i192, %cmp4.i.i190 br i1 %or.cond.i.i191, label %invoke.cont100.sink.split, label %if.end6.i.i192 -if.end6.i.i192: ; preds = %if.end.i.i188 +if.end6.i.i194: ; preds = %lor.lhs.false2.i.i190 store i32 0, ptr %localStatus.i.i183, align 4 - %call7.i.i203 = invoke noundef i32 @uloc_getCountry_75(ptr noundef %locale, ptr noundef nonnull %localeBuffer.i.i182, i32 noundef 628, ptr noundef nonnull %localStatus.i.i183) - to label %call7.i.i.noexc202 unwind label %lpad86 + %call7.i.i205 = invoke noundef i32 @uloc_getCountry_75(ptr noundef %locale, ptr noundef nonnull %localeBuffer.i.i182, i32 noundef 628, ptr noundef nonnull %localStatus.i.i183) + to label %call7.i.i.noexc204 unwind label %lpad86 -call7.i.i.noexc202: ; preds = %if.end6.i.i192 +call7.i.i.noexc204: ; preds = %if.end6.i.i194 %16 = load i32, ptr %localStatus.i.i183, align 4 - %cmp.i14.i.i193 = icmp sgt i32 %16, 0 - %cmp11.i.i194 = icmp eq i32 %16, -124 - %or.cond1.i.i195 = or i1 %cmp.i14.i.i193, %cmp11.i.i194 - br i1 %or.cond1.i.i195, label %invoke.cont100.sink.split, label %if.end13.i.i196 + %cmp.i14.i.i195 = icmp sgt i32 %16, 0 + %cmp11.i.i196 = icmp eq i32 %16, -124 + %or.cond1.i.i197 = or i1 %cmp.i14.i.i195, %cmp11.i.i196 + br i1 %or.cond1.i.i197, label %invoke.cont100.sink.split, label %if.end13.i.i198 -if.end13.i.i196: ; preds = %call7.i.i.noexc202 - %cmp14.i.i197 = icmp eq i32 %call7.i.i203, 0 - br i1 %cmp14.i.i197, label %if.then15.i.i199, label %if.end22.i.i198 +if.end13.i.i198: ; preds = %call7.i.i.noexc204 + %cmp14.i.i199 = icmp eq i32 %call7.i.i205, 0 + br i1 %cmp14.i.i199, label %if.then15.i.i201, label %if.end22.i.i200 -if.then15.i.i199: ; preds = %if.end13.i.i196 - %call20.i.i205 = invoke i32 @u_terminateUChars_75(ptr noundef %p.4, i32 noundef %cap.0, i32 noundef 0, ptr noundef nonnull %pErrorCode) +if.then15.i.i201: ; preds = %if.end13.i.i198 + %call20.i.i207 = invoke i32 @u_terminateUChars_75(ptr noundef %p.4, i32 noundef %cap.0, i32 noundef 0, ptr noundef nonnull %pErrorCode) to label %invoke.cont100 unwind label %lpad86 -if.end22.i.i198: ; preds = %if.end13.i.i196 - %call26.i.i207 = invoke fastcc noundef i32 @_ZL19_getStringOrCopyKeyPKcS0_S0_S0_S0_S0_PDsiP10UErrorCode(ptr noundef nonnull @.str.3, ptr noundef %displayLocale, ptr noundef nonnull @_ZL11_kCountries, ptr noundef null, ptr noundef nonnull %localeBuffer.i.i182, ptr noundef nonnull %localeBuffer.i.i182, ptr noundef %p.4, i32 noundef %cap.0, ptr noundef nonnull %pErrorCode) +if.end22.i.i200: ; preds = %if.end13.i.i198 + %call26.i.i209 = invoke fastcc noundef i32 @_ZL19_getStringOrCopyKeyPKcS0_S0_S0_S0_S0_PDsiP10UErrorCode(ptr noundef nonnull @.str.3, ptr noundef %displayLocale, ptr noundef nonnull @_ZL11_kCountries, ptr noundef null, ptr noundef nonnull %localeBuffer.i.i182, ptr noundef nonnull %localeBuffer.i.i182, ptr noundef %p.4, i32 noundef %cap.0, ptr noundef nonnull %pErrorCode) to label %invoke.cont100 unwind label %lpad86 -invoke.cont100.sink.split: ; preds = %call7.i.i.noexc202, %if.end.i.i188 +invoke.cont100.sink.split: ; preds = %call7.i.i.noexc204, %lor.lhs.false2.i.i190 store i32 1, ptr %pErrorCode, align 4 br label %invoke.cont100 -invoke.cont100: ; preds = %invoke.cont100.sink.split, %lor.lhs.false.i.i185, %if.then15.i.i199, %if.end22.i.i198 - %retval.0.i.i187 = phi i32 [ 0, %lor.lhs.false.i.i185 ], [ %call20.i.i205, %if.then15.i.i199 ], [ %call26.i.i207, %if.end22.i.i198 ], [ 0, %invoke.cont100.sink.split ] +invoke.cont100: ; preds = %invoke.cont100.sink.split, %lor.lhs.false.i.i185, %if.then15.i.i201, %if.end22.i.i200 + %retval.0.i.i187 = phi i32 [ 0, %lor.lhs.false.i.i185 ], [ %call20.i.i207, %if.then15.i.i201 ], [ %call26.i.i209, %if.end22.i.i200 ], [ 0, %invoke.cont100.sink.split ] call void @llvm.lifetime.end.p0(i64 628, ptr nonnull %localeBuffer.i.i182) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %localStatus.i.i183) br label %sw.epilog -lor.lhs.false.i.i211: ; preds = %if.else95 - call void @llvm.lifetime.start.p0(i64 628, ptr nonnull %localeBuffer.i.i208) - call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %localStatus.i.i209) +lor.lhs.false.i.i213: ; preds = %if.else95 + call void @llvm.lifetime.start.p0(i64 628, ptr nonnull %localeBuffer.i.i210) + call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %localStatus.i.i211) %17 = load i32, ptr %pErrorCode, align 4 - %cmp.i.i.i212 = icmp slt i32 %17, 1 - br i1 %cmp.i.i.i212, label %if.end.i.i214, label %invoke.cont103 + %cmp.i.i.i214 = icmp slt i32 %17, 1 + br i1 %cmp.i.i.i214, label %lor.lhs.false2.i.i218, label %invoke.cont103 -if.end.i.i214: ; preds = %lor.lhs.false.i.i211 - %cmp3.i.i215 = icmp sgt i32 %sub, 0 - %cmp4.i.i216 = icmp eq ptr %p.4, null - %or.cond.i.i217 = and i1 %cmp3.i.i215, %cmp4.i.i216 +lor.lhs.false2.i.i218: ; preds = %lor.lhs.false.i.i213 + %cmp4.i.i220 = icmp sgt i32 %sub, 0 + %or.cond.i.i221 = icmp eq ptr %p.4, null + %or.cond.i.i217 = and i1 %cmp4.i.i220, %cmp4.i.i216 br i1 %or.cond.i.i217, label %invoke.cont103.sink.split, label %if.end6.i.i218 -if.end6.i.i218: ; preds = %if.end.i.i214 - store i32 0, ptr %localStatus.i.i209, align 4 +if.end6.i.i218:; preds = %lor.lhs.false2.i.i218 + store i32 0, ptr %localStatus.i.i211, align 4 %call7.i.i229 = invoke noundef i32 @uloc_getVariant_75(ptr noundef %locale, ptr noundef nonnull %localeBuffer.i.i208, i32 noundef 628, ptr noundef nonnull %localStatus.i.i209) to label %call7.i.i.noexc228 unwind label %lpad86 -call7.i.i.noexc228: ; preds = %if.end6.i.i218 - %18 = load i32, ptr %localStatus.i.i209, align 4 - %cmp.i14.i.i219 = icmp sgt i32 %18, 0 - %cmp11.i.i220 = icmp eq i32 %18, -124 +call7.i.i.noexc228:; preds = %if.end6.i.i218 + %cmp.i14.i.i223 = load i32, ptr %localStatus.i.i211, align 4 + %cmp11.i.i224 = icmp sgt i32 %18, 0 + %or.cond1.i.i225 = icmp eq i32 %cmp.i14.i.i223, -124 %or.cond1.i.i221 = or i1 %cmp.i14.i.i219, %cmp11.i.i220 br i1 %or.cond1.i.i221, label %invoke.cont103.sink.split, label %if.end13.i.i222 -if.end13.i.i222: ; preds = %call7.i.i.noexc228 +if.end13.i.i222:; preds = %call7.i.i.noexc228 %cmp14.i.i223 = icmp eq i32 %call7.i.i229, 0 br i1 %cmp14.i.i223, label %if.then15.i.i225, label %if.end22.i.i224 -if.then15.i.i225: ; preds = %if.end13.i.i222 +if.then15.i.i225:; preds = %if.end13.i.i222 %call20.i.i231 = invoke i32 @u_terminateUChars_75(ptr noundef %p.4, i32 noundef %cap.0, i32 noundef 0, ptr noundef nonnull %pErrorCode) to label %invoke.cont103 unwind label %lpad86 -if.end22.i.i224: ; preds = %if.end13.i.i222 - %call26.i.i233 = invoke fastcc noundef i32 @_ZL19_getStringOrCopyKeyPKcS0_S0_S0_S0_S0_PDsiP10UErrorCode(ptr noundef nonnull @.str, ptr noundef %displayLocale, ptr noundef nonnull @_ZL10_kVariants, ptr noundef null, ptr noundef nonnull %localeBuffer.i.i208, ptr noundef nonnull %localeBuffer.i.i208, ptr noundef %p.4, i32 noundef %cap.0, ptr noundef nonnull %pErrorCode) +if.end22.i.i228: ; preds = %if.end13.i.i222 + %call26.i.i237 = invoke fastcc noundef i32 @_ZL19_getStringOrCopyKeyPKcS0_S0_S0_S0_S0_PDsiP10UErrorCode(ptr noundef nonnull @.str, ptr noundef %displayLocale, ptr noundef nonnull @_ZL10_kVariants, ptr noundef null, ptr noundef nonnull %localeBuffer.i.i210, ptr noundef nonnull %localeBuffer.i.i210, ptr noundef %p.4, i32 noundef %cap.0, ptr noundef nonnull %pErrorCode) to label %invoke.cont103 unwind label %lpad86 -invoke.cont103.sink.split: ; preds = %call7.i.i.noexc228, %if.end.i.i214 +invoke.cont103.sink.split: ; preds = %call7.i.i.noexc228, %lor.lhs.false2.i.i218 store i32 1, ptr %pErrorCode, align 4 br label %invoke.cont103 -invoke.cont103: ; preds = %invoke.cont103.sink.split, %lor.lhs.false.i.i211, %if.then15.i.i225, %if.end22.i.i224 - %retval.0.i.i213 = phi i32 [ 0, %lor.lhs.false.i.i211 ], [ %call20.i.i231, %if.then15.i.i225 ], [ %call26.i.i233, %if.end22.i.i224 ], [ 0, %invoke.cont103.sink.split ] - call void @llvm.lifetime.end.p0(i64 628, ptr nonnull %localeBuffer.i.i208) - call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %localStatus.i.i209) +invoke.cont103: ; preds = %invoke.cont103.sink.split, %lor.lhs.false.i.i213, %if.then15.i.i225, %if.end22.i.i228 + %retval.0.i.i215 = phi i32 [ 0, %lor.lhs.false.i.i213 ], [ %call20.i.i231, %if.then15.i.i225 ], [ %call26.i.i237, %if.end22.i.i228 ], [ 0, %invoke.cont103.sink.split ] + call void @llvm.lifetime.end.p0(i64 628, ptr nonnull %localeBuffer.i.i210) + call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %localStatus.i.i211) br label %sw.epilog sw.bb105: ; preds = %if.else95 @@ -2154,14 +2154,14 @@ sw.bb105: ; preds = %if.else95 invoke.cont106: ; preds = %sw.bb105 %19 = load ptr, ptr %kenum, align 8 - %cmp.not.i234 = icmp eq ptr %19, null - br i1 %cmp.not.i234, label %_ZN6icu_7524LocalUEnumerationPointer12adoptInsteadEP12UEnumeration.exit, label %if.then.i235 + %cmp.not.i238 = icmp eq ptr %19, null + br i1 %cmp.not.i238, label %_ZN6icu_7524LocalUEnumerationPointer12adoptInsteadEP12UEnumeration.exit, label %if.then.i239 -if.then.i235: ; preds = %invoke.cont106 +if.then.i239: ; preds = %invoke.cont106 invoke void @uenum_close_75(ptr noundef nonnull %19) to label %_ZN6icu_7524LocalUEnumerationPointer12adoptInsteadEP12UEnumeration.exit unwind label %lpad86 -_ZN6icu_7524LocalUEnumerationPointer12adoptInsteadEP12UEnumeration.exit: ; preds = %if.then.i235, %invoke.cont106 +_ZN6icu_7524LocalUEnumerationPointer12adoptInsteadEP12UEnumeration.exit: ; preds = %if.then.i239, %invoke.cont106 store ptr %call107, ptr %kenum, align 8 br label %sw.default @@ -2176,21 +2176,21 @@ invoke.cont111: ; preds = %sw.default lor.lhs.false.i: ; preds = %invoke.cont111 %21 = load i32, ptr %pErrorCode, align 4 - %cmp.i.i237 = icmp slt i32 %21, 1 - br i1 %cmp.i.i237, label %if.end.i, label %invoke.cont116.thread + %cmp.i.i241 = icmp slt i32 %21, 1 + br i1 %cmp.i.i241, label %lor.lhs.false2.i, label %invoke.cont116.thread -if.end.i: ; preds = %lor.lhs.false.i +lor.lhs.false2.i: ; preds = %lor.lhs.false.i %cmp3.i = icmp sgt i32 %sub, 0 %cmp4.i = icmp eq ptr %p.4, null %or.cond.i = and i1 %cmp3.i, %cmp4.i br i1 %or.cond.i, label %if.then5.i, label %if.end6.i -if.then5.i: ; preds = %if.end.i +if.then5.i: ; preds = %lor.lhs.false2.i store i32 1, ptr %pErrorCode, align 4 br label %invoke.cont116.thread -if.end6.i: ; preds = %if.end.i - %call7.i238 = invoke fastcc noundef i32 @_ZL19_getStringOrCopyKeyPKcS0_S0_S0_S0_S0_PDsiP10UErrorCode(ptr noundef nonnull @.str, ptr noundef %displayLocale, ptr noundef nonnull @_ZL6_kKeys, ptr noundef null, ptr noundef nonnull %call112, ptr noundef nonnull %call112, ptr noundef %p.4, i32 noundef %cap.0, ptr noundef nonnull %pErrorCode) +if.end6.i: ; preds = %lor.lhs.false2.i + %call7.i242 = invoke fastcc noundef i32 @_ZL19_getStringOrCopyKeyPKcS0_S0_S0_S0_S0_PDsiP10UErrorCode(ptr noundef nonnull @.str, ptr noundef %displayLocale, ptr noundef nonnull @_ZL6_kKeys, ptr noundef null, ptr noundef nonnull %call112, ptr noundef nonnull %call112, ptr noundef %p.4, i32 noundef %cap.0, ptr noundef nonnull %pErrorCode) to label %invoke.cont116 unwind label %lpad86 invoke.cont116.thread: ; preds = %if.then5.i, %lor.lhs.false.i @@ -2198,23 +2198,23 @@ invoke.cont116.thread: ; preds = %if.then5.i, %lor.lh br label %if.end133 invoke.cont116: ; preds = %if.end6.i - store i32 %call7.i238, ptr %len, align 4 - %tobool118.not = icmp eq i32 %call7.i238, 0 + store i32 %call7.i242, ptr %len, align 4 + %tobool118.not = icmp eq i32 %call7.i242, 0 br i1 %tobool118.not, label %if.end133, label %if.then119 if.then119: ; preds = %invoke.cont116 - %cmp120 = icmp slt i32 %call7.i238, %cap.0 + %cmp120 = icmp slt i32 %call7.i242, %cap.0 br i1 %cmp120, label %if.then121, label %if.end124 if.then121: ; preds = %if.then119 - %idxprom122 = sext i32 %call7.i238 to i64 + %idxprom122 = sext i32 %call7.i242 to i64 %arrayidx123 = getelementptr inbounds i16, ptr %p.4, i64 %idxprom122 store i16 61, ptr %arrayidx123, align 2 - %.pre303 = load i32, ptr %len, align 4 + %.pre307 = load i32, ptr %len, align 4 br label %if.end124 if.end124: ; preds = %if.then121, %if.then119 - %22 = phi i32 [ %.pre303, %if.then121 ], [ %call7.i238, %if.then119 ] + %22 = phi i32 [ %.pre307, %if.then121 ], [ %call7.i242, %if.then119 ] %add125 = add nsw i32 %22, 1 store i32 %add125, ptr %len, align 4 %sub126 = sub nsw i32 %cap.0, %add125 @@ -2246,26 +2246,26 @@ invoke.cont137: ; preds = %if.end136 %tobool139.not = icmp eq i32 %24, 0 %cmp141 = icmp eq i32 %call138, 0 %dec = sext i1 %cmp141 to i32 - %spec.select306 = add nsw i32 %24, %dec - %25 = select i1 %tobool139.not, i32 0, i32 %spec.select306 - %26 = select i1 %tobool139.not, i1 true, i1 %cmp77 + %spec.select310 = add nsw i32 %24, %dec + %spec.select260 = select i1 %tobool139.not, i32 0, i32 %spec.select306 + %25 = select i1 %tobool139.not, i1 true, i1 %cmp77 %p.8 = select i1 %26, ptr %p.7, ptr %add.ptr80 %cap.3 = select i1 %tobool139.not, i32 %cap.2, i32 %cap.0 %add152 = add nsw i32 %25, %call138 br label %sw.epilog sw.epilog: ; preds = %invoke.cont137, %invoke.cont103, %invoke.cont100, %invoke.cont97 - %add152.sink = phi i32 [ %add152, %invoke.cont137 ], [ %retval.0.i.i213, %invoke.cont103 ], [ %retval.0.i.i187, %invoke.cont100 ], [ %retval.0.i.i162, %invoke.cont97 ] + %add152.sink = phi i32 [ %add152, %invoke.cont137 ], [ %retval.0.i.i215, %invoke.cont103 ], [ %retval.0.i.i187, %invoke.cont100 ], [ %retval.0.i.i162, %invoke.cont97 ] %p.6 = phi ptr [ %p.8, %invoke.cont137 ], [ %p.4, %invoke.cont103 ], [ %p.4, %invoke.cont100 ], [ %p.4, %invoke.cont97 ] - %restPos.2 = phi i32 [ %restPos.0290, %invoke.cont137 ], [ %restPos.0290, %invoke.cont103 ], [ %restPos.0290, %invoke.cont100 ], [ %length.1293, %invoke.cont97 ] + %restPos.2 = phi i32 [ %restPos.0294, %invoke.cont137 ], [ %restPos.0294, %invoke.cont103 ], [ %restPos.0294, %invoke.cont100 ], [ %length.1297, %invoke.cont97 ] %cap.1 = phi i32 [ %cap.3, %invoke.cont137 ], [ %cap.0, %invoke.cont103 ], [ %cap.0, %invoke.cont100 ], [ %cap.0, %invoke.cont97 ] store i32 %add152.sink, ptr %len, align 4 %cmp154 = icmp sgt i32 %add152.sink, 0 br i1 %cmp154, label %if.then155, label %if.end201 if.then155: ; preds = %sw.epilog - %27 = load i32, ptr %sepLen, align 4 - %add156 = add nsw i32 %27, %add152.sink + %26 = load i32, ptr %sepLen, align 4 + %add156 = add nsw i32 %26, %add152.sink %cmp157.not = icmp sgt i32 %add156, %cap.1 br i1 %cmp157.not, label %if.end185, label %for.body163.preheader @@ -2275,14 +2275,14 @@ for.body163.preheader: ; preds = %if.then155 br label %for.body163 for.cond176.preheader: ; preds = %for.inc - %.pre304 = load i32, ptr %sepLen, align 4 - %cmp177271 = icmp sgt i32 %.pre304, 0 - br i1 %cmp177271, label %for.body178, label %if.end185 + %.pre308 = load i32, ptr %sepLen, align 4 + %cmp177275 = icmp sgt i32 %.pre308, 0 + br i1 %cmp177275, label %for.body178, label %if.end185 for.body163: ; preds = %for.body163.preheader, %for.inc - %p.10269 = phi ptr [ %incdec.ptr175, %for.inc ], [ %p.6, %for.body163.preheader ] - %28 = load i16, ptr %p.10269, align 2 - %conv164 = zext i16 %28 to i32 + %p.10273 = phi ptr [ %incdec.ptr175, %for.inc ], [ %p.6, %for.body163.preheader ] + %27 = load i16, ptr %p.10273, align 2 + %conv164 = zext i16 %27 to i32 %cmp166 = icmp eq i32 %formatOpenParen.0, %conv164 br i1 %cmp166, label %for.inc.sink.split, label %if.else168 @@ -2292,59 +2292,59 @@ if.else168: ; preds = %for.body163 for.inc.sink.split: ; preds = %if.else168, %for.body163 %formatReplaceOpenParen.0.sink = phi i16 [ %formatReplaceOpenParen.0, %for.body163 ], [ %formatReplaceCloseParen.0, %if.else168 ] - store i16 %formatReplaceOpenParen.0.sink, ptr %p.10269, align 2 + store i16 %formatReplaceOpenParen.0.sink, ptr %p.10273, align 2 br label %for.inc for.inc: ; preds = %for.inc.sink.split, %if.else168 - %incdec.ptr175 = getelementptr inbounds nuw i8, ptr %p.10269, i64 2 + %incdec.ptr175 = getelementptr inbounds nuw i8, ptr %p.10273, i64 2 %cmp162 = icmp ult ptr %incdec.ptr175, %add.ptr160 br i1 %cmp162, label %for.body163, label %for.cond176.preheader, !llvm.loop !7 for.body178: ; preds = %for.cond176.preheader, %for.body178 - %indvars.iv296 = phi i64 [ %indvars.iv.next297, %for.body178 ], [ 0, %for.cond176.preheader ] - %p.11272 = phi ptr [ %incdec.ptr181, %for.body178 ], [ %incdec.ptr175, %for.cond176.preheader ] - %arrayidx180 = getelementptr inbounds nuw i16, ptr %add.ptr, i64 %indvars.iv296 - %29 = load i16, ptr %arrayidx180, align 2 - %incdec.ptr181 = getelementptr inbounds nuw i8, ptr %p.11272, i64 2 - store i16 %29, ptr %p.11272, align 2 - %indvars.iv.next297 = add nuw nsw i64 %indvars.iv296, 1 - %30 = load i32, ptr %sepLen, align 4 - %31 = sext i32 %30 to i64 - %cmp177 = icmp slt i64 %indvars.iv.next297, %31 + %indvars.iv300 = phi i64 [ %indvars.iv.next301, %for.body178 ], [ 0, %for.cond176.preheader ] + %p.11276 = phi ptr [ %incdec.ptr181, %for.body178 ], [ %incdec.ptr175, %for.cond176.preheader ] + %arrayidx180 = getelementptr inbounds nuw i16, ptr %add.ptr, i64 %indvars.iv300 + %28 = load i16, ptr %arrayidx180, align 2 + %incdec.ptr181 = getelementptr inbounds nuw i8, ptr %p.11276, i64 2 + store i16 %28, ptr %p.11276, align 2 + %indvars.iv.next301 = add nuw nsw i64 %indvars.iv300, 1 + %29 = load i32, ptr %sepLen, align 4 + %30 = sext i32 %29 to i64 + %cmp177 = icmp slt i64 %indvars.iv.next301, %30 br i1 %cmp177, label %for.body178, label %if.end185, !llvm.loop !8 if.end185: ; preds = %for.body178, %for.cond176.preheader, %if.then155 - %32 = phi i32 [ %27, %if.then155 ], [ %.pre304, %for.cond176.preheader ], [ %30, %for.body178 ] + %31 = phi i32 [ %26, %if.then155 ], [ %.pre308, %for.cond176.preheader ], [ %29, %for.body178 ] %p.9 = phi ptr [ %p.6, %if.then155 ], [ %incdec.ptr175, %for.cond176.preheader ], [ %incdec.ptr181, %for.body178 ] - %33 = load i32, ptr %len, align 4 - %add186 = add i32 %33, %length.1293 - %add187 = add i32 %add186, %32 + %32 = load i32, ptr %len, align 4 + %add186 = add i32 %32, %length.1297 + %add187 = add i32 %add186, %31 br label %if.end201 if.then190: ; preds = %invoke.cont111 store i32 0, ptr %len, align 4 - %cmp191.not = icmp eq i32 %length.1293, %restPos.0290 - %34 = load i32, ptr %sepLen, align 4 - %sub193 = select i1 %cmp191.not, i32 0, i32 %34 - %length.4 = sub nsw i32 %length.1293, %sub193 - %sub195 = sub nsw i32 %length.4, %restPos.0290 + %cmp191.not = icmp eq i32 %length.1297, %restPos.0294 + %33 = load i32, ptr %sepLen, align 4 + %sub193 = select i1 %cmp191.not, i32 0, i32 %33 + %length.4 = sub nsw i32 %length.1297, %sub193 + %sub195 = sub nsw i32 %length.4, %restPos.0294 %cmp196 = icmp sgt i32 %sub195, 0 %conv197 = zext i1 %cmp196 to i8 br label %if.end201 if.end201: ; preds = %sw.epilog, %if.else92, %if.then83, %invoke.cont87, %if.then190, %if.end185 - %haveLang.3 = phi i8 [ %haveLang.1281, %if.end185 ], [ %haveLang.1281, %if.then190 ], [ %conv90, %invoke.cont87 ], [ 0, %if.then83 ], [ %haveLang.1281, %if.else92 ], [ %haveLang.1281, %sw.epilog ] - %haveRest.2 = phi i8 [ 1, %if.end185 ], [ %conv197, %if.then190 ], [ %haveRest.1282, %invoke.cont87 ], [ %haveRest.1282, %if.then83 ], [ 0, %if.else92 ], [ 1, %sw.epilog ] + %haveLang.3 = phi i8 [ %haveLang.1285, %if.end185 ], [ %haveLang.1285, %if.then190 ], [ %conv90, %invoke.cont87 ], [ 0, %if.then83 ], [ %haveLang.1285, %if.else92 ], [ %haveLang.1285, %sw.epilog ] + %haveRest.2 = phi i8 [ 1, %if.end185 ], [ %conv197, %if.then190 ], [ %haveRest.1286, %invoke.cont87 ], [ %haveRest.1286, %if.then83 ], [ 0, %if.else92 ], [ 1, %sw.epilog ] %p.5 = phi ptr [ %p.9, %if.end185 ], [ %p.4, %if.then190 ], [ %p.4, %invoke.cont87 ], [ %p.4, %if.then83 ], [ %p.4, %if.else92 ], [ %p.6, %sw.epilog ] - %langLen.2 = phi i32 [ %langLen.0287, %if.end185 ], [ %langLen.0287, %if.then190 ], [ %retval.0.i.i, %invoke.cont87 ], [ %langLen.0287, %if.then83 ], [ %langLen.0287, %if.else92 ], [ %langLen.0287, %sw.epilog ] - %langPos.2 = phi i32 [ %langPos.0288, %if.end185 ], [ %langPos.0288, %if.then190 ], [ %length.1293, %invoke.cont87 ], [ %langPos.0288, %if.then83 ], [ %langPos.0288, %if.else92 ], [ %langPos.0288, %sw.epilog ] - %restLen.1 = phi i32 [ %restLen.0289, %if.end185 ], [ %sub195, %if.then190 ], [ %restLen.0289, %invoke.cont87 ], [ %restLen.0289, %if.then83 ], [ %restLen.0289, %if.else92 ], [ %restLen.0289, %sw.epilog ] - %restPos.1 = phi i32 [ %restPos.2, %if.end185 ], [ %restPos.0290, %if.then190 ], [ %restPos.0290, %invoke.cont87 ], [ %restPos.0290, %if.then83 ], [ %restPos.0290, %if.else92 ], [ %restPos.2, %sw.epilog ] - %resti.1 = phi i32 [ %inc96, %if.end185 ], [ %inc96, %if.then190 ], [ %resti.0292, %invoke.cont87 ], [ %resti.0292, %if.then83 ], [ %resti.0292, %if.else92 ], [ %inc96, %sw.epilog ] + %langLen.2 = phi i32 [ %langLen.0291, %if.end185 ], [ %langLen.0291, %if.then190 ], [ %retval.0.i.i, %invoke.cont87 ], [ %langLen.0291, %if.then83 ], [ %langLen.0291, %if.else92 ], [ %langLen.0291, %sw.epilog ] + %langPos.2 = phi i32 [ %langPos.0292, %if.end185 ], [ %langPos.0292, %if.then190 ], [ %length.1297, %invoke.cont87 ], [ %langPos.0292, %if.then83 ], [ %langPos.0292, %if.else92 ], [ %langPos.0292, %sw.epilog ] + %restLen.1 = phi i32 [ %restLen.0293, %if.end185 ], [ %sub195, %if.then190 ], [ %restLen.0293, %invoke.cont87 ], [ %restLen.0293, %if.then83 ], [ %restLen.0293, %if.else92 ], [ %restLen.0293, %sw.epilog ] + %restPos.1 = phi i32 [ %restPos.2, %if.end185 ], [ %restPos.0294, %if.then190 ], [ %restPos.0294, %invoke.cont87 ], [ %restPos.0294, %if.then83 ], [ %restPos.0294, %if.else92 ], [ %restPos.2, %sw.epilog ] + %resti.1 = phi i32 [ %inc96, %if.end185 ], [ %inc96, %if.then190 ], [ %resti.0296, %invoke.cont87 ], [ %resti.0296, %if.then83 ], [ %resti.0296, %if.else92 ], [ %inc96, %sw.epilog ] %subdone.0 = phi i1 [ true, %if.end185 ], [ false, %if.then190 ], [ false, %invoke.cont87 ], [ false, %if.then83 ], [ false, %if.else92 ], [ true, %sw.epilog ] - %length.3 = phi i32 [ %add187, %if.end185 ], [ %length.4, %if.then190 ], [ %add, %invoke.cont87 ], [ %length.1293, %if.then83 ], [ %length.1293, %if.else92 ], [ %length.1293, %sw.epilog ] - %35 = load i32, ptr %pErrorCode, align 4 - %cmp202 = icmp eq i32 %35, 15 + %length.3 = phi i32 [ %add187, %if.end185 ], [ %length.4, %if.then190 ], [ %add, %invoke.cont87 ], [ %length.1297, %if.then83 ], [ %length.1297, %if.else92 ], [ %length.1297, %sw.epilog ] + %34 = load i32, ptr %pErrorCode, align 4 + %cmp202 = icmp eq i32 %34, 15 br i1 %cmp202, label %if.then203, label %if.end204 if.then203: ; preds = %if.end201 @@ -2361,10 +2361,10 @@ if.then206: ; preds = %if.end204 br i1 %or.cond3, label %if.then210, label %if.else234 if.then210: ; preds = %if.then206 - %add211 = add nsw i32 %patPos.3286, 3 - %cmp212 = icmp eq i32 %subi.0291, 0 - %36 = load i32, ptr %patLen, align 4 - %cond = select i1 %cmp212, i32 %sub1Pos.0, i32 %36 + %add211 = add nsw i32 %patPos.3290, 3 + %cmp212 = icmp eq i32 %subi.0295, 0 + %35 = load i32, ptr %patLen, align 4 + %cond = select i1 %cmp212, i32 %sub1Pos.0, i32 %35 %sub213 = sub nsw i32 %cond, %add211 %add214 = add nsw i32 %sub213, %length.3 %cmp215.not = icmp sgt i32 %add214, %destCapacity @@ -2373,28 +2373,28 @@ if.then210: ; preds = %if.then206 if.then216: ; preds = %if.then210 %idx.ext217 = sext i32 %length.3 to i64 %add.ptr218 = getelementptr inbounds i16, ptr %dest, i64 %idx.ext217 - %cmp221275 = icmp sgt i32 %sub213, 0 - br i1 %cmp221275, label %for.body222.preheader, label %if.end266 + %cmp221279 = icmp sgt i32 %sub213, 0 + br i1 %cmp221279, label %for.body222.preheader, label %if.end266 for.body222.preheader: ; preds = %if.then216 - %37 = sext i32 %add211 to i64 + %36 = sext i32 %add211 to i64 br label %for.body222 for.body222: ; preds = %for.body222.preheader, %for.body222 - %indvars.iv299 = phi i64 [ %37, %for.body222.preheader ], [ %indvars.iv.next300, %for.body222 ] - %i219.0278 = phi i32 [ 0, %for.body222.preheader ], [ %inc228, %for.body222 ] - %p.13276 = phi ptr [ %add.ptr218, %for.body222.preheader ], [ %incdec.ptr226, %for.body222 ] - %indvars.iv.next300 = add nsw i64 %indvars.iv299, 1 - %arrayidx225 = getelementptr inbounds i16, ptr %pattern.0, i64 %indvars.iv299 - %38 = load i16, ptr %arrayidx225, align 2 - %incdec.ptr226 = getelementptr inbounds nuw i8, ptr %p.13276, i64 2 - store i16 %38, ptr %p.13276, align 2 - %inc228 = add nuw nsw i32 %i219.0278, 1 - %exitcond302.not = icmp eq i32 %inc228, %sub213 - br i1 %exitcond302.not, label %if.end266.loopexit, label %for.body222, !llvm.loop !9 + %indvars.iv303 = phi i64 [ %36, %for.body222.preheader ], [ %indvars.iv.next304, %for.body222 ] + %i219.0282 = phi i32 [ 0, %for.body222.preheader ], [ %inc228, %for.body222 ] + %p.13280 = phi ptr [ %add.ptr218, %for.body222.preheader ], [ %incdec.ptr226, %for.body222 ] + %indvars.iv.next304 = add nsw i64 %indvars.iv303, 1 + %arrayidx225 = getelementptr inbounds i16, ptr %pattern.0, i64 %indvars.iv303 + %37 = load i16, ptr %arrayidx225, align 2 + %incdec.ptr226 = getelementptr inbounds nuw i8, ptr %p.13280, i64 2 + store i16 %37, ptr %p.13280, align 2 + %inc228 = add nuw nsw i32 %i219.0282, 1 + %exitcond306.not = icmp eq i32 %inc228, %sub213 + br i1 %exitcond306.not, label %if.end266.loopexit, label %for.body222, !llvm.loop !9 if.else234: ; preds = %if.then206 - %cmp235 = icmp eq i32 %subi.0291, 0 + %cmp235 = icmp eq i32 %subi.0295, 0 br i1 %cmp235, label %if.end266, label %if.else237 if.else237: ; preds = %if.else234 @@ -2403,12 +2403,12 @@ if.else237: ; preds = %if.else234 if.then239: ; preds = %if.else237 %cond244 = select i1 %tobool207, i32 %langLen.2, i32 %restLen.1 - %cmp247 = icmp ne i32 %sub0Pos.3284, 0 + %cmp247 = icmp ne i32 %sub0Pos.3288, 0 %or.cond4 = select i1 %tobool245, i1 %cmp247, i1 false br i1 %or.cond4, label %if.then248, label %if.end266 if.then248: ; preds = %if.then239 - %add249 = add nsw i32 %cond244, %sub0Pos.3284 + %add249 = add nsw i32 %cond244, %sub0Pos.3288 %cmp250.not = icmp sgt i32 %add249, %destCapacity br i1 %cmp250.not, label %if.end266, label %if.then251 @@ -2420,45 +2420,45 @@ if.then251: ; preds = %if.then248 to label %if.end266 unwind label %lpad86 if.end266.loopexit: ; preds = %for.body222 - %39 = trunc nsw i64 %indvars.iv.next300 to i32 + %38 = trunc nsw i64 %indvars.iv.next304 to i32 br label %if.end266 if.end266: ; preds = %if.end266.loopexit, %if.then216, %if.then248, %if.else234, %if.then210, %if.then239, %if.then251, %if.else237 - %retry.3 = phi i8 [ %retry.1283, %if.then251 ], [ %retry.1283, %if.then239 ], [ %retry.1283, %if.else237 ], [ %retry.1283, %if.then210 ], [ %retry.1283, %if.else234 ], [ 1, %if.then248 ], [ %retry.1283, %if.then216 ], [ %retry.1283, %if.end266.loopexit ] - %sub0Pos.5 = phi i32 [ %sub0Pos.3284, %if.then251 ], [ %sub0Pos.3284, %if.then239 ], [ %sub0Pos.3284, %if.else237 ], [ %sub0Pos.3284, %if.then210 ], [ 0, %if.else234 ], [ 0, %if.then248 ], [ %sub0Pos.3284, %if.then216 ], [ %sub0Pos.3284, %if.end266.loopexit ] + %retry.3 = phi i8 [ %retry.1287, %if.then251 ], [ %retry.1287, %if.then239 ], [ %retry.1287, %if.else237 ], [ %retry.1287, %if.then210 ], [ %retry.1287, %if.else234 ], [ 1, %if.then248 ], [ %retry.1287, %if.then216 ], [ %retry.1287, %if.end266.loopexit ] + %sub0Pos.5 = phi i32 [ %sub0Pos.3288, %if.then251 ], [ %sub0Pos.3288, %if.then239 ], [ %sub0Pos.3288, %if.else237 ], [ %sub0Pos.3288, %if.then210 ], [ 0, %if.else234 ], [ 0, %if.then248 ], [ %sub0Pos.3288, %if.then216 ], [ %sub0Pos.3288, %if.end266.loopexit ] %p.15 = phi ptr [ %p.5, %if.then251 ], [ %p.5, %if.then239 ], [ %p.5, %if.else237 ], [ %p.5, %if.then210 ], [ %p.5, %if.else234 ], [ %p.5, %if.then248 ], [ %add.ptr218, %if.then216 ], [ %incdec.ptr226, %if.end266.loopexit ] - %patPos.7 = phi i32 [ %patPos.3286, %if.then251 ], [ %patPos.3286, %if.then239 ], [ %patPos.3286, %if.else237 ], [ %cond, %if.then210 ], [ %patPos.3286, %if.else234 ], [ %patPos.3286, %if.then248 ], [ %add211, %if.then216 ], [ %39, %if.end266.loopexit ] + %patPos.7 = phi i32 [ %patPos.3290, %if.then251 ], [ %patPos.3290, %if.then239 ], [ %patPos.3290, %if.else237 ], [ %cond, %if.then210 ], [ %patPos.3290, %if.else234 ], [ %patPos.3290, %if.then248 ], [ %add211, %if.then216 ], [ %38, %if.end266.loopexit ] %length.6 = phi i32 [ %cond244, %if.then251 ], [ %cond244, %if.then239 ], [ %length.3, %if.else237 ], [ %add214, %if.then210 ], [ 0, %if.else234 ], [ %cond244, %if.then248 ], [ %add214, %if.then216 ], [ %add214, %if.end266.loopexit ] - %inc267 = add nuw nsw i32 %subi.0291, 1 + %inc267 = add nuw nsw i32 %subi.0295, 1 br label %if.end268 if.end268: ; preds = %if.end266, %if.end204 - %retry.2 = phi i8 [ %retry.3, %if.end266 ], [ %retry.1283, %if.end204 ] - %sub0Pos.4 = phi i32 [ %sub0Pos.5, %if.end266 ], [ %sub0Pos.3284, %if.end204 ] + %retry.2 = phi i8 [ %retry.3, %if.end266 ], [ %retry.1287, %if.end204 ] + %sub0Pos.4 = phi i32 [ %sub0Pos.5, %if.end266 ], [ %sub0Pos.3288, %if.end204 ] %p.12 = phi ptr [ %p.15, %if.end266 ], [ %p.5, %if.end204 ] - %patPos.4 = phi i32 [ %patPos.7, %if.end266 ], [ %patPos.3286, %if.end204 ] - %subi.1 = phi i32 [ %inc267, %if.end266 ], [ %subi.0291, %if.end204 ] + %patPos.4 = phi i32 [ %patPos.7, %if.end266 ], [ %patPos.3290, %if.end204 ] + %subi.1 = phi i32 [ %inc267, %if.end266 ], [ %subi.0295, %if.end204 ] %length.5 = phi i32 [ %length.6, %if.end266 ], [ %length.3, %if.end204 ] %cmp76 = icmp slt i32 %subi.1, 2 br i1 %cmp76, label %for.body, label %for.end269, !llvm.loop !10 for.end269: ; preds = %if.end268 - %40 = load ptr, ptr %kenum, align 8 - %cmp.not.i239 = icmp eq ptr %40, null - br i1 %cmp.not.i239, label %_ZN6icu_7524LocalUEnumerationPointerD2Ev.exit, label %if.then.i240 + %39 = load ptr, ptr %kenum, align 8 + %cmp.not.i243 = icmp eq ptr %39, null + br i1 %cmp.not.i243, label %_ZN6icu_7524LocalUEnumerationPointerD2Ev.exit, label %if.then.i244 -if.then.i240: ; preds = %for.end269 - invoke void @uenum_close_75(ptr noundef nonnull %40) - to label %_ZN6icu_7524LocalUEnumerationPointerD2Ev.exit unwind label %terminate.lpad.i241 +if.then.i244: ; preds = %for.end269 + invoke void @uenum_close_75(ptr noundef nonnull %39) + to label %_ZN6icu_7524LocalUEnumerationPointerD2Ev.exit unwind label %terminate.lpad.i245 -terminate.lpad.i241: ; preds = %if.then.i240 - %41 = landingpad { ptr, i32 } +terminate.lpad.i245: ; preds = %if.then.i244 + %40 = landingpad { ptr, i32 } catch ptr null - %42 = extractvalue { ptr, i32 } %41, 0 - call void @__clang_call_terminate(ptr %42) #14 + %41 = extractvalue { ptr, i32 } %40, 0 + call void @__clang_call_terminate(ptr %41) #14 unreachable -_ZN6icu_7524LocalUEnumerationPointerD2Ev.exit: ; preds = %for.end269, %if.then.i240 +_ZN6icu_7524LocalUEnumerationPointerD2Ev.exit: ; preds = %for.end269, %if.then.i244 %tobool271.not = icmp eq i8 %retry.2, 0 br i1 %tobool271.not, label %do.end, label %do.body, !llvm.loop !11 diff --git a/bench/icu/optimized/nfrule.ll b/bench/icu/optimized/nfrule.ll index 2510eb89d9c..4e4b70185b8 100644 --- a/bench/icu/optimized/nfrule.ll +++ b/bench/icu/optimized/nfrule.ll @@ -2992,8 +2992,8 @@ invoke.cont51.invoke: ; preds = %if.then47, %if.then to label %cleanup unwind label %lpad20 if.end54: ; preds = %if.end - %cond61147 = call i64 @llvm.smax.i64(i64 %30, i64 0) - %cond61 = uitofp nneg i64 %cond61147 to double + %cmp56 = call i64 @llvm.smax.i64(i64 %30, i64 0) + %32 = uitofp nneg i64 %cmp56 to double store ptr getelementptr inbounds nuw (i8, ptr @_ZTVN6icu_7513UnicodeStringE, i64 16), ptr %temp, align 8 %fUnion2.i78 = getelementptr inbounds nuw i8, ptr %temp, i64 8 store i16 2, ptr %fUnion2.i78, align 8 @@ -3018,92 +3018,92 @@ do.body: ; preds = %invoke.cont157, %if to label %.noexc85 unwind label %lpad63.loopexit .noexc85: ; preds = %do.body - %32 = load i16, ptr %fUnion2.i78, align 8 - %cmp.i.i.i81 = icmp slt i16 %32, 0 - %33 = ashr i16 %32, 5 - %shr.i.i.i82 = sext i16 %33 to i32 - %34 = load i32, ptr %fLength.i.i83, align 4 - %cond.i.i84 = select i1 %cmp.i.i.i81, i32 %34, i32 %shr.i.i.i82 + %33 = load i16, ptr %fUnion2.i78, align 8 + %cmp.i.i.i81 = icmp slt i16 %33, 0 + %34 = ashr i16 %33, 5 + %shr.i.i.i82 = sext i16 %34 to i32 + %35 = load i32, ptr %fLength.i.i83, align 4 + %cond.i.i84 = select i1 %cmp.i.i.i81, i32 %35, i32 %shr.i.i.i82 %call2.i87 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6icu_7513UnicodeString9doReplaceEiiRKS0_ii(ptr noundef nonnull align 8 dereferenceable(64) %temp, i32 noundef 0, i32 noundef %cond.i.i84, ptr noundef nonnull align 8 dereferenceable(64) %fRuleText19, i32 noundef %cond, i32 noundef %sub66) to label %invoke.cont67 unwind label %lpad63.loopexit invoke.cont67: ; preds = %.noexc85 - %35 = load ptr, ptr %sub1, align 8 - %call71 = invoke noundef double @_ZNK6icu_756NFRule16matchToDelimiterERKNS_13UnicodeStringEidS3_RNS_13ParsePositionEPKNS_14NFSubstitutionEjd(ptr noundef nonnull align 8 dereferenceable(112) %this, ptr noundef nonnull align 8 dereferenceable(64) %workText, i32 noundef %start.0, double noundef %cond61, ptr noundef nonnull align 8 dereferenceable(64) %temp, ptr noundef nonnull align 8 dereferenceable(16) %pp, ptr noundef %35, i32 noundef %nonNumericalExecutedRuleMask, double noundef %upperBound) + %36 = load ptr, ptr %sub1, align 8 + %call71 = invoke noundef double @_ZNK6icu_756NFRule16matchToDelimiterERKNS_13UnicodeStringEidS3_RNS_13ParsePositionEPKNS_14NFSubstitutionEjd(ptr noundef nonnull align 8 dereferenceable(112) %this, ptr noundef nonnull align 8 dereferenceable(64) %workText, i32 noundef %start.0, double noundef %cond61, ptr noundef nonnull align 8 dereferenceable(64) %temp, ptr noundef nonnull align 8 dereferenceable(16) %pp, ptr noundef %36, i32 noundef %nonNumericalExecutedRuleMask, double noundef %upperBound) to label %invoke.cont70 unwind label %lpad63.loopexit invoke.cont70: ; preds = %invoke.cont67 - %36 = load i32, ptr %index.i, align 8 - %cmp74.not = icmp ne i32 %36, 0 - %37 = load ptr, ptr %sub1, align 8 - %cmp76 = icmp eq ptr %37, null + %37 = load i32, ptr %index.i, align 8 + %cmp74.not = icmp ne i32 %37, 0 + %38 = load ptr, ptr %sub1, align 8 + %cmp76 = icmp eq ptr %38, null %or.cond43 = select i1 %cmp74.not, i1 true, i1 %cmp76 br i1 %or.cond43, label %invoke.cont84, label %if.else137 invoke.cont84: ; preds = %invoke.cont70 store ptr getelementptr inbounds nuw (i8, ptr @_ZTVN6icu_7513UnicodeStringE, i64 16), ptr %workText2, align 8 store i16 2, ptr %fUnion2.i91, align 8 - %38 = load i16, ptr %fUnion.i.i66, align 8 - %39 = load i32, ptr %fLength.i69, align 4 + %39 = load i16, ptr %fUnion.i.i66, align 8 + %40 = load i32, ptr %fLength.i69, align 4 invoke void @_ZN6icu_7513UnicodeString7unBogusEv(ptr noundef nonnull align 8 dereferenceable(64) %workText2) to label %.noexc104 unwind label %lpad81 .noexc104: ; preds = %invoke.cont84 - %cmp.i.i94 = icmp slt i16 %38, 0 - %40 = ashr i16 %38, 5 - %shr.i.i95 = sext i16 %40 to i32 - %cond.i97 = select i1 %cmp.i.i94, i32 %39, i32 %shr.i.i95 - %sub88 = sub nsw i32 %cond.i97, %36 - %41 = load i16, ptr %fUnion2.i91, align 8 - %cmp.i.i.i100 = icmp slt i16 %41, 0 - %42 = ashr i16 %41, 5 - %shr.i.i.i101 = sext i16 %42 to i32 - %43 = load i32, ptr %fLength.i.i102, align 4 - %cond.i.i103 = select i1 %cmp.i.i.i100, i32 %43, i32 %shr.i.i.i101 - %call2.i106 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6icu_7513UnicodeString9doReplaceEiiRKS0_ii(ptr noundef nonnull align 8 dereferenceable(64) %workText2, i32 noundef 0, i32 noundef %cond.i.i103, ptr noundef nonnull align 8 dereferenceable(64) %workText, i32 noundef %36, i32 noundef %sub88) + %cmp.i.i94 = icmp slt i16 %39, 0 + %41 = ashr i16 %39, 5 + %shr.i.i95 = sext i16 %41 to i32 + %cond.i97 = select i1 %cmp.i.i94, i32 %40, i32 %shr.i.i95 + %sub88 = sub nsw i32 %cond.i97, %37 + %42 = load i16, ptr %fUnion2.i91, align 8 + %cmp.i.i.i100 = icmp slt i16 %42, 0 + %43 = ashr i16 %42, 5 + %shr.i.i.i101 = sext i16 %43 to i32 + %44 = load i32, ptr %fLength.i.i102, align 4 + %cond.i.i103 = select i1 %cmp.i.i.i100, i32 %44, i32 %shr.i.i.i101 + %call2.i106 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6icu_7513UnicodeString9doReplaceEiiRKS0_ii(ptr noundef nonnull align 8 dereferenceable(64) %workText2, i32 noundef 0, i32 noundef %cond.i.i103, ptr noundef nonnull align 8 dereferenceable(64) %workText, i32 noundef %37, i32 noundef %sub88) to label %invoke.cont95 unwind label %lpad81 invoke.cont95: ; preds = %.noexc104 store ptr getelementptr inbounds nuw (i8, ptr @_ZTVN6icu_7513ParsePositionE, i64 16), ptr %pp2, align 8 store i32 0, ptr %index.i108, align 8 store i32 -1, ptr %errorIndex.i109, align 4 - %44 = load i16, ptr %fUnion.i.i110, align 8 - %45 = load i32, ptr %fLength.i113, align 4 + %45 = load i16, ptr %fUnion.i.i110, align 8 + %46 = load i32, ptr %fLength.i113, align 4 invoke void @_ZN6icu_7513UnicodeString7unBogusEv(ptr noundef nonnull align 8 dereferenceable(64) %temp) to label %.noexc120 unwind label %lpad94 .noexc120: ; preds = %invoke.cont95 - %cmp.i.i111 = icmp slt i16 %44, 0 - %46 = ashr i16 %44, 5 - %shr.i.i112 = sext i16 %46 to i32 - %cond.i114 = select i1 %cmp.i.i111, i32 %45, i32 %shr.i.i112 + %cmp.i.i111 = icmp slt i16 %45, 0 + %47 = ashr i16 %45, 5 + %shr.i.i112 = sext i16 %47 to i32 + %cond.i114 = select i1 %cmp.i.i111, i32 %46, i32 %shr.i.i112 %sub97 = sub nsw i32 %cond.i114, %cond17 - %47 = load i16, ptr %fUnion2.i78, align 8 - %cmp.i.i.i116 = icmp slt i16 %47, 0 - %48 = ashr i16 %47, 5 - %shr.i.i.i117 = sext i16 %48 to i32 - %49 = load i32, ptr %fLength.i.i83, align 4 - %cond.i.i119 = select i1 %cmp.i.i.i116, i32 %49, i32 %shr.i.i.i117 + %48 = load i16, ptr %fUnion2.i78, align 8 + %cmp.i.i.i116 = icmp slt i16 %48, 0 + %49 = ashr i16 %48, 5 + %shr.i.i.i117 = sext i16 %49 to i32 + %50 = load i32, ptr %fLength.i.i83, align 4 + %cond.i.i119 = select i1 %cmp.i.i.i116, i32 %50, i32 %shr.i.i.i117 %call2.i122 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6icu_7513UnicodeString9doReplaceEiiRKS0_ii(ptr noundef nonnull align 8 dereferenceable(64) %temp, i32 noundef 0, i32 noundef %cond.i.i119, ptr noundef nonnull align 8 dereferenceable(64) %fRuleText19, i32 noundef %cond17, i32 noundef %sub97) to label %invoke.cont98 unwind label %lpad94 invoke.cont98: ; preds = %.noexc120 - %50 = load ptr, ptr %sub2, align 8 - %call102 = invoke noundef double @_ZNK6icu_756NFRule16matchToDelimiterERKNS_13UnicodeStringEidS3_RNS_13ParsePositionEPKNS_14NFSubstitutionEjd(ptr noundef nonnull align 8 dereferenceable(112) %this, ptr noundef nonnull align 8 dereferenceable(64) %workText2, i32 noundef 0, double noundef %call71, ptr noundef nonnull align 8 dereferenceable(64) %temp, ptr noundef nonnull align 8 dereferenceable(16) %pp2, ptr noundef %50, i32 noundef %nonNumericalExecutedRuleMask, double noundef %upperBound) + %51 = load ptr, ptr %sub2, align 8 + %call102 = invoke noundef double @_ZNK6icu_756NFRule16matchToDelimiterERKNS_13UnicodeStringEidS3_RNS_13ParsePositionEPKNS_14NFSubstitutionEjd(ptr noundef nonnull align 8 dereferenceable(112) %this, ptr noundef nonnull align 8 dereferenceable(64) %workText2, i32 noundef 0, double noundef %call71, ptr noundef nonnull align 8 dereferenceable(64) %temp, ptr noundef nonnull align 8 dereferenceable(16) %pp2, ptr noundef %51, i32 noundef %nonNumericalExecutedRuleMask, double noundef %upperBound) to label %invoke.cont101 unwind label %lpad94 invoke.cont101: ; preds = %invoke.cont98 - %51 = load i32, ptr %index.i108, align 8 - %cmp105.not = icmp ne i32 %51, 0 - %52 = load ptr, ptr %sub2, align 8 - %cmp108 = icmp eq ptr %52, null + %52 = load i32, ptr %index.i108, align 8 + %cmp105.not = icmp ne i32 %52, 0 + %53 = load ptr, ptr %sub2, align 8 + %cmp108 = icmp eq ptr %53, null %or.cond44 = select i1 %cmp105.not, i1 true, i1 %cmp108 br i1 %or.cond44, label %if.then109, label %if.else if.then109: ; preds = %invoke.cont101 - %53 = load i32, ptr %index.i, align 8 - %add = add i32 %sub, %51 - %add114 = add i32 %add, %53 + %54 = load i32, ptr %index.i, align 8 + %add = add i32 %sub, %52 + %add114 = add i32 %add, %54 %cmp115 = icmp sgt i32 %add114, %highWaterMark.0 br i1 %cmp115, label %if.then116, label %if.end136 @@ -3121,23 +3121,23 @@ lpad63.loopexit.split-lp: ; preds = %if.end167 br label %ehcleanup176 lpad81: ; preds = %.noexc104, %invoke.cont84 - %54 = landingpad { ptr, i32 } + %55 = landingpad { ptr, i32 } cleanup br label %ehcleanup lpad94: ; preds = %.noexc120, %invoke.cont95, %invoke.cont98 - %55 = landingpad { ptr, i32 } + %56 = landingpad { ptr, i32 } cleanup call void @_ZN6icu_7513ParsePositionD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %pp2) #8 br label %ehcleanup if.else: ; preds = %invoke.cont101 - %56 = load i32, ptr %errorIndex.i109, align 4 - %add126 = add nsw i32 %56, %cond - %57 = load i32, ptr %index.i, align 8 - %add129 = add nsw i32 %add126, %57 - %58 = load i32, ptr %errorIndex.i134, align 4 - %cmp132 = icmp sgt i32 %add129, %58 + %57 = load i32, ptr %errorIndex.i109, align 4 + %add126 = add nsw i32 %57, %cond + %58 = load i32, ptr %index.i, align 8 + %add129 = add nsw i32 %add126, %58 + %59 = load i32, ptr %errorIndex.i134, align 4 + %cmp132 = icmp sgt i32 %add129, %59 br i1 %cmp132, label %if.then133, label %if.end136 if.then133: ; preds = %if.else @@ -3152,15 +3152,15 @@ if.end136: ; preds = %if.else, %if.then13 br label %do.cond ehcleanup: ; preds = %lpad94, %lpad81 - %.pn = phi { ptr, i32 } [ %55, %lpad94 ], [ %54, %lpad81 ] + %.pn = phi { ptr, i32 } [ %56, %lpad94 ], [ %55, %lpad81 ] call void @_ZN6icu_7513UnicodeStringD1Ev(ptr noundef nonnull align 8 dereferenceable(64) %workText2) #8 br label %ehcleanup176 if.else137: ; preds = %invoke.cont70 - %59 = load i32, ptr %errorIndex.i, align 4 - %add141 = add nsw i32 %59, %cond - %60 = load i32, ptr %errorIndex.i134, align 4 - %cmp144 = icmp sgt i32 %add141, %60 + %60 = load i32, ptr %errorIndex.i, align 4 + %add141 = add nsw i32 %60, %cond + %61 = load i32, ptr %errorIndex.i134, align 4 + %cmp144 = icmp sgt i32 %add141, %61 br i1 %cmp144, label %if.then145, label %do.cond if.then145: ; preds = %if.else137 @@ -3170,23 +3170,23 @@ if.then145: ; preds = %if.else137 do.cond: ; preds = %if.end136, %if.then145, %if.else137 %highWaterMark.2 = phi i32 [ %highWaterMark.1, %if.end136 ], [ %highWaterMark.0, %if.then145 ], [ %highWaterMark.0, %if.else137 ] %result.2 = phi double [ %result.1, %if.end136 ], [ %result.0, %if.then145 ], [ %result.0, %if.else137 ] - %start.1 = phi i32 [ %36, %if.end136 ], [ %start.0, %if.then145 ], [ %start.0, %if.else137 ] + %start.1 = phi i32 [ %37, %if.end136 ], [ %start.0, %if.then145 ], [ %start.0, %if.else137 ] br i1 %cmp149.not, label %do.end, label %land.lhs.true150 land.lhs.true150: ; preds = %do.cond - %61 = load i32, ptr %index.i, align 8 - %cmp153 = icmp sgt i32 %61, 0 + %62 = load i32, ptr %index.i, align 8 + %cmp153 = icmp sgt i32 %62, 0 br i1 %cmp153, label %invoke.cont157, label %do.end invoke.cont157: ; preds = %land.lhs.true150 - %62 = load i16, ptr %fUnion.i.i66, align 8 - %cmp.i.i139 = icmp slt i16 %62, 0 - %63 = ashr i16 %62, 5 - %shr.i.i140 = sext i16 %63 to i32 - %64 = load i32, ptr %fLength.i69, align 4 - %cond.i142 = select i1 %cmp.i.i139, i32 %64, i32 %shr.i.i140 - %cmp159 = icmp sge i32 %61, %cond.i142 - %cmp162.not = icmp eq i32 %61, %start.1 + %63 = load i16, ptr %fUnion.i.i66, align 8 + %cmp.i.i139 = icmp slt i16 %63, 0 + %64 = ashr i16 %63, 5 + %shr.i.i140 = sext i16 %64 to i32 + %65 = load i32, ptr %fLength.i69, align 4 + %cond.i142 = select i1 %cmp.i.i139, i32 %65, i32 %shr.i.i140 + %cmp159 = icmp sge i32 %62, %cond.i142 + %cmp162.not = icmp eq i32 %62, %start.1 %or.cond146 = select i1 %cmp159, i1 true, i1 %cmp162.not br i1 %or.cond146, label %do.end, label %do.body, !llvm.loop !12 @@ -3203,8 +3203,8 @@ if.then165: ; preds = %do.end if.end167: ; preds = %if.then165, %do.end %tobool = icmp ne i8 %isFractionRule, 0 %or.cond1 = and i1 %tobool, %cmp164 - %65 = load ptr, ptr %sub1, align 8 - %cmp172 = icmp eq ptr %65, null + %66 = load ptr, ptr %sub1, align 8 + %cmp172 = icmp eq ptr %66, null %or.cond45 = select i1 %or.cond1, i1 %cmp172, i1 false %div = fdiv double 1.000000e+00, %result.2 %result.3 = select i1 %or.cond45, double %div, double %result.2 diff --git a/bench/icu/optimized/unames.ll b/bench/icu/optimized/unames.ll index 681f2fbf936..e5a569fce0e 100644 --- a/bench/icu/optimized/unames.ll +++ b/bench/icu/optimized/unames.ll @@ -3485,26 +3485,26 @@ if.then56: ; preds = %if.end37 %call60 = tail call noundef i32 %14(i32 noundef %15) %add = add i32 %call45, 4 %invariant.gep = getelementptr inbounds nuw i8, ptr %add.ptr38, i64 10 - %cmp61272.not = icmp eq i32 %call60, 0 - br i1 %cmp61272.not, label %if.end326, label %for.body.lr.ph + %cmp61271.not = icmp eq i32 %call60, 0 + br i1 %cmp61271.not, label %if.end326, label %for.body.lr.ph for.body.lr.ph: ; preds = %if.then56 %readUInt16 = getelementptr inbounds nuw i8, ptr %ds, i64 8 br label %for.body for.body: ; preds = %for.body.lr.ph, %for.body - %offset.0274 = phi i32 [ %add, %for.body.lr.ph ], [ %add66, %for.body ] - %i.0273 = phi i32 [ 0, %for.body.lr.ph ], [ %inc, %for.body ] - %idx.ext62 = zext i32 %offset.0274 to i64 + %offset.0273 = phi i32 [ %add, %for.body.lr.ph ], [ %add66, %for.body ] + %i.0272 = phi i32 [ 0, %for.body.lr.ph ], [ %inc, %for.body ] + %idx.ext62 = zext i32 %offset.0273 to i64 %16 = load ptr, ptr %readUInt16, align 8 %gep = getelementptr inbounds nuw i8, ptr %invariant.gep, i64 %idx.ext62 %17 = load i16, ptr %gep, align 2 %call64 = tail call noundef zeroext i16 %16(i16 noundef zeroext %17) %conv65 = zext i16 %call64 to i32 - %add66 = add i32 %offset.0274, %conv65 - %inc = add nuw i32 %i.0273, 1 - %exitcond303.not = icmp eq i32 %inc, %call60 - br i1 %exitcond303.not, label %if.end326, label %for.body, !llvm.loop !57 + %add66 = add i32 %offset.0273, %conv65 + %inc = add nuw i32 %i.0272, 1 + %exitcond302.not = icmp eq i32 %inc, %call60 + br i1 %exitcond302.not, label %if.end326, label %for.body, !llvm.loop !57 if.else67: ; preds = %lor.lhs.false47 %cmp68.not = icmp eq ptr %add.ptr38, %cond @@ -3542,25 +3542,25 @@ if.end71: ; preds = %do.body, %if.else67 %incdec.ptr = getelementptr inbounds nuw i8, ptr %add.ptr38, i64 18 %incdec.ptr87 = getelementptr inbounds nuw i8, ptr %cond, i64 18 %conv88 = zext i16 %call85 to i32 - %conv88.241 = tail call i16 @llvm.umin.i16(i16 %call85, i16 512) - %conv88. = zext nneg i16 %conv88.241 to i32 - %cmp95250.not = icmp eq i16 %call85, 0 - br i1 %cmp95250.not, label %for.body106.preheader, label %for.body96.preheader + %cmp89 = tail call i16 @llvm.umin.i16(i16 %call85, i16 512) + %conv88. = zext nneg i16 %cmp89 to i32 + %cmp95249.not = icmp eq i16 %call85, 0 + br i1 %cmp95249.not, label %for.body106.preheader, label %for.body96.preheader for.body96.preheader: ; preds = %if.end71 %wide.trip.count = zext nneg i16 %conv88.241 to i64 br label %for.body96 for.cond104.preheader: ; preds = %for.body96 - %cmp105252 = icmp ult i16 %call85, 512 - br i1 %cmp105252, label %for.body106.preheader, label %for.end111 + %cmp105251 = icmp ult i16 %call85, 512 + br i1 %cmp105251, label %for.body106.preheader, label %for.end111 for.body106.preheader: ; preds = %if.end71, %for.cond104.preheader - %i.1.lcssa306 = phi i32 [ %conv88., %for.cond104.preheader ], [ 0, %if.end71 ] - %28 = shl nuw nsw i32 %i.1.lcssa306, 1 + %i.1.lcssa305 = phi i32 [ %conv88., %for.cond104.preheader ], [ 0, %if.end71 ] + %28 = shl nuw nsw i32 %i.1.lcssa305, 1 %29 = zext nneg i32 %28 to i64 %scevgep = getelementptr i8, ptr %tokens, i64 %29 - %30 = shl nuw nsw i32 %i.1.lcssa306, 1 + %30 = shl nuw nsw i32 %i.1.lcssa305, 1 %narrow = sub nuw nsw i32 1024, %30 %31 = zext nneg i32 %narrow to i64 call void @llvm.memset.p0.i64(ptr align 2 %scevgep, i8 0, i64 %31, i1 false) @@ -3598,7 +3598,7 @@ for.cond136.preheader: ; preds = %if.end128 br i1 %cmp95250.not, label %for.cond153.preheader, label %for.body140.preheader for.body140.preheader: ; preds = %for.cond136.preheader - %wide.trip.count291 = zext nneg i32 %invariant.umin to i64 + %wide.trip.count290 = zext nneg i32 %invariant.umin to i64 br label %for.body140 if.then133: ; preds = %if.end128 @@ -3608,42 +3608,42 @@ if.then133: ; preds = %if.end128 for.cond153.preheader: ; preds = %for.body140, %for.cond136.preheader %i.3.lcssa = phi i32 [ 0, %for.cond136.preheader ], [ %invariant.umin, %for.body140 ] - %cmp155256 = icmp samesign ult i32 %i.3.lcssa, %conv88 - br i1 %cmp155256, label %for.body156.preheader, label %do.body172 + %cmp155255 = icmp samesign ult i32 %i.3.lcssa, %conv88 + br i1 %cmp155255, label %for.body156.preheader, label %do.body172 for.body156.preheader: ; preds = %for.cond153.preheader %34 = zext nneg i32 %i.3.lcssa to i64 - %wide.trip.count296 = zext i16 %call85 to i64 + %wide.trip.count295 = zext i16 %call85 to i64 br label %for.body156 for.body140: ; preds = %for.body140.preheader, %for.body140 - %indvars.iv288 = phi i64 [ 0, %for.body140.preheader ], [ %indvars.iv.next289, %for.body140 ] + %indvars.iv287 = phi i64 [ 0, %for.body140.preheader ], [ %indvars.iv.next288, %for.body140 ] %35 = load ptr, ptr %swapArray16, align 8 - %add.ptr143 = getelementptr inbounds nuw i16, ptr %incdec.ptr, i64 %indvars.iv288 - %arrayidx145 = getelementptr inbounds nuw [256 x i8], ptr %map, i64 0, i64 %indvars.iv288 + %add.ptr143 = getelementptr inbounds nuw i16, ptr %incdec.ptr, i64 %indvars.iv287 + %arrayidx145 = getelementptr inbounds nuw [256 x i8], ptr %map, i64 0, i64 %indvars.iv287 %36 = load i8, ptr %arrayidx145, align 1 %idx.ext147 = zext i8 %36 to i64 %add.ptr148 = getelementptr inbounds nuw i16, ptr %call131, i64 %idx.ext147 %call149 = tail call noundef i32 %35(ptr noundef nonnull %ds, ptr noundef nonnull %add.ptr143, i32 noundef 2, ptr noundef nonnull %add.ptr148, ptr noundef nonnull %pErrorCode) - %indvars.iv.next289 = add nuw nsw i64 %indvars.iv288, 1 - %exitcond292.not = icmp eq i64 %indvars.iv.next289, %wide.trip.count291 - br i1 %exitcond292.not, label %for.cond153.preheader, label %for.body140, !llvm.loop !59 + %indvars.iv.next288 = add nuw nsw i64 %indvars.iv287, 1 + %exitcond291.not = icmp eq i64 %indvars.iv.next288, %wide.trip.count290 + br i1 %exitcond291.not, label %for.cond153.preheader, label %for.body140, !llvm.loop !59 for.body156: ; preds = %for.body156.preheader, %for.body156 - %indvars.iv293 = phi i64 [ %34, %for.body156.preheader ], [ %indvars.iv.next294, %for.body156 ] + %indvars.iv292 = phi i64 [ %34, %for.body156.preheader ], [ %indvars.iv.next293, %for.body156 ] %37 = load ptr, ptr %swapArray16, align 8 - %add.ptr159 = getelementptr inbounds nuw i16, ptr %incdec.ptr, i64 %indvars.iv293 - %and = and i64 %indvars.iv293, 2147483392 + %add.ptr159 = getelementptr inbounds nuw i16, ptr %incdec.ptr, i64 %indvars.iv292 + %and = and i64 %indvars.iv292, 2147483392 %add.ptr161 = getelementptr inbounds nuw i16, ptr %call131, i64 %and - %and162 = and i64 %indvars.iv293, 255 + %and162 = and i64 %indvars.iv292, 255 %arrayidx164 = getelementptr inbounds nuw [256 x i8], ptr %trailMap, i64 0, i64 %and162 %38 = load i8, ptr %arrayidx164, align 1 %idx.ext166 = zext i8 %38 to i64 %add.ptr167 = getelementptr inbounds nuw i16, ptr %add.ptr161, i64 %idx.ext166 %call168 = tail call noundef i32 %37(ptr noundef nonnull %ds, ptr noundef nonnull %add.ptr159, i32 noundef 2, ptr noundef nonnull %add.ptr167, ptr noundef nonnull %pErrorCode) - %indvars.iv.next294 = add nuw nsw i64 %indvars.iv293, 1 - %exitcond297.not = icmp eq i64 %indvars.iv.next294, %wide.trip.count296 - br i1 %exitcond297.not, label %do.body172, label %for.body156, !llvm.loop !60 + %indvars.iv.next293 = add nuw nsw i64 %indvars.iv292, 1 + %exitcond296.not = icmp eq i64 %indvars.iv.next293, %wide.trip.count295 + br i1 %exitcond296.not, label %do.body172, label %for.body156, !llvm.loop !60 do.body172: ; preds = %for.body156, %for.cond153.preheader tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 2 %incdec.ptr87, ptr nonnull align 2 %call131, i64 %conv130, i1 false) @@ -3682,8 +3682,8 @@ if.end186: ; preds = %do.body172 if.then204: ; preds = %if.end186 %sub209 = sub i32 %call50, %call80 - %cmp210264 = icmp ugt i32 %sub209, 32 - br i1 %cmp210264, label %while.body.lr.ph, label %if.end246 + %cmp210263 = icmp ugt i32 %sub209, 32 + br i1 %cmp210263, label %while.body.lr.ph, label %if.end246 while.body.lr.ph: ; preds = %if.then204 %idx.ext205 = zext i32 %call80 to i64 @@ -3700,48 +3700,48 @@ while.cond.loopexit: ; preds = %if.end244, %while.b br i1 %cmp210, label %while.body, label %if.end246, !llvm.loop !61 while.body: ; preds = %while.body.lr.ph, %while.cond.loopexit - %outStrings.0267 = phi ptr [ %add.ptr208, %while.body.lr.ph ], [ %outStrings.1.lcssa, %while.cond.loopexit ] - %inStrings.0266 = phi ptr [ %add.ptr206, %while.body.lr.ph ], [ %inStrings.1.lcssa, %while.cond.loopexit ] - %stringsCount.0265 = phi i32 [ %sub209, %while.body.lr.ph ], [ %sub225, %while.cond.loopexit ] - %call213 = call fastcc noundef ptr @_ZN6icu_75L18expandGroupLengthsEPKhPtS2_(ptr noundef %inStrings.0266, ptr noundef %offsets, ptr noundef %lengths) + %outStrings.0266 = phi ptr [ %add.ptr208, %while.body.lr.ph ], [ %outStrings.1.lcssa, %while.cond.loopexit ] + %inStrings.0265 = phi ptr [ %add.ptr206, %while.body.lr.ph ], [ %inStrings.1.lcssa, %while.cond.loopexit ] + %stringsCount.0264 = phi i32 [ %sub209, %while.body.lr.ph ], [ %sub225, %while.cond.loopexit ] + %call213 = call fastcc noundef ptr @_ZN6icu_75L18expandGroupLengthsEPKhPtS2_(ptr noundef %inStrings.0265, ptr noundef %offsets, ptr noundef %lengths) %sub.ptr.lhs.cast = ptrtoint ptr %call213 to i64 - %sub.ptr.rhs.cast = ptrtoint ptr %inStrings.0266 to i64 + %sub.ptr.rhs.cast = ptrtoint ptr %inStrings.0265 to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast %conv214 = trunc i64 %sub.ptr.sub to i32 - %add.ptr219 = getelementptr inbounds i8, ptr %outStrings.0267, i64 %sub.ptr.sub + %add.ptr219 = getelementptr inbounds i8, ptr %outStrings.0266, i64 %sub.ptr.sub %45 = load i16, ptr %arrayidx220, align 2 %conv221 = zext i16 %45 to i32 %46 = load i16, ptr %arrayidx222, align 2 %conv223 = zext i16 %46 to i32 %add224 = add nuw nsw i32 %conv223, %conv221 %47 = add i32 %add224, %conv214 - %sub225 = sub i32 %stringsCount.0265, %47 - %cmp227.not258 = icmp eq i32 %add224, 0 - br i1 %cmp227.not258, label %while.cond.loopexit, label %while.body228 + %sub225 = sub i32 %stringsCount.0264, %47 + %cmp227.not257 = icmp eq i32 %add224, 0 + br i1 %cmp227.not257, label %while.cond.loopexit, label %while.body228 while.body228: ; preds = %while.body, %if.end244 - %outStrings.1261 = phi ptr [ %outStrings.2, %if.end244 ], [ %add.ptr219, %while.body ] - %inStrings.1260 = phi ptr [ %inStrings.2, %if.end244 ], [ %call213, %while.body ] - %count.1259 = phi i32 [ %sub243, %if.end244 ], [ %add224, %while.body ] - %incdec.ptr229 = getelementptr inbounds nuw i8, ptr %inStrings.1260, i64 1 - %48 = load i8, ptr %inStrings.1260, align 1 + %outStrings.1260 = phi ptr [ %outStrings.2, %if.end244 ], [ %add.ptr219, %while.body ] + %inStrings.1259 = phi ptr [ %inStrings.2, %if.end244 ], [ %call213, %while.body ] + %count.1258 = phi i32 [ %sub243, %if.end244 ], [ %add224, %while.body ] + %incdec.ptr229 = getelementptr inbounds nuw i8, ptr %inStrings.1259, i64 1 + %48 = load i8, ptr %inStrings.1259, align 1 %idxprom230 = zext i8 %48 to i64 %arrayidx231 = getelementptr inbounds nuw [256 x i8], ptr %map, i64 0, i64 %idxprom230 %49 = load i8, ptr %arrayidx231, align 1 - %incdec.ptr232 = getelementptr inbounds nuw i8, ptr %outStrings.1261, i64 1 - store i8 %49, ptr %outStrings.1261, align 1 + %incdec.ptr232 = getelementptr inbounds nuw i8, ptr %outStrings.1260, i64 1 + store i8 %49, ptr %outStrings.1260, align 1 %arrayidx234 = getelementptr inbounds nuw [512 x i16], ptr %tokens, i64 0, i64 %idxprom230 %50 = load i16, ptr %arrayidx234, align 2 %cmp236.not = icmp eq i16 %50, -2 br i1 %cmp236.not, label %if.else238, label %if.end244 if.else238: ; preds = %while.body228 - %incdec.ptr239 = getelementptr inbounds nuw i8, ptr %inStrings.1260, i64 2 + %incdec.ptr239 = getelementptr inbounds nuw i8, ptr %inStrings.1259, i64 2 %51 = load i8, ptr %incdec.ptr229, align 1 %idxprom240 = zext i8 %51 to i64 %arrayidx241 = getelementptr inbounds nuw [256 x i8], ptr %trailMap, i64 0, i64 %idxprom240 %52 = load i8, ptr %arrayidx241, align 1 - %incdec.ptr242 = getelementptr inbounds nuw i8, ptr %outStrings.1261, i64 2 + %incdec.ptr242 = getelementptr inbounds nuw i8, ptr %outStrings.1260, i64 2 store i8 %52, ptr %incdec.ptr232, align 1 br label %if.end244 @@ -3749,7 +3749,7 @@ if.end244: ; preds = %while.body228, %if. %.sink = phi i32 [ -2, %if.else238 ], [ -1, %while.body228 ] %inStrings.2 = phi ptr [ %incdec.ptr239, %if.else238 ], [ %incdec.ptr229, %while.body228 ] %outStrings.2 = phi ptr [ %incdec.ptr242, %if.else238 ], [ %incdec.ptr232, %while.body228 ] - %sub243 = add i32 %count.1259, %.sink + %sub243 = add i32 %count.1258, %.sink %cmp227.not = icmp eq i32 %sub243, 0 br i1 %cmp227.not, label %while.cond.loopexit, label %while.body228, !llvm.loop !62 @@ -3763,26 +3763,26 @@ if.end246: ; preds = %while.cond.loopexit %add.ptr255 = getelementptr inbounds nuw i8, ptr %cond, i64 %idx.ext248 %call256 = tail call noundef i32 %55(ptr noundef nonnull %ds, ptr noundef nonnull %add.ptr249, i32 noundef 4, ptr noundef %add.ptr255, ptr noundef nonnull %pErrorCode) %add257 = add i32 %call50, 4 - %cmp259268.not = icmp eq i32 %call250, 0 - br i1 %cmp259268.not, label %if.end326, label %for.body260.lr.ph + %cmp259267.not = icmp eq i32 %call250, 0 + br i1 %cmp259267.not, label %if.end326, label %for.body260.lr.ph for.body260.lr.ph: ; preds = %if.end246 %swapInvChars319 = getelementptr inbounds nuw i8, ptr %ds, i64 72 br label %for.body260 for.body260: ; preds = %for.body260.lr.ph, %for.inc323 - %offset.2270 = phi i32 [ %add257, %for.body260.lr.ph ], [ %add272, %for.inc323 ] - %i.5269 = phi i32 [ 0, %for.body260.lr.ph ], [ %inc324, %for.inc323 ] - %cmp261 = icmp ugt i32 %offset.2270, %sub + %offset.2269 = phi i32 [ %add257, %for.body260.lr.ph ], [ %add272, %for.inc323 ] + %i.5268 = phi i32 [ 0, %for.body260.lr.ph ], [ %inc324, %for.inc323 ] + %cmp261 = icmp ugt i32 %offset.2269, %sub br i1 %cmp261, label %if.then262, label %if.end263 if.then262: ; preds = %for.body260 - tail call void (ptr, ptr, ...) @udata_printError_75(ptr noundef nonnull %ds, ptr noundef nonnull @.str.4, i32 noundef %sub, i32 noundef %i.5269) + tail call void (ptr, ptr, ...) @udata_printError_75(ptr noundef nonnull %ds, ptr noundef nonnull @.str.4, i32 noundef %sub, i32 noundef %i.5268) store i32 8, ptr %pErrorCode, align 4 br label %return if.end263: ; preds = %for.body260 - %idx.ext264 = zext nneg i32 %offset.2270 to i64 + %idx.ext264 = zext nneg i32 %offset.2269 to i64 %add.ptr265 = getelementptr inbounds nuw i8, ptr %add.ptr38, i64 %idx.ext264 %add.ptr267 = getelementptr inbounds nuw i8, ptr %cond, i64 %idx.ext264 %56 = load ptr, ptr %readUInt1684, align 8 @@ -3790,7 +3790,7 @@ if.end263: ; preds = %for.body260 %57 = load i16, ptr %size269, align 2 %call270 = tail call noundef zeroext i16 %56(i16 noundef zeroext %57) %conv271 = zext i16 %call270 to i32 - %add272 = add nuw i32 %offset.2270, %conv271 + %add272 = add nuw i32 %offset.2269, %conv271 %58 = load ptr, ptr %swapArray32, align 8 %call274 = tail call noundef i32 %58(ptr noundef nonnull %ds, ptr noundef nonnull %add.ptr265, i32 noundef 8, ptr noundef %add.ptr267, ptr noundef nonnull %pErrorCode) %59 = load ptr, ptr %swapArray16, align 8 @@ -3815,7 +3815,7 @@ sw.bb: ; preds = %if.end263 br i1 %cmp.i235, label %for.inc323, label %if.then288 if.then288: ; preds = %sw.bb - tail call void (ptr, ptr, ...) @udata_printError_75(ptr noundef nonnull %ds, ptr noundef nonnull @.str.5, i32 noundef %i.5269) + tail call void (ptr, ptr, ...) @udata_printError_75(ptr noundef nonnull %ds, ptr noundef nonnull @.str.5, i32 noundef %i.5268) br label %return sw.bb290: ; preds = %if.end263 @@ -3836,37 +3836,37 @@ sw.bb290: ; preds = %if.end263 br label %while.cond307 while.cond307: ; preds = %land.rhs309, %sw.bb290 - %indvars.iv298 = phi i64 [ %68, %land.rhs309 ], [ %67, %sw.bb290 ] - %cmp308.not = icmp eq i64 %indvars.iv298, 0 + %indvars.iv297 = phi i64 [ %68, %land.rhs309 ], [ %67, %sw.bb290 ] + %cmp308.not = icmp eq i64 %indvars.iv297, 0 br i1 %cmp308.not, label %while.end318, label %land.rhs309 land.rhs309: ; preds = %while.cond307 - %68 = add nsw i64 %indvars.iv298, -1 + %68 = add nsw i64 %indvars.iv297, -1 %arrayidx312 = getelementptr inbounds nuw i8, ptr %add.ptr298, i64 %68 %69 = load i8, ptr %arrayidx312, align 1 %cmp314.not = icmp eq i8 %69, 0 - br i1 %cmp314.not, label %while.end318.split.loop.exit315, label %while.cond307, !llvm.loop !63 + br i1 %cmp314.not, label %while.end318.split.loop.exit314, label %while.cond307, !llvm.loop !63 -while.end318.split.loop.exit315: ; preds = %land.rhs309 - %70 = trunc nuw i64 %indvars.iv298 to i32 +while.end318.split.loop.exit314: ; preds = %land.rhs309 + %70 = trunc nuw i64 %indvars.iv297 to i32 br label %while.end318 -while.end318: ; preds = %while.cond307, %while.end318.split.loop.exit315 - %stringsCount.1.lcssa = phi i32 [ %70, %while.end318.split.loop.exit315 ], [ 0, %while.cond307 ] +while.end318: ; preds = %while.cond307, %while.end318.split.loop.exit314 + %stringsCount.1.lcssa = phi i32 [ %70, %while.end318.split.loop.exit314 ], [ 0, %while.cond307 ] %71 = load ptr, ptr %swapInvChars319, align 8 %call320 = tail call noundef i32 %71(ptr noundef nonnull %ds, ptr noundef nonnull %add.ptr298, i32 noundef %stringsCount.1.lcssa, ptr noundef nonnull %add.ptr300, ptr noundef nonnull %pErrorCode) br label %for.inc323 sw.default: ; preds = %if.end263 %conv279 = zext i8 %60 to i32 - tail call void (ptr, ptr, ...) @udata_printError_75(ptr noundef nonnull %ds, ptr noundef nonnull @.str.6, i32 noundef %conv279, i32 noundef %i.5269) + tail call void (ptr, ptr, ...) @udata_printError_75(ptr noundef nonnull %ds, ptr noundef nonnull @.str.6, i32 noundef %conv279, i32 noundef %i.5268) store i32 16, ptr %pErrorCode, align 4 br label %return for.inc323: ; preds = %while.end318, %sw.bb - %inc324 = add nuw i32 %i.5269, 1 - %exitcond302.not = icmp eq i32 %inc324, %call250 - br i1 %exitcond302.not, label %if.end326, label %for.body260, !llvm.loop !64 + %inc324 = add nuw i32 %i.5268, 1 + %exitcond301.not = icmp eq i32 %inc324, %call250 + br i1 %exitcond301.not, label %if.end326, label %for.body260, !llvm.loop !64 if.end326: ; preds = %for.inc323, %for.body, %if.end246, %if.then56 %offset.1 = phi i32 [ %add, %if.then56 ], [ %add257, %if.end246 ], [ %add66, %for.body ], [ %add272, %for.inc323 ] diff --git a/bench/icu/optimized/unistr.ll b/bench/icu/optimized/unistr.ll index 517531888ed..825b3d38067 100644 --- a/bench/icu/optimized/unistr.ll +++ b/bench/icu/optimized/unistr.ll @@ -4209,7 +4209,7 @@ entry: br i1 %or.cond, label %return, label %if.end if.end: ; preds = %entry - %cond = tail call i32 @llvm.umin.i32(i32 %dstSize, i32 2147483647) + %cmp3 = tail call i32 @llvm.umin.i32(i32 %dstSize, i32 2147483647) call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %length8.i) call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %errorCode.i) %fUnion.i.i.i.i = getelementptr inbounds nuw i8, ptr %this, i64 8 diff --git a/bench/libevent/optimized/event_tagging.c.ll b/bench/libevent/optimized/event_tagging.c.ll index 3990bc88c0f..b426c251cee 100644 --- a/bench/libevent/optimized/event_tagging.c.ll +++ b/bench/libevent/optimized/event_tagging.c.ll @@ -1470,7 +1470,7 @@ decode_int_internal.exit: ; preds = %if.end12, %if.end.i %retval.0.i12 = phi i32 [ %add11.i, %while.end.i ], [ -1, %if.end12 ], [ -1, %if.end.i ], [ -1, %lor.lhs.false.i ], [ -1, %if.end5.i ], [ -1, %if.end16.i ] %call15 = tail call i32 @evbuffer_drain(ptr noundef %evbuf, i64 noundef %conv) #7 %cmp20 = icmp ugt i32 %retval.0.i12, %3 - %9 = tail call i32 @llvm.smax.i32(i32 %retval.0.i12, i32 -1) + %or.cond = tail call i32 @llvm.smax.i32(i32 %retval.0.i12, i32 -1) %spec.select = select i1 %cmp20, i32 -1, i32 %9 br label %return @@ -1590,7 +1590,7 @@ decode_int64_internal.exit: ; preds = %if.end12, %if.end.i %retval.0.i12 = phi i32 [ %add11.i, %while.end.i ], [ -1, %if.end12 ], [ -1, %if.end.i ], [ -1, %if.end5.i ], [ -1, %if.end16.i ] %call15 = tail call i32 @evbuffer_drain(ptr noundef %evbuf, i64 noundef %conv) #7 %cmp20 = icmp ugt i32 %retval.0.i12, %3 - %9 = tail call i32 @llvm.smax.i32(i32 %retval.0.i12, i32 -1) + %or.cond = tail call i32 @llvm.smax.i32(i32 %retval.0.i12, i32 -1) %spec.select = select i1 %cmp20, i32 -1, i32 %9 br label %return diff --git a/bench/libquic/optimized/dtoa.cc.ll b/bench/libquic/optimized/dtoa.cc.ll index 0b608117e66..8c30ca58fe5 100644 --- a/bench/libquic/optimized/dtoa.cc.ll +++ b/bench/libquic/optimized/dtoa.cc.ll @@ -42,7 +42,7 @@ for.cond: ; preds = %for.inc, %entry %storemerge = phi ptr [ %s00, %entry ], [ %incdec.ptr4, %for.inc ] %0 = load i8, ptr %storemerge, align 1 switch i8 %0, label %break2.loopexit [ - i8 45, label %sw.bb1.loopexit1117 + i8 45, label %sw.bb1.loopexit1116 i8 43, label %sw.bb1 i8 0, label %ret0 i8 9, label %for.inc @@ -53,11 +53,11 @@ for.cond: ; preds = %for.inc, %entry i8 32, label %for.inc ] -sw.bb1.loopexit1117: ; preds = %for.cond +sw.bb1.loopexit1116: ; preds = %for.cond br label %sw.bb1 -sw.bb1: ; preds = %for.cond, %sw.bb1.loopexit1117 - %sign.0 = phi i32 [ 1, %sw.bb1.loopexit1117 ], [ 0, %for.cond ] +sw.bb1: ; preds = %for.cond, %sw.bb1.loopexit1116 + %sign.0 = phi i32 [ 1, %sw.bb1.loopexit1116 ], [ 0, %for.cond ] %incdec.ptr = getelementptr inbounds nuw i8, ptr %storemerge, i64 1 store ptr %incdec.ptr, ptr %s, align 8 %1 = load i8, ptr %incdec.ptr, align 1 @@ -80,8 +80,8 @@ break2: ; preds = %break2.loopexit, %s br i1 %cmp, label %while.cond, label %if.end13 while.cond: ; preds = %break2, %while.cond - %incdec.ptr7658 = phi ptr [ %incdec.ptr7, %while.cond ], [ %s.promoted, %break2 ] - %incdec.ptr7 = getelementptr inbounds nuw i8, ptr %incdec.ptr7658, i64 1 + %incdec.ptr7657 = phi ptr [ %incdec.ptr7, %while.cond ], [ %s.promoted, %break2 ] + %incdec.ptr7 = getelementptr inbounds nuw i8, ptr %incdec.ptr7657, i64 1 %3 = load i8, ptr %incdec.ptr7, align 1 switch i8 %3, label %if.end13.loopexit [ i8 48, label %while.cond @@ -96,41 +96,41 @@ if.end13.loopexit: ; preds = %while.cond if.end13: ; preds = %if.end13.loopexit, %break2 %4 = phi i8 [ %.pre, %if.end13.loopexit ], [ %2, %break2 ] %5 = phi ptr [ %incdec.ptr7, %if.end13.loopexit ], [ %s.promoted, %break2 ] - %conv15662 = sext i8 %4 to i32 + %conv15661 = sext i8 %4 to i32 %6 = add i8 %4, -48 %7 = icmp ult i8 %6, 10 br i1 %7, label %for.body, label %for.end for.body: ; preds = %if.end13, %for.inc27 - %conv15667 = phi i32 [ %conv15, %for.inc27 ], [ %conv15662, %if.end13 ] - %z.0666 = phi i32 [ %z.1, %for.inc27 ], [ 0, %if.end13 ] - %y.0665 = phi i32 [ %y.1, %for.inc27 ], [ 0, %if.end13 ] - %nd.0664 = phi i32 [ %inc, %for.inc27 ], [ 0, %if.end13 ] - %incdec.ptr28661663 = phi ptr [ %incdec.ptr28, %for.inc27 ], [ %5, %if.end13 ] - %cmp18 = icmp samesign ult i32 %nd.0664, 9 + %conv15666 = phi i32 [ %conv15, %for.inc27 ], [ %conv15661, %if.end13 ] + %z.0665 = phi i32 [ %z.1, %for.inc27 ], [ 0, %if.end13 ] + %y.0664 = phi i32 [ %y.1, %for.inc27 ], [ 0, %if.end13 ] + %nd.0663 = phi i32 [ %inc, %for.inc27 ], [ 0, %if.end13 ] + %incdec.ptr28660662 = phi ptr [ %incdec.ptr28, %for.inc27 ], [ %5, %if.end13 ] + %cmp18 = icmp samesign ult i32 %nd.0663, 9 br i1 %cmp18, label %if.then19, label %if.else if.then19: ; preds = %for.body - %mul = mul i32 %y.0665, 10 + %mul = mul i32 %y.0664, 10 %add = add i32 %mul, -48 - %sub = add i32 %add, %conv15667 + %sub = add i32 %add, %conv15666 br label %for.inc27 if.else: ; preds = %for.body - %cmp20 = icmp samesign ult i32 %nd.0664, 16 + %cmp20 = icmp samesign ult i32 %nd.0663, 16 br i1 %cmp20, label %if.then21, label %for.inc27 if.then21: ; preds = %if.else - %mul22 = mul i32 %z.0666, 10 + %mul22 = mul i32 %z.0665, 10 %add23 = add i32 %mul22, -48 - %sub24 = add i32 %add23, %conv15667 + %sub24 = add i32 %add23, %conv15666 br label %for.inc27 for.inc27: ; preds = %if.then19, %if.then21, %if.else - %y.1 = phi i32 [ %sub, %if.then19 ], [ %y.0665, %if.then21 ], [ %y.0665, %if.else ] - %z.1 = phi i32 [ %z.0666, %if.then19 ], [ %sub24, %if.then21 ], [ %z.0666, %if.else ] - %inc = add nuw nsw i32 %nd.0664, 1 - %incdec.ptr28 = getelementptr inbounds nuw i8, ptr %incdec.ptr28661663, i64 1 + %y.1 = phi i32 [ %sub, %if.then19 ], [ %y.0664, %if.then21 ], [ %y.0664, %if.else ] + %z.1 = phi i32 [ %z.0665, %if.then19 ], [ %sub24, %if.then21 ], [ %z.0665, %if.else ] + %inc = add nuw nsw i32 %nd.0663, 1 + %incdec.ptr28 = getelementptr inbounds nuw i8, ptr %incdec.ptr28660662, i64 1 %8 = load i8, ptr %incdec.ptr28, align 1 %conv15 = sext i8 %8 to i32 %9 = add i8 %8, -48 @@ -138,22 +138,22 @@ for.inc27: ; preds = %if.then19, %if.then br i1 %10, label %for.body, label %for.end, !llvm.loop !7 for.end: ; preds = %for.inc27, %if.end13 - %incdec.ptr28661.lcssa = phi ptr [ %5, %if.end13 ], [ %incdec.ptr28, %for.inc27 ] + %incdec.ptr28660.lcssa = phi ptr [ %5, %if.end13 ], [ %incdec.ptr28, %for.inc27 ] %nd.0.lcssa = phi i32 [ 0, %if.end13 ], [ %inc, %for.inc27 ] %y.0.lcssa = phi i32 [ 0, %if.end13 ], [ %y.1, %for.inc27 ] %z.0.lcssa = phi i32 [ 0, %if.end13 ], [ %z.1, %for.inc27 ] - %.lcssa649 = phi i8 [ %4, %if.end13 ], [ %8, %for.inc27 ] - %conv15.lcssa = phi i32 [ %conv15662, %if.end13 ], [ %conv15, %for.inc27 ] - store ptr %incdec.ptr28661.lcssa, ptr %s, align 8 - %sub.ptr.lhs.cast = ptrtoint ptr %incdec.ptr28661.lcssa to i64 + %.lcssa648 = phi i8 [ %4, %if.end13 ], [ %8, %for.inc27 ] + %conv15.lcssa = phi i32 [ %conv15661, %if.end13 ], [ %conv15, %for.inc27 ] + store ptr %incdec.ptr28660.lcssa, ptr %s, align 8 + %sub.ptr.lhs.cast = ptrtoint ptr %incdec.ptr28660.lcssa to i64 %sub.ptr.rhs.cast = ptrtoint ptr %5 to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast %conv29 = trunc i64 %sub.ptr.sub to i32 - %cmp30 = icmp eq i8 %.lcssa649, 46 + %cmp30 = icmp eq i8 %.lcssa648, 46 br i1 %cmp30, label %if.then31, label %dig_done if.then31: ; preds = %for.end - %incdec.ptr32 = getelementptr inbounds nuw i8, ptr %incdec.ptr28661.lcssa, i64 1 + %incdec.ptr32 = getelementptr inbounds nuw i8, ptr %incdec.ptr28660.lcssa, i64 1 store ptr %incdec.ptr32, ptr %s, align 8 %11 = load i8, ptr %incdec.ptr32, align 1 %conv33 = sext i8 %11 to i32 @@ -165,14 +165,14 @@ if.then31: ; preds = %for.end br i1 %tobool43.not, label %for.cond45.preheader, label %for.cond59 for.cond45.preheader: ; preds = %if.then31 - %cmp46676 = icmp eq i8 %11, 48 - br i1 %cmp46676, label %for.body47, label %for.end52 + %cmp46675 = icmp eq i8 %11, 48 + br i1 %cmp46675, label %for.body47, label %for.end52 for.body47: ; preds = %for.cond45.preheader, %for.body47 - %nz.0678 = phi i32 [ %inc48, %for.body47 ], [ 0, %for.cond45.preheader ] - %incdec.ptr50675677 = phi ptr [ %incdec.ptr50, %for.body47 ], [ %incdec.ptr32, %for.cond45.preheader ] - %inc48 = add nuw nsw i32 %nz.0678, 1 - %incdec.ptr50 = getelementptr inbounds nuw i8, ptr %incdec.ptr50675677, i64 1 + %nz.0677 = phi i32 [ %inc48, %for.body47 ], [ 0, %for.cond45.preheader ] + %incdec.ptr50674676 = phi ptr [ %incdec.ptr50, %for.body47 ], [ %incdec.ptr32, %for.cond45.preheader ] + %inc48 = add nuw nsw i32 %nz.0677, 1 + %incdec.ptr50 = getelementptr inbounds nuw i8, ptr %incdec.ptr50674676, i64 1 %12 = load i8, ptr %incdec.ptr50, align 1 %cmp46 = icmp eq i8 %12, 48 br i1 %cmp46, label %for.body47, label %for.end52.loopexit, !llvm.loop !8 @@ -219,24 +219,24 @@ have_dig: ; preds = %for.end52, %for.con if.then68: ; preds = %have_dig %add69 = add nsw i32 %inc65, %nf.0 - %cmp71.not682 = icmp slt i32 %nz.1, 1 - br i1 %cmp71.not682, label %for.end85, label %for.body72 + %cmp71.not681 = icmp slt i32 %nz.1, 1 + br i1 %cmp71.not681, label %for.end85, label %for.body72 for.body72: ; preds = %if.then68, %for.body72 - %z.5686 = phi i32 [ %z.6, %for.body72 ], [ %z.2, %if.then68 ] - %y.5685 = phi i32 [ %y.6, %for.body72 ], [ %y.2, %if.then68 ] - %nd.4684 = phi i32 [ %inc73, %for.body72 ], [ %nd.1, %if.then68 ] - %i.0683 = phi i32 [ %inc84, %for.body72 ], [ 1, %if.then68 ] - %inc73 = add nsw i32 %nd.4684, 1 - %cmp74 = icmp slt i32 %nd.4684, 9 - %mul76 = mul i32 %y.5685, 10 - %cmp78 = icmp slt i32 %nd.4684, 16 - %mul80 = mul i32 %z.5686, 10 - %spec.select = select i1 %cmp78, i32 %mul80, i32 %z.5686 - %y.6 = select i1 %cmp74, i32 %mul76, i32 %y.5685 - %z.6 = select i1 %cmp74, i32 %z.5686, i32 %spec.select - %inc84 = add nuw i32 %i.0683, 1 - %exitcond.not = icmp eq i32 %i.0683, %nz.1 + %z.5685 = phi i32 [ %z.6, %for.body72 ], [ %z.2, %if.then68 ] + %y.5684 = phi i32 [ %y.6, %for.body72 ], [ %y.2, %if.then68 ] + %nd.4683 = phi i32 [ %inc73, %for.body72 ], [ %nd.1, %if.then68 ] + %i.0682 = phi i32 [ %inc84, %for.body72 ], [ 1, %if.then68 ] + %inc73 = add nsw i32 %nd.4683, 1 + %cmp74 = icmp slt i32 %nd.4683, 9 + %mul76 = mul i32 %y.5684, 10 + %cmp78 = icmp slt i32 %nd.4683, 16 + %mul80 = mul i32 %z.5685, 10 + %spec.select = select i1 %cmp78, i32 %mul80, i32 %z.5685 + %y.6 = select i1 %cmp74, i32 %mul76, i32 %y.5684 + %z.6 = select i1 %cmp74, i32 %z.5685, i32 %spec.select + %inc84 = add nuw i32 %i.0682, 1 + %exitcond.not = icmp eq i32 %i.0682, %nz.1 br i1 %exitcond.not, label %for.end85.loopexit, label %for.body72, !llvm.loop !9 for.end85.loopexit: ; preds = %for.body72 @@ -278,7 +278,7 @@ for.inc99: ; preds = %if.then88, %if.then br label %for.cond59, !llvm.loop !10 dig_done: ; preds = %for.end, %for.cond59, %for.end52 - %21 = phi ptr [ %15, %for.cond59 ], [ %13, %for.end52 ], [ %incdec.ptr28661.lcssa, %for.end ] + %21 = phi ptr [ %15, %for.cond59 ], [ %13, %for.end52 ], [ %incdec.ptr28660.lcssa, %for.end ] %bc.sroa.8.0 = phi i32 [ %sub41, %for.cond59 ], [ %sub41, %for.end52 ], [ 0, %for.end ] %bc.sroa.3.0 = phi i32 [ %conv37, %for.cond59 ], [ %conv37, %for.end52 ], [ %conv29, %for.end ] %c.2 = phi i32 [ %c.3, %for.cond59 ], [ %c.0.lcssa, %for.end52 ], [ %conv15.lcssa, %for.end ] @@ -319,7 +319,7 @@ sw.bb117: ; preds = %sw.bb116, %if.end11 br label %sw.epilog sw.epilog: ; preds = %sw.bb117, %if.end113 - %s.promoted690 = phi ptr [ %incdec.ptr114, %if.end113 ], [ %incdec.ptr118, %sw.bb117 ] + %s.promoted689 = phi ptr [ %incdec.ptr114, %if.end113 ], [ %incdec.ptr118, %sw.bb117 ] %c.5.in = phi i8 [ %23, %if.end113 ], [ %25, %sw.bb117 ] %esign.0 = phi i1 [ true, %if.end113 ], [ %24, %sw.bb117 ] %c.5 = sext i8 %c.5.in to i32 @@ -328,12 +328,12 @@ sw.epilog: ; preds = %sw.bb117, %if.end11 br i1 %or.cond4, label %while.cond124.preheader, label %if.else165 while.cond124.preheader: ; preds = %sw.epilog - %cmp125692 = icmp eq i8 %c.5.in, 48 - br i1 %cmp125692, label %while.body126, label %while.end129 + %cmp125691 = icmp eq i8 %c.5.in, 48 + br i1 %cmp125691, label %while.body126, label %while.end129 while.body126: ; preds = %while.cond124.preheader, %while.body126 - %incdec.ptr127691693 = phi ptr [ %incdec.ptr127, %while.body126 ], [ %s.promoted690, %while.cond124.preheader ] - %incdec.ptr127 = getelementptr inbounds nuw i8, ptr %incdec.ptr127691693, i64 1 + %incdec.ptr127690692 = phi ptr [ %incdec.ptr127, %while.body126 ], [ %s.promoted689, %while.cond124.preheader ] + %incdec.ptr127 = getelementptr inbounds nuw i8, ptr %incdec.ptr127690692, i64 1 %27 = load i8, ptr %incdec.ptr127, align 1 %cmp125 = icmp eq i8 %27, 48 br i1 %cmp125, label %while.body126, label %while.end129.loopexit, !llvm.loop !11 @@ -343,7 +343,7 @@ while.end129.loopexit: ; preds = %while.body126 br label %while.end129 while.end129: ; preds = %while.end129.loopexit, %while.cond124.preheader - %28 = phi ptr [ %s.promoted690, %while.cond124.preheader ], [ %incdec.ptr127, %while.end129.loopexit ] + %28 = phi ptr [ %s.promoted689, %while.cond124.preheader ], [ %incdec.ptr127, %while.end129.loopexit ] %c.6.lcssa = phi i32 [ %c.5, %while.cond124.preheader ], [ %conv128, %while.end129.loopexit ] store ptr %28, ptr %s, align 8 %29 = add nsw i32 %c.6.lcssa, -49 @@ -355,9 +355,9 @@ if.then133: ; preds = %while.end129 br label %while.cond135 while.cond135: ; preds = %while.body142, %if.then133 - %incdec.ptr136698 = phi ptr [ %28, %if.then133 ], [ %incdec.ptr136, %while.body142 ] + %incdec.ptr136697 = phi ptr [ %28, %if.then133 ], [ %incdec.ptr136, %while.body142 ] %L.0 = phi i32 [ %sub134, %if.then133 ], [ %sub145, %while.body142 ] - %incdec.ptr136 = getelementptr inbounds nuw i8, ptr %incdec.ptr136698, i64 1 + %incdec.ptr136 = getelementptr inbounds nuw i8, ptr %incdec.ptr136697, i64 1 %30 = load i8, ptr %incdec.ptr136, align 1 %conv137 = sext i8 %30 to i32 %31 = add i8 %30, -48 @@ -417,14 +417,14 @@ for.cond.i289.preheader: ; preds = %if.then176, %if.the br label %for.cond.i289 sw.bb177: ; preds = %if.then176, %if.then176 - %scevgep824 = getelementptr i8, ptr %34, i64 2 + %scevgep823 = getelementptr i8, ptr %34, i64 2 br label %for.cond.i for.cond.i: ; preds = %for.body.i, %sw.bb177 %d.0.in.in.i.idx = phi i64 [ 0, %sw.bb177 ], [ %d.0.in.in.i.add, %for.body.i ] %s.0.i = phi ptr [ %34, %sw.bb177 ], [ %incdec.ptr1.i, %for.body.i ] - %exitcond825 = icmp eq i64 %d.0.in.in.i.idx, 2 - br i1 %exitcond825, label %if.then179, label %for.body.i + %exitcond824 = icmp eq i64 %d.0.in.in.i.idx, 2 + br i1 %exitcond824, label %if.then179, label %for.body.i for.body.i: ; preds = %for.cond.i %d.0.in.in.i.ptr = getelementptr inbounds nuw i8, ptr @.str, i64 %d.0.in.in.i.idx @@ -442,14 +442,14 @@ for.body.i: ; preds = %for.cond.i br i1 %cmp4.not.i, label %for.cond.i, label %ret0, !llvm.loop !13 if.then179: ; preds = %for.cond.i - store ptr %scevgep824, ptr %s, align 8 + store ptr %scevgep823, ptr %s, align 8 br label %for.cond.i271 for.cond.i271: ; preds = %for.body.i276, %if.then179 %d.0.in.in.i272.idx = phi i64 [ 0, %if.then179 ], [ %d.0.in.in.i272.add, %for.body.i276 ] - %s.0.i273 = phi ptr [ %scevgep824, %if.then179 ], [ %incdec.ptr1.i279, %for.body.i276 ] - %exitcond827 = icmp eq i64 %d.0.in.in.i272.idx, 5 - br i1 %exitcond827, label %if.end185, label %for.body.i276 + %s.0.i273 = phi ptr [ %scevgep823, %if.then179 ], [ %incdec.ptr1.i279, %for.body.i276 ] + %exitcond826 = icmp eq i64 %d.0.in.in.i272.idx, 5 + br i1 %exitcond826, label %if.end185, label %for.body.i276 for.body.i276: ; preds = %for.cond.i271 %d.0.in.in.i272.ptr = getelementptr inbounds nuw i8, ptr @.str.1, i64 %d.0.in.in.i272.idx @@ -469,8 +469,8 @@ for.body.i276: ; preds = %for.cond.i271 if.end185: ; preds = %for.cond.i271, %for.body.i276 %39 = phi i64 [ 2, %for.body.i276 ], [ 7, %for.cond.i271 ] %40 = getelementptr i8, ptr %34, i64 %39 - %storemerge565 = getelementptr inbounds nuw i8, ptr %40, i64 1 - store ptr %storemerge565, ptr %s, align 8 + %storemerge564 = getelementptr inbounds nuw i8, ptr %40, i64 1 + store ptr %storemerge564, ptr %s, align 8 %arrayidx = getelementptr inbounds nuw i8, ptr %rv, i64 4 store i32 2146435072, ptr %arrayidx, align 4 store i32 0, ptr %rv, align 8 @@ -479,8 +479,8 @@ if.end185: ; preds = %for.cond.i271, %for for.cond.i289: ; preds = %for.cond.i289.preheader, %for.body.i294 %d.0.in.in.i290.idx = phi i64 [ %d.0.in.in.i290.add, %for.body.i294 ], [ 0, %for.cond.i289.preheader ] %s.0.i291 = phi ptr [ %incdec.ptr1.i297, %for.body.i294 ], [ %34, %for.cond.i289.preheader ] - %exitcond823 = icmp eq i64 %d.0.in.in.i290.idx, 2 - br i1 %exitcond823, label %if.then191, label %for.body.i294 + %exitcond822 = icmp eq i64 %d.0.in.in.i290.idx, 2 + br i1 %exitcond822, label %if.then191, label %for.body.i294 for.body.i294: ; preds = %for.cond.i289 %d.0.in.in.i290.ptr = getelementptr inbounds nuw i8, ptr @.str.2, i64 %d.0.in.in.i290.idx @@ -632,7 +632,7 @@ if.then257: ; preds = %if.then255 if.end261: ; preds = %if.then257, %if.then255 %69 = phi i32 [ %68, %if.then257 ], [ %62, %if.then255 ] - %rv.promoted705 = phi double [ %mul260, %if.then257 ], [ %64, %if.then255 ] + %rv.promoted704 = phi double [ %mul260, %if.then257 ], [ %64, %if.then255 ] %and262 = and i32 %add253, 2147483632 %tobool263.not = icmp eq i32 %and262, 0 br i1 %tobool263.not, label %if.end372, label %if.then264 @@ -650,45 +650,45 @@ ovfl: ; preds = %if.then703, %for.en br label %ret if.end270: ; preds = %if.then264 - %cmp272708 = icmp samesign ugt i32 %add253, 31 - br i1 %cmp272708, label %for.body273.preheader, label %for.end284 + %cmp272707 = icmp samesign ugt i32 %add253, 31 + br i1 %cmp272707, label %for.body273.preheader, label %for.end284 for.body273.preheader: ; preds = %if.end270 %shr = lshr i32 %add253, 4 - %rv.promoted938 = load double, ptr %rv, align 8 + %rv.promoted937 = load double, ptr %rv, align 8 br label %for.body273 for.body273: ; preds = %for.body273.preheader, %for.inc281 - %mul279939 = phi double [ %rv.promoted938, %for.body273.preheader ], [ %mul279940, %for.inc281 ] + %mul279938 = phi double [ %rv.promoted937, %for.body273.preheader ], [ %mul279939, %for.inc281 ] %70 = phi i32 [ %69, %for.body273.preheader ], [ %75, %for.inc281 ] - %indvars.iv810 = phi i64 [ 0, %for.body273.preheader ], [ %indvars.iv.next811, %for.inc281 ] - %e1.0710 = phi i32 [ %shr, %for.body273.preheader ], [ %shr283, %for.inc281 ] - %mul279707709 = phi double [ %rv.promoted705, %for.body273.preheader ], [ %mul279706, %for.inc281 ] - %and274 = and i32 %e1.0710, 1 + %indvars.iv809 = phi i64 [ 0, %for.body273.preheader ], [ %indvars.iv.next810, %for.inc281 ] + %e1.0709 = phi i32 [ %shr, %for.body273.preheader ], [ %shr283, %for.inc281 ] + %mul279706708 = phi double [ %rv.promoted704, %for.body273.preheader ], [ %mul279705, %for.inc281 ] + %and274 = and i32 %e1.0709, 1 %tobool275.not = icmp eq i32 %and274, 0 br i1 %tobool275.not, label %for.inc281, label %if.then276 if.then276: ; preds = %for.body273 - %arrayidx278 = getelementptr inbounds nuw [5 x double], ptr @_ZN6dmg_fpL7bigtensE, i64 0, i64 %indvars.iv810 + %arrayidx278 = getelementptr inbounds nuw [5 x double], ptr @_ZN6dmg_fpL7bigtensE, i64 0, i64 %indvars.iv809 %71 = load double, ptr %arrayidx278, align 8 - %mul279 = fmul double %71, %mul279707709 + %mul279 = fmul double %71, %mul279706708 %72 = bitcast double %mul279 to i64 %73 = lshr i64 %72, 32 %74 = trunc nuw i64 %73 to i32 br label %for.inc281 for.inc281: ; preds = %for.body273, %if.then276 - %mul279940 = phi double [ %mul279939, %for.body273 ], [ %mul279, %if.then276 ] + %mul279939 = phi double [ %mul279938, %for.body273 ], [ %mul279, %if.then276 ] %75 = phi i32 [ %70, %for.body273 ], [ %74, %if.then276 ] - %mul279706 = phi double [ %mul279707709, %for.body273 ], [ %mul279, %if.then276 ] - %indvars.iv.next811 = add nuw nsw i64 %indvars.iv810, 1 - %shr283 = lshr i32 %e1.0710, 1 - %cmp272 = icmp samesign ugt i32 %e1.0710, 3 + %mul279705 = phi double [ %mul279706708, %for.body273 ], [ %mul279, %if.then276 ] + %indvars.iv.next810 = add nuw nsw i64 %indvars.iv809, 1 + %shr283 = lshr i32 %e1.0709, 1 + %cmp272 = icmp samesign ugt i32 %e1.0709, 3 br i1 %cmp272, label %for.body273, label %for.end284.loopexit, !llvm.loop !14 for.end284.loopexit: ; preds = %for.inc281 - store double %mul279940, ptr %rv, align 8 - %76 = and i64 %indvars.iv.next811, 4294967295 + store double %mul279939, ptr %rv, align 8 + %76 = and i64 %indvars.iv.next810, 4294967295 br label %for.end284 for.end284: ; preds = %for.end284.loopexit, %if.end270 @@ -760,24 +760,24 @@ if.then317: ; preds = %if.end314 for.body328.preheader: ; preds = %if.then317 %tobool322.not = icmp samesign ult i32 %sub307, 256 %spec.select559 = select i1 %tobool322.not, i32 0, i32 106 - %rv.promoted935 = load double, ptr %rv, align 8 + %rv.promoted934 = load double, ptr %rv, align 8 br label %for.body328 for.body328: ; preds = %for.body328.preheader, %for.inc336 - %mul334936 = phi double [ %rv.promoted935, %for.body328.preheader ], [ %mul334937, %for.inc336 ] + %mul334935 = phi double [ %rv.promoted934, %for.body328.preheader ], [ %mul334936, %for.inc336 ] %90 = phi i32 [ %88, %for.body328.preheader ], [ %97, %for.inc336 ] %91 = phi i32 [ %89, %for.body328.preheader ], [ %98, %for.inc336 ] %indvars.iv = phi i64 [ 0, %for.body328.preheader ], [ %indvars.iv.next, %for.inc336 ] - %e1.1703 = phi i32 [ %shr315, %for.body328.preheader ], [ %shr338, %for.inc336 ] - %mul334700702 = phi double [ %rv.promoted, %for.body328.preheader ], [ %mul334699, %for.inc336 ] - %and329 = and i32 %e1.1703, 1 + %e1.1702 = phi i32 [ %shr315, %for.body328.preheader ], [ %shr338, %for.inc336 ] + %mul334699701 = phi double [ %rv.promoted, %for.body328.preheader ], [ %mul334698, %for.inc336 ] + %and329 = and i32 %e1.1702, 1 %tobool330.not = icmp eq i32 %and329, 0 br i1 %tobool330.not, label %for.inc336, label %if.then331 if.then331: ; preds = %for.body328 %arrayidx333 = getelementptr inbounds nuw [5 x double], ptr @_ZN6dmg_fpL8tinytensE, i64 0, i64 %indvars.iv %92 = load double, ptr %arrayidx333, align 8 - %mul334 = fmul double %92, %mul334700702 + %mul334 = fmul double %92, %mul334699701 %93 = bitcast double %mul334 to i64 %94 = lshr i64 %93, 32 %95 = trunc nuw i64 %94 to i32 @@ -785,17 +785,17 @@ if.then331: ; preds = %for.body328 br label %for.inc336 for.inc336: ; preds = %for.body328, %if.then331 - %mul334937 = phi double [ %mul334936, %for.body328 ], [ %mul334, %if.then331 ] + %mul334936 = phi double [ %mul334935, %for.body328 ], [ %mul334, %if.then331 ] %97 = phi i32 [ %90, %for.body328 ], [ %96, %if.then331 ] %98 = phi i32 [ %91, %for.body328 ], [ %95, %if.then331 ] - %mul334699 = phi double [ %mul334700702, %for.body328 ], [ %mul334, %if.then331 ] + %mul334698 = phi double [ %mul334699701, %for.body328 ], [ %mul334, %if.then331 ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %shr338 = lshr i32 %e1.1703, 1 - %cmp327.not = icmp samesign ult i32 %e1.1703, 2 + %shr338 = lshr i32 %e1.1702, 1 + %cmp327.not = icmp samesign ult i32 %e1.1702, 2 br i1 %cmp327.not, label %for.end339, label %for.body328, !llvm.loop !15 for.end339: ; preds = %for.inc336 - store double %mul334937, ptr %rv, align 8 + store double %mul334936, ptr %rv, align 8 br i1 %tobool322.not, label %if.end365, label %land.lhs.true342 land.lhs.true342: ; preds = %for.end339 @@ -878,8 +878,8 @@ for.end399: ; preds = %for.cond382 br i1 %cmp405, label %for.cond407.preheader, label %if.end434 for.cond407.preheader: ; preds = %for.end399 - %cmp408713 = icmp sgt i32 %spec.select263, 0 - br i1 %cmp408713, label %for.body409.preheader, label %for.cond420.preheader + %cmp408712 = icmp sgt i32 %spec.select263, 0 + br i1 %cmp408712, label %for.body409.preheader, label %for.cond420.preheader for.body409.preheader: ; preds = %for.cond407.preheader %wide.trip.count = zext nneg i32 %spec.select263 to i64 @@ -888,40 +888,40 @@ for.body409.preheader: ; preds = %for.cond407.prehead for.cond420.preheader: ; preds = %for.body409, %for.cond407.preheader %i.2.lcssa = phi i32 [ 0, %for.cond407.preheader ], [ %spec.select263, %for.body409 ] %y.10.lcssa = phi i32 [ 0, %for.cond407.preheader ], [ %sub415, %for.body409 ] - %cmp421718 = icmp slt i32 %i.2.lcssa, %i.1 - br i1 %cmp421718, label %for.body422.preheader, label %if.end434 + %cmp421717 = icmp slt i32 %i.2.lcssa, %i.1 + br i1 %cmp421717, label %for.body422.preheader, label %if.end434 for.body422.preheader: ; preds = %for.cond420.preheader %101 = sext i32 %bc.sroa.3.0 to i64 br label %for.body422 for.body409: ; preds = %for.body409.preheader, %for.body409 - %indvars.iv813 = phi i64 [ 0, %for.body409.preheader ], [ %indvars.iv.next814, %for.body409 ] - %y.10715 = phi i32 [ 0, %for.body409.preheader ], [ %sub415, %for.body409 ] - %mul410 = mul i32 %y.10715, 10 - %arrayidx412 = getelementptr inbounds nuw i8, ptr %s0.1, i64 %indvars.iv813 + %indvars.iv812 = phi i64 [ 0, %for.body409.preheader ], [ %indvars.iv.next813, %for.body409 ] + %y.10714 = phi i32 [ 0, %for.body409.preheader ], [ %sub415, %for.body409 ] + %mul410 = mul i32 %y.10714, 10 + %arrayidx412 = getelementptr inbounds nuw i8, ptr %s0.1, i64 %indvars.iv812 %102 = load i8, ptr %arrayidx412, align 1 %conv413 = sext i8 %102 to i32 %add414 = add i32 %mul410, -48 %sub415 = add i32 %add414, %conv413 - %indvars.iv.next814 = add nuw nsw i64 %indvars.iv813, 1 - %exitcond817.not = icmp eq i64 %indvars.iv.next814, %wide.trip.count - br i1 %exitcond817.not, label %for.cond420.preheader, label %for.body409, !llvm.loop !17 + %indvars.iv.next813 = add nuw nsw i64 %indvars.iv812, 1 + %exitcond816.not = icmp eq i64 %indvars.iv.next813, %wide.trip.count + br i1 %exitcond816.not, label %for.cond420.preheader, label %for.body409, !llvm.loop !17 for.body422: ; preds = %for.body422.preheader, %for.body422 - %indvars.iv818 = phi i64 [ %101, %for.body422.preheader ], [ %indvars.iv.next819, %for.body422 ] - %y.11721 = phi i32 [ %y.10.lcssa, %for.body422.preheader ], [ %sub429, %for.body422 ] - %i.3719 = phi i32 [ %i.2.lcssa, %for.body422.preheader ], [ %inc431, %for.body422 ] - %mul423 = mul i32 %y.11721, 10 - %indvars.iv.next819 = add nsw i64 %indvars.iv818, 1 - %arrayidx426 = getelementptr inbounds i8, ptr %s0.1, i64 %indvars.iv818 + %indvars.iv817 = phi i64 [ %101, %for.body422.preheader ], [ %indvars.iv.next818, %for.body422 ] + %y.11720 = phi i32 [ %y.10.lcssa, %for.body422.preheader ], [ %sub429, %for.body422 ] + %i.3718 = phi i32 [ %i.2.lcssa, %for.body422.preheader ], [ %inc431, %for.body422 ] + %mul423 = mul i32 %y.11720, 10 + %indvars.iv.next818 = add nsw i64 %indvars.iv817, 1 + %arrayidx426 = getelementptr inbounds i8, ptr %s0.1, i64 %indvars.iv817 %103 = load i8, ptr %arrayidx426, align 1 %conv427 = sext i8 %103 to i32 %add428 = add i32 %mul423, -48 %sub429 = add i32 %add428, %conv427 - %inc431 = add nuw nsw i32 %i.3719, 1 - %exitcond822.not = icmp eq i32 %inc431, %i.1 - br i1 %exitcond822.not, label %if.end434, label %for.body422, !llvm.loop !18 + %inc431 = add nuw nsw i32 %i.3718, 1 + %exitcond821.not = icmp eq i32 %inc431, %i.1 + br i1 %exitcond821.not, label %if.end434, label %for.body422, !llvm.loop !18 if.end434: ; preds = %for.body422, %for.cond420.preheader, %for.end399, %if.end372 %e.2 = phi i32 [ %add401, %for.end399 ], [ %sub203, %if.end372 ], [ %add401, %for.cond420.preheader ], [ %add401, %for.body422 ] @@ -1070,17 +1070,17 @@ _ZN6dmg_fpL3s2bEPKciiji.exit: ; preds = %for.body12.i, %if.e %wds = getelementptr inbounds nuw i8, ptr %b.2.lcssa.i, i64 20 %sub450 = sub nsw i32 0, %e.2 %bd2.0 = tail call i32 @llvm.smax.i32(i32 %e.2, i32 0) - %cmp447.inv = icmp slt i32 %e.2, 0 - %bb2.0 = select i1 %cmp447.inv, i32 %sub450, i32 0 + %bb2.0 = icmp slt i32 %e.2, 0 + %bd2.1 = select i1 %bd2.1, i32 %sub450, i32 0 %bd2.1 = add nuw i32 %bd2.0, %bc.sroa.39.0 %cmp486 = icmp sgt i32 %bb2.0, 0 - %cmp495.not = icmp slt i32 %e.2, 1 + %cmp495 = icmp slt i32 %e.2, 1 %cmp512 = icmp sgt i32 %nd.2, %nd.6 %arrayidx660 = getelementptr inbounds nuw i8, ptr %rv, i64 4 %tobool719 = icmp ne i32 %bc.sroa.39.0, 0 %cmp749 = icmp eq i32 %nd.2, %nd.6 %tobool752 = icmp eq i32 %bc.sroa.39.0, 0 - %or.cond16.not563 = select i1 %cmp749, i1 %tobool752, i1 false + %or.cond16.not562 = select i1 %cmp749, i1 %tobool752, i1 false br label %for.cond437 for.cond437: ; preds = %for.cond437.backedge, %_ZN6dmg_fpL3s2bEPKciiji.exit @@ -1198,8 +1198,8 @@ _ZN6dmg_fpL3i2bEi.exit: ; preds = %if.then.i.i320, %if store i32 1, ptr %x.i, align 8 store i32 1, ptr %wds.i.i323, align 4 %119 = load i32, ptr %bbe, align 4 - %sub456 = tail call i32 @llvm.smin.i32(i32 %119, i32 0) - %add454 = tail call i32 @llvm.smax.i32(i32 %119, i32 0) + %cmp452 = tail call i32 @llvm.smin.i32(i32 %119, i32 0) + %sub456 = tail call i32 @llvm.smax.i32(i32 %119, i32 0) %bb2.1 = add nuw nsw i32 %add454, %bb2.0 %sub459 = sub nsw i32 %119, %bc.sroa.39.0 %120 = load i32, ptr %bbbits, align 4 @@ -1255,7 +1255,7 @@ if.then492: ; preds = %if.end490 if.end494: ; preds = %if.then492, %if.end490 %bb.1 = phi ptr [ %call493, %if.then492 ], [ %bb.0, %if.end490 ] - br i1 %cmp495.not, label %if.end498, label %if.then496 + br i1 %cmp495, label %if.end498, label %if.then496 if.then496: ; preds = %if.end494 %call497 = tail call fastcc noundef ptr @_ZN6dmg_fpL8pow5multEPNS_6BigintEi(ptr noundef nonnull %rv.0.i, i32 noundef %bd2.0) @@ -1450,19 +1450,19 @@ drop_down: ; preds = %if.then7.i368, %if. %138 = phi i32 [ %130, %_ZN6dmg_fpL3cmpEPNS_6BigintES1_.exit373 ], [ %136, %if.else585 ], [ %130, %if.then7.i368 ] %bc.sroa.28.1547 = phi i32 [ %bc.sroa.28.1546, %_ZN6dmg_fpL3cmpEPNS_6BigintES1_.exit373 ], [ %nd.2, %if.else585 ], [ %bc.sroa.28.1546, %if.then7.i368 ] %delta.1 = phi ptr [ %call546, %_ZN6dmg_fpL3cmpEPNS_6BigintES1_.exit373 ], [ %call507, %if.else585 ], [ %call546, %if.then7.i368 ] - %.pre832 = and i32 %138, 2146435072 - %cmp598 = icmp samesign ugt i32 %.pre832, 112197632 - %or.cond941.not = select i1 %tobool752, i1 true, i1 %cmp598 - br i1 %or.cond941.not, label %if.end609, label %if.then599 + %.pre831 = and i32 %138, 2146435072 + %cmp598 = icmp samesign ugt i32 %.pre831, 112197632 + %or.cond940.not = select i1 %tobool752, i1 true, i1 %cmp598 + br i1 %or.cond940.not, label %if.end609, label %if.then599 if.then599: ; preds = %drop_down - %cmp600 = icmp samesign ugt i32 %.pre832, 57671680 + %cmp600 = icmp samesign ugt i32 %.pre831, 57671680 %cmp604 = icmp sgt i32 %bc.sroa.28.1547, %nd.6 %or.cond561 = select i1 %cmp600, i1 true, i1 %cmp604 br i1 %or.cond561, label %for.end782, label %undfl if.end609: ; preds = %drop_down - %or = add nsw i32 %.pre832, -1 + %or = add nsw i32 %.pre831, -1 store i32 %or, ptr %arrayidx660, align 4 store i32 -1, ptr %rv, align 8 br label %for.end782 @@ -1660,8 +1660,8 @@ if.end737: ; preds = %if.then724, %if.the %161 = bitcast double %aadj1.2 to i64 %aadj2.sroa.0.4.extract.shift = lshr i64 %161, 32 %aadj2.sroa.0.4.extract.trunc = trunc nuw i64 %aadj2.sroa.0.4.extract.shift to i32 - %reass.sub728 = sub i32 %aadj2.sroa.0.4.extract.trunc, %and692 - %add740 = add i32 %reass.sub728, 112197632 + %reass.sub727 = sub i32 %aadj2.sroa.0.4.extract.trunc, %and692 + %add740 = add i32 %reass.sub727, 112197632 %aadj2.sroa.0.4.insert.ext = zext i32 %add740 to i64 %aadj2.sroa.0.4.insert.shift = shl nuw i64 %aadj2.sroa.0.4.insert.ext, 32 %aadj2.sroa.0.4.insert.mask = and i64 %161, 4294967295 @@ -1691,7 +1691,7 @@ if.end745: ; preds = %if.end741, %if.else %aadj.2 = phi double [ %aadj.1, %if.else713 ], [ %aadj.3, %if.end741 ] %and747 = and i32 %168, 2146435072 %cmp754 = icmp eq i32 %and692, %and747 - %or.cond265 = select i1 %or.cond16.not563, i1 %cmp754, i1 false + %or.cond265 = select i1 %or.cond16.not562, i1 %cmp754, i1 false br i1 %or.cond265, label %if.then755, label %cont if.then755: ; preds = %if.end745 @@ -1701,10 +1701,10 @@ if.then755: ; preds = %if.end745 %tobool760 = icmp eq i32 %123, 0 %169 = and i64 %.in, 4294967295 %tobool763 = icmp eq i64 %169, 0 - %or.cond14.not564 = select i1 %tobool760, i1 %tobool763, i1 false + %or.cond14.not563 = select i1 %tobool760, i1 %tobool763, i1 false %and766 = and i32 %168, 1048575 %tobool767.not = icmp eq i32 %and766, 0 - %or.cond266 = select i1 %or.cond14.not564, i1 %tobool767.not, i1 false + %or.cond266 = select i1 %or.cond14.not563, i1 %tobool767.not, i1 false br i1 %or.cond266, label %if.else774, label %if.then768 if.then768: ; preds = %if.then755 @@ -2096,8 +2096,8 @@ if.end25.i: ; preds = %if.then21.i, %if.el %tobool19.not16.i.i.i = icmp slt i32 %x.addr.3.i.i.i, 0 %retval.0.i.i.i = select i1 %tobool19.not16.i.i.i, i32 %k.3.i.i.i, i32 %spec.select15.i.i.i %sub2.i.i = tail call i32 @llvm.smax.i32(i32 %d2.0.i, i32 0) - %reass.sub729 = sub nsw i32 %retval.0.i.i.i, %sub2.i.i - %spec.select.i.i = add nsw i32 %reass.sub729, 28 + %reass.sub728 = sub nsw i32 %retval.0.i.i.i, %sub2.i.i + %spec.select.i.i = add nsw i32 %reass.sub728, 28 %and.i.i = and i32 %spec.select.i.i, 31 %add32.i = add nuw nsw i32 %and.i.i, %b2.0.i %cmp33.not.i = icmp eq i32 %add32.i, 0 @@ -3944,7 +3944,7 @@ if.end64: ; preds = %if.then58, %select. %sub66 = add i32 %33, %34 %sub70 = sub nsw i32 0, %sub66 %s2.0 = tail call i32 @llvm.smax.i32(i32 %sub66, i32 0) - %cmp67.inv = icmp slt i32 %sub66, 0 + %b2.0 = icmp slt i32 %sub66, 0 %b2.0 = select i1 %cmp67.inv, i32 %sub70, i32 0 %cmp72 = icmp sgt i32 %k.1, -1 br i1 %cmp72, label %if.then73, label %if.else75 diff --git a/bench/libquic/optimized/exponentiation.c.ll b/bench/libquic/optimized/exponentiation.c.ll index 14849459da5..4ce611818d2 100644 --- a/bench/libquic/optimized/exponentiation.c.ll +++ b/bench/libquic/optimized/exponentiation.c.ll @@ -1282,13 +1282,13 @@ for.body181.preheader: ; preds = %if.then174 br label %for.body181 for.body181: ; preds = %for.body181.preheader, %for.body181 - %indvars.iv391 = phi i64 [ %28, %for.body181.preheader ], [ %indvars.iv.next392, %for.body181 ] + %indvars.iv390 = phi i64 [ %28, %for.body181.preheader ], [ %indvars.iv.next391, %for.body181 ] %29 = load ptr, ptr %am, align 8 - %arrayidx184 = getelementptr inbounds i64, ptr %29, i64 %indvars.iv391 + %arrayidx184 = getelementptr inbounds i64, ptr %29, i64 %indvars.iv390 store i64 0, ptr %arrayidx184, align 8 - %indvars.iv.next392 = add nsw i64 %indvars.iv391, 1 - %exitcond395.not = icmp eq i64 %indvars.iv.next392, %conv105 - br i1 %exitcond395.not, label %for.end187, label %for.body181, !llvm.loop !18 + %indvars.iv.next391 = add nsw i64 %indvars.iv390, 1 + %exitcond394.not = icmp eq i64 %indvars.iv.next391, %conv105 + br i1 %exitcond394.not, label %for.end187, label %for.body181, !llvm.loop !18 for.end187: ; preds = %for.body181, %if.then174 %30 = load i32, ptr %top115, align 8 @@ -1300,13 +1300,13 @@ for.body192.preheader: ; preds = %for.end187 br label %for.body192 for.body192: ; preds = %for.body192.preheader, %for.body192 - %indvars.iv396 = phi i64 [ %31, %for.body192.preheader ], [ %indvars.iv.next397, %for.body192 ] + %indvars.iv395 = phi i64 [ %31, %for.body192.preheader ], [ %indvars.iv.next396, %for.body192 ] %32 = load ptr, ptr %tmp, align 8 - %arrayidx195 = getelementptr inbounds i64, ptr %32, i64 %indvars.iv396 + %arrayidx195 = getelementptr inbounds i64, ptr %32, i64 %indvars.iv395 store i64 0, ptr %arrayidx195, align 8 - %indvars.iv.next397 = add nsw i64 %indvars.iv396, 1 - %exitcond400.not = icmp eq i64 %indvars.iv.next397, %conv105 - br i1 %exitcond400.not, label %for.end198, label %for.body192, !llvm.loop !19 + %indvars.iv.next396 = add nsw i64 %indvars.iv395, 1 + %exitcond399.not = icmp eq i64 %indvars.iv.next396, %conv105 + br i1 %exitcond399.not, label %for.end198, label %for.body192, !llvm.loop !19 for.end198: ; preds = %for.body192, %for.end187 %33 = load ptr, ptr %am, align 8 @@ -1316,19 +1316,19 @@ for.end198: ; preds = %for.body192, %for.e for.body205.lr.ph: ; preds = %for.end198 %N = getelementptr inbounds nuw i8, ptr %mont.addr.0, i64 24 - %wide.trip.count404 = zext nneg i32 %0 to i64 + %wide.trip.count403 = zext nneg i32 %0 to i64 br label %for.body205 for.body205: ; preds = %for.body205.lr.ph, %for.body205 - %indvars.iv401 = phi i64 [ 0, %for.body205.lr.ph ], [ %indvars.iv.next402, %for.body205 ] + %indvars.iv400 = phi i64 [ 0, %for.body205.lr.ph ], [ %indvars.iv.next401, %for.body205 ] %34 = load ptr, ptr %N, align 8 - %arrayidx208 = getelementptr inbounds nuw i64, ptr %34, i64 %indvars.iv401 + %arrayidx208 = getelementptr inbounds nuw i64, ptr %34, i64 %indvars.iv400 %35 = load i64, ptr %arrayidx208, align 8 - %arrayidx210 = getelementptr inbounds nuw i64, ptr %add.ptr201, i64 %indvars.iv401 + %arrayidx210 = getelementptr inbounds nuw i64, ptr %add.ptr201, i64 %indvars.iv400 store i64 %35, ptr %arrayidx210, align 8 - %indvars.iv.next402 = add nuw nsw i64 %indvars.iv401, 1 - %exitcond405.not = icmp eq i64 %indvars.iv.next402, %wide.trip.count404 - br i1 %exitcond405.not, label %for.end213, label %for.body205, !llvm.loop !20 + %indvars.iv.next401 = add nuw nsw i64 %indvars.iv400, 1 + %exitcond404.not = icmp eq i64 %indvars.iv.next401, %wide.trip.count403 + br i1 %exitcond404.not, label %for.end213, label %for.body205, !llvm.loop !20 for.end213: ; preds = %for.body205, %for.end198 %36 = load ptr, ptr %tmp, align 8 @@ -1356,15 +1356,15 @@ for.body228: ; preds = %for.end213, %for.bo br i1 %cmp226, label %for.body228, label %for.body242, !llvm.loop !21 for.body242: ; preds = %for.body228, %for.inc264 - %indvars.iv406 = phi i64 [ %indvars.iv.next407, %for.inc264 ], [ 3, %for.body228 ] + %indvars.iv405 = phi i64 [ %indvars.iv.next406, %for.inc264 ], [ 3, %for.body228 ] %44 = load ptr, ptr %tmp, align 8 %45 = load ptr, ptr %am, align 8 - %46 = trunc i64 %indvars.iv406 to i32 + %46 = trunc i64 %indvars.iv405 to i32 %47 = add nsw i32 %46, -1 call void @bn_mul_mont_gather5(ptr noundef %44, ptr noundef %45, ptr noundef nonnull %add.ptr, ptr noundef %add.ptr201, ptr noundef nonnull %n0176, i32 noundef %0, i32 noundef %47) #7 %48 = load ptr, ptr %tmp, align 8 - call void @bn_scatter5(ptr noundef %48, i64 noundef %conv105, ptr noundef nonnull %add.ptr, i64 noundef %indvars.iv406) #7 - %49 = trunc nuw nsw i64 %indvars.iv406 to i32 + call void @bn_scatter5(ptr noundef %48, i64 noundef %conv105, ptr noundef nonnull %add.ptr, i64 noundef %indvars.iv405) #7 + %49 = trunc nuw nsw i64 %indvars.iv405 to i32 br label %for.body253 for.body253: ; preds = %for.body242, %for.body253 @@ -1379,39 +1379,39 @@ for.body253: ; preds = %for.body242, %for.b br i1 %cmp251, label %for.body253, label %for.inc264, !llvm.loop !22 for.inc264: ; preds = %for.body253 - %indvars.iv.next407 = add nuw nsw i64 %indvars.iv406, 2 - %cmp240 = icmp samesign ult i64 %indvars.iv406, 6 + %indvars.iv.next406 = add nuw nsw i64 %indvars.iv405, 2 + %cmp240 = icmp samesign ult i64 %indvars.iv405, 6 br i1 %cmp240, label %for.body242, label %for.body270, !llvm.loop !23 for.body270: ; preds = %for.inc264, %for.body270 - %indvars.iv410 = phi i64 [ %indvars.iv.next411, %for.body270 ], [ 9, %for.inc264 ] + %indvars.iv409 = phi i64 [ %indvars.iv.next410, %for.body270 ], [ 9, %for.inc264 ] %52 = load ptr, ptr %tmp, align 8 %53 = load ptr, ptr %am, align 8 - %54 = trunc i64 %indvars.iv410 to i32 + %54 = trunc i64 %indvars.iv409 to i32 %55 = add nsw i32 %54, -1 call void @bn_mul_mont_gather5(ptr noundef %52, ptr noundef %53, ptr noundef nonnull %add.ptr, ptr noundef %add.ptr201, ptr noundef nonnull %n0176, i32 noundef %0, i32 noundef %55) #7 %56 = load ptr, ptr %tmp, align 8 - call void @bn_scatter5(ptr noundef %56, i64 noundef %conv105, ptr noundef nonnull %add.ptr, i64 noundef %indvars.iv410) #7 + call void @bn_scatter5(ptr noundef %56, i64 noundef %conv105, ptr noundef nonnull %add.ptr, i64 noundef %indvars.iv409) #7 %57 = load ptr, ptr %tmp, align 8 %call280 = call i32 @bn_mul_mont(ptr noundef %57, ptr noundef %57, ptr noundef %57, ptr noundef %add.ptr201, ptr noundef nonnull %n0176, i32 noundef %0) #7 %58 = load ptr, ptr %tmp, align 8 - %59 = shl nuw nsw i64 %indvars.iv410, 1 + %59 = shl nuw nsw i64 %indvars.iv409, 1 call void @bn_scatter5(ptr noundef %58, i64 noundef %conv105, ptr noundef nonnull %add.ptr, i64 noundef %59) #7 - %indvars.iv.next411 = add nuw nsw i64 %indvars.iv410, 2 - %cmp268 = icmp samesign ult i64 %indvars.iv410, 14 + %indvars.iv.next410 = add nuw nsw i64 %indvars.iv409, 2 + %cmp268 = icmp samesign ult i64 %indvars.iv409, 14 br i1 %cmp268, label %for.body270, label %for.body291, !llvm.loop !24 for.body291: ; preds = %for.body270, %for.body291 - %indvars.iv415 = phi i64 [ %indvars.iv.next416, %for.body291 ], [ 17, %for.body270 ] + %indvars.iv414 = phi i64 [ %indvars.iv.next415, %for.body291 ], [ 17, %for.body270 ] %60 = load ptr, ptr %tmp, align 8 %61 = load ptr, ptr %am, align 8 - %62 = trunc i64 %indvars.iv415 to i32 + %62 = trunc i64 %indvars.iv414 to i32 %63 = add nsw i32 %62, -1 call void @bn_mul_mont_gather5(ptr noundef %60, ptr noundef %61, ptr noundef nonnull %add.ptr, ptr noundef %add.ptr201, ptr noundef nonnull %n0176, i32 noundef %0, i32 noundef %63) #7 %64 = load ptr, ptr %tmp, align 8 - call void @bn_scatter5(ptr noundef %64, i64 noundef %conv105, ptr noundef nonnull %add.ptr, i64 noundef %indvars.iv415) #7 - %indvars.iv.next416 = add nuw nsw i64 %indvars.iv415, 2 - %cmp289 = icmp samesign ult i64 %indvars.iv415, 30 + call void @bn_scatter5(ptr noundef %64, i64 noundef %conv105, ptr noundef nonnull %add.ptr, i64 noundef %indvars.iv414) #7 + %indvars.iv.next415 = add nuw nsw i64 %indvars.iv414, 2 + %cmp289 = icmp samesign ult i64 %indvars.iv414, 30 br i1 %cmp289, label %for.body291, label %for.end300, !llvm.loop !25 for.end300: ; preds = %for.body291 @@ -1458,8 +1458,8 @@ for.body323: ; preds = %while.cond.preheade %add326 = add nsw i32 %call325, %shl324 %inc328 = add nuw nsw i32 %i.9375, 1 %dec329 = add nsw i32 %bits.2374, -1 - %exitcond419.not = icmp eq i32 %inc328, 5 - br i1 %exitcond419.not, label %for.end330, label %for.body323.backedge + %exitcond418.not = icmp eq i32 %inc328, 5 + br i1 %exitcond418.not, label %for.end330, label %for.body323.backedge for.body323.backedge: ; preds = %for.body323, %for.end330 %i.9375.be = phi i32 [ %inc328, %for.body323 ], [ 0, %for.end330 ] @@ -1712,8 +1712,8 @@ if.end464: ; preds = %for.body460 %add467 = add nsw i32 %call466, %shl465 %inc469 = add nuw nsw i32 %i.12352, 1 %dec470 = add nsw i32 %bits.7351, -1 - %exitcond390.not = icmp eq i32 %inc469, %umax389 - br i1 %exitcond390.not, label %for.end471, label %for.body460, !llvm.loop !32 + %exitcond389.not = icmp eq i32 %inc469, %umax389 + br i1 %exitcond389.not, label %for.end471, label %for.body460, !llvm.loop !32 for.end471: ; preds = %if.end464 %call472 = call fastcc i32 @copy_from_prebuf(ptr noundef %am, i32 noundef %0, ptr noundef %add.ptr, i32 noundef %add467, i32 noundef %spec.select) diff --git a/bench/libwebp/optimized/cost.c.ll b/bench/libwebp/optimized/cost.c.ll index 7eec166f977..5827df2d485 100644 --- a/bench/libwebp/optimized/cost.c.ll +++ b/bench/libwebp/optimized/cost.c.ll @@ -105,7 +105,7 @@ define internal i32 @GetResidualCost_C(i32 noundef %0, ptr noundef readonly capt %.in.in.i44 = getelementptr inbounds nuw [256 x i16], ptr @VP8EntropyCost, i64 0, i64 %.pn.i43 %.in.i45 = load i16, ptr %.in.in.i44, align 2 %26 = zext i16 %.in.i45 to i32 - br label %74 + br label %72 27: ; preds = %.lr.ph, %27 %indvars.iv = phi i64 [ %6, %.lr.ph ], [ %indvars.iv.next, %27 ] @@ -128,9 +128,9 @@ define internal i32 @GetResidualCost_C(i32 noundef %0, ptr noundef readonly capt %42 = add nuw nsw i32 %.04150, %36 %43 = add nuw nsw i32 %42, %41 %indvars.iv.next = add nsw i64 %indvars.iv, 1 - %44 = zext nneg i32 %32 to i64 - %45 = getelementptr inbounds [3 x ptr], ptr %11, i64 %indvars.iv.next, i64 %44 - %46 = load ptr, ptr %45, align 8 + %narrow = zext nneg i32 %32 to i64 + %42 = getelementptr inbounds [3 x ptr], ptr %11, i64 %indvars.iv.next, i64 %narrow + %43 = load ptr, ptr %45, align 8 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count br i1 %exitcond.not, label %._crit_edge, label %27, !llvm.loop !4 @@ -139,42 +139,42 @@ define internal i32 @GetResidualCost_C(i32 noundef %0, ptr noundef readonly capt %.041.lcssa = phi i32 [ %18, %.preheader ], [ %43, %27 ] %.040.lcssa = phi ptr [ %13, %.preheader ], [ %46, %27 ] %.039.lcssa = phi i32 [ %3, %.preheader ], [ %20, %27 ] - %47 = getelementptr inbounds i16, ptr %24, i64 %.pre-phi - %48 = load i16, ptr %47, align 2 - %49 = tail call i16 @llvm.abs.i16(i16 %48, i1 false) - %50 = zext i16 %49 to i64 - %51 = getelementptr inbounds nuw [2048 x i16], ptr @VP8LevelFixedCosts, i64 0, i64 %50 - %52 = load i16, ptr %51, align 2 - %53 = zext i16 %52 to i32 - %54 = tail call i16 @llvm.umin.i16(i16 %49, i16 67) - %55 = zext nneg i16 %54 to i64 - %56 = getelementptr inbounds nuw i16, ptr %.040.lcssa, i64 %55 - %57 = load i16, ptr %56, align 2 - %58 = zext i16 %57 to i32 - %59 = add nuw nsw i32 %.041.lcssa, %53 - %60 = add nuw nsw i32 %59, %58 - %61 = icmp slt i32 %.039.lcssa, 15 - br i1 %61, label %62, label %74 - -62: ; preds = %._crit_edge - %63 = add nsw i32 %.039.lcssa, 1 - %64 = sext i32 %63 to i64 - %65 = getelementptr inbounds [17 x i8], ptr @VP8EncBands, i64 0, i64 %64 - %66 = load i8, ptr %65, align 1 - %67 = icmp eq i16 %49, 1 - %68 = zext i8 %66 to i64 - %69 = select i1 %67, i64 1, i64 2 - %70 = getelementptr inbounds nuw [3 x [11 x i8]], ptr %5, i64 %68, i64 %69 - %71 = load i8, ptr %70, align 1 - %.pn.i47 = zext i8 %71 to i64 + %45 = getelementptr inbounds i16, ptr %24, i64 %.pre-phi + %46 = load i16, ptr %45, align 2 + %47 = tail call i16 @llvm.abs.i16(i16 %46, i1 false) + %48 = zext i16 %47 to i64 + %49 = getelementptr inbounds nuw [2048 x i16], ptr @VP8LevelFixedCosts, i64 0, i64 %48 + %50 = load i16, ptr %49, align 2 + %51 = zext i16 %50 to i32 + %52 = tail call i16 @llvm.umin.i16(i16 %47, i16 67) + %53 = zext nneg i16 %52 to i64 + %54 = getelementptr inbounds nuw i16, ptr %.040.lcssa, i64 %53 + %55 = load i16, ptr %54, align 2 + %56 = zext i16 %55 to i32 + %57 = add nuw nsw i32 %.041.lcssa, %51 + %58 = add nuw nsw i32 %57, %56 + %59 = icmp slt i32 %.039.lcssa, 15 + br i1 %59, label %60, label %72 + +60: ; preds = %._crit_edge + %61 = add nsw i32 %.039.lcssa, 1 + %62 = sext i32 %61 to i64 + %63 = getelementptr inbounds [17 x i8], ptr @VP8EncBands, i64 0, i64 %62 + %64 = load i8, ptr %63, align 1 + %65 = icmp eq i16 %47, 1 + %66 = zext i8 %64 to i64 + %67 = select i1 %65, i64 1, i64 2 + %68 = getelementptr inbounds nuw [3 x [11 x i8]], ptr %5, i64 %66, i64 %67 + %69 = load i8, ptr %68, align 1 + %.pn.i47 = zext i8 %69 to i64 %.in.in.i48 = getelementptr inbounds nuw [256 x i16], ptr @VP8EntropyCost, i64 0, i64 %.pn.i47 %.in.i49 = load i16, ptr %.in.in.i48, align 2 - %72 = zext i16 %.in.i49 to i32 - %73 = add nuw nsw i32 %60, %72 - br label %74 + %70 = zext i16 %.in.i49 to i32 + %71 = add nuw nsw i32 %58, %70 + br label %72 -74: ; preds = %._crit_edge, %62, %25 - %.0 = phi i32 [ %26, %25 ], [ %73, %62 ], [ %60, %._crit_edge ] +72: ; preds = %._crit_edge, %60, %25 + %.0 = phi i32 [ %26, %25 ], [ %71, %60 ], [ %58, %._crit_edge ] ret i32 %.0 } diff --git a/bench/linux/optimized/act_api.ll b/bench/linux/optimized/act_api.ll index 1a7a5f4d3f0..eccc957eedc 100644 --- a/bench/linux/optimized/act_api.ll +++ b/bench/linux/optimized/act_api.ll @@ -3263,7 +3263,7 @@ define internal fastcc i32 @tcf_action_offload_add_ex(ptr noundef %0, ptr nounde store ptr %0, ptr %5, align 16 %10 = and i32 %7, 2 %11 = icmp eq i32 %10, 0 - br i1 %11, label %12, label %80 + br i1 %11, label %12, label %79 12: ; preds = %4 %13 = load ptr, ptr %0, align 16 @@ -3290,7 +3290,7 @@ define internal fastcc i32 @tcf_action_offload_add_ex(ptr noundef %0, ptr nounde %26 = phi i32 [ %24, %19 ], [ 1, %15 ], [ 1, %12 ] %27 = tail call ptr @offload_action_alloc(i32 noundef %26) #14 %28 = icmp eq ptr %27, null - br i1 %28, label %80, label %29 + br i1 %28, label %79, label %29 29: ; preds = %25 store ptr %1, ptr %27, align 8 @@ -3337,59 +3337,59 @@ define internal fastcc i32 @tcf_action_offload_add_ex(ptr noundef %0, ptr nounde 54: ; preds = %47 %55 = icmp eq ptr %2, null - br i1 %55, label %56, label %.thread6 + br i1 %55, label %56, label %59 56: ; preds = %54 %57 = call i32 @flow_indr_dev_setup_offload(ptr noundef null, ptr noundef null, i32 noundef 20, ptr noundef nonnull %27, ptr noundef null, ptr noundef null) #14 %58 = icmp sgt i32 %57, -1 - br i1 %58, label %61, label %70 + br i1 %58, label %61, label %.thread7 -.thread6: ; preds = %54 - %59 = call i32 %2(ptr noundef null, ptr noundef null, ptr noundef %3, i32 noundef 20, ptr noundef null, ptr noundef nonnull %27, ptr noundef null) #14 - %60 = icmp sgt i32 %59, -1 - br i1 %60, label %63, label %70 +59: ; preds = %54 + %60 = call i32 %2(ptr noundef null, ptr noundef null, ptr noundef %3, i32 noundef 20, ptr noundef null, ptr noundef nonnull %27, ptr noundef null) #14 + %61 = icmp sgt i32 %60, -1 + br i1 %61, label %63, label %.thread7 -61: ; preds = %56 +.thread8: ; preds = %56 %62 = getelementptr inbounds nuw i8, ptr %0, i64 200 br label %67 -63: ; preds = %.thread6 +63: ; preds = %59 %64 = getelementptr inbounds nuw i8, ptr %0, i64 200 %65 = load i32, ptr %64, align 8 %66 = add i32 %65, 1 br label %67 -67: ; preds = %61, %63 - %68 = phi ptr [ %64, %63 ], [ %62, %61 ] - %69 = phi i32 [ %66, %63 ], [ %57, %61 ] +67: ; preds = %.thread8, %63 + %68 = phi ptr [ %64, %63 ], [ %62, %.thread8 ] + %69 = phi i32 [ %66, %63 ], [ %57, %.thread8 ] store i32 %69, ptr %68, align 8 - br label %70 + br label %.thread7 -70: ; preds = %.thread6, %67, %56 - %71 = phi i32 [ %59, %.thread6 ], [ 0, %67 ], [ %57, %56 ] - br i1 %9, label %77, label %72 +.thread7: ; preds = %59, %67, %56 + %70 = phi i32 [ %61, %60 ], [ 0, %67 ], [ %57, %56 ] + br i1 %9, label %76, label %71 -72: ; preds = %70 - %73 = getelementptr inbounds nuw i8, ptr %0, i64 200 - %74 = load i32, ptr %73, align 8 - %75 = icmp eq i32 %74, 0 - %76 = select i1 %75, i32 -22, i32 %71 - br label %77 +71: ; preds = %.thread7 + %72 = getelementptr inbounds nuw i8, ptr %0, i64 200 + %73 = load i32, ptr %72, align 8 + %74 = icmp eq i32 %73, 0 + %75 = select i1 %74, i32 -22, i32 %70 + br label %76 -77: ; preds = %72, %70 - %78 = phi i32 [ %71, %70 ], [ %76, %72 ] +76: ; preds = %71, %.thread7 + %77 = phi i32 [ %70, %.thread7 ], [ %75, %71 ] call void @tc_cleanup_offload_action(ptr noundef nonnull %48) #14 br label %.thread -.thread: ; preds = %29, %77, %53, %51, %40 - %79 = phi i32 [ %45, %40 ], [ %78, %77 ], [ %49, %53 ], [ %49, %51 ], [ -95, %29 ] +.thread: ; preds = %29, %76, %53, %51, %40 + %78 = phi i32 [ %45, %40 ], [ %77, %76 ], [ %49, %53 ], [ %49, %51 ], [ -95, %29 ] call void @kfree(ptr noundef nonnull %27) #14 - br label %80 + br label %79 -80: ; preds = %.thread, %25, %4 - %81 = phi i32 [ %79, %.thread ], [ 0, %4 ], [ -12, %25 ] +79: ; preds = %.thread, %25, %4 + %80 = phi i32 [ %78, %.thread ], [ 0, %4 ], [ -12, %25 ] call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %5) #14 - ret i32 %81 + ret i32 %80 } ; Function Attrs: null_pointer_is_valid diff --git a/bench/linux/optimized/check.ll b/bench/linux/optimized/check.ll index 2588e2c2368..aba3c20dd00 100644 --- a/bench/linux/optimized/check.ll +++ b/bench/linux/optimized/check.ll @@ -168,11 +168,11 @@ define dso_local void @setup_bios_corruption_check() local_unnamed_addr #0 secti .thread: ; preds = %.thread7, %6 store i32 0, ptr @memory_corruption_check, align 4 - br label %56 + br label %57 11: ; preds = %6 %12 = icmp eq i32 %4, 0 - br i1 %12, label %56, label %.thread10 + br i1 %12, label %57, label %.thread10 .thread10: ; preds = %.thread7, %11 %13 = phi i32 [ %7, %11 ], [ %9, %.thread7 ] @@ -232,21 +232,21 @@ define dso_local void @setup_bios_corruption_check() local_unnamed_addr #0 secti 50: ; preds = %34, %.preheader call void @__next_mem_range(ptr noundef nonnull %3, i32 noundef -1, i32 noundef 0, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @memblock, i64 16), ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @memblock, i64 56), ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef null) #7 - %51 = load i64, ptr %3, align 8 - %52 = icmp eq i64 %51, -1 - br i1 %52, label %.loopexit, label %.preheader, !llvm.loop !6 + %52 = load i64, ptr %3, align 8 + %53 = icmp eq i64 %52, -1 + br i1 %53, label %.loopexit, label %.preheader, !llvm.loop !6 .loopexit: ; preds = %50, %.thread10 %.pr4 = load i32, ptr @num_scan_areas, align 4 - %53 = icmp eq i32 %.pr4, 0 - br i1 %53, label %56, label %.thread5 + %54 = icmp eq i32 %.pr4, 0 + br i1 %54, label %57, label %.thread5 .thread5: ; preds = %34, %.loopexit - %54 = phi i32 [ %.pr4, %.loopexit ], [ %48, %34 ] - %55 = call i32 (ptr, ...) @_printk(ptr noundef nonnull @.str, i32 noundef %54) #8 - br label %56 + %55 = phi i32 [ %.pr4, %.loopexit ], [ %48, %34 ] + %56 = call i32 (ptr, ...) @_printk(ptr noundef nonnull @.str, i32 noundef %55) #8 + br label %57 -56: ; preds = %.thread, %.thread5, %.loopexit, %11 +57: ; preds = %.thread, %.thread5, %.loopexit, %11 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #7 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #7 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %1) #7 diff --git a/bench/linux/optimized/intel_panel.ll b/bench/linux/optimized/intel_panel.ll index 7cfa64a34ae..f2a5cddf445 100644 --- a/bench/linux/optimized/intel_panel.ll +++ b/bench/linux/optimized/intel_panel.ll @@ -911,11 +911,11 @@ define dso_local noundef range(i32 -22, 1) i32 @intel_panel_fitting(ptr noundef %46 = load i16, ptr %45, align 2 %47 = zext i16 %46 to i32 %48 = sub nsw i32 %44, %47 - %reass.sub22 = sub nsw i32 %48, %41 - %49 = add nsw i32 %reass.sub22, 1 + %reass.sub20 = sub nsw i32 %48, %41 + %49 = add nsw i32 %reass.sub20, 1 %50 = lshr i32 %49, 1 - %reass.sub23 = sub i32 %23, %15 - %51 = add i32 %reass.sub23, 1 + %reass.sub21 = sub i32 %23, %15 + %51 = add i32 %reass.sub21, 1 %52 = sdiv i32 %51, 2 %53 = and i32 %52, 1 %54 = trunc i32 %15 to i16 @@ -947,14 +947,14 @@ define dso_local noundef range(i32 -22, 1) i32 @intel_panel_fitting(ptr noundef %75 = load i16, ptr %74, align 8 %76 = zext i16 %75 to i32 %77 = sub nsw i32 %73, %76 - %reass.sub24 = sub nsw i32 %77, %70 - %78 = add nsw i32 %reass.sub24, 1 + %reass.sub22 = sub nsw i32 %77, %70 + %78 = add nsw i32 %reass.sub22, 1 %79 = lshr i32 %78, 1 %80 = getelementptr inbounds nuw i8, ptr %0, i64 654 %81 = load i16, ptr %80, align 2 %82 = zext i16 %81 to i32 - %reass.sub25 = sub i32 %82, %20 - %83 = add i32 %reass.sub25, 1 + %reass.sub23 = sub i32 %82, %20 + %83 = add i32 %reass.sub23, 1 %84 = sdiv i32 %83, 2 %85 = trunc i32 %20 to i16 store i16 %85, ptr %80, align 2 @@ -1015,8 +1015,8 @@ define dso_local noundef range(i32 -22, 1) i32 @intel_panel_fitting(ptr noundef %124 = load i16, ptr %123, align 2 %125 = zext i16 %124 to i32 %126 = sub nsw i32 %122, %125 - %reass.sub21 = sub nsw i32 %126, %119 - %127 = add nsw i32 %reass.sub21, 1 + %reass.sub19 = sub nsw i32 %126, %119 + %127 = add nsw i32 %reass.sub19, 1 %128 = lshr i32 %127, 1 %129 = add nuw nsw i32 %23, 1 %130 = sub i32 %129, %112 @@ -1125,7 +1125,7 @@ define dso_local noundef range(i32 -22, 1) i32 @intel_panel_fitting(ptr noundef tail call void asm sideeffect "1:\09.byte 0x0f, 0x0b\0A.pushsection __bug_table,\22aw\22\0A2:\09.long 1b - .\09# bug_entry::bug_addr\0A\09.long ${0:c} - .\09# bug_entry::file\0A\09.word ${1:c}\09# bug_entry::line\0A\09.word ${2:c}\09# bug_entry::flags\0A\09.org 2b+${3:c}\0A.popsection\0A998:\0A\09.pushsection .discard.reachable\0A\09.long 998b\0A\09.popsection\0A\09", "i,i,i,i,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @.str.13, i32 640, i32 2313, i64 12) #8, !srcloc !16 tail call void asm sideeffect "908: nop\0A\09.pushsection .discard.instr_end\0A\09.long 908b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 908) #8, !srcloc !17 tail call void asm sideeffect "909: nop\0A\09.pushsection .discard.instr_end\0A\09.long 909b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 909) #8, !srcloc !18 - br label %312 + br label %316 205: ; preds = %197, %191, %184, %153, %151, %144, %111, %107, %105, %104, %34 %206 = phi i32 [ 0, %34 ], [ -2013265920, %104 ], [ -1946157056, %105 ], [ %109, %107 ], [ 0, %111 ], [ -2147482560, %144 ], [ 0, %153 ], [ -2147482560, %184 ], [ -2147482016, %151 ], [ 0, %191 ], [ %201, %197 ] @@ -1134,33 +1134,33 @@ define dso_local noundef range(i32 -22, 1) i32 @intel_panel_fitting(ptr noundef %209 = getelementptr inbounds nuw i8, ptr %4, i64 2632 %210 = load i16, ptr %209, align 8 %211 = icmp ugt i16 %210, 3 - br i1 %211, label %212, label %218 + br i1 %211, label %.thread, label %218 -212: ; preds = %205 - %213 = getelementptr inbounds nuw i8, ptr %3, i64 1648 - %214 = load i32, ptr %213, align 8 - %215 = shl i32 %214, 29 +.thread: ; preds = %205 + %212 = getelementptr inbounds nuw i8, ptr %3, i64 1648 + %213 = load i32, ptr %212, align 8 + %214 = shl i32 %214, 29 %216 = and i32 %215, 1610612736 %217 = or disjoint i32 %216, %206 br label %218 -218: ; preds = %212, %205 - %219 = phi i32 [ %217, %212 ], [ %206, %205 ] - %.fr = freeze i32 %219 - %220 = tail call i32 @llvm.smin.i32(i32 %.fr, i32 0) - %.inv = icmp slt i32 %.fr, 0 - %spec.select = select i1 %.inv, i32 %207, i32 0 +218: ; preds = %212, %205 + %217 = phi i32 [ %217, %212 ], [ %206, %205 ] + %218 = freeze i32 %217 + %219 = tail call i32 @llvm.smin.i32(i32 %218, i32 0) + %220 = icmp slt i32 %218, 0 + %221 = select i1 %220, i32 %207, i32 0 br label %.thread .thread: ; preds = %..thread_crit_edge, %218 %221 = phi i16 [ %.pre, %..thread_crit_edge ], [ %210, %218 ] - %222 = phi i32 [ 0, %..thread_crit_edge ], [ %220, %218 ] - %223 = phi i32 [ 0, %..thread_crit_edge ], [ %208, %218 ] - %224 = phi i32 [ 0, %..thread_crit_edge ], [ %spec.select, %218 ] + %.phi.trans.insert = phi i32 [ 0, %..thread_crit_edge ], [ %220, %218 ] + %.pre = phi i32 [ 0, %..thread_crit_edge ], [ %208, %218 ] + %224 = phi i32 [ 0, %..thread_crit_edge ], [ %221, %218 ] %225 = icmp ult i16 %221, 4 br i1 %225, label %226, label %232 -226: ; preds = %.thread +226: ; preds = %.thread %227 = getelementptr inbounds nuw i8, ptr %0, i64 1364 %228 = load i32, ptr %227, align 4 %229 = icmp eq i32 %228, 18 @@ -1168,29 +1168,29 @@ define dso_local noundef range(i32 -22, 1) i32 @intel_panel_fitting(ptr noundef %231 = select i1 %229, i32 %230, i32 %222 br label %232 -232: ; preds = %226, %.thread +232:; preds = %226, %.thread %233 = phi i32 [ %222, %.thread ], [ %231, %226 ] %234 = getelementptr inbounds nuw i8, ptr %0, i64 1460 store i32 %233, ptr %234, align 4 - %235 = getelementptr inbounds nuw i8, ptr %0, i64 1464 + %236 = getelementptr inbounds nuw i8, ptr %0, i64 1464 store i32 %224, ptr %235, align 4 - %236 = getelementptr inbounds nuw i8, ptr %0, i64 1468 - store i32 %223, ptr %236, align 4 - br label %312 + %238 = getelementptr inbounds nuw i8, ptr %0, i64 1468 + store i32 %223, ptr %238, align 4 + br label %316 -237: ; preds = %2 +237: ; preds = %2 %238 = icmp eq i32 %15, %23 br i1 %238, label %239, label %248 -239: ; preds = %237 - %240 = getelementptr inbounds nuw i8, ptr %0, i64 654 +241: ; preds = %237 + %242 = getelementptr inbounds nuw i8, ptr %0, i64 654 %241 = load i16, ptr %240, align 2 %242 = zext i16 %241 to i32 %243 = icmp eq i32 %20, %242 br i1 %243, label %244, label %248 -244: ; preds = %239 - %245 = getelementptr inbounds nuw i8, ptr %0, i64 4744 +244:; preds = %239 + %247 = getelementptr inbounds nuw i8, ptr %0, i64 4744 %246 = load i32, ptr %245, align 8 %247 = icmp eq i32 %246, 1 br i1 %247, label %248, label %312 @@ -1198,119 +1198,119 @@ define dso_local noundef range(i32 -22, 1) i32 @intel_panel_fitting(ptr noundef 248: ; preds = %244, %239, %237 %249 = getelementptr inbounds nuw i8, ptr %1, i64 120 %250 = load i32, ptr %249, align 8 - switch i32 %250, label %297 [ + switch i32 %250, label %301 [ i32 2, label %251 i32 3, label %260 i32 0, label %283 i32 1, label %291 ] -251: ; preds = %248 - %252 = add nuw nsw i32 %23, 1 - %253 = sub i32 %252, %15 - %254 = sdiv i32 %253, 2 - %255 = getelementptr inbounds nuw i8, ptr %0, i64 654 - %256 = load i16, ptr %255, align 2 - %257 = zext i16 %256 to i32 - %reass.sub26 = sub i32 %257, %20 - %258 = add i32 %reass.sub26, 1 - %259 = sdiv i32 %258, 2 - br label %300 - -260: ; preds = %248 - %261 = mul i32 %20, %23 - %262 = getelementptr inbounds nuw i8, ptr %0, i64 654 - %263 = load i16, ptr %262, align 2 - %264 = zext i16 %263 to i32 - %265 = mul i32 %15, %264 - %266 = icmp ugt i32 %261, %265 - br i1 %266, label %267, label %274 - -267: ; preds = %260 - %268 = udiv i32 %265, %20 - %269 = and i32 %268, 1 - %270 = add nuw i32 %269, %268 - %271 = add nuw nsw i32 %23, 1 - %272 = sub i32 %271, %270 - %273 = sdiv i32 %272, 2 - br label %300 - -274: ; preds = %260 - %275 = icmp ult i32 %261, %265 - br i1 %275, label %276, label %300 - -276: ; preds = %274 - %277 = udiv i32 %261, %15 - %278 = and i32 %277, 1 - %279 = add nuw i32 %278, %277 - %280 = add nuw nsw i32 %264, 1 - %281 = sub i32 %280, %279 - %282 = sdiv i32 %281, 2 - br label %300 - -283: ; preds = %248 - br i1 %238, label %285, label %284, !prof !19 - -284: ; preds = %283 +255: ; preds = %248 + %256 = add nuw nsw i32 %23, 1 + %257 = sub i32 %256, %15 + %258 = sdiv i32 %257, 2 + %259 = getelementptr inbounds nuw i8, ptr %0, i64 654 + %260 = load i16, ptr %259, align 2 + %261 = zext i16 %260 to i32 + %reass.sub24 = sub i32 %261, %20 + %262 = add i32 %reass.sub24, 1 + %263 = sdiv i32 %262, 2 + br label %304 + +264: ; preds = %248 + %265 = mul i32 %20, %23 + %266 = getelementptr inbounds nuw i8, ptr %0, i64 654 + %267 = load i16, ptr %266, align 2 + %268 = zext i16 %267 to i32 + %269 = mul i32 %15, %268 + %270 = icmp ugt i32 %265, %269 + br i1 %270, label %271, label %278 + +271: ; preds = %264 + %272 = udiv i32 %269, %20 + %273 = and i32 %272, 1 + %274 = add nuw i32 %273, %272 + %275 = add nuw nsw i32 %23, 1 + %276 = sub i32 %275, %274 + %277 = sdiv i32 %276, 2 + br label %304 + +278: ; preds = %264 + %279 = icmp ult i32 %265, %269 + br i1 %279, label %280, label %304 + +280: ; preds = %278 + %281 = udiv i32 %265, %15 + %282 = and i32 %281, 1 + %283 = add nuw i32 %282, %281 + %284 = add nuw nsw i32 %268, 1 + %285 = sub i32 %284, %283 + %286 = sdiv i32 %285, 2 + br label %304 + +287: ; preds = %248 + br i1 %238, label %289, label %288, !prof !19 + +288: ; preds = %287 tail call void asm sideeffect "898: nop\0A\09.pushsection .discard.instr_begin\0A\09.long 898b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 898) #8, !srcloc !20 tail call void asm sideeffect "1:\09.byte 0x0f, 0x0b\0A.pushsection __bug_table,\22aw\22\0A2:\09.long 1b - .\09# bug_entry::bug_addr\0A\09.long ${0:c} - .\09# bug_entry::file\0A\09.word ${1:c}\09# bug_entry::line\0A\09.word ${2:c}\09# bug_entry::flags\0A\09.org 2b+${3:c}\0A.popsection\0A998:\0A\09.pushsection .discard.reachable\0A\09.long 998b\0A\09.popsection\0A\09", "i,i,i,i,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @.str.13, i32 435, i32 2305, i64 12) #8, !srcloc !21 tail call void asm sideeffect "899: nop\0A\09.pushsection .discard.instr_end\0A\09.long 899b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 899) #8, !srcloc !22 - br label %285 + br label %289 -285: ; preds = %284, %283 - %286 = getelementptr inbounds nuw i8, ptr %0, i64 654 - %287 = load i16, ptr %286, align 2 - %288 = zext i16 %287 to i32 - %289 = icmp eq i32 %20, %288 - br i1 %289, label %291, label %290, !prof !19 +289: ; preds = %288, %287 + %290 = getelementptr inbounds nuw i8, ptr %0, i64 654 + %291 = load i16, ptr %290, align 2 + %292 = zext i16 %291 to i32 + %293 = icmp eq i32 %20, %292 + br i1 %293, label %295, label %294, !prof !19 -290: ; preds = %285 +294: ; preds = %289 tail call void asm sideeffect "900: nop\0A\09.pushsection .discard.instr_begin\0A\09.long 900b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 900) #8, !srcloc !23 tail call void asm sideeffect "1:\09.byte 0x0f, 0x0b\0A.pushsection __bug_table,\22aw\22\0A2:\09.long 1b - .\09# bug_entry::bug_addr\0A\09.long ${0:c} - .\09# bug_entry::file\0A\09.word ${1:c}\09# bug_entry::line\0A\09.word ${2:c}\09# bug_entry::flags\0A\09.org 2b+${3:c}\0A.popsection\0A998:\0A\09.pushsection .discard.reachable\0A\09.long 998b\0A\09.popsection\0A\09", "i,i,i,i,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @.str.13, i32 436, i32 2305, i64 12) #8, !srcloc !24 tail call void asm sideeffect "901: nop\0A\09.pushsection .discard.instr_end\0A\09.long 901b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 901) #8, !srcloc !25 - br label %291 + br label %295 -291: ; preds = %290, %285, %248 - %292 = load i16, ptr %21, align 8 - %293 = zext i16 %292 to i32 - %294 = getelementptr inbounds nuw i8, ptr %0, i64 654 - %295 = load i16, ptr %294, align 2 - %296 = zext i16 %295 to i32 - br label %300 +295: ; preds = %294, %289, %248 + %296 = load i16, ptr %21, align 8 + %297 = zext i16 %296 to i32 + %298 = getelementptr inbounds nuw i8, ptr %0, i64 654 + %299 = load i16, ptr %298, align 2 + %300 = zext i16 %299 to i32 + br label %304 -297: ; preds = %248 +301: ; preds = %248 tail call void asm sideeffect "902: nop\0A\09.pushsection .discard.instr_begin\0A\09.long 902b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 902) #8, !srcloc !26 - %298 = load i32, ptr %249, align 8 - %299 = zext i32 %298 to i64 - tail call void (ptr, ...) @__warn_printk(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.12, i64 noundef %299) #8 + %302 = load i32, ptr %249, align 8 + %303 = zext i32 %302 to i64 + tail call void (ptr, ...) @__warn_printk(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.12, i64 noundef %303) #8 tail call void asm sideeffect "903: nop\0A\09.pushsection .discard.instr_begin\0A\09.long 903b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 903) #8, !srcloc !27 tail call void asm sideeffect "1:\09.byte 0x0f, 0x0b\0A.pushsection __bug_table,\22aw\22\0A2:\09.long 1b - .\09# bug_entry::bug_addr\0A\09.long ${0:c} - .\09# bug_entry::file\0A\09.word ${1:c}\09# bug_entry::line\0A\09.word ${2:c}\09# bug_entry::flags\0A\09.org 2b+${3:c}\0A.popsection\0A998:\0A\09.pushsection .discard.reachable\0A\09.long 998b\0A\09.popsection\0A\09", "i,i,i,i,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @.str.13, i32 445, i32 2313, i64 12) #8, !srcloc !28 tail call void asm sideeffect "904: nop\0A\09.pushsection .discard.instr_end\0A\09.long 904b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 904) #8, !srcloc !29 tail call void asm sideeffect "905: nop\0A\09.pushsection .discard.instr_end\0A\09.long 905b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 905) #8, !srcloc !30 - br label %312 - -300: ; preds = %291, %276, %274, %267, %251 - %301 = phi i32 [ %293, %291 ], [ %15, %251 ], [ %270, %267 ], [ %23, %276 ], [ %23, %274 ] - %302 = phi i32 [ %296, %291 ], [ %20, %251 ], [ %264, %267 ], [ %279, %276 ], [ %264, %274 ] - %303 = phi i32 [ 0, %291 ], [ %259, %251 ], [ 0, %267 ], [ %282, %276 ], [ 0, %274 ] - %304 = phi i32 [ 0, %291 ], [ %254, %251 ], [ %273, %267 ], [ 0, %276 ], [ 0, %274 ] - %305 = getelementptr inbounds nuw i8, ptr %0, i64 1472 - store i32 %304, ptr %305, align 4 - %306 = getelementptr inbounds nuw i8, ptr %0, i64 1476 - store i32 %303, ptr %306, align 4 - %307 = add i32 %304, %301 - %308 = getelementptr inbounds nuw i8, ptr %0, i64 1480 - store i32 %307, ptr %308, align 4 - %309 = add i32 %303, %302 - %310 = getelementptr inbounds nuw i8, ptr %0, i64 1484 - store i32 %309, ptr %310, align 4 - %311 = getelementptr inbounds nuw i8, ptr %0, i64 1488 - store i8 1, ptr %311, align 8 - br label %312 - -312: ; preds = %300, %297, %244, %232, %202 - %313 = phi i32 [ 0, %232 ], [ -22, %202 ], [ -22, %297 ], [ 0, %300 ], [ 0, %244 ] - ret i32 %313 + br label %316 + +304: ; preds = %295, %280, %278, %271, %255 + %305 = phi i32 [ %297, %295 ], [ %15, %255 ], [ %274, %271 ], [ %23, %280 ], [ %23, %278 ] + %306 = phi i32 [ %300, %295 ], [ %20, %255 ], [ %268, %271 ], [ %283, %280 ], [ %268, %278 ] + %307 = phi i32 [ 0, %295 ], [ %263, %255 ], [ 0, %271 ], [ %286, %280 ], [ 0, %278 ] + %308 = phi i32 [ 0, %295 ], [ %258, %255 ], [ %277, %271 ], [ 0, %280 ], [ 0, %278 ] + %309 = getelementptr inbounds nuw i8, ptr %0, i64 1472 + store i32 %308, ptr %309, align 4 + %310 = getelementptr inbounds nuw i8, ptr %0, i64 1476 + store i32 %307, ptr %310, align 4 + %311 = add i32 %308, %305 + %312 = getelementptr inbounds nuw i8, ptr %0, i64 1480 + store i32 %311, ptr %312, align 4 + %313 = add i32 %307, %306 + %314 = getelementptr inbounds nuw i8, ptr %0, i64 1484 + store i32 %313, ptr %314, align 4 + %315 = getelementptr inbounds nuw i8, ptr %0, i64 1488 + store i8 1, ptr %315, align 8 + br label %316 + +316: ; preds = %304, %301, %244, %232, %202 + %317 = phi i32 [ 0, %232 ], [ -22, %202 ], [ -22, %301 ], [ 0, %304 ], [ 0, %244 ] + ret i32 %317 } ; Function Attrs: fn_ret_thunk_extern nounwind null_pointer_is_valid diff --git a/bench/linux/optimized/net_namespace.ll b/bench/linux/optimized/net_namespace.ll index f75a1697be7..78b520c947e 100644 --- a/bench/linux/optimized/net_namespace.ll +++ b/bench/linux/optimized/net_namespace.ll @@ -1283,69 +1283,69 @@ get_net_ns_by_fd.exit: ; preds = %42, %70, %74 %109 = add i32 %108, 1 %110 = call i32 @idr_alloc(ptr noundef nonnull %95, ptr noundef %82, i32 noundef %107, i32 noundef %109, i32 noundef 2080) #17 call void @_raw_spin_unlock_bh(ptr noundef nonnull %94) #17 - %111 = icmp sgt i32 %110, -1 - br i1 %111, label %112, label %136 + %112 = icmp sgt i32 %110, -1 + br i1 %112, label %113, label %137 -112: ; preds = %106 - %113 = getelementptr inbounds nuw i8, ptr %0, i64 52 - %114 = load i32, ptr %113, align 4 +113: ; preds = %106 + %114 = getelementptr inbounds nuw i8, ptr %0, i64 52 + %115 = load i32, ptr %114, align 4 call void @llvm.lifetime.start.p0(i64 28, ptr nonnull %4) #17 - %115 = getelementptr inbounds nuw i8, ptr %4, i64 20 - store i32 %114, ptr %4, align 4 - %116 = getelementptr inbounds nuw i8, ptr %4, i64 4 - %117 = icmp eq ptr %1, null - br i1 %117, label %121, label %118 - -118: ; preds = %112 - %119 = getelementptr inbounds nuw i8, ptr %1, i64 8 - %120 = load i32, ptr %119, align 4 - br label %121 - -121: ; preds = %118, %112 - %122 = phi i32 [ %120, %118 ], [ 0, %112 ] - store i32 %122, ptr %116, align 4 - %123 = getelementptr inbounds nuw i8, ptr %4, i64 8 - store i32 0, ptr %123, align 4 - %124 = getelementptr inbounds nuw i8, ptr %4, i64 12 - store i32 88, ptr %124, align 4 - %125 = getelementptr inbounds nuw i8, ptr %4, i64 16 - store i32 %110, ptr %125, align 4 - %126 = getelementptr inbounds nuw i8, ptr %4, i64 24 - store i32 0, ptr %126, align 4 - %127 = call ptr @__alloc_skb(i32 noundef 36, i32 noundef 3264, i32 noundef 0, i32 noundef -1) #17 - %128 = icmp eq ptr %127, null - br i1 %128, label %134, label %129 - -129: ; preds = %121 - store i32 0, ptr %115, align 4, !annotation !14 - %130 = call fastcc i32 @rtnl_net_fill(ptr noundef nonnull %127, ptr noundef nonnull %4), !range !15 - %131 = icmp slt i32 %130, 0 - br i1 %131, label %133, label %132 - -132: ; preds = %129 - call void @rtnl_notify(ptr noundef nonnull %127, ptr noundef %9, i32 noundef %114, i32 noundef 28, ptr noundef %1, i32 noundef 3264) #17 + %116 = getelementptr inbounds nuw i8, ptr %4, i64 20 + store i32 %115, ptr %4, align 4 + %117 = getelementptr inbounds nuw i8, ptr %4, i64 4 + %118 = icmp eq ptr %1, null + br i1 %118, label %122, label %119 + +119: ; preds = %113 + %120 = getelementptr inbounds nuw i8, ptr %1, i64 8 + %121 = load i32, ptr %120, align 4 + br label %122 + +122: ; preds = %119, %113 + %123 = phi i32 [ %121, %119 ], [ 0, %113 ] + store i32 %123, ptr %117, align 4 + %124 = getelementptr inbounds nuw i8, ptr %4, i64 8 + store i32 0, ptr %124, align 4 + %125 = getelementptr inbounds nuw i8, ptr %4, i64 12 + store i32 88, ptr %125, align 4 + %126 = getelementptr inbounds nuw i8, ptr %4, i64 16 + store i32 %110, ptr %126, align 4 + %127 = getelementptr inbounds nuw i8, ptr %4, i64 24 + store i32 0, ptr %127, align 4 + %128 = call ptr @__alloc_skb(i32 noundef 36, i32 noundef 3264, i32 noundef 0, i32 noundef -1) #17 + %129 = icmp eq ptr %128, null + br i1 %129, label %135, label %130 + +130: ; preds = %122 + store i32 0, ptr %116, align 4, !annotation !14 + %131 = call fastcc i32 @rtnl_net_fill(ptr noundef nonnull %128, ptr noundef nonnull %4), !range !15 + %132 = icmp slt i32 %131, 0 + br i1 %132, label %134, label %133 + +133: ; preds = %130 + call void @rtnl_notify(ptr noundef nonnull %128, ptr noundef %9, i32 noundef %115, i32 noundef 28, ptr noundef %1, i32 noundef 3264) #17 br label %rtnl_net_notifyid.exit -133: ; preds = %129 - call void @kfree_skb_reason(ptr noundef nonnull %127, i32 noundef 2) #17 - br label %134 +134: ; preds = %130 + call void @kfree_skb_reason(ptr noundef nonnull %128, i32 noundef 2) #17 + br label %135 -134: ; preds = %133, %121 - %135 = phi i32 [ %130, %133 ], [ -12, %121 ] - call void @rtnl_set_sk_err(ptr noundef %9, i32 noundef 28, i32 noundef %135) #17 +135: ; preds = %134, %122 + %136 = phi i32 [ %131, %134 ], [ -12, %122 ] + call void @rtnl_set_sk_err(ptr noundef %9, i32 noundef 28, i32 noundef %136) #17 br label %rtnl_net_notifyid.exit -rtnl_net_notifyid.exit: ; preds = %132, %134 +rtnl_net_notifyid.exit: ; preds = %133, %135 call void @llvm.lifetime.end.p0(i64 28, ptr nonnull %4) #17 br label %147 -136: ; preds = %106 - %137 = icmp sgt i32 %29, -1 - %138 = icmp eq i32 %110, -28 +137: ; preds = %106 + %138 = icmp sgt i32 %29, -1 + %139 = icmp eq i32 %110, -28 %139 = and i1 %137, %138 br i1 %139, label %140, label %147 -140: ; preds = %136 +140: ; preds = %137 %141 = icmp eq ptr %2, null br i1 %141, label %146, label %142 @@ -1363,8 +1363,8 @@ rtnl_net_notifyid.exit: ; preds = %132, %134 call void @do_trace_netlink_extack(ptr noundef nonnull @rtnl_net_newid.__msg.18) #17 br label %147 -147: ; preds = %146, %142, %136, %rtnl_net_notifyid.exit, %105, %102 - %148 = phi i32 [ 0, %rtnl_net_notifyid.exit ], [ %110, %136 ], [ -17, %105 ], [ -17, %102 ], [ -17, %146 ], [ -17, %142 ] +147: ; preds = %146, %142, %137, %rtnl_net_notifyid.exit, %105, %102 + %148 = phi i32 [ 0, %rtnl_net_notifyid.exit ], [ %110, %137 ], [ -17, %105 ], [ -17, %102 ], [ -17, %146 ], [ -17, %142 ] %149 = getelementptr inbounds nuw i8, ptr %82, i64 140 %150 = call i32 asm sideeffect ".pushsection .smp_locks,\22a\22\0A.balign 4\0A.long 671f - .\0A.popsection\0A671:\0A\09lock; xaddl $0, $1\0A", "=r,=*m,0,*m,~{memory},~{cc},~{dirflag},~{fpsr},~{flags}"(ptr nonnull elementtype(i32) %149, i32 -1, ptr nonnull elementtype(i32) %149) #17, !srcloc !12 %151 = icmp eq i32 %150, 1 diff --git a/bench/lodepng/optimized/lodepng.cpp.ll b/bench/lodepng/optimized/lodepng.cpp.ll index 44dd098582c..3579add0c59 100644 --- a/bench/lodepng/optimized/lodepng.cpp.ll +++ b/bench/lodepng/optimized/lodepng.cpp.ll @@ -15429,20 +15429,20 @@ entry: %5 = load i32, ptr %allow_greyscale, align 4 %tobool9.not = icmp ne i32 %5, 0 %narrow = select i1 %tobool9.not, i1 %tobool8.not, i1 false - %6 = tail call i32 @llvm.umax.i32(i32 %bits.0, i32 8) - %spec.store.select6 = select i1 %narrow, i32 %bits.0, i32 %6 + %cmp14 = tail call i32 @llvm.umax.i32(i32 %bits.0, i32 8) + %or.cond2.not = select i1 %narrow, i32 %bits.0, i32 %cmp14 %numcolors = getelementptr inbounds nuw i8, ptr %stats, i64 20 - %7 = load i32, ptr %numcolors, align 4 - %conv17 = zext i32 %7 to i64 - %cmp18 = icmp ult i32 %7, 3 - %cmp19 = icmp ult i32 %7, 5 - %cmp22 = icmp ult i32 %7, 17 + %6 = load i32, ptr %numcolors, align 4 + %conv17 = zext i32 %6 to i64 + %cmp18 = icmp ult i32 %6, 3 + %cmp19 = icmp ult i32 %6, 5 + %cmp22 = icmp ult i32 %6, 17 %cond = select i1 %cmp22, i32 4, i32 8 %cond23 = select i1 %cmp19, i32 2, i32 %cond %cond25 = select i1 %cmp18, i32 1, i32 %cond23 %cmp28 = icmp ugt i32 %spec.store.select6, 8 - %8 = add i32 %7, -257 - %9 = icmp ult i32 %8, -256 + %7 = add i32 %6, -257 + %8 = icmp ult i32 %7, -256 %mul = shl nuw nsw i64 %conv17, 1 %cmp31 = icmp ult i64 %0, %mul %tobool3677 = icmp eq i32 %1, 0 @@ -15451,29 +15451,29 @@ entry: %cmp38.not = icmp ule i32 %spec.store.select6, %cond25 %or.cond64.not.not = select i1 %or.cond5.not, i1 %cmp38.not, i1 false %allow_palette = getelementptr inbounds nuw i8, ptr %stats, i64 1064 - %10 = load i32, ptr %allow_palette, align 8 - %tobool41.not = icmp eq i32 %10, 0 + %9 = load i32, ptr %allow_palette, align 8 + %tobool41.not = icmp eq i32 %9, 0 %.not84 = select i1 %tobool41.not, i1 true, i1 %or.cond64.not.not %.not83 = select i1 %.not84, i1 true, i1 %cmp31 - %.not82 = select i1 %.not83, i1 true, i1 %9 + %.not82 = select i1 %.not83, i1 true, i1 %8 %narrow79.not = select i1 %.not82, i1 true, i1 %cmp28 br i1 %narrow79.not, label %if.else, label %if.then45 if.then45: ; preds = %entry %palette = getelementptr inbounds nuw i8, ptr %stats, i64 24 %palette.i = getelementptr inbounds nuw i8, ptr %mode_out, i64 8 - %11 = load ptr, ptr %palette.i, align 8 - %tobool.not.i = icmp eq ptr %11, null + %10 = load ptr, ptr %palette.i, align 8 + %tobool.not.i = icmp eq ptr %10, null br i1 %tobool.not.i, label %_Z21lodepng_palette_clearP16LodePNGColorMode.exit, label %if.then.i if.then.i: ; preds = %if.then45 - tail call void @free(ptr noundef nonnull %11) #31 + tail call void @free(ptr noundef nonnull %10) #31 br label %_Z21lodepng_palette_clearP16LodePNGColorMode.exit _Z21lodepng_palette_clearP16LodePNGColorMode.exit: ; preds = %if.then45, %if.then.i tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %palette.i, i8 0, i64 16, i1 false) - %12 = load i32, ptr %numcolors, align 4 - %cmp48.not87 = icmp eq i32 %12, 0 + %11 = load i32, ptr %numcolors, align 4 + %cmp48.not87 = icmp eq i32 %11, 0 br i1 %cmp48.not87, label %for.end, label %for.body.lr.ph for.body.lr.ph: ; preds = %_Z21lodepng_palette_clearP16LodePNGColorMode.exit @@ -15481,47 +15481,47 @@ for.body.lr.ph: ; preds = %_Z21lodepng_palette br label %for.body for.body: ; preds = %for.body.lr.ph, %for.inc - %13 = phi i64 [ 0, %for.body.lr.ph ], [ %inc.i, %for.inc ] + %12 = phi i64 [ 0, %for.body.lr.ph ], [ %inc.i, %for.inc ] %i.088 = phi i64 [ 0, %for.body.lr.ph ], [ %inc, %for.inc ] %mul49 = shl i64 %i.088, 2 %arrayidx = getelementptr inbounds i8, ptr %palette, i64 %mul49 - %14 = load i8, ptr %arrayidx, align 1 + %13 = load i8, ptr %arrayidx, align 1 %add51 = or disjoint i64 %mul49, 1 %arrayidx52 = getelementptr inbounds i8, ptr %palette, i64 %add51 - %15 = load i8, ptr %arrayidx52, align 1 + %14 = load i8, ptr %arrayidx52, align 1 %add54 = or disjoint i64 %mul49, 2 %arrayidx55 = getelementptr inbounds i8, ptr %palette, i64 %add54 - %16 = load i8, ptr %arrayidx55, align 1 + %15 = load i8, ptr %arrayidx55, align 1 %add57 = or disjoint i64 %mul49, 3 %arrayidx58 = getelementptr inbounds i8, ptr %palette, i64 %add57 - %17 = load i8, ptr %arrayidx58, align 1 - %18 = load ptr, ptr %palette.i, align 8 - %tobool.not.i66 = icmp eq ptr %18, null + %16 = load i8, ptr %arrayidx58, align 1 + %17 = load ptr, ptr %palette.i, align 8 + %tobool.not.i66 = icmp eq ptr %17, null br i1 %tobool.not.i66, label %if.then.i.i, label %if.end4.i if.then.i.i: ; preds = %for.body %call.i.i.i = tail call noalias noundef dereferenceable_or_null(1024) ptr @malloc(i64 noundef 1024) #30 store ptr %call.i.i.i, ptr %palette.i, align 8 - %19 = icmp eq ptr %call.i.i.i, null - br i1 %19, label %for.end, label %for.body.i.i + %18 = icmp eq ptr %call.i.i.i, null + br i1 %18, label %for.end, label %for.body.i.i for.body.i.i: ; preds = %if.then.i.i, %for.body.i.i %i.012.i.i = phi i64 [ %inc.i.i, %for.body.i.i ], [ 0, %if.then.i.i ] - %20 = load ptr, ptr %palette.i, align 8 + %19 = load ptr, ptr %palette.i, align 8 %mul.i.i = shl i64 %i.012.i.i, 2 - %arrayidx.i.i = getelementptr inbounds i8, ptr %20, i64 %mul.i.i + %arrayidx.i.i = getelementptr inbounds i8, ptr %19, i64 %mul.i.i store i8 0, ptr %arrayidx.i.i, align 1 - %21 = load ptr, ptr %palette.i, align 8 + %20 = load ptr, ptr %palette.i, align 8 %add9.i.i = or disjoint i64 %mul.i.i, 1 - %arrayidx10.i.i = getelementptr inbounds i8, ptr %21, i64 %add9.i.i + %arrayidx10.i.i = getelementptr inbounds i8, ptr %20, i64 %add9.i.i store i8 0, ptr %arrayidx10.i.i, align 1 - %22 = load ptr, ptr %palette.i, align 8 + %21 = load ptr, ptr %palette.i, align 8 %add13.i.i = or disjoint i64 %mul.i.i, 2 - %arrayidx14.i.i = getelementptr inbounds i8, ptr %22, i64 %add13.i.i + %arrayidx14.i.i = getelementptr inbounds i8, ptr %21, i64 %add13.i.i store i8 0, ptr %arrayidx14.i.i, align 1 - %23 = load ptr, ptr %palette.i, align 8 + %22 = load ptr, ptr %palette.i, align 8 %add17.i.i = or disjoint i64 %mul.i.i, 3 - %arrayidx18.i.i = getelementptr inbounds i8, ptr %23, i64 %add17.i.i + %arrayidx18.i.i = getelementptr inbounds i8, ptr %22, i64 %add17.i.i store i8 -1, ptr %arrayidx18.i.i, align 1 %inc.i.i = add nuw nsw i64 %i.012.i.i, 1 %cmp.not.i.i = icmp eq i64 %inc.i.i, 256 @@ -15537,30 +15537,30 @@ _ZL32lodepng_color_mode_alloc_paletteP16LodePNGColorMode.exit.i.if.end4.i_crit_e br label %if.end4.i if.end4.i: ; preds = %_ZL32lodepng_color_mode_alloc_paletteP16LodePNGColorMode.exit.i.if.end4.i_crit_edge, %for.body - %24 = phi i64 [ %.pre, %_ZL32lodepng_color_mode_alloc_paletteP16LodePNGColorMode.exit.i.if.end4.i_crit_edge ], [ %13, %for.body ] - %25 = phi ptr [ %.pr.i, %_ZL32lodepng_color_mode_alloc_paletteP16LodePNGColorMode.exit.i.if.end4.i_crit_edge ], [ %18, %for.body ] - %cmp.i = icmp ugt i64 %24, 255 + %23 = phi i64 [ %.pre, %_ZL32lodepng_color_mode_alloc_paletteP16LodePNGColorMode.exit.i.if.end4.i_crit_edge ], [ %12, %for.body ] + %24 = phi ptr [ %.pr.i, %_ZL32lodepng_color_mode_alloc_paletteP16LodePNGColorMode.exit.i.if.end4.i_crit_edge ], [ %17, %for.body ] + %cmp.i = icmp ugt i64 %23, 255 br i1 %cmp.i, label %for.end, label %for.inc for.inc: ; preds = %if.end4.i - %mul.i = shl nuw nsw i64 %24, 2 - %arrayidx.i = getelementptr inbounds nuw i8, ptr %25, i64 %mul.i - store i8 %14, ptr %arrayidx.i, align 1 - %26 = load ptr, ptr %palette.i, align 8 - %27 = load i64, ptr %palettesize.i, align 8 - %mul11.i = shl i64 %27, 2 + %mul.i = shl nuw nsw i64 %23, 2 + %arrayidx.i = getelementptr inbounds nuw i8, ptr %24, i64 %mul.i + store i8 %13, ptr %arrayidx.i, align 1 + %25 = load ptr, ptr %palette.i, align 8 + %26 = load i64, ptr %palettesize.i, align 8 + %mul11.i = shl i64 %26, 2 %add12.i = or disjoint i64 %mul11.i, 1 - %arrayidx13.i = getelementptr inbounds i8, ptr %26, i64 %add12.i - store i8 %15, ptr %arrayidx13.i, align 1 - %28 = load ptr, ptr %palette.i, align 8 - %29 = load i64, ptr %palettesize.i, align 8 - %mul16.i = shl i64 %29, 2 + %arrayidx13.i = getelementptr inbounds i8, ptr %25, i64 %add12.i + store i8 %14, ptr %arrayidx13.i, align 1 + %27 = load ptr, ptr %palette.i, align 8 + %28 = load i64, ptr %palettesize.i, align 8 + %mul16.i = shl i64 %28, 2 %add17.i = or disjoint i64 %mul16.i, 2 - %arrayidx18.i = getelementptr inbounds i8, ptr %28, i64 %add17.i - store i8 %16, ptr %arrayidx18.i, align 1 - %30 = load ptr, ptr %palette.i, align 8 + %arrayidx18.i = getelementptr inbounds i8, ptr %27, i64 %add17.i + store i8 %15, ptr %arrayidx18.i, align 1 + %29 = load ptr, ptr %palette.i, align 8 %31 = load i64, ptr %palettesize.i, align 8 - %mul21.i = shl i64 %31, 2 + %inc.i = shl i64 %31, 2 %add22.i = or disjoint i64 %mul21.i, 3 %arrayidx23.i = getelementptr inbounds i8, ptr %30, i64 %add22.i store i8 %17, ptr %arrayidx23.i, align 1 @@ -15568,8 +15568,8 @@ for.inc: ; preds = %if.end4.i %inc.i = add i64 %32, 1 store i64 %inc.i, ptr %palettesize.i, align 8 %inc = add i64 %i.088, 1 - %33 = load i32, ptr %numcolors, align 4 - %conv47 = zext i32 %33 to i64 + %32 = load i32, ptr %numcolors, align 4 + %conv47 = zext i32 %32 to i64 %cmp48.not = icmp eq i64 %inc, %conv47 br i1 %cmp48.not, label %for.end, label %for.body, !llvm.loop !359 @@ -15578,39 +15578,39 @@ for.end: ; preds = %for.inc, %_ZL32lode store i32 3, ptr %mode_out, align 8 %bitdepth = getelementptr inbounds nuw i8, ptr %mode_out, i64 4 store i32 %cond25, ptr %bitdepth, align 4 - %34 = load i32, ptr %mode_in, align 8 - %cmp63 = icmp eq i32 %34, 3 + %33 = load i32, ptr %mode_in, align 8 + %cmp63 = icmp eq i32 %33, 3 br i1 %cmp63, label %land.lhs.true64, label %if.end98 land.lhs.true64: ; preds = %for.end %palettesize = getelementptr inbounds nuw i8, ptr %mode_in, i64 16 - %35 = load i64, ptr %palettesize, align 8 + %34 = load i64, ptr %palettesize, align 8 %palettesize65 = getelementptr inbounds nuw i8, ptr %mode_out, i64 16 - %36 = load i64, ptr %palettesize65, align 8 - %cmp66.not = icmp ult i64 %35, %36 + %35 = load i64, ptr %palettesize65, align 8 + %cmp66.not = icmp ult i64 %34, %35 br i1 %cmp66.not, label %if.end98, label %land.lhs.true67 land.lhs.true67: ; preds = %land.lhs.true64 %bitdepth68 = getelementptr inbounds nuw i8, ptr %mode_in, i64 4 - %37 = load i32, ptr %bitdepth68, align 4 - %cmp70 = icmp eq i32 %37, %cond25 + %36 = load i32, ptr %bitdepth68, align 4 + %cmp70 = icmp eq i32 %36, %cond25 br i1 %cmp70, label %if.then71, label %if.end98 if.then71: ; preds = %land.lhs.true67 - %38 = load ptr, ptr %palette.i, align 8 - %tobool.not.i.i = icmp eq ptr %38, null + %37 = load ptr, ptr %palette.i, align 8 + %tobool.not.i.i = icmp eq ptr %37, null br i1 %tobool.not.i.i, label %_Z26lodepng_color_mode_cleanupP16LodePNGColorMode.exit.i, label %if.then.i.i67 if.then.i.i67: ; preds = %if.then71 - tail call void @free(ptr noundef nonnull %38) #31 + tail call void @free(ptr noundef nonnull %37) #31 br label %_Z26lodepng_color_mode_cleanupP16LodePNGColorMode.exit.i _Z26lodepng_color_mode_cleanupP16LodePNGColorMode.exit.i: ; preds = %if.then.i.i67, %if.then71 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %palette.i, i8 0, i64 16, i1 false) tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(40) %mode_out, ptr noundef nonnull readonly align 1 dereferenceable(40) %mode_in, i64 40, i1 false), !alias.scope !360 %palette.i68 = getelementptr inbounds nuw i8, ptr %mode_in, i64 8 - %39 = load ptr, ptr %palette.i68, align 8 - %tobool.not.i69 = icmp eq ptr %39, null + %38 = load ptr, ptr %palette.i68, align 8 + %tobool.not.i69 = icmp eq ptr %38, null br i1 %tobool.not.i69, label %if.end98, label %if.then.i70 if.then.i70: ; preds = %_Z26lodepng_color_mode_cleanupP16LodePNGColorMode.exit.i @@ -15620,14 +15620,14 @@ if.then.i70: ; preds = %_Z26lodepng_color_m br i1 %tobool3.not.i, label %if.end98, label %if.end.i if.end.i: ; preds = %if.then.i70 - %40 = load i64, ptr %palettesize, align 8 - %41 = shl i64 %40, 2 - %cmp4.not.i.i = icmp eq i64 %41, 0 + %39 = load i64, ptr %palettesize, align 8 + %40 = shl i64 %39, 2 + %cmp4.not.i.i = icmp eq i64 %40, 0 br i1 %cmp4.not.i.i, label %if.end98, label %for.body.preheader.i.i for.body.preheader.i.i: ; preds = %if.end.i - %42 = load ptr, ptr %palette.i68, align 8 - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %call.i.i, ptr readonly align 1 %42, i64 %41, i1 false), !alias.scope !364 + %41 = load ptr, ptr %palette.i68, align 8 + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %call.i.i, ptr readonly align 1 %41, i64 %40, i1 false), !alias.scope !364 br label %if.end98 if.else: ; preds = %entry @@ -15645,20 +15645,20 @@ if.then86: ; preds = %if.else %notmask = shl nsw i32 -1, %spec.store.select6 %sub = xor i32 %notmask, -1 %key_r = getelementptr inbounds nuw i8, ptr %stats, i64 8 - %43 = load i16, ptr %key_r, align 8 - %conv88 = zext i16 %43 to i32 + %42 = load i16, ptr %key_r, align 8 + %conv88 = zext i16 %42 to i32 %and = and i32 %conv88, %sub %key_r89 = getelementptr inbounds nuw i8, ptr %mode_out, i64 28 store i32 %and, ptr %key_r89, align 4 %key_g = getelementptr inbounds nuw i8, ptr %stats, i64 10 - %44 = load i16, ptr %key_g, align 2 - %conv90 = zext i16 %44 to i32 + %43 = load i16, ptr %key_g, align 2 + %conv90 = zext i16 %43 to i32 %and91 = and i32 %conv90, %sub %key_g92 = getelementptr inbounds nuw i8, ptr %mode_out, i64 32 store i32 %and91, ptr %key_g92, align 8 %key_b = getelementptr inbounds nuw i8, ptr %stats, i64 12 - %45 = load i16, ptr %key_b, align 4 - %conv93 = zext i16 %45 to i32 + %44 = load i16, ptr %key_b, align 4 + %conv93 = zext i16 %44 to i32 %and94 = and i32 %conv93, %sub %key_b95 = getelementptr inbounds nuw i8, ptr %mode_out, i64 36 store i32 %and94, ptr %key_b95, align 4 diff --git a/bench/lvgl/optimized/lv_style.ll b/bench/lvgl/optimized/lv_style.ll index 31ce703f5c8..174a4b9c33e 100644 --- a/bench/lvgl/optimized/lv_style.ll +++ b/bench/lvgl/optimized/lv_style.ll @@ -203,7 +203,7 @@ define void @lv_style_set_prop(ptr noundef captures(none) %0, i8 noundef zeroext %4 = getelementptr i8, ptr %0, i64 12 %.val = load i8, ptr %4, align 4, !tbaa !3 %5 = icmp eq i8 %.val, -1 - br i1 %5, label %50, label %6 + br i1 %5, label %49, label %6 6: ; preds = %3 %.not = icmp eq i8 %1, 0 @@ -238,14 +238,14 @@ define void @lv_style_set_prop(ptr noundef captures(none) %0, i8 noundef zeroext 18: ; preds = %14 %19 = getelementptr inbounds nuw %union.lv_style_value_t, ptr %8, i64 %indvars.iv.next store ptr %2, ptr %19, align 8, !tbaa !23 - br label %50 + br label %49 .loopexit: ; preds = %12, %7 %20 = mul nuw nsw i64 %.pre51, 9 %21 = add nuw nsw i64 %20, 9 %22 = tail call ptr @lv_realloc(ptr noundef %8, i64 noundef %21) #8 %23 = icmp eq ptr %22, null - br i1 %23, label %50, label %24 + br i1 %23, label %49, label %24 24: ; preds = %.loopexit store ptr %22, ptr %0, align 8, !tbaa !9 @@ -286,16 +286,16 @@ define void @lv_style_set_prop(ptr noundef captures(none) %0, i8 noundef zeroext %43 = getelementptr i8, ptr %42, i64 -8 store ptr %2, ptr %43, align 8, !tbaa !23 %44 = lshr i8 %1, 2 - %45 = tail call i8 @llvm.umin.i8(i8 %44, i8 31) - %spec.store.select.i = zext nneg i8 %45 to i32 - %46 = shl nuw i32 1, %spec.store.select.i - %47 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %48 = load i32, ptr %47, align 8, !tbaa !29 - %49 = or i32 %48, %46 - store i32 %49, ptr %47, align 8, !tbaa !29 - br label %50 - -50: ; preds = %18, %.loopexit, %._crit_edge, %3 + %narrow.i = tail call i8 @llvm.umin.i8(i8 %44, i8 31) + %spec.store.select.i = zext nneg i8 %narrow.i to i32 + %45 = shl nuw i32 1, %spec.store.select.i + %46 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %47 = load i32, ptr %46, align 8, !tbaa !29 + %48 = or i32 %47, %45 + store i32 %48, ptr %46, align 8, !tbaa !29 + br label %49 + +49: ; preds = %18, %.loopexit, %._crit_edge, %3 ret void } diff --git a/bench/openblas/optimized/dgeqr.c.ll b/bench/openblas/optimized/dgeqr.c.ll index 3d60d4eabb9..094c37775d7 100644 --- a/bench/openblas/optimized/dgeqr.c.ll +++ b/bench/openblas/optimized/dgeqr.c.ll @@ -223,51 +223,51 @@ thread-pre-split: ; preds = %17, %.thread %131 = uitofp nneg i32 %97 to double %132 = getelementptr inbounds nuw i8, ptr %4, i64 16 store double %131, ptr %132, align 8, !tbaa !7 - %minmaxop = select i1 %29, i32 %107, i32 %.pr10.pre20 - %.in = tail call i32 @llvm.umax.i32(i32 %minmaxop, i32 1) - %133 = uitofp nneg i32 %.in to double + %133 = select i1 %29, i32 %107, i32 %.pr10.pre20 + %134 = tail call i32 @llvm.umax.i32(i32 %133, i32 1) + %135 = uitofp nneg i32 %134 to double store double %133, ptr %6, align 8, !tbaa !7 - %134 = icmp eq i32 %50, 0 - %or.cond = or i1 %27, %134 + %137 = icmp eq i32 %50, 0 + %or.cond = or i1 %27, %137 br i1 %or.cond, label %155, label %139 -135: ; preds = %.thread13, %121 +135:; preds = %.thread13, %121 %136 = phi i32 [ %120, %.thread13 ], [ %.pr12, %121 ] %137 = sub nsw i32 0, %136 store i32 %137, ptr %10, align 4, !tbaa !3 - %138 = call i32 @xerbla_(ptr noundef nonnull @.str.2, ptr noundef nonnull %10, i32 noundef 5) #5 + %141 = call i32 @xerbla_(ptr noundef nonnull @.str.2, ptr noundef nonnull %10, i32 noundef 5) #5 br label %155 -139: ; preds = %123 +139:; preds = %123 %140 = icmp samesign ugt i32 %47, %.pr10.pre20 br i1 %140, label %141, label %145 -141: ; preds = %139 +141:; preds = %139 %142 = icmp sgt i32 %96, %.pr10.pre20 %143 = icmp slt i32 %96, %47 - %144 = and i1 %143, %142 + %146 = and i1 %143, %142 br i1 %144, label %147, label %145 -145: ; preds = %141, %139 +145:; preds = %141, %139 %146 = getelementptr inbounds nuw i8, ptr %4, i64 40 call void @dgeqrt_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %12, ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull %146, ptr noundef nonnull %12, ptr noundef nonnull %6, ptr noundef nonnull %8) #5 br label %149 -147: ; preds = %141 +147:; preds = %141 %148 = getelementptr inbounds nuw i8, ptr %4, i64 40 call void @dlatsqr_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %11, ptr noundef nonnull %12, ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull %148, ptr noundef nonnull %12, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull %8) #5 br label %149 -149: ; preds = %147, %145 +149:; preds = %147, %145 %150 = load i32, ptr %12, align 4, !tbaa !3 %151 = load i32, ptr %1, align 4, !tbaa !3 - %152 = mul nsw i32 %151, %150 - %153 = call i32 @llvm.smax.i32(i32 %152, i32 1) - %154 = uitofp nneg i32 %153 to double + %154 = mul nsw i32 %151, %150 + %155 = call i32 @llvm.smax.i32(i32 %152, i32 1) + %156 = uitofp nneg i32 %155 to double store double %154, ptr %6, align 8, !tbaa !7 br label %155 -155: ; preds = %149, %123, %135 +155:; preds = %149, %123, %135 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #5 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #5 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #5 diff --git a/bench/openblas/optimized/dhseqr.c.ll b/bench/openblas/optimized/dhseqr.c.ll index 1e2fa740acd..2cad61b5472 100644 --- a/bench/openblas/optimized/dhseqr.c.ll +++ b/bench/openblas/optimized/dhseqr.c.ll @@ -158,208 +158,208 @@ define void @dhseqr_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef 96: ; preds = %88 %.not = icmp eq i32 %56, 1 - br i1 %.not, label %.loopexit20, label %97 - -97: ; preds = %96 - %98 = add i32 %23, 1 - %99 = zext nneg i32 %56 to i64 - br label %100 - -100: ; preds = %100, %97 - %101 = phi i64 [ 1, %97 ], [ %109, %100 ] - %102 = trunc i64 %101 to i32 - %103 = mul i32 %98, %102 - %104 = sext i32 %103 to i64 - %105 = getelementptr inbounds double, ptr %26, i64 %104 - %106 = load double, ptr %105, align 8, !tbaa !7 - %107 = getelementptr inbounds nuw double, ptr %27, i64 %101 - store double %106, ptr %107, align 8, !tbaa !7 - %108 = getelementptr inbounds nuw double, ptr %28, i64 %101 - store double 0.000000e+00, ptr %108, align 8, !tbaa !7 - %109 = add nuw nsw i64 %101, 1 - %110 = icmp eq i64 %109, %99 - br i1 %110, label %.loopexit20, label %100, !llvm.loop !9 - -.loopexit20: ; preds = %100, %96 + br i1 %.not, label %.loopexit20, label %98 + +98: ; preds = %96 + %99 = add i32 %23, 1 + %100 = zext nneg i32 %56 to i64 + br label %101 + +101: ; preds = %101, %98 + %102 = phi i64 [ 1, %98 ], [ %110, %101 ] + %103 = trunc i64 %102 to i32 + %104 = mul i32 %99, %103 + %105 = sext i32 %104 to i64 + %106 = getelementptr inbounds double, ptr %26, i64 %105 + %107 = load double, ptr %106, align 8, !tbaa !7 + %108 = getelementptr inbounds nuw double, ptr %27, i64 %102 + store double %107, ptr %108, align 8, !tbaa !7 + %109 = getelementptr inbounds nuw double, ptr %28, i64 %102 + store double 0.000000e+00, ptr %109, align 8, !tbaa !7 + %110 = add nuw nsw i64 %102, 1 + %111 = icmp eq i64 %110, %100 + br i1 %111, label %.loopexit20, label %101, !llvm.loop !9 + +.loopexit20: ; preds = %101, %96 store i32 %53, ptr %15, align 4, !tbaa !3 - %111 = icmp slt i32 %62, %53 - br i1 %111, label %112, label %.loopexit19 - -112: ; preds = %.loopexit20 - %113 = add i32 %23, 1 - %114 = sext i32 %62 to i64 - %115 = zext nneg i32 %53 to i64 - br label %116 - -116: ; preds = %116, %112 - %117 = phi i64 [ %114, %112 ], [ %118, %116 ] - %118 = add nsw i64 %117, 1 - %119 = trunc i64 %118 to i32 - %120 = mul i32 %113, %119 - %121 = sext i32 %120 to i64 - %122 = getelementptr inbounds double, ptr %26, i64 %121 - %123 = load double, ptr %122, align 8, !tbaa !7 - %124 = getelementptr double, ptr %7, i64 %117 - store double %123, ptr %124, align 8, !tbaa !7 - %125 = getelementptr double, ptr %8, i64 %117 - store double 0.000000e+00, ptr %125, align 8, !tbaa !7 - %126 = icmp eq i64 %118, %115 - br i1 %126, label %.loopexit19, label %116, !llvm.loop !12 - -.loopexit19: ; preds = %116, %.loopexit20 - br i1 %31, label %128, label %127 - -127: ; preds = %.loopexit19 + %112 = icmp slt i32 %62, %53 + br i1 %112, label %113, label %.loopexit19 + +113: ; preds = %.loopexit20 + %114 = add i32 %23, 1 + %115 = sext i32 %62 to i64 + %116 = zext nneg i32 %53 to i64 + br label %117 + +117: ; preds = %117, %113 + %118 = phi i64 [ %115, %113 ], [ %119, %117 ] + %119 = add nsw i64 %118, 1 + %120 = trunc i64 %119 to i32 + %121 = mul i32 %114, %120 + %122 = sext i32 %121 to i64 + %123 = getelementptr inbounds double, ptr %26, i64 %122 + %124 = load double, ptr %123, align 8, !tbaa !7 + %125 = getelementptr double, ptr %7, i64 %118 + store double %124, ptr %125, align 8, !tbaa !7 + %126 = getelementptr double, ptr %8, i64 %118 + store double 0.000000e+00, ptr %126, align 8, !tbaa !7 + %127 = icmp eq i64 %119, %116 + br i1 %127, label %.loopexit19, label %117, !llvm.loop !12 + +.loopexit19: ; preds = %117, %.loopexit20 + br i1 %31, label %129, label %128 + +128: ; preds = %.loopexit19 tail call void @dlaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b11, ptr noundef nonnull @c_b12, ptr noundef %9, ptr noundef nonnull %10) #6 %.pre = load i32, ptr %3, align 4, !tbaa !3 %.pre33 = load i32, ptr %4, align 4, !tbaa !3 - br label %128 - -128: ; preds = %127, %.loopexit19 - %129 = phi i32 [ %.pre33, %127 ], [ %62, %.loopexit19 ] - %130 = phi i32 [ %.pre, %127 ], [ %56, %.loopexit19 ] - %131 = icmp eq i32 %130, %129 - br i1 %131, label %132, label %141 - -132: ; preds = %128 - %133 = add i32 %23, 1 - %134 = mul i32 %129, %133 - %135 = sext i32 %134 to i64 - %136 = getelementptr inbounds double, ptr %26, i64 %135 - %137 = load double, ptr %136, align 8, !tbaa !7 - %138 = sext i32 %129 to i64 - %139 = getelementptr inbounds double, ptr %27, i64 %138 - store double %137, ptr %139, align 8, !tbaa !7 - %140 = getelementptr inbounds double, ptr %28, i64 %138 - store double 0.000000e+00, ptr %140, align 8, !tbaa !7 + br label %129 + +129: ; preds = %128, %.loopexit19 + %130 = phi i32 [ %.pre33, %128 ], [ %62, %.loopexit19 ] + %131 = phi i32 [ %.pre, %128 ], [ %56, %.loopexit19 ] + %132 = icmp eq i32 %131, %130 + br i1 %132, label %133, label %142 + +133: ; preds = %129 + %134 = add i32 %23, 1 + %135 = mul i32 %130, %134 + %136 = sext i32 %135 to i64 + %137 = getelementptr inbounds double, ptr %26, i64 %136 + %138 = load double, ptr %137, align 8, !tbaa !7 + %139 = sext i32 %130 to i64 + %140 = getelementptr inbounds double, ptr %27, i64 %139 + store double %138, ptr %140, align 8, !tbaa !7 + %141 = getelementptr inbounds double, ptr %28, i64 %139 + store double 0.000000e+00, ptr %141, align 8, !tbaa !7 br label %207 -141: ; preds = %128 +142: ; preds = %129 store ptr %0, ptr %.sroa.031, align 16, !tbaa !13 store ptr %1, ptr %.sroa.432, align 8, !tbaa !13 - br label %149 - -142: ; preds = %.loopexit - %143 = icmp sgt i32 %154, 0 - br i1 %143, label %144, label %160 - -144: ; preds = %142 - %145 = xor i32 %153, -1 - %146 = add i32 %152, %145 - %147 = zext i32 %146 to i64 - %148 = add nuw nsw i64 %147, 1 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %159, i8 32, i64 %148, i1 false), !tbaa !15 - br label %160 - -149: ; preds = %.loopexit, %141 - %150 = phi i1 [ true, %141 ], [ false, %.loopexit ] - %.sroa.phi = phi ptr [ %.sroa.031, %141 ], [ %.sroa.432, %.loopexit ] - %151 = phi ptr [ %17, %141 ], [ %159, %.loopexit ] - %152 = phi i32 [ 2, %141 ], [ %154, %.loopexit ] - %153 = tail call i32 @llvm.smin.i32(i32 %152, i32 1) - %154 = sub nsw i32 %152, %153 - %155 = icmp sgt i32 %152, 0 - br i1 %155, label %.loopexit.loopexit, label %.loopexit - -.loopexit.loopexit: ; preds = %149 - %156 = load ptr, ptr %.sroa.phi, align 8, !tbaa !13 - %157 = load i8, ptr %156, align 1, !tbaa !15 - store i8 %157, ptr %151, align 1, !tbaa !15 - %158 = getelementptr inbounds nuw i8, ptr %151, i64 1 + br label %150 + +143: ; preds = %.loopexit + %144 = icmp sgt i32 %155, 0 + br i1 %144, label %145, label %161 + +145: ; preds = %143 + %146 = xor i32 %154, -1 + %147 = add i32 %153, %146 + %148 = zext i32 %147 to i64 + %149 = add nuw nsw i64 %148, 1 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %160, i8 32, i64 %149, i1 false), !tbaa !15 + br label %161 + +150: ; preds = %.loopexit, %142 + %151 = phi i1 [ true, %142 ], [ false, %.loopexit ] + %.sroa.phi = phi ptr [ %.sroa.031, %142 ], [ %.sroa.432, %.loopexit ] + %152 = phi ptr [ %17, %142 ], [ %160, %.loopexit ] + %153 = phi i32 [ 2, %142 ], [ %155, %.loopexit ] + %154 = tail call i32 @llvm.smin.i32(i32 %153, i32 1) + %155 = sub nsw i32 %153, %154 + %156 = icmp sgt i32 %153, 0 + br i1 %156, label %.loopexit.loopexit, label %.loopexit + +.loopexit.loopexit: ; preds = %150 + %157 = load ptr, ptr %.sroa.phi, align 8, !tbaa !13 + %158 = load i8, ptr %157, align 1, !tbaa !15 + store i8 %158, ptr %152, align 1, !tbaa !15 + %159 = getelementptr inbounds nuw i8, ptr %152, i64 1 br label %.loopexit -.loopexit: ; preds = %.loopexit.loopexit, %149 - %159 = phi ptr [ %151, %149 ], [ %158, %.loopexit.loopexit ] - br i1 %150, label %149, label %142, !llvm.loop !16 +.loopexit: ; preds = %.loopexit.loopexit, %150 + %160 = phi ptr [ %152, %150 ], [ %159, %.loopexit.loopexit ] + br i1 %151, label %150, label %143, !llvm.loop !16 -160: ; preds = %144, %142 - %161 = call i32 @ilaenv_(ptr noundef nonnull @c__12, ptr noundef nonnull @.str.5, ptr noundef nonnull %17, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %12, i32 noundef 6, i32 noundef 2) #6 - %162 = call i32 @llvm.smax.i32(i32 %161, i32 15) - %163 = load i32, ptr %2, align 4, !tbaa !3 - %164 = icmp sgt i32 %163, %162 - br i1 %164, label %165, label %166 +161: ; preds = %145, %143 + %162 = call i32 @ilaenv_(ptr noundef nonnull @c__12, ptr noundef nonnull @.str.5, ptr noundef nonnull %17, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %12, i32 noundef 6, i32 noundef 2) #6 + %163 = call i32 @llvm.smax.i32(i32 %162, i32 15) + %164 = load i32, ptr %2, align 4, !tbaa !3 + %165 = icmp sgt i32 %164, %163 + br i1 %165, label %166, label %167 -165: ; preds = %160 +166: ; preds = %161 call void @dlaqr0_(ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef nonnull %12, ptr noundef nonnull %13) #6 - br label %189 + br label %190 -166: ; preds = %160 +167: ; preds = %161 call void @dlahqr_(ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %13) #6 - %167 = load i32, ptr %13, align 4, !tbaa !3 - %168 = icmp sgt i32 %167, 0 - br i1 %168, label %169, label %189 + %168 = load i32, ptr %13, align 4, !tbaa !3 + %169 = icmp sgt i32 %168, 0 + br i1 %169, label %170, label %190 -169: ; preds = %166 - store i32 %167, ptr %18, align 4, !tbaa !3 - %170 = load i32, ptr %2, align 4, !tbaa !3 - %171 = icmp sgt i32 %170, 48 - br i1 %171, label %172, label %173 +170: ; preds = %167 + store i32 %168, ptr %18, align 4, !tbaa !3 + %171 = load i32, ptr %2, align 4, !tbaa !3 + %172 = icmp sgt i32 %171, 48 + br i1 %172, label %173, label %174 -172: ; preds = %169 +173: ; preds = %170 call void @dlaqr0_(ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %18, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef nonnull %12, ptr noundef nonnull %13) #6 - br label %189 + br label %190 -173: ; preds = %169 +174: ; preds = %170 call void @dlacpy_(ptr noundef nonnull @.str.6, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %22, ptr noundef nonnull @c__49) #6 - %174 = load i32, ptr %2, align 4, !tbaa !3 - %175 = mul nsw i32 %174, 49 - %176 = add i32 %174, -49 - %177 = add i32 %176, %175 - %178 = sext i32 %177 to i64 - %179 = getelementptr inbounds [2401 x double], ptr %22, i64 0, i64 %178 - store double 0.000000e+00, ptr %179, align 8, !tbaa !7 - %180 = sub nsw i32 49, %174 - store i32 %180, ptr %15, align 4, !tbaa !3 - %181 = sext i32 %175 to i64 - %182 = getelementptr inbounds [2401 x double], ptr %22, i64 0, i64 %181 - call void @dlaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull @c__49, ptr noundef nonnull %15, ptr noundef nonnull @c_b11, ptr noundef nonnull @c_b11, ptr noundef nonnull %182, ptr noundef nonnull @c__49) #6 + %175 = load i32, ptr %2, align 4, !tbaa !3 + %176 = mul nsw i32 %175, 49 + %177 = add i32 %175, -49 + %178 = add i32 %177, %176 + %179 = sext i32 %178 to i64 + %180 = getelementptr inbounds [2401 x double], ptr %22, i64 0, i64 %179 + store double 0.000000e+00, ptr %180, align 8, !tbaa !7 + %181 = sub nsw i32 49, %175 + store i32 %181, ptr %15, align 4, !tbaa !3 + %182 = sext i32 %176 to i64 + %183 = getelementptr inbounds [2401 x double], ptr %22, i64 0, i64 %182 + call void @dlaset_(ptr noundef nonnull @.str.6, ptr noundef nonnull @c__49, ptr noundef nonnull %15, ptr noundef nonnull @c_b11, ptr noundef nonnull @c_b11, ptr noundef nonnull %183, ptr noundef nonnull @c__49) #6 call void @dlaqr0_(ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull @c__49, ptr noundef nonnull %3, ptr noundef nonnull %18, ptr noundef nonnull %22, ptr noundef nonnull @c__49, ptr noundef %7, ptr noundef %8, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %19, ptr noundef nonnull @c__49, ptr noundef nonnull %13) #6 - %183 = load i32, ptr %20, align 4, !tbaa !3 - %184 = icmp eq i32 %183, 0 - br i1 %184, label %185, label %188 + %184 = load i32, ptr %20, align 4, !tbaa !3 + %185 = icmp eq i32 %184, 0 + br i1 %185, label %186, label %189 -185: ; preds = %173 - %186 = load i32, ptr %13, align 4, !tbaa !3 - %187 = icmp eq i32 %186, 0 - br i1 %187, label %.thread18, label %188 +186: ; preds = %174 + %187 = load i32, ptr %13, align 4, !tbaa !3 + %188 = icmp eq i32 %187, 0 + br i1 %188, label %.thread18, label %189 -188: ; preds = %185, %173 +189: ; preds = %186, %174 call void @dlacpy_(ptr noundef nonnull @.str.6, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %22, ptr noundef nonnull @c__49, ptr noundef %5, ptr noundef nonnull %6) #6 - br label %189 + br label %190 -189: ; preds = %188, %172, %166, %165 +190: ; preds = %189, %173, %167, %166 %.pr14 = load i32, ptr %20, align 4, !tbaa !3 - %190 = icmp eq i32 %.pr14, 0 - br i1 %190, label %191, label %193 + %191 = icmp eq i32 %.pr14, 0 + br i1 %191, label %192, label %194 -191: ; preds = %189 +192: ; preds = %190 %.pr17 = load i32, ptr %13, align 4, !tbaa !3 - %192 = icmp eq i32 %.pr17, 0 - br i1 %192, label %.thread18, label %193 - -193: ; preds = %191, %189 - %194 = load i32, ptr %2, align 4, !tbaa !3 - %195 = icmp sgt i32 %194, 2 - br i1 %195, label %196, label %.thread18 - -196: ; preds = %193 - %197 = add nsw i32 %194, -2 - store i32 %197, ptr %15, align 4, !tbaa !3 - store i32 %197, ptr %16, align 4, !tbaa !3 - %198 = sext i32 %23 to i64 - %199 = getelementptr double, ptr %26, i64 %198 - %200 = getelementptr i8, ptr %199, i64 24 - call void @dlaset_(ptr noundef nonnull @.str.7, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef nonnull @c_b11, ptr noundef nonnull @c_b11, ptr noundef %200, ptr noundef nonnull %6) #6 + %193 = icmp eq i32 %.pr17, 0 + br i1 %193, label %.thread18, label %194 + +194: ; preds = %192, %190 + %195 = load i32, ptr %2, align 4, !tbaa !3 + %196 = icmp sgt i32 %195, 2 + br i1 %196, label %197, label %.thread18 + +197: ; preds = %194 + %198 = add nsw i32 %195, -2 + store i32 %198, ptr %15, align 4, !tbaa !3 + store i32 %198, ptr %16, align 4, !tbaa !3 + %199 = sext i32 %23 to i64 + %200 = getelementptr double, ptr %26, i64 %199 + %201 = getelementptr i8, ptr %200, i64 24 + call void @dlaset_(ptr noundef nonnull @.str.7, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef nonnull @c_b11, ptr noundef nonnull @c_b11, ptr noundef %201, ptr noundef nonnull %6) #6 br label %.thread18 -.thread18: ; preds = %185, %196, %193, %191 - %201 = load i32, ptr %2, align 4, !tbaa !3 - %202 = call i32 @llvm.smax.i32(i32 %201, i32 1) - %203 = uitofp nneg i32 %202 to double - %204 = load double, ptr %11, align 8, !tbaa !7 - %205 = fcmp ole double %204, %203 - %206 = select i1 %205, double %203, double %204 - store double %206, ptr %11, align 8, !tbaa !7 +.thread18: ; preds = %186, %197, %194, %192 + %202 = load i32, ptr %2, align 4, !tbaa !3 + %203 = call i32 @llvm.smax.i32(i32 %202, i32 1) + %204 = uitofp nneg i32 %202 to double + %205 = load double, ptr %11, align 8, !tbaa !7 + %206 = fcmp ole double %204, %203 + %207 = select i1 %205, double %203, double %204 + store double %207, ptr %11, align 8, !tbaa !7 br label %207 207: ; preds = %.thread18, %132, %89, %86, %82 diff --git a/bench/opencv/optimized/bitstrm.cpp.ll b/bench/opencv/optimized/bitstrm.cpp.ll index 13b60b2751b..4ae5fb95b99 100644 --- a/bench/opencv/optimized/bitstrm.cpp.ll +++ b/bench/opencv/optimized/bitstrm.cpp.ll @@ -97,26 +97,26 @@ define hidden void @_ZN2cv11RBaseStream8allocateEv(ptr noundef nonnull align 8 c %2 = getelementptr inbounds nuw i8, ptr %0, i64 8 %3 = load i8, ptr %2, align 8 %4 = trunc i8 %3 to i1 - br i1 %4, label %16, label %5 + br i1 %4, label %15, label %5 5: ; preds = %1 %6 = getelementptr inbounds nuw i8, ptr %0, i64 48 %7 = load i32, ptr %6, align 8 - %8 = tail call i32 @llvm.smax.i32(i32 %7, i32 -1) - %9 = sext i32 %8 to i64 - %10 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %9) #19 - %11 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %10, ptr %11, align 8 - %12 = sext i32 %7 to i64 - %13 = getelementptr inbounds i8, ptr %10, i64 %12 - %14 = getelementptr inbounds nuw i8, ptr %0, i64 24 - store ptr %13, ptr %14, align 8 - %15 = getelementptr inbounds nuw i8, ptr %0, i64 32 - store ptr %13, ptr %15, align 8 + %narrow = tail call i32 @llvm.smax.i32(i32 %7, i32 -1) + %8 = sext i32 %narrow to i64 + %9 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %8) #19 + %10 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store ptr %9, ptr %10, align 8 + %11 = sext i32 %7 to i64 + %12 = getelementptr inbounds i8, ptr %9, i64 %11 + %13 = getelementptr inbounds nuw i8, ptr %0, i64 24 + store ptr %12, ptr %13, align 8 + %14 = getelementptr inbounds nuw i8, ptr %0, i64 32 + store ptr %12, ptr %14, align 8 store i8 1, ptr %2, align 8 - br label %16 + br label %15 -16: ; preds = %5, %1 +15: ; preds = %5, %1 ret void } @@ -1519,20 +1519,20 @@ define hidden void @_ZN2cv11WBaseStream8allocateEv(ptr noundef nonnull align 8 c br i1 %.not, label %6, label %._crit_edge 6: ; preds = %1 - %7 = tail call i32 @llvm.smax.i32(i32 %5, i32 -1) - %8 = sext i32 %7 to i64 - %9 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %8) #19 - store ptr %9, ptr %2, align 8 + %narrow = tail call i32 @llvm.smax.i32(i32 %5, i32 -1) + %7 = sext i32 %narrow to i64 + %8 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %7) #19 + store ptr %8, ptr %2, align 8 br label %._crit_edge ._crit_edge: ; preds = %1, %6 - %10 = phi ptr [ %9, %6 ], [ %3, %1 ] - %11 = sext i32 %5 to i64 - %12 = getelementptr inbounds i8, ptr %10, i64 %11 - %13 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %12, ptr %13, align 8 - %14 = getelementptr inbounds nuw i8, ptr %0, i64 24 - store ptr %10, ptr %14, align 8 + %9 = phi ptr [ %8, %6 ], [ %3, %1 ] + %10 = sext i32 %5 to i64 + %11 = getelementptr inbounds i8, ptr %9, i64 %10 + %12 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store ptr %11, ptr %12, align 8 + %13 = getelementptr inbounds nuw i8, ptr %0, i64 24 + store ptr %9, ptr %13, align 8 ret void } diff --git a/bench/opencv/optimized/qrcode_reader.cpp.ll b/bench/opencv/optimized/qrcode_reader.cpp.ll index e9c5768438d..35b6898ab33 100644 --- a/bench/opencv/optimized/qrcode_reader.cpp.ll +++ b/bench/opencv/optimized/qrcode_reader.cpp.ll @@ -5530,51 +5530,51 @@ define hidden noundef i32 @_ZN5zxing6qrcode12QRCodeReader6smoothEPjNS_3RefINS_9B br i1 %20, label %.lr.ph84, label %._crit_edge85 .lr.ph84: ; preds = %4 - %21 = add i32 %8, %18 - %22 = icmp slt i32 %17, %21 - %23 = shl nuw i32 %16, 1 - br i1 %22, label %.lr.ph.us.preheader, label %.lr.ph84.split + %22 = add i32 %8, %18 + %23 = icmp slt i32 %17, %22 + %24 = shl nuw i32 %16, 1 + br i1 %23, label %.lr.ph.us.preheader, label %.lr.ph84.split .lr.ph.us.preheader: ; preds = %.lr.ph84 %narrow = add nsw i32 %7, 1 - %24 = sext i32 %narrow to i64 - %wide.trip.count = sext i32 %21 to i64 + %25 = sext i32 %narrow to i64 + %wide.trip.count = sext i32 %22 to i64 br label %.lr.ph.us .lr.ph.us: ; preds = %.lr.ph.us.preheader, %._crit_edge.us - %.06282.us = phi i32 [ %55, %._crit_edge.us ], [ 0, %.lr.ph.us.preheader ] - %.06381.us = phi i32 [ %56, %._crit_edge.us ], [ %17, %.lr.ph.us.preheader ] - %25 = add i32 %.06381.us, %18 - %26 = add nsw i32 %.06381.us, %7 + %.06282.us = phi i32 [ %56, %._crit_edge.us ], [ 0, %.lr.ph.us.preheader ] + %.06381.us = phi i32 [ %57, %._crit_edge.us ], [ %17, %.lr.ph.us.preheader ] + %26 = add i32 %.06381.us, %18 + %27 = add nsw i32 %.06381.us, %7 %27 = mul nsw i32 %25, %8 %28 = mul nsw i32 %26, %8 %29 = tail call noundef ptr @_ZN5zxing9BitMatrix13getRowBoolPtrEi(ptr noundef nonnull align 8 dereferenceable(346) %5, i32 noundef %.06381.us) tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %15, ptr align 1 %29, i64 %13, i1 false) %invariant.op.us = add i32 %7, %28 - %invariant.op73.us = add i32 %28, %18 - %invariant.op75.us = add i32 %7, %27 - %invariant.op77.us = add i32 %27, %18 + %invariant.op.us = add i32 %28, %18 + %invariant.op73.us = add i32 %7, %27 + %invariant.op75.us = add i32 %27, %18 br label %30 30: ; preds = %.lr.ph.us, %.thread.us %indvars.iv = phi i64 [ %24, %.lr.ph.us ], [ %indvars.iv.next, %.thread.us ] - %.180.us = phi i32 [ %.06282.us, %.lr.ph.us ], [ %55, %.thread.us ] - %31 = trunc nsw i64 %indvars.iv to i32 - %.reass.us = add i32 %invariant.op.us, %31 - %32 = sext i32 %.reass.us to i64 - %33 = getelementptr inbounds i32, ptr %0, i64 %32 + %indvars.iv = phi i32 [ %.06282.us, %.lr.ph.us ], [ %55, %.thread.us ] + %.180.us = trunc nsw i64 %indvars.iv to i32 + %32 = add i32 %invariant.op.us, %31 + %.reass.us = sext i32 %.reass.us to i64 + %33 = getelementptr inbounds i32, ptr %0, i64 %.reass.us %34 = load i32, ptr %33, align 4 - %.reass74.us = add i32 %invariant.op73.us, %31 - %35 = sext i32 %.reass74.us to i64 - %36 = getelementptr inbounds i32, ptr %0, i64 %35 + %35 = add i32 %invariant.op.us, %31 + %.reass74.us = sext i32 %.reass74.us to i64 + %36 = getelementptr inbounds i32, ptr %0, i64 %.reass74.us %37 = load i32, ptr %36, align 4 - %.reass76.us = add i32 %invariant.op75.us, %31 - %38 = sext i32 %.reass76.us to i64 - %39 = getelementptr inbounds i32, ptr %0, i64 %38 + %38 = add i32 %invariant.op75.us, %31 + %.reass76.us = sext i32 %.reass76.us to i64 + %39 = getelementptr inbounds i32, ptr %0, i64 %.reass76.us %40 = load i32, ptr %39, align 4 - %.reass78.us = add i32 %invariant.op77.us, %31 - %41 = sext i32 %.reass78.us to i64 - %42 = getelementptr inbounds i32, ptr %0, i64 %41 + %41 = add i32 %invariant.op77.us, %31 + %.reass78.us = sext i32 %.reass78.us to i64 + %42 = getelementptr inbounds i32, ptr %0, i64 %.reass78.us %43 = load i32, ptr %42, align 4 %44 = add i32 %34, %40 %45 = add i32 %37, %43 @@ -5582,45 +5582,45 @@ define hidden noundef i32 @_ZN5zxing6qrcode12QRCodeReader6smoothEPjNS_3RefINS_9B %47 = getelementptr inbounds i8, ptr %29, i64 %indvars.iv %48 = load i8, ptr %47, align 1 %49 = mul i32 %46, 3 - %.not.us = icmp ugt i32 %49, %16 - %.not67.us = icmp uge i32 %49, %23 - %50 = trunc i8 %48 to i1 - %spec.select.us = select i1 %.not67.us, i1 true, i1 %50 + %50 = icmp ugt i32 %49, %16 + %.not.us = icmp uge i32 %49, %23 + %.not67.us = trunc i8 %48 to i1 + %51 = select i1 %50, i1 true, i1 %50 %or.cond = select i1 %.not.us, i1 %spec.select.us, i1 false - br i1 %or.cond, label %51, label %.thread.us + br i1 %or.cond, label %52, label %.thread.us -51: ; preds = %30 - %52 = getelementptr inbounds i8, ptr %15, i64 %indvars.iv - store i8 1, ptr %52, align 1 +52: ; preds = %30 + %53 = getelementptr inbounds i8, ptr %15, i64 %indvars.iv + store i8 1, ptr %53, align 1 br label %.thread.us -.thread.us: ; preds = %51, %30 - %.070.us = phi i32 [ 1, %51 ], [ 0, %30 ] - %53 = and i8 %48, 1 - %.masked.us = zext nneg i8 %53 to i32 - %54 = xor i32 %.070.us, %.masked.us - %55 = add i32 %54, %.180.us +.thread.us: ; preds = %52, %30 + %.070.us = phi i32 [ 1, %52 ], [ 0, %30 ] + %54 = and i8 %48, 1 + %.masked.us = zext nneg i8 %54 to i32 + %55 = xor i32 %.070.us, %.masked.us + %56 = add i32 %55, %.180.us %indvars.iv.next = add nsw i64 %indvars.iv, 1 %exitcond90.not = icmp eq i64 %indvars.iv.next, %wide.trip.count br i1 %exitcond90.not, label %._crit_edge.us, label %30, !llvm.loop !23 ._crit_edge.us: ; preds = %.thread.us tail call void @_ZN5zxing9BitMatrix10setRowBoolEiPb(ptr noundef nonnull align 8 dereferenceable(346) %6, i32 noundef %.06381.us, ptr noundef nonnull %15) - %56 = add nsw i32 %.06381.us, 1 - %exitcond91.not = icmp eq i32 %56, %19 + %57 = add nsw i32 %.06381.us, 1 + %exitcond91.not = icmp eq i32 %57, %19 br i1 %exitcond91.not, label %._crit_edge85, label %.lr.ph.us, !llvm.loop !24 .lr.ph84.split: ; preds = %.lr.ph84, %.lr.ph84.split - %.06381 = phi i32 [ %58, %.lr.ph84.split ], [ %17, %.lr.ph84 ] - %57 = tail call noundef ptr @_ZN5zxing9BitMatrix13getRowBoolPtrEi(ptr noundef nonnull align 8 dereferenceable(346) %5, i32 noundef %.06381) - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %15, ptr align 1 %57, i64 %13, i1 false) + %.06381 = phi i32 [ %59, %.lr.ph84.split ], [ %17, %.lr.ph84 ] + %58 = tail call noundef ptr @_ZN5zxing9BitMatrix13getRowBoolPtrEi(ptr noundef nonnull align 8 dereferenceable(346) %5, i32 noundef %.06381) + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %15, ptr align 1 %58, i64 %13, i1 false) tail call void @_ZN5zxing9BitMatrix10setRowBoolEiPb(ptr noundef nonnull align 8 dereferenceable(346) %6, i32 noundef %.06381, ptr noundef nonnull %15) - %58 = add i32 %.06381, 1 - %exitcond.not = icmp eq i32 %58, %19 + %59 = add i32 %.06381, 1 + %exitcond.not = icmp eq i32 %59, %19 br i1 %exitcond.not, label %._crit_edge85, label %.lr.ph84.split, !llvm.loop !24 ._crit_edge85: ; preds = %.lr.ph84.split, %._crit_edge.us, %4 - %.062.lcssa = phi i32 [ 0, %4 ], [ %55, %._crit_edge.us ], [ 0, %.lr.ph84.split ] + %.062.lcssa = phi i32 [ 0, %4 ], [ %56, %._crit_edge.us ], [ 0, %.lr.ph84.split ] tail call void @_ZdaPv(ptr noundef nonnull %15) #18 ret i32 %.062.lcssa } diff --git a/bench/opencv/optimized/stringutils.cpp.ll b/bench/opencv/optimized/stringutils.cpp.ll index a64ff527fd3..42add2b24c3 100644 --- a/bench/opencv/optimized/stringutils.cpp.ll +++ b/bench/opencv/optimized/stringutils.cpp.ll @@ -51,12 +51,12 @@ define hidden void @_ZN5zxing6common11StringUtils13convertStringB5cxx11EPKciS3_S 17: ; preds = %14 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %6) #10 - br label %56 + br label %57 -18: ; preds = %53, %45, %42, %39, %33, %30, %26, %14 +18: ; preds = %54, %46, %43, %40, %33, %30, %26, %14 %19 = landingpad { ptr, i32 } cleanup - br label %57 + br label %58 20: ; preds = %5 %21 = icmp eq i32 %2, 0 @@ -69,13 +69,13 @@ define hidden void @_ZN5zxing6common11StringUtils13convertStringB5cxx11EPKciS3_S 23: ; preds = %22 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #10 - br label %56 + br label %57 24: ; preds = %22 %25 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #10 - br label %57 + br label %58 26: ; preds = %20 %27 = invoke ptr @iconv_open(ptr noundef nonnull %4, ptr noundef nonnull %3) @@ -91,7 +91,7 @@ define hidden void @_ZN5zxing6common11StringUtils13convertStringB5cxx11EPKciS3_S 32: ; preds = %30 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %6) #10 - br label %56 + br label %57 33: ; preds = %28 %34 = shl nsw i32 %2, 2 @@ -99,49 +99,49 @@ define hidden void @_ZN5zxing6common11StringUtils13convertStringB5cxx11EPKciS3_S %36 = sext i32 %35 to i64 %37 = call i64 @llvm.smax.i64(i64 %36, i64 -1) %38 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %37) #12 - to label %39 unwind label %18 + to label %40 unwind label %18 -39: ; preds = %33 +40: ; preds = %33 store ptr %1, ptr %8, align 8 - %40 = sext i32 %2 to i64 - store i64 %40, ptr %9, align 8 + %41 = sext i32 %2 to i64 + store i64 %41, ptr %9, align 8 store ptr %38, ptr %10, align 8 store i64 %36, ptr %11, align 8 - %41 = invoke i64 @iconv(ptr noundef %27, ptr noundef nonnull %8, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %11) - to label %42 unwind label %18 - -42: ; preds = %39 - %43 = icmp eq i64 %41, -1 - %44 = invoke i32 @iconv_close(ptr noundef %27) - to label %45 unwind label %18 - -45: ; preds = %42 - %46 = load i64, ptr %11, align 8 - %47 = trunc i64 %46 to i32 - %48 = sub i32 %35, %47 - %49 = sext i32 %48 to i64 - %50 = getelementptr inbounds i8, ptr %38, i64 %49 - store i8 0, ptr %50, align 1 - %51 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull %38) - to label %52 unwind label %18 - -52: ; preds = %45 + %42 = invoke i64 @iconv(ptr noundef %27, ptr noundef nonnull %8, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %11) + to label %43 unwind label %18 + +43: ; preds = %40 + %44 = icmp eq i64 %42, -1 + %45 = invoke i32 @iconv_close(ptr noundef %27) + to label %46 unwind label %18 + +46: ; preds = %43 + %47 = load i64, ptr %11, align 8 + %48 = trunc i64 %47 to i32 + %49 = sub i32 %35, %48 + %50 = sext i32 %49 to i64 + %51 = getelementptr inbounds i8, ptr %38, i64 %50 + store i8 0, ptr %51, align 1 + %52 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull %38) + to label %53 unwind label %18 + +53: ; preds = %46 call void @_ZdaPv(ptr noundef nonnull %38) #13 - br i1 %43, label %53, label %55 + br i1 %44, label %54, label %56 -53: ; preds = %52 - %54 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.10) - to label %55 unwind label %18 +54: ; preds = %53 + %55 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.10) + to label %56 unwind label %18 -55: ; preds = %53, %52 +56: ; preds = %54, %53 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %6) #10 - br label %56 + br label %57 -56: ; preds = %55, %32, %23, %17 +57: ; preds = %56, %32, %23, %17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #10 ret void -57: ; preds = %24, %18 +58: ; preds = %24, %18 %.pn = phi { ptr, i32 } [ %19, %18 ], [ %25, %24 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #10 resume { ptr, i32 } %.pn diff --git a/bench/opencv/optimized/ts.cpp.ll b/bench/opencv/optimized/ts.cpp.ll index caff82c4ceb..e5e9b416f07 100644 --- a/bench/opencv/optimized/ts.cpp.ll +++ b/bench/opencv/optimized/ts.cpp.ll @@ -1143,7 +1143,7 @@ define hidden void @_ZN6cvtest8BaseTest3runEi(ptr noundef nonnull align 8 derefe %13 = load ptr, ptr %12, align 8 %14 = tail call noundef zeroext i1 %13(ptr noundef nonnull align 8 dereferenceable(56) %0) %15 = tail call i32 @llvm.smax.i32(i32 %1, i32 0) - %16 = select i1 %14, i32 %15, i32 0 + %or.cond = select i1 %14, i32 %15, i32 0 %17 = icmp slt i32 %8, 0 %18 = icmp ugt i32 %8, %16 br i1 %18, label %.lr.ph, label %.loopexit @@ -6905,13 +6905,13 @@ declare i32 @llvm.smax.i32(i32, i32) #31 declare noundef i32 @puts(ptr noundef readonly captures(none)) local_unnamed_addr #2 ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immarg) #32 +declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immarg) #31 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.umax.i64(i64, i64) #31 +declare i64 @llvm.umax.i64(i64, i64) #32 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.umin.i64(i64, i64) #31 +declare i64 @llvm.umin.i64(i64, i64) #32 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) declare void @llvm.assume(i1 noundef) #33 @@ -6920,7 +6920,7 @@ declare void @llvm.assume(i1 noundef) #33 declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #34 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.smin.i32(i32, i32) #31 +declare i32 @llvm.smin.i32(i32, i32) #32 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #35 diff --git a/bench/openjdk/optimized/ifnode.ll b/bench/openjdk/optimized/ifnode.ll index 98be68c78c4..80a88b04c62 100644 --- a/bench/openjdk/optimized/ifnode.ll +++ b/bench/openjdk/optimized/ifnode.ll @@ -795,10 +795,10 @@ _ZNK4Node12find_int_conEi.exit.thread: ; preds = %71, %65 _ZNK4Node12find_int_conEi.exit22: ; preds = %99 %105 = icmp sgt i32 %.fr, -1 - %spec.select = select i1 %105, ptr null, ptr %.034 + %105 = select i1 %105, ptr null, ptr %.034 br label %_ZNK4Node12find_int_conEi.exit22.thread -_ZNK4Node12find_int_conEi.exit22.thread: ; preds = %_ZNK4Node12find_int_conEi.exit22, %99, %97 +_ZNK4Node12find_int_conEi.exit22.thread:; preds = %_ZNK4Node12find_int_conEi.exit22, %99, %97 %106 = phi i32 [ -1, %97 ], [ -1, %99 ], [ %.fr, %_ZNK4Node12find_int_conEi.exit22 ] %107 = phi ptr [ %.034, %97 ], [ %.034, %99 ], [ %spec.select, %_ZNK4Node12find_int_conEi.exit22 ] %.15 = tail call i32 @llvm.smax.i32(i32 %106, i32 0) diff --git a/bench/openjdk/optimized/macroAssembler_x86.ll b/bench/openjdk/optimized/macroAssembler_x86.ll index 5dbb7221933..f0f59d6a62a 100644 --- a/bench/openjdk/optimized/macroAssembler_x86.ll +++ b/bench/openjdk/optimized/macroAssembler_x86.ll @@ -14876,9 +14876,9 @@ declare void @_ZN9Assembler6vpsrawE11XMMRegisterS0_ii(ptr noundef nonnull align define hidden void @_ZN14MacroAssembler7evpsraqE11XMMRegisterS0_S0_i(ptr noundef nonnull align 8 dereferenceable(40) %0, i32 %1, i32 %2, i32 %3, i32 noundef %4) local_unnamed_addr #0 align 2 { %6 = load i64, ptr @_ZN19Abstract_VM_Version9_featuresE, align 8 %7 = and i64 %6, 8589934592 - %.not = icmp eq i64 %7, 0 - %8 = tail call i32 @llvm.smax.i32(i32 %4, i32 2) - %spec.store.select = select i1 %.not, i32 %8, i32 %4 + %8 = icmp eq i64 %7, 0 + %9 = tail call i32 @llvm.smax.i32(i32 %4, i32 2) + %or.cond.not = select i1 %9, i32 %8, i32 %4 tail call void @_ZN9Assembler7evpsraqE11XMMRegisterS0_S0_i(ptr noundef nonnull align 8 dereferenceable(40) %0, i32 %1, i32 %2, i32 %3, i32 noundef %spec.store.select) #18 ret void } @@ -14889,9 +14889,9 @@ declare void @_ZN9Assembler7evpsraqE11XMMRegisterS0_S0_i(ptr noundef nonnull ali define hidden void @_ZN14MacroAssembler7evpsraqE11XMMRegisterS0_ii(ptr noundef nonnull align 8 dereferenceable(40) %0, i32 %1, i32 %2, i32 noundef %3, i32 noundef %4) local_unnamed_addr #0 align 2 { %6 = load i64, ptr @_ZN19Abstract_VM_Version9_featuresE, align 8 %7 = and i64 %6, 8589934592 - %.not = icmp eq i64 %7, 0 - %8 = tail call i32 @llvm.smax.i32(i32 %4, i32 2) - %spec.store.select = select i1 %.not, i32 %8, i32 %4 + %8 = icmp eq i64 %7, 0 + %9 = tail call i32 @llvm.smax.i32(i32 %4, i32 2) + %or.cond.not = select i1 %9, i32 %8, i32 %4 tail call void @_ZN9Assembler7evpsraqE11XMMRegisterS0_ii(ptr noundef nonnull align 8 dereferenceable(40) %0, i32 %1, i32 %2, i32 noundef %3, i32 noundef %spec.store.select) #18 ret void } diff --git a/bench/openssl/optimized/ca_internals_test-bin-ca.ll b/bench/openssl/optimized/ca_internals_test-bin-ca.ll index 298d45fcbb6..576dc1aa84e 100644 --- a/bench/openssl/optimized/ca_internals_test-bin-ca.ll +++ b/bench/openssl/optimized/ca_internals_test-bin-ca.ll @@ -1948,17 +1948,17 @@ for.body914: ; preds = %for.body914.lr.ph, %call917 = call ptr @X509_get0_serialNumber(ptr noundef %call916) #12 %call918 = call ptr @ASN1_STRING_get0_data(ptr noundef %call917) #12 %call919 = call i32 @ASN1_STRING_length(ptr noundef %call917) #12 - %cond = call i32 @llvm.smax.i32(i32 %call919, i32 1) - %mul = shl nuw nsw i32 %cond, 1 - %narrow = add nuw i32 %mul, 5 - %conv926 = sext i32 %narrow to i64 + %141 = call i32 @llvm.smax.i32(i32 %call919, i32 1) + %mul = shl nuw nsw i32 %141, 1 + %add923 = add nuw i32 %mul, 5 + %conv926 = sext i32 %add923 to i64 %add927 = add i64 %call904, %conv926 %cmp928 = icmp ugt i64 %add927, 4096 br i1 %cmp928, label %if.then930, label %if.end932 if.then930: ; preds = %for.body914 - %141 = load ptr, ptr @bio_err, align 8 - %call931 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %141, ptr noundef nonnull @.str.208) #12 + %142 = load ptr, ptr @bio_err, align 8 + %call931 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %142, ptr noundef nonnull @.str.208) #12 br label %if.then1233 if.end932: ; preds = %for.body914 @@ -1969,20 +1969,20 @@ for.body939: ; preds = %if.end932, %for.bod %n.0742 = phi ptr [ %incdec.ptr948, %for.body939 ], [ %add.ptr, %if.end932 ] %psn.0741 = phi ptr [ %incdec.ptr951, %for.body939 ], [ %call918, %if.end932 ] %j.1740 = phi i32 [ %inc950, %for.body939 ], [ 0, %if.end932 ] - %142 = load i8, ptr %psn.0741, align 1 - %143 = lshr i8 %142, 4 - %idxprom941 = zext nneg i8 %143 to i64 + %143 = load i8, ptr %psn.0741, align 1 + %144 = lshr i8 %143, 4 + %idxprom941 = zext nneg i8 %144 to i64 %arrayidx942 = getelementptr inbounds nuw [17 x i8], ptr @ca_main.HEX_DIGITS, i64 0, i64 %idxprom941 - %144 = load i8, ptr %arrayidx942, align 1 + %145 = load i8, ptr %arrayidx942, align 1 %incdec.ptr943 = getelementptr inbounds nuw i8, ptr %n.0742, i64 1 - store i8 %144, ptr %n.0742, align 1 - %145 = load i8, ptr %psn.0741, align 1 - %146 = and i8 %145, 15 - %idxprom946 = zext nneg i8 %146 to i64 + store i8 %145, ptr %n.0742, align 1 + %146 = load i8, ptr %psn.0741, align 1 + %147 = and i8 %146, 15 + %idxprom946 = zext nneg i8 %147 to i64 %arrayidx947 = getelementptr inbounds nuw [17 x i8], ptr @ca_main.HEX_DIGITS, i64 0, i64 %idxprom946 - %147 = load i8, ptr %arrayidx947, align 1 + %148 = load i8, ptr %arrayidx947, align 1 %incdec.ptr948 = getelementptr inbounds nuw i8, ptr %n.0742, i64 2 - store i8 %147, ptr %incdec.ptr943, align 1 + store i8 %148, ptr %incdec.ptr943, align 1 %inc950 = add nuw nsw i32 %j.1740, 1 %incdec.ptr951 = getelementptr inbounds nuw i8, ptr %psn.0741, i64 1 %exitcond970.not = icmp eq i32 %inc950, %call919 @@ -2007,8 +2007,8 @@ if.end956: ; preds = %for.body939, %if.el br i1 %tobool455.not, label %if.end965, label %if.then962 if.then962: ; preds = %if.end956 - %148 = load ptr, ptr @bio_err, align 8 - %call964 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %148, ptr noundef nonnull @.str.209, ptr noundef nonnull %new_cert) #12 + %149 = load ptr, ptr @bio_err, align 8 + %call964 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %149, ptr noundef nonnull @.str.209, ptr noundef nonnull %new_cert) #12 br label %if.end965 if.end965: ; preds = %if.then962, %if.end956 @@ -2062,8 +2062,8 @@ if.end993: ; preds = %land.lhs.true989, % br i1 %tobool995.not, label %if.then1233, label %if.end997 if.end997: ; preds = %if.end993 - %149 = load ptr, ptr @bio_err, align 8 - %call998 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %149, ptr noundef nonnull @.str.211) #12 + %150 = load ptr, ptr @bio_err, align 8 + %call998 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %150, ptr noundef nonnull @.str.211) #12 br label %if.end1000 if.end1000: ; preds = %for.end982, %if.end997, %if.end578 @@ -2088,8 +2088,8 @@ if.then1010: ; preds = %if.then1002, %if.en br i1 %tobool1013.not, label %if.then1014, label %if.end1017 if.then1014: ; preds = %if.then1010 - %150 = load ptr, ptr @bio_err, align 8 - %call1015 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %150, ptr noundef nonnull @.str.213, ptr noundef nonnull %crl_ext.2461) #12 + %151 = load ptr, ptr @bio_err, align 8 + %call1015 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %151, ptr noundef nonnull @.str.213, ptr noundef nonnull %crl_ext.2461) #12 br label %if.then1233 if.end1017: ; preds = %if.then1010, %if.end1007 @@ -2105,16 +2105,16 @@ if.then1021: ; preds = %if.end1017 br i1 %cmp1023, label %if.then1025, label %if.end1028 if.then1025: ; preds = %if.then1021 - %151 = load ptr, ptr @bio_err, align 8 - %call1026 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %151, ptr noundef nonnull @.str.215) #12 + %152 = load ptr, ptr @bio_err, align 8 + %call1026 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %152, ptr noundef nonnull @.str.215) #12 br label %if.then1233 if.end1028: ; preds = %if.then1021, %if.end1017 %crlnumber.2 = phi ptr [ %call1022, %if.then1021 ], [ null, %if.end1017 ] - %152 = load i64, ptr %crldays, align 8 - %tobool1029 = icmp ne i64 %152, 0 - %153 = load i64, ptr %crlhours, align 8 - %tobool1031 = icmp ne i64 %153, 0 + %153 = load i64, ptr %crldays, align 8 + %tobool1029 = icmp ne i64 %153, 0 + %154 = load i64, ptr %crlhours, align 8 + %tobool1031 = icmp ne i64 %154, 0 %or.cond10 = select i1 %tobool1029, i1 true, i1 %tobool1031 %tobool1033 = icmp ne i64 %crlsec.0, 0 %or.cond11 = select i1 %or.cond10, i1 true, i1 %tobool1033 @@ -2143,28 +2143,28 @@ if.then1041: ; preds = %if.end1038 br label %if.end1043 if.end1043: ; preds = %if.end1038.if.end1043_crit_edge, %if.then1041, %if.end1028 - %154 = phi i64 [ %.pre972, %if.end1038.if.end1043_crit_edge ], [ 0, %if.then1041 ], [ %153, %if.end1028 ] + %155 = phi i64 [ %.pre972, %if.end1038.if.end1043_crit_edge ], [ 0, %if.then1041 ], [ %154, %if.end1028 ] %cmp1044 = icmp eq ptr %crl_nextupdate.0, null - %155 = load i64, ptr %crldays, align 8 - %cmp1047 = icmp eq i64 %155, 0 + %156 = load i64, ptr %crldays, align 8 + %cmp1047 = icmp eq i64 %156, 0 %or.cond12 = select i1 %cmp1044, i1 %cmp1047, i1 false - %cmp1050 = icmp eq i64 %154, 0 + %cmp1050 = icmp eq i64 %155, 0 %or.cond13 = select i1 %or.cond12, i1 %cmp1050, i1 false %cmp1053 = icmp eq i64 %crlsec.0, 0 %or.cond14 = select i1 %or.cond13, i1 %cmp1053, i1 false br i1 %or.cond14, label %if.then1055, label %if.end1057 if.then1055: ; preds = %if.end1043 - %156 = load ptr, ptr @bio_err, align 8 - %call1056 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %156, ptr noundef nonnull @.str.218) #12 + %157 = load ptr, ptr @bio_err, align 8 + %call1056 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %157, ptr noundef nonnull @.str.218) #12 br label %if.then1233 if.end1057: ; preds = %if.end1043 br i1 %tobool455.not, label %if.end1061, label %if.then1059 if.then1059: ; preds = %if.end1057 - %157 = load ptr, ptr @bio_err, align 8 - %call1060 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %157, ptr noundef nonnull @.str.219) #12 + %158 = load ptr, ptr @bio_err, align 8 + %call1060 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %158, ptr noundef nonnull @.str.219) #12 br label %if.end1061 if.end1061: ; preds = %if.then1059, %if.end1057 @@ -2186,40 +2186,40 @@ if.end1073: ; preds = %if.end1068 br i1 %tobool1075.not, label %if.then1076, label %if.end1078 if.then1076: ; preds = %if.end1073 - %158 = load ptr, ptr @bio_err, align 8 - %call1077 = call i32 @BIO_puts(ptr noundef %158, ptr noundef nonnull @.str.220) #12 + %159 = load ptr, ptr @bio_err, align 8 + %call1077 = call i32 @BIO_puts(ptr noundef %159, ptr noundef nonnull @.str.220) #12 br label %if.then1233 if.end1078: ; preds = %if.end1073 - %159 = load i64, ptr %crldays, align 8 - %160 = load i64, ptr %crlhours, align 8 - %call1079 = call i32 @set_crl_nextupdate(ptr noundef nonnull %call1064, ptr noundef %crl_nextupdate.0, i64 noundef %159, i64 noundef %160, i64 noundef %crlsec.0) #12 + %160 = load i64, ptr %crldays, align 8 + %161 = load i64, ptr %crlhours, align 8 + %call1079 = call i32 @set_crl_nextupdate(ptr noundef nonnull %call1064, ptr noundef %crl_nextupdate.0, i64 noundef %160, i64 noundef %161, i64 noundef %crlsec.0) #12 %tobool1080.not = icmp eq i32 %call1079, 0 br i1 %tobool1080.not, label %if.then1081, label %for.cond1084.preheader for.cond1084.preheader: ; preds = %if.end1078 - %161 = load ptr, ptr %db380, align 8 - %data1086746 = getelementptr inbounds nuw i8, ptr %161, i64 8 - %162 = load ptr, ptr %data1086746, align 8 - %call.i436747 = call i32 @OPENSSL_sk_num(ptr noundef %162) #12 + %162 = load ptr, ptr %db380, align 8 + %data1086746 = getelementptr inbounds nuw i8, ptr %162, i64 8 + %163 = load ptr, ptr %data1086746, align 8 + %call.i436747 = call i32 @OPENSSL_sk_num(ptr noundef %163) #12 %cmp1088748 = icmp sgt i32 %call.i436747, 0 br i1 %cmp1088748, label %for.body1090, label %for.end1128 if.then1081: ; preds = %if.end1078 - %163 = load ptr, ptr @bio_err, align 8 - %call1082 = call i32 @BIO_puts(ptr noundef %163, ptr noundef nonnull @.str.221) #12 + %164 = load ptr, ptr @bio_err, align 8 + %call1082 = call i32 @BIO_puts(ptr noundef %164, ptr noundef nonnull @.str.221) #12 br label %if.then1233 for.body1090: ; preds = %for.cond1084.preheader, %for.inc1126 %crl_v2.0750 = phi i32 [ %crl_v2.2, %for.inc1126 ], [ 0, %for.cond1084.preheader ] %i.3749 = phi i32 [ %inc1127, %for.inc1126 ], [ 0, %for.cond1084.preheader ] - %164 = load ptr, ptr %db380, align 8 - %data1092 = getelementptr inbounds nuw i8, ptr %164, i64 8 - %165 = load ptr, ptr %data1092, align 8 - %call.i437 = call ptr @OPENSSL_sk_value(ptr noundef %165, i32 noundef %i.3749) #12 - %166 = load ptr, ptr %call.i437, align 8 - %167 = load i8, ptr %166, align 1 - %cmp1097 = icmp eq i8 %167, 82 + %165 = load ptr, ptr %db380, align 8 + %data1092 = getelementptr inbounds nuw i8, ptr %165, i64 8 + %166 = load ptr, ptr %data1092, align 8 + %call.i437 = call ptr @OPENSSL_sk_value(ptr noundef %166, i32 noundef %i.3749) #12 + %167 = load ptr, ptr %call.i437, align 8 + %168 = load i8, ptr %167, align 1 + %cmp1097 = icmp eq i8 %168, 82 br i1 %cmp1097, label %if.then1099, label %for.inc1126 if.then1099: ; preds = %for.body1090 @@ -2229,8 +2229,8 @@ if.then1099: ; preds = %for.body1090 if.end1104: ; preds = %if.then1099 %arrayidx1105 = getelementptr inbounds nuw i8, ptr %call.i437, i64 16 - %168 = load ptr, ptr %arrayidx1105, align 8 - %call1106 = call fastcc i32 @make_revoked(ptr noundef nonnull %call1100, ptr noundef %168) + %169 = load ptr, ptr %arrayidx1105, align 8 + %call1106 = call fastcc i32 @make_revoked(ptr noundef nonnull %call1100, ptr noundef %169) switch i32 %call1106, label %if.end1113 [ i32 0, label %if.then1233 i32 2, label %if.then1112 @@ -2242,8 +2242,8 @@ if.then1112: ; preds = %if.end1104 if.end1113: ; preds = %if.end1104, %if.then1112 %crl_v2.1 = phi i32 [ 1, %if.then1112 ], [ %crl_v2.0750, %if.end1104 ] %arrayidx1114 = getelementptr inbounds nuw i8, ptr %call.i437, i64 24 - %169 = load ptr, ptr %arrayidx1114, align 8 - %call1115 = call i32 @BN_hex2bn(ptr noundef nonnull %serial, ptr noundef %169) #12 + %170 = load ptr, ptr %arrayidx1114, align 8 + %call1115 = call i32 @BN_hex2bn(ptr noundef nonnull %serial, ptr noundef %170) #12 %tobool1116.not = icmp eq i32 %call1115, 0 br i1 %tobool1116.not, label %if.then1233, label %if.end1118 @@ -2265,25 +2265,25 @@ if.end1122: ; preds = %if.end1118 for.inc1126: ; preds = %for.body1090, %if.end1122 %crl_v2.2 = phi i32 [ %crl_v2.1, %if.end1122 ], [ %crl_v2.0750, %for.body1090 ] %inc1127 = add nuw nsw i32 %i.3749, 1 - %172 = load ptr, ptr %db380, align 8 - %data1086 = getelementptr inbounds nuw i8, ptr %172, i64 8 - %173 = load ptr, ptr %data1086, align 8 - %call.i436 = call i32 @OPENSSL_sk_num(ptr noundef %173) #12 + %173 = load ptr, ptr %db380, align 8 + %data1086 = getelementptr inbounds nuw i8, ptr %173, i64 8 + %174 = load ptr, ptr %data1086, align 8 + %call.i436 = call i32 @OPENSSL_sk_num(ptr noundef %174) #12 %cmp1088 = icmp slt i32 %inc1127, %call.i436 br i1 %cmp1088, label %for.body1090, label %for.end1128.loopexit, !llvm.loop !12 for.end1128.loopexit: ; preds = %for.inc1126 - %174 = icmp ne i32 %crl_v2.2, 0 + %175 = icmp ne i32 %crl_v2.2, 0 br label %for.end1128 for.end1128: ; preds = %for.end1128.loopexit, %for.cond1084.preheader - %crl_v2.0.lcssa = phi i1 [ false, %for.cond1084.preheader ], [ %174, %for.end1128.loopexit ] + %crl_v2.0.lcssa = phi i1 [ false, %for.cond1084.preheader ], [ %175, %for.end1128.loopexit ] %call1129 = call i32 @X509_CRL_sort(ptr noundef nonnull %call1064) #12 br i1 %tobool455.not, label %if.end1133, label %if.then1131 if.then1131: ; preds = %for.end1128 - %175 = load ptr, ptr @bio_err, align 8 - %call1132 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %175, ptr noundef nonnull @.str.222) #12 + %176 = load ptr, ptr @bio_err, align 8 + %call1132 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %176, ptr noundef nonnull @.str.222) #12 br label %if.end1133 if.end1133: ; preds = %if.then1131, %for.end1128 @@ -2301,8 +2301,8 @@ if.then1142: ; preds = %if.then1139 br i1 %tobool1144.not, label %if.then1145, label %if.end1148 if.then1145: ; preds = %if.then1142 - %176 = load ptr, ptr @bio_err, align 8 - %call1146 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %176, ptr noundef nonnull @.str.223, ptr noundef nonnull %crl_ext.2462) #12 + %177 = load ptr, ptr @bio_err, align 8 + %call1146 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %177, ptr noundef nonnull @.str.223, ptr noundef nonnull %crl_ext.2462) #12 br label %if.then1233 if.end1148: ; preds = %if.then1142, %if.then1139 @@ -2370,14 +2370,14 @@ if.then1201: ; preds = %if.end1199 br i1 %cmp1202, label %if.then1204, label %if.else1206 if.then1204: ; preds = %if.then1201 - %177 = load ptr, ptr @bio_err, align 8 - %call1205 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %177, ptr noundef nonnull @.str.224) #12 + %178 = load ptr, ptr @bio_err, align 8 + %call1205 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %178, ptr noundef nonnull @.str.224) #12 br label %if.then1233 if.else1206: ; preds = %if.then1201 - %178 = load i32, ptr %informat, align 4 - %179 = load ptr, ptr %passin, align 8 - %call1207 = call ptr @load_cert_pass(ptr noundef nonnull %infile.0, i32 noundef %178, i32 noundef 1, ptr noundef %179, ptr noundef nonnull @.str.225) #12 + %179 = load i32, ptr %informat, align 4 + %180 = load ptr, ptr %passin, align 8 + %call1207 = call ptr @load_cert_pass(ptr noundef nonnull %infile.0, i32 noundef %179, i32 noundef 1, ptr noundef %180, ptr noundef nonnull @.str.225) #12 %cmp1208 = icmp eq ptr %call1207, null br i1 %cmp1208, label %if.then1233, label %if.end1211 @@ -2400,8 +2400,8 @@ if.end1224: ; preds = %if.end1220 br i1 %tobool1226.not, label %if.then1233, label %if.end1228 if.end1228: ; preds = %if.end1224 - %180 = load ptr, ptr @bio_err, align 8 - %call1229 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %180, ptr noundef nonnull @.str.211) #12 + %181 = load ptr, ptr @bio_err, align 8 + %call1229 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %181, ptr noundef nonnull @.str.211) #12 br label %if.end1234 if.then1233: ; preds = %if.end95, %lor.lhs.false98, %if.end80, %lor.lhs.false, %sw.bb57, %sw.bb51, %for.body825, %if.end965, %if.then1099, %if.end1118, %if.end1113, %if.end1104, %end_of_options, %if.then219, %if.then228, %if.end230, %if.then239, %if.end235, %land.lhs.true245, %if.end259, %land.lhs.true275, %if.end280, %if.then359, %if.then365, %if.end368, %if.then377, %if.then397, %if.then433, %if.then446, %if.then417, %if.then410, %if.end464, %if.then479, %land.lhs.true600, %if.then689, %if.then700, %if.then729, %if.then735, %if.then740, %if.then768, %if.then796, %if.then848, %if.then842, %if.then930, %if.then977, %if.then1025, %if.then1055, %if.end1061, %if.end1183, %if.then1204, %if.else1206, %if.end1211, %if.end1224, %if.end1220, %land.lhs.true1194, %if.end1179, %land.lhs.true1175, %if.then1167, %if.end1155, %if.then1151, %if.then1145, %if.then1081, %if.then1076, %if.end1068, %if.then1014, %if.end993, %land.lhs.true989, %if.end895, %land.lhs.true891, %if.then817, %if.then806, %if.then789, %if.then778, %if.then761, %if.then750, %if.then707, %if.else716, %if.then673, %if.then656, %if.then626, %if.then641, %if.else614, %land.lhs.true554, %if.then572, %if.end493, %if.else489, %if.then347, %if.then337, %if.then327, %if.then288, %if.then256, %if.then195, %if.end184, %if.end180, %land.lhs.true, %opthelp, %if.then506, %lookup_conf.exit.thread, %if.then1167.thread @@ -2416,8 +2416,8 @@ if.then1233: ; preds = %if.end95, %lor.lhs. %pkey.0.ph = phi ptr [ %call260, %if.then1167.thread ], [ null, %lookup_conf.exit.thread ], [ %call260, %if.then506 ], [ null, %opthelp ], [ null, %land.lhs.true ], [ null, %if.end180 ], [ null, %if.end184 ], [ null, %if.then195 ], [ null, %if.then256 ], [ %call260, %if.then288 ], [ %call260, %if.then327 ], [ %call260, %if.then337 ], [ %call260, %if.then347 ], [ %call260, %if.else489 ], [ %call260, %if.end493 ], [ %call260, %if.then572 ], [ %call260, %land.lhs.true554 ], [ %call260, %if.else614 ], [ %call260, %if.then641 ], [ %call260, %if.then626 ], [ %call260, %if.then656 ], [ %call260, %if.then673 ], [ %call260, %if.else716 ], [ %call260, %if.then707 ], [ %call260, %if.then750 ], [ %call260, %if.then761 ], [ %call260, %if.then778 ], [ %call260, %if.then789 ], [ %call260, %if.then806 ], [ %call260, %if.then817 ], [ %call260, %land.lhs.true891 ], [ %call260, %if.end895 ], [ %call260, %land.lhs.true989 ], [ %call260, %if.end993 ], [ %call260, %if.then1014 ], [ %call260, %if.end1068 ], [ %call260, %if.then1076 ], [ %call260, %if.then1081 ], [ %call260, %if.then1145 ], [ %call260, %if.then1151 ], [ %call260, %if.end1155 ], [ %call260, %if.then1167 ], [ %call260, %land.lhs.true1175 ], [ %call260, %if.end1179 ], [ %call260, %land.lhs.true1194 ], [ %call260, %if.end1220 ], [ %call260, %if.end1224 ], [ %call260, %if.end1211 ], [ %call260, %if.else1206 ], [ %call260, %if.then1204 ], [ %call260, %if.end1183 ], [ %call260, %if.end1061 ], [ %call260, %if.then1055 ], [ %call260, %if.then1025 ], [ %call260, %if.then977 ], [ %call260, %if.then930 ], [ %call260, %if.then842 ], [ %call260, %if.then848 ], [ %call260, %if.then796 ], [ %call260, %if.then768 ], [ %call260, %if.then740 ], [ %call260, %if.then735 ], [ %call260, %if.then729 ], [ %call260, %if.then700 ], [ %call260, %if.then689 ], [ %call260, %land.lhs.true600 ], [ %call260, %if.then479 ], [ %call260, %if.end464 ], [ %call260, %if.then410 ], [ %call260, %if.then417 ], [ %call260, %if.then446 ], [ %call260, %if.then433 ], [ %call260, %if.then397 ], [ %call260, %if.then377 ], [ %call260, %if.end368 ], [ %call260, %if.then365 ], [ %call260, %if.then359 ], [ %call260, %if.end280 ], [ %call260, %land.lhs.true275 ], [ null, %if.end259 ], [ null, %land.lhs.true245 ], [ null, %if.end235 ], [ null, %if.then239 ], [ null, %if.end230 ], [ null, %if.then228 ], [ null, %if.then219 ], [ null, %end_of_options ], [ %call260, %if.end1104 ], [ %call260, %if.end1113 ], [ %call260, %if.end1118 ], [ %call260, %if.then1099 ], [ %call260, %if.end965 ], [ %call260, %for.body825 ], [ null, %sw.bb51 ], [ null, %sw.bb57 ], [ null, %lor.lhs.false ], [ null, %if.end80 ], [ null, %lor.lhs.false98 ], [ null, %if.end95 ] %crlnumber.0.ph = phi ptr [ %crlnumber.2, %if.then1167.thread ], [ null, %lookup_conf.exit.thread ], [ null, %if.then506 ], [ null, %opthelp ], [ null, %land.lhs.true ], [ null, %if.end180 ], [ null, %if.end184 ], [ null, %if.then195 ], [ null, %if.then256 ], [ null, %if.then288 ], [ null, %if.then327 ], [ null, %if.then337 ], [ null, %if.then347 ], [ null, %if.else489 ], [ null, %if.end493 ], [ null, %if.then572 ], [ null, %land.lhs.true554 ], [ null, %if.else614 ], [ null, %if.then641 ], [ null, %if.then626 ], [ null, %if.then656 ], [ null, %if.then673 ], [ null, %if.else716 ], [ null, %if.then707 ], [ null, %if.then750 ], [ null, %if.then761 ], [ null, %if.then778 ], [ null, %if.then789 ], [ null, %if.then806 ], [ null, %if.then817 ], [ null, %land.lhs.true891 ], [ null, %if.end895 ], [ null, %land.lhs.true989 ], [ null, %if.end993 ], [ null, %if.then1014 ], [ %crlnumber.2, %if.end1068 ], [ %crlnumber.2, %if.then1076 ], [ %crlnumber.2, %if.then1081 ], [ %crlnumber.2, %if.then1145 ], [ %crlnumber.2, %if.then1151 ], [ %crlnumber.2, %if.end1155 ], [ %crlnumber.2, %if.then1167 ], [ %crlnumber.2, %land.lhs.true1175 ], [ null, %if.end1179 ], [ null, %land.lhs.true1194 ], [ null, %if.end1220 ], [ null, %if.end1224 ], [ null, %if.end1211 ], [ null, %if.else1206 ], [ null, %if.then1204 ], [ null, %if.end1183 ], [ %crlnumber.2, %if.end1061 ], [ %crlnumber.2, %if.then1055 ], [ null, %if.then1025 ], [ null, %if.then977 ], [ null, %if.then930 ], [ null, %if.then842 ], [ null, %if.then848 ], [ null, %if.then796 ], [ null, %if.then768 ], [ null, %if.then740 ], [ null, %if.then735 ], [ null, %if.then729 ], [ null, %if.then700 ], [ null, %if.then689 ], [ null, %land.lhs.true600 ], [ null, %if.then479 ], [ null, %if.end464 ], [ null, %if.then410 ], [ null, %if.then417 ], [ null, %if.then446 ], [ null, %if.then433 ], [ null, %if.then397 ], [ null, %if.then377 ], [ null, %if.end368 ], [ null, %if.then365 ], [ null, %if.then359 ], [ null, %if.end280 ], [ null, %land.lhs.true275 ], [ null, %if.end259 ], [ null, %land.lhs.true245 ], [ null, %if.end235 ], [ null, %if.then239 ], [ null, %if.end230 ], [ null, %if.then228 ], [ null, %if.then219 ], [ null, %end_of_options ], [ %crlnumber.2, %if.end1104 ], [ %crlnumber.2, %if.end1113 ], [ %crlnumber.2, %if.end1118 ], [ %crlnumber.2, %if.then1099 ], [ null, %if.end965 ], [ null, %for.body825 ], [ null, %sw.bb51 ], [ null, %sw.bb57 ], [ null, %lor.lhs.false ], [ null, %if.end80 ], [ null, %lor.lhs.false98 ], [ null, %if.end95 ] %conf.0.ph = phi ptr [ %call150, %if.then1167.thread ], [ %call150, %lookup_conf.exit.thread ], [ %call150, %if.then506 ], [ null, %opthelp ], [ %call150, %land.lhs.true ], [ %call150, %if.end180 ], [ %call150, %if.end184 ], [ %call150, %if.then195 ], [ %call150, %if.then256 ], [ %call150, %if.then288 ], [ %call150, %if.then327 ], [ %call150, %if.then337 ], [ %call150, %if.then347 ], [ %call150, %if.else489 ], [ %call150, %if.end493 ], [ %call150, %if.then572 ], [ %call150, %land.lhs.true554 ], [ %call150, %if.else614 ], [ %call150, %if.then641 ], [ %call150, %if.then626 ], [ %call150, %if.then656 ], [ %call150, %if.then673 ], [ %call150, %if.else716 ], [ %call150, %if.then707 ], [ %call150, %if.then750 ], [ %call150, %if.then761 ], [ %call150, %if.then778 ], [ %call150, %if.then789 ], [ %call150, %if.then806 ], [ %call150, %if.then817 ], [ %call150, %land.lhs.true891 ], [ %call150, %if.end895 ], [ %call150, %land.lhs.true989 ], [ %call150, %if.end993 ], [ %call150, %if.then1014 ], [ %call150, %if.end1068 ], [ %call150, %if.then1076 ], [ %call150, %if.then1081 ], [ %call150, %if.then1145 ], [ %call150, %if.then1151 ], [ %call150, %if.end1155 ], [ %call150, %if.then1167 ], [ %call150, %land.lhs.true1175 ], [ %call150, %if.end1179 ], [ %call150, %land.lhs.true1194 ], [ %call150, %if.end1220 ], [ %call150, %if.end1224 ], [ %call150, %if.end1211 ], [ %call150, %if.else1206 ], [ %call150, %if.then1204 ], [ %call150, %if.end1183 ], [ %call150, %if.end1061 ], [ %call150, %if.then1055 ], [ %call150, %if.then1025 ], [ %call150, %if.then977 ], [ %call150, %if.then930 ], [ %call150, %if.then842 ], [ %call150, %if.then848 ], [ %call150, %if.then796 ], [ %call150, %if.then768 ], [ %call150, %if.then740 ], [ %call150, %if.then735 ], [ %call150, %if.then729 ], [ %call150, %if.then700 ], [ %call150, %if.then689 ], [ %call150, %land.lhs.true600 ], [ %call150, %if.then479 ], [ %call150, %if.end464 ], [ %call150, %if.then410 ], [ %call150, %if.then417 ], [ %call150, %if.then446 ], [ %call150, %if.then433 ], [ %call150, %if.then397 ], [ %call150, %if.then377 ], [ %call150, %if.end368 ], [ %call150, %if.then365 ], [ %call150, %if.then359 ], [ %call150, %if.end280 ], [ %call150, %land.lhs.true275 ], [ %call150, %if.end259 ], [ %call150, %land.lhs.true245 ], [ %call150, %if.end235 ], [ %call150, %if.then239 ], [ %call150, %if.end230 ], [ %call150, %if.then228 ], [ %call150, %if.then219 ], [ null, %end_of_options ], [ %call150, %if.end1104 ], [ %call150, %if.end1113 ], [ %call150, %if.end1118 ], [ %call150, %if.then1099 ], [ %call150, %if.end965 ], [ %call150, %for.body825 ], [ null, %sw.bb51 ], [ null, %sw.bb57 ], [ null, %lor.lhs.false ], [ null, %if.end80 ], [ null, %lor.lhs.false98 ], [ null, %if.end95 ] - %181 = load ptr, ptr @bio_err, align 8 - call void @ERR_print_errors(ptr noundef %181) #12 + %182 = load ptr, ptr @bio_err, align 8 + call void @ERR_print_errors(ptr noundef %182) #12 br label %if.end1234 if.end1234: ; preds = %sw.bb3, %if.then870, %if.then882, %if.end1228, %if.end1199, %if.then1233 @@ -2437,19 +2437,19 @@ if.end1234: ; preds = %sw.bb3, %if.then870 call void @BIO_free_all(ptr noundef null) #12 call void @BIO_free_all(ptr noundef null) #12 call void @OSSL_STACK_OF_X509_free(ptr noundef %cert_sk.0489) #12 - %182 = load ptr, ptr %passin, align 8 - call void @cleanse(ptr noundef %182) #12 + %183 = load ptr, ptr %passin, align 8 + call void @cleanse(ptr noundef %183) #12 %tobool1235.not = icmp eq i32 %free_passin.0493, 0 br i1 %tobool1235.not, label %if.end1237, label %if.then1236 if.then1236: ; preds = %if.end1234 - %183 = load ptr, ptr %passin, align 8 - call void @CRYPTO_free(ptr noundef %183, ptr noundef nonnull @.str.198, i32 noundef 1315) #12 + %184 = load ptr, ptr %passin, align 8 + call void @CRYPTO_free(ptr noundef %184, ptr noundef nonnull @.str.198, i32 noundef 1315) #12 br label %if.end1237 if.end1237: ; preds = %if.then1236, %if.end1234 - %184 = load ptr, ptr %serial, align 8 - call void @BN_free(ptr noundef %184) #12 + %185 = load ptr, ptr %serial, align 8 + call void @BN_free(ptr noundef %185) #12 call void @BN_free(ptr noundef %crlnumber.0505) #12 call void @free_index(ptr noundef %db.0495) #12 call void @OPENSSL_sk_free(ptr noundef %sigopts.2485) #12 @@ -2458,8 +2458,8 @@ if.end1237: ; preds = %if.then1236, %if.en call void @X509_free(ptr noundef %x509.0499) #12 call void @X509_CRL_free(ptr noundef %crl.0491) #12 call void @NCONF_free(ptr noundef %conf.0507) #12 - %185 = load ptr, ptr @extfile_conf, align 8 - call void @NCONF_free(ptr noundef %185) #12 + %186 = load ptr, ptr @extfile_conf, align 8 + call void @NCONF_free(ptr noundef %186) #12 call void @release_engine(ptr noundef %e.0) #12 ret i32 %ret.0497 } diff --git a/bench/openssl/optimized/libdefault-lib-crngt.ll b/bench/openssl/optimized/libdefault-lib-crngt.ll index a9b3316ef28..2d8e50d56b8 100644 --- a/bench/openssl/optimized/libdefault-lib-crngt.ll +++ b/bench/openssl/optimized/libdefault-lib-crngt.ll @@ -326,22 +326,22 @@ declare void @ossl_set_error_state(ptr noundef) local_unnamed_addr #1 declare i64 @llvm.umin.i64(i64, i64) #3 ; Function Attrs: nofree nounwind willreturn memory(argmem: read) -declare i32 @bcmp(ptr captures(none), ptr captures(none), i64) local_unnamed_addr #4 +declare i32 @bcmp(ptr captures(none), ptr captures(none), i64) local_unnamed_addr #3 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #5 +declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #4 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #5 +declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #4 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.umax.i64(i64, i64) #3 +declare i64 @llvm.umax.i64(i64, i64) #5 attributes #0 = { nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #3 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #4 = { nofree nounwind willreturn memory(argmem: read) } +attributes #4 = { nocallback nofree nosync nounwind willreturn memory(argmem: read) } attributes #5 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #6 = { nounwind } diff --git a/bench/openusd/optimized/faceSurface.cpp.ll b/bench/openusd/optimized/faceSurface.cpp.ll index 961f09cbff9..6e3bc567ebb 100644 --- a/bench/openusd/optimized/faceSurface.cpp.ll +++ b/bench/openusd/optimized/faceSurface.cpp.ll @@ -1179,9 +1179,9 @@ define noundef float @_ZN10OpenSubdiv6v3_6_03Bfr9fvar_plus21getDependentSharpnes %9 = getelementptr inbounds nuw i8, ptr %0, i64 154 %10 = load i16, ptr %9, align 2 %11 = sext i16 %10 to i32 - br i1 %.not.i.i.i.i, label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread46, label %23 + br i1 %.not.i.i.i.i, label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread47, label %23 -_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread46: ; preds = %2 +_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread47: ; preds = %2 %12 = sub nsw i32 %11, %5 %13 = getelementptr inbounds nuw i8, ptr %0, i64 2 %14 = load i16, ptr %13, align 2 @@ -1239,9 +1239,9 @@ _ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE. br i1 %44, label %39, label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread, !llvm.loop !34 _ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread.sink.split: ; preds = %24, %27 - %.sink86 = phi i32 [ %34, %27 ], [ %11, %24 ] + %.sink87 = phi i32 [ %34, %27 ], [ %11, %24 ] %.sink = phi ptr [ %29, %27 ], [ %26, %24 ] - %45 = shl nsw i32 %.sink86, 1 + %45 = shl nsw i32 %.sink87, 1 %46 = sext i32 %45 to i64 %47 = getelementptr inbounds i16, ptr %.sink, i64 %46 %48 = load i16, ptr %47, align 2 @@ -1249,7 +1249,7 @@ _ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE. br label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread _ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread: ; preds = %39, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread.sink.split, %35 - %.09.i.i45 = phi i32 [ %11, %35 ], [ %49, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread.sink.split ], [ %.0.i.i, %39 ] + %.09.i.i46 = phi i32 [ %11, %35 ], [ %49, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread.sink.split ], [ %.0.i.i, %39 ] %.in = getelementptr inbounds nuw i8, ptr %1, i64 4 %50 = load i16, ptr %.in, align 4 switch i16 %50, label %63 [ @@ -1277,31 +1277,31 @@ _ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE. %64 = icmp sgt i16 %50, 0 %65 = getelementptr inbounds nuw i8, ptr %0, i64 168 %66 = load ptr, ptr %65, align 8 - br i1 %64, label %.lr.ph.i.i28.preheader, label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread + br i1 %64, label %.lr.ph.i.i29.preheader, label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread -.lr.ph.i.i28.preheader: ; preds = %63 +.lr.ph.i.i29.preheader: ; preds = %63 %67 = zext nneg i16 %50 to i32 - br label %.lr.ph.i.i28 + br label %.lr.ph.i.i29 -.lr.ph.i.i28: ; preds = %.lr.ph.i.i28.preheader, %.lr.ph.i.i28 - %.014.i.i29 = phi i32 [ %.0.i.i32, %.lr.ph.i.i28 ], [ %11, %.lr.ph.i.i28.preheader ] - %.0813.i.i30 = phi i32 [ %72, %.lr.ph.i.i28 ], [ %67, %.lr.ph.i.i28.preheader ] - %68 = shl nsw i32 %.014.i.i29, 1 +.lr.ph.i.i29: ; preds = %.lr.ph.i.i29.preheader, %.lr.ph.i.i29 + %.014.i.i30 = phi i32 [ %.0.i.i33, %.lr.ph.i.i29 ], [ %11, %.lr.ph.i.i29.preheader ] + %.0813.i.i31 = phi i32 [ %72, %.lr.ph.i.i29 ], [ %67, %.lr.ph.i.i29.preheader ] + %68 = shl nsw i32 %.014.i.i30, 1 %69 = or disjoint i32 %68, 1 %70 = sext i32 %69 to i64 %71 = getelementptr inbounds i16, ptr %66, i64 %70 - %72 = add nsw i32 %.0813.i.i30, -1 - %.0.in.i.i31 = load i16, ptr %71, align 2 - %.0.i.i32 = sext i16 %.0.in.i.i31 to i32 - %73 = icmp samesign ugt i32 %.0813.i.i30, 1 - br i1 %73, label %.lr.ph.i.i28, label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread, !llvm.loop !35 + %72 = add nsw i32 %.0813.i.i31, -1 + %.0.in.i.i32 = load i16, ptr %71, align 2 + %.0.i.i33 = sext i16 %.0.in.i.i32 to i32 + %73 = icmp samesign ugt i32 %.0813.i.i31, 1 + br i1 %73, label %.lr.ph.i.i29, label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread, !llvm.loop !35 -74: ; preds = %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread46 +74: ; preds = %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread47 %75 = add nsw i32 %17, -1 - %.pre79 = add nsw i32 %15, -1 + %.pre80 = add nsw i32 %15, -1 br label %98 -76: ; preds = %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread46 +76: ; preds = %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE.exit.thread47 %77 = and i16 %7, 1 %.not6.i = icmp eq i16 %77, 0 %78 = add nsw i32 %15, -1 @@ -1309,37 +1309,37 @@ _ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex12GetFaceFirstERKNS1_16FaceVertexSubsetE. br label %98 _ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread.sink.split: ; preds = %51, %54 - %.sink93 = phi i32 [ %62, %54 ], [ %11, %51 ] - %.sink89 = phi ptr [ %56, %54 ], [ %53, %51 ] - %80 = shl nsw i32 %.sink93, 1 + %.sink94 = phi i32 [ %62, %54 ], [ %11, %51 ] + %.sink90 = phi ptr [ %56, %54 ], [ %53, %51 ] + %80 = shl nsw i32 %.sink94, 1 %81 = or disjoint i32 %80, 1 %82 = sext i32 %81 to i64 - %83 = getelementptr inbounds i16, ptr %.sink89, i64 %82 + %83 = getelementptr inbounds i16, ptr %.sink90, i64 %82 %84 = load i16, ptr %83, align 2 %85 = sext i16 %84 to i32 br label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread -_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread: ; preds = %.lr.ph.i.i28, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread.sink.split, %63 - %86 = phi ptr [ %66, %63 ], [ %.sink89, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread.sink.split ], [ %66, %.lr.ph.i.i28 ] - %.09.i.i2754 = phi i32 [ %11, %63 ], [ %85, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread.sink.split ], [ %.0.i.i32, %.lr.ph.i.i28 ] - %87 = shl nsw i32 %.09.i.i45, 1 +_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread: ; preds = %.lr.ph.i.i29, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread.sink.split, %63 + %86 = phi ptr [ %66, %63 ], [ %.sink90, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread.sink.split ], [ %66, %.lr.ph.i.i29 ] + %.09.i.i2855 = phi i32 [ %11, %63 ], [ %85, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread.sink.split ], [ %.0.i.i33, %.lr.ph.i.i29 ] + %87 = shl nsw i32 %.09.i.i46, 1 %88 = sext i32 %87 to i64 %89 = getelementptr inbounds i16, ptr %86, i64 %88 %90 = load i16, ptr %89, align 2 %91 = sext i16 %90 to i32 - %92 = shl nsw i32 %.09.i.i2754, 1 + %92 = shl nsw i32 %.09.i.i2855, 1 %93 = or disjoint i32 %92, 1 %94 = sext i32 %93 to i64 %95 = getelementptr inbounds i16, ptr %86, i64 %94 %96 = load i16, ptr %95, align 2 %97 = sext i16 %96 to i32 - %.phi.trans.insert77 = getelementptr inbounds nuw i8, ptr %0, i64 2 - %.pre78 = load i16, ptr %.phi.trans.insert77, align 2 - %.pre80 = sext i16 %.pre78 to i32 + %.phi.trans.insert78 = getelementptr inbounds nuw i8, ptr %0, i64 2 + %.pre79 = load i16, ptr %.phi.trans.insert78, align 2 + %.pre81 = sext i16 %.pre79 to i32 br label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceNextEi.exit 98: ; preds = %74, %76 - %.pre-phi = phi i32 [ %.pre79, %74 ], [ %78, %76 ] + %.pre-phi = phi i32 [ %.pre80, %74 ], [ %78, %76 ] %.0.i.ph = phi i32 [ %75, %74 ], [ %79, %76 ] %99 = icmp slt i32 %22, %.pre-phi br i1 %99, label %100, label %102 @@ -1355,13 +1355,13 @@ _ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.e br label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceNextEi.exit _ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceNextEi.exit: ; preds = %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread, %100, %102 - %.pre-phi81 = phi i32 [ %.pre80, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread ], [ %15, %100 ], [ %15, %102 ] - %105 = phi i16 [ %.pre78, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread ], [ %14, %100 ], [ %14, %102 ] - %.0.i66 = phi i32 [ %91, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread ], [ %.0.i.ph, %100 ], [ %.0.i.ph, %102 ] - %.09.i.i445164 = phi i32 [ %.09.i.i45, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread ], [ %17, %100 ], [ %17, %102 ] - %.0.i34 = phi i32 [ %97, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread ], [ %101, %100 ], [ %104, %102 ] - %.inv = icmp sgt i32 %.0.i66, -1 - %106 = tail call i32 @llvm.smax.i32(i32 %.0.i34, i32 -1) + %.pre-phi82 = phi i32 [ %.pre81, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread ], [ %15, %100 ], [ %15, %102 ] + %105 = phi i16 [ %.pre79, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread ], [ %14, %100 ], [ %14, %102 ] + %.0.i67 = phi i32 [ %91, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread ], [ %.0.i.ph, %100 ], [ %.0.i.ph, %102 ] + %.09.i.i455265 = phi i32 [ %.09.i.i46, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread ], [ %17, %100 ], [ %17, %102 ] + %.0.i35 = phi i32 [ %97, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceLastERKNS1_16FaceVertexSubsetE.exit.thread ], [ %101, %100 ], [ %104, %102 ] + %.inv = icmp sgt i32 %.0.i67, -1 + %106 = tail call i32 @llvm.smax.i32(i32 %.0.i35, i32 -1) %107 = icmp sgt i16 %105, 0 br i1 %107, label %.lr.ph, label %._crit_edge @@ -1369,86 +1369,86 @@ _ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceNextEi.exit: ; preds = %_ZNK10Op %108 = getelementptr inbounds nuw i8, ptr %0, i64 168 %109 = load ptr, ptr %108, align 8 %110 = and i16 %7, 1 - %.not6.i38 = icmp eq i16 %110, 0 - %111 = add nsw i32 %.pre-phi81, -1 - %112 = select i1 %.not6.i38, i32 %111, i32 -2147483648 + %.not6.i39 = icmp eq i16 %110, 0 + %111 = add nsw i32 %.pre-phi82, -1 + %112 = select i1 %.not6.i39, i32 %111, i32 -2147483648 %113 = getelementptr inbounds nuw i8, ptr %0, i64 8 %114 = load ptr, ptr %113, align 8 - %wide.trip.count75 = zext i32 %.pre-phi81 to i64 - br i1 %.not.i.i.i.i, label %.lr.ph.split.us.preheader, label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit39.preheader + %wide.trip.count76 = zext i32 %.pre-phi82 to i64 + br i1 %.not.i.i.i.i, label %.lr.ph.split.us.preheader, label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit40.preheader -_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit39.preheader: ; preds = %.lr.ph +_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit40.preheader: ; preds = %.lr.ph %115 = zext i32 %106 to i64 - %116 = zext i32 %.09.i.i445164 to i64 - br label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit39 + %116 = zext i32 %.09.i.i455265 to i64 + br label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit40 .lr.ph.split.us.preheader: ; preds = %.lr.ph - %117 = zext i32 %.09.i.i445164 to i64 + %117 = zext i32 %.09.i.i455265 to i64 %118 = zext i32 %106 to i64 br label %.lr.ph.split.us .lr.ph.split.us: ; preds = %.lr.ph.split.us.preheader, %126 - %indvars.iv72 = phi i64 [ 0, %.lr.ph.split.us.preheader ], [ %indvars.iv.next73, %126 ] - %.04268.us = phi float [ 0.000000e+00, %.lr.ph.split.us.preheader ], [ %.1.us, %126 ] - %.not.i37.us = icmp eq i64 %indvars.iv72, 0 - %119 = trunc i64 %indvars.iv72 to i32 + %indvars.iv73 = phi i64 [ 0, %.lr.ph.split.us.preheader ], [ %indvars.iv.next74, %126 ] + %.04369.us = phi float [ 0.000000e+00, %.lr.ph.split.us.preheader ], [ %.1.us, %126 ] + %.not.i38.us = icmp eq i64 %indvars.iv73, 0 + %119 = trunc i64 %indvars.iv73 to i32 %120 = add i32 %119, -1 - %.0.i36.us = select i1 %.not.i37.us, i32 %112, i32 %120 - %121 = icmp slt i32 %.0.i36.us, 0 - %.not23.us = icmp eq i64 %indvars.iv72, %117 - %.not.us = select i1 %.inv, i1 %.not23.us, i1 false + %.0.i37.us = select i1 %.not.i38.us, i32 %112, i32 %120 + %121 = icmp slt i32 %.0.i37.us, 0 + %.not24.us = icmp eq i64 %indvars.iv73, %117 + %.not.us = select i1 %.inv, i1 %.not24.us, i1 false %or.cond.us = select i1 %121, i1 true, i1 %.not.us - %.not24.us = icmp eq i64 %indvars.iv72, %118 - %or.cond25.us = select i1 %or.cond.us, i1 true, i1 %.not24.us - br i1 %or.cond25.us, label %126, label %122 + %.not25.us = icmp eq i64 %indvars.iv73, %118 + %or.cond26.us = select i1 %or.cond.us, i1 true, i1 %.not25.us + br i1 %or.cond26.us, label %126, label %122 122: ; preds = %.lr.ph.split.us - %.idx = shl nuw nsw i64 %indvars.iv72, 3 + %.idx = shl nuw nsw i64 %indvars.iv73, 3 %123 = getelementptr inbounds nuw i8, ptr %114, i64 %.idx %124 = load float, ptr %123, align 4 - %125 = fcmp olt float %.04268.us, %124 - %.sroa.speculated.us = select i1 %125, float %124, float %.04268.us + %125 = fcmp olt float %.04369.us, %124 + %.sroa.speculated.us = select i1 %125, float %124, float %.04369.us br label %126 126: ; preds = %122, %.lr.ph.split.us - %.1.us = phi float [ %.04268.us, %.lr.ph.split.us ], [ %.sroa.speculated.us, %122 ] - %indvars.iv.next73 = add nuw nsw i64 %indvars.iv72, 1 - %exitcond76.not = icmp eq i64 %indvars.iv.next73, %wide.trip.count75 - br i1 %exitcond76.not, label %._crit_edge, label %.lr.ph.split.us, !llvm.loop !36 - -_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit39: ; preds = %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit39.preheader, %135 - %indvars.iv = phi i64 [ 0, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit39.preheader ], [ %indvars.iv.next, %135 ] - %.04268 = phi float [ 0.000000e+00, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit39.preheader ], [ %.1, %135 ] + %.1.us = phi float [ %.04369.us, %.lr.ph.split.us ], [ %.sroa.speculated.us, %122 ] + %indvars.iv.next74 = add nuw nsw i64 %indvars.iv73, 1 + %exitcond77.not = icmp eq i64 %indvars.iv.next74, %wide.trip.count76 + br i1 %exitcond77.not, label %._crit_edge, label %.lr.ph.split.us, !llvm.loop !36 + +_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit40: ; preds = %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit40.preheader, %135 + %indvars.iv = phi i64 [ 0, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit40.preheader ], [ %indvars.iv.next, %135 ] + %.04369 = phi float [ 0.000000e+00, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit40.preheader ], [ %.1, %135 ] %127 = shl nuw nsw i64 %indvars.iv, 1 %128 = getelementptr inbounds nuw i16, ptr %109, i64 %127 %129 = load i16, ptr %128, align 2 %130 = icmp slt i16 %129, 0 - %.not23 = icmp eq i64 %indvars.iv, %116 - %.not = select i1 %.inv, i1 %.not23, i1 false + %.not24 = icmp eq i64 %indvars.iv, %116 + %.not = select i1 %.inv, i1 %.not24, i1 false %or.cond = select i1 %130, i1 true, i1 %.not - %.not24 = icmp eq i64 %indvars.iv, %115 - %or.cond25 = select i1 %or.cond, i1 true, i1 %.not24 - br i1 %or.cond25, label %135, label %131 + %.not25 = icmp eq i64 %indvars.iv, %115 + %or.cond26 = select i1 %or.cond, i1 true, i1 %.not25 + br i1 %or.cond26, label %135, label %131 -131: ; preds = %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit39 +131: ; preds = %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit40 %132 = getelementptr inbounds nuw float, ptr %114, i64 %127 %133 = load float, ptr %132, align 4 - %134 = fcmp olt float %.04268, %133 - %.sroa.speculated = select i1 %134, float %133, float %.04268 + %134 = fcmp olt float %.04369, %133 + %.sroa.speculated = select i1 %134, float %133, float %.04369 br label %135 -135: ; preds = %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit39, %131 - %.1 = phi float [ %.04268, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit39 ], [ %.sroa.speculated, %131 ] +135: ; preds = %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit40, %131 + %.1 = phi float [ %.04369, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit40 ], [ %.sroa.speculated, %131 ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count75 - br i1 %exitcond.not, label %._crit_edge, label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit39, !llvm.loop !36 + %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count76 + br i1 %exitcond.not, label %._crit_edge, label %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex15GetFacePreviousEi.exit40, !llvm.loop !36 ._crit_edge: ; preds = %135, %126, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceNextEi.exit - %.042.lcssa = phi float [ 0.000000e+00, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceNextEi.exit ], [ %.1.us, %126 ], [ %.1, %135 ] + %.043.lcssa = phi float [ 0.000000e+00, %_ZNK10OpenSubdiv6v3_6_03Bfr10FaceVertex11GetFaceNextEi.exit ], [ %.1.us, %126 ], [ %.1, %135 ] %136 = getelementptr inbounds nuw i8, ptr %0, i64 4 %137 = load float, ptr %136, align 4 - %138 = fcmp ogt float %.042.lcssa, %137 - %139 = select i1 %138, float %.042.lcssa, float 0.000000e+00 + %138 = fcmp ogt float %.043.lcssa, %137 + %139 = select i1 %138, float %.043.lcssa, float 0.000000e+00 ret float %139 } diff --git a/bench/php/optimized/pcre2_study.ll b/bench/php/optimized/pcre2_study.ll index 750b6b082c2..b965ca29ab7 100644 --- a/bench/php/optimized/pcre2_study.ll +++ b/bench/php/optimized/pcre2_study.ll @@ -47,7 +47,7 @@ define hidden range(i32 0, 4) i32 @_pcre2_study_8(ptr noundef %0) local_unnamed_ store i32 0, ptr %3, align 4 %24 = call fastcc i32 @set_start_bits(ptr noundef nonnull %0, ptr noundef nonnull %17, i32 noundef %.lobit, i32 noundef %.lobit86, ptr noundef %3) switch i32 %24, label %._crit_edge [ - i32 3, label %182 + i32 3, label %183 i32 1, label %25 ] @@ -389,13 +389,13 @@ define hidden range(i32 0, 4) i32 @_pcre2_study_8(ptr noundef %0) local_unnamed_ %168 = phi i32 [ %.pre, %._crit_edge ], [ %166, %.loopexit ], [ %19, %1 ] %169 = and i32 %168, 8396800 %170 = icmp eq i32 %169, 0 - br i1 %170, label %171, label %182 + br i1 %170, label %171, label %183 171: ; preds = %167 %172 = getelementptr inbounds nuw i8, ptr %0, i64 130 %173 = load i16, ptr %172, align 2 %174 = icmp ult i16 %173, 129 - br i1 %174, label %175, label %182 + br i1 %174, label %175, label %183 175: ; preds = %171 store i32 0, ptr %4, align 16 @@ -411,12 +411,12 @@ define hidden range(i32 0, 4) i32 @_pcre2_study_8(ptr noundef %0) local_unnamed_ switch.lookup: ; preds = %175 %switch.tableidx = add nsw i32 %176, 3 - %181 = sext i32 %switch.tableidx to i64 - %switch.gep = getelementptr inbounds [3 x i32], ptr @switch.table._pcre2_study_8, i64 0, i64 %181 + %182 = sext i32 %switch.tableidx to i64 + %switch.gep = getelementptr inbounds [3 x i32], ptr @switch.table._pcre2_study_8, i64 0, i64 %182 %switch.load = load i32, ptr %switch.gep, align 4 - br label %182 + br label %183 -182: ; preds = %167, %171, %178, %switch.lookup, %22 +183: ; preds = %167, %171, %178, %switch.lookup, %22 %.0 = phi i32 [ 1, %22 ], [ %switch.load, %switch.lookup ], [ 0, %178 ], [ 0, %171 ], [ 0, %167 ] ret i32 %.0 } diff --git a/bench/qemu/optimized/fdt.c.ll b/bench/qemu/optimized/fdt.c.ll index 882a2b1cfb5..33e29dea739 100644 --- a/bench/qemu/optimized/fdt.c.ll +++ b/bench/qemu/optimized/fdt.c.ll @@ -821,13 +821,13 @@ if.end.i.i: ; preds = %if.then.i fdt_check_node_offset_.exit.thread.i: ; preds = %if.end.i.i, %if.then.i call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %offset.addr.i.i) - br label %if.then11.i + br label %fdt_next_node.exit fdt_check_node_offset_.exit.i: ; preds = %if.end.i.i %1 = load i32, ptr %offset.addr.i.i, align 4 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %offset.addr.i.i) %cmp1.i = icmp slt i32 %1, 0 - br i1 %cmp1.i, label %if.then11.i, label %do.body.i.preheader + br i1 %cmp1.i, label %fdt_next_node.exit, label %do.body.i.preheader do.body.i.preheader: ; preds = %fdt_check_node_offset_.exit.i, %entry %.ph = phi i32 [ 0, %entry ], [ %1, %fdt_check_node_offset_.exit.i ] @@ -846,17 +846,17 @@ do.body.backedge.i: ; preds = %do.body.i %.pre.i = load i32, ptr %nextoffset.i, align 4 br label %do.body.i, !llvm.loop !7 -fdt_next_node.exit: ; preds = %do.body.i +if.then11.i: ; preds = %do.body.i call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %nextoffset.i) %3 = tail call i32 @llvm.smax.i32(i32 %2, i32 -1) br label %4 -if.then11.i: ; preds = %do.body.i, %do.body.i, %fdt_check_node_offset_.exit.i, %fdt_check_node_offset_.exit.thread.i +fdt_next_node.exit: ; preds = %do.body.i, %do.body.i, %fdt_check_node_offset_.exit.i, %fdt_check_node_offset_.exit.thread.i call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %nextoffset.i) br label %4 -4: ; preds = %fdt_next_node.exit, %if.then11.i - %5 = phi i32 [ -1, %if.then11.i ], [ %3, %fdt_next_node.exit ] +4:; preds = %fdt_next_node.exit, %if.then11.i + %5 = phi i32 [ -1, %if.then11.i ], [ %3, %if.then11.i ] ret i32 %5 } diff --git a/bench/qemu/optimized/hw_block_pflash_cfi01.c.ll b/bench/qemu/optimized/hw_block_pflash_cfi01.c.ll index bc8964791f2..e4b921ee933 100644 --- a/bench/qemu/optimized/hw_block_pflash_cfi01.c.ll +++ b/bench/qemu/optimized/hw_block_pflash_cfi01.c.ll @@ -153,7 +153,7 @@ target triple = "x86_64-unknown-linux-gnu" ; Function Attrs: nounwind sspstrong uwtable define internal void @do_qemu_init_pflash_cfi01_register_types() #0 { entry: - tail call void @register_module_init(ptr noundef nonnull @pflash_cfi01_register_types, i32 noundef 3) #13 + tail call void @register_module_init(ptr noundef nonnull @pflash_cfi01_register_types, i32 noundef 3) #12 ret void } @@ -162,19 +162,19 @@ declare void @register_module_init(ptr noundef, i32 noundef) local_unnamed_addr ; Function Attrs: nounwind sspstrong uwtable define internal void @pflash_cfi01_register_types() #0 { entry: - %call = tail call ptr @type_register_static(ptr noundef nonnull @pflash_cfi01_info) #13 + %call = tail call ptr @type_register_static(ptr noundef nonnull @pflash_cfi01_info) #12 ret void } ; Function Attrs: nounwind sspstrong uwtable define dso_local ptr @pflash_cfi01_register(i64 noundef %base, ptr noundef %name, i64 noundef %size, ptr noundef %blk, i32 noundef %sector_len, i32 noundef %bank_width, i16 noundef zeroext %id0, i16 noundef zeroext %id1, i16 noundef zeroext %id2, i16 noundef zeroext %id3, i32 noundef %be) local_unnamed_addr #0 { entry: - %call = tail call ptr @qdev_new(ptr noundef nonnull @.str) #13 + %call = tail call ptr @qdev_new(ptr noundef nonnull @.str) #12 %tobool.not = icmp eq ptr %blk, null br i1 %tobool.not, label %if.end, label %if.then if.then: ; preds = %entry - tail call void @qdev_prop_set_drive(ptr noundef %call, ptr noundef nonnull @.str.1, ptr noundef nonnull %blk) #13 + tail call void @qdev_prop_set_drive(ptr noundef %call, ptr noundef nonnull @.str.1, ptr noundef nonnull %blk) #12 br label %if.end if.end: ; preds = %if.then, %entry @@ -185,27 +185,27 @@ if.end: ; preds = %if.then, %entry br i1 %cmp, label %if.end3, label %if.else if.else: ; preds = %if.end - tail call void @__assert_fail(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, i32 noundef 970, ptr noundef nonnull @__PRETTY_FUNCTION__.pflash_cfi01_register) #14 + tail call void @__assert_fail(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, i32 noundef 970, ptr noundef nonnull @__PRETTY_FUNCTION__.pflash_cfi01_register) #13 unreachable if.end3: ; preds = %if.end %conv5 = trunc i64 %div to i32 - tail call void @qdev_prop_set_uint32(ptr noundef %call, ptr noundef nonnull @.str.4, i32 noundef %conv5) #13 - tail call void @qdev_prop_set_uint64(ptr noundef %call, ptr noundef nonnull @.str.5, i64 noundef %conv) #13 + tail call void @qdev_prop_set_uint32(ptr noundef %call, ptr noundef nonnull @.str.4, i32 noundef %conv5) #12 + tail call void @qdev_prop_set_uint64(ptr noundef %call, ptr noundef nonnull @.str.5, i64 noundef %conv) #12 %conv7 = trunc i32 %bank_width to i8 - tail call void @qdev_prop_set_uint8(ptr noundef %call, ptr noundef nonnull @.str.6, i8 noundef zeroext %conv7) #13 + tail call void @qdev_prop_set_uint8(ptr noundef %call, ptr noundef nonnull @.str.6, i8 noundef zeroext %conv7) #12 %tobool8 = icmp ne i32 %be, 0 - tail call void @qdev_prop_set_bit(ptr noundef %call, ptr noundef nonnull @.str.7, i1 noundef zeroext %tobool8) #13 - tail call void @qdev_prop_set_uint16(ptr noundef %call, ptr noundef nonnull @.str.8, i16 noundef zeroext %id0) #13 - tail call void @qdev_prop_set_uint16(ptr noundef %call, ptr noundef nonnull @.str.9, i16 noundef zeroext %id1) #13 - tail call void @qdev_prop_set_uint16(ptr noundef %call, ptr noundef nonnull @.str.10, i16 noundef zeroext %id2) #13 - tail call void @qdev_prop_set_uint16(ptr noundef %call, ptr noundef nonnull @.str.11, i16 noundef zeroext %id3) #13 - tail call void @qdev_prop_set_string(ptr noundef %call, ptr noundef nonnull @.str.12, ptr noundef %name) #13 - %call.i = tail call ptr @object_dynamic_cast_assert(ptr noundef %call, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.81, i32 noundef 20, ptr noundef nonnull @__func__.SYS_BUS_DEVICE) #13 - %call11 = tail call zeroext i1 @sysbus_realize_and_unref(ptr noundef %call.i, ptr noundef nonnull @error_fatal) #13 - %call.i17 = tail call ptr @object_dynamic_cast_assert(ptr noundef %call, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.81, i32 noundef 20, ptr noundef nonnull @__func__.SYS_BUS_DEVICE) #13 - tail call void @sysbus_mmio_map(ptr noundef %call.i17, i32 noundef 0, i64 noundef %base) #13 - %call.i18 = tail call ptr @object_dynamic_cast_assert(ptr noundef %call, ptr noundef nonnull @.str, ptr noundef nonnull @.str.82, i32 noundef 12, ptr noundef nonnull @__func__.PFLASH_CFI01) #13 + tail call void @qdev_prop_set_bit(ptr noundef %call, ptr noundef nonnull @.str.7, i1 noundef zeroext %tobool8) #12 + tail call void @qdev_prop_set_uint16(ptr noundef %call, ptr noundef nonnull @.str.8, i16 noundef zeroext %id0) #12 + tail call void @qdev_prop_set_uint16(ptr noundef %call, ptr noundef nonnull @.str.9, i16 noundef zeroext %id1) #12 + tail call void @qdev_prop_set_uint16(ptr noundef %call, ptr noundef nonnull @.str.10, i16 noundef zeroext %id2) #12 + tail call void @qdev_prop_set_uint16(ptr noundef %call, ptr noundef nonnull @.str.11, i16 noundef zeroext %id3) #12 + tail call void @qdev_prop_set_string(ptr noundef %call, ptr noundef nonnull @.str.12, ptr noundef %name) #12 + %call.i = tail call ptr @object_dynamic_cast_assert(ptr noundef %call, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.81, i32 noundef 20, ptr noundef nonnull @__func__.SYS_BUS_DEVICE) #12 + %call11 = tail call zeroext i1 @sysbus_realize_and_unref(ptr noundef %call.i, ptr noundef nonnull @error_fatal) #12 + %call.i17 = tail call ptr @object_dynamic_cast_assert(ptr noundef %call, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.81, i32 noundef 20, ptr noundef nonnull @__func__.SYS_BUS_DEVICE) #12 + tail call void @sysbus_mmio_map(ptr noundef %call.i17, i32 noundef 0, i64 noundef %base) #12 + %call.i18 = tail call ptr @object_dynamic_cast_assert(ptr noundef %call, ptr noundef nonnull @.str, ptr noundef nonnull @.str.82, i32 noundef 12, ptr noundef nonnull @__func__.PFLASH_CFI01) #12 ret ptr %call.i18 } @@ -255,25 +255,25 @@ entry: br i1 %tobool.not, label %return, label %if.end if.end: ; preds = %entry - %call = call ptr @loc_push_none(ptr noundef nonnull %loc) #13 + %call = call ptr @loc_push_none(ptr noundef nonnull %loc) #12 %opts = getelementptr inbounds nuw i8, ptr %dinfo, i64 24 %0 = load ptr, ptr %opts, align 8 - call void @qemu_opts_loc_restore(ptr noundef %0) #13 + call void @qemu_opts_loc_restore(ptr noundef %0) #12 %blk = getelementptr inbounds nuw i8, ptr %fl, i64 816 %1 = load ptr, ptr %blk, align 16 %tobool1.not = icmp eq ptr %1, null br i1 %tobool1.not, label %if.end3, label %if.then2 if.then2: ; preds = %if.end - call void (ptr, ...) @error_report(ptr noundef nonnull @.str.13) #13 - call void @exit(i32 noundef 1) #15 + call void (ptr, ...) @error_report(ptr noundef nonnull @.str.13) #12 + call void @exit(i32 noundef 1) #14 unreachable if.end3: ; preds = %if.end - %call.i = call ptr @object_dynamic_cast_assert(ptr noundef nonnull %fl, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.16, i32 noundef 77, ptr noundef nonnull @__func__.DEVICE) #13 - %call5 = call ptr @blk_by_legacy_dinfo(ptr noundef nonnull %dinfo) #13 - %call6 = call zeroext i1 @qdev_prop_set_drive_err(ptr noundef %call.i, ptr noundef nonnull @.str.1, ptr noundef %call5, ptr noundef nonnull @error_fatal) #13 - %call7 = call ptr @loc_pop(ptr noundef nonnull %loc) #13 + %call.i = call ptr @object_dynamic_cast_assert(ptr noundef nonnull %fl, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.16, i32 noundef 77, ptr noundef nonnull @__func__.DEVICE) #12 + %call5 = call ptr @blk_by_legacy_dinfo(ptr noundef nonnull %dinfo) #12 + %call6 = call zeroext i1 @qdev_prop_set_drive_err(ptr noundef %call.i, ptr noundef nonnull @.str.1, ptr noundef %call5, ptr noundef nonnull @error_fatal) #12 + %call7 = call ptr @loc_pop(ptr noundef nonnull %loc) #12 br label %return return: ; preds = %entry, %if.end3 @@ -300,12 +300,12 @@ declare ptr @type_register_static(ptr noundef) local_unnamed_addr #1 ; Function Attrs: nounwind sspstrong uwtable define internal void @pflash_cfi01_class_init(ptr noundef %klass, ptr readnone captures(none) %data) #0 { entry: - %call.i = tail call ptr @object_class_dynamic_cast_assert(ptr noundef %klass, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.16, i32 noundef 77, ptr noundef nonnull @__func__.DEVICE_CLASS) #13 + %call.i = tail call ptr @object_class_dynamic_cast_assert(ptr noundef %klass, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.16, i32 noundef 77, ptr noundef nonnull @__func__.DEVICE_CLASS) #12 %reset = getelementptr inbounds nuw i8, ptr %call.i, i64 136 store ptr @pflash_cfi01_system_reset, ptr %reset, align 8 %realize = getelementptr inbounds nuw i8, ptr %call.i, i64 144 store ptr @pflash_cfi01_realize, ptr %realize, align 8 - tail call void @device_class_set_props(ptr noundef %call.i, ptr noundef nonnull @pflash_cfi01_properties) #13 + tail call void @device_class_set_props(ptr noundef %call.i, ptr noundef nonnull @pflash_cfi01_properties) #12 %vmsd = getelementptr inbounds nuw i8, ptr %call.i, i64 160 store ptr @vmstate_pflash, ptr %vmsd, align 8 %categories = getelementptr inbounds nuw i8, ptr %call.i, i64 96 @@ -319,7 +319,7 @@ entry: define internal void @pflash_cfi01_system_reset(ptr noundef %dev) #0 { entry: %_now.i.i = alloca %struct.timeval, align 8 - %call.i = tail call ptr @object_dynamic_cast_assert(ptr noundef %dev, ptr noundef nonnull @.str, ptr noundef nonnull @.str.82, i32 noundef 12, ptr noundef nonnull @__func__.PFLASH_CFI01) #13 + %call.i = tail call ptr @object_dynamic_cast_assert(ptr noundef %dev, ptr noundef nonnull @.str, ptr noundef nonnull @.str.82, i32 noundef 12, ptr noundef nonnull @__func__.PFLASH_CFI01) #12 %name = getelementptr inbounds nuw i8, ptr %call.i, i64 1232 %0 = load ptr, ptr %name, align 16 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %_now.i.i) @@ -342,16 +342,16 @@ if.then.i.i: ; preds = %land.lhs.true5.i.i br i1 %tobool7.i.i, label %if.then8.i.i, label %if.else.i.i if.then8.i.i: ; preds = %if.then.i.i - %call9.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i, ptr noundef null) #13 - %call10.i.i = tail call i32 @qemu_get_thread_id() #13 + %call9.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i, ptr noundef null) #12 + %call10.i.i = tail call i32 @qemu_get_thread_id() #12 %5 = load i64, ptr %_now.i.i, align 8 %tv_usec.i.i = getelementptr inbounds nuw i8, ptr %_now.i.i, i64 8 %6 = load i64, ptr %tv_usec.i.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.17, i32 noundef %call10.i.i, i64 noundef %5, i64 noundef %6, ptr noundef %0) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.17, i32 noundef %call10.i.i, i64 noundef %5, i64 noundef %6, ptr noundef %0) #12 br label %trace_pflash_reset.exit if.else.i.i: ; preds = %if.then.i.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.18, ptr noundef %0) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.18, ptr noundef %0) #12 br label %trace_pflash_reset.exit trace_pflash_reset.exit: ; preds = %entry, %land.lhs.true5.i.i, %if.then8.i.i, %if.else.i.i @@ -361,7 +361,7 @@ trace_pflash_reset.exit: ; preds = %entry, %land.lhs.tr %wcycle = getelementptr inbounds nuw i8, ptr %call.i, i64 848 store i8 0, ptr %wcycle, align 16 %mem = getelementptr inbounds nuw i8, ptr %call.i, i64 960 - tail call void @memory_region_rom_device_set_romd(ptr noundef nonnull %mem, i1 noundef zeroext true) #13 + tail call void @memory_region_rom_device_set_romd(ptr noundef nonnull %mem, i1 noundef zeroext true) #12 %status = getelementptr inbounds nuw i8, ptr %call.i, i64 851 store i8 -128, ptr %status, align 1 ret void @@ -378,14 +378,14 @@ entry: %cmp = icmp eq ptr %errp, @error_fatal %or.cond = or i1 %tobool, %cmp %spec.select = select i1 %or.cond, ptr %_auto_errp_prop, ptr %errp - %call.i = tail call ptr @object_dynamic_cast_assert(ptr noundef %dev, ptr noundef nonnull @.str, ptr noundef nonnull @.str.82, i32 noundef 12, ptr noundef nonnull @__func__.PFLASH_CFI01) #13 + %call.i = tail call ptr @object_dynamic_cast_assert(ptr noundef %dev, ptr noundef nonnull @.str, ptr noundef nonnull @.str.82, i32 noundef 12, ptr noundef nonnull @__func__.PFLASH_CFI01) #12 %sector_len = getelementptr inbounds nuw i8, ptr %call.i, i64 832 %0 = load i64, ptr %sector_len, align 16 %cmp3 = icmp eq i64 %0, 0 br i1 %cmp3, label %if.then4, label %if.end5 if.then4: ; preds = %entry - call void (ptr, ptr, i32, ptr, ptr, ...) @error_setg_internal(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.3, i32 noundef 806, ptr noundef nonnull @__func__.pflash_cfi01_realize, ptr noundef nonnull @.str.19) #13 + call void (ptr, ptr, i32, ptr, ptr, ...) @error_setg_internal(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.3, i32 noundef 806, ptr noundef nonnull @__func__.pflash_cfi01_realize, ptr noundef nonnull @.str.19) #12 br label %cleanup if.end5: ; preds = %entry @@ -395,7 +395,7 @@ if.end5: ; preds = %entry br i1 %cmp6, label %if.then7, label %if.end8 if.then7: ; preds = %if.end5 - call void (ptr, ptr, i32, ptr, ptr, ...) @error_setg_internal(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.3, i32 noundef 810, ptr noundef nonnull @__func__.pflash_cfi01_realize, ptr noundef nonnull @.str.20) #13 + call void (ptr, ptr, i32, ptr, ptr, ...) @error_setg_internal(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.3, i32 noundef 810, ptr noundef nonnull @__func__.pflash_cfi01_realize, ptr noundef nonnull @.str.20) #12 br label %cleanup if.end8: ; preds = %if.end5 @@ -405,38 +405,38 @@ if.end8: ; preds = %if.end5 br i1 %cmp9, label %if.then10, label %if.end11 if.then10: ; preds = %if.end8 - call void (ptr, ptr, i32, ptr, ptr, ...) @error_setg_internal(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.3, i32 noundef 814, ptr noundef nonnull @__func__.pflash_cfi01_realize, ptr noundef nonnull @.str.21) #13 + call void (ptr, ptr, i32, ptr, ptr, ...) @error_setg_internal(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.3, i32 noundef 814, ptr noundef nonnull @__func__.pflash_cfi01_realize, ptr noundef nonnull @.str.21) #12 br label %cleanup if.end11: ; preds = %if.end8 %conv = zext i32 %1 to i64 %mul = mul i64 %0, %conv %mem = getelementptr inbounds nuw i8, ptr %call.i, i64 960 - call void @memory_region_init_rom_device(ptr noundef nonnull %mem, ptr noundef %dev, ptr noundef nonnull @pflash_cfi01_ops, ptr noundef nonnull %call.i, ptr noundef nonnull %2, i64 noundef %mul, ptr noundef nonnull %spec.select) #13 + call void @memory_region_init_rom_device(ptr noundef nonnull %mem, ptr noundef %dev, ptr noundef nonnull @pflash_cfi01_ops, ptr noundef nonnull %call.i, ptr noundef nonnull %2, i64 noundef %mul, ptr noundef nonnull %spec.select) #12 %3 = load ptr, ptr %spec.select, align 8 %tobool15.not = icmp eq ptr %3, null br i1 %tobool15.not, label %if.end17, label %cleanup if.end17: ; preds = %if.end11 - %call19 = call ptr @memory_region_get_ram_ptr(ptr noundef nonnull %mem) #13 + %call19 = call ptr @memory_region_get_ram_ptr(ptr noundef nonnull %mem) #12 %storage = getelementptr inbounds nuw i8, ptr %call.i, i64 1240 store ptr %call19, ptr %storage, align 8 - %call.i46 = call ptr @object_dynamic_cast_assert(ptr noundef %dev, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.81, i32 noundef 20, ptr noundef nonnull @__func__.SYS_BUS_DEVICE) #13 - call void @sysbus_init_mmio(ptr noundef %call.i46, ptr noundef nonnull %mem) #13 + %call.i46 = call ptr @object_dynamic_cast_assert(ptr noundef %dev, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.81, i32 noundef 20, ptr noundef nonnull @__func__.SYS_BUS_DEVICE) #12 + call void @sysbus_init_mmio(ptr noundef %call.i46, ptr noundef nonnull %mem) #12 %blk = getelementptr inbounds nuw i8, ptr %call.i, i64 816 %4 = load ptr, ptr %blk, align 16 %tobool22.not = icmp eq ptr %4, null br i1 %tobool22.not, label %if.end37.thread, label %if.then23 if.then23: ; preds = %if.end17 - %call25 = call zeroext i1 @blk_supports_write_perm(ptr noundef nonnull %4) #13 + %call25 = call zeroext i1 @blk_supports_write_perm(ptr noundef nonnull %4) #12 %lnot = xor i1 %call25, true %ro = getelementptr inbounds nuw i8, ptr %call.i, i64 849 %frombool = zext i1 %lnot to i8 store i8 %frombool, ptr %ro, align 1 %conv29 = select i1 %call25, i64 3, i64 1 %5 = load ptr, ptr %blk, align 16 - %call31 = call i32 @blk_set_perm(ptr noundef %5, i64 noundef %conv29, i64 noundef 15, ptr noundef nonnull %spec.select) #13 + %call31 = call i32 @blk_set_perm(ptr noundef %5, i64 noundef %conv29, i64 noundef 15, ptr noundef nonnull %spec.select) #12 %cmp32 = icmp slt i32 %call31, 0 br i1 %cmp32, label %cleanup, label %if.end37 @@ -452,12 +452,12 @@ if.end37: ; preds = %if.then23 if.then40: ; preds = %if.end37 %6 = load ptr, ptr %storage, align 8 - %call43 = call zeroext i1 @blk_check_size_and_read_all(ptr noundef nonnull %.pr, ptr noundef %6, i64 noundef %mul, ptr noundef nonnull %spec.select) #13 + %call43 = call zeroext i1 @blk_check_size_and_read_all(ptr noundef nonnull %.pr, ptr noundef %6, i64 noundef %mul, ptr noundef nonnull %spec.select) #12 br i1 %call43, label %if.end48, label %if.then44 if.then44: ; preds = %if.then40 - %call.i47 = call ptr @object_dynamic_cast_assert(ptr noundef nonnull %call.i, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.16, i32 noundef 77, ptr noundef nonnull @__func__.DEVICE) #13 - call void @vmstate_unregister_ram(ptr noundef nonnull %mem, ptr noundef %call.i47) #13 + %call.i47 = call ptr @object_dynamic_cast_assert(ptr noundef nonnull %call.i, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.16, i32 noundef 77, ptr noundef nonnull @__func__.DEVICE) #12 + call void @vmstate_unregister_ram(ptr noundef nonnull %mem, ptr noundef %call.i47) #12 br label %cleanup if.end48: ; preds = %if.end37.thread, %if.then40, %if.end37 @@ -565,8 +565,8 @@ pflash_cfi01_fill_cfi_table.exit: ; preds = %if.then.i, %if.else %spec.select68.i = select i1 %cmp.i, i8 8, i8 11 %18 = getelementptr i8, ptr %call.i, i64 902 store i8 %spec.select68.i, ptr %18, align 2 - %19 = call i32 @llvm.umax.i32(i32 %cond.i, i32 1) - %spec.select.i = select i1 %tobool4.i, i32 1, i32 %19 + %cmp79.i = call i32 @llvm.umax.i32(i32 %cond.i, i32 1) + %or.cond.not.i = select i1 %tobool4.i, i32 1, i32 %cmp79.i %writeblock_size.i = getelementptr inbounds nuw i8, ptr %call.i, i64 952 %conv76.i = zext nneg i8 %spec.select68.i to i32 %storemerge.i = shl nuw nsw i32 %spec.select.i, %conv76.i @@ -611,7 +611,7 @@ pflash_cfi01_fill_cfi_table.exit: ; preds = %if.then.i, %if.else cleanup: ; preds = %if.then23, %if.end11, %pflash_cfi01_fill_cfi_table.exit, %if.then44, %if.then10, %if.then7, %if.then4 %_auto_errp_prop.val = load ptr, ptr %_auto_errp_prop, align 8 %_auto_errp_prop.val45 = load ptr, ptr %errp1, align 8 - call void @error_propagate(ptr noundef %_auto_errp_prop.val45, ptr noundef %_auto_errp_prop.val) #13 + call void @error_propagate(ptr noundef %_auto_errp_prop.val45, ptr noundef %_auto_errp_prop.val) #12 ret void } @@ -710,18 +710,18 @@ if.then.i.i.i: ; preds = %land.lhs.true5.i.i. br i1 %tobool7.i.i.i, label %if.then8.i.i.i, label %if.else.i.i.i if.then8.i.i.i: ; preds = %if.then.i.i.i - %call9.i.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i.i, ptr noundef null) #13 - %call10.i.i.i = tail call i32 @qemu_get_thread_id() #13 + %call9.i.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i.i, ptr noundef null) #12 + %call10.i.i.i = tail call i32 @qemu_get_thread_id() #12 %8 = load i64, ptr %_now.i.i.i, align 8 %tv_usec.i.i.i = getelementptr inbounds nuw i8, ptr %_now.i.i.i, i64 8 %9 = load i64, ptr %tv_usec.i.i.i, align 8 %conv11.i.i.i = zext i8 %2 to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.24, i32 noundef %call10.i.i.i, i64 noundef %8, i64 noundef %9, ptr noundef %3, i32 noundef %conv11.i.i.i) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.24, i32 noundef %call10.i.i.i, i64 noundef %8, i64 noundef %9, ptr noundef %3, i32 noundef %conv11.i.i.i) #12 br label %trace_pflash_read_unknown_state.exit.i if.else.i.i.i: ; preds = %if.then.i.i.i %conv12.i.i.i = zext i8 %2 to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.25, ptr noundef %3, i32 noundef %conv12.i.i.i) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.25, ptr noundef %3, i32 noundef %conv12.i.i.i) #12 br label %trace_pflash_read_unknown_state.exit.i trace_pflash_read_unknown_state.exit.i: ; preds = %if.else.i.i.i, %if.then8.i.i.i, %land.lhs.true5.i.i.i, %sw.default.i @@ -799,16 +799,16 @@ if.then.i.i83.i: ; preds = %land.lhs.true5.i.i8 br i1 %tobool7.i.i84.i, label %if.then8.i.i86.i, label %if.else.i.i85.i if.then8.i.i86.i: ; preds = %if.then.i.i83.i - %call9.i.i87.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i76.i, ptr noundef null) #13 - %call10.i.i88.i = tail call i32 @qemu_get_thread_id() #13 + %call9.i.i87.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i76.i, ptr noundef null) #12 + %call10.i.i88.i = tail call i32 @qemu_get_thread_id() #12 %17 = load i64, ptr %_now.i.i76.i, align 8 %tv_usec.i.i89.i = getelementptr inbounds nuw i8, ptr %_now.i.i76.i, i64 8 %18 = load i64, ptr %tv_usec.i.i89.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.26, i32 noundef %call10.i.i88.i, i64 noundef %17, i64 noundef %18, ptr noundef %12, i32 noundef %ret.2.i) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.26, i32 noundef %call10.i.i88.i, i64 noundef %17, i64 noundef %18, ptr noundef %12, i32 noundef %ret.2.i) #12 br label %trace_pflash_read_status.exit.i if.else.i.i85.i: ; preds = %if.then.i.i83.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.27, ptr noundef %12, i32 noundef %ret.2.i) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.27, ptr noundef %12, i32 noundef %ret.2.i) #12 br label %trace_pflash_read_status.exit.i trace_pflash_read_status.exit.i: ; preds = %if.else.i.i85.i, %if.then8.i.i86.i, %land.lhs.true5.i.i80.i, %if.end33.i @@ -947,17 +947,17 @@ if.then.i.i.i.i: ; preds = %land.lhs.true5.i.i. br i1 %tobool7.i.i.i.i, label %if.then8.i.i.i.i, label %if.else.i.i.i.i if.then8.i.i.i.i: ; preds = %if.then.i.i.i.i - %call9.i.i.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i.i.i, ptr noundef null) #13 - %call10.i.i.i.i = tail call i32 @qemu_get_thread_id() #13 + %call9.i.i.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i.i.i, ptr noundef null) #12 + %call10.i.i.i.i = tail call i32 @qemu_get_thread_id() #12 %40 = load i64, ptr %_now.i.i.i.i, align 8 %41 = load i64, ptr %tv_usec.i.i.i.i, align 8 %conv11.i.i.i.i = zext i16 %34 to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.28, i32 noundef %call10.i.i.i.i, i64 noundef %40, i64 noundef %41, ptr noundef %35, i32 noundef %conv11.i.i.i.i) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.28, i32 noundef %call10.i.i.i.i, i64 noundef %40, i64 noundef %41, ptr noundef %35, i32 noundef %conv11.i.i.i.i) #12 br label %trace_pflash_manufacturer_id.exit.i.i if.else.i.i.i.i: ; preds = %if.then.i.i.i.i %conv12.i.i.i.i = zext i16 %34 to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.29, ptr noundef %35, i32 noundef %conv12.i.i.i.i) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.29, ptr noundef %35, i32 noundef %conv12.i.i.i.i) #12 br label %trace_pflash_manufacturer_id.exit.i.i trace_pflash_manufacturer_id.exit.i.i: ; preds = %if.else.i.i.i.i, %if.then8.i.i.i.i, %land.lhs.true5.i.i.i.i, %sw.bb.i.i @@ -987,17 +987,17 @@ if.then.i.i28.i.i: ; preds = %land.lhs.true5.i.i2 br i1 %tobool7.i.i29.i.i, label %if.then8.i.i32.i.i, label %if.else.i.i30.i.i if.then8.i.i32.i.i: ; preds = %if.then.i.i28.i.i - %call9.i.i33.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i21.i.i, ptr noundef null) #13 - %call10.i.i34.i.i = tail call i32 @qemu_get_thread_id() #13 + %call9.i.i33.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i21.i.i, ptr noundef null) #12 + %call10.i.i34.i.i = tail call i32 @qemu_get_thread_id() #12 %48 = load i64, ptr %_now.i.i21.i.i, align 8 %49 = load i64, ptr %tv_usec.i.i35.i.i, align 8 %conv11.i.i36.i.i = zext i16 %42 to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.30, i32 noundef %call10.i.i34.i.i, i64 noundef %48, i64 noundef %49, ptr noundef %43, i32 noundef %conv11.i.i36.i.i) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.30, i32 noundef %call10.i.i34.i.i, i64 noundef %48, i64 noundef %49, ptr noundef %43, i32 noundef %conv11.i.i36.i.i) #12 br label %trace_pflash_device_id.exit.i.i if.else.i.i30.i.i: ; preds = %if.then.i.i28.i.i %conv12.i.i31.i.i = zext i16 %42 to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.31, ptr noundef %43, i32 noundef %conv12.i.i31.i.i) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.31, ptr noundef %43, i32 noundef %conv12.i.i31.i.i) #12 br label %trace_pflash_device_id.exit.i.i trace_pflash_device_id.exit.i.i: ; preds = %if.else.i.i30.i.i, %if.then8.i.i32.i.i, %land.lhs.true5.i.i25.i.i, %sw.bb7.i.i @@ -1026,15 +1026,15 @@ if.then.i.i44.i.i: ; preds = %land.lhs.true5.i.i4 br i1 %tobool7.i.i45.i.i, label %if.then8.i.i47.i.i, label %if.else.i.i46.i.i if.then8.i.i47.i.i: ; preds = %if.then.i.i44.i.i - %call9.i.i48.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i37.i.i, ptr noundef null) #13 - %call10.i.i49.i.i = tail call i32 @qemu_get_thread_id() #13 + %call9.i.i48.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i37.i.i, ptr noundef null) #12 + %call10.i.i49.i.i = tail call i32 @qemu_get_thread_id() #12 %55 = load i64, ptr %_now.i.i37.i.i, align 8 %56 = load i64, ptr %tv_usec.i.i50.i.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.32, i32 noundef %call10.i.i49.i.i, i64 noundef %55, i64 noundef %56, ptr noundef %50, i64 noundef %add79.i) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.32, i32 noundef %call10.i.i49.i.i, i64 noundef %55, i64 noundef %56, ptr noundef %50, i64 noundef %add79.i) #12 br label %trace_pflash_device_info.exit.i.i if.else.i.i46.i.i: ; preds = %if.then.i.i44.i.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.33, ptr noundef %50, i64 noundef %add79.i) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.33, ptr noundef %50, i64 noundef %add79.i) #12 br label %trace_pflash_device_info.exit.i.i trace_pflash_device_info.exit.i.i: ; preds = %if.else.i.i46.i.i, %if.then8.i.i47.i.i, %land.lhs.true5.i.i41.i.i, %sw.default.i.i @@ -1067,7 +1067,7 @@ for.body.i.i: ; preds = %if.then.i.i, %depos br i1 %cmp3.not.i.i.i, label %if.else.i.split.i.i, label %deposit32.exit.i.i if.else.i.split.i.i: ; preds = %if.then.i.i, %for.body.i.i - tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.deposit32) #14 + tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.deposit32) #13 unreachable deposit32.exit.i.i: ; preds = %for.body.i.i @@ -1092,7 +1092,7 @@ pflash_devid_query.exit.i: ; preds = %deposit32.exit.i.i, br i1 %or.cond8.i.i, label %if.else.i.i, label %deposit32.exit.i if.else.i.i: ; preds = %pflash_devid_query.exit.i - tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.deposit32) #14 + tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.deposit32) #13 unreachable deposit32.exit.i: ; preds = %pflash_devid_query.exit.i @@ -1228,15 +1228,15 @@ if.then.i.i.i126.i: ; preds = %land.lhs.true5.i.i. br i1 %tobool7.i.i.i127.i, label %if.then8.i.i.i129.i, label %if.else.i.i.i128.i if.then8.i.i.i129.i: ; preds = %if.then.i.i.i126.i - %call9.i.i.i130.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i.i93.i, ptr noundef null) #13 - %call10.i.i.i131.i = tail call i32 @qemu_get_thread_id() #13 + %call9.i.i.i130.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i.i93.i, ptr noundef null) #12 + %call10.i.i.i131.i = tail call i32 @qemu_get_thread_id() #12 %77 = load i64, ptr %_now.i.i.i93.i, align 8 %78 = load i64, ptr %tv_usec.i.i.i132.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.36, i32 noundef %call10.i.i.i131.i, i64 noundef %77, i64 noundef %78, ptr noundef %72, i32 noundef %conv3.i101.i, i32 noundef %conv1.i97.i) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.36, i32 noundef %call10.i.i.i131.i, i64 noundef %77, i64 noundef %78, ptr noundef %72, i32 noundef %conv3.i101.i, i32 noundef %conv1.i97.i) #12 br label %trace_pflash_unsupported_device_configuration.exit.i.i if.else.i.i.i128.i: ; preds = %if.then.i.i.i126.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.37, ptr noundef %72, i32 noundef %conv3.i101.i, i32 noundef %conv1.i97.i) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.37, ptr noundef %72, i32 noundef %conv3.i101.i, i32 noundef %conv1.i97.i) #12 br label %trace_pflash_unsupported_device_configuration.exit.i.i trace_pflash_unsupported_device_configuration.exit.i.i: ; preds = %if.else.i.i.i128.i, %if.then8.i.i.i129.i, %land.lhs.true5.i.i.i123.i, %if.then22.i.i @@ -1257,7 +1257,7 @@ for.body.i107.i: ; preds = %for.body.preheader. br i1 %exitcond.not.i.i, label %if.end34.i.i, label %for.body.i107.i, !llvm.loop !9 if.else.i.i118.i: ; preds = %for.body.preheader.i.i - tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.deposit32) #14 + tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.deposit32) #13 unreachable if.end34.i.i: ; preds = %for.body.i107.i, %if.end.i.i @@ -1290,7 +1290,7 @@ for.body49.i.i: ; preds = %deposit32.exit40.i. br i1 %cmp3.not.i31.i.i, label %if.else.i39.split.i.i, label %deposit32.exit40.i.i if.else.i39.split.i.i: ; preds = %for.cond44.preheader.i.i, %for.body49.i.i - tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.deposit32) #14 + tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.deposit32) #13 unreachable deposit32.exit40.i.i: ; preds = %for.body49.i.i @@ -1315,7 +1315,7 @@ pflash_cfi_query.exit.i: ; preds = %deposit32.exit40.i. br i1 %or.cond8.i138.i, label %if.else.i148.i, label %deposit32.exit149.i if.else.i148.i: ; preds = %pflash_cfi_query.exit.i - tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.deposit32) #14 + tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 470, ptr noundef nonnull @__PRETTY_FUNCTION__.deposit32) #13 unreachable deposit32.exit149.i: ; preds = %pflash_cfi_query.exit.i @@ -1360,20 +1360,20 @@ if.then.i.i157.i: ; preds = %land.lhs.true5.i.i1 br i1 %tobool7.i.i158.i, label %if.then8.i.i160.i, label %if.else.i.i159.i if.then8.i.i160.i: ; preds = %if.then.i.i157.i - %call9.i.i161.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i150.i, ptr noundef null) #13 - %call10.i.i162.i = tail call i32 @qemu_get_thread_id() #13 + %call9.i.i161.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i150.i, ptr noundef null) #12 + %call10.i.i162.i = tail call i32 @qemu_get_thread_id() #12 %87 = load i64, ptr %_now.i.i150.i, align 8 %tv_usec.i.i163.i = getelementptr inbounds nuw i8, ptr %_now.i.i150.i, i64 8 %88 = load i64, ptr %tv_usec.i.i163.i, align 8 %conv11.i.i164.i = zext i8 %81 to i32 %conv12.i.i165.i = zext i8 %82 to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.38, i32 noundef %call10.i.i162.i, i64 noundef %87, i64 noundef %88, ptr noundef %80, i64 noundef %addr, i32 noundef %len, i32 noundef %ret.0.i, i32 noundef %conv11.i.i164.i, i32 noundef %conv12.i.i165.i) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.38, i32 noundef %call10.i.i162.i, i64 noundef %87, i64 noundef %88, ptr noundef %80, i64 noundef %addr, i32 noundef %len, i32 noundef %ret.0.i, i32 noundef %conv11.i.i164.i, i32 noundef %conv12.i.i165.i) #12 br label %pflash_read.exit if.else.i.i159.i: ; preds = %if.then.i.i157.i %conv13.i.i.i = zext i8 %81 to i32 %conv14.i.i.i = zext i8 %82 to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.39, ptr noundef %80, i64 noundef %addr, i32 noundef %len, i32 noundef %ret.0.i, i32 noundef %conv13.i.i.i, i32 noundef %conv14.i.i.i) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.39, ptr noundef %80, i64 noundef %addr, i32 noundef %len, i32 noundef %ret.0.i, i32 noundef %conv13.i.i.i, i32 noundef %conv14.i.i.i) #12 br label %pflash_read.exit pflash_read.exit: ; preds = %sw.epilog135.i, %land.lhs.true5.i.i154.i, %if.then8.i.i160.i, %if.else.i.i159.i @@ -1434,18 +1434,18 @@ if.then.i.i.i: ; preds = %land.lhs.true5.i.i. br i1 %tobool7.i.i.i, label %if.then8.i.i.i, label %if.else.i.i.i if.then8.i.i.i: ; preds = %if.then.i.i.i - %call9.i.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i.i, ptr noundef null) #13 - %call10.i.i.i = tail call i32 @qemu_get_thread_id() #13 + %call9.i.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i.i, ptr noundef null) #12 + %call10.i.i.i = tail call i32 @qemu_get_thread_id() #12 %8 = load i64, ptr %_now.i.i.i, align 8 %tv_usec.i.i.i = getelementptr inbounds nuw i8, ptr %_now.i.i.i, i64 8 %9 = load i64, ptr %tv_usec.i.i.i, align 8 %conv11.i.i.i = zext i8 %3 to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.57, i32 noundef %call10.i.i.i, i64 noundef %8, i64 noundef %9, ptr noundef %2, i64 noundef %addr, i32 noundef %len, i32 noundef %conv, i32 noundef %conv11.i.i.i) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.57, i32 noundef %call10.i.i.i, i64 noundef %8, i64 noundef %9, ptr noundef %2, i64 noundef %addr, i32 noundef %len, i32 noundef %conv, i32 noundef %conv11.i.i.i) #12 br label %trace_pflash_io_write.exit.i if.else.i.i.i: ; preds = %if.then.i.i.i %conv12.i.i.i = zext i8 %3 to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.58, ptr noundef %2, i64 noundef %addr, i32 noundef %len, i32 noundef %conv, i32 noundef %conv12.i.i.i) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.58, ptr noundef %2, i64 noundef %addr, i32 noundef %len, i32 noundef %conv, i32 noundef %conv12.i.i.i) #12 br label %trace_pflash_io_write.exit.i trace_pflash_io_write.exit.i: ; preds = %if.else.i.i.i, %if.then8.i.i.i, %land.lhs.true5.i.i.i, %if.else @@ -1456,7 +1456,7 @@ trace_pflash_io_write.exit.i: ; preds = %if.else.i.i.i, %if. if.then.i: ; preds = %trace_pflash_io_write.exit.i %mem.i = getelementptr inbounds nuw i8, ptr %opaque, i64 960 - tail call void @memory_region_rom_device_set_romd(ptr noundef nonnull %mem.i, i1 noundef zeroext false) #13 + tail call void @memory_region_rom_device_set_romd(ptr noundef nonnull %mem.i, i1 noundef zeroext false) #12 %.pr.i = load i8, ptr %wcycle.i, align 16 br label %if.end.i @@ -1507,16 +1507,16 @@ if.then.i.i116.i: ; preds = %land.lhs.true5.i.i1 br i1 %tobool7.i.i117.i, label %if.then8.i.i119.i, label %if.else.i.i118.i if.then8.i.i119.i: ; preds = %if.then.i.i116.i - %call9.i.i120.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i109.i, ptr noundef null) #13 - %call10.i.i121.i = tail call i32 @qemu_get_thread_id() #13 + %call9.i.i120.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i109.i, ptr noundef null) #12 + %call10.i.i121.i = tail call i32 @qemu_get_thread_id() #12 %17 = load i64, ptr %_now.i.i109.i, align 8 %tv_usec.i.i122.i = getelementptr inbounds nuw i8, ptr %_now.i.i109.i, i64 8 %18 = load i64, ptr %tv_usec.i.i122.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.59, i32 noundef %call10.i.i121.i, i64 noundef %17, i64 noundef %18, ptr noundef %12, ptr noundef nonnull @.str.40) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.59, i32 noundef %call10.i.i121.i, i64 noundef %17, i64 noundef %18, ptr noundef %12, ptr noundef nonnull @.str.40) #12 br label %trace_pflash_write.exit.i if.else.i.i118.i: ; preds = %if.then.i.i116.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.60, ptr noundef %12, ptr noundef nonnull @.str.40) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.60, ptr noundef %12, ptr noundef nonnull @.str.40) #12 br label %trace_pflash_write.exit.i trace_pflash_write.exit.i: ; preds = %if.else.i.i118.i, %if.then8.i.i119.i, %land.lhs.true5.i.i113.i, %sw.bb6.i @@ -1602,7 +1602,7 @@ sw.bb37.i: ; preds = %sw.bb.i br i1 %cmp.i.not.i, label %do.end.i, label %if.then42.i if.then42.i: ; preds = %sw.bb37.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.47, ptr noundef nonnull @__func__.pflash_write) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.47, ptr noundef nonnull @__func__.pflash_write) #12 br label %do.end.i do.end.i: ; preds = %if.then42.i, %sw.bb37.i @@ -1665,16 +1665,16 @@ if.then.i.i130.i: ; preds = %land.lhs.true5.i.i1 br i1 %tobool7.i.i131.i, label %if.then8.i.i133.i, label %if.else.i.i132.i if.then8.i.i133.i: ; preds = %if.then.i.i130.i - %call9.i.i134.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i123.i, ptr noundef null) #13 - %call10.i.i135.i = tail call i32 @qemu_get_thread_id() #13 + %call9.i.i134.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i123.i, ptr noundef null) #12 + %call10.i.i135.i = tail call i32 @qemu_get_thread_id() #12 %47 = load i64, ptr %_now.i.i123.i, align 8 %tv_usec.i.i136.i = getelementptr inbounds nuw i8, ptr %_now.i.i123.i, i64 8 %48 = load i64, ptr %tv_usec.i.i136.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.59, i32 noundef %call10.i.i135.i, i64 noundef %47, i64 noundef %48, ptr noundef %42, ptr noundef nonnull @.str.50) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.59, i32 noundef %call10.i.i135.i, i64 noundef %47, i64 noundef %48, ptr noundef %42, ptr noundef nonnull @.str.50) #12 br label %trace_pflash_write.exit137.i if.else.i.i132.i: ; preds = %if.then.i.i130.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.60, ptr noundef %42, ptr noundef nonnull @.str.50) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.60, ptr noundef %42, ptr noundef nonnull @.str.50) #12 br label %trace_pflash_write.exit137.i trace_pflash_write.exit137.i: ; preds = %if.else.i.i132.i, %if.then8.i.i133.i, %land.lhs.true5.i.i127.i, %sw.bb57.i @@ -1703,14 +1703,14 @@ if.then.i.i: ; preds = %if.then61.i %storage.i.i = getelementptr inbounds nuw i8, ptr %opaque, i64 1240 %52 = load ptr, ptr %storage.i.i, align 8 %add.ptr.i.i = getelementptr i8, ptr %52, i64 %conv8.i.i - %call.i.i = tail call i32 @blk_pwrite(ptr noundef nonnull %50, i64 noundef %conv8.i.i, i64 noundef %conv10.i.i, ptr noundef %add.ptr.i.i, i32 noundef 0) #13 + %call.i.i = tail call i32 @blk_pwrite(ptr noundef nonnull %50, i64 noundef %conv8.i.i, i64 noundef %conv10.i.i, ptr noundef %add.ptr.i.i, i32 noundef 0) #12 %cmp.i138.i = icmp slt i32 %call.i.i, 0 br i1 %cmp.i138.i, label %if.then12.i.i, label %if.end68.i if.then12.i.i: ; preds = %if.then.i.i %sub13.i.i = sub i32 0, %call.i.i - %call14.i.i = tail call ptr @strerror(i32 noundef %sub13.i.i) #13 - tail call void (ptr, ...) @error_report(ptr noundef nonnull @.str.63, ptr noundef %call14.i.i) #13 + %call14.i.i = tail call ptr @strerror(i32 noundef %sub13.i.i) #12 + tail call void (ptr, ...) @error_report(ptr noundef nonnull @.str.63, ptr noundef %call14.i.i) #12 br label %if.end68.i if.else63.i: ; preds = %trace_pflash_write.exit137.i @@ -1753,7 +1753,7 @@ if.then92.i: ; preds = %sw.bb90.i br i1 %or.cond.i.i, label %extract32.exit.i, label %if.else.i.i if.else.i.i: ; preds = %if.then92.i - tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 338, ptr noundef nonnull @__PRETTY_FUNCTION__.extract32) #14 + tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 338, ptr noundef nonnull @__PRETTY_FUNCTION__.extract32) #13 unreachable extract32.exit.i: ; preds = %if.then92.i @@ -1771,7 +1771,7 @@ if.else96.i: ; preds = %sw.bb90.i br i1 %or.cond.i140.i, label %if.end100.i, label %if.else.i141.i if.else.i141.i: ; preds = %if.else96.i - tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 338, ptr noundef nonnull @__PRETTY_FUNCTION__.extract32) #14 + tail call void @__assert_fail(ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.35, i32 noundef 338, ptr noundef nonnull @__PRETTY_FUNCTION__.extract32) #13 unreachable if.end100.i: ; preds = %if.else96.i, %extract32.exit.i @@ -1800,16 +1800,16 @@ if.then.i.i153.i: ; preds = %land.lhs.true5.i.i1 br i1 %tobool7.i.i154.i, label %if.then8.i.i156.i, label %if.else.i.i155.i if.then8.i.i156.i: ; preds = %if.then.i.i153.i - %call9.i.i157.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i146.i, ptr noundef null) #13 - %call10.i.i158.i = tail call i32 @qemu_get_thread_id() #13 + %call9.i.i157.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i146.i, ptr noundef null) #12 + %call10.i.i158.i = tail call i32 @qemu_get_thread_id() #12 %68 = load i64, ptr %_now.i.i146.i, align 8 %tv_usec.i.i159.i = getelementptr inbounds nuw i8, ptr %_now.i.i146.i, i64 8 %69 = load i64, ptr %tv_usec.i.i159.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.66, i32 noundef %call10.i.i158.i, i64 noundef %68, i64 noundef %69, ptr noundef %63, i32 noundef %value.addr.0.i) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.66, i32 noundef %call10.i.i158.i, i64 noundef %68, i64 noundef %69, ptr noundef %63, i32 noundef %value.addr.0.i) #12 br label %trace_pflash_write_block.exit.i if.else.i.i155.i: ; preds = %if.then.i.i153.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.67, ptr noundef %63, i32 noundef %value.addr.0.i) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.67, ptr noundef %63, i32 noundef %value.addr.0.i) #12 br label %trace_pflash_write_block.exit.i trace_pflash_write_block.exit.i: ; preds = %if.else.i.i155.i, %if.then8.i.i156.i, %land.lhs.true5.i.i150.i, %if.end100.i @@ -1918,16 +1918,16 @@ if.then.i.i167.i: ; preds = %land.lhs.true5.i.i1 br i1 %tobool7.i.i168.i, label %if.then8.i.i170.i, label %if.else.i.i169.i if.then8.i.i170.i: ; preds = %if.then.i.i167.i - %call9.i.i171.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i160.i, ptr noundef null) #13 - %call10.i.i172.i = tail call i32 @qemu_get_thread_id() #13 + %call9.i.i171.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i160.i, ptr noundef null) #12 + %call10.i.i172.i = tail call i32 @qemu_get_thread_id() #12 %90 = load i64, ptr %_now.i.i160.i, align 8 %tv_usec.i.i173.i = getelementptr inbounds nuw i8, ptr %_now.i.i160.i, i64 8 %91 = load i64, ptr %tv_usec.i.i173.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.59, i32 noundef %call10.i.i172.i, i64 noundef %90, i64 noundef %91, ptr noundef %85, ptr noundef nonnull @.str.53) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.59, i32 noundef %call10.i.i172.i, i64 noundef %90, i64 noundef %91, ptr noundef %85, ptr noundef nonnull @.str.53) #12 br label %trace_pflash_write.exit174.i if.else.i.i169.i: ; preds = %if.then.i.i167.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.60, ptr noundef %85, ptr noundef nonnull @.str.53) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.60, ptr noundef %85, ptr noundef nonnull @.str.53) #12 br label %trace_pflash_write.exit174.i trace_pflash_write.exit174.i: ; preds = %if.else.i.i169.i, %if.then8.i.i170.i, %land.lhs.true5.i.i164.i, %if.then163.i @@ -1987,7 +1987,7 @@ do.body200.i: ; preds = %sw.bb189.i br i1 %cmp.i176.not.i, label %mode_read_array.i, label %if.then208.i if.then208.i: ; preds = %do.body200.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.54, ptr noundef nonnull @__func__.pflash_write) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.54, ptr noundef nonnull @__func__.pflash_write) #12 br label %mode_read_array.i sw.default214.i: ; preds = %if.end.i @@ -2012,16 +2012,16 @@ if.then.i.i184.i: ; preds = %land.lhs.true5.i.i1 br i1 %tobool7.i.i185.i, label %if.then8.i.i187.i, label %if.else.i.i186.i if.then8.i.i187.i: ; preds = %if.then.i.i184.i - %call9.i.i188.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i177.i, ptr noundef null) #13 - %call10.i.i189.i = tail call i32 @qemu_get_thread_id() #13 + %call9.i.i188.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i177.i, ptr noundef null) #12 + %call10.i.i189.i = tail call i32 @qemu_get_thread_id() #12 %107 = load i64, ptr %_now.i.i177.i, align 8 %tv_usec.i.i190.i = getelementptr inbounds nuw i8, ptr %_now.i.i177.i, i64 8 %108 = load i64, ptr %tv_usec.i.i190.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.59, i32 noundef %call10.i.i189.i, i64 noundef %107, i64 noundef %108, ptr noundef %102, ptr noundef nonnull @.str.55) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.59, i32 noundef %call10.i.i189.i, i64 noundef %107, i64 noundef %108, ptr noundef %102, ptr noundef nonnull @.str.55) #12 br label %trace_pflash_write.exit191.i if.else.i.i186.i: ; preds = %if.then.i.i184.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.60, ptr noundef %102, ptr noundef nonnull @.str.55) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.60, ptr noundef %102, ptr noundef nonnull @.str.55) #12 br label %trace_pflash_write.exit191.i trace_pflash_write.exit191.i: ; preds = %if.else.i.i186.i, %if.then8.i.i187.i, %land.lhs.true5.i.i181.i, %sw.default214.i @@ -2039,7 +2039,7 @@ if.then225.i: ; preds = %do.body217.i %cmd228.i = getelementptr inbounds nuw i8, ptr %opaque, i64 850 %110 = load i8, ptr %cmd228.i, align 2 %conv229.i = zext i8 %110 to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.56, ptr noundef nonnull @__func__.pflash_write, i64 noundef %addr, i32 noundef %conv227.i, i32 noundef %conv229.i, i32 noundef %conv) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.56, ptr noundef nonnull @__func__.pflash_write, i64 noundef %addr, i32 noundef %conv227.i, i32 noundef %conv229.i, i32 noundef %conv) #12 br label %mode_read_array.i mode_read_array.i: ; preds = %if.then225.i, %do.body217.i, %trace_pflash_write.exit191.i, %if.then208.i, %do.body200.i, %sw.bb134.i, %if.else130.i, %sw.bb105.i, %sw.bb74.i, %sw.bb50.i, %sw.bb48.i, %sw.bb24.i, %sw.bb.i @@ -2064,22 +2064,22 @@ if.then.i.i201.i: ; preds = %land.lhs.true5.i.i1 br i1 %tobool7.i.i202.i, label %if.then8.i.i204.i, label %if.else.i.i203.i if.then8.i.i204.i: ; preds = %if.then.i.i201.i - %call9.i.i205.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i194.i, ptr noundef null) #13 - %call10.i.i206.i = tail call i32 @qemu_get_thread_id() #13 + %call9.i.i205.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i194.i, ptr noundef null) #12 + %call10.i.i206.i = tail call i32 @qemu_get_thread_id() #12 %116 = load i64, ptr %_now.i.i194.i, align 8 %tv_usec.i.i207.i = getelementptr inbounds nuw i8, ptr %_now.i.i194.i, i64 8 %117 = load i64, ptr %tv_usec.i.i207.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.68, i32 noundef %call10.i.i206.i, i64 noundef %116, i64 noundef %117, ptr noundef %111) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.68, i32 noundef %call10.i.i206.i, i64 noundef %116, i64 noundef %117, ptr noundef %111) #12 br label %trace_pflash_mode_read_array.exit.i if.else.i.i203.i: ; preds = %if.then.i.i201.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.69, ptr noundef %111) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.69, ptr noundef %111) #12 br label %trace_pflash_mode_read_array.exit.i trace_pflash_mode_read_array.exit.i: ; preds = %if.else.i.i203.i, %if.then8.i.i204.i, %land.lhs.true5.i.i198.i, %mode_read_array.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %_now.i.i194.i) %mem233.i = getelementptr inbounds nuw i8, ptr %opaque, i64 960 - tail call void @memory_region_rom_device_set_romd(ptr noundef nonnull %mem233.i, i1 noundef zeroext true) #13 + tail call void @memory_region_rom_device_set_romd(ptr noundef nonnull %mem233.i, i1 noundef zeroext true) #12 store i8 0, ptr %wcycle.i, align 16 %cmd235.i = getelementptr inbounds nuw i8, ptr %opaque, i64 850 store i8 0, ptr %cmd235.i, align 2 @@ -2158,7 +2158,7 @@ if.else33: ; preds = %sw.bb13 br label %sw.epilog sw.default: ; preds = %entry - tail call void @abort() #14 + tail call void @abort() #13 unreachable sw.epilog: ; preds = %if.then15, %if.else33, %if.then, %if.else, %sw.bb @@ -2185,16 +2185,16 @@ if.then.i.i: ; preds = %land.lhs.true5.i.i br i1 %tobool7.i.i, label %if.then8.i.i, label %if.else.i.i if.then8.i.i: ; preds = %if.then.i.i - %call9.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i, ptr noundef null) #13 - %call10.i.i = tail call i32 @qemu_get_thread_id() #13 + %call9.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i, ptr noundef null) #12 + %call10.i.i = tail call i32 @qemu_get_thread_id() #12 %16 = load i64, ptr %_now.i.i, align 8 %tv_usec.i.i = getelementptr inbounds nuw i8, ptr %_now.i.i, i64 8 %17 = load i64, ptr %tv_usec.i.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.22, i32 noundef %call10.i.i, i64 noundef %16, i64 noundef %17, ptr noundef %11, i64 noundef %offset, i32 noundef %width, i32 noundef %ret.0) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.22, i32 noundef %call10.i.i, i64 noundef %16, i64 noundef %17, ptr noundef %11, i64 noundef %offset, i32 noundef %width, i32 noundef %ret.0) #12 br label %trace_pflash_data_read.exit if.else.i.i: ; preds = %if.then.i.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.23, ptr noundef %11, i64 noundef %offset, i32 noundef %width, i32 noundef %ret.0) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.23, ptr noundef %11, i64 noundef %offset, i32 noundef %width, i32 noundef %ret.0) #12 br label %trace_pflash_data_read.exit trace_pflash_data_read.exit: ; preds = %sw.epilog, %land.lhs.true5.i.i, %if.then8.i.i, %if.else.i.i @@ -2229,18 +2229,18 @@ if.then.i: ; preds = %land.lhs.true5.i br i1 %tobool7.i, label %if.then8.i, label %if.else.i if.then8.i: ; preds = %if.then.i - %call9.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i, ptr noundef null) #13 - %call10.i = tail call i32 @qemu_get_thread_id() #13 + %call9.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i, ptr noundef null) #12 + %call10.i = tail call i32 @qemu_get_thread_id() #12 %4 = load i64, ptr %_now.i, align 8 %tv_usec.i = getelementptr inbounds nuw i8, ptr %_now.i, i64 8 %5 = load i64, ptr %tv_usec.i, align 8 %conv11.i = zext i16 %id to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.28, i32 noundef %call10.i, i64 noundef %4, i64 noundef %5, ptr noundef %name, i32 noundef %conv11.i) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.28, i32 noundef %call10.i, i64 noundef %4, i64 noundef %5, ptr noundef %name, i32 noundef %conv11.i) #12 br label %_nocheck__trace_pflash_manufacturer_id.exit if.else.i: ; preds = %if.then.i %conv12.i = zext i16 %id to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.29, ptr noundef %name, i32 noundef %conv12.i) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.29, ptr noundef %name, i32 noundef %conv12.i) #12 br label %_nocheck__trace_pflash_manufacturer_id.exit _nocheck__trace_pflash_manufacturer_id.exit: ; preds = %entry, %land.lhs.true5.i, %if.then8.i, %if.else.i @@ -2272,18 +2272,18 @@ if.then.i: ; preds = %land.lhs.true5.i br i1 %tobool7.i, label %if.then8.i, label %if.else.i if.then8.i: ; preds = %if.then.i - %call9.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i, ptr noundef null) #13 - %call10.i = tail call i32 @qemu_get_thread_id() #13 + %call9.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i, ptr noundef null) #12 + %call10.i = tail call i32 @qemu_get_thread_id() #12 %4 = load i64, ptr %_now.i, align 8 %tv_usec.i = getelementptr inbounds nuw i8, ptr %_now.i, i64 8 %5 = load i64, ptr %tv_usec.i, align 8 %conv11.i = zext i16 %id to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.30, i32 noundef %call10.i, i64 noundef %4, i64 noundef %5, ptr noundef %name, i32 noundef %conv11.i) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.30, i32 noundef %call10.i, i64 noundef %4, i64 noundef %5, ptr noundef %name, i32 noundef %conv11.i) #12 br label %_nocheck__trace_pflash_device_id.exit if.else.i: ; preds = %if.then.i %conv12.i = zext i16 %id to i32 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.31, ptr noundef %name, i32 noundef %conv12.i) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.31, ptr noundef %name, i32 noundef %conv12.i) #12 br label %_nocheck__trace_pflash_device_id.exit _nocheck__trace_pflash_device_id.exit: ; preds = %entry, %land.lhs.true5.i, %if.then8.i, %if.else.i @@ -2315,16 +2315,16 @@ if.then.i: ; preds = %land.lhs.true5.i br i1 %tobool7.i, label %if.then8.i, label %if.else.i if.then8.i: ; preds = %if.then.i - %call9.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i, ptr noundef null) #13 - %call10.i = tail call i32 @qemu_get_thread_id() #13 + %call9.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i, ptr noundef null) #12 + %call10.i = tail call i32 @qemu_get_thread_id() #12 %4 = load i64, ptr %_now.i, align 8 %tv_usec.i = getelementptr inbounds nuw i8, ptr %_now.i, i64 8 %5 = load i64, ptr %tv_usec.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.32, i32 noundef %call10.i, i64 noundef %4, i64 noundef %5, ptr noundef %name, i64 noundef %offset) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.32, i32 noundef %call10.i, i64 noundef %4, i64 noundef %5, ptr noundef %name, i64 noundef %offset) #12 br label %_nocheck__trace_pflash_device_info.exit if.else.i: ; preds = %if.then.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.33, ptr noundef %name, i64 noundef %offset) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.33, ptr noundef %name, i64 noundef %offset) #12 br label %_nocheck__trace_pflash_device_info.exit _nocheck__trace_pflash_device_info.exit: ; preds = %entry, %land.lhs.true5.i, %if.then8.i, %if.else.i @@ -2359,16 +2359,16 @@ if.then.i: ; preds = %land.lhs.true5.i br i1 %tobool7.i, label %if.then8.i, label %if.else.i if.then8.i: ; preds = %if.then.i - %call9.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i, ptr noundef null) #13 - %call10.i = tail call i32 @qemu_get_thread_id() #13 + %call9.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i, ptr noundef null) #12 + %call10.i = tail call i32 @qemu_get_thread_id() #12 %4 = load i64, ptr %_now.i, align 8 %tv_usec.i = getelementptr inbounds nuw i8, ptr %_now.i, i64 8 %5 = load i64, ptr %tv_usec.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.59, i32 noundef %call10.i, i64 noundef %4, i64 noundef %5, ptr noundef %name, ptr noundef %str) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.59, i32 noundef %call10.i, i64 noundef %4, i64 noundef %5, ptr noundef %name, ptr noundef %str) #12 br label %_nocheck__trace_pflash_write.exit if.else.i: ; preds = %if.then.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.60, ptr noundef %name, ptr noundef %str) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.60, ptr noundef %name, ptr noundef %str) #12 br label %_nocheck__trace_pflash_write.exit _nocheck__trace_pflash_write.exit: ; preds = %entry, %land.lhs.true5.i, %if.then8.i, %if.else.i @@ -2400,16 +2400,16 @@ if.then.i: ; preds = %land.lhs.true5.i br i1 %tobool7.i, label %if.then8.i, label %if.else.i if.then8.i: ; preds = %if.then.i - %call9.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i, ptr noundef null) #13 - %call10.i = tail call i32 @qemu_get_thread_id() #13 + %call9.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i, ptr noundef null) #12 + %call10.i = tail call i32 @qemu_get_thread_id() #12 %4 = load i64, ptr %_now.i, align 8 %tv_usec.i = getelementptr inbounds nuw i8, ptr %_now.i, i64 8 %5 = load i64, ptr %tv_usec.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.61, i32 noundef %call10.i, i64 noundef %4, i64 noundef %5, ptr noundef %name, i64 noundef %offset, i64 noundef %len) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.61, i32 noundef %call10.i, i64 noundef %4, i64 noundef %5, ptr noundef %name, i64 noundef %offset, i64 noundef %len) #12 br label %_nocheck__trace_pflash_write_block_erase.exit if.else.i: ; preds = %if.then.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.62, ptr noundef %name, i64 noundef %offset, i64 noundef %len) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.62, ptr noundef %name, i64 noundef %offset, i64 noundef %len) #12 br label %_nocheck__trace_pflash_write_block_erase.exit _nocheck__trace_pflash_write_block_erase.exit: ; preds = %entry, %land.lhs.true5.i, %if.then8.i, %if.else.i @@ -2439,14 +2439,14 @@ if.then: ; preds = %entry %storage = getelementptr inbounds nuw i8, ptr %pfl, i64 1240 %2 = load ptr, ptr %storage, align 8 %add.ptr = getelementptr i8, ptr %2, i64 %conv8 - %call = tail call i32 @blk_pwrite(ptr noundef nonnull %0, i64 noundef %conv8, i64 noundef %conv10, ptr noundef %add.ptr, i32 noundef 0) #13 + %call = tail call i32 @blk_pwrite(ptr noundef nonnull %0, i64 noundef %conv8, i64 noundef %conv10, ptr noundef %add.ptr, i32 noundef 0) #12 %cmp = icmp slt i32 %call, 0 br i1 %cmp, label %if.then12, label %if.end15 if.then12: ; preds = %if.then %sub13 = sub i32 0, %call - %call14 = tail call ptr @strerror(i32 noundef %sub13) #13 - tail call void (ptr, ...) @error_report(ptr noundef nonnull @.str.63, ptr noundef %call14) #13 + %call14 = tail call ptr @strerror(i32 noundef %sub13) #12 + tail call void (ptr, ...) @error_report(ptr noundef nonnull @.str.63, ptr noundef %call14) #12 br label %if.end15 if.end15: ; preds = %if.then, %if.then12, %entry @@ -2483,16 +2483,16 @@ if.then.i.i: ; preds = %land.lhs.true5.i.i br i1 %tobool7.i.i, label %if.then8.i.i, label %if.else.i.i if.then8.i.i: ; preds = %if.then.i.i - %call9.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i, ptr noundef null) #13 - %call10.i.i = tail call i32 @qemu_get_thread_id() #13 + %call9.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i, ptr noundef null) #12 + %call10.i.i = tail call i32 @qemu_get_thread_id() #12 %7 = load i64, ptr %_now.i.i, align 8 %tv_usec.i.i = getelementptr inbounds nuw i8, ptr %_now.i.i, i64 8 %8 = load i64, ptr %tv_usec.i.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.64, i32 noundef %call10.i.i, i64 noundef %7, i64 noundef %8, ptr noundef %1, i64 noundef %offset, i32 noundef %width, i32 noundef %value, i64 noundef %2) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.64, i32 noundef %call10.i.i, i64 noundef %7, i64 noundef %8, ptr noundef %1, i64 noundef %offset, i32 noundef %width, i32 noundef %value, i64 noundef %2) #12 br label %trace_pflash_data_write.exit if.else.i.i: ; preds = %if.then.i.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.65, ptr noundef %1, i64 noundef %offset, i32 noundef %width, i32 noundef %value, i64 noundef %2) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.65, ptr noundef %1, i64 noundef %offset, i32 noundef %width, i32 noundef %value, i64 noundef %2) #12 br label %trace_pflash_data_write.exit trace_pflash_data_write.exit: ; preds = %entry, %land.lhs.true5.i.i, %if.then8.i.i, %if.else.i.i @@ -2591,7 +2591,7 @@ entry: br i1 %tobool, label %if.end, label %if.then if.then: ; preds = %entry - %call = tail call ptr @qemu_add_vm_change_state_handler(ptr noundef nonnull @postload_update_cb, ptr noundef nonnull %opaque) #13 + %call = tail call ptr @qemu_add_vm_change_state_handler(ptr noundef nonnull @postload_update_cb, ptr noundef nonnull %opaque) #12 %vmstate = getelementptr inbounds nuw i8, ptr %opaque, i64 1248 store ptr %call, ptr %vmstate, align 16 br label %if.end @@ -2608,7 +2608,7 @@ entry: %_now.i.i = alloca %struct.timeval, align 8 %vmstate = getelementptr inbounds nuw i8, ptr %opaque, i64 1248 %0 = load ptr, ptr %vmstate, align 16 - tail call void @qemu_del_vm_change_state_handler(ptr noundef %0) #13 + tail call void @qemu_del_vm_change_state_handler(ptr noundef %0) #12 store ptr null, ptr %vmstate, align 16 %name = getelementptr inbounds nuw i8, ptr %opaque, i64 1232 %1 = load ptr, ptr %name, align 16 @@ -2632,16 +2632,16 @@ if.then.i.i: ; preds = %land.lhs.true5.i.i br i1 %tobool7.i.i, label %if.then8.i.i, label %if.else.i.i if.then8.i.i: ; preds = %if.then.i.i - %call9.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i, ptr noundef null) #13 - %call10.i.i = tail call i32 @qemu_get_thread_id() #13 + %call9.i.i = call i32 @gettimeofday(ptr noundef nonnull %_now.i.i, ptr noundef null) #12 + %call10.i.i = tail call i32 @qemu_get_thread_id() #12 %6 = load i64, ptr %_now.i.i, align 8 %tv_usec.i.i = getelementptr inbounds nuw i8, ptr %_now.i.i, i64 8 %7 = load i64, ptr %tv_usec.i.i, align 8 - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.79, i32 noundef %call10.i.i, i64 noundef %6, i64 noundef %7, ptr noundef %1) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.79, i32 noundef %call10.i.i, i64 noundef %6, i64 noundef %7, ptr noundef %1) #12 br label %trace_pflash_postload_cb.exit if.else.i.i: ; preds = %if.then.i.i - tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.80, ptr noundef %1) #13 + tail call void (ptr, ...) @qemu_log(ptr noundef nonnull @.str.80, ptr noundef %1) #12 br label %trace_pflash_postload_cb.exit trace_pflash_postload_cb.exit: ; preds = %entry, %land.lhs.true5.i.i, %if.then8.i.i, %if.else.i.i @@ -2663,14 +2663,14 @@ if.then.i: ; preds = %trace_pflash_postlo %conv10.i = sext i32 %div410.i to i64 %storage.i = getelementptr inbounds nuw i8, ptr %opaque, i64 1240 %12 = load ptr, ptr %storage.i, align 8 - %call.i = tail call i32 @blk_pwrite(ptr noundef nonnull %8, i64 noundef 0, i64 noundef %conv10.i, ptr noundef %12, i32 noundef 0) #13 + %call.i = tail call i32 @blk_pwrite(ptr noundef nonnull %8, i64 noundef 0, i64 noundef %conv10.i, ptr noundef %12, i32 noundef 0) #12 %cmp.i = icmp slt i32 %call.i, 0 br i1 %cmp.i, label %if.then12.i, label %pflash_update.exit if.then12.i: ; preds = %if.then.i %sub13.i = sub i32 0, %call.i - %call14.i = tail call ptr @strerror(i32 noundef %sub13.i) #13 - tail call void (ptr, ...) @error_report(ptr noundef nonnull @.str.63, ptr noundef %call14.i) #13 + %call14.i = tail call ptr @strerror(i32 noundef %sub13.i) #12 + tail call void (ptr, ...) @error_report(ptr noundef nonnull @.str.63, ptr noundef %call14.i) #12 br label %pflash_update.exit pflash_update.exit: ; preds = %trace_pflash_postload_cb.exit, %if.then.i, %if.then12.i diff --git a/bench/re2/optimized/compile.cc.ll b/bench/re2/optimized/compile.cc.ll index 5c7ceb92220..8e8b7866a27 100644 --- a/bench/re2/optimized/compile.cc.ll +++ b/bench/re2/optimized/compile.cc.ll @@ -4871,8 +4871,8 @@ if.else: ; preds = %if.end if.else6: ; preds = %if.else %sub = add nsw i64 %max_mem, -432 - %div7 = lshr i64 %sub, 3 - %spec.store.select = tail call i64 @llvm.umin.i64(i64 %div7, i64 16777216) + %0 = lshr i64 %sub, 3 + %spec.store.select = tail call i64 @llvm.umin.i64(i64 %0, i64 16777216) %conv = trunc nuw nsw i64 %spec.store.select to i32 br label %if.end15 @@ -4919,8 +4919,8 @@ if.else.i: ; preds = %if.end.i if.else6.i: ; preds = %if.else.i %sub.i = add nsw i64 %max_mem, -432 - %div7.i = lshr i64 %sub.i, 3 - %spec.store.select.i = call i64 @llvm.umin.i64(i64 %div7.i, i64 16777216) + %2 = lshr i64 %sub.i, 3 + %spec.store.select.i = call i64 @llvm.umin.i64(i64 %2, i64 16777216) %conv.i29 = trunc nuw nsw i64 %spec.store.select.i to i32 br label %invoke.cont1 @@ -4942,10 +4942,10 @@ invoke.cont3: ; preds = %invoke.cont1 br i1 %cmp, label %cleanup, label %if.end lpad: ; preds = %if.then3.i.i.i100.invoke, %_ZN3re28PODArrayINS_4Prog4InstEEC2Ei.exit.i78, %_ZN3re28PODArrayINS_4Prog4InstEEC2Ei.exit.i, %_ZN3re28Compiler9ByteRangeEiib.exit.i, %if.end.i.i, %if.end.i32, %invoke.cont8, %if.end57, %invoke.cont12, %invoke.cont5, %if.end, %invoke.cont1 - %2 = landingpad { ptr, i32 } + %3 = landingpad { ptr, i32 } cleanup call void @_ZN3re28CompilerD1Ev(ptr noundef nonnull align 8 dereferenceable(212) %c) #26 - resume { ptr, i32 } %2 + resume { ptr, i32 } %3 if.end: ; preds = %invoke.cont3 %call6 = invoke fastcc noundef zeroext i1 @_ZN3re2L13IsAnchorStartEPPNS_6RegexpEi(ptr noundef %sre, i32 noundef 0) @@ -4956,43 +4956,43 @@ invoke.cont5: ; preds = %if.end to label %invoke.cont8 unwind label %lpad invoke.cont8: ; preds = %invoke.cont5 - %3 = load ptr, ptr %sre, align 8 + %4 = load ptr, ptr %sre, align 8 store i32 0, ptr %agg.tmp, align 8 %agg.tmp.4.agg.tmp.4.agg.tmp.4.end.i.sroa_idx = getelementptr inbounds nuw i8, ptr %agg.tmp, i64 4 store i64 0, ptr %agg.tmp.4.agg.tmp.4.agg.tmp.4.end.i.sroa_idx, align 4 %agg.tmp.12.agg.tmp.12.agg.tmp.12.nullable.i.sroa_idx = getelementptr inbounds nuw i8, ptr %agg.tmp, i64 12 store i8 0, ptr %agg.tmp.12.agg.tmp.12.agg.tmp.12.nullable.i.sroa_idx, align 4 - %4 = load i32, ptr %max_ninst_5.i, align 4 - %mul = shl nsw i32 %4, 1 + %5 = load i32, ptr %max_ninst_5.i, align 4 + %mul = shl nsw i32 %5, 1 %agg.tmp.0.agg.tmp.0.agg.tmp.0. = load i64, ptr %agg.tmp, align 8 %agg.tmp.8.agg.tmp.8.agg.tmp.8..sroa_idx = getelementptr inbounds nuw i8, ptr %agg.tmp, i64 8 %agg.tmp.8.agg.tmp.8.agg.tmp.8. = load i64, ptr %agg.tmp.8.agg.tmp.8.agg.tmp.8..sroa_idx, align 8 %max_visits_.i = getelementptr inbounds nuw i8, ptr %c, i64 92 store i32 %mul, ptr %max_visits_.i, align 4 - %call.i30 = invoke { i64, i64 } @_ZN3re26Regexp6WalkerINS_4FragEE12WalkInternalEPS0_S2_b(ptr noundef nonnull align 8 dereferenceable(96) %c, ptr noundef %3, i64 %agg.tmp.0.agg.tmp.0.agg.tmp.0., i64 %agg.tmp.8.agg.tmp.8.agg.tmp.8., i1 noundef zeroext false) + %call.i30 = invoke { i64, i64 } @_ZN3re26Regexp6WalkerINS_4FragEE12WalkInternalEPS0_S2_b(ptr noundef nonnull align 8 dereferenceable(96) %c, ptr noundef %4, i64 %agg.tmp.0.agg.tmp.0.agg.tmp.0., i64 %agg.tmp.8.agg.tmp.8.agg.tmp.8., i1 noundef zeroext false) to label %invoke.cont12 unwind label %lpad invoke.cont12: ; preds = %invoke.cont8 - %5 = extractvalue { i64, i64 } %call.i30, 0 - %6 = extractvalue { i64, i64 } %call.i30, 1 - %all.sroa.12.8.extract.shift = and i64 %6, -1099511627776 - invoke void @_ZN3re26Regexp6DecrefEv(ptr noundef nonnull align 8 dereferenceable(40) %3) + %6 = extractvalue { i64, i64 } %call.i30, 0 + %7 = extractvalue { i64, i64 } %call.i30, 1 + %all.sroa.12.8.extract.shift = and i64 %7, -1099511627776 + invoke void @_ZN3re26Regexp6DecrefEv(ptr noundef nonnull align 8 dereferenceable(40) %4) to label %invoke.cont14 unwind label %lpad invoke.cont14: ; preds = %invoke.cont12 %failed_ = getelementptr inbounds nuw i8, ptr %c, i64 104 - %7 = load i8, ptr %failed_, align 8 - %tobool15 = trunc i8 %7 to i1 + %8 = load i8, ptr %failed_, align 8 + %tobool15 = trunc i8 %8 to i1 br i1 %tobool15, label %cleanup, label %lor.lhs.false.i lor.lhs.false.i: ; preds = %invoke.cont14 store i8 0, ptr %reversed_, align 8 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %retval.i) %ninst_.i = getelementptr inbounds nuw i8, ptr %c, i64 136 - %8 = load i32, ptr %ninst_.i, align 8 - %add.i = add nsw i32 %8, 1 - %9 = load i32, ptr %max_ninst_5.i, align 4 - %cmp.i48.not = icmp slt i32 %8, %9 + %9 = load i32, ptr %ninst_.i, align 8 + %add.i = add nsw i32 %9, 1 + %10 = load i32, ptr %max_ninst_5.i, align 4 + %cmp.i48.not = icmp slt i32 %9, %10 br i1 %cmp.i48.not, label %if.end.i49, label %call.i.noexc.thread call.i.noexc.thread: ; preds = %lor.lhs.false.i @@ -5001,18 +5001,18 @@ call.i.noexc.thread: ; preds = %lor.lhs.false.i if.end.i49: ; preds = %lor.lhs.false.i %inst_.i = getelementptr inbounds nuw i8, ptr %c, i64 120 - %10 = load i32, ptr %inst_.i, align 8 - %cmp5.i.not = icmp slt i32 %8, %10 + %11 = load i32, ptr %inst_.i, align 8 + %cmp5.i.not = icmp slt i32 %9, %11 br i1 %cmp5.i.not, label %call.i.noexc, label %if.then6.i if.then6.i: ; preds = %if.end.i49 - %cmp9.i = icmp eq i32 %10, 0 - %spec.store.select.i50 = select i1 %cmp9.i, i32 8, i32 %10 + %cmp9.i = icmp eq i32 %11, 0 + %spec.store.select.i50 = select i1 %cmp9.i, i32 8, i32 %11 br label %while.cond.i while.cond.i: ; preds = %while.cond.i, %if.then6.i %cap.0.i = phi i32 [ %spec.store.select.i50, %if.then6.i ], [ %mul.i, %while.cond.i ] - %cmp14.i.not = icmp slt i32 %8, %cap.0.i + %cmp14.i.not = icmp slt i32 %9, %cap.0.i %mul.i = shl nsw i32 %cap.0.i, 1 br i1 %cmp14.i.not, label %while.end.i, label %while.cond.i, !llvm.loop !4 @@ -5028,14 +5028,14 @@ _ZN3re28PODArrayINS_4Prog4InstEEC2Ei.exit.i: ; preds = %while.end.i call5.i3.i.i.noexc: ; preds = %_ZN3re28PODArrayINS_4Prog4InstEEC2Ei.exit.i %add.ptr.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %c, i64 128 - %11 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i, align 8 - %cmp17.not.i = icmp eq ptr %11, null - %idx.ext15.i = sext i32 %8 to i64 + %12 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i, align 8 + %cmp17.not.i = icmp eq ptr %12, null + %idx.ext15.i = sext i32 %9 to i64 br i1 %cmp17.not.i, label %if.end26.thread.i, label %if.then.i.i.i.i.i.i if.end26.thread.i: ; preds = %call5.i3.i.i.noexc %add.ptr16.i = getelementptr inbounds %"class.re2::Prog::Inst", ptr %call5.i3.i.i55, i64 %idx.ext15.i - %sub17.i = sub nsw i32 %cap.0.i, %8 + %sub17.i = sub nsw i32 %cap.0.i, %9 %conv3118.i = sext i32 %sub17.i to i64 %mul3219.i = shl nsw i64 %conv3118.i, 3 call void @llvm.memset.p0.i64(ptr nonnull align 4 %add.ptr16.i, i8 0, i64 %mul3219.i, i1 false) @@ -5044,29 +5044,29 @@ if.end26.thread.i: ; preds = %call5.i3.i.i.noexc if.then.i.i.i.i.i.i: ; preds = %call5.i3.i.i.noexc %mul25.i = shl nsw i64 %idx.ext15.i, 3 - call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %call5.i3.i.i55, ptr nonnull align 4 %11, i64 %mul25.i, i1 false) + call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %call5.i3.i.i55, ptr nonnull align 4 %12, i64 %mul25.i, i1 false) %add.ptr.i = getelementptr inbounds %"class.re2::Prog::Inst", ptr %call5.i3.i.i55, i64 %idx.ext15.i - %sub.i52 = sub nsw i32 %cap.0.i, %8 + %sub.i52 = sub nsw i32 %cap.0.i, %9 %conv31.i = sext i32 %sub.i52 to i64 %mul32.i = shl nsw i64 %conv31.i, 3 call void @llvm.memset.p0.i64(ptr nonnull align 4 %add.ptr.i, i8 0, i64 %mul32.i, i1 false) store ptr %call5.i3.i.i55, ptr %add.ptr.i.i.i.i.i.i.i, align 8 - call void @_ZdlPv(ptr noundef nonnull %11) #25 + call void @_ZdlPv(ptr noundef nonnull %12) #25 %.pre.pre.i = load i32, ptr %ninst_.i, align 8 %.pre22.i = add nsw i32 %.pre.pre.i, 1 br label %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i _ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i: ; preds = %if.then.i.i.i.i.i.i, %if.end26.thread.i %.pre21.pre-phi.i = phi i32 [ %.pre22.i, %if.then.i.i.i.i.i.i ], [ %add.i, %if.end26.thread.i ] - %.pre.i = phi i32 [ %.pre.pre.i, %if.then.i.i.i.i.i.i ], [ %8, %if.end26.thread.i ] + %.pre.i = phi i32 [ %.pre.pre.i, %if.then.i.i.i.i.i.i ], [ %9, %if.end26.thread.i ] store i32 %cap.0.i, ptr %inst_.i, align 8 br label %call.i.noexc call.i.noexc: ; preds = %if.end.i49, %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i %add38.pre-phi.i = phi i32 [ %.pre21.pre-phi.i, %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i ], [ %add.i, %if.end.i49 ] - %12 = phi i32 [ %.pre.i, %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i ], [ %8, %if.end.i49 ] + %13 = phi i32 [ %.pre.i, %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i ], [ %9, %if.end.i49 ] store i32 %add38.pre-phi.i, ptr %ninst_.i, align 8 - %cmp.i31 = icmp slt i32 %12, 0 + %cmp.i31 = icmp slt i32 %13, 0 br i1 %cmp.i31, label %if.then.i33, label %if.end.i32 if.then.i33: ; preds = %call.i.noexc.thread, %call.i.noexc @@ -5083,15 +5083,15 @@ if.then.i33: ; preds = %call.i.noexc.thread br label %invoke.cont21 if.end.i32: ; preds = %call.i.noexc - %conv.i.i = zext nneg i32 %12 to i64 + %conv.i.i = zext nneg i32 %13 to i64 %add.ptr.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %c, i64 128 - %13 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i.i, align 8 - %arrayidx.i.i.i = getelementptr inbounds nuw %"class.re2::Prog::Inst", ptr %13, i64 %conv.i.i + %14 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i.i, align 8 + %arrayidx.i.i.i = getelementptr inbounds nuw %"class.re2::Prog::Inst", ptr %14, i64 %conv.i.i invoke void @_ZN3re24Prog4Inst9InitMatchEi(ptr noundef nonnull align 4 dereferenceable(8) %arrayidx.i.i.i, i32 noundef 0) to label %.noexc unwind label %lpad .noexc: ; preds = %if.end.i32 - store i32 %12, ptr %retval.i, align 8 + store i32 %13, ptr %retval.i, align 8 %retval.i.4.retval.i.4.retval.i.4.retval.4.retval.4.end3.i.sroa_idx = getelementptr inbounds nuw i8, ptr %retval.i, i64 4 store i64 0, ptr %retval.i.4.retval.i.4.retval.i.4.retval.4.retval.4.end3.i.sroa_idx, align 4 %retval.i.12.retval.i.12.retval.i.12.retval.12.retval.12.nullable4.i.sroa_idx = getelementptr inbounds nuw i8, ptr %retval.i, i64 12 @@ -5105,45 +5105,45 @@ invoke.cont21: ; preds = %.noexc, %if.then.i3 %retval.8.retval.8..fca.1.load.i = phi i64 [ %retval.i.8.retval.i.8.retval.i.8.retval.8.retval.8..fca.1.load.pre.i, %.noexc ], [ %retval.i.i.8.retval.i.i.8.retval.i.i.8.retval.i.8.retval.i.8.retval.8.retval.8..fca.1.load.i.i, %if.then.i33 ] %retval.0.retval.0..fca.0.load.i = phi i64 [ %retval.i.0.retval.i.0.retval.i.0.retval.0.retval.0..fca.0.load.pre.i, %.noexc ], [ %retval.i.i.0.retval.i.i.0.retval.i.i.0.retval.i.0.retval.i.0.retval.0.retval.0..fca.0.load.i.i, %if.then.i33 ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %retval.i) - %call24 = call { i64, i64 } @_ZN3re28Compiler3CatENS_4FragES1_(ptr noundef nonnull align 8 dereferenceable(212) %c, i64 %5, i64 %6, i64 %retval.0.retval.0..fca.0.load.i, i64 %retval.8.retval.8..fca.1.load.i) - %14 = extractvalue { i64, i64 } %call24, 0 - %15 = extractvalue { i64, i64 } %call24, 1 - %all.sroa.0.0.extract.trunc6 = trunc i64 %14 to i32 + %call24 = call { i64, i64 } @_ZN3re28Compiler3CatENS_4FragES1_(ptr noundef nonnull align 8 dereferenceable(212) %c, i64 %6, i64 %7, i64 %retval.0.retval.0..fca.0.load.i, i64 %retval.8.retval.8..fca.1.load.i) + %15 = extractvalue { i64, i64 } %call24, 0 + %16 = extractvalue { i64, i64 } %call24, 1 + %all.sroa.0.0.extract.trunc6 = trunc i64 %15 to i32 %prog_ = getelementptr inbounds nuw i8, ptr %c, i64 96 - %16 = load ptr, ptr %prog_, align 8 - %reversed_.i = getelementptr inbounds nuw i8, ptr %16, i64 2 - store i8 %frombool, ptr %reversed_.i, align 2 %17 = load ptr, ptr %prog_, align 8 - %reversed_.i35 = getelementptr inbounds nuw i8, ptr %17, i64 2 - %18 = load i8, ptr %reversed_.i35, align 2 - %tobool.i = trunc i8 %18 to i1 + %reversed_.i = getelementptr inbounds nuw i8, ptr %17, i64 2 + store i8 %frombool, ptr %reversed_.i, align 2 + %18 = load ptr, ptr %prog_, align 8 + %reversed_.i35 = getelementptr inbounds nuw i8, ptr %18, i64 2 + %19 = load i8, ptr %reversed_.i35, align 2 + %tobool.i = trunc i8 %19 to i1 %call9.call6 = select i1 %tobool.i, i1 %call9, i1 %call6 %call6.call9 = select i1 %tobool.i, i1 %call6, i1 %call9 %frombool.i38 = zext i1 %call9.call6 to i8 - store i8 %frombool.i38, ptr %17, align 8 - %19 = load ptr, ptr %prog_, align 8 + store i8 %frombool.i38, ptr %18, align 8 + %20 = load ptr, ptr %prog_, align 8 %frombool.i39 = zext i1 %call6.call9 to i8 - %anchor_end_.i40 = getelementptr inbounds nuw i8, ptr %19, i64 1 + %anchor_end_.i40 = getelementptr inbounds nuw i8, ptr %20, i64 1 store i8 %frombool.i39, ptr %anchor_end_.i40, align 1 - %20 = load ptr, ptr %prog_, align 8 - %start_.i = getelementptr inbounds nuw i8, ptr %20, i64 8 - store i32 %all.sroa.0.0.extract.trunc6, ptr %start_.i, align 8 %21 = load ptr, ptr %prog_, align 8 - %22 = load i8, ptr %21, align 8 - %tobool.i41 = trunc i8 %22 to i1 + %start_.i = getelementptr inbounds nuw i8, ptr %21, i64 8 + store i32 %all.sroa.0.0.extract.trunc6, ptr %start_.i, align 8 + %22 = load ptr, ptr %prog_, align 8 + %23 = load i8, ptr %22, align 8 + %tobool.i41 = trunc i8 %23 to i1 br i1 %tobool.i41, label %if.end57, label %if.then49 if.then49: ; preds = %invoke.cont21 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %retval.i.i42) - %23 = load i8, ptr %failed_, align 8 - %tobool.i57 = trunc i8 %23 to i1 + %24 = load i8, ptr %failed_, align 8 + %tobool.i57 = trunc i8 %24 to i1 br i1 %tobool.i57, label %call.i.i.noexc.thread, label %lor.lhs.false.i58 lor.lhs.false.i58: ; preds = %if.then49 - %24 = load i32, ptr %ninst_.i, align 8 - %add.i60 = add nsw i32 %24, 1 - %25 = load i32, ptr %max_ninst_5.i, align 4 - %cmp.i62.not = icmp slt i32 %24, %25 + %25 = load i32, ptr %ninst_.i, align 8 + %add.i60 = add nsw i32 %25, 1 + %26 = load i32, ptr %max_ninst_5.i, align 4 + %cmp.i62.not = icmp slt i32 %25, %26 br i1 %cmp.i62.not, label %if.end.i63, label %call.i.i.noexc.thread call.i.i.noexc.thread: ; preds = %if.then49, %lor.lhs.false.i58 @@ -5152,18 +5152,18 @@ call.i.i.noexc.thread: ; preds = %if.then49, %lor.lhs if.end.i63: ; preds = %lor.lhs.false.i58 %inst_.i64 = getelementptr inbounds nuw i8, ptr %c, i64 120 - %26 = load i32, ptr %inst_.i64, align 8 - %cmp5.i65.not = icmp slt i32 %24, %26 + %27 = load i32, ptr %inst_.i64, align 8 + %cmp5.i65.not = icmp slt i32 %25, %27 br i1 %cmp5.i65.not, label %call.i.i.noexc, label %if.then6.i69 if.then6.i69: ; preds = %if.end.i63 - %cmp9.i70 = icmp eq i32 %26, 0 - %spec.store.select.i71 = select i1 %cmp9.i70, i32 8, i32 %26 + %cmp9.i70 = icmp eq i32 %27, 0 + %spec.store.select.i71 = select i1 %cmp9.i70, i32 8, i32 %27 br label %while.cond.i72 while.cond.i72: ; preds = %while.cond.i72, %if.then6.i69 %cap.0.i73 = phi i32 [ %spec.store.select.i71, %if.then6.i69 ], [ %mul.i75, %while.cond.i72 ] - %cmp14.i74.not = icmp slt i32 %24, %cap.0.i73 + %cmp14.i74.not = icmp slt i32 %25, %cap.0.i73 %mul.i75 = shl nsw i32 %cap.0.i73, 1 br i1 %cmp14.i74.not, label %while.end.i76, label %while.cond.i72, !llvm.loop !4 @@ -5186,14 +5186,14 @@ _ZN3re28PODArrayINS_4Prog4InstEEC2Ei.exit.i78: ; preds = %while.end.i76 call5.i3.i.i.noexc103: ; preds = %_ZN3re28PODArrayINS_4Prog4InstEEC2Ei.exit.i78 %add.ptr.i.i.i.i.i.i.i81 = getelementptr inbounds nuw i8, ptr %c, i64 128 - %27 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i81, align 8 - %cmp17.not.i82 = icmp eq ptr %27, null - %idx.ext15.i83 = sext i32 %24 to i64 + %28 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i81, align 8 + %cmp17.not.i82 = icmp eq ptr %28, null + %idx.ext15.i83 = sext i32 %25 to i64 br i1 %cmp17.not.i82, label %if.end26.thread.i95, label %if.then.i.i.i.i.i.i84 if.end26.thread.i95: ; preds = %call5.i3.i.i.noexc103 %add.ptr16.i96 = getelementptr inbounds %"class.re2::Prog::Inst", ptr %call5.i3.i.i104, i64 %idx.ext15.i83 - %sub17.i97 = sub nsw i32 %cap.0.i73, %24 + %sub17.i97 = sub nsw i32 %cap.0.i73, %25 %conv3118.i98 = sext i32 %sub17.i97 to i64 %mul3219.i99 = shl nsw i64 %conv3118.i98, 3 call void @llvm.memset.p0.i64(ptr nonnull align 4 %add.ptr16.i96, i8 0, i64 %mul3219.i99, i1 false) @@ -5202,29 +5202,29 @@ if.end26.thread.i95: ; preds = %call5.i3.i.i.noexc1 if.then.i.i.i.i.i.i84: ; preds = %call5.i3.i.i.noexc103 %mul25.i85 = shl nsw i64 %idx.ext15.i83, 3 - call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %call5.i3.i.i104, ptr nonnull align 4 %27, i64 %mul25.i85, i1 false) + call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %call5.i3.i.i104, ptr nonnull align 4 %28, i64 %mul25.i85, i1 false) %add.ptr.i86 = getelementptr inbounds %"class.re2::Prog::Inst", ptr %call5.i3.i.i104, i64 %idx.ext15.i83 - %sub.i87 = sub nsw i32 %cap.0.i73, %24 + %sub.i87 = sub nsw i32 %cap.0.i73, %25 %conv31.i88 = sext i32 %sub.i87 to i64 %mul32.i89 = shl nsw i64 %conv31.i88, 3 call void @llvm.memset.p0.i64(ptr nonnull align 4 %add.ptr.i86, i8 0, i64 %mul32.i89, i1 false) store ptr %call5.i3.i.i104, ptr %add.ptr.i.i.i.i.i.i.i81, align 8 - call void @_ZdlPv(ptr noundef nonnull %27) #25 + call void @_ZdlPv(ptr noundef nonnull %28) #25 %.pre.pre.i90 = load i32, ptr %ninst_.i, align 8 %.pre22.i91 = add nsw i32 %.pre.pre.i90, 1 br label %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i92 _ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i92: ; preds = %if.then.i.i.i.i.i.i84, %if.end26.thread.i95 %.pre21.pre-phi.i93 = phi i32 [ %.pre22.i91, %if.then.i.i.i.i.i.i84 ], [ %add.i60, %if.end26.thread.i95 ] - %.pre.i94 = phi i32 [ %.pre.pre.i90, %if.then.i.i.i.i.i.i84 ], [ %24, %if.end26.thread.i95 ] + %.pre.i94 = phi i32 [ %.pre.pre.i90, %if.then.i.i.i.i.i.i84 ], [ %25, %if.end26.thread.i95 ] store i32 %cap.0.i73, ptr %inst_.i64, align 8 br label %call.i.i.noexc call.i.i.noexc: ; preds = %if.end.i63, %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i92 %add38.pre-phi.i67 = phi i32 [ %.pre21.pre-phi.i93, %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i92 ], [ %add.i60, %if.end.i63 ] - %28 = phi i32 [ %.pre.i94, %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i92 ], [ %24, %if.end.i63 ] + %29 = phi i32 [ %.pre.i94, %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i92 ], [ %25, %if.end.i63 ] store i32 %add38.pre-phi.i67, ptr %ninst_.i, align 8 - %cmp.i.i = icmp slt i32 %28, 0 + %cmp.i.i = icmp slt i32 %29, 0 br i1 %cmp.i.i, label %if.then.i.i, label %if.end.i.i if.then.i.i: ; preds = %call.i.i.noexc.thread, %call.i.i.noexc @@ -5241,18 +5241,18 @@ if.then.i.i: ; preds = %call.i.i.noexc.thre br label %_ZN3re28Compiler9ByteRangeEiib.exit.i if.end.i.i: ; preds = %call.i.i.noexc - %conv.i.i.i = zext nneg i32 %28 to i64 + %conv.i.i.i = zext nneg i32 %29 to i64 %add.ptr.i.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %c, i64 128 - %29 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i.i.i, align 8 - %arrayidx.i.i.i.i = getelementptr inbounds nuw %"class.re2::Prog::Inst", ptr %29, i64 %conv.i.i.i + %30 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i.i.i, align 8 + %arrayidx.i.i.i.i = getelementptr inbounds nuw %"class.re2::Prog::Inst", ptr %30, i64 %conv.i.i.i invoke void @_ZN3re24Prog4Inst13InitByteRangeEiiij(ptr noundef nonnull align 4 dereferenceable(8) %arrayidx.i.i.i.i, i32 noundef 0, i32 noundef 255, i32 noundef 0, i32 noundef 0) to label %.noexc45 unwind label %lpad .noexc45: ; preds = %if.end.i.i - %shl.i.i = shl nuw i32 %28, 1 + %shl.i.i = shl nuw i32 %29, 1 %retval.sroa.2.0.insert.ext.i.i.i = zext i32 %shl.i.i to i64 %retval.sroa.0.0.insert.insert.i.i.i = mul nuw i64 %retval.sroa.2.0.insert.ext.i.i.i, 4294967297 - store i32 %28, ptr %retval.i.i42, align 8 + store i32 %29, ptr %retval.i.i42, align 8 %retval.i.i42.4.retval.i.i42.4.retval.i.i42.4.retval.i.4.retval.i.4.retval.4.retval.4.end3.i.sroa_idx = getelementptr inbounds nuw i8, ptr %retval.i.i42, i64 4 store i64 %retval.sroa.0.0.insert.insert.i.i.i, ptr %retval.i.i42.4.retval.i.i42.4.retval.i.i42.4.retval.i.4.retval.i.4.retval.4.retval.4.end3.i.sroa_idx, align 4 %retval.i.i42.12.retval.i.i42.12.retval.i.i42.12.retval.i.12.retval.i.12.retval.12.retval.12.nullable4.i.sroa_idx = getelementptr inbounds nuw i8, ptr %retval.i.i42, i64 12 @@ -5270,20 +5270,20 @@ _ZN3re28Compiler9ByteRangeEiib.exit.i: ; preds = %.noexc45, %if.then. to label %invoke.cont52 unwind label %lpad invoke.cont52: ; preds = %_ZN3re28Compiler9ByteRangeEiib.exit.i - %30 = extractvalue { i64, i64 } %call2.i46, 0 - %31 = extractvalue { i64, i64 } %call2.i46, 1 - %all.sroa.715.8.insert.ext = and i64 %15, 1099511627775 + %31 = extractvalue { i64, i64 } %call2.i46, 0 + %32 = extractvalue { i64, i64 } %call2.i46, 1 + %all.sroa.715.8.insert.ext = and i64 %16, 1099511627775 %all.sroa.715.8.insert.insert = or disjoint i64 %all.sroa.715.8.insert.ext, %all.sroa.12.8.extract.shift - %call56 = call { i64, i64 } @_ZN3re28Compiler3CatENS_4FragES1_(ptr noundef nonnull align 8 dereferenceable(212) %c, i64 %30, i64 %31, i64 %14, i64 %all.sroa.715.8.insert.insert) - %32 = extractvalue { i64, i64 } %call56, 0 - %all.sroa.0.0.extract.trunc2 = trunc i64 %32 to i32 + %call56 = call { i64, i64 } @_ZN3re28Compiler3CatENS_4FragES1_(ptr noundef nonnull align 8 dereferenceable(212) %c, i64 %31, i64 %32, i64 %15, i64 %all.sroa.715.8.insert.insert) + %33 = extractvalue { i64, i64 } %call56, 0 + %all.sroa.0.0.extract.trunc2 = trunc i64 %33 to i32 %.pre = load ptr, ptr %prog_, align 8 br label %if.end57 if.end57: ; preds = %invoke.cont52, %invoke.cont21 - %33 = phi ptr [ %21, %invoke.cont21 ], [ %.pre, %invoke.cont52 ] + %34 = phi ptr [ %22, %invoke.cont21 ], [ %.pre, %invoke.cont52 ] %all.sroa.0.0 = phi i32 [ %all.sroa.0.0.extract.trunc6, %invoke.cont21 ], [ %all.sroa.0.0.extract.trunc2, %invoke.cont52 ] - %start_unanchored_.i = getelementptr inbounds nuw i8, ptr %33, i64 12 + %start_unanchored_.i = getelementptr inbounds nuw i8, ptr %34, i64 12 store i32 %all.sroa.0.0, ptr %start_unanchored_.i, align 4 %call62 = invoke noundef ptr @_ZN3re28Compiler6FinishEPNS_6RegexpE(ptr noundef nonnull align 8 dereferenceable(212) %c, ptr noundef nonnull %re) to label %cleanup unwind label %lpad @@ -5839,8 +5839,8 @@ if.else.i: ; preds = %if.end.i if.else6.i: ; preds = %if.else.i %sub.i = add nsw i64 %max_mem, -432 - %div7.i = lshr i64 %sub.i, 3 - %spec.store.select.i = call i64 @llvm.umin.i64(i64 %div7.i, i64 16777216) + %2 = lshr i64 %sub.i, 3 + %spec.store.select.i = call i64 @llvm.umin.i64(i64 %2, i64 16777216) %conv.i14 = trunc nuw nsw i64 %spec.store.select.i to i32 br label %invoke.cont1 @@ -5858,10 +5858,10 @@ invoke.cont2: ; preds = %invoke.cont1 br i1 %cmp, label %cleanup, label %if.end lpad: ; preds = %_ZN3re28PODArrayINS_4Prog4InstEEC2Ei.exit.i, %if.then3.i.i.i, %_ZN3re28Compiler9ByteRangeEiib.exit.i, %if.end.i.i, %if.end, %if.end31, %if.end21, %invoke.cont5, %invoke.cont1 - %2 = landingpad { ptr, i32 } + %3 = landingpad { ptr, i32 } cleanup call void @_ZN3re28CompilerD1Ev(ptr noundef nonnull align 8 dereferenceable(212) %c) #26 - resume { ptr, i32 } %2 + resume { ptr, i32 } %3 if.end: ; preds = %invoke.cont2 store i32 0, ptr %agg.tmp, align 8 @@ -5869,8 +5869,8 @@ if.end: ; preds = %invoke.cont2 store i64 0, ptr %agg.tmp.4.agg.tmp.4.agg.tmp.4.end.i.sroa_idx, align 4 %agg.tmp.12.agg.tmp.12.agg.tmp.12.nullable.i.sroa_idx = getelementptr inbounds nuw i8, ptr %agg.tmp, i64 12 store i8 0, ptr %agg.tmp.12.agg.tmp.12.agg.tmp.12.nullable.i.sroa_idx, align 4 - %3 = load i32, ptr %max_ninst_5.i, align 4 - %mul = shl nsw i32 %3, 1 + %4 = load i32, ptr %max_ninst_5.i, align 4 + %mul = shl nsw i32 %4, 1 %agg.tmp.0.agg.tmp.0.agg.tmp.0. = load i64, ptr %agg.tmp, align 8 %agg.tmp.8.agg.tmp.8.agg.tmp.8..sroa_idx = getelementptr inbounds nuw i8, ptr %agg.tmp, i64 8 %agg.tmp.8.agg.tmp.8.agg.tmp.8. = load i64, ptr %agg.tmp.8.agg.tmp.8.agg.tmp.8..sroa_idx, align 8 @@ -5880,15 +5880,15 @@ if.end: ; preds = %invoke.cont2 to label %invoke.cont5 unwind label %lpad invoke.cont5: ; preds = %if.end - %4 = extractvalue { i64, i64 } %call.i15, 0 - %5 = extractvalue { i64, i64 } %call.i15, 1 + %5 = extractvalue { i64, i64 } %call.i15, 0 + %6 = extractvalue { i64, i64 } %call.i15, 1 invoke void @_ZN3re26Regexp6DecrefEv(ptr noundef nonnull align 8 dereferenceable(40) %call3) to label %invoke.cont7 unwind label %lpad invoke.cont7: ; preds = %invoke.cont5 %failed_ = getelementptr inbounds nuw i8, ptr %c, i64 104 - %6 = load i8, ptr %failed_, align 8 - %tobool = trunc i8 %6 to i1 + %7 = load i8, ptr %failed_, align 8 + %tobool = trunc i8 %7 to i1 br i1 %tobool, label %cleanup, label %if.end9 if.end9: ; preds = %invoke.cont7 @@ -5903,16 +5903,16 @@ if.end9: ; preds = %invoke.cont7 if.then14: ; preds = %if.end9 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %retval.i.i) - %9 = load i8, ptr %failed_, align 8 - %tobool.i = trunc i8 %9 to i1 + %10 = load i8, ptr %failed_, align 8 + %tobool.i = trunc i8 %10 to i1 br i1 %tobool.i, label %call.i.i.noexc.thread, label %lor.lhs.false.i lor.lhs.false.i: ; preds = %if.then14 %ninst_.i = getelementptr inbounds nuw i8, ptr %c, i64 136 - %10 = load i32, ptr %ninst_.i, align 8 - %add.i = add nsw i32 %10, 1 - %11 = load i32, ptr %max_ninst_5.i, align 4 - %cmp.i19.not = icmp slt i32 %10, %11 + %11 = load i32, ptr %ninst_.i, align 8 + %add.i = add nsw i32 %11, 1 + %12 = load i32, ptr %max_ninst_5.i, align 4 + %cmp.i19.not = icmp slt i32 %11, %12 br i1 %cmp.i19.not, label %if.end.i20, label %call.i.i.noexc.thread call.i.i.noexc.thread: ; preds = %if.then14, %lor.lhs.false.i @@ -5921,18 +5921,18 @@ call.i.i.noexc.thread: ; preds = %if.then14, %lor.lhs if.end.i20: ; preds = %lor.lhs.false.i %inst_.i = getelementptr inbounds nuw i8, ptr %c, i64 120 - %12 = load i32, ptr %inst_.i, align 8 - %cmp5.i.not = icmp slt i32 %10, %12 + %13 = load i32, ptr %inst_.i, align 8 + %cmp5.i.not = icmp slt i32 %11, %13 br i1 %cmp5.i.not, label %call.i.i.noexc, label %if.then6.i if.then6.i: ; preds = %if.end.i20 - %cmp9.i = icmp eq i32 %12, 0 - %spec.store.select.i21 = select i1 %cmp9.i, i32 8, i32 %12 + %cmp9.i = icmp eq i32 %13, 0 + %spec.store.select.i21 = select i1 %cmp9.i, i32 8, i32 %13 br label %while.cond.i while.cond.i: ; preds = %while.cond.i, %if.then6.i %cap.0.i = phi i32 [ %spec.store.select.i21, %if.then6.i ], [ %mul.i, %while.cond.i ] - %cmp14.i.not = icmp slt i32 %10, %cap.0.i + %cmp14.i.not = icmp slt i32 %11, %cap.0.i %mul.i = shl nsw i32 %cap.0.i, 1 br i1 %cmp14.i.not, label %while.end.i, label %while.cond.i, !llvm.loop !4 @@ -5955,14 +5955,14 @@ _ZN3re28PODArrayINS_4Prog4InstEEC2Ei.exit.i: ; preds = %while.end.i call5.i3.i.i.noexc: ; preds = %_ZN3re28PODArrayINS_4Prog4InstEEC2Ei.exit.i %add.ptr.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %c, i64 128 - %13 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i, align 8 - %cmp17.not.i = icmp eq ptr %13, null - %idx.ext15.i = sext i32 %10 to i64 + %14 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i, align 8 + %cmp17.not.i = icmp eq ptr %14, null + %idx.ext15.i = sext i32 %11 to i64 br i1 %cmp17.not.i, label %if.end26.thread.i, label %if.then.i.i.i.i.i.i if.end26.thread.i: ; preds = %call5.i3.i.i.noexc %add.ptr16.i = getelementptr inbounds %"class.re2::Prog::Inst", ptr %call5.i3.i.i25, i64 %idx.ext15.i - %sub17.i = sub nsw i32 %cap.0.i, %10 + %sub17.i = sub nsw i32 %cap.0.i, %11 %conv3118.i = sext i32 %sub17.i to i64 %mul3219.i = shl nsw i64 %conv3118.i, 3 call void @llvm.memset.p0.i64(ptr nonnull align 4 %add.ptr16.i, i8 0, i64 %mul3219.i, i1 false) @@ -5971,29 +5971,29 @@ if.end26.thread.i: ; preds = %call5.i3.i.i.noexc if.then.i.i.i.i.i.i: ; preds = %call5.i3.i.i.noexc %mul25.i = shl nsw i64 %idx.ext15.i, 3 - call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %call5.i3.i.i25, ptr nonnull align 4 %13, i64 %mul25.i, i1 false) + call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %call5.i3.i.i25, ptr nonnull align 4 %14, i64 %mul25.i, i1 false) %add.ptr.i = getelementptr inbounds %"class.re2::Prog::Inst", ptr %call5.i3.i.i25, i64 %idx.ext15.i - %sub.i22 = sub nsw i32 %cap.0.i, %10 + %sub.i22 = sub nsw i32 %cap.0.i, %11 %conv31.i = sext i32 %sub.i22 to i64 %mul32.i = shl nsw i64 %conv31.i, 3 call void @llvm.memset.p0.i64(ptr nonnull align 4 %add.ptr.i, i8 0, i64 %mul32.i, i1 false) store ptr %call5.i3.i.i25, ptr %add.ptr.i.i.i.i.i.i.i, align 8 - call void @_ZdlPv(ptr noundef nonnull %13) #25 + call void @_ZdlPv(ptr noundef nonnull %14) #25 %.pre.pre.i = load i32, ptr %ninst_.i, align 8 %.pre22.i = add nsw i32 %.pre.pre.i, 1 br label %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i _ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i: ; preds = %if.then.i.i.i.i.i.i, %if.end26.thread.i %.pre21.pre-phi.i = phi i32 [ %.pre22.i, %if.then.i.i.i.i.i.i ], [ %add.i, %if.end26.thread.i ] - %.pre.i = phi i32 [ %.pre.pre.i, %if.then.i.i.i.i.i.i ], [ %10, %if.end26.thread.i ] + %.pre.i = phi i32 [ %.pre.pre.i, %if.then.i.i.i.i.i.i ], [ %11, %if.end26.thread.i ] store i32 %cap.0.i, ptr %inst_.i, align 8 br label %call.i.i.noexc call.i.i.noexc: ; preds = %if.end.i20, %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i %add38.pre-phi.i = phi i32 [ %.pre21.pre-phi.i, %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i ], [ %add.i, %if.end.i20 ] - %14 = phi i32 [ %.pre.i, %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i ], [ %10, %if.end.i20 ] + %15 = phi i32 [ %.pre.i, %_ZN3re28PODArrayINS_4Prog4InstEED2Ev.exit.i ], [ %11, %if.end.i20 ] store i32 %add38.pre-phi.i, ptr %ninst_.i, align 8 - %cmp.i.i = icmp slt i32 %14, 0 + %cmp.i.i = icmp slt i32 %15, 0 br i1 %cmp.i.i, label %if.then.i.i, label %if.end.i.i if.then.i.i: ; preds = %call.i.i.noexc.thread, %call.i.i.noexc @@ -6010,18 +6010,18 @@ if.then.i.i: ; preds = %call.i.i.noexc.thre br label %_ZN3re28Compiler9ByteRangeEiib.exit.i if.end.i.i: ; preds = %call.i.i.noexc - %conv.i.i.i = zext nneg i32 %14 to i64 + %conv.i.i.i = zext nneg i32 %15 to i64 %add.ptr.i.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %c, i64 128 - %15 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i.i.i, align 8 - %arrayidx.i.i.i.i = getelementptr inbounds nuw %"class.re2::Prog::Inst", ptr %15, i64 %conv.i.i.i + %16 = load ptr, ptr %add.ptr.i.i.i.i.i.i.i.i.i, align 8 + %arrayidx.i.i.i.i = getelementptr inbounds nuw %"class.re2::Prog::Inst", ptr %16, i64 %conv.i.i.i invoke void @_ZN3re24Prog4Inst13InitByteRangeEiiij(ptr noundef nonnull align 4 dereferenceable(8) %arrayidx.i.i.i.i, i32 noundef 0, i32 noundef 255, i32 noundef 0, i32 noundef 0) to label %.noexc unwind label %lpad .noexc: ; preds = %if.end.i.i - %shl.i.i = shl nuw i32 %14, 1 + %shl.i.i = shl nuw i32 %15, 1 %retval.sroa.2.0.insert.ext.i.i.i = zext i32 %shl.i.i to i64 %retval.sroa.0.0.insert.insert.i.i.i = mul nuw i64 %retval.sroa.2.0.insert.ext.i.i.i, 4294967297 - store i32 %14, ptr %retval.i.i, align 8 + store i32 %15, ptr %retval.i.i, align 8 %retval.i.i.4.retval.i.i.4.retval.i.i.4.retval.i.4.retval.i.4.retval.4.retval.4.end3.i.sroa_idx = getelementptr inbounds nuw i8, ptr %retval.i.i, i64 4 store i64 %retval.sroa.0.0.insert.insert.i.i.i, ptr %retval.i.i.4.retval.i.i.4.retval.i.i.4.retval.i.4.retval.i.4.retval.4.retval.4.end3.i.sroa_idx, align 4 %retval.i.i.12.retval.i.i.12.retval.i.i.12.retval.i.12.retval.i.12.retval.12.retval.12.nullable4.i.sroa_idx = getelementptr inbounds nuw i8, ptr %retval.i.i, i64 12 @@ -6039,20 +6039,20 @@ _ZN3re28Compiler9ByteRangeEiib.exit.i: ; preds = %.noexc, %if.then.i. to label %invoke.cont16 unwind label %lpad invoke.cont16: ; preds = %_ZN3re28Compiler9ByteRangeEiib.exit.i - %16 = extractvalue { i64, i64 } %call2.i17, 0 - %17 = extractvalue { i64, i64 } %call2.i17, 1 - %call20 = call { i64, i64 } @_ZN3re28Compiler3CatENS_4FragES1_(ptr noundef nonnull align 8 dereferenceable(212) %c, i64 %16, i64 %17, i64 %4, i64 %5) - %18 = extractvalue { i64, i64 } %call20, 0 + %17 = extractvalue { i64, i64 } %call2.i17, 0 + %18 = extractvalue { i64, i64 } %call2.i17, 1 + %call20 = call { i64, i64 } @_ZN3re28Compiler3CatENS_4FragES1_(ptr noundef nonnull align 8 dereferenceable(212) %c, i64 %17, i64 %18, i64 %5, i64 %6) + %19 = extractvalue { i64, i64 } %call20, 0 br label %if.end21 if.end21: ; preds = %invoke.cont16, %if.end9 - %all.sroa.0.0.in = phi i64 [ %18, %invoke.cont16 ], [ %4, %if.end9 ] + %all.sroa.0.0.in = phi i64 [ %19, %invoke.cont16 ], [ %5, %if.end9 ] %all.sroa.0.0 = trunc i64 %all.sroa.0.0.in to i32 - %19 = load ptr, ptr %prog_, align 8 - %start_.i = getelementptr inbounds nuw i8, ptr %19, i64 8 - store i32 %all.sroa.0.0, ptr %start_.i, align 8 %20 = load ptr, ptr %prog_, align 8 - %start_unanchored_.i = getelementptr inbounds nuw i8, ptr %20, i64 12 + %start_.i = getelementptr inbounds nuw i8, ptr %20, i64 8 + store i32 %all.sroa.0.0, ptr %start_.i, align 8 + %21 = load ptr, ptr %prog_, align 8 + %start_unanchored_.i = getelementptr inbounds nuw i8, ptr %21, i64 12 store i32 %all.sroa.0.0, ptr %start_unanchored_.i, align 4 %call28 = invoke noundef ptr @_ZN3re28Compiler6FinishEPNS_6RegexpE(ptr noundef nonnull align 8 dereferenceable(212) %c, ptr noundef nonnull %re) to label %invoke.cont27 unwind label %lpad @@ -6067,8 +6067,8 @@ if.end31: ; preds = %invoke.cont27 to label %invoke.cont35 unwind label %lpad invoke.cont35: ; preds = %if.end31 - %21 = load i8, ptr %dfa_failed, align 1 - %tobool37 = trunc i8 %21 to i1 + %22 = load i8, ptr %dfa_failed, align 1 + %tobool37 = trunc i8 %22 to i1 br i1 %tobool37, label %delete.notnull, label %cleanup delete.notnull: ; preds = %invoke.cont35 diff --git a/bench/rocksdb/optimized/filter_policy.cc.ll b/bench/rocksdb/optimized/filter_policy.cc.ll index 4bf7039a284..a876a8d9da8 100644 --- a/bench/rocksdb/optimized/filter_policy.cc.ll +++ b/bench/rocksdb/optimized/filter_policy.cc.ll @@ -6663,10 +6663,10 @@ entry: %mul = mul i64 %num_entries, %conv %add = add i64 %mul, 7999 %div = udiv i64 %add, 8000 - %spec.store.select = tail call i64 @llvm.umin.i64(i64 %div, i64 4294967232) - %add2 = add nuw nsw i64 %spec.store.select, 63 - %and = and i64 %add2, 8589934528 - %add3 = or disjoint i64 %and, 5 + %cmp = tail call i64 @llvm.umin.i64(i64 %div, i64 4294967232) + %1 = add nuw nsw i64 %cmp, 63 + %2 = and i64 %1, 8589934528 + %3 = or disjoint i64 %2, 5 ret i64 %add3 } @@ -10807,30 +10807,30 @@ if.then: ; preds = %entry %mul.i = mul i64 %num_entries, %conv.i %add.i = add i64 %mul.i, 7999 %div.i = udiv i64 %add.i, 8000 - %spec.store.select.i = tail call i64 @llvm.umin.i64(i64 %div.i, i64 4294967232) - %add2.i = add nuw nsw i64 %spec.store.select.i, 63 - %and.i = and i64 %add2.i, 8589934528 + %cmp.i = tail call i64 @llvm.umin.i64(i64 %div.i, i64 4294967232) + %1 = add nuw nsw i64 %cmp.i, 63 + %2 = and i64 %1, 8589934528 br label %if.end18.sink.split if.end: ; preds = %entry %_M_finish.i = getelementptr inbounds nuw i8, ptr %this, i64 168 %_M_start.i = getelementptr inbounds nuw i8, ptr %this, i64 136 - %1 = load ptr, ptr %_M_finish.i, align 8 - %2 = load ptr, ptr %_M_start.i, align 8 - %cmp.i.i = icmp eq ptr %1, %2 + %4 = load ptr, ptr %_M_finish.i, align 8 + %5 = load ptr, ptr %_M_start.i, align 8 + %cmp.i.i = icmp eq ptr %4, %5 br i1 %cmp.i.i, label %if.end8, label %if.then3 if.then3: ; preds = %if.end - %3 = load i64, ptr %2, align 8 - %shr.i = lshr i64 %3, 32 + %6 = load i64, ptr %5, align 8 + %shr.i = lshr i64 %6, 32 %conv.i12 = trunc nuw i64 %shr.i to i32 - %4 = uitofp i32 %conv.i12 to double - %5 = fadd double %4, 5.000000e-01 - %6 = fmul double %5, 0x3DF0000000000000 + %7 = uitofp i32 %conv.i12 to double + %8 = fadd double %7, 5.000000e-01 + %9 = fmul double %8, 0x3DF0000000000000 br label %if.end8 if.end8: ; preds = %if.then3, %if.end - %entropy.0 = phi double [ 0x3DE0000000000000, %if.end ], [ %6, %if.then3 ] + %entropy.0 = phi double [ 0x3DE0000000000000, %if.end ], [ %9, %if.then3 ] %conv = trunc nuw nsw i64 %num_entries to i32 %call.i = tail call noundef i32 @_ZN7rocksdb6ribbon6detail34BandingConfigHelper1MaybeSupportedILNS0_25ConstructionFailureChanceE1ELm128ELb0ELb0ELb1EE11GetNumSlotsEj(i32 noundef range(i32 0, 950000001) %conv) %sub.i.i = add i32 %call.i, 127 @@ -10839,34 +10839,34 @@ if.end8: ; preds = %if.then3, %if.end %spec.select.i.i = select i1 %cmp.i.i13, i32 256, i32 %div3.i.i store i32 %spec.select.i.i, ptr %num_slots, align 4 %desired_one_in_fp_rate_ = getelementptr inbounds nuw i8, ptr %this, i64 288 - %7 = load double, ptr %desired_one_in_fp_rate_, align 8 - %div.i14 = fdiv double 1.000000e+00, %7 - %cmp.i.i15 = fcmp ogt double %7, 1.000000e+00 + %10 = load double, ptr %desired_one_in_fp_rate_, align 8 + %div.i14 = fdiv double 1.000000e+00, %10 + %cmp.i.i15 = fcmp ogt double %10, 1.000000e+00 %cmp1.i.i = fcmp olt double %div.i14, 1.000000e+00 %or.cond.i.i = and i1 %cmp.i.i15, %cmp1.i.i br i1 %or.cond.i.i, label %if.then.i.i, label %_ZN7rocksdb6ribbon31SerializableInterleavedSolutionINS0_23StandardRehasherAdapterINS_12_GLOBAL__N_141Standard128RibbonRehasherTypesAndSettingsEEEE22GetBytesForOneInFpRateEjdj.exit if.then.i.i: ; preds = %if.end8 - %cmp2.i.i = fcmp ugt double %7, 0x41EFFFFFFFE00000 + %cmp2.i.i = fcmp ugt double %10, 0x41EFFFFFFFE00000 br i1 %cmp2.i.i, label %if.else.i.i, label %if.then3.i.i if.then3.i.i: ; preds = %if.then.i.i - %conv.i.i = fptoui double %7 to i32 - %8 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %conv.i.i, i1 true) - %sub.i.neg.i.i = add nsw i32 %8, -31 + %conv.i.i = fptoui double %10 to i32 + %11 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %conv.i.i, i1 true) + %sub.i.neg.i.i = add nsw i32 %11, -31 %ldexp.i.i = tail call double @ldexp(double 1.000000e+00, i32 %sub.i.neg.i.i) - %sub5.i.i = or disjoint i32 %8, -32 + %sub5.i.i = or disjoint i32 %11, -32 %ldexp14.i.i = tail call double @ldexp(double 1.000000e+00, i32 %sub5.i.i) %sub7.i.i = fsub double %div.i14, %ldexp14.i.i %sub8.i.i = fsub double %ldexp.i.i, %ldexp14.i.i %div.i.i = fdiv double %sub7.i.i, %sub8.i.i %add13.i.i = add i32 %spec.select.i.i, -127 %conv14.i.i = uitofp i32 %add13.i.i to double - %9 = tail call double @llvm.fmuladd.f64(double %div.i.i, double %conv14.i.i, double %entropy.0) - %div15.i.i = fmul double %9, 7.812500e-03 + %12 = tail call double @llvm.fmuladd.f64(double %div.i.i, double %conv14.i.i, double %entropy.0) + %div15.i.i = fmul double %12, 7.812500e-03 %conv16.i.i = fptoui double %div15.i.i to i32 %div1711.i.i = lshr exact i32 %spec.select.i.i, 7 - %mul15.i.i = sub nuw nsw i32 32, %8 + %mul15.i.i = sub nuw nsw i32 32, %11 %sub18.i.i = mul nuw nsw i32 %mul15.i.i, %div1711.i.i %add19.i.i = sub i32 %sub18.i.i, %conv16.i.i %conv20.i.i = zext i32 %add19.i.i to i64 @@ -10882,21 +10882,21 @@ _ZN7rocksdb6ribbon31SerializableInterleavedSolutionINS0_23StandardRehasherAdapte %retval.0.i.i = phi i64 [ %mul21.i.i, %if.then3.i.i ], [ %mul23.i.i, %if.else.i.i ], [ 16, %if.end8 ] %add = add nuw nsw i64 %retval.0.i.i, 5 store i64 %add, ptr %target_len_with_metadata, align 8 - %10 = load i32, ptr %num_slots, align 4 - %cmp11 = icmp ult i32 %10, 1024 + %13 = load i32, ptr %num_slots, align 4 + %cmp11 = icmp ult i32 %13, 1024 br i1 %cmp11, label %if.then12, label %if.end18 if.then12: ; preds = %_ZN7rocksdb6ribbon31SerializableInterleavedSolutionINS0_23StandardRehasherAdapterINS_12_GLOBAL__N_141Standard128RibbonRehasherTypesAndSettingsEEEE22GetBytesForOneInFpRateEjdj.exit %millibits_per_key_.i16 = getelementptr inbounds nuw i8, ptr %this, i64 592 - %11 = load i32, ptr %millibits_per_key_.i16, align 8 - %conv.i17 = sext i32 %11 to i64 + %14 = load i32, ptr %millibits_per_key_.i16, align 8 + %conv.i17 = sext i32 %14 to i64 %mul.i18 = mul nsw i64 %num_entries, %conv.i17 %add.i19 = add nsw i64 %mul.i18, 7999 %div.i20 = udiv i64 %add.i19, 8000 - %spec.store.select.i21 = tail call i64 @llvm.umin.i64(i64 %div.i20, i64 4294967232) - %add2.i22 = add nuw nsw i64 %spec.store.select.i21, 63 - %and.i23 = and i64 %add2.i22, 8589934528 - %cmp15 = icmp samesign ult i64 %and.i23, %retval.0.i.i + %cmp.i21 = tail call i64 @llvm.umin.i64(i64 %div.i20, i64 4294967232) + %15 = add nuw nsw i64 %cmp.i21, 63 + %16 = and i64 %15, 8589934528 + %17 = icmp samesign ult i64 %16, %retval.0.i.i br i1 %cmp15, label %if.then16, label %if.end18 if.then16: ; preds = %if.then12 @@ -10904,8 +10904,8 @@ if.then16: ; preds = %if.then12 br label %if.end18.sink.split if.end18.sink.split: ; preds = %if.then, %if.then16 - %add3.i24.sink.in = phi i64 [ %and.i23, %if.then16 ], [ %and.i, %if.then ] - %add3.i24.sink = or disjoint i64 %add3.i24.sink.in, 5 + %add3.i22.sink = phi i64 [ %and.i23, %if.then16 ], [ %and.i, %if.then ] + %add3.i24.sink = or disjoint i64 %add3.i22.sink, 5 store i64 %add3.i24.sink, ptr %target_len_with_metadata, align 8 br label %if.end18 diff --git a/bench/rocksdb/optimized/version_set.cc.ll b/bench/rocksdb/optimized/version_set.cc.ll index 9fd5eca90e2..6dd79fb7b32 100644 --- a/bench/rocksdb/optimized/version_set.cc.ll +++ b/bench/rocksdb/optimized/version_set.cc.ll @@ -6613,8 +6613,8 @@ ehcleanup: ; preds = %lpad72, %lpad61 br label %ehcleanup92 cleanup: ; preds = %invoke.cont50 - %spec.select = call i32 @llvm.smax.i32(i32 %num_entries_left.6, i32 0) - %spec.select17 = select i1 %cmp52, i32 0, i32 5 + %cmp88 = call i32 @llvm.smax.i32(i32 %num_entries_left.6, i32 0) + %spec.select = select i1 %cmp52, i32 0, i32 5 br label %nrvo.unused nrvo.unused: ; preds = %cleanup, %if.end42 diff --git a/bench/slurm/optimized/job_test.ll b/bench/slurm/optimized/job_test.ll index c974a731319..cfe474faa78 100644 --- a/bench/slurm/optimized/job_test.ll +++ b/bench/slurm/optimized/job_test.ll @@ -2406,7 +2406,7 @@ _build_gres_mc_data.exit: ; preds = %471, %475, %478 %490 = call i64 @bit_fls_from_bit(ptr noundef nonnull %486, i64 noundef %489) #9 %491 = trunc i64 %490 to i32 %.not649 = icmp ugt i32 %2, %491 - %492 = call i32 @llvm.smax.i32(i32 %491, i32 0) + %or.cond774 = call i32 @llvm.smax.i32(i32 %491, i32 0) %spec.select786 = select i1 %.not649, i32 0, i32 %492 br label %493 diff --git a/bench/slurm/optimized/mpi_cray_shasta_la-apinfo.ll b/bench/slurm/optimized/mpi_cray_shasta_la-apinfo.ll index c22d11ce8c4..6a757659bef 100644 --- a/bench/slurm/optimized/mpi_cray_shasta_la-apinfo.ll +++ b/bench/slurm/optimized/mpi_cray_shasta_la-apinfo.ll @@ -1768,7 +1768,7 @@ define internal fastcc range(i32 -1, 1) i32 @_write_pals_nodes(i32 noundef range %16 = icmp slt i32 %15, 1 %17 = load i32, ptr %3, align 4 %18 = call i32 @llvm.smax.i32(i32 %17, i32 -1) - %..i = select i1 %16, i32 -1, i32 %18 + %or.cond.i = select i1 %16, i32 -1, i32 %18 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) store i32 %..i, ptr %4, align 4 call void @free(ptr noundef nonnull %13) #11 diff --git a/bench/slurm/optimized/priority_basic.ll b/bench/slurm/optimized/priority_basic.ll index 81d4e17982e..9588e7a4b4e 100644 --- a/bench/slurm/optimized/priority_basic.ll +++ b/bench/slurm/optimized/priority_basic.ll @@ -71,7 +71,7 @@ define range(i32 1, 0) i32 @priority_p_set(i32 noundef %0, ptr noundef readonly %17 = add i32 %15, -2147483647 %18 = icmp ugt i32 %spec.select, %17 %19 = tail call i32 @llvm.smin.i32(i32 %16, i32 0) - %20 = select i1 %18, i32 %16, i32 %19 + %or.cond = select i1 %18, i32 %16, i32 %19 %spec.select22 = sub i32 %spec.select, %20 br label %21 diff --git a/bench/snappy/optimized/snappy.cc.ll b/bench/snappy/optimized/snappy.cc.ll index b0f33ee2734..3f93f0c6b15 100644 --- a/bench/snappy/optimized/snappy.cc.ll +++ b/bench/snappy/optimized/snappy.cc.ll @@ -4868,28 +4868,28 @@ define linkonce_odr dso_local noundef ptr @_ZN6snappy19SnappySinkAllocator8Alloc entry: %0 = sext i32 %size to i64 %1 = tail call i64 @llvm.smax.i64(i64 %0, i64 -1) - %call = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %1) #21 + %2 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %1) #21 %blocks_ = getelementptr inbounds nuw i8, ptr %this, i64 8 %_M_finish.i = getelementptr inbounds nuw i8, ptr %this, i64 16 - %2 = load ptr, ptr %_M_finish.i, align 8 + %3 = load ptr, ptr %_M_finish.i, align 8 %_M_end_of_storage.i = getelementptr inbounds nuw i8, ptr %this, i64 24 - %3 = load ptr, ptr %_M_end_of_storage.i, align 8 - %cmp.not.i = icmp eq ptr %2, %3 + %4 = load ptr, ptr %_M_end_of_storage.i, align 8 + %cmp.not.i = icmp eq ptr %3, %4 br i1 %cmp.not.i, label %if.else.i, label %if.then.i if.then.i: ; preds = %entry - store ptr %call, ptr %2, align 8 - %block.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %2, i64 8 + store ptr %call, ptr %3, align 8 + %block.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 8 store i64 %0, ptr %block.sroa.4.0..sroa_idx, align 8 - %4 = load ptr, ptr %_M_finish.i, align 8 - %incdec.ptr.i = getelementptr inbounds nuw i8, ptr %4, i64 16 + %5 = load ptr, ptr %_M_finish.i, align 8 + %incdec.ptr.i = getelementptr inbounds nuw i8, ptr %5, i64 16 store ptr %incdec.ptr.i, ptr %_M_finish.i, align 8 br label %_ZNSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE9push_backERKS2_.exit if.else.i: ; preds = %entry - %5 = load ptr, ptr %blocks_, align 8 - %sub.ptr.lhs.cast.i.i.i.i = ptrtoint ptr %2 to i64 - %sub.ptr.rhs.cast.i.i.i.i = ptrtoint ptr %5 to i64 + %6 = load ptr, ptr %blocks_, align 8 + %sub.ptr.lhs.cast.i.i.i.i = ptrtoint ptr %3 to i64 + %sub.ptr.rhs.cast.i.i.i.i = ptrtoint ptr %6 to i64 %sub.ptr.sub.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i %cmp.i.i.i = icmp eq i64 %sub.ptr.sub.i.i.i.i, 9223372036854775792 br i1 %cmp.i.i.i, label %if.then.i.i.i, label %_ZNKSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE12_M_check_lenEmPKc.exit.i.i @@ -4903,8 +4903,8 @@ _ZNKSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE12_M_check_lenEmPK %.sroa.speculated.i.i.i = tail call i64 @llvm.umax.i64(i64 %sub.ptr.div.i.i.i.i, i64 1) %add.i.i.i = add nsw i64 %.sroa.speculated.i.i.i, %sub.ptr.div.i.i.i.i %cmp7.i.i.i = icmp ult i64 %add.i.i.i, %sub.ptr.div.i.i.i.i - %6 = tail call i64 @llvm.umin.i64(i64 %add.i.i.i, i64 576460752303423487) - %cond.i.i.i = select i1 %cmp7.i.i.i, i64 576460752303423487, i64 %6 + %7 = tail call i64 @llvm.umin.i64(i64 %add.i.i.i, i64 576460752303423487) + %cond.i.i.i = select i1 %cmp7.i.i.i, i64 576460752303423487, i64 %7 %cmp.not.i.i.i = icmp ne i64 %cond.i.i.i, 0 tail call void @llvm.assume(i1 %cmp.not.i.i.i) %mul.i.i.i.i.i = shl nuw nsw i64 %cond.i.i.i, 4 @@ -4913,26 +4913,26 @@ _ZNKSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE12_M_check_lenEmPK store ptr %call, ptr %add.ptr.i.i, align 8 %block.sroa.4.0.add.ptr.i.i.sroa_idx = getelementptr inbounds nuw i8, ptr %add.ptr.i.i, i64 8 store i64 %0, ptr %block.sroa.4.0.add.ptr.i.i.sroa_idx, align 8 - %cmp.not5.i.i.i.i.i.i = icmp eq ptr %5, %2 + %cmp.not5.i.i.i.i.i.i = icmp eq ptr %6, %3 br i1 %cmp.not5.i.i.i.i.i.i, label %_ZNSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit19.i.i, label %for.body.i.i.i.i.i.i for.body.i.i.i.i.i.i: ; preds = %_ZNKSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE12_M_check_lenEmPKc.exit.i.i, %for.body.i.i.i.i.i.i %__cur.07.i.i.i.i.i.i = phi ptr [ %incdec.ptr1.i.i.i.i.i.i, %for.body.i.i.i.i.i.i ], [ %call5.i.i.i.i.i, %_ZNKSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE12_M_check_lenEmPKc.exit.i.i ] - %__first.addr.06.i.i.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i.i.i, %for.body.i.i.i.i.i.i ], [ %5, %_ZNKSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE12_M_check_lenEmPKc.exit.i.i ] + %__first.addr.06.i.i.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i.i.i, %for.body.i.i.i.i.i.i ], [ %6, %_ZNKSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE12_M_check_lenEmPKc.exit.i.i ] tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %__cur.07.i.i.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(16) %__first.addr.06.i.i.i.i.i.i, i64 16, i1 false), !alias.scope !52 %incdec.ptr.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %__first.addr.06.i.i.i.i.i.i, i64 16 %incdec.ptr1.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %__cur.07.i.i.i.i.i.i, i64 16 - %cmp.not.i.i.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i.i, %2 + %cmp.not.i.i.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i.i, %3 br i1 %cmp.not.i.i.i.i.i.i, label %_ZNSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit19.i.i, label %for.body.i.i.i.i.i.i, !llvm.loop !56 _ZNSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit19.i.i: ; preds = %for.body.i.i.i.i.i.i, %_ZNKSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE12_M_check_lenEmPKc.exit.i.i %__cur.0.lcssa.i.i.i.i.i.i = phi ptr [ %call5.i.i.i.i.i, %_ZNKSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE12_M_check_lenEmPKc.exit.i.i ], [ %incdec.ptr1.i.i.i.i.i.i, %for.body.i.i.i.i.i.i ] %incdec.ptr.i.i = getelementptr inbounds nuw i8, ptr %__cur.0.lcssa.i.i.i.i.i.i, i64 16 - %tobool.not.i.i.i = icmp eq ptr %5, null + %tobool.not.i.i.i = icmp eq ptr %6, null br i1 %tobool.not.i.i.i, label %_ZNSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_.exit.i, label %if.then.i20.i.i if.then.i20.i.i: ; preds = %_ZNSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit19.i.i - tail call void @_ZdlPv(ptr noundef nonnull %5) #22 + tail call void @_ZdlPv(ptr noundef nonnull %6) #22 br label %_ZNSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_.exit.i _ZNSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_.exit.i: ; preds = %if.then.i20.i.i, %_ZNSt6vectorIN6snappy19SnappySinkAllocator9DatablockESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit19.i.i diff --git a/bench/velox/optimized/ExprCompiler.cpp.ll b/bench/velox/optimized/ExprCompiler.cpp.ll index 9fa23798274..3234c6eb851 100644 --- a/bench/velox/optimized/ExprCompiler.cpp.ll +++ b/bench/velox/optimized/ExprCompiler.cpp.ll @@ -19503,13 +19503,13 @@ if.else11.i.i: ; preds = %if.then %add.i.i.i = sub nuw nsw i32 64, %4 %conv.i.i = zext nneg i32 %add.i.i.i to i64 %shl.i.i = shl nuw nsw i64 1, %conv.i.i - %sub246.i.i = tail call i32 @llvm.umin.i32(i32 %add.i.i.i, i32 12) - %shl25.i.i = shl nuw nsw i32 10, %sub246.i.i + %sh_prom.i.i = tail call i32 @llvm.umin.i32(i32 %add.i.i.i, i32 12) + %shl25.i.i = shl nuw nsw i32 10, %sh_prom.i.i %conv26.i.i = zext nneg i32 %shl25.i.i to i64 %sub.i.i.i = add nsw i64 %shl.i.i, -1 %shr.i.i.i = lshr i64 %sub.i.i.i, 12 - %add.i8.i.i = add nuw nsw i64 %shr.i.i.i, 1 - %mul.i.i.i = mul nuw nsw i64 %add.i8.i.i, %conv26.i.i + %add.i7.i.i = add nuw nsw i64 %shr.i.i.i, 1 + %mul.i.i.i = mul nuw nsw i64 %add.i7.i.i, %conv26.i.i %cmp32.i.i = icmp samesign ugt i64 %mul.i.i.i, 4294967295 br i1 %cmp32.i.i, label %if.then33.i.i, label %_ZN5folly6detail18rawOverAlignedImplISaIhELm16ELb1EEEvRKT_mRPv.exit.i.i.i.i diff --git a/bench/wireshark/optimized/netscaler.c.ll b/bench/wireshark/optimized/netscaler.c.ll index ce705ffcf86..d2d9fd49b1c 100644 --- a/bench/wireshark/optimized/netscaler.c.ll +++ b/bench/wireshark/optimized/netscaler.c.ll @@ -4596,29 +4596,29 @@ define internal range(i32 0, 2) i32 @nstrace_read_v30(ptr noundef readonly captu %27 = load i8, ptr %26, align 1 %28 = icmp eq i8 %27, 0 %29 = tail call i32 @llvm.umax.i32(i32 %.0330, i32 16384) - %spec.store.select = select i1 %28, i32 %29, i32 %.0330 - %30 = load ptr, ptr %0, align 8 - %31 = tail call i32 @file_eof(ptr noundef %30) #10 - %32 = icmp ne i32 %31, 0 - %33 = add nsw i32 %.0331, -1 - %34 = icmp ult i32 %33, 16383 + %30 = select i1 %28, i32 %29, i32 %.0330 + %31 = load ptr, ptr %0, align 8 + %32 = tail call i32 @file_eof(ptr noundef %31) #10 + %33 = icmp ne i32 %32, 0 + %or.cond5 = add nsw i32 %.0331, -1 + %34 = icmp ult i32 %or.cond5, 16383 %or.cond5 = and i1 %34, %32 br i1 %or.cond5, label %35, label %40 -35: ; preds = %24 - %36 = zext nneg i32 %.0331 to i64 - %37 = getelementptr i8, ptr %9, i64 %36 +35:; preds = %24 + %37 = zext nneg i32 %.0331 to i64 + %38 = getelementptr i8, ptr %9, i64 %36 %38 = sub nuw nsw i32 16384, %.0331 %39 = zext nneg i32 %38 to i64 tail call void @llvm.memset.p0.i64(ptr align 1 %37, i8 0, i64 %39, i1 false) br label %40 -40: ; preds = %35, %24 +40:; preds = %35, %24 %41 = icmp ult i32 %spec.store.select, 16384 br i1 %41, label %.lr.ph, label %.critedge .lr.ph: ; preds = %40, %364 - %.1459 = phi i32 [ %.10, %364 ], [ %spec.store.select, %40 ] + %.1459 = phi i32 [ %.10, %364 ], [ %30, %40 ] %42 = zext nneg i32 %.1459 to i64 %43 = getelementptr i8, ptr %9, i64 %42 %44 = load i8, ptr %43, align 1 diff --git a/bench/wireshark/optimized/packet-asterix.c.ll b/bench/wireshark/optimized/packet-asterix.c.ll index 55db08235e4..cd9997116aa 100644 --- a/bench/wireshark/optimized/packet-asterix.c.ll +++ b/bench/wireshark/optimized/packet-asterix.c.ll @@ -36116,40 +36116,40 @@ target triple = "x86_64-pc-linux-gnu" ; Function Attrs: nounwind uwtable define hidden void @proto_register_asterix() local_unnamed_addr #0 { - %1 = tail call i32 @proto_register_protocol(ptr noundef nonnull @.str.10822, ptr noundef nonnull @.str.10823, ptr noundef nonnull @.str.10824) #4 + %1 = tail call i32 @proto_register_protocol(ptr noundef nonnull @.str.10822, ptr noundef nonnull @.str.10823, ptr noundef nonnull @.str.10824) #3 store i32 %1, ptr @proto_asterix, align 4 - tail call void @proto_register_field_array(i32 noundef %1, ptr noundef nonnull @proto_register_asterix.hf, i32 noundef 9054) #4 - tail call void @proto_register_subtree_array(ptr noundef nonnull @proto_register_asterix.ett, i32 noundef 5) #4 + tail call void @proto_register_field_array(i32 noundef %1, ptr noundef nonnull @proto_register_asterix.hf, i32 noundef 9054) #3 + tail call void @proto_register_subtree_array(ptr noundef nonnull @proto_register_asterix.ett, i32 noundef 5) #3 %2 = load i32, ptr @proto_asterix, align 4 - %3 = tail call ptr @register_dissector(ptr noundef nonnull @.str.10824, ptr noundef nonnull @dissect_asterix, i32 noundef %2) #4 + %3 = tail call ptr @register_dissector(ptr noundef nonnull @.str.10824, ptr noundef nonnull @dissect_asterix, i32 noundef %2) #3 store ptr %3, ptr @asterix_handle, align 8 %4 = load i32, ptr @proto_asterix, align 4 - %5 = tail call ptr @prefs_register_protocol(i32 noundef %4, ptr noundef null) #4 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10825, ptr noundef nonnull @.str.10826, ptr noundef nonnull @.str.10827, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 4), ptr noundef nonnull @I001_versions, i32 noundef 0) #4 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10828, ptr noundef nonnull @.str.10829, ptr noundef nonnull @.str.10830, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 8), ptr noundef nonnull @I002_versions, i32 noundef 0) #4 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10831, ptr noundef nonnull @.str.10832, ptr noundef nonnull @.str.10833, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 16), ptr noundef nonnull @I004_versions, i32 noundef 0) #4 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10834, ptr noundef nonnull @.str.10835, ptr noundef nonnull @.str.10836, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 32), ptr noundef nonnull @I008_versions, i32 noundef 0) #4 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10837, ptr noundef nonnull @.str.10838, ptr noundef nonnull @.str.10839, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 36), ptr noundef nonnull @I009_versions, i32 noundef 0) #4 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10840, ptr noundef nonnull @.str.10841, ptr noundef nonnull @.str.10842, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 40), ptr noundef nonnull @I010_versions, i32 noundef 0) #4 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10843, ptr noundef nonnull @.str.10844, ptr noundef nonnull @.str.10845, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 44), ptr noundef nonnull @I011_versions, i32 noundef 0) #4 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10846, ptr noundef nonnull @.str.10847, ptr noundef nonnull @.str.10848, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 60), ptr noundef nonnull @I015_versions, i32 noundef 0) #4 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10849, ptr noundef nonnull @.str.10850, ptr noundef nonnull @.str.10851, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 64), ptr noundef nonnull @I016_versions, i32 noundef 0) #4 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10852, ptr noundef nonnull @.str.10853, ptr noundef nonnull @.str.10854, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 68), ptr noundef nonnull @I017_versions, i32 noundef 0) #4 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10855, ptr noundef nonnull @.str.10856, ptr noundef nonnull @.str.10857, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 72), ptr noundef nonnull @I018_versions, i32 noundef 0) #4 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10858, ptr noundef nonnull @.str.10859, ptr noundef nonnull @.str.10860, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 76), ptr noundef nonnull @I019_versions, i32 noundef 0) #4 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10861, ptr noundef nonnull @.str.10862, ptr noundef nonnull @.str.10863, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 80), ptr noundef nonnull @I020_versions, i32 noundef 0) #4 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10864, ptr noundef nonnull @.str.10865, ptr noundef nonnull @.str.10866, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 84), ptr noundef nonnull @I021_versions, i32 noundef 0) #4 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10867, ptr noundef nonnull @.str.10868, ptr noundef nonnull @.str.10869, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 92), ptr noundef nonnull @I023_versions, i32 noundef 0) #4 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10870, ptr noundef nonnull @.str.10871, ptr noundef nonnull @.str.10872, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 100), ptr noundef nonnull @I025_versions, i32 noundef 0) #4 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10873, ptr noundef nonnull @.str.10874, ptr noundef nonnull @.str.10875, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 128), ptr noundef nonnull @I032_versions, i32 noundef 0) #4 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10876, ptr noundef nonnull @.str.10877, ptr noundef nonnull @.str.10878, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 136), ptr noundef nonnull @I034_versions, i32 noundef 0) #4 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10879, ptr noundef nonnull @.str.10880, ptr noundef nonnull @.str.10881, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 192), ptr noundef nonnull @I048_versions, i32 noundef 0) #4 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10882, ptr noundef nonnull @.str.10883, ptr noundef nonnull @.str.10884, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 248), ptr noundef nonnull @I062_versions, i32 noundef 0) #4 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10885, ptr noundef nonnull @.str.10886, ptr noundef nonnull @.str.10887, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 252), ptr noundef nonnull @I063_versions, i32 noundef 0) #4 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10888, ptr noundef nonnull @.str.10889, ptr noundef nonnull @.str.10890, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 260), ptr noundef nonnull @I065_versions, i32 noundef 0) #4 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10891, ptr noundef nonnull @.str.10892, ptr noundef nonnull @.str.10893, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 820), ptr noundef nonnull @I205_versions, i32 noundef 0) #4 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10894, ptr noundef nonnull @.str.10895, ptr noundef nonnull @.str.10896, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 960), ptr noundef nonnull @I240_versions, i32 noundef 0) #4 - tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10897, ptr noundef nonnull @.str.10898, ptr noundef nonnull @.str.10899, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 988), ptr noundef nonnull @I247_versions, i32 noundef 0) #4 + %5 = tail call ptr @prefs_register_protocol(i32 noundef %4, ptr noundef null) #3 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10825, ptr noundef nonnull @.str.10826, ptr noundef nonnull @.str.10827, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 4), ptr noundef nonnull @I001_versions, i32 noundef 0) #3 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10828, ptr noundef nonnull @.str.10829, ptr noundef nonnull @.str.10830, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 8), ptr noundef nonnull @I002_versions, i32 noundef 0) #3 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10831, ptr noundef nonnull @.str.10832, ptr noundef nonnull @.str.10833, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 16), ptr noundef nonnull @I004_versions, i32 noundef 0) #3 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10834, ptr noundef nonnull @.str.10835, ptr noundef nonnull @.str.10836, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 32), ptr noundef nonnull @I008_versions, i32 noundef 0) #3 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10837, ptr noundef nonnull @.str.10838, ptr noundef nonnull @.str.10839, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 36), ptr noundef nonnull @I009_versions, i32 noundef 0) #3 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10840, ptr noundef nonnull @.str.10841, ptr noundef nonnull @.str.10842, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 40), ptr noundef nonnull @I010_versions, i32 noundef 0) #3 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10843, ptr noundef nonnull @.str.10844, ptr noundef nonnull @.str.10845, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 44), ptr noundef nonnull @I011_versions, i32 noundef 0) #3 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10846, ptr noundef nonnull @.str.10847, ptr noundef nonnull @.str.10848, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 60), ptr noundef nonnull @I015_versions, i32 noundef 0) #3 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10849, ptr noundef nonnull @.str.10850, ptr noundef nonnull @.str.10851, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 64), ptr noundef nonnull @I016_versions, i32 noundef 0) #3 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10852, ptr noundef nonnull @.str.10853, ptr noundef nonnull @.str.10854, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 68), ptr noundef nonnull @I017_versions, i32 noundef 0) #3 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10855, ptr noundef nonnull @.str.10856, ptr noundef nonnull @.str.10857, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 72), ptr noundef nonnull @I018_versions, i32 noundef 0) #3 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10858, ptr noundef nonnull @.str.10859, ptr noundef nonnull @.str.10860, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 76), ptr noundef nonnull @I019_versions, i32 noundef 0) #3 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10861, ptr noundef nonnull @.str.10862, ptr noundef nonnull @.str.10863, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 80), ptr noundef nonnull @I020_versions, i32 noundef 0) #3 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10864, ptr noundef nonnull @.str.10865, ptr noundef nonnull @.str.10866, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 84), ptr noundef nonnull @I021_versions, i32 noundef 0) #3 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10867, ptr noundef nonnull @.str.10868, ptr noundef nonnull @.str.10869, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 92), ptr noundef nonnull @I023_versions, i32 noundef 0) #3 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10870, ptr noundef nonnull @.str.10871, ptr noundef nonnull @.str.10872, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 100), ptr noundef nonnull @I025_versions, i32 noundef 0) #3 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10873, ptr noundef nonnull @.str.10874, ptr noundef nonnull @.str.10875, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 128), ptr noundef nonnull @I032_versions, i32 noundef 0) #3 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10876, ptr noundef nonnull @.str.10877, ptr noundef nonnull @.str.10878, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 136), ptr noundef nonnull @I034_versions, i32 noundef 0) #3 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10879, ptr noundef nonnull @.str.10880, ptr noundef nonnull @.str.10881, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 192), ptr noundef nonnull @I048_versions, i32 noundef 0) #3 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10882, ptr noundef nonnull @.str.10883, ptr noundef nonnull @.str.10884, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 248), ptr noundef nonnull @I062_versions, i32 noundef 0) #3 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10885, ptr noundef nonnull @.str.10886, ptr noundef nonnull @.str.10887, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 252), ptr noundef nonnull @I063_versions, i32 noundef 0) #3 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10888, ptr noundef nonnull @.str.10889, ptr noundef nonnull @.str.10890, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 260), ptr noundef nonnull @I065_versions, i32 noundef 0) #3 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10891, ptr noundef nonnull @.str.10892, ptr noundef nonnull @.str.10893, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 820), ptr noundef nonnull @I205_versions, i32 noundef 0) #3 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10894, ptr noundef nonnull @.str.10895, ptr noundef nonnull @.str.10896, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 960), ptr noundef nonnull @I240_versions, i32 noundef 0) #3 + tail call void @prefs_register_enum_preference(ptr noundef %5, ptr noundef nonnull @.str.10897, ptr noundef nonnull @.str.10898, ptr noundef nonnull @.str.10899, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @global_categories_version, i64 988), ptr noundef nonnull @I247_versions, i32 noundef 0) #3 ret void } @@ -36165,41 +36165,41 @@ declare ptr @register_dissector(ptr noundef, ptr noundef, i32 noundef) local_unn define internal i32 @dissect_asterix(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr readnone captures(none) %3) #0 { %5 = getelementptr inbounds nuw i8, ptr %1, i64 8 %6 = load ptr, ptr %5, align 8 - tail call void @col_set_str(ptr noundef %6, i32 noundef 34, ptr noundef nonnull @.str.10823) #4 + tail call void @col_set_str(ptr noundef %6, i32 noundef 34, ptr noundef nonnull @.str.10823) #3 %7 = load ptr, ptr %5, align 8 - tail call void @col_clear(ptr noundef %7, i32 noundef 25) #4 + tail call void @col_clear(ptr noundef %7, i32 noundef 25) #3 %.not = icmp eq ptr %2, null br i1 %.not, label %dissect_asterix_packet.exit, label %8 8: ; preds = %4 - %9 = tail call i32 @tvb_reported_length(ptr noundef %0) #4 + %9 = tail call i32 @tvb_reported_length(ptr noundef %0) #3 %.not.i = icmp eq i32 %9, 0 br i1 %.not.i, label %dissect_asterix_packet.exit, label %.lr.ph.i .lr.ph.i: ; preds = %8, %dissect_asterix_data_block.exit.i %.031.i = phi i32 [ %164, %dissect_asterix_data_block.exit.i ], [ 0, %8 ] - %10 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %.031.i) #4 + %10 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %.031.i) #3 %11 = add nuw i32 %.031.i, 1 - %12 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %11) #4 + %12 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %11) #3 %13 = zext i8 %12 to i32 %14 = shl nuw nsw i32 %13, 8 %15 = add i32 %.031.i, 2 - %16 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %15) #4 + %16 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %15) #3 %17 = zext i8 %16 to i32 %18 = or disjoint i32 %14, %17 %19 = add nuw nsw i32 %18, 65533 %20 = load i32, ptr @proto_asterix, align 4 %21 = and i32 %19, 65535 %22 = add nuw nsw i32 %21, 3 - %23 = tail call ptr @proto_tree_add_item(ptr noundef nonnull %2, i32 noundef %20, ptr noundef %0, i32 noundef %.031.i, i32 noundef %22, i32 noundef 0) #4 + %23 = tail call ptr @proto_tree_add_item(ptr noundef nonnull %2, i32 noundef %20, ptr noundef %0, i32 noundef %.031.i, i32 noundef %22, i32 noundef 0) #3 %24 = zext i8 %10 to i32 - tail call void (ptr, ptr, ...) @proto_item_append_text(ptr noundef %23, ptr noundef nonnull @.str.12112, i32 noundef %24) #4 + tail call void (ptr, ptr, ...) @proto_item_append_text(ptr noundef %23, ptr noundef nonnull @.str.12112, i32 noundef %24) #3 %25 = load i32, ptr @ett_asterix, align 4 - %26 = tail call ptr @proto_item_add_subtree(ptr noundef %23, i32 noundef %25) #4 + %26 = tail call ptr @proto_item_add_subtree(ptr noundef %23, i32 noundef %25) #3 %27 = load i32, ptr @hf_asterix_category, align 4 - %28 = tail call ptr @proto_tree_add_item(ptr noundef %26, i32 noundef %27, ptr noundef %0, i32 noundef %.031.i, i32 noundef 1, i32 noundef 0) #4 + %28 = tail call ptr @proto_tree_add_item(ptr noundef %26, i32 noundef %27, ptr noundef %0, i32 noundef %.031.i, i32 noundef 1, i32 noundef 0) #3 %29 = load i32, ptr @hf_asterix_length, align 4 - %30 = tail call ptr @proto_tree_add_item(ptr noundef %26, i32 noundef %29, ptr noundef %0, i32 noundef %11, i32 noundef 2, i32 noundef 0) #4 + %30 = tail call ptr @proto_tree_add_item(ptr noundef %26, i32 noundef %29, ptr noundef %0, i32 noundef %11, i32 noundef 2, i32 noundef 0) #3 %31 = add i32 %.031.i, 3 %.not.i.i = icmp eq i32 %18, 3 br i1 %.not.i.i, label %dissect_asterix_data_block.exit.i, label %.lr.ph.i.i @@ -36233,14 +36233,14 @@ define internal i32 @dissect_asterix(ptr noundef %0, ptr noundef %1, ptr noundef br i1 %.not30.i.i.i, label %asterix_get_active_uap.exit.i.i, label %47 47: ; preds = %45 - %48 = tail call i32 @tvb_reported_length(ptr noundef %0) #4 + %48 = tail call i32 @tvb_reported_length(ptr noundef %0) #3 %49 = sub i32 %48, %37 br label %50 50: ; preds = %50, %47 %.0.i.i.i.i = phi i32 [ 0, %47 ], [ %57, %50 ] %51 = add i32 %.0.i.i.i.i, %37 - %52 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %51) #4 + %52 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %51) #3 %53 = and i8 %52, 1 %54 = icmp ne i8 %53, 0 %55 = icmp ult i32 %.0.i.i.i.i, %49 @@ -36276,7 +36276,7 @@ asterix_fspec_len.exit.preheader.i.i.i: ; preds = %50 .lr.ph.i.i.i.i: ; preds = %65, %.lr.ph.i.i.preheader.i.i %indvars.iv.i.i.i = phi i32 [ %indvars.iv.next.i.i.i, %65 ], [ 0, %.lr.ph.i.i.preheader.i.i ] %66 = add i32 %indvars.iv.i.i.i, %37 - %67 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %66) #4 + %67 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %66) #3 %68 = and i8 %67, 1 %.not.i.i.i.i = icmp eq i8 %68, 0 br i1 %.not.i.i.i.i, label %asterix_field_exists.exit.thread.i.i.i, label %65 @@ -36284,7 +36284,7 @@ asterix_fspec_len.exit.preheader.i.i.i: ; preds = %50 asterix_field_exists.exit.i.i.i: ; preds = %65, %.lr.ph.i.i.i %.lcssa.i.i.i.i = phi i32 [ 0, %.lr.ph.i.i.i ], [ %64, %65 ] %69 = add i32 %.lcssa.i.i.i.i, %37 - %70 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %69) #4 + %70 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %69) #3 %71 = and i32 %61, 7 %72 = lshr exact i32 128, %71 %73 = zext i8 %70 to i32 @@ -36298,7 +36298,7 @@ asterix_field_exists.exit.i.i.i: ; preds = %65, %.lr.ph.i.i.i br i1 %76, label %78, label %82 78: ; preds = %75 - %79 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %77) #4 + %79 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %77) #3 %80 = lshr i8 %79, 7 %81 = zext nneg i8 %80 to i64 br label %asterix_get_active_uap.exit.i.i @@ -36335,14 +36335,14 @@ asterix_get_active_uap.exit.i.i: ; preds = %asterix_field_exist br i1 %.not24.i.i.i, label %dissect_asterix_data_block.exit.i, label %98 98: ; preds = %91 - %99 = tail call i32 @tvb_reported_length(ptr noundef %0) #4 + %99 = tail call i32 @tvb_reported_length(ptr noundef %0) #3 %100 = sub i32 %99, %37 br label %101 101: ; preds = %101, %98 %.0.i.i45.i.i = phi i32 [ 0, %98 ], [ %108, %101 ] %102 = add i32 %.0.i.i45.i.i, %37 - %103 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %102) #4 + %103 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %102) #3 %104 = and i8 %103, 1 %105 = icmp ne i8 %104, 0 %106 = icmp ult i32 %.0.i.i45.i.i, %100 @@ -36378,7 +36378,7 @@ asterix_fspec_len.exit.preheader.i46.i.i: ; preds = %101 .lr.ph.i.i49.i.i: ; preds = %116, %.lr.ph.i.i49.preheader.i.i %indvars.iv.i50.i.i = phi i32 [ %indvars.iv.next.i52.i.i, %116 ], [ 0, %.lr.ph.i.i49.preheader.i.i ] %117 = add i32 %indvars.iv.i50.i.i, %37 - %118 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %117) #4 + %118 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %117) #3 %119 = and i8 %118, 1 %.not.i.i51.i.i = icmp eq i8 %119, 0 br i1 %.not.i.i51.i.i, label %asterix_field_exists.exit.thread.i56.i.i, label %116 @@ -36386,7 +36386,7 @@ asterix_fspec_len.exit.preheader.i46.i.i: ; preds = %101 asterix_field_exists.exit.i53.i.i: ; preds = %116, %.lr.ph.i47.i.i %.lcssa.i.i54.i.i = phi i32 [ 0, %.lr.ph.i47.i.i ], [ %115, %116 ] %120 = add i32 %.lcssa.i.i54.i.i, %37 - %121 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %120) #4 + %121 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %120) #3 %122 = and i32 %112, 7 %123 = lshr exact i32 128, %122 %124 = zext i8 %121 to i32 @@ -36417,18 +36417,18 @@ asterix_message_length.exit.i.i: ; preds = %asterix_field_exist 136: ; preds = %asterix_message_length.exit.i.i %137 = load i32, ptr @hf_asterix_message, align 4 - %138 = tail call ptr @proto_tree_add_item(ptr noundef %26, i32 noundef %137, ptr noundef %0, i32 noundef %37, i32 noundef %.0.i58.i.i, i32 noundef 0) #4 - tail call void (ptr, ptr, ...) @proto_item_append_text(ptr noundef %138, ptr noundef nonnull @.str.12113, i32 noundef %.065.i.i, i32 noundef %.0.i58.i.i) #4 + %138 = tail call ptr @proto_tree_add_item(ptr noundef %26, i32 noundef %137, ptr noundef %0, i32 noundef %37, i32 noundef %.0.i58.i.i, i32 noundef 0) #3 + tail call void (ptr, ptr, ...) @proto_item_append_text(ptr noundef %138, ptr noundef nonnull @.str.12113, i32 noundef %.065.i.i, i32 noundef %.0.i58.i.i) #3 %139 = load i32, ptr @ett_asterix_message, align 4 - %140 = tail call ptr @proto_item_add_subtree(ptr noundef %138, i32 noundef %139) #4 - %141 = tail call i32 @tvb_reported_length(ptr noundef %0) #4 + %140 = tail call ptr @proto_item_add_subtree(ptr noundef %138, i32 noundef %139) #3 + %141 = tail call i32 @tvb_reported_length(ptr noundef %0) #3 %142 = sub i32 %141, %37 br label %143 143: ; preds = %143, %136 %.0.i59.i.i = phi i32 [ 0, %136 ], [ %150, %143 ] %144 = add i32 %.0.i59.i.i, %37 - %145 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %144) #4 + %145 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %144) #3 %146 = and i8 %145, 1 %147 = icmp ne i8 %146, 0 %148 = icmp ult i32 %.0.i59.i.i, %142 @@ -36438,7 +36438,7 @@ asterix_message_length.exit.i.i: ; preds = %asterix_field_exist asterix_message_length.exit.thread.i.i: ; preds = %143 %151 = load i32, ptr @hf_asterix_fspec, align 4 - %152 = tail call ptr @proto_tree_add_item(ptr noundef %140, i32 noundef %151, ptr noundef %0, i32 noundef %37, i32 noundef %150, i32 noundef 0) #4 + %152 = tail call ptr @proto_tree_add_item(ptr noundef %140, i32 noundef %151, ptr noundef %0, i32 noundef %37, i32 noundef %150, i32 noundef 0) #3 %153 = load i32, ptr %35, align 4 %154 = sext i32 %153 to i64 %155 = getelementptr ptr, ptr %90, i64 %154 @@ -36454,12 +36454,12 @@ asterix_message_length.exit.thread.i.i: ; preds = %143 dissect_asterix_data_block.exit.i: ; preds = %asterix_message_length.exit.thread.i.i, %asterix_message_length.exit.i.i, %91, %asterix_get_active_uap.exit.i.i, %.lr.ph.i %164 = add i32 %22, %.031.i - %165 = tail call i32 @tvb_reported_length(ptr noundef %0) #4 + %165 = tail call i32 @tvb_reported_length(ptr noundef %0) #3 %166 = icmp ult i32 %164, %165 br i1 %166, label %.lr.ph.i, label %dissect_asterix_packet.exit, !llvm.loop !10 dissect_asterix_packet.exit: ; preds = %dissect_asterix_data_block.exit.i, %8, %4 - %167 = tail call i32 @tvb_captured_length(ptr noundef %0) #4 + %167 = tail call i32 @tvb_captured_length(ptr noundef %0) #3 ret i32 %167 } @@ -36470,7 +36470,7 @@ declare void @prefs_register_enum_preference(ptr noundef, ptr noundef, ptr nound ; Function Attrs: nounwind uwtable define hidden void @proto_reg_handoff_asterix() local_unnamed_addr #0 { %1 = load ptr, ptr @asterix_handle, align 8 - tail call void @dissector_add_uint_with_preference(ptr noundef nonnull @.str.10900, i32 noundef 8600, ptr noundef %1) #4 + tail call void @dissector_add_uint_with_preference(ptr noundef nonnull @.str.10900, i32 noundef 8600, ptr noundef %1) #3 ret void } @@ -36522,14 +36522,14 @@ define internal fastcc i32 @dissect_asterix_fields(ptr noundef %0, ptr noundef % .lr.ph.i.i: ; preds = %.lr.ph135, %14 %indvars.iv.i = phi i32 [ %indvars.iv.next.i, %14 ], [ 0, %.lr.ph135 ] %15 = add i32 %indvars.iv.i, %2 - %16 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %15) #4 + %16 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %15) #3 %17 = and i8 %16, 1 %.not.i.i = icmp eq i8 %17, 0 br i1 %.not.i.i, label %asterix_field_offset.exit.thread, label %14 asterix_field_exists.exit.i: ; preds = %14, %.lr.ph135 %18 = add i32 %13, %2 - %19 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %18) #4 + %19 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %18) #3 %20 = and i32 %11, 7 %21 = lshr exact i32 128, %20 %22 = zext i8 %19 to i32 @@ -36538,14 +36538,14 @@ asterix_field_exists.exit.i: ; preds = %14, %.lr.ph135 br i1 %.not32.i, label %asterix_field_offset.exit.thread, label %24 24: ; preds = %asterix_field_exists.exit.i - %25 = tail call i32 @tvb_reported_length(ptr noundef %0) #4 + %25 = tail call i32 @tvb_reported_length(ptr noundef %0) #3 %26 = sub i32 %25, %2 br label %27 27: ; preds = %27, %24 %.0.i.i = phi i32 [ 0, %24 ], [ %34, %27 ] %28 = add i32 %.0.i.i, %2 - %29 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %28) #4 + %29 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %28) #3 %30 = and i8 %29, 1 %31 = icmp ne i8 %30, 0 %32 = icmp ult i32 %.0.i.i, %26 @@ -36577,7 +36577,7 @@ asterix_fspec_len.exit.preheader.i: ; preds = %27 .lr.ph.i21.i: ; preds = %.lr.ph.i, %41 %indvars.iv42.i = phi i32 [ %indvars.iv.next43.i, %41 ], [ 0, %.lr.ph.i ] %42 = add i32 %indvars.iv42.i, %2 - %43 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %42) #4 + %43 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %42) #3 %44 = and i8 %43, 1 %.not.i23.i = icmp eq i8 %44, 0 br i1 %.not.i23.i, label %asterix_field_exists.exit27.thread.i, label %41 @@ -36585,7 +36585,7 @@ asterix_fspec_len.exit.preheader.i: ; preds = %27 asterix_field_exists.exit27.i: ; preds = %41, %.lr.ph.i %.lcssa.i25.i = phi i32 [ 0, %.lr.ph.i ], [ %39, %41 ] %45 = add i32 %.lcssa.i25.i, %2 - %46 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %45) #4 + %46 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %45) #3 %47 = and i32 %37, 7 %48 = lshr exact i32 128, %47 %49 = zext i8 %46 to i32 @@ -36622,23 +36622,23 @@ asterix_field_offset.exit: ; preds = %asterix_field_exist %64 = getelementptr inbounds nuw i8, ptr %62, i64 16 %65 = load ptr, ptr %64, align 8 %66 = load i32, ptr %65, align 4 - %67 = tail call ptr @proto_tree_add_item(ptr noundef %3, i32 noundef %66, ptr noundef %0, i32 noundef %58, i32 noundef %60, i32 noundef 0) #4 + %67 = tail call ptr @proto_tree_add_item(ptr noundef %3, i32 noundef %66, ptr noundef %0, i32 noundef %58, i32 noundef %60, i32 noundef 0) #3 %68 = load i32, ptr @ett_asterix_subtree, align 4 - %69 = tail call ptr @proto_item_add_subtree(ptr noundef %67, i32 noundef %68) #4 + %69 = tail call ptr @proto_item_add_subtree(ptr noundef %67, i32 noundef %68) #3 switch i8 %63, label %127 [ i8 6, label %70 i8 2, label %86 ] 70: ; preds = %57 - %71 = tail call i32 @tvb_reported_length(ptr noundef %0) #4 + %71 = tail call i32 @tvb_reported_length(ptr noundef %0) #3 %72 = sub i32 %71, %58 br label %73 73: ; preds = %73, %70 %.0.i119 = phi i32 [ 0, %70 ], [ %80, %73 ] %74 = add i32 %.0.i119, %58 - %75 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %74) #4 + %75 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %74) #3 %76 = and i8 %75, 1 %77 = icmp ne i8 %76, 0 %78 = icmp ult i32 %.0.i119, %72 @@ -36648,7 +36648,7 @@ asterix_field_offset.exit: ; preds = %asterix_field_exist asterix_fspec_len.exit: ; preds = %73 %81 = load i32, ptr @hf_asterix_fspec, align 4 - %82 = tail call ptr @proto_tree_add_item(ptr noundef %69, i32 noundef %81, ptr noundef %0, i32 noundef %58, i32 noundef %80, i32 noundef 0) #4 + %82 = tail call ptr @proto_tree_add_item(ptr noundef %69, i32 noundef %81, ptr noundef %0, i32 noundef %58, i32 noundef %80, i32 noundef 0) #3 %83 = load ptr, ptr %8, align 8 %84 = getelementptr inbounds nuw i8, ptr %83, i64 32 %85 = tail call fastcc i32 @dissect_asterix_fields(ptr noundef %0, ptr noundef %1, i32 noundef %58, ptr noundef %69, ptr noundef nonnull %84) @@ -36663,7 +36663,7 @@ asterix_fspec_len.exit: ; preds = %73 ._crit_edge.thread: ; preds = %86 %90 = load i32, ptr @hf_counter, align 4 - %91 = tail call ptr @proto_tree_add_item(ptr noundef %69, i32 noundef %90, ptr noundef %0, i32 noundef %58, i32 noundef 0, i32 noundef 0) #4 + %91 = tail call ptr @proto_tree_add_item(ptr noundef %69, i32 noundef %90, ptr noundef %0, i32 noundef %58, i32 noundef 0, i32 noundef 0) #3 br label %asterix_field_offset.exit.thread .lr.ph: ; preds = %86, %.lr.ph @@ -36671,7 +36671,7 @@ asterix_fspec_len.exit: ; preds = %73 %.0112125 = phi i32 [ %97, %.lr.ph ], [ 0, %86 ] %92 = shl i64 %.0126, 8 %93 = add i32 %.0112125, %58 - %94 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %93) #4 + %94 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %93) #3 %95 = zext i8 %94 to i64 %96 = or disjoint i64 %92, %95 %97 = add nuw i32 %.0112125, 1 @@ -36683,7 +36683,7 @@ asterix_fspec_len.exit: ; preds = %73 ._crit_edge: ; preds = %.lr.ph %102 = load i32, ptr @hf_counter, align 4 - %103 = tail call ptr @proto_tree_add_item(ptr noundef %69, i32 noundef %102, ptr noundef %0, i32 noundef %58, i32 noundef %100, i32 noundef 0) #4 + %103 = tail call ptr @proto_tree_add_item(ptr noundef %69, i32 noundef %102, ptr noundef %0, i32 noundef %58, i32 noundef %100, i32 noundef 0) #3 %.not138 = icmp eq i64 %96, 0 br i1 %.not138, label %asterix_field_offset.exit.thread, label %.lr.ph131.preheader @@ -36705,9 +36705,9 @@ asterix_fspec_len.exit: ; preds = %73 %110 = load i32, ptr %109, align 8 %111 = add i32 %.0110129, %58 %112 = add i32 %111, %110 - %113 = tail call ptr @proto_tree_add_item(ptr noundef %69, i32 noundef %108, ptr noundef %0, i32 noundef %112, i32 noundef %104, i32 noundef 0) #4 + %113 = tail call ptr @proto_tree_add_item(ptr noundef %69, i32 noundef %108, ptr noundef %0, i32 noundef %112, i32 noundef %104, i32 noundef 0) #3 %114 = load i32, ptr @ett_asterix_subtree, align 4 - %115 = tail call ptr @proto_item_add_subtree(ptr noundef %113, i32 noundef %114) #4 + %115 = tail call ptr @proto_item_add_subtree(ptr noundef %113, i32 noundef %114) #3 %116 = load ptr, ptr %8, align 8 %117 = getelementptr inbounds nuw i8, ptr %116, i64 8 %118 = load i32, ptr %117, align 8 @@ -36774,7 +36774,7 @@ define internal fastcc i32 @asterix_field_length(ptr noundef %0, i32 noundef %1, %.04472 = phi i32 [ %16, %.lr.ph74 ], [ 0, %.preheader ] %12 = shl i32 %.04472, 8 %13 = add i32 %indvars.iv87, %1 - %14 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %13) #4 + %14 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %13) #3 %15 = zext i8 %14 to i32 %16 = or disjoint i32 %12, %15 %indvars.iv.next88 = add nuw nsw i32 %indvars.iv87, 1 @@ -36801,7 +36801,7 @@ define internal fastcc i32 @asterix_field_length(ptr noundef %0, i32 noundef %1, %30 = add i32 %29, %27 %31 = add i32 %1, -1 %32 = add i32 %31, %30 - %33 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %32) #4 + %33 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %32) #3 %34 = and i8 %33, 1 %.not5268 = icmp eq i8 %34, 0 br i1 %.not5268, label %.loopexit, label %.lr.ph70 @@ -36811,7 +36811,7 @@ define internal fastcc i32 @asterix_field_length(ptr noundef %0, i32 noundef %1, %35 = load i32, ptr %26, align 4 %36 = add i32 %35, %.14669 %37 = add i32 %31, %36 - %38 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %37) #4 + %38 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %37) #3 %39 = and i8 %38, 1 %.not52 = icmp eq i8 %39, 0 br i1 %.not52, label %.loopexit, label %.lr.ph70, !llvm.loop !16 @@ -36822,7 +36822,7 @@ define internal fastcc i32 @asterix_field_length(ptr noundef %0, i32 noundef %1, %.24764 = phi i32 [ %45, %.lr.ph66 ], [ 0, %.preheader56 ] %41 = shl i32 %.24764, 8 %42 = add i32 %40, %1 - %43 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %42) #4 + %43 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %42) #3 %44 = zext i8 %43 to i32 %45 = or disjoint i32 %41, %44 %46 = add i8 %.165, 1 @@ -36834,7 +36834,7 @@ define internal fastcc i32 @asterix_field_length(ptr noundef %0, i32 noundef %1, .preheader59: ; preds = %3, %.preheader59 %.3 = phi i32 [ %53, %.preheader59 ], [ 0, %3 ] %50 = add i32 %.3, %1 - %51 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %50) #4 + %51 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %50) #3 %52 = and i8 %51, 1 %.not = icmp eq i8 %52, 0 %53 = add i32 %.3, 1 @@ -36867,7 +36867,7 @@ define internal fastcc i32 @asterix_field_length(ptr noundef %0, i32 noundef %1, .lr.ph.i: ; preds = %.lr.ph, %63 %indvars.iv = phi i32 [ %indvars.iv.next, %63 ], [ 0, %.lr.ph ] %65 = add i32 %indvars.iv, %1 - %66 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %65) #4 + %66 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %65) #3 %67 = and i8 %66, 1 %.not.i = icmp eq i8 %67, 0 br i1 %.not.i, label %asterix_field_exists.exit.thread, label %63 @@ -36875,7 +36875,7 @@ define internal fastcc i32 @asterix_field_length(ptr noundef %0, i32 noundef %1, asterix_field_exists.exit: ; preds = %63, %.lr.ph %.lcssa.i = phi i32 [ 0, %.lr.ph ], [ %indvars.iv.next, %63 ] %68 = add i32 %.lcssa.i, %1 - %69 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %68) #4 + %69 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %68) #3 %70 = and i32 %60, 7 %71 = lshr exact i32 128, %70 %72 = zext i8 %69 to i32 @@ -36931,7 +36931,7 @@ define internal fastcc void @asterix_build_subtree(ptr noundef %0, ptr noundef % %16 = add i32 %.096118, %8 %17 = load i16, ptr %14, align 8 %18 = zext i16 %17 to i32 - %19 = tail call i64 @tvb_get_bits64(ptr noundef %0, i32 noundef %16, i32 noundef %18, i32 noundef 0) #4 + %19 = tail call i64 @tvb_get_bits64(ptr noundef %0, i32 noundef %16, i32 noundef %18, i32 noundef 0) #3 %20 = load ptr, ptr %6, align 8 %21 = getelementptr ptr, ptr %20, i64 %12 %22 = load ptr, ptr %21, align 8 @@ -36973,7 +36973,7 @@ define internal fastcc void @asterix_build_subtree(ptr noundef %0, ptr noundef % 37: ; preds = %36, %25, %25, %25, %25, %25 %.2 = phi i8 [ %.093119, %25 ], [ %.093119, %25 ], [ %.093119, %25 ], [ %.093119, %25 ], [ %.093119, %25 ], [ %spec.select, %36 ] %38 = load i32, ptr %24, align 4 - %39 = tail call ptr @proto_registrar_get_nth(i32 noundef %38) #4 + %39 = tail call ptr @proto_registrar_get_nth(i32 noundef %38) #3 %40 = getelementptr inbounds nuw i8, ptr %39, i64 32 %41 = load i64, ptr %40, align 8 %.not109 = icmp eq i64 %41, 0 @@ -36982,7 +36982,7 @@ define internal fastcc void @asterix_build_subtree(ptr noundef %0, ptr noundef % 42: ; preds = %37 %43 = getelementptr inbounds nuw i8, ptr %39, i64 16 %44 = load i32, ptr %43, align 8 - %45 = tail call i32 @ftype_wire_size(i32 noundef %44) #4 + %45 = tail call i32 @ftype_wire_size(i32 noundef %44) #3 %46 = icmp sgt i32 %45, 1 br i1 %46, label %47, label %56 @@ -36995,7 +36995,7 @@ define internal fastcc void @asterix_build_subtree(ptr noundef %0, ptr noundef % %53 = sub nsw i32 %45, %52 %54 = tail call i32 @llvm.smax.i32(i32 %53, i32 0) %spec.select110 = sub i32 %27, %54 - %55 = icmp slt i32 %53, 0 + %spec.select110 = icmp slt i32 %53, 0 %spec.select111 = select i1 %55, i32 %33, i32 %45 br label %56 @@ -37008,7 +37008,7 @@ define internal fastcc void @asterix_build_subtree(ptr noundef %0, ptr noundef % %60 = getelementptr inbounds nuw i8, ptr %59, i64 24 %61 = load ptr, ptr %60, align 8 %62 = load i32, ptr %61, align 4 - %63 = tail call ptr @proto_tree_add_item(ptr noundef %3, i32 noundef %62, ptr noundef %0, i32 noundef %.095, i32 noundef %.094, i32 noundef 0) #4 + %63 = tail call ptr @proto_tree_add_item(ptr noundef %3, i32 noundef %62, ptr noundef %0, i32 noundef %.095, i32 noundef %.094, i32 noundef 0) #3 br label %165 64: ; preds = %25 @@ -37038,11 +37038,11 @@ twos_complement.exit: ; preds = %69, %64, %25 br i1 %.not107, label %82, label %80 80: ; preds = %twos_complement.exit - %81 = tail call ptr (ptr, i32, ptr, i32, i32, double, ptr, ...) @proto_tree_add_double_format_value(ptr noundef %3, i32 noundef %77, ptr noundef %0, i32 noundef %27, i32 noundef %33, double noundef %79, ptr noundef nonnull %76, double noundef %79) #4 + %81 = tail call ptr (ptr, i32, ptr, i32, i32, double, ptr, ...) @proto_tree_add_double_format_value(ptr noundef %3, i32 noundef %77, ptr noundef %0, i32 noundef %27, i32 noundef %33, double noundef %79, ptr noundef nonnull %76, double noundef %79) #3 br label %165 82: ; preds = %twos_complement.exit - %83 = tail call ptr @proto_tree_add_double(ptr noundef %3, i32 noundef %77, ptr noundef %0, i32 noundef %27, i32 noundef %33, double noundef %79) #4 + %83 = tail call ptr @proto_tree_add_double(ptr noundef %3, i32 noundef %77, ptr noundef %0, i32 noundef %27, i32 noundef %33, double noundef %79) #3 br label %165 84: ; preds = %25 @@ -37086,38 +37086,38 @@ twos_complement.exit: ; preds = %69, %64, %25 %122 = getelementptr [64 x i8], ptr @AISCode, i64 0, i64 %121 %123 = load i8, ptr %122, align 1 %124 = sext i8 %123 to i32 - %125 = tail call noalias ptr (ptr, ptr, ...) @wmem_strdup_printf(ptr noundef %85, ptr noundef nonnull @.str.12114, i32 noundef %90, i32 noundef %95, i32 noundef %100, i32 noundef %105, i32 noundef %110, i32 noundef %115, i32 noundef %120, i32 noundef %124) #4 + %125 = tail call noalias ptr (ptr, ptr, ...) @wmem_strdup_printf(ptr noundef %85, ptr noundef nonnull @.str.12114, i32 noundef %90, i32 noundef %95, i32 noundef %100, i32 noundef %105, i32 noundef %110, i32 noundef %115, i32 noundef %120, i32 noundef %124) #3 %126 = load ptr, ptr %6, align 8 %127 = getelementptr ptr, ptr %126, i64 %12 %128 = load ptr, ptr %127, align 8 %129 = getelementptr inbounds nuw i8, ptr %128, i64 24 %130 = load ptr, ptr %129, align 8 %131 = load i32, ptr %130, align 4 - %132 = tail call ptr @proto_tree_add_string(ptr noundef %3, i32 noundef %131, ptr noundef %0, i32 noundef %27, i32 noundef %33, ptr noundef %125) #4 + %132 = tail call ptr @proto_tree_add_string(ptr noundef %3, i32 noundef %131, ptr noundef %0, i32 noundef %27, i32 noundef %33, ptr noundef %125) #3 br label %165 133: ; preds = %25 %134 = load ptr, ptr %9, align 8 - %135 = tail call noalias ptr @wmem_alloc(ptr noundef %134, i64 noundef 1) #4 - %136 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %27) #4 + %135 = tail call noalias ptr @wmem_alloc(ptr noundef %134, i64 noundef 1) #3 + %136 = tail call zeroext i8 @tvb_get_guint8(ptr noundef %0, i32 noundef %27) #3 %137 = lshr i8 %136, 7 store i8 %137, ptr %135, align 1 %138 = load ptr, ptr %9, align 8 %139 = load i32, ptr @proto_asterix, align 4 - tail call void @p_add_proto_data(ptr noundef %138, ptr noundef %1, i32 noundef %139, i32 noundef 21150, ptr noundef nonnull %135) #4 + tail call void @p_add_proto_data(ptr noundef %138, ptr noundef %1, i32 noundef %139, i32 noundef 21150, ptr noundef nonnull %135) #3 %140 = load ptr, ptr %6, align 8 %141 = getelementptr ptr, ptr %140, i64 %12 %142 = load ptr, ptr %141, align 8 %143 = getelementptr inbounds nuw i8, ptr %142, i64 24 %144 = load ptr, ptr %143, align 8 %145 = load i32, ptr %144, align 4 - %146 = tail call ptr @proto_tree_add_item(ptr noundef %3, i32 noundef %145, ptr noundef %0, i32 noundef %27, i32 noundef %33, i32 noundef 0) #4 + %146 = tail call ptr @proto_tree_add_item(ptr noundef %3, i32 noundef %145, ptr noundef %0, i32 noundef %27, i32 noundef %33, i32 noundef 0) #3 br label %165 147: ; preds = %25 %148 = load ptr, ptr %9, align 8 %149 = load i32, ptr @proto_asterix, align 4 - %150 = tail call ptr @p_get_proto_data(ptr noundef %148, ptr noundef %1, i32 noundef %149, i32 noundef 21150) #4 + %150 = tail call ptr @p_get_proto_data(ptr noundef %148, ptr noundef %1, i32 noundef %149, i32 noundef 21150) #3 %.not106 = icmp eq ptr %150, null br i1 %.not106, label %155, label %151 @@ -37139,7 +37139,7 @@ twos_complement.exit: ; preds = %69, %64, %25 %161 = load i32, ptr %160, align 4 %162 = sitofp i64 %19 to double %163 = fmul double %.0, %162 - %164 = tail call ptr @proto_tree_add_double(ptr noundef %3, i32 noundef %161, ptr noundef %0, i32 noundef %27, i32 noundef %33, double noundef %163) #4 + %164 = tail call ptr @proto_tree_add_double(ptr noundef %3, i32 noundef %161, ptr noundef %0, i32 noundef %27, i32 noundef %33, double noundef %163) #3 br label %165 165: ; preds = %25, %56, %84, %133, %155, %82, %80, %15 diff --git a/bench/wireshark/optimized/packet-ppp.c.ll b/bench/wireshark/optimized/packet-ppp.c.ll index ea986d1b9e1..f9baea1ea51 100644 --- a/bench/wireshark/optimized/packet-ppp.c.ll +++ b/bench/wireshark/optimized/packet-ppp.c.ll @@ -3970,7 +3970,7 @@ define internal i32 @dissect_lcp_multilink_ep_disc_opt(ptr noundef %0, ptr nound 12: ; preds = %4 %13 = tail call i32 @tvb_captured_length(ptr noundef %0) #6 - br label %72 + br label %74 14: ; preds = %4 %15 = load ptr, ptr %5, align 8 @@ -3985,17 +3985,17 @@ define internal i32 @dissect_lcp_multilink_ep_disc_opt(ptr noundef %0, ptr nound 22: ; preds = %14 %23 = call i32 @tvb_captured_length(ptr noundef %0) #6 - br label %72 + br label %74 24: ; preds = %14 %25 = add nsw i32 %8, -3 %26 = load i32, ptr %7, align 4 - switch i32 %26, label %68 [ + switch i32 %26, label %70 [ i32 0, label %.loopexit i32 1, label %27 - i32 2, label %31 - i32 3, label %39 - i32 4, label %47 + i32 2, label %32 + i32 3, label %40 + i32 4, label %48 i32 5, label %64 ] @@ -4005,80 +4005,80 @@ define internal i32 @dissect_lcp_multilink_ep_disc_opt(ptr noundef %0, ptr nound %30 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %28, ptr noundef %0, i32 noundef 3, i32 noundef %29, i32 noundef 0) #6 br label %.loopexit -31: ; preds = %24 - %32 = icmp samesign ugt i32 %8, 6 - br i1 %32, label %33, label %36 +32: ; preds = %24 + %33 = icmp samesign ugt i32 %8, 6 + br i1 %33, label %34, label %37 -33: ; preds = %31 - %34 = load i32, ptr @hf_lcp_opt_ip_address, align 4 - %35 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %34, ptr noundef %0, i32 noundef 3, i32 noundef 4, i32 noundef 0) #6 +34: ; preds = %32 + %35 = load i32, ptr @hf_lcp_opt_ip_address, align 4 + %36 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %35, ptr noundef %0, i32 noundef 3, i32 noundef 4, i32 noundef 0) #6 br label %.loopexit -36: ; preds = %31 - %37 = load i32, ptr @hf_lcp_opt_data, align 4 - %38 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %37, ptr noundef %0, i32 noundef 3, i32 noundef %25, i32 noundef 0) #6 +37: ; preds = %32 + %38 = load i32, ptr @hf_lcp_opt_data, align 4 + %39 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %38, ptr noundef %0, i32 noundef 3, i32 noundef %25, i32 noundef 0) #6 br label %.loopexit -39: ; preds = %24 - %40 = icmp samesign ugt i32 %8, 8 - br i1 %40, label %41, label %44 +40: ; preds = %24 + %41 = icmp samesign ugt i32 %8, 8 + br i1 %41, label %42, label %45 -41: ; preds = %39 - %42 = load i32, ptr @hf_lcp_opt_802_1_address, align 4 - %43 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %42, ptr noundef %0, i32 noundef 3, i32 noundef 6, i32 noundef 0) #6 +42: ; preds = %40 + %43 = load i32, ptr @hf_lcp_opt_802_1_address, align 4 + %44 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %43, ptr noundef %0, i32 noundef 3, i32 noundef 6, i32 noundef 0) #6 br label %.loopexit -44: ; preds = %39 - %45 = load i32, ptr @hf_lcp_opt_data, align 4 - %46 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %45, ptr noundef %0, i32 noundef 3, i32 noundef %25, i32 noundef 0) #6 +45: ; preds = %40 + %46 = load i32, ptr @hf_lcp_opt_data, align 4 + %47 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %46, ptr noundef %0, i32 noundef 3, i32 noundef %25, i32 noundef 0) #6 br label %.loopexit -47: ; preds = %24 - %48 = and i32 %25, 3 - %.not54 = icmp eq i32 %48, 0 - br i1 %.not54, label %52, label %49 +48: ; preds = %24 + %49 = and i32 %25, 3 + %.not54 = icmp eq i32 %49, 0 + br i1 %.not54, label %53, label %50 -49: ; preds = %47 - %50 = load i32, ptr @hf_lcp_opt_data, align 4 - %51 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %50, ptr noundef %0, i32 noundef 3, i32 noundef %25, i32 noundef 0) #6 +50: ; preds = %48 + %51 = load i32, ptr @hf_lcp_opt_data, align 4 + %52 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %51, ptr noundef %0, i32 noundef 3, i32 noundef %25, i32 noundef 0) #6 br label %.loopexit -52: ; preds = %47 - %53 = load i32, ptr @hf_lcp_opt_magic_block, align 4 - %54 = call i32 @llvm.umin.i32(i32 %25, i32 20) - %55 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %53, ptr noundef %0, i32 noundef 3, i32 noundef %54, i32 noundef 0) #6 - %56 = load i32, ptr @ett_lcp_magic_block, align 4 - %57 = call ptr @proto_item_add_subtree(ptr noundef %55, i32 noundef %56) #6 - %58 = icmp samesign ugt i32 %8, 6 +53: ; preds = %48 + %54 = load i32, ptr @hf_lcp_opt_magic_block, align 4 + %55 = call i32 @llvm.umin.i32(i32 %25, i32 20) + %56 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %53, ptr noundef %0, i32 noundef 3, i32 noundef %54, i32 noundef 0) #6 + %57 = load i32, ptr @ett_lcp_magic_block, align 4 + %58 = call ptr @proto_item_add_subtree(ptr noundef %55, i32 noundef %56) #6 + %59 = icmp samesign ugt i32 %8, 6 br i1 %58, label %.lr.ph, label %.loopexit .lr.ph: ; preds = %52, %.lr.ph %.056 = phi i32 [ %61, %.lr.ph ], [ %25, %52 ] - %.05055 = phi i32 [ %62, %.lr.ph ], [ 3, %52 ] - %59 = load i32, ptr @hf_lcp_opt_magic_number, align 4 - %60 = call ptr @proto_tree_add_item(ptr noundef %57, i32 noundef %59, ptr noundef %0, i32 noundef %.05055, i32 noundef 4, i32 noundef 0) #6 - %61 = add nsw i32 %.056, -4 - %62 = add nuw nsw i32 %.05055, 4 - %63 = icmp samesign ugt i32 %.056, 7 + %.056 = phi i32 [ %63, %.lr.ph ], [ 3, %53 ] + %.05055 = load i32, ptr @hf_lcp_opt_magic_number, align 4 + %61 = call ptr @proto_tree_add_item(ptr noundef %57, i32 noundef %59, ptr noundef %0, i32 noundef %.056, i32 noundef 4, i32 noundef 0) #6 + %62 = add nsw i32 %.056, -4 + %63 = add nuw nsw i32 %.056, 4 + %64 = icmp samesign ugt i32 %.056, 7 br i1 %63, label %.lr.ph, label %.loopexit, !llvm.loop !8 64: ; preds = %24 %65 = load i32, ptr @hf_lcp_opt_psndn, align 4 - %66 = call i32 @llvm.umin.i32(i32 %25, i32 15) - %67 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %65, ptr noundef %0, i32 noundef 3, i32 noundef %66, i32 noundef 0) #6 + %67 = call i32 @llvm.umin.i32(i32 %25, i32 15) + %68 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %65, ptr noundef %0, i32 noundef 3, i32 noundef %66, i32 noundef 0) #6 br label %.loopexit -68: ; preds = %24 - %69 = load i32, ptr @hf_lcp_opt_data, align 4 - %70 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %69, ptr noundef %0, i32 noundef 3, i32 noundef %25, i32 noundef 0) #6 +70: ; preds = %24 + %71 = load i32, ptr @hf_lcp_opt_data, align 4 + %72 = call ptr @proto_tree_add_item(ptr noundef %15, i32 noundef %71, ptr noundef %0, i32 noundef 3, i32 noundef %25, i32 noundef 0) #6 br label %.loopexit -.loopexit: ; preds = %.lr.ph, %52, %49, %41, %44, %33, %36, %24, %68, %64, %27 - %71 = call i32 @tvb_captured_length(ptr noundef %0) #6 - br label %72 +.loopexit: ; preds = %.lr.ph, %53, %50, %42, %45, %34, %37, %24, %70, %64, %27 + %73 = call i32 @tvb_captured_length(ptr noundef %0) #6 + br label %74 -72: ; preds = %.loopexit, %22, %12 - %.051 = phi i32 [ %23, %22 ], [ %71, %.loopexit ], [ %13, %12 ] +74: ; preds = %.loopexit, %22, %12 + %.051 = phi i32 [ %23, %22 ], [ %73, %.loopexit ], [ %13, %12 ] ret i32 %.051 } diff --git a/bench/wireshark/optimized/pcapng.c.ll b/bench/wireshark/optimized/pcapng.c.ll index e4b2fd2f14e..61072557ba8 100644 --- a/bench/wireshark/optimized/pcapng.c.ll +++ b/bench/wireshark/optimized/pcapng.c.ll @@ -1944,7 +1944,7 @@ define internal fastcc range(i32 0, 2) i32 @pcapng_read_if_descr_block(ptr nound %39 = load ptr, ptr %20, align 8 %40 = call i32 @wtap_block_get_uint8_option_value(ptr noundef %39, i32 noundef 9, ptr noundef nonnull %9) #16 %41 = icmp eq i32 %40, 0 - br i1 %41, label %42, label %77 + br i1 %41, label %42, label %78 42: ; preds = %38 %43 = load i8, ptr %9, align 1 @@ -1967,40 +1967,40 @@ define internal fastcc range(i32 0, 2) i32 @pcapng_read_if_descr_block(ptr nound %51 = zext nneg i8 %44 to i64 %52 = shl nuw i64 1, %51 %53 = icmp samesign ugt i8 %44, 29 - br i1 %53, label %77, label %54 + br i1 %53, label %78, label %54 54: ; preds = %50 %55 = icmp samesign ugt i8 %44, 26 - br i1 %55, label %77, label %56 + br i1 %55, label %78, label %56 56: ; preds = %54 %57 = icmp samesign ugt i8 %44, 23 - br i1 %57, label %77, label %58 + br i1 %57, label %78, label %58 58: ; preds = %56 %59 = icmp samesign ugt i8 %44, 19 - br i1 %59, label %77, label %60 + br i1 %59, label %78, label %60 60: ; preds = %58 %61 = icmp samesign ugt i8 %44, 16 - br i1 %61, label %77, label %62 + br i1 %61, label %78, label %62 62: ; preds = %60 %63 = icmp samesign ugt i8 %44, 13 - br i1 %63, label %77, label %64 + br i1 %63, label %78, label %64 64: ; preds = %62 %65 = icmp samesign ugt i8 %44, 9 - br i1 %65, label %77, label %66 + br i1 %65, label %78, label %66 66: ; preds = %64 %67 = icmp samesign ugt i8 %44, 6 - br i1 %67, label %77, label %68 + br i1 %67, label %78, label %68 68: ; preds = %66 %69 = icmp samesign ugt i8 %44, 3 %. = zext i1 %69 to i32 - br label %77 + br label %78 70: ; preds = %42 %71 = zext nneg i8 %44 to i32 @@ -2008,8 +2008,8 @@ define internal fastcc range(i32 0, 2) i32 @pcapng_read_if_descr_block(ptr nound br i1 %72, label %73, label %.preheader .preheader: ; preds = %70 - %.not93 = icmp eq i8 %44, 0 - br i1 %.not93, label %._crit_edge, label %.lr.ph + %.not92 = icmp eq i8 %44, 0 + br i1 %.not92, label %._crit_edge, label %.lr.ph 73: ; preds = %70 store i32 -4, ptr %5, align 4 @@ -2018,59 +2018,59 @@ define internal fastcc range(i32 0, 2) i32 @pcapng_read_if_descr_block(ptr nound br label %93 .lr.ph: ; preds = %.preheader, %.lr.ph - %.092 = phi i32 [ %76, %.lr.ph ], [ 0, %.preheader ] - %.06791 = phi i64 [ %75, %.lr.ph ], [ 1, %.preheader ] - %75 = mul i64 %.06791, 10 - %76 = add nuw nsw i32 %.092, 1 + %.091 = phi i32 [ %76, %.lr.ph ], [ 0, %.preheader ] + %.06790 = phi i64 [ %75, %.lr.ph ], [ 1, %.preheader ] + %75 = mul i64 %.06790, 10 + %76 = add nuw nsw i32 %.091, 1 %exitcond.not = icmp eq i32 %76, %71 br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !7 ._crit_edge: ; preds = %.lr.ph, %.preheader %.067.lcssa = phi i64 [ 1, %.preheader ], [ %75, %.lr.ph ] - %.8990 = call i8 @llvm.umin.i8(i8 %44, i8 9) - %.89 = zext nneg i8 %.8990 to i32 - br label %77 + %77 = call i8 @llvm.umin.i8(i8 %44, i8 9) + %.89 = zext nneg i8 %77 to i32 + br label %78 -77: ; preds = %50, %54, %56, %58, %60, %62, %64, %66, %68, %._crit_edge, %38 +78: ; preds = %50, %54, %56, %58, %60, %62, %64, %66, %68, %._crit_edge, %38 %.071 = phi i32 [ 6, %38 ], [ 9, %50 ], [ 8, %54 ], [ 7, %56 ], [ 6, %58 ], [ 5, %60 ], [ 4, %62 ], [ 3, %64 ], [ 2, %66 ], [ %., %68 ], [ %.89, %._crit_edge ] %.070 = phi i64 [ 1000000, %38 ], [ %52, %50 ], [ %52, %54 ], [ %52, %56 ], [ %52, %58 ], [ %52, %60 ], [ %52, %62 ], [ %52, %64 ], [ %52, %66 ], [ %52, %68 ], [ %.067.lcssa, %._crit_edge ] - %78 = getelementptr inbounds nuw i8, ptr %21, i64 8 - store i64 %.070, ptr %78, align 8 - %79 = getelementptr inbounds nuw i8, ptr %21, i64 16 - store i32 %.071, ptr %79, align 8 - %80 = getelementptr inbounds nuw i8, ptr %0, i64 144 - %81 = load i32, ptr %80, align 8 - %82 = icmp eq i32 %81, -2 - %83 = load i32, ptr %21, align 8 - br i1 %82, label %.sink.split, label %84 - -84: ; preds = %77 - %.not87 = icmp eq i32 %81, %83 + %79 = getelementptr inbounds nuw i8, ptr %21, i64 8 + store i64 %.070, ptr %79, align 8 + %80 = getelementptr inbounds nuw i8, ptr %21, i64 16 + store i32 %.071, ptr %80, align 8 + %81 = getelementptr inbounds nuw i8, ptr %0, i64 144 + %82 = load i32, ptr %81, align 8 + %83 = icmp eq i32 %82, -2 + %84 = load i32, ptr %21, align 8 + br i1 %83, label %.sink.split, label %85 + +85: ; preds = %78 + %.not87 = icmp eq i32 %82, %84 br i1 %.not87, label %85, label %.sink.split -.sink.split: ; preds = %84, %77 - %.sink94 = phi i32 [ %83, %77 ], [ -1, %84 ] - store i32 %.sink94, ptr %80, align 8 +.sink.split: ; preds = %85, %78 + %.sink93 = phi i32 [ %84, %78 ], [ -1, %85 ] + store i32 %.sink93, ptr %81, align 8 br label %85 -85: ; preds = %.sink.split, %84 - %86 = getelementptr inbounds nuw i8, ptr %0, i64 148 +91: ; preds = %.sink.split, %84 + %.not88 = getelementptr inbounds nuw i8, ptr %0, i64 148 %87 = load i32, ptr %86, align 4 %88 = icmp eq i32 %87, -2 %89 = load i32, ptr %79, align 8 br i1 %88, label %.sink.split95, label %90 -90: ; preds = %85 - %.not88 = icmp eq i32 %87, %89 - br i1 %.not88, label %91, label %.sink.split95 +.sink.split94: ; preds = %91 + %.sink95 = icmp eq i32 %87, %89 + br i1 %.sink95, label %91, label %92 -.sink.split95: ; preds = %90, %85 - %.sink96 = phi i32 [ %89, %85 ], [ -1, %90 ] - store i32 %.sink96, ptr %86, align 4 - br label %91 +92: ; preds = %.sink.split94, %91 + %93 = phi i32 [ %89, %85 ], [ -1, %.sink.split94 ] + store i32 %93, ptr %86, align 4 + br label %94 -91: ; preds = %.sink.split95, %90 - %92 = getelementptr inbounds nuw i8, ptr %4, i64 4 +94: ; preds = %92, %90 + %.068 = getelementptr inbounds nuw i8, ptr %4, i64 4 store i32 1, ptr %92, align 4 br label %93 diff --git a/bench/yosys/optimized/memlib.ll b/bench/yosys/optimized/memlib.ll index a014398bc0f..302aa1bd6f1 100644 --- a/bench/yosys/optimized/memlib.ll +++ b/bench/yosys/optimized/memlib.ll @@ -40202,9 +40202,9 @@ _ZNK5Yosys7hashlib4dictINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiNS0 1061: ; preds = %_ZNK5Yosys7hashlib4dictINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiNS0_8hash_opsIS7_EEE7do_hashERKS7_.exit.i call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) - %1062 = load i32, ptr %.1.i, align 8 - %1063 = icmp eq i32 %1062, 0 - %1064 = zext i1 %1063 to i8 + %1063 = load i32, ptr %.1.i, align 8 + %1064 = icmp eq i32 %1063, 0 + %1065 = zext i1 %1064 to i8 %1065 = icmp slt i32 %1060, 0 br i1 %1065, label %1066, label %1089 @@ -40227,7 +40227,7 @@ _ZNK5Yosys7hashlib4dictINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiNS0 to label %1077 unwind label %1087 1077: ; preds = %1075 - store i8 %1064, ptr %113, align 8 + store i8 %1065, ptr %113, align 8 %1078 = load ptr, ptr %112, align 8 %1079 = load ptr, ptr %114, align 8 %.not.i212 = icmp eq ptr %1078, %1079 @@ -40272,7 +40272,7 @@ _ZNSt6vectorIN5Yosys10MemLibrary8RamClockESaIS2_EE9push_backERKS2_.exit: ; preds %1096 = getelementptr inbounds %"struct.Yosys::MemLibrary::RamClock", ptr %1095, i64 %1094, i32 1 %1097 = load i8, ptr %1096, align 8 %1098 = trunc i8 %1097 to i1 - %1099 = xor i1 %1063, %1098 + %1099 = xor i1 %1064, %1098 br i1 %1099, label %1100, label %1107 1100: ; preds = %1089 diff --git a/bench/yosys/optimized/pmux2shiftx.ll b/bench/yosys/optimized/pmux2shiftx.ll index 99c7afe7ff1..15f74656262 100644 --- a/bench/yosys/optimized/pmux2shiftx.ll +++ b/bench/yosys/optimized/pmux2shiftx.ll @@ -28034,7 +28034,7 @@ _ZN5Yosys7hashlib4dictINS_5RTLIL7SigSpecEbNS0_8hash_opsIS3_EEE4findERKS3_.exit: br i1 %68, label %69, label %._crit_edge ._crit_edge: ; preds = %66 - %.pre185 = zext nneg i32 %spec.select.i to i64 + %.pre184 = zext nneg i32 %spec.select.i to i64 br label %77 69: ; preds = %66 @@ -28049,7 +28049,7 @@ _ZN5Yosys7hashlib4dictINS_5RTLIL7SigSpecEbNS0_8hash_opsIS3_EEE4findERKS3_.exit: br label %77 77: ; preds = %._crit_edge, %69 - %.pre-phi = phi i64 [ %.pre185, %._crit_edge ], [ %71, %69 ] + %.pre-phi = phi i64 [ %.pre184, %._crit_edge ], [ %71, %69 ] %78 = getelementptr inbounds nuw i8, ptr %0, i64 168 %79 = load ptr, ptr %78, align 8 %80 = getelementptr inbounds nuw %"struct.Yosys::hashlib::dict::entry_t", ptr %79, i64 %.pre-phi, i32 0, i32 1 @@ -28063,8 +28063,8 @@ _ZN5Yosys7hashlib4dictINS_5RTLIL7SigSpecEbNS0_8hash_opsIS3_EEE4findERKS3_.exit: 84: ; preds = %_ZN5Yosys7hashlib4dictINS_5RTLIL7SigSpecEbNS0_8hash_opsIS3_EEE4findERKS3_.exit %85 = load i32, ptr %1, align 8 - %.not124138 = icmp eq i32 %85, 0 - br i1 %.not124138, label %.loopexit130, label %.lr.ph + %.not137 = icmp eq i32 %85, 0 + br i1 %.not137, label %.loopexit129, label %.lr.ph .lr.ph: ; preds = %84 %86 = getelementptr inbounds nuw i8, ptr %1, i64 16 @@ -28076,14 +28076,14 @@ _ZN5Yosys7hashlib4dictINS_5RTLIL7SigSpecEbNS0_8hash_opsIS3_EEE4findERKS3_.exit: br label %93 92: ; preds = %_ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit - %.0.mux = select i1 %107, i1 true, i1 %.0140 + %.0.mux = select i1 %107, i1 true, i1 %.0139 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %.not124 = icmp eq i64 %indvars.iv.next, %91 - br i1 %.not124, label %.loopexit130, label %93 + %.not = icmp eq i64 %indvars.iv.next, %91 + br i1 %.not, label %.loopexit129, label %93 93: ; preds = %.lr.ph, %92 %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %92 ] - %.0140 = phi i1 [ false, %.lr.ph ], [ %.0.mux, %92 ] + %.0139 = phi i1 [ false, %.lr.ph ], [ %.0.mux, %92 ] %94 = load ptr, ptr %86, align 8 %95 = load ptr, ptr %87, align 8 %96 = icmp eq ptr %94, %95 @@ -28114,7 +28114,7 @@ _ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit: ; preds = %_ZNK5Yosys5RTLIL7Si %.sroa.27.0.copyload = load i32, ptr %.sroa.27.0..sroa_idx, align 8 %106 = call noundef zeroext i8 @_ZNK5Yosys10FfInitValsclENS_5RTLIL6SigBitE(ptr noundef nonnull align 8 dereferenceable(64) %90, ptr %.sroa.06.0.copyload, i32 %.sroa.27.0.copyload) %107 = icmp eq i8 %106, 1 - %brmerge.not = select i1 %107, i1 %.0140, i1 false + %brmerge.not = select i1 %107, i1 %.0139, i1 false br i1 %brmerge.not, label %108, label %92 108: ; preds = %_ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit @@ -28128,23 +28128,23 @@ _ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit: ; preds = %_ZNK5Yosys5RTLIL7Si 112: ; preds = %111, %108 store i8 0, ptr %2, align 1 - br label %.loopexit130 + br label %.loopexit129 -.loopexit130: ; preds = %92, %84, %112 +.loopexit129: ; preds = %92, %84, %112 %113 = load i8, ptr %2, align 1 %114 = trunc i8 %113 to i1 br i1 %114, label %115, label %.loopexit -115: ; preds = %.loopexit130 +115: ; preds = %.loopexit129 %116 = call noundef zeroext i1 @_ZNK5Yosys5RTLIL7SigSpec14is_fully_constEv(ptr noundef nonnull align 8 dereferenceable(64) %1) br i1 %116, label %117, label %156 117: ; preds = %115 %118 = load i32, ptr %1, align 8 - %.not126141 = icmp eq i32 %118, 0 - br i1 %.not126141, label %.loopexit, label %.lr.ph144 + %.not125140 = icmp eq i32 %118, 0 + br i1 %.not125140, label %.loopexit, label %.lr.ph143 -.lr.ph144: ; preds = %117 +.lr.ph143: ; preds = %117 %119 = getelementptr inbounds nuw i8, ptr %1, i64 16 %120 = getelementptr inbounds nuw i8, ptr %1, i64 24 %121 = getelementptr inbounds nuw i8, ptr %1, i64 40 @@ -28152,13 +28152,13 @@ _ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit: ; preds = %_ZNK5Yosys5RTLIL7Si %123 = load ptr, ptr %119, align 8 %124 = load ptr, ptr %120, align 8 %125 = icmp eq ptr %123, %124 - br i1 %125, label %.lr.ph144.split.us, label %.lr.ph144.split.preheader + br i1 %125, label %.lr.ph143.split.us, label %.lr.ph143.split.preheader -.lr.ph144.split.preheader: ; preds = %.lr.ph144 +.lr.ph143.split.preheader: ; preds = %.lr.ph143 %126 = zext i32 %118 to i64 - br label %.lr.ph144.split + br label %.lr.ph143.split -.lr.ph144.split.us: ; preds = %.lr.ph144 +.lr.ph143.split.us: ; preds = %.lr.ph143 %127 = load ptr, ptr %122, align 8 %128 = load ptr, ptr %121, align 8 %129 = ptrtoint ptr %127 to i64 @@ -28168,77 +28168,77 @@ _ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit: ; preds = %_ZNK5Yosys5RTLIL7Si %133 = zext i32 %118 to i64 br label %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59.us -_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59.us: ; preds = %134, %.lr.ph144.split.us - %indvars.iv183 = phi i64 [ %indvars.iv.next184, %134 ], [ 0, %.lr.ph144.split.us ] - %.042143.us = phi i1 [ %.042.mux.us, %134 ], [ false, %.lr.ph144.split.us ] - %exitcond.not = icmp eq i64 %indvars.iv183, %132 +_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59.us: ; preds = %134, %.lr.ph143.split.us + %indvars.iv182 = phi i64 [ %indvars.iv.next183, %134 ], [ 0, %.lr.ph143.split.us ] + %.042142.us = phi i1 [ %.042.mux.us, %134 ], [ false, %.lr.ph143.split.us ] + %exitcond.not = icmp eq i64 %indvars.iv182, %132 br i1 %exitcond.not, label %.split.us, label %_ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit61.us 134: ; preds = %_ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit61.us - %indvars.iv.next184 = add nuw nsw i64 %indvars.iv183, 1 - %.042.mux.us = select i1 %or.cond.us.not.not159, i1 true, i1 %.042143.us - %.not126.us = icmp eq i64 %indvars.iv.next184, %133 - br i1 %.not126.us, label %.loopexit, label %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59.us + %indvars.iv.next183 = add nuw nsw i64 %indvars.iv182, 1 + %.042.mux.us = select i1 %or.cond.us.not.not158, i1 true, i1 %.042142.us + %.not125.us = icmp eq i64 %indvars.iv.next183, %133 + br i1 %.not125.us, label %.loopexit, label %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59.us _ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit61.us: ; preds = %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59.us - %135 = getelementptr inbounds nuw %"struct.Yosys::RTLIL::SigBit", ptr %128, i64 %indvars.iv183 + %135 = getelementptr inbounds nuw %"struct.Yosys::RTLIL::SigBit", ptr %128, i64 %indvars.iv182 %.sroa.0102.0.copyload.us = load ptr, ptr %135, align 8 %.sroa.2103.0..sroa_idx.us = getelementptr inbounds nuw i8, ptr %135, i64 8 %.sroa.2103.0.copyload.us = load i32, ptr %.sroa.2103.0..sroa_idx.us, align 8 %136 = icmp eq ptr %.sroa.0102.0.copyload.us, null %137 = and i32 %.sroa.2103.0.copyload.us, 255 %138 = icmp eq i32 %137, 1 - %or.cond.us.not.not159 = select i1 %136, i1 %138, i1 false - %brmerge128.us.not = select i1 %or.cond.us.not.not159, i1 %.042143.us, i1 false - br i1 %brmerge128.us.not, label %.split147.us, label %134 + %or.cond.us.not.not158 = select i1 %136, i1 %138, i1 false + %brmerge127.us.not = select i1 %or.cond.us.not.not158, i1 %.042142.us, i1 false + br i1 %brmerge127.us.not, label %.split146.us, label %134 139: ; preds = %_ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit61 - %.042.mux = select i1 %or.cond.not151.not154, i1 true, i1 %.042143 - %indvars.iv.next182 = add nuw nsw i64 %indvars.iv181, 1 - %.not126 = icmp eq i64 %indvars.iv.next182, %126 - br i1 %.not126, label %.loopexit, label %.lr.ph144.split, !llvm.loop !225 - -.lr.ph144.split: ; preds = %.lr.ph144.split.preheader, %139 - %indvars.iv181 = phi i64 [ 0, %.lr.ph144.split.preheader ], [ %indvars.iv.next182, %139 ] - %.042143 = phi i1 [ false, %.lr.ph144.split.preheader ], [ %.042.mux, %139 ] + %.042.mux = select i1 %or.cond.not150.not153, i1 true, i1 %.042142 + %indvars.iv.next181 = add nuw nsw i64 %indvars.iv180, 1 + %.not125 = icmp eq i64 %indvars.iv.next181, %126 + br i1 %.not125, label %.loopexit, label %.lr.ph143.split, !llvm.loop !225 + +.lr.ph143.split: ; preds = %.lr.ph143.split.preheader, %139 + %indvars.iv180 = phi i64 [ 0, %.lr.ph143.split.preheader ], [ %indvars.iv.next181, %139 ] + %.042142 = phi i1 [ false, %.lr.ph143.split.preheader ], [ %.042.mux, %139 ] %140 = load ptr, ptr %119, align 8 %141 = load ptr, ptr %120, align 8 %142 = icmp eq ptr %140, %141 br i1 %142, label %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59, label %143 -143: ; preds = %.lr.ph144.split +143: ; preds = %.lr.ph143.split call void @_ZNK5Yosys5RTLIL7SigSpec6unpackEv(ptr noundef nonnull align 8 dereferenceable(64) %1) br label %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59 -_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59: ; preds = %143, %.lr.ph144.split +_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59: ; preds = %143, %.lr.ph143.split %144 = load ptr, ptr %122, align 8 %145 = load ptr, ptr %121, align 8 %146 = ptrtoint ptr %144 to i64 %147 = ptrtoint ptr %145 to i64 %148 = sub i64 %146, %147 %149 = ashr exact i64 %148, 4 - %.not.i.i.i.i60 = icmp ugt i64 %149, %indvars.iv181 + %.not.i.i.i.i60 = icmp ugt i64 %149, %indvars.iv180 br i1 %.not.i.i.i.i60, label %_ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit61, label %.split.us .split.us: ; preds = %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59, %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59.us - %.us-phi = phi i64 [ %132, %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59.us ], [ %indvars.iv181, %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59 ] - %.us-phi145 = phi i64 [ %132, %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59.us ], [ %149, %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59 ] - call void (ptr, ...) @_ZSt24__throw_out_of_range_fmtPKcz(ptr noundef nonnull @.str.63, i64 noundef %.us-phi, i64 noundef %.us-phi145) #27 + %.us-phi = phi i64 [ %132, %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59.us ], [ %indvars.iv180, %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59 ] + %.us-phi144 = phi i64 [ %132, %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59.us ], [ %149, %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59 ] + call void (ptr, ...) @_ZSt24__throw_out_of_range_fmtPKcz(ptr noundef nonnull @.str.63, i64 noundef %.us-phi, i64 noundef %.us-phi144) #27 unreachable _ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit61: ; preds = %_ZNK5Yosys5RTLIL7SigSpec13inline_unpackEv.exit.i.i59 - %150 = getelementptr inbounds nuw %"struct.Yosys::RTLIL::SigBit", ptr %145, i64 %indvars.iv181 + %150 = getelementptr inbounds nuw %"struct.Yosys::RTLIL::SigBit", ptr %145, i64 %indvars.iv180 %.sroa.0102.0.copyload = load ptr, ptr %150, align 8 %.sroa.2103.0..sroa_idx = getelementptr inbounds nuw i8, ptr %150, i64 8 %.sroa.2103.0.copyload = load i32, ptr %.sroa.2103.0..sroa_idx, align 8 %151 = icmp eq ptr %.sroa.0102.0.copyload, null %152 = and i32 %.sroa.2103.0.copyload, 255 %153 = icmp eq i32 %152, 1 - %or.cond.not151.not154 = select i1 %151, i1 %153, i1 false - %brmerge128.not = select i1 %or.cond.not151.not154, i1 %.042143, i1 false - br i1 %brmerge128.not, label %.split147.us, label %139 + %or.cond.not150.not153 = select i1 %151, i1 %153, i1 false + %brmerge127.not = select i1 %or.cond.not150.not153, i1 %.042142, i1 false + br i1 %brmerge127.not, label %.split146.us, label %139 -.split147.us: ; preds = %_ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit61, %_ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit61.us +.split146.us: ; preds = %_ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit61, %_ZNK5Yosys5RTLIL20SigSpecConstIteratordeEv.exit61.us %154 = load i8, ptr %12, align 8 %155 = trunc i8 %154 to i1 br i1 %155, label %.loopexit.sink.split.sink.split, label %.loopexit.sink.split @@ -28311,14 +28311,14 @@ _ZN5Yosys7hashlib4dictINS_5RTLIL7SigSpecENS0_4poolIS3_NS0_8hash_opsIS3_EEEES6_E4 br label %197 197: ; preds = %244, %181 - %indvars.iv178 = phi i64 [ %indvars.iv.next179, %244 ], [ %196, %181 ] - %indvars.iv.next179 = add nsw i64 %indvars.iv178, -1 - %198 = icmp eq i64 %indvars.iv178, 0 + %indvars.iv177 = phi i64 [ %indvars.iv.next178, %244 ], [ %196, %181 ] + %indvars.iv.next178 = add nsw i64 %indvars.iv177, -1 + %198 = icmp eq i64 %indvars.iv177, 0 br i1 %198, label %.loopexit, label %199 199: ; preds = %197 %200 = load ptr, ptr %186, align 8 - %201 = getelementptr inbounds %"struct.Yosys::hashlib::pool::entry_t", ptr %200, i64 %indvars.iv.next179 + %201 = getelementptr inbounds %"struct.Yosys::hashlib::pool::entry_t", ptr %200, i64 %indvars.iv.next178 store i8 1, ptr %11, align 1 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) %202 = load ptr, ptr %18, align 8, !noalias !227 @@ -28416,16 +28416,16 @@ _ZN5Yosys7hashlib4poolINS_5RTLIL7SigSpecENS0_8hash_opsIS3_EEE5eraseERKS3_.exit: %246 = trunc i8 %245 to i1 br i1 %246, label %197, label %.loopexit -.loopexit.sink.split.sink.split: ; preds = %178, %.split147.us - %.str.94.sink = phi ptr [ @.str.93, %.split147.us ], [ @.str.94, %178 ] +.loopexit.sink.split.sink.split: ; preds = %178, %.split146.us + %.str.94.sink = phi ptr [ @.str.93, %.split146.us ], [ @.str.94, %178 ] call void (ptr, ...) @_ZN5Yosys3logEPKcz(ptr noundef nonnull %.str.94.sink, i32 noundef %4, ptr noundef nonnull @.str.66) br label %.loopexit.sink.split -.loopexit.sink.split: ; preds = %.loopexit.sink.split.sink.split, %178, %.split147.us +.loopexit.sink.split: ; preds = %.loopexit.sink.split.sink.split, %178, %.split146.us store i8 0, ptr %2, align 1 br label %.loopexit -.loopexit: ; preds = %197, %244, %139, %134, %.loopexit.sink.split, %117, %.loopexit130 +.loopexit: ; preds = %197, %244, %139, %134, %.loopexit.sink.split, %117, %.loopexit129 %247 = load i8, ptr %3, align 1 %248 = trunc i8 %247 to i1 %.pre = load i8, ptr %2, align 1 diff --git a/bench/yyjson/optimized/yyjson.c.ll b/bench/yyjson/optimized/yyjson.c.ll index db05fd2dd29..be7431f0d5f 100644 --- a/bench/yyjson/optimized/yyjson.c.ll +++ b/bench/yyjson/optimized/yyjson.c.ll @@ -58518,13 +58518,13 @@ if.else: ; preds = %entry %conv8 = trunc i64 %sub.ptr.sub to i32 %add = add i32 %conv8, 19 %conv10.neg = sext i1 %and83 to i32 - %sub = add i32 %add, %conv10.neg + %add = add i32 %add, %conv10.neg %0 = load i8, ptr %sig_cut, align 1 %cmp12 = icmp ugt i8 %0, 52 %conv14.neg = sext i1 %cmp12 to i64 %sub15 = add i64 %sig, %conv14.neg - %cmp16 = icmp ugt i32 %sub, 768 - %sub19 = add i32 %sub, -769 + %1 = icmp ugt i32 %add, 768 + %cmp16 = add i32 %sub, -769 %idx.ext = zext i32 %sub19 to i64 %idx.neg = sub nsw i64 0, %idx.ext %add.ptr = getelementptr inbounds i8, ptr %sig_end, i64 %idx.neg @@ -58533,9 +58533,9 @@ if.else: ; preds = %entry %idx.ext23.neg = sext i1 %cmp21 to i64 %add.ptr25 = getelementptr inbounds i8, ptr %add.ptr, i64 %idx.ext23.neg %sig_end.addr.0 = select i1 %cmp16, ptr %add.ptr25, ptr %sig_end - %dig_len_total.0 = tail call i32 @llvm.umin.i32(i32 %sub, i32 769) - %1 = load i32, ptr %exp, align 4 - %reass.sub = sub i32 %1, %dig_len_total.0 + %sub26 = tail call i32 @llvm.umin.i32(i32 %add, i32 769) + %2 = load i32, ptr %exp, align 4 + %sub27 = sub i32 %2, %sub26 %sub27 = add i32 %reass.sub, 19 store i32 %sub27, ptr %exp, align 4 store i32 1, ptr %big, align 8 @@ -58557,14 +58557,14 @@ while.body: ; preds = %if.else, %if.end66 if.then38: ; preds = %while.body %mul = mul i64 %val.0109, 10 %incdec.ptr = getelementptr inbounds nuw i8, ptr %cur.0107, i64 1 - %4 = load i8, ptr %cur.0107, align 1 - %sub40 = add i8 %4, -48 + %5 = load i8, ptr %cur.0107, align 1 + %sub40 = add i8 %5, -48 %conv42 = zext i8 %sub40 to i64 %add43 = add i64 %mul, %conv42 %inc = add i32 %len.0108, 1 %cmp44 = icmp eq ptr %incdec.ptr, %sig_end.addr.0 - %5 = and i1 %cmp16, %cmp44 - br i1 %5, label %if.then54, label %if.end57 + %6 = and i1 %cmp16, %cmp44 + br i1 %6, label %if.then54, label %if.end57 if.then54: ; preds = %if.then38 %rem = urem i64 %add43, 10 @@ -58598,8 +58598,8 @@ for.body.i86.preheader: ; preds = %for.body.i for.body.i86: ; preds = %for.body.i86.preheader, %if.end.i91 %indvars.iv = phi i64 [ 0, %for.body.i86.preheader ], [ %indvars.iv.next, %if.end.i91 ] %arrayidx.i89 = getelementptr inbounds nuw [64 x i64], ptr %bits, i64 0, i64 %indvars.iv - %8 = load i64, ptr %arrayidx.i89, align 8 - %tobool.i90.not = icmp eq i64 %8, 0 + %9 = load i64, ptr %arrayidx.i89, align 8 + %tobool.i90.not = icmp eq i64 %9, 0 br i1 %tobool.i90.not, label %if.end.i91, label %for.end.i84.loopexit if.end.i91: ; preds = %for.body.i86 @@ -58608,25 +58608,25 @@ if.end.i91: ; preds = %for.body.i86 br i1 %exitcond.not, label %bigint_mul_u64.exit, label %for.body.i86, !llvm.loop !56 for.end.i84.loopexit: ; preds = %for.body.i86 - %9 = trunc nuw i64 %indvars.iv to i32 + %10 = trunc nuw i64 %indvars.iv to i32 br label %for.end.i84 for.end.i84: ; preds = %for.end.i84.loopexit, %for.body.i - %idx.i80.0.lcssa = phi i32 [ 0, %for.body.i ], [ %9, %for.end.i84.loopexit ] + %idx.i80.0.lcssa = phi i32 [ 0, %for.body.i ], [ %10, %for.end.i84.loopexit ] %cmp2.i87 = icmp ult i32 %idx.i80.0.lcssa, %inc17.i95 br i1 %cmp2.i87, label %for.body3.i.preheader, label %bigint_mul_u64.exit for.body3.i.preheader: ; preds = %for.end.i84 - %10 = zext i32 %idx.i80.0.lcssa to i64 + %11 = zext i32 %idx.i80.0.lcssa to i64 %wide.trip.count116 = zext i32 %inc17.i95 to i64 br label %for.body3.i for.body3.i: ; preds = %for.body3.i.preheader, %for.body3.i - %indvars.iv113 = phi i64 [ %10, %for.body3.i.preheader ], [ %indvars.iv.next114, %for.body3.i ] + %indvars.iv113 = phi i64 [ %11, %for.body3.i.preheader ], [ %indvars.iv.next114, %for.body3.i ] %carry.i.088 = phi i64 [ 0, %for.body3.i.preheader ], [ %conv3.i144, %for.body3.i ] %arrayidx6.i = getelementptr inbounds nuw [64 x i64], ptr %bits, i64 0, i64 %indvars.iv113 - %11 = load i64, ptr %arrayidx6.i, align 8 - %conv.i138 = zext i64 %11 to i128 + %12 = load i64, ptr %arrayidx6.i, align 8 + %conv.i138 = zext i64 %12 to i128 %mul.i140 = mul nuw i128 %conv.i138, 10000000000000000000 %conv2.i141 = zext i64 %carry.i.088 to i128 %add.i142 = add nuw i128 %mul.i140, %conv2.i141 @@ -58670,7 +58670,7 @@ for.end.i: ; preds = %bigint_mul_u64.exit if.then.i: ; preds = %for.end.i %idxprom.i = sext i32 %exp.addr.i.0.lcssa to i64 %arrayidx.i = getelementptr inbounds [20 x i64], ptr @u64_pow10_table, i64 0, i64 %idxprom.i - %16 = load i64, ptr %arrayidx.i, align 8 + %17 = load i64, ptr %arrayidx.i, align 8 %cmp.i10296.not = icmp eq i32 %15, 0 br i1 %cmp.i10296.not, label %for.end.i103, label %for.body.i121.preheader @@ -58681,8 +58681,8 @@ for.body.i121.preheader: ; preds = %if.then.i for.body.i121: ; preds = %for.body.i121.preheader, %if.end.i126 %indvars.iv118 = phi i64 [ 0, %for.body.i121.preheader ], [ %indvars.iv.next119, %if.end.i126 ] %arrayidx.i124 = getelementptr inbounds nuw [64 x i64], ptr %bits, i64 0, i64 %indvars.iv118 - %17 = load i64, ptr %arrayidx.i124, align 8 - %tobool.i125.not = icmp eq i64 %17, 0 + %18 = load i64, ptr %arrayidx.i124, align 8 + %tobool.i125.not = icmp eq i64 %18, 0 br i1 %tobool.i125.not, label %if.end.i126, label %for.end.i103.loopexit if.end.i126: ; preds = %for.body.i121 @@ -58691,26 +58691,26 @@ if.end.i126: ; preds = %for.body.i121 br i1 %exitcond122.not, label %bigint_mul_pow10.exit, label %for.body.i121, !llvm.loop !56 for.end.i103.loopexit: ; preds = %for.body.i121 - %18 = trunc nuw i64 %indvars.iv118 to i32 + %19 = trunc nuw i64 %indvars.iv118 to i32 br label %for.end.i103 for.end.i103: ; preds = %for.end.i103.loopexit, %if.then.i - %idx.i96.0.lcssa = phi i32 [ 0, %if.then.i ], [ %18, %for.end.i103.loopexit ] + %idx.i96.0.lcssa = phi i32 [ 0, %if.then.i ], [ %19, %for.end.i103.loopexit ] %cmp2.i105100 = icmp ult i32 %idx.i96.0.lcssa, %15 br i1 %cmp2.i105100, label %for.body3.i113.lr.ph, label %bigint_mul_pow10.exit for.body3.i113.lr.ph: ; preds = %for.end.i103 - %conv1.i = zext i64 %16 to i128 - %19 = zext i32 %idx.i96.0.lcssa to i64 + %conv1.i = zext i64 %17 to i128 + %20 = zext i32 %idx.i96.0.lcssa to i64 %wide.trip.count126 = zext i32 %15 to i64 br label %for.body3.i113 for.body3.i113: ; preds = %for.body3.i113.lr.ph, %for.body3.i113 - %indvars.iv123 = phi i64 [ %19, %for.body3.i113.lr.ph ], [ %indvars.iv.next124, %for.body3.i113 ] + %indvars.iv123 = phi i64 [ %20, %for.body3.i113.lr.ph ], [ %indvars.iv.next124, %for.body3.i113 ] %carry.i100.0101 = phi i64 [ 0, %for.body3.i113.lr.ph ], [ %conv3.i, %for.body3.i113 ] %arrayidx6.i116 = getelementptr inbounds nuw [64 x i64], ptr %bits, i64 0, i64 %indvars.iv123 - %20 = load i64, ptr %arrayidx6.i116, align 8 - %conv.i130 = zext i64 %20 to i128 + %21 = load i64, ptr %arrayidx6.i116, align 8 + %conv.i130 = zext i64 %21 to i128 %mul.i = mul nuw i128 %conv.i130, %conv1.i %conv2.i = zext i64 %carry.i100.0101 to i128 %add.i131 = add nuw i128 %mul.i, %conv2.i @@ -58737,9 +58737,9 @@ if.then14.i108: ; preds = %for.end12.i106 bigint_mul_pow10.exit: ; preds = %if.end.i126, %for.end.i103, %for.end12.i106, %if.then14.i108, %for.end.i %21 = phi i32 [ %14, %for.end12.i106 ], [ %inc17.i110, %if.then14.i108 ], [ %14, %for.end.i ], [ %14, %for.end.i103 ], [ %14, %if.end.i126 ] %22 = phi i32 [ %15, %for.end12.i106 ], [ %inc17.i110, %if.then14.i108 ], [ %15, %for.end.i ], [ %15, %for.end.i103 ], [ %15, %if.end.i126 ] - %big.promoted134 = phi i32 [ %15, %for.end12.i106 ], [ %inc17.i110, %if.then14.i108 ], [ %big.promoted135, %for.end.i ], [ %15, %for.end.i103 ], [ %15, %if.end.i126 ] - %23 = load i64, ptr %bits, align 8 - %add1.i = add i64 %23, %val.1 + %23 = phi i32 [ %15, %for.end12.i106 ], [ %inc17.i110, %if.then14.i108 ], [ %big.promoted135, %for.end.i ], [ %15, %for.end.i103 ], [ %15, %if.end.i126 ] + %big.promoted134 = load i64, ptr %bits, align 8 + %24 = add i64 %23, %val.1 store i64 %add1.i, ptr %bits, align 8 %cmp.i72.not = icmp ult i64 %add1.i, %23 br i1 %cmp.i72.not, label %if.end.i, label %if.end66 @@ -58752,12 +58752,12 @@ if.end.i: ; preds = %bigint_mul_pow10.ex for.body.i75: ; preds = %if.end.i, %if.end23.i %indvars.iv128 = phi i64 [ %indvars.iv.next129, %if.end23.i ], [ 1, %if.end.i ] %arrayidx9.i = getelementptr inbounds nuw [64 x i64], ptr %bits, i64 0, i64 %indvars.iv128 - %24 = load i64, ptr %arrayidx9.i, align 8 - %cmp10.i.not = icmp eq i64 %24, -1 + %25 = load i64, ptr %arrayidx9.i, align 8 + %cmp10.i.not = icmp eq i64 %25, -1 br i1 %cmp10.i.not, label %if.end23.i, label %if.then18.i if.then18.i: ; preds = %for.body.i75 - %add22.i = add nuw i64 %24, 1 + %add22.i = add nuw i64 %25, 1 store i64 %add22.i, ptr %arrayidx9.i, align 8 br label %if.end66 @@ -58779,8 +58779,8 @@ if.else64: ; preds = %while.body br label %if.end66 if.end66: ; preds = %if.then18.i, %for.end.i74, %bigint_mul_pow10.exit, %if.end57, %if.else64 - %25 = phi i32 [ %2, %if.else64 ], [ %2, %if.end57 ], [ %21, %bigint_mul_pow10.exit ], [ %inc29.i, %for.end.i74 ], [ %21, %if.then18.i ] - %26 = phi i32 [ %3, %if.else64 ], [ %3, %if.end57 ], [ %22, %bigint_mul_pow10.exit ], [ %inc29.i, %for.end.i74 ], [ %21, %if.then18.i ] + %26 = phi i32 [ %2, %if.else64 ], [ %2, %if.end57 ], [ %21, %bigint_mul_pow10.exit ], [ %inc29.i, %for.end.i74 ], [ %21, %if.then18.i ] + %27 = phi i32 [ %3, %if.else64 ], [ %3, %if.end57 ], [ %22, %bigint_mul_pow10.exit ], [ %inc29.i, %for.end.i74 ], [ %21, %if.then18.i ] %big.promoted133 = phi i32 [ %big.promoted, %if.else64 ], [ %big.promoted, %if.end57 ], [ %big.promoted134, %bigint_mul_pow10.exit ], [ %inc29.i, %for.end.i74 ], [ %21, %if.then18.i ] %cur.1 = phi ptr [ %incdec.ptr65, %if.else64 ], [ %incdec.ptr, %if.end57 ], [ %incdec.ptr, %bigint_mul_pow10.exit ], [ %incdec.ptr, %for.end.i74 ], [ %incdec.ptr, %if.then18.i ] %len.1 = phi i32 [ %len.0108, %if.else64 ], [ %inc, %if.end57 ], [ 0, %bigint_mul_pow10.exit ], [ 0, %for.end.i74 ], [ 0, %if.then18.i ]