From 3f7e2bcaeb58518c6b4f259ff1cff2bbf0f8da42 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 22 Dec 2023 19:09:55 +0800 Subject: [PATCH] llvm: Update baseline to ffabf7355302b4c506e9a9534ef8f78c1a9e94e7 --- bench/abseil-cpp/optimized/int128_test.cc.ll | 6 +- bench/arrow/optimized/fixed-dtoa.cc.ll | 3 +- bench/assimp/optimized/Assimp.cpp.ll | 37 +- bench/bullet3/optimized/IDMath.ll | 15 +- .../bullet3/optimized/btBatchedConstraints.ll | 1064 +++-- bench/bullet3/optimized/btMLCPSolver.ll | 85 +- bench/bullet3/optimized/btMultiBody.ll | 3058 +++++++------- .../optimized/btReducedDeformableBody.ll | 444 +- .../optimized/btSimulationIslandManagerMt.ll | 3 +- bench/bullet3/optimized/btSoftBody.ll | 532 ++- bench/cpython/optimized/Hacl_Hash_SHA1.ll | 20 +- bench/cpython/optimized/ceval.ll | 3 +- bench/cvc5/optimized/Solver.cc.ll | 19 +- .../optimized/fixed-dtoa.cc.ll | 3 +- bench/flac/optimized/bitreader.c.ll | 18 +- bench/flac/optimized/fixed.c.ll | 157 +- bench/hermes/optimized/APFloat.cpp.ll | 3 +- bench/icu/optimized/locid.ll | 3 +- bench/icu/optimized/loclikelysubtags.ll | 5 +- bench/icu/optimized/number_longnames.ll | 15 +- bench/icu/optimized/olsontz.ll | 34 +- bench/icu/optimized/package.ll | 15 +- bench/icu/optimized/tzrule.ll | 3 +- bench/icu/optimized/ubidi.ll | 5 +- bench/icu/optimized/unisetspan.ll | 3 +- bench/icu/optimized/uvector.ll | 8 +- bench/icu/optimized/uvectr32.ll | 4 +- bench/icu/optimized/uvectr64.ll | 4 +- bench/imgui/optimized/imgui_demo.cpp.ll | 10 +- bench/llama.cpp/optimized/ggml-quants.c.ll | 20 +- bench/llama.cpp/optimized/ggml.c.ll | 23 +- bench/lua/optimized/lstrlib.ll | 487 ++- bench/luajit/optimized/buildvm_lib.ll | 3 +- bench/luajit/optimized/minilua.ll | 325 +- bench/nuklear/optimized/unity.c.ll | 294 +- bench/ocio/optimized/FileFormatCSP.cpp.ll | 9 +- bench/ocio/optimized/FileFormatHDL.cpp.ll | 171 +- bench/ocio/optimized/FileFormatSpi1D.cpp.ll | 9 +- bench/ocio/optimized/FileFormatSpi3D.cpp.ll | 9 +- bench/ocio/optimized/Lut3DOp.cpp.ll | 26 +- bench/oiio/optimized/exrinput.cpp.ll | 33 +- bench/oiio/optimized/icooutput.cpp.ll | 13 +- bench/oiio/optimized/imagebufalgo.cpp.ll | 199 +- bench/oiio/optimized/psdinput.cpp.ll | 522 ++- bench/oiio/optimized/targaoutput.cpp.ll | 157 +- bench/oiio/optimized/tiffinput.cpp.ll | 202 +- bench/openexr/optimized/ImfFastHuf.cpp.ll | 12 +- bench/openexr/optimized/ImfRgbaFile.cpp.ll | 15 +- bench/openexr/optimized/internal_b44.c.ll | 478 ++- bench/openexr/optimized/internal_huf.c.ll | 12 +- .../optimized/libcrypto-lib-bio_print.ll | 6 +- .../openssl/optimized/libcrypto-lib-scalar.ll | 5 +- .../optimized/libcrypto-lib-v3_addr.ll | 14 +- .../optimized/libcrypto-shlib-bio_print.ll | 6 +- .../optimized/libcrypto-shlib-scalar.ll | 5 +- .../optimized/libcrypto-shlib-v3_addr.ll | 14 +- .../openssl/optimized/libssl-lib-quic_txp.ll | 5 +- .../optimized/libssl-lib-tls_common.ll | 3 +- .../optimized/libssl-shlib-quic_txp.ll | 5 +- .../optimized/libssl-shlib-tls_common.ll | 3 +- bench/openvdb/optimized/Maps.cc.ll | 118 +- bench/pbrt-v4/optimized/image.cpp.ll | 133 +- bench/pbrt-v4/optimized/integrators.cpp.ll | 10 +- bench/pbrt-v4/optimized/math.cpp.ll | 7 +- bench/pbrt-v4/optimized/mesh.cpp.ll | 18 +- bench/pbrt-v4/optimized/paramdict.cpp.ll | 23 +- bench/pbrt-v4/optimized/stbimage.cpp.ll | 9 +- bench/pbrt-v4/optimized/subsurface.cpp.ll | 10 +- bench/qemu/optimized/migration_savevm.c.ll | 3 +- bench/qemu/optimized/target_riscv_cpu.c.ll | 3 +- bench/qemu/optimized/tcg.c.ll | 3751 ++++++++--------- bench/redis/optimized/geo.ll | 85 +- bench/redis/optimized/module.ll | 4 +- bench/redis/optimized/t_zset.ll | 114 +- bench/rocksdb/optimized/skiplistrep.cc.ll | 402 +- bench/rocksdb/optimized/version_set.cc.ll | 179 +- .../optimized/stb_connected_components.c.ll | 6 +- .../optimized/stb_herringbone_wang_tile.c.ll | 317 +- bench/stb/optimized/stb_hexwave.c.ll | 9 +- bench/stb/optimized/stb_image.c.ll | 122 +- bench/stb/optimized/stb_image_write.c.ll | 277 +- bench/stb/optimized/stb_tilemap_editor.c.ll | 4 +- bench/zstd/optimized/divsufsort.c.ll | 1276 +++--- llvm/llvm-project | 2 +- 84 files changed, 7635 insertions(+), 7911 deletions(-) diff --git a/bench/abseil-cpp/optimized/int128_test.cc.ll b/bench/abseil-cpp/optimized/int128_test.cc.ll index b1cc554e683..3798cfa09d2 100644 --- a/bench/abseil-cpp/optimized/int128_test.cc.ll +++ b/bench/abseil-cpp/optimized/int128_test.cc.ll @@ -50211,8 +50211,7 @@ invoke.cont18: ; preds = %_ZNKSt14default_del %shl15 = shl nuw i64 1, %indvars.iv %conv.i = zext i64 %shl15 to i128 %24 = sub nsw i64 %indvars.iv1445, %indvars.iv - %.mask = and i64 %24, 4294967295 - %sh_prom.i = zext nneg i64 %.mask to i128 + %sh_prom.i = zext nneg i64 %24 to i128 %shl.i = shl i128 %conv.i, %sh_prom.i %coerce1.sroa.2.0.extract.shift.i = lshr i128 %shl.i, 64 %coerce1.sroa.2.0.extract.trunc.i = trunc i128 %coerce1.sroa.2.0.extract.shift.i to i64 @@ -50995,8 +50994,7 @@ invoke.cont190: ; preds = %_ZNKSt14default_del %113 = sub nsw i64 %indvars.iv1465, %indvars.iv1456 %coerce.sroa.2.0.insert.ext.i357 = zext i64 %shl185 to i128 %coerce.sroa.2.0.insert.shift.i358 = shl nuw i128 %coerce.sroa.2.0.insert.ext.i357, 64 - %.mask1496 = and i64 %113, 4294967295 - %sh_prom.i361 = zext nneg i64 %.mask1496 to i128 + %sh_prom.i361 = zext nneg i64 %113 to i128 %shl.i362 = shl i128 %coerce.sroa.2.0.insert.shift.i358, %sh_prom.i361 %coerce1.sroa.2.0.extract.shift.i363 = lshr exact i128 %shl.i362, 64 %coerce1.sroa.2.0.extract.trunc.i364 = trunc i128 %coerce1.sroa.2.0.extract.shift.i363 to i64 diff --git a/bench/arrow/optimized/fixed-dtoa.cc.ll b/bench/arrow/optimized/fixed-dtoa.cc.ll index 89377c6f831..0da5a31a0cc 100644 --- a/bench/arrow/optimized/fixed-dtoa.cc.ll +++ b/bench/arrow/optimized/fixed-dtoa.cc.ll @@ -371,8 +371,7 @@ for.body.preheader.i: ; preds = %for.cond.preheader. for.body.i: ; preds = %for.body.i, %for.body.preheader.i %indvars.iv41.i = phi i64 [ %33, %for.body.preheader.i ], [ %indvars.iv.next42.i, %for.body.i ] - %idxprom.i19.i = and i64 %indvars.iv41.i, 4294967295 - %arrayidx.i20.i = getelementptr inbounds i8, ptr %buffer.coerce0, i64 %idxprom.i19.i + %arrayidx.i20.i = getelementptr inbounds i8, ptr %buffer.coerce0, i64 %indvars.iv41.i %34 = load i8, ptr %arrayidx.i20.i, align 1 %35 = sub nuw nsw i64 %indvars.iv41.i, %33 %arrayidx.i22.i = getelementptr inbounds i8, ptr %buffer.coerce0, i64 %35 diff --git a/bench/assimp/optimized/Assimp.cpp.ll b/bench/assimp/optimized/Assimp.cpp.ll index 0a617113a8e..9800f45fdb5 100644 --- a/bench/assimp/optimized/Assimp.cpp.ll +++ b/bench/assimp/optimized/Assimp.cpp.ll @@ -15247,25 +15247,24 @@ for.body832: ; preds = %for.cond830.prehead %idxprom835 = zext nneg i32 %add834 to i64 %arrayidx836 = getelementptr inbounds i8, ptr %add.ptr808, i64 %idxprom835 store i8 -1, ptr %arrayidx836, align 1 - %140 = mul i64 %indvars.iv775, 3 - %141 = and i64 %140, 4294967295 - %142 = getelementptr i8, ptr %add.ptr808, i64 %141 - %arrayidx840 = getelementptr i8, ptr %142, i64 2 - %143 = load i8, ptr %arrayidx840, align 1 + %140 = mul nsw i64 %indvars.iv775, 3 + %141 = getelementptr i8, ptr %add.ptr808, i64 %140 + %arrayidx840 = getelementptr i8, ptr %141, i64 2 + %142 = load i8, ptr %arrayidx840, align 1 %add842 = or disjoint i32 %mul833, 2 %idxprom843 = zext nneg i32 %add842 to i64 %arrayidx844 = getelementptr inbounds i8, ptr %add.ptr808, i64 %idxprom843 - store i8 %143, ptr %arrayidx844, align 1 - %arrayidx848 = getelementptr i8, ptr %142, i64 1 - %144 = load i8, ptr %arrayidx848, align 1 + store i8 %142, ptr %arrayidx844, align 1 + %arrayidx848 = getelementptr i8, ptr %141, i64 1 + %143 = load i8, ptr %arrayidx848, align 1 %add850 = or disjoint i32 %mul833, 1 %idxprom851 = zext nneg i32 %add850 to i64 %arrayidx852 = getelementptr inbounds i8, ptr %add.ptr808, i64 %idxprom851 - store i8 %144, ptr %arrayidx852, align 1 - %145 = load i8, ptr %142, align 1 + store i8 %143, ptr %arrayidx852, align 1 + %144 = load i8, ptr %141, align 1 %idxprom859 = zext nneg i32 %mul833 to i64 %arrayidx860 = getelementptr inbounds i8, ptr %add.ptr808, i64 %idxprom859 - store i8 %145, ptr %arrayidx860, align 1 + store i8 %144, ptr %arrayidx860, align 1 %indvars.iv.next776 = add nsw i64 %indvars.iv775, -1 %cmp831 = icmp sgt i64 %indvars.iv775, 0 br i1 %cmp831, label %for.body832, label %for.inc866, !llvm.loop !134 @@ -15284,18 +15283,18 @@ if.then871: ; preds = %for.inc540.thread, br i1 %cmp877646.not, label %return, label %for.body878.preheader for.body878.preheader: ; preds = %if.then871 - %146 = load ptr, ptr %out, align 8 + %145 = load ptr, ptr %out, align 8 br label %for.body878 for.body878: ; preds = %for.body878.preheader, %for.body878 - %cur16.0649 = phi ptr [ %incdec.ptr886, %for.body878 ], [ %146, %for.body878.preheader ] + %cur16.0649 = phi ptr [ %incdec.ptr886, %for.body878 ], [ %145, %for.body878.preheader ] %i.8647 = phi i32 [ %inc885, %for.body878 ], [ 0, %for.body878.preheader ] - %147 = load i8, ptr %cur16.0649, align 1 - %conv880 = zext i8 %147 to i16 + %146 = load i8, ptr %cur16.0649, align 1 + %conv880 = zext i8 %146 to i16 %shl = shl nuw i16 %conv880, 8 %arrayidx881 = getelementptr inbounds i8, ptr %cur16.0649, i64 1 - %148 = load i8, ptr %arrayidx881, align 1 - %conv882 = zext i8 %148 to i16 + %147 = load i8, ptr %arrayidx881, align 1 + %conv882 = zext i8 %147 to i16 %or = or disjoint i16 %shl, %conv882 store i16 %or, ptr %cur16.0649, align 2 %inc885 = add nuw i32 %i.8647, 1 @@ -15305,8 +15304,8 @@ for.body878: ; preds = %for.body878.prehead return.sink.split: ; preds = %for.body.backedge, %if.then29, %for.body.lr.ph, %if.end12, %_ZL21stbi__mul2sizes_validii.exit14.i, %_ZL21stbi__mul2sizes_validii.exit.i, %if.end, %land.lhs.true.i, %_ZL17stbi__malloc_mad3iiii.exit, %_ZL17stbi__malloc_mad3iiii.exit.thread %.str.31.sink = phi ptr [ @.str.26, %_ZL17stbi__malloc_mad3iiii.exit.thread ], [ @.str.26, %_ZL17stbi__malloc_mad3iiii.exit ], [ @.str.11, %land.lhs.true.i ], [ @.str.11, %if.end ], [ @.str.11, %_ZL21stbi__mul2sizes_validii.exit.i ], [ @.str.11, %_ZL21stbi__mul2sizes_validii.exit14.i ], [ @.str.29, %if.end12 ], [ @.str.30, %for.body.lr.ph ], [ @.str.31, %if.then29 ], [ @.str.30, %for.body.backedge ] - %149 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_ZL22stbi__g_failure_reason) - store ptr %.str.31.sink, ptr %149, align 8 + %148 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_ZL22stbi__g_failure_reason) + store ptr %.str.31.sink, ptr %148, align 8 br label %return return: ; preds = %for.inc866, %for.body878, %return.sink.split, %for.end542.thread, %if.then871, %for.cond545.preheader, %if.else869 diff --git a/bench/bullet3/optimized/IDMath.ll b/bench/bullet3/optimized/IDMath.ll index e64c8e64e33..92d0a978ea3 100644 --- a/bench/bullet3/optimized/IDMath.ll +++ b/bench/bullet3/optimized/IDMath.ll @@ -188,19 +188,18 @@ for.cond1.preheader.lr.ph: ; preds = %entry for.cond1.preheader: ; preds = %for.cond1.preheader.lr.ph, %for.inc7 %indvars.iv16 = phi i64 [ 0, %for.cond1.preheader.lr.ph ], [ %indvars.iv.next17, %for.inc7 ] %result.011 = phi float [ 0.000000e+00, %for.cond1.preheader.lr.ph ], [ %.sroa.speculated, %for.inc7 ] + %invariant.gep = getelementptr float, ptr %1, i64 %indvars.iv16 br label %for.body3 for.body3: ; preds = %for.cond1.preheader, %for.body3 %indvars.iv = phi i64 [ 0, %for.cond1.preheader ], [ %indvars.iv.next, %for.body3 ] %result.18 = phi float [ %result.011, %for.cond1.preheader ], [ %.sroa.speculated, %for.body3 ] - %3 = mul i64 %indvars.iv, %2 - %4 = add i64 %3, %indvars.iv16 - %idxprom.i.i = and i64 %4, 4294967295 - %arrayidx.i.i = getelementptr inbounds float, ptr %1, i64 %idxprom.i.i - %5 = load float, ptr %arrayidx.i.i, align 4 - %6 = tail call noundef float @llvm.fabs.f32(float %5) - %cmp.i = fcmp ogt float %result.18, %6 - %.sroa.speculated = select i1 %cmp.i, float %result.18, float %6 + %3 = mul nsw i64 %indvars.iv, %2 + %gep = getelementptr float, ptr %invariant.gep, i64 %3 + %4 = load float, ptr %gep, align 4 + %5 = tail call noundef float @llvm.fabs.f32(float %4) + %cmp.i = fcmp ogt float %result.18, %5 + %.sroa.speculated = select i1 %cmp.i, float %result.18, float %5 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, 3 br i1 %exitcond.not, label %for.inc7, label %for.body3, !llvm.loop !9 diff --git a/bench/bullet3/optimized/btBatchedConstraints.ll b/bench/bullet3/optimized/btBatchedConstraints.ll index c11de5a98ea..11ac083d1e2 100644 --- a/bench/bullet3/optimized/btBatchedConstraints.ll +++ b/bench/bullet3/optimized/btBatchedConstraints.ll @@ -1343,91 +1343,89 @@ if.then337.i: ; preds = %for.body334.i for.body.preheader.i289.i: ; preds = %if.then337.i %138 = mul nuw nsw i64 %indvars.iv497.i, %121 %139 = add nuw nsw i64 %138, %121 - %140 = and i64 %138, 4294967295 - %141 = and i64 %139, 4294967295 - %invariant.op.i.i = add nuw nsw i64 %140, 2 - %142 = trunc i64 %139 to i32 - %143 = add i32 %142, -2 + %invariant.op.i.i = add nuw nsw i64 %138, 2 + %140 = trunc i64 %139 to i32 + %141 = add i32 %140, -2 br label %for.body.i290.i for.body.i290.i: ; preds = %for.inc25.i.i, %for.body.preheader.i289.i - %indvars.iv48.i.i = phi i64 [ %141, %for.body.preheader.i289.i ], [ %indvars.iv.next49.i.i, %for.inc25.i.i ] - %indvars.iv.i291.i = phi i32 [ %143, %for.body.preheader.i289.i ], [ %indvars.iv.next.i294.i, %for.inc25.i.i ] + %indvars.iv48.i.i = phi i64 [ %139, %for.body.preheader.i289.i ], [ %indvars.iv.next49.i.i, %for.inc25.i.i ] + %indvars.iv.i291.i = phi i32 [ %141, %for.body.preheader.i289.i ], [ %indvars.iv.next.i294.i, %for.inc25.i.i ] %indvars.iv.next49.i.i = add nsw i64 %indvars.iv48.i.i, -1 %arrayidx.i292.i = getelementptr inbounds %struct.btBatchInfo, ptr %137, i64 %indvars.iv.next49.i.i %mergeIndex.i293.i = getelementptr inbounds %struct.btBatchInfo, ptr %137, i64 %indvars.iv.next49.i.i, i32 1 - %144 = load i32, ptr %mergeIndex.i293.i, align 4 - %cmp1.i.i = icmp eq i32 %144, -1 + %142 = load i32, ptr %mergeIndex.i293.i, align 4 + %cmp1.i.i = icmp eq i32 %142, -1 br i1 %cmp1.i.i, label %land.lhs.true.i297.i, label %for.inc25.i.i land.lhs.true.i297.i: ; preds = %for.body.i290.i - %145 = load i32, ptr %arrayidx.i292.i, align 4 - %cmp2.i.i = icmp slt i32 %145, 1 - %cmp5.i298.i = icmp sge i32 %145, %minBatchSize + %143 = load i32, ptr %arrayidx.i292.i, align 4 + %cmp2.i.i = icmp slt i32 %143, 1 + %cmp5.i298.i = icmp sge i32 %143, %minBatchSize %or.cond.not42.i.i = or i1 %cmp2.i.i, %cmp5.i298.i %cmp8.not33.i.i = icmp slt i64 %indvars.iv48.i.i, %invariant.op.i.i %or.cond41.i.i = select i1 %or.cond.not42.i.i, i1 true, i1 %cmp8.not33.i.i br i1 %or.cond41.i.i, label %for.inc25.i.i, label %for.body9.i.preheader.i for.body9.i.preheader.i: ; preds = %land.lhs.true.i297.i - %146 = sext i32 %indvars.iv.i291.i to i64 + %144 = sext i32 %indvars.iv.i291.i to i64 br label %for.body9.i.i for.body9.i.i: ; preds = %for.inc.i299.i, %for.body9.i.preheader.i - %indvars.iv45.i.i = phi i64 [ %indvars.iv.next46.i.i, %for.inc.i299.i ], [ %146, %for.body9.i.preheader.i ] + %indvars.iv45.i.i = phi i64 [ %indvars.iv.next46.i.i, %for.inc.i299.i ], [ %144, %for.body9.i.preheader.i ] %mergeIndex12.i.i = getelementptr inbounds %struct.btBatchInfo, ptr %137, i64 %indvars.iv45.i.i, i32 1 - %147 = load i32, ptr %mergeIndex12.i.i, align 4 - %cmp13.i.i = icmp eq i32 %147, -1 + %145 = load i32, ptr %mergeIndex12.i.i, align 4 + %cmp13.i.i = icmp eq i32 %145, -1 br i1 %cmp13.i.i, label %land.lhs.true14.i.i, label %for.inc.i299.i land.lhs.true14.i.i: ; preds = %for.body9.i.i %arrayidx11.i300.i = getelementptr inbounds %struct.btBatchInfo, ptr %137, i64 %indvars.iv45.i.i - %148 = load i32, ptr %arrayidx11.i300.i, align 4 - %add.i301.i = add nsw i32 %148, %145 + %146 = load i32, ptr %arrayidx11.i300.i, align 4 + %add.i301.i = add nsw i32 %146, %143 %cmp17.i.i = icmp slt i32 %add.i301.i, %maxBatchSize br i1 %cmp17.i.i, label %if.then18.i.i, label %for.inc.i299.i if.then18.i.i: ; preds = %land.lhs.true14.i.i %arrayidx11.i300.i.le = getelementptr inbounds %struct.btBatchInfo, ptr %137, i64 %indvars.iv45.i.i - %149 = trunc i64 %indvars.iv45.i.i to i32 + %147 = trunc i64 %indvars.iv45.i.i to i32 store i32 %add.i301.i, ptr %arrayidx11.i300.i.le, align 4 store i32 0, ptr %arrayidx.i292.i, align 4 - store i32 %149, ptr %mergeIndex.i293.i, align 4 + store i32 %147, ptr %mergeIndex.i293.i, align 4 br label %for.inc25.i.i for.inc.i299.i: ; preds = %land.lhs.true14.i.i, %for.body9.i.i %indvars.iv.next46.i.i = add nsw i64 %indvars.iv45.i.i, -1 - %cmp8.not.not.i.i = icmp sgt i64 %indvars.iv45.i.i, %140 + %cmp8.not.not.i.i = icmp sgt i64 %indvars.iv45.i.i, %138 br i1 %cmp8.not.not.i.i, label %for.body9.i.i, label %for.inc25.i.i, !llvm.loop !23 for.inc25.i.i: ; preds = %for.inc.i299.i, %if.then18.i.i, %land.lhs.true.i297.i, %for.body.i290.i - %cmp.not.not.i.i = icmp sgt i64 %indvars.iv.next49.i.i, %140 + %cmp.not.not.i.i = icmp sgt i64 %indvars.iv.next49.i.i, %138 %indvars.iv.next.i294.i = add i32 %indvars.iv.i291.i, -1 br i1 %cmp.not.not.i.i, label %for.body.i290.i, label %for.body31.i.i, !llvm.loop !24 for.body31.i.i: ; preds = %for.inc25.i.i, %for.inc51.i.i - %indvars.iv52.i.i = phi i64 [ %indvars.iv.next53.i.i, %for.inc51.i.i ], [ %140, %for.inc25.i.i ] + %indvars.iv52.i.i = phi i64 [ %indvars.iv.next53.i.i, %for.inc51.i.i ], [ %138, %for.inc25.i.i ] %mergeIndex35.i.i = getelementptr inbounds %struct.btBatchInfo, ptr %137, i64 %indvars.iv52.i.i, i32 1 - %150 = load i32, ptr %mergeIndex35.i.i, align 4 - %cmp36.not.i.i = icmp eq i32 %150, -1 + %148 = load i32, ptr %mergeIndex35.i.i, align 4 + %cmp36.not.i.i = icmp eq i32 %148, -1 br i1 %cmp36.not.i.i, label %for.inc51.i.i, label %if.then37.i.i if.then37.i.i: ; preds = %for.body31.i.i - %idxprom39.i.i = sext i32 %150 to i64 + %idxprom39.i.i = sext i32 %148 to i64 %mergeIndex41.i.i = getelementptr inbounds %struct.btBatchInfo, ptr %137, i64 %idxprom39.i.i, i32 1 - %151 = load i32, ptr %mergeIndex41.i.i, align 4 + %149 = load i32, ptr %mergeIndex41.i.i, align 4 br label %while.cond.i.i while.cond.i.i: ; preds = %while.body.i.i, %if.then37.i.i - %iMergeDest.0.i.i = phi i32 [ %151, %if.then37.i.i ], [ %152, %while.body.i.i ] + %iMergeDest.0.i.i = phi i32 [ %149, %if.then37.i.i ], [ %150, %while.body.i.i ] %cmp42.not.i.i = icmp eq i32 %iMergeDest.0.i.i, -1 br i1 %cmp42.not.i.i, label %for.inc51.i.i, label %while.body.i.i while.body.i.i: ; preds = %while.cond.i.i %idxprom43.i.i = sext i32 %iMergeDest.0.i.i to i64 %mergeIndex45.i.i = getelementptr inbounds %struct.btBatchInfo, ptr %137, i64 %idxprom43.i.i, i32 1 - %152 = load i32, ptr %mergeIndex45.i.i, align 4 - %cmp46.i.i = icmp eq i32 %152, -1 + %150 = load i32, ptr %mergeIndex45.i.i, align 4 + %cmp46.i.i = icmp eq i32 %150, -1 br i1 %cmp46.i.i, label %if.then47.i.i, label %while.cond.i.i, !llvm.loop !25 if.then47.i.i: ; preds = %while.body.i.i @@ -1436,7 +1434,7 @@ if.then47.i.i: ; preds = %while.body.i.i for.inc51.i.i: ; preds = %while.cond.i.i, %if.then47.i.i, %for.body31.i.i %indvars.iv.next53.i.i = add nuw nsw i64 %indvars.iv52.i.i, 1 - %exitcond.not.i296.i = icmp eq i64 %indvars.iv.next53.i.i, %141 + %exitcond.not.i296.i = icmp eq i64 %indvars.iv.next53.i.i, %139 br i1 %exitcond.not.i296.i, label %_ZL17mergeSmallBatchesP11btBatchInfoiiii.exit.i, label %for.body31.i.i, !llvm.loop !26 _ZL17mergeSmallBatchesP11btBatchInfoiiii.exit.i: ; preds = %for.inc51.i.i @@ -1450,8 +1448,8 @@ for.inc342.i: ; preds = %_ZL17mergeSmallBatc br i1 %exitcond502.not.i, label %for.end344.i, label %for.body334.i, !llvm.loop !27 for.end344.i: ; preds = %for.inc342.i - %153 = load ptr, ptr %constraintBatchIds.i, align 8 - %154 = load ptr, ptr %batches.i, align 8 + %151 = load ptr, ptr %constraintBatchIds.i, align 8 + %152 = load ptr, ptr %batches.i, align 8 call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %__profile.i303.i) call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %loop.i304.i) invoke void @_ZN14CProfileSampleC1EPKc(ptr noundef nonnull align 1 dereferenceable(1) %__profile.i303.i, ptr noundef nonnull @.str.6) @@ -1461,16 +1459,16 @@ for.end344.i: ; preds = %for.inc342.i %mul345.i = shl nsw i32 %mul206.i, 3 store ptr getelementptr inbounds ({ [5 x ptr] }, ptr @_ZTV37UpdateConstraintBatchIdsForMergesLoop, i64 0, inrange i32 0, i64 2), ptr %loop.i304.i, align 8 %m_constraintBatchIds.i.i.i = getelementptr inbounds %struct.UpdateConstraintBatchIdsForMergesLoop, ptr %loop.i304.i, i64 0, i32 1 - store ptr %153, ptr %m_constraintBatchIds.i.i.i, align 8 + store ptr %151, ptr %m_constraintBatchIds.i.i.i, align 8 %m_batches.i.i.i = getelementptr inbounds %struct.UpdateConstraintBatchIdsForMergesLoop, ptr %loop.i304.i, i64 0, i32 2 - store ptr %154, ptr %m_batches.i.i.i, align 8 + store ptr %152, ptr %m_batches.i.i.i, align 8 %m_numBatches.i.i.i = getelementptr inbounds %struct.UpdateConstraintBatchIdsForMergesLoop, ptr %loop.i304.i, i64 0, i32 3 store i32 %mul345.i, ptr %m_numBatches.i.i.i, align 8 invoke void @_Z13btParallelForiiiRK18btIParallelForBody(i32 noundef 0, i32 noundef %iDest.0.lcssa.i.i.i, i32 noundef 800, ptr noundef nonnull align 8 dereferenceable(8) %loop.i304.i) to label %invoke.cont346.i unwind label %lpad1.i.i lpad1.i.i: ; preds = %.noexc305.i - %155 = landingpad { ptr, i32 } + %153 = landingpad { ptr, i32 } cleanup call void @_ZN14CProfileSampleD1Ev(ptr noundef nonnull align 1 dereferenceable(1) %__profile.i303.i) #11 br label %common.resume @@ -1483,9 +1481,9 @@ invoke.cont346.i: ; preds = %.noexc305.i br i1 %cmp347.i, label %if.then348.i, label %if.else353.i if.then348.i: ; preds = %invoke.cont346.i - %156 = load ptr, ptr %constraintRowBatchIds.i, align 8 - %157 = load ptr, ptr %constraintBatchIds.i, align 8 - %158 = load ptr, ptr %conInfos.i, align 8 + %154 = load ptr, ptr %constraintRowBatchIds.i, align 8 + %155 = load ptr, ptr %constraintBatchIds.i, align 8 + %156 = load ptr, ptr %conInfos.i, align 8 call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %__profile.i308.i) call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %loop.i309.i) invoke void @_ZN14CProfileSampleC1EPKc(ptr noundef nonnull align 1 dereferenceable(1) %__profile.i308.i, ptr noundef nonnull @.str.9) @@ -1494,18 +1492,18 @@ if.then348.i: ; preds = %invoke.cont346.i .noexc311.i: ; preds = %if.then348.i store ptr getelementptr inbounds ({ [5 x ptr] }, ptr @_ZTV24ExpandConstraintRowsLoop, i64 0, inrange i32 0, i64 2), ptr %loop.i309.i, align 8 %m_destConstraintBatchIds.i.i.i = getelementptr inbounds %struct.ExpandConstraintRowsLoop, ptr %loop.i309.i, i64 0, i32 1 - store ptr %156, ptr %m_destConstraintBatchIds.i.i.i, align 8 + store ptr %154, ptr %m_destConstraintBatchIds.i.i.i, align 8 %m_srcConstraintBatchIds.i.i.i = getelementptr inbounds %struct.ExpandConstraintRowsLoop, ptr %loop.i309.i, i64 0, i32 2 - store ptr %157, ptr %m_srcConstraintBatchIds.i.i.i, align 8 + store ptr %155, ptr %m_srcConstraintBatchIds.i.i.i, align 8 %m_conInfos.i.i.i = getelementptr inbounds %struct.ExpandConstraintRowsLoop, ptr %loop.i309.i, i64 0, i32 3 - store ptr %158, ptr %m_conInfos.i.i.i, align 8 + store ptr %156, ptr %m_conInfos.i.i.i, align 8 %m_numConstraintRows.i.i.i = getelementptr inbounds %struct.ExpandConstraintRowsLoop, ptr %loop.i309.i, i64 0, i32 4 store i32 %1, ptr %m_numConstraintRows.i.i.i, align 8 invoke void @_Z13btParallelForiiiRK18btIParallelForBody(i32 noundef 0, i32 noundef %iDest.0.lcssa.i.i.i, i32 noundef 600, ptr noundef nonnull align 8 dereferenceable(8) %loop.i309.i) to label %_ZL22expandConstraintRowsMtPiPKiPK23btBatchedConstraintInfoii.exit.i unwind label %lpad1.i310.i lpad1.i310.i: ; preds = %.noexc311.i - %159 = landingpad { ptr, i32 } + %157 = landingpad { ptr, i32 } cleanup call void @_ZN14CProfileSampleD1Ev(ptr noundef nonnull align 1 dereferenceable(1) %__profile.i308.i) #11 br label %common.resume @@ -1518,22 +1516,22 @@ _ZL22expandConstraintRowsMtPiPKiPK23btBatchedConstraintInfoii.exit.i: ; preds = br label %if.end354.i if.else353.i: ; preds = %invoke.cont346.i - %160 = load ptr, ptr %constraintBatchIds.i, align 8 - store ptr %160, ptr %constraintRowBatchIds.i, align 8 + %158 = load ptr, ptr %constraintBatchIds.i, align 8 + store ptr %158, ptr %constraintRowBatchIds.i, align 8 br label %if.end354.i if.end354.i: ; preds = %if.else353.i, %_ZL22expandConstraintRowsMtPiPKiPK23btBatchedConstraintInfoii.exit.i - %161 = phi ptr [ %.pre.i, %_ZL22expandConstraintRowsMtPiPKiPK23btBatchedConstraintInfoii.exit.i ], [ %160, %if.else353.i ] - %162 = load ptr, ptr %batches.i, align 8 - %163 = load ptr, ptr %batchWork.i, align 8 + %159 = phi ptr [ %.pre.i, %_ZL22expandConstraintRowsMtPiPKiPK23btBatchedConstraintInfoii.exit.i ], [ %158, %if.else353.i ] + %160 = load ptr, ptr %batches.i, align 8 + %161 = load ptr, ptr %batchWork.i, align 8 call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %__profile.i315.i) invoke void @_ZN14CProfileSampleC1EPKc(ptr noundef nonnull align 1 dereferenceable(1) %__profile.i315.i, ptr noundef nonnull @.str.11) to label %.noexc362.i unwind label %lpad.loopexit.split-lp.i .noexc362.i: ; preds = %if.end354.i %m_capacity.i.i.i316.i = getelementptr inbounds %class.btAlignedObjectArray, ptr %this, i64 0, i32 3 - %164 = load i32, ptr %m_capacity.i.i.i316.i, align 8 - %cmp.i.i317.i = icmp slt i32 %164, %1 + %162 = load i32, ptr %m_capacity.i.i.i316.i, align 8 + %cmp.i.i317.i = icmp slt i32 %162, %1 br i1 %cmp.i.i317.i, label %if.then.i.i340.i, label %invoke.cont.i.i if.then.i.i340.i: ; preds = %.noexc362.i @@ -1547,41 +1545,41 @@ if.then.i.i.i342.i: ; preds = %if.then.i.i340.i _ZN20btAlignedObjectArrayIiE8allocateEi.exit.i.i.i: ; preds = %if.then.i.i.i342.i, %if.then.i.i340.i %retval.0.i.i.i344.i = phi ptr [ null, %if.then.i.i340.i ], [ %call.i.i.i41.i.i, %if.then.i.i.i342.i ] %m_size.i.i.i.i = getelementptr inbounds %class.btAlignedObjectArray, ptr %this, i64 0, i32 2 - %165 = load i32, ptr %m_size.i.i.i.i, align 4 - %cmp4.i.i.i345.i = icmp sgt i32 %165, 0 + %163 = load i32, ptr %m_size.i.i.i.i, align 4 + %cmp4.i.i.i345.i = icmp sgt i32 %163, 0 br i1 %cmp4.i.i.i345.i, label %for.body.lr.ph.i.i.i353.i, label %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i.i for.body.lr.ph.i.i.i353.i: ; preds = %_ZN20btAlignedObjectArrayIiE8allocateEi.exit.i.i.i %m_data.i.i.i354.i = getelementptr inbounds %class.btAlignedObjectArray, ptr %this, i64 0, i32 5 - %wide.trip.count.i.i.i355.i = zext nneg i32 %165 to i64 + %wide.trip.count.i.i.i355.i = zext nneg i32 %163 to i64 br label %for.body.i.i.i356.i for.body.i.i.i356.i: ; preds = %for.body.i.i.i356.i, %for.body.lr.ph.i.i.i353.i %indvars.iv.i.i.i357.i = phi i64 [ 0, %for.body.lr.ph.i.i.i353.i ], [ %indvars.iv.next.i.i.i360.i, %for.body.i.i.i356.i ] %arrayidx.i.i.i358.i = getelementptr inbounds i32, ptr %retval.0.i.i.i344.i, i64 %indvars.iv.i.i.i357.i - %166 = load ptr, ptr %m_data.i.i.i354.i, align 8 - %arrayidx3.i.i.i359.i = getelementptr inbounds i32, ptr %166, i64 %indvars.iv.i.i.i357.i - %167 = load i32, ptr %arrayidx3.i.i.i359.i, align 4 - store i32 %167, ptr %arrayidx.i.i.i358.i, align 4 + %164 = load ptr, ptr %m_data.i.i.i354.i, align 8 + %arrayidx3.i.i.i359.i = getelementptr inbounds i32, ptr %164, i64 %indvars.iv.i.i.i357.i + %165 = load i32, ptr %arrayidx3.i.i.i359.i, align 4 + store i32 %165, ptr %arrayidx.i.i.i358.i, align 4 %indvars.iv.next.i.i.i360.i = add nuw nsw i64 %indvars.iv.i.i.i357.i, 1 %exitcond.not.i.i.i361.i = icmp eq i64 %indvars.iv.next.i.i.i360.i, %wide.trip.count.i.i.i355.i br i1 %exitcond.not.i.i.i361.i, label %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i.i, label %for.body.i.i.i356.i, !llvm.loop !28 _ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i.i: ; preds = %for.body.i.i.i356.i, %_ZN20btAlignedObjectArrayIiE8allocateEi.exit.i.i.i %m_data.i5.i.i346.i = getelementptr inbounds %class.btAlignedObjectArray, ptr %this, i64 0, i32 5 - %168 = load ptr, ptr %m_data.i5.i.i346.i, align 8 - %tobool.not.i6.i.i347.i = icmp eq ptr %168, null + %166 = load ptr, ptr %m_data.i5.i.i346.i, align 8 + %tobool.not.i6.i.i347.i = icmp eq ptr %166, null br i1 %tobool.not.i6.i.i347.i, label %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i.i, label %if.then.i7.i.i348.i if.then.i7.i.i348.i: ; preds = %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i.i %m_ownsMemory.i.i.i349.i = getelementptr inbounds %class.btAlignedObjectArray, ptr %this, i64 0, i32 6 - %169 = load i8, ptr %m_ownsMemory.i.i.i349.i, align 8 - %170 = and i8 %169, 1 - %tobool2.not.i.i.i350.i = icmp eq i8 %170, 0 + %167 = load i8, ptr %m_ownsMemory.i.i.i349.i, align 8 + %168 = and i8 %167, 1 + %tobool2.not.i.i.i350.i = icmp eq i8 %168, 0 br i1 %tobool2.not.i.i.i350.i, label %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i.i, label %if.then3.i.i.i351.i if.then3.i.i.i351.i: ; preds = %if.then.i7.i.i348.i - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %168) + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %166) to label %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i _ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i.i: ; preds = %if.then3.i.i.i351.i, %if.then.i7.i.i348.i, %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i.i @@ -1594,31 +1592,31 @@ _ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i.i: ; preds = %if.then3.i.i.i invoke.cont.i.i: ; preds = %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i.i, %.noexc362.i %m_batches.i.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 1 %m_size.i.i42.i.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 1, i32 2 - %171 = load i32, ptr %m_size.i.i42.i.i, align 4 - %cmp.i43.i.i = icmp slt i32 %171, 0 + %169 = load i32, ptr %m_size.i.i42.i.i, align 4 + %cmp.i43.i.i = icmp slt i32 %169, 0 br i1 %cmp.i43.i.i, label %if.then.i44.i.i, label %invoke.cont1.i.i if.then.i44.i.i: ; preds = %invoke.cont.i.i %m_capacity.i.i.i.i.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 1, i32 3 - %172 = load i32, ptr %m_capacity.i.i.i.i.i, align 8 - %cmp.i.i.i339.i = icmp slt i32 %172, 0 + %170 = load i32, ptr %m_capacity.i.i.i.i.i, align 8 + %cmp.i.i.i339.i = icmp slt i32 %170, 0 br i1 %cmp.i.i.i339.i, label %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i.i.i, label %invoke.cont1.i.i _ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i.i.i: ; preds = %if.then.i44.i.i %m_data.i5.i.i.i.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 1, i32 5 - %173 = load ptr, ptr %m_data.i5.i.i.i.i, align 8 - %tobool.not.i6.i.i.i.i = icmp eq ptr %173, null + %171 = load ptr, ptr %m_data.i5.i.i.i.i, align 8 + %tobool.not.i6.i.i.i.i = icmp eq ptr %171, null br i1 %tobool.not.i6.i.i.i.i, label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i.i.i, label %if.then.i7.i.i.i.i if.then.i7.i.i.i.i: ; preds = %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i.i.i %m_ownsMemory.i.i.i.i.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 1, i32 6 - %174 = load i8, ptr %m_ownsMemory.i.i.i.i.i, align 8 - %175 = and i8 %174, 1 - %tobool2.not.i.i.i.i.i = icmp eq i8 %175, 0 + %172 = load i8, ptr %m_ownsMemory.i.i.i.i.i, align 8 + %173 = and i8 %172, 1 + %tobool2.not.i.i.i.i.i = icmp eq i8 %173, 0 br i1 %tobool2.not.i.i.i.i.i, label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i.i.i, label %if.then3.i.i.i.i.i if.then3.i.i.i.i.i: ; preds = %if.then.i7.i.i.i.i - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %173) + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %171) to label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i _ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i.i.i: ; preds = %if.then3.i.i.i.i.i, %if.then.i7.i.i.i.i, %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i.i.i @@ -1631,31 +1629,31 @@ _ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i invoke.cont1.i.i: ; preds = %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i.i.i, %if.then.i44.i.i, %invoke.cont.i.i store i32 0, ptr %m_size.i.i42.i.i, align 4 %m_size.i.i48.i.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 2, i32 2 - %176 = load i32, ptr %m_size.i.i48.i.i, align 4 - %cmp.i49.i.i = icmp slt i32 %176, 0 + %174 = load i32, ptr %m_size.i.i48.i.i, align 4 + %cmp.i49.i.i = icmp slt i32 %174, 0 br i1 %cmp.i49.i.i, label %if.then.i50.i.i, label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE18resizeNoInitializeEi.exit74.i.i if.then.i50.i.i: ; preds = %invoke.cont1.i.i %m_capacity.i.i.i51.i.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 2, i32 3 - %177 = load i32, ptr %m_capacity.i.i.i51.i.i, align 8 - %cmp.i.i52.i.i = icmp slt i32 %177, 0 + %175 = load i32, ptr %m_capacity.i.i.i51.i.i, align 8 + %cmp.i.i52.i.i = icmp slt i32 %175, 0 br i1 %cmp.i.i52.i.i, label %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i55.i.i, label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE18resizeNoInitializeEi.exit74.i.i _ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i55.i.i: ; preds = %if.then.i50.i.i %m_data.i5.i.i56.i.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 2, i32 5 - %178 = load ptr, ptr %m_data.i5.i.i56.i.i, align 8 - %tobool.not.i6.i.i57.i.i = icmp eq ptr %178, null + %176 = load ptr, ptr %m_data.i5.i.i56.i.i, align 8 + %tobool.not.i6.i.i57.i.i = icmp eq ptr %176, null br i1 %tobool.not.i6.i.i57.i.i, label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i62.i.i, label %if.then.i7.i.i58.i.i if.then.i7.i.i58.i.i: ; preds = %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i55.i.i %m_ownsMemory.i.i.i59.i.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 2, i32 6 - %179 = load i8, ptr %m_ownsMemory.i.i.i59.i.i, align 8 - %180 = and i8 %179, 1 - %tobool2.not.i.i.i60.i.i = icmp eq i8 %180, 0 + %177 = load i8, ptr %m_ownsMemory.i.i.i59.i.i, align 8 + %178 = and i8 %177, 1 + %tobool2.not.i.i.i60.i.i = icmp eq i8 %178, 0 br i1 %tobool2.not.i.i.i60.i.i, label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i62.i.i, label %if.then3.i.i.i61.i.i if.then3.i.i.i61.i.i: ; preds = %if.then.i7.i.i58.i.i - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %178) + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %176) to label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i62.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i _ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i62.i.i: ; preds = %if.then3.i.i.i61.i.i, %if.then.i7.i.i58.i.i, %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i55.i.i @@ -1676,37 +1674,37 @@ _ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE18resizeNoInitializeEi. br label %for.body7.preheader.i.i for.body7.preheader.i.i: ; preds = %for.inc30.i.i, %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE18resizeNoInitializeEi.exit74.i.i - %indvars.iv266.i.i = phi i64 [ 0, %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE18resizeNoInitializeEi.exit74.i.i ], [ %182, %for.inc30.i.i ] + %indvars.iv266.i.i = phi i64 [ 0, %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE18resizeNoInitializeEi.exit74.i.i ], [ %180, %for.inc30.i.i ] %indvars.iv.i319.i = phi i32 [ 0, %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE18resizeNoInitializeEi.exit74.i.i ], [ %indvars.iv.next.i320.i, %for.inc30.i.i ] %iConstraint.0255.i.i = phi i32 [ 0, %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE18resizeNoInitializeEi.exit74.i.i ], [ %add12.i.i, %for.inc30.i.i ] - %181 = load i32, ptr %m_size.i.i42.i.i, align 4 - %182 = add nuw nsw i64 %indvars.iv266.i.i, 1 - %183 = mul nuw nsw i64 %182, %121 - %184 = sext i32 %indvars.iv.i319.i to i64 + %179 = load i32, ptr %m_size.i.i42.i.i, align 4 + %180 = add nuw nsw i64 %indvars.iv266.i.i, 1 + %181 = mul nuw nsw i64 %180, %121 + %182 = sext i32 %indvars.iv.i319.i to i64 br label %for.body7.i.i for.body7.i.i: ; preds = %for.inc.i334.i, %for.body7.preheader.i.i - %indvars.iv263.i.i = phi i64 [ %184, %for.body7.preheader.i.i ], [ %indvars.iv.next264.i.i, %for.inc.i334.i ] + %indvars.iv263.i.i = phi i64 [ %182, %for.body7.preheader.i.i ], [ %indvars.iv.next264.i.i, %for.inc.i334.i ] %iConstraint.1253.i.i = phi i32 [ %iConstraint.0255.i.i, %for.body7.preheader.i.i ], [ %add12.i.i, %for.inc.i334.i ] - %arrayidx.i331.i = getelementptr inbounds %struct.btBatchInfo, ptr %162, i64 %indvars.iv263.i.i - %arrayidx9.i332.i = getelementptr inbounds i32, ptr %163, i64 %indvars.iv263.i.i + %arrayidx.i331.i = getelementptr inbounds %struct.btBatchInfo, ptr %160, i64 %indvars.iv263.i.i + %arrayidx9.i332.i = getelementptr inbounds i32, ptr %161, i64 %indvars.iv263.i.i store i32 %iConstraint.1253.i.i, ptr %arrayidx9.i332.i, align 4 - %185 = load i32, ptr %arrayidx.i331.i, align 4 - %add12.i.i = add nsw i32 %185, %iConstraint.1253.i.i - %cmp13.i333.i = icmp sgt i32 %185, 0 + %183 = load i32, ptr %arrayidx.i331.i, align 4 + %add12.i.i = add nsw i32 %183, %iConstraint.1253.i.i + %cmp13.i333.i = icmp sgt i32 %183, 0 br i1 %cmp13.i333.i, label %if.then.i336.i, label %for.inc.i334.i if.then.i336.i: ; preds = %for.body7.i.i - %186 = load i32, ptr %m_size.i.i42.i.i, align 4 - %187 = load i32, ptr %m_capacity.i.i76.i.i, align 8 - %cmp.i77.i.i = icmp eq i32 %186, %187 + %184 = load i32, ptr %m_size.i.i42.i.i, align 4 + %185 = load i32, ptr %m_capacity.i.i76.i.i, align 8 + %cmp.i77.i.i = icmp eq i32 %184, %185 br i1 %cmp.i77.i.i, label %if.then.i78.i.i, label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE9push_backERKS1_.exit.i.i if.then.i78.i.i: ; preds = %if.then.i336.i - %tobool.not.i.i79.i.i = icmp eq i32 %186, 0 - %mul.i.i.i.i = shl nsw i32 %186, 1 + %tobool.not.i.i79.i.i = icmp eq i32 %184, 0 + %mul.i.i.i.i = shl nsw i32 %184, 1 %cond.i.i.i.i = select i1 %tobool.not.i.i79.i.i, i32 1, i32 %mul.i.i.i.i - %cmp.i.i80.i.i = icmp slt i32 %186, %cond.i.i.i.i + %cmp.i.i80.i.i = icmp slt i32 %184, %cond.i.i.i.i br i1 %cmp.i.i80.i.i, label %if.then.i.i81.i.i, label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE9push_backERKS1_.exit.i.i if.then.i.i81.i.i: ; preds = %if.then.i78.i.i @@ -1724,39 +1722,39 @@ call.i.i.i.i.noexc.i.i: ; preds = %if.then.i.i.i.i.i br label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE8allocateEi.exit.i.i.i.i _ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE8allocateEi.exit.i.i.i.i: ; preds = %call.i.i.i.i.noexc.i.i, %if.then.i.i81.i.i - %188 = phi i32 [ %.pre.i.i.i, %call.i.i.i.i.noexc.i.i ], [ %186, %if.then.i.i81.i.i ] + %186 = phi i32 [ %.pre.i.i.i, %call.i.i.i.i.noexc.i.i ], [ %184, %if.then.i.i81.i.i ] %retval.0.i.i.i.i.i = phi ptr [ %call.i.i.i.i101.i.i, %call.i.i.i.i.noexc.i.i ], [ null, %if.then.i.i81.i.i ] - %cmp4.i.i.i82.i.i = icmp sgt i32 %188, 0 + %cmp4.i.i.i82.i.i = icmp sgt i32 %186, 0 br i1 %cmp4.i.i.i82.i.i, label %for.body.lr.ph.i.i.i92.i.i, label %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i83.i.i for.body.lr.ph.i.i.i92.i.i: ; preds = %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE8allocateEi.exit.i.i.i.i - %wide.trip.count.i.i.i94.i.i = zext nneg i32 %188 to i64 + %wide.trip.count.i.i.i94.i.i = zext nneg i32 %186 to i64 br label %for.body.i.i.i95.i.i for.body.i.i.i95.i.i: ; preds = %for.body.i.i.i95.i.i, %for.body.lr.ph.i.i.i92.i.i %indvars.iv.i.i.i96.i.i = phi i64 [ 0, %for.body.lr.ph.i.i.i92.i.i ], [ %indvars.iv.next.i.i.i99.i.i, %for.body.i.i.i95.i.i ] %arrayidx.i.i.i97.i.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %retval.0.i.i.i.i.i, i64 %indvars.iv.i.i.i96.i.i - %189 = load ptr, ptr %m_data.i.i.i93.i.i, align 8 - %arrayidx3.i.i.i98.i.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %189, i64 %indvars.iv.i.i.i96.i.i - %190 = load i64, ptr %arrayidx3.i.i.i98.i.i, align 4 - store i64 %190, ptr %arrayidx.i.i.i97.i.i, align 4 + %187 = load ptr, ptr %m_data.i.i.i93.i.i, align 8 + %arrayidx3.i.i.i98.i.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %187, i64 %indvars.iv.i.i.i96.i.i + %188 = load i64, ptr %arrayidx3.i.i.i98.i.i, align 4 + store i64 %188, ptr %arrayidx.i.i.i97.i.i, align 4 %indvars.iv.next.i.i.i99.i.i = add nuw nsw i64 %indvars.iv.i.i.i96.i.i, 1 %exitcond.not.i.i.i100.i.i = icmp eq i64 %indvars.iv.next.i.i.i99.i.i, %wide.trip.count.i.i.i94.i.i br i1 %exitcond.not.i.i.i100.i.i, label %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i83.i.i, label %for.body.i.i.i95.i.i, !llvm.loop !29 _ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i83.i.i: ; preds = %for.body.i.i.i95.i.i, %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE8allocateEi.exit.i.i.i.i - %191 = load ptr, ptr %m_data.i.i.i93.i.i, align 8 - %tobool.not.i6.i.i85.i.i = icmp eq ptr %191, null + %189 = load ptr, ptr %m_data.i.i.i93.i.i, align 8 + %tobool.not.i6.i.i85.i.i = icmp eq ptr %189, null br i1 %tobool.not.i6.i.i85.i.i, label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i90.i.i, label %if.then.i7.i.i86.i.i if.then.i7.i.i86.i.i: ; preds = %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i83.i.i - %192 = load i8, ptr %m_ownsMemory.i.i.i87.i.i, align 8 - %193 = and i8 %192, 1 - %tobool2.not.i.i.i88.i.i = icmp eq i8 %193, 0 + %190 = load i8, ptr %m_ownsMemory.i.i.i87.i.i, align 8 + %191 = and i8 %190, 1 + %tobool2.not.i.i.i88.i.i = icmp eq i8 %191, 0 br i1 %tobool2.not.i.i.i88.i.i, label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i90.i.i, label %if.then3.i.i.i89.i.i if.then3.i.i.i89.i.i: ; preds = %if.then.i7.i.i86.i.i - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %191) + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %189) to label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i90.i.i unwind label %lpad.loopexit.split-lp.loopexit.i.i _ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i90.i.i: ; preds = %if.then3.i.i.i89.i.i, %if.then.i7.i.i86.i.i, %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i83.i.i @@ -1767,17 +1765,17 @@ _ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i br label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE9push_backERKS1_.exit.i.i _ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE9push_backERKS1_.exit.i.i: ; preds = %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i90.i.i, %if.then.i78.i.i, %if.then.i336.i - %194 = phi i32 [ %.pre2.i.i.i, %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i90.i.i ], [ %186, %if.then.i78.i.i ], [ %186, %if.then.i336.i ] - %195 = load ptr, ptr %m_data.i.i.i93.i.i, align 8 - %idxprom.i.i337.i = sext i32 %194 to i64 - %arrayidx.i.i338.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %195, i64 %idxprom.i.i337.i + %192 = phi i32 [ %.pre2.i.i.i, %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i90.i.i ], [ %184, %if.then.i78.i.i ], [ %184, %if.then.i336.i ] + %193 = load ptr, ptr %m_data.i.i.i93.i.i, align 8 + %idxprom.i.i337.i = sext i32 %192 to i64 + %arrayidx.i.i338.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %193, i64 %idxprom.i.i337.i %ref.tmp.sroa.2.0.insert.ext.i.i = zext i32 %add12.i.i to i64 %ref.tmp.sroa.2.0.insert.shift.i.i = shl nuw i64 %ref.tmp.sroa.2.0.insert.ext.i.i, 32 %ref.tmp.sroa.0.0.insert.ext.i.i = zext i32 %iConstraint.1253.i.i to i64 %ref.tmp.sroa.0.0.insert.insert.i.i = or disjoint i64 %ref.tmp.sroa.2.0.insert.shift.i.i, %ref.tmp.sroa.0.0.insert.ext.i.i store i64 %ref.tmp.sroa.0.0.insert.insert.i.i, ptr %arrayidx.i.i338.i, align 4 - %196 = load i32, ptr %m_size.i.i42.i.i, align 4 - %inc.i.i.i = add nsw i32 %196, 1 + %194 = load i32, ptr %m_size.i.i42.i.i, align 4 + %inc.i.i.i = add nsw i32 %194, 1 store i32 %inc.i.i.i, ptr %m_size.i.i42.i.i, align 4 br label %for.inc.i334.i @@ -1802,31 +1800,31 @@ lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i: ; preds = %call1 br label %lpad.body.i.i lpad.body.i.i: ; preds = %lpad1.i.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.i.i, %lpad.loopexit.split-lp.loopexit.i.i, %lpad.loopexit.i.i - %eh.lpad-body.i.i = phi { ptr, i32 } [ %216, %lpad1.i.i.i ], [ %lpad.loopexit241.i.i, %lpad.loopexit.i.i ], [ %lpad.loopexit243.i.i, %lpad.loopexit.split-lp.loopexit.i.i ], [ %lpad.loopexit246.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.i.i ], [ %lpad.loopexit.split-lp247.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i ] + %eh.lpad-body.i.i = phi { ptr, i32 } [ %214, %lpad1.i.i.i ], [ %lpad.loopexit241.i.i, %lpad.loopexit.i.i ], [ %lpad.loopexit243.i.i, %lpad.loopexit.split-lp.loopexit.i.i ], [ %lpad.loopexit246.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.i.i ], [ %lpad.loopexit.split-lp247.i.i, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i ] call void @_ZN14CProfileSampleD1Ev(ptr noundef nonnull align 1 dereferenceable(1) %__profile.i315.i) #11 br label %common.resume for.inc.i334.i: ; preds = %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE9push_backERKS1_.exit.i.i, %for.body7.i.i %indvars.iv.next264.i.i = add nsw i64 %indvars.iv263.i.i, 1 - %cmp6.i.i = icmp slt i64 %indvars.iv.next264.i.i, %183 + %cmp6.i.i = icmp slt i64 %indvars.iv.next264.i.i, %181 br i1 %cmp6.i.i, label %for.body7.i.i, label %for.end.i.i, !llvm.loop !30 for.end.i.i: ; preds = %for.inc.i334.i %.pre.i335.i = load i32, ptr %m_size.i.i42.i.i, align 4 - %cmp20.i.i = icmp sgt i32 %.pre.i335.i, %181 + %cmp20.i.i = icmp sgt i32 %.pre.i335.i, %179 br i1 %cmp20.i.i, label %if.then21.i.i, label %for.inc30.i.i if.then21.i.i: ; preds = %for.end.i.i - %197 = load i32, ptr %m_size.i.i48.i.i, align 4 - %198 = load i32, ptr %m_capacity.i.i107.i.i, align 8 - %cmp.i108.i.i = icmp eq i32 %197, %198 + %195 = load i32, ptr %m_size.i.i48.i.i, align 4 + %196 = load i32, ptr %m_capacity.i.i107.i.i, align 8 + %cmp.i108.i.i = icmp eq i32 %195, %196 br i1 %cmp.i108.i.i, label %if.then.i113.i.i, label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE9push_backERKS1_.exit149.i.i if.then.i113.i.i: ; preds = %if.then21.i.i - %tobool.not.i.i114.i.i = icmp eq i32 %197, 0 - %mul.i.i115.i.i = shl nsw i32 %197, 1 + %tobool.not.i.i114.i.i = icmp eq i32 %195, 0 + %mul.i.i115.i.i = shl nsw i32 %195, 1 %cond.i.i116.i.i = select i1 %tobool.not.i.i114.i.i, i32 1, i32 %mul.i.i115.i.i - %cmp.i.i117.i.i = icmp slt i32 %197, %cond.i.i116.i.i + %cmp.i.i117.i.i = icmp slt i32 %195, %cond.i.i116.i.i br i1 %cmp.i.i117.i.i, label %if.then.i.i118.i.i, label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE9push_backERKS1_.exit149.i.i if.then.i.i118.i.i: ; preds = %if.then.i113.i.i @@ -1844,39 +1842,39 @@ call.i.i.i.i.noexc146.i.i: ; preds = %if.then.i.i.i120.i. br label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE8allocateEi.exit.i.i124.i.i _ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE8allocateEi.exit.i.i124.i.i: ; preds = %call.i.i.i.i.noexc146.i.i, %if.then.i.i118.i.i - %199 = phi i32 [ %.pre.i123.i.i, %call.i.i.i.i.noexc146.i.i ], [ %197, %if.then.i.i118.i.i ] + %197 = phi i32 [ %.pre.i123.i.i, %call.i.i.i.i.noexc146.i.i ], [ %195, %if.then.i.i118.i.i ] %retval.0.i.i.i125.i.i = phi ptr [ %call.i.i.i.i147.i.i, %call.i.i.i.i.noexc146.i.i ], [ null, %if.then.i.i118.i.i ] - %cmp4.i.i.i126.i.i = icmp sgt i32 %199, 0 + %cmp4.i.i.i126.i.i = icmp sgt i32 %197, 0 br i1 %cmp4.i.i.i126.i.i, label %for.body.lr.ph.i.i.i137.i.i, label %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i127.i.i for.body.lr.ph.i.i.i137.i.i: ; preds = %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE8allocateEi.exit.i.i124.i.i - %wide.trip.count.i.i.i139.i.i = zext nneg i32 %199 to i64 + %wide.trip.count.i.i.i139.i.i = zext nneg i32 %197 to i64 br label %for.body.i.i.i140.i.i for.body.i.i.i140.i.i: ; preds = %for.body.i.i.i140.i.i, %for.body.lr.ph.i.i.i137.i.i %indvars.iv.i.i.i141.i.i = phi i64 [ 0, %for.body.lr.ph.i.i.i137.i.i ], [ %indvars.iv.next.i.i.i144.i.i, %for.body.i.i.i140.i.i ] %arrayidx.i.i.i142.i.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %retval.0.i.i.i125.i.i, i64 %indvars.iv.i.i.i141.i.i - %200 = load ptr, ptr %m_data.i.i.i138.i.i, align 8 - %arrayidx3.i.i.i143.i.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %200, i64 %indvars.iv.i.i.i141.i.i - %201 = load i64, ptr %arrayidx3.i.i.i143.i.i, align 4 - store i64 %201, ptr %arrayidx.i.i.i142.i.i, align 4 + %198 = load ptr, ptr %m_data.i.i.i138.i.i, align 8 + %arrayidx3.i.i.i143.i.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %198, i64 %indvars.iv.i.i.i141.i.i + %199 = load i64, ptr %arrayidx3.i.i.i143.i.i, align 4 + store i64 %199, ptr %arrayidx.i.i.i142.i.i, align 4 %indvars.iv.next.i.i.i144.i.i = add nuw nsw i64 %indvars.iv.i.i.i141.i.i, 1 %exitcond.not.i.i.i145.i.i = icmp eq i64 %indvars.iv.next.i.i.i144.i.i, %wide.trip.count.i.i.i139.i.i br i1 %exitcond.not.i.i.i145.i.i, label %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i127.i.i, label %for.body.i.i.i140.i.i, !llvm.loop !29 _ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i127.i.i: ; preds = %for.body.i.i.i140.i.i, %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE8allocateEi.exit.i.i124.i.i - %202 = load ptr, ptr %m_data.i.i.i138.i.i, align 8 - %tobool.not.i6.i.i129.i.i = icmp eq ptr %202, null + %200 = load ptr, ptr %m_data.i.i.i138.i.i, align 8 + %tobool.not.i6.i.i129.i.i = icmp eq ptr %200, null br i1 %tobool.not.i6.i.i129.i.i, label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i134.i.i, label %if.then.i7.i.i130.i.i if.then.i7.i.i130.i.i: ; preds = %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i127.i.i - %203 = load i8, ptr %m_ownsMemory.i.i.i131.i.i, align 8 - %204 = and i8 %203, 1 - %tobool2.not.i.i.i132.i.i = icmp eq i8 %204, 0 + %201 = load i8, ptr %m_ownsMemory.i.i.i131.i.i, align 8 + %202 = and i8 %201, 1 + %tobool2.not.i.i.i132.i.i = icmp eq i8 %202, 0 br i1 %tobool2.not.i.i.i132.i.i, label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i134.i.i, label %if.then3.i.i.i133.i.i if.then3.i.i.i133.i.i: ; preds = %if.then.i7.i.i130.i.i - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %202) + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %200) to label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i134.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.i.i _ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i134.i.i: ; preds = %if.then3.i.i.i133.i.i, %if.then.i7.i.i130.i.i, %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i127.i.i @@ -1887,31 +1885,31 @@ _ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i br label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE9push_backERKS1_.exit149.i.i _ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE9push_backERKS1_.exit149.i.i: ; preds = %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i134.i.i, %if.then.i113.i.i, %if.then21.i.i - %205 = phi i32 [ %.pre2.i136.i.i, %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i134.i.i ], [ %197, %if.then.i113.i.i ], [ %197, %if.then21.i.i ] - %206 = load ptr, ptr %m_data.i.i.i138.i.i, align 8 - %idxprom.i110.i.i = sext i32 %205 to i64 - %arrayidx.i111.i.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %206, i64 %idxprom.i110.i.i + %203 = phi i32 [ %.pre2.i136.i.i, %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i134.i.i ], [ %195, %if.then.i113.i.i ], [ %195, %if.then21.i.i ] + %204 = load ptr, ptr %m_data.i.i.i138.i.i, align 8 + %idxprom.i110.i.i = sext i32 %203 to i64 + %arrayidx.i111.i.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %204, i64 %idxprom.i110.i.i %ref.tmp23.sroa.2.0.insert.ext.i.i = zext i32 %.pre.i335.i to i64 %ref.tmp23.sroa.2.0.insert.shift.i.i = shl nuw i64 %ref.tmp23.sroa.2.0.insert.ext.i.i, 32 - %ref.tmp23.sroa.0.0.insert.ext.i.i = zext i32 %181 to i64 + %ref.tmp23.sroa.0.0.insert.ext.i.i = zext i32 %179 to i64 %ref.tmp23.sroa.0.0.insert.insert.i.i = or disjoint i64 %ref.tmp23.sroa.2.0.insert.shift.i.i, %ref.tmp23.sroa.0.0.insert.ext.i.i store i64 %ref.tmp23.sroa.0.0.insert.insert.i.i, ptr %arrayidx.i111.i.i, align 4 - %207 = load i32, ptr %m_size.i.i48.i.i, align 4 - %inc.i112.i.i = add nsw i32 %207, 1 + %205 = load i32, ptr %m_size.i.i48.i.i, align 4 + %inc.i112.i.i = add nsw i32 %205, 1 store i32 %inc.i112.i.i, ptr %m_size.i.i48.i.i, align 4 br label %for.inc30.i.i for.inc30.i.i: ; preds = %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE9push_backERKS1_.exit149.i.i, %for.end.i.i %indvars.iv.next.i320.i = add i32 %indvars.iv.i319.i, %mul206.i - %exitcond.not.i321.i = icmp eq i64 %182, 8 + %exitcond.not.i321.i = icmp eq i64 %180, 8 br i1 %exitcond.not.i321.i, label %for.end32.i.i, label %for.body7.preheader.i.i, !llvm.loop !31 for.end32.i.i: ; preds = %for.inc30.i.i %m_size.i.i150.i.i = getelementptr inbounds %class.btAlignedObjectArray, ptr %this, i64 0, i32 2 - %208 = load i32, ptr %m_size.i.i150.i.i, align 4 - %cmp.i151.i.i = icmp slt i32 %208, %1 - %209 = load i32, ptr %m_capacity.i.i.i316.i, align 8 - %cmp.i.i154.i.i = icmp slt i32 %209, %1 + %206 = load i32, ptr %m_size.i.i150.i.i, align 4 + %cmp.i151.i.i = icmp slt i32 %206, %1 + %207 = load i32, ptr %m_capacity.i.i.i316.i, align 8 + %cmp.i.i154.i.i = icmp slt i32 %207, %1 %or.cond = select i1 %cmp.i151.i.i, i1 %cmp.i.i154.i.i, i1 false br i1 %or.cond, label %if.then.i.i155.i.i, label %invoke.cont34.i.i @@ -1928,42 +1926,42 @@ call.i.i.i.i.noexc179.i.i: ; preds = %if.then.i.i.i157.i. br label %_ZN20btAlignedObjectArrayIiE8allocateEi.exit.i.i.i.i _ZN20btAlignedObjectArrayIiE8allocateEi.exit.i.i.i.i: ; preds = %call.i.i.i.i.noexc179.i.i, %if.then.i.i155.i.i - %210 = phi i32 [ %.pre.i160.i.i, %call.i.i.i.i.noexc179.i.i ], [ %208, %if.then.i.i155.i.i ] + %208 = phi i32 [ %.pre.i160.i.i, %call.i.i.i.i.noexc179.i.i ], [ %206, %if.then.i.i155.i.i ] %retval.0.i.i.i161.i.i = phi ptr [ %call.i.i.i.i180.i.i, %call.i.i.i.i.noexc179.i.i ], [ null, %if.then.i.i155.i.i ] - %cmp4.i.i.i162.i.i = icmp sgt i32 %210, 0 + %cmp4.i.i.i162.i.i = icmp sgt i32 %208, 0 br i1 %cmp4.i.i.i162.i.i, label %for.body.lr.ph.i.i.i170.i.i, label %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i.i.i for.body.lr.ph.i.i.i170.i.i: ; preds = %_ZN20btAlignedObjectArrayIiE8allocateEi.exit.i.i.i.i %m_data.i.i.i171.i.i = getelementptr inbounds %class.btAlignedObjectArray, ptr %this, i64 0, i32 5 - %wide.trip.count.i.i.i172.i.i = zext nneg i32 %210 to i64 + %wide.trip.count.i.i.i172.i.i = zext nneg i32 %208 to i64 br label %for.body.i.i.i173.i.i for.body.i.i.i173.i.i: ; preds = %for.body.i.i.i173.i.i, %for.body.lr.ph.i.i.i170.i.i %indvars.iv.i.i.i174.i.i = phi i64 [ 0, %for.body.lr.ph.i.i.i170.i.i ], [ %indvars.iv.next.i.i.i177.i.i, %for.body.i.i.i173.i.i ] %arrayidx.i.i.i175.i.i = getelementptr inbounds i32, ptr %retval.0.i.i.i161.i.i, i64 %indvars.iv.i.i.i174.i.i - %211 = load ptr, ptr %m_data.i.i.i171.i.i, align 8 - %arrayidx3.i.i.i176.i.i = getelementptr inbounds i32, ptr %211, i64 %indvars.iv.i.i.i174.i.i - %212 = load i32, ptr %arrayidx3.i.i.i176.i.i, align 4 - store i32 %212, ptr %arrayidx.i.i.i175.i.i, align 4 + %209 = load ptr, ptr %m_data.i.i.i171.i.i, align 8 + %arrayidx3.i.i.i176.i.i = getelementptr inbounds i32, ptr %209, i64 %indvars.iv.i.i.i174.i.i + %210 = load i32, ptr %arrayidx3.i.i.i176.i.i, align 4 + store i32 %210, ptr %arrayidx.i.i.i175.i.i, align 4 %indvars.iv.next.i.i.i177.i.i = add nuw nsw i64 %indvars.iv.i.i.i174.i.i, 1 %exitcond.not.i.i.i178.i.i = icmp eq i64 %indvars.iv.next.i.i.i177.i.i, %wide.trip.count.i.i.i172.i.i br i1 %exitcond.not.i.i.i178.i.i, label %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i.i.i, label %for.body.i.i.i173.i.i, !llvm.loop !28 _ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i.i.i: ; preds = %for.body.i.i.i173.i.i, %_ZN20btAlignedObjectArrayIiE8allocateEi.exit.i.i.i.i %m_data.i5.i.i163.i.i = getelementptr inbounds %class.btAlignedObjectArray, ptr %this, i64 0, i32 5 - %213 = load ptr, ptr %m_data.i5.i.i163.i.i, align 8 - %tobool.not.i6.i.i164.i.i = icmp eq ptr %213, null + %211 = load ptr, ptr %m_data.i5.i.i163.i.i, align 8 + %tobool.not.i6.i.i164.i.i = icmp eq ptr %211, null br i1 %tobool.not.i6.i.i164.i.i, label %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i.i.i, label %if.then.i7.i.i165.i.i if.then.i7.i.i165.i.i: ; preds = %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i.i.i %m_ownsMemory.i.i.i166.i.i = getelementptr inbounds %class.btAlignedObjectArray, ptr %this, i64 0, i32 6 - %214 = load i8, ptr %m_ownsMemory.i.i.i166.i.i, align 8 - %215 = and i8 %214, 1 - %tobool2.not.i.i.i167.i.i = icmp eq i8 %215, 0 + %212 = load i8, ptr %m_ownsMemory.i.i.i166.i.i, align 8 + %213 = and i8 %212, 1 + %tobool2.not.i.i.i167.i.i = icmp eq i8 %213, 0 br i1 %tobool2.not.i.i.i167.i.i, label %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i.i.i, label %if.then3.i.i.i168.i.i if.then3.i.i.i168.i.i: ; preds = %if.then.i7.i.i165.i.i - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %213) + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %211) to label %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i _ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i.i.i: ; preds = %if.then3.i.i.i168.i.i, %if.then.i7.i.i165.i.i, %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i.i.i @@ -1985,18 +1983,18 @@ invoke.cont34.i.i: ; preds = %_ZN20btAlignedObjec %m_batchedConstraints.i.i.i.i = getelementptr inbounds %struct.WriteOutConstraintIndicesLoop, ptr %loop.i.i.i, i64 0, i32 1 store ptr %this, ptr %m_batchedConstraints.i.i.i.i, align 8 %m_constraintBatchIds.i.i.i.i = getelementptr inbounds %struct.WriteOutConstraintIndicesLoop, ptr %loop.i.i.i, i64 0, i32 2 - store ptr %161, ptr %m_constraintBatchIds.i.i.i.i, align 8 + store ptr %159, ptr %m_constraintBatchIds.i.i.i.i, align 8 %m_numConstraints.i.i.i.i = getelementptr inbounds %struct.WriteOutConstraintIndicesLoop, ptr %loop.i.i.i, i64 0, i32 3 store i32 %1, ptr %m_numConstraints.i.i.i.i, align 8 %m_constraintIdPerBatch.i.i.i.i = getelementptr inbounds %struct.WriteOutConstraintIndicesLoop, ptr %loop.i.i.i, i64 0, i32 5 - store ptr %163, ptr %m_constraintIdPerBatch.i.i.i.i, align 8 + store ptr %161, ptr %m_constraintIdPerBatch.i.i.i.i, align 8 %m_maxNumBatchesPerPhase.i.i.i.i = getelementptr inbounds %struct.WriteOutConstraintIndicesLoop, ptr %loop.i.i.i, i64 0, i32 6 store i32 %mul206.i, ptr %m_maxNumBatchesPerPhase.i.i.i.i, align 8 invoke void @_Z13btParallelForiiiRK18btIParallelForBody(i32 noundef 0, i32 noundef 8, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(8) %loop.i.i.i) to label %_ZL27writeOutConstraintIndicesMtP20btBatchedConstraintsPKiiPiii.exit.i.i unwind label %lpad1.i.i.i lpad1.i.i.i: ; preds = %.noexc182.i.i - %216 = landingpad { ptr, i32 } + %214 = landingpad { ptr, i32 } cleanup call void @_ZN14CProfileSampleD1Ev(ptr noundef nonnull align 1 dereferenceable(1) %__profile.i.i314.i) #11 br label %lpad.body.i.i @@ -2005,39 +2003,39 @@ _ZL27writeOutConstraintIndicesMtP20btBatchedConstraintsPKiiPiii.exit.i.i: ; pred call void @_ZN14CProfileSampleD1Ev(ptr noundef nonnull align 1 dereferenceable(1) %__profile.i.i314.i) #11 call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %__profile.i.i314.i) call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %loop.i.i.i) - %217 = load i32, ptr %m_size.i.i48.i.i, align 4 - %cmp41256.i.i = icmp sgt i32 %217, 0 + %215 = load i32, ptr %m_size.i.i48.i.i, align 4 + %cmp41256.i.i = icmp sgt i32 %215, 0 br i1 %cmp41256.i.i, label %for.body42.i.i, label %for.end50.i.i for.body42.i.i: ; preds = %_ZL27writeOutConstraintIndicesMtP20btBatchedConstraintsPKiiPiii.exit.i.i, %for.inc48.i.i %indvars.iv271.i.i = phi i64 [ %indvars.iv.next272.i.i, %for.inc48.i.i ], [ 0, %_ZL27writeOutConstraintIndicesMtP20btBatchedConstraintsPKiiPiii.exit.i.i ] - %218 = load ptr, ptr %m_data.i.i.i138.i.i, align 8 - %arrayidx.i186.i.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %218, i64 %indvars.iv271.i.i - %219 = load i32, ptr %arrayidx.i186.i.i, align 4 - %end.i.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %218, i64 %indvars.iv271.i.i, i32 1 - %220 = load i32, ptr %end.i.i, align 4 - %sub.i330.i = add nsw i32 %220, -1 - invoke void @_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE17quickSortInternalIFbRKS1_S5_EEEvRKT_ii(ptr noundef nonnull align 8 dereferenceable(25) %m_batches.i.i, ptr noundef nonnull @_Z12BatchCompareRKN20btBatchedConstraints5RangeES2_, i32 noundef %219, i32 noundef %sub.i330.i) + %216 = load ptr, ptr %m_data.i.i.i138.i.i, align 8 + %arrayidx.i186.i.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %216, i64 %indvars.iv271.i.i + %217 = load i32, ptr %arrayidx.i186.i.i, align 4 + %end.i.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %216, i64 %indvars.iv271.i.i, i32 1 + %218 = load i32, ptr %end.i.i, align 4 + %sub.i330.i = add nsw i32 %218, -1 + invoke void @_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE17quickSortInternalIFbRKS1_S5_EEEvRKT_ii(ptr noundef nonnull align 8 dereferenceable(25) %m_batches.i.i, ptr noundef nonnull @_Z12BatchCompareRKN20btBatchedConstraints5RangeES2_, i32 noundef %217, i32 noundef %sub.i330.i) to label %for.inc48.i.i unwind label %lpad.loopexit.i.i for.inc48.i.i: ; preds = %for.body42.i.i %indvars.iv.next272.i.i = add nuw nsw i64 %indvars.iv271.i.i, 1 - %221 = load i32, ptr %m_size.i.i48.i.i, align 4 - %222 = sext i32 %221 to i64 - %cmp41.i.i = icmp slt i64 %indvars.iv.next272.i.i, %222 + %219 = load i32, ptr %m_size.i.i48.i.i, align 4 + %220 = sext i32 %219 to i64 + %cmp41.i.i = icmp slt i64 %indvars.iv.next272.i.i, %220 br i1 %cmp41.i.i, label %for.body42.i.i, label %for.end50.i.i, !llvm.loop !32 for.end50.i.i: ; preds = %for.inc48.i.i, %_ZL27writeOutConstraintIndicesMtP20btBatchedConstraintsPKiiPiii.exit.i.i - %.lcssa.i.i = phi i32 [ %217, %_ZL27writeOutConstraintIndicesMtP20btBatchedConstraintsPKiiPiii.exit.i.i ], [ %221, %for.inc48.i.i ] + %.lcssa.i.i = phi i32 [ %215, %_ZL27writeOutConstraintIndicesMtP20btBatchedConstraintsPKiiPiii.exit.i.i ], [ %219, %for.inc48.i.i ] %m_size.i.i188.i.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 4, i32 2 - %223 = load i32, ptr %m_size.i.i188.i.i, align 4 - %cmp3.i.i.i = icmp slt i32 %223, %.lcssa.i.i + %221 = load i32, ptr %m_size.i.i188.i.i, align 4 + %cmp3.i.i.i = icmp slt i32 %221, %.lcssa.i.i br i1 %cmp3.i.i.i, label %if.then4.i.i.i, label %_ZN20btAlignedObjectArrayIiE6resizeEiRKi.exit.i.i if.then4.i.i.i: ; preds = %for.end50.i.i %m_capacity.i.i.i190.i.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 4, i32 3 - %224 = load i32, ptr %m_capacity.i.i.i190.i.i, align 8 - %cmp.i.i191.i.i = icmp slt i32 %224, %.lcssa.i.i + %222 = load i32, ptr %m_capacity.i.i.i190.i.i, align 8 + %cmp.i.i191.i.i = icmp slt i32 %222, %.lcssa.i.i br i1 %cmp.i.i191.i.i, label %if.then.i.i192.i.i, label %for.body8.lr.ph.i.i.i if.then.i.i192.i.i: ; preds = %if.then4.i.i.i @@ -2055,42 +2053,42 @@ call.i.i.i.i.noexc218.i.i: ; preds = %if.then.i.i.i194.i. br label %_ZN20btAlignedObjectArrayIiE8allocateEi.exit.i.i198.i.i _ZN20btAlignedObjectArrayIiE8allocateEi.exit.i.i198.i.i: ; preds = %call.i.i.i.i.noexc218.i.i, %if.then.i.i192.i.i - %225 = phi i32 [ %.pre.i197.i.i, %call.i.i.i.i.noexc218.i.i ], [ %223, %if.then.i.i192.i.i ] + %223 = phi i32 [ %.pre.i197.i.i, %call.i.i.i.i.noexc218.i.i ], [ %221, %if.then.i.i192.i.i ] %retval.0.i.i.i199.i.i = phi ptr [ %call.i.i.i.i219.i.i, %call.i.i.i.i.noexc218.i.i ], [ null, %if.then.i.i192.i.i ] - %cmp4.i.i.i200.i.i = icmp sgt i32 %225, 0 + %cmp4.i.i.i200.i.i = icmp sgt i32 %223, 0 br i1 %cmp4.i.i.i200.i.i, label %for.body.lr.ph.i.i.i209.i.i, label %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i201.i.i for.body.lr.ph.i.i.i209.i.i: ; preds = %_ZN20btAlignedObjectArrayIiE8allocateEi.exit.i.i198.i.i %m_data.i.i.i210.i.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 4, i32 5 - %wide.trip.count.i.i.i211.i.i = zext nneg i32 %225 to i64 + %wide.trip.count.i.i.i211.i.i = zext nneg i32 %223 to i64 br label %for.body.i.i.i212.i.i for.body.i.i.i212.i.i: ; preds = %for.body.i.i.i212.i.i, %for.body.lr.ph.i.i.i209.i.i %indvars.iv.i.i.i213.i.i = phi i64 [ 0, %for.body.lr.ph.i.i.i209.i.i ], [ %indvars.iv.next.i.i.i216.i.i, %for.body.i.i.i212.i.i ] %arrayidx.i.i.i214.i.i = getelementptr inbounds i32, ptr %retval.0.i.i.i199.i.i, i64 %indvars.iv.i.i.i213.i.i - %226 = load ptr, ptr %m_data.i.i.i210.i.i, align 8 - %arrayidx3.i.i.i215.i.i = getelementptr inbounds i32, ptr %226, i64 %indvars.iv.i.i.i213.i.i - %227 = load i32, ptr %arrayidx3.i.i.i215.i.i, align 4 - store i32 %227, ptr %arrayidx.i.i.i214.i.i, align 4 + %224 = load ptr, ptr %m_data.i.i.i210.i.i, align 8 + %arrayidx3.i.i.i215.i.i = getelementptr inbounds i32, ptr %224, i64 %indvars.iv.i.i.i213.i.i + %225 = load i32, ptr %arrayidx3.i.i.i215.i.i, align 4 + store i32 %225, ptr %arrayidx.i.i.i214.i.i, align 4 %indvars.iv.next.i.i.i216.i.i = add nuw nsw i64 %indvars.iv.i.i.i213.i.i, 1 %exitcond.not.i.i.i217.i.i = icmp eq i64 %indvars.iv.next.i.i.i216.i.i, %wide.trip.count.i.i.i211.i.i br i1 %exitcond.not.i.i.i217.i.i, label %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i201.i.i, label %for.body.i.i.i212.i.i, !llvm.loop !28 _ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i201.i.i: ; preds = %for.body.i.i.i212.i.i, %_ZN20btAlignedObjectArrayIiE8allocateEi.exit.i.i198.i.i %m_data.i5.i.i202.i.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 4, i32 5 - %228 = load ptr, ptr %m_data.i5.i.i202.i.i, align 8 - %tobool.not.i6.i.i203.i.i = icmp eq ptr %228, null + %226 = load ptr, ptr %m_data.i5.i.i202.i.i, align 8 + %tobool.not.i6.i.i203.i.i = icmp eq ptr %226, null br i1 %tobool.not.i6.i.i203.i.i, label %if.end.i.i.i, label %if.then.i7.i.i204.i.i if.then.i7.i.i204.i.i: ; preds = %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i201.i.i %m_ownsMemory.i.i.i205.i.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 4, i32 6 - %229 = load i8, ptr %m_ownsMemory.i.i.i205.i.i, align 8 - %230 = and i8 %229, 1 - %tobool2.not.i.i.i206.i.i = icmp eq i8 %230, 0 + %227 = load i8, ptr %m_ownsMemory.i.i.i205.i.i, align 8 + %228 = and i8 %227, 1 + %tobool2.not.i.i.i206.i.i = icmp eq i8 %228, 0 br i1 %tobool2.not.i.i.i206.i.i, label %if.end.i.i.i, label %if.then3.i.i.i207.i.i if.then3.i.i.i207.i.i: ; preds = %if.then.i7.i.i204.i.i - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %228) + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %226) to label %if.end.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i if.end.i.i.i: ; preds = %if.then3.i.i.i207.i.i, %if.then.i7.i.i204.i.i, %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i201.i.i @@ -2102,14 +2100,14 @@ if.end.i.i.i: ; preds = %if.then3.i.i.i207.i for.body8.lr.ph.i.i.i: ; preds = %if.end.i.i.i, %if.then4.i.i.i %m_data9.i.i.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 4, i32 5 - %231 = sext i32 %223 to i64 + %229 = sext i32 %221 to i64 %wide.trip.count.i.i325.i = sext i32 %.lcssa.i.i to i64 br label %for.body8.i.i.i for.body8.i.i.i: ; preds = %for.body8.i.i.i, %for.body8.lr.ph.i.i.i - %indvars.iv.i.i326.i = phi i64 [ %231, %for.body8.lr.ph.i.i.i ], [ %indvars.iv.next.i.i328.i, %for.body8.i.i.i ] - %232 = load ptr, ptr %m_data9.i.i.i, align 8 - %arrayidx11.i.i327.i = getelementptr inbounds i32, ptr %232, i64 %indvars.iv.i.i326.i + %indvars.iv.i.i326.i = phi i64 [ %229, %for.body8.lr.ph.i.i.i ], [ %indvars.iv.next.i.i328.i, %for.body8.i.i.i ] + %230 = load ptr, ptr %m_data9.i.i.i, align 8 + %arrayidx11.i.i327.i = getelementptr inbounds i32, ptr %230, i64 %indvars.iv.i.i326.i store i32 0, ptr %arrayidx11.i.i327.i, align 4 %indvars.iv.next.i.i328.i = add nsw i64 %indvars.iv.i.i326.i, 1 %exitcond.not.i.i329.i = icmp eq i64 %indvars.iv.next.i.i328.i, %wide.trip.count.i.i325.i @@ -2120,9 +2118,9 @@ _ZN20btAlignedObjectArrayIiE6resizeEiRKi.exit.loopexit.i.i: ; preds = %for.body8 br label %_ZN20btAlignedObjectArrayIiE6resizeEiRKi.exit.i.i _ZN20btAlignedObjectArrayIiE6resizeEiRKi.exit.i.i: ; preds = %_ZN20btAlignedObjectArrayIiE6resizeEiRKi.exit.loopexit.i.i, %for.end50.i.i - %233 = phi i32 [ %.pre277.i.i, %_ZN20btAlignedObjectArrayIiE6resizeEiRKi.exit.loopexit.i.i ], [ %.lcssa.i.i, %for.end50.i.i ] + %231 = phi i32 [ %.pre277.i.i, %_ZN20btAlignedObjectArrayIiE6resizeEiRKi.exit.loopexit.i.i ], [ %.lcssa.i.i, %for.end50.i.i ] store i32 %.lcssa.i.i, ptr %m_size.i.i188.i.i, align 4 - %cmp61259.i.i = icmp sgt i32 %233, 0 + %cmp61259.i.i = icmp sgt i32 %231, 0 br i1 %cmp61259.i.i, label %for.body62.lr.ph.i.i, label %for.end68.i.i for.body62.lr.ph.i.i: ; preds = %_ZN20btAlignedObjectArrayIiE6resizeEiRKi.exit.i.i @@ -2131,35 +2129,35 @@ for.body62.lr.ph.i.i: ; preds = %_ZN20btAlignedObjec for.body62.i.i: ; preds = %for.body62.i.i, %for.body62.lr.ph.i.i %indvars.iv274.i.i = phi i64 [ 0, %for.body62.lr.ph.i.i ], [ %indvars.iv.next275.i.i, %for.body62.i.i ] - %234 = load ptr, ptr %m_data.i222.i.i, align 8 - %arrayidx.i224.i.i = getelementptr inbounds i32, ptr %234, i64 %indvars.iv274.i.i - %235 = trunc i64 %indvars.iv274.i.i to i32 - store i32 %235, ptr %arrayidx.i224.i.i, align 4 + %232 = load ptr, ptr %m_data.i222.i.i, align 8 + %arrayidx.i224.i.i = getelementptr inbounds i32, ptr %232, i64 %indvars.iv274.i.i + %233 = trunc i64 %indvars.iv274.i.i to i32 + store i32 %233, ptr %arrayidx.i224.i.i, align 4 %indvars.iv.next275.i.i = add nuw nsw i64 %indvars.iv274.i.i, 1 - %236 = load i32, ptr %m_size.i.i48.i.i, align 4 - %237 = sext i32 %236 to i64 - %cmp61.i.i = icmp slt i64 %indvars.iv.next275.i.i, %237 + %234 = load i32, ptr %m_size.i.i48.i.i, align 4 + %235 = sext i32 %234 to i64 + %cmp61.i.i = icmp slt i64 %indvars.iv.next275.i.i, %235 br i1 %cmp61.i.i, label %for.body62.i.i, label %for.end68.i.i, !llvm.loop !33 for.end68.i.i: ; preds = %for.body62.i.i, %_ZN20btAlignedObjectArrayIiE6resizeEiRKi.exit.i.i - %238 = phi i32 [ %233, %_ZN20btAlignedObjectArrayIiE6resizeEiRKi.exit.i.i ], [ %236, %for.body62.i.i ] + %236 = phi i32 [ %231, %_ZN20btAlignedObjectArrayIiE6resizeEiRKi.exit.i.i ], [ %234, %for.body62.i.i ] %m_size.i.i.i.i.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 3, i32 2 - %239 = load i32, ptr %m_size.i.i.i.i.i, align 4 - %cmp.i.i226.i.i = icmp slt i32 %239, %238 + %237 = load i32, ptr %m_size.i.i.i.i.i, align 4 + %cmp.i.i226.i.i = icmp slt i32 %237, %236 br i1 %cmp.i.i226.i.i, label %if.then.i.i234.i.i, label %_ZN20btAlignedObjectArrayIcE18resizeNoInitializeEi.exit.i.i.i if.then.i.i234.i.i: ; preds = %for.end68.i.i %m_capacity.i.i.i.i.i.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 3, i32 3 - %240 = load i32, ptr %m_capacity.i.i.i.i.i.i, align 8 - %cmp.i.i.i.i.i = icmp slt i32 %240, %238 + %238 = load i32, ptr %m_capacity.i.i.i.i.i.i, align 8 + %cmp.i.i.i.i.i = icmp slt i32 %238, %236 br i1 %cmp.i.i.i.i.i, label %if.then.i.i.i235.i.i, label %_ZN20btAlignedObjectArrayIcE18resizeNoInitializeEi.exit.i.i.i if.then.i.i.i235.i.i: ; preds = %if.then.i.i234.i.i - %tobool.not.i.i.i.i.i.i = icmp eq i32 %238, 0 + %tobool.not.i.i.i.i.i.i = icmp eq i32 %236, 0 br i1 %tobool.not.i.i.i.i.i.i, label %_ZN20btAlignedObjectArrayIcE8allocateEi.exit.i.i.i.i.i, label %if.then.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %if.then.i.i.i235.i.i - %conv.i.i.i.i.i.i.i = sext i32 %238 to i64 + %conv.i.i.i.i.i.i.i = sext i32 %236 to i64 %call.i.i.i.i.i237.i.i = invoke noundef ptr @_Z22btAlignedAllocInternalmi(i64 noundef %conv.i.i.i.i.i.i.i, i32 noundef 16) to label %call.i.i.i.i.i.noexc.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i @@ -2168,91 +2166,91 @@ call.i.i.i.i.i.noexc.i.i: ; preds = %if.then.i.i.i.i.i.i br label %_ZN20btAlignedObjectArrayIcE8allocateEi.exit.i.i.i.i.i _ZN20btAlignedObjectArrayIcE8allocateEi.exit.i.i.i.i.i: ; preds = %call.i.i.i.i.i.noexc.i.i, %if.then.i.i.i235.i.i - %241 = phi i32 [ %.pre.i.i.i.i, %call.i.i.i.i.i.noexc.i.i ], [ %239, %if.then.i.i.i235.i.i ] + %239 = phi i32 [ %.pre.i.i.i.i, %call.i.i.i.i.i.noexc.i.i ], [ %237, %if.then.i.i.i235.i.i ] %retval.0.i.i.i.i.i.i = phi ptr [ %call.i.i.i.i.i237.i.i, %call.i.i.i.i.i.noexc.i.i ], [ null, %if.then.i.i.i235.i.i ] - %cmp4.i.i.i.i.i.i = icmp sgt i32 %241, 0 + %cmp4.i.i.i.i.i.i = icmp sgt i32 %239, 0 br i1 %cmp4.i.i.i.i.i.i, label %for.body.lr.ph.i.i.i.i.i.i, label %_ZNK20btAlignedObjectArrayIcE4copyEiiPc.exit.i.i.i.i.i for.body.lr.ph.i.i.i.i.i.i: ; preds = %_ZN20btAlignedObjectArrayIcE8allocateEi.exit.i.i.i.i.i %m_data.i.i.i.i.i.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 3, i32 5 - %wide.trip.count.i.i.i.i.i.i = zext nneg i32 %241 to i64 + %wide.trip.count.i.i.i.i.i.i = zext nneg i32 %239 to i64 br label %for.body.i.i.i.i.i.i for.body.i.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i.i, %for.body.lr.ph.i.i.i.i.i.i %indvars.iv.i.i.i.i.i.i = phi i64 [ 0, %for.body.lr.ph.i.i.i.i.i.i ], [ %indvars.iv.next.i.i.i.i.i.i, %for.body.i.i.i.i.i.i ] %arrayidx.i.i.i.i.i.i = getelementptr inbounds i8, ptr %retval.0.i.i.i.i.i.i, i64 %indvars.iv.i.i.i.i.i.i - %242 = load ptr, ptr %m_data.i.i.i.i.i.i, align 8 - %arrayidx3.i.i.i.i.i.i = getelementptr inbounds i8, ptr %242, i64 %indvars.iv.i.i.i.i.i.i - %243 = load i8, ptr %arrayidx3.i.i.i.i.i.i, align 1 - store i8 %243, ptr %arrayidx.i.i.i.i.i.i, align 1 + %240 = load ptr, ptr %m_data.i.i.i.i.i.i, align 8 + %arrayidx3.i.i.i.i.i.i = getelementptr inbounds i8, ptr %240, i64 %indvars.iv.i.i.i.i.i.i + %241 = load i8, ptr %arrayidx3.i.i.i.i.i.i, align 1 + store i8 %241, ptr %arrayidx.i.i.i.i.i.i, align 1 %indvars.iv.next.i.i.i.i.i.i = add nuw nsw i64 %indvars.iv.i.i.i.i.i.i, 1 %exitcond.not.i.i.i.i.i.i = icmp eq i64 %indvars.iv.next.i.i.i.i.i.i, %wide.trip.count.i.i.i.i.i.i br i1 %exitcond.not.i.i.i.i.i.i, label %_ZNK20btAlignedObjectArrayIcE4copyEiiPc.exit.i.i.i.i.i, label %for.body.i.i.i.i.i.i, !llvm.loop !11 _ZNK20btAlignedObjectArrayIcE4copyEiiPc.exit.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i.i, %_ZN20btAlignedObjectArrayIcE8allocateEi.exit.i.i.i.i.i %m_data.i5.i.i.i.i.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 3, i32 5 - %244 = load ptr, ptr %m_data.i5.i.i.i.i.i, align 8 - %tobool.not.i6.i.i.i.i.i = icmp eq ptr %244, null + %242 = load ptr, ptr %m_data.i5.i.i.i.i.i, align 8 + %tobool.not.i6.i.i.i.i.i = icmp eq ptr %242, null br i1 %tobool.not.i6.i.i.i.i.i, label %_ZN20btAlignedObjectArrayIcE10deallocateEv.exit.i.i.i.i.i, label %if.then.i7.i.i.i.i.i if.then.i7.i.i.i.i.i: ; preds = %_ZNK20btAlignedObjectArrayIcE4copyEiiPc.exit.i.i.i.i.i %m_ownsMemory.i.i.i.i.i.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 3, i32 6 - %245 = load i8, ptr %m_ownsMemory.i.i.i.i.i.i, align 8 - %246 = and i8 %245, 1 - %tobool2.not.i.i.i.i.i.i = icmp eq i8 %246, 0 + %243 = load i8, ptr %m_ownsMemory.i.i.i.i.i.i, align 8 + %244 = and i8 %243, 1 + %tobool2.not.i.i.i.i.i.i = icmp eq i8 %244, 0 br i1 %tobool2.not.i.i.i.i.i.i, label %_ZN20btAlignedObjectArrayIcE10deallocateEv.exit.i.i.i.i.i, label %if.then3.i.i.i.i.i.i if.then3.i.i.i.i.i.i: ; preds = %if.then.i7.i.i.i.i.i - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %244) + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %242) to label %_ZN20btAlignedObjectArrayIcE10deallocateEv.exit.i.i.i.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i _ZN20btAlignedObjectArrayIcE10deallocateEv.exit.i.i.i.i.i: ; preds = %if.then3.i.i.i.i.i.i, %if.then.i7.i.i.i.i.i, %_ZNK20btAlignedObjectArrayIcE4copyEiiPc.exit.i.i.i.i.i %m_ownsMemory.i.i.i236.i.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 3, i32 6 store i8 1, ptr %m_ownsMemory.i.i.i236.i.i, align 8 store ptr %retval.0.i.i.i.i.i.i, ptr %m_data.i5.i.i.i.i.i, align 8 - store i32 %238, ptr %m_capacity.i.i.i.i.i.i, align 8 + store i32 %236, ptr %m_capacity.i.i.i.i.i.i, align 8 br label %_ZN20btAlignedObjectArrayIcE18resizeNoInitializeEi.exit.i.i.i _ZN20btAlignedObjectArrayIcE18resizeNoInitializeEi.exit.i.i.i: ; preds = %_ZN20btAlignedObjectArrayIcE10deallocateEv.exit.i.i.i.i.i, %if.then.i.i234.i.i, %for.end68.i.i - store i32 %238, ptr %m_size.i.i.i.i.i, align 4 + store i32 %236, ptr %m_size.i.i.i.i.i, align 4 %call1.i239.i.i = invoke noundef ptr @_Z18btGetTaskSchedulerv() to label %call1.i.noexc.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i call1.i.noexc.i.i: ; preds = %_ZN20btAlignedObjectArrayIcE18resizeNoInitializeEi.exit.i.i.i %vtable.i.i.i = load ptr, ptr %call1.i239.i.i, align 8 %vfn.i.i.i = getelementptr inbounds ptr, ptr %vtable.i.i.i, i64 3 - %247 = load ptr, ptr %vfn.i.i.i, align 8 - %call2.i240.i.i = invoke noundef i32 %247(ptr noundef nonnull align 8 dereferenceable(21) %call1.i239.i.i) + %245 = load ptr, ptr %vfn.i.i.i, align 8 + %call2.i240.i.i = invoke noundef i32 %245(ptr noundef nonnull align 8 dereferenceable(21) %call1.i239.i.i) to label %call2.i.noexc.i.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i.i call2.i.noexc.i.i: ; preds = %call1.i.noexc.i.i - %cmp15.i.i.i = icmp sgt i32 %238, 0 + %cmp15.i.i.i = icmp sgt i32 %236, 0 br i1 %cmp15.i.i.i, label %for.body.lr.ph.i.i322.i, label %_ZL25setupSpatialGridBatchesMtP20btBatchedConstraintsP20btAlignedObjectArrayIcEPS1_I18btSolverConstraintERKS1_I12btSolverBodyEiib.exit for.body.lr.ph.i.i322.i: ; preds = %call2.i.noexc.i.i %conv5.i.i.i = sitofp i32 %call2.i240.i.i to float %m_data.i10.i.i.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 3, i32 5 - %wide.trip.count.i228.i.i = zext nneg i32 %238 to i64 + %wide.trip.count.i228.i.i = zext nneg i32 %236 to i64 br label %for.body.i.i323.i for.body.i.i323.i: ; preds = %for.body.i.i323.i, %for.body.lr.ph.i.i322.i %indvars.iv.i229.i.i = phi i64 [ 0, %for.body.lr.ph.i.i322.i ], [ %indvars.iv.next.i232.i.i, %for.body.i.i323.i ] - %248 = load ptr, ptr %m_data.i.i.i138.i.i, align 8 - %arrayidx.i.i230.i.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %248, i64 %indvars.iv.i229.i.i - %end.i231.i.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %248, i64 %indvars.iv.i229.i.i, i32 1 - %249 = load i32, ptr %end.i231.i.i, align 4 - %250 = load i32, ptr %arrayidx.i.i230.i.i, align 4 - %sub.i.i324.i = sub nsw i32 %249, %250 + %246 = load ptr, ptr %m_data.i.i.i138.i.i, align 8 + %arrayidx.i.i230.i.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %246, i64 %indvars.iv.i229.i.i + %end.i231.i.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %246, i64 %indvars.iv.i229.i.i, i32 1 + %247 = load i32, ptr %end.i231.i.i, align 4 + %248 = load i32, ptr %arrayidx.i.i230.i.i, align 4 + %sub.i.i324.i = sub nsw i32 %247, %248 %conv.i.i.i = sitofp i32 %sub.i.i324.i to float %mul.i.i.i = fmul float %conv.i.i.i, 2.500000e-01 %div.i.i.i = fdiv float %mul.i.i.i, %conv5.i.i.i %add.i.i.i = fadd float %div.i.i.i, 0.000000e+00 - %251 = call noundef float @llvm.floor.f32(float %add.i.i.i) - %conv8.i.i.i = fptosi float %251 to i32 + %249 = call noundef float @llvm.floor.f32(float %add.i.i.i) + %conv8.i.i.i = fptosi float %249 to i32 %.sroa.speculated.i.i.i = call i32 @llvm.smax.i32(i32 %conv8.i.i.i, i32 1) %conv10.i.i.i = trunc i32 %.sroa.speculated.i.i.i to i8 - %252 = load ptr, ptr %m_data.i10.i.i.i, align 8 - %arrayidx.i12.i.i.i = getelementptr inbounds i8, ptr %252, i64 %indvars.iv.i229.i.i + %250 = load ptr, ptr %m_data.i10.i.i.i, align 8 + %arrayidx.i12.i.i.i = getelementptr inbounds i8, ptr %250, i64 %indvars.iv.i229.i.i store i8 %conv10.i.i.i, ptr %arrayidx.i12.i.i.i, align 1 %indvars.iv.next.i232.i.i = add nuw nsw i64 %indvars.iv.i229.i.i, 1 %exitcond.not.i233.i.i = icmp eq i64 %indvars.iv.next.i232.i.i, %wide.trip.count.i228.i.i @@ -2260,7 +2258,7 @@ for.body.i.i323.i: ; preds = %for.body.i.i323.i, common.resume: ; preds = %lpad.i, %lpad.i.i35, %lpad.loopexit.i, %lpad.loopexit.split-lp.i, %ehcleanup.i.i, %lpad309.i, %lpad1.i.i, %lpad1.i310.i, %lpad.body.i.i, %lpad.i67 %__profile.i62.sink = phi ptr [ %__profile.i62, %lpad.i67 ], [ %__profile.i, %lpad.body.i.i ], [ %__profile.i, %lpad1.i310.i ], [ %__profile.i, %lpad1.i.i ], [ %__profile.i, %lpad309.i ], [ %__profile.i, %ehcleanup.i.i ], [ %__profile.i, %lpad.loopexit.split-lp.i ], [ %__profile.i, %lpad.loopexit.i ], [ %__profile.i7, %lpad.i.i35 ], [ %__profile.i7, %lpad.i ] - %common.resume.op = phi { ptr, i32 } [ %325, %lpad.i67 ], [ %eh.lpad-body.i.i, %lpad.body.i.i ], [ %159, %lpad1.i310.i ], [ %155, %lpad1.i.i ], [ %128, %lpad309.i ], [ %.pn.i.i, %ehcleanup.i.i ], [ %lpad.loopexit.split-lp430.i, %lpad.loopexit.split-lp.i ], [ %lpad.loopexit429.i, %lpad.loopexit.i ], [ %312, %lpad.i.i35 ], [ %263, %lpad.i ] + %common.resume.op = phi { ptr, i32 } [ %323, %lpad.i67 ], [ %eh.lpad-body.i.i, %lpad.body.i.i ], [ %157, %lpad1.i310.i ], [ %153, %lpad1.i.i ], [ %128, %lpad309.i ], [ %.pn.i.i, %ehcleanup.i.i ], [ %lpad.loopexit.split-lp430.i, %lpad.loopexit.split-lp.i ], [ %lpad.loopexit429.i, %lpad.loopexit.i ], [ %310, %lpad.i.i35 ], [ %261, %lpad.i ] call void @_ZN14CProfileSampleD1Ev(ptr noundef nonnull align 1 dereferenceable(1) %__profile.i62.sink) #11 resume { ptr, i32 } %common.resume.op @@ -2283,33 +2281,33 @@ _ZL25setupSpatialGridBatchesMtP20btBatchedConstraintsP20btAlignedObjectArrayIcEP call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %gridDim.i) call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %params.i) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %loop.i) - %253 = load i8, ptr @_ZN20btBatchedConstraints18s_debugDrawBatchesE, align 1 - %254 = and i8 %253, 1 - %tobool3.not = icmp eq i8 %254, 0 + %251 = load i8, ptr @_ZN20btBatchedConstraints18s_debugDrawBatchesE, align 1 + %252 = and i8 %251, 1 + %tobool3.not = icmp eq i8 %252, 0 br i1 %tobool3.not, label %if.end6, label %if.then4 if.then4: ; preds = %_ZL25setupSpatialGridBatchesMtP20btBatchedConstraintsP20btAlignedObjectArrayIcEPS1_I18btSolverConstraintERKS1_I12btSolverBodyEiib.exit call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %__profile.i7) call void @_ZN14CProfileSampleC1EPKc(ptr noundef nonnull align 1 dereferenceable(1) %__profile.i7, ptr noundef nonnull @.str.15) %m_debugDrawer.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 5 - %255 = load ptr, ptr %m_debugDrawer.i, align 8 - %tobool1.not.i = icmp eq ptr %255, null + %253 = load ptr, ptr %m_debugDrawer.i, align 8 + %tobool1.not.i = icmp eq ptr %253, null br i1 %tobool1.not.i, label %_ZL19debugDrawAllBatchesPK20btBatchedConstraintsP20btAlignedObjectArrayI18btSolverConstraintERKS2_I12btSolverBodyE.exit, label %land.lhs.true2.i land.lhs.true2.i: ; preds = %if.then4 - %256 = load i32, ptr %m_size.i.i48.i.i, align 4 - %cmp.i9 = icmp sgt i32 %256, 0 + %254 = load i32, ptr %m_size.i.i48.i.i, align 4 + %cmp.i9 = icmp sgt i32 %254, 0 br i1 %cmp.i9, label %for.cond.preheader.i, label %_ZL19debugDrawAllBatchesPK20btBatchedConstraintsP20btAlignedObjectArrayI18btSolverConstraintERKS2_I12btSolverBodyE.exit for.cond.preheader.i: ; preds = %land.lhs.true2.i - %257 = load i32, ptr %m_size.i76.i, align 4 - %cmp1095.i = icmp sgt i32 %257, 0 + %255 = load i32, ptr %m_size.i76.i, align 4 + %cmp1095.i = icmp sgt i32 %255, 0 br i1 %cmp1095.i, label %for.body.lr.ph.i39, label %invoke.cont56.lr.ph.i for.body.lr.ph.i39: ; preds = %for.cond.preheader.i %m_data.i.i40 = getelementptr inbounds %class.btAlignedObjectArray.8, ptr %bodies, i64 0, i32 5 - %258 = load ptr, ptr %m_data.i.i40, align 8 - %wide.trip.count.i41 = zext nneg i32 %257 to i64 + %256 = load ptr, ptr %m_data.i.i40, align 8 + %wide.trip.count.i41 = zext nneg i32 %255 to i64 br label %for.body.i42 for.body.i42: ; preds = %for.body.i42, %for.body.lr.ph.i39 @@ -2318,40 +2316,40 @@ for.body.i42: ; preds = %for.body.i42, %for. %bboxMin.sroa.5.099.i = phi float [ 0x43ABC16D60000000, %for.body.lr.ph.i39 ], [ %bboxMin.sroa.5.1.i, %for.body.i42 ] %bboxMax.sroa.7.097.i = phi <2 x float> [ , %for.body.lr.ph.i39 ], [ %bboxMax.sroa.7.2.i, %for.body.i42 ] %bboxMax.sroa.0.096.i = phi <2 x float> [ , %for.body.lr.ph.i39 ], [ %bboxMax.sroa.0.2.i53, %for.body.i42 ] - %m_origin.i.i44 = getelementptr inbounds %struct.btSolverBody, ptr %258, i64 %indvars.iv.i43, i32 0, i32 1 - %259 = load float, ptr %m_origin.i.i44, align 4 + %m_origin.i.i44 = getelementptr inbounds %struct.btSolverBody, ptr %256, i64 %indvars.iv.i43, i32 0, i32 1 + %257 = load float, ptr %m_origin.i.i44, align 4 %arrayidx7.i20.i = getelementptr inbounds [4 x float], ptr %m_origin.i.i44, i64 0, i64 1 - %260 = load float, ptr %arrayidx7.i20.i, align 4 - %cmp.i4.i.i45 = fcmp olt float %260, %bboxMin.sroa.5.099.i - %bboxMin.sroa.5.1.i = select i1 %cmp.i4.i.i45, float %260, float %bboxMin.sroa.5.099.i + %258 = load float, ptr %arrayidx7.i20.i, align 4 + %cmp.i4.i.i45 = fcmp olt float %258, %bboxMin.sroa.5.099.i + %bboxMin.sroa.5.1.i = select i1 %cmp.i4.i.i45, float %258, float %bboxMin.sroa.5.099.i %arrayidx11.i.i = getelementptr inbounds [4 x float], ptr %m_origin.i.i44, i64 0, i64 2 - %261 = load float, ptr %arrayidx11.i.i, align 4 - %cmp.i7.i.i46 = fcmp olt float %261, %bboxMin.sroa.10.0100.i - %bboxMin.sroa.10.1.i = select i1 %cmp.i7.i.i46, float %261, float %bboxMin.sroa.10.0100.i + %259 = load float, ptr %arrayidx11.i.i, align 4 + %cmp.i7.i.i46 = fcmp olt float %259, %bboxMin.sroa.10.0100.i + %bboxMin.sroa.10.1.i = select i1 %cmp.i7.i.i46, float %259, float %bboxMin.sroa.10.0100.i %arrayidx.i.i.i47 = getelementptr inbounds [4 x float], ptr %m_origin.i.i44, i64 0, i64 3 - %262 = load float, ptr %arrayidx.i.i.i47, align 4 + %260 = load float, ptr %arrayidx.i.i.i47, align 4 %bboxMax.sroa.0.0.vec.extract.i48 = extractelement <2 x float> %bboxMax.sroa.0.096.i, i64 0 - %cmp.i.i21.i = fcmp olt float %bboxMax.sroa.0.0.vec.extract.i48, %259 - %bboxMax.sroa.0.0.vec.insert.i49 = insertelement <2 x float> %bboxMax.sroa.0.096.i, float %259, i64 0 + %cmp.i.i21.i = fcmp olt float %bboxMax.sroa.0.0.vec.extract.i48, %257 + %bboxMax.sroa.0.0.vec.insert.i49 = insertelement <2 x float> %bboxMax.sroa.0.096.i, float %257, i64 0 %bboxMax.sroa.0.1.i50 = select i1 %cmp.i.i21.i, <2 x float> %bboxMax.sroa.0.0.vec.insert.i49, <2 x float> %bboxMax.sroa.0.096.i %bboxMax.sroa.0.4.vec.extract.i51 = extractelement <2 x float> %bboxMax.sroa.0.1.i50, i64 1 - %cmp.i4.i24.i = fcmp olt float %bboxMax.sroa.0.4.vec.extract.i51, %260 - %bboxMax.sroa.0.4.vec.insert.i52 = insertelement <2 x float> %bboxMax.sroa.0.1.i50, float %260, i64 1 + %cmp.i4.i24.i = fcmp olt float %bboxMax.sroa.0.4.vec.extract.i51, %258 + %bboxMax.sroa.0.4.vec.insert.i52 = insertelement <2 x float> %bboxMax.sroa.0.1.i50, float %258, i64 1 %bboxMax.sroa.0.2.i53 = select i1 %cmp.i4.i24.i, <2 x float> %bboxMax.sroa.0.4.vec.insert.i52, <2 x float> %bboxMax.sroa.0.1.i50 %bboxMax.sroa.7.8.vec.extract.i54 = extractelement <2 x float> %bboxMax.sroa.7.097.i, i64 0 - %cmp.i7.i27.i = fcmp olt float %bboxMax.sroa.7.8.vec.extract.i54, %261 - %bboxMax.sroa.7.8.vec.insert.i55 = insertelement <2 x float> %bboxMax.sroa.7.097.i, float %261, i64 0 + %cmp.i7.i27.i = fcmp olt float %bboxMax.sroa.7.8.vec.extract.i54, %259 + %bboxMax.sroa.7.8.vec.insert.i55 = insertelement <2 x float> %bboxMax.sroa.7.097.i, float %259, i64 0 %bboxMax.sroa.7.1.i56 = select i1 %cmp.i7.i27.i, <2 x float> %bboxMax.sroa.7.8.vec.insert.i55, <2 x float> %bboxMax.sroa.7.097.i %bboxMax.sroa.7.12.vec.extract.i57 = extractelement <2 x float> %bboxMax.sroa.7.1.i56, i64 1 - %cmp.i10.i30.i = fcmp olt float %bboxMax.sroa.7.12.vec.extract.i57, %262 - %bboxMax.sroa.7.12.vec.insert.i58 = insertelement <2 x float> %bboxMax.sroa.7.1.i56, float %262, i64 1 + %cmp.i10.i30.i = fcmp olt float %bboxMax.sroa.7.12.vec.extract.i57, %260 + %bboxMax.sroa.7.12.vec.insert.i58 = insertelement <2 x float> %bboxMax.sroa.7.1.i56, float %260, i64 1 %bboxMax.sroa.7.2.i = select i1 %cmp.i10.i30.i, <2 x float> %bboxMax.sroa.7.12.vec.insert.i58, <2 x float> %bboxMax.sroa.7.1.i56 %indvars.iv.next.i59 = add nuw nsw i64 %indvars.iv.i43, 1 %exitcond.not.i60 = icmp eq i64 %indvars.iv.next.i59, %wide.trip.count.i41 br i1 %exitcond.not.i60, label %invoke.cont56.lr.ph.i, label %for.body.i42, !llvm.loop !35 lpad.i: ; preds = %invoke.cont56.i - %263 = landingpad { ptr, i32 } + %261 = landingpad { ptr, i32 } cleanup br label %common.resume @@ -2366,34 +2364,34 @@ invoke.cont56.lr.ph.i: ; preds = %for.body.i42, %for. %sub14.i.i14 = fsub float %bboxMax.sroa.7.8.vec.extract87.i, %bboxMin.sroa.10.0.lcssa.i %mul.i = fmul float %sub8.i.i13, 0x3FF19999A0000000 %mul29.i = fmul float %sub14.i.i14, 0x3FF19999A0000000 - %sub.i = add nsw i32 %256, -1 + %sub.i = add nsw i32 %254, -1 %conv37.i15 = sitofp i32 %sub.i to float %conv50.i = fpext float %conv37.i15 to double %neg.i = fneg double %conv50.i - %264 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %col.i.i, i64 0, i32 1 + %262 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %col.i.i, i64 0, i32 1 %m_data.i13.i.i.i = getelementptr inbounds %class.btAlignedObjectArray, ptr %this, i64 0, i32 5 %m_data.i16.i.i.i = getelementptr inbounds %class.btAlignedObjectArray.12, ptr %constraints, i64 0, i32 5 %m_data.i19.i.i.i = getelementptr inbounds %class.btAlignedObjectArray.8, ptr %bodies, i64 0, i32 5 - %265 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %pos0.i.i.i, i64 0, i32 1 - %266 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %pos1.i.i.i, i64 0, i32 1 - %smax.i = call i32 @llvm.smax.i32(i32 %256, i32 1) + %263 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %pos0.i.i.i, i64 0, i32 1 + %264 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %pos1.i.i.i, i64 0, i32 1 + %smax.i = call i32 @llvm.smax.i32(i32 %254, i32 1) %wide.trip.count112.i = zext nneg i32 %smax.i to i64 - %267 = insertelement <2 x float> , float %mul.i, i64 1 + %265 = insertelement <2 x float> , float %mul.i, i64 1 br label %invoke.cont56.i invoke.cont56.i: ; preds = %for.inc60.i, %invoke.cont56.lr.ph.i %indvars.iv109.i = phi i64 [ 0, %invoke.cont56.lr.ph.i ], [ %indvars.iv.next110.i, %for.inc60.i ] - %268 = trunc i64 %indvars.iv109.i to i32 - %conv.i19 = sitofp i32 %268 to float + %266 = trunc i64 %indvars.iv109.i to i32 + %conv.i19 = sitofp i32 %266 to float %div.i = fdiv float %conv.i19, %conv37.i15 %conv47.i = fpext float %conv.i19 to double - %269 = call double @llvm.fmuladd.f64(double %neg.i, double 5.000000e-01, double %conv47.i) - %conv52.i = fptrunc double %269 to float + %267 = call double @llvm.fmuladd.f64(double %neg.i, double 5.000000e-01, double %conv47.i) + %conv52.i = fptrunc double %267 to float %mul.i.i20 = fmul float %conv52.i, 0.000000e+00 %mul8.i.i21 = fmul float %mul29.i, %conv52.i - %270 = insertelement <2 x float> poison, float %mul.i.i20, i64 0 - %271 = shufflevector <2 x float> %270, <2 x float> poison, <2 x i32> zeroinitializer - %272 = fadd <2 x float> %267, %271 + %268 = insertelement <2 x float> poison, float %mul.i.i20, i64 0 + %269 = shufflevector <2 x float> %268, <2 x float> poison, <2 x i32> zeroinitializer + %270 = fadd <2 x float> %265, %269 %add14.i.i = fadd float %mul8.i.i21, 0.000000e+00 call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %__profile.i.i6) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %col.i.i) @@ -2401,115 +2399,115 @@ invoke.cont56.i: ; preds = %for.inc60.i, %invok to label %.noexc.i unwind label %lpad.i .noexc.i: ; preds = %invoke.cont56.i - %273 = load ptr, ptr %m_debugDrawer.i, align 8 - %tobool1.not.i.i = icmp ne ptr %273, null - %274 = load i32, ptr %m_size.i.i48.i.i, align 4 - %275 = sext i32 %274 to i64 - %cmp.i.i = icmp slt i64 %indvars.iv109.i, %275 + %271 = load ptr, ptr %m_debugDrawer.i, align 8 + %tobool1.not.i.i = icmp ne ptr %271, null + %272 = load i32, ptr %m_size.i.i48.i.i, align 4 + %273 = sext i32 %272 to i64 + %cmp.i.i = icmp slt i64 %indvars.iv109.i, %273 %or.cond116 = select i1 %tobool1.not.i.i, i1 %cmp.i.i, i1 false br i1 %or.cond116, label %if.then.i.i, label %for.inc60.i if.then.i.i: ; preds = %.noexc.i - %276 = load ptr, ptr %m_data.i.i.i138.i.i, align 8 - %arrayidx.i.i75.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %276, i64 %indvars.iv109.i - %277 = load i32, ptr %arrayidx.i.i75.i, align 4 - %end.i.i23 = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %276, i64 %indvars.iv109.i, i32 1 - %278 = load i32, ptr %end.i.i23, align 4 - %cmp619.i.i = icmp slt i32 %277, %278 + %274 = load ptr, ptr %m_data.i.i.i138.i.i, align 8 + %arrayidx.i.i75.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %274, i64 %indvars.iv109.i + %275 = load i32, ptr %arrayidx.i.i75.i, align 4 + %end.i.i23 = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %274, i64 %indvars.iv109.i, i32 1 + %276 = load i32, ptr %end.i.i23, align 4 + %cmp619.i.i = icmp slt i32 %275, %276 br i1 %cmp619.i.i, label %invoke.cont15.preheader.i.i, label %for.inc60.i invoke.cont15.preheader.i.i: ; preds = %if.then.i.i - %279 = sext i32 %277 to i64 + %277 = sext i32 %275 to i64 %sub21.i.i.i.i = fsub float %div.i, %div.i br label %invoke.cont15.i.i invoke.cont15.i.i: ; preds = %for.inc.i.i26, %invoke.cont15.preheader.i.i - %280 = phi i32 [ %278, %invoke.cont15.preheader.i.i ], [ %310, %for.inc.i.i26 ] - %indvars.iv.i.i24 = phi i64 [ %279, %invoke.cont15.preheader.i.i ], [ %indvars.iv.next.i.i27, %for.inc.i.i26 ] - %281 = load i32, ptr %arrayidx.i.i75.i, align 4 - %282 = trunc i64 %indvars.iv.i.i24 to i32 - %sub.i76.i = sub nsw i32 %282, %281 + %278 = phi i32 [ %276, %invoke.cont15.preheader.i.i ], [ %308, %for.inc.i.i26 ] + %indvars.iv.i.i24 = phi i64 [ %277, %invoke.cont15.preheader.i.i ], [ %indvars.iv.next.i.i27, %for.inc.i.i26 ] + %279 = load i32, ptr %arrayidx.i.i75.i, align 4 + %280 = trunc i64 %indvars.iv.i.i24 to i32 + %sub.i76.i = sub nsw i32 %280, %279 %conv.i.i = sitofp i32 %sub.i76.i to float - %283 = xor i32 %281, -1 - %sub12.i.i = add i32 %280, %283 + %281 = xor i32 %279, -1 + %sub12.i.i = add i32 %278, %281 %.sroa.speculated.i.i = call i32 @llvm.smax.i32(i32 %sub12.i.i, i32 1) %conv14.i.i = sitofp i32 %.sroa.speculated.i.i to float %div.i.i25 = fdiv float %conv.i.i, %conv14.i.i - %284 = call float @llvm.fmuladd.f32(float %div.i.i25, float -1.000000e+00, float 1.000000e+00) - %285 = fadd float %div.i.i25, 0.000000e+00 - %286 = call float @llvm.fmuladd.f32(float %sub21.i.i.i.i, float %div.i.i25, float %div.i) - %retval.sroa.0.0.vec.insert.i.i.i.i = insertelement <2 x float> poison, float %284, i64 0 - %retval.sroa.0.4.vec.insert.i.i.i.i = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i.i.i.i, float %285, i64 1 - %retval.sroa.3.12.vec.insert.i.i.i.i = insertelement <2 x float> , float %286, i64 0 + %282 = call float @llvm.fmuladd.f32(float %div.i.i25, float -1.000000e+00, float 1.000000e+00) + %283 = fadd float %div.i.i25, 0.000000e+00 + %284 = call float @llvm.fmuladd.f32(float %sub21.i.i.i.i, float %div.i.i25, float %div.i) + %retval.sroa.0.0.vec.insert.i.i.i.i = insertelement <2 x float> poison, float %282, i64 0 + %retval.sroa.0.4.vec.insert.i.i.i.i = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i.i.i.i, float %283, i64 1 + %retval.sroa.3.12.vec.insert.i.i.i.i = insertelement <2 x float> , float %284, i64 0 store <2 x float> %retval.sroa.0.4.vec.insert.i.i.i.i, ptr %col.i.i, align 8 - store <2 x float> %retval.sroa.3.12.vec.insert.i.i.i.i, ptr %264, align 8 + store <2 x float> %retval.sroa.3.12.vec.insert.i.i.i.i, ptr %262, align 8 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %pos0.i.i.i) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %pos1.i.i.i) - %287 = load ptr, ptr %m_debugDrawer.i, align 8 - %tobool1.not.i.i.i = icmp ne ptr %287, null - %288 = load i32, ptr %m_size.i.i42.i.i, align 4 - %289 = sext i32 %288 to i64 - %cmp.i13.i.i = icmp slt i64 %indvars.iv.i.i24, %289 + %285 = load ptr, ptr %m_debugDrawer.i, align 8 + %tobool1.not.i.i.i = icmp ne ptr %285, null + %286 = load i32, ptr %m_size.i.i42.i.i, align 4 + %287 = sext i32 %286 to i64 + %cmp.i13.i.i = icmp slt i64 %indvars.iv.i.i24, %287 %or.cond118 = select i1 %tobool1.not.i.i.i, i1 %cmp.i13.i.i, i1 false br i1 %or.cond118, label %if.then.i.i77.i, label %for.inc.i.i26 if.then.i.i77.i: ; preds = %invoke.cont15.i.i - %290 = load ptr, ptr %m_data.i.i.i93.i.i, align 8 - %arrayidx.i.i.i.i29 = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %290, i64 %indvars.iv.i.i24 - %291 = load i32, ptr %arrayidx.i.i.i.i29, align 4 - %end.i.i.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %290, i64 %indvars.iv.i.i24, i32 1 - %292 = load i32, ptr %end.i.i.i, align 4 - %cmp538.i.i.i = icmp slt i32 %291, %292 + %288 = load ptr, ptr %m_data.i.i.i93.i.i, align 8 + %arrayidx.i.i.i.i29 = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %288, i64 %indvars.iv.i.i24 + %289 = load i32, ptr %arrayidx.i.i.i.i29, align 4 + %end.i.i.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %288, i64 %indvars.iv.i.i24, i32 1 + %290 = load i32, ptr %end.i.i.i, align 4 + %cmp538.i.i.i = icmp slt i32 %289, %290 br i1 %cmp538.i.i.i, label %for.body.lr.ph.i.i.i30, label %for.inc.i.i26 for.body.lr.ph.i.i.i30: ; preds = %if.then.i.i77.i - %293 = sext i32 %291 to i64 + %291 = sext i32 %289 to i64 br label %for.body.i.i.i31 for.body.i.i.i31: ; preds = %.noexc.i.i36, %for.body.lr.ph.i.i.i30 - %indvars.iv.i.i.i32 = phi i64 [ %293, %for.body.lr.ph.i.i.i30 ], [ %indvars.iv.next.i.i.i37, %.noexc.i.i36 ] - %294 = load ptr, ptr %m_data.i13.i.i.i, align 8 - %arrayidx.i15.i.i.i = getelementptr inbounds i32, ptr %294, i64 %indvars.iv.i.i.i32 - %295 = load i32, ptr %arrayidx.i15.i.i.i, align 4 - %296 = load ptr, ptr %m_data.i16.i.i.i, align 8 - %idxprom.i17.i.i.i = sext i32 %295 to i64 - %m_solverBodyIdA.i.i.i = getelementptr inbounds %struct.btSolverConstraint, ptr %296, i64 %idxprom.i17.i.i.i, i32 18 - %297 = load i32, ptr %m_solverBodyIdA.i.i.i, align 8 - %m_solverBodyIdB.i.i.i = getelementptr inbounds %struct.btSolverConstraint, ptr %296, i64 %idxprom.i17.i.i.i, i32 19 - %298 = load i32, ptr %m_solverBodyIdB.i.i.i, align 4 - %299 = load ptr, ptr %m_data.i19.i.i.i, align 8 - %idxprom.i20.i.i.i = sext i32 %297 to i64 - %m_origin.i.i.i.i = getelementptr inbounds %struct.btSolverBody, ptr %299, i64 %idxprom.i20.i.i.i, i32 0, i32 1 - %300 = load <2 x float>, ptr %m_origin.i.i.i.i, align 4 - %301 = fadd <2 x float> %272, %300 + %indvars.iv.i.i.i32 = phi i64 [ %291, %for.body.lr.ph.i.i.i30 ], [ %indvars.iv.next.i.i.i37, %.noexc.i.i36 ] + %292 = load ptr, ptr %m_data.i13.i.i.i, align 8 + %arrayidx.i15.i.i.i = getelementptr inbounds i32, ptr %292, i64 %indvars.iv.i.i.i32 + %293 = load i32, ptr %arrayidx.i15.i.i.i, align 4 + %294 = load ptr, ptr %m_data.i16.i.i.i, align 8 + %idxprom.i17.i.i.i = sext i32 %293 to i64 + %m_solverBodyIdA.i.i.i = getelementptr inbounds %struct.btSolverConstraint, ptr %294, i64 %idxprom.i17.i.i.i, i32 18 + %295 = load i32, ptr %m_solverBodyIdA.i.i.i, align 8 + %m_solverBodyIdB.i.i.i = getelementptr inbounds %struct.btSolverConstraint, ptr %294, i64 %idxprom.i17.i.i.i, i32 19 + %296 = load i32, ptr %m_solverBodyIdB.i.i.i, align 4 + %297 = load ptr, ptr %m_data.i19.i.i.i, align 8 + %idxprom.i20.i.i.i = sext i32 %295 to i64 + %m_origin.i.i.i.i = getelementptr inbounds %struct.btSolverBody, ptr %297, i64 %idxprom.i20.i.i.i, i32 0, i32 1 + %298 = load <2 x float>, ptr %m_origin.i.i.i.i, align 4 + %299 = fadd <2 x float> %270, %298 %arrayidx11.i.i.i.i = getelementptr inbounds [4 x float], ptr %m_origin.i.i.i.i, i64 0, i64 2 - %302 = load float, ptr %arrayidx11.i.i.i.i, align 4 - %add14.i.i.i.i = fadd float %add14.i.i, %302 + %300 = load float, ptr %arrayidx11.i.i.i.i, align 4 + %add14.i.i.i.i = fadd float %add14.i.i, %300 %retval.sroa.3.12.vec.insert.i.i16.i.i = insertelement <2 x float> , float %add14.i.i.i.i, i64 0 - store <2 x float> %301, ptr %pos0.i.i.i, align 8 - store <2 x float> %retval.sroa.3.12.vec.insert.i.i16.i.i, ptr %265, align 8 - %idxprom.i23.i.i.i = sext i32 %298 to i64 - %m_origin.i25.i.i.i = getelementptr inbounds %struct.btSolverBody, ptr %299, i64 %idxprom.i23.i.i.i, i32 0, i32 1 - %303 = load <2 x float>, ptr %m_origin.i25.i.i.i, align 4 - %304 = fadd <2 x float> %272, %303 + store <2 x float> %299, ptr %pos0.i.i.i, align 8 + store <2 x float> %retval.sroa.3.12.vec.insert.i.i16.i.i, ptr %263, align 8 + %idxprom.i23.i.i.i = sext i32 %296 to i64 + %m_origin.i25.i.i.i = getelementptr inbounds %struct.btSolverBody, ptr %297, i64 %idxprom.i23.i.i.i, i32 0, i32 1 + %301 = load <2 x float>, ptr %m_origin.i25.i.i.i, align 4 + %302 = fadd <2 x float> %270, %301 %arrayidx11.i30.i.i.i = getelementptr inbounds [4 x float], ptr %m_origin.i25.i.i.i, i64 0, i64 2 - %305 = load float, ptr %arrayidx11.i30.i.i.i, align 4 - %add14.i32.i.i.i = fadd float %add14.i.i, %305 + %303 = load float, ptr %arrayidx11.i30.i.i.i, align 4 + %add14.i32.i.i.i = fadd float %add14.i.i, %303 %retval.sroa.3.12.vec.insert.i35.i.i.i = insertelement <2 x float> , float %add14.i32.i.i.i, i64 0 - store <2 x float> %304, ptr %pos1.i.i.i, align 8 - store <2 x float> %retval.sroa.3.12.vec.insert.i35.i.i.i, ptr %266, align 8 - %306 = load ptr, ptr %m_debugDrawer.i, align 8 - %vtable.i.i.i33 = load ptr, ptr %306, align 8 + store <2 x float> %302, ptr %pos1.i.i.i, align 8 + store <2 x float> %retval.sroa.3.12.vec.insert.i35.i.i.i, ptr %264, align 8 + %304 = load ptr, ptr %m_debugDrawer.i, align 8 + %vtable.i.i.i33 = load ptr, ptr %304, align 8 %vfn.i.i.i34 = getelementptr inbounds ptr, ptr %vtable.i.i.i33, i64 4 - %307 = load ptr, ptr %vfn.i.i.i34, align 8 - invoke void %307(ptr noundef nonnull align 8 dereferenceable(8) %306, ptr noundef nonnull align 4 dereferenceable(16) %pos0.i.i.i, ptr noundef nonnull align 4 dereferenceable(16) %pos1.i.i.i, ptr noundef nonnull align 4 dereferenceable(16) %col.i.i) + %305 = load ptr, ptr %vfn.i.i.i34, align 8 + invoke void %305(ptr noundef nonnull align 8 dereferenceable(8) %304, ptr noundef nonnull align 4 dereferenceable(16) %pos0.i.i.i, ptr noundef nonnull align 4 dereferenceable(16) %pos1.i.i.i, ptr noundef nonnull align 4 dereferenceable(16) %col.i.i) to label %.noexc.i.i36 unwind label %lpad.i.i35 .noexc.i.i36: ; preds = %for.body.i.i.i31 %indvars.iv.next.i.i.i37 = add nsw i64 %indvars.iv.i.i.i32, 1 - %308 = load i32, ptr %end.i.i.i, align 4 - %309 = sext i32 %308 to i64 - %cmp5.i.i.i = icmp slt i64 %indvars.iv.next.i.i.i37, %309 + %306 = load i32, ptr %end.i.i.i, align 4 + %307 = sext i32 %306 to i64 + %cmp5.i.i.i = icmp slt i64 %indvars.iv.next.i.i.i37, %307 br i1 %cmp5.i.i.i, label %for.body.i.i.i31, label %for.inc.loopexit.i.i, !llvm.loop !36 for.inc.loopexit.i.i: ; preds = %.noexc.i.i36 @@ -2517,16 +2515,16 @@ for.inc.loopexit.i.i: ; preds = %.noexc.i.i36 br label %for.inc.i.i26 for.inc.i.i26: ; preds = %for.inc.loopexit.i.i, %if.then.i.i77.i, %invoke.cont15.i.i - %310 = phi i32 [ %.pre.i.i38, %for.inc.loopexit.i.i ], [ %280, %if.then.i.i77.i ], [ %280, %invoke.cont15.i.i ] + %308 = phi i32 [ %.pre.i.i38, %for.inc.loopexit.i.i ], [ %278, %if.then.i.i77.i ], [ %278, %invoke.cont15.i.i ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %pos0.i.i.i) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %pos1.i.i.i) %indvars.iv.next.i.i27 = add nsw i64 %indvars.iv.i.i24, 1 - %311 = sext i32 %310 to i64 - %cmp6.i.i28 = icmp slt i64 %indvars.iv.next.i.i27, %311 + %309 = sext i32 %308 to i64 + %cmp6.i.i28 = icmp slt i64 %indvars.iv.next.i.i27, %309 br i1 %cmp6.i.i28, label %invoke.cont15.i.i, label %for.inc60.i, !llvm.loop !37 lpad.i.i35: ; preds = %for.body.i.i.i31 - %312 = landingpad { ptr, i32 } + %310 = landingpad { ptr, i32 } cleanup call void @_ZN14CProfileSampleD1Ev(ptr noundef nonnull align 1 dereferenceable(1) %__profile.i.i6) #11 br label %common.resume @@ -2548,14 +2546,14 @@ if.else: ; preds = %entry call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %__profile.i62) call void @_ZN14CProfileSampleC1EPKc(ptr noundef nonnull align 1 dereferenceable(1) %__profile.i62, ptr noundef nonnull @.str.17) %m_size.i.i.i63 = getelementptr inbounds %class.btAlignedObjectArray, ptr %this, i64 0, i32 2 - %313 = load i32, ptr %m_size.i.i.i63, align 4 - %cmp3.i.i = icmp slt i32 %313, %0 + %311 = load i32, ptr %m_size.i.i.i63, align 4 + %cmp3.i.i = icmp slt i32 %311, %0 br i1 %cmp3.i.i, label %if.then4.i.i, label %_ZN20btAlignedObjectArrayIiE6resizeEiRKi.exit.i if.then4.i.i: ; preds = %if.else %m_capacity.i.i.i.i = getelementptr inbounds %class.btAlignedObjectArray, ptr %this, i64 0, i32 3 - %314 = load i32, ptr %m_capacity.i.i.i.i, align 8 - %cmp.i.i.i83 = icmp slt i32 %314, %0 + %312 = load i32, ptr %m_capacity.i.i.i.i, align 8 + %cmp.i.i.i83 = icmp slt i32 %312, %0 br i1 %cmp.i.i.i83, label %if.then.i.i.i89, label %for.body8.lr.ph.i.i if.then.i.i.i89: ; preds = %if.then4.i.i @@ -2573,42 +2571,42 @@ call.i.i.i.i.noexc.i93: ; preds = %if.then.i.i.i.i91 br label %_ZN20btAlignedObjectArrayIiE8allocateEi.exit.i.i.i95 _ZN20btAlignedObjectArrayIiE8allocateEi.exit.i.i.i95: ; preds = %call.i.i.i.i.noexc.i93, %if.then.i.i.i89 - %315 = phi i32 [ %.pre.i.i94, %call.i.i.i.i.noexc.i93 ], [ %313, %if.then.i.i.i89 ] + %313 = phi i32 [ %.pre.i.i94, %call.i.i.i.i.noexc.i93 ], [ %311, %if.then.i.i.i89 ] %retval.0.i.i.i.i96 = phi ptr [ %call.i.i.i.i16.i, %call.i.i.i.i.noexc.i93 ], [ null, %if.then.i.i.i89 ] - %cmp4.i.i.i.i97 = icmp sgt i32 %315, 0 + %cmp4.i.i.i.i97 = icmp sgt i32 %313, 0 br i1 %cmp4.i.i.i.i97, label %for.body.lr.ph.i.i.i.i106, label %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i.i98 for.body.lr.ph.i.i.i.i106: ; preds = %_ZN20btAlignedObjectArrayIiE8allocateEi.exit.i.i.i95 %m_data.i.i.i.i107 = getelementptr inbounds %class.btAlignedObjectArray, ptr %this, i64 0, i32 5 - %wide.trip.count.i.i.i.i108 = zext nneg i32 %315 to i64 + %wide.trip.count.i.i.i.i108 = zext nneg i32 %313 to i64 br label %for.body.i.i.i.i109 for.body.i.i.i.i109: ; preds = %for.body.i.i.i.i109, %for.body.lr.ph.i.i.i.i106 %indvars.iv.i.i.i.i110 = phi i64 [ 0, %for.body.lr.ph.i.i.i.i106 ], [ %indvars.iv.next.i.i.i.i113, %for.body.i.i.i.i109 ] %arrayidx.i.i.i.i111 = getelementptr inbounds i32, ptr %retval.0.i.i.i.i96, i64 %indvars.iv.i.i.i.i110 - %316 = load ptr, ptr %m_data.i.i.i.i107, align 8 - %arrayidx3.i.i.i.i112 = getelementptr inbounds i32, ptr %316, i64 %indvars.iv.i.i.i.i110 - %317 = load i32, ptr %arrayidx3.i.i.i.i112, align 4 - store i32 %317, ptr %arrayidx.i.i.i.i111, align 4 + %314 = load ptr, ptr %m_data.i.i.i.i107, align 8 + %arrayidx3.i.i.i.i112 = getelementptr inbounds i32, ptr %314, i64 %indvars.iv.i.i.i.i110 + %315 = load i32, ptr %arrayidx3.i.i.i.i112, align 4 + store i32 %315, ptr %arrayidx.i.i.i.i111, align 4 %indvars.iv.next.i.i.i.i113 = add nuw nsw i64 %indvars.iv.i.i.i.i110, 1 %exitcond.not.i.i.i.i114 = icmp eq i64 %indvars.iv.next.i.i.i.i113, %wide.trip.count.i.i.i.i108 br i1 %exitcond.not.i.i.i.i114, label %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i.i98, label %for.body.i.i.i.i109, !llvm.loop !28 _ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i.i98: ; preds = %for.body.i.i.i.i109, %_ZN20btAlignedObjectArrayIiE8allocateEi.exit.i.i.i95 %m_data.i5.i.i.i99 = getelementptr inbounds %class.btAlignedObjectArray, ptr %this, i64 0, i32 5 - %318 = load ptr, ptr %m_data.i5.i.i.i99, align 8 - %tobool.not.i6.i.i.i100 = icmp eq ptr %318, null + %316 = load ptr, ptr %m_data.i5.i.i.i99, align 8 + %tobool.not.i6.i.i.i100 = icmp eq ptr %316, null br i1 %tobool.not.i6.i.i.i100, label %if.end.i.i, label %if.then.i7.i.i.i101 if.then.i7.i.i.i101: ; preds = %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i.i98 %m_ownsMemory.i.i.i.i102 = getelementptr inbounds %class.btAlignedObjectArray, ptr %this, i64 0, i32 6 - %319 = load i8, ptr %m_ownsMemory.i.i.i.i102, align 8 - %320 = and i8 %319, 1 - %tobool2.not.i.i.i.i103 = icmp eq i8 %320, 0 + %317 = load i8, ptr %m_ownsMemory.i.i.i.i102, align 8 + %318 = and i8 %317, 1 + %tobool2.not.i.i.i.i103 = icmp eq i8 %318, 0 br i1 %tobool2.not.i.i.i.i103, label %if.end.i.i, label %if.then3.i.i.i.i104 if.then3.i.i.i.i104: ; preds = %if.then.i7.i.i.i101 - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %318) + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %316) to label %if.end.i.i unwind label %lpad.i67 if.end.i.i: ; preds = %if.then3.i.i.i.i104, %if.then.i7.i.i.i101, %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i.i98 @@ -2620,14 +2618,14 @@ if.end.i.i: ; preds = %if.then3.i.i.i.i104 for.body8.lr.ph.i.i: ; preds = %if.end.i.i, %if.then4.i.i %m_data9.i.i = getelementptr inbounds %class.btAlignedObjectArray, ptr %this, i64 0, i32 5 - %321 = sext i32 %313 to i64 + %319 = sext i32 %311 to i64 %wide.trip.count.i.i84 = sext i32 %0 to i64 br label %for.body8.i.i for.body8.i.i: ; preds = %for.body8.i.i, %for.body8.lr.ph.i.i - %indvars.iv.i.i85 = phi i64 [ %321, %for.body8.lr.ph.i.i ], [ %indvars.iv.next.i.i87, %for.body8.i.i ] - %322 = load ptr, ptr %m_data9.i.i, align 8 - %arrayidx11.i.i86 = getelementptr inbounds i32, ptr %322, i64 %indvars.iv.i.i85 + %indvars.iv.i.i85 = phi i64 [ %319, %for.body8.lr.ph.i.i ], [ %indvars.iv.next.i.i87, %for.body8.i.i ] + %320 = load ptr, ptr %m_data9.i.i, align 8 + %arrayidx11.i.i86 = getelementptr inbounds i32, ptr %320, i64 %indvars.iv.i.i85 store i32 0, ptr %arrayidx11.i.i86, align 4 %indvars.iv.next.i.i87 = add nsw i64 %indvars.iv.i.i85, 1 %exitcond.not.i.i88 = icmp eq i64 %indvars.iv.next.i.i87, %wide.trip.count.i.i84 @@ -2645,46 +2643,46 @@ for.body.lr.ph.i76: ; preds = %_ZN20btAlignedObjec for.body.i79: ; preds = %for.body.i79, %for.body.lr.ph.i76 %indvars.iv.i80 = phi i64 [ 0, %for.body.lr.ph.i76 ], [ %indvars.iv.next.i81, %for.body.i79 ] - %323 = load ptr, ptr %m_data.i.i77, align 8 - %arrayidx.i.i = getelementptr inbounds i32, ptr %323, i64 %indvars.iv.i80 - %324 = trunc i64 %indvars.iv.i80 to i32 - store i32 %324, ptr %arrayidx.i.i, align 4 + %321 = load ptr, ptr %m_data.i.i77, align 8 + %arrayidx.i.i = getelementptr inbounds i32, ptr %321, i64 %indvars.iv.i80 + %322 = trunc i64 %indvars.iv.i80 to i32 + store i32 %322, ptr %arrayidx.i.i, align 4 %indvars.iv.next.i81 = add nuw nsw i64 %indvars.iv.i80, 1 %exitcond.not.i82 = icmp eq i64 %indvars.iv.next.i81, %wide.trip.count.i78 br i1 %exitcond.not.i82, label %for.end.i64, label %for.body.i79, !llvm.loop !40 lpad.i67: ; preds = %if.then3.i.i.i278.i, %if.then.i.i.i267.i, %if.then3.i.i.i236.i, %if.then.i.i.i223.i, %if.then3.i.i.i191.i, %if.then.i.i.i178.i, %if.then3.i.i.i147.i, %if.then.i.i.i135.i, %if.then3.i.i.i113.i, %if.then3.i.i.i87.i, %if.then3.i.i.i57.i, %if.then3.i.i.i30.i, %if.then3.i.i.i.i104, %if.then.i.i.i.i91 - %325 = landingpad { ptr, i32 } + %323 = landingpad { ptr, i32 } cleanup br label %common.resume for.end.i64: ; preds = %for.body.i79, %_ZN20btAlignedObjectArrayIiE6resizeEiRKi.exit.i %m_size.i.i17.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 1, i32 2 - %326 = load i32, ptr %m_size.i.i17.i, align 4 - %cmp.i18.i = icmp slt i32 %326, 0 + %324 = load i32, ptr %m_size.i.i17.i, align 4 + %cmp.i18.i = icmp slt i32 %324, 0 br i1 %cmp.i18.i, label %if.then.i.i74, label %invoke.cont3.i if.then.i.i74: ; preds = %for.end.i64 %m_capacity.i.i.i20.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 1, i32 3 - %327 = load i32, ptr %m_capacity.i.i.i20.i, align 8 - %cmp.i.i21.i75 = icmp slt i32 %327, 0 + %325 = load i32, ptr %m_capacity.i.i.i20.i, align 8 + %cmp.i.i21.i75 = icmp slt i32 %325, 0 br i1 %cmp.i.i21.i75, label %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i.i, label %invoke.cont3.i _ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i.i: ; preds = %if.then.i.i74 %m_data.i5.i.i25.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 1, i32 5 - %328 = load ptr, ptr %m_data.i5.i.i25.i, align 8 - %tobool.not.i6.i.i26.i = icmp eq ptr %328, null + %326 = load ptr, ptr %m_data.i5.i.i25.i, align 8 + %tobool.not.i6.i.i26.i = icmp eq ptr %326, null br i1 %tobool.not.i6.i.i26.i, label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i.i, label %if.then.i7.i.i27.i if.then.i7.i.i27.i: ; preds = %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i.i %m_ownsMemory.i.i.i28.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 1, i32 6 - %329 = load i8, ptr %m_ownsMemory.i.i.i28.i, align 8 - %330 = and i8 %329, 1 - %tobool2.not.i.i.i29.i = icmp eq i8 %330, 0 + %327 = load i8, ptr %m_ownsMemory.i.i.i28.i, align 8 + %328 = and i8 %327, 1 + %tobool2.not.i.i.i29.i = icmp eq i8 %328, 0 br i1 %tobool2.not.i.i.i29.i, label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i.i, label %if.then3.i.i.i30.i if.then3.i.i.i30.i: ; preds = %if.then.i7.i.i27.i - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %328) + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %326) to label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i.i unwind label %lpad.i67 _ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i.i: ; preds = %if.then3.i.i.i30.i, %if.then.i7.i.i27.i, %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i.i @@ -2697,31 +2695,31 @@ _ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i invoke.cont3.i: ; preds = %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i.i, %if.then.i.i74, %for.end.i64 store i32 0, ptr %m_size.i.i17.i, align 4 %m_size.i.i42.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 2, i32 2 - %331 = load i32, ptr %m_size.i.i42.i, align 4 - %cmp.i43.i = icmp slt i32 %331, 0 + %329 = load i32, ptr %m_size.i.i42.i, align 4 + %cmp.i43.i = icmp slt i32 %329, 0 br i1 %cmp.i43.i, label %if.then.i45.i, label %invoke.cont4.i if.then.i45.i: ; preds = %invoke.cont3.i %m_capacity.i.i.i46.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 2, i32 3 - %332 = load i32, ptr %m_capacity.i.i.i46.i, align 8 - %cmp.i.i47.i = icmp slt i32 %332, 0 + %330 = load i32, ptr %m_capacity.i.i.i46.i, align 8 + %cmp.i.i47.i = icmp slt i32 %330, 0 br i1 %cmp.i.i47.i, label %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i51.i, label %invoke.cont4.i _ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i51.i: ; preds = %if.then.i45.i %m_data.i5.i.i52.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 2, i32 5 - %333 = load ptr, ptr %m_data.i5.i.i52.i, align 8 - %tobool.not.i6.i.i53.i = icmp eq ptr %333, null + %331 = load ptr, ptr %m_data.i5.i.i52.i, align 8 + %tobool.not.i6.i.i53.i = icmp eq ptr %331, null br i1 %tobool.not.i6.i.i53.i, label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i58.i, label %if.then.i7.i.i54.i if.then.i7.i.i54.i: ; preds = %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i51.i %m_ownsMemory.i.i.i55.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 2, i32 6 - %334 = load i8, ptr %m_ownsMemory.i.i.i55.i, align 8 - %335 = and i8 %334, 1 - %tobool2.not.i.i.i56.i = icmp eq i8 %335, 0 + %332 = load i8, ptr %m_ownsMemory.i.i.i55.i, align 8 + %333 = and i8 %332, 1 + %tobool2.not.i.i.i56.i = icmp eq i8 %333, 0 br i1 %tobool2.not.i.i.i56.i, label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i58.i, label %if.then3.i.i.i57.i if.then3.i.i.i57.i: ; preds = %if.then.i7.i.i54.i - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %333) + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %331) to label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i58.i unwind label %lpad.i67 _ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i58.i: ; preds = %if.then3.i.i.i57.i, %if.then.i7.i.i54.i, %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i51.i @@ -2734,31 +2732,31 @@ _ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i invoke.cont4.i: ; preds = %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i58.i, %if.then.i45.i, %invoke.cont3.i store i32 0, ptr %m_size.i.i42.i, align 4 %m_size.i.i71.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 4, i32 2 - %336 = load i32, ptr %m_size.i.i71.i, align 4 - %cmp.i72.i = icmp slt i32 %336, 0 + %334 = load i32, ptr %m_size.i.i71.i, align 4 + %cmp.i72.i = icmp slt i32 %334, 0 br i1 %cmp.i72.i, label %if.then.i74.i, label %invoke.cont5.i if.then.i74.i: ; preds = %invoke.cont4.i %m_capacity.i.i.i75.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 4, i32 3 - %337 = load i32, ptr %m_capacity.i.i.i75.i, align 8 - %cmp.i.i76.i = icmp slt i32 %337, 0 + %335 = load i32, ptr %m_capacity.i.i.i75.i, align 8 + %cmp.i.i76.i = icmp slt i32 %335, 0 br i1 %cmp.i.i76.i, label %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i81.i, label %invoke.cont5.i _ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i81.i: ; preds = %if.then.i74.i %m_data.i5.i.i82.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 4, i32 5 - %338 = load ptr, ptr %m_data.i5.i.i82.i, align 8 - %tobool.not.i6.i.i83.i = icmp eq ptr %338, null + %336 = load ptr, ptr %m_data.i5.i.i82.i, align 8 + %tobool.not.i6.i.i83.i = icmp eq ptr %336, null br i1 %tobool.not.i6.i.i83.i, label %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i.i73, label %if.then.i7.i.i84.i if.then.i7.i.i84.i: ; preds = %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i81.i %m_ownsMemory.i.i.i85.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 4, i32 6 - %339 = load i8, ptr %m_ownsMemory.i.i.i85.i, align 8 - %340 = and i8 %339, 1 - %tobool2.not.i.i.i86.i = icmp eq i8 %340, 0 + %337 = load i8, ptr %m_ownsMemory.i.i.i85.i, align 8 + %338 = and i8 %337, 1 + %tobool2.not.i.i.i86.i = icmp eq i8 %338, 0 br i1 %tobool2.not.i.i.i86.i, label %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i.i73, label %if.then3.i.i.i87.i if.then3.i.i.i87.i: ; preds = %if.then.i7.i.i84.i - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %338) + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %336) to label %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i.i73 unwind label %lpad.i67 _ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i.i73: ; preds = %if.then3.i.i.i87.i, %if.then.i7.i.i84.i, %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i81.i @@ -2771,31 +2769,31 @@ _ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i.i73: ; preds = %if.then3.i.i invoke.cont5.i: ; preds = %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i.i73, %if.then.i74.i, %invoke.cont4.i store i32 0, ptr %m_size.i.i71.i, align 4 %m_size.i.i99.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 3, i32 2 - %341 = load i32, ptr %m_size.i.i99.i, align 4 - %cmp.i100.i = icmp slt i32 %341, 0 + %339 = load i32, ptr %m_size.i.i99.i, align 4 + %cmp.i100.i = icmp slt i32 %339, 0 br i1 %cmp.i100.i, label %if.then.i102.i, label %invoke.cont6.i if.then.i102.i: ; preds = %invoke.cont5.i %m_capacity.i.i.i103.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 3, i32 3 - %342 = load i32, ptr %m_capacity.i.i.i103.i, align 8 - %cmp.i.i104.i = icmp slt i32 %342, 0 + %340 = load i32, ptr %m_capacity.i.i.i103.i, align 8 + %cmp.i.i104.i = icmp slt i32 %340, 0 br i1 %cmp.i.i104.i, label %_ZNK20btAlignedObjectArrayIcE4copyEiiPc.exit.i.i.i71, label %invoke.cont6.i _ZNK20btAlignedObjectArrayIcE4copyEiiPc.exit.i.i.i71: ; preds = %if.then.i102.i %m_data.i5.i.i108.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 3, i32 5 - %343 = load ptr, ptr %m_data.i5.i.i108.i, align 8 - %tobool.not.i6.i.i109.i = icmp eq ptr %343, null + %341 = load ptr, ptr %m_data.i5.i.i108.i, align 8 + %tobool.not.i6.i.i109.i = icmp eq ptr %341, null br i1 %tobool.not.i6.i.i109.i, label %_ZN20btAlignedObjectArrayIcE10deallocateEv.exit.i.i.i72, label %if.then.i7.i.i110.i if.then.i7.i.i110.i: ; preds = %_ZNK20btAlignedObjectArrayIcE4copyEiiPc.exit.i.i.i71 %m_ownsMemory.i.i.i111.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 3, i32 6 - %344 = load i8, ptr %m_ownsMemory.i.i.i111.i, align 8 - %345 = and i8 %344, 1 - %tobool2.not.i.i.i112.i = icmp eq i8 %345, 0 + %342 = load i8, ptr %m_ownsMemory.i.i.i111.i, align 8 + %343 = and i8 %342, 1 + %tobool2.not.i.i.i112.i = icmp eq i8 %343, 0 br i1 %tobool2.not.i.i.i112.i, label %_ZN20btAlignedObjectArrayIcE10deallocateEv.exit.i.i.i72, label %if.then3.i.i.i113.i if.then3.i.i.i113.i: ; preds = %if.then.i7.i.i110.i - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %343) + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %341) to label %_ZN20btAlignedObjectArrayIcE10deallocateEv.exit.i.i.i72 unwind label %lpad.i67 _ZN20btAlignedObjectArrayIcE10deallocateEv.exit.i.i.i72: ; preds = %if.then3.i.i.i113.i, %if.then.i7.i.i110.i, %_ZNK20btAlignedObjectArrayIcE4copyEiiPc.exit.i.i.i71 @@ -2810,17 +2808,17 @@ invoke.cont6.i: ; preds = %_ZN20btAlignedObjec br i1 %cmp294.i, label %if.then.i66, label %_ZL16setupSingleBatchP20btBatchedConstraintsi.exit if.then.i66: ; preds = %invoke.cont6.i - %346 = load i32, ptr %m_size.i.i17.i, align 4 + %344 = load i32, ptr %m_size.i.i17.i, align 4 %m_capacity.i.i.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 1, i32 3 - %347 = load i32, ptr %m_capacity.i.i.i, align 8 - %cmp.i126.i = icmp eq i32 %346, %347 + %345 = load i32, ptr %m_capacity.i.i.i, align 8 + %cmp.i126.i = icmp eq i32 %344, %345 br i1 %cmp.i126.i, label %if.then.i131.i, label %invoke.cont11.i if.then.i131.i: ; preds = %if.then.i66 - %tobool.not.i.i.i69 = icmp eq i32 %346, 0 - %mul.i.i.i70 = shl nsw i32 %346, 1 + %tobool.not.i.i.i69 = icmp eq i32 %344, 0 + %mul.i.i.i70 = shl nsw i32 %344, 1 %cond.i.i.i = select i1 %tobool.not.i.i.i69, i32 1, i32 %mul.i.i.i70 - %cmp.i.i132.i = icmp slt i32 %346, %cond.i.i.i + %cmp.i.i132.i = icmp slt i32 %344, %cond.i.i.i br i1 %cmp.i.i132.i, label %if.then.i.i133.i, label %invoke.cont11.i if.then.i.i133.i: ; preds = %if.then.i131.i @@ -2838,42 +2836,42 @@ call.i.i.i.i.noexc159.i: ; preds = %if.then.i.i.i135.i br label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE8allocateEi.exit.i.i.i _ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE8allocateEi.exit.i.i.i: ; preds = %call.i.i.i.i.noexc159.i, %if.then.i.i133.i - %348 = phi i32 [ %.pre.i138.i, %call.i.i.i.i.noexc159.i ], [ %346, %if.then.i.i133.i ] + %346 = phi i32 [ %.pre.i138.i, %call.i.i.i.i.noexc159.i ], [ %344, %if.then.i.i133.i ] %retval.0.i.i.i139.i = phi ptr [ %call.i.i.i.i160.i, %call.i.i.i.i.noexc159.i ], [ null, %if.then.i.i133.i ] - %cmp4.i.i.i140.i = icmp sgt i32 %348, 0 + %cmp4.i.i.i140.i = icmp sgt i32 %346, 0 br i1 %cmp4.i.i.i140.i, label %for.body.lr.ph.i.i.i150.i, label %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i141.i for.body.lr.ph.i.i.i150.i: ; preds = %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE8allocateEi.exit.i.i.i %m_data.i.i.i151.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 1, i32 5 - %wide.trip.count.i.i.i152.i = zext nneg i32 %348 to i64 + %wide.trip.count.i.i.i152.i = zext nneg i32 %346 to i64 br label %for.body.i.i.i153.i for.body.i.i.i153.i: ; preds = %for.body.i.i.i153.i, %for.body.lr.ph.i.i.i150.i %indvars.iv.i.i.i154.i = phi i64 [ 0, %for.body.lr.ph.i.i.i150.i ], [ %indvars.iv.next.i.i.i157.i, %for.body.i.i.i153.i ] %arrayidx.i.i.i155.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %retval.0.i.i.i139.i, i64 %indvars.iv.i.i.i154.i - %349 = load ptr, ptr %m_data.i.i.i151.i, align 8 - %arrayidx3.i.i.i156.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %349, i64 %indvars.iv.i.i.i154.i - %350 = load i64, ptr %arrayidx3.i.i.i156.i, align 4 - store i64 %350, ptr %arrayidx.i.i.i155.i, align 4 + %347 = load ptr, ptr %m_data.i.i.i151.i, align 8 + %arrayidx3.i.i.i156.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %347, i64 %indvars.iv.i.i.i154.i + %348 = load i64, ptr %arrayidx3.i.i.i156.i, align 4 + store i64 %348, ptr %arrayidx.i.i.i155.i, align 4 %indvars.iv.next.i.i.i157.i = add nuw nsw i64 %indvars.iv.i.i.i154.i, 1 %exitcond.not.i.i.i158.i = icmp eq i64 %indvars.iv.next.i.i.i157.i, %wide.trip.count.i.i.i152.i br i1 %exitcond.not.i.i.i158.i, label %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i141.i, label %for.body.i.i.i153.i, !llvm.loop !29 _ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i141.i: ; preds = %for.body.i.i.i153.i, %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE8allocateEi.exit.i.i.i %m_data.i5.i.i142.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 1, i32 5 - %351 = load ptr, ptr %m_data.i5.i.i142.i, align 8 - %tobool.not.i6.i.i143.i = icmp eq ptr %351, null + %349 = load ptr, ptr %m_data.i5.i.i142.i, align 8 + %tobool.not.i6.i.i143.i = icmp eq ptr %349, null br i1 %tobool.not.i6.i.i143.i, label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i148.i, label %if.then.i7.i.i144.i if.then.i7.i.i144.i: ; preds = %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i141.i %m_ownsMemory.i.i.i145.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 1, i32 6 - %352 = load i8, ptr %m_ownsMemory.i.i.i145.i, align 8 - %353 = and i8 %352, 1 - %tobool2.not.i.i.i146.i = icmp eq i8 %353, 0 + %350 = load i8, ptr %m_ownsMemory.i.i.i145.i, align 8 + %351 = and i8 %350, 1 + %tobool2.not.i.i.i146.i = icmp eq i8 %351, 0 br i1 %tobool2.not.i.i.i146.i, label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i148.i, label %if.then3.i.i.i147.i if.then3.i.i.i147.i: ; preds = %if.then.i7.i.i144.i - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %351) + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %349) to label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i148.i unwind label %lpad.i67 _ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i148.i: ; preds = %if.then3.i.i.i147.i, %if.then.i7.i.i144.i, %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i141.i @@ -2885,28 +2883,28 @@ _ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i br label %invoke.cont11.i invoke.cont11.i: ; preds = %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i148.i, %if.then.i131.i, %if.then.i66 - %354 = phi i32 [ %.pre2.i.i, %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i148.i ], [ %346, %if.then.i131.i ], [ %346, %if.then.i66 ] + %352 = phi i32 [ %.pre2.i.i, %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i148.i ], [ %344, %if.then.i131.i ], [ %344, %if.then.i66 ] %m_data.i128.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 1, i32 5 - %355 = load ptr, ptr %m_data.i128.i, align 8 - %idxprom.i129.i = sext i32 %354 to i64 - %arrayidx.i130.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %355, i64 %idxprom.i129.i + %353 = load ptr, ptr %m_data.i128.i, align 8 + %idxprom.i129.i = sext i32 %352 to i64 + %arrayidx.i130.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %353, i64 %idxprom.i129.i %ref.tmp9.sroa.2.0.insert.ext.i = zext nneg i32 %0 to i64 %ref.tmp9.sroa.2.0.insert.shift.i = shl nuw nsw i64 %ref.tmp9.sroa.2.0.insert.ext.i, 32 store i64 %ref.tmp9.sroa.2.0.insert.shift.i, ptr %arrayidx.i130.i, align 4 - %356 = load i32, ptr %m_size.i.i17.i, align 4 - %inc.i.i = add nsw i32 %356, 1 + %354 = load i32, ptr %m_size.i.i17.i, align 4 + %inc.i.i = add nsw i32 %354, 1 store i32 %inc.i.i, ptr %m_size.i.i17.i, align 4 - %357 = load i32, ptr %m_size.i.i42.i, align 4 + %355 = load i32, ptr %m_size.i.i42.i, align 4 %m_capacity.i.i164.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 2, i32 3 - %358 = load i32, ptr %m_capacity.i.i164.i, align 8 - %cmp.i165.i = icmp eq i32 %357, %358 + %356 = load i32, ptr %m_capacity.i.i164.i, align 8 + %cmp.i165.i = icmp eq i32 %355, %356 br i1 %cmp.i165.i, label %if.then.i171.i, label %invoke.cont15.i if.then.i171.i: ; preds = %invoke.cont11.i - %tobool.not.i.i172.i = icmp eq i32 %357, 0 - %mul.i.i173.i = shl nsw i32 %357, 1 + %tobool.not.i.i172.i = icmp eq i32 %355, 0 + %mul.i.i173.i = shl nsw i32 %355, 1 %cond.i.i174.i = select i1 %tobool.not.i.i172.i, i32 1, i32 %mul.i.i173.i - %cmp.i.i175.i = icmp slt i32 %357, %cond.i.i174.i + %cmp.i.i175.i = icmp slt i32 %355, %cond.i.i174.i br i1 %cmp.i.i175.i, label %if.then.i.i176.i, label %invoke.cont15.i if.then.i.i176.i: ; preds = %if.then.i171.i @@ -2924,42 +2922,42 @@ call.i.i.i.i.noexc204.i: ; preds = %if.then.i.i.i178.i br label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE8allocateEi.exit.i.i182.i _ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE8allocateEi.exit.i.i182.i: ; preds = %call.i.i.i.i.noexc204.i, %if.then.i.i176.i - %359 = phi i32 [ %.pre.i181.i, %call.i.i.i.i.noexc204.i ], [ %357, %if.then.i.i176.i ] + %357 = phi i32 [ %.pre.i181.i, %call.i.i.i.i.noexc204.i ], [ %355, %if.then.i.i176.i ] %retval.0.i.i.i183.i = phi ptr [ %call.i.i.i.i205.i, %call.i.i.i.i.noexc204.i ], [ null, %if.then.i.i176.i ] - %cmp4.i.i.i184.i = icmp sgt i32 %359, 0 + %cmp4.i.i.i184.i = icmp sgt i32 %357, 0 br i1 %cmp4.i.i.i184.i, label %for.body.lr.ph.i.i.i195.i, label %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i185.i for.body.lr.ph.i.i.i195.i: ; preds = %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE8allocateEi.exit.i.i182.i %m_data.i.i.i196.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 2, i32 5 - %wide.trip.count.i.i.i197.i = zext nneg i32 %359 to i64 + %wide.trip.count.i.i.i197.i = zext nneg i32 %357 to i64 br label %for.body.i.i.i198.i for.body.i.i.i198.i: ; preds = %for.body.i.i.i198.i, %for.body.lr.ph.i.i.i195.i %indvars.iv.i.i.i199.i = phi i64 [ 0, %for.body.lr.ph.i.i.i195.i ], [ %indvars.iv.next.i.i.i202.i, %for.body.i.i.i198.i ] %arrayidx.i.i.i200.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %retval.0.i.i.i183.i, i64 %indvars.iv.i.i.i199.i - %360 = load ptr, ptr %m_data.i.i.i196.i, align 8 - %arrayidx3.i.i.i201.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %360, i64 %indvars.iv.i.i.i199.i - %361 = load i64, ptr %arrayidx3.i.i.i201.i, align 4 - store i64 %361, ptr %arrayidx.i.i.i200.i, align 4 + %358 = load ptr, ptr %m_data.i.i.i196.i, align 8 + %arrayidx3.i.i.i201.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %358, i64 %indvars.iv.i.i.i199.i + %359 = load i64, ptr %arrayidx3.i.i.i201.i, align 4 + store i64 %359, ptr %arrayidx.i.i.i200.i, align 4 %indvars.iv.next.i.i.i202.i = add nuw nsw i64 %indvars.iv.i.i.i199.i, 1 %exitcond.not.i.i.i203.i = icmp eq i64 %indvars.iv.next.i.i.i202.i, %wide.trip.count.i.i.i197.i br i1 %exitcond.not.i.i.i203.i, label %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i185.i, label %for.body.i.i.i198.i, !llvm.loop !29 _ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i185.i: ; preds = %for.body.i.i.i198.i, %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE8allocateEi.exit.i.i182.i %m_data.i5.i.i186.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 2, i32 5 - %362 = load ptr, ptr %m_data.i5.i.i186.i, align 8 - %tobool.not.i6.i.i187.i = icmp eq ptr %362, null + %360 = load ptr, ptr %m_data.i5.i.i186.i, align 8 + %tobool.not.i6.i.i187.i = icmp eq ptr %360, null br i1 %tobool.not.i6.i.i187.i, label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i192.i, label %if.then.i7.i.i188.i if.then.i7.i.i188.i: ; preds = %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i185.i %m_ownsMemory.i.i.i189.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 2, i32 6 - %363 = load i8, ptr %m_ownsMemory.i.i.i189.i, align 8 - %364 = and i8 %363, 1 - %tobool2.not.i.i.i190.i = icmp eq i8 %364, 0 + %361 = load i8, ptr %m_ownsMemory.i.i.i189.i, align 8 + %362 = and i8 %361, 1 + %tobool2.not.i.i.i190.i = icmp eq i8 %362, 0 br i1 %tobool2.not.i.i.i190.i, label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i192.i, label %if.then3.i.i.i191.i if.then3.i.i.i191.i: ; preds = %if.then.i7.i.i188.i - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %362) + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %360) to label %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i192.i unwind label %lpad.i67 _ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i192.i: ; preds = %if.then3.i.i.i191.i, %if.then.i7.i.i188.i, %_ZNK20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE4copyEiiPS1_.exit.i.i185.i @@ -2971,26 +2969,26 @@ _ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i br label %invoke.cont15.i invoke.cont15.i: ; preds = %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i192.i, %if.then.i171.i, %invoke.cont11.i - %365 = phi i32 [ %.pre2.i194.i, %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i192.i ], [ %357, %if.then.i171.i ], [ %357, %invoke.cont11.i ] + %363 = phi i32 [ %.pre2.i194.i, %_ZN20btAlignedObjectArrayIN20btBatchedConstraints5RangeEE10deallocateEv.exit.i.i192.i ], [ %355, %if.then.i171.i ], [ %355, %invoke.cont11.i ] %m_data.i167.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 2, i32 5 - %366 = load ptr, ptr %m_data.i167.i, align 8 - %idxprom.i168.i = sext i32 %365 to i64 - %arrayidx.i169.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %366, i64 %idxprom.i168.i + %364 = load ptr, ptr %m_data.i167.i, align 8 + %idxprom.i168.i = sext i32 %363 to i64 + %arrayidx.i169.i = getelementptr inbounds %"struct.btBatchedConstraints::Range", ptr %364, i64 %idxprom.i168.i store i64 4294967296, ptr %arrayidx.i169.i, align 4 - %367 = load i32, ptr %m_size.i.i42.i, align 4 - %inc.i170.i = add nsw i32 %367, 1 + %365 = load i32, ptr %m_size.i.i42.i, align 4 + %inc.i170.i = add nsw i32 %365, 1 store i32 %inc.i170.i, ptr %m_size.i.i42.i, align 4 - %368 = load i32, ptr %m_size.i.i71.i, align 4 + %366 = load i32, ptr %m_size.i.i71.i, align 4 %m_capacity.i.i209.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 4, i32 3 - %369 = load i32, ptr %m_capacity.i.i209.i, align 8 - %cmp.i210.i = icmp eq i32 %368, %369 + %367 = load i32, ptr %m_capacity.i.i209.i, align 8 + %cmp.i210.i = icmp eq i32 %366, %367 br i1 %cmp.i210.i, label %if.then.i216.i, label %invoke.cont18.i if.then.i216.i: ; preds = %invoke.cont15.i - %tobool.not.i.i217.i = icmp eq i32 %368, 0 - %mul.i.i218.i = shl nsw i32 %368, 1 + %tobool.not.i.i217.i = icmp eq i32 %366, 0 + %mul.i.i218.i = shl nsw i32 %366, 1 %cond.i.i219.i = select i1 %tobool.not.i.i217.i, i32 1, i32 %mul.i.i218.i - %cmp.i.i220.i = icmp slt i32 %368, %cond.i.i219.i + %cmp.i.i220.i = icmp slt i32 %366, %cond.i.i219.i br i1 %cmp.i.i220.i, label %if.then.i.i221.i, label %invoke.cont18.i if.then.i.i221.i: ; preds = %if.then.i216.i @@ -3008,42 +3006,42 @@ call.i.i.i.i.noexc249.i: ; preds = %if.then.i.i.i223.i br label %_ZN20btAlignedObjectArrayIiE8allocateEi.exit.i.i227.i _ZN20btAlignedObjectArrayIiE8allocateEi.exit.i.i227.i: ; preds = %call.i.i.i.i.noexc249.i, %if.then.i.i221.i - %370 = phi i32 [ %.pre.i226.i, %call.i.i.i.i.noexc249.i ], [ %368, %if.then.i.i221.i ] + %368 = phi i32 [ %.pre.i226.i, %call.i.i.i.i.noexc249.i ], [ %366, %if.then.i.i221.i ] %retval.0.i.i.i228.i = phi ptr [ %call.i.i.i.i250.i, %call.i.i.i.i.noexc249.i ], [ null, %if.then.i.i221.i ] - %cmp4.i.i.i229.i = icmp sgt i32 %370, 0 + %cmp4.i.i.i229.i = icmp sgt i32 %368, 0 br i1 %cmp4.i.i.i229.i, label %for.body.lr.ph.i.i.i240.i, label %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i230.i for.body.lr.ph.i.i.i240.i: ; preds = %_ZN20btAlignedObjectArrayIiE8allocateEi.exit.i.i227.i %m_data.i.i.i241.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 4, i32 5 - %wide.trip.count.i.i.i242.i = zext nneg i32 %370 to i64 + %wide.trip.count.i.i.i242.i = zext nneg i32 %368 to i64 br label %for.body.i.i.i243.i for.body.i.i.i243.i: ; preds = %for.body.i.i.i243.i, %for.body.lr.ph.i.i.i240.i %indvars.iv.i.i.i244.i = phi i64 [ 0, %for.body.lr.ph.i.i.i240.i ], [ %indvars.iv.next.i.i.i247.i, %for.body.i.i.i243.i ] %arrayidx.i.i.i245.i = getelementptr inbounds i32, ptr %retval.0.i.i.i228.i, i64 %indvars.iv.i.i.i244.i - %371 = load ptr, ptr %m_data.i.i.i241.i, align 8 - %arrayidx3.i.i.i246.i = getelementptr inbounds i32, ptr %371, i64 %indvars.iv.i.i.i244.i - %372 = load i32, ptr %arrayidx3.i.i.i246.i, align 4 - store i32 %372, ptr %arrayidx.i.i.i245.i, align 4 + %369 = load ptr, ptr %m_data.i.i.i241.i, align 8 + %arrayidx3.i.i.i246.i = getelementptr inbounds i32, ptr %369, i64 %indvars.iv.i.i.i244.i + %370 = load i32, ptr %arrayidx3.i.i.i246.i, align 4 + store i32 %370, ptr %arrayidx.i.i.i245.i, align 4 %indvars.iv.next.i.i.i247.i = add nuw nsw i64 %indvars.iv.i.i.i244.i, 1 %exitcond.not.i.i.i248.i = icmp eq i64 %indvars.iv.next.i.i.i247.i, %wide.trip.count.i.i.i242.i br i1 %exitcond.not.i.i.i248.i, label %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i230.i, label %for.body.i.i.i243.i, !llvm.loop !28 _ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i230.i: ; preds = %for.body.i.i.i243.i, %_ZN20btAlignedObjectArrayIiE8allocateEi.exit.i.i227.i %m_data.i5.i.i231.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 4, i32 5 - %373 = load ptr, ptr %m_data.i5.i.i231.i, align 8 - %tobool.not.i6.i.i232.i = icmp eq ptr %373, null + %371 = load ptr, ptr %m_data.i5.i.i231.i, align 8 + %tobool.not.i6.i.i232.i = icmp eq ptr %371, null br i1 %tobool.not.i6.i.i232.i, label %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i237.i, label %if.then.i7.i.i233.i if.then.i7.i.i233.i: ; preds = %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i230.i %m_ownsMemory.i.i.i234.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 4, i32 6 - %374 = load i8, ptr %m_ownsMemory.i.i.i234.i, align 8 - %375 = and i8 %374, 1 - %tobool2.not.i.i.i235.i = icmp eq i8 %375, 0 + %372 = load i8, ptr %m_ownsMemory.i.i.i234.i, align 8 + %373 = and i8 %372, 1 + %tobool2.not.i.i.i235.i = icmp eq i8 %373, 0 br i1 %tobool2.not.i.i.i235.i, label %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i237.i, label %if.then3.i.i.i236.i if.then3.i.i.i236.i: ; preds = %if.then.i7.i.i233.i - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %373) + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %371) to label %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i237.i unwind label %lpad.i67 _ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i237.i: ; preds = %if.then3.i.i.i236.i, %if.then.i7.i.i233.i, %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i230.i @@ -3055,26 +3053,26 @@ _ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i237.i: ; preds = %if.then3.i. br label %invoke.cont18.i invoke.cont18.i: ; preds = %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i237.i, %if.then.i216.i, %invoke.cont15.i - %376 = phi i32 [ %.pre2.i239.i, %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i237.i ], [ %368, %if.then.i216.i ], [ %368, %invoke.cont15.i ] + %374 = phi i32 [ %.pre2.i239.i, %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i237.i ], [ %366, %if.then.i216.i ], [ %366, %invoke.cont15.i ] %m_data.i212.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 4, i32 5 - %377 = load ptr, ptr %m_data.i212.i, align 8 - %idxprom.i213.i = sext i32 %376 to i64 - %arrayidx.i214.i = getelementptr inbounds i32, ptr %377, i64 %idxprom.i213.i + %375 = load ptr, ptr %m_data.i212.i, align 8 + %idxprom.i213.i = sext i32 %374 to i64 + %arrayidx.i214.i = getelementptr inbounds i32, ptr %375, i64 %idxprom.i213.i store i32 0, ptr %arrayidx.i214.i, align 4 - %378 = load i32, ptr %m_size.i.i71.i, align 4 - %inc.i215.i = add nsw i32 %378, 1 + %376 = load i32, ptr %m_size.i.i71.i, align 4 + %inc.i215.i = add nsw i32 %376, 1 store i32 %inc.i215.i, ptr %m_size.i.i71.i, align 4 - %379 = load i32, ptr %m_size.i.i99.i, align 4 + %377 = load i32, ptr %m_size.i.i99.i, align 4 %m_capacity.i.i253.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 3, i32 3 - %380 = load i32, ptr %m_capacity.i.i253.i, align 8 - %cmp.i254.i = icmp eq i32 %379, %380 + %378 = load i32, ptr %m_capacity.i.i253.i, align 8 + %cmp.i254.i = icmp eq i32 %377, %378 br i1 %cmp.i254.i, label %if.then.i260.i, label %_ZN20btAlignedObjectArrayIcE9push_backERKc.exit.i if.then.i260.i: ; preds = %invoke.cont18.i - %tobool.not.i.i261.i = icmp eq i32 %379, 0 - %mul.i.i262.i = shl nsw i32 %379, 1 + %tobool.not.i.i261.i = icmp eq i32 %377, 0 + %mul.i.i262.i = shl nsw i32 %377, 1 %cond.i.i263.i = select i1 %tobool.not.i.i261.i, i32 1, i32 %mul.i.i262.i - %cmp.i.i264.i = icmp slt i32 %379, %cond.i.i263.i + %cmp.i.i264.i = icmp slt i32 %377, %cond.i.i263.i br i1 %cmp.i.i264.i, label %if.then.i.i265.i, label %_ZN20btAlignedObjectArrayIcE9push_backERKc.exit.i if.then.i.i265.i: ; preds = %if.then.i260.i @@ -3091,42 +3089,42 @@ call.i.i.i.i.noexc291.i: ; preds = %if.then.i.i.i267.i br label %_ZN20btAlignedObjectArrayIcE8allocateEi.exit.i.i.i68 _ZN20btAlignedObjectArrayIcE8allocateEi.exit.i.i.i68: ; preds = %call.i.i.i.i.noexc291.i, %if.then.i.i265.i - %381 = phi i32 [ %.pre.i269.i, %call.i.i.i.i.noexc291.i ], [ %379, %if.then.i.i265.i ] + %379 = phi i32 [ %.pre.i269.i, %call.i.i.i.i.noexc291.i ], [ %377, %if.then.i.i265.i ] %retval.0.i.i.i270.i = phi ptr [ %call.i.i.i.i292.i, %call.i.i.i.i.noexc291.i ], [ null, %if.then.i.i265.i ] - %cmp4.i.i.i271.i = icmp sgt i32 %381, 0 + %cmp4.i.i.i271.i = icmp sgt i32 %379, 0 br i1 %cmp4.i.i.i271.i, label %for.body.lr.ph.i.i.i282.i, label %_ZNK20btAlignedObjectArrayIcE4copyEiiPc.exit.i.i272.i for.body.lr.ph.i.i.i282.i: ; preds = %_ZN20btAlignedObjectArrayIcE8allocateEi.exit.i.i.i68 %m_data.i.i.i283.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 3, i32 5 - %wide.trip.count.i.i.i284.i = zext nneg i32 %381 to i64 + %wide.trip.count.i.i.i284.i = zext nneg i32 %379 to i64 br label %for.body.i.i.i285.i for.body.i.i.i285.i: ; preds = %for.body.i.i.i285.i, %for.body.lr.ph.i.i.i282.i %indvars.iv.i.i.i286.i = phi i64 [ 0, %for.body.lr.ph.i.i.i282.i ], [ %indvars.iv.next.i.i.i289.i, %for.body.i.i.i285.i ] %arrayidx.i.i.i287.i = getelementptr inbounds i8, ptr %retval.0.i.i.i270.i, i64 %indvars.iv.i.i.i286.i - %382 = load ptr, ptr %m_data.i.i.i283.i, align 8 - %arrayidx3.i.i.i288.i = getelementptr inbounds i8, ptr %382, i64 %indvars.iv.i.i.i286.i - %383 = load i8, ptr %arrayidx3.i.i.i288.i, align 1 - store i8 %383, ptr %arrayidx.i.i.i287.i, align 1 + %380 = load ptr, ptr %m_data.i.i.i283.i, align 8 + %arrayidx3.i.i.i288.i = getelementptr inbounds i8, ptr %380, i64 %indvars.iv.i.i.i286.i + %381 = load i8, ptr %arrayidx3.i.i.i288.i, align 1 + store i8 %381, ptr %arrayidx.i.i.i287.i, align 1 %indvars.iv.next.i.i.i289.i = add nuw nsw i64 %indvars.iv.i.i.i286.i, 1 %exitcond.not.i.i.i290.i = icmp eq i64 %indvars.iv.next.i.i.i289.i, %wide.trip.count.i.i.i284.i br i1 %exitcond.not.i.i.i290.i, label %_ZNK20btAlignedObjectArrayIcE4copyEiiPc.exit.i.i272.i, label %for.body.i.i.i285.i, !llvm.loop !11 _ZNK20btAlignedObjectArrayIcE4copyEiiPc.exit.i.i272.i: ; preds = %for.body.i.i.i285.i, %_ZN20btAlignedObjectArrayIcE8allocateEi.exit.i.i.i68 %m_data.i5.i.i273.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 3, i32 5 - %384 = load ptr, ptr %m_data.i5.i.i273.i, align 8 - %tobool.not.i6.i.i274.i = icmp eq ptr %384, null + %382 = load ptr, ptr %m_data.i5.i.i273.i, align 8 + %tobool.not.i6.i.i274.i = icmp eq ptr %382, null br i1 %tobool.not.i6.i.i274.i, label %_ZN20btAlignedObjectArrayIcE10deallocateEv.exit.i.i279.i, label %if.then.i7.i.i275.i if.then.i7.i.i275.i: ; preds = %_ZNK20btAlignedObjectArrayIcE4copyEiiPc.exit.i.i272.i %m_ownsMemory.i.i.i276.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 3, i32 6 - %385 = load i8, ptr %m_ownsMemory.i.i.i276.i, align 8 - %386 = and i8 %385, 1 - %tobool2.not.i.i.i277.i = icmp eq i8 %386, 0 + %383 = load i8, ptr %m_ownsMemory.i.i.i276.i, align 8 + %384 = and i8 %383, 1 + %tobool2.not.i.i.i277.i = icmp eq i8 %384, 0 br i1 %tobool2.not.i.i.i277.i, label %_ZN20btAlignedObjectArrayIcE10deallocateEv.exit.i.i279.i, label %if.then3.i.i.i278.i if.then3.i.i.i278.i: ; preds = %if.then.i7.i.i275.i - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %384) + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %382) to label %_ZN20btAlignedObjectArrayIcE10deallocateEv.exit.i.i279.i unwind label %lpad.i67 _ZN20btAlignedObjectArrayIcE10deallocateEv.exit.i.i279.i: ; preds = %if.then3.i.i.i278.i, %if.then.i7.i.i275.i, %_ZNK20btAlignedObjectArrayIcE4copyEiiPc.exit.i.i272.i @@ -3138,14 +3136,14 @@ _ZN20btAlignedObjectArrayIcE10deallocateEv.exit.i.i279.i: ; preds = %if.then3.i. br label %_ZN20btAlignedObjectArrayIcE9push_backERKc.exit.i _ZN20btAlignedObjectArrayIcE9push_backERKc.exit.i: ; preds = %_ZN20btAlignedObjectArrayIcE10deallocateEv.exit.i.i279.i, %if.then.i260.i, %invoke.cont18.i - %387 = phi i32 [ %.pre2.i281.i, %_ZN20btAlignedObjectArrayIcE10deallocateEv.exit.i.i279.i ], [ %379, %if.then.i260.i ], [ %379, %invoke.cont18.i ] + %385 = phi i32 [ %.pre2.i281.i, %_ZN20btAlignedObjectArrayIcE10deallocateEv.exit.i.i279.i ], [ %377, %if.then.i260.i ], [ %377, %invoke.cont18.i ] %m_data.i256.i = getelementptr inbounds %struct.btBatchedConstraints, ptr %this, i64 0, i32 3, i32 5 - %388 = load ptr, ptr %m_data.i256.i, align 8 - %idxprom.i257.i = sext i32 %387 to i64 - %arrayidx.i258.i = getelementptr inbounds i8, ptr %388, i64 %idxprom.i257.i + %386 = load ptr, ptr %m_data.i256.i, align 8 + %idxprom.i257.i = sext i32 %385 to i64 + %arrayidx.i258.i = getelementptr inbounds i8, ptr %386, i64 %idxprom.i257.i store i8 1, ptr %arrayidx.i258.i, align 1 - %389 = load i32, ptr %m_size.i.i99.i, align 4 - %inc.i259.i = add nsw i32 %389, 1 + %387 = load i32, ptr %m_size.i.i99.i, align 4 + %inc.i259.i = add nsw i32 %387, 1 store i32 %inc.i259.i, ptr %m_size.i.i99.i, align 4 br label %_ZL16setupSingleBatchP20btBatchedConstraintsi.exit diff --git a/bench/bullet3/optimized/btMLCPSolver.ll b/bench/bullet3/optimized/btMLCPSolver.ll index d33da3d28c2..8fad982299c 100644 --- a/bench/bullet3/optimized/btMLCPSolver.ll +++ b/bench/bullet3/optimized/btMLCPSolver.ll @@ -7004,7 +7004,7 @@ entry: to label %_ZN9btMatrixXIfEC2Eii.exit unwind label %lpad2.i common.resume: ; preds = %_ZN9btMatrixXIfED2Ev.exit, %lpad2.i - %common.resume.op = phi { ptr, i32 } [ %2, %lpad2.i ], [ %24, %_ZN9btMatrixXIfED2Ev.exit ] + %common.resume.op = phi { ptr, i32 } [ %2, %lpad2.i ], [ %23, %_ZN9btMatrixXIfED2Ev.exit ] resume { ptr, i32 } %common.resume.op lpad2.i: ; preds = %entry @@ -7049,17 +7049,17 @@ for.cond4.preheader.lr.ph: ; preds = %_ZN9btMatrixXIfE7se br i1 %8, label %for.cond4.preheader, label %nrvo.skipdtor for.cond4.preheader: ; preds = %for.cond4.preheader.lr.ph, %for.inc27 - %9 = phi i32 [ %37, %for.inc27 ], [ %6, %for.cond4.preheader.lr.ph ] - %10 = phi i32 [ %38, %for.inc27 ], [ %7, %for.cond4.preheader.lr.ph ] - %11 = phi i32 [ %39, %for.inc27 ], [ %7, %for.cond4.preheader.lr.ph ] + %9 = phi i32 [ %36, %for.inc27 ], [ %6, %for.cond4.preheader.lr.ph ] + %10 = phi i32 [ %37, %for.inc27 ], [ %7, %for.cond4.preheader.lr.ph ] + %11 = phi i32 [ %38, %for.inc27 ], [ %7, %for.cond4.preheader.lr.ph ] %i.048 = phi i32 [ %inc28, %for.inc27 ], [ 0, %for.cond4.preheader.lr.ph ] %cmp745 = icmp sgt i32 %11, 0 br i1 %cmp745, label %for.body8, label %for.inc27 for.body8: ; preds = %for.cond4.preheader, %for.inc24 - %12 = phi i32 [ %35, %for.inc24 ], [ %10, %for.cond4.preheader ] + %12 = phi i32 [ %34, %for.inc24 ], [ %10, %for.cond4.preheader ] %indvars.iv54 = phi i64 [ %indvars.iv.next55, %for.inc24 ], [ 0, %for.cond4.preheader ] - %13 = phi i32 [ %35, %for.inc24 ], [ %11, %for.cond4.preheader ] + %13 = phi i32 [ %34, %for.inc24 ], [ %11, %for.cond4.preheader ] %14 = load i32, ptr %m_cols.i19, align 4 %cmp1242 = icmp sgt i32 %14, 0 br i1 %cmp1242, label %invoke.cont16.lr.ph, label %for.inc24 @@ -7069,52 +7069,51 @@ invoke.cont16.lr.ph: ; preds = %for.body8 %15 = load ptr, ptr %m_data.i.i21, align 8 %16 = load ptr, ptr %m_data.i.i25, align 8 %17 = sext i32 %13 to i64 + %18 = zext nneg i32 %mul.i to i64 %wide.trip.count = zext nneg i32 %14 to i64 - %invariant.gep = getelementptr float, ptr %16, i64 %indvars.iv54 + %invariant.gep = getelementptr float, ptr %15, i64 %18 + %invariant.gep61 = getelementptr float, ptr %16, i64 %indvars.iv54 br label %invoke.cont16 invoke.cont16: ; preds = %invoke.cont16.lr.ph, %invoke.cont16 %indvars.iv = phi i64 [ 0, %invoke.cont16.lr.ph ], [ %indvars.iv.next, %invoke.cont16 ] %dotProd.043 = phi float [ 0.000000e+00, %invoke.cont16.lr.ph ], [ %dotProd.1, %invoke.cont16 ] - %18 = trunc i64 %indvars.iv to i32 - %19 = add i32 %mul.i, %18 - %idxprom.i.i = zext nneg i32 %19 to i64 - %arrayidx.i.i = getelementptr inbounds float, ptr %15, i64 %idxprom.i.i - %20 = load float, ptr %arrayidx.i.i, align 4 - %21 = mul nsw i64 %indvars.iv, %17 - %gep = getelementptr float, ptr %invariant.gep, i64 %21 - %22 = load float, ptr %gep, align 4 - %cmp18 = fcmp une float %22, 0.000000e+00 - %23 = call float @llvm.fmuladd.f32(float %20, float %22, float %dotProd.043) - %dotProd.1 = select i1 %cmp18, float %23, float %dotProd.043 + %gep = getelementptr float, ptr %invariant.gep, i64 %indvars.iv + %19 = load float, ptr %gep, align 4 + %20 = mul nsw i64 %indvars.iv, %17 + %gep62 = getelementptr float, ptr %invariant.gep61, i64 %20 + %21 = load float, ptr %gep62, align 4 + %cmp18 = fcmp une float %21, 0.000000e+00 + %22 = call float @llvm.fmuladd.f32(float %19, float %21, float %dotProd.043) + %dotProd.1 = select i1 %cmp18, float %22, float %dotProd.043 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count br i1 %exitcond.not, label %for.end, label %invoke.cont16, !llvm.loop !47 lpad: ; preds = %_ZN9btMatrixXIfEC2Eii.exit - %24 = landingpad { ptr, i32 } + %23 = landingpad { ptr, i32 } cleanup %m_rowNonZeroElements1.i34 = getelementptr inbounds %struct.btMatrixX, ptr %agg.result, i64 0, i32 7 call void @_ZN20btAlignedObjectArrayIS_IiEED2Ev(ptr noundef nonnull align 8 dereferenceable(25) %m_rowNonZeroElements1.i34) #11 - %25 = load ptr, ptr %m_data.i.i.i, align 8 - %tobool.not.i.i.i.i = icmp eq ptr %25, null + %24 = load ptr, ptr %m_data.i.i.i, align 8 + %tobool.not.i.i.i.i = icmp eq ptr %24, null br i1 %tobool.not.i.i.i.i, label %_ZN9btMatrixXIfED2Ev.exit, label %if.then.i.i.i.i if.then.i.i.i.i: ; preds = %lpad - %26 = load i8, ptr %m_ownsMemory.i.i.i, align 8 - %27 = and i8 %26, 1 - %tobool2.not.i.i.i.i = icmp eq i8 %27, 0 + %25 = load i8, ptr %m_ownsMemory.i.i.i, align 8 + %26 = and i8 %25, 1 + %tobool2.not.i.i.i.i = icmp eq i8 %26, 0 br i1 %tobool2.not.i.i.i.i, label %_ZN9btMatrixXIfED2Ev.exit, label %if.then3.i.i.i.i if.then3.i.i.i.i: ; preds = %if.then.i.i.i.i - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %25) + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %24) to label %_ZN9btMatrixXIfED2Ev.exit unwind label %terminate.lpad.i.i terminate.lpad.i.i: ; preds = %if.then3.i.i.i.i - %28 = landingpad { ptr, i32 } + %27 = landingpad { ptr, i32 } catch ptr null - %29 = extractvalue { ptr, i32 } %28, 0 - call void @__clang_call_terminate(ptr %29) #12 + %28 = extractvalue { ptr, i32 } %27, 0 + call void @__clang_call_terminate(ptr %28) #12 unreachable _ZN9btMatrixXIfED2Ev.exit: ; preds = %lpad, %if.then.i.i.i.i, %if.then3.i.i.i.i @@ -7129,24 +7128,24 @@ for.end: ; preds = %invoke.cont16 br i1 %tobool, label %if.then21, label %for.inc24 if.then21: ; preds = %for.end - %30 = load i32, ptr %m_setElemOperations.i, align 8 - %inc.i = add nsw i32 %30, 1 + %29 = load i32, ptr %m_setElemOperations.i, align 8 + %inc.i = add nsw i32 %29, 1 store i32 %inc.i, ptr %m_setElemOperations.i, align 8 - %31 = load i32, ptr %m_cols.i17, align 4 - %mul.i37 = mul nsw i32 %31, %i.048 - %32 = sext i32 %mul.i37 to i64 - %33 = load ptr, ptr %m_data.i.i.i, align 8 - %34 = getelementptr float, ptr %33, i64 %indvars.iv54 - %arrayidx.i.i41 = getelementptr float, ptr %34, i64 %32 + %30 = load i32, ptr %m_cols.i17, align 4 + %mul.i37 = mul nsw i32 %30, %i.048 + %31 = sext i32 %mul.i37 to i64 + %32 = load ptr, ptr %m_data.i.i.i, align 8 + %33 = getelementptr float, ptr %32, i64 %indvars.iv54 + %arrayidx.i.i41 = getelementptr float, ptr %33, i64 %31 store float %dotProd.1, ptr %arrayidx.i.i41, align 4 %.pre = load i32, ptr %m_cols.i, align 4 br label %for.inc24 for.inc24: ; preds = %for.body8, %if.then21, %for.end - %35 = phi i32 [ %.pre, %if.then21 ], [ %12, %for.end ], [ %12, %for.body8 ] + %34 = phi i32 [ %.pre, %if.then21 ], [ %12, %for.end ], [ %12, %for.body8 ] %indvars.iv.next55 = add nuw nsw i64 %indvars.iv54, 1 - %36 = sext i32 %35 to i64 - %cmp7 = icmp slt i64 %indvars.iv.next55, %36 + %35 = sext i32 %34 to i64 + %cmp7 = icmp slt i64 %indvars.iv.next55, %35 br i1 %cmp7, label %for.body8, label %for.inc27.loopexit, !llvm.loop !48 for.inc27.loopexit: ; preds = %for.inc24 @@ -7154,11 +7153,11 @@ for.inc27.loopexit: ; preds = %for.inc24 br label %for.inc27 for.inc27: ; preds = %for.inc27.loopexit, %for.cond4.preheader - %37 = phi i32 [ %.pre58, %for.inc27.loopexit ], [ %9, %for.cond4.preheader ] - %38 = phi i32 [ %35, %for.inc27.loopexit ], [ %10, %for.cond4.preheader ] - %39 = phi i32 [ %35, %for.inc27.loopexit ], [ %11, %for.cond4.preheader ] + %36 = phi i32 [ %.pre58, %for.inc27.loopexit ], [ %9, %for.cond4.preheader ] + %37 = phi i32 [ %34, %for.inc27.loopexit ], [ %10, %for.cond4.preheader ] + %38 = phi i32 [ %34, %for.inc27.loopexit ], [ %11, %for.cond4.preheader ] %inc28 = add nuw nsw i32 %i.048, 1 - %cmp = icmp slt i32 %inc28, %37 + %cmp = icmp slt i32 %inc28, %36 br i1 %cmp, label %for.cond4.preheader, label %nrvo.skipdtor, !llvm.loop !49 nrvo.skipdtor: ; preds = %for.inc27, %for.cond4.preheader.lr.ph, %_ZN9btMatrixXIfE7setZeroEv.exit diff --git a/bench/bullet3/optimized/btMultiBody.ll b/bench/bullet3/optimized/btMultiBody.ll index 7b8dbc8b3e7..3cb494ed0b5 100644 --- a/bench/bullet3/optimized/btMultiBody.ll +++ b/bench/bullet3/optimized/btMultiBody.ll @@ -6412,16 +6412,15 @@ for.cond518.preheader.for.end555_crit_edge: ; preds = %if.end455, %for.con for.body523.lr.ph: ; preds = %for.cond518.preheader %m_dofOffset538 = getelementptr inbounds %struct.btMultibodyLink, ptr %783, i64 %indvars.iv.next2732, i32 9 + %607 = zext nneg i32 %784 to i64 %wide.trip.count2688 = zext nneg i32 %784 to i64 %.pre2761.pre = load i32, ptr %m_dofOffset538, align 8 br label %for.body523.us for.body523.us: ; preds = %for.cond530.for.inc553_crit_edge.us, %for.body523.lr.ph %indvars.iv2684 = phi i64 [ %indvars.iv.next2685, %for.cond530.for.inc553_crit_edge.us ], [ 0, %for.body523.lr.ph ] - %607 = trunc i64 %indvars.iv2684 to i32 - %608 = mul i32 %784, %607 - %idxprom528.us = zext nneg i32 %608 to i64 - %arrayidx529.us = getelementptr inbounds [36 x float], ptr %D, i64 0, i64 %idxprom528.us + %608 = mul nsw i64 %indvars.iv2684, %607 + %arrayidx529.us = getelementptr inbounds [36 x float], ptr %D, i64 0, i64 %608 %arrayidx546.us = getelementptr inbounds %struct.btMultibodyLink, ptr %783, i64 %indvars.iv.next2732, i32 8, i64 %indvars.iv2684 %m_bottomVec.i1229.us = getelementptr inbounds %struct.btMultibodyLink, ptr %783, i64 %indvars.iv.next2732, i32 8, i64 %indvars.iv2684, i32 1 %arrayidx5.i.i1230.us = getelementptr inbounds %struct.btMultibodyLink, ptr %783, i64 %indvars.iv.next2732, i32 8, i64 %indvars.iv2684, i32 1, i32 0, i64 1 @@ -6555,9 +6554,9 @@ for.body475: ; preds = %for.body475.lr.ph, %690 = shufflevector <2 x float> %689, <2 x float> poison, <2 x i32> zeroinitializer %691 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %682, <2 x float> %690, <2 x float> %688) %692 = fadd <2 x float> %679, %691 - %shift2844 = shufflevector <2 x float> %667, <2 x float> poison, <2 x i32> - %693 = fadd <2 x float> %667, %shift2844 - %retval.sroa.3.12.vec.insert.i25.i2849 = insertelement <2 x float> %693, float 0.000000e+00, i64 1 + %shift2848 = shufflevector <2 x float> %667, <2 x float> poison, <2 x i32> + %693 = fadd <2 x float> %667, %shift2848 + %retval.sroa.3.12.vec.insert.i25.i2853 = insertelement <2 x float> %693, float 0.000000e+00, i64 1 %694 = load float, ptr %m_topRightMat.i1179, align 4, !noalias !38 %695 = load float, ptr %arrayidx5.i.i46.i, align 4, !noalias !38 %696 = load float, ptr %arrayidx10.i.i49.i, align 4, !noalias !38 @@ -6592,16 +6591,16 @@ for.body475: ; preds = %for.body475.lr.ph, %725 = insertelement <2 x float> %724, float %699, i64 1 %726 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %725, <2 x float> %690, <2 x float> %723) %727 = fadd <2 x float> %717, %726 - %shift2845 = shufflevector <2 x float> %710, <2 x float> poison, <2 x i32> - %728 = fadd <2 x float> %710, %shift2845 - %retval.sroa.3.12.vec.insert.i73.i2850 = insertelement <2 x float> %728, float 0.000000e+00, i64 1 + %shift2849 = shufflevector <2 x float> %710, <2 x float> poison, <2 x i32> + %728 = fadd <2 x float> %710, %shift2849 + %retval.sroa.3.12.vec.insert.i73.i2854 = insertelement <2 x float> %728, float 0.000000e+00, i64 1 store <2 x float> %727, ptr %arrayidx480, align 4 %ref.tmp481.sroa.2.0.arrayidx480.sroa_idx = getelementptr inbounds i8, ptr %arrayidx480, i64 8 - store <2 x float> %retval.sroa.3.12.vec.insert.i73.i2850, ptr %ref.tmp481.sroa.2.0.arrayidx480.sroa_idx, align 4 + store <2 x float> %retval.sroa.3.12.vec.insert.i73.i2854, ptr %ref.tmp481.sroa.2.0.arrayidx480.sroa_idx, align 4 %ref.tmp481.sroa.3.0.arrayidx480.sroa_idx = getelementptr inbounds i8, ptr %arrayidx480, i64 16 store <2 x float> %692, ptr %ref.tmp481.sroa.3.0.arrayidx480.sroa_idx, align 4 %ref.tmp481.sroa.4.0.arrayidx480.sroa_idx = getelementptr inbounds i8, ptr %arrayidx480, i64 24 - store <2 x float> %retval.sroa.3.12.vec.insert.i25.i2849, ptr %ref.tmp481.sroa.4.0.arrayidx480.sroa_idx, align 4 + store <2 x float> %retval.sroa.3.12.vec.insert.i25.i2853, ptr %ref.tmp481.sroa.4.0.arrayidx480.sroa_idx, align 4 %729 = load ptr, ptr %m_data.i.i.i1114, align 8 %arrayidx493 = getelementptr inbounds %struct.btMultibodyLink, ptr %729, i64 %indvars.iv.next2732, i32 21, i64 %indvars.iv2676 %730 = load float, ptr %arrayidx493, align 4 @@ -6808,46 +6807,45 @@ for.body611: ; preds = %for.body611.lr.ph, %arrayidx12.i7.i1328 = getelementptr inbounds [6 x %struct.btSpatialForceVector], ptr %spatForceVecTemps, i64 0, i64 %indvars.iv2705, i32 1, i32 0, i64 2 %846 = load <2 x float>, ptr %m_bottomVec3.i1322, align 16 %arrayidx12.i7.i1328.promoted = load float, ptr %arrayidx12.i7.i1328, align 8 + %invariant.gep = getelementptr float, ptr %arrayidx564, i64 %indvars.iv2705 br label %for.body620 for.body620: ; preds = %for.body611, %for.body620 %indvars.iv2697 = phi i64 [ 0, %for.body611 ], [ %indvars.iv.next2698, %for.body620 ] %847 = phi float [ %arrayidx12.i7.i1328.promoted, %for.body611 ], [ %add13.i8.i1329, %for.body620 ] %add13.i.i13202624 = phi float [ 0.000000e+00, %for.body611 ], [ %add13.i.i1320, %for.body620 ] - %848 = phi <2 x float> [ zeroinitializer, %for.body611 ], [ %862, %for.body620 ] - %849 = phi <2 x float> [ %846, %for.body611 ], [ %863, %for.body620 ] + %848 = phi <2 x float> [ zeroinitializer, %for.body611 ], [ %861, %for.body620 ] + %849 = phi <2 x float> [ %846, %for.body611 ], [ %862, %for.body620 ] %850 = add nsw i64 %indvars.iv2697, %845 %arrayidx627 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond2569, i64 %850 - %851 = mul i64 %indvars.iv2697, %844 - %852 = add i64 %851, %indvars.iv2705 - %idxprom634 = and i64 %852, 4294967295 - %arrayidx635 = getelementptr inbounds float, ptr %arrayidx564, i64 %idxprom634 + %851 = mul nsw i64 %indvars.iv2697, %844 + %gep = getelementptr float, ptr %invariant.gep, i64 %851 %m_bottomVec.i1295 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond2569, i64 %850, i32 1 - %853 = load float, ptr %arrayidx635, align 4, !noalias !46 - %854 = load <2 x float>, ptr %m_bottomVec.i1295, align 4, !noalias !46 - %855 = insertelement <2 x float> poison, float %853, i64 0 - %856 = shufflevector <2 x float> %855, <2 x float> poison, <2 x i32> zeroinitializer - %857 = fmul <2 x float> %856, %854 + %852 = load float, ptr %gep, align 4, !noalias !46 + %853 = load <2 x float>, ptr %m_bottomVec.i1295, align 4, !noalias !46 + %854 = insertelement <2 x float> poison, float %852, i64 0 + %855 = shufflevector <2 x float> %854, <2 x float> poison, <2 x i32> zeroinitializer + %856 = fmul <2 x float> %855, %853 %arrayidx7.i.i.i1299 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond2569, i64 %850, i32 1, i32 0, i64 2 - %858 = load float, ptr %arrayidx7.i.i.i1299, align 4, !noalias !46 - %mul8.i.i.i1300 = fmul float %853, %858 - %859 = load <2 x float>, ptr %arrayidx627, align 4, !noalias !46 - %860 = fmul <2 x float> %856, %859 + %857 = load float, ptr %arrayidx7.i.i.i1299, align 4, !noalias !46 + %mul8.i.i.i1300 = fmul float %852, %857 + %858 = load <2 x float>, ptr %arrayidx627, align 4, !noalias !46 + %859 = fmul <2 x float> %855, %858 %arrayidx7.i.i5.i1307 = getelementptr inbounds [4 x float], ptr %arrayidx627, i64 0, i64 2 - %861 = load float, ptr %arrayidx7.i.i5.i1307, align 4, !noalias !46 - %mul8.i.i6.i1308 = fmul float %853, %861 - %862 = fadd <2 x float> %860, %848 + %860 = load float, ptr %arrayidx7.i.i5.i1307, align 4, !noalias !46 + %mul8.i.i6.i1308 = fmul float %852, %860 + %861 = fadd <2 x float> %859, %848 %add13.i.i1320 = fadd float %mul8.i.i6.i1308, %add13.i.i13202624 - %863 = fadd <2 x float> %857, %849 + %862 = fadd <2 x float> %856, %849 %add13.i8.i1329 = fadd float %mul8.i.i.i1300, %847 %indvars.iv.next2698 = add nuw nsw i64 %indvars.iv2697, 1 %exitcond2704.not = icmp eq i64 %indvars.iv.next2698, %wide.trip.count2708 br i1 %exitcond2704.not, label %for.cond615.for.inc642_crit_edge, label %for.body620, !llvm.loop !49 for.cond615.for.inc642_crit_edge: ; preds = %for.body620 - store <2 x float> %862, ptr %arrayidx613, align 16 + store <2 x float> %861, ptr %arrayidx613, align 16 store float %add13.i.i1320, ptr %arrayidx12.i.i1319, align 8 - store <2 x float> %863, ptr %m_bottomVec3.i1322, align 16 + store <2 x float> %862, ptr %m_bottomVec3.i1322, align 16 store float %add13.i8.i1329, ptr %arrayidx12.i7.i1328, align 8 %indvars.iv.next2706 = add nuw nsw i64 %indvars.iv2705, 1 %exitcond2709.not = icmp eq i64 %indvars.iv.next2706, %wide.trip.count2708 @@ -6872,152 +6870,152 @@ for.end644: ; preds = %for.cond615.for.inc call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %arrayidx7.i8.i, ptr noundef nonnull align 4 dereferenceable(16) %arrayidx5.i7.i, i64 16, i1 false) %arrayidx9.i9.i = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv2731, i32 2, i32 0, i64 2 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %arrayidx11.i10.i, ptr noundef nonnull align 4 dereferenceable(16) %arrayidx9.i9.i, i64 16, i1 false) - %864 = load i32, ptr %m_dofCount609, align 4 - %cmp6542629 = icmp sgt i32 %864, 0 + %863 = load i32, ptr %m_dofCount609, align 4 + %cmp6542629 = icmp sgt i32 %863, 0 br i1 %cmp6542629, label %for.body655.lr.ph, label %for.end669 for.body655.lr.ph: ; preds = %for.end644 %m_dofOffset659 = getelementptr inbounds %struct.btMultibodyLink, ptr %842, i64 %indvars.iv.next2732, i32 9 - %865 = load <2 x float>, ptr %dyadTemp, align 8 + %864 = load <2 x float>, ptr %dyadTemp, align 8 %.pre2772 = load float, ptr %arrayidx21.i.i1352, align 8 - %866 = load <2 x float>, ptr %arrayidx7.i.i1331, align 8 + %865 = load <2 x float>, ptr %arrayidx7.i.i1331, align 8 %.pre2775 = load float, ptr %arrayidx5.i2.i.i.i.i, align 8 - %867 = load <2 x float>, ptr %arrayidx11.i.i1333, align 8 + %866 = load <2 x float>, ptr %arrayidx11.i.i1333, align 8 %.pre2778 = load float, ptr %arrayidx5.i5.i.i.i.i, align 8 - %868 = load <2 x float>, ptr %m_topRightMat.i.i, align 8 + %867 = load <2 x float>, ptr %m_topRightMat.i.i, align 8 %.pre2781 = load float, ptr %arrayidx21.i7.i, align 8 - %869 = load <2 x float>, ptr %arrayidx7.i4.i1336, align 8 + %868 = load <2 x float>, ptr %arrayidx7.i4.i1336, align 8 %.pre2784 = load float, ptr %arrayidx5.i2.i.i3.i.i, align 8 %.pre2785 = load float, ptr %arrayidx11.i6.i, align 8 br label %for.body655 for.body655: ; preds = %for.body655.lr.ph, %for.body655 - %870 = phi float [ %.pre2785, %for.body655.lr.ph ], [ %935, %for.body655 ] - %871 = phi float [ %.pre2784, %for.body655.lr.ph ], [ %sub56.i18.i, %for.body655 ] - %872 = phi float [ %.pre2781, %for.body655.lr.ph ], [ %sub26.i9.i, %for.body655 ] - %873 = phi float [ %.pre2778, %for.body655.lr.ph ], [ %sub86.i.i, %for.body655 ] - %874 = phi float [ %.pre2775, %for.body655.lr.ph ], [ %sub56.i.i, %for.body655 ] - %875 = phi float [ %.pre2772, %for.body655.lr.ph ], [ %sub26.i.i1353, %for.body655 ] + %869 = phi float [ %.pre2785, %for.body655.lr.ph ], [ %934, %for.body655 ] + %870 = phi float [ %.pre2784, %for.body655.lr.ph ], [ %sub56.i18.i, %for.body655 ] + %871 = phi float [ %.pre2781, %for.body655.lr.ph ], [ %sub26.i9.i, %for.body655 ] + %872 = phi float [ %.pre2778, %for.body655.lr.ph ], [ %sub86.i.i, %for.body655 ] + %873 = phi float [ %.pre2775, %for.body655.lr.ph ], [ %sub56.i.i, %for.body655 ] + %874 = phi float [ %.pre2772, %for.body655.lr.ph ], [ %sub26.i.i1353, %for.body655 ] %indvars.iv2710 = phi i64 [ 0, %for.body655.lr.ph ], [ %indvars.iv.next2711, %for.body655 ] - %876 = phi <2 x float> [ %865, %for.body655.lr.ph ], [ %895, %for.body655 ] - %877 = phi <2 x float> [ %866, %for.body655.lr.ph ], [ %899, %for.body655 ] - %878 = phi <2 x float> [ %867, %for.body655.lr.ph ], [ %903, %for.body655 ] - %879 = phi <2 x float> [ %868, %for.body655.lr.ph ], [ %908, %for.body655 ] - %880 = phi <2 x float> [ %869, %for.body655.lr.ph ], [ %910, %for.body655 ] - %881 = load i32, ptr %m_dofOffset659, align 8 - %882 = trunc i64 %indvars.iv2710 to i32 - %add660 = add nsw i32 %881, %882 + %875 = phi <2 x float> [ %864, %for.body655.lr.ph ], [ %894, %for.body655 ] + %876 = phi <2 x float> [ %865, %for.body655.lr.ph ], [ %898, %for.body655 ] + %877 = phi <2 x float> [ %866, %for.body655.lr.ph ], [ %902, %for.body655 ] + %878 = phi <2 x float> [ %867, %for.body655.lr.ph ], [ %907, %for.body655 ] + %879 = phi <2 x float> [ %868, %for.body655.lr.ph ], [ %909, %for.body655 ] + %880 = load i32, ptr %m_dofOffset659, align 8 + %881 = trunc i64 %indvars.iv2710 to i32 + %add660 = add nsw i32 %880, %881 %idxprom661 = sext i32 %add660 to i64 %arrayidx662 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond2569, i64 %idxprom661 %arrayidx665 = getelementptr inbounds [6 x %struct.btSpatialForceVector], ptr %spatForceVecTemps, i64 0, i64 %indvars.iv2710 %m_bottomVec.i1344 = getelementptr inbounds [6 x %struct.btSpatialForceVector], ptr %spatForceVecTemps, i64 0, i64 %indvars.iv2710, i32 1 - %883 = load float, ptr %arrayidx662, align 4, !noalias !51 + %882 = load float, ptr %arrayidx662, align 4, !noalias !51 %arrayidx.i17.i.i = getelementptr inbounds [6 x %struct.btSpatialForceVector], ptr %spatForceVecTemps, i64 0, i64 %indvars.iv2710, i32 1, i32 0, i64 2 - %884 = load float, ptr %arrayidx.i17.i.i, align 8, !noalias !51 - %mul9.i.i = fmul float %883, %884 + %883 = load float, ptr %arrayidx.i17.i.i, align 8, !noalias !51 + %mul9.i.i = fmul float %882, %883 %arrayidx.i18.i.i = getelementptr inbounds [4 x float], ptr %arrayidx662, i64 0, i64 1 - %885 = load float, ptr %arrayidx.i18.i.i, align 4, !noalias !51 - %mul21.i.i = fmul float %884, %885 + %884 = load float, ptr %arrayidx.i18.i.i, align 4, !noalias !51 + %mul21.i.i = fmul float %883, %884 %arrayidx.i26.i.i = getelementptr inbounds [4 x float], ptr %arrayidx662, i64 0, i64 2 - %886 = load float, ptr %arrayidx.i26.i.i, align 4, !noalias !51 - %mul33.i.i = fmul float %884, %886 + %885 = load float, ptr %arrayidx.i26.i.i, align 4, !noalias !51 + %mul33.i.i = fmul float %883, %885 %arrayidx.i17.i8.i = getelementptr inbounds [4 x float], ptr %arrayidx665, i64 0, i64 2 - %887 = load float, ptr %arrayidx.i17.i8.i, align 8, !noalias !54 - %mul9.i9.i = fmul float %883, %887 - %mul21.i13.i = fmul float %885, %887 - %mul33.i17.i = fmul float %886, %887 + %886 = load float, ptr %arrayidx.i17.i8.i, align 8, !noalias !54 + %mul9.i9.i = fmul float %882, %886 + %mul21.i13.i = fmul float %884, %886 + %mul33.i17.i = fmul float %885, %886 %m_bottomVec6.i = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond2569, i64 %idxprom661, i32 1 - %888 = load float, ptr %m_bottomVec6.i, align 4, !noalias !57 - %mul9.i37.i = fmul float %884, %888 + %887 = load float, ptr %m_bottomVec6.i, align 4, !noalias !57 + %mul9.i37.i = fmul float %883, %887 %arrayidx.i18.i38.i = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond2569, i64 %idxprom661, i32 1, i32 0, i64 1 - %889 = load float, ptr %arrayidx.i18.i38.i, align 4, !noalias !57 - %mul21.i41.i = fmul float %884, %889 + %888 = load float, ptr %arrayidx.i18.i38.i, align 4, !noalias !57 + %mul21.i41.i = fmul float %883, %888 %arrayidx.i26.i42.i = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond2569, i64 %idxprom661, i32 1, i32 0, i64 2 - %890 = load float, ptr %arrayidx.i26.i42.i, align 4, !noalias !57 - %mul33.i45.i = fmul float %884, %890 - %sub26.i.i1353 = fsub float %875, %mul9.i.i - %sub56.i.i = fsub float %874, %mul21.i.i - %sub86.i.i = fsub float %873, %mul33.i.i - %891 = load <2 x float>, ptr %m_bottomVec.i1344, align 16, !noalias !51 - %892 = insertelement <2 x float> poison, float %883, i64 0 - %893 = shufflevector <2 x float> %892, <2 x float> poison, <2 x i32> zeroinitializer - %894 = fmul <2 x float> %893, %891 - %895 = fsub <2 x float> %876, %894 - store <2 x float> %895, ptr %dyadTemp, align 8 + %889 = load float, ptr %arrayidx.i26.i42.i, align 4, !noalias !57 + %mul33.i45.i = fmul float %883, %889 + %sub26.i.i1353 = fsub float %874, %mul9.i.i + %sub56.i.i = fsub float %873, %mul21.i.i + %sub86.i.i = fsub float %872, %mul33.i.i + %890 = load <2 x float>, ptr %m_bottomVec.i1344, align 16, !noalias !51 + %891 = insertelement <2 x float> poison, float %882, i64 0 + %892 = shufflevector <2 x float> %891, <2 x float> poison, <2 x i32> zeroinitializer + %893 = fmul <2 x float> %892, %890 + %894 = fsub <2 x float> %875, %893 + store <2 x float> %894, ptr %dyadTemp, align 8 store float %sub26.i.i1353, ptr %arrayidx21.i.i1352, align 8 store float 0.000000e+00, ptr %arrayidx7.i.i.i.i1354, align 4 - %896 = insertelement <2 x float> poison, float %885, i64 0 - %897 = shufflevector <2 x float> %896, <2 x float> poison, <2 x i32> zeroinitializer - %898 = fmul <2 x float> %891, %897 - %899 = fsub <2 x float> %877, %898 - store <2 x float> %899, ptr %arrayidx7.i.i1331, align 8 + %895 = insertelement <2 x float> poison, float %884, i64 0 + %896 = shufflevector <2 x float> %895, <2 x float> poison, <2 x i32> zeroinitializer + %897 = fmul <2 x float> %890, %896 + %898 = fsub <2 x float> %876, %897 + store <2 x float> %898, ptr %arrayidx7.i.i1331, align 8 store float %sub56.i.i, ptr %arrayidx5.i2.i.i.i.i, align 8 store float 0.000000e+00, ptr %arrayidx7.i3.i.i.i1355, align 4 - %900 = insertelement <2 x float> poison, float %886, i64 0 - %901 = shufflevector <2 x float> %900, <2 x float> poison, <2 x i32> zeroinitializer - %902 = fmul <2 x float> %891, %901 - %903 = fsub <2 x float> %878, %902 - store <2 x float> %903, ptr %arrayidx11.i.i1333, align 8 + %899 = insertelement <2 x float> poison, float %885, i64 0 + %900 = shufflevector <2 x float> %899, <2 x float> poison, <2 x i32> zeroinitializer + %901 = fmul <2 x float> %890, %900 + %902 = fsub <2 x float> %877, %901 + store <2 x float> %902, ptr %arrayidx11.i.i1333, align 8 store float %sub86.i.i, ptr %arrayidx5.i5.i.i.i.i, align 8 store float 0.000000e+00, ptr %arrayidx7.i6.i.i.i.i, align 4 - %sub26.i9.i = fsub float %872, %mul9.i9.i - %sub56.i18.i = fsub float %871, %mul21.i13.i - %904 = load float, ptr %arrayidx71.i22.i, align 4 - %905 = load float, ptr %arrayidx5.i5.i.i4.i.i, align 8 - %sub86.i27.i = fsub float %905, %mul33.i17.i - %906 = load <2 x float>, ptr %arrayidx665, align 16, !noalias !54 - %907 = fmul <2 x float> %893, %906 - %908 = fsub <2 x float> %879, %907 - store <2 x float> %908, ptr %m_topRightMat.i.i, align 8 + %sub26.i9.i = fsub float %871, %mul9.i9.i + %sub56.i18.i = fsub float %870, %mul21.i13.i + %903 = load float, ptr %arrayidx71.i22.i, align 4 + %904 = load float, ptr %arrayidx5.i5.i.i4.i.i, align 8 + %sub86.i27.i = fsub float %904, %mul33.i17.i + %905 = load <2 x float>, ptr %arrayidx665, align 16, !noalias !54 + %906 = fmul <2 x float> %892, %905 + %907 = fsub <2 x float> %878, %906 + store <2 x float> %907, ptr %m_topRightMat.i.i, align 8 store float %sub26.i9.i, ptr %arrayidx21.i7.i, align 8 store float 0.000000e+00, ptr %arrayidx7.i.i.i28.i, align 4 - %909 = fmul <2 x float> %897, %906 - %910 = fsub <2 x float> %880, %909 - store <2 x float> %910, ptr %arrayidx7.i4.i1336, align 8 + %908 = fmul <2 x float> %896, %905 + %909 = fsub <2 x float> %879, %908 + store <2 x float> %909, ptr %arrayidx7.i4.i1336, align 8 store float %sub56.i18.i, ptr %arrayidx5.i2.i.i3.i.i, align 8 store float 0.000000e+00, ptr %arrayidx7.i3.i.i29.i, align 4 - %911 = fmul <2 x float> %901, %906 - %912 = insertelement <2 x float> poison, float %870, i64 0 - %913 = insertelement <2 x float> %912, float %904, i64 1 - %914 = fsub <2 x float> %913, %911 - store <2 x float> %914, ptr %arrayidx11.i6.i, align 8 + %910 = fmul <2 x float> %900, %905 + %911 = insertelement <2 x float> poison, float %869, i64 0 + %912 = insertelement <2 x float> %911, float %903, i64 1 + %913 = fsub <2 x float> %912, %910 + store <2 x float> %913, ptr %arrayidx11.i6.i, align 8 store float %sub86.i27.i, ptr %arrayidx5.i5.i.i4.i.i, align 8 store float 0.000000e+00, ptr %arrayidx7.i6.i.i5.i.i, align 4 - %915 = load float, ptr %arrayidx21.i35.i, align 8 - %sub26.i37.i = fsub float %915, %mul9.i37.i - %916 = load float, ptr %arrayidx5.i2.i.i8.i.i, align 8 - %sub56.i46.i = fsub float %916, %mul21.i41.i - %917 = load float, ptr %arrayidx5.i5.i.i9.i.i, align 8 - %sub86.i55.i = fsub float %917, %mul33.i45.i - %918 = insertelement <2 x float> poison, float %888, i64 0 - %919 = shufflevector <2 x float> %918, <2 x float> poison, <2 x i32> zeroinitializer - %920 = fmul <2 x float> %891, %919 - %921 = load <2 x float>, ptr %m_bottomLeftMat.i.i, align 8 - %922 = fsub <2 x float> %921, %920 - store <2 x float> %922, ptr %m_bottomLeftMat.i.i, align 8 + %914 = load float, ptr %arrayidx21.i35.i, align 8 + %sub26.i37.i = fsub float %914, %mul9.i37.i + %915 = load float, ptr %arrayidx5.i2.i.i8.i.i, align 8 + %sub56.i46.i = fsub float %915, %mul21.i41.i + %916 = load float, ptr %arrayidx5.i5.i.i9.i.i, align 8 + %sub86.i55.i = fsub float %916, %mul33.i45.i + %917 = insertelement <2 x float> poison, float %887, i64 0 + %918 = shufflevector <2 x float> %917, <2 x float> poison, <2 x i32> zeroinitializer + %919 = fmul <2 x float> %890, %918 + %920 = load <2 x float>, ptr %m_bottomLeftMat.i.i, align 8 + %921 = fsub <2 x float> %920, %919 + store <2 x float> %921, ptr %m_bottomLeftMat.i.i, align 8 store float %sub26.i37.i, ptr %arrayidx21.i35.i, align 8 store float 0.000000e+00, ptr %arrayidx7.i.i.i56.i, align 4 - %923 = insertelement <2 x float> poison, float %889, i64 0 - %924 = shufflevector <2 x float> %923, <2 x float> poison, <2 x i32> zeroinitializer - %925 = fmul <2 x float> %891, %924 - %926 = load <2 x float>, ptr %arrayidx7.i8.i, align 8 - %927 = fsub <2 x float> %926, %925 - store <2 x float> %927, ptr %arrayidx7.i8.i, align 8 + %922 = insertelement <2 x float> poison, float %888, i64 0 + %923 = shufflevector <2 x float> %922, <2 x float> poison, <2 x i32> zeroinitializer + %924 = fmul <2 x float> %890, %923 + %925 = load <2 x float>, ptr %arrayidx7.i8.i, align 8 + %926 = fsub <2 x float> %925, %924 + store <2 x float> %926, ptr %arrayidx7.i8.i, align 8 store float %sub56.i46.i, ptr %arrayidx5.i2.i.i8.i.i, align 8 store float 0.000000e+00, ptr %arrayidx7.i3.i.i57.i, align 4 - %928 = insertelement <2 x float> poison, float %890, i64 0 - %929 = shufflevector <2 x float> %928, <2 x float> poison, <2 x i32> zeroinitializer - %930 = fmul <2 x float> %891, %929 - %931 = load <2 x float>, ptr %arrayidx11.i10.i, align 8 - %932 = fsub <2 x float> %931, %930 - store <2 x float> %932, ptr %arrayidx11.i10.i, align 8 + %927 = insertelement <2 x float> poison, float %889, i64 0 + %928 = shufflevector <2 x float> %927, <2 x float> poison, <2 x i32> zeroinitializer + %929 = fmul <2 x float> %890, %928 + %930 = load <2 x float>, ptr %arrayidx11.i10.i, align 8 + %931 = fsub <2 x float> %930, %929 + store <2 x float> %931, ptr %arrayidx11.i10.i, align 8 store float %sub86.i55.i, ptr %arrayidx5.i5.i.i9.i.i, align 8 store float 0.000000e+00, ptr %arrayidx7.i6.i.i10.i.i, align 4 %indvars.iv.next2711 = add nuw nsw i64 %indvars.iv2710, 1 - %933 = load i32, ptr %m_dofCount609, align 4 - %934 = sext i32 %933 to i64 - %cmp654 = icmp slt i64 %indvars.iv.next2711, %934 - %935 = extractelement <2 x float> %914, i64 0 + %932 = load i32, ptr %m_dofCount609, align 4 + %933 = sext i32 %932 to i64 + %cmp654 = icmp slt i64 %indvars.iv.next2711, %933 + %934 = extractelement <2 x float> %913, i64 0 br i1 %cmp654, label %for.body655, label %for.end669, !llvm.loop !60 for.end669: ; preds = %for.body655, %for.end644 @@ -7025,43 +7023,42 @@ for.end669: ; preds = %for.body655, %for.e %idxprom671 = sext i32 %add670 to i64 %arrayidx672 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %idxprom671 call void @_ZN29btSpatialTransformationMatrix16transformInverseERK22btSymmetricSpatialDyadRS0_NS_16eOutputOperationE(ptr noundef nonnull align 4 dereferenceable(64) %fromParent, ptr noundef nonnull align 4 dereferenceable(144) %dyadTemp, ptr noundef nonnull align 4 dereferenceable(144) %arrayidx672, i32 noundef 1) - %936 = load ptr, ptr %m_data.i.i.i1114, align 8 - %m_dofCount677 = getelementptr inbounds %struct.btMultibodyLink, ptr %936, i64 %indvars.iv.next2732, i32 24 - %937 = load i32, ptr %m_dofCount677, align 4 - %cmp6782634 = icmp sgt i32 %937, 0 + %935 = load ptr, ptr %m_data.i.i.i1114, align 8 + %m_dofCount677 = getelementptr inbounds %struct.btMultibodyLink, ptr %935, i64 %indvars.iv.next2732, i32 24 + %936 = load i32, ptr %m_dofCount677, align 4 + %cmp6782634 = icmp sgt i32 %936, 0 br i1 %cmp6782634, label %for.body679.lr.ph, label %for.end710 for.body679.lr.ph: ; preds = %for.end669 - %m_dofOffset698 = getelementptr inbounds %struct.btMultibodyLink, ptr %936, i64 %indvars.iv.next2732, i32 9 - %938 = zext nneg i32 %937 to i64 - %wide.trip.count2724 = zext nneg i32 %937 to i64 + %m_dofOffset698 = getelementptr inbounds %struct.btMultibodyLink, ptr %935, i64 %indvars.iv.next2732, i32 9 + %937 = zext nneg i32 %936 to i64 + %wide.trip.count2724 = zext nneg i32 %936 to i64 %.pre2786 = load i32, ptr %m_dofOffset698, align 8 - %939 = sext i32 %.pre2786 to i64 - %invariant.gep = getelementptr float, ptr %27, i64 %939 + %938 = sext i32 %.pre2786 to i64 + %invariant.gep2837 = getelementptr float, ptr %27, i64 %938 br label %for.body679 for.body679: ; preds = %for.body679.lr.ph, %for.cond683.for.inc708_crit_edge %indvars.iv2720 = phi i64 [ 0, %for.body679.lr.ph ], [ %indvars.iv.next2721, %for.cond683.for.inc708_crit_edge ] %arrayidx681 = getelementptr inbounds [6 x float], ptr %invD_times_Y, i64 0, i64 %indvars.iv2720 - %940 = mul i64 %indvars.iv2720, %938 + %939 = mul nsw i64 %indvars.iv2720, %937 + %invariant.gep2835 = getelementptr float, ptr %arrayidx564, i64 %939 br label %for.body688 for.body688: ; preds = %for.body679, %for.body688 %indvars.iv2713 = phi i64 [ 0, %for.body679 ], [ %indvars.iv.next2714, %for.body688 ] - %941 = phi float [ 0.000000e+00, %for.body679 ], [ %945, %for.body688 ] - %942 = add i64 %indvars.iv2713, %940 - %idxprom694 = and i64 %942, 4294967295 - %arrayidx695 = getelementptr inbounds float, ptr %arrayidx564, i64 %idxprom694 - %943 = load float, ptr %arrayidx695, align 4 - %gep = getelementptr float, ptr %invariant.gep, i64 %indvars.iv2713 - %944 = load float, ptr %gep, align 4 - %945 = call float @llvm.fmuladd.f32(float %943, float %944, float %941) + %940 = phi float [ 0.000000e+00, %for.body679 ], [ %943, %for.body688 ] + %gep2836 = getelementptr float, ptr %invariant.gep2835, i64 %indvars.iv2713 + %941 = load float, ptr %gep2836, align 4 + %gep2838 = getelementptr float, ptr %invariant.gep2837, i64 %indvars.iv2713 + %942 = load float, ptr %gep2838, align 4 + %943 = call float @llvm.fmuladd.f32(float %941, float %942, float %940) %indvars.iv.next2714 = add nuw nsw i64 %indvars.iv2713, 1 %exitcond2719.not = icmp eq i64 %indvars.iv.next2714, %wide.trip.count2724 br i1 %exitcond2719.not, label %for.cond683.for.inc708_crit_edge, label %for.body688, !llvm.loop !61 for.cond683.for.inc708_crit_edge: ; preds = %for.body688 - store float %945, ptr %arrayidx681, align 4 + store float %943, ptr %arrayidx681, align 4 %indvars.iv.next2721 = add nuw nsw i64 %indvars.iv2720, 1 %exitcond2725.not = icmp eq i64 %indvars.iv.next2721, %wide.trip.count2724 br i1 %exitcond2725.not, label %for.end710, label %for.body679, !llvm.loop !62 @@ -7069,275 +7066,275 @@ for.cond683.for.inc708_crit_edge: ; preds = %for.body688 for.end710: ; preds = %for.cond683.for.inc708_crit_edge, %for.end669 %arrayidx714 = getelementptr inbounds %struct.btSpatialForceVector, ptr %add.ptr, i64 %indvars.iv2731 %arrayidx720 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %add.ptr23, i64 %indvars.iv.next2732 - %946 = load float, ptr %m_bottomLeftMat5.i, align 4, !noalias !63 - %947 = load float, ptr %arrayidx720, align 4, !noalias !63 + %944 = load float, ptr %m_bottomLeftMat5.i, align 4, !noalias !63 + %945 = load float, ptr %arrayidx720, align 4, !noalias !63 %arrayidx5.i.i.i1376 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv2731, i32 2, i32 0, i64 0, i32 0, i64 1 - %948 = load float, ptr %arrayidx5.i.i.i1376, align 4, !noalias !63 + %946 = load float, ptr %arrayidx5.i.i.i1376, align 4, !noalias !63 %arrayidx7.i.i.i1377 = getelementptr inbounds [4 x float], ptr %arrayidx720, i64 0, i64 1 - %949 = load float, ptr %arrayidx7.i.i.i1377, align 4, !noalias !63 + %947 = load float, ptr %arrayidx7.i.i.i1377, align 4, !noalias !63 %arrayidx10.i.i.i1379 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv2731, i32 2, i32 0, i64 0, i32 0, i64 2 - %950 = load float, ptr %arrayidx10.i.i.i1379, align 4, !noalias !63 + %948 = load float, ptr %arrayidx10.i.i.i1379, align 4, !noalias !63 %arrayidx12.i.i.i1380 = getelementptr inbounds [4 x float], ptr %arrayidx720, i64 0, i64 2 - %951 = load float, ptr %arrayidx12.i.i.i1380, align 4, !noalias !63 - %952 = load float, ptr %arrayidx5.i7.i, align 4, !noalias !63 + %949 = load float, ptr %arrayidx12.i.i.i1380, align 4, !noalias !63 + %950 = load float, ptr %arrayidx5.i7.i, align 4, !noalias !63 %arrayidx5.i5.i.i1382 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv2731, i32 2, i32 0, i64 1, i32 0, i64 1 - %953 = load float, ptr %arrayidx5.i5.i.i1382, align 4, !noalias !63 + %951 = load float, ptr %arrayidx5.i5.i.i1382, align 4, !noalias !63 %arrayidx10.i8.i.i1384 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv2731, i32 2, i32 0, i64 1, i32 0, i64 2 - %954 = load float, ptr %arrayidx10.i8.i.i1384, align 4, !noalias !63 - %955 = load float, ptr %arrayidx9.i9.i, align 4, !noalias !63 + %952 = load float, ptr %arrayidx10.i8.i.i1384, align 4, !noalias !63 + %953 = load float, ptr %arrayidx9.i9.i, align 4, !noalias !63 %arrayidx5.i11.i.i1386 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv2731, i32 2, i32 0, i64 2, i32 0, i64 1 - %956 = load float, ptr %arrayidx5.i11.i.i1386, align 4, !noalias !63 + %954 = load float, ptr %arrayidx5.i11.i.i1386, align 4, !noalias !63 %arrayidx10.i14.i.i1388 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv2731, i32 2, i32 0, i64 2, i32 0, i64 2 - %957 = load float, ptr %arrayidx10.i14.i.i1388, align 4, !noalias !63 + %955 = load float, ptr %arrayidx10.i14.i.i1388, align 4, !noalias !63 %arrayidx.i3.i.i1394 = getelementptr inbounds [4 x float], ptr %arrayidx647, i64 0, i64 2 %arrayidx.i4.i.i1395 = getelementptr inbounds [3 x %class.btVector3], ptr %arrayidx647, i64 0, i64 1, i32 0, i64 2 %arrayidx.i5.i.i1396 = getelementptr inbounds [3 x %class.btVector3], ptr %arrayidx647, i64 0, i64 2, i32 0, i64 2 - %958 = load <2 x float>, ptr %arrayidx647, align 4, !noalias !63 - %959 = load <2 x float>, ptr %arrayidx5.i.i1330, align 4, !noalias !63 - %960 = load <2 x float>, ptr %arrayidx9.i.i1332, align 4, !noalias !63 - %961 = load float, ptr %arrayidx.i3.i.i1394, align 4, !noalias !63 - %962 = load float, ptr %arrayidx.i4.i.i1395, align 4, !noalias !63 - %963 = load float, ptr %arrayidx.i5.i.i1396, align 4, !noalias !63 + %956 = load <2 x float>, ptr %arrayidx647, align 4, !noalias !63 + %957 = load <2 x float>, ptr %arrayidx5.i.i1330, align 4, !noalias !63 + %958 = load <2 x float>, ptr %arrayidx9.i.i1332, align 4, !noalias !63 + %959 = load float, ptr %arrayidx.i3.i.i1394, align 4, !noalias !63 + %960 = load float, ptr %arrayidx.i4.i.i1395, align 4, !noalias !63 + %961 = load float, ptr %arrayidx.i5.i.i1396, align 4, !noalias !63 %m_bottomVec.i1397 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %add.ptr23, i64 %indvars.iv.next2732, i32 1 - %964 = load float, ptr %m_bottomVec.i1397, align 4, !noalias !63 + %962 = load float, ptr %m_bottomVec.i1397, align 4, !noalias !63 %arrayidx7.i.i6.i1398 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %add.ptr23, i64 %indvars.iv.next2732, i32 1, i32 0, i64 1 - %965 = load float, ptr %arrayidx7.i.i6.i1398, align 4, !noalias !63 + %963 = load float, ptr %arrayidx7.i.i6.i1398, align 4, !noalias !63 %arrayidx12.i.i9.i1400 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %add.ptr23, i64 %indvars.iv.next2732, i32 1, i32 0, i64 2 - %966 = load float, ptr %arrayidx12.i.i9.i1400, align 4, !noalias !63 - %967 = load float, ptr %m_topRightMat3.i, align 4, !noalias !63 + %964 = load float, ptr %arrayidx12.i.i9.i1400, align 4, !noalias !63 + %965 = load float, ptr %m_topRightMat3.i, align 4, !noalias !63 %arrayidx5.i.i46.i1413 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv2731, i32 1, i32 0, i64 0, i32 0, i64 1 - %968 = load float, ptr %arrayidx5.i.i46.i1413, align 4, !noalias !63 + %966 = load float, ptr %arrayidx5.i.i46.i1413, align 4, !noalias !63 %arrayidx10.i.i49.i1415 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv2731, i32 1, i32 0, i64 0, i32 0, i64 2 - %969 = load float, ptr %arrayidx10.i.i49.i1415, align 4, !noalias !63 - %970 = insertelement <2 x float> poison, float %949, i64 0 - %971 = insertelement <2 x float> %970, float %965, i64 1 - %972 = shufflevector <2 x float> %958, <2 x float> poison, <2 x i32> - %973 = insertelement <2 x float> %972, float %968, i64 1 - %974 = fmul <2 x float> %971, %973 - %975 = insertelement <2 x float> %958, float %967, i64 1 - %976 = insertelement <2 x float> poison, float %947, i64 0 - %977 = insertelement <2 x float> %976, float %964, i64 1 - %978 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %975, <2 x float> %977, <2 x float> %974) - %979 = insertelement <2 x float> poison, float %961, i64 0 - %980 = insertelement <2 x float> %979, float %969, i64 1 - %981 = insertelement <2 x float> poison, float %951, i64 0 - %982 = insertelement <2 x float> %981, float %966, i64 1 - %983 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %980, <2 x float> %982, <2 x float> %978) - %984 = load float, ptr %arrayidx5.i3.i1335, align 4, !noalias !63 + %967 = load float, ptr %arrayidx10.i.i49.i1415, align 4, !noalias !63 + %968 = insertelement <2 x float> poison, float %947, i64 0 + %969 = insertelement <2 x float> %968, float %963, i64 1 + %970 = shufflevector <2 x float> %956, <2 x float> poison, <2 x i32> + %971 = insertelement <2 x float> %970, float %966, i64 1 + %972 = fmul <2 x float> %969, %971 + %973 = insertelement <2 x float> %956, float %965, i64 1 + %974 = insertelement <2 x float> poison, float %945, i64 0 + %975 = insertelement <2 x float> %974, float %962, i64 1 + %976 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %973, <2 x float> %975, <2 x float> %972) + %977 = insertelement <2 x float> poison, float %959, i64 0 + %978 = insertelement <2 x float> %977, float %967, i64 1 + %979 = insertelement <2 x float> poison, float %949, i64 0 + %980 = insertelement <2 x float> %979, float %964, i64 1 + %981 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %978, <2 x float> %980, <2 x float> %976) + %982 = load float, ptr %arrayidx5.i3.i1335, align 4, !noalias !63 %arrayidx5.i5.i52.i1417 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv2731, i32 1, i32 0, i64 1, i32 0, i64 1 - %985 = load float, ptr %arrayidx5.i5.i52.i1417, align 4, !noalias !63 + %983 = load float, ptr %arrayidx5.i5.i52.i1417, align 4, !noalias !63 %arrayidx10.i8.i54.i1419 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv2731, i32 1, i32 0, i64 1, i32 0, i64 2 - %986 = load float, ptr %arrayidx10.i8.i54.i1419, align 4, !noalias !63 - %987 = shufflevector <2 x float> %959, <2 x float> poison, <2 x i32> - %988 = insertelement <2 x float> %987, float %985, i64 1 - %989 = fmul <2 x float> %971, %988 - %990 = insertelement <2 x float> %959, float %984, i64 1 - %991 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %990, <2 x float> %977, <2 x float> %989) - %992 = insertelement <2 x float> poison, float %962, i64 0 - %993 = insertelement <2 x float> %992, float %986, i64 1 - %994 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %993, <2 x float> %982, <2 x float> %991) - %995 = load float, ptr %arrayidx9.i5.i, align 4, !noalias !63 + %984 = load float, ptr %arrayidx10.i8.i54.i1419, align 4, !noalias !63 + %985 = shufflevector <2 x float> %957, <2 x float> poison, <2 x i32> + %986 = insertelement <2 x float> %985, float %983, i64 1 + %987 = fmul <2 x float> %969, %986 + %988 = insertelement <2 x float> %957, float %982, i64 1 + %989 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %988, <2 x float> %975, <2 x float> %987) + %990 = insertelement <2 x float> poison, float %960, i64 0 + %991 = insertelement <2 x float> %990, float %984, i64 1 + %992 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %991, <2 x float> %980, <2 x float> %989) + %993 = load float, ptr %arrayidx9.i5.i, align 4, !noalias !63 %arrayidx5.i11.i56.i1421 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv2731, i32 1, i32 0, i64 2, i32 0, i64 1 - %996 = load float, ptr %arrayidx5.i11.i56.i1421, align 4, !noalias !63 + %994 = load float, ptr %arrayidx5.i11.i56.i1421, align 4, !noalias !63 %arrayidx10.i14.i58.i1423 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv2731, i32 1, i32 0, i64 2, i32 0, i64 2 - %997 = load float, ptr %arrayidx10.i14.i58.i1423, align 4, !noalias !63 + %995 = load float, ptr %arrayidx10.i14.i58.i1423, align 4, !noalias !63 %m_bottomVec.i1433 = getelementptr inbounds %struct.btSpatialForceVector, ptr %add.ptr, i64 %indvars.iv2731, i32 1 - %998 = load <2 x float>, ptr %m_bottomVec.i1433, align 4, !noalias !66 + %996 = load <2 x float>, ptr %m_bottomVec.i1433, align 4, !noalias !66 %arrayidx11.i.i1438 = getelementptr inbounds %struct.btSpatialForceVector, ptr %add.ptr, i64 %indvars.iv2731, i32 1, i32 0, i64 2 - %999 = load float, ptr %arrayidx11.i.i1438, align 4, !noalias !66 - %1000 = shufflevector <2 x float> %983, <2 x float> %994, <2 x i32> - %1001 = shufflevector <2 x float> %983, <2 x float> %994, <2 x i32> + %997 = load float, ptr %arrayidx11.i.i1438, align 4, !noalias !66 + %998 = shufflevector <2 x float> %981, <2 x float> %992, <2 x i32> + %999 = shufflevector <2 x float> %981, <2 x float> %992, <2 x i32> + %1000 = fadd <2 x float> %998, %999 + %1001 = load <2 x float>, ptr %arrayidx714, align 4, !noalias !66 %1002 = fadd <2 x float> %1000, %1001 - %1003 = load <2 x float>, ptr %arrayidx714, align 4, !noalias !66 - %1004 = fadd <2 x float> %1002, %1003 %arrayidx11.i6.i1447 = getelementptr inbounds [4 x float], ptr %arrayidx714, i64 0, i64 2 - %1005 = load float, ptr %arrayidx11.i6.i1447, align 4, !noalias !66 - %1006 = insertelement <4 x float> poison, float %949, i64 0 - %1007 = shufflevector <4 x float> %1006, <4 x float> poison, <4 x i32> zeroinitializer - %1008 = insertelement <4 x float> poison, float %956, i64 0 - %1009 = insertelement <4 x float> %1008, float %953, i64 1 - %1010 = insertelement <4 x float> %1009, float %948, i64 2 - %1011 = shufflevector <2 x float> %960, <2 x float> poison, <4 x i32> - %1012 = shufflevector <4 x float> %1010, <4 x float> %1011, <4 x i32> - %1013 = fmul <4 x float> %1007, %1012 - %1014 = insertelement <4 x float> poison, float %955, i64 0 - %1015 = insertelement <4 x float> %1014, float %952, i64 1 - %1016 = insertelement <4 x float> %1015, float %946, i64 2 - %1017 = shufflevector <4 x float> %1016, <4 x float> %1011, <4 x i32> - %1018 = insertelement <4 x float> poison, float %947, i64 0 - %1019 = shufflevector <4 x float> %1018, <4 x float> poison, <4 x i32> zeroinitializer - %1020 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %1017, <4 x float> %1019, <4 x float> %1013) - %1021 = insertelement <4 x float> poison, float %957, i64 0 - %1022 = insertelement <4 x float> %1021, float %954, i64 1 - %1023 = insertelement <4 x float> %1022, float %950, i64 2 - %1024 = insertelement <4 x float> %1023, float %963, i64 3 - %1025 = insertelement <4 x float> poison, float %951, i64 0 - %1026 = shufflevector <4 x float> %1025, <4 x float> poison, <4 x i32> zeroinitializer - %1027 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %1024, <4 x float> %1026, <4 x float> %1020) - %1028 = insertelement <4 x float> poison, float %965, i64 0 - %1029 = shufflevector <4 x float> %1028, <4 x float> poison, <4 x i32> zeroinitializer - %1030 = insertelement <4 x float> poison, float %962, i64 0 - %1031 = shufflevector <2 x float> %959, <2 x float> poison, <4 x i32> - %1032 = shufflevector <4 x float> %1030, <4 x float> %1031, <4 x i32> - %1033 = insertelement <4 x float> %1032, float %996, i64 3 - %1034 = fmul <4 x float> %1029, %1033 - %1035 = insertelement <4 x float> poison, float %961, i64 0 - %1036 = shufflevector <2 x float> %958, <2 x float> poison, <4 x i32> - %1037 = shufflevector <4 x float> %1035, <4 x float> %1036, <4 x i32> - %1038 = insertelement <4 x float> %1037, float %995, i64 3 - %1039 = insertelement <4 x float> poison, float %964, i64 0 - %1040 = shufflevector <4 x float> %1039, <4 x float> poison, <4 x i32> zeroinitializer - %1041 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %1038, <4 x float> %1040, <4 x float> %1034) - %1042 = insertelement <4 x float> poison, float %963, i64 0 - %1043 = shufflevector <2 x float> %960, <2 x float> poison, <4 x i32> - %1044 = shufflevector <4 x float> %1042, <4 x float> %1043, <4 x i32> - %1045 = insertelement <4 x float> %1044, float %997, i64 3 - %1046 = insertelement <4 x float> poison, float %966, i64 0 - %1047 = shufflevector <4 x float> %1046, <4 x float> poison, <4 x i32> zeroinitializer - %1048 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %1045, <4 x float> %1047, <4 x float> %1041) - %1049 = fadd <4 x float> %1027, %1048 - %1050 = insertelement <4 x float> poison, float %999, i64 0 - %1051 = shufflevector <2 x float> %998, <2 x float> poison, <4 x i32> - %1052 = shufflevector <4 x float> %1050, <4 x float> %1051, <4 x i32> - %1053 = insertelement <4 x float> %1052, float %1005, i64 3 - %1054 = fadd <4 x float> %1049, %1053 - %1055 = shufflevector <4 x float> %1054, <4 x float> poison, <2 x i32> - %1056 = shufflevector <4 x float> %1054, <4 x float> poison, <2 x i32> + %1003 = load float, ptr %arrayidx11.i6.i1447, align 4, !noalias !66 + %1004 = insertelement <4 x float> poison, float %947, i64 0 + %1005 = shufflevector <4 x float> %1004, <4 x float> poison, <4 x i32> zeroinitializer + %1006 = insertelement <4 x float> poison, float %954, i64 0 + %1007 = insertelement <4 x float> %1006, float %951, i64 1 + %1008 = insertelement <4 x float> %1007, float %946, i64 2 + %1009 = shufflevector <2 x float> %958, <2 x float> poison, <4 x i32> + %1010 = shufflevector <4 x float> %1008, <4 x float> %1009, <4 x i32> + %1011 = fmul <4 x float> %1005, %1010 + %1012 = insertelement <4 x float> poison, float %953, i64 0 + %1013 = insertelement <4 x float> %1012, float %950, i64 1 + %1014 = insertelement <4 x float> %1013, float %944, i64 2 + %1015 = shufflevector <4 x float> %1014, <4 x float> %1009, <4 x i32> + %1016 = insertelement <4 x float> poison, float %945, i64 0 + %1017 = shufflevector <4 x float> %1016, <4 x float> poison, <4 x i32> zeroinitializer + %1018 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %1015, <4 x float> %1017, <4 x float> %1011) + %1019 = insertelement <4 x float> poison, float %955, i64 0 + %1020 = insertelement <4 x float> %1019, float %952, i64 1 + %1021 = insertelement <4 x float> %1020, float %948, i64 2 + %1022 = insertelement <4 x float> %1021, float %961, i64 3 + %1023 = insertelement <4 x float> poison, float %949, i64 0 + %1024 = shufflevector <4 x float> %1023, <4 x float> poison, <4 x i32> zeroinitializer + %1025 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %1022, <4 x float> %1024, <4 x float> %1018) + %1026 = insertelement <4 x float> poison, float %963, i64 0 + %1027 = shufflevector <4 x float> %1026, <4 x float> poison, <4 x i32> zeroinitializer + %1028 = insertelement <4 x float> poison, float %960, i64 0 + %1029 = shufflevector <2 x float> %957, <2 x float> poison, <4 x i32> + %1030 = shufflevector <4 x float> %1028, <4 x float> %1029, <4 x i32> + %1031 = insertelement <4 x float> %1030, float %994, i64 3 + %1032 = fmul <4 x float> %1027, %1031 + %1033 = insertelement <4 x float> poison, float %959, i64 0 + %1034 = shufflevector <2 x float> %956, <2 x float> poison, <4 x i32> + %1035 = shufflevector <4 x float> %1033, <4 x float> %1034, <4 x i32> + %1036 = insertelement <4 x float> %1035, float %993, i64 3 + %1037 = insertelement <4 x float> poison, float %962, i64 0 + %1038 = shufflevector <4 x float> %1037, <4 x float> poison, <4 x i32> zeroinitializer + %1039 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %1036, <4 x float> %1038, <4 x float> %1032) + %1040 = insertelement <4 x float> poison, float %961, i64 0 + %1041 = shufflevector <2 x float> %958, <2 x float> poison, <4 x i32> + %1042 = shufflevector <4 x float> %1040, <4 x float> %1041, <4 x i32> + %1043 = insertelement <4 x float> %1042, float %995, i64 3 + %1044 = insertelement <4 x float> poison, float %964, i64 0 + %1045 = shufflevector <4 x float> %1044, <4 x float> poison, <4 x i32> zeroinitializer + %1046 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %1043, <4 x float> %1045, <4 x float> %1039) + %1047 = fadd <4 x float> %1025, %1046 + %1048 = insertelement <4 x float> poison, float %997, i64 0 + %1049 = shufflevector <2 x float> %996, <2 x float> poison, <4 x i32> + %1050 = shufflevector <4 x float> %1048, <4 x float> %1049, <4 x i32> + %1051 = insertelement <4 x float> %1050, float %1003, i64 3 + %1052 = fadd <4 x float> %1047, %1051 + %1053 = shufflevector <4 x float> %1052, <4 x float> poison, <2 x i32> + %1054 = shufflevector <4 x float> %1052, <4 x float> poison, <2 x i32> + %1055 = insertelement <2 x float> %1054, float 0.000000e+00, i64 1 + %1056 = shufflevector <4 x float> %1052, <4 x float> poison, <2 x i32> %1057 = insertelement <2 x float> %1056, float 0.000000e+00, i64 1 - %1058 = shufflevector <4 x float> %1054, <4 x float> poison, <2 x i32> - %1059 = insertelement <2 x float> %1058, float 0.000000e+00, i64 1 - store <2 x float> %1004, ptr %spatForceVecTemps, align 16 - store <2 x float> %1059, ptr %ref.tmp711.sroa.2.0.spatForceVecTemps.sroa_idx, align 8 - store <2 x float> %1055, ptr %ref.tmp711.sroa.3.0.spatForceVecTemps.sroa_idx, align 16 - store <2 x float> %1057, ptr %ref.tmp711.sroa.4.0.spatForceVecTemps.sroa_idx, align 8 - %1060 = extractelement <2 x float> %1004, i64 0 - %1061 = extractelement <2 x float> %1004, i64 1 + store <2 x float> %1002, ptr %spatForceVecTemps, align 16 + store <2 x float> %1057, ptr %ref.tmp711.sroa.2.0.spatForceVecTemps.sroa_idx, align 8 + store <2 x float> %1053, ptr %ref.tmp711.sroa.3.0.spatForceVecTemps.sroa_idx, align 16 + store <2 x float> %1055, ptr %ref.tmp711.sroa.4.0.spatForceVecTemps.sroa_idx, align 8 + %1058 = extractelement <2 x float> %1002, i64 0 + %1059 = extractelement <2 x float> %1002, i64 1 br i1 %cmp6782634, label %for.body728.lr.ph, label %for.end743 for.body728.lr.ph: ; preds = %for.end710 - %m_dofOffset732 = getelementptr inbounds %struct.btMultibodyLink, ptr %936, i64 %indvars.iv.next2732, i32 9 - %wide.trip.count2729 = zext nneg i32 %937 to i64 + %m_dofOffset732 = getelementptr inbounds %struct.btMultibodyLink, ptr %935, i64 %indvars.iv.next2732, i32 9 + %wide.trip.count2729 = zext nneg i32 %936 to i64 %.pre2787 = load i32, ptr %m_dofOffset732, align 8 br label %for.body728 for.body728: ; preds = %for.body728.lr.ph, %for.body728 %indvars.iv2726 = phi i64 [ 0, %for.body728.lr.ph ], [ %indvars.iv.next2727, %for.body728 ] - %1062 = phi <4 x float> [ %1054, %for.body728.lr.ph ], [ %1081, %for.body728 ] - %1063 = phi <2 x float> [ %1004, %for.body728.lr.ph ], [ %1080, %for.body728 ] - %1064 = trunc i64 %indvars.iv2726 to i32 - %add733 = add nsw i32 %.pre2787, %1064 + %1060 = phi <4 x float> [ %1052, %for.body728.lr.ph ], [ %1079, %for.body728 ] + %1061 = phi <2 x float> [ %1002, %for.body728.lr.ph ], [ %1078, %for.body728 ] + %1062 = trunc i64 %indvars.iv2726 to i32 + %add733 = add nsw i32 %.pre2787, %1062 %idxprom734 = sext i32 %add733 to i64 %arrayidx735 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond2569, i64 %idxprom734 %arrayidx738 = getelementptr inbounds [6 x float], ptr %invD_times_Y, i64 0, i64 %indvars.iv2726 %m_bottomVec.i1456 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond2569, i64 %idxprom734, i32 1 - %1065 = load float, ptr %arrayidx738, align 4, !noalias !69 - %1066 = load <2 x float>, ptr %m_bottomVec.i1456, align 4, !noalias !69 + %1063 = load float, ptr %arrayidx738, align 4, !noalias !69 + %1064 = load <2 x float>, ptr %m_bottomVec.i1456, align 4, !noalias !69 %arrayidx7.i.i.i1460 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond2569, i64 %idxprom734, i32 1, i32 0, i64 2 - %1067 = load float, ptr %arrayidx7.i.i.i1460, align 4, !noalias !69 - %1068 = load <2 x float>, ptr %arrayidx735, align 4, !noalias !69 - %1069 = insertelement <2 x float> poison, float %1065, i64 0 - %1070 = shufflevector <2 x float> %1069, <2 x float> poison, <2 x i32> zeroinitializer - %1071 = fmul <2 x float> %1070, %1068 + %1065 = load float, ptr %arrayidx7.i.i.i1460, align 4, !noalias !69 + %1066 = load <2 x float>, ptr %arrayidx735, align 4, !noalias !69 + %1067 = insertelement <2 x float> poison, float %1063, i64 0 + %1068 = shufflevector <2 x float> %1067, <2 x float> poison, <2 x i32> zeroinitializer + %1069 = fmul <2 x float> %1068, %1066 %arrayidx7.i.i5.i1468 = getelementptr inbounds [4 x float], ptr %arrayidx735, i64 0, i64 2 - %1072 = load float, ptr %arrayidx7.i.i5.i1468, align 4, !noalias !69 + %1070 = load float, ptr %arrayidx7.i.i5.i1468, align 4, !noalias !69 + %1071 = insertelement <4 x float> poison, float %1063, i64 0 + %1072 = shufflevector <4 x float> %1071, <4 x float> poison, <4 x i32> zeroinitializer %1073 = insertelement <4 x float> poison, float %1065, i64 0 - %1074 = shufflevector <4 x float> %1073, <4 x float> poison, <4 x i32> zeroinitializer - %1075 = insertelement <4 x float> poison, float %1067, i64 0 - %1076 = shufflevector <2 x float> %1066, <2 x float> poison, <4 x i32> - %1077 = shufflevector <4 x float> %1075, <4 x float> %1076, <4 x i32> - %1078 = insertelement <4 x float> %1077, float %1072, i64 3 - %1079 = fmul <4 x float> %1074, %1078 - %1080 = fadd <2 x float> %1071, %1063 - %1081 = fadd <4 x float> %1079, %1062 + %1074 = shufflevector <2 x float> %1064, <2 x float> poison, <4 x i32> + %1075 = shufflevector <4 x float> %1073, <4 x float> %1074, <4 x i32> + %1076 = insertelement <4 x float> %1075, float %1070, i64 3 + %1077 = fmul <4 x float> %1072, %1076 + %1078 = fadd <2 x float> %1069, %1061 + %1079 = fadd <4 x float> %1077, %1060 %indvars.iv.next2727 = add nuw nsw i64 %indvars.iv2726, 1 %exitcond2730.not = icmp eq i64 %indvars.iv.next2727, %wide.trip.count2729 br i1 %exitcond2730.not, label %for.end743.loopexit, label %for.body728, !llvm.loop !72 for.end743.loopexit: ; preds = %for.body728 - store <2 x float> %1080, ptr %spatForceVecTemps, align 16 - %1082 = extractelement <4 x float> %1081, i64 3 - store float %1082, ptr %ref.tmp711.sroa.2.0.spatForceVecTemps.sroa_idx, align 8 - %1083 = shufflevector <4 x float> %1081, <4 x float> poison, <2 x i32> - store <2 x float> %1083, ptr %ref.tmp711.sroa.3.0.spatForceVecTemps.sroa_idx, align 16 - %1084 = extractelement <4 x float> %1081, i64 0 - store float %1084, ptr %ref.tmp711.sroa.4.0.spatForceVecTemps.sroa_idx, align 8 - %1085 = extractelement <2 x float> %1080, i64 0 - %1086 = extractelement <2 x float> %1080, i64 1 + store <2 x float> %1078, ptr %spatForceVecTemps, align 16 + %1080 = extractelement <4 x float> %1079, i64 3 + store float %1080, ptr %ref.tmp711.sroa.2.0.spatForceVecTemps.sroa_idx, align 8 + %1081 = shufflevector <4 x float> %1079, <4 x float> poison, <2 x i32> + store <2 x float> %1081, ptr %ref.tmp711.sroa.3.0.spatForceVecTemps.sroa_idx, align 16 + %1082 = extractelement <4 x float> %1079, i64 0 + store float %1082, ptr %ref.tmp711.sroa.4.0.spatForceVecTemps.sroa_idx, align 8 + %1083 = extractelement <2 x float> %1078, i64 0 + %1084 = extractelement <2 x float> %1078, i64 1 br label %for.end743 for.end743: ; preds = %for.end743.loopexit, %for.end710 - %1087 = phi float [ %1061, %for.end710 ], [ %1086, %for.end743.loopexit ] - %1088 = phi float [ %1060, %for.end710 ], [ %1085, %for.end743.loopexit ] - %1089 = phi <4 x float> [ %1054, %for.end710 ], [ %1081, %for.end743.loopexit ] - %1090 = load float, ptr %arrayidx.i3.i.i1497, align 8, !noalias !73 - %1091 = load float, ptr %arrayidx.i4.i.i1498, align 8, !noalias !73 - %1092 = load float, ptr %arrayidx.i5.i.i1499, align 8, !noalias !73 - %mul8.i13.i.i1504 = fmul float %1091, %1087 - %1093 = call float @llvm.fmuladd.f32(float %1090, float %1088, float %mul8.i13.i.i1504) - %1094 = extractelement <4 x float> %1089, i64 3 - %1095 = call noundef float @llvm.fmuladd.f32(float %1092, float %1094, float %1093) - %retval.sroa.3.12.vec.insert.i.i1507 = insertelement <2 x float> , float %1095, i64 0 + %1085 = phi float [ %1059, %for.end710 ], [ %1084, %for.end743.loopexit ] + %1086 = phi float [ %1058, %for.end710 ], [ %1083, %for.end743.loopexit ] + %1087 = phi <4 x float> [ %1052, %for.end710 ], [ %1079, %for.end743.loopexit ] + %1088 = load float, ptr %arrayidx.i3.i.i1497, align 8, !noalias !73 + %1089 = load float, ptr %arrayidx.i4.i.i1498, align 8, !noalias !73 + %1090 = load float, ptr %arrayidx.i5.i.i1499, align 8, !noalias !73 + %mul8.i13.i.i1504 = fmul float %1089, %1085 + %1091 = call float @llvm.fmuladd.f32(float %1088, float %1086, float %mul8.i13.i.i1504) + %1092 = extractelement <4 x float> %1087, i64 3 + %1093 = call noundef float @llvm.fmuladd.f32(float %1090, float %1092, float %1091) + %retval.sroa.3.12.vec.insert.i.i1507 = insertelement <2 x float> , float %1093, i64 0 store <2 x float> %retval.sroa.3.12.vec.insert.i.i1507, ptr %ref.tmp.sroa.2.0.m_topVec3.sroa_idx.i1508, align 8 - %1096 = load float, ptr %arrayidx.i.i1511, align 4 - %1097 = load float, ptr %arrayidx5.i.i1512, align 8 - %1098 = fneg float %1097 - %neg.i.i1513 = fmul float %1087, %1098 - %1099 = call float @llvm.fmuladd.f32(float %1096, float %1094, float %neg.i.i1513) - %1100 = load float, ptr %m_trnVec468, align 16 - %1101 = fneg float %1100 - %neg19.i.i1514 = fmul float %1094, %1101 - %1102 = call float @llvm.fmuladd.f32(float %1097, float %1088, float %neg19.i.i1514) - %1103 = fneg float %1096 - %neg30.i.i1515 = fmul float %1088, %1103 - %1104 = call float @llvm.fmuladd.f32(float %1100, float %1087, float %neg30.i.i1515) - %1105 = extractelement <4 x float> %1089, i64 2 - %add.i.i1516 = fadd float %1099, %1105 - %1106 = extractelement <4 x float> %1089, i64 1 - %add8.i.i1517 = fadd float %1106, %1102 - %1107 = extractelement <4 x float> %1089, i64 0 - %add14.i.i1519 = fadd float %1104, %1107 - %mul8.i13.i60.i = fmul float %1091, %add8.i.i1517 - %1108 = call float @llvm.fmuladd.f32(float %1090, float %add.i.i1516, float %mul8.i13.i60.i) - %1109 = call noundef float @llvm.fmuladd.f32(float %1092, float %add14.i.i1519, float %1108) - %retval.sroa.3.12.vec.insert.i64.i = insertelement <2 x float> , float %1109, i64 0 + %1094 = load float, ptr %arrayidx.i.i1511, align 4 + %1095 = load float, ptr %arrayidx5.i.i1512, align 8 + %1096 = fneg float %1095 + %neg.i.i1513 = fmul float %1085, %1096 + %1097 = call float @llvm.fmuladd.f32(float %1094, float %1092, float %neg.i.i1513) + %1098 = load float, ptr %m_trnVec468, align 16 + %1099 = fneg float %1098 + %neg19.i.i1514 = fmul float %1092, %1099 + %1100 = call float @llvm.fmuladd.f32(float %1095, float %1086, float %neg19.i.i1514) + %1101 = fneg float %1094 + %neg30.i.i1515 = fmul float %1086, %1101 + %1102 = call float @llvm.fmuladd.f32(float %1098, float %1085, float %neg30.i.i1515) + %1103 = extractelement <4 x float> %1087, i64 2 + %add.i.i1516 = fadd float %1097, %1103 + %1104 = extractelement <4 x float> %1087, i64 1 + %add8.i.i1517 = fadd float %1104, %1100 + %1105 = extractelement <4 x float> %1087, i64 0 + %add14.i.i1519 = fadd float %1102, %1105 + %mul8.i13.i60.i = fmul float %1089, %add8.i.i1517 + %1106 = call float @llvm.fmuladd.f32(float %1088, float %add.i.i1516, float %mul8.i13.i60.i) + %1107 = call noundef float @llvm.fmuladd.f32(float %1090, float %add14.i.i1519, float %1106) + %retval.sroa.3.12.vec.insert.i64.i = insertelement <2 x float> , float %1107, i64 0 store <2 x float> %retval.sroa.3.12.vec.insert.i64.i, ptr %ref.tmp4.sroa.2.0.m_bottomVec16.sroa_idx.i1521, align 8 %arrayidx749 = getelementptr inbounds %struct.btSpatialForceVector, ptr %add.ptr, i64 %idxprom671 - %1110 = load <2 x float>, ptr %fromParent, align 16, !noalias !73 - %1111 = load <2 x float>, ptr %arrayidx7.i1140, align 16, !noalias !73 - %1112 = load <2 x float>, ptr %arrayidx11.i1142, align 16, !noalias !73 - %1113 = insertelement <2 x float> poison, float %1087, i64 0 - %1114 = shufflevector <2 x float> %1113, <2 x float> poison, <2 x i32> zeroinitializer - %1115 = fmul <2 x float> %1111, %1114 - %1116 = insertelement <2 x float> poison, float %1088, i64 0 - %1117 = shufflevector <2 x float> %1116, <2 x float> poison, <2 x i32> zeroinitializer - %1118 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1110, <2 x float> %1117, <2 x float> %1115) - %1119 = shufflevector <4 x float> %1089, <4 x float> poison, <2 x i32> - %1120 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1112, <2 x float> %1119, <2 x float> %1118) - store <2 x float> %1120, ptr %arrayidx745, align 16 - %1121 = load <2 x float>, ptr %arrayidx749, align 4 - %1122 = fadd <2 x float> %1121, %1120 - store <2 x float> %1122, ptr %arrayidx749, align 4 + %1108 = load <2 x float>, ptr %fromParent, align 16, !noalias !73 + %1109 = load <2 x float>, ptr %arrayidx7.i1140, align 16, !noalias !73 + %1110 = load <2 x float>, ptr %arrayidx11.i1142, align 16, !noalias !73 + %1111 = insertelement <2 x float> poison, float %1085, i64 0 + %1112 = shufflevector <2 x float> %1111, <2 x float> poison, <2 x i32> zeroinitializer + %1113 = fmul <2 x float> %1109, %1112 + %1114 = insertelement <2 x float> poison, float %1086, i64 0 + %1115 = shufflevector <2 x float> %1114, <2 x float> poison, <2 x i32> zeroinitializer + %1116 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1108, <2 x float> %1115, <2 x float> %1113) + %1117 = shufflevector <4 x float> %1087, <4 x float> poison, <2 x i32> + %1118 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1110, <2 x float> %1117, <2 x float> %1116) + store <2 x float> %1118, ptr %arrayidx745, align 16 + %1119 = load <2 x float>, ptr %arrayidx749, align 4 + %1120 = fadd <2 x float> %1119, %1118 + store <2 x float> %1120, ptr %arrayidx749, align 4 %arrayidx12.i.i1527 = getelementptr inbounds [4 x float], ptr %arrayidx749, i64 0, i64 2 - %1123 = load float, ptr %arrayidx12.i.i1527, align 4 - %add13.i.i1528 = fadd float %1095, %1123 + %1121 = load float, ptr %arrayidx12.i.i1527, align 4 + %add13.i.i1528 = fadd float %1093, %1121 store float %add13.i.i1528, ptr %arrayidx12.i.i1527, align 4 %m_bottomVec3.i1530 = getelementptr inbounds %struct.btSpatialForceVector, ptr %add.ptr, i64 %idxprom671, i32 1 - %1124 = insertelement <2 x float> poison, float %add8.i.i1517, i64 0 - %1125 = shufflevector <2 x float> %1124, <2 x float> poison, <2 x i32> zeroinitializer - %1126 = fmul <2 x float> %1111, %1125 - %1127 = insertelement <2 x float> poison, float %add.i.i1516, i64 0 - %1128 = shufflevector <2 x float> %1127, <2 x float> poison, <2 x i32> zeroinitializer - %1129 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1110, <2 x float> %1128, <2 x float> %1126) - %1130 = insertelement <2 x float> poison, float %add14.i.i1519, i64 0 - %1131 = shufflevector <2 x float> %1130, <2 x float> poison, <2 x i32> zeroinitializer - %1132 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1112, <2 x float> %1131, <2 x float> %1129) - store <2 x float> %1132, ptr %m_bottomVec16.i1520, align 16 - %1133 = load <2 x float>, ptr %m_bottomVec3.i1530, align 4 - %1134 = fadd <2 x float> %1133, %1132 - store <2 x float> %1134, ptr %m_bottomVec3.i1530, align 4 + %1122 = insertelement <2 x float> poison, float %add8.i.i1517, i64 0 + %1123 = shufflevector <2 x float> %1122, <2 x float> poison, <2 x i32> zeroinitializer + %1124 = fmul <2 x float> %1109, %1123 + %1125 = insertelement <2 x float> poison, float %add.i.i1516, i64 0 + %1126 = shufflevector <2 x float> %1125, <2 x float> poison, <2 x i32> zeroinitializer + %1127 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1108, <2 x float> %1126, <2 x float> %1124) + %1128 = insertelement <2 x float> poison, float %add14.i.i1519, i64 0 + %1129 = shufflevector <2 x float> %1128, <2 x float> poison, <2 x i32> zeroinitializer + %1130 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1110, <2 x float> %1129, <2 x float> %1127) + store <2 x float> %1130, ptr %m_bottomVec16.i1520, align 16 + %1131 = load <2 x float>, ptr %m_bottomVec3.i1530, align 4 + %1132 = fadd <2 x float> %1131, %1130 + store <2 x float> %1132, ptr %m_bottomVec3.i1530, align 4 %arrayidx12.i7.i1536 = getelementptr inbounds %struct.btSpatialForceVector, ptr %add.ptr, i64 %idxprom671, i32 1, i32 0, i64 2 - %1135 = load float, ptr %arrayidx12.i7.i1536, align 4 - %add13.i8.i1537 = fadd float %1109, %1135 + %1133 = load float, ptr %arrayidx12.i7.i1536, align 4 + %add13.i8.i1537 = fadd float %1107, %1133 store float %add13.i8.i1537, ptr %arrayidx12.i7.i1536, align 4 br label %for.inc751 @@ -7346,21 +7343,21 @@ for.inc751: ; preds = %_ZNK11btMultiBody30 br i1 %cmp451, label %if.else.i.lr.ph.i, label %for.end752, !llvm.loop !74 for.end752: ; preds = %for.inc751, %if.end142, %for.cond450.preheader - %1136 = load i8, ptr %m_fixedBase.i, align 1 - %1137 = and i8 %1136, 1 - %tobool.not.i1539 = icmp eq i8 %1137, 0 + %1134 = load i8, ptr %m_fixedBase.i, align 1 + %1135 = and i8 %1134, 1 + %tobool.not.i1539 = icmp eq i8 %1135, 0 br i1 %tobool.not.i1539, label %lor.rhs.i1540, label %if.then754 lor.rhs.i1540: ; preds = %for.end752 %m_baseCollider.i.i1541 = getelementptr inbounds %class.btMultiBody, ptr %this, i64 0, i32 1 - %1138 = load ptr, ptr %m_baseCollider.i.i1541, align 8 - %tobool2.not.i1542 = icmp eq ptr %1138, null + %1136 = load ptr, ptr %m_baseCollider.i.i1541, align 8 + %tobool2.not.i1542 = icmp eq ptr %1136, null br i1 %tobool2.not.i1542, label %if.else756, label %_ZNK11btMultiBody23isBaseStaticOrKinematicEv.exit1547 _ZNK11btMultiBody23isBaseStaticOrKinematicEv.exit1547: ; preds = %lor.rhs.i1540 - %m_collisionFlags.i.i1544 = getelementptr inbounds %class.btCollisionObject, ptr %1138, i64 0, i32 12 - %1139 = load i32, ptr %m_collisionFlags.i.i1544, align 8 - %and.i.i1545 = and i32 %1139, 3 + %m_collisionFlags.i.i1544 = getelementptr inbounds %class.btCollisionObject, ptr %1136, i64 0, i32 12 + %1137 = load i32, ptr %m_collisionFlags.i.i1544, align 8 + %and.i.i1545 = and i32 %1137, 3 %cmp.i.i1546.not = icmp eq i32 %and.i.i1545, 0 br i1 %cmp.i.i1546.not, label %if.else756, label %if.then754 @@ -7392,68 +7389,68 @@ if.then758: ; preds = %if.else756 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %arrayidx7.i1557, ptr noundef nonnull align 4 dereferenceable(16) %arrayidx7.i6.i, i64 16, i1 false) %arrayidx11.i1559 = getelementptr inbounds %class.btMultiBody, ptr %this, i64 0, i32 22, i32 0, i64 2 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %arrayidx11.i1559, ptr noundef nonnull align 4 dereferenceable(16) %arrayidx11.i8.i, i64 16, i1 false) - %1140 = load float, ptr %arrayidx.i388, align 4, !noalias !75 - %1141 = load float, ptr %arrayidx7.i.i620, align 4, !noalias !75 - %1142 = load float, ptr %arrayidx11.i.i, align 4, !noalias !75 - %1143 = load float, ptr %ref.tmp144.sroa.2.0.arrayidx.i388.sroa_idx, align 4, !noalias !75 - %1144 = load float, ptr %ref.tmp144.sroa.7.16.arrayidx7.i.i620.sroa_idx, align 4, !noalias !75 - %1145 = load float, ptr %ref.tmp144.sroa.12.32.arrayidx11.i.i.sroa_idx, align 4, !noalias !75 - %1146 = load float, ptr %ref.tmp144.sroa.3.0.arrayidx.i388.sroa_idx, align 4, !noalias !75 - %1147 = load float, ptr %ref.tmp144.sroa.8.16.arrayidx7.i.i620.sroa_idx, align 4, !noalias !75 - %1148 = load float, ptr %ref.tmp144.sroa.13.32.arrayidx11.i.i.sroa_idx, align 4, !noalias !75 + %1138 = load float, ptr %arrayidx.i388, align 4, !noalias !75 + %1139 = load float, ptr %arrayidx7.i.i620, align 4, !noalias !75 + %1140 = load float, ptr %arrayidx11.i.i, align 4, !noalias !75 + %1141 = load float, ptr %ref.tmp144.sroa.2.0.arrayidx.i388.sroa_idx, align 4, !noalias !75 + %1142 = load float, ptr %ref.tmp144.sroa.7.16.arrayidx7.i.i620.sroa_idx, align 4, !noalias !75 + %1143 = load float, ptr %ref.tmp144.sroa.12.32.arrayidx11.i.i.sroa_idx, align 4, !noalias !75 + %1144 = load float, ptr %ref.tmp144.sroa.3.0.arrayidx.i388.sroa_idx, align 4, !noalias !75 + %1145 = load float, ptr %ref.tmp144.sroa.8.16.arrayidx7.i.i620.sroa_idx, align 4, !noalias !75 + %1146 = load float, ptr %ref.tmp144.sroa.13.32.arrayidx11.i.i.sroa_idx, align 4, !noalias !75 %m_cachedInertiaLowerRight = getelementptr inbounds %class.btMultiBody, ptr %this, i64 0, i32 23 - store float %1140, ptr %m_cachedInertiaLowerRight, align 8 + store float %1138, ptr %m_cachedInertiaLowerRight, align 8 %ref.tmp765.sroa.2.0.m_cachedInertiaLowerRight.sroa_idx = getelementptr inbounds %class.btMultiBody, ptr %this, i64 0, i32 23, i32 0, i64 0, i32 0, i64 1 - store float %1141, ptr %ref.tmp765.sroa.2.0.m_cachedInertiaLowerRight.sroa_idx, align 4 + store float %1139, ptr %ref.tmp765.sroa.2.0.m_cachedInertiaLowerRight.sroa_idx, align 4 %ref.tmp765.sroa.3.0.m_cachedInertiaLowerRight.sroa_idx = getelementptr inbounds %class.btMultiBody, ptr %this, i64 0, i32 23, i32 0, i64 0, i32 0, i64 2 - store float %1142, ptr %ref.tmp765.sroa.3.0.m_cachedInertiaLowerRight.sroa_idx, align 8 + store float %1140, ptr %ref.tmp765.sroa.3.0.m_cachedInertiaLowerRight.sroa_idx, align 8 %ref.tmp765.sroa.4.0.m_cachedInertiaLowerRight.sroa_idx = getelementptr inbounds %class.btMultiBody, ptr %this, i64 0, i32 23, i32 0, i64 0, i32 0, i64 3 store float 0.000000e+00, ptr %ref.tmp765.sroa.4.0.m_cachedInertiaLowerRight.sroa_idx, align 4 %arrayidx7.i1577 = getelementptr inbounds %class.btMultiBody, ptr %this, i64 0, i32 23, i32 0, i64 1 - store float %1143, ptr %arrayidx7.i1577, align 8 + store float %1141, ptr %arrayidx7.i1577, align 8 %ref.tmp765.sroa.7.16.arrayidx7.i1577.sroa_idx = getelementptr inbounds %class.btMultiBody, ptr %this, i64 0, i32 23, i32 0, i64 1, i32 0, i64 1 - store float %1144, ptr %ref.tmp765.sroa.7.16.arrayidx7.i1577.sroa_idx, align 4 + store float %1142, ptr %ref.tmp765.sroa.7.16.arrayidx7.i1577.sroa_idx, align 4 %ref.tmp765.sroa.8.16.arrayidx7.i1577.sroa_idx = getelementptr inbounds %class.btMultiBody, ptr %this, i64 0, i32 23, i32 0, i64 1, i32 0, i64 2 - store float %1145, ptr %ref.tmp765.sroa.8.16.arrayidx7.i1577.sroa_idx, align 8 + store float %1143, ptr %ref.tmp765.sroa.8.16.arrayidx7.i1577.sroa_idx, align 8 %ref.tmp765.sroa.9.16.arrayidx7.i1577.sroa_idx = getelementptr inbounds %class.btMultiBody, ptr %this, i64 0, i32 23, i32 0, i64 1, i32 0, i64 3 store float 0.000000e+00, ptr %ref.tmp765.sroa.9.16.arrayidx7.i1577.sroa_idx, align 4 %arrayidx11.i1579 = getelementptr inbounds %class.btMultiBody, ptr %this, i64 0, i32 23, i32 0, i64 2 - store float %1146, ptr %arrayidx11.i1579, align 8 + store float %1144, ptr %arrayidx11.i1579, align 8 %ref.tmp765.sroa.12.32.arrayidx11.i1579.sroa_idx = getelementptr inbounds %class.btMultiBody, ptr %this, i64 0, i32 23, i32 0, i64 2, i32 0, i64 1 - store float %1147, ptr %ref.tmp765.sroa.12.32.arrayidx11.i1579.sroa_idx, align 4 + store float %1145, ptr %ref.tmp765.sroa.12.32.arrayidx11.i1579.sroa_idx, align 4 %ref.tmp765.sroa.13.32.arrayidx11.i1579.sroa_idx = getelementptr inbounds %class.btMultiBody, ptr %this, i64 0, i32 23, i32 0, i64 2, i32 0, i64 2 - store float %1148, ptr %ref.tmp765.sroa.13.32.arrayidx11.i1579.sroa_idx, align 8 + store float %1146, ptr %ref.tmp765.sroa.13.32.arrayidx11.i1579.sroa_idx, align 8 %ref.tmp765.sroa.14.32.arrayidx11.i1579.sroa_idx = getelementptr inbounds %class.btMultiBody, ptr %this, i64 0, i32 23, i32 0, i64 2, i32 0, i64 3 store float 0.000000e+00, ptr %ref.tmp765.sroa.14.32.arrayidx11.i1579.sroa_idx, align 4 br label %if.end769 if.end769: ; preds = %if.then758, %if.else756 call void @_ZNK11btMultiBody12solveImatrixERK20btSpatialForceVectorR21btSpatialMotionVector(ptr noundef nonnull align 8 dereferenceable(640) %this, ptr noundef nonnull align 4 dereferenceable(32) %add.ptr, ptr noundef nonnull align 4 dereferenceable(32) %result) - %1149 = load <2 x float>, ptr %result, align 8, !noalias !78 - %1150 = fneg <2 x float> %1149 + %1147 = load <2 x float>, ptr %result, align 8, !noalias !78 + %1148 = fneg <2 x float> %1147 %arrayidx7.i.i1581 = getelementptr inbounds [4 x float], ptr %result, i64 0, i64 2 - %1151 = load float, ptr %arrayidx7.i.i1581, align 8, !noalias !78 - %fneg8.i.i = fneg float %1151 + %1149 = load float, ptr %arrayidx7.i.i1581, align 8, !noalias !78 + %fneg8.i.i = fneg float %1149 %retval.sroa.3.12.vec.insert.i.i1584 = insertelement <2 x float> , float %fneg8.i.i, i64 0 %m_bottomVec.i1585 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %result, i64 0, i32 1 - %1152 = load <2 x float>, ptr %m_bottomVec.i1585, align 8, !noalias !78 - %1153 = fneg <2 x float> %1152 + %1150 = load <2 x float>, ptr %m_bottomVec.i1585, align 8, !noalias !78 + %1151 = fneg <2 x float> %1150 %arrayidx7.i4.i1586 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %result, i64 0, i32 1, i32 0, i64 2 - %1154 = load float, ptr %arrayidx7.i4.i1586, align 8, !noalias !78 - %fneg8.i5.i = fneg float %1154 + %1152 = load float, ptr %arrayidx7.i4.i1586, align 8, !noalias !78 + %fneg8.i5.i = fneg float %1152 %retval.sroa.3.12.vec.insert.i8.i = insertelement <2 x float> , float %fneg8.i5.i, i64 0 - store <2 x float> %1150, ptr %add.ptr26, align 4 + store <2 x float> %1148, ptr %add.ptr26, align 4 %ref.tmp771.sroa.2.0.add.ptr26.sroa_idx = getelementptr inbounds i8, ptr %add.ptr26, i64 8 store <2 x float> %retval.sroa.3.12.vec.insert.i.i1584, ptr %ref.tmp771.sroa.2.0.add.ptr26.sroa_idx, align 4 %ref.tmp771.sroa.3.0.add.ptr26.sroa_idx = getelementptr inbounds i8, ptr %add.ptr26, i64 16 - store <2 x float> %1153, ptr %ref.tmp771.sroa.3.0.add.ptr26.sroa_idx, align 4 + store <2 x float> %1151, ptr %ref.tmp771.sroa.3.0.add.ptr26.sroa_idx, align 4 %ref.tmp771.sroa.4.0.add.ptr26.sroa_idx = getelementptr inbounds i8, ptr %add.ptr26, i64 24 store <2 x float> %retval.sroa.3.12.vec.insert.i8.i, ptr %ref.tmp771.sroa.4.0.add.ptr26.sroa_idx, align 4 br label %if.end773 if.end773: ; preds = %if.end769, %if.then754 - %1155 = phi float [ %fneg8.i.i, %if.end769 ], [ 0.000000e+00, %if.then754 ] - %1156 = phi <2 x float> [ %1150, %if.end769 ], [ zeroinitializer, %if.then754 ] + %1153 = phi float [ %fneg8.i.i, %if.end769 ], [ 0.000000e+00, %if.then754 ] + %1154 = phi <2 x float> [ %1148, %if.end769 ], [ zeroinitializer, %if.then754 ] br i1 %cmp1832607, label %for.body777.lr.ph, label %for.end1009 for.body777.lr.ph: ; preds = %if.end773 @@ -7474,9 +7471,9 @@ for.body777.lr.ph: ; preds = %if.end773 for.body777: ; preds = %for.body777.lr.ph, %for.inc1007 %indvars.iv2743 = phi i64 [ 0, %for.body777.lr.ph ], [ %indvars.iv.next2744, %for.inc1007 ] - %1157 = load ptr, ptr %m_data.i1590, align 8 - %m_parent781 = getelementptr inbounds %struct.btMultibodyLink, ptr %1157, i64 %indvars.iv2743, i32 2 - %1158 = load i32, ptr %m_parent781, align 4 + %1155 = load ptr, ptr %m_data.i1590, align 8 + %m_parent781 = getelementptr inbounds %struct.btMultibodyLink, ptr %1155, i64 %indvars.iv2743, i32 2 + %1156 = load i32, ptr %m_parent781, align 4 %indvars.iv.next2744 = add nuw nsw i64 %indvars.iv2743, 1 %arrayidx784 = getelementptr inbounds %class.btMatrix3x3, ptr %32, i64 %indvars.iv.next2744 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %fromParent, ptr noundef nonnull align 4 dereferenceable(16) %arrayidx784, i64 16, i1 false) @@ -7484,189 +7481,189 @@ for.body777: ; preds = %for.body777.lr.ph, call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %arrayidx7.i1594, ptr noundef nonnull align 4 dereferenceable(16) %arrayidx5.i1593, i64 16, i1 false) %arrayidx9.i1595 = getelementptr inbounds [3 x %class.btVector3], ptr %arrayidx784, i64 0, i64 2 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %arrayidx11.i1596, ptr noundef nonnull align 4 dereferenceable(16) %arrayidx9.i1595, i64 16, i1 false) - %m_cachedRVector789 = getelementptr inbounds %struct.btMultibodyLink, ptr %1157, i64 %indvars.iv2743, i32 12 + %m_cachedRVector789 = getelementptr inbounds %struct.btMultibodyLink, ptr %1155, i64 %indvars.iv2743, i32 12 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %m_trnVec790, ptr noundef nonnull align 8 dereferenceable(16) %m_cachedRVector789, i64 16, i1 false) - %1159 = sext i32 %1158 to i64 - %1160 = getelementptr %struct.btSpatialMotionVector, ptr %add.ptr26, i64 %1159 - %arrayidx793 = getelementptr %struct.btSpatialMotionVector, ptr %1160, i64 1 + %1157 = sext i32 %1156 to i64 + %1158 = getelementptr %struct.btSpatialMotionVector, ptr %add.ptr26, i64 %1157 + %arrayidx793 = getelementptr %struct.btSpatialMotionVector, ptr %1158, i64 1 %arrayidx796 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %add.ptr26, i64 %indvars.iv.next2744 - %1161 = load <4 x float>, ptr %fromParent, align 16 - %1162 = shufflevector <4 x float> %1161, <4 x float> poison, <2 x i32> - %1163 = load float, ptr %arrayidx793, align 4 - %1164 = load <4 x float>, ptr %arrayidx5.i.i.i1600, align 4 - %1165 = shufflevector <4 x float> %1164, <4 x float> poison, <2 x i32> - %arrayidx7.i.i.i1601 = getelementptr %struct.btSpatialMotionVector, ptr %1160, i64 1, i32 0, i32 0, i64 1 - %1166 = load float, ptr %arrayidx7.i.i.i1601, align 4 - %1167 = load <4 x float>, ptr %arrayidx10.i.i.i1603, align 8 - %1168 = shufflevector <4 x float> %1167, <4 x float> poison, <2 x i32> - %arrayidx12.i.i.i1604 = getelementptr %struct.btSpatialMotionVector, ptr %1160, i64 1, i32 0, i32 0, i64 2 - %1169 = load float, ptr %arrayidx12.i.i.i1604, align 4 - %1170 = load float, ptr %arrayidx7.i1594, align 16 - %1171 = load float, ptr %arrayidx5.i5.i.i1606, align 4 - %1172 = load float, ptr %arrayidx10.i8.i.i1608, align 8 - %1173 = insertelement <2 x float> poison, float %1166, i64 0 - %1174 = shufflevector <2 x float> %1173, <2 x float> poison, <2 x i32> zeroinitializer - %1175 = insertelement <2 x float> %1165, float %1171, i64 1 - %1176 = fmul <2 x float> %1174, %1175 - %1177 = insertelement <2 x float> %1162, float %1170, i64 1 - %1178 = insertelement <2 x float> poison, float %1163, i64 0 - %1179 = shufflevector <2 x float> %1178, <2 x float> poison, <2 x i32> zeroinitializer - %1180 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1177, <2 x float> %1179, <2 x float> %1176) - %1181 = insertelement <2 x float> %1168, float %1172, i64 1 - %1182 = insertelement <2 x float> poison, float %1169, i64 0 - %1183 = shufflevector <2 x float> %1182, <2 x float> poison, <2 x i32> zeroinitializer - %1184 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1181, <2 x float> %1183, <2 x float> %1180) - %1185 = load float, ptr %arrayidx11.i1596, align 16 - %1186 = load float, ptr %arrayidx5.i11.i.i1610, align 4 - %mul8.i13.i.i1611 = fmul float %1166, %1186 - %1187 = call float @llvm.fmuladd.f32(float %1185, float %1163, float %mul8.i13.i.i1611) - %1188 = load float, ptr %arrayidx10.i14.i.i1612, align 8 - %1189 = call noundef float @llvm.fmuladd.f32(float %1188, float %1169, float %1187) - %retval.sroa.3.12.vec.insert.i.i1615 = insertelement <2 x float> , float %1189, i64 0 - store <2 x float> %1184, ptr %arrayidx796, align 4 + %1159 = load <4 x float>, ptr %fromParent, align 16 + %1160 = shufflevector <4 x float> %1159, <4 x float> poison, <2 x i32> + %1161 = load float, ptr %arrayidx793, align 4 + %1162 = load <4 x float>, ptr %arrayidx5.i.i.i1600, align 4 + %1163 = shufflevector <4 x float> %1162, <4 x float> poison, <2 x i32> + %arrayidx7.i.i.i1601 = getelementptr %struct.btSpatialMotionVector, ptr %1158, i64 1, i32 0, i32 0, i64 1 + %1164 = load float, ptr %arrayidx7.i.i.i1601, align 4 + %1165 = load <4 x float>, ptr %arrayidx10.i.i.i1603, align 8 + %1166 = shufflevector <4 x float> %1165, <4 x float> poison, <2 x i32> + %arrayidx12.i.i.i1604 = getelementptr %struct.btSpatialMotionVector, ptr %1158, i64 1, i32 0, i32 0, i64 2 + %1167 = load float, ptr %arrayidx12.i.i.i1604, align 4 + %1168 = load float, ptr %arrayidx7.i1594, align 16 + %1169 = load float, ptr %arrayidx5.i5.i.i1606, align 4 + %1170 = load float, ptr %arrayidx10.i8.i.i1608, align 8 + %1171 = insertelement <2 x float> poison, float %1164, i64 0 + %1172 = shufflevector <2 x float> %1171, <2 x float> poison, <2 x i32> zeroinitializer + %1173 = insertelement <2 x float> %1163, float %1169, i64 1 + %1174 = fmul <2 x float> %1172, %1173 + %1175 = insertelement <2 x float> %1160, float %1168, i64 1 + %1176 = insertelement <2 x float> poison, float %1161, i64 0 + %1177 = shufflevector <2 x float> %1176, <2 x float> poison, <2 x i32> zeroinitializer + %1178 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1175, <2 x float> %1177, <2 x float> %1174) + %1179 = insertelement <2 x float> %1166, float %1170, i64 1 + %1180 = insertelement <2 x float> poison, float %1167, i64 0 + %1181 = shufflevector <2 x float> %1180, <2 x float> poison, <2 x i32> zeroinitializer + %1182 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1179, <2 x float> %1181, <2 x float> %1178) + %1183 = load float, ptr %arrayidx11.i1596, align 16 + %1184 = load float, ptr %arrayidx5.i11.i.i1610, align 4 + %mul8.i13.i.i1611 = fmul float %1164, %1184 + %1185 = call float @llvm.fmuladd.f32(float %1183, float %1161, float %mul8.i13.i.i1611) + %1186 = load float, ptr %arrayidx10.i14.i.i1612, align 8 + %1187 = call noundef float @llvm.fmuladd.f32(float %1186, float %1167, float %1185) + %retval.sroa.3.12.vec.insert.i.i1615 = insertelement <2 x float> , float %1187, i64 0 + store <2 x float> %1182, ptr %arrayidx796, align 4 %ref.tmp.sroa.2.0.m_topVec2.sroa_idx.i1616 = getelementptr inbounds i8, ptr %arrayidx796, i64 8 store <2 x float> %retval.sroa.3.12.vec.insert.i.i1615, ptr %ref.tmp.sroa.2.0.m_topVec2.sroa_idx.i1616, align 4 - %1190 = load float, ptr %arrayidx5.i.i1619, align 8 - %m_bottomVec.i1623 = getelementptr %struct.btSpatialMotionVector, ptr %1160, i64 1, i32 1 - %1191 = load float, ptr %fromParent, align 16 - %1192 = load float, ptr %m_bottomVec.i1623, align 4 - %1193 = load float, ptr %arrayidx5.i.i.i1600, align 4 - %arrayidx7.i.i29.i1624 = getelementptr %struct.btSpatialMotionVector, ptr %1160, i64 1, i32 1, i32 0, i64 1 - %1194 = load float, ptr %arrayidx7.i.i29.i1624, align 4 - %1195 = load float, ptr %arrayidx10.i.i.i1603, align 8 - %arrayidx12.i.i32.i1626 = getelementptr %struct.btSpatialMotionVector, ptr %1160, i64 1, i32 1, i32 0, i64 2 - %1196 = load float, ptr %arrayidx12.i.i32.i1626, align 4 - %1197 = load float, ptr %arrayidx7.i1594, align 16 - %1198 = load float, ptr %arrayidx5.i5.i.i1606, align 4 - %mul8.i7.i35.i1627 = fmul float %1194, %1198 - %1199 = call float @llvm.fmuladd.f32(float %1197, float %1192, float %mul8.i7.i35.i1627) - %1200 = load float, ptr %arrayidx10.i8.i.i1608, align 8 - %1201 = call noundef float @llvm.fmuladd.f32(float %1200, float %1196, float %1199) - %1202 = load <4 x float>, ptr %arrayidx11.i1596, align 16 + %1188 = load float, ptr %arrayidx5.i.i1619, align 8 + %m_bottomVec.i1623 = getelementptr %struct.btSpatialMotionVector, ptr %1158, i64 1, i32 1 + %1189 = load float, ptr %fromParent, align 16 + %1190 = load float, ptr %m_bottomVec.i1623, align 4 + %1191 = load float, ptr %arrayidx5.i.i.i1600, align 4 + %arrayidx7.i.i29.i1624 = getelementptr %struct.btSpatialMotionVector, ptr %1158, i64 1, i32 1, i32 0, i64 1 + %1192 = load float, ptr %arrayidx7.i.i29.i1624, align 4 + %1193 = load float, ptr %arrayidx10.i.i.i1603, align 8 + %arrayidx12.i.i32.i1626 = getelementptr %struct.btSpatialMotionVector, ptr %1158, i64 1, i32 1, i32 0, i64 2 + %1194 = load float, ptr %arrayidx12.i.i32.i1626, align 4 + %1195 = load float, ptr %arrayidx7.i1594, align 16 + %1196 = load float, ptr %arrayidx5.i5.i.i1606, align 4 + %mul8.i7.i35.i1627 = fmul float %1192, %1196 + %1197 = call float @llvm.fmuladd.f32(float %1195, float %1190, float %mul8.i7.i35.i1627) + %1198 = load float, ptr %arrayidx10.i8.i.i1608, align 8 + %1199 = call noundef float @llvm.fmuladd.f32(float %1198, float %1194, float %1197) + %1200 = load <4 x float>, ptr %arrayidx11.i1596, align 16 + %1201 = shufflevector <4 x float> %1200, <4 x float> poison, <2 x i32> + %1202 = load <4 x float>, ptr %arrayidx5.i11.i.i1610, align 4 %1203 = shufflevector <4 x float> %1202, <4 x float> poison, <2 x i32> - %1204 = load <4 x float>, ptr %arrayidx5.i11.i.i1610, align 4 + %1204 = load <4 x float>, ptr %arrayidx10.i14.i.i1612, align 8 %1205 = shufflevector <4 x float> %1204, <4 x float> poison, <2 x i32> - %1206 = load <4 x float>, ptr %arrayidx10.i14.i.i1612, align 8 - %1207 = shufflevector <4 x float> %1206, <4 x float> poison, <2 x i32> - %1208 = load <2 x float>, ptr %m_trnVec790, align 16 - %1209 = extractelement <2 x float> %1208, i64 0 - %1210 = fneg float %1209 - %neg19.i.i1621 = fmul float %1189, %1210 - %1211 = extractelement <2 x float> %1184, i64 0 - %1212 = call float @llvm.fmuladd.f32(float %1190, float %1211, float %neg19.i.i1621) - %1213 = insertelement <2 x float> %1208, float %1190, i64 0 - %1214 = shufflevector <2 x float> %1213, <2 x float> poison, <2 x i32> - %1215 = fneg <2 x float> %1214 - %1216 = fmul <2 x float> %1184, %1215 - %1217 = shufflevector <2 x float> %1184, <2 x float> poison, <2 x i32> - %1218 = insertelement <2 x float> %1217, float %1189, i64 1 - %1219 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1208, <2 x float> %1218, <2 x float> %1216) - %1220 = insertelement <2 x float> %1205, float %1193, i64 1 - %1221 = insertelement <2 x float> poison, float %1194, i64 0 - %1222 = shufflevector <2 x float> %1221, <2 x float> poison, <2 x i32> zeroinitializer - %1223 = fmul <2 x float> %1220, %1222 - %1224 = insertelement <2 x float> %1203, float %1191, i64 1 - %1225 = insertelement <2 x float> poison, float %1192, i64 0 - %1226 = shufflevector <2 x float> %1225, <2 x float> poison, <2 x i32> zeroinitializer - %1227 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1224, <2 x float> %1226, <2 x float> %1223) - %1228 = insertelement <2 x float> %1207, float %1195, i64 1 - %1229 = insertelement <2 x float> poison, float %1196, i64 0 - %1230 = shufflevector <2 x float> %1229, <2 x float> poison, <2 x i32> zeroinitializer - %1231 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1228, <2 x float> %1230, <2 x float> %1227) - %add8.i.i1630 = fsub float %1201, %1212 - %1232 = fsub <2 x float> %1231, %1219 - %1233 = shufflevector <2 x float> %1232, <2 x float> poison, <2 x i32> - %retval.sroa.0.4.vec.insert.i49.i1633 = insertelement <2 x float> %1233, float %add8.i.i1630, i64 1 - %1234 = insertelement <2 x float> %1232, float 0.000000e+00, i64 1 + %1206 = load <2 x float>, ptr %m_trnVec790, align 16 + %1207 = extractelement <2 x float> %1206, i64 0 + %1208 = fneg float %1207 + %neg19.i.i1621 = fmul float %1187, %1208 + %1209 = extractelement <2 x float> %1182, i64 0 + %1210 = call float @llvm.fmuladd.f32(float %1188, float %1209, float %neg19.i.i1621) + %1211 = insertelement <2 x float> %1206, float %1188, i64 0 + %1212 = shufflevector <2 x float> %1211, <2 x float> poison, <2 x i32> + %1213 = fneg <2 x float> %1212 + %1214 = fmul <2 x float> %1182, %1213 + %1215 = shufflevector <2 x float> %1182, <2 x float> poison, <2 x i32> + %1216 = insertelement <2 x float> %1215, float %1187, i64 1 + %1217 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1206, <2 x float> %1216, <2 x float> %1214) + %1218 = insertelement <2 x float> %1203, float %1191, i64 1 + %1219 = insertelement <2 x float> poison, float %1192, i64 0 + %1220 = shufflevector <2 x float> %1219, <2 x float> poison, <2 x i32> zeroinitializer + %1221 = fmul <2 x float> %1218, %1220 + %1222 = insertelement <2 x float> %1201, float %1189, i64 1 + %1223 = insertelement <2 x float> poison, float %1190, i64 0 + %1224 = shufflevector <2 x float> %1223, <2 x float> poison, <2 x i32> zeroinitializer + %1225 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1222, <2 x float> %1224, <2 x float> %1221) + %1226 = insertelement <2 x float> %1205, float %1193, i64 1 + %1227 = insertelement <2 x float> poison, float %1194, i64 0 + %1228 = shufflevector <2 x float> %1227, <2 x float> poison, <2 x i32> zeroinitializer + %1229 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1226, <2 x float> %1228, <2 x float> %1225) + %add8.i.i1630 = fsub float %1199, %1210 + %1230 = fsub <2 x float> %1229, %1217 + %1231 = shufflevector <2 x float> %1230, <2 x float> poison, <2 x i32> + %retval.sroa.0.4.vec.insert.i49.i1633 = insertelement <2 x float> %1231, float %add8.i.i1630, i64 1 + %1232 = insertelement <2 x float> %1230, float 0.000000e+00, i64 1 %m_bottomVec17.i1635 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %add.ptr26, i64 %indvars.iv.next2744, i32 1 store <2 x float> %retval.sroa.0.4.vec.insert.i49.i1633, ptr %m_bottomVec17.i1635, align 4 %ref.tmp3.sroa.2.0.m_bottomVec17.sroa_idx.i1636 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %add.ptr26, i64 %indvars.iv.next2744, i32 1, i32 0, i64 2 - store <2 x float> %1234, ptr %ref.tmp3.sroa.2.0.m_bottomVec17.sroa_idx.i1636, align 4 - %1235 = load ptr, ptr %m_data.i1590, align 8 - %1236 = trunc i64 %indvars.iv2743 to i32 + store <2 x float> %1232, ptr %ref.tmp3.sroa.2.0.m_bottomVec17.sroa_idx.i1636, align 4 + %1233 = load ptr, ptr %m_data.i1590, align 8 + %1234 = trunc i64 %indvars.iv2743 to i32 br label %if.else.i.i1639 if.else.i.i1639: ; preds = %if.end.i1648, %for.body777 - %link.06.i1640 = phi i32 [ %1236, %for.body777 ], [ %1239, %if.end.i1648 ] + %link.06.i1640 = phi i32 [ %1234, %for.body777 ], [ %1237, %if.end.i1648 ] %idxprom.i.i.i1641 = sext i32 %link.06.i1640 to i64 - %m_collider.i.i1642 = getelementptr inbounds %struct.btMultibodyLink, ptr %1235, i64 %idxprom.i.i.i1641, i32 22 - %1237 = load ptr, ptr %m_collider.i.i1642, align 8 - %tobool.not.i.i1643 = icmp eq ptr %1237, null + %m_collider.i.i1642 = getelementptr inbounds %struct.btMultibodyLink, ptr %1233, i64 %idxprom.i.i.i1641, i32 22 + %1235 = load ptr, ptr %m_collider.i.i1642, align 8 + %tobool.not.i.i1643 = icmp eq ptr %1235, null br i1 %tobool.not.i.i1643, label %for.cond800.preheader, label %_ZNK11btMultiBody15isLinkKinematicEi.exit.i1644 _ZNK11btMultiBody15isLinkKinematicEi.exit.i1644: ; preds = %if.else.i.i1639 - %m_collisionFlags.i.i.i.i1645 = getelementptr inbounds %class.btCollisionObject, ptr %1237, i64 0, i32 12 - %1238 = load i32, ptr %m_collisionFlags.i.i.i.i1645, align 8 - %and.i.i.i.i1646 = and i32 %1238, 2 + %m_collisionFlags.i.i.i.i1645 = getelementptr inbounds %class.btCollisionObject, ptr %1235, i64 0, i32 12 + %1236 = load i32, ptr %m_collisionFlags.i.i.i.i1645, align 8 + %and.i.i.i.i1646 = and i32 %1236, 2 %cmp.i.i.i.not.i1647 = icmp eq i32 %and.i.i.i.i1646, 0 br i1 %cmp.i.i.i.not.i1647, label %for.cond800.preheader, label %if.end.i1648 if.end.i1648: ; preds = %_ZNK11btMultiBody15isLinkKinematicEi.exit.i1644 - %m_parent.i1649 = getelementptr inbounds %struct.btMultibodyLink, ptr %1235, i64 %idxprom.i.i.i1641, i32 2 - %1239 = load i32, ptr %m_parent.i1649, align 4 - %cmp.not.i1650 = icmp eq i32 %1239, -1 + %m_parent.i1649 = getelementptr inbounds %struct.btMultibodyLink, ptr %1233, i64 %idxprom.i.i.i1641, i32 2 + %1237 = load i32, ptr %m_parent.i1649, align 4 + %cmp.not.i1650 = icmp eq i32 %1237, -1 br i1 %cmp.not.i1650, label %while.end.i1651, label %if.else.i.i1639, !llvm.loop !34 while.end.i1651: ; preds = %if.end.i1648 - %1240 = load ptr, ptr %m_baseCollider.i.i.i1652, align 8 - %tobool.not.i3.i1653 = icmp eq ptr %1240, null + %1238 = load ptr, ptr %m_baseCollider.i.i.i1652, align 8 + %tobool.not.i3.i1653 = icmp eq ptr %1238, null br i1 %tobool.not.i3.i1653, label %for.cond800.preheader, label %land.rhs.i.i1654 land.rhs.i.i1654: ; preds = %while.end.i1651 - %m_collisionFlags.i.i.i1655 = getelementptr inbounds %class.btCollisionObject, ptr %1240, i64 0, i32 12 - %1241 = load i32, ptr %m_collisionFlags.i.i.i1655, align 8 - %and.i.i.i1656 = and i32 %1241, 2 + %m_collisionFlags.i.i.i1655 = getelementptr inbounds %class.btCollisionObject, ptr %1238, i64 0, i32 12 + %1239 = load i32, ptr %m_collisionFlags.i.i.i1655, align 8 + %and.i.i.i1656 = and i32 %1239, 2 %cmp.i.i.i1657.not = icmp eq i32 %and.i.i.i1656, 0 br i1 %cmp.i.i.i1657.not, label %for.cond800.preheader, label %if.end885 for.cond800.preheader: ; preds = %_ZNK11btMultiBody15isLinkKinematicEi.exit.i1644, %if.else.i.i1639, %while.end.i1651, %land.rhs.i.i1654 - %m_dofCount803 = getelementptr inbounds %struct.btMultibodyLink, ptr %1235, i64 %indvars.iv2743, i32 24 - %1242 = load i32, ptr %m_dofCount803, align 4 - %cmp8042646 = icmp sgt i32 %1242, 0 + %m_dofCount803 = getelementptr inbounds %struct.btMultibodyLink, ptr %1233, i64 %indvars.iv2743, i32 24 + %1240 = load i32, ptr %m_dofCount803, align 4 + %cmp8042646 = icmp sgt i32 %1240, 0 br i1 %cmp8042646, label %for.body805.lr.ph, label %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit for.body805.lr.ph: ; preds = %for.cond800.preheader - %m_dofOffset809 = getelementptr inbounds %struct.btMultibodyLink, ptr %1235, i64 %indvars.iv2743, i32 9 - %1243 = load i32, ptr %m_dofOffset809, align 8 + %m_dofOffset809 = getelementptr inbounds %struct.btMultibodyLink, ptr %1233, i64 %indvars.iv2743, i32 9 + %1241 = load i32, ptr %m_dofOffset809, align 8 %arrayidx5.i.i1670 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %add.ptr26, i64 %indvars.iv.next2744, i32 1, i32 0, i64 1 - %1244 = load float, ptr %arrayidx5.i.i1670, align 4 - %1245 = sext i32 %1243 to i64 - %wide.trip.count2738 = zext nneg i32 %1242 to i64 - %1246 = insertelement <2 x float> %1232, float %1189, i64 1 - %1247 = shufflevector <2 x float> %1232, <2 x float> %1184, <2 x i32> - %1248 = insertelement <2 x float> %1184, float %1244, i64 0 + %1242 = load float, ptr %arrayidx5.i.i1670, align 4 + %1243 = sext i32 %1241 to i64 + %wide.trip.count2738 = zext nneg i32 %1240 to i64 + %1244 = insertelement <2 x float> %1230, float %1187, i64 1 + %1245 = shufflevector <2 x float> %1230, <2 x float> %1182, <2 x i32> + %1246 = insertelement <2 x float> %1182, float %1242, i64 0 br label %for.body805 for.body805: ; preds = %for.body805.lr.ph, %for.body805 %indvars.iv2734 = phi i64 [ 0, %for.body805.lr.ph ], [ %indvars.iv.next2735, %for.body805 ] - %1249 = add nsw i64 %indvars.iv2734, %1245 - %arrayidx812 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond2569, i64 %1249 - %arrayidx818 = getelementptr inbounds float, ptr %27, i64 %1249 - %1250 = load float, ptr %arrayidx818, align 4 - %1251 = load float, ptr %arrayidx812, align 4 + %1247 = add nsw i64 %indvars.iv2734, %1243 + %arrayidx812 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond2569, i64 %1247 + %arrayidx818 = getelementptr inbounds float, ptr %27, i64 %1247 + %1248 = load float, ptr %arrayidx818, align 4 + %1249 = load float, ptr %arrayidx812, align 4 %arrayidx7.i.i1671 = getelementptr inbounds [4 x float], ptr %arrayidx812, i64 0, i64 1 - %1252 = load float, ptr %arrayidx7.i.i1671, align 4 + %1250 = load float, ptr %arrayidx7.i.i1671, align 4 %arrayidx12.i.i1674 = getelementptr inbounds [4 x float], ptr %arrayidx812, i64 0, i64 2 - %1253 = load float, ptr %arrayidx12.i.i1674, align 4 - %m_bottomVec3.i1675 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond2569, i64 %1249, i32 1 - %1254 = load float, ptr %m_bottomVec3.i1675, align 4 - %arrayidx7.i3.i1677 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond2569, i64 %1249, i32 1, i32 0, i64 1 - %1255 = load float, ptr %arrayidx7.i3.i1677, align 4 - %arrayidx12.i6.i1680 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond2569, i64 %1249, i32 1, i32 0, i64 2 - %1256 = load float, ptr %arrayidx12.i6.i1680, align 4 - %1257 = insertelement <2 x float> poison, float %1252, i64 0 - %1258 = insertelement <2 x float> %1257, float %1255, i64 1 - %1259 = fmul <2 x float> %1248, %1258 - %1260 = insertelement <2 x float> poison, float %1251, i64 0 - %1261 = insertelement <2 x float> %1260, float %1254, i64 1 - %1262 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1247, <2 x float> %1261, <2 x float> %1259) - %1263 = insertelement <2 x float> poison, float %1253, i64 0 - %1264 = insertelement <2 x float> %1263, float %1256, i64 1 - %1265 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1246, <2 x float> %1264, <2 x float> %1262) - %shift2846 = shufflevector <2 x float> %1265, <2 x float> poison, <2 x i32> - %1266 = fadd <2 x float> %1265, %shift2846 - %add.i1681 = extractelement <2 x float> %1266, i64 0 - %sub823 = fsub float %1250, %add.i1681 + %1251 = load float, ptr %arrayidx12.i.i1674, align 4 + %m_bottomVec3.i1675 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond2569, i64 %1247, i32 1 + %1252 = load float, ptr %m_bottomVec3.i1675, align 4 + %arrayidx7.i3.i1677 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond2569, i64 %1247, i32 1, i32 0, i64 1 + %1253 = load float, ptr %arrayidx7.i3.i1677, align 4 + %arrayidx12.i6.i1680 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond2569, i64 %1247, i32 1, i32 0, i64 2 + %1254 = load float, ptr %arrayidx12.i6.i1680, align 4 + %1255 = insertelement <2 x float> poison, float %1250, i64 0 + %1256 = insertelement <2 x float> %1255, float %1253, i64 1 + %1257 = fmul <2 x float> %1246, %1256 + %1258 = insertelement <2 x float> poison, float %1249, i64 0 + %1259 = insertelement <2 x float> %1258, float %1252, i64 1 + %1260 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1245, <2 x float> %1259, <2 x float> %1257) + %1261 = insertelement <2 x float> poison, float %1251, i64 0 + %1262 = insertelement <2 x float> %1261, float %1254, i64 1 + %1263 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1244, <2 x float> %1262, <2 x float> %1260) + %shift2850 = shufflevector <2 x float> %1263, <2 x float> poison, <2 x i32> + %1264 = fadd <2 x float> %1263, %shift2850 + %add.i1681 = extractelement <2 x float> %1264, i64 0 + %sub823 = fsub float %1248, %add.i1681 %arrayidx825 = getelementptr inbounds [6 x float], ptr %Y_minus_hT_a, i64 0, i64 %indvars.iv2734 store float %sub823, ptr %arrayidx825, align 4 %indvars.iv.next2735 = add nuw nsw i64 %indvars.iv2734, 1 @@ -7674,33 +7671,33 @@ for.body805: ; preds = %for.body805.lr.ph, br i1 %exitcond2739.not, label %for.end828, label %for.body805, !llvm.loop !81 for.end828: ; preds = %for.body805 - %mul836 = mul nsw i32 %1243, %1243 + %mul836 = mul nsw i32 %1241, %1241 %idxprom837 = zext nneg i32 %mul836 to i64 %arrayidx838 = getelementptr inbounds float, ptr %cond45, i64 %idxprom837 - %arrayidx852 = getelementptr float, ptr %add.ptr47, i64 %1245 + %arrayidx852 = getelementptr float, ptr %add.ptr47, i64 %1243 br i1 %cmp8042646, label %for.cond2.preheader.us.us.preheader.i, label %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit for.cond2.preheader.us.us.preheader.i: ; preds = %for.end828 - %wide.trip.count56.i = zext nneg i32 %1242 to i64 + %wide.trip.count56.i = zext nneg i32 %1240 to i64 br label %for.cond2.preheader.us.us.i for.cond2.preheader.us.us.i: ; preds = %for.cond5.for.inc21_crit_edge.us.us.us.i, %for.cond2.preheader.us.us.preheader.i %indvars.iv51.i = phi i64 [ 0, %for.cond2.preheader.us.us.preheader.i ], [ %indvars.iv.next52.i, %for.cond5.for.inc21_crit_edge.us.us.us.i ] - %1267 = mul nuw nsw i64 %indvars.iv51.i, %wide.trip.count56.i - %invariant.gep.i = getelementptr float, ptr %arrayidx838, i64 %1267 - %arrayidx.us.us.us.i = getelementptr inbounds float, ptr %arrayidx852, i64 %indvars.iv51.i - store float 0.000000e+00, ptr %arrayidx.us.us.us.i, align 4 + %1265 = mul nuw nsw i64 %indvars.iv51.i, %wide.trip.count56.i + %invariant.gep61.i = getelementptr float, ptr %arrayidx852, i64 %indvars.iv51.i + %invariant.gep.i = getelementptr float, ptr %arrayidx838, i64 %1265 + store float 0.000000e+00, ptr %invariant.gep61.i, align 4 br label %for.body7.us.us.us.i for.body7.us.us.us.i: ; preds = %for.body7.us.us.us.i, %for.cond2.preheader.us.us.i %indvars.iv36.i = phi i64 [ %indvars.iv.next37.i, %for.body7.us.us.us.i ], [ 0, %for.cond2.preheader.us.us.i ] - %1268 = phi float [ %1271, %for.body7.us.us.us.i ], [ 0.000000e+00, %for.cond2.preheader.us.us.i ] + %1266 = phi float [ %1269, %for.body7.us.us.us.i ], [ 0.000000e+00, %for.cond2.preheader.us.us.i ] %gep.i = getelementptr float, ptr %invariant.gep.i, i64 %indvars.iv36.i - %1269 = load float, ptr %gep.i, align 4 - %arrayidx15.us.us.us.i = getelementptr inbounds float, ptr %Y_minus_hT_a, i64 %indvars.iv36.i - %1270 = load float, ptr %arrayidx15.us.us.us.i, align 4 - %1271 = call float @llvm.fmuladd.f32(float %1269, float %1270, float %1268) - store float %1271, ptr %arrayidx.us.us.us.i, align 4 + %1267 = load float, ptr %gep.i, align 4 + %gep60.i = getelementptr float, ptr %Y_minus_hT_a, i64 %indvars.iv36.i + %1268 = load float, ptr %gep60.i, align 4 + %1269 = call float @llvm.fmuladd.f32(float %1267, float %1268, float %1266) + store float %1269, ptr %invariant.gep61.i, align 4 %indvars.iv.next37.i = add nuw nsw i64 %indvars.iv36.i, 1 %exitcond43.not.i = icmp eq i64 %indvars.iv.next37.i, %wide.trip.count56.i br i1 %exitcond43.not.i, label %for.cond5.for.inc21_crit_edge.us.us.us.i, label %for.body7.us.us.us.i, !llvm.loop !82 @@ -7711,124 +7708,124 @@ for.cond5.for.inc21_crit_edge.us.us.us.i: ; preds = %for.body7.us.us.us. br i1 %exitcond57.not.i, label %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit.loopexit, label %for.cond2.preheader.us.us.i, !llvm.loop !83 _ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit.loopexit: ; preds = %for.cond5.for.inc21_crit_edge.us.us.us.i - %1272 = load <2 x float>, ptr %arrayidx796, align 4 + %1270 = load <2 x float>, ptr %arrayidx796, align 4 %.pre2791 = load float, ptr %ref.tmp.sroa.2.0.m_topVec2.sroa_idx.i1616, align 4 %.pre2792 = load float, ptr %m_bottomVec17.i1635, align 4 %.pre2793 = load float, ptr %ref.tmp3.sroa.2.0.m_bottomVec17.sroa_idx.i1636, align 4 - %1273 = insertelement <2 x float> poison, float %.pre2793, i64 0 - %1274 = insertelement <2 x float> %1273, float %.pre2792, i64 1 + %1271 = insertelement <2 x float> poison, float %.pre2793, i64 0 + %1272 = insertelement <2 x float> %1271, float %.pre2792, i64 1 br label %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit _ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit: ; preds = %for.cond800.preheader, %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit.loopexit, %for.end828 - %1275 = phi float [ %.pre2791, %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit.loopexit ], [ %1189, %for.end828 ], [ %1189, %for.cond800.preheader ] - %1276 = phi <2 x float> [ %1272, %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit.loopexit ], [ %1184, %for.end828 ], [ %1184, %for.cond800.preheader ] - %1277 = phi <2 x float> [ %1274, %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit.loopexit ], [ %1232, %for.end828 ], [ %1232, %for.cond800.preheader ] + %1273 = phi float [ %.pre2791, %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit.loopexit ], [ %1187, %for.end828 ], [ %1187, %for.cond800.preheader ] + %1274 = phi <2 x float> [ %1270, %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit.loopexit ], [ %1182, %for.end828 ], [ %1182, %for.cond800.preheader ] + %1275 = phi <2 x float> [ %1272, %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit.loopexit ], [ %1230, %for.end828 ], [ %1230, %for.cond800.preheader ] %arrayidx854 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %add.ptr23, i64 %indvars.iv2743 - %1278 = load <2 x float>, ptr %arrayidx854, align 4 - %1279 = fadd <2 x float> %1278, %1276 - store <2 x float> %1279, ptr %arrayidx796, align 4 + %1276 = load <2 x float>, ptr %arrayidx854, align 4 + %1277 = fadd <2 x float> %1276, %1274 + store <2 x float> %1277, ptr %arrayidx796, align 4 %arrayidx10.i.i1707 = getelementptr inbounds [4 x float], ptr %arrayidx854, i64 0, i64 2 - %1280 = load float, ptr %arrayidx10.i.i1707, align 4 - %add13.i.i1709 = fadd float %1280, %1275 + %1278 = load float, ptr %arrayidx10.i.i1707, align 4 + %add13.i.i1709 = fadd float %1278, %1273 store float %add13.i.i1709, ptr %ref.tmp.sroa.2.0.m_topVec2.sroa_idx.i1616, align 4 %m_bottomVec.i1710 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %add.ptr23, i64 %indvars.iv2743, i32 1 %arrayidx7.i4.i1714 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %add.ptr26, i64 %indvars.iv.next2744, i32 1, i32 0, i64 1 - %1281 = load float, ptr %arrayidx7.i4.i1714, align 4 - %1282 = load <2 x float>, ptr %m_bottomVec.i1710, align 4 - %1283 = shufflevector <2 x float> %1277, <2 x float> poison, <2 x i32> - %1284 = insertelement <2 x float> %1283, float %1281, i64 1 - %1285 = fadd <2 x float> %1282, %1284 - store <2 x float> %1285, ptr %m_bottomVec17.i1635, align 4 + %1279 = load float, ptr %arrayidx7.i4.i1714, align 4 + %1280 = load <2 x float>, ptr %m_bottomVec.i1710, align 4 + %1281 = shufflevector <2 x float> %1275, <2 x float> poison, <2 x i32> + %1282 = insertelement <2 x float> %1281, float %1279, i64 1 + %1283 = fadd <2 x float> %1280, %1282 + store <2 x float> %1283, ptr %m_bottomVec17.i1635, align 4 %arrayidx10.i6.i1716 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %add.ptr23, i64 %indvars.iv2743, i32 1, i32 0, i64 2 - %1286 = load float, ptr %arrayidx10.i6.i1716, align 4 - %1287 = extractelement <2 x float> %1277, i64 0 - %add13.i8.i1718 = fadd float %1286, %1287 + %1284 = load float, ptr %arrayidx10.i6.i1716, align 4 + %1285 = extractelement <2 x float> %1275, i64 0 + %add13.i8.i1718 = fadd float %1284, %1285 store float %add13.i8.i1718, ptr %ref.tmp3.sroa.2.0.m_bottomVec17.sroa_idx.i1636, align 4 - %1288 = load ptr, ptr %m_data.i1590, align 8 - %m_dofCount8632650 = getelementptr inbounds %struct.btMultibodyLink, ptr %1288, i64 %indvars.iv2743, i32 24 - %1289 = load i32, ptr %m_dofCount8632650, align 4 - %cmp8642651 = icmp sgt i32 %1289, 0 + %1286 = load ptr, ptr %m_data.i1590, align 8 + %m_dofCount8632650 = getelementptr inbounds %struct.btMultibodyLink, ptr %1286, i64 %indvars.iv2743, i32 24 + %1287 = load i32, ptr %m_dofCount8632650, align 4 + %cmp8642651 = icmp sgt i32 %1287, 0 br i1 %cmp8642651, label %for.body865, label %if.end885 for.body865: ; preds = %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit, %for.body865 - %1290 = phi float [ %add13.i8.i1763, %for.body865 ], [ %add13.i8.i1718, %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit ] - %1291 = phi float [ %add13.i.i1754, %for.body865 ], [ %add13.i.i1709, %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit ] + %1288 = phi float [ %add13.i8.i1763, %for.body865 ], [ %add13.i8.i1718, %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit ] + %1289 = phi float [ %add13.i.i1754, %for.body865 ], [ %add13.i.i1709, %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit ] %indvars.iv2740 = phi i64 [ %indvars.iv.next2741, %for.body865 ], [ 0, %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit ] - %1292 = phi ptr [ %1308, %for.body865 ], [ %1288, %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit ] - %1293 = phi <2 x float> [ %1304, %for.body865 ], [ %1279, %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit ] - %1294 = phi <2 x float> [ %1307, %for.body865 ], [ %1285, %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit ] - %arrayidx871 = getelementptr inbounds %struct.btMultibodyLink, ptr %1292, i64 %indvars.iv2743, i32 8, i64 %indvars.iv2740 - %m_dofOffset874 = getelementptr inbounds %struct.btMultibodyLink, ptr %1292, i64 %indvars.iv2743, i32 9 - %1295 = load i32, ptr %m_dofOffset874, align 8 - %1296 = trunc i64 %indvars.iv2740 to i32 - %add875 = add nsw i32 %1295, %1296 + %1290 = phi ptr [ %1306, %for.body865 ], [ %1286, %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit ] + %1291 = phi <2 x float> [ %1302, %for.body865 ], [ %1277, %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit ] + %1292 = phi <2 x float> [ %1305, %for.body865 ], [ %1283, %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit ] + %arrayidx871 = getelementptr inbounds %struct.btMultibodyLink, ptr %1290, i64 %indvars.iv2743, i32 8, i64 %indvars.iv2740 + %m_dofOffset874 = getelementptr inbounds %struct.btMultibodyLink, ptr %1290, i64 %indvars.iv2743, i32 9 + %1293 = load i32, ptr %m_dofOffset874, align 8 + %1294 = trunc i64 %indvars.iv2740 to i32 + %add875 = add nsw i32 %1293, %1294 %idxprom876 = sext i32 %add875 to i64 %arrayidx877 = getelementptr inbounds float, ptr %add.ptr47, i64 %idxprom876 - %1297 = load float, ptr %arrayidx877, align 4, !noalias !84 + %1295 = load float, ptr %arrayidx877, align 4, !noalias !84 %arrayidx7.i.i.i1731 = getelementptr inbounds [4 x float], ptr %arrayidx871, i64 0, i64 2 - %1298 = load float, ptr %arrayidx7.i.i.i1731, align 4, !noalias !84 - %mul8.i.i.i1732 = fmul float %1297, %1298 - %m_bottomVec.i1736 = getelementptr inbounds %struct.btMultibodyLink, ptr %1292, i64 %indvars.iv2743, i32 8, i64 %indvars.iv2740, i32 1 - %arrayidx7.i.i5.i1740 = getelementptr inbounds %struct.btMultibodyLink, ptr %1292, i64 %indvars.iv2743, i32 8, i64 %indvars.iv2740, i32 1, i32 0, i64 2 - %1299 = load float, ptr %arrayidx7.i.i5.i1740, align 4, !noalias !84 - %mul8.i.i6.i1741 = fmul float %1297, %1299 - %1300 = load <2 x float>, ptr %arrayidx871, align 4, !noalias !84 - %1301 = insertelement <2 x float> poison, float %1297, i64 0 - %1302 = shufflevector <2 x float> %1301, <2 x float> poison, <2 x i32> zeroinitializer - %1303 = fmul <2 x float> %1302, %1300 - %1304 = fadd <2 x float> %1303, %1293 - %add13.i.i1754 = fadd float %mul8.i.i.i1732, %1291 - %1305 = load <2 x float>, ptr %m_bottomVec.i1736, align 4, !noalias !84 - %1306 = fmul <2 x float> %1302, %1305 - store <2 x float> %1304, ptr %arrayidx796, align 4 + %1296 = load float, ptr %arrayidx7.i.i.i1731, align 4, !noalias !84 + %mul8.i.i.i1732 = fmul float %1295, %1296 + %m_bottomVec.i1736 = getelementptr inbounds %struct.btMultibodyLink, ptr %1290, i64 %indvars.iv2743, i32 8, i64 %indvars.iv2740, i32 1 + %arrayidx7.i.i5.i1740 = getelementptr inbounds %struct.btMultibodyLink, ptr %1290, i64 %indvars.iv2743, i32 8, i64 %indvars.iv2740, i32 1, i32 0, i64 2 + %1297 = load float, ptr %arrayidx7.i.i5.i1740, align 4, !noalias !84 + %mul8.i.i6.i1741 = fmul float %1295, %1297 + %1298 = load <2 x float>, ptr %arrayidx871, align 4, !noalias !84 + %1299 = insertelement <2 x float> poison, float %1295, i64 0 + %1300 = shufflevector <2 x float> %1299, <2 x float> poison, <2 x i32> zeroinitializer + %1301 = fmul <2 x float> %1300, %1298 + %1302 = fadd <2 x float> %1301, %1291 + %add13.i.i1754 = fadd float %mul8.i.i.i1732, %1289 + %1303 = load <2 x float>, ptr %m_bottomVec.i1736, align 4, !noalias !84 + %1304 = fmul <2 x float> %1300, %1303 + store <2 x float> %1302, ptr %arrayidx796, align 4 store float %add13.i.i1754, ptr %ref.tmp.sroa.2.0.m_topVec2.sroa_idx.i1616, align 4 - %1307 = fadd <2 x float> %1306, %1294 - store <2 x float> %1307, ptr %m_bottomVec17.i1635, align 4 - %add13.i8.i1763 = fadd float %mul8.i.i6.i1741, %1290 + %1305 = fadd <2 x float> %1304, %1292 + store <2 x float> %1305, ptr %m_bottomVec17.i1635, align 4 + %add13.i8.i1763 = fadd float %mul8.i.i6.i1741, %1288 store float %add13.i8.i1763, ptr %ref.tmp3.sroa.2.0.m_bottomVec17.sroa_idx.i1636, align 4 %indvars.iv.next2741 = add nuw nsw i64 %indvars.iv2740, 1 - %1308 = load ptr, ptr %m_data.i1590, align 8 - %m_dofCount863 = getelementptr inbounds %struct.btMultibodyLink, ptr %1308, i64 %indvars.iv2743, i32 24 - %1309 = load i32, ptr %m_dofCount863, align 4 - %1310 = sext i32 %1309 to i64 - %cmp864 = icmp slt i64 %indvars.iv.next2741, %1310 + %1306 = load ptr, ptr %m_data.i1590, align 8 + %m_dofCount863 = getelementptr inbounds %struct.btMultibodyLink, ptr %1306, i64 %indvars.iv2743, i32 24 + %1307 = load i32, ptr %m_dofCount863, align 4 + %1308 = sext i32 %1307 to i64 + %cmp864 = icmp slt i64 %indvars.iv.next2741, %1308 br i1 %cmp864, label %for.body865, label %if.end885, !llvm.loop !87 if.end885: ; preds = %for.body865, %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit, %land.rhs.i.i1654 - %1311 = phi ptr [ %1288, %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit ], [ %1235, %land.rhs.i.i1654 ], [ %1308, %for.body865 ] - %m_jointFeedback = getelementptr inbounds %struct.btMultibodyLink, ptr %1311, i64 %indvars.iv2743, i32 27 - %1312 = load ptr, ptr %m_jointFeedback, align 8 - %tobool888.not = icmp eq ptr %1312, null + %1309 = phi ptr [ %1286, %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit ], [ %1233, %land.rhs.i.i1654 ], [ %1306, %for.body865 ] + %m_jointFeedback = getelementptr inbounds %struct.btMultibodyLink, ptr %1309, i64 %indvars.iv2743, i32 27 + %1310 = load ptr, ptr %m_jointFeedback, align 8 + %tobool888.not = icmp eq ptr %1310, null br i1 %tobool888.not, label %for.inc1007, label %if.then889 if.then889: ; preds = %if.end885 store i8 1, ptr %m_internalNeedsJointFeedback, align 2 %arrayidx895 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv.next2744 %m_bottomLeftMat.i1767 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv.next2744, i32 2 - %1313 = load float, ptr %m_bottomLeftMat.i1767, align 4, !noalias !73 - %1314 = load float, ptr %arrayidx796, align 4, !noalias !73 + %1311 = load float, ptr %m_bottomLeftMat.i1767, align 4, !noalias !73 + %1312 = load float, ptr %arrayidx796, align 4, !noalias !73 %arrayidx5.i.i.i1768 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv.next2744, i32 2, i32 0, i64 0, i32 0, i64 1 - %1315 = load float, ptr %arrayidx5.i.i.i1768, align 4, !noalias !73 + %1313 = load float, ptr %arrayidx5.i.i.i1768, align 4, !noalias !73 %arrayidx7.i.i.i1769 = getelementptr inbounds [4 x float], ptr %arrayidx796, i64 0, i64 1 - %1316 = load float, ptr %arrayidx7.i.i.i1769, align 4, !noalias !73 - %mul8.i.i.i1770 = fmul float %1315, %1316 - %1317 = call float @llvm.fmuladd.f32(float %1313, float %1314, float %mul8.i.i.i1770) + %1314 = load float, ptr %arrayidx7.i.i.i1769, align 4, !noalias !73 + %mul8.i.i.i1770 = fmul float %1313, %1314 + %1315 = call float @llvm.fmuladd.f32(float %1311, float %1312, float %mul8.i.i.i1770) %arrayidx10.i.i.i1771 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv.next2744, i32 2, i32 0, i64 0, i32 0, i64 2 - %1318 = load float, ptr %arrayidx10.i.i.i1771, align 4, !noalias !73 - %1319 = load float, ptr %ref.tmp.sroa.2.0.m_topVec2.sroa_idx.i1616, align 4, !noalias !73 - %1320 = call noundef float @llvm.fmuladd.f32(float %1318, float %1319, float %1317) + %1316 = load float, ptr %arrayidx10.i.i.i1771, align 4, !noalias !73 + %1317 = load float, ptr %ref.tmp.sroa.2.0.m_topVec2.sroa_idx.i1616, align 4, !noalias !73 + %1318 = call noundef float @llvm.fmuladd.f32(float %1316, float %1317, float %1315) %arrayidx.i.i.i1773 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv.next2744, i32 2, i32 0, i64 1 - %1321 = load float, ptr %arrayidx.i.i.i1773, align 4, !noalias !73 + %1319 = load float, ptr %arrayidx.i.i.i1773, align 4, !noalias !73 %arrayidx5.i5.i.i1774 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv.next2744, i32 2, i32 0, i64 1, i32 0, i64 1 - %1322 = load float, ptr %arrayidx5.i5.i.i1774, align 4, !noalias !73 + %1320 = load float, ptr %arrayidx5.i5.i.i1774, align 4, !noalias !73 %arrayidx10.i8.i.i1776 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv.next2744, i32 2, i32 0, i64 1, i32 0, i64 2 - %1323 = load float, ptr %arrayidx10.i8.i.i1776, align 4, !noalias !73 + %1321 = load float, ptr %arrayidx10.i8.i.i1776, align 4, !noalias !73 %arrayidx.i10.i.i1777 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv.next2744, i32 2, i32 0, i64 2 - %1324 = load float, ptr %arrayidx.i10.i.i1777, align 4, !noalias !73 + %1322 = load float, ptr %arrayidx.i10.i.i1777, align 4, !noalias !73 %arrayidx5.i11.i.i1778 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv.next2744, i32 2, i32 0, i64 2, i32 0, i64 1 - %1325 = load float, ptr %arrayidx5.i11.i.i1778, align 4, !noalias !73 + %1323 = load float, ptr %arrayidx5.i11.i.i1778, align 4, !noalias !73 %arrayidx10.i14.i.i1780 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv.next2744, i32 2, i32 0, i64 2, i32 0, i64 2 - %1326 = load float, ptr %arrayidx10.i14.i.i1780, align 4, !noalias !73 + %1324 = load float, ptr %arrayidx10.i14.i.i1780, align 4, !noalias !73 %arrayidx3.i.i1781 = getelementptr inbounds [3 x %class.btVector3], ptr %arrayidx895, i64 0, i64 1 %arrayidx6.i.i1782 = getelementptr inbounds [3 x %class.btVector3], ptr %arrayidx895, i64 0, i64 2 %arrayidx.i.i4.i1783 = getelementptr inbounds [4 x float], ptr %arrayidx895, i64 0, i64 1 @@ -7837,340 +7834,340 @@ if.then889: ; preds = %if.end885 %arrayidx.i3.i.i1786 = getelementptr inbounds [4 x float], ptr %arrayidx895, i64 0, i64 2 %arrayidx.i4.i.i1787 = getelementptr inbounds [3 x %class.btVector3], ptr %arrayidx895, i64 0, i64 1, i32 0, i64 2 %arrayidx.i5.i.i1788 = getelementptr inbounds [3 x %class.btVector3], ptr %arrayidx895, i64 0, i64 2, i32 0, i64 2 - %1327 = load float, ptr %arrayidx895, align 4, !noalias !73 - %1328 = load float, ptr %arrayidx3.i.i1781, align 4, !noalias !73 - %1329 = load float, ptr %arrayidx6.i.i1782, align 4, !noalias !73 - %1330 = load float, ptr %arrayidx.i.i4.i1783, align 4, !noalias !73 - %1331 = load float, ptr %arrayidx.i1.i.i1784, align 4, !noalias !73 - %1332 = load float, ptr %arrayidx.i2.i.i1785, align 4, !noalias !73 - %1333 = load float, ptr %arrayidx.i3.i.i1786, align 4, !noalias !73 - %1334 = load float, ptr %arrayidx.i4.i.i1787, align 4, !noalias !73 - %1335 = load float, ptr %arrayidx.i5.i.i1788, align 4, !noalias !73 - %1336 = load float, ptr %m_bottomVec17.i1635, align 4, !noalias !73 + %1325 = load float, ptr %arrayidx895, align 4, !noalias !73 + %1326 = load float, ptr %arrayidx3.i.i1781, align 4, !noalias !73 + %1327 = load float, ptr %arrayidx6.i.i1782, align 4, !noalias !73 + %1328 = load float, ptr %arrayidx.i.i4.i1783, align 4, !noalias !73 + %1329 = load float, ptr %arrayidx.i1.i.i1784, align 4, !noalias !73 + %1330 = load float, ptr %arrayidx.i2.i.i1785, align 4, !noalias !73 + %1331 = load float, ptr %arrayidx.i3.i.i1786, align 4, !noalias !73 + %1332 = load float, ptr %arrayidx.i4.i.i1787, align 4, !noalias !73 + %1333 = load float, ptr %arrayidx.i5.i.i1788, align 4, !noalias !73 + %1334 = load float, ptr %m_bottomVec17.i1635, align 4, !noalias !73 %arrayidx7.i.i6.i1790 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %add.ptr26, i64 %indvars.iv.next2744, i32 1, i32 0, i64 1 - %1337 = load float, ptr %arrayidx7.i.i6.i1790, align 4, !noalias !73 - %mul8.i.i7.i1791 = fmul float %1328, %1337 - %1338 = call float @llvm.fmuladd.f32(float %1327, float %1336, float %mul8.i.i7.i1791) - %1339 = load float, ptr %ref.tmp3.sroa.2.0.m_bottomVec17.sroa_idx.i1636, align 4, !noalias !73 - %1340 = call noundef float @llvm.fmuladd.f32(float %1329, float %1339, float %1338) - %1341 = insertelement <2 x float> poison, float %1322, i64 0 - %1342 = insertelement <2 x float> %1341, float %1331, i64 1 - %1343 = insertelement <2 x float> poison, float %1316, i64 0 - %1344 = insertelement <2 x float> %1343, float %1337, i64 1 - %1345 = fmul <2 x float> %1342, %1344 - %1346 = insertelement <2 x float> poison, float %1321, i64 0 - %1347 = insertelement <2 x float> %1346, float %1330, i64 1 - %1348 = insertelement <2 x float> poison, float %1314, i64 0 - %1349 = insertelement <2 x float> %1348, float %1336, i64 1 - %1350 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1347, <2 x float> %1349, <2 x float> %1345) - %1351 = insertelement <2 x float> poison, float %1323, i64 0 - %1352 = insertelement <2 x float> %1351, float %1332, i64 1 - %1353 = insertelement <2 x float> poison, float %1319, i64 0 - %1354 = insertelement <2 x float> %1353, float %1339, i64 1 - %1355 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1352, <2 x float> %1354, <2 x float> %1350) - %1356 = insertelement <2 x float> poison, float %1325, i64 0 - %1357 = insertelement <2 x float> %1356, float %1334, i64 1 - %1358 = fmul <2 x float> %1357, %1344 - %1359 = insertelement <2 x float> poison, float %1324, i64 0 - %1360 = insertelement <2 x float> %1359, float %1333, i64 1 - %1361 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1360, <2 x float> %1349, <2 x float> %1358) - %1362 = insertelement <2 x float> poison, float %1326, i64 0 - %1363 = insertelement <2 x float> %1362, float %1335, i64 1 - %1364 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1363, <2 x float> %1354, <2 x float> %1361) - %shift2847 = shufflevector <2 x float> %1364, <2 x float> poison, <2 x i32> - %1365 = fadd <2 x float> %1364, %shift2847 - %add14.i.i1797 = extractelement <2 x float> %1365, i64 0 + %1335 = load float, ptr %arrayidx7.i.i6.i1790, align 4, !noalias !73 + %mul8.i.i7.i1791 = fmul float %1326, %1335 + %1336 = call float @llvm.fmuladd.f32(float %1325, float %1334, float %mul8.i.i7.i1791) + %1337 = load float, ptr %ref.tmp3.sroa.2.0.m_bottomVec17.sroa_idx.i1636, align 4, !noalias !73 + %1338 = call noundef float @llvm.fmuladd.f32(float %1327, float %1337, float %1336) + %1339 = insertelement <2 x float> poison, float %1320, i64 0 + %1340 = insertelement <2 x float> %1339, float %1329, i64 1 + %1341 = insertelement <2 x float> poison, float %1314, i64 0 + %1342 = insertelement <2 x float> %1341, float %1335, i64 1 + %1343 = fmul <2 x float> %1340, %1342 + %1344 = insertelement <2 x float> poison, float %1319, i64 0 + %1345 = insertelement <2 x float> %1344, float %1328, i64 1 + %1346 = insertelement <2 x float> poison, float %1312, i64 0 + %1347 = insertelement <2 x float> %1346, float %1334, i64 1 + %1348 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1345, <2 x float> %1347, <2 x float> %1343) + %1349 = insertelement <2 x float> poison, float %1321, i64 0 + %1350 = insertelement <2 x float> %1349, float %1330, i64 1 + %1351 = insertelement <2 x float> poison, float %1317, i64 0 + %1352 = insertelement <2 x float> %1351, float %1337, i64 1 + %1353 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1350, <2 x float> %1352, <2 x float> %1348) + %1354 = insertelement <2 x float> poison, float %1323, i64 0 + %1355 = insertelement <2 x float> %1354, float %1332, i64 1 + %1356 = fmul <2 x float> %1355, %1342 + %1357 = insertelement <2 x float> poison, float %1322, i64 0 + %1358 = insertelement <2 x float> %1357, float %1331, i64 1 + %1359 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1358, <2 x float> %1347, <2 x float> %1356) + %1360 = insertelement <2 x float> poison, float %1324, i64 0 + %1361 = insertelement <2 x float> %1360, float %1333, i64 1 + %1362 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1361, <2 x float> %1352, <2 x float> %1359) + %shift2851 = shufflevector <2 x float> %1362, <2 x float> poison, <2 x i32> + %1363 = fadd <2 x float> %1362, %shift2851 + %add14.i.i1797 = extractelement <2 x float> %1363, i64 0 %m_topRightMat.i1804 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv.next2744, i32 1 - %1366 = load float, ptr %m_topRightMat.i1804, align 4, !noalias !73 + %1364 = load float, ptr %m_topRightMat.i1804, align 4, !noalias !73 %arrayidx5.i.i46.i1805 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv.next2744, i32 1, i32 0, i64 0, i32 0, i64 1 - %1367 = load float, ptr %arrayidx5.i.i46.i1805, align 4, !noalias !73 + %1365 = load float, ptr %arrayidx5.i.i46.i1805, align 4, !noalias !73 %arrayidx10.i.i49.i1807 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv.next2744, i32 1, i32 0, i64 0, i32 0, i64 2 - %1368 = load float, ptr %arrayidx10.i.i49.i1807, align 4, !noalias !73 + %1366 = load float, ptr %arrayidx10.i.i49.i1807, align 4, !noalias !73 %arrayidx.i.i51.i1808 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv.next2744, i32 1, i32 0, i64 1 - %1369 = load float, ptr %arrayidx.i.i51.i1808, align 4, !noalias !73 + %1367 = load float, ptr %arrayidx.i.i51.i1808, align 4, !noalias !73 %arrayidx5.i5.i52.i1809 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv.next2744, i32 1, i32 0, i64 1, i32 0, i64 1 - %1370 = load float, ptr %arrayidx5.i5.i52.i1809, align 4, !noalias !73 + %1368 = load float, ptr %arrayidx5.i5.i52.i1809, align 4, !noalias !73 %arrayidx10.i8.i54.i1811 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv.next2744, i32 1, i32 0, i64 1, i32 0, i64 2 - %1371 = load float, ptr %arrayidx10.i8.i54.i1811, align 4, !noalias !73 + %1369 = load float, ptr %arrayidx10.i8.i54.i1811, align 4, !noalias !73 %arrayidx.i10.i55.i1812 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv.next2744, i32 1, i32 0, i64 2 - %1372 = load float, ptr %arrayidx.i10.i55.i1812, align 4, !noalias !73 + %1370 = load float, ptr %arrayidx.i10.i55.i1812, align 4, !noalias !73 %arrayidx5.i11.i56.i1813 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv.next2744, i32 1, i32 0, i64 2, i32 0, i64 1 - %1373 = load float, ptr %arrayidx5.i11.i56.i1813, align 4, !noalias !73 + %1371 = load float, ptr %arrayidx5.i11.i56.i1813, align 4, !noalias !73 %arrayidx10.i14.i58.i1815 = getelementptr inbounds %struct.btSymmetricSpatialDyad, ptr %arrayidx.i388, i64 %indvars.iv.next2744, i32 1, i32 0, i64 2, i32 0, i64 2 - %1374 = load float, ptr %arrayidx10.i14.i58.i1815, align 4, !noalias !73 - %1375 = insertelement <2 x float> poison, float %1332, i64 0 - %1376 = insertelement <2 x float> %1375, float %1373, i64 1 - %1377 = fmul <2 x float> %1344, %1376 - %1378 = insertelement <2 x float> poison, float %1329, i64 0 - %1379 = insertelement <2 x float> %1378, float %1372, i64 1 - %1380 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1379, <2 x float> %1349, <2 x float> %1377) - %1381 = insertelement <2 x float> poison, float %1335, i64 0 - %1382 = insertelement <2 x float> %1381, float %1374, i64 1 - %1383 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1382, <2 x float> %1354, <2 x float> %1380) - %shift2848 = shufflevector <2 x float> %1383, <2 x float> poison, <2 x i32> - %1384 = fadd <2 x float> %1383, %shift2848 - %add14.i70.i1818 = extractelement <2 x float> %1384, i64 0 + %1372 = load float, ptr %arrayidx10.i14.i58.i1815, align 4, !noalias !73 + %1373 = insertelement <2 x float> poison, float %1330, i64 0 + %1374 = insertelement <2 x float> %1373, float %1371, i64 1 + %1375 = fmul <2 x float> %1342, %1374 + %1376 = insertelement <2 x float> poison, float %1327, i64 0 + %1377 = insertelement <2 x float> %1376, float %1370, i64 1 + %1378 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1377, <2 x float> %1347, <2 x float> %1375) + %1379 = insertelement <2 x float> poison, float %1333, i64 0 + %1380 = insertelement <2 x float> %1379, float %1372, i64 1 + %1381 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1380, <2 x float> %1352, <2 x float> %1378) + %shift2852 = shufflevector <2 x float> %1381, <2 x float> poison, <2 x i32> + %1382 = fadd <2 x float> %1381, %shift2852 + %add14.i70.i1818 = extractelement <2 x float> %1382, i64 0 %arrayidx901 = getelementptr inbounds %struct.btSpatialForceVector, ptr %add.ptr, i64 %indvars.iv.next2744 %m_bottomVec2.i1826 = getelementptr inbounds %struct.btSpatialForceVector, ptr %add.ptr, i64 %indvars.iv.next2744, i32 1 - %1385 = shufflevector <2 x float> %1355, <2 x float> poison, <2 x i32> - %1386 = insertelement <2 x float> %1385, float %1320, i64 0 - %1387 = insertelement <2 x float> %1355, float %1340, i64 0 + %1383 = shufflevector <2 x float> %1353, <2 x float> poison, <2 x i32> + %1384 = insertelement <2 x float> %1383, float %1318, i64 0 + %1385 = insertelement <2 x float> %1353, float %1338, i64 0 + %1386 = fadd <2 x float> %1384, %1385 + %1387 = load <2 x float>, ptr %m_bottomVec2.i1826, align 4, !noalias !73 %1388 = fadd <2 x float> %1386, %1387 - %1389 = load <2 x float>, ptr %m_bottomVec2.i1826, align 4, !noalias !73 - %1390 = fadd <2 x float> %1388, %1389 %arrayidx13.i.i1832 = getelementptr inbounds %struct.btSpatialForceVector, ptr %add.ptr, i64 %indvars.iv.next2744, i32 1, i32 0, i64 2 - %1391 = load float, ptr %arrayidx13.i.i1832, align 4, !noalias !73 - %add14.i.i1833 = fadd float %add14.i.i1797, %1391 + %1389 = load float, ptr %arrayidx13.i.i1832, align 4, !noalias !73 + %add14.i.i1833 = fadd float %add14.i.i1797, %1389 %retval.sroa.3.12.vec.insert.i.i1836 = insertelement <2 x float> , float %add14.i.i1833, i64 0 - %1392 = shufflevector <2 x float> %1343, <2 x float> poison, <2 x i32> zeroinitializer - %1393 = insertelement <2 x float> poison, float %1330, i64 0 - %1394 = insertelement <2 x float> %1393, float %1331, i64 1 - %1395 = fmul <2 x float> %1392, %1394 - %1396 = insertelement <2 x float> poison, float %1327, i64 0 - %1397 = insertelement <2 x float> %1396, float %1328, i64 1 - %1398 = shufflevector <2 x float> %1348, <2 x float> poison, <2 x i32> zeroinitializer - %1399 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1397, <2 x float> %1398, <2 x float> %1395) - %1400 = insertelement <2 x float> poison, float %1333, i64 0 - %1401 = insertelement <2 x float> %1400, float %1334, i64 1 - %1402 = shufflevector <2 x float> %1353, <2 x float> poison, <2 x i32> zeroinitializer - %1403 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1401, <2 x float> %1402, <2 x float> %1399) - %1404 = insertelement <2 x float> poison, float %1337, i64 0 - %1405 = shufflevector <2 x float> %1404, <2 x float> poison, <2 x i32> zeroinitializer - %1406 = insertelement <2 x float> poison, float %1367, i64 0 - %1407 = insertelement <2 x float> %1406, float %1370, i64 1 - %1408 = fmul <2 x float> %1405, %1407 - %1409 = insertelement <2 x float> poison, float %1366, i64 0 - %1410 = insertelement <2 x float> %1409, float %1369, i64 1 - %1411 = insertelement <2 x float> poison, float %1336, i64 0 - %1412 = shufflevector <2 x float> %1411, <2 x float> poison, <2 x i32> zeroinitializer - %1413 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1410, <2 x float> %1412, <2 x float> %1408) - %1414 = insertelement <2 x float> poison, float %1368, i64 0 - %1415 = insertelement <2 x float> %1414, float %1371, i64 1 - %1416 = insertelement <2 x float> poison, float %1339, i64 0 - %1417 = shufflevector <2 x float> %1416, <2 x float> poison, <2 x i32> zeroinitializer - %1418 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1415, <2 x float> %1417, <2 x float> %1413) - %1419 = fadd <2 x float> %1403, %1418 - %1420 = load <2 x float>, ptr %arrayidx901, align 4, !noalias !73 - %1421 = fadd <2 x float> %1419, %1420 + %1390 = shufflevector <2 x float> %1341, <2 x float> poison, <2 x i32> zeroinitializer + %1391 = insertelement <2 x float> poison, float %1328, i64 0 + %1392 = insertelement <2 x float> %1391, float %1329, i64 1 + %1393 = fmul <2 x float> %1390, %1392 + %1394 = insertelement <2 x float> poison, float %1325, i64 0 + %1395 = insertelement <2 x float> %1394, float %1326, i64 1 + %1396 = shufflevector <2 x float> %1346, <2 x float> poison, <2 x i32> zeroinitializer + %1397 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1395, <2 x float> %1396, <2 x float> %1393) + %1398 = insertelement <2 x float> poison, float %1331, i64 0 + %1399 = insertelement <2 x float> %1398, float %1332, i64 1 + %1400 = shufflevector <2 x float> %1351, <2 x float> poison, <2 x i32> zeroinitializer + %1401 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1399, <2 x float> %1400, <2 x float> %1397) + %1402 = insertelement <2 x float> poison, float %1335, i64 0 + %1403 = shufflevector <2 x float> %1402, <2 x float> poison, <2 x i32> zeroinitializer + %1404 = insertelement <2 x float> poison, float %1365, i64 0 + %1405 = insertelement <2 x float> %1404, float %1368, i64 1 + %1406 = fmul <2 x float> %1403, %1405 + %1407 = insertelement <2 x float> poison, float %1364, i64 0 + %1408 = insertelement <2 x float> %1407, float %1367, i64 1 + %1409 = insertelement <2 x float> poison, float %1334, i64 0 + %1410 = shufflevector <2 x float> %1409, <2 x float> poison, <2 x i32> zeroinitializer + %1411 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1408, <2 x float> %1410, <2 x float> %1406) + %1412 = insertelement <2 x float> poison, float %1366, i64 0 + %1413 = insertelement <2 x float> %1412, float %1369, i64 1 + %1414 = insertelement <2 x float> poison, float %1337, i64 0 + %1415 = shufflevector <2 x float> %1414, <2 x float> poison, <2 x i32> zeroinitializer + %1416 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1413, <2 x float> %1415, <2 x float> %1411) + %1417 = fadd <2 x float> %1401, %1416 + %1418 = load <2 x float>, ptr %arrayidx901, align 4, !noalias !73 + %1419 = fadd <2 x float> %1417, %1418 %arrayidx13.i7.i1842 = getelementptr inbounds [4 x float], ptr %arrayidx901, i64 0, i64 2 - %1422 = load float, ptr %arrayidx13.i7.i1842, align 4, !noalias !73 - %add14.i8.i1843 = fadd float %add14.i70.i1818, %1422 + %1420 = load float, ptr %arrayidx13.i7.i1842, align 4, !noalias !73 + %add14.i8.i1843 = fadd float %add14.i70.i1818, %1420 %retval.sroa.3.12.vec.insert.i11.i1929 = insertelement <2 x float> , float %add14.i8.i1843, i64 0 br i1 %jointFeedbackInJointFrame, label %if.then914, label %if.end923 if.then914: ; preds = %if.then889 - %m_dVector = getelementptr inbounds %struct.btMultibodyLink, ptr %1311, i64 %indvars.iv2743, i32 4 + %m_dVector = getelementptr inbounds %struct.btMultibodyLink, ptr %1309, i64 %indvars.iv2743, i32 4 %arrayidx7.i1939 = getelementptr inbounds [4 x float], ptr %m_dVector, i64 0, i64 1 - %1423 = extractelement <2 x float> %1421, i64 1 - %1424 = load float, ptr %m_dVector, align 4 - %1425 = extractelement <2 x float> %1421, i64 0 - %1426 = fneg float %1423 - %neg30.i1942 = fmul float %1424, %1426 - %1427 = load <2 x float>, ptr %arrayidx7.i1939, align 4 - %1428 = shufflevector <2 x float> %1421, <2 x float> poison, <2 x i32> - %1429 = insertelement <2 x float> %1428, float %add14.i8.i1843, i64 0 - %1430 = fneg <2 x float> %1429 - %1431 = fmul <2 x float> %1427, %1430 - %1432 = insertelement <2 x float> %1428, float %add14.i8.i1843, i64 1 - %1433 = shufflevector <2 x float> %1427, <2 x float> poison, <2 x i32> - %1434 = insertelement <2 x float> %1433, float %1424, i64 1 - %1435 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1432, <2 x float> %1434, <2 x float> %1431) - %1436 = extractelement <2 x float> %1427, i64 0 - %1437 = call float @llvm.fmuladd.f32(float %1425, float %1436, float %neg30.i1942) - %1438 = fsub <2 x float> %1390, %1435 - %sub14.i = fsub float %add14.i.i1833, %1437 + %1421 = extractelement <2 x float> %1419, i64 1 + %1422 = load float, ptr %m_dVector, align 4 + %1423 = extractelement <2 x float> %1419, i64 0 + %1424 = fneg float %1421 + %neg30.i1942 = fmul float %1422, %1424 + %1425 = load <2 x float>, ptr %arrayidx7.i1939, align 4 + %1426 = shufflevector <2 x float> %1419, <2 x float> poison, <2 x i32> + %1427 = insertelement <2 x float> %1426, float %add14.i8.i1843, i64 0 + %1428 = fneg <2 x float> %1427 + %1429 = fmul <2 x float> %1425, %1428 + %1430 = insertelement <2 x float> %1426, float %add14.i8.i1843, i64 1 + %1431 = shufflevector <2 x float> %1425, <2 x float> poison, <2 x i32> + %1432 = insertelement <2 x float> %1431, float %1422, i64 1 + %1433 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1430, <2 x float> %1432, <2 x float> %1429) + %1434 = extractelement <2 x float> %1425, i64 0 + %1435 = call float @llvm.fmuladd.f32(float %1423, float %1434, float %neg30.i1942) + %1436 = fsub <2 x float> %1388, %1433 + %sub14.i = fsub float %add14.i.i1833, %1435 %retval.sroa.3.12.vec.insert.i1954 = insertelement <2 x float> , float %sub14.i, i64 0 br label %if.end923 if.end923: ; preds = %if.then914, %if.then889 - %angularBotVec.sroa.0.0 = phi <2 x float> [ %1438, %if.then914 ], [ %1390, %if.then889 ] + %angularBotVec.sroa.0.0 = phi <2 x float> [ %1436, %if.then914 ], [ %1388, %if.then889 ] %angularBotVec.sroa.11.0 = phi <2 x float> [ %retval.sroa.3.12.vec.insert.i1954, %if.then914 ], [ %retval.sroa.3.12.vec.insert.i.i1836, %if.then889 ] br i1 %jointFeedbackInWorldSpace, label %if.then925, label %if.else978 if.then925: ; preds = %if.end923 - %m_cachedWorldTransform = getelementptr inbounds %struct.btMultibodyLink, ptr %1311, i64 %indvars.iv2743, i32 28 - %1439 = load float, ptr %m_cachedWorldTransform, align 4 + %m_cachedWorldTransform = getelementptr inbounds %struct.btMultibodyLink, ptr %1309, i64 %indvars.iv2743, i32 28 + %1437 = load float, ptr %m_cachedWorldTransform, align 4 %angularBotVec.sroa.0.0.vec.extract2382 = extractelement <2 x float> %angularBotVec.sroa.0.0, i64 0 %arrayidx5.i.i1960 = getelementptr inbounds [4 x float], ptr %m_cachedWorldTransform, i64 0, i64 1 - %1440 = load float, ptr %arrayidx5.i.i1960, align 4 + %1438 = load float, ptr %arrayidx5.i.i1960, align 4 %angularBotVec.sroa.0.4.vec.extract2388 = extractelement <2 x float> %angularBotVec.sroa.0.0, i64 1 %arrayidx10.i.i1963 = getelementptr inbounds [4 x float], ptr %m_cachedWorldTransform, i64 0, i64 2 - %1441 = load float, ptr %arrayidx10.i.i1963, align 4 + %1439 = load float, ptr %arrayidx10.i.i1963, align 4 %angularBotVec.sroa.11.8.vec.extract2394 = extractelement <2 x float> %angularBotVec.sroa.11.0, i64 0 %arrayidx.i.i1965 = getelementptr inbounds [3 x %class.btVector3], ptr %m_cachedWorldTransform, i64 0, i64 1 - %1442 = load float, ptr %arrayidx.i.i1965, align 4 + %1440 = load float, ptr %arrayidx.i.i1965, align 4 %arrayidx5.i5.i1966 = getelementptr inbounds [3 x %class.btVector3], ptr %m_cachedWorldTransform, i64 0, i64 1, i32 0, i64 1 - %1443 = load float, ptr %arrayidx5.i5.i1966, align 4 - %1444 = shufflevector <2 x float> %angularBotVec.sroa.0.0, <2 x float> poison, <2 x i32> - %1445 = insertelement <2 x float> poison, float %1440, i64 0 - %1446 = insertelement <2 x float> %1445, float %1443, i64 1 - %1447 = fmul <2 x float> %1444, %1446 - %1448 = insertelement <2 x float> poison, float %1439, i64 0 - %1449 = insertelement <2 x float> %1448, float %1442, i64 1 - %1450 = shufflevector <2 x float> %angularBotVec.sroa.0.0, <2 x float> poison, <2 x i32> zeroinitializer - %1451 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1449, <2 x float> %1450, <2 x float> %1447) + %1441 = load float, ptr %arrayidx5.i5.i1966, align 4 + %1442 = shufflevector <2 x float> %angularBotVec.sroa.0.0, <2 x float> poison, <2 x i32> + %1443 = insertelement <2 x float> poison, float %1438, i64 0 + %1444 = insertelement <2 x float> %1443, float %1441, i64 1 + %1445 = fmul <2 x float> %1442, %1444 + %1446 = insertelement <2 x float> poison, float %1437, i64 0 + %1447 = insertelement <2 x float> %1446, float %1440, i64 1 + %1448 = shufflevector <2 x float> %angularBotVec.sroa.0.0, <2 x float> poison, <2 x i32> zeroinitializer + %1449 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1447, <2 x float> %1448, <2 x float> %1445) %arrayidx10.i8.i1968 = getelementptr inbounds [3 x %class.btVector3], ptr %m_cachedWorldTransform, i64 0, i64 1, i32 0, i64 2 - %1452 = load float, ptr %arrayidx10.i8.i1968, align 4 - %1453 = insertelement <2 x float> poison, float %1441, i64 0 - %1454 = insertelement <2 x float> %1453, float %1452, i64 1 - %1455 = shufflevector <2 x float> %angularBotVec.sroa.11.0, <2 x float> poison, <2 x i32> zeroinitializer - %1456 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1454, <2 x float> %1455, <2 x float> %1451) + %1450 = load float, ptr %arrayidx10.i8.i1968, align 4 + %1451 = insertelement <2 x float> poison, float %1439, i64 0 + %1452 = insertelement <2 x float> %1451, float %1450, i64 1 + %1453 = shufflevector <2 x float> %angularBotVec.sroa.11.0, <2 x float> poison, <2 x i32> zeroinitializer + %1454 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1452, <2 x float> %1453, <2 x float> %1449) %arrayidx.i10.i1969 = getelementptr inbounds [3 x %class.btVector3], ptr %m_cachedWorldTransform, i64 0, i64 2 - %1457 = load float, ptr %arrayidx.i10.i1969, align 4 + %1455 = load float, ptr %arrayidx.i10.i1969, align 4 %arrayidx5.i11.i1970 = getelementptr inbounds [3 x %class.btVector3], ptr %m_cachedWorldTransform, i64 0, i64 2, i32 0, i64 1 - %1458 = load float, ptr %arrayidx5.i11.i1970, align 4 - %mul8.i13.i1971 = fmul float %angularBotVec.sroa.0.4.vec.extract2388, %1458 - %1459 = call float @llvm.fmuladd.f32(float %1457, float %angularBotVec.sroa.0.0.vec.extract2382, float %mul8.i13.i1971) + %1456 = load float, ptr %arrayidx5.i11.i1970, align 4 + %mul8.i13.i1971 = fmul float %angularBotVec.sroa.0.4.vec.extract2388, %1456 + %1457 = call float @llvm.fmuladd.f32(float %1455, float %angularBotVec.sroa.0.0.vec.extract2382, float %mul8.i13.i1971) %arrayidx10.i14.i1972 = getelementptr inbounds [3 x %class.btVector3], ptr %m_cachedWorldTransform, i64 0, i64 2, i32 0, i64 2 - %1460 = load float, ptr %arrayidx10.i14.i1972, align 4 - %1461 = call noundef float @llvm.fmuladd.f32(float %1460, float %angularBotVec.sroa.11.8.vec.extract2394, float %1459) + %1458 = load float, ptr %arrayidx10.i14.i1972, align 4 + %1459 = call noundef float @llvm.fmuladd.f32(float %1458, float %angularBotVec.sroa.11.8.vec.extract2394, float %1457) br i1 %isConstraintPass, label %if.then927, label %if.else952 if.then927: ; preds = %if.then925 - %1462 = load ptr, ptr %m_jointFeedback, align 8 - %m_bottomVec937 = getelementptr inbounds %struct.btSpatialForceVector, ptr %1462, i64 0, i32 1 - %1463 = load <2 x float>, ptr %m_bottomVec937, align 4 - %1464 = fadd <2 x float> %1456, %1463 - store <2 x float> %1464, ptr %m_bottomVec937, align 4 - %arrayidx12.i = getelementptr inbounds %struct.btSpatialForceVector, ptr %1462, i64 0, i32 1, i32 0, i64 2 - %1465 = load float, ptr %arrayidx12.i, align 4 - %add13.i = fadd float %1461, %1465 + %1460 = load ptr, ptr %m_jointFeedback, align 8 + %m_bottomVec937 = getelementptr inbounds %struct.btSpatialForceVector, ptr %1460, i64 0, i32 1 + %1461 = load <2 x float>, ptr %m_bottomVec937, align 4 + %1462 = fadd <2 x float> %1454, %1461 + store <2 x float> %1462, ptr %m_bottomVec937, align 4 + %arrayidx12.i = getelementptr inbounds %struct.btSpatialForceVector, ptr %1460, i64 0, i32 1, i32 0, i64 2 + %1463 = load float, ptr %arrayidx12.i, align 4 + %add13.i = fadd float %1459, %1463 store float %add13.i, ptr %arrayidx12.i, align 4 - %1466 = load ptr, ptr %m_data.i1590, align 8 - %m_cachedWorldTransform942 = getelementptr inbounds %struct.btMultibodyLink, ptr %1466, i64 %indvars.iv2743, i32 28 - %1467 = load float, ptr %m_cachedWorldTransform942, align 4 + %1464 = load ptr, ptr %m_data.i1590, align 8 + %m_cachedWorldTransform942 = getelementptr inbounds %struct.btMultibodyLink, ptr %1464, i64 %indvars.iv2743, i32 28 + %1465 = load float, ptr %m_cachedWorldTransform942, align 4 %arrayidx5.i.i1987 = getelementptr inbounds [4 x float], ptr %m_cachedWorldTransform942, i64 0, i64 1 - %1468 = load float, ptr %arrayidx5.i.i1987, align 4 + %1466 = load float, ptr %arrayidx5.i.i1987, align 4 %arrayidx10.i.i1990 = getelementptr inbounds [4 x float], ptr %m_cachedWorldTransform942, i64 0, i64 2 - %1469 = load float, ptr %arrayidx10.i.i1990, align 4 + %1467 = load float, ptr %arrayidx10.i.i1990, align 4 %arrayidx.i.i1992 = getelementptr inbounds [3 x %class.btVector3], ptr %m_cachedWorldTransform942, i64 0, i64 1 - %1470 = load float, ptr %arrayidx.i.i1992, align 4 + %1468 = load float, ptr %arrayidx.i.i1992, align 4 %arrayidx5.i5.i1993 = getelementptr inbounds [3 x %class.btVector3], ptr %m_cachedWorldTransform942, i64 0, i64 1, i32 0, i64 1 - %1471 = load float, ptr %arrayidx5.i5.i1993, align 4 + %1469 = load float, ptr %arrayidx5.i5.i1993, align 4 %arrayidx10.i8.i1995 = getelementptr inbounds [3 x %class.btVector3], ptr %m_cachedWorldTransform942, i64 0, i64 1, i32 0, i64 2 - %1472 = load float, ptr %arrayidx10.i8.i1995, align 4 + %1470 = load float, ptr %arrayidx10.i8.i1995, align 4 %arrayidx.i10.i1996 = getelementptr inbounds [3 x %class.btVector3], ptr %m_cachedWorldTransform942, i64 0, i64 2 - %1473 = load float, ptr %arrayidx.i10.i1996, align 4 + %1471 = load float, ptr %arrayidx.i10.i1996, align 4 %arrayidx5.i11.i1997 = getelementptr inbounds [3 x %class.btVector3], ptr %m_cachedWorldTransform942, i64 0, i64 2, i32 0, i64 1 - %1474 = load float, ptr %arrayidx5.i11.i1997, align 4 - %1475 = extractelement <2 x float> %1421, i64 1 - %mul8.i13.i1998 = fmul float %1475, %1474 - %1476 = extractelement <2 x float> %1421, i64 0 - %1477 = call float @llvm.fmuladd.f32(float %1473, float %1476, float %mul8.i13.i1998) + %1472 = load float, ptr %arrayidx5.i11.i1997, align 4 + %1473 = extractelement <2 x float> %1419, i64 1 + %mul8.i13.i1998 = fmul float %1473, %1472 + %1474 = extractelement <2 x float> %1419, i64 0 + %1475 = call float @llvm.fmuladd.f32(float %1471, float %1474, float %mul8.i13.i1998) %arrayidx10.i14.i1999 = getelementptr inbounds [3 x %class.btVector3], ptr %m_cachedWorldTransform942, i64 0, i64 2, i32 0, i64 2 - %1478 = load float, ptr %arrayidx10.i14.i1999, align 4 - %1479 = call noundef float @llvm.fmuladd.f32(float %1478, float %add14.i8.i1843, float %1477) - %m_jointFeedback948 = getelementptr inbounds %struct.btMultibodyLink, ptr %1466, i64 %indvars.iv2743, i32 27 - %1480 = load ptr, ptr %m_jointFeedback948, align 8 - %1481 = shufflevector <2 x float> %1421, <2 x float> poison, <2 x i32> - %1482 = insertelement <2 x float> poison, float %1468, i64 0 - %1483 = insertelement <2 x float> %1482, float %1471, i64 1 - %1484 = fmul <2 x float> %1481, %1483 - %1485 = insertelement <2 x float> poison, float %1467, i64 0 - %1486 = insertelement <2 x float> %1485, float %1470, i64 1 - %1487 = shufflevector <2 x float> %1421, <2 x float> poison, <2 x i32> zeroinitializer - %1488 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1486, <2 x float> %1487, <2 x float> %1484) - %1489 = insertelement <2 x float> poison, float %1469, i64 0 - %1490 = insertelement <2 x float> %1489, float %1472, i64 1 - %1491 = insertelement <2 x float> poison, float %add14.i8.i1843, i64 0 - %1492 = shufflevector <2 x float> %1491, <2 x float> poison, <2 x i32> zeroinitializer - %1493 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1490, <2 x float> %1492, <2 x float> %1488) - %1494 = load <2 x float>, ptr %1480, align 4 - %1495 = fadd <2 x float> %1493, %1494 - store <2 x float> %1495, ptr %1480, align 4 - %arrayidx12.i2013 = getelementptr inbounds [4 x float], ptr %1480, i64 0, i64 2 - %1496 = load float, ptr %arrayidx12.i2013, align 4 - %add13.i2014 = fadd float %1479, %1496 + %1476 = load float, ptr %arrayidx10.i14.i1999, align 4 + %1477 = call noundef float @llvm.fmuladd.f32(float %1476, float %add14.i8.i1843, float %1475) + %m_jointFeedback948 = getelementptr inbounds %struct.btMultibodyLink, ptr %1464, i64 %indvars.iv2743, i32 27 + %1478 = load ptr, ptr %m_jointFeedback948, align 8 + %1479 = shufflevector <2 x float> %1419, <2 x float> poison, <2 x i32> + %1480 = insertelement <2 x float> poison, float %1466, i64 0 + %1481 = insertelement <2 x float> %1480, float %1469, i64 1 + %1482 = fmul <2 x float> %1479, %1481 + %1483 = insertelement <2 x float> poison, float %1465, i64 0 + %1484 = insertelement <2 x float> %1483, float %1468, i64 1 + %1485 = shufflevector <2 x float> %1419, <2 x float> poison, <2 x i32> zeroinitializer + %1486 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1484, <2 x float> %1485, <2 x float> %1482) + %1487 = insertelement <2 x float> poison, float %1467, i64 0 + %1488 = insertelement <2 x float> %1487, float %1470, i64 1 + %1489 = insertelement <2 x float> poison, float %add14.i8.i1843, i64 0 + %1490 = shufflevector <2 x float> %1489, <2 x float> poison, <2 x i32> zeroinitializer + %1491 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1488, <2 x float> %1490, <2 x float> %1486) + %1492 = load <2 x float>, ptr %1478, align 4 + %1493 = fadd <2 x float> %1491, %1492 + store <2 x float> %1493, ptr %1478, align 4 + %arrayidx12.i2013 = getelementptr inbounds [4 x float], ptr %1478, i64 0, i64 2 + %1494 = load float, ptr %arrayidx12.i2013, align 4 + %add13.i2014 = fadd float %1477, %1494 store float %add13.i2014, ptr %arrayidx12.i2013, align 4 br label %for.inc1007 if.else952: ; preds = %if.then925 - %retval.sroa.3.12.vec.insert.i2033 = insertelement <2 x float> , float %1461, i64 0 - %1497 = load ptr, ptr %m_jointFeedback, align 8 - %m_bottomVec964 = getelementptr inbounds %struct.btSpatialForceVector, ptr %1497, i64 0, i32 1 - store <2 x float> %1456, ptr %m_bottomVec964, align 4 - %ref.tmp953.sroa.2.0.m_bottomVec964.sroa_idx = getelementptr inbounds %struct.btSpatialForceVector, ptr %1497, i64 0, i32 1, i32 0, i64 2 + %retval.sroa.3.12.vec.insert.i2033 = insertelement <2 x float> , float %1459, i64 0 + %1495 = load ptr, ptr %m_jointFeedback, align 8 + %m_bottomVec964 = getelementptr inbounds %struct.btSpatialForceVector, ptr %1495, i64 0, i32 1 + store <2 x float> %1454, ptr %m_bottomVec964, align 4 + %ref.tmp953.sroa.2.0.m_bottomVec964.sroa_idx = getelementptr inbounds %struct.btSpatialForceVector, ptr %1495, i64 0, i32 1, i32 0, i64 2 store <2 x float> %retval.sroa.3.12.vec.insert.i2033, ptr %ref.tmp953.sroa.2.0.m_bottomVec964.sroa_idx, align 4 - %1498 = load ptr, ptr %m_data.i1590, align 8 - %m_cachedWorldTransform968 = getelementptr inbounds %struct.btMultibodyLink, ptr %1498, i64 %indvars.iv2743, i32 28 - %1499 = load float, ptr %m_cachedWorldTransform968, align 4 + %1496 = load ptr, ptr %m_data.i1590, align 8 + %m_cachedWorldTransform968 = getelementptr inbounds %struct.btMultibodyLink, ptr %1496, i64 %indvars.iv2743, i32 28 + %1497 = load float, ptr %m_cachedWorldTransform968, align 4 %arrayidx5.i.i2042 = getelementptr inbounds [4 x float], ptr %m_cachedWorldTransform968, i64 0, i64 1 - %1500 = load float, ptr %arrayidx5.i.i2042, align 4 + %1498 = load float, ptr %arrayidx5.i.i2042, align 4 %arrayidx10.i.i2045 = getelementptr inbounds [4 x float], ptr %m_cachedWorldTransform968, i64 0, i64 2 - %1501 = load float, ptr %arrayidx10.i.i2045, align 4 + %1499 = load float, ptr %arrayidx10.i.i2045, align 4 %arrayidx.i.i2047 = getelementptr inbounds [3 x %class.btVector3], ptr %m_cachedWorldTransform968, i64 0, i64 1 - %1502 = load float, ptr %arrayidx.i.i2047, align 4 + %1500 = load float, ptr %arrayidx.i.i2047, align 4 %arrayidx5.i5.i2048 = getelementptr inbounds [3 x %class.btVector3], ptr %m_cachedWorldTransform968, i64 0, i64 1, i32 0, i64 1 - %1503 = load float, ptr %arrayidx5.i5.i2048, align 4 + %1501 = load float, ptr %arrayidx5.i5.i2048, align 4 %arrayidx10.i8.i2050 = getelementptr inbounds [3 x %class.btVector3], ptr %m_cachedWorldTransform968, i64 0, i64 1, i32 0, i64 2 - %1504 = load float, ptr %arrayidx10.i8.i2050, align 4 - %1505 = shufflevector <2 x float> %1421, <2 x float> poison, <2 x i32> - %1506 = insertelement <2 x float> poison, float %1500, i64 0 - %1507 = insertelement <2 x float> %1506, float %1503, i64 1 - %1508 = fmul <2 x float> %1505, %1507 - %1509 = insertelement <2 x float> poison, float %1499, i64 0 - %1510 = insertelement <2 x float> %1509, float %1502, i64 1 - %1511 = shufflevector <2 x float> %1421, <2 x float> poison, <2 x i32> zeroinitializer - %1512 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1510, <2 x float> %1511, <2 x float> %1508) - %1513 = insertelement <2 x float> poison, float %1501, i64 0 - %1514 = insertelement <2 x float> %1513, float %1504, i64 1 - %1515 = insertelement <2 x float> poison, float %add14.i8.i1843, i64 0 - %1516 = shufflevector <2 x float> %1515, <2 x float> poison, <2 x i32> zeroinitializer - %1517 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1514, <2 x float> %1516, <2 x float> %1512) + %1502 = load float, ptr %arrayidx10.i8.i2050, align 4 + %1503 = shufflevector <2 x float> %1419, <2 x float> poison, <2 x i32> + %1504 = insertelement <2 x float> poison, float %1498, i64 0 + %1505 = insertelement <2 x float> %1504, float %1501, i64 1 + %1506 = fmul <2 x float> %1503, %1505 + %1507 = insertelement <2 x float> poison, float %1497, i64 0 + %1508 = insertelement <2 x float> %1507, float %1500, i64 1 + %1509 = shufflevector <2 x float> %1419, <2 x float> poison, <2 x i32> zeroinitializer + %1510 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1508, <2 x float> %1509, <2 x float> %1506) + %1511 = insertelement <2 x float> poison, float %1499, i64 0 + %1512 = insertelement <2 x float> %1511, float %1502, i64 1 + %1513 = insertelement <2 x float> poison, float %add14.i8.i1843, i64 0 + %1514 = shufflevector <2 x float> %1513, <2 x float> poison, <2 x i32> zeroinitializer + %1515 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1512, <2 x float> %1514, <2 x float> %1510) %arrayidx.i10.i2051 = getelementptr inbounds [3 x %class.btVector3], ptr %m_cachedWorldTransform968, i64 0, i64 2 - %1518 = load float, ptr %arrayidx.i10.i2051, align 4 + %1516 = load float, ptr %arrayidx.i10.i2051, align 4 %arrayidx5.i11.i2052 = getelementptr inbounds [3 x %class.btVector3], ptr %m_cachedWorldTransform968, i64 0, i64 2, i32 0, i64 1 - %1519 = load float, ptr %arrayidx5.i11.i2052, align 4 - %1520 = extractelement <2 x float> %1421, i64 1 - %mul8.i13.i2053 = fmul float %1520, %1519 - %1521 = extractelement <2 x float> %1421, i64 0 - %1522 = call float @llvm.fmuladd.f32(float %1518, float %1521, float %mul8.i13.i2053) + %1517 = load float, ptr %arrayidx5.i11.i2052, align 4 + %1518 = extractelement <2 x float> %1419, i64 1 + %mul8.i13.i2053 = fmul float %1518, %1517 + %1519 = extractelement <2 x float> %1419, i64 0 + %1520 = call float @llvm.fmuladd.f32(float %1516, float %1519, float %mul8.i13.i2053) %arrayidx10.i14.i2054 = getelementptr inbounds [3 x %class.btVector3], ptr %m_cachedWorldTransform968, i64 0, i64 2, i32 0, i64 2 - %1523 = load float, ptr %arrayidx10.i14.i2054, align 4 - %1524 = call noundef float @llvm.fmuladd.f32(float %1523, float %add14.i8.i1843, float %1522) - %retval.sroa.3.12.vec.insert.i2057 = insertelement <2 x float> , float %1524, i64 0 - %m_jointFeedback974 = getelementptr inbounds %struct.btMultibodyLink, ptr %1498, i64 %indvars.iv2743, i32 27 - %1525 = load ptr, ptr %m_jointFeedback974, align 8 - store <2 x float> %1517, ptr %1525, align 4 - %ref.tmp965.sroa.2.0.m_topVec976.sroa_idx = getelementptr inbounds i8, ptr %1525, i64 8 + %1521 = load float, ptr %arrayidx10.i14.i2054, align 4 + %1522 = call noundef float @llvm.fmuladd.f32(float %1521, float %add14.i8.i1843, float %1520) + %retval.sroa.3.12.vec.insert.i2057 = insertelement <2 x float> , float %1522, i64 0 + %m_jointFeedback974 = getelementptr inbounds %struct.btMultibodyLink, ptr %1496, i64 %indvars.iv2743, i32 27 + %1523 = load ptr, ptr %m_jointFeedback974, align 8 + store <2 x float> %1515, ptr %1523, align 4 + %ref.tmp965.sroa.2.0.m_topVec976.sroa_idx = getelementptr inbounds i8, ptr %1523, i64 8 store <2 x float> %retval.sroa.3.12.vec.insert.i2057, ptr %ref.tmp965.sroa.2.0.m_topVec976.sroa_idx, align 4 br label %for.inc1007 if.else978: ; preds = %if.end923 - %1526 = load ptr, ptr %m_jointFeedback, align 8 - %m_bottomVec985 = getelementptr inbounds %struct.btSpatialForceVector, ptr %1526, i64 0, i32 1 + %1524 = load ptr, ptr %m_jointFeedback, align 8 + %m_bottomVec985 = getelementptr inbounds %struct.btSpatialForceVector, ptr %1524, i64 0, i32 1 br i1 %isConstraintPass, label %if.then980, label %if.else993 if.then980: ; preds = %if.else978 - %1527 = load <2 x float>, ptr %m_bottomVec985, align 4 - %1528 = fadd <2 x float> %angularBotVec.sroa.0.0, %1527 - store <2 x float> %1528, ptr %m_bottomVec985, align 4 + %1525 = load <2 x float>, ptr %m_bottomVec985, align 4 + %1526 = fadd <2 x float> %angularBotVec.sroa.0.0, %1525 + store <2 x float> %1526, ptr %m_bottomVec985, align 4 %angularBotVec.sroa.11.8.vec.extract2398 = extractelement <2 x float> %angularBotVec.sroa.11.0, i64 0 - %arrayidx12.i2071 = getelementptr inbounds %struct.btSpatialForceVector, ptr %1526, i64 0, i32 1, i32 0, i64 2 - %1529 = load float, ptr %arrayidx12.i2071, align 4 - %add13.i2072 = fadd float %angularBotVec.sroa.11.8.vec.extract2398, %1529 + %arrayidx12.i2071 = getelementptr inbounds %struct.btSpatialForceVector, ptr %1524, i64 0, i32 1, i32 0, i64 2 + %1527 = load float, ptr %arrayidx12.i2071, align 4 + %add13.i2072 = fadd float %angularBotVec.sroa.11.8.vec.extract2398, %1527 store float %add13.i2072, ptr %arrayidx12.i2071, align 4 - %1530 = load ptr, ptr %m_data.i1590, align 8 - %m_jointFeedback989 = getelementptr inbounds %struct.btMultibodyLink, ptr %1530, i64 %indvars.iv2743, i32 27 - %1531 = load ptr, ptr %m_jointFeedback989, align 8 - %1532 = load <2 x float>, ptr %1531, align 4 - %1533 = fadd <2 x float> %1421, %1532 - store <2 x float> %1533, ptr %1531, align 4 - %arrayidx12.i2081 = getelementptr inbounds [4 x float], ptr %1531, i64 0, i64 2 - %1534 = load float, ptr %arrayidx12.i2081, align 4 - %add13.i2082 = fadd float %add14.i8.i1843, %1534 + %1528 = load ptr, ptr %m_data.i1590, align 8 + %m_jointFeedback989 = getelementptr inbounds %struct.btMultibodyLink, ptr %1528, i64 %indvars.iv2743, i32 27 + %1529 = load ptr, ptr %m_jointFeedback989, align 8 + %1530 = load <2 x float>, ptr %1529, align 4 + %1531 = fadd <2 x float> %1419, %1530 + store <2 x float> %1531, ptr %1529, align 4 + %arrayidx12.i2081 = getelementptr inbounds [4 x float], ptr %1529, i64 0, i64 2 + %1532 = load float, ptr %arrayidx12.i2081, align 4 + %add13.i2082 = fadd float %add14.i8.i1843, %1532 store float %add13.i2082, ptr %arrayidx12.i2081, align 4 br label %for.inc1007 if.else993: ; preds = %if.else978 store <2 x float> %angularBotVec.sroa.0.0, ptr %m_bottomVec985, align 4 - %angularBotVec.sroa.11.0.m_bottomVec998.sroa_idx = getelementptr inbounds %struct.btSpatialForceVector, ptr %1526, i64 0, i32 1, i32 0, i64 2 + %angularBotVec.sroa.11.0.m_bottomVec998.sroa_idx = getelementptr inbounds %struct.btSpatialForceVector, ptr %1524, i64 0, i32 1, i32 0, i64 2 store <2 x float> %angularBotVec.sroa.11.0, ptr %angularBotVec.sroa.11.0.m_bottomVec998.sroa_idx, align 4 - %1535 = load ptr, ptr %m_data.i1590, align 8 - %m_jointFeedback1001 = getelementptr inbounds %struct.btMultibodyLink, ptr %1535, i64 %indvars.iv2743, i32 27 - %1536 = load ptr, ptr %m_jointFeedback1001, align 8 - store <2 x float> %1421, ptr %1536, align 4 - %linearTopVec.sroa.10.0..sroa_idx = getelementptr inbounds i8, ptr %1536, i64 8 + %1533 = load ptr, ptr %m_data.i1590, align 8 + %m_jointFeedback1001 = getelementptr inbounds %struct.btMultibodyLink, ptr %1533, i64 %indvars.iv2743, i32 27 + %1534 = load ptr, ptr %m_jointFeedback1001, align 8 + store <2 x float> %1419, ptr %1534, align 4 + %linearTopVec.sroa.10.0..sroa_idx = getelementptr inbounds i8, ptr %1534, i64 8 store <2 x float> %retval.sroa.3.12.vec.insert.i11.i1929, ptr %linearTopVec.sroa.10.0..sroa_idx, align 4 br label %for.inc1007 @@ -8179,88 +8176,88 @@ for.inc1007: ; preds = %if.end885, %if.then br i1 %exitcond2747.not, label %for.end1009.loopexit, label %for.body777, !llvm.loop !88 for.end1009.loopexit: ; preds = %for.inc1007 - %1537 = load <2 x float>, ptr %add.ptr26, align 4 + %1535 = load <2 x float>, ptr %add.ptr26, align 4 %arrayidx12.i.i2112.phi.trans.insert = getelementptr inbounds [4 x float], ptr %add.ptr26, i64 0, i64 2 %.pre2796 = load float, ptr %arrayidx12.i.i2112.phi.trans.insert, align 4 br label %for.end1009 for.end1009: ; preds = %for.end1009.loopexit, %if.end773 - %1538 = phi float [ %.pre2796, %for.end1009.loopexit ], [ %1155, %if.end773 ] - %1539 = phi <2 x float> [ %1537, %for.end1009.loopexit ], [ %1156, %if.end773 ] - %1540 = load float, ptr %ref.tmp48.sroa.3.0..sroa_idx, align 4, !noalias !89 - %1541 = load float, ptr %ref.tmp48.sroa.8.16.arrayidx7.i.sroa_idx, align 4, !noalias !89 - %1542 = load float, ptr %ref.tmp48.sroa.13.32.arrayidx11.i397.sroa_idx, align 4, !noalias !89 - %1543 = extractelement <2 x float> %1539, i64 1 - %mul8.i13.i2119 = fmul float %1541, %1543 - %1544 = extractelement <2 x float> %1539, i64 0 - %1545 = call float @llvm.fmuladd.f32(float %1540, float %1544, float %mul8.i13.i2119) - %1546 = call noundef float @llvm.fmuladd.f32(float %1542, float %1538, float %1545) - %1547 = load <2 x float>, ptr %32, align 4, !noalias !89 - %1548 = load <2 x float>, ptr %arrayidx7.i, align 4, !noalias !89 - %1549 = load <2 x float>, ptr %arrayidx11.i397, align 4, !noalias !89 - %1550 = shufflevector <2 x float> %1539, <2 x float> poison, <2 x i32> - %1551 = fmul <2 x float> %1548, %1550 - %1552 = shufflevector <2 x float> %1539, <2 x float> poison, <2 x i32> zeroinitializer - %1553 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1547, <2 x float> %1552, <2 x float> %1551) - %1554 = insertelement <2 x float> poison, float %1538, i64 0 - %1555 = shufflevector <2 x float> %1554, <2 x float> poison, <2 x i32> zeroinitializer - %1556 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1549, <2 x float> %1555, <2 x float> %1553) - store <2 x float> %1556, ptr %arrayidx.i, align 4 + %1536 = phi float [ %.pre2796, %for.end1009.loopexit ], [ %1153, %if.end773 ] + %1537 = phi <2 x float> [ %1535, %for.end1009.loopexit ], [ %1154, %if.end773 ] + %1538 = load float, ptr %ref.tmp48.sroa.3.0..sroa_idx, align 4, !noalias !89 + %1539 = load float, ptr %ref.tmp48.sroa.8.16.arrayidx7.i.sroa_idx, align 4, !noalias !89 + %1540 = load float, ptr %ref.tmp48.sroa.13.32.arrayidx11.i397.sroa_idx, align 4, !noalias !89 + %1541 = extractelement <2 x float> %1537, i64 1 + %mul8.i13.i2119 = fmul float %1539, %1541 + %1542 = extractelement <2 x float> %1537, i64 0 + %1543 = call float @llvm.fmuladd.f32(float %1538, float %1542, float %mul8.i13.i2119) + %1544 = call noundef float @llvm.fmuladd.f32(float %1540, float %1536, float %1543) + %1545 = load <2 x float>, ptr %32, align 4, !noalias !89 + %1546 = load <2 x float>, ptr %arrayidx7.i, align 4, !noalias !89 + %1547 = load <2 x float>, ptr %arrayidx11.i397, align 4, !noalias !89 + %1548 = shufflevector <2 x float> %1537, <2 x float> poison, <2 x i32> + %1549 = fmul <2 x float> %1546, %1548 + %1550 = shufflevector <2 x float> %1537, <2 x float> poison, <2 x i32> zeroinitializer + %1551 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1545, <2 x float> %1550, <2 x float> %1549) + %1552 = insertelement <2 x float> poison, float %1536, i64 0 + %1553 = shufflevector <2 x float> %1552, <2 x float> poison, <2 x i32> zeroinitializer + %1554 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1547, <2 x float> %1553, <2 x float> %1551) + store <2 x float> %1554, ptr %arrayidx.i, align 4 %arrayidx1024 = getelementptr inbounds float, ptr %arrayidx.i, i64 2 - store float %1546, ptr %arrayidx1024, align 4 - %1557 = load float, ptr %ref.tmp48.sroa.3.0..sroa_idx, align 4, !noalias !92 - %1558 = load float, ptr %ref.tmp48.sroa.8.16.arrayidx7.i.sroa_idx, align 4, !noalias !92 - %1559 = load float, ptr %ref.tmp48.sroa.13.32.arrayidx11.i397.sroa_idx, align 4, !noalias !92 + store float %1544, ptr %arrayidx1024, align 4 + %1555 = load float, ptr %ref.tmp48.sroa.3.0..sroa_idx, align 4, !noalias !92 + %1556 = load float, ptr %ref.tmp48.sroa.8.16.arrayidx7.i.sroa_idx, align 4, !noalias !92 + %1557 = load float, ptr %ref.tmp48.sroa.13.32.arrayidx11.i397.sroa_idx, align 4, !noalias !92 %m_bottomVec.i2145 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %add.ptr26, i64 0, i32 1 %arrayidx.i2147 = getelementptr inbounds [4 x float], ptr %28, i64 0, i64 1 - %1560 = load float, ptr %arrayidx.i2147, align 4 - %1561 = load float, ptr %ref.tmp55.sroa.2.0.m_bottomVec.i.sroa_idx, align 4 - %1562 = load float, ptr %ref.tmp51.sroa.2.0..sroa_idx, align 4 + %1558 = load float, ptr %arrayidx.i2147, align 4 + %1559 = load float, ptr %ref.tmp55.sroa.2.0.m_bottomVec.i.sroa_idx, align 4 + %1560 = load float, ptr %ref.tmp51.sroa.2.0..sroa_idx, align 4 %arrayidx7.i2150 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %28, i64 0, i32 1, i32 0, i64 1 - %1563 = load float, ptr %arrayidx7.i2150, align 4 - %1564 = fneg float %1562 - %neg.i2151 = fmul float %1563, %1564 - %1565 = call float @llvm.fmuladd.f32(float %1560, float %1561, float %neg.i2151) - %1566 = load float, ptr %m_bottomVec.i, align 4 - %1567 = load float, ptr %28, align 4 - %1568 = fneg float %1567 - %neg19.i2152 = fmul float %1561, %1568 - %1569 = call float @llvm.fmuladd.f32(float %1562, float %1566, float %neg19.i2152) - %1570 = fneg float %1560 - %neg30.i2153 = fmul float %1566, %1570 - %1571 = call float @llvm.fmuladd.f32(float %1567, float %1563, float %neg30.i2153) - %1572 = load float, ptr %m_bottomVec.i2145, align 4 - %add.i2159 = fadd float %1565, %1572 + %1561 = load float, ptr %arrayidx7.i2150, align 4 + %1562 = fneg float %1560 + %neg.i2151 = fmul float %1561, %1562 + %1563 = call float @llvm.fmuladd.f32(float %1558, float %1559, float %neg.i2151) + %1564 = load float, ptr %m_bottomVec.i, align 4 + %1565 = load float, ptr %28, align 4 + %1566 = fneg float %1565 + %neg19.i2152 = fmul float %1559, %1566 + %1567 = call float @llvm.fmuladd.f32(float %1560, float %1564, float %neg19.i2152) + %1568 = fneg float %1558 + %neg30.i2153 = fmul float %1564, %1568 + %1569 = call float @llvm.fmuladd.f32(float %1565, float %1561, float %neg30.i2153) + %1570 = load float, ptr %m_bottomVec.i2145, align 4 + %add.i2159 = fadd float %1563, %1570 %arrayidx5.i2160 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %add.ptr26, i64 0, i32 1, i32 0, i64 1 - %1573 = load float, ptr %arrayidx5.i2160, align 4 - %add8.i2162 = fadd float %1573, %1569 + %1571 = load float, ptr %arrayidx5.i2160, align 4 + %add8.i2162 = fadd float %1571, %1567 %arrayidx11.i2163 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %add.ptr26, i64 0, i32 1, i32 0, i64 2 - %1574 = load float, ptr %arrayidx11.i2163, align 4 - %add14.i = fadd float %1571, %1574 - %mul8.i13.i2181 = fmul float %1558, %add8.i2162 - %1575 = call float @llvm.fmuladd.f32(float %1557, float %add.i2159, float %mul8.i13.i2181) - %1576 = call noundef float @llvm.fmuladd.f32(float %1559, float %add14.i, float %1575) + %1572 = load float, ptr %arrayidx11.i2163, align 4 + %add14.i = fadd float %1569, %1572 + %mul8.i13.i2181 = fmul float %1556, %add8.i2162 + %1573 = call float @llvm.fmuladd.f32(float %1555, float %add.i2159, float %mul8.i13.i2181) + %1574 = call noundef float @llvm.fmuladd.f32(float %1557, float %add14.i, float %1573) %arrayidx1043 = getelementptr inbounds float, ptr %arrayidx.i, i64 3 - %1577 = load <2 x float>, ptr %32, align 4, !noalias !92 - %1578 = load <2 x float>, ptr %arrayidx7.i, align 4, !noalias !92 - %1579 = load <2 x float>, ptr %arrayidx11.i397, align 4, !noalias !92 - %1580 = insertelement <2 x float> poison, float %add8.i2162, i64 0 - %1581 = shufflevector <2 x float> %1580, <2 x float> poison, <2 x i32> zeroinitializer - %1582 = fmul <2 x float> %1578, %1581 - %1583 = insertelement <2 x float> poison, float %add.i2159, i64 0 - %1584 = shufflevector <2 x float> %1583, <2 x float> poison, <2 x i32> zeroinitializer - %1585 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1577, <2 x float> %1584, <2 x float> %1582) - %1586 = insertelement <2 x float> poison, float %add14.i, i64 0 - %1587 = shufflevector <2 x float> %1586, <2 x float> poison, <2 x i32> zeroinitializer - %1588 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1579, <2 x float> %1587, <2 x float> %1585) - store <2 x float> %1588, ptr %arrayidx1043, align 4 + %1575 = load <2 x float>, ptr %32, align 4, !noalias !92 + %1576 = load <2 x float>, ptr %arrayidx7.i, align 4, !noalias !92 + %1577 = load <2 x float>, ptr %arrayidx11.i397, align 4, !noalias !92 + %1578 = insertelement <2 x float> poison, float %add8.i2162, i64 0 + %1579 = shufflevector <2 x float> %1578, <2 x float> poison, <2 x i32> zeroinitializer + %1580 = fmul <2 x float> %1576, %1579 + %1581 = insertelement <2 x float> poison, float %add.i2159, i64 0 + %1582 = shufflevector <2 x float> %1581, <2 x float> poison, <2 x i32> zeroinitializer + %1583 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1575, <2 x float> %1582, <2 x float> %1580) + %1584 = insertelement <2 x float> poison, float %add14.i, i64 0 + %1585 = shufflevector <2 x float> %1584, <2 x float> poison, <2 x i32> zeroinitializer + %1586 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1577, <2 x float> %1585, <2 x float> %1583) + store <2 x float> %1586, ptr %arrayidx1043, align 4 %arrayidx1049 = getelementptr inbounds float, ptr %arrayidx.i, i64 5 - store float %1576, ptr %arrayidx1049, align 4 + store float %1574, ptr %arrayidx1049, align 4 %isConstraintPass.not = xor i1 %isConstraintPass, true %cmp1052 = fcmp ogt float %dt, 0.000000e+00 %or.cond = and i1 %cmp1052, %isConstraintPass.not - %1589 = load i32, ptr %m_dofCount, align 4 - %cmp9.i = icmp sgt i32 %1589, -6 + %1587 = load i32, ptr %m_dofCount, align 4 + %cmp9.i = icmp sgt i32 %1587, -6 %or.cond2590 = select i1 %or.cond, i1 %cmp9.i, i1 false br i1 %or.cond2590, label %for.body.lr.ph.i, label %if.end1055 @@ -8271,42 +8268,42 @@ for.body.lr.ph.i: ; preds = %for.end1009 for.body.i: ; preds = %_Z7btClampIfEvRT_RKS0_S3_.exit.i, %for.body.lr.ph.i %indvars.iv.i2189 = phi i64 [ 0, %for.body.lr.ph.i ], [ %indvars.iv.next.i2195, %_Z7btClampIfEvRT_RKS0_S3_.exit.i ] %arrayidx.i2190 = getelementptr inbounds float, ptr %arrayidx.i, i64 %indvars.iv.i2189 - %1590 = load float, ptr %arrayidx.i2190, align 4 - %1591 = load ptr, ptr %m_data.i.i, align 8 - %arrayidx.i.i2191 = getelementptr inbounds float, ptr %1591, i64 %indvars.iv.i2189 - %1592 = load float, ptr %arrayidx.i.i2191, align 4 - %1593 = call float @llvm.fmuladd.f32(float %1590, float %dt, float %1592) - store float %1593, ptr %arrayidx.i.i2191, align 4 - %1594 = load ptr, ptr %m_data.i.i, align 8 - %arrayidx.i7.i = getelementptr inbounds float, ptr %1594, i64 %indvars.iv.i2189 - %1595 = load float, ptr %m_maxCoordinateVelocity.i, align 4 - %fneg.i2192 = fneg float %1595 - %1596 = load float, ptr %arrayidx.i7.i, align 4 - %cmp.i.i2193 = fcmp olt float %1596, %fneg.i2192 + %1588 = load float, ptr %arrayidx.i2190, align 4 + %1589 = load ptr, ptr %m_data.i.i, align 8 + %arrayidx.i.i2191 = getelementptr inbounds float, ptr %1589, i64 %indvars.iv.i2189 + %1590 = load float, ptr %arrayidx.i.i2191, align 4 + %1591 = call float @llvm.fmuladd.f32(float %1588, float %dt, float %1590) + store float %1591, ptr %arrayidx.i.i2191, align 4 + %1592 = load ptr, ptr %m_data.i.i, align 8 + %arrayidx.i7.i = getelementptr inbounds float, ptr %1592, i64 %indvars.iv.i2189 + %1593 = load float, ptr %m_maxCoordinateVelocity.i, align 4 + %fneg.i2192 = fneg float %1593 + %1594 = load float, ptr %arrayidx.i7.i, align 4 + %cmp.i.i2193 = fcmp olt float %1594, %fneg.i2192 br i1 %cmp.i.i2193, label %if.end3.sink.split.i.i, label %if.else.i.i2194 if.else.i.i2194: ; preds = %for.body.i - %cmp1.i.i = fcmp olt float %1595, %1596 + %cmp1.i.i = fcmp olt float %1593, %1594 br i1 %cmp1.i.i, label %if.end3.sink.split.i.i, label %_Z7btClampIfEvRT_RKS0_S3_.exit.i if.end3.sink.split.i.i: ; preds = %if.else.i.i2194, %for.body.i - %.sink.i.i = phi float [ %fneg.i2192, %for.body.i ], [ %1595, %if.else.i.i2194 ] + %.sink.i.i = phi float [ %fneg.i2192, %for.body.i ], [ %1593, %if.else.i.i2194 ] store float %.sink.i.i, ptr %arrayidx.i7.i, align 4 br label %_Z7btClampIfEvRT_RKS0_S3_.exit.i _Z7btClampIfEvRT_RKS0_S3_.exit.i: ; preds = %if.end3.sink.split.i.i, %if.else.i.i2194 %indvars.iv.next.i2195 = add nuw nsw i64 %indvars.iv.i2189, 1 - %1597 = load i32, ptr %m_dofCount, align 4 - %1598 = add nsw i32 %1597, 5 - %1599 = sext i32 %1598 to i64 - %cmp.i2196 = icmp slt i64 %indvars.iv.i2189, %1599 + %1595 = load i32, ptr %m_dofCount, align 4 + %1596 = add nsw i32 %1595, 5 + %1597 = sext i32 %1596 to i64 + %cmp.i2196 = icmp slt i64 %indvars.iv.i2189, %1597 br i1 %cmp.i2196, label %for.body.i, label %if.end1055, !llvm.loop !95 if.end1055: ; preds = %_Z7btClampIfEvRT_RKS0_S3_.exit.i, %for.end1009 %m_useGlobalVelocities1056 = getelementptr inbounds %class.btMultiBody, ptr %this, i64 0, i32 46 - %1600 = load i8, ptr %m_useGlobalVelocities1056, align 1 - %1601 = and i8 %1600, 1 - %tobool1057.not = icmp ne i8 %1601, 0 + %1598 = load i8, ptr %m_useGlobalVelocities1056, align 1 + %1599 = and i8 %1598, 1 + %tobool1057.not = icmp ne i8 %1599, 0 %or.cond2667 = and i1 %tobool1057.not, %cmp1832607 br i1 %or.cond2667, label %for.body1062.lr.ph, label %if.end1123 @@ -8327,9 +8324,9 @@ for.body1062.lr.ph: ; preds = %if.end1055 for.body1062: ; preds = %for.body1062.lr.ph, %for.end1106 %indvars.iv2753 = phi i64 [ 0, %for.body1062.lr.ph ], [ %indvars.iv.next2754, %for.end1106 ] - %1602 = load ptr, ptr %m_data.i2197, align 8 - %m_parent1066 = getelementptr inbounds %struct.btMultibodyLink, ptr %1602, i64 %indvars.iv2753, i32 2 - %1603 = load i32, ptr %m_parent1066, align 4 + %1600 = load ptr, ptr %m_data.i2197, align 8 + %m_parent1066 = getelementptr inbounds %struct.btMultibodyLink, ptr %1600, i64 %indvars.iv2753, i32 2 + %1601 = load i32, ptr %m_parent1066, align 4 %indvars.iv.next2754 = add nuw nsw i64 %indvars.iv2753, 1 %arrayidx1069 = getelementptr inbounds %class.btMatrix3x3, ptr %32, i64 %indvars.iv.next2754 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %fromParent, ptr noundef nonnull align 4 dereferenceable(16) %arrayidx1069, i64 16, i1 false) @@ -8337,7 +8334,7 @@ for.body1062: ; preds = %for.body1062.lr.ph, call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %arrayidx7.i2201, ptr noundef nonnull align 4 dereferenceable(16) %arrayidx5.i2200, i64 16, i1 false) %arrayidx9.i2202 = getelementptr inbounds [3 x %class.btVector3], ptr %arrayidx1069, i64 0, i64 2 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %arrayidx11.i2203, ptr noundef nonnull align 4 dereferenceable(16) %arrayidx9.i2202, i64 16, i1 false) - %m_cachedRVector1074 = getelementptr inbounds %struct.btMultibodyLink, ptr %1602, i64 %indvars.iv2753, i32 12 + %m_cachedRVector1074 = getelementptr inbounds %struct.btMultibodyLink, ptr %1600, i64 %indvars.iv2753, i32 12 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %m_trnVec1075, ptr noundef nonnull align 8 dereferenceable(16) %m_cachedRVector1074, i64 16, i1 false) %arrayidx1078 = getelementptr inbounds %class.btMatrix3x3, ptr %29, i64 %indvars.iv.next2754 %fromWorld.sroa.18.0.arrayidx1078.sroa_idx = getelementptr inbounds i8, ptr %arrayidx1078, i64 8 @@ -8346,150 +8343,150 @@ for.body1062: ; preds = %for.body1062.lr.ph, %fromWorld.sroa.44.16.arrayidx5.i2207.sroa_idx = getelementptr inbounds [3 x %class.btVector3], ptr %arrayidx1078, i64 0, i64 1, i32 0, i64 2 %fromWorld.sroa.44.16.copyload2441 = load float, ptr %fromWorld.sroa.44.16.arrayidx5.i2207.sroa_idx, align 4 %arrayidx9.i2209 = getelementptr inbounds [3 x %class.btVector3], ptr %arrayidx1078, i64 0, i64 2 - %1604 = load <2 x float>, ptr %arrayidx1078, align 4 - %1605 = load <2 x float>, ptr %arrayidx5.i2207, align 4 - %1606 = load <2 x float>, ptr %arrayidx9.i2209, align 4 + %1602 = load <2 x float>, ptr %arrayidx1078, align 4 + %1603 = load <2 x float>, ptr %arrayidx5.i2207, align 4 + %1604 = load <2 x float>, ptr %arrayidx9.i2209, align 4 %fromWorld.sroa.70.32.arrayidx9.i2209.sroa_idx = getelementptr inbounds [3 x %class.btVector3], ptr %arrayidx1078, i64 0, i64 2, i32 0, i64 2 %fromWorld.sroa.70.32.copyload2467 = load float, ptr %fromWorld.sroa.70.32.arrayidx9.i2209.sroa_idx, align 4 - %1607 = sext i32 %1603 to i64 - %1608 = getelementptr %struct.btSpatialMotionVector, ptr %28, i64 %1607 - %arrayidx1083 = getelementptr %struct.btSpatialMotionVector, ptr %1608, i64 1 + %1605 = sext i32 %1601 to i64 + %1606 = getelementptr %struct.btSpatialMotionVector, ptr %28, i64 %1605 + %arrayidx1083 = getelementptr %struct.btSpatialMotionVector, ptr %1606, i64 1 %arrayidx1086 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %28, i64 %indvars.iv.next2754 - %1609 = load <4 x float>, ptr %fromParent, align 16 - %1610 = shufflevector <4 x float> %1609, <4 x float> poison, <2 x i32> - %1611 = load float, ptr %arrayidx1083, align 4 - %1612 = load <4 x float>, ptr %arrayidx5.i.i.i2211, align 4 - %1613 = shufflevector <4 x float> %1612, <4 x float> poison, <2 x i32> - %arrayidx7.i.i.i2212 = getelementptr %struct.btSpatialMotionVector, ptr %1608, i64 1, i32 0, i32 0, i64 1 - %1614 = load float, ptr %arrayidx7.i.i.i2212, align 4 - %1615 = load <4 x float>, ptr %arrayidx10.i.i.i2214, align 8 - %1616 = shufflevector <4 x float> %1615, <4 x float> poison, <2 x i32> - %arrayidx12.i.i.i2215 = getelementptr %struct.btSpatialMotionVector, ptr %1608, i64 1, i32 0, i32 0, i64 2 - %1617 = load float, ptr %arrayidx12.i.i.i2215, align 4 - %1618 = load float, ptr %arrayidx7.i2201, align 16 - %1619 = load float, ptr %arrayidx5.i5.i.i2217, align 4 - %1620 = load float, ptr %arrayidx10.i8.i.i2219, align 8 - %1621 = insertelement <2 x float> poison, float %1614, i64 0 - %1622 = shufflevector <2 x float> %1621, <2 x float> poison, <2 x i32> zeroinitializer - %1623 = insertelement <2 x float> %1613, float %1619, i64 1 - %1624 = fmul <2 x float> %1622, %1623 - %1625 = insertelement <2 x float> %1610, float %1618, i64 1 - %1626 = insertelement <2 x float> poison, float %1611, i64 0 - %1627 = shufflevector <2 x float> %1626, <2 x float> poison, <2 x i32> zeroinitializer - %1628 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1625, <2 x float> %1627, <2 x float> %1624) - %1629 = insertelement <2 x float> %1616, float %1620, i64 1 - %1630 = insertelement <2 x float> poison, float %1617, i64 0 - %1631 = shufflevector <2 x float> %1630, <2 x float> poison, <2 x i32> zeroinitializer - %1632 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1629, <2 x float> %1631, <2 x float> %1628) - %1633 = load float, ptr %arrayidx11.i2203, align 16 - %1634 = load float, ptr %arrayidx5.i11.i.i2221, align 4 - %mul8.i13.i.i2222 = fmul float %1614, %1634 - %1635 = call float @llvm.fmuladd.f32(float %1633, float %1611, float %mul8.i13.i.i2222) - %1636 = load float, ptr %arrayidx10.i14.i.i2223, align 8 - %1637 = call noundef float @llvm.fmuladd.f32(float %1636, float %1617, float %1635) - %retval.sroa.3.12.vec.insert.i.i2226 = insertelement <2 x float> , float %1637, i64 0 - store <2 x float> %1632, ptr %arrayidx1086, align 4 + %1607 = load <4 x float>, ptr %fromParent, align 16 + %1608 = shufflevector <4 x float> %1607, <4 x float> poison, <2 x i32> + %1609 = load float, ptr %arrayidx1083, align 4 + %1610 = load <4 x float>, ptr %arrayidx5.i.i.i2211, align 4 + %1611 = shufflevector <4 x float> %1610, <4 x float> poison, <2 x i32> + %arrayidx7.i.i.i2212 = getelementptr %struct.btSpatialMotionVector, ptr %1606, i64 1, i32 0, i32 0, i64 1 + %1612 = load float, ptr %arrayidx7.i.i.i2212, align 4 + %1613 = load <4 x float>, ptr %arrayidx10.i.i.i2214, align 8 + %1614 = shufflevector <4 x float> %1613, <4 x float> poison, <2 x i32> + %arrayidx12.i.i.i2215 = getelementptr %struct.btSpatialMotionVector, ptr %1606, i64 1, i32 0, i32 0, i64 2 + %1615 = load float, ptr %arrayidx12.i.i.i2215, align 4 + %1616 = load float, ptr %arrayidx7.i2201, align 16 + %1617 = load float, ptr %arrayidx5.i5.i.i2217, align 4 + %1618 = load float, ptr %arrayidx10.i8.i.i2219, align 8 + %1619 = insertelement <2 x float> poison, float %1612, i64 0 + %1620 = shufflevector <2 x float> %1619, <2 x float> poison, <2 x i32> zeroinitializer + %1621 = insertelement <2 x float> %1611, float %1617, i64 1 + %1622 = fmul <2 x float> %1620, %1621 + %1623 = insertelement <2 x float> %1608, float %1616, i64 1 + %1624 = insertelement <2 x float> poison, float %1609, i64 0 + %1625 = shufflevector <2 x float> %1624, <2 x float> poison, <2 x i32> zeroinitializer + %1626 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1623, <2 x float> %1625, <2 x float> %1622) + %1627 = insertelement <2 x float> %1614, float %1618, i64 1 + %1628 = insertelement <2 x float> poison, float %1615, i64 0 + %1629 = shufflevector <2 x float> %1628, <2 x float> poison, <2 x i32> zeroinitializer + %1630 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1627, <2 x float> %1629, <2 x float> %1626) + %1631 = load float, ptr %arrayidx11.i2203, align 16 + %1632 = load float, ptr %arrayidx5.i11.i.i2221, align 4 + %mul8.i13.i.i2222 = fmul float %1612, %1632 + %1633 = call float @llvm.fmuladd.f32(float %1631, float %1609, float %mul8.i13.i.i2222) + %1634 = load float, ptr %arrayidx10.i14.i.i2223, align 8 + %1635 = call noundef float @llvm.fmuladd.f32(float %1634, float %1615, float %1633) + %retval.sroa.3.12.vec.insert.i.i2226 = insertelement <2 x float> , float %1635, i64 0 + store <2 x float> %1630, ptr %arrayidx1086, align 4 %ref.tmp.sroa.2.0.m_topVec2.sroa_idx.i2227 = getelementptr inbounds i8, ptr %arrayidx1086, i64 8 store <2 x float> %retval.sroa.3.12.vec.insert.i.i2226, ptr %ref.tmp.sroa.2.0.m_topVec2.sroa_idx.i2227, align 4 - %1638 = extractelement <2 x float> %1632, i64 1 - %1639 = load float, ptr %m_trnVec1075, align 16 - %1640 = extractelement <2 x float> %1632, i64 0 - %m_bottomVec.i2234 = getelementptr %struct.btSpatialMotionVector, ptr %1608, i64 1, i32 1 - %1641 = load <4 x float>, ptr %fromParent, align 16 - %1642 = shufflevector <4 x float> %1641, <4 x float> poison, <2 x i32> - %1643 = load float, ptr %m_bottomVec.i2234, align 4 - %1644 = load <4 x float>, ptr %arrayidx5.i.i.i2211, align 4 - %1645 = shufflevector <4 x float> %1644, <4 x float> poison, <2 x i32> - %arrayidx7.i.i29.i2235 = getelementptr %struct.btSpatialMotionVector, ptr %1608, i64 1, i32 1, i32 0, i64 1 - %1646 = load float, ptr %arrayidx7.i.i29.i2235, align 4 - %1647 = load <4 x float>, ptr %arrayidx10.i.i.i2214, align 8 - %1648 = shufflevector <4 x float> %1647, <4 x float> poison, <2 x i32> - %arrayidx12.i.i32.i2237 = getelementptr %struct.btSpatialMotionVector, ptr %1608, i64 1, i32 1, i32 0, i64 2 - %1649 = load float, ptr %arrayidx12.i.i32.i2237, align 4 - %1650 = load float, ptr %arrayidx7.i2201, align 16 - %1651 = load float, ptr %arrayidx5.i5.i.i2217, align 4 - %1652 = load float, ptr %arrayidx10.i8.i.i2219, align 8 - %1653 = load float, ptr %arrayidx11.i2203, align 16 - %1654 = load float, ptr %arrayidx5.i11.i.i2221, align 4 - %mul8.i13.i39.i2239 = fmul float %1646, %1654 - %1655 = call float @llvm.fmuladd.f32(float %1653, float %1643, float %mul8.i13.i39.i2239) - %1656 = load float, ptr %arrayidx10.i14.i.i2223, align 8 - %1657 = call noundef float @llvm.fmuladd.f32(float %1656, float %1649, float %1655) - %1658 = load <2 x float>, ptr %arrayidx.i.i2229, align 4 - %1659 = insertelement <2 x float> %1658, float %1639, i64 0 - %1660 = fneg <2 x float> %1659 - %1661 = insertelement <2 x float> %1632, float %1637, i64 0 - %1662 = fmul <2 x float> %1661, %1660 - %1663 = shufflevector <2 x float> %1662, <2 x float> poison, <2 x i32> - %1664 = shufflevector <2 x float> %1632, <2 x float> poison, <2 x i32> - %1665 = insertelement <2 x float> %1664, float %1637, i64 0 - %1666 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1658, <2 x float> %1665, <2 x float> %1663) - %1667 = extractelement <2 x float> %1658, i64 0 - %1668 = fneg float %1667 - %neg30.i.i2233 = fmul float %1640, %1668 - %1669 = call float @llvm.fmuladd.f32(float %1639, float %1638, float %neg30.i.i2233) - %1670 = insertelement <2 x float> poison, float %1646, i64 0 - %1671 = shufflevector <2 x float> %1670, <2 x float> poison, <2 x i32> zeroinitializer - %1672 = insertelement <2 x float> %1645, float %1651, i64 1 - %1673 = fmul <2 x float> %1671, %1672 - %1674 = insertelement <2 x float> %1642, float %1650, i64 1 - %1675 = insertelement <2 x float> poison, float %1643, i64 0 - %1676 = shufflevector <2 x float> %1675, <2 x float> poison, <2 x i32> zeroinitializer - %1677 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1674, <2 x float> %1676, <2 x float> %1673) - %1678 = insertelement <2 x float> %1648, float %1652, i64 1 - %1679 = insertelement <2 x float> poison, float %1649, i64 0 - %1680 = shufflevector <2 x float> %1679, <2 x float> poison, <2 x i32> zeroinitializer - %1681 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1678, <2 x float> %1680, <2 x float> %1677) - %1682 = fsub <2 x float> %1681, %1666 - %add14.i.i2242 = fsub float %1657, %1669 + %1636 = extractelement <2 x float> %1630, i64 1 + %1637 = load float, ptr %m_trnVec1075, align 16 + %1638 = extractelement <2 x float> %1630, i64 0 + %m_bottomVec.i2234 = getelementptr %struct.btSpatialMotionVector, ptr %1606, i64 1, i32 1 + %1639 = load <4 x float>, ptr %fromParent, align 16 + %1640 = shufflevector <4 x float> %1639, <4 x float> poison, <2 x i32> + %1641 = load float, ptr %m_bottomVec.i2234, align 4 + %1642 = load <4 x float>, ptr %arrayidx5.i.i.i2211, align 4 + %1643 = shufflevector <4 x float> %1642, <4 x float> poison, <2 x i32> + %arrayidx7.i.i29.i2235 = getelementptr %struct.btSpatialMotionVector, ptr %1606, i64 1, i32 1, i32 0, i64 1 + %1644 = load float, ptr %arrayidx7.i.i29.i2235, align 4 + %1645 = load <4 x float>, ptr %arrayidx10.i.i.i2214, align 8 + %1646 = shufflevector <4 x float> %1645, <4 x float> poison, <2 x i32> + %arrayidx12.i.i32.i2237 = getelementptr %struct.btSpatialMotionVector, ptr %1606, i64 1, i32 1, i32 0, i64 2 + %1647 = load float, ptr %arrayidx12.i.i32.i2237, align 4 + %1648 = load float, ptr %arrayidx7.i2201, align 16 + %1649 = load float, ptr %arrayidx5.i5.i.i2217, align 4 + %1650 = load float, ptr %arrayidx10.i8.i.i2219, align 8 + %1651 = load float, ptr %arrayidx11.i2203, align 16 + %1652 = load float, ptr %arrayidx5.i11.i.i2221, align 4 + %mul8.i13.i39.i2239 = fmul float %1644, %1652 + %1653 = call float @llvm.fmuladd.f32(float %1651, float %1641, float %mul8.i13.i39.i2239) + %1654 = load float, ptr %arrayidx10.i14.i.i2223, align 8 + %1655 = call noundef float @llvm.fmuladd.f32(float %1654, float %1647, float %1653) + %1656 = load <2 x float>, ptr %arrayidx.i.i2229, align 4 + %1657 = insertelement <2 x float> %1656, float %1637, i64 0 + %1658 = fneg <2 x float> %1657 + %1659 = insertelement <2 x float> %1630, float %1635, i64 0 + %1660 = fmul <2 x float> %1659, %1658 + %1661 = shufflevector <2 x float> %1660, <2 x float> poison, <2 x i32> + %1662 = shufflevector <2 x float> %1630, <2 x float> poison, <2 x i32> + %1663 = insertelement <2 x float> %1662, float %1635, i64 0 + %1664 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1656, <2 x float> %1663, <2 x float> %1661) + %1665 = extractelement <2 x float> %1656, i64 0 + %1666 = fneg float %1665 + %neg30.i.i2233 = fmul float %1638, %1666 + %1667 = call float @llvm.fmuladd.f32(float %1637, float %1636, float %neg30.i.i2233) + %1668 = insertelement <2 x float> poison, float %1644, i64 0 + %1669 = shufflevector <2 x float> %1668, <2 x float> poison, <2 x i32> zeroinitializer + %1670 = insertelement <2 x float> %1643, float %1649, i64 1 + %1671 = fmul <2 x float> %1669, %1670 + %1672 = insertelement <2 x float> %1640, float %1648, i64 1 + %1673 = insertelement <2 x float> poison, float %1641, i64 0 + %1674 = shufflevector <2 x float> %1673, <2 x float> poison, <2 x i32> zeroinitializer + %1675 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1672, <2 x float> %1674, <2 x float> %1671) + %1676 = insertelement <2 x float> %1646, float %1650, i64 1 + %1677 = insertelement <2 x float> poison, float %1647, i64 0 + %1678 = shufflevector <2 x float> %1677, <2 x float> poison, <2 x i32> zeroinitializer + %1679 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1676, <2 x float> %1678, <2 x float> %1675) + %1680 = fsub <2 x float> %1679, %1664 + %add14.i.i2242 = fsub float %1655, %1667 %retval.sroa.3.12.vec.insert.i50.i2245 = insertelement <2 x float> , float %add14.i.i2242, i64 0 %m_bottomVec17.i2246 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %28, i64 %indvars.iv.next2754, i32 1 - store <2 x float> %1682, ptr %m_bottomVec17.i2246, align 4 + store <2 x float> %1680, ptr %m_bottomVec17.i2246, align 4 %ref.tmp3.sroa.2.0.m_bottomVec17.sroa_idx.i2247 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %28, i64 %indvars.iv.next2754, i32 1, i32 0, i64 2 store <2 x float> %retval.sroa.3.12.vec.insert.i50.i2245, ptr %ref.tmp3.sroa.2.0.m_bottomVec17.sroa_idx.i2247, align 4 - %1683 = load ptr, ptr %m_data.i2197, align 8 - %m_dofCount1091 = getelementptr inbounds %struct.btMultibodyLink, ptr %1683, i64 %indvars.iv2753, i32 24 - %1684 = load i32, ptr %m_dofCount1091, align 4 - %cmp10922655 = icmp sgt i32 %1684, 0 + %1681 = load ptr, ptr %m_data.i2197, align 8 + %m_dofCount1091 = getelementptr inbounds %struct.btMultibodyLink, ptr %1681, i64 %indvars.iv2753, i32 24 + %1682 = load i32, ptr %m_dofCount1091, align 4 + %cmp10922655 = icmp sgt i32 %1682, 0 br i1 %cmp10922655, label %for.body1093.lr.ph, label %for.end1106 for.body1093.lr.ph: ; preds = %for.body1062 - %m_dofOffset.i2256 = getelementptr inbounds %struct.btMultibodyLink, ptr %1683, i64 %indvars.iv2753, i32 9 - %1685 = load i32, ptr %m_dofOffset.i2256, align 8 - %1686 = load ptr, ptr %m_data.i.i, align 8 - %1687 = sext i32 %1685 to i64 - %1688 = getelementptr float, ptr %1686, i64 %1687 - %arrayidx.i3.i2258 = getelementptr float, ptr %1688, i64 6 - %wide.trip.count2751 = zext nneg i32 %1684 to i64 + %m_dofOffset.i2256 = getelementptr inbounds %struct.btMultibodyLink, ptr %1681, i64 %indvars.iv2753, i32 9 + %1683 = load i32, ptr %m_dofOffset.i2256, align 8 + %1684 = load ptr, ptr %m_data.i.i, align 8 + %1685 = sext i32 %1683 to i64 + %1686 = getelementptr float, ptr %1684, i64 %1685 + %arrayidx.i3.i2258 = getelementptr float, ptr %1686, i64 6 + %wide.trip.count2751 = zext nneg i32 %1682 to i64 br label %for.body1093 for.body1093: ; preds = %for.body1093.lr.ph, %for.body1093 %indvars.iv2748 = phi i64 [ 0, %for.body1093.lr.ph ], [ %indvars.iv.next2749, %for.body1093 ] %spatJointVel.sroa.49.42659 = phi <2 x float> [ zeroinitializer, %for.body1093.lr.ph ], [ %spatJointVel.sroa.49.24.vec.insert2563, %for.body1093 ] - %spatJointVel.sroa.32.42658 = phi <2 x float> [ zeroinitializer, %for.body1093.lr.ph ], [ %1699, %for.body1093 ] + %spatJointVel.sroa.32.42658 = phi <2 x float> [ zeroinitializer, %for.body1093.lr.ph ], [ %1697, %for.body1093 ] %spatJointVel.sroa.22.42657 = phi <2 x float> [ zeroinitializer, %for.body1093.lr.ph ], [ %spatJointVel.sroa.22.8.vec.insert2520, %for.body1093 ] - %spatJointVel.sroa.0.42656 = phi <2 x float> [ zeroinitializer, %for.body1093.lr.ph ], [ %1696, %for.body1093 ] - %arrayidx1099 = getelementptr inbounds %struct.btMultibodyLink, ptr %1683, i64 %indvars.iv2753, i32 8, i64 %indvars.iv2748 + %spatJointVel.sroa.0.42656 = phi <2 x float> [ zeroinitializer, %for.body1093.lr.ph ], [ %1694, %for.body1093 ] + %arrayidx1099 = getelementptr inbounds %struct.btMultibodyLink, ptr %1681, i64 %indvars.iv2753, i32 8, i64 %indvars.iv2748 %arrayidx1102 = getelementptr inbounds float, ptr %arrayidx.i3.i2258, i64 %indvars.iv2748 - %1689 = load float, ptr %arrayidx1102, align 4, !noalias !96 + %1687 = load float, ptr %arrayidx1102, align 4, !noalias !96 %arrayidx7.i.i.i2262 = getelementptr inbounds [4 x float], ptr %arrayidx1099, i64 0, i64 2 - %1690 = load float, ptr %arrayidx7.i.i.i2262, align 4, !noalias !96 - %mul8.i.i.i2263 = fmul float %1689, %1690 - %m_bottomVec.i2267 = getelementptr inbounds %struct.btMultibodyLink, ptr %1683, i64 %indvars.iv2753, i32 8, i64 %indvars.iv2748, i32 1 - %arrayidx7.i.i5.i2271 = getelementptr inbounds %struct.btMultibodyLink, ptr %1683, i64 %indvars.iv2753, i32 8, i64 %indvars.iv2748, i32 1, i32 0, i64 2 - %1691 = load float, ptr %arrayidx7.i.i5.i2271, align 4, !noalias !96 - %mul8.i.i6.i2272 = fmul float %1689, %1691 - %1692 = load <2 x float>, ptr %arrayidx1099, align 4, !noalias !96 - %1693 = insertelement <2 x float> poison, float %1689, i64 0 - %1694 = shufflevector <2 x float> %1693, <2 x float> poison, <2 x i32> zeroinitializer - %1695 = fmul <2 x float> %1694, %1692 - %1696 = fadd <2 x float> %spatJointVel.sroa.0.42656, %1695 + %1688 = load float, ptr %arrayidx7.i.i.i2262, align 4, !noalias !96 + %mul8.i.i.i2263 = fmul float %1687, %1688 + %m_bottomVec.i2267 = getelementptr inbounds %struct.btMultibodyLink, ptr %1681, i64 %indvars.iv2753, i32 8, i64 %indvars.iv2748, i32 1 + %arrayidx7.i.i5.i2271 = getelementptr inbounds %struct.btMultibodyLink, ptr %1681, i64 %indvars.iv2753, i32 8, i64 %indvars.iv2748, i32 1, i32 0, i64 2 + %1689 = load float, ptr %arrayidx7.i.i5.i2271, align 4, !noalias !96 + %mul8.i.i6.i2272 = fmul float %1687, %1689 + %1690 = load <2 x float>, ptr %arrayidx1099, align 4, !noalias !96 + %1691 = insertelement <2 x float> poison, float %1687, i64 0 + %1692 = shufflevector <2 x float> %1691, <2 x float> poison, <2 x i32> zeroinitializer + %1693 = fmul <2 x float> %1692, %1690 + %1694 = fadd <2 x float> %spatJointVel.sroa.0.42656, %1693 %spatJointVel.sroa.22.8.vec.extract2518 = extractelement <2 x float> %spatJointVel.sroa.22.42657, i64 0 %add13.i.i2285 = fadd float %spatJointVel.sroa.22.8.vec.extract2518, %mul8.i.i.i2263 %spatJointVel.sroa.22.8.vec.insert2520 = insertelement <2 x float> %spatJointVel.sroa.22.42657, float %add13.i.i2285, i64 0 - %1697 = load <2 x float>, ptr %m_bottomVec.i2267, align 4, !noalias !96 - %1698 = fmul <2 x float> %1694, %1697 - %1699 = fadd <2 x float> %spatJointVel.sroa.32.42658, %1698 + %1695 = load <2 x float>, ptr %m_bottomVec.i2267, align 4, !noalias !96 + %1696 = fmul <2 x float> %1692, %1695 + %1697 = fadd <2 x float> %spatJointVel.sroa.32.42658, %1696 %spatJointVel.sroa.49.24.vec.extract2561 = extractelement <2 x float> %spatJointVel.sroa.49.42659, i64 0 %add13.i8.i2294 = fadd float %spatJointVel.sroa.49.24.vec.extract2561, %mul8.i.i6.i2272 %spatJointVel.sroa.49.24.vec.insert2563 = insertelement <2 x float> %spatJointVel.sroa.49.42659, float %add13.i8.i2294, i64 0 @@ -8498,93 +8495,93 @@ for.body1093: ; preds = %for.body1093.lr.ph, br i1 %exitcond2752.not, label %for.end1106, label %for.body1093, !llvm.loop !99 for.end1106: ; preds = %for.body1093, %for.body1062 - %spatJointVel.sroa.0.4.lcssa = phi <2 x float> [ zeroinitializer, %for.body1062 ], [ %1696, %for.body1093 ] + %spatJointVel.sroa.0.4.lcssa = phi <2 x float> [ zeroinitializer, %for.body1062 ], [ %1694, %for.body1093 ] %spatJointVel.sroa.22.4.lcssa = phi <2 x float> [ zeroinitializer, %for.body1062 ], [ %spatJointVel.sroa.22.8.vec.insert2520, %for.body1093 ] - %spatJointVel.sroa.32.4.lcssa = phi <2 x float> [ zeroinitializer, %for.body1062 ], [ %1699, %for.body1093 ] + %spatJointVel.sroa.32.4.lcssa = phi <2 x float> [ zeroinitializer, %for.body1062 ], [ %1697, %for.body1093 ] %spatJointVel.sroa.49.4.lcssa = phi <2 x float> [ zeroinitializer, %for.body1062 ], [ %spatJointVel.sroa.49.24.vec.insert2563, %for.body1093 ] - %1700 = fadd <2 x float> %spatJointVel.sroa.0.4.lcssa, %1632 - store <2 x float> %1700, ptr %arrayidx1086, align 4 + %1698 = fadd <2 x float> %spatJointVel.sroa.0.4.lcssa, %1630 + store <2 x float> %1698, ptr %arrayidx1086, align 4 %spatJointVel.sroa.22.8.vec.extract2522 = extractelement <2 x float> %spatJointVel.sroa.22.4.lcssa, i64 0 - %add13.i.i2301 = fadd float %spatJointVel.sroa.22.8.vec.extract2522, %1637 + %add13.i.i2301 = fadd float %spatJointVel.sroa.22.8.vec.extract2522, %1635 store float %add13.i.i2301, ptr %ref.tmp.sroa.2.0.m_topVec2.sroa_idx.i2227, align 4 %arrayidx7.i4.i2306 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %28, i64 %indvars.iv.next2754, i32 1, i32 0, i64 1 - %1701 = load float, ptr %arrayidx7.i4.i2306, align 4 - %1702 = insertelement <2 x float> %1682, float %1701, i64 1 - %1703 = fadd <2 x float> %spatJointVel.sroa.32.4.lcssa, %1702 - store <2 x float> %1703, ptr %m_bottomVec17.i2246, align 4 + %1699 = load float, ptr %arrayidx7.i4.i2306, align 4 + %1700 = insertelement <2 x float> %1680, float %1699, i64 1 + %1701 = fadd <2 x float> %spatJointVel.sroa.32.4.lcssa, %1700 + store <2 x float> %1701, ptr %m_bottomVec17.i2246, align 4 %spatJointVel.sroa.49.24.vec.extract2565 = extractelement <2 x float> %spatJointVel.sroa.49.4.lcssa, i64 0 %add13.i8.i2310 = fadd float %spatJointVel.sroa.49.24.vec.extract2565, %add14.i.i2242 store float %add13.i8.i2310, ptr %ref.tmp3.sroa.2.0.m_bottomVec17.sroa_idx.i2247, align 4 - %1704 = load ptr, ptr %m_data.i2197, align 8 - %m_absFrameTotVelocity1116 = getelementptr inbounds %struct.btMultibodyLink, ptr %1704, i64 %indvars.iv2753, i32 6 - %1705 = extractelement <2 x float> %1700, i64 1 - %1706 = extractelement <2 x float> %1700, i64 0 - %1707 = shufflevector <2 x float> %1700, <2 x float> poison, <2 x i32> - %1708 = fmul <2 x float> %1605, %1707 - %1709 = shufflevector <2 x float> %1700, <2 x float> poison, <2 x i32> zeroinitializer - %1710 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1604, <2 x float> %1709, <2 x float> %1708) - %1711 = insertelement <2 x float> poison, float %add13.i.i2301, i64 0 - %1712 = shufflevector <2 x float> %1711, <2 x float> poison, <2 x i32> zeroinitializer - %1713 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1606, <2 x float> %1712, <2 x float> %1710) - %mul8.i13.i.i2326 = fmul float %fromWorld.sroa.44.16.copyload2441, %1705 - %1714 = call float @llvm.fmuladd.f32(float %fromWorld.sroa.18.0.copyload2415, float %1706, float %mul8.i13.i.i2326) - %1715 = call noundef float @llvm.fmuladd.f32(float %fromWorld.sroa.70.32.copyload2467, float %add13.i.i2301, float %1714) - %retval.sroa.3.12.vec.insert.i.i2329 = insertelement <2 x float> , float %1715, i64 0 - store <2 x float> %1713, ptr %m_absFrameTotVelocity1116, align 4 + %1702 = load ptr, ptr %m_data.i2197, align 8 + %m_absFrameTotVelocity1116 = getelementptr inbounds %struct.btMultibodyLink, ptr %1702, i64 %indvars.iv2753, i32 6 + %1703 = extractelement <2 x float> %1698, i64 1 + %1704 = extractelement <2 x float> %1698, i64 0 + %1705 = shufflevector <2 x float> %1698, <2 x float> poison, <2 x i32> + %1706 = fmul <2 x float> %1603, %1705 + %1707 = shufflevector <2 x float> %1698, <2 x float> poison, <2 x i32> zeroinitializer + %1708 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1602, <2 x float> %1707, <2 x float> %1706) + %1709 = insertelement <2 x float> poison, float %add13.i.i2301, i64 0 + %1710 = shufflevector <2 x float> %1709, <2 x float> poison, <2 x i32> zeroinitializer + %1711 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1604, <2 x float> %1710, <2 x float> %1708) + %mul8.i13.i.i2326 = fmul float %fromWorld.sroa.44.16.copyload2441, %1703 + %1712 = call float @llvm.fmuladd.f32(float %fromWorld.sroa.18.0.copyload2415, float %1704, float %mul8.i13.i.i2326) + %1713 = call noundef float @llvm.fmuladd.f32(float %fromWorld.sroa.70.32.copyload2467, float %add13.i.i2301, float %1712) + %retval.sroa.3.12.vec.insert.i.i2329 = insertelement <2 x float> , float %1713, i64 0 + store <2 x float> %1711, ptr %m_absFrameTotVelocity1116, align 4 %ref.tmp.sroa.2.0.m_topVec3.sroa_idx.i2330 = getelementptr inbounds i8, ptr %m_absFrameTotVelocity1116, i64 8 store <2 x float> %retval.sroa.3.12.vec.insert.i.i2329, ptr %ref.tmp.sroa.2.0.m_topVec3.sroa_idx.i2330, align 4 - %1716 = load float, ptr %m_bottomVec17.i2246, align 4 - %1717 = load float, ptr %arrayidx7.i4.i2306, align 4 - %1718 = load float, ptr %ref.tmp3.sroa.2.0.m_bottomVec17.sroa_idx.i2247, align 4 - %1719 = insertelement <2 x float> poison, float %1717, i64 0 - %1720 = shufflevector <2 x float> %1719, <2 x float> poison, <2 x i32> zeroinitializer - %1721 = fmul <2 x float> %1605, %1720 - %1722 = insertelement <2 x float> poison, float %1716, i64 0 - %1723 = shufflevector <2 x float> %1722, <2 x float> poison, <2 x i32> zeroinitializer - %1724 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1604, <2 x float> %1723, <2 x float> %1721) - %1725 = insertelement <2 x float> poison, float %1718, i64 0 - %1726 = shufflevector <2 x float> %1725, <2 x float> poison, <2 x i32> zeroinitializer - %1727 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1606, <2 x float> %1726, <2 x float> %1724) - %mul8.i13.i44.i = fmul float %fromWorld.sroa.44.16.copyload2441, %1717 - %1728 = call float @llvm.fmuladd.f32(float %fromWorld.sroa.18.0.copyload2415, float %1716, float %mul8.i13.i44.i) - %1729 = call noundef float @llvm.fmuladd.f32(float %fromWorld.sroa.70.32.copyload2467, float %1718, float %1728) - %retval.sroa.3.12.vec.insert.i48.i = insertelement <2 x float> , float %1729, i64 0 - %m_bottomVec9.i = getelementptr inbounds %struct.btMultibodyLink, ptr %1704, i64 %indvars.iv2753, i32 6, i32 1 - store <2 x float> %1727, ptr %m_bottomVec9.i, align 4 - %ref.tmp4.sroa.2.0.m_bottomVec9.sroa_idx.i = getelementptr inbounds %struct.btMultibodyLink, ptr %1704, i64 %indvars.iv2753, i32 6, i32 1, i32 0, i64 2 + %1714 = load float, ptr %m_bottomVec17.i2246, align 4 + %1715 = load float, ptr %arrayidx7.i4.i2306, align 4 + %1716 = load float, ptr %ref.tmp3.sroa.2.0.m_bottomVec17.sroa_idx.i2247, align 4 + %1717 = insertelement <2 x float> poison, float %1715, i64 0 + %1718 = shufflevector <2 x float> %1717, <2 x float> poison, <2 x i32> zeroinitializer + %1719 = fmul <2 x float> %1603, %1718 + %1720 = insertelement <2 x float> poison, float %1714, i64 0 + %1721 = shufflevector <2 x float> %1720, <2 x float> poison, <2 x i32> zeroinitializer + %1722 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1602, <2 x float> %1721, <2 x float> %1719) + %1723 = insertelement <2 x float> poison, float %1716, i64 0 + %1724 = shufflevector <2 x float> %1723, <2 x float> poison, <2 x i32> zeroinitializer + %1725 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1604, <2 x float> %1724, <2 x float> %1722) + %mul8.i13.i44.i = fmul float %fromWorld.sroa.44.16.copyload2441, %1715 + %1726 = call float @llvm.fmuladd.f32(float %fromWorld.sroa.18.0.copyload2415, float %1714, float %mul8.i13.i44.i) + %1727 = call noundef float @llvm.fmuladd.f32(float %fromWorld.sroa.70.32.copyload2467, float %1716, float %1726) + %retval.sroa.3.12.vec.insert.i48.i = insertelement <2 x float> , float %1727, i64 0 + %m_bottomVec9.i = getelementptr inbounds %struct.btMultibodyLink, ptr %1702, i64 %indvars.iv2753, i32 6, i32 1 + store <2 x float> %1725, ptr %m_bottomVec9.i, align 4 + %ref.tmp4.sroa.2.0.m_bottomVec9.sroa_idx.i = getelementptr inbounds %struct.btMultibodyLink, ptr %1702, i64 %indvars.iv2753, i32 6, i32 1, i32 0, i64 2 store <2 x float> %retval.sroa.3.12.vec.insert.i48.i, ptr %ref.tmp4.sroa.2.0.m_bottomVec9.sroa_idx.i, align 4 - %1730 = load ptr, ptr %m_data.i2197, align 8 - %m_absFrameLocVelocity1119 = getelementptr inbounds %struct.btMultibodyLink, ptr %1730, i64 %indvars.iv2753, i32 7 - %1731 = extractelement <2 x float> %spatJointVel.sroa.0.4.lcssa, i64 1 - %1732 = extractelement <2 x float> %spatJointVel.sroa.0.4.lcssa, i64 0 - %1733 = shufflevector <2 x float> %spatJointVel.sroa.0.4.lcssa, <2 x float> poison, <2 x i32> - %1734 = fmul <2 x float> %1605, %1733 - %1735 = shufflevector <2 x float> %spatJointVel.sroa.0.4.lcssa, <2 x float> poison, <2 x i32> zeroinitializer + %1728 = load ptr, ptr %m_data.i2197, align 8 + %m_absFrameLocVelocity1119 = getelementptr inbounds %struct.btMultibodyLink, ptr %1728, i64 %indvars.iv2753, i32 7 + %1729 = extractelement <2 x float> %spatJointVel.sroa.0.4.lcssa, i64 1 + %1730 = extractelement <2 x float> %spatJointVel.sroa.0.4.lcssa, i64 0 + %1731 = shufflevector <2 x float> %spatJointVel.sroa.0.4.lcssa, <2 x float> poison, <2 x i32> + %1732 = fmul <2 x float> %1603, %1731 + %1733 = shufflevector <2 x float> %spatJointVel.sroa.0.4.lcssa, <2 x float> poison, <2 x i32> zeroinitializer + %1734 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1602, <2 x float> %1733, <2 x float> %1732) + %1735 = shufflevector <2 x float> %spatJointVel.sroa.22.4.lcssa, <2 x float> poison, <2 x i32> zeroinitializer %1736 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1604, <2 x float> %1735, <2 x float> %1734) - %1737 = shufflevector <2 x float> %spatJointVel.sroa.22.4.lcssa, <2 x float> poison, <2 x i32> zeroinitializer - %1738 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1606, <2 x float> %1737, <2 x float> %1736) - %mul8.i13.i.i2347 = fmul float %fromWorld.sroa.44.16.copyload2441, %1731 - %1739 = call float @llvm.fmuladd.f32(float %fromWorld.sroa.18.0.copyload2415, float %1732, float %mul8.i13.i.i2347) - %1740 = call noundef float @llvm.fmuladd.f32(float %fromWorld.sroa.70.32.copyload2467, float %spatJointVel.sroa.22.8.vec.extract2522, float %1739) - %retval.sroa.3.12.vec.insert.i.i2350 = insertelement <2 x float> , float %1740, i64 0 - store <2 x float> %1738, ptr %m_absFrameLocVelocity1119, align 4 + %mul8.i13.i.i2347 = fmul float %fromWorld.sroa.44.16.copyload2441, %1729 + %1737 = call float @llvm.fmuladd.f32(float %fromWorld.sroa.18.0.copyload2415, float %1730, float %mul8.i13.i.i2347) + %1738 = call noundef float @llvm.fmuladd.f32(float %fromWorld.sroa.70.32.copyload2467, float %spatJointVel.sroa.22.8.vec.extract2522, float %1737) + %retval.sroa.3.12.vec.insert.i.i2350 = insertelement <2 x float> , float %1738, i64 0 + store <2 x float> %1736, ptr %m_absFrameLocVelocity1119, align 4 %ref.tmp.sroa.2.0.m_topVec3.sroa_idx.i2351 = getelementptr inbounds i8, ptr %m_absFrameLocVelocity1119, i64 8 store <2 x float> %retval.sroa.3.12.vec.insert.i.i2350, ptr %ref.tmp.sroa.2.0.m_topVec3.sroa_idx.i2351, align 4 - %1741 = extractelement <2 x float> %spatJointVel.sroa.32.4.lcssa, i64 1 - %1742 = extractelement <2 x float> %spatJointVel.sroa.32.4.lcssa, i64 0 - %1743 = shufflevector <2 x float> %spatJointVel.sroa.32.4.lcssa, <2 x float> poison, <2 x i32> - %1744 = fmul <2 x float> %1605, %1743 - %1745 = shufflevector <2 x float> %spatJointVel.sroa.32.4.lcssa, <2 x float> poison, <2 x i32> zeroinitializer + %1739 = extractelement <2 x float> %spatJointVel.sroa.32.4.lcssa, i64 1 + %1740 = extractelement <2 x float> %spatJointVel.sroa.32.4.lcssa, i64 0 + %1741 = shufflevector <2 x float> %spatJointVel.sroa.32.4.lcssa, <2 x float> poison, <2 x i32> + %1742 = fmul <2 x float> %1603, %1741 + %1743 = shufflevector <2 x float> %spatJointVel.sroa.32.4.lcssa, <2 x float> poison, <2 x i32> zeroinitializer + %1744 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1602, <2 x float> %1743, <2 x float> %1742) + %1745 = shufflevector <2 x float> %spatJointVel.sroa.49.4.lcssa, <2 x float> poison, <2 x i32> zeroinitializer %1746 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1604, <2 x float> %1745, <2 x float> %1744) - %1747 = shufflevector <2 x float> %spatJointVel.sroa.49.4.lcssa, <2 x float> poison, <2 x i32> zeroinitializer - %1748 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1606, <2 x float> %1747, <2 x float> %1746) - %mul8.i13.i44.i2357 = fmul float %fromWorld.sroa.44.16.copyload2441, %1741 - %1749 = call float @llvm.fmuladd.f32(float %fromWorld.sroa.18.0.copyload2415, float %1742, float %mul8.i13.i44.i2357) - %1750 = call noundef float @llvm.fmuladd.f32(float %fromWorld.sroa.70.32.copyload2467, float %spatJointVel.sroa.49.24.vec.extract2565, float %1749) - %retval.sroa.3.12.vec.insert.i48.i2360 = insertelement <2 x float> , float %1750, i64 0 - %m_bottomVec9.i2361 = getelementptr inbounds %struct.btMultibodyLink, ptr %1730, i64 %indvars.iv2753, i32 7, i32 1 - store <2 x float> %1748, ptr %m_bottomVec9.i2361, align 4 - %ref.tmp4.sroa.2.0.m_bottomVec9.sroa_idx.i2362 = getelementptr inbounds %struct.btMultibodyLink, ptr %1730, i64 %indvars.iv2753, i32 7, i32 1, i32 0, i64 2 + %mul8.i13.i44.i2357 = fmul float %fromWorld.sroa.44.16.copyload2441, %1739 + %1747 = call float @llvm.fmuladd.f32(float %fromWorld.sroa.18.0.copyload2415, float %1740, float %mul8.i13.i44.i2357) + %1748 = call noundef float @llvm.fmuladd.f32(float %fromWorld.sroa.70.32.copyload2467, float %spatJointVel.sroa.49.24.vec.extract2565, float %1747) + %retval.sroa.3.12.vec.insert.i48.i2360 = insertelement <2 x float> , float %1748, i64 0 + %m_bottomVec9.i2361 = getelementptr inbounds %struct.btMultibodyLink, ptr %1728, i64 %indvars.iv2753, i32 7, i32 1 + store <2 x float> %1746, ptr %m_bottomVec9.i2361, align 4 + %ref.tmp4.sroa.2.0.m_bottomVec9.sroa_idx.i2362 = getelementptr inbounds %struct.btMultibodyLink, ptr %1728, i64 %indvars.iv2753, i32 7, i32 1, i32 0, i64 2 store <2 x float> %retval.sroa.3.12.vec.insert.i48.i2360, ptr %ref.tmp4.sroa.2.0.m_bottomVec9.sroa_idx.i2362, align 4 %exitcond2757.not = icmp eq i64 %indvars.iv.next2754, %wide.trip.count2756 br i1 %exitcond2757.not, label %if.end1123, label %for.body1062, !llvm.loop !100 @@ -10839,31 +10836,29 @@ for.cond2.preheader.us.us.preheader: ; preds = %for.cond2.preheader for.cond2.preheader.us.us: ; preds = %for.cond2.preheader.us.us.preheader, %for.cond2.for.inc24_crit_edge.split.us.us.us %indvars.iv51 = phi i64 [ 0, %for.cond2.preheader.us.us.preheader ], [ %indvars.iv.next52, %for.cond2.for.inc24_crit_edge.split.us.us.us ] - %3 = mul i64 %indvars.iv51, %0 + %3 = mul nsw i64 %indvars.iv51, %0 %4 = mul nsw i64 %indvars.iv51, %2 + %invariant.gep61 = getelementptr float, ptr %pC, i64 %3 %invariant.gep = getelementptr float, ptr %pA, i64 %4 br label %for.body4.us.us.us for.body4.us.us.us: ; preds = %for.cond5.for.inc21_crit_edge.us.us.us, %for.cond2.preheader.us.us %indvars.iv45 = phi i64 [ %indvars.iv.next46, %for.cond5.for.inc21_crit_edge.us.us.us ], [ 0, %for.cond2.preheader.us.us ] - %5 = add i64 %indvars.iv45, %3 - %idxprom.us.us.us = and i64 %5, 4294967295 - %arrayidx.us.us.us = getelementptr inbounds float, ptr %pC, i64 %idxprom.us.us.us - store float 0.000000e+00, ptr %arrayidx.us.us.us, align 4 + %gep62 = getelementptr float, ptr %invariant.gep61, i64 %indvars.iv45 + store float 0.000000e+00, ptr %gep62, align 4 + %invariant.gep59 = getelementptr float, ptr %pB, i64 %indvars.iv45 br label %for.body7.us.us.us for.body7.us.us.us: ; preds = %for.body7.us.us.us, %for.body4.us.us.us %indvars.iv36 = phi i64 [ %indvars.iv.next37, %for.body7.us.us.us ], [ 0, %for.body4.us.us.us ] - %6 = phi float [ %11, %for.body7.us.us.us ], [ 0.000000e+00, %for.body4.us.us.us ] + %5 = phi float [ %9, %for.body7.us.us.us ], [ 0.000000e+00, %for.body4.us.us.us ] %gep = getelementptr float, ptr %invariant.gep, i64 %indvars.iv36 - %7 = load float, ptr %gep, align 4 - %8 = mul i64 %indvars.iv36, %0 - %9 = add i64 %8, %indvars.iv45 - %idxprom14.us.us.us = and i64 %9, 4294967295 - %arrayidx15.us.us.us = getelementptr inbounds float, ptr %pB, i64 %idxprom14.us.us.us - %10 = load float, ptr %arrayidx15.us.us.us, align 4 - %11 = tail call float @llvm.fmuladd.f32(float %7, float %10, float %6) - store float %11, ptr %arrayidx.us.us.us, align 4 + %6 = load float, ptr %gep, align 4 + %7 = mul nsw i64 %indvars.iv36, %0 + %gep60 = getelementptr float, ptr %invariant.gep59, i64 %7 + %8 = load float, ptr %gep60, align 4 + %9 = tail call float @llvm.fmuladd.f32(float %6, float %8, float %5) + store float %9, ptr %gep62, align 4 %indvars.iv.next37 = add nuw nsw i64 %indvars.iv36, 1 %exitcond43.not = icmp eq i64 %indvars.iv.next37, %wide.trip.count42 br i1 %exitcond43.not, label %for.cond5.for.inc21_crit_edge.us.us.us, label %for.body7.us.us.us, !llvm.loop !82 @@ -10880,11 +10875,11 @@ for.cond2.for.inc24_crit_edge.split.us.us.us: ; preds = %for.cond5.for.inc21 for.cond2.preheader.us: ; preds = %for.cond2.preheader.us.preheader, %for.cond2.preheader.us %indvars.iv = phi i64 [ 0, %for.cond2.preheader.us.preheader ], [ %indvars.iv.next, %for.cond2.preheader.us ] - %12 = trunc i64 %indvars.iv to i32 - %13 = mul i32 %12, %colsB - %14 = zext i32 %13 to i64 - %15 = shl nuw nsw i64 %14, 2 - %scevgep = getelementptr i8, ptr %pC, i64 %15 + %10 = trunc i64 %indvars.iv to i32 + %11 = mul i32 %10, %colsB + %12 = zext i32 %11 to i64 + %13 = shl nuw nsw i64 %12, 2 + %scevgep = getelementptr i8, ptr %pC, i64 %13 tail call void @llvm.memset.p0.i64(ptr align 4 %scevgep, i8 0, i64 %1, i1 false) %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count56 @@ -11938,47 +11933,46 @@ for.body113.us.preheader: ; preds = %for.end97 for.body113.us: ; preds = %for.body113.us.preheader, %for.cond116.for.inc141_crit_edge.us %indvars.iv610 = phi i64 [ 0, %for.body113.us.preheader ], [ %indvars.iv.next611, %for.cond116.for.inc141_crit_edge.us ] %arrayidx115.us = getelementptr inbounds [6 x float], ptr %invD_times_Y, i64 0, i64 %indvars.iv610 - %129 = mul i64 %indvars.iv610, %128 + %129 = mul nsw i64 %indvars.iv610, %128 + %invariant.gep = getelementptr float, ptr %arrayidx106, i64 %129 br label %for.body121.us for.body121.us: ; preds = %for.body113.us, %for.body121.us %indvars.iv605 = phi i64 [ 0, %for.body113.us ], [ %indvars.iv.next606, %for.body121.us ] - %130 = phi float [ 0.000000e+00, %for.body113.us ], [ %135, %for.body121.us ] - %131 = add i64 %indvars.iv605, %129 - %idxprom127.us = and i64 %131, 4294967295 - %arrayidx128.us = getelementptr inbounds float, ptr %arrayidx106, i64 %idxprom127.us - %132 = load float, ptr %arrayidx128.us, align 4 - %133 = add nsw i64 %indvars.iv605, %127 - %arrayidx134.us = getelementptr inbounds float, ptr %cond547556, i64 %133 - %134 = load float, ptr %arrayidx134.us, align 4 - %135 = tail call float @llvm.fmuladd.f32(float %132, float %134, float %130) + %130 = phi float [ 0.000000e+00, %for.body113.us ], [ %134, %for.body121.us ] + %gep = getelementptr float, ptr %invariant.gep, i64 %indvars.iv605 + %131 = load float, ptr %gep, align 4 + %132 = add nsw i64 %indvars.iv605, %127 + %arrayidx134.us = getelementptr inbounds float, ptr %cond547556, i64 %132 + %133 = load float, ptr %arrayidx134.us, align 4 + %134 = tail call float @llvm.fmuladd.f32(float %131, float %133, float %130) %indvars.iv.next606 = add nuw nsw i64 %indvars.iv605, 1 %exitcond.not = icmp eq i64 %indvars.iv.next606, %wide.trip.count614 br i1 %exitcond.not, label %for.cond116.for.inc141_crit_edge.us, label %for.body121.us, !llvm.loop !160 for.cond116.for.inc141_crit_edge.us: ; preds = %for.body121.us - store float %135, ptr %arrayidx115.us, align 4 + store float %134, ptr %arrayidx115.us, align 4 %indvars.iv.next611 = add nuw nsw i64 %indvars.iv610, 1 %exitcond615.not = icmp eq i64 %indvars.iv.next611, %wide.trip.count614 br i1 %exitcond615.not, label %for.end143, label %for.body113.us, !llvm.loop !161 for.end143: ; preds = %for.cond116.for.inc141_crit_edge.us, %for.end97.thread, %for.end97 %cmp112575666 = phi i1 [ false, %for.end97.thread ], [ false, %for.end97 ], [ %cmp112575, %for.cond116.for.inc141_crit_edge.us ] - %136 = phi i32 [ %88, %for.end97.thread ], [ %126, %for.end97 ], [ %126, %for.cond116.for.inc141_crit_edge.us ] + %135 = phi i32 [ %88, %for.end97.thread ], [ %126, %for.end97 ], [ %126, %for.cond116.for.inc141_crit_edge.us ] %.lcssa564665 = phi i32 [ %87, %for.end97.thread ], [ %124, %for.end97 ], [ %124, %for.cond116.for.inc141_crit_edge.us ] %arrayidx146 = getelementptr inbounds %struct.btSpatialForceVector, ptr %33, i64 %indvars.iv622 %spatForceVecTemps.sroa.0.0.copyload = load float, ptr %arrayidx146, align 4 %spatForceVecTemps.sroa.4.0.arrayidx146.sroa_idx = getelementptr inbounds i8, ptr %arrayidx146, i64 4 - %137 = load <2 x float>, ptr %spatForceVecTemps.sroa.4.0.arrayidx146.sroa_idx, align 4 + %136 = load <2 x float>, ptr %spatForceVecTemps.sroa.4.0.arrayidx146.sroa_idx, align 4 %spatForceVecTemps.sroa.10640.0.arrayidx146.sroa_idx = getelementptr inbounds i8, ptr %arrayidx146, i64 16 - %138 = load <2 x float>, ptr %spatForceVecTemps.sroa.10640.0.arrayidx146.sroa_idx, align 4 + %137 = load <2 x float>, ptr %spatForceVecTemps.sroa.10640.0.arrayidx146.sroa_idx, align 4 %spatForceVecTemps.sroa.16.0.arrayidx146.sroa_idx = getelementptr inbounds i8, ptr %arrayidx146, i64 24 %spatForceVecTemps.sroa.16.0.copyload = load float, ptr %spatForceVecTemps.sroa.16.0.arrayidx146.sroa_idx, align 4 - %139 = shufflevector <2 x float> %137, <2 x float> %138, <4 x i32> + %138 = shufflevector <2 x float> %136, <2 x float> %137, <4 x i32> br i1 %cmp112575666, label %for.body154.lr.ph, label %for.end168 for.body154.lr.ph: ; preds = %for.end143 - %140 = sext i32 %136 to i64 + %139 = sext i32 %135 to i64 %wide.trip.count620 = zext nneg i32 %.lcssa564665 to i64 br label %for.body154 @@ -11986,26 +11980,26 @@ for.body154: ; preds = %for.body154.lr.ph, %indvars.iv616 = phi i64 [ 0, %for.body154.lr.ph ], [ %indvars.iv.next617, %for.body154 ] %add13.i8.i586 = phi float [ %spatForceVecTemps.sroa.16.0.copyload, %for.body154.lr.ph ], [ %add13.i8.i, %for.body154 ] %add.i.i577579 = phi float [ %spatForceVecTemps.sroa.0.0.copyload, %for.body154.lr.ph ], [ %add.i.i, %for.body154 ] - %141 = phi <4 x float> [ %139, %for.body154.lr.ph ], [ %152, %for.body154 ] - %142 = add nsw i64 %indvars.iv616, %140 - %arrayidx160 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond14557, i64 %142 + %140 = phi <4 x float> [ %138, %for.body154.lr.ph ], [ %151, %for.body154 ] + %141 = add nsw i64 %indvars.iv616, %139 + %arrayidx160 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond14557, i64 %141 %arrayidx163 = getelementptr inbounds [6 x float], ptr %invD_times_Y, i64 0, i64 %indvars.iv616 - %m_bottomVec.i208 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond14557, i64 %142, i32 1 - %143 = load float, ptr %arrayidx163, align 4, !noalias !162 - %144 = load <2 x float>, ptr %m_bottomVec.i208, align 4, !noalias !162 - %arrayidx7.i.i.i210 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond14557, i64 %142, i32 1, i32 0, i64 2 - %145 = load float, ptr %arrayidx7.i.i.i210, align 4, !noalias !162 - %mul8.i.i.i211 = fmul float %143, %145 - %146 = load float, ptr %arrayidx160, align 4, !noalias !162 - %mul.i.i2.i = fmul float %143, %146 + %m_bottomVec.i208 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond14557, i64 %141, i32 1 + %142 = load float, ptr %arrayidx163, align 4, !noalias !162 + %143 = load <2 x float>, ptr %m_bottomVec.i208, align 4, !noalias !162 + %arrayidx7.i.i.i210 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond14557, i64 %141, i32 1, i32 0, i64 2 + %144 = load float, ptr %arrayidx7.i.i.i210, align 4, !noalias !162 + %mul8.i.i.i211 = fmul float %142, %144 + %145 = load float, ptr %arrayidx160, align 4, !noalias !162 + %mul.i.i2.i = fmul float %142, %145 %arrayidx3.i.i3.i = getelementptr inbounds [4 x float], ptr %arrayidx160, i64 0, i64 1 - %147 = load <2 x float>, ptr %arrayidx3.i.i3.i, align 4, !noalias !162 - %148 = insertelement <4 x float> poison, float %143, i64 0 - %149 = shufflevector <4 x float> %148, <4 x float> poison, <4 x i32> zeroinitializer - %150 = shufflevector <2 x float> %147, <2 x float> %144, <4 x i32> - %151 = fmul <4 x float> %149, %150 + %146 = load <2 x float>, ptr %arrayidx3.i.i3.i, align 4, !noalias !162 + %147 = insertelement <4 x float> poison, float %142, i64 0 + %148 = shufflevector <4 x float> %147, <4 x float> poison, <4 x i32> zeroinitializer + %149 = shufflevector <2 x float> %146, <2 x float> %143, <4 x i32> + %150 = fmul <4 x float> %148, %149 %add.i.i = fadd float %mul.i.i2.i, %add.i.i577579 - %152 = fadd <4 x float> %151, %141 + %151 = fadd <4 x float> %150, %140 %add13.i8.i = fadd float %mul8.i.i.i211, %add13.i8.i586 %indvars.iv.next617 = add nuw nsw i64 %indvars.iv616, 1 %exitcond621.not = icmp eq i64 %indvars.iv.next617, %wide.trip.count620 @@ -12014,62 +12008,62 @@ for.body154: ; preds = %for.body154.lr.ph, for.end168: ; preds = %for.body154, %for.end143 %spatForceVecTemps.sroa.16.0 = phi float [ %spatForceVecTemps.sroa.16.0.copyload, %for.end143 ], [ %add13.i8.i, %for.body154 ] %add.i.i577.lcssa = phi float [ %spatForceVecTemps.sroa.0.0.copyload, %for.end143 ], [ %add.i.i, %for.body154 ] - %153 = phi <4 x float> [ %139, %for.end143 ], [ %152, %for.body154 ] - %154 = shufflevector <4 x float> %153, <4 x float> poison, <2 x i32> zeroinitializer - %155 = fmul <2 x float> %85, %154 - %156 = extractelement <4 x float> %153, i64 0 - %mul8.i13.i.i224 = fmul float %fromParent.sroa.36.16.copyload499, %156 - %157 = tail call float @llvm.fmuladd.f32(float %fromParent.sroa.15.0.copyload475, float %add.i.i577.lcssa, float %mul8.i13.i.i224) - %158 = extractelement <4 x float> %153, i64 1 - %159 = tail call noundef float @llvm.fmuladd.f32(float %fromParent.sroa.57.32.copyload523, float %158, float %157) - %160 = fneg float %fromParent.sroa.69.48.copyload - %neg.i.i = fmul float %156, %160 - %161 = tail call float @llvm.fmuladd.f32(float %fromParent.sroa.67.48.copyload, float %158, float %neg.i.i) - %162 = fneg float %fromParent.sroa.63532.48.copyload - %neg19.i.i = fmul float %158, %162 - %163 = tail call float @llvm.fmuladd.f32(float %fromParent.sroa.69.48.copyload, float %add.i.i577.lcssa, float %neg19.i.i) - %164 = fneg float %fromParent.sroa.67.48.copyload - %neg30.i.i = fmul float %add.i.i577.lcssa, %164 - %165 = tail call float @llvm.fmuladd.f32(float %fromParent.sroa.63532.48.copyload, float %156, float %neg30.i.i) - %166 = extractelement <4 x float> %153, i64 2 - %add.i.i230 = fadd float %161, %166 - %167 = extractelement <4 x float> %153, i64 3 - %add8.i.i231 = fadd float %163, %167 - %add14.i.i = fadd float %165, %spatForceVecTemps.sroa.16.0 + %152 = phi <4 x float> [ %138, %for.end143 ], [ %151, %for.body154 ] + %153 = shufflevector <4 x float> %152, <4 x float> poison, <2 x i32> zeroinitializer + %154 = fmul <2 x float> %85, %153 + %155 = extractelement <4 x float> %152, i64 0 + %mul8.i13.i.i224 = fmul float %fromParent.sroa.36.16.copyload499, %155 + %156 = tail call float @llvm.fmuladd.f32(float %fromParent.sroa.15.0.copyload475, float %add.i.i577.lcssa, float %mul8.i13.i.i224) + %157 = extractelement <4 x float> %152, i64 1 + %158 = tail call noundef float @llvm.fmuladd.f32(float %fromParent.sroa.57.32.copyload523, float %157, float %156) + %159 = fneg float %fromParent.sroa.69.48.copyload + %neg.i.i = fmul float %155, %159 + %160 = tail call float @llvm.fmuladd.f32(float %fromParent.sroa.67.48.copyload, float %157, float %neg.i.i) + %161 = fneg float %fromParent.sroa.63532.48.copyload + %neg19.i.i = fmul float %157, %161 + %162 = tail call float @llvm.fmuladd.f32(float %fromParent.sroa.69.48.copyload, float %add.i.i577.lcssa, float %neg19.i.i) + %163 = fneg float %fromParent.sroa.67.48.copyload + %neg30.i.i = fmul float %add.i.i577.lcssa, %163 + %164 = tail call float @llvm.fmuladd.f32(float %fromParent.sroa.63532.48.copyload, float %155, float %neg30.i.i) + %165 = extractelement <4 x float> %152, i64 2 + %add.i.i230 = fadd float %160, %165 + %166 = extractelement <4 x float> %152, i64 3 + %add8.i.i231 = fadd float %162, %166 + %add14.i.i = fadd float %164, %spatForceVecTemps.sroa.16.0 %mul8.i13.i60.i = fmul float %fromParent.sroa.36.16.copyload499, %add8.i.i231 - %168 = tail call float @llvm.fmuladd.f32(float %fromParent.sroa.15.0.copyload475, float %add.i.i230, float %mul8.i13.i60.i) - %169 = tail call noundef float @llvm.fmuladd.f32(float %fromParent.sroa.57.32.copyload523, float %add14.i.i, float %168) - %170 = sext i32 %83 to i64 - %171 = getelementptr %struct.btSpatialForceVector, ptr %33, i64 %170 - %arrayidx174 = getelementptr %struct.btSpatialForceVector, ptr %171, i64 1 - %172 = insertelement <2 x float> poison, float %add.i.i577.lcssa, i64 0 - %173 = shufflevector <2 x float> %172, <2 x float> poison, <2 x i32> zeroinitializer - %174 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %84, <2 x float> %173, <2 x float> %155) - %175 = shufflevector <4 x float> %153, <4 x float> poison, <2 x i32> - %176 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %86, <2 x float> %175, <2 x float> %174) - %177 = load <2 x float>, ptr %arrayidx174, align 4 - %178 = fadd <2 x float> %176, %177 - store <2 x float> %178, ptr %arrayidx174, align 4 - %arrayidx12.i.i237 = getelementptr %struct.btSpatialForceVector, ptr %171, i64 1, i32 0, i32 0, i64 2 - %179 = load float, ptr %arrayidx12.i.i237, align 4 - %add13.i.i238 = fadd float %159, %179 + %167 = tail call float @llvm.fmuladd.f32(float %fromParent.sroa.15.0.copyload475, float %add.i.i230, float %mul8.i13.i60.i) + %168 = tail call noundef float @llvm.fmuladd.f32(float %fromParent.sroa.57.32.copyload523, float %add14.i.i, float %167) + %169 = sext i32 %83 to i64 + %170 = getelementptr %struct.btSpatialForceVector, ptr %33, i64 %169 + %arrayidx174 = getelementptr %struct.btSpatialForceVector, ptr %170, i64 1 + %171 = insertelement <2 x float> poison, float %add.i.i577.lcssa, i64 0 + %172 = shufflevector <2 x float> %171, <2 x float> poison, <2 x i32> zeroinitializer + %173 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %84, <2 x float> %172, <2 x float> %154) + %174 = shufflevector <4 x float> %152, <4 x float> poison, <2 x i32> + %175 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %86, <2 x float> %174, <2 x float> %173) + %176 = load <2 x float>, ptr %arrayidx174, align 4 + %177 = fadd <2 x float> %175, %176 + store <2 x float> %177, ptr %arrayidx174, align 4 + %arrayidx12.i.i237 = getelementptr %struct.btSpatialForceVector, ptr %170, i64 1, i32 0, i32 0, i64 2 + %178 = load float, ptr %arrayidx12.i.i237, align 4 + %add13.i.i238 = fadd float %158, %178 store float %add13.i.i238, ptr %arrayidx12.i.i237, align 4 - %m_bottomVec3.i240 = getelementptr %struct.btSpatialForceVector, ptr %171, i64 1, i32 1 - %180 = insertelement <2 x float> poison, float %add8.i.i231, i64 0 - %181 = shufflevector <2 x float> %180, <2 x float> poison, <2 x i32> zeroinitializer - %182 = fmul <2 x float> %85, %181 - %183 = insertelement <2 x float> poison, float %add.i.i230, i64 0 - %184 = shufflevector <2 x float> %183, <2 x float> poison, <2 x i32> zeroinitializer - %185 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %84, <2 x float> %184, <2 x float> %182) - %186 = insertelement <2 x float> poison, float %add14.i.i, i64 0 - %187 = shufflevector <2 x float> %186, <2 x float> poison, <2 x i32> zeroinitializer - %188 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %86, <2 x float> %187, <2 x float> %185) - %189 = load <2 x float>, ptr %m_bottomVec3.i240, align 4 - %190 = fadd <2 x float> %188, %189 - store <2 x float> %190, ptr %m_bottomVec3.i240, align 4 - %arrayidx12.i7.i246 = getelementptr %struct.btSpatialForceVector, ptr %171, i64 1, i32 1, i32 0, i64 2 - %191 = load float, ptr %arrayidx12.i7.i246, align 4 - %add13.i8.i247 = fadd float %169, %191 + %m_bottomVec3.i240 = getelementptr %struct.btSpatialForceVector, ptr %170, i64 1, i32 1 + %179 = insertelement <2 x float> poison, float %add8.i.i231, i64 0 + %180 = shufflevector <2 x float> %179, <2 x float> poison, <2 x i32> zeroinitializer + %181 = fmul <2 x float> %85, %180 + %182 = insertelement <2 x float> poison, float %add.i.i230, i64 0 + %183 = shufflevector <2 x float> %182, <2 x float> poison, <2 x i32> zeroinitializer + %184 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %84, <2 x float> %183, <2 x float> %181) + %185 = insertelement <2 x float> poison, float %add14.i.i, i64 0 + %186 = shufflevector <2 x float> %185, <2 x float> poison, <2 x i32> zeroinitializer + %187 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %86, <2 x float> %186, <2 x float> %184) + %188 = load <2 x float>, ptr %m_bottomVec3.i240, align 4 + %189 = fadd <2 x float> %187, %188 + store <2 x float> %189, ptr %m_bottomVec3.i240, align 4 + %arrayidx12.i7.i246 = getelementptr %struct.btSpatialForceVector, ptr %170, i64 1, i32 1, i32 0, i64 2 + %190 = load float, ptr %arrayidx12.i7.i246, align 4 + %add13.i8.i247 = fadd float %168, %190 store float %add13.i8.i247, ptr %arrayidx12.i7.i246, align 4 br label %for.inc176 @@ -12079,21 +12073,21 @@ for.inc176: ; preds = %_ZNK11btMultiBody30 for.end177: ; preds = %for.inc176, %if.end %add.ptr178 = getelementptr float, ptr %output, i64 6 - %192 = load i8, ptr %m_fixedBase.i, align 1 - %193 = and i8 %192, 1 - %tobool.not.i249 = icmp eq i8 %193, 0 + %191 = load i8, ptr %m_fixedBase.i, align 1 + %192 = and i8 %191, 1 + %tobool.not.i249 = icmp eq i8 %192, 0 br i1 %tobool.not.i249, label %lor.rhs.i250, label %if.then180 lor.rhs.i250: ; preds = %for.end177 %m_baseCollider.i.i251 = getelementptr inbounds %class.btMultiBody, ptr %this, i64 0, i32 1 - %194 = load ptr, ptr %m_baseCollider.i.i251, align 8 - %tobool2.not.i252 = icmp eq ptr %194, null + %193 = load ptr, ptr %m_baseCollider.i.i251, align 8 + %tobool2.not.i252 = icmp eq ptr %193, null br i1 %tobool2.not.i252, label %if.else182, label %_ZNK11btMultiBody23isBaseStaticOrKinematicEv.exit257 _ZNK11btMultiBody23isBaseStaticOrKinematicEv.exit257: ; preds = %lor.rhs.i250 - %m_collisionFlags.i.i254 = getelementptr inbounds %class.btCollisionObject, ptr %194, i64 0, i32 12 - %195 = load i32, ptr %m_collisionFlags.i.i254, align 8 - %and.i.i255 = and i32 %195, 3 + %m_collisionFlags.i.i254 = getelementptr inbounds %class.btCollisionObject, ptr %193, i64 0, i32 12 + %194 = load i32, ptr %m_collisionFlags.i.i254, align 8 + %and.i.i255 = and i32 %194, 3 %cmp.i.i256.not = icmp eq i32 %and.i.i255, 0 br i1 %cmp.i.i256.not, label %if.else182, label %if.then180 @@ -12103,31 +12097,31 @@ if.then180: ; preds = %for.end177, %_ZNK11 if.else182: ; preds = %lor.rhs.i250, %_ZNK11btMultiBody23isBaseStaticOrKinematicEv.exit257 call void @_ZNK11btMultiBody12solveImatrixERK20btSpatialForceVectorR21btSpatialMotionVector(ptr noundef nonnull align 8 dereferenceable(640) %this, ptr noundef nonnull align 4 dereferenceable(32) %33, ptr noundef nonnull align 4 dereferenceable(32) %result) - %196 = load <2 x float>, ptr %result, align 8, !noalias !167 - %197 = fneg <2 x float> %196 + %195 = load <2 x float>, ptr %result, align 8, !noalias !167 + %196 = fneg <2 x float> %195 %arrayidx7.i.i259 = getelementptr inbounds [4 x float], ptr %result, i64 0, i64 2 - %198 = load float, ptr %arrayidx7.i.i259, align 8, !noalias !167 - %fneg8.i.i = fneg float %198 + %197 = load float, ptr %arrayidx7.i.i259, align 8, !noalias !167 + %fneg8.i.i = fneg float %197 %retval.sroa.3.12.vec.insert.i.i262 = insertelement <2 x float> , float %fneg8.i.i, i64 0 %m_bottomVec.i263 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %result, i64 0, i32 1 - %199 = load <2 x float>, ptr %m_bottomVec.i263, align 8, !noalias !167 - %200 = fneg <2 x float> %199 + %198 = load <2 x float>, ptr %m_bottomVec.i263, align 8, !noalias !167 + %199 = fneg <2 x float> %198 %arrayidx7.i4.i264 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %result, i64 0, i32 1, i32 0, i64 2 - %201 = load float, ptr %arrayidx7.i4.i264, align 8, !noalias !167 - %fneg8.i5.i = fneg float %201 + %200 = load float, ptr %arrayidx7.i4.i264, align 8, !noalias !167 + %fneg8.i5.i = fneg float %200 %retval.sroa.3.12.vec.insert.i8.i = insertelement <2 x float> , float %fneg8.i5.i, i64 0 - store <2 x float> %197, ptr %add.ptr548555, align 4 + store <2 x float> %196, ptr %add.ptr548555, align 4 %ref.tmp184.sroa.2.0.add.ptr.sroa_idx = getelementptr %class.btVector3, ptr %.pn, i64 2, i32 0, i64 2 store <2 x float> %retval.sroa.3.12.vec.insert.i.i262, ptr %ref.tmp184.sroa.2.0.add.ptr.sroa_idx, align 4 %ref.tmp184.sroa.3.0.add.ptr.sroa_idx = getelementptr %class.btVector3, ptr %.pn, i64 3 - store <2 x float> %200, ptr %ref.tmp184.sroa.3.0.add.ptr.sroa_idx, align 4 + store <2 x float> %199, ptr %ref.tmp184.sroa.3.0.add.ptr.sroa_idx, align 4 %ref.tmp184.sroa.4.0.add.ptr.sroa_idx = getelementptr %class.btVector3, ptr %.pn, i64 3, i32 0, i64 2 store <2 x float> %retval.sroa.3.12.vec.insert.i8.i, ptr %ref.tmp184.sroa.4.0.add.ptr.sroa_idx, align 4 br label %if.end186 if.end186: ; preds = %if.else182, %if.then180 - %202 = phi float [ %fneg8.i.i, %if.else182 ], [ 0.000000e+00, %if.then180 ] - %203 = phi <2 x float> [ %197, %if.else182 ], [ zeroinitializer, %if.then180 ] + %201 = phi float [ %fneg8.i.i, %if.else182 ], [ 0.000000e+00, %if.then180 ] + %202 = phi <2 x float> [ %196, %if.else182 ], [ zeroinitializer, %if.then180 ] br i1 %cmp50566, label %for.body190.lr.ph, label %for.end295 for.body190.lr.ph: ; preds = %if.end186 @@ -12138,41 +12132,41 @@ for.body190.lr.ph: ; preds = %if.end186 br label %for.body190 for.body190: ; preds = %for.body190.lr.ph, %for.inc293 - %204 = phi ptr [ %.pre, %for.body190.lr.ph ], [ %319, %for.inc293 ] + %203 = phi ptr [ %.pre, %for.body190.lr.ph ], [ %318, %for.inc293 ] %indvars.iv634 = phi i64 [ 0, %for.body190.lr.ph ], [ %indvars.iv.next635.pre-phi, %for.inc293 ] - %205 = trunc i64 %indvars.iv634 to i32 + %204 = trunc i64 %indvars.iv634 to i32 br label %if.else.i.i268 if.else.i.i268: ; preds = %if.end.i277, %for.body190 - %link.06.i269 = phi i32 [ %205, %for.body190 ], [ %208, %if.end.i277 ] + %link.06.i269 = phi i32 [ %204, %for.body190 ], [ %207, %if.end.i277 ] %idxprom.i.i.i270 = sext i32 %link.06.i269 to i64 - %m_collider.i.i271 = getelementptr inbounds %struct.btMultibodyLink, ptr %204, i64 %idxprom.i.i.i270, i32 22 - %206 = load ptr, ptr %m_collider.i.i271, align 8 - %tobool.not.i.i272 = icmp eq ptr %206, null + %m_collider.i.i271 = getelementptr inbounds %struct.btMultibodyLink, ptr %203, i64 %idxprom.i.i.i270, i32 22 + %205 = load ptr, ptr %m_collider.i.i271, align 8 + %tobool.not.i.i272 = icmp eq ptr %205, null br i1 %tobool.not.i.i272, label %if.end193, label %_ZNK11btMultiBody15isLinkKinematicEi.exit.i273 _ZNK11btMultiBody15isLinkKinematicEi.exit.i273: ; preds = %if.else.i.i268 - %m_collisionFlags.i.i.i.i274 = getelementptr inbounds %class.btCollisionObject, ptr %206, i64 0, i32 12 - %207 = load i32, ptr %m_collisionFlags.i.i.i.i274, align 8 - %and.i.i.i.i275 = and i32 %207, 2 + %m_collisionFlags.i.i.i.i274 = getelementptr inbounds %class.btCollisionObject, ptr %205, i64 0, i32 12 + %206 = load i32, ptr %m_collisionFlags.i.i.i.i274, align 8 + %and.i.i.i.i275 = and i32 %206, 2 %cmp.i.i.i.not.i276 = icmp eq i32 %and.i.i.i.i275, 0 br i1 %cmp.i.i.i.not.i276, label %if.end193, label %if.end.i277 if.end.i277: ; preds = %_ZNK11btMultiBody15isLinkKinematicEi.exit.i273 - %m_parent.i278 = getelementptr inbounds %struct.btMultibodyLink, ptr %204, i64 %idxprom.i.i.i270, i32 2 - %208 = load i32, ptr %m_parent.i278, align 4 - %cmp.not.i279 = icmp eq i32 %208, -1 + %m_parent.i278 = getelementptr inbounds %struct.btMultibodyLink, ptr %203, i64 %idxprom.i.i.i270, i32 2 + %207 = load i32, ptr %m_parent.i278, align 4 + %cmp.not.i279 = icmp eq i32 %207, -1 br i1 %cmp.not.i279, label %while.end.i280, label %if.else.i.i268, !llvm.loop !34 while.end.i280: ; preds = %if.end.i277 - %209 = load ptr, ptr %m_baseCollider.i.i.i281, align 8 - %tobool.not.i3.i282 = icmp eq ptr %209, null + %208 = load ptr, ptr %m_baseCollider.i.i.i281, align 8 + %tobool.not.i3.i282 = icmp eq ptr %208, null br i1 %tobool.not.i3.i282, label %if.end193, label %_ZNK11btMultiBody30isLinkAndAllAncestorsKinematicEi.exit288 _ZNK11btMultiBody30isLinkAndAllAncestorsKinematicEi.exit288: ; preds = %while.end.i280 - %m_collisionFlags.i.i.i284 = getelementptr inbounds %class.btCollisionObject, ptr %209, i64 0, i32 12 - %210 = load i32, ptr %m_collisionFlags.i.i.i284, align 8 - %and.i.i.i285 = and i32 %210, 2 + %m_collisionFlags.i.i.i284 = getelementptr inbounds %class.btCollisionObject, ptr %208, i64 0, i32 12 + %209 = load i32, ptr %m_collisionFlags.i.i.i284, align 8 + %and.i.i.i285 = and i32 %209, 2 %cmp.i.i.i286.not = icmp eq i32 %and.i.i.i285, 0 br i1 %cmp.i.i.i286.not, label %if.end193, label %_ZNK11btMultiBody30isLinkAndAllAncestorsKinematicEi.exit288.for.inc293_crit_edge @@ -12181,10 +12175,10 @@ _ZNK11btMultiBody30isLinkAndAllAncestorsKinematicEi.exit288.for.inc293_crit_edge br label %for.inc293 if.end193: ; preds = %if.else.i.i268, %_ZNK11btMultiBody15isLinkKinematicEi.exit.i273, %while.end.i280, %_ZNK11btMultiBody30isLinkAndAllAncestorsKinematicEi.exit288 - %m_parent197 = getelementptr inbounds %struct.btMultibodyLink, ptr %204, i64 %indvars.iv634, i32 2 - %211 = load i32, ptr %m_parent197, align 4 - %212 = add nuw nsw i64 %indvars.iv634, 1 - %arrayidx200 = getelementptr inbounds %class.btMatrix3x3, ptr %34, i64 %212 + %m_parent197 = getelementptr inbounds %struct.btMultibodyLink, ptr %203, i64 %indvars.iv634, i32 2 + %210 = load i32, ptr %m_parent197, align 4 + %211 = add nuw nsw i64 %indvars.iv634, 1 + %arrayidx200 = getelementptr inbounds %class.btMatrix3x3, ptr %34, i64 %211 %fromParent.sroa.0.0.copyload467 = load float, ptr %arrayidx200, align 4 %fromParent.sroa.9.0.arrayidx200.sroa_idx = getelementptr inbounds i8, ptr %arrayidx200, i64 4 %fromParent.sroa.9.0.copyload469 = load float, ptr %fromParent.sroa.9.0.arrayidx200.sroa_idx, align 4 @@ -12202,129 +12196,129 @@ if.end193: ; preds = %if.else.i.i268, %_Z %fromParent.sroa.51.32.copyload517 = load float, ptr %fromParent.sroa.51.32.arrayidx9.i294.sroa_idx, align 4 %fromParent.sroa.57.32.arrayidx9.i294.sroa_idx = getelementptr inbounds [3 x %class.btVector3], ptr %arrayidx200, i64 0, i64 2, i32 0, i64 2 %fromParent.sroa.57.32.copyload524 = load float, ptr %fromParent.sroa.57.32.arrayidx9.i294.sroa_idx, align 4 - %m_cachedRVector205 = getelementptr inbounds %struct.btMultibodyLink, ptr %204, i64 %indvars.iv634, i32 12 + %m_cachedRVector205 = getelementptr inbounds %struct.btMultibodyLink, ptr %203, i64 %indvars.iv634, i32 12 %fromParent.sroa.63532.48.copyload534 = load float, ptr %m_cachedRVector205, align 8 %fromParent.sroa.67.48.m_cachedRVector205.sroa_idx = getelementptr inbounds i8, ptr %m_cachedRVector205, i64 4 - %213 = sext i32 %211 to i64 - %214 = getelementptr %struct.btSpatialMotionVector, ptr %add.ptr548555, i64 %213 - %arrayidx209 = getelementptr %struct.btSpatialMotionVector, ptr %214, i64 1 - %arrayidx212 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %add.ptr548555, i64 %212 - %215 = load float, ptr %arrayidx209, align 4 - %arrayidx7.i.i.i300 = getelementptr %struct.btSpatialMotionVector, ptr %214, i64 1, i32 0, i32 0, i64 1 - %216 = load float, ptr %arrayidx7.i.i.i300, align 4 - %arrayidx12.i.i.i303 = getelementptr %struct.btSpatialMotionVector, ptr %214, i64 1, i32 0, i32 0, i64 2 - %217 = load float, ptr %arrayidx12.i.i.i303, align 4 - %218 = insertelement <2 x float> poison, float %fromParent.sroa.9.0.copyload469, i64 0 - %219 = insertelement <2 x float> %218, float %fromParent.sroa.30.16.copyload493, i64 1 - %220 = insertelement <2 x float> poison, float %216, i64 0 - %221 = shufflevector <2 x float> %220, <2 x float> poison, <2 x i32> zeroinitializer - %222 = fmul <2 x float> %219, %221 - %223 = insertelement <2 x float> poison, float %fromParent.sroa.0.0.copyload467, i64 0 - %224 = insertelement <2 x float> %223, float %fromParent.sroa.21484.16.copyload491, i64 1 - %225 = insertelement <2 x float> poison, float %215, i64 0 - %226 = shufflevector <2 x float> %225, <2 x float> poison, <2 x i32> zeroinitializer - %227 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %224, <2 x float> %226, <2 x float> %222) - %228 = insertelement <2 x float> poison, float %fromParent.sroa.15.0.copyload476, i64 0 - %229 = insertelement <2 x float> %228, float %fromParent.sroa.36.16.copyload500, i64 1 - %230 = insertelement <2 x float> poison, float %217, i64 0 - %231 = shufflevector <2 x float> %230, <2 x float> poison, <2 x i32> zeroinitializer - %232 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %229, <2 x float> %231, <2 x float> %227) - %mul8.i13.i.i310 = fmul float %fromParent.sroa.51.32.copyload517, %216 - %233 = tail call float @llvm.fmuladd.f32(float %fromParent.sroa.42508.32.copyload515, float %215, float %mul8.i13.i.i310) - %234 = tail call noundef float @llvm.fmuladd.f32(float %fromParent.sroa.57.32.copyload524, float %217, float %233) - %retval.sroa.3.12.vec.insert.i.i314 = insertelement <2 x float> , float %234, i64 0 + %212 = sext i32 %210 to i64 + %213 = getelementptr %struct.btSpatialMotionVector, ptr %add.ptr548555, i64 %212 + %arrayidx209 = getelementptr %struct.btSpatialMotionVector, ptr %213, i64 1 + %arrayidx212 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %add.ptr548555, i64 %211 + %214 = load float, ptr %arrayidx209, align 4 + %arrayidx7.i.i.i300 = getelementptr %struct.btSpatialMotionVector, ptr %213, i64 1, i32 0, i32 0, i64 1 + %215 = load float, ptr %arrayidx7.i.i.i300, align 4 + %arrayidx12.i.i.i303 = getelementptr %struct.btSpatialMotionVector, ptr %213, i64 1, i32 0, i32 0, i64 2 + %216 = load float, ptr %arrayidx12.i.i.i303, align 4 + %217 = insertelement <2 x float> poison, float %fromParent.sroa.9.0.copyload469, i64 0 + %218 = insertelement <2 x float> %217, float %fromParent.sroa.30.16.copyload493, i64 1 + %219 = insertelement <2 x float> poison, float %215, i64 0 + %220 = shufflevector <2 x float> %219, <2 x float> poison, <2 x i32> zeroinitializer + %221 = fmul <2 x float> %218, %220 + %222 = insertelement <2 x float> poison, float %fromParent.sroa.0.0.copyload467, i64 0 + %223 = insertelement <2 x float> %222, float %fromParent.sroa.21484.16.copyload491, i64 1 + %224 = insertelement <2 x float> poison, float %214, i64 0 + %225 = shufflevector <2 x float> %224, <2 x float> poison, <2 x i32> zeroinitializer + %226 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %223, <2 x float> %225, <2 x float> %221) + %227 = insertelement <2 x float> poison, float %fromParent.sroa.15.0.copyload476, i64 0 + %228 = insertelement <2 x float> %227, float %fromParent.sroa.36.16.copyload500, i64 1 + %229 = insertelement <2 x float> poison, float %216, i64 0 + %230 = shufflevector <2 x float> %229, <2 x float> poison, <2 x i32> zeroinitializer + %231 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %228, <2 x float> %230, <2 x float> %226) + %mul8.i13.i.i310 = fmul float %fromParent.sroa.51.32.copyload517, %215 + %232 = tail call float @llvm.fmuladd.f32(float %fromParent.sroa.42508.32.copyload515, float %214, float %mul8.i13.i.i310) + %233 = tail call noundef float @llvm.fmuladd.f32(float %fromParent.sroa.57.32.copyload524, float %216, float %232) + %retval.sroa.3.12.vec.insert.i.i314 = insertelement <2 x float> , float %233, i64 0 %ref.tmp.sroa.2.0.m_topVec2.sroa_idx.i315 = getelementptr inbounds i8, ptr %arrayidx212, i64 8 - %235 = extractelement <2 x float> %232, i64 1 - %236 = extractelement <2 x float> %232, i64 0 - %m_bottomVec.i322 = getelementptr %struct.btSpatialMotionVector, ptr %214, i64 1, i32 1 - %237 = load float, ptr %m_bottomVec.i322, align 4 - %arrayidx7.i.i29.i = getelementptr %struct.btSpatialMotionVector, ptr %214, i64 1, i32 1, i32 0, i64 1 - %238 = load float, ptr %arrayidx7.i.i29.i, align 4 - %arrayidx12.i.i32.i = getelementptr %struct.btSpatialMotionVector, ptr %214, i64 1, i32 1, i32 0, i64 2 - %239 = load float, ptr %arrayidx12.i.i32.i, align 4 - %mul8.i13.i39.i = fmul float %fromParent.sroa.51.32.copyload517, %238 - %240 = tail call float @llvm.fmuladd.f32(float %fromParent.sroa.42508.32.copyload515, float %237, float %mul8.i13.i39.i) - %241 = tail call noundef float @llvm.fmuladd.f32(float %fromParent.sroa.57.32.copyload524, float %239, float %240) - %242 = load <2 x float>, ptr %fromParent.sroa.67.48.m_cachedRVector205.sroa_idx, align 4 - store <2 x float> %232, ptr %arrayidx212, align 4 + %234 = extractelement <2 x float> %231, i64 1 + %235 = extractelement <2 x float> %231, i64 0 + %m_bottomVec.i322 = getelementptr %struct.btSpatialMotionVector, ptr %213, i64 1, i32 1 + %236 = load float, ptr %m_bottomVec.i322, align 4 + %arrayidx7.i.i29.i = getelementptr %struct.btSpatialMotionVector, ptr %213, i64 1, i32 1, i32 0, i64 1 + %237 = load float, ptr %arrayidx7.i.i29.i, align 4 + %arrayidx12.i.i32.i = getelementptr %struct.btSpatialMotionVector, ptr %213, i64 1, i32 1, i32 0, i64 2 + %238 = load float, ptr %arrayidx12.i.i32.i, align 4 + %mul8.i13.i39.i = fmul float %fromParent.sroa.51.32.copyload517, %237 + %239 = tail call float @llvm.fmuladd.f32(float %fromParent.sroa.42508.32.copyload515, float %236, float %mul8.i13.i39.i) + %240 = tail call noundef float @llvm.fmuladd.f32(float %fromParent.sroa.57.32.copyload524, float %238, float %239) + %241 = load <2 x float>, ptr %fromParent.sroa.67.48.m_cachedRVector205.sroa_idx, align 4 + store <2 x float> %231, ptr %arrayidx212, align 4 store <2 x float> %retval.sroa.3.12.vec.insert.i.i314, ptr %ref.tmp.sroa.2.0.m_topVec2.sroa_idx.i315, align 4 - %243 = insertelement <2 x float> %242, float %fromParent.sroa.63532.48.copyload534, i64 0 - %244 = fneg <2 x float> %243 - %245 = insertelement <2 x float> %232, float %234, i64 0 - %246 = fmul <2 x float> %245, %244 - %247 = shufflevector <2 x float> %246, <2 x float> poison, <2 x i32> - %248 = shufflevector <2 x float> %232, <2 x float> poison, <2 x i32> - %249 = insertelement <2 x float> %248, float %234, i64 0 - %250 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %242, <2 x float> %249, <2 x float> %247) - %251 = extractelement <2 x float> %242, i64 0 - %252 = fneg float %251 - %neg30.i.i321 = fmul float %236, %252 - %253 = tail call float @llvm.fmuladd.f32(float %fromParent.sroa.63532.48.copyload534, float %235, float %neg30.i.i321) - %254 = insertelement <2 x float> poison, float %238, i64 0 - %255 = shufflevector <2 x float> %254, <2 x float> poison, <2 x i32> zeroinitializer - %256 = fmul <2 x float> %219, %255 - %257 = insertelement <2 x float> poison, float %237, i64 0 - %258 = shufflevector <2 x float> %257, <2 x float> poison, <2 x i32> zeroinitializer - %259 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %224, <2 x float> %258, <2 x float> %256) - %260 = insertelement <2 x float> poison, float %239, i64 0 - %261 = shufflevector <2 x float> %260, <2 x float> poison, <2 x i32> zeroinitializer - %262 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %229, <2 x float> %261, <2 x float> %259) - %263 = fsub <2 x float> %262, %250 - %add14.i.i325 = fsub float %241, %253 + %242 = insertelement <2 x float> %241, float %fromParent.sroa.63532.48.copyload534, i64 0 + %243 = fneg <2 x float> %242 + %244 = insertelement <2 x float> %231, float %233, i64 0 + %245 = fmul <2 x float> %244, %243 + %246 = shufflevector <2 x float> %245, <2 x float> poison, <2 x i32> + %247 = shufflevector <2 x float> %231, <2 x float> poison, <2 x i32> + %248 = insertelement <2 x float> %247, float %233, i64 0 + %249 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %241, <2 x float> %248, <2 x float> %246) + %250 = extractelement <2 x float> %241, i64 0 + %251 = fneg float %250 + %neg30.i.i321 = fmul float %235, %251 + %252 = tail call float @llvm.fmuladd.f32(float %fromParent.sroa.63532.48.copyload534, float %234, float %neg30.i.i321) + %253 = insertelement <2 x float> poison, float %237, i64 0 + %254 = shufflevector <2 x float> %253, <2 x float> poison, <2 x i32> zeroinitializer + %255 = fmul <2 x float> %218, %254 + %256 = insertelement <2 x float> poison, float %236, i64 0 + %257 = shufflevector <2 x float> %256, <2 x float> poison, <2 x i32> zeroinitializer + %258 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %223, <2 x float> %257, <2 x float> %255) + %259 = insertelement <2 x float> poison, float %238, i64 0 + %260 = shufflevector <2 x float> %259, <2 x float> poison, <2 x i32> zeroinitializer + %261 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %228, <2 x float> %260, <2 x float> %258) + %262 = fsub <2 x float> %261, %249 + %add14.i.i325 = fsub float %240, %252 %retval.sroa.3.12.vec.insert.i50.i = insertelement <2 x float> , float %add14.i.i325, i64 0 - %m_bottomVec17.i = getelementptr inbounds %struct.btSpatialMotionVector, ptr %add.ptr548555, i64 %212, i32 1 - store <2 x float> %263, ptr %m_bottomVec17.i, align 4 - %ref.tmp3.sroa.2.0.m_bottomVec17.sroa_idx.i = getelementptr inbounds %struct.btSpatialMotionVector, ptr %add.ptr548555, i64 %212, i32 1, i32 0, i64 2 + %m_bottomVec17.i = getelementptr inbounds %struct.btSpatialMotionVector, ptr %add.ptr548555, i64 %211, i32 1 + store <2 x float> %262, ptr %m_bottomVec17.i, align 4 + %ref.tmp3.sroa.2.0.m_bottomVec17.sroa_idx.i = getelementptr inbounds %struct.btSpatialMotionVector, ptr %add.ptr548555, i64 %211, i32 1, i32 0, i64 2 store <2 x float> %retval.sroa.3.12.vec.insert.i50.i, ptr %ref.tmp3.sroa.2.0.m_bottomVec17.sroa_idx.i, align 4 - %264 = load ptr, ptr %m_data.i.i.i267, align 8 - %m_dofCount217 = getelementptr inbounds %struct.btMultibodyLink, ptr %264, i64 %indvars.iv634, i32 24 - %265 = load i32, ptr %m_dofCount217, align 4 - %cmp218591 = icmp sgt i32 %265, 0 + %263 = load ptr, ptr %m_data.i.i.i267, align 8 + %m_dofCount217 = getelementptr inbounds %struct.btMultibodyLink, ptr %263, i64 %indvars.iv634, i32 24 + %264 = load i32, ptr %m_dofCount217, align 4 + %cmp218591 = icmp sgt i32 %264, 0 br i1 %cmp218591, label %for.body219.lr.ph, label %for.inc293 for.body219.lr.ph: ; preds = %if.end193 - %m_dofOffset223 = getelementptr inbounds %struct.btMultibodyLink, ptr %264, i64 %indvars.iv634, i32 9 - %266 = load i32, ptr %m_dofOffset223, align 8 - %arrayidx5.i.i336 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %add.ptr548555, i64 %212, i32 1, i32 0, i64 1 - %267 = load float, ptr %arrayidx5.i.i336, align 4 - %268 = sext i32 %266 to i64 - %wide.trip.count629 = zext nneg i32 %265 to i64 - %269 = insertelement <2 x float> poison, float %add14.i.i325, i64 0 - %270 = insertelement <2 x float> %269, float %234, i64 1 - %271 = shufflevector <2 x float> %263, <2 x float> %232, <2 x i32> - %272 = insertelement <2 x float> %232, float %267, i64 0 + %m_dofOffset223 = getelementptr inbounds %struct.btMultibodyLink, ptr %263, i64 %indvars.iv634, i32 9 + %265 = load i32, ptr %m_dofOffset223, align 8 + %arrayidx5.i.i336 = getelementptr inbounds %struct.btSpatialMotionVector, ptr %add.ptr548555, i64 %211, i32 1, i32 0, i64 1 + %266 = load float, ptr %arrayidx5.i.i336, align 4 + %267 = sext i32 %265 to i64 + %wide.trip.count629 = zext nneg i32 %264 to i64 + %268 = insertelement <2 x float> poison, float %add14.i.i325, i64 0 + %269 = insertelement <2 x float> %268, float %233, i64 1 + %270 = shufflevector <2 x float> %262, <2 x float> %231, <2 x i32> + %271 = insertelement <2 x float> %231, float %266, i64 0 br label %for.body219 for.body219: ; preds = %for.body219.lr.ph, %for.body219 %indvars.iv625 = phi i64 [ 0, %for.body219.lr.ph ], [ %indvars.iv.next626, %for.body219 ] - %273 = add nsw i64 %indvars.iv625, %268 - %arrayidx226 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond14557, i64 %273 - %arrayidx232 = getelementptr inbounds float, ptr %cond547556, i64 %273 - %274 = load float, ptr %arrayidx232, align 4 - %275 = load float, ptr %arrayidx226, align 4 + %272 = add nsw i64 %indvars.iv625, %267 + %arrayidx226 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond14557, i64 %272 + %arrayidx232 = getelementptr inbounds float, ptr %cond547556, i64 %272 + %273 = load float, ptr %arrayidx232, align 4 + %274 = load float, ptr %arrayidx226, align 4 %arrayidx7.i.i337 = getelementptr inbounds [4 x float], ptr %arrayidx226, i64 0, i64 1 - %276 = load float, ptr %arrayidx7.i.i337, align 4 + %275 = load float, ptr %arrayidx7.i.i337, align 4 %arrayidx12.i.i340 = getelementptr inbounds [4 x float], ptr %arrayidx226, i64 0, i64 2 - %277 = load float, ptr %arrayidx12.i.i340, align 4 - %m_bottomVec3.i341 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond14557, i64 %273, i32 1 - %278 = load float, ptr %m_bottomVec3.i341, align 4 - %arrayidx7.i3.i343 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond14557, i64 %273, i32 1, i32 0, i64 1 - %279 = load float, ptr %arrayidx7.i3.i343, align 4 - %arrayidx12.i6.i346 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond14557, i64 %273, i32 1, i32 0, i64 2 - %280 = load float, ptr %arrayidx12.i6.i346, align 4 - %281 = insertelement <2 x float> poison, float %276, i64 0 - %282 = insertelement <2 x float> %281, float %279, i64 1 - %283 = fmul <2 x float> %272, %282 - %284 = insertelement <2 x float> poison, float %275, i64 0 - %285 = insertelement <2 x float> %284, float %278, i64 1 - %286 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %271, <2 x float> %285, <2 x float> %283) - %287 = insertelement <2 x float> poison, float %277, i64 0 - %288 = insertelement <2 x float> %287, float %280, i64 1 - %289 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %270, <2 x float> %288, <2 x float> %286) - %shift679 = shufflevector <2 x float> %289, <2 x float> poison, <2 x i32> - %290 = fadd <2 x float> %289, %shift679 - %add.i347 = extractelement <2 x float> %290, i64 0 - %sub237 = fsub float %274, %add.i347 + %276 = load float, ptr %arrayidx12.i.i340, align 4 + %m_bottomVec3.i341 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond14557, i64 %272, i32 1 + %277 = load float, ptr %m_bottomVec3.i341, align 4 + %arrayidx7.i3.i343 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond14557, i64 %272, i32 1, i32 0, i64 1 + %278 = load float, ptr %arrayidx7.i3.i343, align 4 + %arrayidx12.i6.i346 = getelementptr inbounds %struct.btSpatialForceVector, ptr %cond14557, i64 %272, i32 1, i32 0, i64 2 + %279 = load float, ptr %arrayidx12.i6.i346, align 4 + %280 = insertelement <2 x float> poison, float %275, i64 0 + %281 = insertelement <2 x float> %280, float %278, i64 1 + %282 = fmul <2 x float> %271, %281 + %283 = insertelement <2 x float> poison, float %274, i64 0 + %284 = insertelement <2 x float> %283, float %277, i64 1 + %285 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %270, <2 x float> %284, <2 x float> %282) + %286 = insertelement <2 x float> poison, float %276, i64 0 + %287 = insertelement <2 x float> %286, float %279, i64 1 + %288 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %269, <2 x float> %287, <2 x float> %285) + %shift679 = shufflevector <2 x float> %288, <2 x float> poison, <2 x i32> + %289 = fadd <2 x float> %288, %shift679 + %add.i347 = extractelement <2 x float> %289, i64 0 + %sub237 = fsub float %273, %add.i347 %arrayidx239 = getelementptr inbounds [6 x float], ptr %Y_minus_hT_a, i64 0, i64 %indvars.iv625 store float %sub237, ptr %arrayidx239, align 4 %indvars.iv.next626 = add nuw nsw i64 %indvars.iv625, 1 @@ -12332,33 +12326,33 @@ for.body219: ; preds = %for.body219.lr.ph, br i1 %exitcond630.not, label %for.end242, label %for.body219, !llvm.loop !170 for.end242: ; preds = %for.body219 - %mul250 = mul nsw i32 %266, %266 + %mul250 = mul nsw i32 %265, %265 %idxprom251 = zext nneg i32 %mul250 to i64 %arrayidx252 = getelementptr inbounds float, ptr %cond27, i64 %idxprom251 - %arrayidx266 = getelementptr float, ptr %add.ptr178, i64 %268 + %arrayidx266 = getelementptr float, ptr %add.ptr178, i64 %267 br i1 %cmp218591, label %for.cond2.preheader.us.us.preheader.i, label %for.inc293 for.cond2.preheader.us.us.preheader.i: ; preds = %for.end242 - %wide.trip.count56.i = zext nneg i32 %265 to i64 + %wide.trip.count56.i = zext nneg i32 %264 to i64 br label %for.cond2.preheader.us.us.i for.cond2.preheader.us.us.i: ; preds = %for.cond5.for.inc21_crit_edge.us.us.us.i, %for.cond2.preheader.us.us.preheader.i %indvars.iv51.i = phi i64 [ 0, %for.cond2.preheader.us.us.preheader.i ], [ %indvars.iv.next52.i, %for.cond5.for.inc21_crit_edge.us.us.us.i ] - %291 = mul nuw nsw i64 %indvars.iv51.i, %wide.trip.count56.i - %invariant.gep.i = getelementptr float, ptr %arrayidx252, i64 %291 - %arrayidx.us.us.us.i = getelementptr inbounds float, ptr %arrayidx266, i64 %indvars.iv51.i - store float 0.000000e+00, ptr %arrayidx.us.us.us.i, align 4 + %290 = mul nuw nsw i64 %indvars.iv51.i, %wide.trip.count56.i + %invariant.gep61.i = getelementptr float, ptr %arrayidx266, i64 %indvars.iv51.i + %invariant.gep.i = getelementptr float, ptr %arrayidx252, i64 %290 + store float 0.000000e+00, ptr %invariant.gep61.i, align 4 br label %for.body7.us.us.us.i for.body7.us.us.us.i: ; preds = %for.body7.us.us.us.i, %for.cond2.preheader.us.us.i %indvars.iv36.i = phi i64 [ %indvars.iv.next37.i, %for.body7.us.us.us.i ], [ 0, %for.cond2.preheader.us.us.i ] - %292 = phi float [ %295, %for.body7.us.us.us.i ], [ 0.000000e+00, %for.cond2.preheader.us.us.i ] + %291 = phi float [ %294, %for.body7.us.us.us.i ], [ 0.000000e+00, %for.cond2.preheader.us.us.i ] %gep.i = getelementptr float, ptr %invariant.gep.i, i64 %indvars.iv36.i - %293 = load float, ptr %gep.i, align 4 - %arrayidx15.us.us.us.i = getelementptr inbounds float, ptr %Y_minus_hT_a, i64 %indvars.iv36.i - %294 = load float, ptr %arrayidx15.us.us.us.i, align 4 - %295 = tail call float @llvm.fmuladd.f32(float %293, float %294, float %292) - store float %295, ptr %arrayidx.us.us.us.i, align 4 + %292 = load float, ptr %gep.i, align 4 + %gep60.i = getelementptr float, ptr %Y_minus_hT_a, i64 %indvars.iv36.i + %293 = load float, ptr %gep60.i, align 4 + %294 = tail call float @llvm.fmuladd.f32(float %292, float %293, float %291) + store float %294, ptr %invariant.gep61.i, align 4 %indvars.iv.next37.i = add nuw nsw i64 %indvars.iv36.i, 1 %exitcond43.not.i = icmp eq i64 %indvars.iv.next37.i, %wide.trip.count56.i br i1 %exitcond43.not.i, label %for.cond5.for.inc21_crit_edge.us.us.us.i, label %for.body7.us.us.us.i, !llvm.loop !82 @@ -12376,125 +12370,125 @@ _ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit: ; preds = %for.cond5.for.inc21 br i1 %cmp272596, label %for.body273.lr.ph, label %for.inc293 for.body273.lr.ph: ; preds = %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit - %296 = load <2 x float>, ptr %arrayidx212, align 4 + %295 = load <2 x float>, ptr %arrayidx212, align 4 %.pre647 = load float, ptr %ref.tmp.sroa.2.0.m_topVec2.sroa_idx.i315, align 4 - %297 = load <2 x float>, ptr %m_bottomVec17.i, align 4 + %296 = load <2 x float>, ptr %m_bottomVec17.i, align 4 %.pre650 = load float, ptr %ref.tmp3.sroa.2.0.m_bottomVec17.sroa_idx.i, align 4 br label %for.body273 for.body273: ; preds = %for.body273.lr.ph, %for.body273 - %298 = phi float [ %.pre650, %for.body273.lr.ph ], [ %add13.i8.i413, %for.body273 ] - %299 = phi float [ %.pre647, %for.body273.lr.ph ], [ %add13.i.i404, %for.body273 ] + %297 = phi float [ %.pre650, %for.body273.lr.ph ], [ %add13.i8.i413, %for.body273 ] + %298 = phi float [ %.pre647, %for.body273.lr.ph ], [ %add13.i.i404, %for.body273 ] %indvars.iv631 = phi i64 [ 0, %for.body273.lr.ph ], [ %indvars.iv.next632, %for.body273 ] - %300 = phi ptr [ %.pre643, %for.body273.lr.ph ], [ %316, %for.body273 ] - %301 = phi <2 x float> [ %296, %for.body273.lr.ph ], [ %312, %for.body273 ] - %302 = phi <2 x float> [ %297, %for.body273.lr.ph ], [ %315, %for.body273 ] - %arrayidx279 = getelementptr inbounds %struct.btMultibodyLink, ptr %300, i64 %indvars.iv634, i32 8, i64 %indvars.iv631 - %m_dofOffset282 = getelementptr inbounds %struct.btMultibodyLink, ptr %300, i64 %indvars.iv634, i32 9 - %303 = load i32, ptr %m_dofOffset282, align 8 - %304 = trunc i64 %indvars.iv631 to i32 - %add283 = add nsw i32 %303, %304 + %299 = phi ptr [ %.pre643, %for.body273.lr.ph ], [ %315, %for.body273 ] + %300 = phi <2 x float> [ %295, %for.body273.lr.ph ], [ %311, %for.body273 ] + %301 = phi <2 x float> [ %296, %for.body273.lr.ph ], [ %314, %for.body273 ] + %arrayidx279 = getelementptr inbounds %struct.btMultibodyLink, ptr %299, i64 %indvars.iv634, i32 8, i64 %indvars.iv631 + %m_dofOffset282 = getelementptr inbounds %struct.btMultibodyLink, ptr %299, i64 %indvars.iv634, i32 9 + %302 = load i32, ptr %m_dofOffset282, align 8 + %303 = trunc i64 %indvars.iv631 to i32 + %add283 = add nsw i32 %302, %303 %idxprom284 = sext i32 %add283 to i64 %arrayidx285 = getelementptr inbounds float, ptr %add.ptr178, i64 %idxprom284 - %305 = load float, ptr %arrayidx285, align 4, !noalias !171 + %304 = load float, ptr %arrayidx285, align 4, !noalias !171 %arrayidx7.i.i.i381 = getelementptr inbounds [4 x float], ptr %arrayidx279, i64 0, i64 2 - %306 = load float, ptr %arrayidx7.i.i.i381, align 4, !noalias !171 - %mul8.i.i.i382 = fmul float %305, %306 - %m_bottomVec.i386 = getelementptr inbounds %struct.btMultibodyLink, ptr %300, i64 %indvars.iv634, i32 8, i64 %indvars.iv631, i32 1 - %arrayidx7.i.i5.i390 = getelementptr inbounds %struct.btMultibodyLink, ptr %300, i64 %indvars.iv634, i32 8, i64 %indvars.iv631, i32 1, i32 0, i64 2 - %307 = load float, ptr %arrayidx7.i.i5.i390, align 4, !noalias !171 - %mul8.i.i6.i391 = fmul float %305, %307 - %308 = load <2 x float>, ptr %arrayidx279, align 4, !noalias !171 - %309 = insertelement <2 x float> poison, float %305, i64 0 - %310 = shufflevector <2 x float> %309, <2 x float> poison, <2 x i32> zeroinitializer - %311 = fmul <2 x float> %310, %308 - %312 = fadd <2 x float> %311, %301 - %add13.i.i404 = fadd float %mul8.i.i.i382, %299 - %313 = load <2 x float>, ptr %m_bottomVec.i386, align 4, !noalias !171 - %314 = fmul <2 x float> %310, %313 - store <2 x float> %312, ptr %arrayidx212, align 4 + %305 = load float, ptr %arrayidx7.i.i.i381, align 4, !noalias !171 + %mul8.i.i.i382 = fmul float %304, %305 + %m_bottomVec.i386 = getelementptr inbounds %struct.btMultibodyLink, ptr %299, i64 %indvars.iv634, i32 8, i64 %indvars.iv631, i32 1 + %arrayidx7.i.i5.i390 = getelementptr inbounds %struct.btMultibodyLink, ptr %299, i64 %indvars.iv634, i32 8, i64 %indvars.iv631, i32 1, i32 0, i64 2 + %306 = load float, ptr %arrayidx7.i.i5.i390, align 4, !noalias !171 + %mul8.i.i6.i391 = fmul float %304, %306 + %307 = load <2 x float>, ptr %arrayidx279, align 4, !noalias !171 + %308 = insertelement <2 x float> poison, float %304, i64 0 + %309 = shufflevector <2 x float> %308, <2 x float> poison, <2 x i32> zeroinitializer + %310 = fmul <2 x float> %309, %307 + %311 = fadd <2 x float> %310, %300 + %add13.i.i404 = fadd float %mul8.i.i.i382, %298 + %312 = load <2 x float>, ptr %m_bottomVec.i386, align 4, !noalias !171 + %313 = fmul <2 x float> %309, %312 + store <2 x float> %311, ptr %arrayidx212, align 4 store float %add13.i.i404, ptr %ref.tmp.sroa.2.0.m_topVec2.sroa_idx.i315, align 4 - %315 = fadd <2 x float> %314, %302 - store <2 x float> %315, ptr %m_bottomVec17.i, align 4 - %add13.i8.i413 = fadd float %mul8.i.i6.i391, %298 + %314 = fadd <2 x float> %313, %301 + store <2 x float> %314, ptr %m_bottomVec17.i, align 4 + %add13.i8.i413 = fadd float %mul8.i.i6.i391, %297 store float %add13.i8.i413, ptr %ref.tmp3.sroa.2.0.m_bottomVec17.sroa_idx.i, align 4 %indvars.iv.next632 = add nuw nsw i64 %indvars.iv631, 1 - %316 = load ptr, ptr %m_data.i.i.i267, align 8 - %m_dofCount271 = getelementptr inbounds %struct.btMultibodyLink, ptr %316, i64 %indvars.iv634, i32 24 - %317 = load i32, ptr %m_dofCount271, align 4 - %318 = sext i32 %317 to i64 - %cmp272 = icmp slt i64 %indvars.iv.next632, %318 + %315 = load ptr, ptr %m_data.i.i.i267, align 8 + %m_dofCount271 = getelementptr inbounds %struct.btMultibodyLink, ptr %315, i64 %indvars.iv634, i32 24 + %316 = load i32, ptr %m_dofCount271, align 4 + %317 = sext i32 %316 to i64 + %cmp272 = icmp slt i64 %indvars.iv.next632, %317 br i1 %cmp272, label %for.body273, label %for.inc293, !llvm.loop !174 for.inc293: ; preds = %for.body273, %if.end193, %for.end242, %_ZNK11btMultiBody30isLinkAndAllAncestorsKinematicEi.exit288.for.inc293_crit_edge, %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit - %indvars.iv.next635.pre-phi = phi i64 [ %.pre655, %_ZNK11btMultiBody30isLinkAndAllAncestorsKinematicEi.exit288.for.inc293_crit_edge ], [ %212, %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit ], [ %212, %for.end242 ], [ %212, %if.end193 ], [ %212, %for.body273 ] - %319 = phi ptr [ %204, %_ZNK11btMultiBody30isLinkAndAllAncestorsKinematicEi.exit288.for.inc293_crit_edge ], [ %.pre643, %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit ], [ %264, %for.end242 ], [ %264, %if.end193 ], [ %316, %for.body273 ] + %indvars.iv.next635.pre-phi = phi i64 [ %.pre655, %_ZNK11btMultiBody30isLinkAndAllAncestorsKinematicEi.exit288.for.inc293_crit_edge ], [ %211, %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit ], [ %211, %for.end242 ], [ %211, %if.end193 ], [ %211, %for.body273 ] + %318 = phi ptr [ %203, %_ZNK11btMultiBody30isLinkAndAllAncestorsKinematicEi.exit288.for.inc293_crit_edge ], [ %.pre643, %_ZNK11btMultiBody9mulMatrixEPKfS1_iiiiPf.exit ], [ %263, %for.end242 ], [ %263, %if.end193 ], [ %315, %for.body273 ] %exitcond639.not = icmp eq i64 %indvars.iv.next635.pre-phi, %wide.trip.count638 br i1 %exitcond639.not, label %for.end295.loopexit, label %for.body190, !llvm.loop !175 for.end295.loopexit: ; preds = %for.inc293 - %320 = load <2 x float>, ptr %add.ptr548555, align 4 + %319 = load <2 x float>, ptr %add.ptr548555, align 4 %arrayidx12.i.i421.phi.trans.insert = getelementptr %class.btVector3, ptr %.pn, i64 2, i32 0, i64 2 %.pre653 = load float, ptr %arrayidx12.i.i421.phi.trans.insert, align 4 br label %for.end295 for.end295: ; preds = %for.end295.loopexit, %if.end186 - %321 = phi float [ %.pre653, %for.end295.loopexit ], [ %202, %if.end186 ] - %322 = phi <2 x float> [ %320, %for.end295.loopexit ], [ %203, %if.end186 ] + %320 = phi float [ %.pre653, %for.end295.loopexit ], [ %201, %if.end186 ] + %321 = phi <2 x float> [ %319, %for.end295.loopexit ], [ %202, %if.end186 ] %arrayidx3.i = getelementptr inbounds [3 x %class.btVector3], ptr %34, i64 0, i64 1 %arrayidx6.i = getelementptr inbounds [3 x %class.btVector3], ptr %34, i64 0, i64 2 %arrayidx.i3.i = getelementptr inbounds [4 x float], ptr %34, i64 0, i64 2 %arrayidx.i4.i = getelementptr inbounds [3 x %class.btVector3], ptr %34, i64 0, i64 1, i32 0, i64 2 %arrayidx.i5.i = getelementptr inbounds [3 x %class.btVector3], ptr %34, i64 0, i64 2, i32 0, i64 2 - %323 = load float, ptr %arrayidx.i3.i, align 4, !noalias !176 - %324 = load float, ptr %arrayidx.i4.i, align 4, !noalias !176 - %325 = load float, ptr %arrayidx.i5.i, align 4, !noalias !176 - %326 = extractelement <2 x float> %322, i64 1 - %mul8.i13.i = fmul float %324, %326 - %327 = extractelement <2 x float> %322, i64 0 - %328 = tail call float @llvm.fmuladd.f32(float %323, float %327, float %mul8.i13.i) - %329 = tail call noundef float @llvm.fmuladd.f32(float %325, float %321, float %328) - %330 = load <2 x float>, ptr %34, align 4, !noalias !176 - %331 = load <2 x float>, ptr %arrayidx3.i, align 4, !noalias !176 - %332 = load <2 x float>, ptr %arrayidx6.i, align 4, !noalias !176 - %333 = shufflevector <2 x float> %322, <2 x float> poison, <2 x i32> - %334 = fmul <2 x float> %331, %333 - %335 = shufflevector <2 x float> %322, <2 x float> poison, <2 x i32> zeroinitializer - %336 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %330, <2 x float> %335, <2 x float> %334) - %337 = insertelement <2 x float> poison, float %321, i64 0 - %338 = shufflevector <2 x float> %337, <2 x float> poison, <2 x i32> zeroinitializer - %339 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %332, <2 x float> %338, <2 x float> %336) - store <2 x float> %339, ptr %output, align 4 + %322 = load float, ptr %arrayidx.i3.i, align 4, !noalias !176 + %323 = load float, ptr %arrayidx.i4.i, align 4, !noalias !176 + %324 = load float, ptr %arrayidx.i5.i, align 4, !noalias !176 + %325 = extractelement <2 x float> %321, i64 1 + %mul8.i13.i = fmul float %323, %325 + %326 = extractelement <2 x float> %321, i64 0 + %327 = tail call float @llvm.fmuladd.f32(float %322, float %326, float %mul8.i13.i) + %328 = tail call noundef float @llvm.fmuladd.f32(float %324, float %320, float %327) + %329 = load <2 x float>, ptr %34, align 4, !noalias !176 + %330 = load <2 x float>, ptr %arrayidx3.i, align 4, !noalias !176 + %331 = load <2 x float>, ptr %arrayidx6.i, align 4, !noalias !176 + %332 = shufflevector <2 x float> %321, <2 x float> poison, <2 x i32> + %333 = fmul <2 x float> %330, %332 + %334 = shufflevector <2 x float> %321, <2 x float> poison, <2 x i32> zeroinitializer + %335 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %329, <2 x float> %334, <2 x float> %333) + %336 = insertelement <2 x float> poison, float %320, i64 0 + %337 = shufflevector <2 x float> %336, <2 x float> poison, <2 x i32> zeroinitializer + %338 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %331, <2 x float> %337, <2 x float> %335) + store <2 x float> %338, ptr %output, align 4 %arrayidx310 = getelementptr inbounds float, ptr %output, i64 2 - store float %329, ptr %arrayidx310, align 4 - %340 = load float, ptr %arrayidx.i3.i, align 4, !noalias !179 - %341 = load float, ptr %arrayidx.i4.i, align 4, !noalias !179 - %342 = load float, ptr %arrayidx.i5.i, align 4, !noalias !179 + store float %328, ptr %arrayidx310, align 4 + %339 = load float, ptr %arrayidx.i3.i, align 4, !noalias !179 + %340 = load float, ptr %arrayidx.i4.i, align 4, !noalias !179 + %341 = load float, ptr %arrayidx.i5.i, align 4, !noalias !179 %m_bottomVec.i442 = getelementptr %class.btVector3, ptr %.pn, i64 3 - %343 = load float, ptr %m_bottomVec.i442, align 4 + %342 = load float, ptr %m_bottomVec.i442, align 4 %arrayidx7.i.i444 = getelementptr %class.btVector3, ptr %.pn, i64 3, i32 0, i64 1 - %344 = load float, ptr %arrayidx7.i.i444, align 4 + %343 = load float, ptr %arrayidx7.i.i444, align 4 %arrayidx12.i.i447 = getelementptr %class.btVector3, ptr %.pn, i64 3, i32 0, i64 2 - %345 = load float, ptr %arrayidx12.i.i447, align 4 - %mul8.i13.i454 = fmul float %341, %344 - %346 = tail call float @llvm.fmuladd.f32(float %340, float %343, float %mul8.i13.i454) - %347 = tail call noundef float @llvm.fmuladd.f32(float %342, float %345, float %346) + %344 = load float, ptr %arrayidx12.i.i447, align 4 + %mul8.i13.i454 = fmul float %340, %343 + %345 = tail call float @llvm.fmuladd.f32(float %339, float %342, float %mul8.i13.i454) + %346 = tail call noundef float @llvm.fmuladd.f32(float %341, float %344, float %345) %arrayidx320 = getelementptr inbounds float, ptr %output, i64 3 - %348 = load <2 x float>, ptr %34, align 4, !noalias !179 - %349 = load <2 x float>, ptr %arrayidx3.i, align 4, !noalias !179 - %350 = load <2 x float>, ptr %arrayidx6.i, align 4, !noalias !179 - %351 = insertelement <2 x float> poison, float %344, i64 0 - %352 = shufflevector <2 x float> %351, <2 x float> poison, <2 x i32> zeroinitializer - %353 = fmul <2 x float> %349, %352 - %354 = insertelement <2 x float> poison, float %343, i64 0 - %355 = shufflevector <2 x float> %354, <2 x float> poison, <2 x i32> zeroinitializer - %356 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %348, <2 x float> %355, <2 x float> %353) - %357 = insertelement <2 x float> poison, float %345, i64 0 - %358 = shufflevector <2 x float> %357, <2 x float> poison, <2 x i32> zeroinitializer - %359 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %350, <2 x float> %358, <2 x float> %356) - store <2 x float> %359, ptr %arrayidx320, align 4 + %347 = load <2 x float>, ptr %34, align 4, !noalias !179 + %348 = load <2 x float>, ptr %arrayidx3.i, align 4, !noalias !179 + %349 = load <2 x float>, ptr %arrayidx6.i, align 4, !noalias !179 + %350 = insertelement <2 x float> poison, float %343, i64 0 + %351 = shufflevector <2 x float> %350, <2 x float> poison, <2 x i32> zeroinitializer + %352 = fmul <2 x float> %348, %351 + %353 = insertelement <2 x float> poison, float %342, i64 0 + %354 = shufflevector <2 x float> %353, <2 x float> poison, <2 x i32> zeroinitializer + %355 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %347, <2 x float> %354, <2 x float> %352) + %356 = insertelement <2 x float> poison, float %344, i64 0 + %357 = shufflevector <2 x float> %356, <2 x float> poison, <2 x i32> zeroinitializer + %358 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %349, <2 x float> %357, <2 x float> %355) + store <2 x float> %358, ptr %arrayidx320, align 4 %arrayidx326 = getelementptr inbounds float, ptr %output, i64 5 - store float %347, ptr %arrayidx326, align 4 + store float %346, ptr %arrayidx326, align 4 ret void } diff --git a/bench/bullet3/optimized/btReducedDeformableBody.ll b/bench/bullet3/optimized/btReducedDeformableBody.ll index 3535d3d6260..3b698554657 100644 --- a/bench/bullet3/optimized/btReducedDeformableBody.ll +++ b/bench/bullet3/optimized/btReducedDeformableBody.ll @@ -6201,63 +6201,60 @@ for.body43: ; preds = %for.body43.lr.ph, % invoke.cont86.preheader: ; preds = %for.body43 %arrayidx.i342.phi.trans.insert = getelementptr inbounds %class.btVector3, ptr %call.i.i.i.i193, i64 %indvars.iv665 - %.pre691 = load float, ptr %arrayidx.i342.phi.trans.insert, align 4 - %arrayidx7.i344 = getelementptr inbounds [4 x float], ptr %arrayidx.i342.phi.trans.insert, i64 0, i64 1 + %213 = load <2 x float>, ptr %arrayidx.i342.phi.trans.insert, align 4 %arrayidx12.i346 = getelementptr inbounds [4 x float], ptr %arrayidx.i342.phi.trans.insert, i64 0, i64 2 br label %invoke.cont86 invoke.cont86: ; preds = %invoke.cont86.preheader, %invoke.cont86 - %213 = phi float [ %.pre691, %invoke.cont86.preheader ], [ %290, %invoke.cont86 ] %indvars.iv661 = phi i64 [ 0, %invoke.cont86.preheader ], [ %indvars.iv.next662, %invoke.cont86 ] - %214 = load ptr, ptr %m_data.i, align 8 - %arrayidx.i199 = getelementptr inbounds %class.btVector3, ptr %214, i64 %indvars.iv661 + %214 = phi <2 x float> [ %213, %invoke.cont86.preheader ], [ %284, %invoke.cont86 ] + %215 = load ptr, ptr %m_data.i, align 8 + %arrayidx.i199 = getelementptr inbounds %class.btVector3, ptr %215, i64 %indvars.iv661 %arrayidx.i.i200 = getelementptr inbounds [4 x float], ptr %arrayidx.i199, i64 0, i64 2 - %215 = load float, ptr %arrayidx.i.i200, align 4, !noalias !85 - %fneg.i201 = fneg float %215 + %216 = load float, ptr %arrayidx.i.i200, align 4, !noalias !85 + %fneg.i201 = fneg float %216 %arrayidx.i6.i202 = getelementptr inbounds [4 x float], ptr %arrayidx.i199, i64 0, i64 1 - %216 = load float, ptr %arrayidx.i6.i202, align 4, !noalias !85 - %217 = load float, ptr %arrayidx.i199, align 4, !noalias !85 - %fneg12.i206 = fneg float %217 - %fneg17.i211 = fneg float %216 - %mul7.i48.i237 = fmul float %rotation.sroa.45.32.copyload, %215 - %218 = tail call float @llvm.fmuladd.f32(float %rotation.sroa.38615.32.copyload, float 0.000000e+00, float %mul7.i48.i237) - %219 = tail call noundef float @llvm.fmuladd.f32(float %fneg17.i211, float %rotation.sroa.51.32.copyload, float %218) - %220 = tail call float @llvm.fmuladd.f32(float %fneg.i201, float %rotation.sroa.38615.32.copyload, float %mul7.i55.i239) - %221 = tail call noundef float @llvm.fmuladd.f32(float %217, float %rotation.sroa.51.32.copyload, float %220) + %217 = load float, ptr %arrayidx.i6.i202, align 4, !noalias !85 + %218 = load float, ptr %arrayidx.i199, align 4, !noalias !85 + %fneg12.i206 = fneg float %218 + %fneg17.i211 = fneg float %217 + %mul7.i48.i237 = fmul float %rotation.sroa.45.32.copyload, %216 + %219 = tail call float @llvm.fmuladd.f32(float %rotation.sroa.38615.32.copyload, float 0.000000e+00, float %mul7.i48.i237) + %220 = tail call noundef float @llvm.fmuladd.f32(float %fneg17.i211, float %rotation.sroa.51.32.copyload, float %219) + %221 = tail call float @llvm.fmuladd.f32(float %fneg.i201, float %rotation.sroa.38615.32.copyload, float %mul7.i55.i239) + %222 = tail call noundef float @llvm.fmuladd.f32(float %218, float %rotation.sroa.51.32.copyload, float %221) %mul7.i62.i240 = fmul float %rotation.sroa.45.32.copyload, %fneg12.i206 - %222 = tail call float @llvm.fmuladd.f32(float %216, float %rotation.sroa.38615.32.copyload, float %mul7.i62.i240) - %223 = tail call noundef float @llvm.fmuladd.f32(float %rotation.sroa.51.32.copyload, float 0.000000e+00, float %222) - %224 = load ptr, ptr %m_data.i42, align 8 - %arrayidx.i254 = getelementptr inbounds float, ptr %224, i64 %indvars.iv661 - %225 = load float, ptr %arrayidx.i254, align 4, !noalias !88 - %mul25.i = fmul float %219, %225 - %mul29.i = fmul float %221, %225 - %mul33.i = fmul float %225, %223 - %226 = load ptr, ptr %m_data.i83, align 8 - %m_data.i270 = getelementptr inbounds %class.btAlignedObjectArray.12, ptr %226, i64 %indvars.iv665, i32 5 - %227 = load ptr, ptr %m_data.i270, align 8 - %228 = mul i64 %indvars.iv661, 3 - %idxprom.i271 = and i64 %228, 4294967295 - %arrayidx.i272 = getelementptr float, ptr %227, i64 %idxprom.i271 + %223 = tail call float @llvm.fmuladd.f32(float %217, float %rotation.sroa.38615.32.copyload, float %mul7.i62.i240) + %224 = tail call noundef float @llvm.fmuladd.f32(float %rotation.sroa.51.32.copyload, float 0.000000e+00, float %223) + %225 = load ptr, ptr %m_data.i42, align 8 + %arrayidx.i254 = getelementptr inbounds float, ptr %225, i64 %indvars.iv661 + %226 = load float, ptr %arrayidx.i254, align 4, !noalias !88 + %mul25.i = fmul float %220, %226 + %mul29.i = fmul float %222, %226 + %mul33.i = fmul float %226, %224 + %227 = load ptr, ptr %m_data.i83, align 8 + %228 = mul nuw nsw i64 %indvars.iv661, 3 + %m_data.i270 = getelementptr inbounds %class.btAlignedObjectArray.12, ptr %227, i64 %indvars.iv665, i32 5 + %229 = load ptr, ptr %m_data.i270, align 8 + %arrayidx.i272 = getelementptr float, ptr %229, i64 %228 %arrayidx.i278 = getelementptr float, ptr %arrayidx.i272, i64 1 %arrayidx.i284 = getelementptr float, ptr %arrayidx.i272, i64 2 - %229 = load float, ptr %arrayidx.i272, align 4 - %230 = load float, ptr %arrayidx.i278, align 4 - %231 = load float, ptr %arrayidx.i284, align 4 + %230 = load float, ptr %arrayidx.i272, align 4 + %231 = load float, ptr %arrayidx.i278, align 4 + %232 = load float, ptr %arrayidx.i284, align 4 %mul7.i48.i307 = fmul float %rotation.sroa.19599.16.copyload, %mul29.i - %232 = tail call float @llvm.fmuladd.f32(float %rotation.sroa.0.0.copyload, float %mul25.i, float %mul7.i48.i307) - %233 = tail call noundef float @llvm.fmuladd.f32(float %rotation.sroa.38615.32.copyload, float %mul33.i, float %232) + %233 = tail call float @llvm.fmuladd.f32(float %rotation.sroa.0.0.copyload, float %mul25.i, float %mul7.i48.i307) + %234 = tail call noundef float @llvm.fmuladd.f32(float %rotation.sroa.38615.32.copyload, float %mul33.i, float %233) %mul7.i55.i309 = fmul float %rotation.sroa.26.16.copyload, %mul29.i - %234 = tail call float @llvm.fmuladd.f32(float %rotation.sroa.7.0.copyload, float %mul25.i, float %mul7.i55.i309) - %235 = tail call noundef float @llvm.fmuladd.f32(float %rotation.sroa.45.32.copyload, float %mul33.i, float %234) + %235 = tail call float @llvm.fmuladd.f32(float %rotation.sroa.7.0.copyload, float %mul25.i, float %mul7.i55.i309) + %236 = tail call noundef float @llvm.fmuladd.f32(float %rotation.sroa.45.32.copyload, float %mul33.i, float %235) %mul7.i62.i310 = fmul float %rotation.sroa.32.16.copyload, %mul29.i - %236 = tail call float @llvm.fmuladd.f32(float %rotation.sroa.13.0.copyload, float %mul25.i, float %mul7.i62.i310) - %237 = tail call noundef float @llvm.fmuladd.f32(float %rotation.sroa.51.32.copyload, float %mul33.i, float %236) - %mul8.i13.i333 = fmul float %230, %235 - %238 = tail call float @llvm.fmuladd.f32(float %233, float %229, float %mul8.i13.i333) - %239 = tail call noundef float @llvm.fmuladd.f32(float %237, float %231, float %238) - %240 = load float, ptr %arrayidx7.i344, align 4 - %241 = insertelement <2 x float> poison, float %215, i64 0 + %237 = tail call float @llvm.fmuladd.f32(float %rotation.sroa.13.0.copyload, float %mul25.i, float %mul7.i62.i310) + %238 = tail call noundef float @llvm.fmuladd.f32(float %rotation.sroa.51.32.copyload, float %mul33.i, float %237) + %mul8.i13.i333 = fmul float %231, %236 + %239 = tail call float @llvm.fmuladd.f32(float %234, float %230, float %mul8.i13.i333) + %240 = tail call noundef float @llvm.fmuladd.f32(float %238, float %232, float %239) + %241 = insertelement <2 x float> poison, float %216, i64 0 %242 = shufflevector <2 x float> %241, <2 x float> poison, <2 x i32> zeroinitializer %243 = fmul <2 x float> %143, %242 %244 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %148, <2 x float> zeroinitializer, <2 x float> %243) @@ -6267,17 +6264,17 @@ invoke.cont86: ; preds = %invoke.cont86.prehe %248 = insertelement <2 x float> poison, float %fneg.i201, i64 0 %249 = shufflevector <2 x float> %248, <2 x float> poison, <2 x i32> zeroinitializer %250 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %249, <2 x float> %148, <2 x float> %199) - %251 = insertelement <2 x float> poison, float %217, i64 0 + %251 = insertelement <2 x float> poison, float %218, i64 0 %252 = shufflevector <2 x float> %251, <2 x float> poison, <2 x i32> zeroinitializer %253 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %252, <2 x float> %153, <2 x float> %250) %254 = insertelement <2 x float> poison, float %fneg12.i206, i64 0 %255 = shufflevector <2 x float> %254, <2 x float> poison, <2 x i32> zeroinitializer %256 = fmul <2 x float> %143, %255 - %257 = insertelement <2 x float> poison, float %216, i64 0 + %257 = insertelement <2 x float> poison, float %217, i64 0 %258 = shufflevector <2 x float> %257, <2 x float> poison, <2 x i32> zeroinitializer %259 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %258, <2 x float> %148, <2 x float> %256) %260 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %153, <2 x float> zeroinitializer, <2 x float> %259) - %261 = insertelement <2 x float> poison, float %225, i64 0 + %261 = insertelement <2 x float> poison, float %226, i64 0 %262 = shufflevector <2 x float> %261, <2 x float> poison, <2 x i32> zeroinitializer %263 = fmul <2 x float> %247, %262 %264 = fmul <2 x float> %253, %262 @@ -6291,40 +6288,37 @@ invoke.cont86: ; preds = %invoke.cont86.prehe %272 = fmul <2 x float> %203, %264 %273 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %202, <2 x float> %263, <2 x float> %272) %274 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %201, <2 x float> %265, <2 x float> %273) - %275 = insertelement <2 x float> poison, float %230, i64 0 + %275 = insertelement <2 x float> poison, float %231, i64 0 %276 = shufflevector <2 x float> %275, <2 x float> poison, <2 x i32> zeroinitializer %277 = fmul <2 x float> %271, %276 - %278 = insertelement <2 x float> poison, float %229, i64 0 + %278 = insertelement <2 x float> poison, float %230, i64 0 %279 = shufflevector <2 x float> %278, <2 x float> poison, <2 x i32> zeroinitializer %280 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %268, <2 x float> %279, <2 x float> %277) - %281 = insertelement <2 x float> poison, float %231, i64 0 + %281 = insertelement <2 x float> poison, float %232, i64 0 %282 = shufflevector <2 x float> %281, <2 x float> poison, <2 x i32> zeroinitializer %283 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %274, <2 x float> %282, <2 x float> %280) - %284 = insertelement <2 x float> poison, float %213, i64 0 - %285 = insertelement <2 x float> %284, float %240, i64 1 - %286 = fadd <2 x float> %283, %285 - store <2 x float> %286, ptr %arrayidx.i342.phi.trans.insert, align 4 - %287 = load float, ptr %arrayidx12.i346, align 4 - %add13.i = fadd float %239, %287 + %284 = fadd <2 x float> %283, %214 + store <2 x float> %284, ptr %arrayidx.i342.phi.trans.insert, align 4 + %285 = load float, ptr %arrayidx12.i346, align 4 + %add13.i = fadd float %240, %285 store float %add13.i, ptr %arrayidx12.i346, align 4 %indvars.iv.next662 = add nuw nsw i64 %indvars.iv661, 1 - %288 = load i32, ptr %m_nFull, align 4 - %289 = sext i32 %288 to i64 - %cmp49 = icmp slt i64 %indvars.iv.next662, %289 - %290 = extractelement <2 x float> %286, i64 0 + %286 = load i32, ptr %m_nFull, align 4 + %287 = sext i32 %286 to i64 + %cmp49 = icmp slt i64 %indvars.iv.next662, %287 br i1 %cmp49, label %invoke.cont86, label %for.inc96, !llvm.loop !91 lpad: ; preds = %if.then.i.i.i - %291 = landingpad { ptr, i32 } + %288 = landingpad { ptr, i32 } cleanup call void @_ZN20btAlignedObjectArrayI9btVector3ED2Ev(ptr noundef nonnull align 8 dereferenceable(25) %omega_helper) #28 - resume { ptr, i32 } %291 + resume { ptr, i32 } %288 for.inc96: ; preds = %invoke.cont86, %for.body43 %indvars.iv.next666 = add nuw nsw i64 %indvars.iv665, 1 - %292 = load i32, ptr %m_nReduced, align 8 - %293 = sext i32 %292 to i64 - %cmp42 = icmp slt i64 %indvars.iv.next666, %293 + %289 = load i32, ptr %m_nReduced, align 8 + %290 = sext i32 %289 to i64 + %cmp42 = icmp slt i64 %indvars.iv.next666, %290 br i1 %cmp42, label %for.body43, label %invoke.cont99, !llvm.loop !92 invoke.cont99.thread: ; preds = %_ZN20btAlignedObjectArrayI9btVector3E6resizeEiRKS0_.exit, %_ZN20btAlignedObjectArrayI9btVector3E6resizeEiRKS0_.exit.thread @@ -6334,14 +6328,14 @@ invoke.cont99.thread: ; preds = %_ZN20btAlignedObjec invoke.cont99: ; preds = %for.inc96 call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(48) %sum_multiply_A, i8 0, i64 48, i1 false) - %cmp112640 = icmp sgt i32 %292, 0 - %294 = load ptr, ptr %m_data.i89, align 8 - %295 = load ptr, ptr %m_data.i95, align 8 + %cmp112640 = icmp sgt i32 %289, 0 + %291 = load ptr, ptr %m_data.i89, align 8 + %292 = load ptr, ptr %m_data.i95, align 8 br i1 %cmp112640, label %for.cond106.preheader.us.preheader, label %invoke.cont160 for.cond106.preheader.us.preheader: ; preds = %invoke.cont99 - %296 = sext i32 %mul to i64 - %wide.trip.count671 = zext nneg i32 %292 to i64 + %293 = sext i32 %mul to i64 + %wide.trip.count671 = zext nneg i32 %289 to i64 br label %for.cond106.preheader.us for.cond106.preheader.us: ; preds = %for.cond106.preheader.us.preheader, %for.inc148.split.us.us @@ -6352,32 +6346,32 @@ for.cond106.preheader.us: ; preds = %for.cond106.prehead for.cond110.preheader.us.us: ; preds = %for.cond110.for.inc145_crit_edge.us.us, %for.cond106.preheader.us %indvars.iv673 = phi i64 [ %indvars.iv.next674, %for.cond110.for.inc145_crit_edge.us.us ], [ 0, %for.cond106.preheader.us ] - %297 = add nsw i64 %indvars.iv673, %296 + %294 = add nsw i64 %indvars.iv673, %293 %arrayidx141.us.us = getelementptr inbounds float, ptr %arrayidx.i363.us, i64 %indvars.iv673 %arrayidx141.promoted.us.us = load float, ptr %arrayidx141.us.us, align 4 br label %for.body113.us.us for.body113.us.us: ; preds = %for.body113.us.us, %for.cond110.preheader.us.us %indvars.iv668 = phi i64 [ %indvars.iv.next669, %for.body113.us.us ], [ 0, %for.cond110.preheader.us.us ] - %298 = phi float [ %304, %for.body113.us.us ], [ %arrayidx141.promoted.us.us, %for.cond110.preheader.us.us ] + %295 = phi float [ %301, %for.body113.us.us ], [ %arrayidx141.promoted.us.us, %for.cond110.preheader.us.us ] %gep.us.us = getelementptr inbounds %class.btVector3, ptr %invariant.gep.us, i64 %indvars.iv668 - %299 = load float, ptr %gep.us.us, align 4 - %m_data.i353.us.us = getelementptr inbounds %class.btAlignedObjectArray.12, ptr %294, i64 %indvars.iv668, i32 5 - %300 = load ptr, ptr %m_data.i353.us.us, align 8 - %arrayidx.i355.us.us = getelementptr inbounds float, ptr %300, i64 %297 - %301 = load float, ptr %arrayidx.i355.us.us, align 4 - %m_data.i359.us.us = getelementptr inbounds %class.btAlignedObjectArray.12, ptr %295, i64 %indvars.iv668, i32 5 - %302 = load ptr, ptr %m_data.i359.us.us, align 8 - %arrayidx.i361.us.us = getelementptr inbounds float, ptr %302, i64 %297 - %303 = load float, ptr %arrayidx.i361.us.us, align 4 - %add134.us.us = fadd float %301, %303 - %304 = tail call float @llvm.fmuladd.f32(float %299, float %add134.us.us, float %298) + %296 = load float, ptr %gep.us.us, align 4 + %m_data.i353.us.us = getelementptr inbounds %class.btAlignedObjectArray.12, ptr %291, i64 %indvars.iv668, i32 5 + %297 = load ptr, ptr %m_data.i353.us.us, align 8 + %arrayidx.i355.us.us = getelementptr inbounds float, ptr %297, i64 %294 + %298 = load float, ptr %arrayidx.i355.us.us, align 4 + %m_data.i359.us.us = getelementptr inbounds %class.btAlignedObjectArray.12, ptr %292, i64 %indvars.iv668, i32 5 + %299 = load ptr, ptr %m_data.i359.us.us, align 8 + %arrayidx.i361.us.us = getelementptr inbounds float, ptr %299, i64 %294 + %300 = load float, ptr %arrayidx.i361.us.us, align 4 + %add134.us.us = fadd float %298, %300 + %301 = tail call float @llvm.fmuladd.f32(float %296, float %add134.us.us, float %295) %indvars.iv.next669 = add nuw nsw i64 %indvars.iv668, 1 %exitcond672.not = icmp eq i64 %indvars.iv.next669, %wide.trip.count671 br i1 %exitcond672.not, label %for.cond110.for.inc145_crit_edge.us.us, label %for.body113.us.us, !llvm.loop !93 for.cond110.for.inc145_crit_edge.us.us: ; preds = %for.body113.us.us - store float %304, ptr %arrayidx141.us.us, align 4 + store float %301, ptr %arrayidx141.us.us, align 4 %indvars.iv.next674 = add nuw nsw i64 %indvars.iv673, 1 %exitcond677.not = icmp eq i64 %indvars.iv.next674, 3 br i1 %exitcond677.not, label %for.inc148.split.us.us, label %for.cond110.preheader.us.us, !llvm.loop !94 @@ -6388,11 +6382,11 @@ for.inc148.split.us.us: ; preds = %for.cond110.for.inc br i1 %exitcond681.not, label %invoke.cont160, label %for.cond106.preheader.us, !llvm.loop !95 invoke.cont160: ; preds = %for.inc148.split.us.us, %invoke.cont99, %invoke.cont99.thread - %305 = phi ptr [ %.ph, %invoke.cont99.thread ], [ %call.i.i.i.i193, %invoke.cont99 ], [ %call.i.i.i.i193, %for.inc148.split.us.us ] + %302 = phi ptr [ %.ph, %invoke.cont99.thread ], [ %call.i.i.i.i193, %invoke.cont99 ], [ %call.i.i.i.i193, %for.inc148.split.us.us ] %m_rigidOnly = getelementptr inbounds %class.btReducedDeformableBody, ptr %this, i64 0, i32 1 - %306 = load i8, ptr %m_rigidOnly, align 8 - %307 = and i8 %306, 1 - %tobool.not = icmp eq i8 %307, 0 + %303 = load i8, ptr %m_rigidOnly, align 8 + %304 = and i8 %303, 1 + %tobool.not = icmp eq i8 %304, 0 br i1 %tobool.not, label %cond.false163, label %cond.true161 cond.true161: ; preds = %invoke.cont160 @@ -6405,185 +6399,185 @@ cond.true161: ; preds = %invoke.cont160 cond.false163: ; preds = %invoke.cont160 %arrayidx.i5.i24.i412 = getelementptr inbounds [3 x %class.btVector3], ptr %sum_multiply_A, i64 0, i64 2, i32 0, i64 2 - %308 = load float, ptr %arrayidx.i5.i24.i412, align 4, !noalias !96 - %309 = load float, ptr %arrayidx.i5.i24.i, align 8, !noalias !99 - %310 = load float, ptr %arrayidx.i.i20.i, align 8, !noalias !99 - %311 = load float, ptr %arrayidx.i3.i21.i, align 8, !noalias !99 + %305 = load float, ptr %arrayidx.i5.i24.i412, align 4, !noalias !96 + %306 = load float, ptr %arrayidx.i5.i24.i, align 8, !noalias !99 + %307 = load float, ptr %arrayidx.i.i20.i, align 8, !noalias !99 + %308 = load float, ptr %arrayidx.i3.i21.i, align 8, !noalias !99 %arrayidx.i.i20.i409 = getelementptr inbounds [4 x float], ptr %sum_multiply_A, i64 0, i64 2 - %312 = load float, ptr %arrayidx.i.i20.i409, align 4, !noalias !96 - %313 = load float, ptr %arrayidx9.i.i, align 8, !noalias !99 - %314 = load float, ptr %m_interpolateInvInertiaTensorWorld, align 8, !noalias !99 - %315 = load float, ptr %arrayidx4.i.i, align 8, !noalias !99 + %309 = load float, ptr %arrayidx.i.i20.i409, align 4, !noalias !96 + %310 = load float, ptr %arrayidx9.i.i, align 8, !noalias !99 + %311 = load float, ptr %m_interpolateInvInertiaTensorWorld, align 8, !noalias !99 + %312 = load float, ptr %arrayidx4.i.i, align 8, !noalias !99 %arrayidx.i3.i21.i410 = getelementptr inbounds [3 x %class.btVector3], ptr %sum_multiply_A, i64 0, i64 1, i32 0, i64 2 - %316 = load float, ptr %arrayidx.i3.i21.i410, align 4, !noalias !96 - %317 = load float, ptr %arrayidx.i5.i.i, align 4, !noalias !99 - %318 = load float, ptr %arrayidx.i.i17.i, align 4, !noalias !99 - %319 = load float, ptr %arrayidx.i3.i18.i, align 4, !noalias !99 + %313 = load float, ptr %arrayidx.i3.i21.i410, align 4, !noalias !96 + %314 = load float, ptr %arrayidx.i5.i.i, align 4, !noalias !99 + %315 = load float, ptr %arrayidx.i.i17.i, align 4, !noalias !99 + %316 = load float, ptr %arrayidx.i3.i18.i, align 4, !noalias !99 %arrayidx9.i.i403 = getelementptr inbounds [3 x %class.btVector3], ptr %sum_multiply_A, i64 0, i64 2 - %320 = load float, ptr %arrayidx9.i.i403, align 4, !noalias !96 - %321 = load float, ptr %sum_multiply_A, align 4, !noalias !96 + %317 = load float, ptr %arrayidx9.i.i403, align 4, !noalias !96 + %318 = load float, ptr %sum_multiply_A, align 4, !noalias !96 %arrayidx4.i.i400 = getelementptr inbounds [3 x %class.btVector3], ptr %sum_multiply_A, i64 0, i64 1 - %322 = load float, ptr %arrayidx4.i.i400, align 4, !noalias !96 + %319 = load float, ptr %arrayidx4.i.i400, align 4, !noalias !96 %arrayidx.i5.i.i408 = getelementptr inbounds [3 x %class.btVector3], ptr %sum_multiply_A, i64 0, i64 2, i32 0, i64 1 - %323 = load float, ptr %arrayidx.i5.i.i408, align 4, !noalias !96 + %320 = load float, ptr %arrayidx.i5.i.i408, align 4, !noalias !96 %arrayidx.i.i17.i405 = getelementptr inbounds [4 x float], ptr %sum_multiply_A, i64 0, i64 1 - %324 = load float, ptr %arrayidx.i.i17.i405, align 4, !noalias !96 + %321 = load float, ptr %arrayidx.i.i17.i405, align 4, !noalias !96 %arrayidx.i3.i18.i406 = getelementptr inbounds [3 x %class.btVector3], ptr %sum_multiply_A, i64 0, i64 1, i32 0, i64 1 - %325 = load float, ptr %arrayidx.i3.i18.i406, align 4, !noalias !96 - %326 = insertelement <2 x float> poison, float %311, i64 0 + %322 = load float, ptr %arrayidx.i3.i18.i406, align 4, !noalias !96 + %323 = insertelement <2 x float> poison, float %308, i64 0 + %324 = shufflevector <2 x float> %323, <2 x float> poison, <2 x i32> zeroinitializer + %325 = fmul <2 x float> %43, %324 + %326 = insertelement <2 x float> poison, float %307, i64 0 %327 = shufflevector <2 x float> %326, <2 x float> poison, <2 x i32> zeroinitializer - %328 = fmul <2 x float> %43, %327 - %329 = insertelement <2 x float> poison, float %310, i64 0 + %328 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %327, <2 x float> %50, <2 x float> %325) + %329 = insertelement <2 x float> poison, float %306, i64 0 %330 = shufflevector <2 x float> %329, <2 x float> poison, <2 x i32> zeroinitializer - %331 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %330, <2 x float> %50, <2 x float> %328) - %332 = insertelement <2 x float> poison, float %309, i64 0 + %331 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %330, <2 x float> %54, <2 x float> %328) + %332 = insertelement <2 x float> poison, float %312, i64 0 %333 = shufflevector <2 x float> %332, <2 x float> poison, <2 x i32> zeroinitializer - %334 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %333, <2 x float> %54, <2 x float> %331) - %335 = insertelement <2 x float> poison, float %315, i64 0 + %334 = fmul <2 x float> %43, %333 + %335 = insertelement <2 x float> poison, float %311, i64 0 %336 = shufflevector <2 x float> %335, <2 x float> poison, <2 x i32> zeroinitializer - %337 = fmul <2 x float> %43, %336 - %338 = insertelement <2 x float> poison, float %314, i64 0 + %337 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %336, <2 x float> %50, <2 x float> %334) + %338 = insertelement <2 x float> poison, float %310, i64 0 %339 = shufflevector <2 x float> %338, <2 x float> poison, <2 x i32> zeroinitializer - %340 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %339, <2 x float> %50, <2 x float> %337) - %341 = insertelement <2 x float> poison, float %313, i64 0 + %340 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %339, <2 x float> %54, <2 x float> %337) + %341 = insertelement <2 x float> poison, float %316, i64 0 %342 = shufflevector <2 x float> %341, <2 x float> poison, <2 x i32> zeroinitializer - %343 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %342, <2 x float> %54, <2 x float> %340) - %344 = insertelement <2 x float> poison, float %319, i64 0 + %343 = fmul <2 x float> %43, %342 + %344 = insertelement <2 x float> poison, float %315, i64 0 %345 = shufflevector <2 x float> %344, <2 x float> poison, <2 x i32> zeroinitializer - %346 = fmul <2 x float> %43, %345 - %347 = insertelement <2 x float> poison, float %318, i64 0 + %346 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %345, <2 x float> %50, <2 x float> %343) + %347 = insertelement <2 x float> poison, float %314, i64 0 %348 = shufflevector <2 x float> %347, <2 x float> poison, <2 x i32> zeroinitializer - %349 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %348, <2 x float> %50, <2 x float> %346) - %350 = insertelement <2 x float> poison, float %317, i64 0 + %349 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %348, <2 x float> %54, <2 x float> %346) + %350 = insertelement <2 x float> poison, float %322, i64 0 %351 = shufflevector <2 x float> %350, <2 x float> poison, <2 x i32> zeroinitializer - %352 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %351, <2 x float> %54, <2 x float> %349) - %353 = insertelement <2 x float> poison, float %325, i64 0 + %352 = fmul <2 x float> %349, %351 + %353 = insertelement <2 x float> poison, float %321, i64 0 %354 = shufflevector <2 x float> %353, <2 x float> poison, <2 x i32> zeroinitializer - %355 = fmul <2 x float> %352, %354 - %356 = insertelement <2 x float> poison, float %324, i64 0 + %355 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %354, <2 x float> %340, <2 x float> %352) + %356 = insertelement <2 x float> poison, float %320, i64 0 %357 = shufflevector <2 x float> %356, <2 x float> poison, <2 x i32> zeroinitializer - %358 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %357, <2 x float> %343, <2 x float> %355) - %359 = insertelement <2 x float> poison, float %323, i64 0 - %360 = shufflevector <2 x float> %359, <2 x float> poison, <2 x i32> zeroinitializer - %361 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %360, <2 x float> %334, <2 x float> %358) - %362 = shufflevector <2 x float> %361, <2 x float> poison, <2 x i32> - %363 = fmul <2 x float> %143, %362 - %364 = insertelement <2 x float> poison, float %322, i64 0 + %358 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %357, <2 x float> %331, <2 x float> %355) + %359 = shufflevector <2 x float> %358, <2 x float> poison, <2 x i32> + %360 = fmul <2 x float> %143, %359 + %361 = insertelement <2 x float> poison, float %319, i64 0 + %362 = shufflevector <2 x float> %361, <2 x float> poison, <2 x i32> zeroinitializer + %363 = fmul <2 x float> %362, %349 + %364 = insertelement <2 x float> poison, float %318, i64 0 %365 = shufflevector <2 x float> %364, <2 x float> poison, <2 x i32> zeroinitializer - %366 = fmul <2 x float> %365, %352 - %367 = insertelement <2 x float> poison, float %321, i64 0 + %366 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %365, <2 x float> %340, <2 x float> %363) + %367 = insertelement <2 x float> poison, float %317, i64 0 %368 = shufflevector <2 x float> %367, <2 x float> poison, <2 x i32> zeroinitializer - %369 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %368, <2 x float> %343, <2 x float> %366) - %370 = insertelement <2 x float> poison, float %320, i64 0 - %371 = shufflevector <2 x float> %370, <2 x float> poison, <2 x i32> zeroinitializer - %372 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %371, <2 x float> %334, <2 x float> %369) - %373 = shufflevector <2 x float> %372, <2 x float> poison, <2 x i32> - %374 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %148, <2 x float> %373, <2 x float> %363) - %375 = insertelement <2 x float> poison, float %316, i64 0 + %369 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %368, <2 x float> %331, <2 x float> %366) + %370 = shufflevector <2 x float> %369, <2 x float> poison, <2 x i32> + %371 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %148, <2 x float> %370, <2 x float> %360) + %372 = insertelement <2 x float> poison, float %313, i64 0 + %373 = shufflevector <2 x float> %372, <2 x float> poison, <2 x i32> zeroinitializer + %374 = fmul <2 x float> %373, %349 + %375 = insertelement <2 x float> poison, float %309, i64 0 %376 = shufflevector <2 x float> %375, <2 x float> poison, <2 x i32> zeroinitializer - %377 = fmul <2 x float> %376, %352 - %378 = insertelement <2 x float> poison, float %312, i64 0 + %377 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %376, <2 x float> %340, <2 x float> %374) + %378 = insertelement <2 x float> poison, float %305, i64 0 %379 = shufflevector <2 x float> %378, <2 x float> poison, <2 x i32> zeroinitializer - %380 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %379, <2 x float> %343, <2 x float> %377) - %381 = insertelement <2 x float> poison, float %308, i64 0 - %382 = shufflevector <2 x float> %381, <2 x float> poison, <2 x i32> zeroinitializer - %383 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %382, <2 x float> %334, <2 x float> %380) - %384 = shufflevector <2 x float> %383, <2 x float> poison, <2 x i32> - %385 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %153, <2 x float> %384, <2 x float> %374) - %386 = fadd <2 x float> %196, %385 - %387 = fmul <2 x float> %187, %361 - %388 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %189, <2 x float> %372, <2 x float> %387) - %389 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %197, <2 x float> %383, <2 x float> %388) - %390 = fadd <2 x float> %198, %389 - %391 = shufflevector <2 x float> %361, <2 x float> poison, <2 x i32> zeroinitializer - %392 = fmul <2 x float> %143, %391 - %393 = shufflevector <2 x float> %372, <2 x float> poison, <2 x i32> zeroinitializer - %394 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %148, <2 x float> %393, <2 x float> %392) - %395 = shufflevector <2 x float> %383, <2 x float> poison, <2 x i32> zeroinitializer - %396 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %153, <2 x float> %395, <2 x float> %394) - %397 = fadd <2 x float> %186, %396 - %mul7.i23.i375 = fmul float %311, %fneg.i - %398 = tail call float @llvm.fmuladd.f32(float %310, float 0.000000e+00, float %mul7.i23.i375) - %399 = tail call noundef float @llvm.fmuladd.f32(float %309, float %7, float %398) - %mul7.i.i366 = fmul float %315, %fneg.i - %400 = tail call float @llvm.fmuladd.f32(float %314, float 0.000000e+00, float %mul7.i.i366) - %401 = tail call noundef float @llvm.fmuladd.f32(float %313, float %7, float %400) - %mul7.i19.i371 = fmul float %319, %fneg.i - %402 = tail call float @llvm.fmuladd.f32(float %318, float 0.000000e+00, float %mul7.i19.i371) - %403 = tail call noundef float @llvm.fmuladd.f32(float %317, float %7, float %402) - %mul7.i23.i411 = fmul float %316, %403 - %404 = tail call float @llvm.fmuladd.f32(float %312, float %401, float %mul7.i23.i411) - %405 = tail call noundef float @llvm.fmuladd.f32(float %308, float %399, float %404) - %mul7.i.i402 = fmul float %322, %403 - %406 = tail call float @llvm.fmuladd.f32(float %321, float %401, float %mul7.i.i402) - %407 = tail call noundef float @llvm.fmuladd.f32(float %320, float %399, float %406) - %mul7.i19.i407 = fmul float %403, %325 - %408 = tail call float @llvm.fmuladd.f32(float %324, float %401, float %mul7.i19.i407) - %409 = tail call noundef float @llvm.fmuladd.f32(float %323, float %399, float %408) - %mul7.i23.i466 = fmul float %rotation.sroa.45.32.copyload, %409 - %410 = tail call float @llvm.fmuladd.f32(float %rotation.sroa.38615.32.copyload, float %407, float %mul7.i23.i466) - %411 = tail call noundef float @llvm.fmuladd.f32(float %rotation.sroa.51.32.copyload, float %405, float %410) - %add20.i = fadd float %158, %411 + %380 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %379, <2 x float> %331, <2 x float> %377) + %381 = shufflevector <2 x float> %380, <2 x float> poison, <2 x i32> + %382 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %153, <2 x float> %381, <2 x float> %371) + %383 = fadd <2 x float> %196, %382 + %384 = fmul <2 x float> %187, %358 + %385 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %189, <2 x float> %369, <2 x float> %384) + %386 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %197, <2 x float> %380, <2 x float> %385) + %387 = fadd <2 x float> %198, %386 + %388 = shufflevector <2 x float> %358, <2 x float> poison, <2 x i32> zeroinitializer + %389 = fmul <2 x float> %143, %388 + %390 = shufflevector <2 x float> %369, <2 x float> poison, <2 x i32> zeroinitializer + %391 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %148, <2 x float> %390, <2 x float> %389) + %392 = shufflevector <2 x float> %380, <2 x float> poison, <2 x i32> zeroinitializer + %393 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %153, <2 x float> %392, <2 x float> %391) + %394 = fadd <2 x float> %186, %393 + %mul7.i23.i375 = fmul float %308, %fneg.i + %395 = tail call float @llvm.fmuladd.f32(float %307, float 0.000000e+00, float %mul7.i23.i375) + %396 = tail call noundef float @llvm.fmuladd.f32(float %306, float %7, float %395) + %mul7.i.i366 = fmul float %312, %fneg.i + %397 = tail call float @llvm.fmuladd.f32(float %311, float 0.000000e+00, float %mul7.i.i366) + %398 = tail call noundef float @llvm.fmuladd.f32(float %310, float %7, float %397) + %mul7.i19.i371 = fmul float %316, %fneg.i + %399 = tail call float @llvm.fmuladd.f32(float %315, float 0.000000e+00, float %mul7.i19.i371) + %400 = tail call noundef float @llvm.fmuladd.f32(float %314, float %7, float %399) + %mul7.i23.i411 = fmul float %313, %400 + %401 = tail call float @llvm.fmuladd.f32(float %309, float %398, float %mul7.i23.i411) + %402 = tail call noundef float @llvm.fmuladd.f32(float %305, float %396, float %401) + %mul7.i.i402 = fmul float %319, %400 + %403 = tail call float @llvm.fmuladd.f32(float %318, float %398, float %mul7.i.i402) + %404 = tail call noundef float @llvm.fmuladd.f32(float %317, float %396, float %403) + %mul7.i19.i407 = fmul float %400, %322 + %405 = tail call float @llvm.fmuladd.f32(float %321, float %398, float %mul7.i19.i407) + %406 = tail call noundef float @llvm.fmuladd.f32(float %320, float %396, float %405) + %mul7.i23.i466 = fmul float %rotation.sroa.45.32.copyload, %406 + %407 = tail call float @llvm.fmuladd.f32(float %rotation.sroa.38615.32.copyload, float %404, float %mul7.i23.i466) + %408 = tail call noundef float @llvm.fmuladd.f32(float %rotation.sroa.51.32.copyload, float %402, float %407) + %add20.i = fadd float %158, %408 %add20.i520 = fadd float %sub26.i, %add20.i - %412 = fadd <2 x float> %98, %397 - %413 = fadd <2 x float> %99, %386 - %414 = fadd <2 x float> %100, %390 - %415 = insertelement <2 x float> poison, float %409, i64 0 + %409 = fadd <2 x float> %98, %394 + %410 = fadd <2 x float> %99, %383 + %411 = fadd <2 x float> %100, %387 + %412 = insertelement <2 x float> poison, float %406, i64 0 + %413 = shufflevector <2 x float> %412, <2 x float> poison, <2 x i32> zeroinitializer + %414 = fmul <2 x float> %143, %413 + %415 = insertelement <2 x float> poison, float %404, i64 0 %416 = shufflevector <2 x float> %415, <2 x float> poison, <2 x i32> zeroinitializer - %417 = fmul <2 x float> %143, %416 - %418 = insertelement <2 x float> poison, float %407, i64 0 + %417 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %148, <2 x float> %416, <2 x float> %414) + %418 = insertelement <2 x float> poison, float %402, i64 0 %419 = shufflevector <2 x float> %418, <2 x float> poison, <2 x i32> zeroinitializer - %420 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %148, <2 x float> %419, <2 x float> %417) - %421 = insertelement <2 x float> poison, float %405, i64 0 - %422 = shufflevector <2 x float> %421, <2 x float> poison, <2 x i32> zeroinitializer - %423 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %153, <2 x float> %422, <2 x float> %420) - %424 = fadd <2 x float> %156, %423 - %425 = fadd <2 x float> %96, %424 - store <2 x float> %425, ptr %agg.result, align 4, !alias.scope !102 + %420 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %153, <2 x float> %419, <2 x float> %417) + %421 = fadd <2 x float> %156, %420 + %422 = fadd <2 x float> %96, %421 + store <2 x float> %422, ptr %agg.result, align 4, !alias.scope !102 %arrayidx5.i.i.i.i540 = getelementptr inbounds [4 x float], ptr %agg.result, i64 0, i64 2 store float %add20.i520, ptr %arrayidx5.i.i.i.i540, align 4, !alias.scope !102 %arrayidx7.i.i.i.i541 = getelementptr inbounds [4 x float], ptr %agg.result, i64 0, i64 3 store float 0.000000e+00, ptr %arrayidx7.i.i.i.i541, align 4, !alias.scope !102 - %.pre692 = load ptr, ptr %m_data.i.i, align 8 + %.pre694 = load ptr, ptr %m_data.i.i, align 8 br label %cond.end165 cond.end165: ; preds = %cond.false163, %cond.true161 - %426 = phi ptr [ %.pre692, %cond.false163 ], [ %305, %cond.true161 ] - %427 = phi <2 x float> [ %412, %cond.false163 ], [ %98, %cond.true161 ] - %428 = phi <2 x float> [ %413, %cond.false163 ], [ %99, %cond.true161 ] - %429 = phi <2 x float> [ %414, %cond.false163 ], [ %100, %cond.true161 ] - %430 = getelementptr inbounds [3 x %class.btVector3], ptr %agg.result, i64 0, i64 1 - store <2 x float> %427, ptr %430, align 4 - %431 = getelementptr inbounds [3 x %class.btVector3], ptr %agg.result, i64 0, i64 1, i32 0, i64 2 - %432 = extractelement <2 x float> %429, i64 0 - store float %432, ptr %431, align 4 - %433 = getelementptr inbounds [3 x %class.btVector3], ptr %agg.result, i64 0, i64 1, i32 0, i64 3 - store float 0.000000e+00, ptr %433, align 4 - %434 = getelementptr inbounds [3 x %class.btVector3], ptr %agg.result, i64 0, i64 2 - store <2 x float> %428, ptr %434, align 4 - %435 = getelementptr inbounds [3 x %class.btVector3], ptr %agg.result, i64 0, i64 2, i32 0, i64 2 - %436 = extractelement <2 x float> %429, i64 1 - store float %436, ptr %435, align 4 - %437 = getelementptr inbounds [3 x %class.btVector3], ptr %agg.result, i64 0, i64 2, i32 0, i64 3 - store float 0.000000e+00, ptr %437, align 4 - %tobool.not.i.i.i551 = icmp eq ptr %426, null + %423 = phi ptr [ %.pre694, %cond.false163 ], [ %302, %cond.true161 ] + %424 = phi <2 x float> [ %409, %cond.false163 ], [ %98, %cond.true161 ] + %425 = phi <2 x float> [ %410, %cond.false163 ], [ %99, %cond.true161 ] + %426 = phi <2 x float> [ %411, %cond.false163 ], [ %100, %cond.true161 ] + %427 = getelementptr inbounds [3 x %class.btVector3], ptr %agg.result, i64 0, i64 1 + store <2 x float> %424, ptr %427, align 4 + %428 = getelementptr inbounds [3 x %class.btVector3], ptr %agg.result, i64 0, i64 1, i32 0, i64 2 + %429 = extractelement <2 x float> %426, i64 0 + store float %429, ptr %428, align 4 + %430 = getelementptr inbounds [3 x %class.btVector3], ptr %agg.result, i64 0, i64 1, i32 0, i64 3 + store float 0.000000e+00, ptr %430, align 4 + %431 = getelementptr inbounds [3 x %class.btVector3], ptr %agg.result, i64 0, i64 2 + store <2 x float> %425, ptr %431, align 4 + %432 = getelementptr inbounds [3 x %class.btVector3], ptr %agg.result, i64 0, i64 2, i32 0, i64 2 + %433 = extractelement <2 x float> %426, i64 1 + store float %433, ptr %432, align 4 + %434 = getelementptr inbounds [3 x %class.btVector3], ptr %agg.result, i64 0, i64 2, i32 0, i64 3 + store float 0.000000e+00, ptr %434, align 4 + %tobool.not.i.i.i551 = icmp eq ptr %423, null br i1 %tobool.not.i.i.i551, label %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit, label %if.then.i.i.i552 if.then.i.i.i552: ; preds = %cond.end165 - %438 = load i8, ptr %m_ownsMemory.i.i, align 8 - %439 = and i8 %438, 1 - %tobool2.not.i.i.i554 = icmp eq i8 %439, 0 + %435 = load i8, ptr %m_ownsMemory.i.i, align 8 + %436 = and i8 %435, 1 + %tobool2.not.i.i.i554 = icmp eq i8 %436, 0 br i1 %tobool2.not.i.i.i554, label %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit, label %if.then3.i.i.i555 if.then3.i.i.i555: ; preds = %if.then.i.i.i552 - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %426) + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %423) to label %_ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit unwind label %terminate.lpad.i terminate.lpad.i: ; preds = %if.then3.i.i.i555 - %440 = landingpad { ptr, i32 } + %437 = landingpad { ptr, i32 } catch ptr null - %441 = extractvalue { ptr, i32 } %440, 0 - tail call void @__clang_call_terminate(ptr %441) #27 + %438 = extractvalue { ptr, i32 } %437, 0 + tail call void @__clang_call_terminate(ptr %438) #27 unreachable _ZN20btAlignedObjectArrayI9btVector3ED2Ev.exit: ; preds = %cond.end165, %if.then.i.i.i552, %if.then3.i.i.i555 diff --git a/bench/bullet3/optimized/btSimulationIslandManagerMt.ll b/bench/bullet3/optimized/btSimulationIslandManagerMt.ll index 1fadf74f92d..6c00ac4c646 100644 --- a/bench/bullet3/optimized/btSimulationIslandManagerMt.ll +++ b/bench/bullet3/optimized/btSimulationIslandManagerMt.ll @@ -1657,8 +1657,7 @@ for.cond: ; preds = %for.cond.preheader, for.body: ; preds = %for.cond %indvars.iv121 = add i32 %indvars.iv121.in, -1 %indvars.iv.next = add nsw i64 %indvars.iv, -1 - %idxprom.i27 = and i64 %indvars.iv.next, 4294967295 - %arrayidx.i28 = getelementptr inbounds ptr, ptr %6, i64 %idxprom.i27 + %arrayidx.i28 = getelementptr inbounds ptr, ptr %6, i64 %indvars.iv.next %8 = load ptr, ptr %arrayidx.i28, align 8 %m_capacity.i = getelementptr inbounds %class.btAlignedObjectArray.4, ptr %8, i64 0, i32 3 %9 = load i32, ptr %m_capacity.i, align 8 diff --git a/bench/bullet3/optimized/btSoftBody.ll b/bench/bullet3/optimized/btSoftBody.ll index ab7831babf6..bbaa7e46957 100644 --- a/bench/bullet3/optimized/btSoftBody.ll +++ b/bench/bullet3/optimized/btSoftBody.ll @@ -16796,12 +16796,12 @@ for.cond4.preheader.us.preheader: ; preds = %if.then for.cond4.preheader.us: ; preds = %for.cond4.preheader.us.preheader, %for.cond4.for.inc22_crit_edge.us %indvars.iv329 = phi i64 [ 0, %for.cond4.preheader.us.preheader ], [ %indvars.iv.next330, %for.cond4.for.inc22_crit_edge.us ] - %3 = mul i64 %indvars.iv329, %2 + %3 = mul nsw i64 %indvars.iv329, %2 %4 = and i64 %3, 4294967295 - %invariant.gep = getelementptr i32, ptr %call2, i64 %4 - %5 = add i64 %3, %indvars.iv329 - %idxprom16.us = and i64 %5, 4294967295 - %arrayidx17.us = getelementptr inbounds i32, ptr %call2, i64 %idxprom16.us + %invariant.gep = getelementptr i32, ptr %call2, i64 %indvars.iv329 + %invariant.gep399 = getelementptr i32, ptr %call2, i64 %4 + %5 = getelementptr i32, ptr %call2, i64 %3 + %arrayidx17.us = getelementptr i32, ptr %5, i64 %indvars.iv329 %6 = getelementptr i32, ptr %call2, i64 %indvars.iv329 %arrayidx21.us = getelementptr i32, ptr %6, i64 %4 br label %for.body6.us @@ -16812,13 +16812,11 @@ for.body6.us: ; preds = %for.cond4.preheader br i1 %cmp7.not.us, label %if.else.us, label %if.then8.us if.then8.us: ; preds = %for.body6.us - %7 = mul i64 %indvars.iv, %2 - %8 = add i64 %7, %indvars.iv329 - %idxprom.us = and i64 %8, 4294967295 - %arrayidx.us = getelementptr inbounds i32, ptr %call2, i64 %idxprom.us - store i32 2147483647, ptr %arrayidx.us, align 4 - %gep = getelementptr i32, ptr %invariant.gep, i64 %indvars.iv + %7 = mul nsw i64 %indvars.iv, %2 + %gep = getelementptr i32, ptr %invariant.gep, i64 %7 store i32 2147483647, ptr %gep, align 4 + %gep400 = getelementptr i32, ptr %invariant.gep399, i64 %indvars.iv + store i32 2147483647, ptr %gep400, align 4 br label %for.inc.us if.else.us: ; preds = %for.body6.us @@ -16838,30 +16836,30 @@ for.cond4.for.inc22_crit_edge.us: ; preds = %for.inc.us for.cond25.preheader: ; preds = %for.cond4.for.inc22_crit_edge.us, %if.then %m_size.i115 = getelementptr inbounds %class.btSoftBody, ptr %this, i64 0, i32 13, i32 2 - %9 = load i32, ptr %m_size.i115, align 4 - %cmp27296 = icmp sgt i32 %9, 0 + %8 = load i32, ptr %m_size.i115, align 4 + %cmp27296 = icmp sgt i32 %8, 0 br i1 %cmp27296, label %for.body28.lr.ph, label %for.end56 for.body28.lr.ph: ; preds = %for.cond25.preheader %m_data.i = getelementptr inbounds %class.btSoftBody, ptr %this, i64 0, i32 13, i32 5 - %10 = load ptr, ptr %m_data.i, align 8 + %9 = load ptr, ptr %m_data.i, align 8 %m_data.i116 = getelementptr inbounds %class.btSoftBody, ptr %this, i64 0, i32 11, i32 5 - %11 = load ptr, ptr %m_data.i116, align 8 - %sub.ptr.rhs.cast = ptrtoint ptr %11 to i64 - %wide.trip.count339 = zext nneg i32 %9 to i64 + %10 = load ptr, ptr %m_data.i116, align 8 + %sub.ptr.rhs.cast = ptrtoint ptr %10 to i64 + %wide.trip.count339 = zext nneg i32 %8 to i64 br label %for.body28 for.body28: ; preds = %for.body28.lr.ph, %for.body28 %indvars.iv336 = phi i64 [ 0, %for.body28.lr.ph ], [ %indvars.iv.next337, %for.body28 ] - %m_n = getelementptr inbounds %"struct.btSoftBody::Link", ptr %10, i64 %indvars.iv336, i32 2 - %12 = load ptr, ptr %m_n, align 8 - %sub.ptr.lhs.cast = ptrtoint ptr %12 to i64 + %m_n = getelementptr inbounds %"struct.btSoftBody::Link", ptr %9, i64 %indvars.iv336, i32 2 + %11 = load ptr, ptr %m_n, align 8 + %sub.ptr.lhs.cast = ptrtoint ptr %11 to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast %sub.ptr.div = lshr exact i64 %sub.ptr.sub, 8 %conv34 = trunc i64 %sub.ptr.div to i32 - %arrayidx38 = getelementptr inbounds %"struct.btSoftBody::Link", ptr %10, i64 %indvars.iv336, i32 2, i64 1 - %13 = load ptr, ptr %arrayidx38, align 8 - %sub.ptr.lhs.cast41 = ptrtoint ptr %13 to i64 + %arrayidx38 = getelementptr inbounds %"struct.btSoftBody::Link", ptr %9, i64 %indvars.iv336, i32 2, i64 1 + %12 = load ptr, ptr %arrayidx38, align 8 + %sub.ptr.lhs.cast41 = ptrtoint ptr %12 to i64 %sub.ptr.sub43 = sub i64 %sub.ptr.lhs.cast41, %sub.ptr.rhs.cast %sub.ptr.div44 = lshr exact i64 %sub.ptr.sub43, 8 %conv45 = trunc i64 %sub.ptr.div44 to i32 @@ -16887,43 +16885,42 @@ for.cond206.preheader: ; preds = %for.end56 br i1 %cmp3294, label %for.cond209.preheader.us.preheader, label %delete.notnull for.cond209.preheader.us.preheader: ; preds = %for.cond206.preheader - %14 = zext nneg i32 %0 to i64 + %13 = zext nneg i32 %0 to i64 %wide.trip.count363 = zext nneg i32 %0 to i64 br label %for.cond209.preheader.us for.cond209.preheader.us: ; preds = %for.cond209.preheader.us.preheader, %for.cond209.for.inc247_crit_edge.us %indvars.iv359 = phi i64 [ 0, %for.cond209.preheader.us.preheader ], [ %indvars.iv.next360, %for.cond209.for.inc247_crit_edge.us ] - %15 = trunc i64 %indvars.iv359 to i32 - %16 = mul i32 %0, %15 - %17 = zext i32 %16 to i64 - %invariant.gep399 = getelementptr i32, ptr %call2, i64 %17 + %14 = trunc i64 %indvars.iv359 to i32 + %15 = mul i32 %0, %14 + %16 = zext i32 %15 to i64 + %invariant.gep407 = getelementptr i32, ptr %call2, i64 %indvars.iv359 + %invariant.gep401 = getelementptr i32, ptr %call2, i64 %16 br label %for.body211.us for.body211.us: ; preds = %for.cond209.preheader.us, %for.cond209.loopexit.us %indvars.iv352 = phi i64 [ 0, %for.cond209.preheader.us ], [ %indvars.iv.next353, %for.cond209.loopexit.us ] %indvars.iv341 = phi i64 [ 1, %for.cond209.preheader.us ], [ %indvars.iv.next342, %for.cond209.loopexit.us ] %indvars.iv.next353 = add nuw nsw i64 %indvars.iv352, 1 - %cmp214298.us = icmp ult i64 %indvars.iv.next353, %14 + %cmp214298.us = icmp ult i64 %indvars.iv.next353, %13 br i1 %cmp214298.us, label %for.body215.lr.ph.us, label %for.cond209.loopexit.us for.body215.us: ; preds = %for.body215.lr.ph.us, %for.inc241.us %indvars.iv343 = phi i64 [ %indvars.iv341, %for.body215.lr.ph.us ], [ %indvars.iv.next344, %for.inc241.us ] - %gep400 = getelementptr i32, ptr %invariant.gep399, i64 %indvars.iv343 - %18 = load i32, ptr %gep400, align 4 - %19 = load i32, ptr %arrayidx224.us, align 4 - %add225.us = add i32 %19, %18 %gep402 = getelementptr i32, ptr %invariant.gep401, i64 %indvars.iv343 - %20 = load i32, ptr %gep402, align 4 - %cmp230.us = icmp ugt i32 %20, %add225.us + %17 = load i32, ptr %gep402, align 4 + %18 = load i32, ptr %gep408, align 4 + %add225.us = add i32 %18, %17 + %gep404 = getelementptr i32, ptr %invariant.gep403, i64 %indvars.iv343 + %19 = load i32, ptr %gep404, align 4 + %cmp230.us = icmp ugt i32 %19, %add225.us br i1 %cmp230.us, label %if.then231.us, label %for.inc241.us if.then231.us: ; preds = %for.body215.us - %21 = mul nsw i64 %indvars.iv343, %14 - %22 = add nuw nsw i64 %21, %indvars.iv352 - %idxprom234.us = and i64 %22, 4294967295 - %arrayidx235.us = getelementptr inbounds i32, ptr %call2, i64 %idxprom234.us - store i32 %add225.us, ptr %arrayidx235.us, align 4 - store i32 %add225.us, ptr %gep402, align 4 + %20 = mul nsw i64 %indvars.iv343, %13 + %gep406 = getelementptr i32, ptr %invariant.gep405, i64 %20 + store i32 %add225.us, ptr %gep406, align 4 + store i32 %add225.us, ptr %gep404, align 4 br label %for.inc241.us for.inc241.us: ; preds = %if.then231.us, %for.body215.us @@ -16937,12 +16934,11 @@ for.cond209.loopexit.us: ; preds = %for.inc241.us, %for br i1 %exitcond358.not, label %for.cond209.for.inc247_crit_edge.us, label %for.body211.us, !llvm.loop !196 for.body215.lr.ph.us: ; preds = %for.body211.us - %23 = mul nsw i64 %indvars.iv352, %14 - %24 = add nuw nsw i64 %23, %indvars.iv359 - %idxprom223.us = and i64 %24, 4294967295 - %arrayidx224.us = getelementptr inbounds i32, ptr %call2, i64 %idxprom223.us - %25 = and i64 %23, 4294967295 - %invariant.gep401 = getelementptr i32, ptr %call2, i64 %25 + %21 = mul nsw i64 %indvars.iv352, %13 + %gep408 = getelementptr i32, ptr %invariant.gep407, i64 %21 + %22 = and i64 %21, 4294967295 + %invariant.gep403 = getelementptr i32, ptr %call2, i64 %22 + %invariant.gep405 = getelementptr i32, ptr %call2, i64 %indvars.iv352 br label %for.body215.us for.cond209.for.inc247_crit_edge.us: ; preds = %for.cond209.loopexit.us @@ -16970,25 +16966,25 @@ invoke.cont61: ; preds = %for.end56 to label %invoke.cont63 unwind label %lpad62 invoke.cont63: ; preds = %invoke.cont61 - %26 = load ptr, ptr %m_data.i.i.i, align 8 - %tobool.not.i.i.i.i = icmp eq ptr %26, null + %23 = load ptr, ptr %m_data.i.i.i, align 8 + %tobool.not.i.i.i.i = icmp eq ptr %23, null br i1 %tobool.not.i.i.i.i, label %_ZN9NodeLinksD2Ev.exit, label %if.then.i.i.i.i if.then.i.i.i.i: ; preds = %invoke.cont63 - %27 = load i8, ptr %m_ownsMemory.i.i.i, align 8 - %28 = and i8 %27, 1 - %tobool2.not.i.i.i.i = icmp eq i8 %28, 0 + %24 = load i8, ptr %m_ownsMemory.i.i.i, align 8 + %25 = and i8 %24, 1 + %tobool2.not.i.i.i.i = icmp eq i8 %25, 0 br i1 %tobool2.not.i.i.i.i, label %_ZN9NodeLinksD2Ev.exit, label %if.then3.i.i.i.i if.then3.i.i.i.i: ; preds = %if.then.i.i.i.i - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %26) + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %23) to label %_ZN9NodeLinksD2Ev.exit unwind label %terminate.lpad.i.i terminate.lpad.i.i: ; preds = %if.then3.i.i.i.i - %29 = landingpad { ptr, i32 } + %26 = landingpad { ptr, i32 } catch ptr null - %30 = extractvalue { ptr, i32 } %29, 0 - call void @__clang_call_terminate(ptr %30) #45 + %27 = extractvalue { ptr, i32 } %26, 0 + call void @__clang_call_terminate(ptr %27) #45 unreachable _ZN9NodeLinksD2Ev.exit: ; preds = %invoke.cont63, %if.then.i.i.i.i, %if.then3.i.i.i.i @@ -16996,8 +16992,8 @@ _ZN9NodeLinksD2Ev.exit: ; preds = %invoke.cont63, %if. store ptr null, ptr %m_data.i.i.i, align 8 store i32 0, ptr %m_size.i.i.i, align 4 store i32 0, ptr %m_capacity.i.i.i, align 8 - %31 = load i32, ptr %m_size.i115, align 4 - %cmp68304 = icmp sgt i32 %31, 0 + %28 = load i32, ptr %m_size.i115, align 4 + %cmp68304 = icmp sgt i32 %28, 0 br i1 %cmp68304, label %for.body69.lr.ph, label %for.cond135.preheader for.body69.lr.ph: ; preds = %_ZN9NodeLinksD2Ev.exit @@ -17006,53 +17002,53 @@ for.body69.lr.ph: ; preds = %_ZN9NodeLinksD2Ev.e br label %for.body69 for.cond135.preheader: ; preds = %for.inc132, %_ZN9NodeLinksD2Ev.exit - %32 = load i32, ptr %m_size.i.i, align 4 - %cmp138310 = icmp sgt i32 %32, 0 + %29 = load i32, ptr %m_size.i.i, align 4 + %cmp138310 = icmp sgt i32 %29, 0 br i1 %cmp138310, label %for.cond141.preheader.lr.ph, label %_ZN20btAlignedObjectArrayI9NodeLinksE7destroyEii.exit.i.i for.cond141.preheader.lr.ph: ; preds = %for.cond135.preheader - %33 = load ptr, ptr %m_data.i.i, align 8 - %34 = sext i32 %0 to i64 - %wide.trip.count379 = zext nneg i32 %32 to i64 + %30 = load ptr, ptr %m_data.i.i, align 8 + %31 = sext i32 %0 to i64 + %wide.trip.count379 = zext nneg i32 %29 to i64 br label %for.cond141.preheader for.body69: ; preds = %for.body69.lr.ph, %for.inc132 %indvars.iv365 = phi i64 [ 0, %for.body69.lr.ph ], [ %indvars.iv.next366, %for.inc132 ] - %35 = load ptr, ptr %m_data.i123, align 8 - %m_n74 = getelementptr inbounds %"struct.btSoftBody::Link", ptr %35, i64 %indvars.iv365, i32 2 - %36 = load ptr, ptr %m_n74, align 8 - %37 = load ptr, ptr %m_data.i126, align 8 - %sub.ptr.lhs.cast79 = ptrtoint ptr %36 to i64 - %sub.ptr.rhs.cast80 = ptrtoint ptr %37 to i64 + %32 = load ptr, ptr %m_data.i123, align 8 + %m_n74 = getelementptr inbounds %"struct.btSoftBody::Link", ptr %32, i64 %indvars.iv365, i32 2 + %33 = load ptr, ptr %m_n74, align 8 + %34 = load ptr, ptr %m_data.i126, align 8 + %sub.ptr.lhs.cast79 = ptrtoint ptr %33 to i64 + %sub.ptr.rhs.cast80 = ptrtoint ptr %34 to i64 %sub.ptr.sub81 = sub i64 %sub.ptr.lhs.cast79, %sub.ptr.rhs.cast80 %sub.ptr.div82 = lshr exact i64 %sub.ptr.sub81, 8 %conv83 = trunc i64 %sub.ptr.div82 to i32 - %arrayidx89 = getelementptr inbounds %"struct.btSoftBody::Link", ptr %35, i64 %indvars.iv365, i32 2, i64 1 - %38 = load ptr, ptr %arrayidx89, align 8 - %sub.ptr.lhs.cast93 = ptrtoint ptr %38 to i64 + %arrayidx89 = getelementptr inbounds %"struct.btSoftBody::Link", ptr %32, i64 %indvars.iv365, i32 2, i64 1 + %35 = load ptr, ptr %arrayidx89, align 8 + %sub.ptr.lhs.cast93 = ptrtoint ptr %35 to i64 %sub.ptr.sub95 = sub i64 %sub.ptr.lhs.cast93, %sub.ptr.rhs.cast80 %sub.ptr.div96 = lshr exact i64 %sub.ptr.sub95, 8 %conv97 = trunc i64 %sub.ptr.div96 to i32 - %39 = load ptr, ptr %m_data.i.i, align 8 + %36 = load ptr, ptr %m_data.i.i, align 8 %sext = shl i64 %sub.ptr.sub81, 24 %idxprom.i132 = ashr i64 %sext, 32 - %arrayidx.i133 = getelementptr inbounds %struct.NodeLinks, ptr %39, i64 %idxprom.i132 + %arrayidx.i133 = getelementptr inbounds %struct.NodeLinks, ptr %36, i64 %idxprom.i132 %m_size.i.i134 = getelementptr inbounds %class.btAlignedObjectArray.104, ptr %arrayidx.i133, i64 0, i32 2 - %40 = load i32, ptr %m_size.i.i134, align 4 - %cmp5.i = icmp sgt i32 %40, 0 + %37 = load i32, ptr %m_size.i.i134, align 4 + %cmp5.i = icmp sgt i32 %37, 0 br i1 %cmp5.i, label %for.body.lr.ph.i, label %if.then109 for.body.lr.ph.i: ; preds = %for.body69 %m_data.i135 = getelementptr inbounds %class.btAlignedObjectArray.104, ptr %arrayidx.i133, i64 0, i32 5 - %41 = load ptr, ptr %m_data.i135, align 8 - %wide.trip.count.i = zext nneg i32 %40 to i64 + %38 = load ptr, ptr %m_data.i135, align 8 + %wide.trip.count.i = zext nneg i32 %37 to i64 br label %for.body.i for.body.i: ; preds = %for.inc.i, %for.body.lr.ph.i %indvars.iv.i = phi i64 [ 0, %for.body.lr.ph.i ], [ %indvars.iv.next.i, %for.inc.i ] - %arrayidx.i136 = getelementptr inbounds i32, ptr %41, i64 %indvars.iv.i - %42 = load i32, ptr %arrayidx.i136, align 4 - %cmp3.i = icmp eq i32 %42, %conv97 + %arrayidx.i136 = getelementptr inbounds i32, ptr %38, i64 %indvars.iv.i + %39 = load i32, ptr %arrayidx.i136, align 4 + %cmp3.i = icmp eq i32 %39, %conv97 br i1 %cmp3.i, label %_ZNK20btAlignedObjectArrayIiE16findLinearSearchERKi.exit, label %for.inc.i for.inc.i: ; preds = %for.body.i @@ -17061,21 +17057,21 @@ for.inc.i: ; preds = %for.body.i br i1 %exitcond.not.i, label %if.then109, label %for.body.i, !llvm.loop !198 _ZNK20btAlignedObjectArrayIiE16findLinearSearchERKi.exit: ; preds = %for.body.i - %43 = trunc i64 %indvars.iv.i to i32 - %cmp108 = icmp eq i32 %40, %43 + %40 = trunc i64 %indvars.iv.i to i32 + %cmp108 = icmp eq i32 %37, %40 br i1 %cmp108, label %if.then109, label %if.end114 if.then109: ; preds = %for.inc.i, %for.body69, %_ZNK20btAlignedObjectArrayIiE16findLinearSearchERKi.exit %m_capacity.i.i145 = getelementptr inbounds %class.btAlignedObjectArray.104, ptr %arrayidx.i133, i64 0, i32 3 - %44 = load i32, ptr %m_capacity.i.i145, align 8 - %cmp.i = icmp eq i32 %40, %44 + %41 = load i32, ptr %m_capacity.i.i145, align 8 + %cmp.i = icmp eq i32 %37, %41 br i1 %cmp.i, label %if.then.i, label %_ZN20btAlignedObjectArrayIiE9push_backERKi.exit if.then.i: ; preds = %if.then109 - %tobool.not.i.i = icmp eq i32 %40, 0 - %mul.i.i = shl nsw i32 %40, 1 + %tobool.not.i.i = icmp eq i32 %37, 0 + %mul.i.i = shl nsw i32 %37, 1 %cond.i.i = select i1 %tobool.not.i.i, i32 1, i32 %mul.i.i - %cmp.i.i = icmp slt i32 %40, %cond.i.i + %cmp.i.i = icmp slt i32 %37, %cond.i.i br i1 %cmp.i.i, label %if.then.i.i, label %_ZN20btAlignedObjectArrayIiE9push_backERKi.exit if.then.i.i: ; preds = %if.then.i @@ -17093,42 +17089,42 @@ call.i.i.i.i.noexc: ; preds = %if.then.i.i.i br label %_ZN20btAlignedObjectArrayIiE8allocateEi.exit.i.i _ZN20btAlignedObjectArrayIiE8allocateEi.exit.i.i: ; preds = %call.i.i.i.i.noexc, %if.then.i.i - %45 = phi i32 [ %.pre.i, %call.i.i.i.i.noexc ], [ %40, %if.then.i.i ] + %42 = phi i32 [ %.pre.i, %call.i.i.i.i.noexc ], [ %37, %if.then.i.i ] %retval.0.i.i.i = phi ptr [ %call.i.i.i.i152, %call.i.i.i.i.noexc ], [ null, %if.then.i.i ] - %cmp4.i.i.i = icmp sgt i32 %45, 0 + %cmp4.i.i.i = icmp sgt i32 %42, 0 br i1 %cmp4.i.i.i, label %for.body.lr.ph.i.i.i, label %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i for.body.lr.ph.i.i.i: ; preds = %_ZN20btAlignedObjectArrayIiE8allocateEi.exit.i.i %m_data.i.i.i151 = getelementptr inbounds %class.btAlignedObjectArray.104, ptr %arrayidx.i133, i64 0, i32 5 - %wide.trip.count.i.i.i = zext nneg i32 %45 to i64 + %wide.trip.count.i.i.i = zext nneg i32 %42 to i64 br label %for.body.i.i.i for.body.i.i.i: ; preds = %for.body.i.i.i, %for.body.lr.ph.i.i.i %indvars.iv.i.i.i = phi i64 [ 0, %for.body.lr.ph.i.i.i ], [ %indvars.iv.next.i.i.i, %for.body.i.i.i ] %arrayidx.i.i.i = getelementptr inbounds i32, ptr %retval.0.i.i.i, i64 %indvars.iv.i.i.i - %46 = load ptr, ptr %m_data.i.i.i151, align 8 - %arrayidx3.i.i.i = getelementptr inbounds i32, ptr %46, i64 %indvars.iv.i.i.i - %47 = load i32, ptr %arrayidx3.i.i.i, align 4 - store i32 %47, ptr %arrayidx.i.i.i, align 4 + %43 = load ptr, ptr %m_data.i.i.i151, align 8 + %arrayidx3.i.i.i = getelementptr inbounds i32, ptr %43, i64 %indvars.iv.i.i.i + %44 = load i32, ptr %arrayidx3.i.i.i, align 4 + store i32 %44, ptr %arrayidx.i.i.i, align 4 %indvars.iv.next.i.i.i = add nuw nsw i64 %indvars.iv.i.i.i, 1 %exitcond.not.i.i.i = icmp eq i64 %indvars.iv.next.i.i.i, %wide.trip.count.i.i.i br i1 %exitcond.not.i.i.i, label %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i, label %for.body.i.i.i, !llvm.loop !199 _ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i: ; preds = %for.body.i.i.i, %_ZN20btAlignedObjectArrayIiE8allocateEi.exit.i.i %m_data.i5.i.i = getelementptr inbounds %class.btAlignedObjectArray.104, ptr %arrayidx.i133, i64 0, i32 5 - %48 = load ptr, ptr %m_data.i5.i.i, align 8 - %tobool.not.i6.i.i = icmp eq ptr %48, null + %45 = load ptr, ptr %m_data.i5.i.i, align 8 + %tobool.not.i6.i.i = icmp eq ptr %45, null br i1 %tobool.not.i6.i.i, label %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i, label %if.then.i7.i.i if.then.i7.i.i: ; preds = %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i %m_ownsMemory.i.i.i149 = getelementptr inbounds %class.btAlignedObjectArray.104, ptr %arrayidx.i133, i64 0, i32 6 - %49 = load i8, ptr %m_ownsMemory.i.i.i149, align 8 - %50 = and i8 %49, 1 - %tobool2.not.i.i.i = icmp eq i8 %50, 0 + %46 = load i8, ptr %m_ownsMemory.i.i.i149, align 8 + %47 = and i8 %46, 1 + %tobool2.not.i.i.i = icmp eq i8 %47, 0 br i1 %tobool2.not.i.i.i, label %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i, label %if.then3.i.i.i if.then3.i.i.i: ; preds = %if.then.i7.i.i - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %48) + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %45) to label %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i unwind label %lpad _ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i: ; preds = %if.then3.i.i.i, %if.then.i7.i.i, %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i @@ -17140,50 +17136,50 @@ _ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i: ; preds = %if.then3.i.i.i, br label %_ZN20btAlignedObjectArrayIiE9push_backERKi.exit _ZN20btAlignedObjectArrayIiE9push_backERKi.exit: ; preds = %if.then109, %if.then.i, %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i - %51 = phi i32 [ %.pre2.i, %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i ], [ %40, %if.then.i ], [ %40, %if.then109 ] + %48 = phi i32 [ %.pre2.i, %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i ], [ %37, %if.then.i ], [ %37, %if.then109 ] %m_data.i146 = getelementptr inbounds %class.btAlignedObjectArray.104, ptr %arrayidx.i133, i64 0, i32 5 - %52 = load ptr, ptr %m_data.i146, align 8 - %idxprom.i147 = sext i32 %51 to i64 - %arrayidx.i148 = getelementptr inbounds i32, ptr %52, i64 %idxprom.i147 + %49 = load ptr, ptr %m_data.i146, align 8 + %idxprom.i147 = sext i32 %48 to i64 + %arrayidx.i148 = getelementptr inbounds i32, ptr %49, i64 %idxprom.i147 store i32 %conv97, ptr %arrayidx.i148, align 4 - %53 = load i32, ptr %m_size.i.i134, align 4 - %inc.i = add nsw i32 %53, 1 + %50 = load i32, ptr %m_size.i.i134, align 4 + %inc.i = add nsw i32 %50, 1 store i32 %inc.i, ptr %m_size.i.i134, align 4 %.pre = load ptr, ptr %m_data.i.i, align 8 br label %if.end114 lpad: ; preds = %if.then3.i.i.i205, %if.then.i.i.i192, %if.then3.i.i.i, %if.then.i.i.i - %54 = landingpad { ptr, i32 } + %51 = landingpad { ptr, i32 } cleanup br label %ehcleanup lpad62: ; preds = %invoke.cont61 - %55 = landingpad { ptr, i32 } + %52 = landingpad { ptr, i32 } cleanup call void @_ZN9NodeLinksD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #44 br label %ehcleanup if.end114: ; preds = %_ZN20btAlignedObjectArrayIiE9push_backERKi.exit, %_ZNK20btAlignedObjectArrayIiE16findLinearSearchERKi.exit - %56 = phi ptr [ %.pre, %_ZN20btAlignedObjectArrayIiE9push_backERKi.exit ], [ %39, %_ZNK20btAlignedObjectArrayIiE16findLinearSearchERKi.exit ] + %53 = phi ptr [ %.pre, %_ZN20btAlignedObjectArrayIiE9push_backERKi.exit ], [ %36, %_ZNK20btAlignedObjectArrayIiE16findLinearSearchERKi.exit ] %sext289 = shl i64 %sub.ptr.sub95, 24 %idxprom.i154 = ashr i64 %sext289, 32 - %arrayidx.i155 = getelementptr inbounds %struct.NodeLinks, ptr %56, i64 %idxprom.i154 + %arrayidx.i155 = getelementptr inbounds %struct.NodeLinks, ptr %53, i64 %idxprom.i154 %m_size.i.i156 = getelementptr inbounds %class.btAlignedObjectArray.104, ptr %arrayidx.i155, i64 0, i32 2 - %57 = load i32, ptr %m_size.i.i156, align 4 - %cmp5.i157 = icmp sgt i32 %57, 0 + %54 = load i32, ptr %m_size.i.i156, align 4 + %cmp5.i157 = icmp sgt i32 %54, 0 br i1 %cmp5.i157, label %for.body.lr.ph.i159, label %if.then126 for.body.lr.ph.i159: ; preds = %if.end114 %m_data.i160 = getelementptr inbounds %class.btAlignedObjectArray.104, ptr %arrayidx.i155, i64 0, i32 5 - %58 = load ptr, ptr %m_data.i160, align 8 - %wide.trip.count.i161 = zext nneg i32 %57 to i64 + %55 = load ptr, ptr %m_data.i160, align 8 + %wide.trip.count.i161 = zext nneg i32 %54 to i64 br label %for.body.i162 for.body.i162: ; preds = %for.inc.i166, %for.body.lr.ph.i159 %indvars.iv.i163 = phi i64 [ 0, %for.body.lr.ph.i159 ], [ %indvars.iv.next.i167, %for.inc.i166 ] - %arrayidx.i164 = getelementptr inbounds i32, ptr %58, i64 %indvars.iv.i163 - %59 = load i32, ptr %arrayidx.i164, align 4 - %cmp3.i165 = icmp eq i32 %59, %conv83 + %arrayidx.i164 = getelementptr inbounds i32, ptr %55, i64 %indvars.iv.i163 + %56 = load i32, ptr %arrayidx.i164, align 4 + %cmp3.i165 = icmp eq i32 %56, %conv83 br i1 %cmp3.i165, label %_ZNK20btAlignedObjectArrayIiE16findLinearSearchERKi.exit170, label %for.inc.i166 for.inc.i166: ; preds = %for.body.i162 @@ -17192,21 +17188,21 @@ for.inc.i166: ; preds = %for.body.i162 br i1 %exitcond.not.i168, label %if.then126, label %for.body.i162, !llvm.loop !198 _ZNK20btAlignedObjectArrayIiE16findLinearSearchERKi.exit170: ; preds = %for.body.i162 - %60 = trunc i64 %indvars.iv.i163 to i32 - %cmp125 = icmp eq i32 %57, %60 + %57 = trunc i64 %indvars.iv.i163 to i32 + %cmp125 = icmp eq i32 %54, %57 br i1 %cmp125, label %if.then126, label %for.inc132 if.then126: ; preds = %for.inc.i166, %if.end114, %_ZNK20btAlignedObjectArrayIiE16findLinearSearchERKi.exit170 %m_capacity.i.i179 = getelementptr inbounds %class.btAlignedObjectArray.104, ptr %arrayidx.i155, i64 0, i32 3 - %61 = load i32, ptr %m_capacity.i.i179, align 8 - %cmp.i180 = icmp eq i32 %57, %61 + %58 = load i32, ptr %m_capacity.i.i179, align 8 + %cmp.i180 = icmp eq i32 %54, %58 br i1 %cmp.i180, label %if.then.i185, label %_ZN20btAlignedObjectArrayIiE9push_backERKi.exit221 if.then.i185: ; preds = %if.then126 - %tobool.not.i.i186 = icmp eq i32 %57, 0 - %mul.i.i187 = shl nsw i32 %57, 1 + %tobool.not.i.i186 = icmp eq i32 %54, 0 + %mul.i.i187 = shl nsw i32 %54, 1 %cond.i.i188 = select i1 %tobool.not.i.i186, i32 1, i32 %mul.i.i187 - %cmp.i.i189 = icmp slt i32 %57, %cond.i.i188 + %cmp.i.i189 = icmp slt i32 %54, %cond.i.i188 br i1 %cmp.i.i189, label %if.then.i.i190, label %_ZN20btAlignedObjectArrayIiE9push_backERKi.exit221 if.then.i.i190: ; preds = %if.then.i185 @@ -17224,42 +17220,42 @@ call.i.i.i.i.noexc218: ; preds = %if.then.i.i.i192 br label %_ZN20btAlignedObjectArrayIiE8allocateEi.exit.i.i196 _ZN20btAlignedObjectArrayIiE8allocateEi.exit.i.i196: ; preds = %call.i.i.i.i.noexc218, %if.then.i.i190 - %62 = phi i32 [ %.pre.i195, %call.i.i.i.i.noexc218 ], [ %57, %if.then.i.i190 ] + %59 = phi i32 [ %.pre.i195, %call.i.i.i.i.noexc218 ], [ %54, %if.then.i.i190 ] %retval.0.i.i.i197 = phi ptr [ %call.i.i.i.i219, %call.i.i.i.i.noexc218 ], [ null, %if.then.i.i190 ] - %cmp4.i.i.i198 = icmp sgt i32 %62, 0 + %cmp4.i.i.i198 = icmp sgt i32 %59, 0 br i1 %cmp4.i.i.i198, label %for.body.lr.ph.i.i.i209, label %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i199 for.body.lr.ph.i.i.i209: ; preds = %_ZN20btAlignedObjectArrayIiE8allocateEi.exit.i.i196 %m_data.i.i.i210 = getelementptr inbounds %class.btAlignedObjectArray.104, ptr %arrayidx.i155, i64 0, i32 5 - %wide.trip.count.i.i.i211 = zext nneg i32 %62 to i64 + %wide.trip.count.i.i.i211 = zext nneg i32 %59 to i64 br label %for.body.i.i.i212 for.body.i.i.i212: ; preds = %for.body.i.i.i212, %for.body.lr.ph.i.i.i209 %indvars.iv.i.i.i213 = phi i64 [ 0, %for.body.lr.ph.i.i.i209 ], [ %indvars.iv.next.i.i.i216, %for.body.i.i.i212 ] %arrayidx.i.i.i214 = getelementptr inbounds i32, ptr %retval.0.i.i.i197, i64 %indvars.iv.i.i.i213 - %63 = load ptr, ptr %m_data.i.i.i210, align 8 - %arrayidx3.i.i.i215 = getelementptr inbounds i32, ptr %63, i64 %indvars.iv.i.i.i213 - %64 = load i32, ptr %arrayidx3.i.i.i215, align 4 - store i32 %64, ptr %arrayidx.i.i.i214, align 4 + %60 = load ptr, ptr %m_data.i.i.i210, align 8 + %arrayidx3.i.i.i215 = getelementptr inbounds i32, ptr %60, i64 %indvars.iv.i.i.i213 + %61 = load i32, ptr %arrayidx3.i.i.i215, align 4 + store i32 %61, ptr %arrayidx.i.i.i214, align 4 %indvars.iv.next.i.i.i216 = add nuw nsw i64 %indvars.iv.i.i.i213, 1 %exitcond.not.i.i.i217 = icmp eq i64 %indvars.iv.next.i.i.i216, %wide.trip.count.i.i.i211 br i1 %exitcond.not.i.i.i217, label %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i199, label %for.body.i.i.i212, !llvm.loop !199 _ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i199: ; preds = %for.body.i.i.i212, %_ZN20btAlignedObjectArrayIiE8allocateEi.exit.i.i196 %m_data.i5.i.i200 = getelementptr inbounds %class.btAlignedObjectArray.104, ptr %arrayidx.i155, i64 0, i32 5 - %65 = load ptr, ptr %m_data.i5.i.i200, align 8 - %tobool.not.i6.i.i201 = icmp eq ptr %65, null + %62 = load ptr, ptr %m_data.i5.i.i200, align 8 + %tobool.not.i6.i.i201 = icmp eq ptr %62, null br i1 %tobool.not.i6.i.i201, label %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i206, label %if.then.i7.i.i202 if.then.i7.i.i202: ; preds = %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i199 %m_ownsMemory.i.i.i203 = getelementptr inbounds %class.btAlignedObjectArray.104, ptr %arrayidx.i155, i64 0, i32 6 - %66 = load i8, ptr %m_ownsMemory.i.i.i203, align 8 - %67 = and i8 %66, 1 - %tobool2.not.i.i.i204 = icmp eq i8 %67, 0 + %63 = load i8, ptr %m_ownsMemory.i.i.i203, align 8 + %64 = and i8 %63, 1 + %tobool2.not.i.i.i204 = icmp eq i8 %64, 0 br i1 %tobool2.not.i.i.i204, label %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i206, label %if.then3.i.i.i205 if.then3.i.i.i205: ; preds = %if.then.i7.i.i202 - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %65) + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %62) to label %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i206 unwind label %lpad _ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i206: ; preds = %if.then3.i.i.i205, %if.then.i7.i.i202, %_ZNK20btAlignedObjectArrayIiE4copyEiiPi.exit.i.i199 @@ -17271,100 +17267,100 @@ _ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i206: ; preds = %if.then3.i.i. br label %_ZN20btAlignedObjectArrayIiE9push_backERKi.exit221 _ZN20btAlignedObjectArrayIiE9push_backERKi.exit221: ; preds = %if.then126, %if.then.i185, %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i206 - %68 = phi i32 [ %.pre2.i208, %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i206 ], [ %57, %if.then.i185 ], [ %57, %if.then126 ] + %65 = phi i32 [ %.pre2.i208, %_ZN20btAlignedObjectArrayIiE10deallocateEv.exit.i.i206 ], [ %54, %if.then.i185 ], [ %54, %if.then126 ] %m_data.i181 = getelementptr inbounds %class.btAlignedObjectArray.104, ptr %arrayidx.i155, i64 0, i32 5 - %69 = load ptr, ptr %m_data.i181, align 8 - %idxprom.i182 = sext i32 %68 to i64 - %arrayidx.i183 = getelementptr inbounds i32, ptr %69, i64 %idxprom.i182 + %66 = load ptr, ptr %m_data.i181, align 8 + %idxprom.i182 = sext i32 %65 to i64 + %arrayidx.i183 = getelementptr inbounds i32, ptr %66, i64 %idxprom.i182 store i32 %conv83, ptr %arrayidx.i183, align 4 - %70 = load i32, ptr %m_size.i.i156, align 4 - %inc.i184 = add nsw i32 %70, 1 + %67 = load i32, ptr %m_size.i.i156, align 4 + %inc.i184 = add nsw i32 %67, 1 store i32 %inc.i184, ptr %m_size.i.i156, align 4 br label %for.inc132 for.inc132: ; preds = %_ZN20btAlignedObjectArrayIiE9push_backERKi.exit221, %_ZNK20btAlignedObjectArrayIiE16findLinearSearchERKi.exit170 %indvars.iv.next366 = add nuw nsw i64 %indvars.iv365, 1 - %71 = load i32, ptr %m_size.i115, align 4 - %72 = sext i32 %71 to i64 - %cmp68 = icmp slt i64 %indvars.iv.next366, %72 + %68 = load i32, ptr %m_size.i115, align 4 + %69 = sext i32 %68 to i64 + %cmp68 = icmp slt i64 %indvars.iv.next366, %69 br i1 %cmp68, label %for.body69, label %for.cond135.preheader, !llvm.loop !200 for.cond141.preheader: ; preds = %for.cond141.preheader.lr.ph, %for.inc201 %indvars.iv374 = phi i64 [ 0, %for.cond141.preheader.lr.ph ], [ %indvars.iv.next375, %for.inc201 ] - %arrayidx.i225 = getelementptr inbounds %struct.NodeLinks, ptr %33, i64 %indvars.iv374 + %arrayidx.i225 = getelementptr inbounds %struct.NodeLinks, ptr %30, i64 %indvars.iv374 %m_size.i226 = getelementptr inbounds %class.btAlignedObjectArray.104, ptr %arrayidx.i225, i64 0, i32 2 - %73 = load i32, ptr %m_size.i226, align 4 - %cmp147308 = icmp sgt i32 %73, 0 + %70 = load i32, ptr %m_size.i226, align 4 + %cmp147308 = icmp sgt i32 %70, 0 br i1 %cmp147308, label %for.body148.lr.ph, label %for.inc201 for.body148.lr.ph: ; preds = %for.cond141.preheader %m_data.i230 = getelementptr inbounds %class.btAlignedObjectArray.104, ptr %arrayidx.i225, i64 0, i32 5 - %74 = mul nsw i64 %indvars.iv374, %34 + %71 = mul nsw i64 %indvars.iv374, %31 %.pre395 = load ptr, ptr %m_data.i230, align 8 - %75 = trunc i64 %indvars.iv374 to i32 - %76 = getelementptr i32, ptr %call2, i64 %74 - %77 = zext nneg i32 %73 to i64 + %72 = trunc i64 %indvars.iv374 to i32 + %73 = getelementptr i32, ptr %call2, i64 %71 + %74 = zext nneg i32 %70 to i64 br label %for.body148 for.body148: ; preds = %for.body148.lr.ph, %for.inc198 %indvars.iv371 = phi i64 [ 0, %for.body148.lr.ph ], [ %indvars.iv.next372, %for.inc198 ] %arrayidx.i232 = getelementptr inbounds i32, ptr %.pre395, i64 %indvars.iv371 - %78 = load i32, ptr %arrayidx.i232, align 4 - %idxprom.i234 = sext i32 %78 to i64 - %arrayidx.i235 = getelementptr inbounds %struct.NodeLinks, ptr %33, i64 %idxprom.i234 + %75 = load i32, ptr %arrayidx.i232, align 4 + %idxprom.i234 = sext i32 %75 to i64 + %arrayidx.i235 = getelementptr inbounds %struct.NodeLinks, ptr %30, i64 %idxprom.i234 %m_size.i236 = getelementptr inbounds %class.btAlignedObjectArray.104, ptr %arrayidx.i235, i64 0, i32 2 - %79 = load i32, ptr %m_size.i236, align 4 - %cmp160306 = icmp sgt i32 %79, 0 + %76 = load i32, ptr %m_size.i236, align 4 + %cmp160306 = icmp sgt i32 %76, 0 br i1 %cmp160306, label %for.body161.lr.ph, label %for.inc198 for.body161.lr.ph: ; preds = %for.body148 %m_data.i240 = getelementptr inbounds %class.btAlignedObjectArray.104, ptr %arrayidx.i235, i64 0, i32 5 - %mul170 = mul nsw i32 %78, %0 - %add171 = add nsw i32 %mul170, %75 + %mul170 = mul nsw i32 %75, %0 + %add171 = add nsw i32 %mul170, %72 %idxprom172 = sext i32 %add171 to i64 %arrayidx173 = getelementptr inbounds i32, ptr %call2, i64 %idxprom172 %.pre396 = load ptr, ptr %m_data.i240, align 8 - %80 = zext nneg i32 %79 to i64 + %77 = zext nneg i32 %76 to i64 br label %for.body161 for.body161: ; preds = %for.body161.lr.ph, %for.inc195 %indvars.iv368 = phi i64 [ 0, %for.body161.lr.ph ], [ %indvars.iv.next369, %for.inc195 ] %arrayidx.i242 = getelementptr inbounds i32, ptr %.pre396, i64 %indvars.iv368 - %81 = load i32, ptr %arrayidx.i242, align 4 - %82 = zext i32 %81 to i64 - %cmp168.not = icmp eq i64 %indvars.iv374, %82 + %78 = load i32, ptr %arrayidx.i242, align 4 + %79 = zext i32 %78 to i64 + %cmp168.not = icmp eq i64 %indvars.iv374, %79 br i1 %cmp168.not, label %for.inc195, label %if.then169 if.then169: ; preds = %for.body161 - %83 = load i32, ptr %arrayidx173, align 4 - %mul174 = mul nsw i32 %81, %0 - %add175 = add nsw i32 %mul174, %78 + %80 = load i32, ptr %arrayidx173, align 4 + %mul174 = mul nsw i32 %78, %0 + %add175 = add nsw i32 %mul174, %75 %idxprom176 = sext i32 %add175 to i64 %arrayidx177 = getelementptr inbounds i32, ptr %call2, i64 %idxprom176 - %84 = load i32, ptr %arrayidx177, align 4 - %add178 = add i32 %84, %83 - %add180 = add nsw i32 %mul174, %75 + %81 = load i32, ptr %arrayidx177, align 4 + %add178 = add i32 %81, %80 + %add180 = add nsw i32 %mul174, %72 %idxprom181 = sext i32 %add180 to i64 %arrayidx182 = getelementptr inbounds i32, ptr %call2, i64 %idxprom181 - %85 = load i32, ptr %arrayidx182, align 4 - %cmp183 = icmp ugt i32 %85, %add178 + %82 = load i32, ptr %arrayidx182, align 4 + %cmp183 = icmp ugt i32 %82, %add178 br i1 %cmp183, label %if.then184, label %for.inc195 if.then184: ; preds = %if.then169 - %86 = sext i32 %81 to i64 - %arrayidx188 = getelementptr i32, ptr %76, i64 %86 + %83 = sext i32 %78 to i64 + %arrayidx188 = getelementptr i32, ptr %73, i64 %83 store i32 %add178, ptr %arrayidx188, align 4 store i32 %add178, ptr %arrayidx182, align 4 br label %for.inc195 for.inc195: ; preds = %for.body161, %if.then184, %if.then169 %indvars.iv.next369 = add nuw nsw i64 %indvars.iv368, 1 - %cmp160 = icmp ult i64 %indvars.iv.next369, %80 + %cmp160 = icmp ult i64 %indvars.iv.next369, %77 br i1 %cmp160, label %for.body161, label %for.inc198, !llvm.loop !201 for.inc198: ; preds = %for.inc195, %for.body148 %indvars.iv.next372 = add nuw nsw i64 %indvars.iv371, 1 - %cmp147 = icmp ult i64 %indvars.iv.next372, %77 + %cmp147 = icmp ult i64 %indvars.iv.next372, %74 br i1 %cmp147, label %for.body148, label %for.inc201, !llvm.loop !202 for.inc201: ; preds = %for.inc198, %for.cond141.preheader @@ -17376,34 +17372,34 @@ for.end203: ; preds = %for.inc201 br i1 %cmp138310, label %for.body.lr.ph.i.i.i250, label %_ZN20btAlignedObjectArrayI9NodeLinksE7destroyEii.exit.i.i for.body.lr.ph.i.i.i250: ; preds = %for.end203 - %zext.i.i = zext nneg i32 %32 to i64 + %zext.i.i = zext nneg i32 %29 to i64 br label %for.body.i.i.i252 for.body.i.i.i252: ; preds = %_ZN9NodeLinksD2Ev.exit.i.i.i, %for.body.lr.ph.i.i.i250 %indvars.iv.i.i.i253 = phi i64 [ 0, %for.body.lr.ph.i.i.i250 ], [ %indvars.iv.next.i.i.i255, %_ZN9NodeLinksD2Ev.exit.i.i.i ] - %87 = load ptr, ptr %m_data.i.i, align 8 - %arrayidx.i.i.i254 = getelementptr inbounds %struct.NodeLinks, ptr %87, i64 %indvars.iv.i.i.i253 + %84 = load ptr, ptr %m_data.i.i, align 8 + %arrayidx.i.i.i254 = getelementptr inbounds %struct.NodeLinks, ptr %84, i64 %indvars.iv.i.i.i253 %m_data.i.i.i.i.i.i.i = getelementptr inbounds %class.btAlignedObjectArray.104, ptr %arrayidx.i.i.i254, i64 0, i32 5 - %88 = load ptr, ptr %m_data.i.i.i.i.i.i.i, align 8 - %tobool.not.i.i.i.i.i.i.i = icmp eq ptr %88, null + %85 = load ptr, ptr %m_data.i.i.i.i.i.i.i, align 8 + %tobool.not.i.i.i.i.i.i.i = icmp eq ptr %85, null br i1 %tobool.not.i.i.i.i.i.i.i, label %_ZN9NodeLinksD2Ev.exit.i.i.i, label %if.then.i.i.i.i.i.i.i if.then.i.i.i.i.i.i.i: ; preds = %for.body.i.i.i252 %m_ownsMemory.i.i.i.i.i.i.i = getelementptr inbounds %class.btAlignedObjectArray.104, ptr %arrayidx.i.i.i254, i64 0, i32 6 - %89 = load i8, ptr %m_ownsMemory.i.i.i.i.i.i.i, align 8 - %90 = and i8 %89, 1 - %tobool2.not.i.i.i.i.i.i.i = icmp eq i8 %90, 0 + %86 = load i8, ptr %m_ownsMemory.i.i.i.i.i.i.i, align 8 + %87 = and i8 %86, 1 + %tobool2.not.i.i.i.i.i.i.i = icmp eq i8 %87, 0 br i1 %tobool2.not.i.i.i.i.i.i.i, label %_ZN9NodeLinksD2Ev.exit.i.i.i, label %if.then3.i.i.i.i.i.i.i if.then3.i.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %88) + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %85) to label %_ZN9NodeLinksD2Ev.exit.i.i.i unwind label %terminate.lpad.i.i.i.i.i terminate.lpad.i.i.i.i.i: ; preds = %if.then3.i.i.i.i.i.i.i - %91 = landingpad { ptr, i32 } + %88 = landingpad { ptr, i32 } catch ptr null - %92 = extractvalue { ptr, i32 } %91, 0 - call void @__clang_call_terminate(ptr %92) #45 + %89 = extractvalue { ptr, i32 } %88, 0 + call void @__clang_call_terminate(ptr %89) #45 unreachable _ZN9NodeLinksD2Ev.exit.i.i.i: ; preds = %if.then3.i.i.i.i.i.i.i, %if.then.i.i.i.i.i.i.i, %for.body.i.i.i252 @@ -17415,29 +17411,29 @@ _ZN9NodeLinksD2Ev.exit.i.i.i: ; preds = %if.then3.i.i.i.i.i. %m_capacity.i.i.i.i.i.i.i = getelementptr inbounds %class.btAlignedObjectArray.104, ptr %arrayidx.i.i.i254, i64 0, i32 3 store i32 0, ptr %m_capacity.i.i.i.i.i.i.i, align 8 %indvars.iv.next.i.i.i255 = add nuw nsw i64 %indvars.iv.i.i.i253, 1 - %93 = icmp eq i64 %indvars.iv.next.i.i.i255, %zext.i.i - br i1 %93, label %_ZN20btAlignedObjectArrayI9NodeLinksE7destroyEii.exit.i.i, label %for.body.i.i.i252, !llvm.loop !204 + %90 = icmp eq i64 %indvars.iv.next.i.i.i255, %zext.i.i + br i1 %90, label %_ZN20btAlignedObjectArrayI9NodeLinksE7destroyEii.exit.i.i, label %for.body.i.i.i252, !llvm.loop !204 _ZN20btAlignedObjectArrayI9NodeLinksE7destroyEii.exit.i.i: ; preds = %_ZN9NodeLinksD2Ev.exit.i.i.i, %for.cond135.preheader, %for.end203 - %94 = load ptr, ptr %m_data.i.i, align 8 - %tobool.not.i.i.i244 = icmp eq ptr %94, null + %91 = load ptr, ptr %m_data.i.i, align 8 + %tobool.not.i.i.i244 = icmp eq ptr %91, null br i1 %tobool.not.i.i.i244, label %_ZN20btAlignedObjectArrayI9NodeLinksED2Ev.exit, label %if.then.i.i.i245 if.then.i.i.i245: ; preds = %_ZN20btAlignedObjectArrayI9NodeLinksE7destroyEii.exit.i.i - %95 = load i8, ptr %m_ownsMemory.i.i, align 8 - %96 = and i8 %95, 1 - %tobool2.not.i.i.i247 = icmp eq i8 %96, 0 + %92 = load i8, ptr %m_ownsMemory.i.i, align 8 + %93 = and i8 %92, 1 + %tobool2.not.i.i.i247 = icmp eq i8 %93, 0 br i1 %tobool2.not.i.i.i247, label %_ZN20btAlignedObjectArrayI9NodeLinksED2Ev.exit, label %if.then3.i.i.i248 if.then3.i.i.i248: ; preds = %if.then.i.i.i245 - invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %94) + invoke void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %91) to label %_ZN20btAlignedObjectArrayI9NodeLinksED2Ev.exit unwind label %terminate.lpad.i terminate.lpad.i: ; preds = %if.then3.i.i.i248 - %97 = landingpad { ptr, i32 } + %94 = landingpad { ptr, i32 } catch ptr null - %98 = extractvalue { ptr, i32 } %97, 0 - call void @__clang_call_terminate(ptr %98) #45 + %95 = extractvalue { ptr, i32 } %94, 0 + call void @__clang_call_terminate(ptr %95) #45 unreachable _ZN20btAlignedObjectArrayI9NodeLinksED2Ev.exit: ; preds = %_ZN20btAlignedObjectArrayI9NodeLinksE7destroyEii.exit.i.i, %if.then.i.i.i245, %if.then3.i.i.i248 @@ -17448,7 +17444,7 @@ _ZN20btAlignedObjectArrayI9NodeLinksED2Ev.exit: ; preds = %_ZN20btAlignedObjec br label %if.end250 ehcleanup: ; preds = %lpad62, %lpad - %.pn = phi { ptr, i32 } [ %54, %lpad ], [ %55, %lpad62 ] + %.pn = phi { ptr, i32 } [ %51, %lpad ], [ %52, %lpad62 ] call void @_ZN20btAlignedObjectArrayI9NodeLinksED2Ev(ptr noundef nonnull align 8 dereferenceable(25) %nodeLinks) #44 resume { ptr, i32 } %.pn @@ -17463,7 +17459,7 @@ for.body253.lr.ph: ; preds = %if.end250 %m_data.i.i.i.i276 = getelementptr inbounds %class.btSoftBody, ptr %this, i64 0, i32 13, i32 5 %m_ownsMemory.i.i.i.i272 = getelementptr inbounds %class.btSoftBody, ptr %this, i64 0, i32 13, i32 6 %m_bUpdateRtCst.i.i = getelementptr inbounds %class.btSoftBody, ptr %this, i64 0, i32 31 - %99 = zext nneg i32 %0 to i64 + %96 = zext nneg i32 %0 to i64 %wide.trip.count393 = zext nneg i32 %0 to i64 br label %for.body253 @@ -17478,47 +17474,47 @@ for.body253: ; preds = %for.body253.lr.ph, %indvars.iv381 = phi i64 [ 1, %for.body253.lr.ph ], [ %indvars.iv.next382, %for.cond251.loopexit ] %nlinks.0318 = phi i32 [ 0, %for.body253.lr.ph ], [ %nlinks.1.lcssa, %for.cond251.loopexit ] %indvars.iv.next390 = add nuw nsw i64 %indvars.iv389, 1 - %cmp256312 = icmp ult i64 %indvars.iv.next390, %99 + %cmp256312 = icmp ult i64 %indvars.iv.next390, %96 br i1 %cmp256312, label %for.body257.lr.ph, label %for.cond251.loopexit for.body257.lr.ph: ; preds = %for.body253 - %100 = trunc i64 %indvars.iv389 to i32 - %101 = mul i32 %0, %100 - %102 = zext i32 %101 to i64 - %invariant.gep403 = getelementptr i32, ptr %call2, i64 %102 + %97 = trunc i64 %indvars.iv389 to i32 + %98 = mul i32 %0, %97 + %99 = zext i32 %98 to i64 + %invariant.gep409 = getelementptr i32, ptr %call2, i64 %99 br label %for.body257 for.body257: ; preds = %for.body257.lr.ph, %for.inc270 %indvars.iv383 = phi i64 [ %indvars.iv381, %for.body257.lr.ph ], [ %indvars.iv.next384, %for.inc270 ] %nlinks.1314 = phi i32 [ %nlinks.0318, %for.body257.lr.ph ], [ %nlinks.2, %for.inc270 ] - %gep404 = getelementptr i32, ptr %invariant.gep403, i64 %indvars.iv383 - %103 = load i32, ptr %gep404, align 4 - %cmp262 = icmp eq i32 %103, %distance + %gep410 = getelementptr i32, ptr %invariant.gep409, i64 %indvars.iv383 + %100 = load i32, ptr %gep410, align 4 + %cmp262 = icmp eq i32 %100, %distance br i1 %cmp262, label %if.then263, label %for.inc270 if.then263: ; preds = %for.body257 - %104 = load ptr, ptr %m_data.i.i256, align 8 - %arrayidx.i.i = getelementptr inbounds %"struct.btSoftBody::Node", ptr %104, i64 %indvars.iv383 - %arrayidx.i3.i = getelementptr inbounds %"struct.btSoftBody::Node", ptr %104, i64 %indvars.iv389 + %101 = load ptr, ptr %m_data.i.i256, align 8 + %arrayidx.i.i = getelementptr inbounds %"struct.btSoftBody::Node", ptr %101, i64 %indvars.iv383 + %arrayidx.i3.i = getelementptr inbounds %"struct.btSoftBody::Node", ptr %101, i64 %indvars.iv389 br i1 %tobool.not.i, label %cond.false.i, label %if.end.i cond.false.i: ; preds = %if.then263 - %105 = load ptr, ptr %m_data.i3.i, align 8 - %106 = load ptr, ptr %105, align 8 + %102 = load ptr, ptr %m_data.i3.i, align 8 + %103 = load ptr, ptr %102, align 8 br label %if.end.i if.end.i: ; preds = %cond.false.i, %if.then263 - %l.sroa.4.0.i = phi ptr [ %mat, %if.then263 ], [ %106, %cond.false.i ] - %107 = load i32, ptr %m_size.i115, align 4 - %108 = load i32, ptr %m_capacity.i.i.i265, align 8 - %cmp.i.i266 = icmp eq i32 %107, %108 + %l.sroa.4.0.i = phi ptr [ %mat, %if.then263 ], [ %103, %cond.false.i ] + %104 = load i32, ptr %m_size.i115, align 4 + %105 = load i32, ptr %m_capacity.i.i.i265, align 8 + %cmp.i.i266 = icmp eq i32 %104, %105 br i1 %cmp.i.i266, label %if.then.i.i267, label %_ZN10btSoftBody10appendLinkEiPNS_8MaterialE.exit if.then.i.i267: ; preds = %if.end.i - %tobool.not.i.i.i268 = icmp eq i32 %107, 0 - %mul.i.i.i = shl nsw i32 %107, 1 + %tobool.not.i.i.i268 = icmp eq i32 %104, 0 + %mul.i.i.i = shl nsw i32 %104, 1 %cond.i.i.i = select i1 %tobool.not.i.i.i268, i32 1, i32 %mul.i.i.i - %cmp.i.i.i = icmp slt i32 %107, %cond.i.i.i + %cmp.i.i.i = icmp slt i32 %104, %cond.i.i.i br i1 %cmp.i.i.i, label %if.then.i.i.i269, label %_ZN10btSoftBody10appendLinkEiPNS_8MaterialE.exit if.then.i.i.i269: ; preds = %if.then.i.i267 @@ -17533,38 +17529,38 @@ if.then.i.i.i.i271: ; preds = %if.then.i.i.i269 br label %_ZN20btAlignedObjectArrayIN10btSoftBody4LinkEE8allocateEi.exit.i.i.i _ZN20btAlignedObjectArrayIN10btSoftBody4LinkEE8allocateEi.exit.i.i.i: ; preds = %if.then.i.i.i.i271, %if.then.i.i.i269 - %109 = phi i32 [ %.pre.i.i, %if.then.i.i.i.i271 ], [ %107, %if.then.i.i.i269 ] + %106 = phi i32 [ %.pre.i.i, %if.then.i.i.i.i271 ], [ %104, %if.then.i.i.i269 ] %retval.0.i.i.i.i = phi ptr [ %call.i.i.i.i.i, %if.then.i.i.i.i271 ], [ null, %if.then.i.i.i269 ] - %cmp4.i.i.i.i = icmp sgt i32 %109, 0 + %cmp4.i.i.i.i = icmp sgt i32 %106, 0 br i1 %cmp4.i.i.i.i, label %for.body.lr.ph.i.i.i.i, label %_ZNK20btAlignedObjectArrayIN10btSoftBody4LinkEE4copyEiiPS1_.exit.i.i.i for.body.lr.ph.i.i.i.i: ; preds = %_ZN20btAlignedObjectArrayIN10btSoftBody4LinkEE8allocateEi.exit.i.i.i - %wide.trip.count.i.i.i.i = zext nneg i32 %109 to i64 + %wide.trip.count.i.i.i.i = zext nneg i32 %106 to i64 br label %for.body.i.i.i.i for.body.i.i.i.i: ; preds = %for.body.i.i.i.i, %for.body.lr.ph.i.i.i.i %indvars.iv.i.i.i.i = phi i64 [ 0, %for.body.lr.ph.i.i.i.i ], [ %indvars.iv.next.i.i.i.i, %for.body.i.i.i.i ] %arrayidx.i.i.i.i = getelementptr inbounds %"struct.btSoftBody::Link", ptr %retval.0.i.i.i.i, i64 %indvars.iv.i.i.i.i - %110 = load ptr, ptr %m_data.i.i.i.i276, align 8 - %arrayidx3.i.i.i.i = getelementptr inbounds %"struct.btSoftBody::Link", ptr %110, i64 %indvars.iv.i.i.i.i + %107 = load ptr, ptr %m_data.i.i.i.i276, align 8 + %arrayidx3.i.i.i.i = getelementptr inbounds %"struct.btSoftBody::Link", ptr %107, i64 %indvars.iv.i.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %arrayidx.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(72) %arrayidx3.i.i.i.i, i64 72, i1 false) %indvars.iv.next.i.i.i.i = add nuw nsw i64 %indvars.iv.i.i.i.i, 1 %exitcond.not.i.i.i.i = icmp eq i64 %indvars.iv.next.i.i.i.i, %wide.trip.count.i.i.i.i br i1 %exitcond.not.i.i.i.i, label %_ZNK20btAlignedObjectArrayIN10btSoftBody4LinkEE4copyEiiPS1_.exit.i.i.i, label %for.body.i.i.i.i, !llvm.loop !54 _ZNK20btAlignedObjectArrayIN10btSoftBody4LinkEE4copyEiiPS1_.exit.i.i.i: ; preds = %for.body.i.i.i.i, %_ZN20btAlignedObjectArrayIN10btSoftBody4LinkEE8allocateEi.exit.i.i.i - %111 = load ptr, ptr %m_data.i.i.i.i276, align 8 - %tobool.not.i6.i.i.i = icmp eq ptr %111, null + %108 = load ptr, ptr %m_data.i.i.i.i276, align 8 + %tobool.not.i6.i.i.i = icmp eq ptr %108, null br i1 %tobool.not.i6.i.i.i, label %_ZN20btAlignedObjectArrayIN10btSoftBody4LinkEE10deallocateEv.exit.i.i.i, label %if.then.i7.i.i.i if.then.i7.i.i.i: ; preds = %_ZNK20btAlignedObjectArrayIN10btSoftBody4LinkEE4copyEiiPS1_.exit.i.i.i - %112 = load i8, ptr %m_ownsMemory.i.i.i.i272, align 8 - %113 = and i8 %112, 1 - %tobool2.not.i.i.i.i273 = icmp eq i8 %113, 0 + %109 = load i8, ptr %m_ownsMemory.i.i.i.i272, align 8 + %110 = and i8 %109, 1 + %tobool2.not.i.i.i.i273 = icmp eq i8 %110, 0 br i1 %tobool2.not.i.i.i.i273, label %_ZN20btAlignedObjectArrayIN10btSoftBody4LinkEE10deallocateEv.exit.i.i.i, label %if.then3.i.i.i.i274 if.then3.i.i.i.i274: ; preds = %if.then.i7.i.i.i - call void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %111) + call void @_Z21btAlignedFreeInternalPv(ptr noundef nonnull %108) br label %_ZN20btAlignedObjectArrayIN10btSoftBody4LinkEE10deallocateEv.exit.i.i.i _ZN20btAlignedObjectArrayIN10btSoftBody4LinkEE10deallocateEv.exit.i.i.i: ; preds = %if.then3.i.i.i.i274, %if.then.i7.i.i.i, %_ZNK20btAlignedObjectArrayIN10btSoftBody4LinkEE4copyEiiPS1_.exit.i.i.i @@ -17575,52 +17571,52 @@ _ZN20btAlignedObjectArrayIN10btSoftBody4LinkEE10deallocateEv.exit.i.i.i: ; preds br label %_ZN10btSoftBody10appendLinkEiPNS_8MaterialE.exit _ZN10btSoftBody10appendLinkEiPNS_8MaterialE.exit: ; preds = %if.end.i, %if.then.i.i267, %_ZN20btAlignedObjectArrayIN10btSoftBody4LinkEE10deallocateEv.exit.i.i.i - %114 = phi i32 [ %.pre2.i.i, %_ZN20btAlignedObjectArrayIN10btSoftBody4LinkEE10deallocateEv.exit.i.i.i ], [ %107, %if.then.i.i267 ], [ %107, %if.end.i ] - %115 = load ptr, ptr %m_data.i.i.i.i276, align 8 - %idxprom.i5.i = sext i32 %114 to i64 - %arrayidx.i6.i = getelementptr inbounds %"struct.btSoftBody::Link", ptr %115, i64 %idxprom.i5.i + %111 = phi i32 [ %.pre2.i.i, %_ZN20btAlignedObjectArrayIN10btSoftBody4LinkEE10deallocateEv.exit.i.i.i ], [ %104, %if.then.i.i267 ], [ %104, %if.end.i ] + %112 = load ptr, ptr %m_data.i.i.i.i276, align 8 + %idxprom.i5.i = sext i32 %111 to i64 + %arrayidx.i6.i = getelementptr inbounds %"struct.btSoftBody::Link", ptr %112, i64 %idxprom.i5.i store ptr null, ptr %arrayidx.i6.i, align 8 %l.sroa.4.0.arrayidx.i6.sroa_idx.i = getelementptr inbounds i8, ptr %arrayidx.i6.i, i64 8 store ptr %l.sroa.4.0.i, ptr %l.sroa.4.0.arrayidx.i6.sroa_idx.i, align 8 %l.sroa.5.0.arrayidx.i6.sroa_idx.i = getelementptr inbounds i8, ptr %arrayidx.i6.i, i64 16 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %l.sroa.5.0.arrayidx.i6.sroa_idx.i, i8 0, i64 56, i1 false) - %116 = load i32, ptr %m_size.i115, align 4 - %inc.i.i = add nsw i32 %116, 1 + %113 = load i32, ptr %m_size.i115, align 4 + %inc.i.i = add nsw i32 %113, 1 store i32 %inc.i.i, ptr %m_size.i115, align 4 - %117 = load ptr, ptr %m_data.i.i.i.i276, align 8 - %118 = sext i32 %inc.i.i to i64 - %119 = getelementptr %"struct.btSoftBody::Link", ptr %117, i64 %118 - %m_n.i.i = getelementptr %"struct.btSoftBody::Link", ptr %119, i64 -1, i32 2 + %114 = load ptr, ptr %m_data.i.i.i.i276, align 8 + %115 = sext i32 %inc.i.i to i64 + %116 = getelementptr %"struct.btSoftBody::Link", ptr %114, i64 %115 + %m_n.i.i = getelementptr %"struct.btSoftBody::Link", ptr %116, i64 -1, i32 2 store ptr %arrayidx.i.i, ptr %m_n.i.i, align 8 - %arrayidx6.i.i = getelementptr %"struct.btSoftBody::Link", ptr %119, i64 -1, i32 2, i64 1 + %arrayidx6.i.i = getelementptr %"struct.btSoftBody::Link", ptr %116, i64 -1, i32 2, i64 1 store ptr %arrayidx.i3.i, ptr %arrayidx6.i.i, align 8 - %m_x.i.i = getelementptr inbounds %"struct.btSoftBody::Node", ptr %104, i64 %indvars.iv383, i32 1 - %m_x11.i.i = getelementptr inbounds %"struct.btSoftBody::Node", ptr %104, i64 %indvars.iv389, i32 1 - %120 = load float, ptr %m_x.i.i, align 4 - %121 = load float, ptr %m_x11.i.i, align 4 - %sub.i.i.i = fsub float %120, %121 - %arrayidx5.i.i.i = getelementptr inbounds %"struct.btSoftBody::Node", ptr %104, i64 %indvars.iv383, i32 1, i32 0, i64 1 - %122 = load float, ptr %arrayidx5.i.i.i, align 4 - %arrayidx7.i7.i.i = getelementptr inbounds %"struct.btSoftBody::Node", ptr %104, i64 %indvars.iv389, i32 1, i32 0, i64 1 - %123 = load float, ptr %arrayidx7.i7.i.i, align 4 - %sub8.i.i.i = fsub float %122, %123 - %arrayidx11.i.i.i = getelementptr inbounds %"struct.btSoftBody::Node", ptr %104, i64 %indvars.iv383, i32 1, i32 0, i64 2 - %124 = load float, ptr %arrayidx11.i.i.i, align 4 - %arrayidx13.i.i.i = getelementptr inbounds %"struct.btSoftBody::Node", ptr %104, i64 %indvars.iv389, i32 1, i32 0, i64 2 - %125 = load float, ptr %arrayidx13.i.i.i, align 4 - %sub14.i.i.i = fsub float %124, %125 + %m_x.i.i = getelementptr inbounds %"struct.btSoftBody::Node", ptr %101, i64 %indvars.iv383, i32 1 + %m_x11.i.i = getelementptr inbounds %"struct.btSoftBody::Node", ptr %101, i64 %indvars.iv389, i32 1 + %117 = load float, ptr %m_x.i.i, align 4 + %118 = load float, ptr %m_x11.i.i, align 4 + %sub.i.i.i = fsub float %117, %118 + %arrayidx5.i.i.i = getelementptr inbounds %"struct.btSoftBody::Node", ptr %101, i64 %indvars.iv383, i32 1, i32 0, i64 1 + %119 = load float, ptr %arrayidx5.i.i.i, align 4 + %arrayidx7.i7.i.i = getelementptr inbounds %"struct.btSoftBody::Node", ptr %101, i64 %indvars.iv389, i32 1, i32 0, i64 1 + %120 = load float, ptr %arrayidx7.i7.i.i, align 4 + %sub8.i.i.i = fsub float %119, %120 + %arrayidx11.i.i.i = getelementptr inbounds %"struct.btSoftBody::Node", ptr %101, i64 %indvars.iv383, i32 1, i32 0, i64 2 + %121 = load float, ptr %arrayidx11.i.i.i, align 4 + %arrayidx13.i.i.i = getelementptr inbounds %"struct.btSoftBody::Node", ptr %101, i64 %indvars.iv389, i32 1, i32 0, i64 2 + %122 = load float, ptr %arrayidx13.i.i.i, align 4 + %sub14.i.i.i = fsub float %121, %122 %mul8.i.i.i.i.i = fmul float %sub8.i.i.i, %sub8.i.i.i - %126 = call float @llvm.fmuladd.f32(float %sub.i.i.i, float %sub.i.i.i, float %mul8.i.i.i.i.i) - %127 = call noundef float @llvm.fmuladd.f32(float %sub14.i.i.i, float %sub14.i.i.i, float %126) - %sqrt.i.i.i = call noundef float @llvm.sqrt.f32(float %127) - %m_rl.i.i = getelementptr %"struct.btSoftBody::Link", ptr %119, i64 -1, i32 3 + %123 = call float @llvm.fmuladd.f32(float %sub.i.i.i, float %sub.i.i.i, float %mul8.i.i.i.i.i) + %124 = call noundef float @llvm.fmuladd.f32(float %sub14.i.i.i, float %sub14.i.i.i, float %123) + %sqrt.i.i.i = call noundef float @llvm.sqrt.f32(float %124) + %m_rl.i.i = getelementptr %"struct.btSoftBody::Link", ptr %116, i64 -1, i32 3 store float %sqrt.i.i.i, ptr %m_rl.i.i, align 8 store i8 1, ptr %m_bUpdateRtCst.i.i, align 4 - %128 = load i32, ptr %m_size.i115, align 4 - %129 = load ptr, ptr %m_data.i.i.i.i276, align 8 - %130 = sext i32 %128 to i64 - %131 = getelementptr %"struct.btSoftBody::Link", ptr %129, i64 %130 - %m_bbending = getelementptr %"struct.btSoftBody::Link", ptr %131, i64 -1, i32 4 + %125 = load i32, ptr %m_size.i115, align 4 + %126 = load ptr, ptr %m_data.i.i.i.i276, align 8 + %127 = sext i32 %125 to i64 + %128 = getelementptr %"struct.btSoftBody::Link", ptr %126, i64 %127 + %m_bbending = getelementptr %"struct.btSoftBody::Link", ptr %128, i64 -1, i32 4 %bf.load = load i8, ptr %m_bbending, align 4 %bf.set = or i8 %bf.load, 1 store i8 %bf.set, ptr %m_bbending, align 4 diff --git a/bench/cpython/optimized/Hacl_Hash_SHA1.ll b/bench/cpython/optimized/Hacl_Hash_SHA1.ll index 01821712a90..22a3315fd3a 100644 --- a/bench/cpython/optimized/Hacl_Hash_SHA1.ll +++ b/bench/cpython/optimized/Hacl_Hash_SHA1.ll @@ -90,21 +90,17 @@ if.then.i: ; preds = %for.body.i br label %if.end.i if.else.i: ; preds = %for.body.i - %1 = add nuw nsw i64 %indvars.iv.i, 4294967293 - %idxprom.i = and i64 %1, 4294967295 - %arrayidx7.i = getelementptr [80 x i32], ptr %_w.i, i64 0, i64 %idxprom.i + %1 = add nsw i64 %indvars.iv.i, -3 + %arrayidx7.i = getelementptr [80 x i32], ptr %_w.i, i64 0, i64 %1 %2 = load i32, ptr %arrayidx7.i, align 4 - %3 = add nuw nsw i64 %indvars.iv.i, 4294967288 - %idxprom9.i = and i64 %3, 4294967295 - %arrayidx10.i = getelementptr [80 x i32], ptr %_w.i, i64 0, i64 %idxprom9.i + %3 = add nsw i64 %indvars.iv.i, -8 + %arrayidx10.i = getelementptr [80 x i32], ptr %_w.i, i64 0, i64 %3 %4 = load i32, ptr %arrayidx10.i, align 4 - %5 = add nuw nsw i64 %indvars.iv.i, 4294967282 - %idxprom12.i = and i64 %5, 4294967295 - %arrayidx13.i = getelementptr [80 x i32], ptr %_w.i, i64 0, i64 %idxprom12.i + %5 = add nsw i64 %indvars.iv.i, -14 + %arrayidx13.i = getelementptr [80 x i32], ptr %_w.i, i64 0, i64 %5 %6 = load i32, ptr %arrayidx13.i, align 4 - %7 = add nuw nsw i64 %indvars.iv.i, 4294967280 - %idxprom15.i = and i64 %7, 4294967295 - %arrayidx16.i = getelementptr [80 x i32], ptr %_w.i, i64 0, i64 %idxprom15.i + %7 = add nsw i64 %indvars.iv.i, -16 + %arrayidx16.i = getelementptr [80 x i32], ptr %_w.i, i64 0, i64 %7 %8 = load i32, ptr %arrayidx16.i, align 4 %xor.i = xor i32 %4, %2 %xor17.i = xor i32 %xor.i, %6 diff --git a/bench/cpython/optimized/ceval.ll b/bench/cpython/optimized/ceval.ll index 75d5b8d66db..f2640b263cf 100644 --- a/bench/cpython/optimized/ceval.ll +++ b/bench/cpython/optimized/ceval.ll @@ -23677,8 +23677,7 @@ do.body15089.preheader: ; preds = %sw.bb15069 do.body15089: ; preds = %do.body15089.preheader, %do.end15105 %indvars.iv11767 = phi i64 [ %3067, %do.body15089.preheader ], [ %indvars.iv.next11768, %do.end15105 ] %indvars.iv.next11768 = add nsw i64 %indvars.iv11767, -1 - %idxprom15091 = and i64 %indvars.iv.next11768, 4294967295 - %arrayidx15092 = getelementptr ptr, ptr %arrayidx15078, i64 %idxprom15091 + %arrayidx15092 = getelementptr ptr, ptr %arrayidx15078, i64 %indvars.iv.next11768 %3068 = load ptr, ptr %arrayidx15092, align 8 %3069 = load i64, ptr %3068, align 8 %3070 = and i64 %3069, 2147483648 diff --git a/bench/cvc5/optimized/Solver.cc.ll b/bench/cvc5/optimized/Solver.cc.ll index e945742a202..93a2385e46b 100644 --- a/bench/cvc5/optimized/Solver.cc.ll +++ b/bench/cvc5/optimized/Solver.cc.ll @@ -8667,22 +8667,21 @@ for.body24: ; preds = %for.body24.lr.ph, % %indvars.iv43 = phi i64 [ %27, %for.body24.lr.ph ], [ %indvars.iv.next44, %_ZN4cvc58internal7Minisat4HeapINS1_6Solver10VarOrderLtEE13percolateDownEi.exit ] %indvars.iv.next44 = add nsw i64 %indvars.iv43, -1 %28 = load ptr, ptr %heap, align 8 - %29 = trunc i64 %indvars.iv.next44 to i32 - %idxprom.i.i = and i64 %indvars.iv.next44, 4294967295 - %arrayidx.i.i = getelementptr inbounds i32, ptr %28, i64 %idxprom.i.i - %30 = load i32, ptr %arrayidx.i.i, align 4 - %mul.i50.i = shl nuw nsw i32 %29, 1 + %arrayidx.i.i = getelementptr inbounds i32, ptr %28, i64 %indvars.iv.next44 + %29 = load i32, ptr %arrayidx.i.i, align 4 + %30 = trunc i64 %indvars.iv.next44 to i32 + %mul.i50.i = shl nuw nsw i32 %30, 1 %add.i51.i = or disjoint i32 %mul.i50.i, 1 %31 = load i32, ptr %sz.i, align 8 %cmp52.i = icmp slt i32 %add.i51.i, %31 - %idxprom.i1.i35.i = sext i32 %30 to i64 + %idxprom.i1.i35.i = sext i32 %29 to i64 br i1 %cmp52.i, label %while.body.i, label %_ZN4cvc58internal7Minisat4HeapINS1_6Solver10VarOrderLtEE13percolateDownEi.exit while.body.i: ; preds = %for.body24, %if.end.i %32 = phi i32 [ %46, %if.end.i ], [ %31, %for.body24 ] %add.i55.i = phi i32 [ %add.i.i, %if.end.i ], [ %add.i51.i, %for.body24 ] %mul.i54.i = phi i32 [ %mul.i.i25, %if.end.i ], [ %mul.i50.i, %for.body24 ] - %i.addr.053.i = phi i32 [ %cond.i, %if.end.i ], [ %29, %for.body24 ] + %i.addr.053.i = phi i32 [ %cond.i, %if.end.i ], [ %30, %for.body24 ] %mul.i17.i = add i32 %mul.i54.i, 2 %cmp8.i = icmp slt i32 %mul.i17.i, %32 %.pre.pre.i = load ptr, ptr %heap, align 8 @@ -8758,11 +8757,11 @@ while.end.loopexit.i: ; preds = %cond.end.i, %if.end br label %_ZN4cvc58internal7Minisat4HeapINS1_6Solver10VarOrderLtEE13percolateDownEi.exit _ZN4cvc58internal7Minisat4HeapINS1_6Solver10VarOrderLtEE13percolateDownEi.exit: ; preds = %for.body24, %while.end.loopexit.i - %idxprom.i46.pre-phi.i = phi i64 [ %.pre.i24, %while.end.loopexit.i ], [ %idxprom.i.i, %for.body24 ] + %idxprom.i46.pre-phi.i = phi i64 [ %.pre.i24, %while.end.loopexit.i ], [ %indvars.iv.next44, %for.body24 ] %47 = phi ptr [ %.pre62.i, %while.end.loopexit.i ], [ %28, %for.body24 ] - %i.addr.0.lcssa.i = phi i32 [ %i.addr.0.lcssa.ph.i, %while.end.loopexit.i ], [ %29, %for.body24 ] + %i.addr.0.lcssa.i = phi i32 [ %i.addr.0.lcssa.ph.i, %while.end.loopexit.i ], [ %30, %for.body24 ] %arrayidx.i47.i = getelementptr inbounds i32, ptr %47, i64 %idxprom.i46.pre-phi.i - store i32 %30, ptr %arrayidx.i47.i, align 4 + store i32 %29, ptr %arrayidx.i47.i, align 4 %48 = load ptr, ptr %indices.i, align 8 %arrayidx.i49.i = getelementptr inbounds i32, ptr %48, i64 %idxprom.i1.i35.i store i32 %i.addr.0.lcssa.i, ptr %arrayidx.i49.i, align 4 diff --git a/bench/double_conversion/optimized/fixed-dtoa.cc.ll b/bench/double_conversion/optimized/fixed-dtoa.cc.ll index 0970d2a220d..eec8bc0f08e 100644 --- a/bench/double_conversion/optimized/fixed-dtoa.cc.ll +++ b/bench/double_conversion/optimized/fixed-dtoa.cc.ll @@ -371,8 +371,7 @@ for.body.preheader.i: ; preds = %for.cond.preheader. for.body.i: ; preds = %for.body.i, %for.body.preheader.i %indvars.iv41.i = phi i64 [ %33, %for.body.preheader.i ], [ %indvars.iv.next42.i, %for.body.i ] - %idxprom.i19.i = and i64 %indvars.iv41.i, 4294967295 - %arrayidx.i20.i = getelementptr inbounds i8, ptr %buffer.coerce0, i64 %idxprom.i19.i + %arrayidx.i20.i = getelementptr inbounds i8, ptr %buffer.coerce0, i64 %indvars.iv41.i %34 = load i8, ptr %arrayidx.i20.i, align 1 %35 = sub nuw nsw i64 %indvars.iv41.i, %33 %arrayidx.i22.i = getelementptr inbounds i8, ptr %buffer.coerce0, i64 %35 diff --git a/bench/flac/optimized/bitreader.c.ll b/bench/flac/optimized/bitreader.c.ll index 83781cfdb46..31777a26dec 100644 --- a/bench/flac/optimized/bitreader.c.ll +++ b/bench/flac/optimized/bitreader.c.ll @@ -197,14 +197,13 @@ for.body.preheader.i.i: ; preds = %if.then.i for.body.i.i: ; preds = %for.body.i.i, %for.body.preheader.i.i %indvars.iv.i.i = phi i64 [ %6, %for.body.preheader.i.i ], [ %indvars.iv.next.i.i, %for.body.i.i ] %crc.012.i.i = phi i32 [ %5, %for.body.preheader.i.i ], [ %xor6.i.i, %for.body.i.i ] + %7 = sub nsw i64 56, %indvars.iv.i.i %shl.i.i = shl i32 %crc.012.i.i, 8 %and.i.i = and i32 %shl.i.i, 65280 %shr.i.i = lshr i32 %crc.012.i.i, 8 - %7 = trunc i64 %indvars.iv.i.i to i32 - %8 = sub nsw i32 56, %7 - %cmp2.i.i = icmp ult i32 %8, 64 - %sh_prom.i.i = zext nneg i32 %8 to i64 - %shr3.i.i = lshr i64 %4, %sh_prom.i.i + %8 = and i64 %7, 4294967232 + %cmp2.i.i = icmp eq i64 %8, 0 + %shr3.i.i = lshr i64 %4, %7 %9 = trunc i64 %shr3.i.i to i32 %10 = and i32 %9, 255 %conv.i.i = select i1 %cmp2.i.i, i32 %10, i32 0 @@ -626,14 +625,13 @@ for.body.preheader.i.i: ; preds = %if.then.i for.body.i.i: ; preds = %for.body.i.i, %for.body.preheader.i.i %indvars.iv.i.i = phi i64 [ %5, %for.body.preheader.i.i ], [ %indvars.iv.next.i.i, %for.body.i.i ] %crc.012.i.i = phi i32 [ %4, %for.body.preheader.i.i ], [ %xor6.i.i, %for.body.i.i ] + %6 = sub nsw i64 56, %indvars.iv.i.i %shl.i.i = shl i32 %crc.012.i.i, 8 %and.i.i = and i32 %shl.i.i, 65280 %shr.i.i = lshr i32 %crc.012.i.i, 8 - %6 = trunc i64 %indvars.iv.i.i to i32 - %7 = sub nsw i32 56, %6 - %cmp2.i.i = icmp ult i32 %7, 64 - %sh_prom.i.i = zext nneg i32 %7 to i64 - %shr3.i.i = lshr i64 %3, %sh_prom.i.i + %7 = and i64 %6, 4294967232 + %cmp2.i.i = icmp eq i64 %7, 0 + %shr3.i.i = lshr i64 %3, %6 %8 = trunc i64 %shr3.i.i to i32 %9 = and i32 %8, 255 %conv.i.i = select i1 %cmp2.i.i, i32 %9, i32 0 diff --git a/bench/flac/optimized/fixed.c.ll b/bench/flac/optimized/fixed.c.ll index 9ac275b389a..4aee6da6b4f 100644 --- a/bench/flac/optimized/fixed.c.ll +++ b/bench/flac/optimized/fixed.c.ll @@ -370,7 +370,7 @@ for.body.preheader: ; preds = %entry for.body: ; preds = %for.body.preheader, %cond.end261 %indvars.iv = phi i64 [ -4, %for.body.preheader ], [ %indvars.iv.next, %cond.end261 ] %order_4_is_valid.0181 = phi i32 [ 1, %for.body.preheader ], [ %order_4_is_valid.1, %cond.end261 ] - %order_3_is_valid.0180 = phi i32 [ 1, %for.body.preheader ], [ %14, %cond.end261 ] + %order_3_is_valid.0180 = phi i32 [ 1, %for.body.preheader ], [ %9, %cond.end261 ] %order_2_is_valid.0179 = phi i32 [ 1, %for.body.preheader ], [ %spec.select296, %cond.end261 ] %order_1_is_valid.0178 = phi i32 [ 1, %for.body.preheader ], [ %spec.select170, %cond.end261 ] %order_0_is_valid.0177 = phi i32 [ 1, %for.body.preheader ], [ %spec.select, %cond.end261 ] @@ -379,7 +379,7 @@ for.body: ; preds = %for.body.preheader, %total_error_2.0174 = phi i64 [ 0, %for.body.preheader ], [ %add265, %cond.end261 ] %total_error_3.0173 = phi i64 [ 0, %for.body.preheader ], [ %add266, %cond.end261 ] %total_error_4.0172 = phi i64 [ 0, %for.body.preheader ], [ %add267, %cond.end261 ] - %arrayidx = getelementptr inbounds i32, ptr %data, i64 %indvars.iv + %arrayidx = getelementptr i32, ptr %data, i64 %indvars.iv %0 = load i32, ptr %arrayidx, align 4 %conv = sext i32 %0 to i64 %cond = tail call i64 @llvm.abs.i64(i64 %conv, i1 true) @@ -419,26 +419,15 @@ cond.end170: ; preds = %cond.end97 br i1 %cmp172, label %cond.true174, label %cond.end261 cond.true174: ; preds = %cond.end170 - %6 = and i64 %indvars.iv, 4294967295 - %7 = getelementptr i32, ptr %data, i64 %6 - %arrayidx180 = getelementptr i32, ptr %7, i64 -1 - %8 = load i32, ptr %arrayidx180, align 4 - %conv181 = sext i32 %8 to i64 - %arrayidx186 = getelementptr i32, ptr %7, i64 -2 - %9 = load i32, ptr %arrayidx186, align 4 - %conv187 = sext i32 %9 to i64 - %mul188 = mul nsw i64 %conv187, 6 - %arrayidx192 = getelementptr i32, ptr %7, i64 -3 - %10 = load i32, ptr %arrayidx192, align 4 - %conv193 = sext i32 %10 to i64 - %11 = add nsw i64 %mul188, %conv - %mul182138 = add nsw i64 %conv193, %conv181 - %arrayidx198 = getelementptr i32, ptr %7, i64 -4 - %12 = load i32, ptr %arrayidx198, align 4 - %conv199 = sext i32 %12 to i64 - %sub195 = add nsw i64 %11, %conv199 - %13 = shl nsw i64 %mul182138, 2 - %add200 = sub nsw i64 %sub195, %13 + %mul188 = mul nsw i64 %conv60, 6 + %6 = add nsw i64 %mul188, %conv + %mul182138 = add nsw i64 %conv120, %conv18 + %arrayidx198 = getelementptr i32, ptr %arrayidx, i64 -4 + %7 = load i32, ptr %arrayidx198, align 4 + %conv199 = sext i32 %7 to i64 + %sub195 = add nsw i64 %6, %conv199 + %8 = shl nsw i64 %mul182138, 2 + %add200 = sub nsw i64 %sub195, %8 %spec.select146 = tail call i64 @llvm.abs.i64(i64 %add200, i1 true) br label %cond.end261 @@ -462,7 +451,7 @@ cond.end261: ; preds = %for.body, %cond.end %cmp274 = icmp ugt i64 %cond98154159.fr, 2147483647 %spec.select296 = select i1 %cmp274, i32 0, i32 %order_2_is_valid.0179 %cmp278 = icmp ugt i64 %cond171161.fr, 2147483647 - %14 = select i1 %cmp278, i32 0, i32 %order_3_is_valid.0180 + %9 = select i1 %cmp278, i32 0, i32 %order_3_is_valid.0180 %cmp282 = icmp ugt i64 %cond262, 2147483647 %order_4_is_valid.1 = select i1 %cmp282, i32 0, i32 %order_4_is_valid.0181 %indvars.iv.next = add nsw i64 %indvars.iv, 1 @@ -470,13 +459,13 @@ cond.end261: ; preds = %for.body, %cond.end br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !7 for.end: ; preds = %cond.end261 - %15 = icmp eq i32 %spec.select, 0 - %16 = icmp ne i32 %spec.select170, 0 - %17 = icmp ne i32 %spec.select296, 0 - %18 = icmp ne i32 %14, 0 - %19 = icmp ne i32 %order_4_is_valid.1, 0 + %10 = icmp eq i32 %spec.select, 0 + %11 = icmp ne i32 %spec.select170, 0 + %12 = icmp ne i32 %spec.select296, 0 + %13 = icmp ne i32 %9, 0 + %14 = icmp ne i32 %order_4_is_valid.1, 0 %cmp286.not = icmp eq i64 %add263, -1 - %or.cond = select i1 %15, i1 true, i1 %cmp286.not + %or.cond = select i1 %10, i1 true, i1 %cmp286.not br i1 %or.cond, label %if.end302, label %if.then288 if.then288: ; preds = %for.end @@ -490,24 +479,24 @@ cond.true291: ; preds = %if.then288 %div = fdiv reassoc nsz arcp double %mul293, %conv294 %call = tail call reassoc nsz arcp double @log(double noundef %div) #6 %div295 = fmul reassoc nsz arcp double %call, 0x3FF71547652B82FE - %20 = fptrunc double %div295 to float + %15 = fptrunc double %div295 to float br label %if.end302 if.end302: ; preds = %for.end, %cond.true291 - %storemerge = phi float [ %20, %cond.true291 ], [ 3.400000e+01, %for.end ] + %storemerge = phi float [ %15, %cond.true291 ], [ 3.400000e+01, %for.end ] %smallest_error.0 = phi i64 [ %add263, %cond.true291 ], [ -1, %for.end ] store float %storemerge, ptr %residual_bits_per_sample, align 4 %cmp305 = icmp ult i64 %add264, %smallest_error.0 - %or.cond139 = select i1 %16, i1 %cmp305, i1 false + %or.cond139 = select i1 %11, i1 %cmp305, i1 false br i1 %or.cond139, label %if.then307, label %if.end324 if.end302.thread: ; preds = %entry, %if.then288 %total_error_4.0.lcssa209255 = phi i64 [ %add267, %if.then288 ], [ 0, %entry ] %total_error_3.0.lcssa213254 = phi i64 [ %add266, %if.then288 ], [ 0, %entry ] %total_error_2.0.lcssa217253 = phi i64 [ %add265, %if.then288 ], [ 0, %entry ] - %order_2_is_valid.0.lcssa229251 = phi i1 [ %17, %if.then288 ], [ true, %entry ] - %order_3_is_valid.0.lcssa233250 = phi i1 [ %18, %if.then288 ], [ true, %entry ] - %order_4_is_valid.0.lcssa237249 = phi i1 [ %19, %if.then288 ], [ true, %entry ] + %order_2_is_valid.0.lcssa229251 = phi i1 [ %12, %if.then288 ], [ true, %entry ] + %order_3_is_valid.0.lcssa233250 = phi i1 [ %13, %if.then288 ], [ true, %entry ] + %order_4_is_valid.0.lcssa237249 = phi i1 [ %14, %if.then288 ], [ true, %entry ] store float 0.000000e+00, ptr %residual_bits_per_sample, align 4 br label %if.end324 @@ -522,14 +511,14 @@ cond.true310: ; preds = %if.then307 %div314 = fdiv reassoc nsz arcp double %mul312, %conv313 %call315 = tail call reassoc nsz arcp double @log(double noundef %div314) #6 %div316 = fmul reassoc nsz arcp double %call315, 0x3FF71547652B82FE - %21 = fptrunc double %div316 to float + %16 = fptrunc double %div316 to float br label %if.end324 if.end324: ; preds = %if.end302, %if.end302.thread, %cond.true310, %if.then307 - %.sink = phi float [ %21, %cond.true310 ], [ 0.000000e+00, %if.then307 ], [ 3.400000e+01, %if.end302.thread ], [ 3.400000e+01, %if.end302 ] - %order_4_is_valid.0.lcssa235 = phi i1 [ %19, %cond.true310 ], [ %19, %if.then307 ], [ %order_4_is_valid.0.lcssa237249, %if.end302.thread ], [ %19, %if.end302 ] - %order_3_is_valid.0.lcssa231 = phi i1 [ %18, %cond.true310 ], [ %18, %if.then307 ], [ %order_3_is_valid.0.lcssa233250, %if.end302.thread ], [ %18, %if.end302 ] - %order_2_is_valid.0.lcssa227 = phi i1 [ %17, %cond.true310 ], [ %17, %if.then307 ], [ %order_2_is_valid.0.lcssa229251, %if.end302.thread ], [ %17, %if.end302 ] + %.sink = phi float [ %16, %cond.true310 ], [ 0.000000e+00, %if.then307 ], [ 3.400000e+01, %if.end302.thread ], [ 3.400000e+01, %if.end302 ] + %order_4_is_valid.0.lcssa235 = phi i1 [ %14, %cond.true310 ], [ %14, %if.then307 ], [ %order_4_is_valid.0.lcssa237249, %if.end302.thread ], [ %14, %if.end302 ] + %order_3_is_valid.0.lcssa231 = phi i1 [ %13, %cond.true310 ], [ %13, %if.then307 ], [ %order_3_is_valid.0.lcssa233250, %if.end302.thread ], [ %13, %if.end302 ] + %order_2_is_valid.0.lcssa227 = phi i1 [ %12, %cond.true310 ], [ %12, %if.then307 ], [ %order_2_is_valid.0.lcssa229251, %if.end302.thread ], [ %12, %if.end302 ] %total_error_0.0.lcssa222 = phi i64 [ %add263, %cond.true310 ], [ %add263, %if.then307 ], [ 0, %if.end302.thread ], [ %add263, %if.end302 ] %total_error_2.0.lcssa215 = phi i64 [ %add265, %cond.true310 ], [ %add265, %if.then307 ], [ %total_error_2.0.lcssa217253, %if.end302.thread ], [ %add265, %if.end302 ] %total_error_3.0.lcssa211 = phi i64 [ %add266, %cond.true310 ], [ %add266, %if.then307 ], [ %total_error_3.0.lcssa213254, %if.end302.thread ], [ %add266, %if.end302 ] @@ -553,11 +542,11 @@ cond.true332: ; preds = %if.then329 %div336 = fdiv reassoc nsz arcp double %mul334, %conv335 %call337 = tail call reassoc nsz arcp double @log(double noundef %div336) #6 %div338 = fmul reassoc nsz arcp double %call337, 0x3FF71547652B82FE - %22 = fptrunc double %div338 to float + %17 = fptrunc double %div338 to float br label %if.end346 if.end346: ; preds = %if.end324, %cond.true332, %if.then329 - %.sink297 = phi float [ %22, %cond.true332 ], [ 0.000000e+00, %if.then329 ], [ 3.400000e+01, %if.end324 ] + %.sink297 = phi float [ %17, %cond.true332 ], [ 0.000000e+00, %if.then329 ], [ 3.400000e+01, %if.end324 ] %smallest_error.2 = phi i64 [ %total_error_2.0.lcssa215, %cond.true332 ], [ %total_error_2.0.lcssa215, %if.then329 ], [ %smallest_error.1, %if.end324 ] %order.2 = phi i32 [ 2, %cond.true332 ], [ 2, %if.then329 ], [ %order.1, %if.end324 ] %arrayidx345 = getelementptr inbounds float, ptr %residual_bits_per_sample, i64 2 @@ -577,11 +566,11 @@ cond.true354: ; preds = %if.then351 %div358 = fdiv reassoc nsz arcp double %mul356, %conv357 %call359 = tail call reassoc nsz arcp double @log(double noundef %div358) #6 %div360 = fmul reassoc nsz arcp double %call359, 0x3FF71547652B82FE - %23 = fptrunc double %div360 to float + %18 = fptrunc double %div360 to float br label %if.end368 if.end368: ; preds = %if.end346, %cond.true354, %if.then351 - %.sink298 = phi float [ %23, %cond.true354 ], [ 0.000000e+00, %if.then351 ], [ 3.400000e+01, %if.end346 ] + %.sink298 = phi float [ %18, %cond.true354 ], [ 0.000000e+00, %if.then351 ], [ 3.400000e+01, %if.end346 ] %smallest_error.3 = phi i64 [ %total_error_3.0.lcssa211, %cond.true354 ], [ %total_error_3.0.lcssa211, %if.then351 ], [ %smallest_error.2, %if.end346 ] %order.3 = phi i32 [ 3, %cond.true354 ], [ 3, %if.then351 ], [ %order.2, %if.end346 ] %arrayidx367 = getelementptr inbounds float, ptr %residual_bits_per_sample, i64 3 @@ -601,11 +590,11 @@ cond.true376: ; preds = %if.then373 %div380 = fdiv reassoc nsz arcp double %mul378, %conv379 %call381 = tail call reassoc nsz arcp double @log(double noundef %div380) #6 %div382 = fmul reassoc nsz arcp double %call381, 0x3FF71547652B82FE - %24 = fptrunc double %div382 to float + %19 = fptrunc double %div382 to float br label %if.end390 if.end390: ; preds = %if.end368, %cond.true376, %if.then373 - %.sink299 = phi float [ %24, %cond.true376 ], [ 0.000000e+00, %if.then373 ], [ 3.400000e+01, %if.end368 ] + %.sink299 = phi float [ %19, %cond.true376 ], [ 0.000000e+00, %if.then373 ], [ 3.400000e+01, %if.end368 ] %order.4 = phi i32 [ 4, %cond.true376 ], [ 4, %if.then373 ], [ %order.3, %if.end368 ] %arrayidx389 = getelementptr inbounds float, ptr %residual_bits_per_sample, i64 4 store float %.sink299, ptr %arrayidx389, align 4 @@ -625,7 +614,7 @@ for.body.preheader: ; preds = %entry for.body: ; preds = %for.body.preheader, %cond.end208 %indvars.iv = phi i64 [ -4, %for.body.preheader ], [ %indvars.iv.next, %cond.end208 ] %order_4_is_valid.0182 = phi i32 [ 1, %for.body.preheader ], [ %order_4_is_valid.1, %cond.end208 ] - %order_3_is_valid.0181 = phi i32 [ 1, %for.body.preheader ], [ %14, %cond.end208 ] + %order_3_is_valid.0181 = phi i32 [ 1, %for.body.preheader ], [ %9, %cond.end208 ] %order_2_is_valid.0180 = phi i32 [ 1, %for.body.preheader ], [ %spec.select296, %cond.end208 ] %order_1_is_valid.0179 = phi i32 [ 1, %for.body.preheader ], [ %spec.select170, %cond.end208 ] %order_0_is_valid.0178 = phi i32 [ 1, %for.body.preheader ], [ %spec.select, %cond.end208 ] @@ -634,7 +623,7 @@ for.body: ; preds = %for.body.preheader, %total_error_2.0175 = phi i64 [ 0, %for.body.preheader ], [ %add212, %cond.end208 ] %total_error_3.0174 = phi i64 [ 0, %for.body.preheader ], [ %add213, %cond.end208 ] %total_error_4.0173 = phi i64 [ 0, %for.body.preheader ], [ %add214, %cond.end208 ] - %arrayidx = getelementptr inbounds i64, ptr %data, i64 %indvars.iv + %arrayidx = getelementptr i64, ptr %data, i64 %indvars.iv %0 = load i64, ptr %arrayidx, align 8 %cond = tail call i64 @llvm.abs.i64(i64 %0, i1 true) %cmp6 = icmp sgt i64 %indvars.iv, -4 @@ -670,22 +659,14 @@ cond.end134: ; preds = %cond.end75 br i1 %cmp136, label %cond.true137, label %cond.end208 cond.true137: ; preds = %cond.end134 - %6 = and i64 %indvars.iv, 4294967295 - %7 = getelementptr i64, ptr %data, i64 %6 - %arrayidx142 = getelementptr i64, ptr %7, i64 -1 - %8 = load i64, ptr %arrayidx142, align 8 - %arrayidx147 = getelementptr i64, ptr %7, i64 -2 - %9 = load i64, ptr %arrayidx147, align 8 - %mul148 = mul nsw i64 %9, 6 - %arrayidx152 = getelementptr i64, ptr %7, i64 -3 - %10 = load i64, ptr %arrayidx152, align 8 - %11 = add i64 %mul148, %0 - %mul143138 = add i64 %10, %8 - %arrayidx157 = getelementptr i64, ptr %7, i64 -4 - %12 = load i64, ptr %arrayidx157, align 8 - %sub154 = add i64 %11, %12 - %13 = shl i64 %mul143138, 2 - %add158 = sub i64 %sub154, %13 + %mul148 = mul nsw i64 %4, 6 + %6 = add i64 %mul148, %0 + %mul143138 = add i64 %5, %1 + %arrayidx157 = getelementptr i64, ptr %arrayidx, i64 -4 + %7 = load i64, ptr %arrayidx157, align 8 + %sub154 = add i64 %6, %7 + %8 = shl i64 %mul143138, 2 + %add158 = sub i64 %sub154, %8 %spec.select146 = tail call i64 @llvm.abs.i64(i64 %add158, i1 true) br label %cond.end208 @@ -709,7 +690,7 @@ cond.end208: ; preds = %for.body, %cond.end %cmp219 = icmp ugt i64 %cond76154159.fr, 2147483647 %spec.select296 = select i1 %cmp219, i32 0, i32 %order_2_is_valid.0180 %cmp222 = icmp ugt i64 %cond135161.fr, 2147483647 - %14 = select i1 %cmp222, i32 0, i32 %order_3_is_valid.0181 + %9 = select i1 %cmp222, i32 0, i32 %order_3_is_valid.0181 %cmp225 = icmp ugt i64 %cond209, 2147483647 %order_4_is_valid.1 = select i1 %cmp225, i32 0, i32 %order_4_is_valid.0182 %indvars.iv.next = add nsw i64 %indvars.iv, 1 @@ -717,13 +698,13 @@ cond.end208: ; preds = %for.body, %cond.end br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !8 for.end: ; preds = %cond.end208 - %15 = icmp eq i32 %spec.select, 0 - %16 = icmp ne i32 %spec.select170, 0 - %17 = icmp ne i32 %spec.select296, 0 - %18 = icmp ne i32 %14, 0 - %19 = icmp ne i32 %order_4_is_valid.1, 0 + %10 = icmp eq i32 %spec.select, 0 + %11 = icmp ne i32 %spec.select170, 0 + %12 = icmp ne i32 %spec.select296, 0 + %13 = icmp ne i32 %9, 0 + %14 = icmp ne i32 %order_4_is_valid.1, 0 %cmp228.not = icmp eq i64 %add210, -1 - %or.cond = select i1 %15, i1 true, i1 %cmp228.not + %or.cond = select i1 %10, i1 true, i1 %cmp228.not br i1 %or.cond, label %if.end241, label %if.then229 if.then229: ; preds = %for.end @@ -737,24 +718,24 @@ cond.true231: ; preds = %if.then229 %div = fdiv reassoc nsz arcp double %mul232, %conv233 %call = tail call reassoc nsz arcp double @log(double noundef %div) #6 %div234 = fmul reassoc nsz arcp double %call, 0x3FF71547652B82FE - %20 = fptrunc double %div234 to float + %15 = fptrunc double %div234 to float br label %if.end241 if.end241: ; preds = %for.end, %cond.true231 - %storemerge = phi float [ %20, %cond.true231 ], [ 3.400000e+01, %for.end ] + %storemerge = phi float [ %15, %cond.true231 ], [ 3.400000e+01, %for.end ] %smallest_error.0 = phi i64 [ %add210, %cond.true231 ], [ -1, %for.end ] store float %storemerge, ptr %residual_bits_per_sample, align 4 %cmp244 = icmp ult i64 %add211, %smallest_error.0 - %or.cond139 = select i1 %16, i1 %cmp244, i1 false + %or.cond139 = select i1 %11, i1 %cmp244, i1 false br i1 %or.cond139, label %if.then246, label %if.end263 if.end241.thread: ; preds = %entry, %if.then229 %total_error_4.0.lcssa209255 = phi i64 [ %add214, %if.then229 ], [ 0, %entry ] %total_error_3.0.lcssa213254 = phi i64 [ %add213, %if.then229 ], [ 0, %entry ] %total_error_2.0.lcssa217253 = phi i64 [ %add212, %if.then229 ], [ 0, %entry ] - %order_2_is_valid.0.lcssa229251 = phi i1 [ %17, %if.then229 ], [ true, %entry ] - %order_3_is_valid.0.lcssa233250 = phi i1 [ %18, %if.then229 ], [ true, %entry ] - %order_4_is_valid.0.lcssa237249 = phi i1 [ %19, %if.then229 ], [ true, %entry ] + %order_2_is_valid.0.lcssa229251 = phi i1 [ %12, %if.then229 ], [ true, %entry ] + %order_3_is_valid.0.lcssa233250 = phi i1 [ %13, %if.then229 ], [ true, %entry ] + %order_4_is_valid.0.lcssa237249 = phi i1 [ %14, %if.then229 ], [ true, %entry ] store float 0.000000e+00, ptr %residual_bits_per_sample, align 4 br label %if.end263 @@ -769,14 +750,14 @@ cond.true249: ; preds = %if.then246 %div253 = fdiv reassoc nsz arcp double %mul251, %conv252 %call254 = tail call reassoc nsz arcp double @log(double noundef %div253) #6 %div255 = fmul reassoc nsz arcp double %call254, 0x3FF71547652B82FE - %21 = fptrunc double %div255 to float + %16 = fptrunc double %div255 to float br label %if.end263 if.end263: ; preds = %if.end241, %if.end241.thread, %cond.true249, %if.then246 - %.sink = phi float [ %21, %cond.true249 ], [ 0.000000e+00, %if.then246 ], [ 3.400000e+01, %if.end241.thread ], [ 3.400000e+01, %if.end241 ] - %order_4_is_valid.0.lcssa235 = phi i1 [ %19, %cond.true249 ], [ %19, %if.then246 ], [ %order_4_is_valid.0.lcssa237249, %if.end241.thread ], [ %19, %if.end241 ] - %order_3_is_valid.0.lcssa231 = phi i1 [ %18, %cond.true249 ], [ %18, %if.then246 ], [ %order_3_is_valid.0.lcssa233250, %if.end241.thread ], [ %18, %if.end241 ] - %order_2_is_valid.0.lcssa227 = phi i1 [ %17, %cond.true249 ], [ %17, %if.then246 ], [ %order_2_is_valid.0.lcssa229251, %if.end241.thread ], [ %17, %if.end241 ] + %.sink = phi float [ %16, %cond.true249 ], [ 0.000000e+00, %if.then246 ], [ 3.400000e+01, %if.end241.thread ], [ 3.400000e+01, %if.end241 ] + %order_4_is_valid.0.lcssa235 = phi i1 [ %14, %cond.true249 ], [ %14, %if.then246 ], [ %order_4_is_valid.0.lcssa237249, %if.end241.thread ], [ %14, %if.end241 ] + %order_3_is_valid.0.lcssa231 = phi i1 [ %13, %cond.true249 ], [ %13, %if.then246 ], [ %order_3_is_valid.0.lcssa233250, %if.end241.thread ], [ %13, %if.end241 ] + %order_2_is_valid.0.lcssa227 = phi i1 [ %12, %cond.true249 ], [ %12, %if.then246 ], [ %order_2_is_valid.0.lcssa229251, %if.end241.thread ], [ %12, %if.end241 ] %total_error_0.0.lcssa222 = phi i64 [ %add210, %cond.true249 ], [ %add210, %if.then246 ], [ 0, %if.end241.thread ], [ %add210, %if.end241 ] %total_error_2.0.lcssa215 = phi i64 [ %add212, %cond.true249 ], [ %add212, %if.then246 ], [ %total_error_2.0.lcssa217253, %if.end241.thread ], [ %add212, %if.end241 ] %total_error_3.0.lcssa211 = phi i64 [ %add213, %cond.true249 ], [ %add213, %if.then246 ], [ %total_error_3.0.lcssa213254, %if.end241.thread ], [ %add213, %if.end241 ] @@ -800,11 +781,11 @@ cond.true271: ; preds = %if.then268 %div275 = fdiv reassoc nsz arcp double %mul273, %conv274 %call276 = tail call reassoc nsz arcp double @log(double noundef %div275) #6 %div277 = fmul reassoc nsz arcp double %call276, 0x3FF71547652B82FE - %22 = fptrunc double %div277 to float + %17 = fptrunc double %div277 to float br label %if.end285 if.end285: ; preds = %if.end263, %cond.true271, %if.then268 - %.sink297 = phi float [ %22, %cond.true271 ], [ 0.000000e+00, %if.then268 ], [ 3.400000e+01, %if.end263 ] + %.sink297 = phi float [ %17, %cond.true271 ], [ 0.000000e+00, %if.then268 ], [ 3.400000e+01, %if.end263 ] %smallest_error.2 = phi i64 [ %total_error_2.0.lcssa215, %cond.true271 ], [ %total_error_2.0.lcssa215, %if.then268 ], [ %smallest_error.1, %if.end263 ] %order.2 = phi i32 [ 2, %cond.true271 ], [ 2, %if.then268 ], [ %order.1, %if.end263 ] %arrayidx284 = getelementptr inbounds float, ptr %residual_bits_per_sample, i64 2 @@ -824,11 +805,11 @@ cond.true293: ; preds = %if.then290 %div297 = fdiv reassoc nsz arcp double %mul295, %conv296 %call298 = tail call reassoc nsz arcp double @log(double noundef %div297) #6 %div299 = fmul reassoc nsz arcp double %call298, 0x3FF71547652B82FE - %23 = fptrunc double %div299 to float + %18 = fptrunc double %div299 to float br label %if.end307 if.end307: ; preds = %if.end285, %cond.true293, %if.then290 - %.sink298 = phi float [ %23, %cond.true293 ], [ 0.000000e+00, %if.then290 ], [ 3.400000e+01, %if.end285 ] + %.sink298 = phi float [ %18, %cond.true293 ], [ 0.000000e+00, %if.then290 ], [ 3.400000e+01, %if.end285 ] %smallest_error.3 = phi i64 [ %total_error_3.0.lcssa211, %cond.true293 ], [ %total_error_3.0.lcssa211, %if.then290 ], [ %smallest_error.2, %if.end285 ] %order.3 = phi i32 [ 3, %cond.true293 ], [ 3, %if.then290 ], [ %order.2, %if.end285 ] %arrayidx306 = getelementptr inbounds float, ptr %residual_bits_per_sample, i64 3 @@ -848,11 +829,11 @@ cond.true315: ; preds = %if.then312 %div319 = fdiv reassoc nsz arcp double %mul317, %conv318 %call320 = tail call reassoc nsz arcp double @log(double noundef %div319) #6 %div321 = fmul reassoc nsz arcp double %call320, 0x3FF71547652B82FE - %24 = fptrunc double %div321 to float + %19 = fptrunc double %div321 to float br label %if.end329 if.end329: ; preds = %if.end307, %cond.true315, %if.then312 - %.sink299 = phi float [ %24, %cond.true315 ], [ 0.000000e+00, %if.then312 ], [ 3.400000e+01, %if.end307 ] + %.sink299 = phi float [ %19, %cond.true315 ], [ 0.000000e+00, %if.then312 ], [ 3.400000e+01, %if.end307 ] %order.4 = phi i32 [ 4, %cond.true315 ], [ 4, %if.then312 ], [ %order.3, %if.end307 ] %arrayidx328 = getelementptr inbounds float, ptr %residual_bits_per_sample, i64 4 store float %.sink299, ptr %arrayidx328, align 4 diff --git a/bench/hermes/optimized/APFloat.cpp.ll b/bench/hermes/optimized/APFloat.cpp.ll index 5686ab40392..a32c7605e00 100644 --- a/bench/hermes/optimized/APFloat.cpp.ll +++ b/bench/hermes/optimized/APFloat.cpp.ll @@ -7309,8 +7309,7 @@ while.body: ; preds = %while.body.lr.ph, % br i1 %cmp21, label %if.end23, label %if.else if.else: ; preds = %while.body - %idxprom = and i64 %indvars.iv.next, 4294967295 - %arrayidx = getelementptr inbounds i64, ptr %retval.0.i.i, i64 %idxprom + %arrayidx = getelementptr inbounds i64, ptr %retval.0.i.i, i64 %indvars.iv.next %15 = load i64, ptr %arrayidx, align 8 %shl = shl i64 %15, %sh_prom br label %if.end23 diff --git a/bench/icu/optimized/locid.ll b/bench/icu/optimized/locid.ll index a7c1b46fb3b..706a8c47076 100644 --- a/bench/icu/optimized/locid.ll +++ b/bench/icu/optimized/locid.ll @@ -2068,8 +2068,7 @@ while.cond38: ; preds = %while.cond38.prehea land.rhs: ; preds = %while.cond38 %indvars.iv.next = add nsw i64 %indvars.iv, -1 - %idxprom = and i64 %indvars.iv.next, 4294967295 - %arrayidx40 = getelementptr inbounds i8, ptr %newVariant.addr.0, i64 %idxprom + %arrayidx40 = getelementptr inbounds i8, ptr %newVariant.addr.0, i64 %indvars.iv.next %12 = load i8, ptr %arrayidx40, align 1 %cmp42 = icmp eq i8 %12, 95 br i1 %cmp42, label %while.cond38, label %if.end45.loopexit.split.loop.exit122, !llvm.loop !8 diff --git a/bench/icu/optimized/loclikelysubtags.ll b/bench/icu/optimized/loclikelysubtags.ll index 9162da13d60..5bcd4b40346 100644 --- a/bench/icu/optimized/loclikelysubtags.ll +++ b/bench/icu/optimized/loclikelysubtags.ll @@ -4902,9 +4902,8 @@ for.body: ; preds = %for.body.lr.ph, %fo to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %for.body - %7 = mul i64 %indvars.iv, 3 - %idxprom15 = and i64 %7, 4294967295 - %arrayidx16 = getelementptr inbounds i32, ptr %call.i, i64 %idxprom15 + %7 = mul nuw nsw i64 %indvars.iv, 3 + %arrayidx16 = getelementptr inbounds i32, ptr %call.i, i64 %7 store i32 %call13, ptr %arrayidx16, align 4 call void @_ZN6icu_7513UnicodeStringD1Ev(ptr noundef nonnull align 8 dereferenceable(64) %agg.tmp) #13 %8 = load i32, ptr %arrayidx, align 4 diff --git a/bench/icu/optimized/number_longnames.ll b/bench/icu/optimized/number_longnames.ll index 84d119ef664..01ac92a245a 100644 --- a/bench/icu/optimized/number_longnames.ll +++ b/bench/icu/optimized/number_longnames.ll @@ -6995,9 +6995,8 @@ invoke.cont27: ; preds = %invoke.cont27.lr.ph to label %invoke.cont29 unwind label %lpad.loopexit invoke.cont29: ; preds = %invoke.cont27 - %17 = mul i64 %indvars.iv, 11 - %conv22 = and i64 %17, 4294967295 - %arrayidx.i = getelementptr inbounds %"class.icu_75::UnicodeString", ptr %14, i64 %conv22 + %17 = mul nuw nsw i64 %indvars.iv, 11 + %arrayidx.i = getelementptr inbounds %"class.icu_75::UnicodeString", ptr %14, i64 %17 invoke fastcc void @_ZN12_GLOBAL__N_114getMeasureDataERKN6icu_756LocaleERKNS0_11MeasureUnitERK16UNumberUnitWidthPKcPNS0_13UnicodeStringER10UErrorCode(ptr noundef nonnull align 8 dereferenceable(217) %loc, ptr noundef nonnull align 8 dereferenceable(19) %ref.tmp, ptr noundef nonnull align 4 dereferenceable(4) %width, ptr noundef %unitDisplayCase, ptr noundef nonnull %arrayidx.i, ptr noundef nonnull align 4 dereferenceable(4) %status) to label %invoke.cont31 unwind label %lpad30 @@ -7335,10 +7334,9 @@ if.end38: ; preds = %if.then36, %invoke. to label %invoke.cont40 unwind label %lpad21 invoke.cont40: ; preds = %if.end38 - %17 = mul i64 %indvars.iv, 11 - %conv42 = and i64 %17, 4294967295 + %17 = mul nuw nsw i64 %indvars.iv, 11 %18 = load ptr, ptr %fMixedUnitData62, align 8 - %arrayidx.i50 = getelementptr inbounds %"class.icu_75::UnicodeString", ptr %18, i64 %conv42 + %arrayidx.i50 = getelementptr inbounds %"class.icu_75::UnicodeString", ptr %18, i64 %17 call void @llvm.experimental.noalias.scope.decl(metadata !65) %idxprom.i = zext i32 %call41 to i64 %arrayidx.i51 = getelementptr inbounds %"class.icu_75::UnicodeString", ptr %arrayidx.i50, i64 %idxprom.i @@ -7447,10 +7445,9 @@ lpad.i57: ; preds = %.noexc58 invoke.cont60: ; preds = %invoke.cont.i, %invoke.cont57 %retval.0.i = phi i32 [ %cond.i.i.i, %invoke.cont.i ], [ 5, %invoke.cont57 ] call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %ruleString.i) - %27 = mul i64 %indvars.iv, 11 - %conv64 = and i64 %27, 4294967295 + %27 = mul nuw nsw i64 %indvars.iv, 11 %28 = load ptr, ptr %fMixedUnitData62, align 8 - %arrayidx.i61 = getelementptr inbounds %"class.icu_75::UnicodeString", ptr %28, i64 %conv64 + %arrayidx.i61 = getelementptr inbounds %"class.icu_75::UnicodeString", ptr %28, i64 %27 call void @llvm.experimental.noalias.scope.decl(metadata !68) %idxprom.i62 = zext nneg i32 %retval.0.i to i64 %arrayidx.i63 = getelementptr inbounds %"class.icu_75::UnicodeString", ptr %arrayidx.i61, i64 %idxprom.i62 diff --git a/bench/icu/optimized/olsontz.ll b/bench/icu/optimized/olsontz.ll index 94f2ec354ca..c05b55f6e60 100644 --- a/bench/icu/optimized/olsontz.ll +++ b/bench/icu/optimized/olsontz.ll @@ -1276,8 +1276,7 @@ for.body.us: ; preds = %for.cond.us if.then.i88.us: ; preds = %for.body.us %22 = trunc i64 %indvars.iv.next172 to i32 - %conv.i.us = shl i32 %22, 1 - %shl.i.us = and i32 %conv.i.us, 131070 + %shl.i.us = shl nuw nsw i32 %22, 1 %idxprom.i.us = zext nneg i32 %shl.i.us to i64 %arrayidx.i90.us = getelementptr inbounds i32, ptr %14, i64 %idxprom.i.us %23 = load i32, ptr %arrayidx.i90.us, align 4 @@ -1339,8 +1338,7 @@ for.body: ; preds = %for.cond if.then.i88: ; preds = %for.body %29 = trunc i64 %indvars.iv.next to i32 - %conv.i = shl i32 %29, 1 - %shl.i = and i32 %conv.i, 131070 + %shl.i = shl nuw nsw i32 %29, 1 %idxprom.i = zext nneg i32 %shl.i to i64 %arrayidx.i90 = getelementptr inbounds i32, ptr %14, i64 %idxprom.i %30 = load i32, ptr %arrayidx.i90, align 4 @@ -1403,8 +1401,7 @@ _ZNK6icu_7513OlsonTimeZone12zoneOffsetAtEs.exit.thread: ; preds = %if.then20 cond.true.i105: ; preds = %if.then20 %39 = add nsw i64 %indvars.iv, -2 - %idxprom.i100 = and i64 %39, 65535 - %arrayidx.i101 = getelementptr inbounds i8, ptr %18, i64 %idxprom.i100 + %arrayidx.i101 = getelementptr inbounds i8, ptr %18, i64 %39 %40 = load i8, ptr %arrayidx.i101, align 1 %conv2.i = zext i8 %40 to i16 %41 = shl nuw nsw i16 %conv2.i, 1 @@ -1416,8 +1413,7 @@ cond.true.i105: ; preds = %if.then20 %arrayidx9.i = getelementptr inbounds i32, ptr %19, i64 %idxprom8.i %44 = load i32, ptr %arrayidx9.i, align 4 %add10.i = add nsw i32 %44, %42 - %idxprom.i107 = and i64 %39, 65535 - %arrayidx.i108 = getelementptr inbounds i8, ptr %18, i64 %idxprom.i107 + %arrayidx.i108 = getelementptr inbounds i8, ptr %18, i64 %39 %45 = load i8, ptr %arrayidx.i108, align 1 %conv2.i109 = zext i8 %45 to i64 %46 = shl nuw nsw i64 %conv2.i109, 1 @@ -1430,8 +1426,7 @@ _ZNK6icu_7513OlsonTimeZone11dstOffsetAtEs.exit133: ; preds = %_ZNK6icu_7513Olson %arrayidx6.i = getelementptr inbounds i32, ptr %19, i64 %cond.i103 %48 = load i32, ptr %arrayidx6.i, align 4 %cmp29 = icmp ne i32 %48, 0 - %idxprom.i120 = and i64 %indvars.iv.next, 65535 - %arrayidx.i121 = getelementptr inbounds i8, ptr %18, i64 %idxprom.i120 + %arrayidx.i121 = getelementptr inbounds i8, ptr %18, i64 %indvars.iv.next %49 = load i8, ptr %arrayidx.i121, align 1 %conv2.i122 = zext i8 %49 to i16 %50 = shl nuw nsw i16 %conv2.i122, 1 @@ -1786,6 +1781,7 @@ for.body.lr.ph: ; preds = %if.end %12 = load ptr, ptr %typeOffsets.i, align 8 %13 = sext i16 %5 to i64 %wide.trip.count = zext nneg i16 %add4.i to i64 + %invariant.gep = getelementptr i8, ptr %11, i64 -1 br label %for.body for.body: ; preds = %for.body.lr.ph, %for.inc @@ -1869,20 +1865,18 @@ land.lhs.true21: ; preds = %lor.lhs.false br i1 %cmp.i15.not, label %_ZNK6icu_7513OlsonTimeZone11dstOffsetAtEs.exit24, label %cond.true.i19 cond.true.i19: ; preds = %land.lhs.true21 - %25 = add nuw i64 %indvars.iv, 65535 - %idxprom.i21 = and i64 %25, 65535 - %arrayidx.i22 = getelementptr inbounds i8, ptr %11, i64 %idxprom.i21 - %26 = load i8, ptr %arrayidx.i22, align 1 - %conv2.i23 = zext i8 %26 to i64 - %27 = shl nuw nsw i64 %conv2.i23, 1 - %28 = or disjoint i64 %27, 1 + %gep = getelementptr i8, ptr %invariant.gep, i64 %indvars.iv + %25 = load i8, ptr %gep, align 1 + %conv2.i23 = zext i8 %25 to i64 + %26 = shl nuw nsw i64 %conv2.i23, 1 + %27 = or disjoint i64 %26, 1 br label %_ZNK6icu_7513OlsonTimeZone11dstOffsetAtEs.exit24 _ZNK6icu_7513OlsonTimeZone11dstOffsetAtEs.exit24: ; preds = %land.lhs.true21, %cond.true.i19 - %cond.i16 = phi i64 [ %28, %cond.true.i19 ], [ 1, %land.lhs.true21 ] + %cond.i16 = phi i64 [ %27, %cond.true.i19 ], [ 1, %land.lhs.true21 ] %arrayidx6.i18 = getelementptr inbounds i32, ptr %12, i64 %cond.i16 - %29 = load i32, ptr %arrayidx6.i18, align 4 - %cmp25.not = icmp eq i32 %29, 0 + %28 = load i32, ptr %arrayidx6.i18, align 4 + %cmp25.not = icmp eq i32 %28, 0 br i1 %cmp25.not, label %for.inc, label %return for.inc: ; preds = %lor.lhs.false, %_ZNK6icu_7513OlsonTimeZone11dstOffsetAtEs.exit24 diff --git a/bench/icu/optimized/package.ll b/bench/icu/optimized/package.ll index 462652fa272..249093b5fe4 100644 --- a/bench/icu/optimized/package.ll +++ b/bench/icu/optimized/package.ll @@ -776,20 +776,19 @@ if.then257: ; preds = %if.end240 %72 = load ptr, ptr %items, align 8 %data261 = getelementptr inbounds %"struct.icu_75::Item", ptr %72, i64 %indvars.iv208, i32 1 %73 = load ptr, ptr %data261, align 8 - %74 = add nuw i64 %indvars.iv208, 4294967295 - %idxprom264 = and i64 %74, 4294967295 - %data266 = getelementptr inbounds %"struct.icu_75::Item", ptr %72, i64 %idxprom264, i32 1 + %74 = add nsw i64 %indvars.iv208, -1 + %data266 = getelementptr inbounds %"struct.icu_75::Item", ptr %72, i64 %74, i32 1 %75 = load ptr, ptr %data266, align 8 %sub.ptr.lhs.cast267 = ptrtoint ptr %73 to i64 %sub.ptr.rhs.cast268 = ptrtoint ptr %75 to i64 %sub.ptr.sub269 = sub i64 %sub.ptr.lhs.cast267, %sub.ptr.rhs.cast268 %conv270 = trunc i64 %sub.ptr.sub269 to i32 - %length275 = getelementptr inbounds %"struct.icu_75::Item", ptr %72, i64 %idxprom264, i32 2 + %length275 = getelementptr inbounds %"struct.icu_75::Item", ptr %72, i64 %74, i32 2 store i32 %conv270, ptr %length275, align 8 %76 = load ptr, ptr %items, align 8 - %data280 = getelementptr inbounds %"struct.icu_75::Item", ptr %76, i64 %idxprom264, i32 1 + %data280 = getelementptr inbounds %"struct.icu_75::Item", ptr %76, i64 %74, i32 1 %77 = load ptr, ptr %data280, align 8 - %length285 = getelementptr inbounds %"struct.icu_75::Item", ptr %76, i64 %idxprom264, i32 2 + %length285 = getelementptr inbounds %"struct.icu_75::Item", ptr %76, i64 %74, i32 2 %78 = load i32, ptr %length285, align 8 %79 = load i32, ptr %errorCode, align 4 %cmp.i.i.i = icmp slt i32 %79, 1 @@ -871,7 +870,7 @@ _ZL23getTypeEnumForInputDataPKhiP10UErrorCode.exit: ; preds = %lor.lhs.false36.i if.then291: ; preds = %if.then257, %_ZL23getTypeEnumForInputDataPKhiP10UErrorCode.exit, %return.sink.split.i.i %88 = load ptr, ptr @stderr, align 8 - %arrayidx295 = getelementptr inbounds %"struct.icu_75::Item", ptr %76, i64 %idxprom264 + %arrayidx295 = getelementptr inbounds %"struct.icu_75::Item", ptr %76, i64 %74 %89 = load ptr, ptr %arrayidx295, align 8 %call297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %88, ptr noundef nonnull @.str.12, ptr noundef %89, ptr noundef %filename) #24 call void @exit(i32 noundef 3) #21 @@ -881,7 +880,7 @@ if.end298: ; preds = %_ZL23getTypeEnumFor %idxprom.i = zext nneg i32 %add.i.i to i64 %arrayidx.i = getelementptr inbounds i8, ptr @.str.47, i64 %idxprom.i %90 = load i8, ptr %arrayidx.i, align 1 - %type304 = getelementptr inbounds %"struct.icu_75::Item", ptr %76, i64 %idxprom264, i32 4 + %type304 = getelementptr inbounds %"struct.icu_75::Item", ptr %76, i64 %74, i32 4 store i8 %90, ptr %type304, align 1 br label %if.end305 diff --git a/bench/icu/optimized/tzrule.ll b/bench/icu/optimized/tzrule.ll index e7ffdaee01a..14ed236ad30 100644 --- a/bench/icu/optimized/tzrule.ll +++ b/bench/icu/optimized/tzrule.ll @@ -2024,8 +2024,7 @@ for.body.lr.ph.split.us: ; preds = %for.body.lr.ph for.body.us: ; preds = %lor.lhs.false.us %indvars.iv.next = add nsw i64 %indvars.iv, -1 %7 = load ptr, ptr %fStartTimes, align 8 - %idxprom.us = and i64 %indvars.iv.next, 4294967295 - %arrayidx.us = getelementptr inbounds double, ptr %7, i64 %idxprom.us + %arrayidx.us = getelementptr inbounds double, ptr %7, i64 %indvars.iv.next %8 = load double, ptr %arrayidx.us, align 8 %9 = load i32, ptr %fTimeRuleType.i, align 8 %cmp.not.i.us = icmp eq i32 %9, 2 diff --git a/bench/icu/optimized/ubidi.ll b/bench/icu/optimized/ubidi.ll index 48e65b310fb..a08e0a48821 100644 --- a/bench/icu/optimized/ubidi.ll +++ b/bench/icu/optimized/ubidi.ll @@ -874,9 +874,8 @@ cond.true108.i: ; preds = %for.body106.i cond.false111.i: ; preds = %for.body106.i %visualLimit114.i = getelementptr inbounds %struct.Run, ptr %runs.0.i, i64 %indvars.iv.next591, i32 1 %31 = load i32, ptr %visualLimit114.i, align 4 - %32 = add nuw i64 %indvars.iv590, 4294967294 - %idxprom116.i = and i64 %32, 4294967295 - %visualLimit118.i = getelementptr inbounds %struct.Run, ptr %runs.0.i, i64 %idxprom116.i, i32 1 + %32 = add nsw i64 %indvars.iv590, -2 + %visualLimit118.i = getelementptr inbounds %struct.Run, ptr %runs.0.i, i64 %32, i32 1 %33 = load i32, ptr %visualLimit118.i, align 4 %sub119.i = sub nsw i32 %31, %33 br label %cond.end120.i diff --git a/bench/icu/optimized/unisetspan.ll b/bench/icu/optimized/unisetspan.ll index 43592edf6f6..131d6ba82c4 100644 --- a/bench/icu/optimized/unisetspan.ll +++ b/bench/icu/optimized/unisetspan.ll @@ -3236,8 +3236,7 @@ land.lhs.true108: ; preds = %if.end102 br i1 %or.cond119, label %land.lhs.true112, label %if.end122 land.lhs.true112: ; preds = %land.lhs.true108 - %idx.ext115 = and i64 %indvars.iv, 4294967295 - %idx.neg116 = sub nsw i64 0, %idx.ext115 + %idx.neg116 = sub nsw i64 0, %indvars.iv %add.ptr117 = getelementptr inbounds i8, ptr %add.ptr114, i64 %idx.neg116 br label %do.body.i134 diff --git a/bench/icu/optimized/uvector.ll b/bench/icu/optimized/uvector.ll index 0b6fb79e650..bd29fb7c281 100644 --- a/bench/icu/optimized/uvector.ll +++ b/bench/icu/optimized/uvector.ll @@ -1099,10 +1099,8 @@ for.body: ; preds = %for.body.lr.ph, %fo %8 = load ptr, ptr %elements, align 8 %9 = getelementptr %union.UElement, ptr %8, i64 %indvars.iv %arrayidx = getelementptr %union.UElement, ptr %9, i64 -1 - %idxprom8 = and i64 %indvars.iv, 4294967295 - %arrayidx9 = getelementptr inbounds %union.UElement, ptr %8, i64 %idxprom8 %10 = load i64, ptr %arrayidx, align 8 - store i64 %10, ptr %arrayidx9, align 8 + store i64 %10, ptr %9, align 8 %indvars.iv.next = add nsw i64 %indvars.iv, -1 %cmp6 = icmp sgt i64 %indvars.iv.next, %7 br i1 %cmp6, label %for.body, label %if.end14, !llvm.loop !11 @@ -1222,10 +1220,8 @@ for.body: ; preds = %for.body.lr.ph, %fo %8 = load ptr, ptr %elements, align 8 %9 = getelementptr %union.UElement, ptr %8, i64 %indvars.iv %arrayidx = getelementptr %union.UElement, ptr %9, i64 -1 - %idxprom8 = and i64 %indvars.iv, 4294967295 - %arrayidx9 = getelementptr inbounds %union.UElement, ptr %8, i64 %idxprom8 %10 = load i64, ptr %arrayidx, align 8 - store i64 %10, ptr %arrayidx9, align 8 + store i64 %10, ptr %9, align 8 %indvars.iv.next = add nsw i64 %indvars.iv, -1 %cmp6 = icmp sgt i64 %indvars.iv.next, %7 br i1 %cmp6, label %for.body, label %for.end, !llvm.loop !12 diff --git a/bench/icu/optimized/uvectr32.ll b/bench/icu/optimized/uvectr32.ll index 904b4b8544c..59d994cc6ef 100644 --- a/bench/icu/optimized/uvectr32.ll +++ b/bench/icu/optimized/uvectr32.ll @@ -614,9 +614,7 @@ for.body: ; preds = %for.body.lr.ph, %fo %9 = getelementptr i32, ptr %8, i64 %indvars.iv %arrayidx = getelementptr i32, ptr %9, i64 -1 %10 = load i32, ptr %arrayidx, align 4 - %idxprom8 = and i64 %indvars.iv, 4294967295 - %arrayidx9 = getelementptr inbounds i32, ptr %8, i64 %idxprom8 - store i32 %10, ptr %arrayidx9, align 4 + store i32 %10, ptr %9, align 4 %indvars.iv.next = add nsw i64 %indvars.iv, -1 %cmp6 = icmp sgt i64 %indvars.iv.next, %7 br i1 %cmp6, label %for.body, label %for.end, !llvm.loop !8 diff --git a/bench/icu/optimized/uvectr64.ll b/bench/icu/optimized/uvectr64.ll index 6e0cf50df0b..d4342ccee49 100644 --- a/bench/icu/optimized/uvectr64.ll +++ b/bench/icu/optimized/uvectr64.ll @@ -614,9 +614,7 @@ for.body: ; preds = %for.body.lr.ph, %fo %9 = getelementptr i64, ptr %8, i64 %indvars.iv %arrayidx = getelementptr i64, ptr %9, i64 -1 %10 = load i64, ptr %arrayidx, align 8 - %idxprom8 = and i64 %indvars.iv, 4294967295 - %arrayidx9 = getelementptr inbounds i64, ptr %8, i64 %idxprom8 - store i64 %10, ptr %arrayidx9, align 8 + store i64 %10, ptr %9, align 8 %indvars.iv.next = add nsw i64 %indvars.iv, -1 %cmp6 = icmp sgt i64 %indvars.iv.next, %7 br i1 %cmp6, label %for.body, label %for.end, !llvm.loop !8 diff --git a/bench/imgui/optimized/imgui_demo.cpp.ll b/bench/imgui/optimized/imgui_demo.cpp.ll index 53ef6b3668e..e50e411daf4 100644 --- a/bench/imgui/optimized/imgui_demo.cpp.ll +++ b/bench/imgui/optimized/imgui_demo.cpp.ll @@ -11045,8 +11045,7 @@ for.cond847.preheader: ; preds = %if.end841, %for.inc %indvars.iv841 = phi i64 [ 0, %if.end841 ], [ %indvars.iv.next842, %for.inc919 ] %180 = shl nuw nsw i64 %indvars.iv841, 2 %cond326 = icmp eq i64 %indvars.iv841, 0 - %181 = add nuw i64 %indvars.iv841, 4294967295 - %idxprom896 = and i64 %181, 4294967295 + %181 = add nsw i64 %indvars.iv841, -1 %cmp904.not = icmp eq i64 %indvars.iv841, 3 %indvars.iv.next842 = add nuw nsw i64 %indvars.iv841, 1 br label %for.body849 @@ -11078,9 +11077,8 @@ if.then863: ; preds = %if.end852 br i1 %cmp850.not, label %if.then883, label %if.end881 if.end881: ; preds = %if.then863 - %187 = add nuw i64 %indvars.iv834, 4294967295 - %idxprom876 = and i64 %187, 4294967295 - %arrayidx877 = getelementptr inbounds [4 x [4 x i8]], ptr @_ZZL21ShowDemoWindowWidgetsvE8selected_2, i64 0, i64 %indvars.iv841, i64 %idxprom876 + %187 = add nsw i64 %indvars.iv834, -1 + %arrayidx877 = getelementptr inbounds [4 x [4 x i8]], ptr @_ZZL21ShowDemoWindowWidgetsvE8selected_2, i64 0, i64 %indvars.iv841, i64 %187 %188 = load i8, ptr %arrayidx877, align 1 %189 = xor i8 %188, 1 store i8 %189, ptr %arrayidx877, align 1 @@ -11099,7 +11097,7 @@ if.end892: ; preds = %if.then883, %if.end br i1 %cond326, label %if.then905, label %if.then894 if.then894: ; preds = %if.end892 - %arrayidx899 = getelementptr inbounds [4 x [4 x i8]], ptr @_ZZL21ShowDemoWindowWidgetsvE8selected_2, i64 0, i64 %idxprom896, i64 %indvars.iv834 + %arrayidx899 = getelementptr inbounds [4 x [4 x i8]], ptr @_ZZL21ShowDemoWindowWidgetsvE8selected_2, i64 0, i64 %181, i64 %indvars.iv834 %193 = load i8, ptr %arrayidx899, align 1 %194 = xor i8 %193, 1 store i8 %194, ptr %arrayidx899, align 1 diff --git a/bench/llama.cpp/optimized/ggml-quants.c.ll b/bench/llama.cpp/optimized/ggml-quants.c.ll index d71fd683a7d..83ec71740b5 100644 --- a/bench/llama.cpp/optimized/ggml-quants.c.ll +++ b/bench/llama.cpp/optimized/ggml-quants.c.ll @@ -2025,9 +2025,8 @@ if.then47: ; preds = %for.body21 br label %if.end64 if.else: ; preds = %for.body21 - %25 = add nuw i64 %indvars.iv113, 4294967288 - %idxprom60 = and i64 %25, 4294967295 - %arrayidx61 = getelementptr inbounds %struct.block_q3_K, ptr %y, i64 %indvars.iv145, i32 2, i64 %idxprom60 + %25 = add nsw i64 %indvars.iv113, -8 + %arrayidx61 = getelementptr inbounds %struct.block_q3_K, ptr %y, i64 %indvars.iv145, i32 2, i64 %25 %26 = load i8, ptr %arrayidx61, align 1 %cond43.tr = trunc i32 %cond43 to i8 %27 = shl i8 %cond43.tr, 4 @@ -2084,9 +2083,8 @@ cond.true104: ; preds = %for.body101 br label %cond.end121 cond.false112: ; preds = %for.body101 - %37 = add nuw i64 %indvars.iv123, 4294967288 - %idxprom117 = and i64 %37, 4294967295 - %arrayidx118 = getelementptr inbounds %struct.block_q3_K, ptr %y, i64 %indvars.iv145, i32 2, i64 %idxprom117 + %37 = add nsw i64 %indvars.iv123, -8 + %arrayidx118 = getelementptr inbounds %struct.block_q3_K, ptr %y, i64 %indvars.iv145, i32 2, i64 %37 %38 = load i8, ptr %arrayidx118, align 1 %39 = lshr i8 %38, 4 br label %cond.end121 @@ -2694,9 +2692,8 @@ if.else: ; preds = %for.body60 %43 = add nuw nsw i64 %indvars.iv142, 4 %arrayidx111 = getelementptr inbounds %struct.block_q4_K, ptr %y, i64 %indvars.iv168, i32 2, i64 %43 store i8 %conv105, ptr %arrayidx111, align 1 - %44 = add nuw i64 %indvars.iv142, 4294967292 - %idxprom117 = and i64 %44, 4294967295 - %arrayidx118 = getelementptr inbounds %struct.block_q4_K, ptr %y, i64 %indvars.iv168, i32 2, i64 %idxprom117 + %44 = add nsw i64 %indvars.iv142, -4 + %arrayidx118 = getelementptr inbounds %struct.block_q4_K, ptr %y, i64 %indvars.iv168, i32 2, i64 %44 %45 = load i8, ptr %arrayidx118, align 1 %cond77.tr = trunc i32 %cond77 to i8 %46 = shl nuw i8 %cond77.tr, 2 @@ -3336,9 +3333,8 @@ if.else: ; preds = %for.body60 %43 = add nuw nsw i64 %indvars.iv158, 4 %arrayidx111 = getelementptr inbounds %struct.block_q5_K, ptr %y, i64 %indvars.iv183, i32 2, i64 %43 store i8 %conv105, ptr %arrayidx111, align 1 - %44 = add nuw i64 %indvars.iv158, 4294967292 - %idxprom117 = and i64 %44, 4294967295 - %arrayidx118 = getelementptr inbounds %struct.block_q5_K, ptr %y, i64 %indvars.iv183, i32 2, i64 %idxprom117 + %44 = add nsw i64 %indvars.iv158, -4 + %arrayidx118 = getelementptr inbounds %struct.block_q5_K, ptr %y, i64 %indvars.iv183, i32 2, i64 %44 %45 = load i8, ptr %arrayidx118, align 1 %cond77.tr = trunc i32 %cond77 to i8 %46 = shl nuw i8 %cond77.tr, 2 diff --git a/bench/llama.cpp/optimized/ggml.c.ll b/bench/llama.cpp/optimized/ggml.c.ll index d4d4fbafda3..1b2563abb8e 100644 --- a/bench/llama.cpp/optimized/ggml.c.ll +++ b/bench/llama.cpp/optimized/ggml.c.ll @@ -49814,14 +49814,13 @@ for.body37.us.us.us.us.us.us.us.us.us.us.us: ; preds = %sw.epilog.us.us.us. br i1 %cmp39.us.us.us.us.us.us.us.us.us.us.us, label %for.inc88.us.us.us.us.us.us.us.us.us.us.us, label %lor.lhs.false41.us.us.us.us.us.us.us.us.us.us.us lor.lhs.false41.us.us.us.us.us.us.us.us.us.us.us: ; preds = %for.body37.us.us.us.us.us.us.us.us.us.us.us - %conv43.us.us.us.us.us.us.us.us.us.us.us = and i64 %31, 4294967295 %32 = load i64, ptr %arrayidx45, align 8 - %cmp46.not.us.us.us.us.us.us.us.us.us.us.us = icmp sgt i64 %32, %conv43.us.us.us.us.us.us.us.us.us.us.us + %cmp46.not.us.us.us.us.us.us.us.us.us.us.us = icmp sgt i64 %32, %31 br i1 %cmp46.not.us.us.us.us.us.us.us.us.us.us.us, label %if.end49.us.us.us.us.us.us.us.us.us.us.us, label %for.inc88.us.us.us.us.us.us.us.us.us.us.us if.end49.us.us.us.us.us.us.us.us.us.us.us: ; preds = %lor.lhs.false41.us.us.us.us.us.us.us.us.us.us.us %33 = load i64, ptr %arrayidx50, align 8 - %mul53.us.us.us.us.us.us.us.us.us.us.us = mul i64 %33, %conv43.us.us.us.us.us.us.us.us.us.us.us + %mul53.us.us.us.us.us.us.us.us.us.us.us = mul i64 %33, %31 %add.ptr54.us.us.us.us.us.us.us.us.us.us.us = getelementptr inbounds i8, ptr %cdata.0214.us.us.us.us, i64 %mul53.us.us.us.us.us.us.us.us.us.us.us br label %for.body58.us.us.us.us.us.us.us.us.us.us.us.us @@ -49837,13 +49836,12 @@ for.body58.us.us.us.us.us.us.us.us.us.us.us.us: ; preds = %for.inc.us.us.us.us br i1 %cmp60.us.us.us.us.us.us.us.us.us.us.us.us, label %for.inc.us.us.us.us.us.us.us.us.us.us.us.us, label %lor.lhs.false62.us.us.us.us.us.us.us.us.us.us.us.us lor.lhs.false62.us.us.us.us.us.us.us.us.us.us.us.us: ; preds = %for.body58.us.us.us.us.us.us.us.us.us.us.us.us - %conv63.us.us.us.us.us.us.us.us.us.us.us.us = and i64 %34, 4294967295 %35 = load i64, ptr %ne44, align 8 - %cmp66.not.us.us.us.us.us.us.us.us.us.us.us.us = icmp sgt i64 %35, %conv63.us.us.us.us.us.us.us.us.us.us.us.us + %cmp66.not.us.us.us.us.us.us.us.us.us.us.us.us = icmp sgt i64 %35, %34 br i1 %cmp66.not.us.us.us.us.us.us.us.us.us.us.us.us, label %if.end69.us.us.us.us.us.us.us.us.us.us.us.us, label %for.inc.us.us.us.us.us.us.us.us.us.us.us.us if.end69.us.us.us.us.us.us.us.us.us.us.us.us: ; preds = %lor.lhs.false62.us.us.us.us.us.us.us.us.us.us.us.us - %arrayidx71.us.us.us.us.us.us.us.us.us.us.us.us = getelementptr inbounds float, ptr %add.ptr54.us.us.us.us.us.us.us.us.us.us.us, i64 %conv63.us.us.us.us.us.us.us.us.us.us.us.us + %arrayidx71.us.us.us.us.us.us.us.us.us.us.us.us = getelementptr inbounds float, ptr %add.ptr54.us.us.us.us.us.us.us.us.us.us.us, i64 %34 %36 = load float, ptr %arrayidx71.us.us.us.us.us.us.us.us.us.us.us.us, align 4 %37 = load float, ptr %add.ptr26.us.us.us.us.us.us.us.us.us, align 4 %add72.us.us.us.us.us.us.us.us.us.us.us.us = fadd float %36, %37 @@ -49862,14 +49860,13 @@ for.body37.us.us.us.us.us.us159.us.us.us.us.us: ; preds = %sw.epilog.us.us.us. br i1 %cmp39.us.us.us.us.us.us162.us.us.us.us.us, label %for.inc88.us.us.us.us.us.us169.us.us.us.us.us, label %lor.lhs.false41.us.us.us.us.us.us163.us.us.us.us.us lor.lhs.false41.us.us.us.us.us.us163.us.us.us.us.us: ; preds = %for.body37.us.us.us.us.us.us159.us.us.us.us.us - %conv43.us.us.us.us.us.us164.us.us.us.us.us = and i64 %38, 4294967295 %39 = load i64, ptr %arrayidx45, align 8 - %cmp46.not.us.us.us.us.us.us165.us.us.us.us.us = icmp sgt i64 %39, %conv43.us.us.us.us.us.us164.us.us.us.us.us + %cmp46.not.us.us.us.us.us.us165.us.us.us.us.us = icmp sgt i64 %39, %38 br i1 %cmp46.not.us.us.us.us.us.us165.us.us.us.us.us, label %if.end49.us.us.us.us.us.us166.us.us.us.us.us, label %for.inc88.us.us.us.us.us.us169.us.us.us.us.us if.end49.us.us.us.us.us.us166.us.us.us.us.us: ; preds = %lor.lhs.false41.us.us.us.us.us.us163.us.us.us.us.us %40 = load i64, ptr %arrayidx50, align 8 - %mul53.us.us.us.us.us.us167.us.us.us.us.us = mul i64 %40, %conv43.us.us.us.us.us.us164.us.us.us.us.us + %mul53.us.us.us.us.us.us167.us.us.us.us.us = mul i64 %40, %38 %add.ptr54.us.us.us.us.us.us168.us.us.us.us.us = getelementptr inbounds i8, ptr %cdata.0214.us.us.us.us, i64 %mul53.us.us.us.us.us.us167.us.us.us.us.us br label %for.body58.us5.us.us.us.us.us.us.us.us.us.us.us @@ -49885,13 +49882,12 @@ for.body58.us5.us.us.us.us.us.us.us.us.us.us.us: ; preds = %for.inc.us13.us.us. br i1 %cmp60.us8.us.us.us.us.us.us.us.us.us.us.us, label %for.inc.us13.us.us.us.us.us.us.us.us.us.us.us, label %lor.lhs.false62.us9.us.us.us.us.us.us.us.us.us.us.us lor.lhs.false62.us9.us.us.us.us.us.us.us.us.us.us.us: ; preds = %for.body58.us5.us.us.us.us.us.us.us.us.us.us.us - %conv63.us10.us.us.us.us.us.us.us.us.us.us.us = and i64 %41, 4294967295 %42 = load i64, ptr %ne44, align 8 - %cmp66.not.us11.us.us.us.us.us.us.us.us.us.us.us = icmp sgt i64 %42, %conv63.us10.us.us.us.us.us.us.us.us.us.us.us + %cmp66.not.us11.us.us.us.us.us.us.us.us.us.us.us = icmp sgt i64 %42, %41 br i1 %cmp66.not.us11.us.us.us.us.us.us.us.us.us.us.us, label %if.end69.us12.us.us.us.us.us.us.us.us.us.us.us, label %for.inc.us13.us.us.us.us.us.us.us.us.us.us.us if.end69.us12.us.us.us.us.us.us.us.us.us.us.us: ; preds = %lor.lhs.false62.us9.us.us.us.us.us.us.us.us.us.us.us - %arrayidx75.us.us.us.us.us.us.us.us.us.us.us.us = getelementptr inbounds float, ptr %add.ptr54.us.us.us.us.us.us168.us.us.us.us.us, i64 %conv63.us10.us.us.us.us.us.us.us.us.us.us.us + %arrayidx75.us.us.us.us.us.us.us.us.us.us.us.us = getelementptr inbounds float, ptr %add.ptr54.us.us.us.us.us.us168.us.us.us.us.us, i64 %41 %43 = load float, ptr %arrayidx75.us.us.us.us.us.us.us.us.us.us.us.us, align 4 %44 = load float, ptr %add.ptr26.us.us.us.us.us.us.us.us.us, align 4 %cmp76.us.us.us.us.us.us.us.us.us.us.us.us = fcmp ogt float %43, %44 @@ -54554,9 +54550,8 @@ for.cond26.preheader.us.us.us.us.i: ; preds = %for.cond26.for.inc8 for.body28.us.us.us.us.us.us.us.i: ; preds = %for.cond29.for.inc85_crit_edge.split.us.split.us.us.us.us.us.us.us.us.i, %for.cond26.preheader.us.us.us.us.i %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %for.cond29.for.inc85_crit_edge.split.us.split.us.us.us.us.us.us.us.us.i ], [ 0, %for.cond26.preheader.us.us.us.us.i ] %14 = add nuw nsw i64 %indvars.iv.i, %12 - %conv.us.us.us.us.us.us.us.i = and i64 %14, 4294967295 %15 = mul nsw i64 %indvars.iv.i, %10 - %mul47.us.us.us.us.us.us.us.i = mul nsw i64 %conv.us.us.us.us.us.us.us.i, %6 + %mul47.us.us.us.us.us.us.us.i = mul nsw i64 %14, %6 br label %for.cond33.preheader.us.us.us.us.us.us.us.us.us.i for.cond33.preheader.us.us.us.us.us.us.us.us.us.i: ; preds = %for.cond33.for.inc82_crit_edge.split.us.us.us.us.us.us.us.us.us.us.i, %for.body28.us.us.us.us.us.us.us.i diff --git a/bench/lua/optimized/lstrlib.ll b/bench/lua/optimized/lstrlib.ll index 3bfc4471a8f..763d956936d 100644 --- a/bench/lua/optimized/lstrlib.ll +++ b/bench/lua/optimized/lstrlib.ll @@ -3173,8 +3173,8 @@ if.then: ; preds = %entry if.end: ; preds = %if.then, %entry %p_end = getelementptr inbounds %struct.MatchState, ptr %ms, i64 0, i32 2 %2 = load ptr, ptr %p_end, align 8 - %cmp4.not412420 = icmp eq ptr %2, %p - br i1 %cmp4.not412420, label %if.end124, label %if.then6.lr.ph.lr.ph + %cmp4.not411419 = icmp eq ptr %2, %p + br i1 %cmp4.not411419, label %if.end124, label %if.then6.lr.ph.lr.ph if.then6.lr.ph.lr.ph: ; preds = %if.end %L50 = getelementptr inbounds %struct.MatchState, ptr %ms, i64 0, i32 3 @@ -3184,18 +3184,18 @@ if.then6.lr.ph.lr.ph: ; preds = %if.end if.then6.lr.ph: ; preds = %if.then6.lr.ph.lr.ph, %init.outer.backedge %4 = phi ptr [ %2, %if.then6.lr.ph.lr.ph ], [ %86, %init.outer.backedge ] - %s.addr.0.ph422 = phi ptr [ %s, %if.then6.lr.ph.lr.ph ], [ %s.addr.0.ph.be, %init.outer.backedge ] - %p.addr.0.ph421 = phi ptr [ %p, %if.then6.lr.ph.lr.ph ], [ %p.addr.0.ph.be, %init.outer.backedge ] - %add.ptr58 = getelementptr inbounds i8, ptr %s.addr.0.ph422, i64 -1 - %add.ptr105 = getelementptr inbounds i8, ptr %s.addr.0.ph422, i64 1 + %s.addr.0.ph421 = phi ptr [ %s, %if.then6.lr.ph.lr.ph ], [ %s.addr.0.ph.be, %init.outer.backedge ] + %p.addr.0.ph420 = phi ptr [ %p, %if.then6.lr.ph.lr.ph ], [ %p.addr.0.ph.be, %init.outer.backedge ] + %add.ptr58 = getelementptr inbounds i8, ptr %s.addr.0.ph421, i64 -1 + %add.ptr105 = getelementptr inbounds i8, ptr %s.addr.0.ph421, i64 1 br label %if.then6 if.then6: ; preds = %if.then6.lr.ph, %init.backedge %5 = phi ptr [ %4, %if.then6.lr.ph ], [ %71, %init.backedge ] - %p.addr.0413 = phi ptr [ %p.addr.0.ph421, %if.then6.lr.ph ], [ %p.addr.0.be, %init.backedge ] - %6 = load i8, ptr %p.addr.0413, align 1 + %p.addr.0412 = phi ptr [ %p.addr.0.ph420, %if.then6.lr.ph ], [ %p.addr.0.be, %init.backedge ] + %6 = load i8, ptr %p.addr.0412, align 1 %conv7 = sext i8 %6 to i32 - %incdec.ptr.i167 = getelementptr inbounds i8, ptr %p.addr.0413, i64 1 + %incdec.ptr.i167 = getelementptr inbounds i8, ptr %p.addr.0412, i64 1 switch i32 %conv7, label %dflt [ i32 40, label %sw.bb i32 41, label %sw.bb17 @@ -3209,7 +3209,7 @@ sw.bb: ; preds = %if.then6 br i1 %cmp9, label %if.then11, label %if.else if.then11: ; preds = %sw.bb - %add.ptr12 = getelementptr inbounds i8, ptr %p.addr.0413, i64 2 + %add.ptr12 = getelementptr inbounds i8, ptr %p.addr.0412, i64 2 %8 = load i8, ptr %level.i.i, align 4 %cmp.i = icmp ugt i8 %8, 31 br i1 %cmp.i, label %if.then.i, label %if.end.i @@ -3222,12 +3222,12 @@ if.then.i: ; preds = %if.then11 if.end.i: ; preds = %if.then.i, %if.then11 %idxprom.i = zext i8 %8 to i64 %arrayidx.i = getelementptr inbounds %struct.MatchState, ptr %ms, i64 0, i32 6, i64 %idxprom.i - store ptr %s.addr.0.ph422, ptr %arrayidx.i, align 8 + store ptr %s.addr.0.ph421, ptr %arrayidx.i, align 8 %len.i = getelementptr inbounds %struct.MatchState, ptr %ms, i64 0, i32 6, i64 %idxprom.i, i32 1 store i64 -2, ptr %len.i, align 8 %add.i = add i8 %8, 1 store i8 %add.i, ptr %level.i.i, align 4 - %call9.i = tail call fastcc ptr @match(ptr noundef nonnull %ms, ptr noundef %s.addr.0.ph422, ptr noundef nonnull %add.ptr12) + %call9.i = tail call fastcc ptr @match(ptr noundef nonnull %ms, ptr noundef %s.addr.0.ph421, ptr noundef nonnull %add.ptr12) %cmp10.i = icmp eq ptr %call9.i, null br i1 %cmp10.i, label %if.then12.i, label %if.end124 @@ -3250,12 +3250,12 @@ if.then.i80: ; preds = %if.else if.end.i71: ; preds = %if.then.i80, %if.else %idxprom.i72 = zext i8 %11 to i64 %arrayidx.i73 = getelementptr inbounds %struct.MatchState, ptr %ms, i64 0, i32 6, i64 %idxprom.i72 - store ptr %s.addr.0.ph422, ptr %arrayidx.i73, align 8 + store ptr %s.addr.0.ph421, ptr %arrayidx.i73, align 8 %len.i74 = getelementptr inbounds %struct.MatchState, ptr %ms, i64 0, i32 6, i64 %idxprom.i72, i32 1 store i64 -1, ptr %len.i74, align 8 %add.i75 = add i8 %11, 1 store i8 %add.i75, ptr %level.i.i, align 4 - %call9.i76 = tail call fastcc ptr @match(ptr noundef nonnull %ms, ptr noundef %s.addr.0.ph422, ptr noundef nonnull %incdec.ptr.i167) + %call9.i76 = tail call fastcc ptr @match(ptr noundef nonnull %ms, ptr noundef %s.addr.0.ph421, ptr noundef nonnull %incdec.ptr.i167) %cmp10.i77 = icmp eq ptr %call9.i76, null br i1 %cmp10.i77, label %if.then12.i78, label %if.end124 @@ -3277,11 +3277,10 @@ for.cond.i230: ; preds = %for.body.i, %sw.bb1 for.body.i: ; preds = %for.cond.i230 %indvars.iv.next.i = add nsw i64 %indvars.iv.i, -1 - %idxprom.i235 = and i64 %indvars.iv.next.i, 4294967295 - %len.i236 = getelementptr inbounds %struct.MatchState, ptr %ms, i64 0, i32 6, i64 %idxprom.i235, i32 1 - %16 = load i64, ptr %len.i236, align 8 - %cmp3.i237 = icmp eq i64 %16, -1 - br i1 %cmp3.i237, label %return.loopexit.i, label %for.cond.i230, !llvm.loop !30 + %len.i235 = getelementptr inbounds %struct.MatchState, ptr %ms, i64 0, i32 6, i64 %indvars.iv.next.i, i32 1 + %16 = load i64, ptr %len.i235, align 8 + %cmp3.i236 = icmp eq i64 %16, -1 + br i1 %cmp3.i236, label %return.loopexit.i, label %for.cond.i230, !llvm.loop !30 for.end.i: ; preds = %for.cond.i230 %17 = load ptr, ptr %L50, align 8 @@ -3297,12 +3296,12 @@ capture_to_close.exit: ; preds = %for.end.i, %return. %idxprom.i85 = sext i32 %retval.0.i234 to i64 %arrayidx.i86 = getelementptr inbounds %struct.MatchState, ptr %ms, i64 0, i32 6, i64 %idxprom.i85 %19 = load ptr, ptr %arrayidx.i86, align 8 - %sub.ptr.lhs.cast.i = ptrtoint ptr %s.addr.0.ph422 to i64 + %sub.ptr.lhs.cast.i = ptrtoint ptr %s.addr.0.ph421 to i64 %sub.ptr.rhs.cast.i = ptrtoint ptr %19 to i64 %sub.ptr.sub.i = sub i64 %sub.ptr.lhs.cast.i, %sub.ptr.rhs.cast.i %len.i87 = getelementptr inbounds %struct.MatchState, ptr %ms, i64 0, i32 6, i64 %idxprom.i85, i32 1 store i64 %sub.ptr.sub.i, ptr %len.i87, align 8 - %call4.i = tail call fastcc ptr @match(ptr noundef nonnull %ms, ptr noundef %s.addr.0.ph422, ptr noundef nonnull %incdec.ptr.i167) + %call4.i = tail call fastcc ptr @match(ptr noundef nonnull %ms, ptr noundef %s.addr.0.ph421, ptr noundef nonnull %incdec.ptr.i167) %cmp.i88 = icmp eq ptr %call4.i, null br i1 %cmp.i88, label %if.then.i90, label %if.end124 @@ -3316,14 +3315,14 @@ sw.bb20: ; preds = %if.then6 if.end26: ; preds = %sw.bb20 %20 = load ptr, ptr %3, align 8 - %cmp27 = icmp eq ptr %s.addr.0.ph422, %20 - %cond = select i1 %cmp27, ptr %s.addr.0.ph422, ptr null + %cmp27 = icmp eq ptr %s.addr.0.ph421, %20 + %cond = select i1 %cmp27, ptr %s.addr.0.ph421, ptr null br label %if.end124 sw.bb29: ; preds = %if.then6 %21 = load i8, ptr %incdec.ptr.i167, align 1 %conv31 = sext i8 %21 to i32 - switch i32 %conv31, label %dflt.thread344 [ + switch i32 %conv31, label %dflt.thread343 [ i32 98, label %sw.bb32 i32 102, label %sw.bb40 i32 48, label %sw.bb73 @@ -3338,13 +3337,13 @@ sw.bb29: ; preds = %if.then6 i32 57, label %sw.bb73 ] -dflt.thread344: ; preds = %sw.bb29 +dflt.thread343: ; preds = %sw.bb29 %cmp.i195 = icmp eq ptr %incdec.ptr.i167, %5 br i1 %cmp.i195, label %if.then.i198, label %if.end.i196 sw.bb32: ; preds = %sw.bb29 - %add.ptr33 = getelementptr inbounds i8, ptr %p.addr.0413, i64 2 - %s18.i = ptrtoint ptr %s.addr.0.ph422 to i64 + %add.ptr33 = getelementptr inbounds i8, ptr %p.addr.0412, i64 2 + %s18.i = ptrtoint ptr %s.addr.0.ph421 to i64 %add.ptr.i = getelementptr inbounds i8, ptr %5, i64 -1 %cmp.not.i = icmp ugt ptr %add.ptr.i, %add.ptr33 br i1 %cmp.not.i, label %if.end.i94, label %if.then.i91 @@ -3355,13 +3354,13 @@ if.then.i91: ; preds = %sw.bb32 br label %if.end.i94 if.end.i94: ; preds = %if.then.i91, %sw.bb32 - %23 = load i8, ptr %s.addr.0.ph422, align 1 + %23 = load i8, ptr %s.addr.0.ph421, align 1 %24 = load i8, ptr %add.ptr33, align 1 %cmp6.not.i = icmp eq i8 %23, %24 br i1 %cmp6.not.i, label %if.else.i, label %if.end124 if.else.i: ; preds = %if.end.i94 - %add.ptr10.i = getelementptr inbounds i8, ptr %p.addr.0413, i64 3 + %add.ptr10.i = getelementptr inbounds i8, ptr %p.addr.0412, i64 3 %25 = load i8, ptr %add.ptr10.i, align 1 %26 = load ptr, ptr %3, align 8 %cmp1213.i = icmp ult ptr %add.ptr105, %26 @@ -3370,13 +3369,13 @@ if.else.i: ; preds = %if.end.i94 while.body.preheader.i: ; preds = %if.else.i %27 = ptrtoint ptr %26 to i64 %28 = sub i64 %27, %s18.i - %scevgep.i = getelementptr i8, ptr %s.addr.0.ph422, i64 %28 + %scevgep.i = getelementptr i8, ptr %s.addr.0.ph421, i64 %28 br label %while.body.i while.body.i: ; preds = %if.end29.i, %while.body.preheader.i %incdec.ptr16.i = phi ptr [ %incdec.ptr.i, %if.end29.i ], [ %add.ptr105, %while.body.preheader.i ] %cont.015.i = phi i32 [ %cont.1.i, %if.end29.i ], [ 1, %while.body.preheader.i ] - %s.addr.014.i = phi ptr [ %incdec.ptr16.i, %if.end29.i ], [ %s.addr.0.ph422, %while.body.preheader.i ] + %s.addr.014.i = phi ptr [ %incdec.ptr16.i, %if.end29.i ], [ %s.addr.0.ph421, %while.body.preheader.i ] %29 = load i8, ptr %incdec.ptr16.i, align 1 %cmp15.i = icmp eq i8 %29, %25 br i1 %cmp15.i, label %if.then17.i, label %if.else23.i @@ -3400,24 +3399,24 @@ if.end29.i: ; preds = %if.else23.i, %if.th if.then37: ; preds = %if.then17.i %add.ptr21.i = getelementptr inbounds i8, ptr %s.addr.014.i, i64 2 - %add.ptr38 = getelementptr inbounds i8, ptr %p.addr.0413, i64 4 + %add.ptr38 = getelementptr inbounds i8, ptr %p.addr.0412, i64 4 br label %init.outer.backedge sw.bb40: ; preds = %sw.bb29 - %add.ptr41 = getelementptr inbounds i8, ptr %p.addr.0413, i64 2 + %add.ptr41 = getelementptr inbounds i8, ptr %p.addr.0412, i64 2 %30 = load i8, ptr %add.ptr41, align 1 %cmp43.not = icmp eq i8 %30, 91 br i1 %cmp43.not, label %if.end52.thread, label %if.end52 if.end52.thread: ; preds = %sw.bb40 - %incdec.ptr.i96483 = getelementptr inbounds i8, ptr %p.addr.0413, i64 3 + %incdec.ptr.i96482 = getelementptr inbounds i8, ptr %p.addr.0412, i64 3 br label %sw.bb5.i if.end52: ; preds = %sw.bb40 %31 = load ptr, ptr %L50, align 8 %call51 = tail call i32 (ptr, ptr, ...) @luaL_error(ptr noundef %31, ptr noundef nonnull @.str.22) #13 %.pre = load i8, ptr %add.ptr41, align 1 - %incdec.ptr.i96 = getelementptr inbounds i8, ptr %p.addr.0413, i64 3 + %incdec.ptr.i96 = getelementptr inbounds i8, ptr %p.addr.0412, i64 3 %conv.i = sext i8 %.pre to i32 switch i32 %conv.i, label %classend.exit [ i32 37, label %sw.bb.i @@ -3435,15 +3434,15 @@ if.then.i104: ; preds = %sw.bb.i br label %if.end.i102 if.end.i102: ; preds = %if.then.i104, %sw.bb.i - %add.ptr.i103 = getelementptr inbounds i8, ptr %p.addr.0413, i64 4 + %add.ptr.i103 = getelementptr inbounds i8, ptr %p.addr.0412, i64 4 br label %classend.exit sw.bb5.i: ; preds = %if.end52.thread, %if.end52 - %incdec.ptr.i96485 = phi ptr [ %incdec.ptr.i96483, %if.end52.thread ], [ %incdec.ptr.i96, %if.end52 ] - %34 = load i8, ptr %incdec.ptr.i96485, align 1 + %incdec.ptr.i96484 = phi ptr [ %incdec.ptr.i96482, %if.end52.thread ], [ %incdec.ptr.i96, %if.end52 ] + %34 = load i8, ptr %incdec.ptr.i96484, align 1 %cmp7.i = icmp eq i8 %34, 94 - %incdec.ptr10.i = getelementptr inbounds i8, ptr %p.addr.0413, i64 4 - %spec.select.i97 = select i1 %cmp7.i, ptr %incdec.ptr10.i, ptr %incdec.ptr.i96485 + %incdec.ptr10.i = getelementptr inbounds i8, ptr %p.addr.0412, i64 4 + %spec.select.i97 = select i1 %cmp7.i, ptr %incdec.ptr10.i, ptr %incdec.ptr.i96484 br label %do.body.i do.body.i: ; preds = %do.cond.i, %sw.bb5.i @@ -3481,10 +3480,10 @@ do.end.i: ; preds = %do.cond.i br label %classend.exit classend.exit: ; preds = %if.end52, %if.end.i102, %do.end.i - %incdec.ptr.i96486 = phi ptr [ %incdec.ptr.i96485, %do.end.i ], [ %incdec.ptr.i96, %if.end.i102 ], [ %incdec.ptr.i96, %if.end52 ] + %incdec.ptr.i96485 = phi ptr [ %incdec.ptr.i96484, %do.end.i ], [ %incdec.ptr.i96, %if.end.i102 ], [ %incdec.ptr.i96, %if.end52 ] %retval.0.i99 = phi ptr [ %add.ptr36.i, %do.end.i ], [ %add.ptr.i103, %if.end.i102 ], [ %incdec.ptr.i96, %if.end52 ] %40 = load ptr, ptr %ms, align 8 - %cmp54 = icmp eq ptr %s.addr.0.ph422, %40 + %cmp54 = icmp eq ptr %s.addr.0.ph421, %40 br i1 %cmp54, label %cond.end60, label %cond.false57 cond.false57: ; preds = %classend.exit @@ -3495,9 +3494,9 @@ cond.end60: ; preds = %classend.exit, %con %cond61 = phi i8 [ %41, %cond.false57 ], [ 0, %classend.exit ] %conv63 = zext i8 %cond61 to i32 %add.ptr64 = getelementptr inbounds i8, ptr %retval.0.i99, i64 -1 - %42 = load i8, ptr %incdec.ptr.i96486, align 1 + %42 = load i8, ptr %incdec.ptr.i96485, align 1 %cmp.i108 = icmp eq i8 %42, 94 - %spec.select.i109 = select i1 %cmp.i108, ptr %incdec.ptr.i96486, ptr %add.ptr41 + %spec.select.i109 = select i1 %cmp.i108, ptr %incdec.ptr.i96485, ptr %add.ptr41 %not.cmp.i = xor i1 %cmp.i108, true %incdec.ptr220.i = getelementptr inbounds i8, ptr %spec.select.i109, i64 1 %cmp321.i = icmp ult ptr %incdec.ptr220.i, %add.ptr64 @@ -3551,7 +3550,7 @@ matchbracketclass.exit: ; preds = %if.then8.i, %land.l br i1 %retval.0.in.i, label %if.end124, label %land.lhs.true land.lhs.true: ; preds = %matchbracketclass.exit - %46 = load i8, ptr %s.addr.0.ph422, align 1 + %46 = load i8, ptr %s.addr.0.ph421, align 1 %conv67 = zext i8 %46 to i32 br label %while.body.i127 @@ -3634,7 +3633,7 @@ check_capture.exit.i: ; preds = %if.then.i.i, %lor.r %53 = load i64, ptr %len1.i, align 8 %54 = load ptr, ptr %3, align 8 %sub.ptr.lhs.cast.i157 = ptrtoint ptr %54 to i64 - %sub.ptr.rhs.cast.i158 = ptrtoint ptr %s.addr.0.ph422 to i64 + %sub.ptr.rhs.cast.i158 = ptrtoint ptr %s.addr.0.ph421 to i64 %sub.ptr.sub.i159 = sub i64 %sub.ptr.lhs.cast.i157, %sub.ptr.rhs.cast.i158 %cmp.not.i160 = icmp ult i64 %sub.ptr.sub.i159, %53 br i1 %cmp.not.i160, label %if.end124, label %land.lhs.true.i161 @@ -3642,34 +3641,34 @@ check_capture.exit.i: ; preds = %if.then.i.i, %lor.r land.lhs.true.i161: ; preds = %check_capture.exit.i %arrayidx.i162 = getelementptr inbounds %struct.MatchState, ptr %ms, i64 0, i32 6, i64 %idxprom.i155 %55 = load ptr, ptr %arrayidx.i162, align 8 - %bcmp.i = tail call i32 @bcmp(ptr %55, ptr %s.addr.0.ph422, i64 %53) + %bcmp.i = tail call i32 @bcmp(ptr %55, ptr %s.addr.0.ph421, i64 %53) %cmp6.i163 = icmp ne i32 %bcmp.i, 0 - %cmp77.not = icmp eq ptr %s.addr.0.ph422, null + %cmp77.not = icmp eq ptr %s.addr.0.ph421, null %or.cond = select i1 %cmp6.i163, i1 true, i1 %cmp77.not br i1 %or.cond, label %if.end124, label %if.then79 if.then79: ; preds = %land.lhs.true.i161 - %add.ptr.i164 = getelementptr inbounds i8, ptr %s.addr.0.ph422, i64 %53 - %add.ptr80 = getelementptr inbounds i8, ptr %p.addr.0413, i64 2 + %add.ptr.i164 = getelementptr inbounds i8, ptr %s.addr.0.ph421, i64 %53 + %add.ptr80 = getelementptr inbounds i8, ptr %p.addr.0412, i64 2 br label %init.outer.backedge dflt: ; preds = %if.then6 - %cond359 = icmp eq i8 %6, 91 - br i1 %cond359, label %sw.bb5.i169, label %classend.exit201 + %cond358 = icmp eq i8 %6, 91 + br i1 %cond358, label %sw.bb5.i169, label %classend.exit201 -if.then.i198: ; preds = %dflt.thread344 +if.then.i198: ; preds = %dflt.thread343 %56 = load ptr, ptr %L50, align 8 %call.i200 = tail call i32 (ptr, ptr, ...) @luaL_error(ptr noundef %56, ptr noundef nonnull @.str.26) #13 br label %if.end.i196 -if.end.i196: ; preds = %if.then.i198, %dflt.thread344 - %add.ptr.i197 = getelementptr inbounds i8, ptr %p.addr.0413, i64 2 +if.end.i196: ; preds = %if.then.i198, %dflt.thread343 + %add.ptr.i197 = getelementptr inbounds i8, ptr %p.addr.0412, i64 2 br label %classend.exit201 sw.bb5.i169: ; preds = %dflt %57 = load i8, ptr %incdec.ptr.i167, align 1 %cmp7.i170 = icmp eq i8 %57, 94 - %incdec.ptr10.i171 = getelementptr inbounds i8, ptr %p.addr.0413, i64 2 + %incdec.ptr10.i171 = getelementptr inbounds i8, ptr %p.addr.0412, i64 2 %spec.select.i172 = select i1 %cmp7.i170, ptr %incdec.ptr10.i171, ptr %incdec.ptr.i167 br label %do.body.i175 @@ -3710,13 +3709,13 @@ do.end.i184: ; preds = %do.cond.i181 classend.exit201: ; preds = %sw.bb20, %dflt, %if.end.i196, %do.end.i184 %retval.0.i186 = phi ptr [ %add.ptr36.i185, %do.end.i184 ], [ %add.ptr.i197, %if.end.i196 ], [ %incdec.ptr.i167, %dflt ], [ %incdec.ptr.i167, %sw.bb20 ] %ms.val = load ptr, ptr %3, align 8 - %cmp.not.i202 = icmp ugt ptr %ms.val, %s.addr.0.ph422 + %cmp.not.i202 = icmp ugt ptr %ms.val, %s.addr.0.ph421 br i1 %cmp.not.i202, label %if.else.i204, label %if.then87 if.else.i204: ; preds = %classend.exit201 - %63 = load i8, ptr %s.addr.0.ph422, align 1 + %63 = load i8, ptr %s.addr.0.ph421, align 1 %conv.i205 = zext i8 %63 to i32 - %64 = load i8, ptr %p.addr.0413, align 1 + %64 = load i8, ptr %p.addr.0412, align 1 %conv1.i = sext i8 %64 to i32 switch i32 %conv1.i, label %sw.default.i [ i32 46, label %if.else102 @@ -3734,7 +3733,7 @@ sw.bb4.i: ; preds = %if.else.i204 %add.ptr5.i = getelementptr inbounds i8, ptr %retval.0.i186, i64 -1 %66 = load i8, ptr %incdec.ptr.i167, align 1 %cmp.i.i206 = icmp eq i8 %66, 94 - %spec.select.i.i = select i1 %cmp.i.i206, ptr %incdec.ptr.i167, ptr %p.addr.0413 + %spec.select.i.i = select i1 %cmp.i.i206, ptr %incdec.ptr.i167, ptr %p.addr.0412 %not.cmp.i.i = xor i1 %cmp.i.i206, true %incdec.ptr220.i.i = getelementptr inbounds i8, ptr %spec.select.i.i, i64 1 %cmp321.i.i = icmp ult ptr %incdec.ptr220.i.i, %add.ptr5.i @@ -3821,19 +3820,19 @@ if.else102: ; preds = %if.else.i204, %sing %conv103 = sext i8 %72 to i32 switch i32 %conv103, label %init.outer.backedge [ i32 63, label %sw.bb104 - i32 43, label %sw.bb115.loopexit635 + i32 43, label %sw.bb115.loopexit634 i32 42, label %sw.bb115 i32 45, label %for.cond.i.preheader ] for.cond.i.preheader: ; preds = %if.else102 %add.ptr.i221 = getelementptr inbounds i8, ptr %retval.0.i186, i64 1 - %call.i222424 = tail call fastcc ptr @match(ptr noundef %ms, ptr noundef nonnull %s.addr.0.ph422, ptr noundef nonnull %add.ptr.i221) - %cmp.not.i223425 = icmp eq ptr %call.i222424, null - br i1 %cmp.not.i223425, label %if.else.i225.lr.ph, label %if.end124 + %call.i222423 = tail call fastcc ptr @match(ptr noundef %ms, ptr noundef nonnull %s.addr.0.ph421, ptr noundef nonnull %add.ptr.i221) + %cmp.not.i223424 = icmp eq ptr %call.i222423, null + br i1 %cmp.not.i223424, label %if.else.i225.lr.ph, label %if.end124 if.else.i225.lr.ph: ; preds = %for.cond.i.preheader - %add.ptr5.i292 = getelementptr inbounds i8, ptr %retval.0.i186, i64 -1 + %add.ptr5.i291 = getelementptr inbounds i8, ptr %retval.0.i186, i64 -1 br label %if.else.i225 sw.bb104: ; preds = %if.else102 @@ -3842,214 +3841,214 @@ sw.bb104: ; preds = %if.else102 %cmp108.not = icmp eq ptr %call107, null br i1 %cmp108.not, label %init.backedge, label %if.end124 -sw.bb115.loopexit635: ; preds = %if.else102 +sw.bb115.loopexit634: ; preds = %if.else102 br label %sw.bb115 -sw.bb115: ; preds = %if.else102, %sw.bb115.loopexit635 - %s.addr.1 = phi ptr [ %add.ptr105, %sw.bb115.loopexit635 ], [ %s.addr.0.ph422, %if.else102 ] - %add.ptr5.i244 = getelementptr inbounds i8, ptr %retval.0.i186, i64 -1 - %cmp.not.i238626 = icmp ugt ptr %ms.val, %s.addr.1 - br i1 %cmp.not.i238626, label %if.else.i240, label %while.body2.i.lr.ph - -if.else.i240: ; preds = %sw.bb115, %while.body.i215 - %add.ptr.i212628 = phi ptr [ %add.ptr.i212, %while.body.i215 ], [ %s.addr.1, %sw.bb115 ] - %i.0.i627 = phi i64 [ %inc.i216, %while.body.i215 ], [ 0, %sw.bb115 ] - %73 = load i8, ptr %add.ptr.i212628, align 1 - %conv.i241 = zext i8 %73 to i32 - switch i32 %conv1.i, label %sw.default.i282 [ +sw.bb115: ; preds = %if.else102, %sw.bb115.loopexit634 + %s.addr.1 = phi ptr [ %add.ptr105, %sw.bb115.loopexit634 ], [ %s.addr.0.ph421, %if.else102 ] + %add.ptr5.i243 = getelementptr inbounds i8, ptr %retval.0.i186, i64 -1 + %cmp.not.i237625 = icmp ugt ptr %ms.val, %s.addr.1 + br i1 %cmp.not.i237625, label %if.else.i239, label %while.body2.i.lr.ph + +if.else.i239: ; preds = %sw.bb115, %while.body.i215 + %add.ptr.i212627 = phi ptr [ %add.ptr.i212, %while.body.i215 ], [ %s.addr.1, %sw.bb115 ] + %i.0.i626 = phi i64 [ %inc.i216, %while.body.i215 ], [ 0, %sw.bb115 ] + %73 = load i8, ptr %add.ptr.i212627, align 1 + %conv.i240 = zext i8 %73 to i32 + switch i32 %conv1.i, label %sw.default.i281 [ i32 46, label %while.body.i215 - i32 37, label %sw.bb2.i278 - i32 91, label %sw.bb4.i243 + i32 37, label %sw.bb2.i277 + i32 91, label %sw.bb4.i242 ] -sw.bb2.i278: ; preds = %if.else.i240 +sw.bb2.i277: ; preds = %if.else.i239 %74 = load i8, ptr %incdec.ptr.i167, align 1 - %conv3.i280 = zext i8 %74 to i32 - %call.i281 = tail call fastcc i32 @match_class(i32 noundef %conv.i241, i32 noundef %conv3.i280), !range !33 - br label %singlematch.exit285 + %conv3.i279 = zext i8 %74 to i32 + %call.i280 = tail call fastcc i32 @match_class(i32 noundef %conv.i240, i32 noundef %conv3.i279), !range !33 + br label %singlematch.exit284 -sw.bb4.i243: ; preds = %if.else.i240 +sw.bb4.i242: ; preds = %if.else.i239 %75 = load i8, ptr %incdec.ptr.i167, align 1 - %cmp.i.i246 = icmp eq i8 %75, 94 - %spec.select.i.i247 = select i1 %cmp.i.i246, ptr %incdec.ptr.i167, ptr %p.addr.0413 - %not.cmp.i.i248 = xor i1 %cmp.i.i246, true - %incdec.ptr220.i.i249 = getelementptr inbounds i8, ptr %spec.select.i.i247, i64 1 - %cmp321.i.i250 = icmp ult ptr %incdec.ptr220.i.i249, %add.ptr5.i244 - br i1 %cmp321.i.i250, label %while.body.i.i254, label %matchbracketclass.exit.i251 - -while.body.i.i254: ; preds = %sw.bb4.i243, %if.end39.i.i263 - %incdec.ptr223.i.i255 = phi ptr [ %incdec.ptr2.i.i265, %if.end39.i.i263 ], [ %incdec.ptr220.i.i249, %sw.bb4.i243 ] - %p.addr.122.i.i256 = phi ptr [ %p.addr.2.i.i264, %if.end39.i.i263 ], [ %spec.select.i.i247, %sw.bb4.i243 ] - %76 = load i8, ptr %incdec.ptr223.i.i255, align 1 - %cmp6.i.i257 = icmp eq i8 %76, 37 - %incdec.ptr9.i.i258 = getelementptr inbounds i8, ptr %p.addr.122.i.i256, i64 2 - %77 = load i8, ptr %incdec.ptr9.i.i258, align 1 - br i1 %cmp6.i.i257, label %if.then8.i.i274, label %if.else.i.i259 - -if.then8.i.i274: ; preds = %while.body.i.i254 - %conv10.i.i275 = zext i8 %77 to i32 - %call.i.i276 = tail call fastcc i32 @match_class(i32 noundef %conv.i241, i32 noundef %conv10.i.i275), !range !33 - %tobool.not.i.i277 = icmp eq i32 %call.i.i276, 0 - br i1 %tobool.not.i.i277, label %if.end39.i.i263, label %matchbracketclass.exit.i251 - -if.else.i.i259: ; preds = %while.body.i.i254 - %cmp15.i.i260 = icmp eq i8 %77, 45 - br i1 %cmp15.i.i260, label %land.lhs.true.i.i267, label %if.else32.i.i261 - -land.lhs.true.i.i267: ; preds = %if.else.i.i259 - %add.ptr17.i.i268 = getelementptr inbounds i8, ptr %p.addr.122.i.i256, i64 3 - %cmp18.i.i269 = icmp ult ptr %add.ptr17.i.i268, %add.ptr5.i244 - br i1 %cmp18.i.i269, label %if.then20.i.i270, label %if.else32.i.i261 - -if.then20.i.i270: ; preds = %land.lhs.true.i.i267 - %cmp24.not.i.i271 = icmp ugt i8 %76, %73 - br i1 %cmp24.not.i.i271, label %if.end39.i.i263, label %land.lhs.true26.i.i272 - -land.lhs.true26.i.i272: ; preds = %if.then20.i.i270 - %78 = load i8, ptr %add.ptr17.i.i268, align 1 - %cmp28.not.i.i273 = icmp ult i8 %78, %73 - br i1 %cmp28.not.i.i273, label %if.end39.i.i263, label %matchbracketclass.exit.i251 - -if.else32.i.i261: ; preds = %land.lhs.true.i.i267, %if.else.i.i259 - %cmp34.i.i262 = icmp eq i8 %76, %73 - br i1 %cmp34.i.i262, label %matchbracketclass.exit.i251, label %if.end39.i.i263 - -if.end39.i.i263: ; preds = %if.else32.i.i261, %land.lhs.true26.i.i272, %if.then20.i.i270, %if.then8.i.i274 - %p.addr.2.i.i264 = phi ptr [ %incdec.ptr9.i.i258, %if.then8.i.i274 ], [ %add.ptr17.i.i268, %land.lhs.true26.i.i272 ], [ %add.ptr17.i.i268, %if.then20.i.i270 ], [ %incdec.ptr223.i.i255, %if.else32.i.i261 ] - %incdec.ptr2.i.i265 = getelementptr inbounds i8, ptr %p.addr.2.i.i264, i64 1 - %cmp3.i.i266 = icmp ult ptr %incdec.ptr2.i.i265, %add.ptr5.i244 - br i1 %cmp3.i.i266, label %while.body.i.i254, label %matchbracketclass.exit.i251, !llvm.loop !34 - -matchbracketclass.exit.i251: ; preds = %if.end39.i.i263, %if.else32.i.i261, %land.lhs.true26.i.i272, %if.then8.i.i274, %sw.bb4.i243 - %retval.0.in.i.i252 = phi i1 [ %cmp.i.i246, %sw.bb4.i243 ], [ %cmp.i.i246, %if.end39.i.i263 ], [ %not.cmp.i.i248, %if.else32.i.i261 ], [ %not.cmp.i.i248, %land.lhs.true26.i.i272 ], [ %not.cmp.i.i248, %if.then8.i.i274 ] - %retval.0.i.i253 = zext i1 %retval.0.in.i.i252 to i32 - br label %singlematch.exit285 - -sw.default.i282: ; preds = %if.else.i240 - %cmp8.i283 = icmp eq i8 %64, %73 - %conv9.i284 = zext i1 %cmp8.i283 to i32 - br label %singlematch.exit285 - -singlematch.exit285: ; preds = %sw.bb2.i278, %matchbracketclass.exit.i251, %sw.default.i282 - %retval.0.i239 = phi i32 [ %conv9.i284, %sw.default.i282 ], [ %retval.0.i.i253, %matchbracketclass.exit.i251 ], [ %call.i281, %sw.bb2.i278 ] - %tobool.not.i214 = icmp eq i32 %retval.0.i239, 0 + %cmp.i.i245 = icmp eq i8 %75, 94 + %spec.select.i.i246 = select i1 %cmp.i.i245, ptr %incdec.ptr.i167, ptr %p.addr.0412 + %not.cmp.i.i247 = xor i1 %cmp.i.i245, true + %incdec.ptr220.i.i248 = getelementptr inbounds i8, ptr %spec.select.i.i246, i64 1 + %cmp321.i.i249 = icmp ult ptr %incdec.ptr220.i.i248, %add.ptr5.i243 + br i1 %cmp321.i.i249, label %while.body.i.i253, label %matchbracketclass.exit.i250 + +while.body.i.i253: ; preds = %sw.bb4.i242, %if.end39.i.i262 + %incdec.ptr223.i.i254 = phi ptr [ %incdec.ptr2.i.i264, %if.end39.i.i262 ], [ %incdec.ptr220.i.i248, %sw.bb4.i242 ] + %p.addr.122.i.i255 = phi ptr [ %p.addr.2.i.i263, %if.end39.i.i262 ], [ %spec.select.i.i246, %sw.bb4.i242 ] + %76 = load i8, ptr %incdec.ptr223.i.i254, align 1 + %cmp6.i.i256 = icmp eq i8 %76, 37 + %incdec.ptr9.i.i257 = getelementptr inbounds i8, ptr %p.addr.122.i.i255, i64 2 + %77 = load i8, ptr %incdec.ptr9.i.i257, align 1 + br i1 %cmp6.i.i256, label %if.then8.i.i273, label %if.else.i.i258 + +if.then8.i.i273: ; preds = %while.body.i.i253 + %conv10.i.i274 = zext i8 %77 to i32 + %call.i.i275 = tail call fastcc i32 @match_class(i32 noundef %conv.i240, i32 noundef %conv10.i.i274), !range !33 + %tobool.not.i.i276 = icmp eq i32 %call.i.i275, 0 + br i1 %tobool.not.i.i276, label %if.end39.i.i262, label %matchbracketclass.exit.i250 + +if.else.i.i258: ; preds = %while.body.i.i253 + %cmp15.i.i259 = icmp eq i8 %77, 45 + br i1 %cmp15.i.i259, label %land.lhs.true.i.i266, label %if.else32.i.i260 + +land.lhs.true.i.i266: ; preds = %if.else.i.i258 + %add.ptr17.i.i267 = getelementptr inbounds i8, ptr %p.addr.122.i.i255, i64 3 + %cmp18.i.i268 = icmp ult ptr %add.ptr17.i.i267, %add.ptr5.i243 + br i1 %cmp18.i.i268, label %if.then20.i.i269, label %if.else32.i.i260 + +if.then20.i.i269: ; preds = %land.lhs.true.i.i266 + %cmp24.not.i.i270 = icmp ugt i8 %76, %73 + br i1 %cmp24.not.i.i270, label %if.end39.i.i262, label %land.lhs.true26.i.i271 + +land.lhs.true26.i.i271: ; preds = %if.then20.i.i269 + %78 = load i8, ptr %add.ptr17.i.i267, align 1 + %cmp28.not.i.i272 = icmp ult i8 %78, %73 + br i1 %cmp28.not.i.i272, label %if.end39.i.i262, label %matchbracketclass.exit.i250 + +if.else32.i.i260: ; preds = %land.lhs.true.i.i266, %if.else.i.i258 + %cmp34.i.i261 = icmp eq i8 %76, %73 + br i1 %cmp34.i.i261, label %matchbracketclass.exit.i250, label %if.end39.i.i262 + +if.end39.i.i262: ; preds = %if.else32.i.i260, %land.lhs.true26.i.i271, %if.then20.i.i269, %if.then8.i.i273 + %p.addr.2.i.i263 = phi ptr [ %incdec.ptr9.i.i257, %if.then8.i.i273 ], [ %add.ptr17.i.i267, %land.lhs.true26.i.i271 ], [ %add.ptr17.i.i267, %if.then20.i.i269 ], [ %incdec.ptr223.i.i254, %if.else32.i.i260 ] + %incdec.ptr2.i.i264 = getelementptr inbounds i8, ptr %p.addr.2.i.i263, i64 1 + %cmp3.i.i265 = icmp ult ptr %incdec.ptr2.i.i264, %add.ptr5.i243 + br i1 %cmp3.i.i265, label %while.body.i.i253, label %matchbracketclass.exit.i250, !llvm.loop !34 + +matchbracketclass.exit.i250: ; preds = %if.end39.i.i262, %if.else32.i.i260, %land.lhs.true26.i.i271, %if.then8.i.i273, %sw.bb4.i242 + %retval.0.in.i.i251 = phi i1 [ %cmp.i.i245, %sw.bb4.i242 ], [ %cmp.i.i245, %if.end39.i.i262 ], [ %not.cmp.i.i247, %if.else32.i.i260 ], [ %not.cmp.i.i247, %land.lhs.true26.i.i271 ], [ %not.cmp.i.i247, %if.then8.i.i273 ] + %retval.0.i.i252 = zext i1 %retval.0.in.i.i251 to i32 + br label %singlematch.exit284 + +sw.default.i281: ; preds = %if.else.i239 + %cmp8.i282 = icmp eq i8 %64, %73 + %conv9.i283 = zext i1 %cmp8.i282 to i32 + br label %singlematch.exit284 + +singlematch.exit284: ; preds = %sw.bb2.i277, %matchbracketclass.exit.i250, %sw.default.i281 + %retval.0.i238 = phi i32 [ %conv9.i283, %sw.default.i281 ], [ %retval.0.i.i252, %matchbracketclass.exit.i250 ], [ %call.i280, %sw.bb2.i277 ] + %tobool.not.i214 = icmp eq i32 %retval.0.i238, 0 br i1 %tobool.not.i214, label %while.body2.i.lr.ph, label %while.body.i215 -while.body2.i.lr.ph: ; preds = %singlematch.exit285, %while.body.i215, %sw.bb115 - %i.0.i.lcssa = phi i64 [ 0, %sw.bb115 ], [ %i.0.i627, %singlematch.exit285 ], [ %inc.i216, %while.body.i215 ] +while.body2.i.lr.ph: ; preds = %singlematch.exit284, %while.body.i215, %sw.bb115 + %i.0.i.lcssa = phi i64 [ 0, %sw.bb115 ], [ %i.0.i626, %singlematch.exit284 ], [ %inc.i216, %while.body.i215 ] %add.ptr4.i = getelementptr inbounds i8, ptr %retval.0.i186, i64 1 br label %while.body2.i -while.body.i215: ; preds = %if.else.i240, %singlematch.exit285 - %inc.i216 = add nuw nsw i64 %i.0.i627, 1 +while.body.i215: ; preds = %if.else.i239, %singlematch.exit284 + %inc.i216 = add nuw nsw i64 %i.0.i626, 1 %add.ptr.i212 = getelementptr inbounds i8, ptr %s.addr.1, i64 %inc.i216 - %cmp.not.i238 = icmp ugt ptr %ms.val, %add.ptr.i212 - br i1 %cmp.not.i238, label %if.else.i240, label %while.body2.i.lr.ph, !llvm.loop !35 + %cmp.not.i237 = icmp ugt ptr %ms.val, %add.ptr.i212 + br i1 %cmp.not.i237, label %if.else.i239, label %while.body2.i.lr.ph, !llvm.loop !35 while.cond1.i: ; preds = %while.body2.i - %dec.i220 = add nsw i64 %i.1.i431, -1 - %cmp.i217 = icmp sgt i64 %i.1.i431, 0 + %dec.i220 = add nsw i64 %i.1.i430, -1 + %cmp.i217 = icmp sgt i64 %i.1.i430, 0 br i1 %cmp.i217, label %while.body2.i, label %if.end124, !llvm.loop !36 while.body2.i: ; preds = %while.body2.i.lr.ph, %while.cond1.i - %i.1.i431 = phi i64 [ %i.0.i.lcssa, %while.body2.i.lr.ph ], [ %dec.i220, %while.cond1.i ] - %add.ptr3.i = getelementptr inbounds i8, ptr %s.addr.1, i64 %i.1.i431 + %i.1.i430 = phi i64 [ %i.0.i.lcssa, %while.body2.i.lr.ph ], [ %dec.i220, %while.cond1.i ] + %add.ptr3.i = getelementptr inbounds i8, ptr %s.addr.1, i64 %i.1.i430 %call5.i = tail call fastcc ptr @match(ptr noundef %ms, ptr noundef nonnull %add.ptr3.i, ptr noundef nonnull %add.ptr4.i) %tobool6.not.i = icmp eq ptr %call5.i, null br i1 %tobool6.not.i, label %while.cond1.i, label %if.end124 if.else.i225: ; preds = %if.else.i225.lr.ph, %if.then2.i - %s.addr.0.i426 = phi ptr [ %s.addr.0.ph422, %if.else.i225.lr.ph ], [ %incdec.ptr.i228, %if.then2.i ] + %s.addr.0.i425 = phi ptr [ %s.addr.0.ph421, %if.else.i225.lr.ph ], [ %incdec.ptr.i228, %if.then2.i ] %ms.val.i226 = load ptr, ptr %3, align 8 - %cmp.not.i286 = icmp ugt ptr %ms.val.i226, %s.addr.0.i426 - br i1 %cmp.not.i286, label %if.else.i288, label %if.end124 - -if.else.i288: ; preds = %if.else.i225 - %79 = load i8, ptr %s.addr.0.i426, align 1 - %conv.i289 = zext i8 %79 to i32 - %80 = load i8, ptr %p.addr.0413, align 1 - %conv1.i290 = sext i8 %80 to i32 - switch i32 %conv1.i290, label %sw.default.i330 [ + %cmp.not.i285 = icmp ugt ptr %ms.val.i226, %s.addr.0.i425 + br i1 %cmp.not.i285, label %if.else.i287, label %if.end124 + +if.else.i287: ; preds = %if.else.i225 + %79 = load i8, ptr %s.addr.0.i425, align 1 + %conv.i288 = zext i8 %79 to i32 + %80 = load i8, ptr %p.addr.0412, align 1 + %conv1.i289 = sext i8 %80 to i32 + switch i32 %conv1.i289, label %sw.default.i329 [ i32 46, label %if.then2.i - i32 37, label %sw.bb2.i326 - i32 91, label %sw.bb4.i291 + i32 37, label %sw.bb2.i325 + i32 91, label %sw.bb4.i290 ] -sw.bb2.i326: ; preds = %if.else.i288 +sw.bb2.i325: ; preds = %if.else.i287 %81 = load i8, ptr %incdec.ptr.i167, align 1 - %conv3.i328 = zext i8 %81 to i32 - %call.i329 = tail call fastcc i32 @match_class(i32 noundef %conv.i289, i32 noundef %conv3.i328), !range !33 - br label %singlematch.exit333 + %conv3.i327 = zext i8 %81 to i32 + %call.i328 = tail call fastcc i32 @match_class(i32 noundef %conv.i288, i32 noundef %conv3.i327), !range !33 + br label %singlematch.exit332 -sw.bb4.i291: ; preds = %if.else.i288 +sw.bb4.i290: ; preds = %if.else.i287 %82 = load i8, ptr %incdec.ptr.i167, align 1 - %cmp.i.i294 = icmp eq i8 %82, 94 - %spec.select.i.i295 = select i1 %cmp.i.i294, ptr %incdec.ptr.i167, ptr %p.addr.0413 - %not.cmp.i.i296 = xor i1 %cmp.i.i294, true - %incdec.ptr220.i.i297 = getelementptr inbounds i8, ptr %spec.select.i.i295, i64 1 - %cmp321.i.i298 = icmp ult ptr %incdec.ptr220.i.i297, %add.ptr5.i292 - br i1 %cmp321.i.i298, label %while.body.i.i302, label %matchbracketclass.exit.i299 - -while.body.i.i302: ; preds = %sw.bb4.i291, %if.end39.i.i311 - %incdec.ptr223.i.i303 = phi ptr [ %incdec.ptr2.i.i313, %if.end39.i.i311 ], [ %incdec.ptr220.i.i297, %sw.bb4.i291 ] - %p.addr.122.i.i304 = phi ptr [ %p.addr.2.i.i312, %if.end39.i.i311 ], [ %spec.select.i.i295, %sw.bb4.i291 ] - %83 = load i8, ptr %incdec.ptr223.i.i303, align 1 - %cmp6.i.i305 = icmp eq i8 %83, 37 - %incdec.ptr9.i.i306 = getelementptr inbounds i8, ptr %p.addr.122.i.i304, i64 2 - %84 = load i8, ptr %incdec.ptr9.i.i306, align 1 - br i1 %cmp6.i.i305, label %if.then8.i.i322, label %if.else.i.i307 - -if.then8.i.i322: ; preds = %while.body.i.i302 - %conv10.i.i323 = zext i8 %84 to i32 - %call.i.i324 = tail call fastcc i32 @match_class(i32 noundef %conv.i289, i32 noundef %conv10.i.i323), !range !33 - %tobool.not.i.i325 = icmp eq i32 %call.i.i324, 0 - br i1 %tobool.not.i.i325, label %if.end39.i.i311, label %matchbracketclass.exit.i299 - -if.else.i.i307: ; preds = %while.body.i.i302 - %cmp15.i.i308 = icmp eq i8 %84, 45 - br i1 %cmp15.i.i308, label %land.lhs.true.i.i315, label %if.else32.i.i309 - -land.lhs.true.i.i315: ; preds = %if.else.i.i307 - %add.ptr17.i.i316 = getelementptr inbounds i8, ptr %p.addr.122.i.i304, i64 3 - %cmp18.i.i317 = icmp ult ptr %add.ptr17.i.i316, %add.ptr5.i292 - br i1 %cmp18.i.i317, label %if.then20.i.i318, label %if.else32.i.i309 - -if.then20.i.i318: ; preds = %land.lhs.true.i.i315 - %cmp24.not.i.i319 = icmp ugt i8 %83, %79 - br i1 %cmp24.not.i.i319, label %if.end39.i.i311, label %land.lhs.true26.i.i320 - -land.lhs.true26.i.i320: ; preds = %if.then20.i.i318 - %85 = load i8, ptr %add.ptr17.i.i316, align 1 - %cmp28.not.i.i321 = icmp ult i8 %85, %79 - br i1 %cmp28.not.i.i321, label %if.end39.i.i311, label %matchbracketclass.exit.i299 - -if.else32.i.i309: ; preds = %land.lhs.true.i.i315, %if.else.i.i307 - %cmp34.i.i310 = icmp eq i8 %83, %79 - br i1 %cmp34.i.i310, label %matchbracketclass.exit.i299, label %if.end39.i.i311 - -if.end39.i.i311: ; preds = %if.else32.i.i309, %land.lhs.true26.i.i320, %if.then20.i.i318, %if.then8.i.i322 - %p.addr.2.i.i312 = phi ptr [ %incdec.ptr9.i.i306, %if.then8.i.i322 ], [ %add.ptr17.i.i316, %land.lhs.true26.i.i320 ], [ %add.ptr17.i.i316, %if.then20.i.i318 ], [ %incdec.ptr223.i.i303, %if.else32.i.i309 ] - %incdec.ptr2.i.i313 = getelementptr inbounds i8, ptr %p.addr.2.i.i312, i64 1 - %cmp3.i.i314 = icmp ult ptr %incdec.ptr2.i.i313, %add.ptr5.i292 - br i1 %cmp3.i.i314, label %while.body.i.i302, label %matchbracketclass.exit.i299, !llvm.loop !34 - -matchbracketclass.exit.i299: ; preds = %if.end39.i.i311, %if.else32.i.i309, %land.lhs.true26.i.i320, %if.then8.i.i322, %sw.bb4.i291 - %retval.0.in.i.i300 = phi i1 [ %cmp.i.i294, %sw.bb4.i291 ], [ %cmp.i.i294, %if.end39.i.i311 ], [ %not.cmp.i.i296, %if.else32.i.i309 ], [ %not.cmp.i.i296, %land.lhs.true26.i.i320 ], [ %not.cmp.i.i296, %if.then8.i.i322 ] - %retval.0.i.i301 = zext i1 %retval.0.in.i.i300 to i32 - br label %singlematch.exit333 - -sw.default.i330: ; preds = %if.else.i288 - %cmp8.i331 = icmp eq i8 %80, %79 - %conv9.i332 = zext i1 %cmp8.i331 to i32 - br label %singlematch.exit333 - -singlematch.exit333: ; preds = %sw.bb2.i326, %matchbracketclass.exit.i299, %sw.default.i330 - %retval.0.i287 = phi i32 [ %conv9.i332, %sw.default.i330 ], [ %retval.0.i.i301, %matchbracketclass.exit.i299 ], [ %call.i329, %sw.bb2.i326 ] - %tobool.not.i227 = icmp eq i32 %retval.0.i287, 0 + %cmp.i.i293 = icmp eq i8 %82, 94 + %spec.select.i.i294 = select i1 %cmp.i.i293, ptr %incdec.ptr.i167, ptr %p.addr.0412 + %not.cmp.i.i295 = xor i1 %cmp.i.i293, true + %incdec.ptr220.i.i296 = getelementptr inbounds i8, ptr %spec.select.i.i294, i64 1 + %cmp321.i.i297 = icmp ult ptr %incdec.ptr220.i.i296, %add.ptr5.i291 + br i1 %cmp321.i.i297, label %while.body.i.i301, label %matchbracketclass.exit.i298 + +while.body.i.i301: ; preds = %sw.bb4.i290, %if.end39.i.i310 + %incdec.ptr223.i.i302 = phi ptr [ %incdec.ptr2.i.i312, %if.end39.i.i310 ], [ %incdec.ptr220.i.i296, %sw.bb4.i290 ] + %p.addr.122.i.i303 = phi ptr [ %p.addr.2.i.i311, %if.end39.i.i310 ], [ %spec.select.i.i294, %sw.bb4.i290 ] + %83 = load i8, ptr %incdec.ptr223.i.i302, align 1 + %cmp6.i.i304 = icmp eq i8 %83, 37 + %incdec.ptr9.i.i305 = getelementptr inbounds i8, ptr %p.addr.122.i.i303, i64 2 + %84 = load i8, ptr %incdec.ptr9.i.i305, align 1 + br i1 %cmp6.i.i304, label %if.then8.i.i321, label %if.else.i.i306 + +if.then8.i.i321: ; preds = %while.body.i.i301 + %conv10.i.i322 = zext i8 %84 to i32 + %call.i.i323 = tail call fastcc i32 @match_class(i32 noundef %conv.i288, i32 noundef %conv10.i.i322), !range !33 + %tobool.not.i.i324 = icmp eq i32 %call.i.i323, 0 + br i1 %tobool.not.i.i324, label %if.end39.i.i310, label %matchbracketclass.exit.i298 + +if.else.i.i306: ; preds = %while.body.i.i301 + %cmp15.i.i307 = icmp eq i8 %84, 45 + br i1 %cmp15.i.i307, label %land.lhs.true.i.i314, label %if.else32.i.i308 + +land.lhs.true.i.i314: ; preds = %if.else.i.i306 + %add.ptr17.i.i315 = getelementptr inbounds i8, ptr %p.addr.122.i.i303, i64 3 + %cmp18.i.i316 = icmp ult ptr %add.ptr17.i.i315, %add.ptr5.i291 + br i1 %cmp18.i.i316, label %if.then20.i.i317, label %if.else32.i.i308 + +if.then20.i.i317: ; preds = %land.lhs.true.i.i314 + %cmp24.not.i.i318 = icmp ugt i8 %83, %79 + br i1 %cmp24.not.i.i318, label %if.end39.i.i310, label %land.lhs.true26.i.i319 + +land.lhs.true26.i.i319: ; preds = %if.then20.i.i317 + %85 = load i8, ptr %add.ptr17.i.i315, align 1 + %cmp28.not.i.i320 = icmp ult i8 %85, %79 + br i1 %cmp28.not.i.i320, label %if.end39.i.i310, label %matchbracketclass.exit.i298 + +if.else32.i.i308: ; preds = %land.lhs.true.i.i314, %if.else.i.i306 + %cmp34.i.i309 = icmp eq i8 %83, %79 + br i1 %cmp34.i.i309, label %matchbracketclass.exit.i298, label %if.end39.i.i310 + +if.end39.i.i310: ; preds = %if.else32.i.i308, %land.lhs.true26.i.i319, %if.then20.i.i317, %if.then8.i.i321 + %p.addr.2.i.i311 = phi ptr [ %incdec.ptr9.i.i305, %if.then8.i.i321 ], [ %add.ptr17.i.i315, %land.lhs.true26.i.i319 ], [ %add.ptr17.i.i315, %if.then20.i.i317 ], [ %incdec.ptr223.i.i302, %if.else32.i.i308 ] + %incdec.ptr2.i.i312 = getelementptr inbounds i8, ptr %p.addr.2.i.i311, i64 1 + %cmp3.i.i313 = icmp ult ptr %incdec.ptr2.i.i312, %add.ptr5.i291 + br i1 %cmp3.i.i313, label %while.body.i.i301, label %matchbracketclass.exit.i298, !llvm.loop !34 + +matchbracketclass.exit.i298: ; preds = %if.end39.i.i310, %if.else32.i.i308, %land.lhs.true26.i.i319, %if.then8.i.i321, %sw.bb4.i290 + %retval.0.in.i.i299 = phi i1 [ %cmp.i.i293, %sw.bb4.i290 ], [ %cmp.i.i293, %if.end39.i.i310 ], [ %not.cmp.i.i295, %if.else32.i.i308 ], [ %not.cmp.i.i295, %land.lhs.true26.i.i319 ], [ %not.cmp.i.i295, %if.then8.i.i321 ] + %retval.0.i.i300 = zext i1 %retval.0.in.i.i299 to i32 + br label %singlematch.exit332 + +sw.default.i329: ; preds = %if.else.i287 + %cmp8.i330 = icmp eq i8 %80, %79 + %conv9.i331 = zext i1 %cmp8.i330 to i32 + br label %singlematch.exit332 + +singlematch.exit332: ; preds = %sw.bb2.i325, %matchbracketclass.exit.i298, %sw.default.i329 + %retval.0.i286 = phi i32 [ %conv9.i331, %sw.default.i329 ], [ %retval.0.i.i300, %matchbracketclass.exit.i298 ], [ %call.i328, %sw.bb2.i325 ] + %tobool.not.i227 = icmp eq i32 %retval.0.i286, 0 br i1 %tobool.not.i227, label %if.end124, label %if.then2.i -if.then2.i: ; preds = %if.else.i288, %singlematch.exit333 - %incdec.ptr.i228 = getelementptr inbounds i8, ptr %s.addr.0.i426, i64 1 +if.then2.i: ; preds = %if.else.i287, %singlematch.exit332 + %incdec.ptr.i228 = getelementptr inbounds i8, ptr %s.addr.0.i425, i64 1 %call.i222 = tail call fastcc ptr @match(ptr noundef %ms, ptr noundef nonnull %incdec.ptr.i228, ptr noundef nonnull %add.ptr.i221) %cmp.not.i223 = icmp eq ptr %call.i222, null br i1 %cmp.not.i223, label %if.else.i225, label %if.end124 @@ -4058,11 +4057,11 @@ init.outer.backedge: ; preds = %if.else102, %if.the %p.addr.0.ph.be = phi ptr [ %add.ptr38, %if.then37 ], [ %add.ptr80, %if.then79 ], [ %retval.0.i186, %if.else102 ] %s.addr.0.ph.be = phi ptr [ %add.ptr21.i, %if.then37 ], [ %add.ptr.i164, %if.then79 ], [ %add.ptr105, %if.else102 ] %86 = load ptr, ptr %p_end, align 8 - %cmp4.not412 = icmp eq ptr %p.addr.0.ph.be, %86 - br i1 %cmp4.not412, label %if.end124, label %if.then6.lr.ph + %cmp4.not411 = icmp eq ptr %p.addr.0.ph.be, %86 + br i1 %cmp4.not411, label %if.end124, label %if.then6.lr.ph -if.end124: ; preds = %init.outer.backedge, %land.lhs.true.i161, %check_capture.exit.i, %if.else.i, %if.end.i94, %init.backedge, %matchbracketclass.exit154, %matchbracketclass.exit, %if.then87, %sw.bb104, %cond.end60, %if.end29.i, %if.then2.i, %singlematch.exit333, %if.else.i225, %while.cond1.i, %while.body2.i, %if.end, %for.cond.i.preheader, %if.then.i90, %capture_to_close.exit, %if.then12.i78, %if.end.i71, %if.then12.i, %if.end.i, %if.end26 - %s.addr.2 = phi ptr [ %cond, %if.end26 ], [ %call9.i, %if.end.i ], [ null, %if.then12.i ], [ %call9.i76, %if.end.i71 ], [ null, %if.then12.i78 ], [ %call4.i, %capture_to_close.exit ], [ null, %if.then.i90 ], [ %call.i222424, %for.cond.i.preheader ], [ %s, %if.end ], [ null, %while.cond1.i ], [ %call5.i, %while.body2.i ], [ %call.i222, %if.then2.i ], [ null, %singlematch.exit333 ], [ null, %if.else.i225 ], [ null, %if.end29.i ], [ null, %cond.end60 ], [ %call107, %sw.bb104 ], [ null, %if.then87 ], [ null, %matchbracketclass.exit ], [ null, %matchbracketclass.exit154 ], [ %s.addr.0.ph422, %init.backedge ], [ %s.addr.0.ph.be, %init.outer.backedge ], [ null, %land.lhs.true.i161 ], [ null, %check_capture.exit.i ], [ null, %if.else.i ], [ null, %if.end.i94 ] +if.end124: ; preds = %init.outer.backedge, %land.lhs.true.i161, %check_capture.exit.i, %if.else.i, %if.end.i94, %init.backedge, %matchbracketclass.exit154, %matchbracketclass.exit, %if.then87, %sw.bb104, %cond.end60, %if.end29.i, %if.then2.i, %singlematch.exit332, %if.else.i225, %while.cond1.i, %while.body2.i, %if.end, %for.cond.i.preheader, %if.then.i90, %capture_to_close.exit, %if.then12.i78, %if.end.i71, %if.then12.i, %if.end.i, %if.end26 + %s.addr.2 = phi ptr [ %cond, %if.end26 ], [ %call9.i, %if.end.i ], [ null, %if.then12.i ], [ %call9.i76, %if.end.i71 ], [ null, %if.then12.i78 ], [ %call4.i, %capture_to_close.exit ], [ null, %if.then.i90 ], [ %call.i222423, %for.cond.i.preheader ], [ %s, %if.end ], [ null, %while.cond1.i ], [ %call5.i, %while.body2.i ], [ %call.i222, %if.then2.i ], [ null, %singlematch.exit332 ], [ null, %if.else.i225 ], [ null, %if.end29.i ], [ null, %cond.end60 ], [ %call107, %sw.bb104 ], [ null, %if.then87 ], [ null, %matchbracketclass.exit ], [ null, %matchbracketclass.exit154 ], [ %s.addr.0.ph421, %init.backedge ], [ %s.addr.0.ph.be, %init.outer.backedge ], [ null, %land.lhs.true.i161 ], [ null, %check_capture.exit.i ], [ null, %if.else.i ], [ null, %if.end.i94 ] %87 = load i32, ptr %matchdepth, align 8 %inc = add nsw i32 %87, 1 store i32 %inc, ptr %matchdepth, align 8 diff --git a/bench/luajit/optimized/buildvm_lib.ll b/bench/luajit/optimized/buildvm_lib.ll index 099dc118597..b19a58bf716 100644 --- a/bench/luajit/optimized/buildvm_lib.ll +++ b/bench/luajit/optimized/buildvm_lib.ll @@ -712,8 +712,7 @@ if.then58: ; preds = %for.body for.inc: ; preds = %for.body, %if.then58 %indvars.iv.next = add nuw i64 %indvars.iv, 1 - %idxprom = and i64 %indvars.iv.next, 4294967295 - %arrayidx = getelementptr inbounds i8, ptr %p, i64 %idxprom + %arrayidx = getelementptr inbounds i8, ptr %p, i64 %indvars.iv.next %19 = load i8, ptr %arrayidx, align 1 %tobool48.not = icmp eq i8 %19, 0 br i1 %tobool48.not, label %for.end, label %land.rhs, !llvm.loop !13 diff --git a/bench/luajit/optimized/minilua.ll b/bench/luajit/optimized/minilua.ll index 842f7e795fb..54acc9b8ba5 100644 --- a/bench/luajit/optimized/minilua.ll +++ b/bench/luajit/optimized/minilua.ll @@ -32549,8 +32549,7 @@ for.body.i: ; preds = %for.cond.i %2 = load ptr, ptr %fs, align 8 %locvars.i = getelementptr inbounds %struct.Proto, ptr %2, i64 0, i32 7 %3 = load ptr, ptr %locvars.i, align 8 - %idxprom.i = and i64 %indvars.iv.next.i, 4294967295 - %arrayidx.i = getelementptr inbounds %struct.FuncState, ptr %fs, i64 0, i32 15, i64 %idxprom.i + %arrayidx.i = getelementptr inbounds %struct.FuncState, ptr %fs, i64 0, i32 15, i64 %indvars.iv.next.i %4 = load i16, ptr %arrayidx.i, align 2 %idxprom2.i = zext i16 %4 to i64 %arrayidx3.i = getelementptr inbounds %struct.LocVar, ptr %3, i64 %idxprom2.i @@ -35367,9 +35366,8 @@ sw.default.i.i: ; preds = %if.else9.i.i %71 = trunc i64 %indvars.iv to i32 %72 = add i32 %71, -10001 %cmp21.not.i.i = icmp ugt i32 %72, %conv.i.i138 - %73 = add nuw i64 %indvars.iv, 4294957294 - %idxprom.i.i = and i64 %73, 4294967295 - %arrayidx.i.i = getelementptr inbounds %struct.CClosure, ptr %69, i64 0, i32 8, i64 %idxprom.i.i + %73 = add nsw i64 %indvars.iv, -10002 + %arrayidx.i.i = getelementptr inbounds %struct.CClosure, ptr %69, i64 0, i32 8, i64 %73 %cond.i.i140 = select i1 %cmp21.not.i.i, ptr @luaO_nilobject_, ptr %arrayidx.i.i br label %index2adr.exit.i129 @@ -39758,11 +39756,10 @@ for.body: ; preds = %luaL_checkstack.exi if.then.i.i: ; preds = %for.body %10 = load ptr, ptr %1, align 8 - %11 = and i64 %indvars.iv, 4294967295 - %12 = getelementptr %struct.lua_TValue, ptr %10, i64 %11 - %add.ptr.i.i43 = getelementptr %struct.lua_TValue, ptr %12, i64 -1 - %13 = load ptr, ptr %0, align 8 - %cmp1.not.i.i = icmp ult ptr %add.ptr.i.i43, %13 + %11 = getelementptr %struct.lua_TValue, ptr %10, i64 %indvars.iv + %add.ptr.i.i43 = getelementptr %struct.lua_TValue, ptr %11, i64 -1 + %12 = load ptr, ptr %0, align 8 + %cmp1.not.i.i = icmp ult ptr %add.ptr.i.i43, %12 br i1 %cmp1.not.i.i, label %index2adr.exit.i, label %if.else11 if.else3.i.i: ; preds = %for.body @@ -39770,48 +39767,47 @@ if.else3.i.i: ; preds = %for.body br i1 %cmp4.i.i, label %if.then5.i.i41, label %if.else9.i.i if.then5.i.i41: ; preds = %if.else3.i.i - %14 = load ptr, ptr %0, align 8 - %add.ptr8.i.i = getelementptr inbounds %struct.lua_TValue, ptr %14, i64 %indvars.iv + %13 = load ptr, ptr %0, align 8 + %add.ptr8.i.i = getelementptr inbounds %struct.lua_TValue, ptr %13, i64 %indvars.iv br label %index2adr.exit.i if.else9.i.i: ; preds = %if.else3.i.i - %15 = trunc i64 %indvars.iv to i32 - switch i32 %15, label %sw.default.i.i [ + %14 = trunc i64 %indvars.iv to i32 + switch i32 %14, label %sw.default.i.i [ i32 -10000, label %sw.bb.i.i i32 -10001, label %sw.bb10.i.i i32 -10002, label %index2adr.exit.i ] sw.bb.i.i: ; preds = %if.else9.i.i - %16 = load ptr, ptr %l_G.i.i, align 8 - %l_registry.i.i = getelementptr inbounds %struct.global_State, ptr %16, i64 0, i32 20 + %15 = load ptr, ptr %l_G.i.i, align 8 + %l_registry.i.i = getelementptr inbounds %struct.global_State, ptr %15, i64 0, i32 20 br label %index2adr.exit.i sw.bb10.i.i: ; preds = %if.else9.i.i - %17 = load ptr, ptr %ci.i.i39, align 8 - %func11.i.i = getelementptr inbounds %struct.CallInfo, ptr %17, i64 0, i32 1 - %18 = load ptr, ptr %func11.i.i, align 8 - %19 = load ptr, ptr %18, align 8 - %env12.i.i = getelementptr inbounds %struct.CClosure, ptr %19, i64 0, i32 6 - %20 = load ptr, ptr %env12.i.i, align 8 - store ptr %20, ptr %env.i.i, align 8 + %16 = load ptr, ptr %ci.i.i39, align 8 + %func11.i.i = getelementptr inbounds %struct.CallInfo, ptr %16, i64 0, i32 1 + %17 = load ptr, ptr %func11.i.i, align 8 + %18 = load ptr, ptr %17, align 8 + %env12.i.i = getelementptr inbounds %struct.CClosure, ptr %18, i64 0, i32 6 + %19 = load ptr, ptr %env12.i.i, align 8 + store ptr %19, ptr %env.i.i, align 8 store i32 5, ptr %tt.i.i, align 8 br label %index2adr.exit.i sw.default.i.i: ; preds = %if.else9.i.i - %21 = load ptr, ptr %ci.i.i39, align 8 - %func18.i.i = getelementptr inbounds %struct.CallInfo, ptr %21, i64 0, i32 1 - %22 = load ptr, ptr %func18.i.i, align 8 - %23 = load ptr, ptr %22, align 8 - %nupvalues.i.i = getelementptr inbounds %struct.CClosure, ptr %23, i64 0, i32 4 - %24 = load i8, ptr %nupvalues.i.i, align 1 - %conv.i.i40 = zext i8 %24 to i32 - %25 = trunc i64 %indvars.iv to i32 - %26 = sub i32 -10002, %25 - %cmp21.not.i.i = icmp ugt i32 %26, %conv.i.i40 - %27 = sub i64 4294957293, %indvars.iv - %idxprom.i.i = and i64 %27, 4294967295 - %arrayidx.i.i = getelementptr inbounds %struct.CClosure, ptr %23, i64 0, i32 8, i64 %idxprom.i.i + %20 = load ptr, ptr %ci.i.i39, align 8 + %func18.i.i = getelementptr inbounds %struct.CallInfo, ptr %20, i64 0, i32 1 + %21 = load ptr, ptr %func18.i.i, align 8 + %22 = load ptr, ptr %21, align 8 + %nupvalues.i.i = getelementptr inbounds %struct.CClosure, ptr %22, i64 0, i32 4 + %23 = load i8, ptr %nupvalues.i.i, align 1 + %conv.i.i40 = zext i8 %23 to i32 + %24 = trunc i64 %indvars.iv to i32 + %25 = sub i32 -10002, %24 + %cmp21.not.i.i = icmp ugt i32 %25, %conv.i.i40 + %26 = sub nuw nsw i64 -10003, %indvars.iv + %arrayidx.i.i = getelementptr inbounds %struct.CClosure, ptr %22, i64 0, i32 8, i64 %26 br i1 %cmp21.not.i.i, label %if.else11, label %index2adr.exit.i index2adr.exit.i: ; preds = %if.else9.i.i, %sw.default.i.i, %sw.bb10.i.i, %sw.bb.i.i, %if.then5.i.i41, %if.then.i.i @@ -39821,48 +39817,48 @@ index2adr.exit.i: ; preds = %if.else9.i.i, %sw.d lua_type.exit: ; preds = %index2adr.exit.i %tt.i = getelementptr inbounds %struct.lua_TValue, ptr %retval.0.i.i, i64 0, i32 1 - %28 = load i32, ptr %tt.i, align 8 - %cmp5 = icmp eq i32 %28, 3 + %27 = load i32, ptr %tt.i, align 8 + %cmp5 = icmp eq i32 %27, 3 br i1 %cmp5, label %if.then6, label %if.else11 if.then6: ; preds = %lua_type.exit - %29 = trunc i64 %indvars.iv to i32 - %call7 = call fastcc i64 @lua_tointeger(ptr noundef %L, i32 noundef %29) + %28 = trunc i64 %indvars.iv to i32 + %call7 = call fastcc i64 @lua_tointeger(ptr noundef %L, i32 noundef %28) %cmp8 = icmp eq i64 %call7, 0 br i1 %cmp8, label %cond.true, label %cond.false cond.true: ; preds = %if.then6 %call.i = call i32 @getc(ptr noundef %f) %call1.i45 = call i32 @ungetc(i32 noundef %call.i, ptr noundef %f) - %30 = load ptr, ptr %l_G.i.i, align 8 - %totalbytes.i.i = getelementptr inbounds %struct.global_State, ptr %30, i64 0, i32 14 - %31 = load i64, ptr %totalbytes.i.i, align 8 - %GCthreshold.i.i = getelementptr inbounds %struct.global_State, ptr %30, i64 0, i32 13 - %32 = load i64, ptr %GCthreshold.i.i, align 8 - %cmp.not.i.i = icmp ult i64 %31, %32 + %29 = load ptr, ptr %l_G.i.i, align 8 + %totalbytes.i.i = getelementptr inbounds %struct.global_State, ptr %29, i64 0, i32 14 + %30 = load i64, ptr %totalbytes.i.i, align 8 + %GCthreshold.i.i = getelementptr inbounds %struct.global_State, ptr %29, i64 0, i32 13 + %31 = load i64, ptr %GCthreshold.i.i, align 8 + %cmp.not.i.i = icmp ult i64 %30, %31 br i1 %cmp.not.i.i, label %test_eof.exit, label %if.then.i.i47 if.then.i.i47: ; preds = %cond.true - %gcstepmul.i.i.i = getelementptr inbounds %struct.global_State, ptr %30, i64 0, i32 18 - %33 = load i32, ptr %gcstepmul.i.i.i, align 4 - %mul.i.i.i48 = mul i32 %33, 10 + %gcstepmul.i.i.i = getelementptr inbounds %struct.global_State, ptr %29, i64 0, i32 18 + %32 = load i32, ptr %gcstepmul.i.i.i, align 4 + %mul.i.i.i48 = mul i32 %32, 10 %conv.i.i.i = zext i32 %mul.i.i.i48 to i64 %cmp.i.i.i = icmp eq i32 %mul.i.i.i48, 0 %spec.store.select.i.i.i = select i1 %cmp.i.i.i, i64 9223372036854775806, i64 %conv.i.i.i - %sub.i.i.i = sub i64 %31, %32 - %gcdept.i.i.i = getelementptr inbounds %struct.global_State, ptr %30, i64 0, i32 16 - %34 = load i64, ptr %gcdept.i.i.i, align 8 - %add.i.i.i49 = add i64 %sub.i.i.i, %34 + %sub.i.i.i = sub i64 %30, %31 + %gcdept.i.i.i = getelementptr inbounds %struct.global_State, ptr %29, i64 0, i32 16 + %33 = load i64, ptr %gcdept.i.i.i, align 8 + %add.i.i.i49 = add i64 %sub.i.i.i, %33 store i64 %add.i.i.i49, ptr %gcdept.i.i.i, align 8 - %gcstate.i.i.i = getelementptr inbounds %struct.global_State, ptr %30, i64 0, i32 4 + %gcstate.i.i.i = getelementptr inbounds %struct.global_State, ptr %29, i64 0, i32 4 br label %do.body.i.i.i do.body.i.i.i: ; preds = %do.body.i.i.i, %if.then.i.i47 %lim.0.i.i.i = phi i64 [ %spec.store.select.i.i.i, %if.then.i.i47 ], [ %sub2.i.i.i, %do.body.i.i.i ] %call.i.i.i = call fastcc i64 @singlestep(ptr noundef %L) %sub2.i.i.i = sub nsw i64 %lim.0.i.i.i, %call.i.i.i - %35 = load i8, ptr %gcstate.i.i.i, align 1 - %cmp4.i.i.i = icmp ne i8 %35, 0 + %34 = load i8, ptr %gcstate.i.i.i, align 1 + %cmp4.i.i.i = icmp ne i8 %34, 0 %cmp8.i.i.i = icmp sgt i64 %sub2.i.i.i, 0 %or.cond.i.i.i = select i1 %cmp4.i.i.i, i1 %cmp8.i.i.i, i1 false br i1 %or.cond.i.i.i, label %do.body.i.i.i, label %do.end.i.i.i, !llvm.loop !6 @@ -39871,44 +39867,44 @@ do.end.i.i.i: ; preds = %do.body.i.i.i br i1 %cmp4.i.i.i, label %if.then14.i.i.i, label %if.else27.i.i.i if.then14.i.i.i: ; preds = %do.end.i.i.i - %36 = load i64, ptr %gcdept.i.i.i, align 8 - %cmp16.i.i.i = icmp ult i64 %36, 1024 + %35 = load i64, ptr %gcdept.i.i.i, align 8 + %cmp16.i.i.i = icmp ult i64 %35, 1024 br i1 %cmp16.i.i.i, label %if.then18.i.i.i, label %if.else.i.i.i if.then18.i.i.i: ; preds = %if.then14.i.i.i - %37 = load i64, ptr %totalbytes.i.i, align 8 - %add20.i.i.i = add i64 %37, 1024 + %36 = load i64, ptr %totalbytes.i.i, align 8 + %add20.i.i.i = add i64 %36, 1024 br label %luaC_step.exit.i.i if.else.i.i.i: ; preds = %if.then14.i.i.i - %sub23.i.i.i = add i64 %36, -1024 + %sub23.i.i.i = add i64 %35, -1024 store i64 %sub23.i.i.i, ptr %gcdept.i.i.i, align 8 - %38 = load i64, ptr %totalbytes.i.i, align 8 + %37 = load i64, ptr %totalbytes.i.i, align 8 br label %luaC_step.exit.i.i if.else27.i.i.i: ; preds = %do.end.i.i.i - %estimate.i.i.i = getelementptr inbounds %struct.global_State, ptr %30, i64 0, i32 15 - %39 = load i64, ptr %estimate.i.i.i, align 8 - %div.i.i.i = udiv i64 %39, 100 - %gcpause.i.i.i = getelementptr inbounds %struct.global_State, ptr %30, i64 0, i32 17 - %40 = load i32, ptr %gcpause.i.i.i, align 8 - %conv28.i.i.i = sext i32 %40 to i64 + %estimate.i.i.i = getelementptr inbounds %struct.global_State, ptr %29, i64 0, i32 15 + %38 = load i64, ptr %estimate.i.i.i, align 8 + %div.i.i.i = udiv i64 %38, 100 + %gcpause.i.i.i = getelementptr inbounds %struct.global_State, ptr %29, i64 0, i32 17 + %39 = load i32, ptr %gcpause.i.i.i, align 8 + %conv28.i.i.i = sext i32 %39 to i64 %mul29.i.i.i = mul i64 %div.i.i.i, %conv28.i.i.i br label %luaC_step.exit.i.i luaC_step.exit.i.i: ; preds = %if.else27.i.i.i, %if.else.i.i.i, %if.then18.i.i.i - %add20.sink.i.i.i = phi i64 [ %add20.i.i.i, %if.then18.i.i.i ], [ %38, %if.else.i.i.i ], [ %mul29.i.i.i, %if.else27.i.i.i ] + %add20.sink.i.i.i = phi i64 [ %add20.i.i.i, %if.then18.i.i.i ], [ %37, %if.else.i.i.i ], [ %mul29.i.i.i, %if.else27.i.i.i ] store i64 %add20.sink.i.i.i, ptr %GCthreshold.i.i, align 8 br label %test_eof.exit test_eof.exit: ; preds = %cond.true, %luaC_step.exit.i.i - %41 = load ptr, ptr %0, align 8 + %40 = load ptr, ptr %0, align 8 %call.i.i = call fastcc ptr @luaS_newlstr(ptr noundef %L, ptr noundef null, i64 noundef 0) - store ptr %call.i.i, ptr %41, align 8 - %tt.i.i51 = getelementptr inbounds %struct.lua_TValue, ptr %41, i64 0, i32 1 + store ptr %call.i.i, ptr %40, align 8 + %tt.i.i51 = getelementptr inbounds %struct.lua_TValue, ptr %40, i64 0, i32 1 store i32 4, ptr %tt.i.i51, align 8 - %42 = load ptr, ptr %0, align 8 - %incdec.ptr.i.i = getelementptr inbounds %struct.lua_TValue, ptr %42, i64 1 + %41 = load ptr, ptr %0, align 8 + %incdec.ptr.i.i = getelementptr inbounds %struct.lua_TValue, ptr %41, i64 1 store ptr %incdec.ptr.i.i, ptr %0, align 8 %cmp.i52 = icmp ne i32 %call.i, -1 %conv.i53 = zext i1 %cmp.i52 to i32 @@ -39919,24 +39915,24 @@ cond.false: ; preds = %if.then6 br label %for.inc if.else11: ; preds = %sw.default.i.i, %if.then.i.i, %index2adr.exit.i, %lua_type.exit - %43 = trunc i64 %indvars.iv to i32 - %call12 = call fastcc ptr @lua_tolstring(ptr noundef %L, i32 noundef %43, ptr noundef null) + %42 = trunc i64 %indvars.iv to i32 + %call12 = call fastcc ptr @lua_tolstring(ptr noundef %L, i32 noundef %42, ptr noundef null) %tobool13.not = icmp eq ptr %call12, null br i1 %tobool13.not, label %lor.rhs, label %land.lhs.true land.lhs.true: ; preds = %if.else11 - %44 = load i8, ptr %call12, align 1 - %cmp14 = icmp eq i8 %44, 42 + %43 = load i8, ptr %call12, align 1 + %cmp14 = icmp eq i8 %43, 42 br i1 %cmp14, label %lor.end, label %lor.rhs lor.rhs: ; preds = %land.lhs.true, %if.else11 - call fastcc void @luaL_argerror(ptr noundef %L, i32 noundef %43, ptr noundef nonnull @.str.210) + call fastcc void @luaL_argerror(ptr noundef %L, i32 noundef %42, ptr noundef nonnull @.str.210) unreachable lor.end: ; preds = %land.lhs.true %arrayidx18 = getelementptr inbounds i8, ptr %call12, i64 1 - %45 = load i8, ptr %arrayidx18, align 1 - %conv19 = sext i8 %45 to i32 + %44 = load i8, ptr %arrayidx18, align 1 + %conv19 = sext i8 %44 to i32 switch i32 %conv19, label %sw.default [ i32 110, label %sw.bb i32 108, label %sw.bb21 @@ -39950,23 +39946,23 @@ sw.bb: ; preds = %lor.end br i1 %cmp.i55, label %if.then.i56, label %if.else.i if.then.i56: ; preds = %sw.bb - %46 = load double, ptr %d.i, align 8 - %47 = load ptr, ptr %0, align 8 - store double %46, ptr %47, align 8 + %45 = load double, ptr %d.i, align 8 + %46 = load ptr, ptr %0, align 8 + store double %45, ptr %46, align 8 br label %read_number.exit if.else.i: ; preds = %sw.bb - %48 = load ptr, ptr %0, align 8 + %47 = load ptr, ptr %0, align 8 br label %read_number.exit read_number.exit: ; preds = %if.then.i56, %if.else.i - %.sink6.i = phi ptr [ %48, %if.else.i ], [ %47, %if.then.i56 ] + %.sink6.i = phi ptr [ %47, %if.else.i ], [ %46, %if.then.i56 ] %.sink.i = phi i32 [ 0, %if.else.i ], [ 3, %if.then.i56 ] %retval.0.i = phi i32 [ 0, %if.else.i ], [ 1, %if.then.i56 ] %tt.i3.i = getelementptr inbounds %struct.lua_TValue, ptr %.sink6.i, i64 0, i32 1 store i32 %.sink.i, ptr %tt.i3.i, align 8 - %49 = load ptr, ptr %0, align 8 - %incdec.ptr.i4.i = getelementptr inbounds %struct.lua_TValue, ptr %49, i64 1 + %48 = load ptr, ptr %0, align 8 + %incdec.ptr.i4.i = getelementptr inbounds %struct.lua_TValue, ptr %48, i64 1 store ptr %incdec.ptr.i4.i, ptr %0, align 8 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %d.i) br label %for.inc @@ -39980,7 +39976,7 @@ sw.bb23: ; preds = %lor.end br label %for.inc sw.default: ; preds = %lor.end - call fastcc void @luaL_argerror(ptr noundef %L, i32 noundef %43, ptr noundef nonnull @.str.211) + call fastcc void @luaL_argerror(ptr noundef %L, i32 noundef %42, ptr noundef nonnull @.str.211) unreachable for.inc: ; preds = %test_eof.exit, %cond.false, %sw.bb23, %sw.bb21, %read_number.exit @@ -39989,38 +39985,38 @@ for.inc: ; preds = %test_eof.exit, %con %dec = add nsw i32 %dec73, -1 %tobool = icmp ne i32 %dec73, 0 %tobool3 = icmp ne i32 %success.1, 0 - %50 = select i1 %tobool, i1 %tobool3, i1 false - br i1 %50, label %for.body, label %if.end26.loopexit, !llvm.loop !137 + %49 = select i1 %tobool, i1 %tobool3, i1 false + br i1 %49, label %for.body, label %if.end26.loopexit, !llvm.loop !137 if.end26.loopexit: ; preds = %for.inc - %51 = trunc i64 %indvars.iv.next to i32 + %50 = trunc i64 %indvars.iv.next to i32 br label %if.end26 if.end26: ; preds = %if.end26.loopexit, %if.then %success.2 = phi i32 [ %call1, %if.then ], [ %success.1, %if.end26.loopexit ] - %n.1 = phi i32 [ %add, %if.then ], [ %51, %if.end26.loopexit ] + %n.1 = phi i32 [ %add, %if.then ], [ %50, %if.end26.loopexit ] %call27 = call i32 @ferror(ptr noundef %f) #35 %tobool28.not = icmp eq i32 %call27, 0 br i1 %tobool28.not, label %if.end31, label %if.then29 if.then29: ; preds = %if.end26 %call.i58 = tail call ptr @__errno_location() #39 - %52 = load i32, ptr %call.i58, align 4 - %53 = load ptr, ptr %0, align 8 - %tt.i9.i = getelementptr inbounds %struct.lua_TValue, ptr %53, i64 0, i32 1 + %51 = load i32, ptr %call.i58, align 4 + %52 = load ptr, ptr %0, align 8 + %tt.i9.i = getelementptr inbounds %struct.lua_TValue, ptr %52, i64 0, i32 1 store i32 0, ptr %tt.i9.i, align 8 - %54 = load ptr, ptr %0, align 8 - %incdec.ptr.i10.i = getelementptr inbounds %struct.lua_TValue, ptr %54, i64 1 + %53 = load ptr, ptr %0, align 8 + %incdec.ptr.i10.i = getelementptr inbounds %struct.lua_TValue, ptr %53, i64 1 store ptr %incdec.ptr.i10.i, ptr %0, align 8 - %call6.i = call ptr @strerror(i32 noundef %52) #35 + %call6.i = call ptr @strerror(i32 noundef %51) #35 %call7.i = call ptr (ptr, ptr, ...) @lua_pushfstring(ptr noundef nonnull %L, ptr noundef nonnull @.str.113, ptr noundef %call6.i) - %55 = load ptr, ptr %0, align 8 - %conv.i.i60 = sitofp i32 %52 to double - store double %conv.i.i60, ptr %55, align 8 - %tt.i12.i = getelementptr inbounds %struct.lua_TValue, ptr %55, i64 0, i32 1 + %54 = load ptr, ptr %0, align 8 + %conv.i.i60 = sitofp i32 %51 to double + store double %conv.i.i60, ptr %54, align 8 + %tt.i12.i = getelementptr inbounds %struct.lua_TValue, ptr %54, i64 0, i32 1 store i32 3, ptr %tt.i12.i, align 8 - %56 = load ptr, ptr %0, align 8 - %incdec.ptr.i13.i = getelementptr inbounds %struct.lua_TValue, ptr %56, i64 1 + %55 = load ptr, ptr %0, align 8 + %incdec.ptr.i13.i = getelementptr inbounds %struct.lua_TValue, ptr %55, i64 1 store ptr %incdec.ptr.i13.i, ptr %0, align 8 br label %return @@ -40029,13 +40025,13 @@ if.end31: ; preds = %if.end26 br i1 %tobool32.not, label %if.then33, label %if.end34 if.then33: ; preds = %if.end31 - %57 = load ptr, ptr %0, align 8 - %add.ptr9.i = getelementptr %struct.lua_TValue, ptr %57, i64 -1 + %56 = load ptr, ptr %0, align 8 + %add.ptr9.i = getelementptr %struct.lua_TValue, ptr %56, i64 -1 store ptr %add.ptr9.i, ptr %0, align 8 - %tt.i64 = getelementptr %struct.lua_TValue, ptr %57, i64 -1, i32 1 + %tt.i64 = getelementptr %struct.lua_TValue, ptr %56, i64 -1, i32 1 store i32 0, ptr %tt.i64, align 8 - %58 = load ptr, ptr %0, align 8 - %incdec.ptr.i = getelementptr inbounds %struct.lua_TValue, ptr %58, i64 1 + %57 = load ptr, ptr %0, align 8 + %incdec.ptr.i = getelementptr inbounds %struct.lua_TValue, ptr %57, i64 1 store ptr %incdec.ptr.i, ptr %0, align 8 br label %if.end34 @@ -40197,11 +40193,10 @@ for.body: ; preds = %for.body.lr.ph, %fo if.then.i.i: ; preds = %for.body %3 = load ptr, ptr %1, align 8 - %4 = and i64 %indvars.iv, 4294967295 - %5 = getelementptr %struct.lua_TValue, ptr %3, i64 %4 - %add.ptr.i.i = getelementptr %struct.lua_TValue, ptr %5, i64 -1 - %6 = load ptr, ptr %0, align 8 - %cmp1.not.i.i = icmp ult ptr %add.ptr.i.i, %6 + %4 = getelementptr %struct.lua_TValue, ptr %3, i64 %indvars.iv + %add.ptr.i.i = getelementptr %struct.lua_TValue, ptr %4, i64 -1 + %5 = load ptr, ptr %0, align 8 + %cmp1.not.i.i = icmp ult ptr %add.ptr.i.i, %5 br i1 %cmp1.not.i.i, label %index2adr.exit.i, label %if.else if.else3.i.i: ; preds = %for.body @@ -40209,48 +40204,47 @@ if.else3.i.i: ; preds = %for.body br i1 %cmp4.i.i, label %if.then5.i.i, label %if.else9.i.i if.then5.i.i: ; preds = %if.else3.i.i - %7 = load ptr, ptr %0, align 8 - %add.ptr8.i.i = getelementptr inbounds %struct.lua_TValue, ptr %7, i64 %indvars.iv + %6 = load ptr, ptr %0, align 8 + %add.ptr8.i.i = getelementptr inbounds %struct.lua_TValue, ptr %6, i64 %indvars.iv br label %index2adr.exit.i if.else9.i.i: ; preds = %if.else3.i.i - %8 = trunc i64 %indvars.iv to i32 - switch i32 %8, label %sw.default.i.i [ + %7 = trunc i64 %indvars.iv to i32 + switch i32 %7, label %sw.default.i.i [ i32 -10000, label %sw.bb.i.i i32 -10001, label %sw.bb10.i.i i32 -10002, label %index2adr.exit.i ] sw.bb.i.i: ; preds = %if.else9.i.i - %9 = load ptr, ptr %l_G.i.i, align 8 - %l_registry.i.i = getelementptr inbounds %struct.global_State, ptr %9, i64 0, i32 20 + %8 = load ptr, ptr %l_G.i.i, align 8 + %l_registry.i.i = getelementptr inbounds %struct.global_State, ptr %8, i64 0, i32 20 br label %index2adr.exit.i sw.bb10.i.i: ; preds = %if.else9.i.i - %10 = load ptr, ptr %ci.i.i, align 8 - %func11.i.i = getelementptr inbounds %struct.CallInfo, ptr %10, i64 0, i32 1 - %11 = load ptr, ptr %func11.i.i, align 8 - %12 = load ptr, ptr %11, align 8 - %env12.i.i = getelementptr inbounds %struct.CClosure, ptr %12, i64 0, i32 6 - %13 = load ptr, ptr %env12.i.i, align 8 - store ptr %13, ptr %env.i.i, align 8 + %9 = load ptr, ptr %ci.i.i, align 8 + %func11.i.i = getelementptr inbounds %struct.CallInfo, ptr %9, i64 0, i32 1 + %10 = load ptr, ptr %func11.i.i, align 8 + %11 = load ptr, ptr %10, align 8 + %env12.i.i = getelementptr inbounds %struct.CClosure, ptr %11, i64 0, i32 6 + %12 = load ptr, ptr %env12.i.i, align 8 + store ptr %12, ptr %env.i.i, align 8 store i32 5, ptr %tt.i.i, align 8 br label %index2adr.exit.i sw.default.i.i: ; preds = %if.else9.i.i - %14 = load ptr, ptr %ci.i.i, align 8 - %func18.i.i = getelementptr inbounds %struct.CallInfo, ptr %14, i64 0, i32 1 - %15 = load ptr, ptr %func18.i.i, align 8 - %16 = load ptr, ptr %15, align 8 - %nupvalues.i.i = getelementptr inbounds %struct.CClosure, ptr %16, i64 0, i32 4 - %17 = load i8, ptr %nupvalues.i.i, align 1 - %conv.i.i = zext i8 %17 to i32 - %18 = trunc i64 %indvars.iv to i32 - %19 = sub i32 -10002, %18 - %cmp21.not.i.i = icmp ugt i32 %19, %conv.i.i - %20 = sub i64 4294957293, %indvars.iv - %idxprom.i.i = and i64 %20, 4294967295 - %arrayidx.i.i = getelementptr inbounds %struct.CClosure, ptr %16, i64 0, i32 8, i64 %idxprom.i.i + %13 = load ptr, ptr %ci.i.i, align 8 + %func18.i.i = getelementptr inbounds %struct.CallInfo, ptr %13, i64 0, i32 1 + %14 = load ptr, ptr %func18.i.i, align 8 + %15 = load ptr, ptr %14, align 8 + %nupvalues.i.i = getelementptr inbounds %struct.CClosure, ptr %15, i64 0, i32 4 + %16 = load i8, ptr %nupvalues.i.i, align 1 + %conv.i.i = zext i8 %16 to i32 + %17 = trunc i64 %indvars.iv to i32 + %18 = sub i32 -10002, %17 + %cmp21.not.i.i = icmp ugt i32 %18, %conv.i.i + %19 = sub nuw nsw i64 -10003, %indvars.iv + %arrayidx.i.i = getelementptr inbounds %struct.CClosure, ptr %15, i64 0, i32 8, i64 %19 br i1 %cmp21.not.i.i, label %if.else, label %index2adr.exit.i index2adr.exit.i: ; preds = %if.else9.i.i, %sw.default.i.i, %sw.bb10.i.i, %sw.bb.i.i, %if.then5.i.i, %if.then.i.i @@ -40260,8 +40254,8 @@ index2adr.exit.i: ; preds = %if.else9.i.i, %sw.d lua_type.exit: ; preds = %index2adr.exit.i %tt.i = getelementptr inbounds %struct.lua_TValue, ptr %retval.0.i.i, i64 0, i32 1 - %21 = load i32, ptr %tt.i, align 8 - %cmp = icmp eq i32 %21, 3 + %20 = load i32, ptr %tt.i, align 8 + %cmp = icmp eq i32 %20, 3 br i1 %cmp, label %if.then, label %if.else if.then: ; preds = %lua_type.exit @@ -40269,20 +40263,20 @@ if.then: ; preds = %lua_type.exit br i1 %tobool2.not, label %for.inc, label %land.rhs land.rhs: ; preds = %if.then - %22 = trunc i64 %indvars.iv to i32 - %call3 = call fastcc double @lua_tonumber(ptr noundef %L, i32 noundef %22) + %21 = trunc i64 %indvars.iv to i32 + %call3 = call fastcc double @lua_tonumber(ptr noundef %L, i32 noundef %21) %call4 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %f, ptr noundef nonnull @.str.16, double noundef %call3) %cmp5 = icmp sgt i32 %call4, 0 br label %for.inc if.else: ; preds = %sw.default.i.i, %if.then.i.i, %index2adr.exit.i, %lua_type.exit - %23 = trunc i64 %indvars.iv to i32 - %call.i = call fastcc ptr @lua_tolstring(ptr noundef %L, i32 noundef %23, ptr noundef nonnull %l) + %22 = trunc i64 %indvars.iv to i32 + %call.i = call fastcc ptr @lua_tolstring(ptr noundef %L, i32 noundef %22, ptr noundef nonnull %l) %tobool.not.i = icmp eq ptr %call.i, null br i1 %tobool.not.i, label %if.then.i, label %luaL_checklstring.exit if.then.i: ; preds = %if.else - call fastcc void @luaL_typerror(ptr noundef %L, i32 noundef %23, ptr noundef nonnull @.str.25) + call fastcc void @luaL_typerror(ptr noundef %L, i32 noundef %22, ptr noundef nonnull @.str.25) unreachable luaL_checklstring.exit: ; preds = %if.else @@ -40290,10 +40284,10 @@ luaL_checklstring.exit: ; preds = %if.else br i1 %tobool7.not, label %for.inc, label %land.rhs8 land.rhs8: ; preds = %luaL_checklstring.exit + %23 = load i64, ptr %l, align 8 + %call9 = call i64 @fwrite(ptr noundef nonnull %call.i, i64 noundef 1, i64 noundef %23, ptr noundef %f) %24 = load i64, ptr %l, align 8 - %call9 = call i64 @fwrite(ptr noundef nonnull %call.i, i64 noundef 1, i64 noundef %24, ptr noundef %f) - %25 = load i64, ptr %l, align 8 - %cmp10 = icmp eq i64 %call9, %25 + %cmp10 = icmp eq i64 %call9, %24 br label %for.inc for.inc: ; preds = %luaL_checklstring.exit, %land.rhs8, %if.then, %land.rhs @@ -40309,32 +40303,32 @@ for.end: ; preds = %for.inc br i1 %status.1.in, label %if.then.i14, label %if.else.i if.then.i14: ; preds = %entry, %for.end - %26 = phi ptr [ %.pre, %for.end ], [ %L.val, %entry ] - store i32 1, ptr %26, align 8 + %25 = phi ptr [ %.pre, %for.end ], [ %L.val, %entry ] + store i32 1, ptr %25, align 8 br label %pushresult.exit if.else.i: ; preds = %for.end %call.i12 = tail call ptr @__errno_location() #39 - %27 = load i32, ptr %call.i12, align 4 + %26 = load i32, ptr %call.i12, align 4 %tt.i9.i = getelementptr inbounds %struct.lua_TValue, ptr %.pre, i64 0, i32 1 store i32 0, ptr %tt.i9.i, align 8 - %28 = load ptr, ptr %0, align 8 - %incdec.ptr.i10.i = getelementptr inbounds %struct.lua_TValue, ptr %28, i64 1 + %27 = load ptr, ptr %0, align 8 + %incdec.ptr.i10.i = getelementptr inbounds %struct.lua_TValue, ptr %27, i64 1 store ptr %incdec.ptr.i10.i, ptr %0, align 8 - %call6.i = call ptr @strerror(i32 noundef %27) #35 + %call6.i = call ptr @strerror(i32 noundef %26) #35 %call7.i = call ptr (ptr, ptr, ...) @lua_pushfstring(ptr noundef nonnull %L, ptr noundef nonnull @.str.113, ptr noundef %call6.i) - %29 = load ptr, ptr %0, align 8 - %conv.i.i15 = sitofp i32 %27 to double - store double %conv.i.i15, ptr %29, align 8 + %28 = load ptr, ptr %0, align 8 + %conv.i.i15 = sitofp i32 %26 to double + store double %conv.i.i15, ptr %28, align 8 br label %pushresult.exit pushresult.exit: ; preds = %if.then.i14, %if.else.i - %.sink14.i = phi ptr [ %29, %if.else.i ], [ %26, %if.then.i14 ] + %.sink14.i = phi ptr [ %28, %if.else.i ], [ %25, %if.then.i14 ] %.sink.i = phi i32 [ 3, %if.else.i ], [ 1, %if.then.i14 ] %tt.i12.i = getelementptr inbounds %struct.lua_TValue, ptr %.sink14.i, i64 0, i32 1 store i32 %.sink.i, ptr %tt.i12.i, align 8 - %30 = load ptr, ptr %0, align 8 - %incdec.ptr.i13.i = getelementptr inbounds %struct.lua_TValue, ptr %30, i64 1 + %29 = load ptr, ptr %0, align 8 + %incdec.ptr.i13.i = getelementptr inbounds %struct.lua_TValue, ptr %29, i64 1 store ptr %incdec.ptr.i13.i, ptr %0, align 8 ret i32 %.sink.i } @@ -44003,9 +43997,8 @@ sw.default.i.i: ; preds = %if.else9.i.i %52 = trunc i64 %indvars.iv to i32 %53 = add i32 %52, -10001 %cmp21.not.i.i = icmp ugt i32 %53, %conv.i.i47 - %54 = add nuw i64 %indvars.iv, 4294957294 - %idxprom.i.i = and i64 %54, 4294967295 - %arrayidx.i.i = getelementptr inbounds %struct.CClosure, ptr %50, i64 0, i32 8, i64 %idxprom.i.i + %54 = add nsw i64 %indvars.iv, -10002 + %arrayidx.i.i = getelementptr inbounds %struct.CClosure, ptr %50, i64 0, i32 8, i64 %54 %cond.i.i = select i1 %cmp21.not.i.i, ptr @luaO_nilobject_, ptr %arrayidx.i.i br label %index2adr.exit.i diff --git a/bench/nuklear/optimized/unity.c.ll b/bench/nuklear/optimized/unity.c.ll index 2d929418790..3a7765c58e1 100644 --- a/bench/nuklear/optimized/unity.c.ll +++ b/bench/nuklear/optimized/unity.c.ll @@ -78425,7 +78425,6 @@ for.cond.preheader.i85: ; preds = %nk_utf_decode_byte. br i1 %31, label %for.body.preheader.i104, label %for.end.i91 for.body.preheader.i104: ; preds = %for.cond.preheader.i85 - %32 = and i64 %24, 4294967295 %zext290 = and i64 %indvars.iv.i.i74, 4294967295 br label %for.body.i105 @@ -78433,17 +78432,17 @@ for.body.i105: ; preds = %for.inc.i124, %for. %indvars.iv.i106 = phi i64 [ 1, %for.body.preheader.i104 ], [ %indvars.iv.next.i130, %for.inc.i124 ] %udecoded.065.i107 = phi i32 [ %conv14.i.i88, %for.body.preheader.i104 ], [ %or.i129, %for.inc.i124 ] %arrayidx10.i108 = getelementptr inbounds i8, ptr %add.ptr27, i64 %indvars.iv.i106 - %33 = load i8, ptr %arrayidx10.i108, align 1 + %32 = load i8, ptr %arrayidx10.i108, align 1 br label %for.body.i15.i109 for.body.i15.i109: ; preds = %for.inc.i21.i115, %for.body.i105 %indvars.iv.i16.i110 = phi i64 [ %indvars.iv.next.i22.i116, %for.inc.i21.i115 ], [ 0, %for.body.i105 ] %arrayidx.i17.i111 = getelementptr inbounds [5 x i8], ptr @nk_utfmask, i64 0, i64 %indvars.iv.i16.i110 - %34 = load i8, ptr %arrayidx.i17.i111, align 1 - %and8.i18.i112 = and i8 %34, %33 + %33 = load i8, ptr %arrayidx.i17.i111, align 1 + %and8.i18.i112 = and i8 %33, %32 %arrayidx3.i19.i113 = getelementptr inbounds [5 x i8], ptr @nk_utfbyte, i64 0, i64 %indvars.iv.i16.i110 - %35 = load i8, ptr %arrayidx3.i19.i113, align 1 - %cmp5.i20.i114 = icmp eq i8 %and8.i18.i112, %35 + %34 = load i8, ptr %arrayidx3.i19.i113, align 1 + %cmp5.i20.i114 = icmp eq i8 %and8.i18.i112, %34 br i1 %cmp5.i20.i114, label %nk_utf_decode_byte.exit30.i120, label %for.inc.i21.i115 for.inc.i21.i115: ; preds = %for.body.i15.i109 @@ -78452,40 +78451,40 @@ for.inc.i21.i115: ; preds = %for.body.i15.i109 br i1 %exitcond.not.i23.i117, label %return.loopexit.i118, label %for.body.i15.i109, !llvm.loop !20 nk_utf_decode_byte.exit30.i120: ; preds = %for.body.i15.i109 - %36 = and i64 %indvars.iv.i16.i110, 4294967295 - %cmp12.not.i121 = icmp eq i64 %36, 0 + %35 = and i64 %indvars.iv.i16.i110, 4294967295 + %cmp12.not.i121 = icmp eq i64 %35, 0 br i1 %cmp12.not.i121, label %for.inc.i124, label %return.loopexit81.i122 for.inc.i124: ; preds = %nk_utf_decode_byte.exit30.i120 - %not.i27.i125 = xor i8 %34, -1 - %and12.i28.i126 = and i8 %33, %not.i27.i125 + %not.i27.i125 = xor i8 %33, -1 + %and12.i28.i126 = and i8 %32, %not.i27.i125 %conv14.i29.i127 = zext i8 %and12.i28.i126 to i32 %shl.i128 = shl i32 %udecoded.065.i107, 6 %or.i129 = or i32 %shl.i128, %conv14.i29.i127 %indvars.iv.next.i130 = add nuw nsw i64 %indvars.iv.i106, 1 - %cmp8.i132 = icmp ult i64 %indvars.iv.next.i130, %32 - %37 = icmp ult i64 %indvars.iv.next.i130, %zext290 - %38 = and i1 %cmp8.i132, %37 - br i1 %38, label %for.body.i105, label %for.end.i91, !llvm.loop !21 + %cmp8.i132 = icmp ult i64 %indvars.iv.next.i130, %24 + %36 = icmp ult i64 %indvars.iv.next.i130, %zext290 + %37 = and i1 %cmp8.i132, %36 + br i1 %37, label %for.body.i105, label %for.end.i91, !llvm.loop !21 for.end.i91: ; preds = %for.inc.i124, %for.cond.preheader.i85 %udecoded.0.lcssa.i92 = phi i32 [ %conv14.i.i88, %for.cond.preheader.i85 ], [ %or.i129, %for.inc.i124 ] - %cmp9.lcssa.i93 = phi i1 [ %cmp962.i90, %for.cond.preheader.i85 ], [ %37, %for.inc.i124 ] + %cmp9.lcssa.i93 = phi i1 [ %cmp962.i90, %for.cond.preheader.i85 ], [ %36, %for.inc.i124 ] br i1 %cmp9.lcssa.i93, label %while.end, label %if.end.i.i94 if.end.i.i94: ; preds = %for.end.i91 %idxprom.i.i95 = and i64 %indvars.iv.i.i74, 4294967295 %arrayidx.i31.i96 = getelementptr inbounds [5 x i32], ptr @nk_utfmin, i64 0, i64 %idxprom.i.i95 - %39 = load i32, ptr %arrayidx.i31.i96, align 4 - %cmp.not.i.i97 = icmp ugt i32 %39, %udecoded.0.lcssa.i92 + %38 = load i32, ptr %arrayidx.i31.i96, align 4 + %cmp.not.i.i97 = icmp ugt i32 %38, %udecoded.0.lcssa.i92 br i1 %cmp.not.i.i97, label %if.then7.i36.i103, label %land.lhs.true.i.i98 land.lhs.true.i.i98: ; preds = %if.end.i.i94 %arrayidx2.i.i99 = getelementptr inbounds [5 x i32], ptr @nk_utfmax, i64 0, i64 %idxprom.i.i95 - %40 = load i32, ptr %arrayidx2.i.i99, align 4 - %cmp3.i.i100 = icmp uge i32 %udecoded.0.lcssa.i92, %40 - %41 = add i32 %udecoded.0.lcssa.i92, -55296 - %or.cond.i.i101 = icmp ult i32 %41, 2047 + %39 = load i32, ptr %arrayidx2.i.i99, align 4 + %cmp3.i.i100 = icmp uge i32 %udecoded.0.lcssa.i92, %39 + %40 = add i32 %udecoded.0.lcssa.i92, -55296 + %or.cond.i.i101 = icmp ult i32 %40, 2047 %or.cond11.i.i102 = or i1 %or.cond.i.i101, %cmp3.i.i100 br i1 %or.cond11.i.i102, label %if.then7.i36.i103, label %nk_utf_decode.exit134 @@ -78505,15 +78504,15 @@ nk_utf_decode.exit134: ; preds = %for.inc.i.i79, %nk_ %retval.0.i82 = phi i32 [ %29, %if.then7.i36.i103 ], [ %29, %land.lhs.true.i.i98 ], [ %indvars78.le.i123, %return.loopexit81.i122 ], [ %indvars78.le91.i119, %return.loopexit.i118 ], [ 1, %nk_utf_decode_byte.exit.i83 ], [ 1, %for.inc.i.i79 ] %cmp9 = icmp slt i64 %indvars.iv.next, %19 %tobool10 = icmp ne i32 %retval.0.i82, 0 - %42 = and i1 %tobool10, %cmp9 - br i1 %42, label %while.body, label %while.end, !llvm.loop !263 + %41 = and i1 %tobool10, %cmp9 + br i1 %41, label %while.body, label %while.end, !llvm.loop !263 if.end30: ; preds = %while.body - %43 = trunc i64 %indvars.iv to i32 - %44 = load i32, ptr %glyphs, align 4 - %add31 = add nsw i32 %44, 1 + %42 = trunc i64 %indvars.iv to i32 + %43 = load i32, ptr %glyphs, align 4 + %add31 = add nsw i32 %43, 1 store i32 %add31, ptr %glyphs, align 4 - %add32 = add nsw i32 %glyph_len.0245, %43 + %add32 = add nsw i32 %glyph_len.0245, %42 %add33 = fadd float %line_width.0.ph252, %glyph_width.0.ph253 %idx.ext34 = sext i32 %add32 to i64 %add.ptr35 = getelementptr inbounds i8, ptr %begin, i64 %idx.ext34 @@ -78522,17 +78521,17 @@ if.end30: ; preds = %while.body br i1 %tobool2.not.i136, label %nk_utf_decode.exit200, label %if.end4.i138 if.end4.i138: ; preds = %if.end30 - %45 = load i8, ptr %add.ptr35, align 1 + %44 = load i8, ptr %add.ptr35, align 1 br label %for.body.i.i139 for.body.i.i139: ; preds = %for.inc.i.i145, %if.end4.i138 %indvars.iv.i.i140 = phi i64 [ %indvars.iv.next.i.i146, %for.inc.i.i145 ], [ 0, %if.end4.i138 ] %arrayidx.i.i141 = getelementptr inbounds [5 x i8], ptr @nk_utfmask, i64 0, i64 %indvars.iv.i.i140 - %46 = load i8, ptr %arrayidx.i.i141, align 1 - %and8.i.i142 = and i8 %46, %45 + %45 = load i8, ptr %arrayidx.i.i141, align 1 + %and8.i.i142 = and i8 %45, %44 %arrayidx3.i.i143 = getelementptr inbounds [5 x i8], ptr @nk_utfbyte, i64 0, i64 %indvars.iv.i.i140 - %47 = load i8, ptr %arrayidx3.i.i143, align 1 - %cmp5.i.i144 = icmp eq i8 %and8.i.i142, %47 + %46 = load i8, ptr %arrayidx3.i.i143, align 1 + %cmp5.i.i144 = icmp eq i8 %and8.i.i142, %46 br i1 %cmp5.i.i144, label %nk_utf_decode_byte.exit.i149, label %for.inc.i.i145 for.inc.i.i145: ; preds = %for.body.i.i139 @@ -78541,22 +78540,22 @@ for.inc.i.i145: ; preds = %for.body.i.i139 br i1 %exitcond.not.i.i147, label %nk_utf_decode.exit200, label %for.body.i.i139, !llvm.loop !20 nk_utf_decode_byte.exit.i149: ; preds = %for.body.i.i139 - %48 = trunc i64 %indvars.iv.i.i140 to i32 - %49 = add i32 %48, -1 - %or.cond1.i150 = icmp ult i32 %49, 3 + %47 = trunc i64 %indvars.iv.i.i140 to i32 + %48 = add i32 %47, -1 + %or.cond1.i150 = icmp ult i32 %48, 3 br i1 %or.cond1.i150, label %for.cond.preheader.i151, label %nk_utf_decode.exit200 for.cond.preheader.i151: ; preds = %nk_utf_decode_byte.exit.i149 - %not.i.i152 = xor i8 %46, -1 - %and12.i.i153 = and i8 %45, %not.i.i152 + %not.i.i152 = xor i8 %45, -1 + %and12.i.i153 = and i8 %44, %not.i.i152 %conv14.i.i154 = zext i8 %and12.i.i153 to i32 %cmp861.i155 = icmp sgt i32 %sub36, 1 - %cmp962.i156 = icmp ugt i32 %48, 1 - %50 = and i1 %cmp861.i155, %cmp962.i156 - br i1 %50, label %for.body.preheader.i170, label %for.end.i157 + %cmp962.i156 = icmp ugt i32 %47, 1 + %49 = and i1 %cmp861.i155, %cmp962.i156 + br i1 %49, label %for.body.preheader.i170, label %for.end.i157 for.body.preheader.i170: ; preds = %for.cond.preheader.i151 - %51 = zext nneg i32 %sub36 to i64 + %50 = zext nneg i32 %sub36 to i64 %zext293 = and i64 %indvars.iv.i.i140, 4294967295 br label %for.body.i171 @@ -78564,17 +78563,17 @@ for.body.i171: ; preds = %for.inc.i190, %for. %indvars.iv.i172 = phi i64 [ 1, %for.body.preheader.i170 ], [ %indvars.iv.next.i196, %for.inc.i190 ] %udecoded.065.i173 = phi i32 [ %conv14.i.i154, %for.body.preheader.i170 ], [ %or.i195, %for.inc.i190 ] %arrayidx10.i174 = getelementptr inbounds i8, ptr %add.ptr35, i64 %indvars.iv.i172 - %52 = load i8, ptr %arrayidx10.i174, align 1 + %51 = load i8, ptr %arrayidx10.i174, align 1 br label %for.body.i15.i175 for.body.i15.i175: ; preds = %for.inc.i21.i181, %for.body.i171 %indvars.iv.i16.i176 = phi i64 [ %indvars.iv.next.i22.i182, %for.inc.i21.i181 ], [ 0, %for.body.i171 ] %arrayidx.i17.i177 = getelementptr inbounds [5 x i8], ptr @nk_utfmask, i64 0, i64 %indvars.iv.i16.i176 - %53 = load i8, ptr %arrayidx.i17.i177, align 1 - %and8.i18.i178 = and i8 %53, %52 + %52 = load i8, ptr %arrayidx.i17.i177, align 1 + %and8.i18.i178 = and i8 %52, %51 %arrayidx3.i19.i179 = getelementptr inbounds [5 x i8], ptr @nk_utfbyte, i64 0, i64 %indvars.iv.i16.i176 - %54 = load i8, ptr %arrayidx3.i19.i179, align 1 - %cmp5.i20.i180 = icmp eq i8 %and8.i18.i178, %54 + %53 = load i8, ptr %arrayidx3.i19.i179, align 1 + %cmp5.i20.i180 = icmp eq i8 %and8.i18.i178, %53 br i1 %cmp5.i20.i180, label %nk_utf_decode_byte.exit30.i186, label %for.inc.i21.i181 for.inc.i21.i181: ; preds = %for.body.i15.i175 @@ -78583,40 +78582,40 @@ for.inc.i21.i181: ; preds = %for.body.i15.i175 br i1 %exitcond.not.i23.i183, label %return.loopexit.i184, label %for.body.i15.i175, !llvm.loop !20 nk_utf_decode_byte.exit30.i186: ; preds = %for.body.i15.i175 - %55 = and i64 %indvars.iv.i16.i176, 4294967295 - %cmp12.not.i187 = icmp eq i64 %55, 0 + %54 = and i64 %indvars.iv.i16.i176, 4294967295 + %cmp12.not.i187 = icmp eq i64 %54, 0 br i1 %cmp12.not.i187, label %for.inc.i190, label %return.loopexit81.i188 for.inc.i190: ; preds = %nk_utf_decode_byte.exit30.i186 - %not.i27.i191 = xor i8 %53, -1 - %and12.i28.i192 = and i8 %52, %not.i27.i191 + %not.i27.i191 = xor i8 %52, -1 + %and12.i28.i192 = and i8 %51, %not.i27.i191 %conv14.i29.i193 = zext i8 %and12.i28.i192 to i32 %shl.i194 = shl i32 %udecoded.065.i173, 6 %or.i195 = or i32 %shl.i194, %conv14.i29.i193 %indvars.iv.next.i196 = add nuw nsw i64 %indvars.iv.i172, 1 - %cmp8.i198 = icmp ult i64 %indvars.iv.next.i196, %51 - %56 = icmp ult i64 %indvars.iv.next.i196, %zext293 - %57 = and i1 %cmp8.i198, %56 - br i1 %57, label %for.body.i171, label %for.end.i157, !llvm.loop !21 + %cmp8.i198 = icmp ult i64 %indvars.iv.next.i196, %50 + %55 = icmp ult i64 %indvars.iv.next.i196, %zext293 + %56 = and i1 %cmp8.i198, %55 + br i1 %56, label %for.body.i171, label %for.end.i157, !llvm.loop !21 for.end.i157: ; preds = %for.inc.i190, %for.cond.preheader.i151 %udecoded.0.lcssa.i158 = phi i32 [ %conv14.i.i154, %for.cond.preheader.i151 ], [ %or.i195, %for.inc.i190 ] - %cmp9.lcssa.i159 = phi i1 [ %cmp962.i156, %for.cond.preheader.i151 ], [ %56, %for.inc.i190 ] + %cmp9.lcssa.i159 = phi i1 [ %cmp962.i156, %for.cond.preheader.i151 ], [ %55, %for.inc.i190 ] br i1 %cmp9.lcssa.i159, label %nk_utf_decode.exit200, label %if.end.i.i160 if.end.i.i160: ; preds = %for.end.i157 %idxprom.i.i161 = and i64 %indvars.iv.i.i140, 4294967295 %arrayidx.i31.i162 = getelementptr inbounds [5 x i32], ptr @nk_utfmin, i64 0, i64 %idxprom.i.i161 - %58 = load i32, ptr %arrayidx.i31.i162, align 4 - %cmp.not.i.i163 = icmp ugt i32 %58, %udecoded.0.lcssa.i158 + %57 = load i32, ptr %arrayidx.i31.i162, align 4 + %cmp.not.i.i163 = icmp ugt i32 %57, %udecoded.0.lcssa.i158 br i1 %cmp.not.i.i163, label %if.then7.i36.i169, label %land.lhs.true.i.i164 land.lhs.true.i.i164: ; preds = %if.end.i.i160 %arrayidx2.i.i165 = getelementptr inbounds [5 x i32], ptr @nk_utfmax, i64 0, i64 %idxprom.i.i161 - %59 = load i32, ptr %arrayidx2.i.i165, align 4 - %cmp3.i.i166 = icmp uge i32 %udecoded.0.lcssa.i158, %59 - %60 = add i32 %udecoded.0.lcssa.i158, -55296 - %or.cond.i.i167 = icmp ult i32 %60, 2047 + %58 = load i32, ptr %arrayidx2.i.i165, align 4 + %cmp3.i.i166 = icmp uge i32 %udecoded.0.lcssa.i158, %58 + %59 = add i32 %udecoded.0.lcssa.i158, -55296 + %or.cond.i.i167 = icmp ult i32 %59, 2047 %or.cond11.i.i168 = or i1 %or.cond.i.i167, %cmp3.i.i166 br i1 %or.cond11.i.i168, label %if.then7.i36.i169, label %nk_utf_decode.exit200 @@ -78633,15 +78632,15 @@ return.loopexit81.i188: ; preds = %nk_utf_decode_byte. nk_utf_decode.exit200: ; preds = %for.inc.i.i145, %if.end30, %nk_utf_decode_byte.exit.i149, %for.end.i157, %land.lhs.true.i.i164, %if.then7.i36.i169, %return.loopexit.i184, %return.loopexit81.i188 %unicode.3 = phi i32 [ %unicode.1244, %if.end30 ], [ 65533, %for.end.i157 ], [ 65533, %if.then7.i36.i169 ], [ %udecoded.0.lcssa.i158, %land.lhs.true.i.i164 ], [ 65533, %return.loopexit81.i188 ], [ 65533, %return.loopexit.i184 ], [ 65533, %nk_utf_decode_byte.exit.i149 ], [ 65533, %for.inc.i.i145 ] - %retval.0.i148 = phi i32 [ 0, %if.end30 ], [ 0, %for.end.i157 ], [ %48, %if.then7.i36.i169 ], [ %48, %land.lhs.true.i.i164 ], [ %indvars78.le.i189, %return.loopexit81.i188 ], [ %indvars78.le91.i185, %return.loopexit.i184 ], [ 1, %nk_utf_decode_byte.exit.i149 ], [ 1, %for.inc.i.i145 ] - %61 = load ptr, ptr %width, align 8 - %62 = load float, ptr %height, align 8 - %63 = load ptr, ptr %font, align 8 - %call44 = tail call float %61(ptr %63, float noundef %62, ptr noundef nonnull %add.ptr35, i32 noundef %retval.0.i148) #63 + %retval.0.i148 = phi i32 [ 0, %if.end30 ], [ 0, %for.end.i157 ], [ %47, %if.then7.i36.i169 ], [ %47, %land.lhs.true.i.i164 ], [ %indvars78.le.i189, %return.loopexit81.i188 ], [ %indvars78.le91.i185, %return.loopexit.i184 ], [ 1, %nk_utf_decode_byte.exit.i149 ], [ 1, %for.inc.i.i145 ] + %60 = load ptr, ptr %width, align 8 + %61 = load float, ptr %height, align 8 + %62 = load ptr, ptr %font, align 8 + %call44 = tail call float %60(ptr %62, float noundef %61, ptr noundef nonnull %add.ptr35, i32 noundef %retval.0.i148) #63 %cmp9242 = icmp slt i32 %add32, %byte_len %tobool10243 = icmp ne i32 %retval.0.i148, 0 - %64 = and i1 %tobool10243, %cmp9242 - br i1 %64, label %while.body.lr.ph, label %while.end, !llvm.loop !263 + %63 = and i1 %tobool10243, %cmp9242 + br i1 %63, label %while.body.lr.ph, label %while.end, !llvm.loop !263 while.end: ; preds = %nk_utf_decode.exit200, %for.end.i91, %if.then23, %nk_utf_decode.exit134, %if.then12 %text_len.0220 = phi i32 [ %21, %if.then12 ], [ %25, %nk_utf_decode.exit134 ], [ %25, %if.then23 ], [ %25, %for.end.i91 ], [ %add32, %nk_utf_decode.exit200 ] @@ -79121,7 +79120,6 @@ for.cond.preheader.i192: ; preds = %nk_utf_decode_byte. br i1 %53, label %for.body.preheader.i211, label %for.end.i198 for.body.preheader.i211: ; preds = %for.cond.preheader.i192 - %54 = and i64 %46, 4294967295 %zext474 = and i64 %indvars.iv.i.i181, 4294967295 br label %for.body.i212 @@ -79129,17 +79127,17 @@ for.body.i212: ; preds = %for.inc.i231, %for. %indvars.iv.i213 = phi i64 [ 1, %for.body.preheader.i211 ], [ %indvars.iv.next.i237, %for.inc.i231 ] %udecoded.065.i214 = phi i32 [ %conv14.i.i195, %for.body.preheader.i211 ], [ %or.i236, %for.inc.i231 ] %arrayidx10.i215 = getelementptr inbounds i8, ptr %add.ptr44, i64 %indvars.iv.i213 - %55 = load i8, ptr %arrayidx10.i215, align 1 + %54 = load i8, ptr %arrayidx10.i215, align 1 br label %for.body.i15.i216 for.body.i15.i216: ; preds = %for.inc.i21.i222, %for.body.i212 %indvars.iv.i16.i217 = phi i64 [ %indvars.iv.next.i22.i223, %for.inc.i21.i222 ], [ 0, %for.body.i212 ] %arrayidx.i17.i218 = getelementptr inbounds [5 x i8], ptr @nk_utfmask, i64 0, i64 %indvars.iv.i16.i217 - %56 = load i8, ptr %arrayidx.i17.i218, align 1 - %and8.i18.i219 = and i8 %56, %55 + %55 = load i8, ptr %arrayidx.i17.i218, align 1 + %and8.i18.i219 = and i8 %55, %54 %arrayidx3.i19.i220 = getelementptr inbounds [5 x i8], ptr @nk_utfbyte, i64 0, i64 %indvars.iv.i16.i217 - %57 = load i8, ptr %arrayidx3.i19.i220, align 1 - %cmp5.i20.i221 = icmp eq i8 %and8.i18.i219, %57 + %56 = load i8, ptr %arrayidx3.i19.i220, align 1 + %cmp5.i20.i221 = icmp eq i8 %and8.i18.i219, %56 br i1 %cmp5.i20.i221, label %nk_utf_decode_byte.exit30.i227, label %for.inc.i21.i222 for.inc.i21.i222: ; preds = %for.body.i15.i216 @@ -79148,40 +79146,40 @@ for.inc.i21.i222: ; preds = %for.body.i15.i216 br i1 %exitcond.not.i23.i224, label %return.loopexit.i225, label %for.body.i15.i216, !llvm.loop !20 nk_utf_decode_byte.exit30.i227: ; preds = %for.body.i15.i216 - %58 = and i64 %indvars.iv.i16.i217, 4294967295 - %cmp12.not.i228 = icmp eq i64 %58, 0 + %57 = and i64 %indvars.iv.i16.i217, 4294967295 + %cmp12.not.i228 = icmp eq i64 %57, 0 br i1 %cmp12.not.i228, label %for.inc.i231, label %return.loopexit81.i229 for.inc.i231: ; preds = %nk_utf_decode_byte.exit30.i227 - %not.i27.i232 = xor i8 %56, -1 - %and12.i28.i233 = and i8 %55, %not.i27.i232 + %not.i27.i232 = xor i8 %55, -1 + %and12.i28.i233 = and i8 %54, %not.i27.i232 %conv14.i29.i234 = zext i8 %and12.i28.i233 to i32 %shl.i235 = shl i32 %udecoded.065.i214, 6 %or.i236 = or i32 %shl.i235, %conv14.i29.i234 %indvars.iv.next.i237 = add nuw nsw i64 %indvars.iv.i213, 1 - %cmp8.i239 = icmp ult i64 %indvars.iv.next.i237, %54 - %59 = icmp ult i64 %indvars.iv.next.i237, %zext474 - %60 = and i1 %cmp8.i239, %59 - br i1 %60, label %for.body.i212, label %for.end.i198, !llvm.loop !21 + %cmp8.i239 = icmp ult i64 %indvars.iv.next.i237, %46 + %58 = icmp ult i64 %indvars.iv.next.i237, %zext474 + %59 = and i1 %cmp8.i239, %58 + br i1 %59, label %for.body.i212, label %for.end.i198, !llvm.loop !21 for.end.i198: ; preds = %for.inc.i231, %for.cond.preheader.i192 %udecoded.0.lcssa.i199 = phi i32 [ %conv14.i.i195, %for.cond.preheader.i192 ], [ %or.i236, %for.inc.i231 ] - %cmp9.lcssa.i200 = phi i1 [ %cmp962.i197, %for.cond.preheader.i192 ], [ %59, %for.inc.i231 ] + %cmp9.lcssa.i200 = phi i1 [ %cmp962.i197, %for.cond.preheader.i192 ], [ %58, %for.inc.i231 ] br i1 %cmp9.lcssa.i200, label %while.end, label %if.end.i.i201 if.end.i.i201: ; preds = %for.end.i198 %idxprom.i.i202 = and i64 %indvars.iv.i.i181, 4294967295 %arrayidx.i31.i203 = getelementptr inbounds [5 x i32], ptr @nk_utfmin, i64 0, i64 %idxprom.i.i202 - %61 = load i32, ptr %arrayidx.i31.i203, align 4 - %cmp.not.i.i204 = icmp ugt i32 %61, %udecoded.0.lcssa.i199 + %60 = load i32, ptr %arrayidx.i31.i203, align 4 + %cmp.not.i.i204 = icmp ugt i32 %60, %udecoded.0.lcssa.i199 br i1 %cmp.not.i.i204, label %if.then7.i36.i210, label %land.lhs.true.i.i205 land.lhs.true.i.i205: ; preds = %if.end.i.i201 %arrayidx2.i.i206 = getelementptr inbounds [5 x i32], ptr @nk_utfmax, i64 0, i64 %idxprom.i.i202 - %62 = load i32, ptr %arrayidx2.i.i206, align 4 - %cmp3.i.i207 = icmp uge i32 %udecoded.0.lcssa.i199, %62 - %63 = add i32 %udecoded.0.lcssa.i199, -55296 - %or.cond.i.i208 = icmp ult i32 %63, 2047 + %61 = load i32, ptr %arrayidx2.i.i206, align 4 + %cmp3.i.i207 = icmp uge i32 %udecoded.0.lcssa.i199, %61 + %62 = add i32 %udecoded.0.lcssa.i199, -55296 + %or.cond.i.i208 = icmp ult i32 %62, 2047 %or.cond11.i.i209 = or i1 %or.cond.i.i208, %cmp3.i.i207 br i1 %or.cond11.i.i209, label %if.then7.i36.i210, label %nk_utf_decode.exit241 @@ -79201,20 +79199,20 @@ nk_utf_decode.exit241: ; preds = %for.inc.i.i186, %nk %retval.0.i189 = phi i32 [ %51, %if.then7.i36.i210 ], [ %51, %land.lhs.true.i.i205 ], [ %indvars78.le.i230, %return.loopexit81.i229 ], [ %indvars78.le91.i226, %return.loopexit.i225 ], [ 1, %nk_utf_decode_byte.exit.i190 ], [ 1, %for.inc.i.i186 ] %cmp = icmp slt i64 %indvars.iv.next, %18 %tobool17 = icmp ne i32 %retval.0.i189, 0 - %64 = and i1 %cmp, %tobool17 - br i1 %64, label %while.body, label %while.end, !llvm.loop !264 + %63 = and i1 %cmp, %tobool17 + br i1 %63, label %while.body, label %while.end, !llvm.loop !264 if.end47: ; preds = %while.body - %65 = trunc i64 %indvars.iv to i32 - %66 = load ptr, ptr %width, align 8 - %67 = load float, ptr %height, align 8 + %64 = trunc i64 %indvars.iv to i32 + %65 = load ptr, ptr %width, align 8 + %66 = load float, ptr %height, align 8 %sext479 = shl i64 %indvars.iv, 32 %idx.ext48 = ashr exact i64 %sext479, 32 %add.ptr49 = getelementptr inbounds i8, ptr %text, i64 %idx.ext48 - %68 = load ptr, ptr %font, align 8 - %call50 = tail call float %66(ptr %68, float noundef %67, ptr noundef nonnull %add.ptr49, i32 noundef %glyph_len.0389) #63 + %67 = load ptr, ptr %font, align 8 + %call50 = tail call float %65(ptr %67, float noundef %66, ptr noundef nonnull %add.ptr49, i32 noundef %glyph_len.0389) #63 %add51 = fadd float %line_width.0.ph402, %call50 - %add52 = add nsw i32 %glyph_len.0389, %65 + %add52 = add nsw i32 %glyph_len.0389, %64 %idx.ext53 = sext i32 %add52 to i64 %add.ptr54 = getelementptr inbounds i8, ptr %text, i64 %idx.ext53 %sub55 = sub nsw i32 %byte_len, %add52 @@ -79222,17 +79220,17 @@ if.end47: ; preds = %while.body br i1 %tobool2.not.i243, label %while.end, label %if.end4.i245 if.end4.i245: ; preds = %if.end47 - %69 = load i8, ptr %add.ptr54, align 1 + %68 = load i8, ptr %add.ptr54, align 1 br label %for.body.i.i246 for.body.i.i246: ; preds = %for.inc.i.i252, %if.end4.i245 %indvars.iv.i.i247 = phi i64 [ %indvars.iv.next.i.i253, %for.inc.i.i252 ], [ 0, %if.end4.i245 ] %arrayidx.i.i248 = getelementptr inbounds [5 x i8], ptr @nk_utfmask, i64 0, i64 %indvars.iv.i.i247 - %70 = load i8, ptr %arrayidx.i.i248, align 1 - %and8.i.i249 = and i8 %70, %69 + %69 = load i8, ptr %arrayidx.i.i248, align 1 + %and8.i.i249 = and i8 %69, %68 %arrayidx3.i.i250 = getelementptr inbounds [5 x i8], ptr @nk_utfbyte, i64 0, i64 %indvars.iv.i.i247 - %71 = load i8, ptr %arrayidx3.i.i250, align 1 - %cmp5.i.i251 = icmp eq i8 %and8.i.i249, %71 + %70 = load i8, ptr %arrayidx3.i.i250, align 1 + %cmp5.i.i251 = icmp eq i8 %and8.i.i249, %70 br i1 %cmp5.i.i251, label %nk_utf_decode_byte.exit.i256, label %for.inc.i.i252 for.inc.i.i252: ; preds = %for.body.i.i246 @@ -79241,22 +79239,22 @@ for.inc.i.i252: ; preds = %for.body.i.i246 br i1 %exitcond.not.i.i254, label %nk_utf_decode.exit307, label %for.body.i.i246, !llvm.loop !20 nk_utf_decode_byte.exit.i256: ; preds = %for.body.i.i246 - %72 = trunc i64 %indvars.iv.i.i247 to i32 - %73 = add i32 %72, -1 - %or.cond1.i257 = icmp ult i32 %73, 3 + %71 = trunc i64 %indvars.iv.i.i247 to i32 + %72 = add i32 %71, -1 + %or.cond1.i257 = icmp ult i32 %72, 3 br i1 %or.cond1.i257, label %for.cond.preheader.i258, label %nk_utf_decode.exit307 for.cond.preheader.i258: ; preds = %nk_utf_decode_byte.exit.i256 - %not.i.i259 = xor i8 %70, -1 - %and12.i.i260 = and i8 %69, %not.i.i259 + %not.i.i259 = xor i8 %69, -1 + %and12.i.i260 = and i8 %68, %not.i.i259 %conv14.i.i261 = zext i8 %and12.i.i260 to i32 %cmp861.i262 = icmp sgt i32 %sub55, 1 - %cmp962.i263 = icmp ugt i32 %72, 1 - %74 = and i1 %cmp861.i262, %cmp962.i263 - br i1 %74, label %for.body.preheader.i277, label %for.end.i264 + %cmp962.i263 = icmp ugt i32 %71, 1 + %73 = and i1 %cmp861.i262, %cmp962.i263 + br i1 %73, label %for.body.preheader.i277, label %for.end.i264 for.body.preheader.i277: ; preds = %for.cond.preheader.i258 - %75 = zext nneg i32 %sub55 to i64 + %74 = zext nneg i32 %sub55 to i64 %zext477 = and i64 %indvars.iv.i.i247, 4294967295 br label %for.body.i278 @@ -79264,17 +79262,17 @@ for.body.i278: ; preds = %for.inc.i297, %for. %indvars.iv.i279 = phi i64 [ 1, %for.body.preheader.i277 ], [ %indvars.iv.next.i303, %for.inc.i297 ] %udecoded.065.i280 = phi i32 [ %conv14.i.i261, %for.body.preheader.i277 ], [ %or.i302, %for.inc.i297 ] %arrayidx10.i281 = getelementptr inbounds i8, ptr %add.ptr54, i64 %indvars.iv.i279 - %76 = load i8, ptr %arrayidx10.i281, align 1 + %75 = load i8, ptr %arrayidx10.i281, align 1 br label %for.body.i15.i282 for.body.i15.i282: ; preds = %for.inc.i21.i288, %for.body.i278 %indvars.iv.i16.i283 = phi i64 [ %indvars.iv.next.i22.i289, %for.inc.i21.i288 ], [ 0, %for.body.i278 ] %arrayidx.i17.i284 = getelementptr inbounds [5 x i8], ptr @nk_utfmask, i64 0, i64 %indvars.iv.i16.i283 - %77 = load i8, ptr %arrayidx.i17.i284, align 1 - %and8.i18.i285 = and i8 %77, %76 + %76 = load i8, ptr %arrayidx.i17.i284, align 1 + %and8.i18.i285 = and i8 %76, %75 %arrayidx3.i19.i286 = getelementptr inbounds [5 x i8], ptr @nk_utfbyte, i64 0, i64 %indvars.iv.i16.i283 - %78 = load i8, ptr %arrayidx3.i19.i286, align 1 - %cmp5.i20.i287 = icmp eq i8 %and8.i18.i285, %78 + %77 = load i8, ptr %arrayidx3.i19.i286, align 1 + %cmp5.i20.i287 = icmp eq i8 %and8.i18.i285, %77 br i1 %cmp5.i20.i287, label %nk_utf_decode_byte.exit30.i293, label %for.inc.i21.i288 for.inc.i21.i288: ; preds = %for.body.i15.i282 @@ -79283,40 +79281,40 @@ for.inc.i21.i288: ; preds = %for.body.i15.i282 br i1 %exitcond.not.i23.i290, label %return.loopexit.i291, label %for.body.i15.i282, !llvm.loop !20 nk_utf_decode_byte.exit30.i293: ; preds = %for.body.i15.i282 - %79 = and i64 %indvars.iv.i16.i283, 4294967295 - %cmp12.not.i294 = icmp eq i64 %79, 0 + %78 = and i64 %indvars.iv.i16.i283, 4294967295 + %cmp12.not.i294 = icmp eq i64 %78, 0 br i1 %cmp12.not.i294, label %for.inc.i297, label %return.loopexit81.i295 for.inc.i297: ; preds = %nk_utf_decode_byte.exit30.i293 - %not.i27.i298 = xor i8 %77, -1 - %and12.i28.i299 = and i8 %76, %not.i27.i298 + %not.i27.i298 = xor i8 %76, -1 + %and12.i28.i299 = and i8 %75, %not.i27.i298 %conv14.i29.i300 = zext i8 %and12.i28.i299 to i32 %shl.i301 = shl i32 %udecoded.065.i280, 6 %or.i302 = or i32 %shl.i301, %conv14.i29.i300 %indvars.iv.next.i303 = add nuw nsw i64 %indvars.iv.i279, 1 - %cmp8.i305 = icmp ult i64 %indvars.iv.next.i303, %75 - %80 = icmp ult i64 %indvars.iv.next.i303, %zext477 - %81 = and i1 %cmp8.i305, %80 - br i1 %81, label %for.body.i278, label %for.end.i264, !llvm.loop !21 + %cmp8.i305 = icmp ult i64 %indvars.iv.next.i303, %74 + %79 = icmp ult i64 %indvars.iv.next.i303, %zext477 + %80 = and i1 %cmp8.i305, %79 + br i1 %80, label %for.body.i278, label %for.end.i264, !llvm.loop !21 for.end.i264: ; preds = %for.inc.i297, %for.cond.preheader.i258 %udecoded.0.lcssa.i265 = phi i32 [ %conv14.i.i261, %for.cond.preheader.i258 ], [ %or.i302, %for.inc.i297 ] - %cmp9.lcssa.i266 = phi i1 [ %cmp962.i263, %for.cond.preheader.i258 ], [ %80, %for.inc.i297 ] + %cmp9.lcssa.i266 = phi i1 [ %cmp962.i263, %for.cond.preheader.i258 ], [ %79, %for.inc.i297 ] br i1 %cmp9.lcssa.i266, label %while.end, label %if.end.i.i267 if.end.i.i267: ; preds = %for.end.i264 %idxprom.i.i268 = and i64 %indvars.iv.i.i247, 4294967295 %arrayidx.i31.i269 = getelementptr inbounds [5 x i32], ptr @nk_utfmin, i64 0, i64 %idxprom.i.i268 - %82 = load i32, ptr %arrayidx.i31.i269, align 4 - %cmp.not.i.i270 = icmp ugt i32 %82, %udecoded.0.lcssa.i265 + %81 = load i32, ptr %arrayidx.i31.i269, align 4 + %cmp.not.i.i270 = icmp ugt i32 %81, %udecoded.0.lcssa.i265 br i1 %cmp.not.i.i270, label %if.then7.i36.i276, label %land.lhs.true.i.i271 land.lhs.true.i.i271: ; preds = %if.end.i.i267 %arrayidx2.i.i272 = getelementptr inbounds [5 x i32], ptr @nk_utfmax, i64 0, i64 %idxprom.i.i268 - %83 = load i32, ptr %arrayidx2.i.i272, align 4 - %cmp3.i.i273 = icmp uge i32 %udecoded.0.lcssa.i265, %83 - %84 = add i32 %udecoded.0.lcssa.i265, -55296 - %or.cond.i.i274 = icmp ult i32 %84, 2047 + %82 = load i32, ptr %arrayidx2.i.i272, align 4 + %cmp3.i.i273 = icmp uge i32 %udecoded.0.lcssa.i265, %82 + %83 = add i32 %udecoded.0.lcssa.i265, -55296 + %or.cond.i.i274 = icmp ult i32 %83, 2047 %or.cond11.i.i275 = or i1 %or.cond.i.i274, %cmp3.i.i273 br i1 %or.cond11.i.i275, label %if.then7.i36.i276, label %nk_utf_decode.exit307 @@ -79333,11 +79331,11 @@ return.loopexit81.i295: ; preds = %nk_utf_decode_byte. nk_utf_decode.exit307: ; preds = %for.inc.i.i252, %nk_utf_decode_byte.exit.i256, %land.lhs.true.i.i271, %if.then7.i36.i276, %return.loopexit.i291, %return.loopexit81.i295 %unicode.4 = phi i32 [ 65533, %if.then7.i36.i276 ], [ %udecoded.0.lcssa.i265, %land.lhs.true.i.i271 ], [ 65533, %return.loopexit81.i295 ], [ 65533, %return.loopexit.i291 ], [ 65533, %nk_utf_decode_byte.exit.i256 ], [ 65533, %for.inc.i.i252 ] - %retval.0.i255 = phi i32 [ %72, %if.then7.i36.i276 ], [ %72, %land.lhs.true.i.i271 ], [ %indvars78.le.i296, %return.loopexit81.i295 ], [ %indvars78.le91.i292, %return.loopexit.i291 ], [ 1, %nk_utf_decode_byte.exit.i256 ], [ 1, %for.inc.i.i252 ] + %retval.0.i255 = phi i32 [ %71, %if.then7.i36.i276 ], [ %71, %land.lhs.true.i.i271 ], [ %indvars78.le.i296, %return.loopexit81.i295 ], [ %indvars78.le91.i292, %return.loopexit.i291 ], [ 1, %nk_utf_decode_byte.exit.i256 ], [ 1, %for.inc.i.i252 ] %cmp385 = icmp slt i32 %add52, %byte_len %tobool17386 = icmp ne i32 %retval.0.i255, 0 - %85 = and i1 %cmp385, %tobool17386 - br i1 %85, label %while.body.lr.ph, label %while.end, !llvm.loop !264 + %84 = and i1 %cmp385, %tobool17386 + br i1 %84, label %while.body.lr.ph, label %while.end, !llvm.loop !264 while.end: ; preds = %for.end.i264, %if.end47, %nk_utf_decode.exit307, %for.end.i198, %if.then41, %nk_utf_decode.exit241 %line_width.0.ph.lcssa368 = phi float [ %line_width.0.ph402, %nk_utf_decode.exit241 ], [ %line_width.0.ph402, %if.then41 ], [ %line_width.0.ph402, %for.end.i198 ], [ %add51, %nk_utf_decode.exit307 ], [ %add51, %if.end47 ], [ %add51, %for.end.i264 ] @@ -79347,8 +79345,8 @@ while.end: ; preds = %for.end.i264, %if.e if.then59: ; preds = %while.end %add61 = fadd float %line_offset.0.ph.ph419, %pos_y - %86 = insertelement <2 x float> poison, float %pos_x, i64 0 - %label60.sroa.0.0.vec.insert = insertelement <2 x float> %86, float %add61, i64 1 + %85 = insertelement <2 x float> poison, float %pos_x, i64 0 + %label60.sroa.0.0.vec.insert = insertelement <2 x float> %85, float %add61, i64 1 %tobool66.not = icmp eq i32 %line_count.0.ph.ph420, 0 %add69 = fadd float %pos_x, %x_offset %label60.sroa.0.0.vec.insert7 = insertelement <2 x float> %label60.sroa.0.0.vec.insert, float %add69, i64 0 @@ -79357,8 +79355,8 @@ if.then59: ; preds = %while.end br i1 %tobool71.not, label %if.end73, label %if.then72 if.then72: ; preds = %if.then59 - %87 = insertelement <2 x float> poison, float %line_width.0.ph.lcssa368, i64 0 - %label60.sroa.6.8.vec.insert = insertelement <2 x float> %87, float %row_height, i64 1 + %86 = insertelement <2 x float> poison, float %line_width.0.ph.lcssa368, i64 0 + %label60.sroa.6.8.vec.insert = insertelement <2 x float> %86, float %row_height, i64 1 tail call void @nk_fill_rect(ptr noundef %out, <2 x float> %label60.sroa.0.0, <2 x float> %label60.sroa.6.8.vec.insert, float noundef 0.000000e+00, i32 %retval.sroa.0.0.insert.insert.i104) br label %if.end73 @@ -79377,26 +79375,26 @@ if.end.i309: ; preds = %if.end73 %mul.b.sroa.14.12.vec.extract.i313 = select i1 %cmp.i312, float 0.000000e+00, float %row_height %b.sroa.0.4.vec.extract.i314 = extractelement <2 x float> %label60.sroa.0.0, i64 1 %height.i317 = getelementptr inbounds %struct.nk_user_font, ptr %font, i64 0, i32 1 - %88 = load float, ptr %height.i317, align 8 + %87 = load float, ptr %height.i317, align 8 %width.i321 = getelementptr inbounds %struct.nk_user_font, ptr %font, i64 0, i32 2 - %89 = load ptr, ptr %width.i321, align 8 - %90 = load ptr, ptr %font, align 8 - %call.i322 = tail call float %89(ptr %90, float noundef %88, ptr noundef nonnull %line.0.ph.ph418, i32 noundef %conv79) #63 + %88 = load ptr, ptr %width.i321, align 8 + %89 = load ptr, ptr %font, align 8 + %call.i322 = tail call float %88(ptr %89, float noundef %87, ptr noundef nonnull %line.0.ph.ph418, i32 noundef %conv79) #63 %b.sroa.0.0.vec.extract.i = extractelement <2 x float> %label60.sroa.0.0, i64 0 %add35.i = fadd float %b.sroa.0.0.vec.extract.i, 0.000000e+00 - %91 = insertelement <2 x float> poison, float %add35.i, i64 0 - %92 = insertelement <2 x float> poison, float %line_width.0.ph.lcssa368, i64 0 + %90 = insertelement <2 x float> poison, float %add35.i, i64 0 + %91 = insertelement <2 x float> poison, float %line_width.0.ph.lcssa368, i64 0 %div164.i325 = fmul float %mul.b.sroa.14.12.vec.extract.i313, 5.000000e-01 %add165.i326 = fadd float %div164.i325, %b.sroa.0.4.vec.extract.i314 - %93 = load float, ptr %height.i317, align 8 - %div167.i327 = fmul float %93, 5.000000e-01 + %92 = load float, ptr %height.i317, align 8 + %div167.i327 = fmul float %92, 5.000000e-01 %sub168.i328 = fsub float %add165.i326, %div167.i327 - %label.sroa.0.4.vec.insert27.i329 = insertelement <2 x float> %91, float %sub168.i328, i64 1 + %label.sroa.0.4.vec.insert27.i329 = insertelement <2 x float> %90, float %sub168.i328, i64 1 %add177.i330 = fadd float %div164.i325, %div167.i327 %sub178.i331 = fsub float %mul.b.sroa.14.12.vec.extract.i313, %add177.i330 %cmp179.i332 = fcmp olt float %div164.i325, %sub178.i331 %sub178.div164.i333 = select i1 %cmp179.i332, float %sub178.i331, float %div164.i325 - %label.sroa.15.12.vec.insert51.i334 = insertelement <2 x float> %92, float %sub178.div164.i333, i64 1 + %label.sroa.15.12.vec.insert51.i334 = insertelement <2 x float> %91, float %sub178.div164.i333, i64 1 tail call void @nk_draw_text(ptr noundef nonnull %out, <2 x float> %label.sroa.0.4.vec.insert27.i329, <2 x float> %label.sroa.15.12.vec.insert51.i334, ptr noundef nonnull %line.0.ph.ph418, i32 noundef %conv79, ptr noundef nonnull %font, i32 %background.coerce, i32 %foreground.coerce) br label %if.end80 diff --git a/bench/ocio/optimized/FileFormatCSP.cpp.ll b/bench/ocio/optimized/FileFormatCSP.cpp.ll index cde5a1864c9..a0f1d2745c6 100644 --- a/bench/ocio/optimized/FileFormatCSP.cpp.ll +++ b/bench/ocio/optimized/FileFormatCSP.cpp.ll @@ -2137,23 +2137,22 @@ ehcleanup476: ; preds = %ehcleanup472, %clea if.end477: ; preds = %lor.lhs.false444 %114 = load float, ptr %109, align 4 - %115 = mul i64 %indvars.iv1000, 3 - %conv479 = and i64 %115, 4294967295 + %115 = mul nuw nsw i64 %indvars.iv1000, 3 %116 = load ptr, ptr %m_data.i, align 8 - %add.ptr.i.i = getelementptr inbounds float, ptr %116, i64 %conv479 + %add.ptr.i.i = getelementptr inbounds float, ptr %116, i64 %115 store float %114, ptr %add.ptr.i.i, align 4 %117 = load ptr, ptr %floatArray, align 8 %add.ptr.i = getelementptr inbounds float, ptr %117, i64 1 %118 = load float, ptr %add.ptr.i, align 4 %119 = load ptr, ptr %m_data.i, align 8 - %120 = getelementptr float, ptr %119, i64 %conv479 + %120 = getelementptr float, ptr %119, i64 %115 %add.ptr.i.i366 = getelementptr float, ptr %120, i64 1 store float %118, ptr %add.ptr.i.i366, align 4 %121 = load ptr, ptr %floatArray, align 8 %add.ptr.i367 = getelementptr inbounds float, ptr %121, i64 2 %122 = load float, ptr %add.ptr.i367, align 4 %123 = load ptr, ptr %m_data.i, align 8 - %124 = getelementptr float, ptr %123, i64 %conv479 + %124 = getelementptr float, ptr %123, i64 %115 %add.ptr.i.i369 = getelementptr float, ptr %124, i64 2 store float %122, ptr %add.ptr.i.i369, align 4 %125 = load ptr, ptr %floatArray, align 8 diff --git a/bench/ocio/optimized/FileFormatHDL.cpp.ll b/bench/ocio/optimized/FileFormatHDL.cpp.ll index a35354f2f5d..4257f160464 100644 --- a/bench/ocio/optimized/FileFormatHDL.cpp.ll +++ b/bench/ocio/optimized/FileFormatHDL.cpp.ll @@ -4566,13 +4566,12 @@ for.body: ; preds = %for.body.preheader, to label %invoke.cont226 unwind label %lpad106.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont226: ; preds = %for.body - %71 = load ptr, ptr %prelutData, align 8 - %72 = mul i64 %indvars.iv, 3 - %73 = and i64 %72, 4294967295 - %74 = getelementptr float, ptr %71, i64 %73 - %add.ptr.i245 = getelementptr float, ptr %74, i64 1 - %75 = load float, ptr %add.ptr.i245, align 4 - %call232 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %call227, float noundef %75) + %71 = mul nuw nsw i64 %indvars.iv, 3 + %72 = load ptr, ptr %prelutData, align 8 + %73 = getelementptr float, ptr %72, i64 %71 + %add.ptr.i245 = getelementptr float, ptr %73, i64 1 + %74 = load float, ptr %add.ptr.i245, align 4 + %call232 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %call227, float noundef %74) to label %invoke.cont231 unwind label %lpad106.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont231: ; preds = %invoke.cont226 @@ -4618,12 +4617,11 @@ for.body257: ; preds = %for.body257.prehead to label %invoke.cont258 unwind label %lpad106.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont258: ; preds = %for.body257 - %76 = mul i64 %indvars.iv345, 3 - %conv262 = and i64 %76, 4294967295 - %77 = load ptr, ptr %cubeData, align 8 - %add.ptr.i246 = getelementptr inbounds float, ptr %77, i64 %conv262 - %78 = load float, ptr %add.ptr.i246, align 4 - %call265 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %call259, float noundef %78) + %75 = mul nuw nsw i64 %indvars.iv345, 3 + %76 = load ptr, ptr %cubeData, align 8 + %add.ptr.i246 = getelementptr inbounds float, ptr %76, i64 %75 + %77 = load float, ptr %add.ptr.i246, align 4 + %call265 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %call259, float noundef %77) to label %invoke.cont264 unwind label %lpad106.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont264: ; preds = %invoke.cont258 @@ -4631,11 +4629,11 @@ invoke.cont264: ; preds = %invoke.cont258 to label %invoke.cont266 unwind label %lpad106.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont266: ; preds = %invoke.cont264 - %79 = load ptr, ptr %cubeData, align 8 - %80 = getelementptr float, ptr %79, i64 %conv262 - %add.ptr.i247 = getelementptr float, ptr %80, i64 1 - %81 = load float, ptr %add.ptr.i247, align 4 - %call273 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %call267, float noundef %81) + %78 = load ptr, ptr %cubeData, align 8 + %79 = getelementptr float, ptr %78, i64 %75 + %add.ptr.i247 = getelementptr float, ptr %79, i64 1 + %80 = load float, ptr %add.ptr.i247, align 4 + %call273 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %call267, float noundef %80) to label %invoke.cont272 unwind label %lpad106.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont272: ; preds = %invoke.cont266 @@ -4643,11 +4641,11 @@ invoke.cont272: ; preds = %invoke.cont266 to label %invoke.cont274 unwind label %lpad106.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont274: ; preds = %invoke.cont272 - %82 = load ptr, ptr %cubeData, align 8 - %83 = getelementptr float, ptr %82, i64 %conv262 - %add.ptr.i248 = getelementptr float, ptr %83, i64 2 - %84 = load float, ptr %add.ptr.i248, align 4 - %call281 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %call275, float noundef %84) + %81 = load ptr, ptr %cubeData, align 8 + %82 = getelementptr float, ptr %81, i64 %75 + %add.ptr.i248 = getelementptr float, ptr %82, i64 2 + %83 = load float, ptr %add.ptr.i248, align 4 + %call281 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %call275, float noundef %83) to label %invoke.cont280 unwind label %lpad106.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont280: ; preds = %invoke.cont274 @@ -4684,12 +4682,11 @@ for.body297: ; preds = %for.body297.prehead to label %invoke.cont298 unwind label %lpad106.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont298: ; preds = %for.body297 - %85 = mul i64 %indvars.iv351, 3 - %conv302 = and i64 %85, 4294967295 - %86 = load ptr, ptr %onedData, align 8 - %add.ptr.i249 = getelementptr inbounds float, ptr %86, i64 %conv302 - %87 = load float, ptr %add.ptr.i249, align 4 - %call305 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %call299, float noundef %87) + %84 = mul nuw nsw i64 %indvars.iv351, 3 + %85 = load ptr, ptr %onedData, align 8 + %add.ptr.i249 = getelementptr inbounds float, ptr %85, i64 %84 + %86 = load float, ptr %add.ptr.i249, align 4 + %call305 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %call299, float noundef %86) to label %invoke.cont304 unwind label %lpad106.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont304: ; preds = %invoke.cont298 @@ -4722,13 +4719,12 @@ for.body318: ; preds = %for.body318.prehead to label %invoke.cont319 unwind label %lpad106.loopexit.split-lp.loopexit invoke.cont319: ; preds = %for.body318 + %87 = mul nuw nsw i64 %indvars.iv357, 3 %88 = load ptr, ptr %onedData, align 8 - %89 = mul i64 %indvars.iv357, 3 - %90 = and i64 %89, 4294967295 - %91 = getelementptr float, ptr %88, i64 %90 - %add.ptr.i250 = getelementptr float, ptr %91, i64 1 - %92 = load float, ptr %add.ptr.i250, align 4 - %call326 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %call320, float noundef %92) + %89 = getelementptr float, ptr %88, i64 %87 + %add.ptr.i250 = getelementptr float, ptr %89, i64 1 + %90 = load float, ptr %add.ptr.i250, align 4 + %call326 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %call320, float noundef %90) to label %invoke.cont325 unwind label %lpad106.loopexit.split-lp.loopexit invoke.cont325: ; preds = %invoke.cont319 @@ -4761,13 +4757,12 @@ for.body339: ; preds = %for.body339.prehead to label %invoke.cont340 unwind label %lpad106.loopexit invoke.cont340: ; preds = %for.body339 - %93 = load ptr, ptr %onedData, align 8 - %94 = mul i64 %indvars.iv363, 3 - %95 = and i64 %94, 4294967295 - %96 = getelementptr float, ptr %93, i64 %95 - %add.ptr.i251 = getelementptr float, ptr %96, i64 2 - %97 = load float, ptr %add.ptr.i251, align 4 - %call347 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %call341, float noundef %97) + %91 = mul nuw nsw i64 %indvars.iv363, 3 + %92 = load ptr, ptr %onedData, align 8 + %93 = getelementptr float, ptr %92, i64 %91 + %add.ptr.i251 = getelementptr float, ptr %93, i64 2 + %94 = load float, ptr %add.ptr.i251, align 4 + %call347 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %call341, float noundef %94) to label %invoke.cont346 unwind label %lpad106.loopexit invoke.cont346: ; preds = %invoke.cont340 @@ -4784,104 +4779,104 @@ for.end352: ; preds = %for.inc350, %for.co to label %if.end355 unwind label %lpad106.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp if.end355: ; preds = %for.end352, %if.end289 - %98 = load ptr, ptr %onedData, align 8 - %tobool.not.i.i.i = icmp eq ptr %98, null + %95 = load ptr, ptr %onedData, align 8 + %tobool.not.i.i.i = icmp eq ptr %95, null br i1 %tobool.not.i.i.i, label %_ZNSt6vectorIfSaIfEED2Ev.exit, label %if.then.i.i.i252 if.then.i.i.i252: ; preds = %if.end355 - call void @_ZdlPv(ptr noundef nonnull %98) #23 + call void @_ZdlPv(ptr noundef nonnull %95) #23 br label %_ZNSt6vectorIfSaIfEED2Ev.exit _ZNSt6vectorIfSaIfEED2Ev.exit: ; preds = %if.end355, %if.then.i.i.i252 - %99 = load ptr, ptr %cubeData, align 8 - %tobool.not.i.i.i253 = icmp eq ptr %99, null + %96 = load ptr, ptr %cubeData, align 8 + %tobool.not.i.i.i253 = icmp eq ptr %96, null br i1 %tobool.not.i.i.i253, label %_ZNSt6vectorIfSaIfEED2Ev.exit255, label %if.then.i.i.i254 if.then.i.i.i254: ; preds = %_ZNSt6vectorIfSaIfEED2Ev.exit - call void @_ZdlPv(ptr noundef nonnull %99) #23 + call void @_ZdlPv(ptr noundef nonnull %96) #23 br label %_ZNSt6vectorIfSaIfEED2Ev.exit255 _ZNSt6vectorIfSaIfEED2Ev.exit255: ; preds = %_ZNSt6vectorIfSaIfEED2Ev.exit, %if.then.i.i.i254 - %100 = load ptr, ptr %prelutData, align 8 - %tobool.not.i.i.i256 = icmp eq ptr %100, null + %97 = load ptr, ptr %prelutData, align 8 + %tobool.not.i.i.i256 = icmp eq ptr %97, null br i1 %tobool.not.i.i.i256, label %_ZNSt6vectorIfSaIfEED2Ev.exit258, label %if.then.i.i.i257 if.then.i.i.i257: ; preds = %_ZNSt6vectorIfSaIfEED2Ev.exit255 - call void @_ZdlPv(ptr noundef nonnull %100) #23 + call void @_ZdlPv(ptr noundef nonnull %97) #23 br label %_ZNSt6vectorIfSaIfEED2Ev.exit258 _ZNSt6vectorIfSaIfEED2Ev.exit258: ; preds = %_ZNSt6vectorIfSaIfEED2Ev.exit255, %if.then.i.i.i257 %_M_refcount.i.i259 = getelementptr inbounds %"class.std::__shared_ptr.87", ptr %inputToTarget, i64 0, i32 1 - %101 = load ptr, ptr %_M_refcount.i.i259, align 8 - %cmp.not.i.i.i260 = icmp eq ptr %101, null + %98 = load ptr, ptr %_M_refcount.i.i259, align 8 + %cmp.not.i.i.i260 = icmp eq ptr %98, null br i1 %cmp.not.i.i.i260, label %_ZNSt10shared_ptrIKN19OpenColorIO_v2_4dev12CPUProcessorEED2Ev.exit290, label %if.then.i.i.i261 if.then.i.i.i261: ; preds = %_ZNSt6vectorIfSaIfEED2Ev.exit258 - %_M_use_count.i.i.i.i262 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %101, i64 0, i32 1 - %102 = load atomic i64, ptr %_M_use_count.i.i.i.i262 acquire, align 8 - %cmp.i.i.i.i263 = icmp eq i64 %102, 4294967297 - %103 = trunc i64 %102 to i32 + %_M_use_count.i.i.i.i262 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %98, i64 0, i32 1 + %99 = load atomic i64, ptr %_M_use_count.i.i.i.i262 acquire, align 8 + %cmp.i.i.i.i263 = icmp eq i64 %99, 4294967297 + %100 = trunc i64 %99 to i32 br i1 %cmp.i.i.i.i263, label %if.then.i.i.i.i286, label %if.end.i.i.i.i264 if.then.i.i.i.i286: ; preds = %if.then.i.i.i261 store i32 0, ptr %_M_use_count.i.i.i.i262, align 8 - %_M_weak_count.i.i.i.i287 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %101, i64 0, i32 2 + %_M_weak_count.i.i.i.i287 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %98, i64 0, i32 2 store i32 0, ptr %_M_weak_count.i.i.i.i287, align 4 - %vtable.i.i.i.i288 = load ptr, ptr %101, align 8 + %vtable.i.i.i.i288 = load ptr, ptr %98, align 8 %vfn.i.i.i.i289 = getelementptr inbounds ptr, ptr %vtable.i.i.i.i288, i64 2 - %104 = load ptr, ptr %vfn.i.i.i.i289, align 8 - call void %104(ptr noundef nonnull align 8 dereferenceable(16) %101) #21 + %101 = load ptr, ptr %vfn.i.i.i.i289, align 8 + call void %101(ptr noundef nonnull align 8 dereferenceable(16) %98) #21 br label %if.end8.sink.split.i.i.i.i281 if.end.i.i.i.i264: ; preds = %if.then.i.i.i261 - %105 = load i8, ptr @__libc_single_threaded, align 1 - %tobool.i.not.i.i.i.i265 = icmp eq i8 %105, 0 + %102 = load i8, ptr @__libc_single_threaded, align 1 + %tobool.i.not.i.i.i.i265 = icmp eq i8 %102, 0 br i1 %tobool.i.not.i.i.i.i265, label %if.else.i.i.i.i.i285, label %if.then.i.i.i.i.i266 if.then.i.i.i.i.i266: ; preds = %if.end.i.i.i.i264 - %add.i.i.i.i.i267 = add nsw i32 %103, -1 + %add.i.i.i.i.i267 = add nsw i32 %100, -1 store i32 %add.i.i.i.i.i267, ptr %_M_use_count.i.i.i.i262, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i268 if.else.i.i.i.i.i285: ; preds = %if.end.i.i.i.i264 - %106 = atomicrmw volatile add ptr %_M_use_count.i.i.i.i262, i32 -1 acq_rel, align 4 + %103 = atomicrmw volatile add ptr %_M_use_count.i.i.i.i262, i32 -1 acq_rel, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i268 _ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i268: ; preds = %if.else.i.i.i.i.i285, %if.then.i.i.i.i.i266 - %retval.i.0.i.i.i.i269 = phi i32 [ %103, %if.then.i.i.i.i.i266 ], [ %106, %if.else.i.i.i.i.i285 ] + %retval.i.0.i.i.i.i269 = phi i32 [ %100, %if.then.i.i.i.i.i266 ], [ %103, %if.else.i.i.i.i.i285 ] %cmp6.i.i.i.i270 = icmp eq i32 %retval.i.0.i.i.i.i269, 1 br i1 %cmp6.i.i.i.i270, label %if.then7.i.i.i.i271, label %_ZNSt10shared_ptrIKN19OpenColorIO_v2_4dev12CPUProcessorEED2Ev.exit290 if.then7.i.i.i.i271: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i268 - %vtable.i.i.i.i.i.i272 = load ptr, ptr %101, align 8 + %vtable.i.i.i.i.i.i272 = load ptr, ptr %98, align 8 %vfn.i.i.i.i.i.i273 = getelementptr inbounds ptr, ptr %vtable.i.i.i.i.i.i272, i64 2 - %107 = load ptr, ptr %vfn.i.i.i.i.i.i273, align 8 - call void %107(ptr noundef nonnull align 8 dereferenceable(16) %101) #21 - %_M_weak_count.i.i.i.i.i.i274 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %101, i64 0, i32 2 - %108 = load i8, ptr @__libc_single_threaded, align 1 - %tobool.i.not.i.i.i.i.i.i275 = icmp eq i8 %108, 0 + %104 = load ptr, ptr %vfn.i.i.i.i.i.i273, align 8 + call void %104(ptr noundef nonnull align 8 dereferenceable(16) %98) #21 + %_M_weak_count.i.i.i.i.i.i274 = getelementptr inbounds %"class.std::_Sp_counted_base", ptr %98, i64 0, i32 2 + %105 = load i8, ptr @__libc_single_threaded, align 1 + %tobool.i.not.i.i.i.i.i.i275 = icmp eq i8 %105, 0 br i1 %tobool.i.not.i.i.i.i.i.i275, label %if.else.i.i.i.i.i.i.i284, label %if.then.i.i.i.i.i.i.i276 if.then.i.i.i.i.i.i.i276: ; preds = %if.then7.i.i.i.i271 - %109 = load i32, ptr %_M_weak_count.i.i.i.i.i.i274, align 4 - %add.i.i.i.i.i.i.i277 = add nsw i32 %109, -1 + %106 = load i32, ptr %_M_weak_count.i.i.i.i.i.i274, align 4 + %add.i.i.i.i.i.i.i277 = add nsw i32 %106, -1 store i32 %add.i.i.i.i.i.i.i277, ptr %_M_weak_count.i.i.i.i.i.i274, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i278 if.else.i.i.i.i.i.i.i284: ; preds = %if.then7.i.i.i.i271 - %110 = atomicrmw volatile add ptr %_M_weak_count.i.i.i.i.i.i274, i32 -1 acq_rel, align 4 + %107 = atomicrmw volatile add ptr %_M_weak_count.i.i.i.i.i.i274, i32 -1 acq_rel, align 4 br label %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i278 _ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i278: ; preds = %if.else.i.i.i.i.i.i.i284, %if.then.i.i.i.i.i.i.i276 - %retval.i.0.i.i.i.i.i.i279 = phi i32 [ %109, %if.then.i.i.i.i.i.i.i276 ], [ %110, %if.else.i.i.i.i.i.i.i284 ] + %retval.i.0.i.i.i.i.i.i279 = phi i32 [ %106, %if.then.i.i.i.i.i.i.i276 ], [ %107, %if.else.i.i.i.i.i.i.i284 ] %cmp.i.i.i.i.i.i280 = icmp eq i32 %retval.i.0.i.i.i.i.i.i279, 1 br i1 %cmp.i.i.i.i.i.i280, label %if.end8.sink.split.i.i.i.i281, label %_ZNSt10shared_ptrIKN19OpenColorIO_v2_4dev12CPUProcessorEED2Ev.exit290 if.end8.sink.split.i.i.i.i281: ; preds = %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i278, %if.then.i.i.i.i286 - %vtable2.i.i.i.i.i.i282 = load ptr, ptr %101, align 8 + %vtable2.i.i.i.i.i.i282 = load ptr, ptr %98, align 8 %vfn3.i.i.i.i.i.i283 = getelementptr inbounds ptr, ptr %vtable2.i.i.i.i.i.i282, i64 3 - %111 = load ptr, ptr %vfn3.i.i.i.i.i.i283, align 8 - call void %111(ptr noundef nonnull align 8 dereferenceable(16) %101) #21 + %108 = load ptr, ptr %vfn3.i.i.i.i.i.i283, align 8 + call void %108(ptr noundef nonnull align 8 dereferenceable(16) %98) #21 br label %_ZNSt10shared_ptrIKN19OpenColorIO_v2_4dev12CPUProcessorEED2Ev.exit290 _ZNSt10shared_ptrIKN19OpenColorIO_v2_4dev12CPUProcessorEED2Ev.exit290: ; preds = %_ZNSt6vectorIfSaIfEED2Ev.exit258, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i268, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i278, %if.end8.sink.split.i.i.i.i281 @@ -4890,32 +4885,32 @@ _ZNSt10shared_ptrIKN19OpenColorIO_v2_4dev12CPUProcessorEED2Ev.exit290: ; preds = ehcleanup356: ; preds = %lpad106.loopexit, %lpad106.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad106.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad106.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad106.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad106.loopexit.split-lp.loopexit, %lpad121 %.pn103 = phi { ptr, i32 } [ %68, %lpad121 ], [ %lpad.loopexit, %lpad106.loopexit ], [ %lpad.loopexit323, %lpad106.loopexit.split-lp.loopexit ], [ %lpad.loopexit326, %lpad106.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit328, %lpad106.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit331, %lpad106.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp, %lpad106.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] - %112 = load ptr, ptr %onedData, align 8 - %tobool.not.i.i.i291 = icmp eq ptr %112, null + %109 = load ptr, ptr %onedData, align 8 + %tobool.not.i.i.i291 = icmp eq ptr %109, null br i1 %tobool.not.i.i.i291, label %ehcleanup357, label %if.then.i.i.i292 if.then.i.i.i292: ; preds = %ehcleanup356 - call void @_ZdlPv(ptr noundef nonnull %112) #23 + call void @_ZdlPv(ptr noundef nonnull %109) #23 br label %ehcleanup357 ehcleanup357: ; preds = %if.then.i.i.i292, %ehcleanup356, %lpad91, %lpad79 %.pn103.pn = phi { ptr, i32 } [ %34, %lpad91 ], [ %33, %lpad79 ], [ %.pn103, %ehcleanup356 ], [ %.pn103, %if.then.i.i.i292 ] - %113 = load ptr, ptr %cubeData, align 8 - %tobool.not.i.i.i294 = icmp eq ptr %113, null + %110 = load ptr, ptr %cubeData, align 8 + %tobool.not.i.i.i294 = icmp eq ptr %110, null br i1 %tobool.not.i.i.i294, label %ehcleanup358, label %if.then.i.i.i295 if.then.i.i.i295: ; preds = %ehcleanup357 - call void @_ZdlPv(ptr noundef nonnull %113) #23 + call void @_ZdlPv(ptr noundef nonnull %110) #23 br label %ehcleanup358 ehcleanup358: ; preds = %if.then.i.i.i295, %ehcleanup357, %ehcleanup70, %lpad56 %.pn103.pn.pn = phi { ptr, i32 } [ %.pn, %ehcleanup70 ], [ %27, %lpad56 ], [ %.pn103.pn, %ehcleanup357 ], [ %.pn103.pn, %if.then.i.i.i295 ] - %114 = load ptr, ptr %prelutData, align 8 - %tobool.not.i.i.i297 = icmp eq ptr %114, null + %111 = load ptr, ptr %prelutData, align 8 + %tobool.not.i.i.i297 = icmp eq ptr %111, null br i1 %tobool.not.i.i.i297, label %ehcleanup359, label %if.then.i.i.i298 if.then.i.i.i298: ; preds = %ehcleanup358 - call void @_ZdlPv(ptr noundef nonnull %114) #23 + call void @_ZdlPv(ptr noundef nonnull %111) #23 br label %ehcleanup359 ehcleanup359: ; preds = %if.then.i.i.i298, %ehcleanup358, %lpad38 diff --git a/bench/ocio/optimized/FileFormatSpi1D.cpp.ll b/bench/ocio/optimized/FileFormatSpi1D.cpp.ll index f8f473e93fe..1ea37de3cdd 100644 --- a/bench/ocio/optimized/FileFormatSpi1D.cpp.ll +++ b/bench/ocio/optimized/FileFormatSpi1D.cpp.ll @@ -2092,10 +2092,9 @@ for.body: ; preds = %for.body.preheader, to label %invoke.cont79 unwind label %lpad40.loopexit invoke.cont79: ; preds = %for.body - %16 = mul i64 %indvars.iv, 3 - %conv82 = and i64 %16, 4294967295 + %16 = mul nuw nsw i64 %indvars.iv, 3 %17 = load ptr, ptr %onedData, align 8 - %add.ptr.i31 = getelementptr inbounds float, ptr %17, i64 %conv82 + %add.ptr.i31 = getelementptr inbounds float, ptr %17, i64 %16 %18 = load float, ptr %add.ptr.i31, align 4 %call85 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %call80, float noundef %18) to label %invoke.cont84 unwind label %lpad40.loopexit @@ -2106,7 +2105,7 @@ invoke.cont84: ; preds = %invoke.cont79 invoke.cont86: ; preds = %invoke.cont84 %19 = load ptr, ptr %onedData, align 8 - %20 = getelementptr float, ptr %19, i64 %conv82 + %20 = getelementptr float, ptr %19, i64 %16 %add.ptr.i32 = getelementptr float, ptr %20, i64 1 %21 = load float, ptr %add.ptr.i32, align 4 %call93 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %call87, float noundef %21) @@ -2118,7 +2117,7 @@ invoke.cont92: ; preds = %invoke.cont86 invoke.cont94: ; preds = %invoke.cont92 %22 = load ptr, ptr %onedData, align 8 - %23 = getelementptr float, ptr %22, i64 %conv82 + %23 = getelementptr float, ptr %22, i64 %16 %add.ptr.i33 = getelementptr float, ptr %23, i64 2 %24 = load float, ptr %add.ptr.i33, align 4 %call101 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %call95, float noundef %24) diff --git a/bench/ocio/optimized/FileFormatSpi3D.cpp.ll b/bench/ocio/optimized/FileFormatSpi3D.cpp.ll index aa2e8431428..cf0dc661f56 100644 --- a/bench/ocio/optimized/FileFormatSpi3D.cpp.ll +++ b/bench/ocio/optimized/FileFormatSpi3D.cpp.ll @@ -1673,10 +1673,9 @@ invoke.cont76: ; preds = %invoke.cont73 to label %invoke.cont78 unwind label %lpad35.loopexit invoke.cont78: ; preds = %invoke.cont76 - %10 = mul i64 %indvars.iv, 3 - %conv81 = and i64 %10, 4294967295 + %10 = mul nuw nsw i64 %indvars.iv, 3 %11 = load ptr, ptr %cubeData, align 8 - %add.ptr.i24 = getelementptr inbounds float, ptr %11, i64 %conv81 + %add.ptr.i24 = getelementptr inbounds float, ptr %11, i64 %10 %12 = load float, ptr %add.ptr.i24, align 4 %call84 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %call79, float noundef %12) to label %invoke.cont83 unwind label %lpad35.loopexit @@ -1687,7 +1686,7 @@ invoke.cont83: ; preds = %invoke.cont78 invoke.cont85: ; preds = %invoke.cont83 %13 = load ptr, ptr %cubeData, align 8 - %14 = getelementptr float, ptr %13, i64 %conv81 + %14 = getelementptr float, ptr %13, i64 %10 %add.ptr.i25 = getelementptr float, ptr %14, i64 1 %15 = load float, ptr %add.ptr.i25, align 4 %call92 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %call86, float noundef %15) @@ -1699,7 +1698,7 @@ invoke.cont91: ; preds = %invoke.cont85 invoke.cont93: ; preds = %invoke.cont91 %16 = load ptr, ptr %cubeData, align 8 - %17 = getelementptr float, ptr %16, i64 %conv81 + %17 = getelementptr float, ptr %16, i64 %10 %add.ptr.i26 = getelementptr float, ptr %17, i64 2 %18 = load float, ptr %add.ptr.i26, align 4 %call100 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %call94, float noundef %18) diff --git a/bench/ocio/optimized/Lut3DOp.cpp.ll b/bench/ocio/optimized/Lut3DOp.cpp.ll index cfd48533dcf..b1faab06da3 100644 --- a/bench/ocio/optimized/Lut3DOp.cpp.ll +++ b/bench/ocio/optimized/Lut3DOp.cpp.ll @@ -216,6 +216,7 @@ for.cond30.preheader: ; preds = %if.end2 br i1 %cmp3353, label %for.body34.preheader, label %if.end67 for.body34.preheader: ; preds = %for.cond30.preheader + %1 = zext nneg i32 %numChannels to i64 %wide.trip.count = zext nneg i32 %mul32 to i64 br label %for.body34 @@ -226,21 +227,20 @@ for.cond.preheader: ; preds = %if.end2 br i1 %cmp655, label %for.body.preheader, label %if.end67 for.body.preheader: ; preds = %for.cond.preheader + %2 = zext nneg i32 %numChannels to i64 %wide.trip.count64 = zext nneg i32 %mul5 to i64 br label %for.body for.body: ; preds = %for.body.preheader, %for.body %indvars.iv60 = phi i64 [ 0, %for.body.preheader ], [ %indvars.iv.next61, %for.body ] - %1 = trunc i64 %indvars.iv60 to i32 - %rem = srem i32 %1, %edgeLen + %3 = trunc i64 %indvars.iv60 to i32 + %rem = srem i32 %3, %edgeLen %conv7 = sitofp i32 %rem to float %mul8 = fmul float %div, %conv7 - %2 = trunc i64 %indvars.iv60 to i32 - %3 = mul i32 %2, %numChannels - %idxprom = zext nneg i32 %3 to i64 - %arrayidx = getelementptr inbounds float, ptr %img, i64 %idxprom + %4 = mul nsw i64 %indvars.iv60, %2 + %arrayidx = getelementptr inbounds float, ptr %img, i64 %4 store float %mul8, ptr %arrayidx, align 4 - %div10 = sdiv i32 %1, %edgeLen + %div10 = sdiv i32 %3, %edgeLen %rem11 = srem i32 %div10, %edgeLen %conv12 = sitofp i32 %rem11 to float %mul13 = fmul float %div, %conv12 @@ -258,23 +258,21 @@ for.body: ; preds = %for.body.preheader, for.body34: ; preds = %for.body34.preheader, %for.body34 %indvars.iv = phi i64 [ 0, %for.body34.preheader ], [ %indvars.iv.next, %for.body34 ] - %4 = trunc i64 %indvars.iv to i32 - %div35 = sdiv i32 %4, %edgeLen + %5 = trunc i64 %indvars.iv to i32 + %div35 = sdiv i32 %5, %edgeLen %div36 = sdiv i32 %div35, %edgeLen %rem37 = srem i32 %div36, %edgeLen %conv38 = sitofp i32 %rem37 to float %mul39 = fmul float %div, %conv38 - %5 = trunc i64 %indvars.iv to i32 - %6 = mul i32 %5, %numChannels - %idxprom42 = zext nneg i32 %6 to i64 - %arrayidx43 = getelementptr inbounds float, ptr %img, i64 %idxprom42 + %6 = mul nsw i64 %indvars.iv, %1 + %arrayidx43 = getelementptr inbounds float, ptr %img, i64 %6 store float %mul39, ptr %arrayidx43, align 4 %rem45 = srem i32 %div35, %edgeLen %conv46 = sitofp i32 %rem45 to float %mul47 = fmul float %div, %conv46 %arrayidx51 = getelementptr float, ptr %arrayidx43, i64 1 store float %mul47, ptr %arrayidx51, align 4 - %rem52 = srem i32 %4, %edgeLen + %rem52 = srem i32 %5, %edgeLen %conv53 = sitofp i32 %rem52 to float %mul54 = fmul float %div, %conv53 %arrayidx58 = getelementptr float, ptr %arrayidx43, i64 2 diff --git a/bench/oiio/optimized/exrinput.cpp.ll b/bench/oiio/optimized/exrinput.cpp.ll index 6049d6109ad..eb33e548a24 100644 --- a/bench/oiio/optimized/exrinput.cpp.ll +++ b/bench/oiio/optimized/exrinput.cpp.ll @@ -11323,15 +11323,12 @@ land.lhs.true.i: ; preds = %for.body %sext = shl i64 %sub.ptr.sub.i.i, 29 %15 = ashr i64 %sext, 32 %cmp2.i = icmp slt i64 %indvars.iv, %15 - br i1 %cmp2.i, label %cond.true.i, label %_ZNK18OpenImageIO_v2_6_09ImageSpec13channelformatEi.exit - -cond.true.i: ; preds = %land.lhs.true.i - %conv4.i = and i64 %indvars.iv, 4294967295 - %add.ptr.i.i = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %14, i64 %conv4.i + %add.ptr.i.i = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %14, i64 %indvars.iv + %spec.select34 = select i1 %cmp2.i, ptr %add.ptr.i.i, ptr %format.i br label %_ZNK18OpenImageIO_v2_6_09ImageSpec13channelformatEi.exit -_ZNK18OpenImageIO_v2_6_09ImageSpec13channelformatEi.exit: ; preds = %for.body, %land.lhs.true.i, %cond.true.i - %cond-lvalue.i = phi ptr [ %add.ptr.i.i, %cond.true.i ], [ %format.i, %land.lhs.true.i ], [ %format.i, %for.body ] +_ZNK18OpenImageIO_v2_6_09ImageSpec13channelformatEi.exit: ; preds = %land.lhs.true.i, %for.body + %cond-lvalue.i = phi ptr [ %format.i, %for.body ], [ %spec.select34, %land.lhs.true.i ] %16 = load i8, ptr %cond-lvalue.i, align 4, !noalias !83 store i8 %16, ptr %ref.tmp19, align 4, !alias.scope !83 %aggregate3.i.i = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %cond-lvalue.i, i64 0, i32 1 @@ -11804,15 +11801,12 @@ land.lhs.true.i86: ; preds = %for.body %sext = shl i64 %sub.ptr.sub.i.i, 29 %33 = ashr i64 %sext, 32 %cmp2.i = icmp slt i64 %indvars.iv, %33 - br i1 %cmp2.i, label %cond.true.i, label %_ZNK18OpenImageIO_v2_6_09ImageSpec13channelformatEi.exit - -cond.true.i: ; preds = %land.lhs.true.i86 - %conv4.i = and i64 %indvars.iv, 4294967295 - %add.ptr.i.i = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %32, i64 %conv4.i + %add.ptr.i.i = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %32, i64 %indvars.iv + %spec.select136 = select i1 %cmp2.i, ptr %add.ptr.i.i, ptr %format.i br label %_ZNK18OpenImageIO_v2_6_09ImageSpec13channelformatEi.exit -_ZNK18OpenImageIO_v2_6_09ImageSpec13channelformatEi.exit: ; preds = %for.body, %land.lhs.true.i86, %cond.true.i - %cond-lvalue.i = phi ptr [ %add.ptr.i.i, %cond.true.i ], [ %format.i, %land.lhs.true.i86 ], [ %format.i, %for.body ] +_ZNK18OpenImageIO_v2_6_09ImageSpec13channelformatEi.exit: ; preds = %land.lhs.true.i86, %for.body + %cond-lvalue.i = phi ptr [ %format.i, %for.body ], [ %spec.select136, %land.lhs.true.i86 ] %34 = load i8, ptr %cond-lvalue.i, align 4, !noalias !87 store i8 %34, ptr %ref.tmp88, align 4, !alias.scope !87 %aggregate3.i.i = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %cond-lvalue.i, i64 0, i32 1 @@ -12310,15 +12304,12 @@ land.lhs.true.i.us.us.us: ; preds = %for.body18.us.us.us %sext = shl i64 %sub.ptr.sub.i.i29.us.us.us, 29 %18 = ashr i64 %sext, 32 %cmp2.i.us.us.us = icmp slt i64 %indvars.iv, %18 - br i1 %cmp2.i.us.us.us, label %cond.true.i.us.us.us, label %_ZNK18OpenImageIO_v2_6_09ImageSpec13channelformatEi.exit.us.us.us - -cond.true.i.us.us.us: ; preds = %land.lhs.true.i.us.us.us - %conv4.i.us.us.us = and i64 %indvars.iv, 4294967295 - %add.ptr.i.i31.us.us.us = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %17, i64 %conv4.i.us.us.us + %add.ptr.i.i31.us.us.us = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %17, i64 %indvars.iv + %spec.select = select i1 %cmp2.i.us.us.us, ptr %add.ptr.i.i31.us.us.us, ptr %format.i br label %_ZNK18OpenImageIO_v2_6_09ImageSpec13channelformatEi.exit.us.us.us -_ZNK18OpenImageIO_v2_6_09ImageSpec13channelformatEi.exit.us.us.us: ; preds = %for.body18.us.us.us, %land.lhs.true.i.us.us.us, %cond.true.i.us.us.us - %cond-lvalue.i.us.us.us = phi ptr [ %add.ptr.i.i31.us.us.us, %cond.true.i.us.us.us ], [ %format.i, %land.lhs.true.i.us.us.us ], [ %format.i, %for.body18.us.us.us ] +_ZNK18OpenImageIO_v2_6_09ImageSpec13channelformatEi.exit.us.us.us: ; preds = %land.lhs.true.i.us.us.us, %for.body18.us.us.us + %cond-lvalue.i.us.us.us = phi ptr [ %format.i, %for.body18.us.us.us ], [ %spec.select, %land.lhs.true.i.us.us.us ] %19 = load i8, ptr %cond-lvalue.i.us.us.us, align 4, !noalias !92 store i8 %19, ptr %cf, align 4, !alias.scope !92 %aggregate3.i.i.us.us.us = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %cond-lvalue.i.us.us.us, i64 0, i32 1 diff --git a/bench/oiio/optimized/icooutput.cpp.ll b/bench/oiio/optimized/icooutput.cpp.ll index 7c86456f989..5ebc933d613 100644 --- a/bench/oiio/optimized/icooutput.cpp.ll +++ b/bench/oiio/optimized/icooutput.cpp.ll @@ -3149,18 +3149,15 @@ sw.bb23: ; preds = %for.body sw.bb36: ; preds = %for.body %32 = mul nuw nsw i64 %indvars.iv, 3 - %33 = add nuw i64 %32, 2 - %idxprom39 = and i64 %33, 4294967295 - %arrayidx40 = getelementptr inbounds i8, ptr %data.addr.0, i64 %idxprom39 + %33 = add nuw nsw i64 %32, 2 + %arrayidx40 = getelementptr inbounds i8, ptr %data.addr.0, i64 %33 %34 = load i8, ptr %arrayidx40, align 1 store i8 %34, ptr %buf, align 4 - %35 = add nuw i64 %32, 1 - %idxprom44 = and i64 %35, 4294967295 - %arrayidx45 = getelementptr inbounds i8, ptr %data.addr.0, i64 %idxprom44 + %35 = add nuw nsw i64 %32, 1 + %arrayidx45 = getelementptr inbounds i8, ptr %data.addr.0, i64 %35 %36 = load i8, ptr %arrayidx45, align 1 store i8 %36, ptr %arrayidx62, align 1 - %idxprom49 = and i64 %32, 4294967295 - %arrayidx50 = getelementptr inbounds i8, ptr %data.addr.0, i64 %idxprom49 + %arrayidx50 = getelementptr inbounds i8, ptr %data.addr.0, i64 %32 %37 = load i8, ptr %arrayidx50, align 1 store i8 %37, ptr %arrayidx67, align 2 br label %sw.epilog diff --git a/bench/oiio/optimized/imagebufalgo.cpp.ll b/bench/oiio/optimized/imagebufalgo.cpp.ll index 3ab372ccb5f..97d603d96a2 100644 --- a/bench/oiio/optimized/imagebufalgo.cpp.ll +++ b/bench/oiio/optimized/imagebufalgo.cpp.ll @@ -53923,58 +53923,55 @@ sw.bb: ; preds = %if.end for.body.lr.ph.i: ; preds = %sw.bb %_traits.i = getelementptr inbounds %class.kissfft, ptr %this, i64 0, i32 5 - %wide.trip.count.i = zext nneg i32 %3 to i64 + %5 = zext nneg i32 %3 to i64 + %invariant.gep.i = getelementptr %"class.std::complex", ptr %Fout, i64 %5 %conv2.i = shl i64 %fstride, 32 br label %for.body.i for.body.i: ; preds = %_ZStmlIfESt7complexIT_ERKS2_S4_.exit.i, %for.body.lr.ph.i %indvars.iv.i = phi i64 [ 0, %for.body.lr.ph.i ], [ %indvars.iv.next.i, %_ZStmlIfESt7complexIT_ERKS2_S4_.exit.i ] - %5 = trunc i64 %indvars.iv.i to i32 - %6 = add i32 %3, %5 - %idxprom.i = zext nneg i32 %6 to i64 - %arrayidx.i = getelementptr inbounds %"class.std::complex", ptr %Fout, i64 %idxprom.i + %gep.i = getelementptr %"class.std::complex", ptr %invariant.gep.i, i64 %indvars.iv.i %sext.i = mul i64 %conv2.i, %indvars.iv.i %conv.i.i = ashr exact i64 %sext.i, 32 - %7 = load ptr, ptr %_traits.i, align 8 - %add.ptr.i.i.i = getelementptr inbounds %"class.std::complex", ptr %7, i64 %conv.i.i + %6 = load ptr, ptr %_traits.i, align 8 + %add.ptr.i.i.i = getelementptr inbounds %"class.std::complex", ptr %6, i64 %conv.i.i %retval.sroa.0.0.copyload.i.i = load <2 x float>, ptr %add.ptr.i.i.i, align 4 - %8 = load <2 x float>, ptr %arrayidx.i, align 4 + %7 = load <2 x float>, ptr %gep.i, align 4 %ref.tmp.sroa.0.0.vec.extract.i = extractelement <2 x float> %retval.sroa.0.0.copyload.i.i, i64 0 %ref.tmp.sroa.0.4.vec.extract.i = extractelement <2 x float> %retval.sroa.0.0.copyload.i.i, i64 1 - %9 = shufflevector <2 x float> %retval.sroa.0.0.copyload.i.i, <2 x float> poison, <2 x i32> - %10 = fmul <2 x float> %9, %8 - %11 = shufflevector <2 x float> %10, <2 x float> poison, <2 x i32> - %12 = shufflevector <2 x float> %retval.sroa.0.0.copyload.i.i, <2 x float> poison, <2 x i32> zeroinitializer - %13 = fmul <2 x float> %12, %8 - %14 = fsub <2 x float> %13, %11 - %15 = fadd <2 x float> %13, %11 - %16 = shufflevector <2 x float> %14, <2 x float> %15, <2 x i32> - %17 = extractelement <2 x float> %14, i64 0 - %isnan_cmp.i.i.i = fcmp uno float %17, 0.000000e+00 + %8 = shufflevector <2 x float> %retval.sroa.0.0.copyload.i.i, <2 x float> poison, <2 x i32> + %9 = fmul <2 x float> %8, %7 + %10 = shufflevector <2 x float> %9, <2 x float> poison, <2 x i32> + %11 = shufflevector <2 x float> %retval.sroa.0.0.copyload.i.i, <2 x float> poison, <2 x i32> zeroinitializer + %12 = fmul <2 x float> %11, %7 + %13 = fsub <2 x float> %12, %10 + %14 = fadd <2 x float> %12, %10 + %15 = shufflevector <2 x float> %13, <2 x float> %14, <2 x i32> + %16 = extractelement <2 x float> %13, i64 0 + %isnan_cmp.i.i.i = fcmp uno float %16, 0.000000e+00 br i1 %isnan_cmp.i.i.i, label %complex_mul_imag_nan.i.i.i, label %_ZStmlIfESt7complexIT_ERKS2_S4_.exit.i, !prof !370 complex_mul_imag_nan.i.i.i: ; preds = %for.body.i - %18 = extractelement <2 x float> %15, i64 1 - %isnan_cmp4.i.i.i = fcmp uno float %18, 0.000000e+00 + %17 = extractelement <2 x float> %14, i64 1 + %isnan_cmp4.i.i.i = fcmp uno float %17, 0.000000e+00 br i1 %isnan_cmp4.i.i.i, label %complex_mul_libcall.i.i.i, label %_ZStmlIfESt7complexIT_ERKS2_S4_.exit.i, !prof !370 complex_mul_libcall.i.i.i: ; preds = %complex_mul_imag_nan.i.i.i - %19 = extractelement <2 x float> %8, i64 0 - %20 = extractelement <2 x float> %8, i64 1 - %call5.i.i.i = tail call noundef <2 x float> @__mulsc3(float noundef %19, float noundef %20, float noundef %ref.tmp.sroa.0.0.vec.extract.i, float noundef %ref.tmp.sroa.0.4.vec.extract.i) #24 + %18 = extractelement <2 x float> %7, i64 0 + %19 = extractelement <2 x float> %7, i64 1 + %call5.i.i.i = tail call noundef <2 x float> @__mulsc3(float noundef %18, float noundef %19, float noundef %ref.tmp.sroa.0.0.vec.extract.i, float noundef %ref.tmp.sroa.0.4.vec.extract.i) #24 br label %_ZStmlIfESt7complexIT_ERKS2_S4_.exit.i _ZStmlIfESt7complexIT_ERKS2_S4_.exit.i: ; preds = %complex_mul_libcall.i.i.i, %complex_mul_imag_nan.i.i.i, %for.body.i - %21 = phi <2 x float> [ %16, %for.body.i ], [ %16, %complex_mul_imag_nan.i.i.i ], [ %call5.i.i.i, %complex_mul_libcall.i.i.i ] + %20 = phi <2 x float> [ %15, %for.body.i ], [ %15, %complex_mul_imag_nan.i.i.i ], [ %call5.i.i.i, %complex_mul_libcall.i.i.i ] %arrayidx7.i = getelementptr inbounds %"class.std::complex", ptr %Fout, i64 %indvars.iv.i - %22 = load <2 x float>, ptr %arrayidx7.i, align 4 - %23 = fsub <2 x float> %22, %21 - store <2 x float> %23, ptr %arrayidx.i, align 4 - %24 = load <2 x float>, ptr %arrayidx7.i, align 4 - %25 = fadd <2 x float> %21, %24 - store <2 x float> %25, ptr %arrayidx7.i, align 4 + %21 = load <2 x float>, ptr %arrayidx7.i, align 4 + %22 = fsub <2 x float> %21, %20 + store <2 x float> %22, ptr %gep.i, align 4 + %23 = fadd <2 x float> %20, %21 + store <2 x float> %23, ptr %arrayidx7.i, align 4 %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 - %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %wide.trip.count.i + %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %5 br i1 %exitcond.not.i, label %sw.epilog, label %for.body.i, !llvm.loop !371 sw.bb17: ; preds = %if.end @@ -53982,109 +53979,109 @@ sw.bb17: ; preds = %if.end %mul.i = shl nsw i64 %conv18, 1 %_twiddles.i = getelementptr inbounds %class.kissfft, ptr %this, i64 0, i32 2 %mul2.i = mul i64 %conv18, %fstride - %26 = load ptr, ptr %_twiddles.i, align 8 - %add.ptr.i.sroa_idx.i = getelementptr inbounds %"class.std::complex", ptr %26, i64 %mul2.i, i32 0, i32 1 - %27 = load float, ptr %add.ptr.i.sroa_idx.i, align 4 + %24 = load ptr, ptr %_twiddles.i, align 8 + %add.ptr.i.sroa_idx.i = getelementptr inbounds %"class.std::complex", ptr %24, i64 %mul2.i, i32 0, i32 1 + %25 = load float, ptr %add.ptr.i.sroa_idx.i, align 4 %mul16.i = shl i64 %fstride, 1 - %28 = insertelement <2 x float> poison, float %27, i64 0 - %29 = shufflevector <2 x float> %28, <2 x float> poison, <2 x i32> zeroinitializer + %26 = insertelement <2 x float> poison, float %25, i64 0 + %27 = shufflevector <2 x float> %26, <2 x float> poison, <2 x i32> zeroinitializer br label %do.body.i do.body.i: ; preds = %_ZN7kissfftIfN13kissfft_utils6traitsIfEEE5C_MULERSt7complexIfERKS5_S8_.exit51.i, %sw.bb17 %k.0.i = phi i64 [ %conv18, %sw.bb17 ], [ %dec.i, %_ZN7kissfftIfN13kissfft_utils6traitsIfEEE5C_MULERSt7complexIfERKS5_S8_.exit51.i ] %Fout.addr.0.i = phi ptr [ %Fout, %sw.bb17 ], [ %incdec.ptr.i, %_ZN7kissfftIfN13kissfft_utils6traitsIfEEE5C_MULERSt7complexIfERKS5_S8_.exit51.i ] - %tw1.0.i = phi ptr [ %26, %sw.bb17 ], [ %add.ptr.i38, %_ZN7kissfftIfN13kissfft_utils6traitsIfEEE5C_MULERSt7complexIfERKS5_S8_.exit51.i ] - %tw2.0.i = phi ptr [ %26, %sw.bb17 ], [ %add.ptr17.i, %_ZN7kissfftIfN13kissfft_utils6traitsIfEEE5C_MULERSt7complexIfERKS5_S8_.exit51.i ] - %arrayidx.i37 = getelementptr inbounds %"class.std::complex", ptr %Fout.addr.0.i, i64 %conv18 + %tw1.0.i = phi ptr [ %24, %sw.bb17 ], [ %add.ptr.i37, %_ZN7kissfftIfN13kissfft_utils6traitsIfEEE5C_MULERSt7complexIfERKS5_S8_.exit51.i ] + %tw2.0.i = phi ptr [ %24, %sw.bb17 ], [ %add.ptr17.i, %_ZN7kissfftIfN13kissfft_utils6traitsIfEEE5C_MULERSt7complexIfERKS5_S8_.exit51.i ] + %arrayidx.i = getelementptr inbounds %"class.std::complex", ptr %Fout.addr.0.i, i64 %conv18 %arrayidx5.i = getelementptr inbounds %"class.std::complex", ptr %Fout.addr.0.i, i64 %mul.i - %30 = load <2 x float>, ptr %arrayidx.i37, align 4 + %28 = load <2 x float>, ptr %arrayidx.i, align 4 %_M_value.real.i.i.i.i.i = load float, ptr %tw1.0.i, align 4 %_M_value.imagp.i.i.i.i.i = getelementptr inbounds { float, float }, ptr %tw1.0.i, i64 0, i32 1 %_M_value.imag.i.i.i.i.i = load float, ptr %_M_value.imagp.i.i.i.i.i, align 4 - %31 = insertelement <2 x float> poison, float %_M_value.imag.i.i.i.i.i, i64 0 - %32 = shufflevector <2 x float> %31, <2 x float> poison, <2 x i32> zeroinitializer - %33 = fmul <2 x float> %30, %32 - %34 = shufflevector <2 x float> %33, <2 x float> poison, <2 x i32> - %35 = insertelement <2 x float> poison, float %_M_value.real.i.i.i.i.i, i64 0 - %36 = shufflevector <2 x float> %35, <2 x float> poison, <2 x i32> zeroinitializer - %37 = fmul <2 x float> %36, %30 - %38 = fsub <2 x float> %37, %34 - %39 = fadd <2 x float> %37, %34 - %40 = shufflevector <2 x float> %38, <2 x float> %39, <2 x i32> - %41 = extractelement <2 x float> %38, i64 0 - %isnan_cmp.i.i.i.i = fcmp uno float %41, 0.000000e+00 + %29 = insertelement <2 x float> poison, float %_M_value.imag.i.i.i.i.i, i64 0 + %30 = shufflevector <2 x float> %29, <2 x float> poison, <2 x i32> zeroinitializer + %31 = fmul <2 x float> %28, %30 + %32 = shufflevector <2 x float> %31, <2 x float> poison, <2 x i32> + %33 = insertelement <2 x float> poison, float %_M_value.real.i.i.i.i.i, i64 0 + %34 = shufflevector <2 x float> %33, <2 x float> poison, <2 x i32> zeroinitializer + %35 = fmul <2 x float> %34, %28 + %36 = fsub <2 x float> %35, %32 + %37 = fadd <2 x float> %35, %32 + %38 = shufflevector <2 x float> %36, <2 x float> %37, <2 x i32> + %39 = extractelement <2 x float> %36, i64 0 + %isnan_cmp.i.i.i.i = fcmp uno float %39, 0.000000e+00 br i1 %isnan_cmp.i.i.i.i, label %complex_mul_imag_nan.i.i.i.i, label %_ZN7kissfftIfN13kissfft_utils6traitsIfEEE5C_MULERSt7complexIfERKS5_S8_.exit.i, !prof !370 complex_mul_imag_nan.i.i.i.i: ; preds = %do.body.i - %42 = extractelement <2 x float> %39, i64 1 - %isnan_cmp4.i.i.i.i = fcmp uno float %42, 0.000000e+00 + %40 = extractelement <2 x float> %37, i64 1 + %isnan_cmp4.i.i.i.i = fcmp uno float %40, 0.000000e+00 br i1 %isnan_cmp4.i.i.i.i, label %complex_mul_libcall.i.i.i.i, label %_ZN7kissfftIfN13kissfft_utils6traitsIfEEE5C_MULERSt7complexIfERKS5_S8_.exit.i, !prof !370 complex_mul_libcall.i.i.i.i: ; preds = %complex_mul_imag_nan.i.i.i.i - %43 = extractelement <2 x float> %30, i64 0 - %44 = extractelement <2 x float> %30, i64 1 - %call5.i.i.i.i = tail call noundef <2 x float> @__mulsc3(float noundef %43, float noundef %44, float noundef %_M_value.real.i.i.i.i.i, float noundef %_M_value.imag.i.i.i.i.i) #24 + %41 = extractelement <2 x float> %28, i64 0 + %42 = extractelement <2 x float> %28, i64 1 + %call5.i.i.i.i = tail call noundef <2 x float> @__mulsc3(float noundef %41, float noundef %42, float noundef %_M_value.real.i.i.i.i.i, float noundef %_M_value.imag.i.i.i.i.i) #24 br label %_ZN7kissfftIfN13kissfft_utils6traitsIfEEE5C_MULERSt7complexIfERKS5_S8_.exit.i _ZN7kissfftIfN13kissfft_utils6traitsIfEEE5C_MULERSt7complexIfERKS5_S8_.exit.i: ; preds = %complex_mul_libcall.i.i.i.i, %complex_mul_imag_nan.i.i.i.i, %do.body.i - %45 = phi <2 x float> [ %40, %do.body.i ], [ %40, %complex_mul_imag_nan.i.i.i.i ], [ %call5.i.i.i.i, %complex_mul_libcall.i.i.i.i ] - %46 = load <2 x float>, ptr %arrayidx5.i, align 4 + %43 = phi <2 x float> [ %38, %do.body.i ], [ %38, %complex_mul_imag_nan.i.i.i.i ], [ %call5.i.i.i.i, %complex_mul_libcall.i.i.i.i ] + %44 = load <2 x float>, ptr %arrayidx5.i, align 4 %_M_value.real.i.i.i.i29.i = load float, ptr %tw2.0.i, align 4 %_M_value.imagp.i.i.i.i30.i = getelementptr inbounds { float, float }, ptr %tw2.0.i, i64 0, i32 1 %_M_value.imag.i.i.i.i31.i = load float, ptr %_M_value.imagp.i.i.i.i30.i, align 4 - %47 = insertelement <2 x float> poison, float %_M_value.imag.i.i.i.i31.i, i64 0 - %48 = shufflevector <2 x float> %47, <2 x float> poison, <2 x i32> zeroinitializer - %49 = fmul <2 x float> %46, %48 - %50 = shufflevector <2 x float> %49, <2 x float> poison, <2 x i32> - %51 = insertelement <2 x float> poison, float %_M_value.real.i.i.i.i29.i, i64 0 - %52 = shufflevector <2 x float> %51, <2 x float> poison, <2 x i32> zeroinitializer - %53 = fmul <2 x float> %52, %46 - %54 = fsub <2 x float> %53, %50 - %55 = fadd <2 x float> %53, %50 - %56 = shufflevector <2 x float> %54, <2 x float> %55, <2 x i32> - %57 = extractelement <2 x float> %54, i64 0 - %isnan_cmp.i.i.i40.i = fcmp uno float %57, 0.000000e+00 + %45 = insertelement <2 x float> poison, float %_M_value.imag.i.i.i.i31.i, i64 0 + %46 = shufflevector <2 x float> %45, <2 x float> poison, <2 x i32> zeroinitializer + %47 = fmul <2 x float> %44, %46 + %48 = shufflevector <2 x float> %47, <2 x float> poison, <2 x i32> + %49 = insertelement <2 x float> poison, float %_M_value.real.i.i.i.i29.i, i64 0 + %50 = shufflevector <2 x float> %49, <2 x float> poison, <2 x i32> zeroinitializer + %51 = fmul <2 x float> %50, %44 + %52 = fsub <2 x float> %51, %48 + %53 = fadd <2 x float> %51, %48 + %54 = shufflevector <2 x float> %52, <2 x float> %53, <2 x i32> + %55 = extractelement <2 x float> %52, i64 0 + %isnan_cmp.i.i.i40.i = fcmp uno float %55, 0.000000e+00 br i1 %isnan_cmp.i.i.i40.i, label %complex_mul_imag_nan.i.i.i45.i, label %_ZN7kissfftIfN13kissfft_utils6traitsIfEEE5C_MULERSt7complexIfERKS5_S8_.exit51.i, !prof !370 complex_mul_imag_nan.i.i.i45.i: ; preds = %_ZN7kissfftIfN13kissfft_utils6traitsIfEEE5C_MULERSt7complexIfERKS5_S8_.exit.i - %58 = extractelement <2 x float> %55, i64 1 - %isnan_cmp4.i.i.i46.i = fcmp uno float %58, 0.000000e+00 + %56 = extractelement <2 x float> %53, i64 1 + %isnan_cmp4.i.i.i46.i = fcmp uno float %56, 0.000000e+00 br i1 %isnan_cmp4.i.i.i46.i, label %complex_mul_libcall.i.i.i47.i, label %_ZN7kissfftIfN13kissfft_utils6traitsIfEEE5C_MULERSt7complexIfERKS5_S8_.exit51.i, !prof !370 complex_mul_libcall.i.i.i47.i: ; preds = %complex_mul_imag_nan.i.i.i45.i - %59 = extractelement <2 x float> %46, i64 0 - %60 = extractelement <2 x float> %46, i64 1 - %call5.i.i.i48.i = tail call noundef <2 x float> @__mulsc3(float noundef %59, float noundef %60, float noundef %_M_value.real.i.i.i.i29.i, float noundef %_M_value.imag.i.i.i.i31.i) #24 + %57 = extractelement <2 x float> %44, i64 0 + %58 = extractelement <2 x float> %44, i64 1 + %call5.i.i.i48.i = tail call noundef <2 x float> @__mulsc3(float noundef %57, float noundef %58, float noundef %_M_value.real.i.i.i.i29.i, float noundef %_M_value.imag.i.i.i.i31.i) #24 br label %_ZN7kissfftIfN13kissfft_utils6traitsIfEEE5C_MULERSt7complexIfERKS5_S8_.exit51.i _ZN7kissfftIfN13kissfft_utils6traitsIfEEE5C_MULERSt7complexIfERKS5_S8_.exit51.i: ; preds = %complex_mul_libcall.i.i.i47.i, %complex_mul_imag_nan.i.i.i45.i, %_ZN7kissfftIfN13kissfft_utils6traitsIfEEE5C_MULERSt7complexIfERKS5_S8_.exit.i - %61 = phi <2 x float> [ %56, %_ZN7kissfftIfN13kissfft_utils6traitsIfEEE5C_MULERSt7complexIfERKS5_S8_.exit.i ], [ %56, %complex_mul_imag_nan.i.i.i45.i ], [ %call5.i.i.i48.i, %complex_mul_libcall.i.i.i47.i ] - %62 = fadd <2 x float> %45, %61 - %add.ptr.i38 = getelementptr inbounds %"class.std::complex", ptr %tw1.0.i, i64 %fstride + %59 = phi <2 x float> [ %54, %_ZN7kissfftIfN13kissfft_utils6traitsIfEEE5C_MULERSt7complexIfERKS5_S8_.exit.i ], [ %54, %complex_mul_imag_nan.i.i.i45.i ], [ %call5.i.i.i48.i, %complex_mul_libcall.i.i.i47.i ] + %60 = fadd <2 x float> %43, %59 + %add.ptr.i37 = getelementptr inbounds %"class.std::complex", ptr %tw1.0.i, i64 %fstride %add.ptr17.i = getelementptr inbounds %"class.std::complex", ptr %tw2.0.i, i64 %mul16.i - %arrayidx.sroa_idx.i = getelementptr inbounds i8, ptr %arrayidx.i37, i64 4 - %63 = load <2 x float>, ptr %Fout.addr.0.i, align 4 - %64 = fmul <2 x float> %62, - %65 = fsub <2 x float> %63, %64 - store <2 x float> %65, ptr %arrayidx.i37, align 4 - %66 = load <2 x float>, ptr %Fout.addr.0.i, align 4 - %67 = fadd <2 x float> %62, %66 - store <2 x float> %67, ptr %Fout.addr.0.i, align 4 - %68 = fsub <2 x float> %45, %61 - %69 = fmul <2 x float> %29, %68 - %70 = shufflevector <2 x float> %69, <2 x float> poison, <2 x i32> - %71 = load <2 x float>, ptr %arrayidx.i37, align 4 - %72 = fadd <2 x float> %71, %70 - %73 = fsub <2 x float> %71, %70 - %74 = shufflevector <2 x float> %72, <2 x float> %73, <2 x i32> - store <2 x float> %74, ptr %arrayidx5.i, align 4 - %_M_value.real.i.i82.i = load float, ptr %arrayidx.i37, align 4 + %arrayidx.sroa_idx.i = getelementptr inbounds i8, ptr %arrayidx.i, i64 4 + %61 = load <2 x float>, ptr %Fout.addr.0.i, align 4 + %62 = fmul <2 x float> %60, + %63 = fsub <2 x float> %61, %62 + store <2 x float> %63, ptr %arrayidx.i, align 4 + %64 = load <2 x float>, ptr %Fout.addr.0.i, align 4 + %65 = fadd <2 x float> %60, %64 + store <2 x float> %65, ptr %Fout.addr.0.i, align 4 + %66 = fsub <2 x float> %43, %59 + %67 = fmul <2 x float> %27, %66 + %68 = shufflevector <2 x float> %67, <2 x float> poison, <2 x i32> + %69 = load <2 x float>, ptr %arrayidx.i, align 4 + %70 = fadd <2 x float> %69, %68 + %71 = fsub <2 x float> %69, %68 + %72 = shufflevector <2 x float> %70, <2 x float> %71, <2 x i32> + store <2 x float> %72, ptr %arrayidx5.i, align 4 + %_M_value.real.i.i82.i = load float, ptr %arrayidx.i, align 4 %_M_value.imag.i.i84.i = load float, ptr %arrayidx.sroa_idx.i, align 4 - %75 = extractelement <2 x float> %69, i64 1 - %add.r.i.i85.i = fsub float %_M_value.real.i.i82.i, %75 - %76 = extractelement <2 x float> %69, i64 0 - %add.i.i.i86.i = fadd float %76, %_M_value.imag.i.i84.i - store float %add.r.i.i85.i, ptr %arrayidx.i37, align 4 + %73 = extractelement <2 x float> %67, i64 1 + %add.r.i.i85.i = fsub float %_M_value.real.i.i82.i, %73 + %74 = extractelement <2 x float> %67, i64 0 + %add.i.i.i86.i = fadd float %74, %_M_value.imag.i.i84.i + store float %add.r.i.i85.i, ptr %arrayidx.i, align 4 store float %add.i.i.i86.i, ptr %arrayidx.sroa_idx.i, align 4 %incdec.ptr.i = getelementptr inbounds %"class.std::complex", ptr %Fout.addr.0.i, i64 1 %dec.i = add i64 %k.0.i, -1 diff --git a/bench/oiio/optimized/psdinput.cpp.ll b/bench/oiio/optimized/psdinput.cpp.ll index 7a8bfa5fb13..69a067b16f0 100644 --- a/bench/oiio/optimized/psdinput.cpp.ll +++ b/bench/oiio/optimized/psdinput.cpp.ll @@ -5701,8 +5701,8 @@ if.end12: ; preds = %if.end br i1 %cmp.i.not, label %invoke.cont.thread, label %if.then.i invoke.cont.thread: ; preds = %if.end12 - %depth316 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::PSDInput", ptr %this, i64 0, i32 14, i32 5 - %8 = load i16, ptr %depth316, align 8 + %depth318 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::PSDInput", ptr %this, i64 0, i32 14, i32 5 + %8 = load i16, ptr %depth318, align 8 br label %for.end if.then.i: ; preds = %if.end12 @@ -5717,21 +5717,21 @@ invoke.cont: ; preds = %if.then.i %.pre = load ptr, ptr %m_channels, align 8 %add.ptr.i78.phi.trans.insert = getelementptr inbounds %"class.std::vector.63", ptr %.pre, i64 %conv %_M_finish.i79.phi.trans.insert = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %add.ptr.i78.phi.trans.insert, i64 0, i32 1 - %.pre308 = load ptr, ptr %_M_finish.i79.phi.trans.insert, align 8 - %.pre309 = load ptr, ptr %add.ptr.i78.phi.trans.insert, align 8 - %.pre310 = ptrtoint ptr %.pre308 to i64 - %.pre311 = ptrtoint ptr %.pre309 to i64 - %.pre312 = sub i64 %.pre310, %.pre311 - %.pre313 = ashr exact i64 %.pre312, 3 + %.pre310 = load ptr, ptr %_M_finish.i79.phi.trans.insert, align 8 + %.pre311 = load ptr, ptr %add.ptr.i78.phi.trans.insert, align 8 + %.pre312 = ptrtoint ptr %.pre310 to i64 + %.pre313 = ptrtoint ptr %.pre311 to i64 + %.pre314 = sub i64 %.pre312, %.pre313 + %.pre315 = ashr exact i64 %.pre314, 3 %depth = getelementptr inbounds %"class.OpenImageIO_v2_6_0::PSDInput", ptr %this, i64 0, i32 14, i32 5 %9 = load i16, ptr %depth, align 8 %add.ptr.i78 = getelementptr inbounds %"class.std::vector.63", ptr %.pre, i64 %conv - %conv21 = trunc i64 %.pre313 to i32 - %cmp22302 = icmp sgt i32 %conv21, 0 - br i1 %cmp22302, label %for.body.preheader, label %for.end + %conv21 = trunc i64 %.pre315 to i32 + %cmp22304 = icmp sgt i32 %conv21, 0 + br i1 %cmp22304, label %for.body.preheader, label %for.end for.body.preheader: ; preds = %invoke.cont - %wide.trip.count = and i64 %.pre313, 4294967295 + %wide.trip.count = and i64 %.pre315, 4294967295 br label %for.body for.cond: ; preds = %invoke.cont32 @@ -5786,24 +5786,24 @@ invoke.cont32: ; preds = %invoke.cont28 br i1 %call33, label %for.cond, label %cleanup lpad.loopexit: ; preds = %invoke.cont28, %if.then.i97 - %lpad.loopexit300 = landingpad { ptr, i32 } + %lpad.loopexit302 = landingpad { ptr, i32 } cleanup br label %ehcleanup lpad.loopexit.split-lp: ; preds = %sw.bb69, %sw.bb86, %sw.default105, %if.else163, %if.then.i - %lpad.loopexit.split-lp301 = landingpad { ptr, i32 } + %lpad.loopexit.split-lp303 = landingpad { ptr, i32 } cleanup br label %ehcleanup for.end: ; preds = %for.cond, %invoke.cont.thread, %invoke.cont - %cmp22302327 = phi i1 [ false, %invoke.cont.thread ], [ false, %invoke.cont ], [ %cmp22302, %for.cond ] - %conv21326 = phi i32 [ 0, %invoke.cont.thread ], [ %conv21, %invoke.cont ], [ %conv21, %for.cond ] - %div71325.in.in.in = phi i16 [ %8, %invoke.cont.thread ], [ %9, %invoke.cont ], [ %9, %for.cond ] - %sub.ptr.sub.i82.pre-phi324 = phi i64 [ 0, %invoke.cont.thread ], [ %.pre312, %invoke.cont ], [ %.pre312, %for.cond ] - %sub.ptr.div.i83.pre-phi323 = phi i64 [ 0, %invoke.cont.thread ], [ %.pre313, %invoke.cont ], [ %.pre313, %for.cond ] - %div71325.in.in = zext i16 %div71325.in.in.in to i32 - %div71325.in = add nuw nsw i32 %div71325.in.in, 7 - %div71325 = lshr i32 %div71325.in, 3 + %cmp22304329 = phi i1 [ false, %invoke.cont.thread ], [ false, %invoke.cont ], [ %cmp22304, %for.cond ] + %conv21328 = phi i32 [ 0, %invoke.cont.thread ], [ %conv21, %invoke.cont ], [ %conv21, %for.cond ] + %div71327.in.in.in = phi i16 [ %8, %invoke.cont.thread ], [ %9, %invoke.cont ], [ %9, %for.cond ] + %sub.ptr.sub.i82.pre-phi326 = phi i64 [ 0, %invoke.cont.thread ], [ %.pre314, %invoke.cont ], [ %.pre314, %for.cond ] + %sub.ptr.div.i83.pre-phi325 = phi i64 [ 0, %invoke.cont.thread ], [ %.pre315, %invoke.cont ], [ %.pre315, %for.cond ] + %div71327.in.in = zext i16 %div71327.in.in.in to i32 + %div71327.in = add nuw nsw i32 %div71327.in.in, 7 + %div71327 = lshr i32 %div71327.in, 3 %m_WantRaw = getelementptr inbounds %"class.OpenImageIO_v2_6_0::PSDInput", ptr %this, i64 0, i32 7 %18 = load i8, ptr %m_WantRaw, align 8 %19 = and i8 %18, 1 @@ -5834,7 +5834,7 @@ if.then50: ; preds = %lor.lhs.false36, %l %cmp10.i137 = icmp sgt i32 %24, 0 %cmp38.i138 = icmp sgt i32 %23, 0 %or.cond.i139 = and i1 %cmp38.i138, %cmp10.i137 - switch i32 %div71325, label %sw.default [ + switch i32 %div71327, label %sw.default [ i32 4, label %sw.bb i32 2, label %sw.bb53 ] @@ -5851,6 +5851,7 @@ for.body.us.i: ; preds = %for.cond2.for.inc7_ %indvars.iv16.i = phi i64 [ 0, %for.body.us.preheader.i ], [ %indvars.iv.next17.i, %for.cond2.for.inc7_crit_edge.us.i ] %arrayidx.i.us.i = getelementptr inbounds %"class.std::vector.78", ptr %spec.select.i131, i64 %indvars.iv16.i %26 = load ptr, ptr %arrayidx.i.us.i, align 8 + %invariant.gep.i = getelementptr float, ptr %data, i64 %indvars.iv16.i br label %for.body4.us.i for.body4.us.i: ; preds = %for.body4.us.i, %for.body.us.i @@ -5858,10 +5859,8 @@ for.body4.us.i: ; preds = %for.body4.us.i, %fo %arrayidx.us.i = getelementptr inbounds float, ptr %26, i64 %indvars.iv.i %27 = load float, ptr %arrayidx.us.i, align 4 %28 = mul nuw nsw i64 %indvars.iv.i, %25 - %29 = add nuw nsw i64 %28, %indvars.iv16.i - %idxprom5.us.i = and i64 %29, 4294967295 - %arrayidx6.us.i = getelementptr inbounds float, ptr %data, i64 %idxprom5.us.i - store float %27, ptr %arrayidx6.us.i, align 4 + %gep.i = getelementptr float, ptr %invariant.gep.i, i64 %28 + store float %27, ptr %gep.i, align 4 %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %wide.trip.count.i br i1 %exitcond.not.i, label %for.cond2.for.inc7_crit_edge.us.i, label %for.body4.us.i, !llvm.loop !64 @@ -5875,128 +5874,125 @@ sw.bb53: ; preds = %if.then50 br i1 %or.cond.i139, label %for.body.us.preheader.i113, label %if.end172 for.body.us.preheader.i113: ; preds = %sw.bb53 - %30 = zext nneg i32 %24 to i64 + %29 = zext nneg i32 %24 to i64 %wide.trip.count.i115 = zext nneg i32 %23 to i64 br label %for.body.us.i116 for.body.us.i116: ; preds = %for.cond2.for.inc7_crit_edge.us.i126, %for.body.us.preheader.i113 %indvars.iv16.i117 = phi i64 [ 0, %for.body.us.preheader.i113 ], [ %indvars.iv.next17.i127, %for.cond2.for.inc7_crit_edge.us.i126 ] %arrayidx.i.us.i118 = getelementptr inbounds %"class.std::vector.78", ptr %spec.select.i131, i64 %indvars.iv16.i117 - %31 = load ptr, ptr %arrayidx.i.us.i118, align 8 - br label %for.body4.us.i119 - -for.body4.us.i119: ; preds = %for.body4.us.i119, %for.body.us.i116 - %indvars.iv.i120 = phi i64 [ 0, %for.body.us.i116 ], [ %indvars.iv.next.i124, %for.body4.us.i119 ] - %arrayidx.us.i121 = getelementptr inbounds i16, ptr %31, i64 %indvars.iv.i120 - %32 = load i16, ptr %arrayidx.us.i121, align 2 - %33 = mul nuw nsw i64 %indvars.iv.i120, %30 - %34 = add nuw nsw i64 %33, %indvars.iv16.i117 - %idxprom5.us.i122 = and i64 %34, 4294967295 - %arrayidx6.us.i123 = getelementptr inbounds i16, ptr %data, i64 %idxprom5.us.i122 - store i16 %32, ptr %arrayidx6.us.i123, align 2 - %indvars.iv.next.i124 = add nuw nsw i64 %indvars.iv.i120, 1 + %30 = load ptr, ptr %arrayidx.i.us.i118, align 8 + %invariant.gep.i119 = getelementptr i16, ptr %data, i64 %indvars.iv16.i117 + br label %for.body4.us.i120 + +for.body4.us.i120: ; preds = %for.body4.us.i120, %for.body.us.i116 + %indvars.iv.i121 = phi i64 [ 0, %for.body.us.i116 ], [ %indvars.iv.next.i124, %for.body4.us.i120 ] + %arrayidx.us.i122 = getelementptr inbounds i16, ptr %30, i64 %indvars.iv.i121 + %31 = load i16, ptr %arrayidx.us.i122, align 2 + %32 = mul nuw nsw i64 %indvars.iv.i121, %29 + %gep.i123 = getelementptr i16, ptr %invariant.gep.i119, i64 %32 + store i16 %31, ptr %gep.i123, align 2 + %indvars.iv.next.i124 = add nuw nsw i64 %indvars.iv.i121, 1 %exitcond.not.i125 = icmp eq i64 %indvars.iv.next.i124, %wide.trip.count.i115 - br i1 %exitcond.not.i125, label %for.cond2.for.inc7_crit_edge.us.i126, label %for.body4.us.i119, !llvm.loop !66 + br i1 %exitcond.not.i125, label %for.cond2.for.inc7_crit_edge.us.i126, label %for.body4.us.i120, !llvm.loop !66 -for.cond2.for.inc7_crit_edge.us.i126: ; preds = %for.body4.us.i119 +for.cond2.for.inc7_crit_edge.us.i126: ; preds = %for.body4.us.i120 %indvars.iv.next17.i127 = add nuw nsw i64 %indvars.iv16.i117, 1 - %exitcond20.not.i128 = icmp eq i64 %indvars.iv.next17.i127, %30 + %exitcond20.not.i128 = icmp eq i64 %indvars.iv.next17.i127, %29 br i1 %exitcond20.not.i128, label %if.end172, label %for.body.us.i116, !llvm.loop !67 sw.default: ; preds = %if.then50 br i1 %or.cond.i139, label %for.body.us.preheader.i140, label %if.end172 for.body.us.preheader.i140: ; preds = %sw.default - %35 = zext nneg i32 %24 to i64 + %33 = zext nneg i32 %24 to i64 %wide.trip.count.i142 = zext nneg i32 %23 to i64 br label %for.body.us.i143 for.body.us.i143: ; preds = %for.cond2.for.inc7_crit_edge.us.i153, %for.body.us.preheader.i140 %indvars.iv16.i144 = phi i64 [ 0, %for.body.us.preheader.i140 ], [ %indvars.iv.next17.i154, %for.cond2.for.inc7_crit_edge.us.i153 ] %arrayidx.i.us.i145 = getelementptr inbounds %"class.std::vector.78", ptr %spec.select.i131, i64 %indvars.iv16.i144 - %36 = load ptr, ptr %arrayidx.i.us.i145, align 8 - br label %for.body4.us.i146 - -for.body4.us.i146: ; preds = %for.body4.us.i146, %for.body.us.i143 - %indvars.iv.i147 = phi i64 [ 0, %for.body.us.i143 ], [ %indvars.iv.next.i151, %for.body4.us.i146 ] - %arrayidx.us.i148 = getelementptr inbounds i8, ptr %36, i64 %indvars.iv.i147 - %37 = load i8, ptr %arrayidx.us.i148, align 1 - %38 = mul nuw nsw i64 %indvars.iv.i147, %35 - %39 = add nuw nsw i64 %38, %indvars.iv16.i144 - %idxprom5.us.i149 = and i64 %39, 4294967295 - %arrayidx6.us.i150 = getelementptr inbounds i8, ptr %data, i64 %idxprom5.us.i149 - store i8 %37, ptr %arrayidx6.us.i150, align 1 - %indvars.iv.next.i151 = add nuw nsw i64 %indvars.iv.i147, 1 + %34 = load ptr, ptr %arrayidx.i.us.i145, align 8 + %invariant.gep.i146 = getelementptr i8, ptr %data, i64 %indvars.iv16.i144 + br label %for.body4.us.i147 + +for.body4.us.i147: ; preds = %for.body4.us.i147, %for.body.us.i143 + %indvars.iv.i148 = phi i64 [ 0, %for.body.us.i143 ], [ %indvars.iv.next.i151, %for.body4.us.i147 ] + %arrayidx.us.i149 = getelementptr inbounds i8, ptr %34, i64 %indvars.iv.i148 + %35 = load i8, ptr %arrayidx.us.i149, align 1 + %36 = mul nuw nsw i64 %indvars.iv.i148, %33 + %gep.i150 = getelementptr i8, ptr %invariant.gep.i146, i64 %36 + store i8 %35, ptr %gep.i150, align 1 + %indvars.iv.next.i151 = add nuw nsw i64 %indvars.iv.i148, 1 %exitcond.not.i152 = icmp eq i64 %indvars.iv.next.i151, %wide.trip.count.i142 - br i1 %exitcond.not.i152, label %for.cond2.for.inc7_crit_edge.us.i153, label %for.body4.us.i146, !llvm.loop !68 + br i1 %exitcond.not.i152, label %for.cond2.for.inc7_crit_edge.us.i153, label %for.body4.us.i147, !llvm.loop !68 -for.cond2.for.inc7_crit_edge.us.i153: ; preds = %for.body4.us.i146 +for.cond2.for.inc7_crit_edge.us.i153: ; preds = %for.body4.us.i147 %indvars.iv.next17.i154 = add nuw nsw i64 %indvars.iv16.i144, 1 - %exitcond20.not.i155 = icmp eq i64 %indvars.iv.next17.i154, %35 + %exitcond20.not.i155 = icmp eq i64 %indvars.iv.next17.i154, %33 br i1 %exitcond20.not.i155, label %if.end172, label %for.body.us.i143, !llvm.loop !69 if.then68: ; preds = %lor.lhs.false36 %width107 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageSpec", ptr %2, i64 %conv, i32 3 - %40 = load i32, ptr %width107, align 4 - %mul108 = mul nsw i32 %40, %conv21326 + %37 = load i32, ptr %width107, align 4 + %mul108 = mul nsw i32 %37, %conv21328 %conv109 = sext i32 %mul108 to i64 - switch i32 %div71325, label %sw.default105 [ + switch i32 %div71327, label %sw.default105 [ i32 4, label %sw.bb69 i32 2, label %sw.bb86 ] sw.bb69: ; preds = %if.then68 - %41 = icmp slt i32 %mul108, 0 - %42 = shl nsw i64 %conv109, 2 - %43 = select i1 %41, i64 -1, i64 %42 - %call73 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %43) #30 + %38 = icmp slt i32 %mul108, 0 + %39 = shl nsw i64 %conv109, 2 + %40 = select i1 %38, i64 -1, i64 %39 + %call73 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %40) #30 to label %invoke.cont72 unwind label %lpad.loopexit.split-lp invoke.cont72: ; preds = %sw.bb69 - %44 = load ptr, ptr %_M_finish.i.i, align 8 - %45 = load ptr, ptr %channel_buffers, align 8 - %tobool.not.i157 = icmp eq ptr %44, %45 - %spec.select.i158 = select i1 %tobool.not.i157, ptr null, ptr %45 - %cmp38.i165 = icmp sgt i32 %40, 0 - %or.cond.i166 = and i1 %cmp22302327, %cmp38.i165 + %41 = load ptr, ptr %_M_finish.i.i, align 8 + %42 = load ptr, ptr %channel_buffers, align 8 + %tobool.not.i157 = icmp eq ptr %41, %42 + %spec.select.i158 = select i1 %tobool.not.i157, ptr null, ptr %42 + %cmp38.i165 = icmp sgt i32 %37, 0 + %or.cond.i166 = and i1 %cmp22304329, %cmp38.i165 br i1 %or.cond.i166, label %for.body.us.preheader.i167, label %invoke.cont79 for.body.us.preheader.i167: ; preds = %invoke.cont72 - %46 = and i64 %sub.ptr.div.i83.pre-phi323, 4294967295 - %wide.trip.count.i169 = zext nneg i32 %40 to i64 + %43 = and i64 %sub.ptr.div.i83.pre-phi325, 4294967295 + %wide.trip.count.i169 = zext nneg i32 %37 to i64 br label %for.body.us.i170 for.body.us.i170: ; preds = %for.cond2.for.inc7_crit_edge.us.i180, %for.body.us.preheader.i167 %indvars.iv16.i171 = phi i64 [ 0, %for.body.us.preheader.i167 ], [ %indvars.iv.next17.i181, %for.cond2.for.inc7_crit_edge.us.i180 ] %arrayidx.i.us.i172 = getelementptr inbounds %"class.std::vector.78", ptr %spec.select.i158, i64 %indvars.iv16.i171 - %47 = load ptr, ptr %arrayidx.i.us.i172, align 8 - br label %for.body4.us.i173 - -for.body4.us.i173: ; preds = %for.body4.us.i173, %for.body.us.i170 - %indvars.iv.i174 = phi i64 [ 0, %for.body.us.i170 ], [ %indvars.iv.next.i178, %for.body4.us.i173 ] - %arrayidx.us.i175 = getelementptr inbounds float, ptr %47, i64 %indvars.iv.i174 - %48 = load float, ptr %arrayidx.us.i175, align 4 - %49 = mul i64 %indvars.iv.i174, %sub.ptr.div.i83.pre-phi323 - %50 = add i64 %49, %indvars.iv16.i171 - %idxprom5.us.i176 = and i64 %50, 4294967295 - %arrayidx6.us.i177 = getelementptr inbounds float, ptr %call73, i64 %idxprom5.us.i176 - store float %48, ptr %arrayidx6.us.i177, align 4 - %indvars.iv.next.i178 = add nuw nsw i64 %indvars.iv.i174, 1 + %44 = load ptr, ptr %arrayidx.i.us.i172, align 8 + %invariant.gep.i173 = getelementptr float, ptr %call73, i64 %indvars.iv16.i171 + br label %for.body4.us.i174 + +for.body4.us.i174: ; preds = %for.body4.us.i174, %for.body.us.i170 + %indvars.iv.i175 = phi i64 [ 0, %for.body.us.i170 ], [ %indvars.iv.next.i178, %for.body4.us.i174 ] + %arrayidx.us.i176 = getelementptr inbounds float, ptr %44, i64 %indvars.iv.i175 + %45 = load float, ptr %arrayidx.us.i176, align 4 + %46 = mul nuw nsw i64 %indvars.iv.i175, %43 + %gep.i177 = getelementptr float, ptr %invariant.gep.i173, i64 %46 + store float %45, ptr %gep.i177, align 4 + %indvars.iv.next.i178 = add nuw nsw i64 %indvars.iv.i175, 1 %exitcond.not.i179 = icmp eq i64 %indvars.iv.next.i178, %wide.trip.count.i169 - br i1 %exitcond.not.i179, label %for.cond2.for.inc7_crit_edge.us.i180, label %for.body4.us.i173, !llvm.loop !64 + br i1 %exitcond.not.i179, label %for.cond2.for.inc7_crit_edge.us.i180, label %for.body4.us.i174, !llvm.loop !64 -for.cond2.for.inc7_crit_edge.us.i180: ; preds = %for.body4.us.i173 +for.cond2.for.inc7_crit_edge.us.i180: ; preds = %for.body4.us.i174 %indvars.iv.next17.i181 = add nuw nsw i64 %indvars.iv16.i171, 1 - %exitcond20.not.i182 = icmp eq i64 %indvars.iv.next17.i181, %46 + %exitcond20.not.i182 = icmp eq i64 %indvars.iv.next17.i181, %43 br i1 %exitcond20.not.i182, label %invoke.cont79, label %for.body.us.i170, !llvm.loop !65 invoke.cont79: ; preds = %for.cond2.for.inc7_crit_edge.us.i180, %invoke.cont72 - %sext72 = shl i64 %sub.ptr.sub.i82.pre-phi324, 29 + %sext72 = shl i64 %sub.ptr.sub.i82.pre-phi326, 29 %conv82 = ashr exact i64 %sext72, 32 %nchannels83 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageSpec", ptr %2, i64 %conv, i32 15 - %51 = load i32, ptr %nchannels83, align 4 - %conv84 = sext i32 %51 to i64 - invoke void @_ZN18OpenImageIO_v2_6_08PSDInput11cmyk_to_rgbIfEEviPKT_mPS2_m(i32 noundef %40, ptr noundef nonnull %call73, i64 noundef %conv82, ptr noundef %data, i64 noundef %conv84) + %47 = load i32, ptr %nchannels83, align 4 + %conv84 = sext i32 %47 to i64 + invoke void @_ZN18OpenImageIO_v2_6_08PSDInput11cmyk_to_rgbIfEEviPKT_mPS2_m(i32 noundef %37, ptr noundef nonnull %call73, i64 noundef %conv82, ptr noundef %data, i64 noundef %conv84) to label %_ZNSt10unique_ptrIA_fSt14default_deleteIS0_EED2Ev.exit unwind label %_ZNSt10unique_ptrIA_fSt14default_deleteIS0_EED2Ev.exit186 _ZNSt10unique_ptrIA_fSt14default_deleteIS0_EED2Ev.exit: ; preds = %invoke.cont79 @@ -6004,63 +6000,62 @@ _ZNSt10unique_ptrIA_fSt14default_deleteIS0_EED2Ev.exit: ; preds = %invoke.cont79 br label %if.end172 _ZNSt10unique_ptrIA_fSt14default_deleteIS0_EED2Ev.exit186: ; preds = %invoke.cont79 - %52 = landingpad { ptr, i32 } + %48 = landingpad { ptr, i32 } cleanup call void @_ZdaPv(ptr noundef nonnull %call73) #29 br label %ehcleanup sw.bb86: ; preds = %if.then68 - %53 = icmp slt i32 %mul108, 0 - %54 = shl nsw i64 %conv109, 1 - %55 = select i1 %53, i64 -1, i64 %54 - %call92 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %55) #30 + %49 = icmp slt i32 %mul108, 0 + %50 = shl nsw i64 %conv109, 1 + %51 = select i1 %49, i64 -1, i64 %50 + %call92 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %51) #30 to label %invoke.cont91 unwind label %lpad.loopexit.split-lp invoke.cont91: ; preds = %sw.bb86 - %56 = load ptr, ptr %_M_finish.i.i, align 8 - %57 = load ptr, ptr %channel_buffers, align 8 - %tobool.not.i188 = icmp eq ptr %56, %57 - %spec.select.i189 = select i1 %tobool.not.i188, ptr null, ptr %57 - %cmp38.i196 = icmp sgt i32 %40, 0 - %or.cond.i197 = and i1 %cmp22302327, %cmp38.i196 + %52 = load ptr, ptr %_M_finish.i.i, align 8 + %53 = load ptr, ptr %channel_buffers, align 8 + %tobool.not.i188 = icmp eq ptr %52, %53 + %spec.select.i189 = select i1 %tobool.not.i188, ptr null, ptr %53 + %cmp38.i196 = icmp sgt i32 %37, 0 + %or.cond.i197 = and i1 %cmp22304329, %cmp38.i196 br i1 %or.cond.i197, label %for.body.us.preheader.i198, label %_ZN18OpenImageIO_v2_6_08PSDInput14interleave_rowItEEvPT_NS_4spanIKSt6vectorIhSaIhEELln1EEEii.exit214 for.body.us.preheader.i198: ; preds = %invoke.cont91 - %58 = and i64 %sub.ptr.div.i83.pre-phi323, 4294967295 - %wide.trip.count.i200 = zext nneg i32 %40 to i64 + %54 = and i64 %sub.ptr.div.i83.pre-phi325, 4294967295 + %wide.trip.count.i200 = zext nneg i32 %37 to i64 br label %for.body.us.i201 for.body.us.i201: ; preds = %for.cond2.for.inc7_crit_edge.us.i211, %for.body.us.preheader.i198 %indvars.iv16.i202 = phi i64 [ 0, %for.body.us.preheader.i198 ], [ %indvars.iv.next17.i212, %for.cond2.for.inc7_crit_edge.us.i211 ] %arrayidx.i.us.i203 = getelementptr inbounds %"class.std::vector.78", ptr %spec.select.i189, i64 %indvars.iv16.i202 - %59 = load ptr, ptr %arrayidx.i.us.i203, align 8 - br label %for.body4.us.i204 - -for.body4.us.i204: ; preds = %for.body4.us.i204, %for.body.us.i201 - %indvars.iv.i205 = phi i64 [ 0, %for.body.us.i201 ], [ %indvars.iv.next.i209, %for.body4.us.i204 ] - %arrayidx.us.i206 = getelementptr inbounds i16, ptr %59, i64 %indvars.iv.i205 - %60 = load i16, ptr %arrayidx.us.i206, align 2 - %61 = mul i64 %indvars.iv.i205, %sub.ptr.div.i83.pre-phi323 - %62 = add i64 %61, %indvars.iv16.i202 - %idxprom5.us.i207 = and i64 %62, 4294967295 - %arrayidx6.us.i208 = getelementptr inbounds i16, ptr %call92, i64 %idxprom5.us.i207 - store i16 %60, ptr %arrayidx6.us.i208, align 2 - %indvars.iv.next.i209 = add nuw nsw i64 %indvars.iv.i205, 1 + %55 = load ptr, ptr %arrayidx.i.us.i203, align 8 + %invariant.gep.i204 = getelementptr i16, ptr %call92, i64 %indvars.iv16.i202 + br label %for.body4.us.i205 + +for.body4.us.i205: ; preds = %for.body4.us.i205, %for.body.us.i201 + %indvars.iv.i206 = phi i64 [ 0, %for.body.us.i201 ], [ %indvars.iv.next.i209, %for.body4.us.i205 ] + %arrayidx.us.i207 = getelementptr inbounds i16, ptr %55, i64 %indvars.iv.i206 + %56 = load i16, ptr %arrayidx.us.i207, align 2 + %57 = mul nuw nsw i64 %indvars.iv.i206, %54 + %gep.i208 = getelementptr i16, ptr %invariant.gep.i204, i64 %57 + store i16 %56, ptr %gep.i208, align 2 + %indvars.iv.next.i209 = add nuw nsw i64 %indvars.iv.i206, 1 %exitcond.not.i210 = icmp eq i64 %indvars.iv.next.i209, %wide.trip.count.i200 - br i1 %exitcond.not.i210, label %for.cond2.for.inc7_crit_edge.us.i211, label %for.body4.us.i204, !llvm.loop !66 + br i1 %exitcond.not.i210, label %for.cond2.for.inc7_crit_edge.us.i211, label %for.body4.us.i205, !llvm.loop !66 -for.cond2.for.inc7_crit_edge.us.i211: ; preds = %for.body4.us.i204 +for.cond2.for.inc7_crit_edge.us.i211: ; preds = %for.body4.us.i205 %indvars.iv.next17.i212 = add nuw nsw i64 %indvars.iv16.i202, 1 - %exitcond20.not.i213 = icmp eq i64 %indvars.iv.next17.i212, %58 + %exitcond20.not.i213 = icmp eq i64 %indvars.iv.next17.i212, %54 br i1 %exitcond20.not.i213, label %_ZN18OpenImageIO_v2_6_08PSDInput14interleave_rowItEEvPT_NS_4spanIKSt6vectorIhSaIhEELln1EEEii.exit214, label %for.body.us.i201, !llvm.loop !67 _ZN18OpenImageIO_v2_6_08PSDInput14interleave_rowItEEvPT_NS_4spanIKSt6vectorIhSaIhEELln1EEEii.exit214: ; preds = %for.cond2.for.inc7_crit_edge.us.i211, %invoke.cont91 - %sext = shl i64 %sub.ptr.sub.i82.pre-phi324, 29 + %sext = shl i64 %sub.ptr.sub.i82.pre-phi326, 29 %conv101 = ashr exact i64 %sext, 32 %nchannels102 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageSpec", ptr %2, i64 %conv, i32 15 - %63 = load i32, ptr %nchannels102, align 4 - %conv103 = sext i32 %63 to i64 - invoke void @_ZN18OpenImageIO_v2_6_08PSDInput11cmyk_to_rgbItEEviPKT_mPS2_m(i32 noundef %40, ptr noundef nonnull %call92, i64 noundef %conv101, ptr noundef %data, i64 noundef %conv103) + %58 = load i32, ptr %nchannels102, align 4 + %conv103 = sext i32 %58 to i64 + invoke void @_ZN18OpenImageIO_v2_6_08PSDInput11cmyk_to_rgbItEEviPKT_mPS2_m(i32 noundef %37, ptr noundef nonnull %call92, i64 noundef %conv101, ptr noundef %data, i64 noundef %conv103) to label %_ZNSt10unique_ptrIA_tSt14default_deleteIS0_EED2Ev.exit unwind label %_ZNSt10unique_ptrIA_tSt14default_deleteIS0_EED2Ev.exit218 _ZNSt10unique_ptrIA_tSt14default_deleteIS0_EED2Ev.exit: ; preds = %_ZN18OpenImageIO_v2_6_08PSDInput14interleave_rowItEEvPT_NS_4spanIKSt6vectorIhSaIhEELln1EEEii.exit214 @@ -6068,7 +6063,7 @@ _ZNSt10unique_ptrIA_tSt14default_deleteIS0_EED2Ev.exit: ; preds = %_ZN18OpenImag br label %if.end172 _ZNSt10unique_ptrIA_tSt14default_deleteIS0_EED2Ev.exit218: ; preds = %_ZN18OpenImageIO_v2_6_08PSDInput14interleave_rowItEEvPT_NS_4spanIKSt6vectorIhSaIhEELln1EEEii.exit214 - %64 = landingpad { ptr, i32 } + %59 = landingpad { ptr, i32 } cleanup call void @_ZdaPv(ptr noundef nonnull %call92) #29 br label %ehcleanup @@ -6078,50 +6073,49 @@ sw.default105: ; preds = %if.then68 to label %invoke.cont110 unwind label %lpad.loopexit.split-lp invoke.cont110: ; preds = %sw.default105 - %65 = load ptr, ptr %_M_finish.i.i, align 8 - %66 = load ptr, ptr %channel_buffers, align 8 - %tobool.not.i220 = icmp eq ptr %65, %66 - %spec.select.i221 = select i1 %tobool.not.i220, ptr null, ptr %66 - %cmp38.i228 = icmp sgt i32 %40, 0 - %or.cond.i229 = and i1 %cmp22302327, %cmp38.i228 + %60 = load ptr, ptr %_M_finish.i.i, align 8 + %61 = load ptr, ptr %channel_buffers, align 8 + %tobool.not.i220 = icmp eq ptr %60, %61 + %spec.select.i221 = select i1 %tobool.not.i220, ptr null, ptr %61 + %cmp38.i228 = icmp sgt i32 %37, 0 + %or.cond.i229 = and i1 %cmp22304329, %cmp38.i228 br i1 %or.cond.i229, label %for.body.us.preheader.i230, label %_ZN18OpenImageIO_v2_6_08PSDInput14interleave_rowIhEEvPT_NS_4spanIKSt6vectorIhSaIhEELln1EEEii.exit246 for.body.us.preheader.i230: ; preds = %invoke.cont110 - %67 = and i64 %sub.ptr.div.i83.pre-phi323, 4294967295 - %wide.trip.count.i232 = zext nneg i32 %40 to i64 + %62 = and i64 %sub.ptr.div.i83.pre-phi325, 4294967295 + %wide.trip.count.i232 = zext nneg i32 %37 to i64 br label %for.body.us.i233 for.body.us.i233: ; preds = %for.cond2.for.inc7_crit_edge.us.i243, %for.body.us.preheader.i230 %indvars.iv16.i234 = phi i64 [ 0, %for.body.us.preheader.i230 ], [ %indvars.iv.next17.i244, %for.cond2.for.inc7_crit_edge.us.i243 ] %arrayidx.i.us.i235 = getelementptr inbounds %"class.std::vector.78", ptr %spec.select.i221, i64 %indvars.iv16.i234 - %68 = load ptr, ptr %arrayidx.i.us.i235, align 8 - br label %for.body4.us.i236 - -for.body4.us.i236: ; preds = %for.body4.us.i236, %for.body.us.i233 - %indvars.iv.i237 = phi i64 [ 0, %for.body.us.i233 ], [ %indvars.iv.next.i241, %for.body4.us.i236 ] - %arrayidx.us.i238 = getelementptr inbounds i8, ptr %68, i64 %indvars.iv.i237 - %69 = load i8, ptr %arrayidx.us.i238, align 1 - %70 = mul i64 %indvars.iv.i237, %sub.ptr.div.i83.pre-phi323 - %71 = add i64 %70, %indvars.iv16.i234 - %idxprom5.us.i239 = and i64 %71, 4294967295 - %arrayidx6.us.i240 = getelementptr inbounds i8, ptr %call111, i64 %idxprom5.us.i239 - store i8 %69, ptr %arrayidx6.us.i240, align 1 - %indvars.iv.next.i241 = add nuw nsw i64 %indvars.iv.i237, 1 + %63 = load ptr, ptr %arrayidx.i.us.i235, align 8 + %invariant.gep.i236 = getelementptr i8, ptr %call111, i64 %indvars.iv16.i234 + br label %for.body4.us.i237 + +for.body4.us.i237: ; preds = %for.body4.us.i237, %for.body.us.i233 + %indvars.iv.i238 = phi i64 [ 0, %for.body.us.i233 ], [ %indvars.iv.next.i241, %for.body4.us.i237 ] + %arrayidx.us.i239 = getelementptr inbounds i8, ptr %63, i64 %indvars.iv.i238 + %64 = load i8, ptr %arrayidx.us.i239, align 1 + %65 = mul nuw nsw i64 %indvars.iv.i238, %62 + %gep.i240 = getelementptr i8, ptr %invariant.gep.i236, i64 %65 + store i8 %64, ptr %gep.i240, align 1 + %indvars.iv.next.i241 = add nuw nsw i64 %indvars.iv.i238, 1 %exitcond.not.i242 = icmp eq i64 %indvars.iv.next.i241, %wide.trip.count.i232 - br i1 %exitcond.not.i242, label %for.cond2.for.inc7_crit_edge.us.i243, label %for.body4.us.i236, !llvm.loop !68 + br i1 %exitcond.not.i242, label %for.cond2.for.inc7_crit_edge.us.i243, label %for.body4.us.i237, !llvm.loop !68 -for.cond2.for.inc7_crit_edge.us.i243: ; preds = %for.body4.us.i236 +for.cond2.for.inc7_crit_edge.us.i243: ; preds = %for.body4.us.i237 %indvars.iv.next17.i244 = add nuw nsw i64 %indvars.iv16.i234, 1 - %exitcond20.not.i245 = icmp eq i64 %indvars.iv.next17.i244, %67 + %exitcond20.not.i245 = icmp eq i64 %indvars.iv.next17.i244, %62 br i1 %exitcond20.not.i245, label %_ZN18OpenImageIO_v2_6_08PSDInput14interleave_rowIhEEvPT_NS_4spanIKSt6vectorIhSaIhEELln1EEEii.exit246, label %for.body.us.i233, !llvm.loop !69 _ZN18OpenImageIO_v2_6_08PSDInput14interleave_rowIhEEvPT_NS_4spanIKSt6vectorIhSaIhEELln1EEEii.exit246: ; preds = %for.cond2.for.inc7_crit_edge.us.i243, %invoke.cont110 - %sext73 = shl i64 %sub.ptr.sub.i82.pre-phi324, 29 + %sext73 = shl i64 %sub.ptr.sub.i82.pre-phi326, 29 %conv120 = ashr exact i64 %sext73, 32 %nchannels121 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageSpec", ptr %2, i64 %conv, i32 15 - %72 = load i32, ptr %nchannels121, align 4 - %conv122 = sext i32 %72 to i64 - invoke void @_ZN18OpenImageIO_v2_6_08PSDInput11cmyk_to_rgbIhEEviPKT_mPS2_m(i32 noundef %40, ptr noundef nonnull %call111, i64 noundef %conv120, ptr noundef %data, i64 noundef %conv122) + %66 = load i32, ptr %nchannels121, align 4 + %conv122 = sext i32 %66 to i64 + invoke void @_ZN18OpenImageIO_v2_6_08PSDInput11cmyk_to_rgbIhEEviPKT_mPS2_m(i32 noundef %37, ptr noundef nonnull %call111, i64 noundef %conv120, ptr noundef %data, i64 noundef %conv122) to label %_ZNSt10unique_ptrIA_hSt14default_deleteIS0_EED2Ev.exit unwind label %_ZNSt10unique_ptrIA_hSt14default_deleteIS0_EED2Ev.exit250 _ZNSt10unique_ptrIA_hSt14default_deleteIS0_EED2Ev.exit: ; preds = %_ZN18OpenImageIO_v2_6_08PSDInput14interleave_rowIhEEvPT_NS_4spanIKSt6vectorIhSaIhEELln1EEEii.exit246 @@ -6129,138 +6123,138 @@ _ZNSt10unique_ptrIA_hSt14default_deleteIS0_EED2Ev.exit: ; preds = %_ZN18OpenImag br label %if.end172 _ZNSt10unique_ptrIA_hSt14default_deleteIS0_EED2Ev.exit250: ; preds = %_ZN18OpenImageIO_v2_6_08PSDInput14interleave_rowIhEEvPT_NS_4spanIKSt6vectorIhSaIhEELln1EEEii.exit246 - %73 = landingpad { ptr, i32 } + %67 = landingpad { ptr, i32 } cleanup call void @_ZdaPv(ptr noundef nonnull %call111) #29 br label %ehcleanup if.then130: ; preds = %lor.lhs.false36 %width132 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageSpec", ptr %2, i64 %conv, i32 3 - %74 = load i32, ptr %width132, align 4 + %68 = load i32, ptr %width132, align 4 %nchannels133 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageSpec", ptr %2, i64 %conv, i32 15 - %75 = load i32, ptr %nchannels133, align 4 - %mul134 = mul nsw i32 %75, %74 + %69 = load i32, ptr %nchannels133, align 4 + %mul134 = mul nsw i32 %69, %68 %conv135 = sext i32 %mul134 to i64 - %76 = load ptr, ptr %channel_buffers, align 8 - %_M_finish.i.i252 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %76, i64 0, i32 1 - %77 = load ptr, ptr %_M_finish.i.i252, align 8 - %78 = load ptr, ptr %76, align 8 - %tobool.not.i253 = icmp eq ptr %77, %78 - %spec.select.i254 = select i1 %tobool.not.i253, ptr null, ptr %78 - %sub.ptr.lhs.cast.i4.i256 = ptrtoint ptr %77 to i64 - %sub.ptr.rhs.cast.i5.i257 = ptrtoint ptr %78 to i64 + %70 = load ptr, ptr %channel_buffers, align 8 + %_M_finish.i.i252 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %70, i64 0, i32 1 + %71 = load ptr, ptr %_M_finish.i.i252, align 8 + %72 = load ptr, ptr %70, align 8 + %tobool.not.i253 = icmp eq ptr %71, %72 + %spec.select.i254 = select i1 %tobool.not.i253, ptr null, ptr %72 + %sub.ptr.lhs.cast.i4.i256 = ptrtoint ptr %71 to i64 + %sub.ptr.rhs.cast.i5.i257 = ptrtoint ptr %72 to i64 %sub.ptr.sub.i6.i258 = sub i64 %sub.ptr.lhs.cast.i4.i256, %sub.ptr.rhs.cast.i5.i257 - %call141 = call noundef zeroext i1 @_ZNK18OpenImageIO_v2_6_08PSDInput14indexed_to_rgbENS_4spanIhLln1EEENS1_IKhLln1EEEi(ptr noundef nonnull align 8 dereferenceable(840) %this, ptr %data, i64 %conv135, ptr %spec.select.i254, i64 %sub.ptr.sub.i6.i258, i32 noundef %74) + %call141 = call noundef zeroext i1 @_ZNK18OpenImageIO_v2_6_08PSDInput14indexed_to_rgbENS_4spanIhLln1EEENS1_IKhLln1EEEi(ptr noundef nonnull align 8 dereferenceable(840) %this, ptr %data, i64 %conv135, ptr %spec.select.i254, i64 %sub.ptr.sub.i6.i258, i32 noundef %68) br label %if.end172 if.then149: ; preds = %lor.lhs.false36 %width151 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageSpec", ptr %2, i64 %conv, i32 3 - %79 = load i32, ptr %width151, align 4 - %80 = load ptr, ptr %channel_buffers, align 8 - %_M_finish.i.i260 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %80, i64 0, i32 1 - %81 = load ptr, ptr %_M_finish.i.i260, align 8 - %82 = load ptr, ptr %80, align 8 - %tobool.not.i261 = icmp eq ptr %81, %82 - %spec.select.i262 = select i1 %tobool.not.i261, ptr null, ptr %82 - %invariant.gep.i = getelementptr i8, ptr %data, i64 1 + %73 = load i32, ptr %width151, align 4 + %74 = load ptr, ptr %channel_buffers, align 8 + %_M_finish.i.i260 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %74, i64 0, i32 1 + %75 = load ptr, ptr %_M_finish.i.i260, align 8 + %76 = load ptr, ptr %74, align 8 + %tobool.not.i261 = icmp eq ptr %75, %76 + %spec.select.i262 = select i1 %tobool.not.i261, ptr null, ptr %76 + %invariant.gep.i267 = getelementptr i8, ptr %data, i64 1 %invariant.gep15.i = getelementptr i8, ptr %data, i64 2 - %cmp17.i = icmp sgt i32 %79, 0 + %cmp17.i = icmp sgt i32 %73, 0 br i1 %cmp17.i, label %for.body.preheader.i, label %if.end172 for.body.preheader.i: ; preds = %if.then149 - %wide.trip.count.i267 = zext nneg i32 %79 to i64 + %wide.trip.count.i268 = zext nneg i32 %73 to i64 br label %for.body.i for.body.i: ; preds = %for.body.i, %for.body.preheader.i - %indvars.iv.i268 = phi i64 [ 0, %for.body.preheader.i ], [ %indvars.iv.next.i271, %for.body.i ] - %83 = trunc i64 %indvars.iv.i268 to i32 - %div9.i = lshr i64 %indvars.iv.i268, 3 - %rem.i = and i32 %83, 7 - %sub.i269 = xor i32 %rem.i, 7 + %indvars.iv.i269 = phi i64 [ 0, %for.body.preheader.i ], [ %indvars.iv.next.i273, %for.body.i ] + %77 = trunc i64 %indvars.iv.i269 to i32 + %div9.i = lshr i64 %indvars.iv.i269, 3 + %rem.i = and i32 %77, 7 + %sub.i270 = xor i32 %rem.i, 7 %conv.i = and i64 %div9.i, 536870911 %arrayidx.i.i = getelementptr inbounds i8, ptr %spec.select.i262, i64 %conv.i - %84 = load i8, ptr %arrayidx.i.i, align 1 - %conv2.i = zext i8 %84 to i32 - %shl.i = shl nuw nsw i32 1, %sub.i269 + %78 = load i8, ptr %arrayidx.i.i, align 1 + %conv2.i = zext i8 %78 to i32 + %shl.i = shl nuw nsw i32 1, %sub.i270 %and.i = and i32 %shl.i, %conv2.i - %tobool.not.i270 = icmp eq i32 %and.i, 0 - %conv3.i = sext i1 %tobool.not.i270 to i8 - %85 = mul nuw nsw i64 %indvars.iv.i268, 3 - %arrayidx.i10.i = getelementptr inbounds i8, ptr %data, i64 %85 + %tobool.not.i271 = icmp eq i32 %and.i, 0 + %conv3.i = sext i1 %tobool.not.i271 to i8 + %79 = mul nuw nsw i64 %indvars.iv.i269, 3 + %arrayidx.i10.i = getelementptr inbounds i8, ptr %data, i64 %79 store i8 %conv3.i, ptr %arrayidx.i10.i, align 1 - %gep.i = getelementptr i8, ptr %invariant.gep.i, i64 %85 - store i8 %conv3.i, ptr %gep.i, align 1 - %gep16.i = getelementptr i8, ptr %invariant.gep15.i, i64 %85 + %gep.i272 = getelementptr i8, ptr %invariant.gep.i267, i64 %79 + store i8 %conv3.i, ptr %gep.i272, align 1 + %gep16.i = getelementptr i8, ptr %invariant.gep15.i, i64 %79 store i8 %conv3.i, ptr %gep16.i, align 1 - %indvars.iv.next.i271 = add nuw nsw i64 %indvars.iv.i268, 1 - %exitcond.not.i272 = icmp eq i64 %indvars.iv.next.i271, %wide.trip.count.i267 - br i1 %exitcond.not.i272, label %if.end172, label %for.body.i, !llvm.loop !70 + %indvars.iv.next.i273 = add nuw nsw i64 %indvars.iv.i269, 1 + %exitcond.not.i274 = icmp eq i64 %indvars.iv.next.i273, %wide.trip.count.i268 + br i1 %exitcond.not.i274, label %if.end172, label %for.body.i, !llvm.loop !70 if.else163: ; preds = %lor.lhs.false36 invoke void @_ZNK18OpenImageIO_v2_6_010ImageInput8errorfmtIJtEEEvPKcDpRKT_(ptr noundef nonnull align 8 dereferenceable(184) %this, ptr noundef nonnull @.str.41, ptr noundef nonnull align 2 dereferenceable(2) %color_mode) to label %invoke.cont166 unwind label %lpad.loopexit.split-lp invoke.cont166: ; preds = %if.else163 - %86 = load ptr, ptr @stderr, align 8 - %call168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %86, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.43, i32 noundef 825, ptr noundef nonnull @__FUNCTION__._ZN18OpenImageIO_v2_6_08PSDInput20read_native_scanlineEiiiiPv, ptr noundef nonnull @.str.44) #33 + %80 = load ptr, ptr @stderr, align 8 + %call168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %80, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.43, i32 noundef 825, ptr noundef nonnull @__FUNCTION__._ZN18OpenImageIO_v2_6_08PSDInput20read_native_scanlineEiiiiPv, ptr noundef nonnull @.str.44) #33 br label %cleanup if.end172: ; preds = %for.body.i, %for.cond2.for.inc7_crit_edge.us.i126, %for.cond2.for.inc7_crit_edge.us.i, %for.cond2.for.inc7_crit_edge.us.i153, %if.then130, %if.then149, %sw.default, %sw.bb53, %sw.bb, %_ZNSt10unique_ptrIA_hSt14default_deleteIS0_EED2Ev.exit, %_ZNSt10unique_ptrIA_tSt14default_deleteIS0_EED2Ev.exit, %_ZNSt10unique_ptrIA_fSt14default_deleteIS0_EED2Ev.exit %alpha_channel = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageSpec", ptr %2, i64 %conv, i32 19 - %87 = load i32, ptr %alpha_channel, align 8 - %cmp173.not = icmp eq i32 %87, -1 + %81 = load i32, ptr %alpha_channel, align 8 + %cmp173.not = icmp eq i32 %81, -1 br i1 %cmp173.not, label %cleanup, label %if.then174 if.then174: ; preds = %if.end172 %cmp175 = icmp eq i32 %subimage, 0 %m_keep_unassociated_alpha = getelementptr inbounds %"class.OpenImageIO_v2_6_0::PSDInput", ptr %this, i64 0, i32 13 - %88 = load i8, ptr %m_keep_unassociated_alpha, align 4 - %89 = and i8 %88, 1 - %tobool177.not = icmp eq i8 %89, 0 + %82 = load i8, ptr %m_keep_unassociated_alpha, align 4 + %83 = and i8 %82, 1 + %tobool177.not = icmp eq i8 %83, 0 br i1 %cmp175, label %if.then176, label %if.else192 if.then176: ; preds = %if.then174 %width185 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageSpec", ptr %2, i64 %conv, i32 3 - %90 = load i32, ptr %width185, align 4 + %84 = load i32, ptr %width185, align 4 %nchannels186 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageSpec", ptr %2, i64 %conv, i32 15 - %91 = load i32, ptr %nchannels186, align 4 + %85 = load i32, ptr %nchannels186, align 4 %format189 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageSpec", ptr %2, i64 %conv, i32 16 - %92 = load i8, ptr %format189, align 4 - %aggregate3.i274 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageSpec", ptr %2, i64 %conv, i32 16, i32 1 - %vecsemantics4.i276 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageSpec", ptr %2, i64 %conv, i32 16, i32 2 - %arraylen5.i279 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageSpec", ptr %2, i64 %conv, i32 16, i32 4 + %86 = load i8, ptr %format189, align 4 + %aggregate3.i276 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageSpec", ptr %2, i64 %conv, i32 16, i32 1 + %vecsemantics4.i278 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageSpec", ptr %2, i64 %conv, i32 16, i32 2 + %arraylen5.i281 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageSpec", ptr %2, i64 %conv, i32 16, i32 4 br i1 %tobool177.not, label %if.else184, label %if.then178 if.then178: ; preds = %if.then176 - store i8 %92, ptr %agg.tmp182, align 4 + store i8 %86, ptr %agg.tmp182, align 4 %aggregate.i = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %agg.tmp182, i64 0, i32 1 - %93 = load i8, ptr %aggregate3.i274, align 1 - store i8 %93, ptr %aggregate.i, align 1 + %87 = load i8, ptr %aggregate3.i276, align 1 + store i8 %87, ptr %aggregate.i, align 1 %vecsemantics.i = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %agg.tmp182, i64 0, i32 2 - %94 = load i8, ptr %vecsemantics4.i276, align 2 - store i8 %94, ptr %vecsemantics.i, align 2 + %88 = load i8, ptr %vecsemantics4.i278, align 2 + store i8 %88, ptr %vecsemantics.i, align 2 %reserved.i = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %agg.tmp182, i64 0, i32 3 store i8 0, ptr %reserved.i, align 1 %arraylen.i = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %agg.tmp182, i64 0, i32 4 - %95 = load i32, ptr %arraylen5.i279, align 4 - store i32 %95, ptr %arraylen.i, align 4 - call void @_ZNK18OpenImageIO_v2_6_08PSDInput24background_to_unassalphaEiPviiNS_8TypeDescE(ptr noundef nonnull align 8 dereferenceable(840) %this, i32 noundef %90, ptr noundef %data, i32 noundef %91, i32 noundef %87, ptr noundef nonnull %agg.tmp182) + %89 = load i32, ptr %arraylen5.i281, align 4 + store i32 %89, ptr %arraylen.i, align 4 + call void @_ZNK18OpenImageIO_v2_6_08PSDInput24background_to_unassalphaEiPviiNS_8TypeDescE(ptr noundef nonnull align 8 dereferenceable(840) %this, i32 noundef %84, ptr noundef %data, i32 noundef %85, i32 noundef %81, ptr noundef nonnull %agg.tmp182) br label %cleanup if.else184: ; preds = %if.then176 - store i8 %92, ptr %agg.tmp188, align 4 - %aggregate.i273 = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %agg.tmp188, i64 0, i32 1 - %96 = load i8, ptr %aggregate3.i274, align 1 - store i8 %96, ptr %aggregate.i273, align 1 - %vecsemantics.i275 = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %agg.tmp188, i64 0, i32 2 - %97 = load i8, ptr %vecsemantics4.i276, align 2 - store i8 %97, ptr %vecsemantics.i275, align 2 - %reserved.i277 = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %agg.tmp188, i64 0, i32 3 - store i8 0, ptr %reserved.i277, align 1 - %arraylen.i278 = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %agg.tmp188, i64 0, i32 4 - %98 = load i32, ptr %arraylen5.i279, align 4 - store i32 %98, ptr %arraylen.i278, align 4 - call void @_ZNK18OpenImageIO_v2_6_08PSDInput24background_to_assocalphaEiPviiNS_8TypeDescE(ptr noundef nonnull align 8 dereferenceable(840) %this, i32 noundef %90, ptr noundef %data, i32 noundef %91, i32 noundef %87, ptr noundef nonnull %agg.tmp188) + store i8 %86, ptr %agg.tmp188, align 4 + %aggregate.i275 = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %agg.tmp188, i64 0, i32 1 + %90 = load i8, ptr %aggregate3.i276, align 1 + store i8 %90, ptr %aggregate.i275, align 1 + %vecsemantics.i277 = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %agg.tmp188, i64 0, i32 2 + %91 = load i8, ptr %vecsemantics4.i278, align 2 + store i8 %91, ptr %vecsemantics.i277, align 2 + %reserved.i279 = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %agg.tmp188, i64 0, i32 3 + store i8 0, ptr %reserved.i279, align 1 + %arraylen.i280 = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %agg.tmp188, i64 0, i32 4 + %92 = load i32, ptr %arraylen5.i281, align 4 + store i32 %92, ptr %arraylen.i280, align 4 + call void @_ZNK18OpenImageIO_v2_6_08PSDInput24background_to_assocalphaEiPviiNS_8TypeDescE(ptr noundef nonnull align 8 dereferenceable(840) %this, i32 noundef %84, ptr noundef %data, i32 noundef %85, i32 noundef %81, ptr noundef nonnull %agg.tmp188) br label %cleanup if.else192: ; preds = %if.then174 @@ -6268,49 +6262,49 @@ if.else192: ; preds = %if.then174 if.else196: ; preds = %if.else192 %width197 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageSpec", ptr %2, i64 %conv, i32 3 - %99 = load i32, ptr %width197, align 4 + %93 = load i32, ptr %width197, align 4 %nchannels198 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageSpec", ptr %2, i64 %conv, i32 15 - %100 = load i32, ptr %nchannels198, align 4 + %94 = load i32, ptr %nchannels198, align 4 %format201 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageSpec", ptr %2, i64 %conv, i32 16 - %101 = load i8, ptr %format201, align 4 - store i8 %101, ptr %agg.tmp200, align 4 - %aggregate.i280 = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %agg.tmp200, i64 0, i32 1 - %aggregate3.i281 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageSpec", ptr %2, i64 %conv, i32 16, i32 1 - %102 = load i8, ptr %aggregate3.i281, align 1 - store i8 %102, ptr %aggregate.i280, align 1 - %vecsemantics.i282 = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %agg.tmp200, i64 0, i32 2 - %vecsemantics4.i283 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageSpec", ptr %2, i64 %conv, i32 16, i32 2 - %103 = load i8, ptr %vecsemantics4.i283, align 2 - store i8 %103, ptr %vecsemantics.i282, align 2 - %reserved.i284 = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %agg.tmp200, i64 0, i32 3 - store i8 0, ptr %reserved.i284, align 1 - %arraylen.i285 = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %agg.tmp200, i64 0, i32 4 - %arraylen5.i286 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageSpec", ptr %2, i64 %conv, i32 16, i32 4 - %104 = load i32, ptr %arraylen5.i286, align 4 - store i32 %104, ptr %arraylen.i285, align 4 - call void @_ZNK18OpenImageIO_v2_6_08PSDInput24unassalpha_to_assocalphaEiPviiNS_8TypeDescE(ptr nonnull align 8 poison, i32 noundef %99, ptr noundef %data, i32 noundef %100, i32 noundef %87, ptr noundef nonnull %agg.tmp200) + %95 = load i8, ptr %format201, align 4 + store i8 %95, ptr %agg.tmp200, align 4 + %aggregate.i282 = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %agg.tmp200, i64 0, i32 1 + %aggregate3.i283 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageSpec", ptr %2, i64 %conv, i32 16, i32 1 + %96 = load i8, ptr %aggregate3.i283, align 1 + store i8 %96, ptr %aggregate.i282, align 1 + %vecsemantics.i284 = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %agg.tmp200, i64 0, i32 2 + %vecsemantics4.i285 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageSpec", ptr %2, i64 %conv, i32 16, i32 2 + %97 = load i8, ptr %vecsemantics4.i285, align 2 + store i8 %97, ptr %vecsemantics.i284, align 2 + %reserved.i286 = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %agg.tmp200, i64 0, i32 3 + store i8 0, ptr %reserved.i286, align 1 + %arraylen.i287 = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::TypeDesc", ptr %agg.tmp200, i64 0, i32 4 + %arraylen5.i288 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageSpec", ptr %2, i64 %conv, i32 16, i32 4 + %98 = load i32, ptr %arraylen5.i288, align 4 + store i32 %98, ptr %arraylen.i287, align 4 + call void @_ZNK18OpenImageIO_v2_6_08PSDInput24unassalpha_to_assocalphaEiPviiNS_8TypeDescE(ptr nonnull align 8 poison, i32 noundef %93, ptr noundef %data, i32 noundef %94, i32 noundef %81, ptr noundef nonnull %agg.tmp200) br label %cleanup cleanup: ; preds = %invoke.cont32, %if.else184, %if.then178, %if.else196, %if.end172, %if.else192, %invoke.cont166 %retval.0 = phi i1 [ false, %invoke.cont166 ], [ true, %if.else184 ], [ true, %if.then178 ], [ true, %if.else196 ], [ true, %if.else192 ], [ true, %if.end172 ], [ false, %invoke.cont32 ] - %105 = load ptr, ptr %channel_buffers, align 8 - %106 = load ptr, ptr %_M_finish.i.i, align 8 - %cmp.not3.i.i.i.i = icmp eq ptr %105, %106 + %99 = load ptr, ptr %channel_buffers, align 8 + %100 = load ptr, ptr %_M_finish.i.i, align 8 + %cmp.not3.i.i.i.i = icmp eq ptr %99, %100 br i1 %cmp.not3.i.i.i.i, label %invoke.cont.i, label %for.body.i.i.i.i for.body.i.i.i.i: ; preds = %cleanup, %_ZSt8_DestroyISt6vectorIhSaIhEEEvPT_.exit.i.i.i.i - %__first.addr.04.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i, %_ZSt8_DestroyISt6vectorIhSaIhEEEvPT_.exit.i.i.i.i ], [ %105, %cleanup ] - %107 = load ptr, ptr %__first.addr.04.i.i.i.i, align 8 - %tobool.not.i.i.i.i.i.i.i.i = icmp eq ptr %107, null + %__first.addr.04.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i, %_ZSt8_DestroyISt6vectorIhSaIhEEEvPT_.exit.i.i.i.i ], [ %99, %cleanup ] + %101 = load ptr, ptr %__first.addr.04.i.i.i.i, align 8 + %tobool.not.i.i.i.i.i.i.i.i = icmp eq ptr %101, null br i1 %tobool.not.i.i.i.i.i.i.i.i, label %_ZSt8_DestroyISt6vectorIhSaIhEEEvPT_.exit.i.i.i.i, label %if.then.i.i.i.i.i.i.i.i if.then.i.i.i.i.i.i.i.i: ; preds = %for.body.i.i.i.i - call void @_ZdlPv(ptr noundef nonnull %107) #29 + call void @_ZdlPv(ptr noundef nonnull %101) #29 br label %_ZSt8_DestroyISt6vectorIhSaIhEEEvPT_.exit.i.i.i.i _ZSt8_DestroyISt6vectorIhSaIhEEEvPT_.exit.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i.i, %for.body.i.i.i.i %incdec.ptr.i.i.i.i = getelementptr inbounds %"class.std::vector.78", ptr %__first.addr.04.i.i.i.i, i64 1 - %cmp.not.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i, %106 + %cmp.not.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i, %100 br i1 %cmp.not.i.i.i.i, label %invoke.contthread-pre-split.i, label %for.body.i.i.i.i, !llvm.loop !71 invoke.contthread-pre-split.i: ; preds = %_ZSt8_DestroyISt6vectorIhSaIhEEEvPT_.exit.i.i.i.i @@ -6318,16 +6312,16 @@ invoke.contthread-pre-split.i: ; preds = %_ZSt8_DestroyISt6ve br label %invoke.cont.i invoke.cont.i: ; preds = %invoke.contthread-pre-split.i, %cleanup - %108 = phi ptr [ %.pr.i, %invoke.contthread-pre-split.i ], [ %105, %cleanup ] - %tobool.not.i.i.i = icmp eq ptr %108, null + %102 = phi ptr [ %.pr.i, %invoke.contthread-pre-split.i ], [ %99, %cleanup ] + %tobool.not.i.i.i = icmp eq ptr %102, null br i1 %tobool.not.i.i.i, label %return, label %if.then.i.i.i if.then.i.i.i: ; preds = %invoke.cont.i - call void @_ZdlPv(ptr noundef nonnull %108) #29 + call void @_ZdlPv(ptr noundef nonnull %102) #29 br label %return ehcleanup: ; preds = %lpad.loopexit, %lpad.loopexit.split-lp, %_ZNSt10unique_ptrIA_hSt14default_deleteIS0_EED2Ev.exit250, %_ZNSt10unique_ptrIA_tSt14default_deleteIS0_EED2Ev.exit218, %_ZNSt10unique_ptrIA_fSt14default_deleteIS0_EED2Ev.exit186 - %.pn = phi { ptr, i32 } [ %73, %_ZNSt10unique_ptrIA_hSt14default_deleteIS0_EED2Ev.exit250 ], [ %64, %_ZNSt10unique_ptrIA_tSt14default_deleteIS0_EED2Ev.exit218 ], [ %52, %_ZNSt10unique_ptrIA_fSt14default_deleteIS0_EED2Ev.exit186 ], [ %lpad.loopexit300, %lpad.loopexit ], [ %lpad.loopexit.split-lp301, %lpad.loopexit.split-lp ] + %.pn = phi { ptr, i32 } [ %67, %_ZNSt10unique_ptrIA_hSt14default_deleteIS0_EED2Ev.exit250 ], [ %59, %_ZNSt10unique_ptrIA_tSt14default_deleteIS0_EED2Ev.exit218 ], [ %48, %_ZNSt10unique_ptrIA_fSt14default_deleteIS0_EED2Ev.exit186 ], [ %lpad.loopexit302, %lpad.loopexit ], [ %lpad.loopexit.split-lp303, %lpad.loopexit.split-lp ] call void @_ZNSt6vectorIS_IhSaIhEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %channel_buffers) #28 resume { ptr, i32 } %.pn diff --git a/bench/oiio/optimized/targaoutput.cpp.ll b/bench/oiio/optimized/targaoutput.cpp.ll index d3aa33c07b2..9e71c219f06 100644 --- a/bench/oiio/optimized/targaoutput.cpp.ll +++ b/bench/oiio/optimized/targaoutput.cpp.ll @@ -2378,48 +2378,47 @@ for.body: ; preds = %for.body.lr.ph, %fo sw.bb: ; preds = %for.body %30 = load ptr, ptr %bdata, align 8 - %31 = mul i64 %indvars.iv, 3 - %32 = and i64 %31, 4294967295 - %33 = getelementptr i8, ptr %30, i64 %32 - %arrayidx = getelementptr i8, ptr %33, i64 2 - %34 = load i8, ptr %arrayidx, align 1 - %arrayidx33 = getelementptr i8, ptr %33, i64 1 - %35 = load i8, ptr %arrayidx33, align 1 - %36 = load i8, ptr %33, align 1 + %31 = mul nuw nsw i64 %indvars.iv, 3 + %32 = getelementptr i8, ptr %30, i64 %31 + %arrayidx = getelementptr i8, ptr %32, i64 2 + %33 = load i8, ptr %arrayidx, align 1 + %arrayidx33 = getelementptr i8, ptr %32, i64 1 + %34 = load i8, ptr %arrayidx33, align 1 + %35 = load i8, ptr %32, align 1 br label %sw.epilog sw.bb40: ; preds = %for.body - %37 = load ptr, ptr %bdata, align 8 - %38 = trunc i64 %indvars.iv to i32 - %mul41 = shl nsw i32 %38, 2 + %36 = load ptr, ptr %bdata, align 8 + %37 = trunc i64 %indvars.iv to i32 + %mul41 = shl nsw i32 %37, 2 %add42 = or disjoint i32 %mul41, 2 %idxprom43 = zext nneg i32 %add42 to i64 - %arrayidx44 = getelementptr inbounds i8, ptr %37, i64 %idxprom43 - %39 = load i8, ptr %arrayidx44, align 1 + %arrayidx44 = getelementptr inbounds i8, ptr %36, i64 %idxprom43 + %38 = load i8, ptr %arrayidx44, align 1 %add47 = or disjoint i32 %mul41, 1 %idxprom48 = zext nneg i32 %add47 to i64 - %arrayidx49 = getelementptr inbounds i8, ptr %37, i64 %idxprom48 - %40 = load i8, ptr %arrayidx49, align 1 + %arrayidx49 = getelementptr inbounds i8, ptr %36, i64 %idxprom48 + %39 = load i8, ptr %arrayidx49, align 1 %idxprom53 = zext nneg i32 %mul41 to i64 - %arrayidx54 = getelementptr inbounds i8, ptr %37, i64 %idxprom53 - %41 = load i8, ptr %arrayidx54, align 1 + %arrayidx54 = getelementptr inbounds i8, ptr %36, i64 %idxprom53 + %40 = load i8, ptr %arrayidx54, align 1 %add57 = or disjoint i32 %mul41, 3 %idxprom58 = zext nneg i32 %add57 to i64 - %arrayidx59 = getelementptr inbounds i8, ptr %37, i64 %idxprom58 - %42 = load i8, ptr %arrayidx59, align 1 + %arrayidx59 = getelementptr inbounds i8, ptr %36, i64 %idxprom58 + %41 = load i8, ptr %arrayidx59, align 1 br label %sw.epilog sw.epilog: ; preds = %sw.bb40, %sw.bb, %for.body - %buf.sroa.6.1 = phi i8 [ %buf.sroa.6.0171, %for.body ], [ %40, %sw.bb40 ], [ %35, %sw.bb ] - %buf.sroa.10.1 = phi i8 [ %buf.sroa.10.0172, %for.body ], [ %41, %sw.bb40 ], [ %36, %sw.bb ] - %buf.sroa.14.1 = phi i8 [ %buf.sroa.14.0173, %for.body ], [ %42, %sw.bb40 ], [ %buf.sroa.14.0173, %sw.bb ] - %buf.sroa.0.1 = phi i8 [ %buf.sroa.0.0178, %for.body ], [ %39, %sw.bb40 ], [ %34, %sw.bb ] + %buf.sroa.6.1 = phi i8 [ %buf.sroa.6.0171, %for.body ], [ %39, %sw.bb40 ], [ %34, %sw.bb ] + %buf.sroa.10.1 = phi i8 [ %buf.sroa.10.0172, %for.body ], [ %40, %sw.bb40 ], [ %35, %sw.bb ] + %buf.sroa.14.1 = phi i8 [ %buf.sroa.14.0173, %for.body ], [ %41, %sw.bb40 ], [ %buf.sroa.14.0173, %sw.bb ] + %buf.sroa.0.1 = phi i8 [ %buf.sroa.0.0178, %for.body ], [ %38, %sw.bb40 ], [ %33, %sw.bb ] %cmp61 = icmp eq i64 %indvars.iv, 0 br i1 %cmp61, label %for.inc, label %if.end63 if.end63: ; preds = %sw.epilog - %43 = and i8 %rlp.0174, 1 - %tobool64.not = icmp eq i8 %43, 0 + %42 = and i8 %rlp.0174, 1 + %tobool64.not = icmp eq i8 %42, 0 %cmp104 = icmp eq i8 %buf.sroa.0.1, %buf.sroa.0.0178 %cmp110 = icmp eq i8 %buf.sroa.6.1, %buf.sroa.6.0171 %cmp116 = icmp eq i8 %buf.sroa.10.1, %buf.sroa.10.0172 @@ -2443,9 +2442,9 @@ if.else: ; preds = %if.then65 br i1 %cmp.i80, label %_ZN18OpenImageIO_v2_6_09TGAOutput9flush_rlpEPhi.exit, label %if.end.i if.end.i: ; preds = %if.else - %44 = trunc i32 %rlcount.0175 to i8 - %45 = add i8 %44, 127 - %conv.i81 = or i8 %45, -128 + %43 = trunc i32 %rlcount.0175 to i8 + %44 = add i8 %43, 127 + %conv.i81 = or i8 %44, -128 call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %i.addr.i.i) store i8 %conv.i81, ptr %i.addr.i.i, align 1 %call.i.i = call noundef zeroext i1 @_ZN18OpenImageIO_v2_6_011ImageOutput7iowriteEPKvmm(ptr noundef nonnull align 8 dereferenceable(184) %this, ptr noundef nonnull %i.addr.i.i, i64 noundef 1, i64 noundef 1) @@ -2453,15 +2452,15 @@ if.end.i: ; preds = %if.else br i1 %call.i.i, label %lor.lhs.false.i, label %_ZN18OpenImageIO_v2_6_09TGAOutput9flush_rlpEPhi.exit lor.lhs.false.i: ; preds = %if.end.i - %46 = load i32, ptr %nchannels28, align 4 - %conv2.i = sext i32 %46 to i64 + %45 = load i32, ptr %nchannels28, align 4 + %conv2.i = sext i32 %45 to i64 %call.i2.i = call noundef zeroext i1 @_ZN18OpenImageIO_v2_6_011ImageOutput7iowriteEPKvmm(ptr noundef nonnull align 8 dereferenceable(184) %this, ptr noundef nonnull %buf2, i64 noundef %conv2.i, i64 noundef 1) br label %_ZN18OpenImageIO_v2_6_09TGAOutput9flush_rlpEPhi.exit _ZN18OpenImageIO_v2_6_09TGAOutput9flush_rlpEPhi.exit: ; preds = %if.else, %if.end.i, %lor.lhs.false.i %inc91 = add nsw i32 %rawcount.0176, 1 - %47 = call i32 @llvm.smax.i32(i32 %rlcount.0175, i32 128) - %spec.store.select = add nsw i32 %47, -128 + %46 = call i32 @llvm.smax.i32(i32 %rlcount.0175, i32 128) + %spec.store.select = add nsw i32 %46, -128 br label %for.inc if.else97: ; preds = %if.end63 @@ -2488,28 +2487,28 @@ if.else129: ; preds = %if.else97 if.then133: ; preds = %if.else129 %sub134 = add nsw i32 %add131, -128 - %48 = trunc i64 %indvars.iv to i32 - %49 = add i32 %48, -127 - call void @_ZN18OpenImageIO_v2_6_09TGAOutput10flush_rawpERPhii(ptr noundef nonnull align 8 dereferenceable(296) %this, ptr noundef nonnull align 8 dereferenceable(8) %bdata, i32 noundef 128, i32 noundef %49) + %47 = trunc i64 %indvars.iv to i32 + %48 = add i32 %47, -127 + call void @_ZN18OpenImageIO_v2_6_09TGAOutput10flush_rawpERPhii(ptr noundef nonnull align 8 dereferenceable(296) %this, ptr noundef nonnull align 8 dereferenceable(8) %bdata, i32 noundef 128, i32 noundef %48) %.pre196 = load i32, ptr %nchannels28, align 4 br label %if.end138 if.end138: ; preds = %if.else129, %if.then133, %if.then123 - %50 = phi i32 [ %29, %if.then123 ], [ %.pre196, %if.then133 ], [ %29, %if.else129 ] + %49 = phi i32 [ %29, %if.then123 ], [ %.pre196, %if.then133 ], [ %29, %if.else129 ] %rlcount.2 = phi i32 [ %inc128, %if.then123 ], [ 0, %if.then133 ], [ 0, %if.else129 ] %rawcount.2 = phi i32 [ %spec.select72, %if.then123 ], [ %sub134, %if.then133 ], [ %add131, %if.else129 ] - %.fr = freeze i32 %50 - %51 = add i32 %.fr, 1 - %52 = icmp ult i32 %51, 3 - %add141 = select i1 %52, i32 %51, i32 1 + %.fr = freeze i32 %49 + %50 = add i32 %.fr, 1 + %51 = icmp ult i32 %50, 3 + %add141 = select i1 %51, i32 %50, i32 1 %cmp142 = icmp sgt i32 %rlcount.2, %add141 br i1 %cmp142, label %if.then143, label %for.inc if.then143: ; preds = %if.end138 - %53 = add i32 %rlcount.2, %rawcount.2 - %54 = trunc i64 %indvars.iv to i32 - %55 = add i32 %54, 1 - %add146 = sub i32 %55, %53 + %52 = add i32 %rlcount.2, %rawcount.2 + %53 = trunc i64 %indvars.iv to i32 + %54 = add i32 %53, 1 + %add146 = sub i32 %54, %52 call void @_ZN18OpenImageIO_v2_6_09TGAOutput10flush_rawpERPhii(ptr noundef nonnull align 8 dereferenceable(296) %this, ptr noundef nonnull align 8 dereferenceable(8) %bdata, i32 noundef %rawcount.2, i32 noundef %add146) br label %for.inc @@ -2518,24 +2517,24 @@ for.inc: ; preds = %sw.epilog, %_ZN18Op %rlcount.3 = phi i32 [ %inc, %if.then89 ], [ %spec.store.select, %_ZN18OpenImageIO_v2_6_09TGAOutput9flush_rlpEPhi.exit ], [ %rlcount.2, %if.then143 ], [ %rlcount.2, %if.end138 ], [ 0, %sw.epilog ] %rawcount.3 = phi i32 [ %rawcount.0176, %if.then89 ], [ %inc91, %_ZN18OpenImageIO_v2_6_09TGAOutput9flush_rlpEPhi.exit ], [ 0, %if.then143 ], [ %rawcount.2, %if.end138 ], [ 1, %sw.epilog ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %56 = load i32, ptr %width24, align 4 - %57 = sext i32 %56 to i64 - %cmp25 = icmp slt i64 %indvars.iv.next, %57 + %55 = load i32, ptr %width24, align 4 + %56 = sext i32 %55 to i64 + %cmp25 = icmp slt i64 %indvars.iv.next, %56 br i1 %cmp25, label %for.body, label %for.end, !llvm.loop !12 for.end: ; preds = %for.inc - %58 = and i8 %rlp.1, 1 - %59 = icmp eq i8 %58, 0 - br i1 %59, label %if.else153, label %if.then151 + %57 = and i8 %rlp.1, 1 + %58 = icmp eq i8 %57, 0 + br i1 %58, label %if.else153, label %if.then151 if.then151: ; preds = %for.end %cmp.i83 = icmp slt i32 %rlcount.3, 1 br i1 %cmp.i83, label %if.end210, label %if.end.i84 if.end.i84: ; preds = %if.then151 - %60 = trunc i32 %rlcount.3 to i8 - %61 = add i8 %60, 127 - %conv.i85 = or i8 %61, -128 + %59 = trunc i32 %rlcount.3 to i8 + %60 = add i8 %59, 127 + %conv.i85 = or i8 %60, -128 call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %i.addr.i.i82) store i8 %conv.i85, ptr %i.addr.i.i82, align 1 %call.i.i86 = call noundef zeroext i1 @_ZN18OpenImageIO_v2_6_011ImageOutput7iowriteEPKvmm(ptr noundef nonnull align 8 dereferenceable(184) %this, ptr noundef nonnull %i.addr.i.i82, i64 noundef 1, i64 noundef 1) @@ -2544,13 +2543,13 @@ if.end.i84: ; preds = %if.then151 lor.lhs.false.i87: ; preds = %if.end.i84 %nchannels.i88 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageOutput", ptr %this, i64 0, i32 1, i32 15 - %62 = load i32, ptr %nchannels.i88, align 4 - %conv2.i89 = sext i32 %62 to i64 + %61 = load i32, ptr %nchannels.i88, align 4 + %conv2.i89 = sext i32 %61 to i64 %call.i2.i90 = call noundef zeroext i1 @_ZN18OpenImageIO_v2_6_011ImageOutput7iowriteEPKvmm(ptr noundef nonnull align 8 dereferenceable(184) %this, ptr noundef nonnull %buf2, i64 noundef %conv2.i89, i64 noundef 1) br label %if.end210 if.else153: ; preds = %if.then22, %for.end - %.lcssa203 = phi i32 [ %56, %for.end ], [ %28, %if.then22 ] + %.lcssa203 = phi i32 [ %55, %for.end ], [ %28, %if.then22 ] %rawcount.0.lcssa202 = phi i32 [ %rawcount.3, %for.end ], [ 0, %if.then22 ] %rlcount.0.lcssa201 = phi i32 [ %rlcount.3, %for.end ], [ 0, %if.then22 ] %add154 = add nsw i32 %rawcount.0.lcssa202, %rlcount.0.lcssa201 @@ -2560,25 +2559,25 @@ if.else153: ; preds = %if.then22, %for.end if.else159: ; preds = %if.end20 %nchannels161 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageOutput", ptr %this, i64 0, i32 1, i32 15 - %63 = load i32, ptr %nchannels161, align 4 + %62 = load i32, ptr %nchannels161, align 4 %width163 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageOutput", ptr %this, i64 0, i32 1, i32 3 - %64 = load i32, ptr %width163, align 4 - %conv164 = sext i32 %64 to i64 + %63 = load i32, ptr %width163, align 4 + %conv164 = sext i32 %63 to i64 %m_idlen = getelementptr inbounds %"class.OpenImageIO_v2_6_0::TGAOutput", ptr %this, i64 0, i32 6 - %65 = load i32, ptr %m_idlen, align 8 - %add165 = add nsw i32 %65, 18 + %64 = load i32, ptr %m_idlen, align 8 + %add165 = add nsw i32 %64, 18 %conv166 = sext i32 %add165 to i64 %height = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageOutput", ptr %this, i64 0, i32 1, i32 4 - %66 = load i32, ptr %height, align 8 - %67 = xor i32 %sub, -1 - %sub169 = add i32 %66, %67 + %65 = load i32, ptr %height, align 8 + %66 = xor i32 %sub, -1 + %sub169 = add i32 %65, %66 %conv170 = sext i32 %sub169 to i64 - %conv172 = sext i32 %63 to i64 + %conv172 = sext i32 %62 to i64 %mul171 = mul nsw i64 %conv164, %conv172 %mul173 = mul i64 %mul171, %conv170 %add174 = add nsw i64 %mul173, %conv166 %call175 = call noundef zeroext i1 @_ZN18OpenImageIO_v2_6_011ImageOutput6ioseekEli(ptr noundef nonnull align 8 dereferenceable(184) %this, i64 noundef %add174, i32 noundef 0) - %cmp176 = icmp slt i32 %63, 3 + %cmp176 = icmp slt i32 %62, 3 br i1 %cmp176, label %if.then177, label %if.else182 if.then177: ; preds = %if.else159 @@ -2586,7 +2585,7 @@ if.then177: ; preds = %if.else159 br i1 %call.i, label %if.end210, label %return if.else182: ; preds = %if.else159 - %cmp.i.i.i99.not = icmp eq i32 %64, 0 + %cmp.i.i.i99.not = icmp eq i32 %63, 0 br i1 %cmp.i.i.i99.not, label %_ZNSt6vectorIhSaIhEE6assignIPhvEEvT_S4_.exit149, label %if.then.i.i.i135 if.then.i.i.i135: ; preds = %if.else182 @@ -2604,26 +2603,24 @@ _ZNSt12_Vector_baseIhSaIhEE11_M_allocateEm.exit.i.i.i.i137: ; preds = %if.then.i _ZNSt6vectorIhSaIhEE6assignIPhvEEvT_S4_.exit149: ; preds = %if.else182, %_ZNSt12_Vector_baseIhSaIhEE11_M_allocateEm.exit.i.i.i.i137 %buf183.sroa.0.0 = phi ptr [ %call5.i.i.i.i.i.i.i138148, %_ZNSt12_Vector_baseIhSaIhEE11_M_allocateEm.exit.i.i.i.i137 ], [ null, %if.else182 ] - %68 = load i32, ptr %width163, align 4 - %cmp191182 = icmp sgt i32 %68, 0 + %67 = load i32, ptr %width163, align 4 + %cmp191182 = icmp sgt i32 %67, 0 br i1 %cmp191182, label %for.body192.preheader, label %for.end202 for.body192.preheader: ; preds = %_ZNSt6vectorIhSaIhEE6assignIPhvEEvT_S4_.exit149 - %wide.trip.count = zext nneg i32 %68 to i64 + %wide.trip.count = zext nneg i32 %67 to i64 br label %for.body192 for.body192: ; preds = %for.body192.preheader, %for.body192 %indvars.iv188 = phi i64 [ 0, %for.body192.preheader ], [ %indvars.iv.next189, %for.body192 ] - %69 = mul nsw i64 %indvars.iv188, %conv172 - %conv194 = and i64 %69, 4294967295 - %add.ptr.i = getelementptr inbounds i8, ptr %buf183.sroa.0.0, i64 %conv194 - %70 = add nuw i64 %69, 2 - %conv198 = and i64 %70, 4294967295 - %add.ptr.i150 = getelementptr inbounds i8, ptr %buf183.sroa.0.0, i64 %conv198 - %71 = load i8, ptr %add.ptr.i, align 1 - %72 = load i8, ptr %add.ptr.i150, align 1 - store i8 %72, ptr %add.ptr.i, align 1 - store i8 %71, ptr %add.ptr.i150, align 1 + %68 = mul nsw i64 %indvars.iv188, %conv172 + %add.ptr.i = getelementptr inbounds i8, ptr %buf183.sroa.0.0, i64 %68 + %69 = add nuw nsw i64 %68, 2 + %add.ptr.i150 = getelementptr inbounds i8, ptr %buf183.sroa.0.0, i64 %69 + %70 = load i8, ptr %add.ptr.i, align 1 + %71 = load i8, ptr %add.ptr.i150, align 1 + store i8 %71, ptr %add.ptr.i, align 1 + store i8 %70, ptr %add.ptr.i150, align 1 %indvars.iv.next189 = add nuw nsw i64 %indvars.iv188, 1 %exitcond.not = icmp eq i64 %indvars.iv.next189, %wide.trip.count br i1 %exitcond.not, label %for.end202, label %for.body192, !llvm.loop !13 diff --git a/bench/oiio/optimized/tiffinput.cpp.ll b/bench/oiio/optimized/tiffinput.cpp.ll index c3e22300c30..0a9185d020d 100644 --- a/bench/oiio/optimized/tiffinput.cpp.ll +++ b/bench/oiio/optimized/tiffinput.cpp.ll @@ -13136,16 +13136,16 @@ land.lhs.true: ; preds = %if.then %aggregate.i = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageInput", ptr %this, i64 0, i32 1, i32 16, i32 1 %4 = load i8, ptr %aggregate.i, align 1 %cmp7.i = icmp eq i8 %4, 1 - %or.cond104 = select i1 %cmp.i, i1 %cmp7.i, i1 false + %or.cond103 = select i1 %cmp.i, i1 %cmp7.i, i1 false %vecsemantics.i = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageInput", ptr %this, i64 0, i32 1, i32 16, i32 2 %5 = load i8, ptr %vecsemantics.i, align 2 %cmp12.i = icmp eq i8 %5, 0 - %or.cond105 = select i1 %or.cond104, i1 %cmp12.i, i1 false + %or.cond104 = select i1 %or.cond103, i1 %cmp12.i, i1 false %arraylen.i = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageInput", ptr %this, i64 0, i32 1, i32 16, i32 4 %6 = load i32, ptr %arraylen.i, align 4 %cmp14.i = icmp eq i32 %6, 0 - %or.cond106 = select i1 %or.cond105, i1 %cmp14.i, i1 false - br i1 %or.cond106, label %if.then6, label %if.end34 + %or.cond105 = select i1 %or.cond104, i1 %cmp14.i, i1 false + br i1 %or.cond105, label %if.then6, label %if.end34 if.then6: ; preds = %land.lhs.true tail call void @TIFFSwabArrayOfShort(ptr noundef %uncompressed_buf, i64 noundef %mul4) @@ -13178,16 +13178,16 @@ land.lhs.true15: ; preds = %if.end12 %aggregate.i20 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageInput", ptr %this, i64 0, i32 1, i32 16, i32 1 %11 = load i8, ptr %aggregate.i20, align 1 %cmp7.i21 = icmp eq i8 %11, 1 - %or.cond107 = select i1 %cmp.i18, i1 %cmp7.i21, i1 false + %or.cond106 = select i1 %cmp.i18, i1 %cmp7.i21, i1 false %vecsemantics.i23 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageInput", ptr %this, i64 0, i32 1, i32 16, i32 2 %12 = load i8, ptr %vecsemantics.i23, align 2 %cmp12.i24 = icmp eq i8 %12, 0 - %or.cond108 = select i1 %or.cond107, i1 %cmp12.i24, i1 false + %or.cond107 = select i1 %or.cond106, i1 %cmp12.i24, i1 false %arraylen.i26 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageInput", ptr %this, i64 0, i32 1, i32 16, i32 4 %13 = load i32, ptr %arraylen.i26, align 4 %cmp14.i27 = icmp eq i32 %13, 0 - %or.cond109 = select i1 %or.cond108, i1 %cmp14.i27, i1 false - br i1 %or.cond109, label %if.then19, label %if.end20 + %or.cond108 = select i1 %or.cond107, i1 %cmp14.i27, i1 false + br i1 %or.cond108, label %if.then19, label %if.end20 if.then19: ; preds = %land.lhs.true15 call void @TIFFSwabArrayOfShort(ptr noundef %uncompressed_buf, i64 noundef %mul4) @@ -13214,14 +13214,14 @@ land.lhs.true.i30: ; preds = %if.then23 %vecsemantics.i34 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageInput", ptr %this, i64 0, i32 1, i32 16, i32 2 %17 = load i8, ptr %vecsemantics.i34, align 2 %cmp12.i35 = icmp eq i8 %17, 0 - %or.cond110 = select i1 %cmp7.i32, i1 %cmp12.i35, i1 false + %or.cond109 = select i1 %cmp7.i32, i1 %cmp12.i35, i1 false %arraylen.i37 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageInput", ptr %this, i64 0, i32 1, i32 16, i32 4 %18 = load i32, ptr %arraylen.i37, align 4 %cmp14.i38 = icmp eq i32 %18, 0 - %or.cond111 = select i1 %or.cond110, i1 %cmp14.i38, i1 false + %or.cond110 = select i1 %or.cond109, i1 %cmp14.i38, i1 false %cmp28.i = icmp sgt i32 %height, 0 - %or.cond112 = and i1 %cmp28.i, %or.cond111 - br i1 %or.cond112, label %for.cond2.preheader.lr.ph.i, label %if.end34 + %or.cond111 = and i1 %cmp28.i, %or.cond110 + br i1 %or.cond111, label %for.cond2.preheader.lr.ph.i, label %if.end34 for.cond2.preheader.lr.ph.i: ; preds = %land.lhs.true.i30 %cmp326.i = icmp sgt i32 %channels, 0 @@ -13236,85 +13236,60 @@ for.cond2.preheader.lr.ph.split.us.i: ; preds = %for.cond2.preheader for.cond2.preheader.us.us.preheader.i: ; preds = %for.cond2.preheader.lr.ph.split.us.i %wide.trip.count55.i = zext nneg i32 %width to i64 - %20 = zext nneg i32 %width to i64 - %ident.check.not = icmp eq i32 %channels, 1 br label %for.cond2.preheader.us.us.i for.cond2.preheader.us.us.i: ; preds = %for.cond2.for.inc26_crit_edge.split.us.us.us.i, %for.cond2.preheader.us.us.preheader.i - %indvar = phi i64 [ %indvar.next, %for.cond2.for.inc26_crit_edge.split.us.us.us.i ], [ 0, %for.cond2.preheader.us.us.preheader.i ] %y.033.us.us.i = phi i32 [ %inc27.us.us.i, %for.cond2.for.inc26_crit_edge.split.us.us.us.i ], [ 0, %for.cond2.preheader.us.us.preheader.i ] %dst.addr.031.us.us.i = phi ptr [ %add.ptr31.us.us.i, %for.cond2.for.inc26_crit_edge.split.us.us.us.i ], [ %uncompressed_buf, %for.cond2.preheader.us.us.preheader.i ] - %21 = mul i64 %indvar, %20 - %22 = getelementptr i8, ptr %uncompressed_buf, i64 %21 - br label %for.body9.us.us.us.i.lver.check + br label %for.body4.us.us.us.i -for.body9.us.us.us.i.lver.check: ; preds = %for.cond7.for.inc23_crit_edge.us.us.us.i, %for.cond2.preheader.us.us.i +for.body4.us.us.us.i: ; preds = %for.cond7.for.inc23_crit_edge.us.us.us.i, %for.cond2.preheader.us.us.i %indvars.iv57.i = phi i64 [ %indvars.iv.next58.i, %for.cond7.for.inc23_crit_edge.us.us.us.i ], [ 0, %for.cond2.preheader.us.us.i ] - br i1 %ident.check.not, label %for.body9.us.us.us.i.ph, label %for.body9.us.us.us.i.lver.orig - -for.body9.us.us.us.i.lver.orig: ; preds = %for.body9.us.us.us.i.lver.check, %for.body9.us.us.us.i.lver.orig - %indvars.iv47.i.lver.orig = phi i64 [ %indvars.iv.next48.i.lver.orig, %for.body9.us.us.us.i.lver.orig ], [ 1, %for.body9.us.us.us.i.lver.check ] - %23 = add nsw i64 %indvars.iv47.i.lver.orig, -1 - %24 = mul nuw nsw i64 %23, %19 - %25 = add nuw nsw i64 %24, %indvars.iv57.i - %arrayidx11.us.us.us.i.lver.orig = getelementptr inbounds i8, ptr %dst.addr.031.us.us.i, i64 %25 - %26 = load i8, ptr %arrayidx11.us.us.us.i.lver.orig, align 1 - %27 = mul nuw nsw i64 %indvars.iv47.i.lver.orig, %19 - %28 = add nuw nsw i64 %27, %indvars.iv57.i - %idxprom14.us.us.us.i.lver.orig = and i64 %28, 4294967295 - %arrayidx15.us.us.us.i.lver.orig = getelementptr inbounds i8, ptr %dst.addr.031.us.us.i, i64 %idxprom14.us.us.us.i.lver.orig - %29 = load i8, ptr %arrayidx15.us.us.us.i.lver.orig, align 1 - %add17.us.us.us.i.lver.orig = add i8 %29, %26 - store i8 %add17.us.us.us.i.lver.orig, ptr %arrayidx15.us.us.us.i.lver.orig, align 1 - %indvars.iv.next48.i.lver.orig = add nuw nsw i64 %indvars.iv47.i.lver.orig, 1 - %exitcond56.not.i.lver.orig = icmp eq i64 %indvars.iv.next48.i.lver.orig, %wide.trip.count55.i - br i1 %exitcond56.not.i.lver.orig, label %for.cond7.for.inc23_crit_edge.us.us.us.i, label %for.body9.us.us.us.i.lver.orig, !llvm.loop !150 - -for.body9.us.us.us.i.ph: ; preds = %for.body9.us.us.us.i.lver.check - %scevgep = getelementptr i8, ptr %22, i64 %indvars.iv57.i - %load_initial = load i8, ptr %scevgep, align 1 br label %for.body9.us.us.us.i -for.body9.us.us.us.i: ; preds = %for.body9.us.us.us.i, %for.body9.us.us.us.i.ph - %store_forwarded = phi i8 [ %load_initial, %for.body9.us.us.us.i.ph ], [ %add17.us.us.us.i, %for.body9.us.us.us.i ] - %indvars.iv47.i = phi i64 [ 1, %for.body9.us.us.us.i.ph ], [ %indvars.iv.next48.i, %for.body9.us.us.us.i ] - %30 = add nuw i64 %indvars.iv47.i, %indvars.iv57.i - %idxprom14.us.us.us.i = and i64 %30, 4294967295 - %arrayidx15.us.us.us.i = getelementptr inbounds i8, ptr %dst.addr.031.us.us.i, i64 %idxprom14.us.us.us.i - %31 = load i8, ptr %arrayidx15.us.us.us.i, align 1 - %add17.us.us.us.i = add i8 %31, %store_forwarded +for.body9.us.us.us.i: ; preds = %for.body9.us.us.us.i, %for.body4.us.us.us.i + %indvars.iv47.i = phi i64 [ %indvars.iv.next48.i, %for.body9.us.us.us.i ], [ 1, %for.body4.us.us.us.i ] + %20 = add nsw i64 %indvars.iv47.i, -1 + %21 = mul nuw nsw i64 %20, %19 + %22 = add nuw nsw i64 %21, %indvars.iv57.i + %arrayidx11.us.us.us.i = getelementptr inbounds i8, ptr %dst.addr.031.us.us.i, i64 %22 + %23 = load i8, ptr %arrayidx11.us.us.us.i, align 1 + %24 = mul nuw nsw i64 %indvars.iv47.i, %19 + %25 = add nuw nsw i64 %24, %indvars.iv57.i + %arrayidx15.us.us.us.i = getelementptr inbounds i8, ptr %dst.addr.031.us.us.i, i64 %25 + %26 = load i8, ptr %arrayidx15.us.us.us.i, align 1 + %add17.us.us.us.i = add i8 %26, %23 store i8 %add17.us.us.us.i, ptr %arrayidx15.us.us.us.i, align 1 %indvars.iv.next48.i = add nuw nsw i64 %indvars.iv47.i, 1 %exitcond56.not.i = icmp eq i64 %indvars.iv.next48.i, %wide.trip.count55.i br i1 %exitcond56.not.i, label %for.cond7.for.inc23_crit_edge.us.us.us.i, label %for.body9.us.us.us.i, !llvm.loop !150 -for.cond7.for.inc23_crit_edge.us.us.us.i: ; preds = %for.body9.us.us.us.i.lver.orig, %for.body9.us.us.us.i +for.cond7.for.inc23_crit_edge.us.us.us.i: ; preds = %for.body9.us.us.us.i %indvars.iv.next58.i = add nuw nsw i64 %indvars.iv57.i, 1 %exitcond61.not.i = icmp eq i64 %indvars.iv.next58.i, %19 - br i1 %exitcond61.not.i, label %for.cond2.for.inc26_crit_edge.split.us.us.us.i, label %for.body9.us.us.us.i.lver.check, !llvm.loop !151 + br i1 %exitcond61.not.i, label %for.cond2.for.inc26_crit_edge.split.us.us.us.i, label %for.body4.us.us.us.i, !llvm.loop !151 for.cond2.for.inc26_crit_edge.split.us.us.us.i: ; preds = %for.cond7.for.inc23_crit_edge.us.us.us.i %inc27.us.us.i = add nuw nsw i32 %y.033.us.us.i, 1 %add.ptr31.us.us.i = getelementptr i8, ptr %dst.addr.031.us.us.i, i64 %idx.ext.i %exitcond62.not.i = icmp eq i32 %inc27.us.us.i, %height - %indvar.next = add i64 %indvar, 1 br i1 %exitcond62.not.i, label %if.end34, label %for.cond2.preheader.us.us.i, !llvm.loop !152 land.lhs.true.i41: ; preds = %if.then23 %aggregate.i42 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageInput", ptr %this, i64 0, i32 1, i32 16, i32 1 - %32 = load i8, ptr %aggregate.i42, align 1 - %cmp7.i43 = icmp eq i8 %32, 1 + %27 = load i8, ptr %aggregate.i42, align 1 + %cmp7.i43 = icmp eq i8 %27, 1 %vecsemantics.i45 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageInput", ptr %this, i64 0, i32 1, i32 16, i32 2 - %33 = load i8, ptr %vecsemantics.i45, align 2 - %cmp12.i46 = icmp eq i8 %33, 0 - %or.cond113 = select i1 %cmp7.i43, i1 %cmp12.i46, i1 false + %28 = load i8, ptr %vecsemantics.i45, align 2 + %cmp12.i46 = icmp eq i8 %28, 0 + %or.cond112 = select i1 %cmp7.i43, i1 %cmp12.i46, i1 false %arraylen.i48 = getelementptr inbounds %"class.OpenImageIO_v2_6_0::ImageInput", ptr %this, i64 0, i32 1, i32 16, i32 4 - %34 = load i32, ptr %arraylen.i48, align 4 - %cmp14.i49 = icmp eq i32 %34, 0 - %or.cond114 = select i1 %or.cond113, i1 %cmp14.i49, i1 false + %29 = load i32, ptr %arraylen.i48, align 4 + %cmp14.i49 = icmp eq i32 %29, 0 + %or.cond113 = select i1 %or.cond112, i1 %cmp14.i49, i1 false %cmp28.i51 = icmp sgt i32 %height, 0 - %or.cond115 = and i1 %cmp28.i51, %or.cond114 - br i1 %or.cond115, label %for.cond2.preheader.lr.ph.i52, label %if.end34 + %or.cond114 = and i1 %cmp28.i51, %or.cond113 + br i1 %or.cond114, label %for.cond2.preheader.lr.ph.i52, label %if.end34 for.cond2.preheader.lr.ph.i52: ; preds = %land.lhs.true.i41 %cmp326.i53 = icmp sgt i32 %channels, 0 @@ -13324,78 +13299,51 @@ for.cond2.preheader.lr.ph.i52: ; preds = %land.lhs.true.i41 for.cond2.preheader.lr.ph.split.us.i56: ; preds = %for.cond2.preheader.lr.ph.i52 %cmp824.i57 = icmp sgt i32 %width, 1 - %35 = zext nneg i32 %channels to i64 + %30 = zext nneg i32 %channels to i64 br i1 %cmp824.i57, label %for.cond2.preheader.us.us.preheader.i73, label %if.end34 for.cond2.preheader.us.us.preheader.i73: ; preds = %for.cond2.preheader.lr.ph.split.us.i56 %wide.trip.count55.i75 = zext nneg i32 %width to i64 - %36 = shl nuw i32 %width, 1 - %37 = zext i32 %36 to i64 - %ident.check129.not = icmp eq i32 %channels, 1 br label %for.cond2.preheader.us.us.i76 -for.cond2.preheader.us.us.i76: ; preds = %for.cond2.for.inc26_crit_edge.split.us.us.us.i96, %for.cond2.preheader.us.us.preheader.i73 - %indvar131 = phi i64 [ %indvar.next132, %for.cond2.for.inc26_crit_edge.split.us.us.us.i96 ], [ 0, %for.cond2.preheader.us.us.preheader.i73 ] - %y.033.us.us.i77 = phi i32 [ %inc27.us.us.i97, %for.cond2.for.inc26_crit_edge.split.us.us.us.i96 ], [ 0, %for.cond2.preheader.us.us.preheader.i73 ] - %dst.addr.031.us.us.i78 = phi ptr [ %add.ptr31.us.us.i99, %for.cond2.for.inc26_crit_edge.split.us.us.us.i96 ], [ %uncompressed_buf, %for.cond2.preheader.us.us.preheader.i73 ] - %38 = mul i64 %indvar131, %37 - %39 = getelementptr i8, ptr %uncompressed_buf, i64 %38 - br label %for.body9.us.us.us.i84.lver.check - -for.body9.us.us.us.i84.lver.check: ; preds = %for.cond7.for.inc23_crit_edge.us.us.us.i93, %for.cond2.preheader.us.us.i76 - %indvars.iv57.i81 = phi i64 [ %indvars.iv.next58.i94, %for.cond7.for.inc23_crit_edge.us.us.us.i93 ], [ 0, %for.cond2.preheader.us.us.i76 ] - br i1 %ident.check129.not, label %for.body9.us.us.us.i84.ph, label %for.body9.us.us.us.i84.lver.orig - -for.body9.us.us.us.i84.lver.orig: ; preds = %for.body9.us.us.us.i84.lver.check, %for.body9.us.us.us.i84.lver.orig - %indvars.iv47.i85.lver.orig = phi i64 [ %indvars.iv.next48.i91.lver.orig, %for.body9.us.us.us.i84.lver.orig ], [ 1, %for.body9.us.us.us.i84.lver.check ] - %40 = add nsw i64 %indvars.iv47.i85.lver.orig, -1 - %41 = mul nuw nsw i64 %40, %35 - %42 = add nuw nsw i64 %41, %indvars.iv57.i81 - %arrayidx11.us.us.us.i86.lver.orig = getelementptr inbounds i16, ptr %dst.addr.031.us.us.i78, i64 %42 - %43 = load i16, ptr %arrayidx11.us.us.us.i86.lver.orig, align 2 - %44 = mul nuw nsw i64 %indvars.iv47.i85.lver.orig, %35 - %45 = add nuw nsw i64 %44, %indvars.iv57.i81 - %idxprom14.us.us.us.i87.lver.orig = and i64 %45, 4294967295 - %arrayidx15.us.us.us.i88.lver.orig = getelementptr inbounds i16, ptr %dst.addr.031.us.us.i78, i64 %idxprom14.us.us.us.i87.lver.orig - %46 = load i16, ptr %arrayidx15.us.us.us.i88.lver.orig, align 2 - %add17.us.us.us.i89.lver.orig = add i16 %46, %43 - store i16 %add17.us.us.us.i89.lver.orig, ptr %arrayidx15.us.us.us.i88.lver.orig, align 2 - %indvars.iv.next48.i91.lver.orig = add nuw nsw i64 %indvars.iv47.i85.lver.orig, 1 - %exitcond56.not.i92.lver.orig = icmp eq i64 %indvars.iv.next48.i91.lver.orig, %wide.trip.count55.i75 - br i1 %exitcond56.not.i92.lver.orig, label %for.cond7.for.inc23_crit_edge.us.us.us.i93, label %for.body9.us.us.us.i84.lver.orig, !llvm.loop !153 - -for.body9.us.us.us.i84.ph: ; preds = %for.body9.us.us.us.i84.lver.check - %47 = shl nuw nsw i64 %indvars.iv57.i81, 1 - %scevgep133 = getelementptr i8, ptr %39, i64 %47 - %load_initial134 = load i16, ptr %scevgep133, align 2 +for.cond2.preheader.us.us.i76: ; preds = %for.cond2.for.inc26_crit_edge.split.us.us.us.i95, %for.cond2.preheader.us.us.preheader.i73 + %y.033.us.us.i77 = phi i32 [ %inc27.us.us.i96, %for.cond2.for.inc26_crit_edge.split.us.us.us.i95 ], [ 0, %for.cond2.preheader.us.us.preheader.i73 ] + %dst.addr.031.us.us.i78 = phi ptr [ %add.ptr31.us.us.i98, %for.cond2.for.inc26_crit_edge.split.us.us.us.i95 ], [ %uncompressed_buf, %for.cond2.preheader.us.us.preheader.i73 ] + br label %for.body4.us.us.us.i80 + +for.body4.us.us.us.i80: ; preds = %for.cond7.for.inc23_crit_edge.us.us.us.i92, %for.cond2.preheader.us.us.i76 + %indvars.iv57.i81 = phi i64 [ %indvars.iv.next58.i93, %for.cond7.for.inc23_crit_edge.us.us.us.i92 ], [ 0, %for.cond2.preheader.us.us.i76 ] br label %for.body9.us.us.us.i84 -for.body9.us.us.us.i84: ; preds = %for.body9.us.us.us.i84, %for.body9.us.us.us.i84.ph - %store_forwarded135 = phi i16 [ %load_initial134, %for.body9.us.us.us.i84.ph ], [ %add17.us.us.us.i89, %for.body9.us.us.us.i84 ] - %indvars.iv47.i85 = phi i64 [ 1, %for.body9.us.us.us.i84.ph ], [ %indvars.iv.next48.i91, %for.body9.us.us.us.i84 ] - %48 = add nuw i64 %indvars.iv47.i85, %indvars.iv57.i81 - %idxprom14.us.us.us.i87 = and i64 %48, 4294967295 - %arrayidx15.us.us.us.i88 = getelementptr inbounds i16, ptr %dst.addr.031.us.us.i78, i64 %idxprom14.us.us.us.i87 - %49 = load i16, ptr %arrayidx15.us.us.us.i88, align 2 - %add17.us.us.us.i89 = add i16 %49, %store_forwarded135 - store i16 %add17.us.us.us.i89, ptr %arrayidx15.us.us.us.i88, align 2 - %indvars.iv.next48.i91 = add nuw nsw i64 %indvars.iv47.i85, 1 - %exitcond56.not.i92 = icmp eq i64 %indvars.iv.next48.i91, %wide.trip.count55.i75 - br i1 %exitcond56.not.i92, label %for.cond7.for.inc23_crit_edge.us.us.us.i93, label %for.body9.us.us.us.i84, !llvm.loop !153 - -for.cond7.for.inc23_crit_edge.us.us.us.i93: ; preds = %for.body9.us.us.us.i84.lver.orig, %for.body9.us.us.us.i84 - %indvars.iv.next58.i94 = add nuw nsw i64 %indvars.iv57.i81, 1 - %exitcond61.not.i95 = icmp eq i64 %indvars.iv.next58.i94, %35 - br i1 %exitcond61.not.i95, label %for.cond2.for.inc26_crit_edge.split.us.us.us.i96, label %for.body9.us.us.us.i84.lver.check, !llvm.loop !154 - -for.cond2.for.inc26_crit_edge.split.us.us.us.i96: ; preds = %for.cond7.for.inc23_crit_edge.us.us.us.i93 - %inc27.us.us.i97 = add nuw nsw i32 %y.033.us.us.i77, 1 - %add.ptr31.us.us.i99 = getelementptr i16, ptr %dst.addr.031.us.us.i78, i64 %idx.ext.i55 - %exitcond62.not.i100 = icmp eq i32 %inc27.us.us.i97, %height - %indvar.next132 = add i64 %indvar131, 1 - br i1 %exitcond62.not.i100, label %if.end34, label %for.cond2.preheader.us.us.i76, !llvm.loop !155 - -if.end34: ; preds = %for.cond2.for.inc26_crit_edge.split.us.us.us.i96, %for.cond2.for.inc26_crit_edge.split.us.us.us.i, %for.cond2.preheader.lr.ph.split.us.i56, %for.cond2.preheader.lr.ph.split.us.i, %if.then23, %land.lhs.true.i30, %land.lhs.true.i41, %land.lhs.true, %for.cond2.preheader.lr.ph.i52, %for.cond2.preheader.lr.ph.i, %if.then, %if.then6, %if.end20, %if.then11 +for.body9.us.us.us.i84: ; preds = %for.body9.us.us.us.i84, %for.body4.us.us.us.i80 + %indvars.iv47.i85 = phi i64 [ %indvars.iv.next48.i90, %for.body9.us.us.us.i84 ], [ 1, %for.body4.us.us.us.i80 ] + %31 = add nsw i64 %indvars.iv47.i85, -1 + %32 = mul nuw nsw i64 %31, %30 + %33 = add nuw nsw i64 %32, %indvars.iv57.i81 + %arrayidx11.us.us.us.i86 = getelementptr inbounds i16, ptr %dst.addr.031.us.us.i78, i64 %33 + %34 = load i16, ptr %arrayidx11.us.us.us.i86, align 2 + %35 = mul nuw nsw i64 %indvars.iv47.i85, %30 + %36 = add nuw nsw i64 %35, %indvars.iv57.i81 + %arrayidx15.us.us.us.i87 = getelementptr inbounds i16, ptr %dst.addr.031.us.us.i78, i64 %36 + %37 = load i16, ptr %arrayidx15.us.us.us.i87, align 2 + %add17.us.us.us.i88 = add i16 %37, %34 + store i16 %add17.us.us.us.i88, ptr %arrayidx15.us.us.us.i87, align 2 + %indvars.iv.next48.i90 = add nuw nsw i64 %indvars.iv47.i85, 1 + %exitcond56.not.i91 = icmp eq i64 %indvars.iv.next48.i90, %wide.trip.count55.i75 + br i1 %exitcond56.not.i91, label %for.cond7.for.inc23_crit_edge.us.us.us.i92, label %for.body9.us.us.us.i84, !llvm.loop !153 + +for.cond7.for.inc23_crit_edge.us.us.us.i92: ; preds = %for.body9.us.us.us.i84 + %indvars.iv.next58.i93 = add nuw nsw i64 %indvars.iv57.i81, 1 + %exitcond61.not.i94 = icmp eq i64 %indvars.iv.next58.i93, %30 + br i1 %exitcond61.not.i94, label %for.cond2.for.inc26_crit_edge.split.us.us.us.i95, label %for.body4.us.us.us.i80, !llvm.loop !154 + +for.cond2.for.inc26_crit_edge.split.us.us.us.i95: ; preds = %for.cond7.for.inc23_crit_edge.us.us.us.i92 + %inc27.us.us.i96 = add nuw nsw i32 %y.033.us.us.i77, 1 + %add.ptr31.us.us.i98 = getelementptr i16, ptr %dst.addr.031.us.us.i78, i64 %idx.ext.i55 + %exitcond62.not.i99 = icmp eq i32 %inc27.us.us.i96, %height + br i1 %exitcond62.not.i99, label %if.end34, label %for.cond2.preheader.us.us.i76, !llvm.loop !155 + +if.end34: ; preds = %for.cond2.for.inc26_crit_edge.split.us.us.us.i95, %for.cond2.for.inc26_crit_edge.split.us.us.us.i, %for.cond2.preheader.lr.ph.split.us.i56, %for.cond2.preheader.lr.ph.split.us.i, %if.then23, %land.lhs.true.i30, %land.lhs.true.i41, %land.lhs.true, %for.cond2.preheader.lr.ph.i52, %for.cond2.preheader.lr.ph.i, %if.then, %if.then6, %if.end20, %if.then11 ret void } diff --git a/bench/openexr/optimized/ImfFastHuf.cpp.ll b/bench/openexr/optimized/ImfFastHuf.cpp.ll index 50855a25dbf..c67a039b0c4 100644 --- a/bench/openexr/optimized/ImfFastHuf.cpp.ll +++ b/bench/openexr/optimized/ImfFastHuf.cpp.ll @@ -391,8 +391,7 @@ for.body111: ; preds = %for.body111.prehead %24 = load i64, ptr %arrayidx113, align 8 %conv114 = uitofp i64 %24 to double %25 = sub nsw i64 %19, %indvars.iv158 - %sh_prom = and i64 %25, 4294967295 - %shl118 = shl i64 2, %sh_prom + %shl118 = shl i64 2, %25 %conv119 = sitofp i64 %shl118 to double %mul = fmul double %conv119, %conv114 %arrayidx121 = getelementptr inbounds double, ptr %call104, i64 %indvars.iv158 @@ -422,8 +421,7 @@ for.body138: ; preds = %for.body132, %for.b for.end144: ; preds = %for.body138, %for.body132 %tmp.0.lcssa = phi double [ 0.000000e+00, %for.body132 ], [ %add141, %for.body138 ] %27 = sub nsw i64 %22, %indvars.iv168 - %sh_prom148 = and i64 %27, 4294967295 - %shl149 = shl i64 2, %sh_prom148 + %shl149 = shl i64 2, %27 %conv150 = sitofp i64 %shl149 to double %div = fdiv double %tmp.0.lcssa, %conv150 %28 = tail call double @llvm.ceil.f64(double %div) @@ -450,15 +448,13 @@ for.body168.preheader: ; preds = %delete.notnull br label %for.body168 for.body168: ; preds = %for.body168.preheader, %for.body168 + %32 = phi i64 [ 0, %for.body168.preheader ], [ %add175, %for.body168 ] %indvars.iv174 = phi i64 [ %idxprom158, %for.body168.preheader ], [ %indvars.iv.next175, %for.body168 ] %indvars.iv.next175 = add nsw i64 %indvars.iv174, -1 - %arrayidx171 = getelementptr inbounds [59 x i64], ptr %offset, i64 0, i64 %indvars.iv174 - %32 = load i64, ptr %arrayidx171, align 8 %arrayidx174 = getelementptr inbounds [59 x i64], ptr %codeCount, i64 0, i64 %indvars.iv174 %33 = load i64, ptr %arrayidx174, align 8 %add175 = add i64 %33, %32 - %idxprom176 = and i64 %indvars.iv.next175, 4294967295 - %arrayidx177 = getelementptr inbounds [59 x i64], ptr %offset, i64 0, i64 %idxprom176 + %arrayidx177 = getelementptr inbounds [59 x i64], ptr %offset, i64 0, i64 %indvars.iv.next175 store i64 %add175, ptr %arrayidx177, align 8 %cmp167.not.not = icmp sgt i64 %indvars.iv.next175, %31 br i1 %cmp167.not.not, label %for.body168, label %for.end179, !llvm.loop !11 diff --git a/bench/openexr/optimized/ImfRgbaFile.cpp.ll b/bench/openexr/optimized/ImfRgbaFile.cpp.ll index 6dbf22747ba..dde88f7e1b0 100644 --- a/bench/openexr/optimized/ImfRgbaFile.cpp.ll +++ b/bench/openexr/optimized/ImfRgbaFile.cpp.ll @@ -765,8 +765,8 @@ for.body85: ; preds = %_ZN7Imf_3_214RgbaOu %mul.i = shl nsw i64 %conv.i, 3 tail call void @llvm.memcpy.p0.p0.i64(ptr align 2 %57, ptr align 2 %58, i64 %mul.i, i1 false) %inc87 = add nuw nsw i32 %j82.0105, 1 - %exitcond121.not = icmp eq i32 %inc87, 13 - br i1 %exitcond121.not, label %if.end89thread-pre-split, label %for.body85, !llvm.loop !11 + %exitcond120.not = icmp eq i32 %inc87, 13 + br i1 %exitcond120.not, label %if.end89thread-pre-split, label %for.body85, !llvm.loop !11 if.end89thread-pre-split: ; preds = %for.body85 %.pr = load i32, ptr %_linesConverted79, align 8 @@ -974,12 +974,12 @@ if.end120: ; preds = %_ZN7Imf_3_214RgbaOu %123 = load i32, ptr %_lineOrder121, align 4 %cmp122 = icmp eq i32 %123, 0 %124 = load i32, ptr %_currentScanLine50, align 8 - %.128 = select i1 %cmp122, i32 1, i32 -1 - %inc125 = add nsw i32 %124, %.128 + %.127 = select i1 %cmp122, i32 1, i32 -1 + %inc125 = add nsw i32 %124, %.127 store i32 %inc125, ptr %_currentScanLine50, align 8 %inc131 = add nuw nsw i32 %i38.0112, 1 - %exitcond122.not = icmp eq i32 %inc131, %numScanLines - br i1 %exitcond122.not, label %if.end133, label %for.body41, !llvm.loop !14 + %exitcond121.not = icmp eq i32 %inc131, %numScanLines + br i1 %exitcond121.not, label %if.end133, label %for.body41, !llvm.loop !14 if.end133: ; preds = %for.end, %if.end120, %for.cond.preheader, %if.else37 ret void @@ -2840,8 +2840,7 @@ if.then17: ; preds = %if.end15 for.body: ; preds = %if.then17, %for.body %indvars.iv96 = phi i64 [ %umin95, %if.then17 ], [ %indvars.iv.next97, %for.body ] %indvars.iv.next97 = add nsw i64 %indvars.iv96, -1 - %idxprom = and i64 %indvars.iv.next97, 4294967295 - %arrayidx = getelementptr inbounds %"class.Imf_3_2::RgbaInputFile::FromYca", ptr %this, i64 0, i32 12, i64 %idxprom + %arrayidx = getelementptr inbounds %"class.Imf_3_2::RgbaInputFile::FromYca", ptr %this, i64 0, i32 12, i64 %indvars.iv.next97 %13 = load ptr, ptr %arrayidx, align 8 %14 = trunc i64 %indvars.iv.next97 to i32 %15 = add i32 %sub22, %14 diff --git a/bench/openexr/optimized/internal_b44.c.ll b/bench/openexr/optimized/internal_b44.c.ll index 90b703d3872..e3a2c143bc3 100644 --- a/bench/openexr/optimized/internal_b44.c.ll +++ b/bench/openexr/optimized/internal_b44.c.ll @@ -225,23 +225,21 @@ for.body86.us: ; preds = %for.body86.lr.ph, % %indvars.iv177 = phi i64 [ %indvars.iv.next178, %for.cond111.for.inc179_crit_edge.us ], [ 0, %for.body86.lr.ph ] %out.1154.us = phi ptr [ %add.ptr167.us, %for.cond111.for.inc179_crit_edge.us ], [ %out.0165, %for.body86.lr.ph ] %nOut.1153.us = phi i64 [ %add169.us, %for.cond111.for.inc179_crit_edge.us ], [ %nOut.0163, %for.body86.lr.ph ] - %27 = trunc i64 %indvars.iv177 to i32 - %28 = mul i32 %23, %27 - %idx.ext88.us = zext nneg i32 %28 to i64 - %add.ptr89.us = getelementptr inbounds i16, ptr %scratch.2161, i64 %idx.ext88.us + %27 = mul nsw i64 %indvars.iv177, %conv58 + %add.ptr89.us = getelementptr inbounds i16, ptr %scratch.2161, i64 %27 %add.ptr91.us = getelementptr inbounds i16, ptr %add.ptr89.us, i64 %conv58 %add.ptr93.us = getelementptr inbounds i16, ptr %add.ptr91.us, i64 %conv58 %add.ptr95.us = getelementptr inbounds i16, ptr %add.ptr93.us, i64 %conv58 - %29 = or disjoint i64 %indvars.iv177, 3 - %cmp97.not.us = icmp slt i64 %29, %conv62 + %28 = or disjoint i64 %indvars.iv177, 3 + %cmp97.not.us = icmp slt i64 %28, %conv62 br i1 %cmp97.not.us, label %for.body114.us.preheader, label %if.then99.us if.then99.us: ; preds = %for.body86.us - %30 = or disjoint i64 %indvars.iv177, 1 - %cmp101.not.us = icmp slt i64 %30, %conv62 + %29 = or disjoint i64 %indvars.iv177, 1 + %cmp101.not.us = icmp slt i64 %29, %conv62 %spec.select.us = select i1 %cmp101.not.us, ptr %add.ptr91.us, ptr %add.ptr89.us - %31 = or disjoint i64 %indvars.iv177, 2 - %cmp106.not.us = icmp slt i64 %31, %conv62 + %30 = or disjoint i64 %indvars.iv177, 2 + %cmp106.not.us = icmp slt i64 %30, %conv62 %row2.0.us = select i1 %cmp106.not.us, ptr %add.ptr93.us, ptr %spec.select.us br label %for.body114.us.preheader @@ -265,41 +263,41 @@ for.body114.us: ; preds = %for.body114.us.preh for.body122.us: ; preds = %for.cond119.preheader.us, %for.body122.us %indvars.iv171 = phi i64 [ 0, %for.cond119.preheader.us ], [ %indvars.iv.next172, %for.body122.us ] - %32 = trunc i64 %indvars.iv171 to i32 - %spec.select120.us = tail call i32 @llvm.smin.i32(i32 %32, i32 %sub123.us) + %31 = trunc i64 %indvars.iv171 to i32 + %spec.select120.us = tail call i32 @llvm.smin.i32(i32 %31, i32 %sub123.us) %idxprom.us = sext i32 %spec.select120.us to i64 %arrayidx.us = getelementptr inbounds i16, ptr %row0.0145.us, i64 %idxprom.us - %33 = load i16, ptr %arrayidx.us, align 2 + %32 = load i16, ptr %arrayidx.us, align 2 %arrayidx131.us = getelementptr inbounds [16 x i16], ptr %s, i64 0, i64 %indvars.iv171 - store i16 %33, ptr %arrayidx131.us, align 2 + store i16 %32, ptr %arrayidx131.us, align 2 %arrayidx133.us = getelementptr inbounds i16, ptr %row1.2146.us, i64 %idxprom.us - %34 = load i16, ptr %arrayidx133.us, align 2 - %35 = or disjoint i64 %indvars.iv171, 4 - %arrayidx136.us = getelementptr inbounds [16 x i16], ptr %s, i64 0, i64 %35 - store i16 %34, ptr %arrayidx136.us, align 2 + %33 = load i16, ptr %arrayidx133.us, align 2 + %34 = or disjoint i64 %indvars.iv171, 4 + %arrayidx136.us = getelementptr inbounds [16 x i16], ptr %s, i64 0, i64 %34 + store i16 %33, ptr %arrayidx136.us, align 2 %arrayidx138.us = getelementptr inbounds i16, ptr %row2.2147.us, i64 %idxprom.us - %36 = load i16, ptr %arrayidx138.us, align 2 - %37 = or disjoint i64 %indvars.iv171, 8 - %arrayidx141.us = getelementptr inbounds [16 x i16], ptr %s, i64 0, i64 %37 - store i16 %36, ptr %arrayidx141.us, align 2 + %35 = load i16, ptr %arrayidx138.us, align 2 + %36 = or disjoint i64 %indvars.iv171, 8 + %arrayidx141.us = getelementptr inbounds [16 x i16], ptr %s, i64 0, i64 %36 + store i16 %35, ptr %arrayidx141.us, align 2 %arrayidx143.us = getelementptr inbounds i16, ptr %row3.1148.us, i64 %idxprom.us - %38 = load i16, ptr %arrayidx143.us, align 2 - %39 = or disjoint i64 %indvars.iv171, 12 - %arrayidx146.us = getelementptr inbounds [16 x i16], ptr %s, i64 0, i64 %39 - store i16 %38, ptr %arrayidx146.us, align 2 + %37 = load i16, ptr %arrayidx143.us, align 2 + %38 = or disjoint i64 %indvars.iv171, 12 + %arrayidx146.us = getelementptr inbounds [16 x i16], ptr %s, i64 0, i64 %38 + store i16 %37, ptr %arrayidx146.us, align 2 %indvars.iv.next172 = add nuw nsw i64 %indvars.iv171, 1 %exitcond.not = icmp eq i64 %indvars.iv.next172, 4 br i1 %exitcond.not, label %if.end155.us, label %for.body122.us, !llvm.loop !7 if.else150.us: ; preds = %for.body114.us - %40 = load i64, ptr %row0.0145.us, align 2 - store i64 %40, ptr %s, align 16 - %41 = load i64, ptr %row1.2146.us, align 2 - store i64 %41, ptr %arrayidx152, align 8 - %42 = load i64, ptr %row2.2147.us, align 2 - store i64 %42, ptr %arrayidx153, align 16 - %43 = load i64, ptr %row3.1148.us, align 2 - store i64 %43, ptr %arrayidx154, align 8 + %39 = load i64, ptr %row0.0145.us, align 2 + store i64 %39, ptr %s, align 16 + %40 = load i64, ptr %row1.2146.us, align 2 + store i64 %40, ptr %arrayidx152, align 8 + %41 = load i64, ptr %row2.2147.us, align 2 + store i64 %41, ptr %arrayidx153, align 16 + %42 = load i64, ptr %row3.1148.us, align 2 + store i64 %42, ptr %arrayidx154, align 8 br label %if.end155.us if.end155.us: ; preds = %for.body122.us, %if.else150.us @@ -307,18 +305,18 @@ if.end155.us: ; preds = %for.body122.us, %if %add.ptr157.us = getelementptr inbounds i16, ptr %row1.2146.us, i64 4 %add.ptr158.us = getelementptr inbounds i16, ptr %row2.2147.us, i64 4 %add.ptr159.us = getelementptr inbounds i16, ptr %row3.1148.us, i64 4 - %44 = load i8, ptr %p_linear, align 8 - %tobool.not.not.us = icmp eq i8 %44, 0 + %43 = load i8, ptr %p_linear, align 8 + %tobool.not.not.us = icmp eq i8 %43, 0 br i1 %tobool.not.not.us, label %if.end161.us, label %for.body.i.preheader.us for.body.i.us: ; preds = %for.body.i.preheader.us, %for.body.i.us %indvars.iv.i.us = phi i64 [ %indvars.iv.next.i.us, %for.body.i.us ], [ 0, %for.body.i.preheader.us ] %arrayidx.i.us = getelementptr inbounds i16, ptr %s, i64 %indvars.iv.i.us - %45 = load i16, ptr %arrayidx.i.us, align 2 - %idxprom1.i.us = zext i16 %45 to i64 - %arrayidx2.i.us = getelementptr inbounds i16, ptr %74, i64 %idxprom1.i.us - %46 = load i16, ptr %arrayidx2.i.us, align 2 - store i16 %46, ptr %arrayidx.i.us, align 2 + %44 = load i16, ptr %arrayidx.i.us, align 2 + %idxprom1.i.us = zext i16 %44 to i64 + %arrayidx2.i.us = getelementptr inbounds i16, ptr %73, i64 %idxprom1.i.us + %45 = load i16, ptr %arrayidx2.i.us, align 2 + store i16 %45, ptr %arrayidx.i.us, align 2 %indvars.iv.next.i.us = add nuw nsw i64 %indvars.iv.i.us, 1 %exitcond.not.i.us = icmp eq i64 %indvars.iv.next.i.us, 16 br i1 %exitcond.not.i.us, label %if.end161.us, label %for.body.i.us, !llvm.loop !8 @@ -332,23 +330,23 @@ if.end161.us: ; preds = %for.body.i.us, %if. for.body.i121.us: ; preds = %for.inc.i.us, %if.end161.us %indvars.iv.i122.us = phi i64 [ 0, %if.end161.us ], [ %indvars.iv.next.i124.us, %for.inc.i.us ] %arrayidx.i123.us = getelementptr inbounds i16, ptr %s, i64 %indvars.iv.i122.us - %47 = load i16, ptr %arrayidx.i123.us, align 2 - %48 = and i16 %47, 31744 - %cmp1.i.us = icmp eq i16 %48, 31744 + %46 = load i16, ptr %arrayidx.i123.us, align 2 + %47 = and i16 %46, 31744 + %cmp1.i.us = icmp eq i16 %47, 31744 br i1 %cmp1.i.us, label %if.then.i.us, label %if.else.i.us if.else.i.us: ; preds = %for.body.i121.us - %tobool.not.i.us = icmp sgt i16 %47, -1 + %tobool.not.i.us = icmp sgt i16 %46, -1 %arrayidx22.i.us = getelementptr inbounds [16 x i16], ptr %t.i, i64 0, i64 %indvars.iv.i122.us br i1 %tobool.not.i.us, label %if.else16.i.us, label %if.then9.i.us if.then9.i.us: ; preds = %if.else.i.us - %not.i.us = xor i16 %47, -1 + %not.i.us = xor i16 %46, -1 store i16 %not.i.us, ptr %arrayidx22.i.us, align 2 br label %for.inc.i.us if.else16.i.us: ; preds = %if.else.i.us - %or.i.us = or disjoint i16 %47, -32768 + %or.i.us = or disjoint i16 %46, -32768 store i16 %or.i.us, ptr %arrayidx22.i.us, align 2 br label %for.inc.i.us @@ -366,8 +364,8 @@ for.body28.i.us: ; preds = %for.inc.i.us, %for. %indvars.iv60.i.us = phi i64 [ %indvars.iv.next61.i.us, %for.body28.i.us ], [ 0, %for.inc.i.us ] %tMax.052.i.us = phi i16 [ %spec.select.i.us, %for.body28.i.us ], [ 0, %for.inc.i.us ] %arrayidx31.i.us = getelementptr inbounds [16 x i16], ptr %t.i, i64 0, i64 %indvars.iv60.i.us - %49 = load i16, ptr %arrayidx31.i.us, align 2 - %spec.select.i.us = tail call i16 @llvm.umax.i16(i16 %tMax.052.i.us, i16 %49) + %48 = load i16, ptr %arrayidx31.i.us, align 2 + %spec.select.i.us = tail call i16 @llvm.umax.i16(i16 %tMax.052.i.us, i16 %48) %indvars.iv.next61.i.us = add nuw nsw i64 %indvars.iv60.i.us, 1 %exitcond62.not.i.us = icmp eq i64 %indvars.iv.next61.i.us, 16 br i1 %exitcond62.not.i.us, label %do.body.preheader.i.us, label %for.body28.i.us, !llvm.loop !10 @@ -387,8 +385,8 @@ do.body.i.us: ; preds = %do.cond.i.us, %do.b for.body46.i.us: ; preds = %for.body46.i.us, %do.body.i.us %indvars.iv63.i.us = phi i64 [ 0, %do.body.i.us ], [ %indvars.iv.next64.i.us, %for.body46.i.us ] %arrayidx49.i.us = getelementptr inbounds [16 x i16], ptr %t.i, i64 0, i64 %indvars.iv63.i.us - %50 = load i16, ptr %arrayidx49.i.us, align 2 - %conv50.i.us = zext i16 %50 to i32 + %49 = load i16, ptr %arrayidx49.i.us, align 2 + %conv50.i.us = zext i16 %49 to i32 %sub.i.us = sub nsw i32 %conv47.i.us, %conv50.i.us %shl.i.i.us = shl nsw i32 %sub.i.us, 1 %shr6.i.i.us = lshr i32 %shl.i.i.us, %add.i.i.us @@ -403,64 +401,64 @@ for.body46.i.us: ; preds = %for.body46.i.us, %d br i1 %exitcond66.not.i.us, label %for.end55.i.us, label %for.body46.i.us, !llvm.loop !11 for.end55.i.us: ; preds = %for.body46.i.us - %51 = load i32, ptr %d.i, align 16 - %52 = load i32, ptr %arrayidx57.i, align 16 - %sub58.i.us = sub nsw i32 %51, %52 + %50 = load i32, ptr %d.i, align 16 + %51 = load i32, ptr %arrayidx57.i, align 16 + %sub58.i.us = sub nsw i32 %50, %51 %add59.i.us = add nsw i32 %sub58.i.us, 32 - %53 = load i32, ptr %arrayidx62.i, align 16 - %sub63.i.us = sub nsw i32 %52, %53 + %52 = load i32, ptr %arrayidx62.i, align 16 + %sub63.i.us = sub nsw i32 %51, %52 %add64.i.us = add nsw i32 %sub63.i.us, 32 store i32 %add64.i.us, ptr %arrayidx65.i, align 4 - %54 = load i32, ptr %arrayidx67.i, align 16 - %sub68.i.us = sub nsw i32 %53, %54 + %53 = load i32, ptr %arrayidx67.i, align 16 + %sub68.i.us = sub nsw i32 %52, %53 %add69.i.us = add nsw i32 %sub68.i.us, 32 store i32 %add69.i.us, ptr %arrayidx70.i, align 8 - %55 = load i32, ptr %arrayidx72.i, align 4 - %sub73.i.us = sub nsw i32 %51, %55 + %54 = load i32, ptr %arrayidx72.i, align 4 + %sub73.i.us = sub nsw i32 %50, %54 %add74.i.us = add nsw i32 %sub73.i.us, 32 store i32 %add74.i.us, ptr %arrayidx75.i, align 4 - %56 = load i32, ptr %arrayidx77.i, align 4 - %sub78.i.us = sub nsw i32 %52, %56 + %55 = load i32, ptr %arrayidx77.i, align 4 + %sub78.i.us = sub nsw i32 %51, %55 %add79.i.us = add nsw i32 %sub78.i.us, 32 store i32 %add79.i.us, ptr %arrayidx80.i, align 16 - %57 = load i32, ptr %arrayidx82.i, align 4 - %sub83.i.us = sub nsw i32 %53, %57 + %56 = load i32, ptr %arrayidx82.i, align 4 + %sub83.i.us = sub nsw i32 %52, %56 %add84.i.us = add nsw i32 %sub83.i.us, 32 store i32 %add84.i.us, ptr %arrayidx85.i, align 4 - %58 = load i32, ptr %arrayidx87.i, align 4 - %sub88.i.us = sub nsw i32 %54, %58 + %57 = load i32, ptr %arrayidx87.i, align 4 + %sub88.i.us = sub nsw i32 %53, %57 %add89.i.us = add nsw i32 %sub88.i.us, 32 store i32 %add89.i.us, ptr %arrayidx90.i, align 8 - %59 = load i32, ptr %arrayidx92.i, align 8 - %sub93.i.us = sub nsw i32 %55, %59 + %58 = load i32, ptr %arrayidx92.i, align 8 + %sub93.i.us = sub nsw i32 %54, %58 %add94.i.us = add nsw i32 %sub93.i.us, 32 store i32 %add94.i.us, ptr %arrayidx95.i, align 4 - %60 = load i32, ptr %arrayidx97.i, align 8 - %sub98.i.us = sub nsw i32 %56, %60 + %59 = load i32, ptr %arrayidx97.i, align 8 + %sub98.i.us = sub nsw i32 %55, %59 %add99.i.us = add nsw i32 %sub98.i.us, 32 store i32 %add99.i.us, ptr %arrayidx100.i, align 16 - %61 = load i32, ptr %arrayidx102.i, align 8 - %sub103.i.us = sub nsw i32 %57, %61 + %60 = load i32, ptr %arrayidx102.i, align 8 + %sub103.i.us = sub nsw i32 %56, %60 %add104.i.us = add nsw i32 %sub103.i.us, 32 store i32 %add104.i.us, ptr %arrayidx105.i, align 4 - %62 = load i32, ptr %arrayidx107.i, align 8 - %sub108.i.us = sub nsw i32 %58, %62 + %61 = load i32, ptr %arrayidx107.i, align 8 + %sub108.i.us = sub nsw i32 %57, %61 %add109.i.us = add nsw i32 %sub108.i.us, 32 store i32 %add109.i.us, ptr %arrayidx110.i, align 8 - %63 = load i32, ptr %arrayidx112.i, align 4 - %sub113.i.us = sub nsw i32 %59, %63 + %62 = load i32, ptr %arrayidx112.i, align 4 + %sub113.i.us = sub nsw i32 %58, %62 %add114.i.us = add nsw i32 %sub113.i.us, 32 store i32 %add114.i.us, ptr %arrayidx115.i, align 4 - %64 = load i32, ptr %arrayidx117.i, align 4 - %sub118.i.us = sub nsw i32 %60, %64 + %63 = load i32, ptr %arrayidx117.i, align 4 + %sub118.i.us = sub nsw i32 %59, %63 %add119.i.us = add nsw i32 %sub118.i.us, 32 store i32 %add119.i.us, ptr %arrayidx120.i, align 16 - %65 = load i32, ptr %arrayidx122.i, align 4 - %sub123.i.us = sub nsw i32 %61, %65 + %64 = load i32, ptr %arrayidx122.i, align 4 + %sub123.i.us = sub nsw i32 %60, %64 %add124.i.us = add nsw i32 %sub123.i.us, 32 store i32 %add124.i.us, ptr %arrayidx125.i, align 4 - %66 = load i32, ptr %arrayidx127.i, align 4 - %sub128.i.us = sub nsw i32 %62, %66 + %65 = load i32, ptr %arrayidx127.i, align 4 + %sub128.i.us = sub nsw i32 %61, %65 %add129.i.us = add nsw i32 %sub128.i.us, 32 store i32 %add129.i.us, ptr %arrayidx130.i, align 8 br label %for.body137.i.us @@ -470,9 +468,9 @@ for.body137.i.us: ; preds = %for.body137.i.us, % %rMax.056.i.us = phi i32 [ %add59.i.us, %for.end55.i.us ], [ %rMax.1.i.us, %for.body137.i.us ] %rMin.055.i.us = phi i32 [ %add59.i.us, %for.end55.i.us ], [ %spec.select50.i.us, %for.body137.i.us ] %arrayidx139.i.us = getelementptr inbounds [15 x i32], ptr %r.i, i64 0, i64 %indvars.iv67.i.us - %67 = load i32, ptr %arrayidx139.i.us, align 4 - %spec.select50.i.us = tail call i32 @llvm.smin.i32(i32 %rMin.055.i.us, i32 %67) - %rMax.1.i.us = tail call i32 @llvm.smax.i32(i32 %rMax.056.i.us, i32 %67) + %66 = load i32, ptr %arrayidx139.i.us, align 4 + %spec.select50.i.us = tail call i32 @llvm.smin.i32(i32 %rMin.055.i.us, i32 %66) + %rMax.1.i.us = tail call i32 @llvm.smax.i32(i32 %rMax.056.i.us, i32 %66) %indvars.iv.next68.i.us = add nuw nsw i64 %indvars.iv67.i.us, 1 %exitcond70.not.i.us = icmp eq i64 %indvars.iv.next68.i.us, 15 br i1 %exitcond70.not.i.us, label %do.cond.i.us, label %for.body137.i.us, !llvm.loop !12 @@ -480,22 +478,22 @@ for.body137.i.us: ; preds = %for.body137.i.us, % do.cond.i.us: ; preds = %for.body137.i.us %cmp157.i.us = icmp slt i32 %spec.select50.i.us, 0 %cmp159.i.us = icmp sgt i32 %rMax.1.i.us, 63 - %68 = select i1 %cmp157.i.us, i1 true, i1 %cmp159.i.us - br i1 %68, label %do.body.i.us, label %do.end.i.us, !llvm.loop !13 + %67 = select i1 %cmp157.i.us, i1 true, i1 %cmp159.i.us + br i1 %67, label %do.body.i.us, label %do.end.i.us, !llvm.loop !13 do.end.i.us: ; preds = %do.cond.i.us %cmp161.i.us = icmp eq i32 %spec.select50.i.us, 32 %cmp163.i.us = icmp eq i32 %rMax.1.i.us, 32 %or.cond.i.us = select i1 %cmp161.i.us, i1 %cmp163.i.us, i1 false %or.cond1.i.us = and i1 %tobool166.i, %or.cond.i.us - %69 = load i16, ptr %t.i, align 16 + %68 = load i16, ptr %t.i, align 16 br i1 %or.cond1.i.us, label %pack.exit.us, label %if.end176.i.us if.end176.i.us: ; preds = %do.end.i.us - %shl.i.us = shl i32 %51, %add.i.us - %70 = trunc i32 %shl.i.us to i16 - %conv184.i.us = sub i16 %spec.select.i.us, %70 - %71 = select i1 %tobool.not.not.us, i16 %conv184.i.us, i16 %69 + %shl.i.us = shl i32 %50, %add.i.us + %69 = trunc i32 %shl.i.us to i16 + %conv184.i.us = sub i16 %spec.select.i.us, %69 + %70 = select i1 %tobool.not.not.us, i16 %conv184.i.us, i16 %68 %shl195.i.us = shl i32 %add.i.us, 2 %shr197.i.us = lshr i32 %add59.i.us, 4 %or198.i.us = or i32 %shr197.i.us, %shl195.i.us @@ -565,7 +563,7 @@ if.end176.i.us: ; preds = %do.end.i.us br label %pack.exit.us pack.exit.us: ; preds = %do.end.i.us, %if.end176.i.us - %conv190.i.us.sink.in.in = phi i16 [ %71, %if.end176.i.us ], [ %69, %do.end.i.us ] + %conv190.i.us.sink.in.in = phi i16 [ %70, %if.end176.i.us ], [ %68, %do.end.i.us ] %.sink.i.us = phi i64 [ 13, %if.end176.i.us ], [ 2, %do.end.i.us ] %conv272.sink.i.us = phi i8 [ %conv272.i.us, %if.end176.i.us ], [ -4, %do.end.i.us ] %retval.0.i.us = phi i64 [ 14, %if.end176.i.us ], [ 3, %do.end.i.us ] @@ -573,8 +571,8 @@ pack.exit.us: ; preds = %do.end.i.us, %if.en %conv190.i.us.sink.in = lshr i16 %conv190.i.us.sink.in.in, 8 %conv190.i.us.sink = trunc i16 %conv190.i.us.sink.in to i8 store i8 %conv190.i.us.sink, ptr %out.2144.us, align 1 - %72 = getelementptr inbounds i8, ptr %out.2144.us, i64 1 - store i8 %conv193.i.us.sink, ptr %72, align 1 + %71 = getelementptr inbounds i8, ptr %out.2144.us, i64 1 + store i8 %conv193.i.us.sink, ptr %71, align 1 %arrayidx273.i.us = getelementptr inbounds i8, ptr %out.2144.us, i64 %.sink.i.us store i8 %conv272.sink.i.us, ptr %arrayidx273.i.us, align 1 call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %d.i) @@ -582,8 +580,8 @@ pack.exit.us: ; preds = %do.end.i.us, %if.en call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %t.i) %add169.us = add i64 %retval.0.i.us, %nOut.2143.us %add170.us = add i64 %add169.us, 14 - %73 = load i64, ptr %compressed_alloc_size, align 8 - %cmp172.us = icmp ugt i64 %add170.us, %73 + %72 = load i64, ptr %compressed_alloc_size, align 8 + %cmp172.us = icmp ugt i64 %add170.us, %72 br i1 %cmp172.us, label %return, label %for.inc176.us for.inc176.us: ; preds = %pack.exit.us @@ -593,24 +591,24 @@ for.inc176.us: ; preds = %pack.exit.us br i1 %cmp112.us, label %for.body114.us, label %for.cond111.for.inc179_crit_edge.us, !llvm.loop !14 for.body.i.preheader.us: ; preds = %if.end155.us - %74 = load ptr, ptr @exrcore_expTable, align 8 + %73 = load ptr, ptr @exrcore_expTable, align 8 br label %for.body.i.us for.cond119.preheader.us: ; preds = %for.body114.us - %75 = xor i32 %x.0149.us, -1 - %sub123.us = add nsw i32 %23, %75 + %74 = xor i32 %x.0149.us, -1 + %sub123.us = add nsw i32 %23, %74 br label %for.body122.us for.cond111.for.inc179_crit_edge.us: ; preds = %for.inc176.us %indvars.iv.next178 = add nuw i64 %indvars.iv177, 4 - %76 = trunc i64 %indvars.iv.next178 to i32 - %cmp84.us = icmp sgt i32 %24, %76 + %75 = trunc i64 %indvars.iv.next178 to i32 + %cmp84.us = icmp sgt i32 %24, %75 br i1 %cmp84.us, label %for.body86.us, label %for.end181, !llvm.loop !15 if.then72: ; preds = %if.end67 %add73 = add i64 %mul63, %nOut.0163 - %77 = load i64, ptr %compressed_alloc_size, align 8 - %cmp74 = icmp ugt i64 %add73, %77 + %76 = load i64, ptr %compressed_alloc_size, align 8 + %cmp74 = icmp ugt i64 %add73, %76 br i1 %cmp74, label %return, label %if.end77 if.end77: ; preds = %if.then72 @@ -630,9 +628,9 @@ for.inc183: ; preds = %for.body51, %for.en %nOut.3 = phi i64 [ %nOut.0163, %for.body51 ], [ %add73, %if.end77 ], [ %nOut.1.lcssa, %for.end181 ] %out.3 = phi ptr [ %out.0165, %for.body51 ], [ %add.ptr78, %if.end77 ], [ %out.1.lcssa, %for.end181 ] %indvars.iv.next185 = add nuw nsw i64 %indvars.iv184, 1 - %78 = load i16, ptr %channel_count47, align 8 - %79 = sext i16 %78 to i64 - %cmp49 = icmp slt i64 %indvars.iv.next185, %79 + %77 = load i16, ptr %channel_count47, align 8 + %78 = sext i16 %77 to i64 + %cmp49 = icmp slt i64 %indvars.iv.next185, %78 br i1 %cmp49, label %for.body51, label %for.end185, !llvm.loop !16 for.end185: ; preds = %for.inc183, %for.end43 @@ -745,7 +743,7 @@ for.body.lr.ph: ; preds = %entry br label %for.body for.cond101.preheader: ; preds = %for.inc98, %entry - %2 = phi i16 [ %0, %entry ], [ %65, %for.inc98 ] + %2 = phi i16 [ %0, %entry ], [ %64, %for.inc98 ] %height102 = getelementptr inbounds %struct._exr_decode_pipeline, ptr %decode, i64 0, i32 5, i32 3 %3 = load i32, ptr %height102, align 4 %cmp103161 = icmp sgt i32 %3, 0 @@ -794,19 +792,17 @@ for.body23.us: ; preds = %for.body23.lr.ph, % %indvars.iv172 = phi i64 [ %indvars.iv.next173, %for.cond33.for.inc94_crit_edge.us ], [ 0, %for.body23.lr.ph ] %in.1143.us = phi ptr [ %add.ptr46.us, %for.cond33.for.inc94_crit_edge.us ], [ %in.0153, %for.body23.lr.ph ] %bIn.1141.us = phi i64 [ %bIn.3.us, %for.cond33.for.inc94_crit_edge.us ], [ %bIn.0151, %for.body23.lr.ph ] - %9 = trunc i64 %indvars.iv172 to i32 - %10 = mul i32 %5, %9 - %idx.ext25.us = zext nneg i32 %10 to i64 - %add.ptr26.us = getelementptr inbounds i16, ptr %scratch.0149, i64 %idx.ext25.us + %9 = mul nsw i64 %indvars.iv172, %conv3 + %add.ptr26.us = getelementptr inbounds i16, ptr %scratch.0149, i64 %9 %add.ptr28.us = getelementptr inbounds i16, ptr %add.ptr26.us, i64 %conv3 %add.ptr30.us = getelementptr inbounds i16, ptr %add.ptr28.us, i64 %conv3 %add.ptr32.us = getelementptr inbounds i16, ptr %add.ptr30.us, i64 %conv3 - %11 = or disjoint i64 %indvars.iv172, 3 - %cmp67.us = icmp slt i64 %11, %conv2 - %12 = or disjoint i64 %indvars.iv172, 1 - %cmp77.us = icmp slt i64 %12, %conv2 - %13 = or disjoint i64 %indvars.iv172, 2 - %cmp83.us = icmp slt i64 %13, %conv2 + %10 = or disjoint i64 %indvars.iv172, 3 + %cmp67.us = icmp slt i64 %10, %conv2 + %11 = or disjoint i64 %indvars.iv172, 1 + %cmp77.us = icmp slt i64 %11, %conv2 + %12 = or disjoint i64 %indvars.iv172, 2 + %cmp83.us = icmp slt i64 %12, %conv2 br label %for.body36.us for.body36.us: ; preds = %for.body23.us, %if.end88.us @@ -823,8 +819,8 @@ for.body36.us: ; preds = %for.body23.us, %if. if.end41.us: ; preds = %for.body36.us %arrayidx.us = getelementptr inbounds i8, ptr %in.2138.us, i64 2 - %14 = load i8, ptr %arrayidx.us, align 1 - %cmp43.us = icmp ugt i8 %14, 51 + %13 = load i8, ptr %arrayidx.us, align 1 + %cmp43.us = icmp ugt i8 %13, 51 br i1 %cmp43.us, label %if.then45.us, label %if.else.us if.else.us: ; preds = %if.end41.us @@ -833,23 +829,23 @@ if.else.us: ; preds = %if.end41.us br i1 %cmp49.us, label %return, label %if.end52.us if.end52.us: ; preds = %if.else.us - %15 = load i8, ptr %in.2138.us, align 1 - %conv.i105.us = zext i8 %15 to i16 + %14 = load i8, ptr %in.2138.us, align 1 + %conv.i105.us = zext i8 %14 to i16 %shl.i106.us = shl nuw i16 %conv.i105.us, 8 %arrayidx3.i.us = getelementptr inbounds i8, ptr %in.2138.us, i64 1 - %16 = load i8, ptr %arrayidx3.i.us, align 1 - %conv5.i107.us = zext i8 %16 to i16 + %15 = load i8, ptr %arrayidx3.i.us, align 1 + %conv5.i107.us = zext i8 %15 to i16 %or.i108.us = or disjoint i16 %shl.i106.us, %conv5.i107.us store i16 %or.i108.us, ptr %s, align 16 - %conv9.i.us = zext nneg i8 %14 to i32 + %conv9.i.us = zext nneg i8 %13 to i32 %shr.i.us = lshr i32 %conv9.i.us, 2 %shl12.neg96.i.us = shl nsw i32 -32, %shr.i.us %conv15.i.us = zext i16 %or.i108.us to i32 %shl18.i.us = shl nuw nsw i32 %conv9.i.us, 4 %arrayidx19.i.us = getelementptr inbounds i8, ptr %in.2138.us, i64 3 - %17 = load i8, ptr %arrayidx19.i.us, align 1 - %18 = lshr i8 %17, 4 - %shr21.i.us = zext nneg i8 %18 to i32 + %16 = load i8, ptr %arrayidx19.i.us, align 1 + %17 = lshr i8 %16, 4 + %shr21.i.us = zext nneg i8 %17 to i32 %shl18.masked.i.us = and i32 %shl18.i.us, 48 %and.i.us = or disjoint i32 %shl18.masked.i.us, %shr21.i.us %shl24.i.us = shl nuw nsw i32 %and.i.us, %shr.i.us @@ -857,13 +853,13 @@ if.end52.us: ; preds = %if.else.us %sub.i.us = add nsw i32 %shl24.i.us, %add.i.us %conv26.i.us = trunc i32 %sub.i.us to i16 store i16 %conv26.i.us, ptr %arrayidx27.i, align 8 - %19 = load i8, ptr %arrayidx19.i.us, align 1 - %conv31.i.us = zext i8 %19 to i32 + %18 = load i8, ptr %arrayidx19.i.us, align 1 + %conv31.i.us = zext i8 %18 to i32 %shl32.i.us = shl nuw nsw i32 %conv31.i.us, 2 %arrayidx33.i.us = getelementptr inbounds i8, ptr %in.2138.us, i64 4 - %20 = load i8, ptr %arrayidx33.i.us, align 1 - %21 = lshr i8 %20, 6 - %shr35.i.us = zext nneg i8 %21 to i32 + %19 = load i8, ptr %arrayidx33.i.us, align 1 + %20 = lshr i8 %19, 6 + %shr35.i.us = zext nneg i8 %20 to i32 %shl32.masked.i.us = and i32 %shl32.i.us, 60 %and37.i.us = or disjoint i32 %shl32.masked.i.us, %shr35.i.us %shl39.i.us = shl nuw nsw i32 %and37.i.us, %shr.i.us @@ -871,42 +867,42 @@ if.end52.us: ; preds = %if.else.us %sub42.i.us = add nsw i32 %shl39.i.us, %add40.i.us %conv43.i.us = trunc i32 %sub42.i.us to i16 store i16 %conv43.i.us, ptr %arrayidx44.i, align 16 - %22 = load i8, ptr %arrayidx33.i.us, align 1 - %23 = and i8 %22, 63 - %and49.i.us = zext nneg i8 %23 to i32 - %24 = add nsw i32 %and49.i.us, -32 - %25 = add nsw i32 %and37.i.us, %24 - %26 = shl nsw i32 %25, %shr.i.us - %sub54.i.us = add i32 %26, %add40.i.us + %21 = load i8, ptr %arrayidx33.i.us, align 1 + %22 = and i8 %21, 63 + %and49.i.us = zext nneg i8 %22 to i32 + %23 = add nsw i32 %and49.i.us, -32 + %24 = add nsw i32 %and37.i.us, %23 + %25 = shl nsw i32 %24, %shr.i.us + %sub54.i.us = add i32 %25, %add40.i.us %conv55.i.us = trunc i32 %sub54.i.us to i16 store i16 %conv55.i.us, ptr %arrayidx56.i, align 8 %arrayidx59.i.us = getelementptr inbounds i8, ptr %in.2138.us, i64 5 - %27 = load i8, ptr %arrayidx59.i.us, align 1 - %28 = lshr i8 %27, 2 - %shr61.i.us = zext nneg i8 %28 to i32 + %26 = load i8, ptr %arrayidx59.i.us, align 1 + %27 = lshr i8 %26, 2 + %shr61.i.us = zext nneg i8 %27 to i32 %shl63.i.us = shl nuw nsw i32 %shr61.i.us, %shr.i.us %sub66.i.us = add nsw i32 %shl63.i.us, %add.i.us %conv67.i.us = trunc i32 %sub66.i.us to i16 store i16 %conv67.i.us, ptr %arrayidx68.i, align 2 - %conv72.i.us = zext i8 %27 to i32 + %conv72.i.us = zext i8 %26 to i32 %shl73.i.us = shl nuw nsw i32 %conv72.i.us, 4 %arrayidx74.i.us = getelementptr inbounds i8, ptr %in.2138.us, i64 6 - %29 = load i8, ptr %arrayidx74.i.us, align 1 - %30 = lshr i8 %29, 4 - %shr76.i.us = zext nneg i8 %30 to i32 + %28 = load i8, ptr %arrayidx74.i.us, align 1 + %29 = lshr i8 %28, 4 + %shr76.i.us = zext nneg i8 %29 to i32 %shl73.masked.i.us = and i32 %shl73.i.us, 48 %and78.i.us = or disjoint i32 %shl73.masked.i.us, %shr76.i.us %shl80.i.us = shl nuw nsw i32 %and78.i.us, %shr.i.us %sub83.i.us = add nsw i32 %shl80.i.us, %add40.i.us %conv84.i.us = trunc i32 %sub83.i.us to i16 store i16 %conv84.i.us, ptr %arrayidx85.i, align 2 - %31 = load i8, ptr %arrayidx74.i.us, align 1 - %conv89.i.us = zext i8 %31 to i32 + %30 = load i8, ptr %arrayidx74.i.us, align 1 + %conv89.i.us = zext i8 %30 to i32 %shl90.i.us = shl nuw nsw i32 %conv89.i.us, 2 %arrayidx91.i.us = getelementptr inbounds i8, ptr %in.2138.us, i64 7 - %32 = load i8, ptr %arrayidx91.i.us, align 1 - %33 = lshr i8 %32, 6 - %shr93.i.us = zext nneg i8 %33 to i32 + %31 = load i8, ptr %arrayidx91.i.us, align 1 + %32 = lshr i8 %31, 6 + %shr93.i.us = zext nneg i8 %32 to i32 %shl90.masked.i.us = and i32 %shl90.i.us, 60 %and95.i.us = or disjoint i32 %shl90.masked.i.us, %shr93.i.us %shl97.i.us = shl nuw nsw i32 %and95.i.us, %shr.i.us @@ -914,29 +910,29 @@ if.end52.us: ; preds = %if.else.us %sub100.i.us = add nsw i32 %add98.i.us, %shl97.i.us %conv101.i.us = trunc i32 %sub100.i.us to i16 store i16 %conv101.i.us, ptr %arrayidx102.i, align 2 - %34 = load i8, ptr %arrayidx91.i.us, align 1 - %35 = and i8 %34, 63 - %and107.i.us = zext nneg i8 %35 to i32 + %33 = load i8, ptr %arrayidx91.i.us, align 1 + %34 = and i8 %33, 63 + %and107.i.us = zext nneg i8 %34 to i32 %shl109.i.us = shl nuw nsw i32 %and107.i.us, %shr.i.us %add110.i.us = add i32 %sub54.i.us, %shl12.neg96.i.us %sub112.i.us = add i32 %add110.i.us, %shl109.i.us %conv113.i.us = trunc i32 %sub112.i.us to i16 store i16 %conv113.i.us, ptr %arrayidx114.i, align 2 %arrayidx117.i.us = getelementptr inbounds i8, ptr %in.2138.us, i64 8 - %36 = load i8, ptr %arrayidx117.i.us, align 1 - %37 = lshr i8 %36, 2 - %shr119.i.us = zext nneg i8 %37 to i32 + %35 = load i8, ptr %arrayidx117.i.us, align 1 + %36 = lshr i8 %35, 2 + %shr119.i.us = zext nneg i8 %36 to i32 %shl121.i.us = shl nuw nsw i32 %shr119.i.us, %shr.i.us %add122.i.us = add nsw i32 %sub66.i.us, %shl12.neg96.i.us %sub124.i.us = add nsw i32 %add122.i.us, %shl121.i.us %conv125.i.us = trunc i32 %sub124.i.us to i16 store i16 %conv125.i.us, ptr %arrayidx126.i, align 4 - %conv130.i.us = zext i8 %36 to i32 + %conv130.i.us = zext i8 %35 to i32 %shl131.i.us = shl nuw nsw i32 %conv130.i.us, 4 %arrayidx132.i.us = getelementptr inbounds i8, ptr %in.2138.us, i64 9 - %38 = load i8, ptr %arrayidx132.i.us, align 1 - %39 = lshr i8 %38, 4 - %shr134.i.us = zext nneg i8 %39 to i32 + %37 = load i8, ptr %arrayidx132.i.us, align 1 + %38 = lshr i8 %37, 4 + %shr134.i.us = zext nneg i8 %38 to i32 %shl131.masked.i.us = and i32 %shl131.i.us, 48 %and136.i.us = or disjoint i32 %shl131.masked.i.us, %shr134.i.us %shl138.i.us = shl nuw nsw i32 %and136.i.us, %shr.i.us @@ -944,13 +940,13 @@ if.end52.us: ; preds = %if.else.us %sub141.i.us = add nsw i32 %add139.i.us, %shl138.i.us %conv142.i.us = trunc i32 %sub141.i.us to i16 store i16 %conv142.i.us, ptr %arrayidx143.i, align 4 - %40 = load i8, ptr %arrayidx132.i.us, align 1 - %conv147.i.us = zext i8 %40 to i32 + %39 = load i8, ptr %arrayidx132.i.us, align 1 + %conv147.i.us = zext i8 %39 to i32 %shl148.i.us = shl nuw nsw i32 %conv147.i.us, 2 %arrayidx149.i.us = getelementptr inbounds i8, ptr %in.2138.us, i64 10 - %41 = load i8, ptr %arrayidx149.i.us, align 1 - %42 = lshr i8 %41, 6 - %shr151.i.us = zext nneg i8 %42 to i32 + %40 = load i8, ptr %arrayidx149.i.us, align 1 + %41 = lshr i8 %40, 6 + %shr151.i.us = zext nneg i8 %41 to i32 %shl148.masked.i.us = and i32 %shl148.i.us, 60 %and153.i.us = or disjoint i32 %shl148.masked.i.us, %shr151.i.us %shl155.i.us = shl nuw nsw i32 %and153.i.us, %shr.i.us @@ -958,29 +954,29 @@ if.end52.us: ; preds = %if.else.us %sub158.i.us = add nsw i32 %add156.i.us, %shl155.i.us %conv159.i.us = trunc i32 %sub158.i.us to i16 store i16 %conv159.i.us, ptr %arrayidx160.i, align 4 - %43 = load i8, ptr %arrayidx149.i.us, align 1 - %44 = and i8 %43, 63 - %and165.i.us = zext nneg i8 %44 to i32 + %42 = load i8, ptr %arrayidx149.i.us, align 1 + %43 = and i8 %42, 63 + %and165.i.us = zext nneg i8 %43 to i32 %shl167.i.us = shl nuw nsw i32 %and165.i.us, %shr.i.us %add168.i.us = add i32 %sub112.i.us, %shl12.neg96.i.us %sub170.i.us = add i32 %add168.i.us, %shl167.i.us %conv171.i.us = trunc i32 %sub170.i.us to i16 store i16 %conv171.i.us, ptr %arrayidx172.i, align 4 %arrayidx175.i.us = getelementptr inbounds i8, ptr %in.2138.us, i64 11 - %45 = load i8, ptr %arrayidx175.i.us, align 1 - %46 = lshr i8 %45, 2 - %shr177.i.us = zext nneg i8 %46 to i32 + %44 = load i8, ptr %arrayidx175.i.us, align 1 + %45 = lshr i8 %44, 2 + %shr177.i.us = zext nneg i8 %45 to i32 %shl179.i.us = shl nuw nsw i32 %shr177.i.us, %shr.i.us %add180.i.us = add nsw i32 %sub124.i.us, %shl12.neg96.i.us %sub182.i.us = add nsw i32 %add180.i.us, %shl179.i.us %conv183.i.us = trunc i32 %sub182.i.us to i16 store i16 %conv183.i.us, ptr %arrayidx184.i, align 2 - %conv188.i.us = zext i8 %45 to i32 + %conv188.i.us = zext i8 %44 to i32 %shl189.i.us = shl nuw nsw i32 %conv188.i.us, 4 %arrayidx190.i.us = getelementptr inbounds i8, ptr %in.2138.us, i64 12 - %47 = load i8, ptr %arrayidx190.i.us, align 1 - %48 = lshr i8 %47, 4 - %shr192.i.us = zext nneg i8 %48 to i32 + %46 = load i8, ptr %arrayidx190.i.us, align 1 + %47 = lshr i8 %46, 4 + %shr192.i.us = zext nneg i8 %47 to i32 %shl189.masked.i.us = and i32 %shl189.i.us, 48 %and194.i.us = or disjoint i32 %shl189.masked.i.us, %shr192.i.us %shl196.i.us = shl nuw nsw i32 %and194.i.us, %shr.i.us @@ -988,13 +984,13 @@ if.end52.us: ; preds = %if.else.us %sub199.i.us = add nsw i32 %add197.i.us, %shl196.i.us %conv200.i.us = trunc i32 %sub199.i.us to i16 store i16 %conv200.i.us, ptr %arrayidx201.i, align 2 - %49 = load i8, ptr %arrayidx190.i.us, align 1 - %conv205.i.us = zext i8 %49 to i32 + %48 = load i8, ptr %arrayidx190.i.us, align 1 + %conv205.i.us = zext i8 %48 to i32 %shl206.i.us = shl nuw nsw i32 %conv205.i.us, 2 %arrayidx207.i.us = getelementptr inbounds i8, ptr %in.2138.us, i64 13 - %50 = load i8, ptr %arrayidx207.i.us, align 1 - %51 = lshr i8 %50, 6 - %shr209.i.us = zext nneg i8 %51 to i32 + %49 = load i8, ptr %arrayidx207.i.us, align 1 + %50 = lshr i8 %49, 6 + %shr209.i.us = zext nneg i8 %50 to i32 %shl206.masked.i.us = and i32 %shl206.i.us, 60 %and211.i.us = or disjoint i32 %shl206.masked.i.us, %shr209.i.us %shl213.i.us = shl nuw nsw i32 %and211.i.us, %shr.i.us @@ -1002,9 +998,9 @@ if.end52.us: ; preds = %if.else.us %sub216.i.us = add nsw i32 %add214.i.us, %shl213.i.us %conv217.i.us = trunc i32 %sub216.i.us to i16 store i16 %conv217.i.us, ptr %arrayidx218.i, align 2 - %52 = load i8, ptr %arrayidx207.i.us, align 1 - %53 = and i8 %52, 63 - %and223.i.us = zext nneg i8 %53 to i32 + %51 = load i8, ptr %arrayidx207.i.us, align 1 + %52 = and i8 %51, 63 + %and223.i.us = zext nneg i8 %52 to i32 %shl225.i.us = shl nuw nsw i32 %and223.i.us, %shr.i.us %add226.i.us = add i32 %sub170.i.us, %shl12.neg96.i.us %sub228.i.us = add i32 %add226.i.us, %shl225.i.us @@ -1015,11 +1011,11 @@ if.end52.us: ; preds = %if.else.us for.body.i109.us: ; preds = %for.body.i109.us, %if.end52.us %indvars.iv.i110.us = phi i64 [ 0, %if.end52.us ], [ %indvars.iv.next.i113.us, %for.body.i109.us ] %arrayidx232.i.us = getelementptr inbounds i16, ptr %s, i64 %indvars.iv.i110.us - %54 = load i16, ptr %arrayidx232.i.us, align 2 - %not.i111.us = xor i16 %54, -1 - %55 = and i16 %54, 32767 - %tobool.not94.i.us = icmp slt i16 %54, 0 - %storemerge.i112.us = select i1 %tobool.not94.i.us, i16 %55, i16 %not.i111.us + %53 = load i16, ptr %arrayidx232.i.us, align 2 + %not.i111.us = xor i16 %53, -1 + %54 = and i16 %53, 32767 + %tobool.not94.i.us = icmp slt i16 %53, 0 + %storemerge.i112.us = select i1 %tobool.not94.i.us, i16 %54, i16 %not.i111.us store i16 %storemerge.i112.us, ptr %arrayidx232.i.us, align 2 %indvars.iv.next.i113.us = add nuw nsw i64 %indvars.iv.i110.us, 1 %exitcond.not.i114.us = icmp eq i64 %indvars.iv.next.i113.us, 16 @@ -1027,16 +1023,16 @@ for.body.i109.us: ; preds = %for.body.i109.us, % if.then45.us: ; preds = %if.end41.us %in.2.val.us = load i8, ptr %in.2138.us, align 1 - %56 = getelementptr i8, ptr %in.2138.us, i64 1 - %in.2.val104.us = load i8, ptr %56, align 1 + %55 = getelementptr i8, ptr %in.2138.us, i64 1 + %in.2.val104.us = load i8, ptr %55, align 1 %conv.i.us = zext i8 %in.2.val.us to i16 %shl.i.us = shl nuw i16 %conv.i.us, 8 %conv5.i.us = zext i8 %in.2.val104.us to i16 %or.i.us = or disjoint i16 %shl.i.us, %conv5.i.us %not.i.us = xor i16 %or.i.us, -1 - %57 = and i16 %or.i.us, 32767 + %56 = and i16 %or.i.us, 32767 %tobool.not1.i.us = icmp slt i16 %or.i.us, 0 - %storemerge.i.us = select i1 %tobool.not1.i.us, i16 %57, i16 %not.i.us + %storemerge.i.us = select i1 %tobool.not1.i.us, i16 %56, i16 %not.i.us store i16 %storemerge.i.us, ptr %s, align 16 br label %for.body.i.us @@ -1052,27 +1048,27 @@ if.end56.us: ; preds = %for.body.i109.us, % %.sink = phi i64 [ 3, %for.body.i.us ], [ 14, %for.body.i109.us ] %bIn.3.us = phi i64 [ %add37.us, %for.body.i.us ], [ %add48.us, %for.body.i109.us ] %add.ptr46.us = getelementptr inbounds i8, ptr %in.2138.us, i64 %.sink - %58 = load i8, ptr %p_linear, align 8 - %tobool.not.us = icmp eq i8 %58, 0 + %57 = load i8, ptr %p_linear, align 8 + %tobool.not.us = icmp eq i8 %57, 0 br i1 %tobool.not.us, label %if.end59.us, label %for.body.i115.preheader.us for.body.i115.us: ; preds = %for.body.i115.preheader.us, %for.body.i115.us %indvars.iv.i116.us = phi i64 [ %indvars.iv.next.i117.us, %for.body.i115.us ], [ 0, %for.body.i115.preheader.us ] %arrayidx.i.us = getelementptr inbounds i16, ptr %s, i64 %indvars.iv.i116.us - %59 = load i16, ptr %arrayidx.i.us, align 2 - %idxprom1.i.us = zext i16 %59 to i64 - %arrayidx2.i.us = getelementptr inbounds i16, ptr %63, i64 %idxprom1.i.us - %60 = load i16, ptr %arrayidx2.i.us, align 2 - store i16 %60, ptr %arrayidx.i.us, align 2 + %58 = load i16, ptr %arrayidx.i.us, align 2 + %idxprom1.i.us = zext i16 %58 to i64 + %arrayidx2.i.us = getelementptr inbounds i16, ptr %62, i64 %idxprom1.i.us + %59 = load i16, ptr %arrayidx2.i.us, align 2 + store i16 %59, ptr %arrayidx.i.us, align 2 %indvars.iv.next.i117.us = add nuw nsw i64 %indvars.iv.i116.us, 1 %exitcond.not.i118.us = icmp eq i64 %indvars.iv.next.i117.us, 16 br i1 %exitcond.not.i118.us, label %if.end59.us, label %for.body.i115.us, !llvm.loop !21 if.end59.us: ; preds = %for.body.i115.us, %if.end56.us - %61 = or disjoint i64 %indvars.iv, 3 - %cmp62.us = icmp slt i64 %61, %conv3 - %62 = sub nsw i64 %conv3, %indvars.iv - %mul65.us = shl nsw i64 %62, 1 + %60 = or disjoint i64 %indvars.iv, 3 + %cmp62.us = icmp slt i64 %60, %conv3 + %61 = sub nsw i64 %conv3, %indvars.iv + %mul65.us = shl nsw i64 %61, 1 %cond.us = select i1 %cmp62.us, i64 8, i64 %mul65.us call void @llvm.memcpy.p0.p0.i64(ptr align 2 %row0.0131.us, ptr nonnull align 16 %s, i64 %cond.us, i1 false) br i1 %cmp67.us, label %if.then69.us, label %if.else74.us @@ -1107,13 +1103,13 @@ if.end88.us: ; preds = %if.then69.us, %if.t br i1 %cmp34.us, label %for.body36.us, label %for.cond33.for.inc94_crit_edge.us, !llvm.loop !22 for.body.i115.preheader.us: ; preds = %if.end56.us - %63 = load ptr, ptr @exrcore_logTable, align 8 + %62 = load ptr, ptr @exrcore_logTable, align 8 br label %for.body.i115.us for.cond33.for.inc94_crit_edge.us: ; preds = %if.end88.us %indvars.iv.next173 = add nuw i64 %indvars.iv172, 4 - %64 = trunc i64 %indvars.iv.next173 to i32 - %cmp21.us = icmp sgt i32 %6, %64 + %63 = trunc i64 %indvars.iv.next173 to i32 + %cmp21.us = icmp sgt i32 %6, %63 br i1 %cmp21.us, label %for.body23.us, label %for.end96, !llvm.loop !23 if.then11: ; preds = %if.end @@ -1138,56 +1134,56 @@ for.inc98: ; preds = %for.body, %for.end9 %bIn.4 = phi i64 [ %bIn.0151, %for.body ], [ %add, %if.end15 ], [ %bIn.1.lcssa, %for.end96 ] %in.4 = phi ptr [ %in.0153, %for.body ], [ %add.ptr16, %if.end15 ], [ %in.1.lcssa, %for.end96 ] %indvars.iv.next180 = add nuw nsw i64 %indvars.iv179, 1 - %65 = load i16, ptr %channel_count, align 8 - %66 = sext i16 %65 to i64 - %cmp = icmp slt i64 %indvars.iv.next180, %66 + %64 = load i16, ptr %channel_count, align 8 + %65 = sext i16 %64 to i64 + %cmp = icmp slt i64 %indvars.iv.next180, %65 br i1 %cmp, label %for.body, label %for.cond101.preheader, !llvm.loop !24 for.body105: ; preds = %for.body105.lr.ph, %for.inc161 - %67 = phi i32 [ %3, %for.body105.lr.ph ], [ %80, %for.inc161 ] + %66 = phi i32 [ %3, %for.body105.lr.ph ], [ %79, %for.inc161 ] + %67 = phi i16 [ %2, %for.body105.lr.ph ], [ %80, %for.inc161 ] %68 = phi i16 [ %2, %for.body105.lr.ph ], [ %81, %for.inc161 ] - %69 = phi i16 [ %2, %for.body105.lr.ph ], [ %82, %for.inc161 ] %y100.0164 = phi i32 [ 0, %for.body105.lr.ph ], [ %inc162, %for.inc161 ] %out.0163 = phi ptr [ %uncompressed_data, %for.body105.lr.ph ], [ %out.1.lcssa, %for.inc161 ] %bIn.5162 = phi i64 [ 0, %for.body105.lr.ph ], [ %bIn.6.lcssa, %for.inc161 ] - %70 = load i32, ptr %start_y, align 8 - %add107 = add nsw i32 %70, %y100.0164 - %cmp113155 = icmp sgt i16 %69, 0 + %69 = load i32, ptr %start_y, align 8 + %add107 = add nsw i32 %69, %y100.0164 + %cmp113155 = icmp sgt i16 %68, 0 br i1 %cmp113155, label %for.body115.preheader, label %for.inc161 for.body115.preheader: ; preds = %for.body105 - %71 = load ptr, ptr %scratch_buffer_1, align 8 + %70 = load ptr, ptr %scratch_buffer_1, align 8 br label %for.body115 for.body115: ; preds = %for.body115.preheader, %for.inc158 - %72 = phi i16 [ %68, %for.body115.preheader ], [ %78, %for.inc158 ] + %71 = phi i16 [ %67, %for.body115.preheader ], [ %77, %for.inc158 ] %indvars.iv182 = phi i64 [ 0, %for.body115.preheader ], [ %indvars.iv.next183, %for.inc158 ] %out.1158 = phi ptr [ %out.0163, %for.body115.preheader ], [ %out.2, %for.inc158 ] %bIn.6157 = phi i64 [ %bIn.5162, %for.body115.preheader ], [ %bIn.7, %for.inc158 ] - %scratch.2156 = phi ptr [ %71, %for.body115.preheader ], [ %scratch.3, %for.inc158 ] - %73 = load ptr, ptr %decode, align 8 - %width120 = getelementptr inbounds %struct.exr_coding_channel_info_t, ptr %73, i64 %indvars.iv182, i32 2 - %74 = load i32, ptr %width120, align 4 - %height121 = getelementptr inbounds %struct.exr_coding_channel_info_t, ptr %73, i64 %indvars.iv182, i32 1 - %75 = load i32, ptr %height121, align 8 - %conv122 = sext i32 %74 to i64 - %bytes_per_element123 = getelementptr inbounds %struct.exr_coding_channel_info_t, ptr %73, i64 %indvars.iv182, i32 6 - %76 = load i8, ptr %bytes_per_element123, align 1 - %conv124 = sext i8 %76 to i64 + %scratch.2156 = phi ptr [ %70, %for.body115.preheader ], [ %scratch.3, %for.inc158 ] + %72 = load ptr, ptr %decode, align 8 + %width120 = getelementptr inbounds %struct.exr_coding_channel_info_t, ptr %72, i64 %indvars.iv182, i32 2 + %73 = load i32, ptr %width120, align 4 + %height121 = getelementptr inbounds %struct.exr_coding_channel_info_t, ptr %72, i64 %indvars.iv182, i32 1 + %74 = load i32, ptr %height121, align 8 + %conv122 = sext i32 %73 to i64 + %bytes_per_element123 = getelementptr inbounds %struct.exr_coding_channel_info_t, ptr %72, i64 %indvars.iv182, i32 6 + %75 = load i8, ptr %bytes_per_element123, align 1 + %conv124 = sext i8 %75 to i64 %mul125 = mul nsw i64 %conv124, %conv122 - %conv126 = sext i32 %75 to i64 + %conv126 = sext i32 %74 to i64 %mul127 = mul i64 %mul125, %conv126 %cmp128 = icmp eq i64 %mul127, 0 br i1 %cmp128, label %for.inc158, label %if.end131 if.end131: ; preds = %for.body115 - %y_samples = getelementptr inbounds %struct.exr_coding_channel_info_t, ptr %73, i64 %indvars.iv182, i32 4 - %77 = load i32, ptr %y_samples, align 4 - %cmp132 = icmp sgt i32 %77, 1 + %y_samples = getelementptr inbounds %struct.exr_coding_channel_info_t, ptr %72, i64 %indvars.iv182, i32 4 + %76 = load i32, ptr %y_samples, align 4 + %cmp132 = icmp sgt i32 %76, 1 br i1 %cmp132, label %if.then134, label %if.end149 if.then134: ; preds = %if.end131 - %rem = srem i32 %add107, %77 + %rem = srem i32 %add107, %76 %cmp136.not = icmp eq i32 %rem, 0 br i1 %cmp136.not, label %if.end140, label %if.then138 @@ -1196,7 +1192,7 @@ if.then138: ; preds = %if.then134 br label %for.inc158 if.end140: ; preds = %if.then134 - %div = udiv i32 %y100.0164, %77 + %div = udiv i32 %y100.0164, %76 br label %if.end149 if.end149: ; preds = %if.end131, %if.end140 @@ -1216,13 +1212,13 @@ if.end154: ; preds = %if.end149 br label %for.inc158 for.inc158: ; preds = %for.body115, %if.end154, %if.then138 - %78 = phi i16 [ %72, %for.body115 ], [ %72, %if.then138 ], [ %.pre, %if.end154 ] + %77 = phi i16 [ %71, %for.body115 ], [ %71, %if.then138 ], [ %.pre, %if.end154 ] %scratch.3 = phi ptr [ %scratch.2156, %for.body115 ], [ %add.ptr139, %if.then138 ], [ %add.ptr157, %if.end154 ] %bIn.7 = phi i64 [ %bIn.6157, %for.body115 ], [ %bIn.6157, %if.then138 ], [ %add150, %if.end154 ] %out.2 = phi ptr [ %out.1158, %for.body115 ], [ %out.1158, %if.then138 ], [ %add.ptr156, %if.end154 ] %indvars.iv.next183 = add nuw nsw i64 %indvars.iv182, 1 - %79 = sext i16 %78 to i64 - %cmp113 = icmp slt i64 %indvars.iv.next183, %79 + %78 = sext i16 %77 to i64 + %cmp113 = icmp slt i64 %indvars.iv.next183, %78 br i1 %cmp113, label %for.body115, label %for.inc161.loopexit, !llvm.loop !25 for.inc161.loopexit: ; preds = %for.inc158 @@ -1230,13 +1226,13 @@ for.inc161.loopexit: ; preds = %for.inc158 br label %for.inc161 for.inc161: ; preds = %for.inc161.loopexit, %for.body105 - %80 = phi i32 [ %67, %for.body105 ], [ %.pre185, %for.inc161.loopexit ] - %81 = phi i16 [ %68, %for.body105 ], [ %78, %for.inc161.loopexit ] - %82 = phi i16 [ %69, %for.body105 ], [ %78, %for.inc161.loopexit ] + %79 = phi i32 [ %66, %for.body105 ], [ %.pre185, %for.inc161.loopexit ] + %80 = phi i16 [ %67, %for.body105 ], [ %77, %for.inc161.loopexit ] + %81 = phi i16 [ %68, %for.body105 ], [ %77, %for.inc161.loopexit ] %bIn.6.lcssa = phi i64 [ %bIn.5162, %for.body105 ], [ %bIn.7, %for.inc161.loopexit ] %out.1.lcssa = phi ptr [ %out.0163, %for.body105 ], [ %out.2, %for.inc161.loopexit ] %inc162 = add nuw nsw i32 %y100.0164, 1 - %cmp103 = icmp slt i32 %inc162, %80 + %cmp103 = icmp slt i32 %inc162, %79 br i1 %cmp103, label %for.body105, label %return, !llvm.loop !26 return: ; preds = %if.then11, %if.else.us, %for.body36.us, %for.inc161, %if.end149, %for.cond101.preheader diff --git a/bench/openexr/optimized/internal_huf.c.ll b/bench/openexr/optimized/internal_huf.c.ll index db7c7d96a27..05f07c236c5 100644 --- a/bench/openexr/optimized/internal_huf.c.ll +++ b/bench/openexr/optimized/internal_huf.c.ll @@ -1299,8 +1299,7 @@ for.body104.i: ; preds = %for.body104.i, %for %22 = load i64, ptr %arrayidx106.i, align 8 %conv107.i = uitofp i64 %22 to double %23 = sub nsw i64 %20, %indvars.iv204.i - %sh_prom.i = and i64 %23, 4294967295 - %shl.i = shl i64 2, %sh_prom.i + %shl.i = shl i64 2, %23 %conv111.i = sitofp i64 %shl.i to double %mul.i = fmul double %conv107.i, %conv111.i %arrayidx113.i = getelementptr inbounds double, ptr %offset.i, i64 %indvars.iv204.i @@ -1328,8 +1327,7 @@ for.body132.i: ; preds = %for.body125.i, %for for.end138.i: ; preds = %for.body132.i, %for.body125.i %tmp.0.lcssa.i = phi double [ 0.000000e+00, %for.body125.i ], [ %add135.i, %for.body132.i ] %25 = sub nsw i64 %20, %indvars.iv214.i - %sh_prom142.i = and i64 %25, 4294967295 - %shl143.i = shl i64 2, %sh_prom142.i + %shl143.i = shl i64 2, %25 %conv144.i = sitofp i64 %shl143.i to double %div.i = fdiv double %tmp.0.lcssa.i, %conv144.i %26 = tail call double @llvm.ceil.f64(double %div.i) @@ -1355,15 +1353,13 @@ for.cond176.preheader.i: ; preds = %for.body163.i, %for br i1 %cmp102.not179.i, label %for.end200.i, label %for.body193.preheader.i for.body163.i: ; preds = %for.body163.i, %for.body163.preheader.i + %28 = phi i64 [ 0, %for.body163.preheader.i ], [ %add170.i, %for.body163.i ] %indvars.iv220.i = phi i64 [ %idxprom152.i.pre-phi, %for.body163.preheader.i ], [ %indvars.iv.next221.i, %for.body163.i ] %indvars.iv.next221.i = add nsw i64 %indvars.iv220.i, -1 - %arrayidx166.i = getelementptr inbounds [59 x i64], ptr %offset.i, i64 0, i64 %indvars.iv220.i - %28 = load i64, ptr %arrayidx166.i, align 8 %arrayidx169.i = getelementptr inbounds [59 x i64], ptr %codeCount.i, i64 0, i64 %indvars.iv220.i %29 = load i64, ptr %arrayidx169.i, align 8 %add170.i = add i64 %29, %28 - %idxprom171.i = and i64 %indvars.iv.next221.i, 4294967295 - %arrayidx172.i = getelementptr inbounds [59 x i64], ptr %offset.i, i64 0, i64 %idxprom171.i + %arrayidx172.i = getelementptr inbounds [59 x i64], ptr %offset.i, i64 0, i64 %indvars.iv.next221.i store i64 %add170.i, ptr %arrayidx172.i, align 8 %cmp161.not.not.i = icmp sgt i64 %indvars.iv.next221.i, %27 br i1 %cmp161.not.not.i, label %for.body163.i, label %for.cond176.preheader.i, !llvm.loop !24 diff --git a/bench/openssl/optimized/libcrypto-lib-bio_print.ll b/bench/openssl/optimized/libcrypto-lib-bio_print.ll index 5327c336f30..ab637dd9969 100644 --- a/bench/openssl/optimized/libcrypto-lib-bio_print.ll +++ b/bench/openssl/optimized/libcrypto-lib-bio_print.ll @@ -2637,8 +2637,7 @@ while.cond263: ; preds = %while.cond263.prehe while.body266: ; preds = %while.cond263 %indvars.iv.next307 = add nsw i64 %indvars.iv306, -1 - %idxprom268 = and i64 %indvars.iv.next307, 4294967295 - %arrayidx269 = getelementptr inbounds [20 x i8], ptr %fconvert, i64 0, i64 %idxprom268 + %arrayidx269 = getelementptr inbounds [20 x i8], ptr %fconvert, i64 0, i64 %indvars.iv.next307 %19 = load i8, ptr %arrayidx269, align 1 %conv270 = sext i8 %19 to i32 %call271 = tail call fastcc i32 @doapr_outch(ptr noundef %sbuffer, ptr noundef %buffer, ptr noundef %currlen, ptr noundef %maxlen, i32 noundef %conv270), !range !4 @@ -2695,8 +2694,7 @@ while.cond314: ; preds = %while.body317, %if. while.body317: ; preds = %while.cond314 %indvars.iv.next310 = add nsw i64 %indvars.iv309, -1 - %idxprom319 = and i64 %indvars.iv.next310, 4294967295 - %arrayidx320 = getelementptr inbounds [20 x i8], ptr %econvert, i64 0, i64 %idxprom319 + %arrayidx320 = getelementptr inbounds [20 x i8], ptr %econvert, i64 0, i64 %indvars.iv.next310 %21 = load i8, ptr %arrayidx320, align 1 %conv321 = sext i8 %21 to i32 %call322 = tail call fastcc i32 @doapr_outch(ptr noundef %sbuffer, ptr noundef %buffer, ptr noundef %currlen, ptr noundef %maxlen, i32 noundef %conv321), !range !4 diff --git a/bench/openssl/optimized/libcrypto-lib-scalar.ll b/bench/openssl/optimized/libcrypto-lib-scalar.ll index d1b07ebdf5b..9e0dbea7697 100644 --- a/bench/openssl/optimized/libcrypto-lib-scalar.ll +++ b/bench/openssl/optimized/libcrypto-lib-scalar.ll @@ -79,9 +79,8 @@ for.body23: ; preds = %for.end, %if.end if.then: ; preds = %for.body23 %conv34 = trunc i128 %add33 to i64 - %6 = add nuw i64 %indvars.iv36, 4294967295 - %idxprom35 = and i64 %6, 4294967295 - %arrayidx36 = getelementptr inbounds [8 x i64], ptr %accum, i64 0, i64 %idxprom35 + %6 = add nsw i64 %indvars.iv36, -1 + %arrayidx36 = getelementptr inbounds [8 x i64], ptr %accum, i64 0, i64 %6 store i64 %conv34, ptr %arrayidx36, align 8 br label %if.end diff --git a/bench/openssl/optimized/libcrypto-lib-v3_addr.ll b/bench/openssl/optimized/libcrypto-lib-v3_addr.ll index 43f01405e41..16ba788931a 100644 --- a/bench/openssl/optimized/libcrypto-lib-v3_addr.ll +++ b/bench/openssl/optimized/libcrypto-lib-v3_addr.ll @@ -1365,8 +1365,7 @@ for.cond87: ; preds = %lor.lhs.false77, %l land.rhs: ; preds = %for.cond87 %indvars.iv.next = add nsw i64 %indvars.iv, -1 - %idxprom = and i64 %indvars.iv.next, 4294967295 - %arrayidx = getelementptr inbounds [16 x i8], ptr %b_min, i64 0, i64 %idxprom + %arrayidx = getelementptr inbounds [16 x i8], ptr %b_min, i64 0, i64 %indvars.iv.next %14 = load i8, ptr %arrayidx, align 1 %dec = add i8 %14, -1 store i8 %dec, ptr %arrayidx, align 1 @@ -1822,8 +1821,7 @@ for.cond37.i: ; preds = %if.end27.i, %land.r land.rhs.i: ; preds = %for.cond37.i %indvars.iv.next.i = add nsw i64 %indvars.iv.i, -1 - %idxprom.i = and i64 %indvars.iv.next.i, 4294967295 - %arrayidx.i = getelementptr inbounds [16 x i8], ptr %b_min.i, i64 0, i64 %idxprom.i + %arrayidx.i = getelementptr inbounds [16 x i8], ptr %b_min.i, i64 0, i64 %indvars.iv.next.i %9 = load i8, ptr %arrayidx.i, align 1 %dec.i = add i8 %9, -1 store i8 %dec.i, ptr %arrayidx.i, align 1 @@ -3669,17 +3667,15 @@ for.cond: ; preds = %addr_expand.exit55, br i1 %cmp16.not, label %if.end49.thread, label %land.lhs.true land.lhs.true: ; preds = %for.cond - %21 = add i64 %indvars.iv, 4294967295 - %idxprom = and i64 %21, 4294967295 - %arrayidx18 = getelementptr inbounds [16 x i8], ptr %addr, i64 0, i64 %idxprom + %21 = add nsw i64 %indvars.iv, -1 + %arrayidx18 = getelementptr inbounds [16 x i8], ptr %addr, i64 0, i64 %21 %22 = load i8, ptr %arrayidx18, align 1 %cmp20 = icmp eq i8 %22, 0 br i1 %cmp20, label %land.rhs, label %for.end land.rhs: ; preds = %land.lhs.true %indvars.iv.next = add nsw i64 %indvars.iv, -2 - %idxprom23 = and i64 %indvars.iv.next, 4294967294 - %arrayidx24 = getelementptr inbounds [16 x i8], ptr %addr, i64 0, i64 %idxprom23 + %arrayidx24 = getelementptr inbounds [16 x i8], ptr %addr, i64 0, i64 %indvars.iv.next %23 = load i8, ptr %arrayidx24, align 2 %cmp26 = icmp eq i8 %23, 0 br i1 %cmp26, label %for.cond, label %for.end, !llvm.loop !30 diff --git a/bench/openssl/optimized/libcrypto-shlib-bio_print.ll b/bench/openssl/optimized/libcrypto-shlib-bio_print.ll index f4e6ef136ed..eba2f9bce1f 100644 --- a/bench/openssl/optimized/libcrypto-shlib-bio_print.ll +++ b/bench/openssl/optimized/libcrypto-shlib-bio_print.ll @@ -2637,8 +2637,7 @@ while.cond263: ; preds = %while.cond263.prehe while.body266: ; preds = %while.cond263 %indvars.iv.next307 = add nsw i64 %indvars.iv306, -1 - %idxprom268 = and i64 %indvars.iv.next307, 4294967295 - %arrayidx269 = getelementptr inbounds [20 x i8], ptr %fconvert, i64 0, i64 %idxprom268 + %arrayidx269 = getelementptr inbounds [20 x i8], ptr %fconvert, i64 0, i64 %indvars.iv.next307 %19 = load i8, ptr %arrayidx269, align 1 %conv270 = sext i8 %19 to i32 %call271 = tail call fastcc i32 @doapr_outch(ptr noundef %sbuffer, ptr noundef %buffer, ptr noundef %currlen, ptr noundef %maxlen, i32 noundef %conv270), !range !4 @@ -2695,8 +2694,7 @@ while.cond314: ; preds = %while.body317, %if. while.body317: ; preds = %while.cond314 %indvars.iv.next310 = add nsw i64 %indvars.iv309, -1 - %idxprom319 = and i64 %indvars.iv.next310, 4294967295 - %arrayidx320 = getelementptr inbounds [20 x i8], ptr %econvert, i64 0, i64 %idxprom319 + %arrayidx320 = getelementptr inbounds [20 x i8], ptr %econvert, i64 0, i64 %indvars.iv.next310 %21 = load i8, ptr %arrayidx320, align 1 %conv321 = sext i8 %21 to i32 %call322 = tail call fastcc i32 @doapr_outch(ptr noundef %sbuffer, ptr noundef %buffer, ptr noundef %currlen, ptr noundef %maxlen, i32 noundef %conv321), !range !4 diff --git a/bench/openssl/optimized/libcrypto-shlib-scalar.ll b/bench/openssl/optimized/libcrypto-shlib-scalar.ll index 6547596bcb0..fe942b3cfdc 100644 --- a/bench/openssl/optimized/libcrypto-shlib-scalar.ll +++ b/bench/openssl/optimized/libcrypto-shlib-scalar.ll @@ -79,9 +79,8 @@ for.body23: ; preds = %for.end, %if.end if.then: ; preds = %for.body23 %conv34 = trunc i128 %add33 to i64 - %6 = add nuw i64 %indvars.iv36, 4294967295 - %idxprom35 = and i64 %6, 4294967295 - %arrayidx36 = getelementptr inbounds [8 x i64], ptr %accum, i64 0, i64 %idxprom35 + %6 = add nsw i64 %indvars.iv36, -1 + %arrayidx36 = getelementptr inbounds [8 x i64], ptr %accum, i64 0, i64 %6 store i64 %conv34, ptr %arrayidx36, align 8 br label %if.end diff --git a/bench/openssl/optimized/libcrypto-shlib-v3_addr.ll b/bench/openssl/optimized/libcrypto-shlib-v3_addr.ll index 0fa5983880b..d0e80b9dd0b 100644 --- a/bench/openssl/optimized/libcrypto-shlib-v3_addr.ll +++ b/bench/openssl/optimized/libcrypto-shlib-v3_addr.ll @@ -1365,8 +1365,7 @@ for.cond87: ; preds = %lor.lhs.false77, %l land.rhs: ; preds = %for.cond87 %indvars.iv.next = add nsw i64 %indvars.iv, -1 - %idxprom = and i64 %indvars.iv.next, 4294967295 - %arrayidx = getelementptr inbounds [16 x i8], ptr %b_min, i64 0, i64 %idxprom + %arrayidx = getelementptr inbounds [16 x i8], ptr %b_min, i64 0, i64 %indvars.iv.next %14 = load i8, ptr %arrayidx, align 1 %dec = add i8 %14, -1 store i8 %dec, ptr %arrayidx, align 1 @@ -1822,8 +1821,7 @@ for.cond37.i: ; preds = %if.end27.i, %land.r land.rhs.i: ; preds = %for.cond37.i %indvars.iv.next.i = add nsw i64 %indvars.iv.i, -1 - %idxprom.i = and i64 %indvars.iv.next.i, 4294967295 - %arrayidx.i = getelementptr inbounds [16 x i8], ptr %b_min.i, i64 0, i64 %idxprom.i + %arrayidx.i = getelementptr inbounds [16 x i8], ptr %b_min.i, i64 0, i64 %indvars.iv.next.i %9 = load i8, ptr %arrayidx.i, align 1 %dec.i = add i8 %9, -1 store i8 %dec.i, ptr %arrayidx.i, align 1 @@ -3669,17 +3667,15 @@ for.cond: ; preds = %addr_expand.exit55, br i1 %cmp16.not, label %if.end49.thread, label %land.lhs.true land.lhs.true: ; preds = %for.cond - %21 = add i64 %indvars.iv, 4294967295 - %idxprom = and i64 %21, 4294967295 - %arrayidx18 = getelementptr inbounds [16 x i8], ptr %addr, i64 0, i64 %idxprom + %21 = add nsw i64 %indvars.iv, -1 + %arrayidx18 = getelementptr inbounds [16 x i8], ptr %addr, i64 0, i64 %21 %22 = load i8, ptr %arrayidx18, align 1 %cmp20 = icmp eq i8 %22, 0 br i1 %cmp20, label %land.rhs, label %for.end land.rhs: ; preds = %land.lhs.true %indvars.iv.next = add nsw i64 %indvars.iv, -2 - %idxprom23 = and i64 %indvars.iv.next, 4294967294 - %arrayidx24 = getelementptr inbounds [16 x i8], ptr %addr, i64 0, i64 %idxprom23 + %arrayidx24 = getelementptr inbounds [16 x i8], ptr %addr, i64 0, i64 %indvars.iv.next %23 = load i8, ptr %arrayidx24, align 2 %cmp26 = icmp eq i8 %23, 0 br i1 %cmp26, label %for.cond, label %for.end, !llvm.loop !30 diff --git a/bench/openssl/optimized/libssl-lib-quic_txp.ll b/bench/openssl/optimized/libssl-lib-quic_txp.ll index c7ecd19b3ed..1115201e624 100644 --- a/bench/openssl/optimized/libssl-lib-quic_txp.ll +++ b/bench/openssl/optimized/libssl-lib-quic_txp.ll @@ -765,9 +765,8 @@ cond.end.thread: ; preds = %for.body6 br label %ossl_quic_enc_level_to_pn_space.exit.i cond.end: ; preds = %for.body6 - %8 = add nuw i64 %indvars.iv669, 4294967295 - %idxprom8 = and i64 %8, 4294967295 - %hwm = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %idxprom8, i32 5, i32 2 + %8 = add nsw i64 %indvars.iv669, -1 + %hwm = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %8, i32 5, i32 2 %9 = load i64, ptr %hwm, align 16 %hwm13 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv669, i32 5, i32 2 store i64 %9, ptr %hwm13, align 16 diff --git a/bench/openssl/optimized/libssl-lib-tls_common.ll b/bench/openssl/optimized/libssl-lib-tls_common.ll index 895ea7ec70b..cc3174886cc 100644 --- a/bench/openssl/optimized/libssl-lib-tls_common.ll +++ b/bench/openssl/optimized/libssl-lib-tls_common.ll @@ -3590,8 +3590,7 @@ for.cond: ; preds = %for.body, %entry for.body: ; preds = %for.cond %indvars.iv.next = add nsw i64 %indvars.iv, -1 - %idxprom = and i64 %indvars.iv.next, 4294967295 - %arrayidx = getelementptr inbounds %struct.ossl_record_layer_st, ptr %rl, i64 0, i32 25, i64 %idxprom + %arrayidx = getelementptr inbounds %struct.ossl_record_layer_st, ptr %rl, i64 0, i32 25, i64 %indvars.iv.next %0 = load i8, ptr %arrayidx, align 1 %inc = add i8 %0, 1 store i8 %inc, ptr %arrayidx, align 1 diff --git a/bench/openssl/optimized/libssl-shlib-quic_txp.ll b/bench/openssl/optimized/libssl-shlib-quic_txp.ll index 6705233f2eb..6ab8e0ed68f 100644 --- a/bench/openssl/optimized/libssl-shlib-quic_txp.ll +++ b/bench/openssl/optimized/libssl-shlib-quic_txp.ll @@ -765,9 +765,8 @@ cond.end.thread: ; preds = %for.body6 br label %ossl_quic_enc_level_to_pn_space.exit.i cond.end: ; preds = %for.body6 - %8 = add nuw i64 %indvars.iv669, 4294967295 - %idxprom8 = and i64 %8, 4294967295 - %hwm = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %idxprom8, i32 5, i32 2 + %8 = add nsw i64 %indvars.iv669, -1 + %hwm = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %8, i32 5, i32 2 %9 = load i64, ptr %hwm, align 16 %hwm13 = getelementptr inbounds [4 x %struct.txp_pkt], ptr %pkt, i64 0, i64 %indvars.iv669, i32 5, i32 2 store i64 %9, ptr %hwm13, align 16 diff --git a/bench/openssl/optimized/libssl-shlib-tls_common.ll b/bench/openssl/optimized/libssl-shlib-tls_common.ll index 376e0b6963c..128ca0d3c18 100644 --- a/bench/openssl/optimized/libssl-shlib-tls_common.ll +++ b/bench/openssl/optimized/libssl-shlib-tls_common.ll @@ -3590,8 +3590,7 @@ for.cond: ; preds = %for.body, %entry for.body: ; preds = %for.cond %indvars.iv.next = add nsw i64 %indvars.iv, -1 - %idxprom = and i64 %indvars.iv.next, 4294967295 - %arrayidx = getelementptr inbounds %struct.ossl_record_layer_st, ptr %rl, i64 0, i32 25, i64 %idxprom + %arrayidx = getelementptr inbounds %struct.ossl_record_layer_st, ptr %rl, i64 0, i32 25, i64 %indvars.iv.next %0 = load i8, ptr %arrayidx, align 1 %inc = add i8 %0, 1 store i8 %inc, ptr %arrayidx, align 1 diff --git a/bench/openvdb/optimized/Maps.cc.ll b/bench/openvdb/optimized/Maps.cc.ll index 5f7b817ba98..38cc9bfef46 100644 --- a/bench/openvdb/optimized/Maps.cc.ll +++ b/bench/openvdb/optimized/Maps.cc.ll @@ -22456,21 +22456,19 @@ for.body42.lr.ph: ; preds = %for.cond40.preheade for.body: ; preds = %for.body.lr.ph, %for.body %indvars.iv = phi i64 [ 0, %for.body.lr.ph ], [ %indvars.iv.next, %for.body ] %13 = mul nuw nsw i64 %indvars.iv, 3 - %14 = trunc i64 %13 to i32 - %15 = add i32 %14, %i - %idxprom.i129 = zext nneg i32 %15 to i64 - %arrayidx.i130 = getelementptr inbounds [9 x double], ptr %S, i64 0, i64 %idxprom.i129 - %16 = load double, ptr %arrayidx.i130, align 8 - %17 = add nsw i64 %13, %idxprom.i.i - %arrayidx.i134 = getelementptr inbounds [9 x double], ptr %S, i64 0, i64 %17 - %18 = load double, ptr %arrayidx.i134, align 8 - %neg = fmul double %18, %9 - %19 = tail call double @llvm.fmuladd.f64(double %div20, double %16, double %neg) - store double %19, ptr %arrayidx.i130, align 8 - %20 = load double, ptr %arrayidx.i134, align 8 - %mul36 = fmul double %div20, %20 - %21 = tail call double @llvm.fmuladd.f64(double %mul21, double %16, double %mul36) - store double %21, ptr %arrayidx.i134, align 8 + %14 = add nuw nsw i64 %13, %idxprom.i.i117 + %arrayidx.i130 = getelementptr inbounds [9 x double], ptr %S, i64 0, i64 %14 + %15 = load double, ptr %arrayidx.i130, align 8 + %16 = add nsw i64 %13, %idxprom.i.i + %arrayidx.i134 = getelementptr inbounds [9 x double], ptr %S, i64 0, i64 %16 + %17 = load double, ptr %arrayidx.i134, align 8 + %neg = fmul double %17, %9 + %18 = tail call double @llvm.fmuladd.f64(double %div20, double %15, double %neg) + store double %18, ptr %arrayidx.i130, align 8 + %19 = load double, ptr %arrayidx.i134, align 8 + %mul36 = fmul double %div20, %19 + %20 = tail call double @llvm.fmuladd.f64(double %mul21, double %15, double %mul36) + store double %20, ptr %arrayidx.i134, align 8 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count br i1 %exitcond.not, label %for.cond40.preheader, label %for.body, !llvm.loop !533 @@ -22485,71 +22483,71 @@ for.cond58.preheader.for.cond75.preheader_crit_edge: ; preds = %for.cond58.prehe for.body60.lr.ph: ; preds = %for.cond58.preheader %mul.i171 = mul nsw i32 %j, 3 - %22 = fneg double %mul21 - %23 = sext i32 %mul.i to i64 - %24 = sext i32 %mul.i171 to i64 + %21 = fneg double %mul21 + %22 = sext i32 %mul.i to i64 + %23 = sext i32 %mul.i171 to i64 br label %for.body60 for.body42: ; preds = %for.body42.lr.ph, %for.body42 %indvars.iv221 = phi i64 [ %11, %for.body42.lr.ph ], [ %indvars.iv.next222, %for.body42 ] - %25 = add nsw i64 %indvars.iv221, %12 - %arrayidx.i150 = getelementptr inbounds [9 x double], ptr %S, i64 0, i64 %25 - %26 = load double, ptr %arrayidx.i150, align 8 - %27 = mul nsw i64 %indvars.iv221, 3 - %28 = add nsw i64 %27, %idxprom.i.i - %arrayidx.i154 = getelementptr inbounds [9 x double], ptr %S, i64 0, i64 %28 - %29 = load double, ptr %arrayidx.i154, align 8 - %neg47 = fmul double %29, %10 - %30 = tail call double @llvm.fmuladd.f64(double %div20, double %26, double %neg47) - store double %30, ptr %arrayidx.i150, align 8 - %31 = load double, ptr %arrayidx.i154, align 8 - %mul51 = fmul double %div20, %31 - %32 = tail call double @llvm.fmuladd.f64(double %mul21, double %26, double %mul51) - store double %32, ptr %arrayidx.i154, align 8 + %24 = add nsw i64 %indvars.iv221, %12 + %arrayidx.i150 = getelementptr inbounds [9 x double], ptr %S, i64 0, i64 %24 + %25 = load double, ptr %arrayidx.i150, align 8 + %26 = mul nsw i64 %indvars.iv221, 3 + %27 = add nsw i64 %26, %idxprom.i.i + %arrayidx.i154 = getelementptr inbounds [9 x double], ptr %S, i64 0, i64 %27 + %28 = load double, ptr %arrayidx.i154, align 8 + %neg47 = fmul double %28, %10 + %29 = tail call double @llvm.fmuladd.f64(double %div20, double %25, double %neg47) + store double %29, ptr %arrayidx.i150, align 8 + %30 = load double, ptr %arrayidx.i154, align 8 + %mul51 = fmul double %div20, %30 + %31 = tail call double @llvm.fmuladd.f64(double %mul21, double %25, double %mul51) + store double %31, ptr %arrayidx.i154, align 8 %indvars.iv.next222 = add nsw i64 %indvars.iv221, 1 %lftr.wideiv = trunc i64 %indvars.iv.next222 to i32 %exitcond227.not = icmp eq i32 %lftr.wideiv, %j br i1 %exitcond227.not, label %for.cond58.preheader, label %for.body42, !llvm.loop !534 for.cond75.preheader: ; preds = %for.body60, %for.cond58.preheader.for.cond75.preheader_crit_edge - %.pre-phi = phi double [ %.pre, %for.cond58.preheader.for.cond75.preheader_crit_edge ], [ %22, %for.body60 ] + %.pre-phi = phi double [ %.pre, %for.cond58.preheader.for.cond75.preheader_crit_edge ], [ %21, %for.body60 ] br label %for.body77 for.body60: ; preds = %for.body60.lr.ph, %for.body60 %indvars.iv228 = phi i64 [ %idxprom.i.i, %for.body60.lr.ph ], [ %indvars.iv.next229, %for.body60 ] %indvars.iv.next229 = add nsw i64 %indvars.iv228, 1 - %33 = add nsw i64 %indvars.iv.next229, %23 - %arrayidx.i170 = getelementptr inbounds [9 x double], ptr %S, i64 0, i64 %33 - %34 = load double, ptr %arrayidx.i170, align 8 - %35 = add nsw i64 %indvars.iv.next229, %24 - %arrayidx.i174 = getelementptr inbounds [9 x double], ptr %S, i64 0, i64 %35 - %36 = load double, ptr %arrayidx.i174, align 8 - %neg65 = fmul double %36, %22 - %37 = tail call double @llvm.fmuladd.f64(double %div20, double %34, double %neg65) - store double %37, ptr %arrayidx.i170, align 8 - %38 = load double, ptr %arrayidx.i174, align 8 - %mul69 = fmul double %div20, %38 - %39 = tail call double @llvm.fmuladd.f64(double %mul21, double %34, double %mul69) - store double %39, ptr %arrayidx.i174, align 8 + %32 = add nsw i64 %indvars.iv.next229, %22 + %arrayidx.i170 = getelementptr inbounds [9 x double], ptr %S, i64 0, i64 %32 + %33 = load double, ptr %arrayidx.i170, align 8 + %34 = add nsw i64 %indvars.iv.next229, %23 + %arrayidx.i174 = getelementptr inbounds [9 x double], ptr %S, i64 0, i64 %34 + %35 = load double, ptr %arrayidx.i174, align 8 + %neg65 = fmul double %35, %21 + %36 = tail call double @llvm.fmuladd.f64(double %div20, double %33, double %neg65) + store double %36, ptr %arrayidx.i170, align 8 + %37 = load double, ptr %arrayidx.i174, align 8 + %mul69 = fmul double %div20, %37 + %38 = tail call double @llvm.fmuladd.f64(double %mul21, double %33, double %mul69) + store double %38, ptr %arrayidx.i174, align 8 %exitcond233.not = icmp eq i64 %indvars.iv.next229, 2 br i1 %exitcond233.not, label %for.cond75.preheader, label %for.body60, !llvm.loop !535 for.body77: ; preds = %for.cond75.preheader, %for.body77 %indvars.iv234 = phi i64 [ 0, %for.cond75.preheader ], [ %indvars.iv.next235, %for.body77 ] - %40 = mul nuw nsw i64 %indvars.iv234, 3 - %41 = add nsw i64 %40, %idxprom.i.i117 - %arrayidx.i190 = getelementptr inbounds [9 x double], ptr %Q, i64 0, i64 %41 - %42 = load double, ptr %arrayidx.i190, align 8 - %43 = add nsw i64 %40, %idxprom.i.i - %arrayidx.i194 = getelementptr inbounds [9 x double], ptr %Q, i64 0, i64 %43 - %44 = load double, ptr %arrayidx.i194, align 8 - %neg82 = fmul double %44, %.pre-phi - %45 = tail call double @llvm.fmuladd.f64(double %div20, double %42, double %neg82) - store double %45, ptr %arrayidx.i190, align 8 - %46 = load double, ptr %arrayidx.i194, align 8 - %mul86 = fmul double %div20, %46 - %47 = tail call double @llvm.fmuladd.f64(double %mul21, double %42, double %mul86) - store double %47, ptr %arrayidx.i194, align 8 + %39 = mul nuw nsw i64 %indvars.iv234, 3 + %40 = add nsw i64 %39, %idxprom.i.i117 + %arrayidx.i190 = getelementptr inbounds [9 x double], ptr %Q, i64 0, i64 %40 + %41 = load double, ptr %arrayidx.i190, align 8 + %42 = add nsw i64 %39, %idxprom.i.i + %arrayidx.i194 = getelementptr inbounds [9 x double], ptr %Q, i64 0, i64 %42 + %43 = load double, ptr %arrayidx.i194, align 8 + %neg82 = fmul double %43, %.pre-phi + %44 = tail call double @llvm.fmuladd.f64(double %div20, double %41, double %neg82) + store double %44, ptr %arrayidx.i190, align 8 + %45 = load double, ptr %arrayidx.i194, align 8 + %mul86 = fmul double %div20, %45 + %46 = tail call double @llvm.fmuladd.f64(double %mul21, double %41, double %mul86) + store double %46, ptr %arrayidx.i194, align 8 %indvars.iv.next235 = add nuw nsw i64 %indvars.iv234, 1 %exitcond240.not = icmp eq i64 %indvars.iv.next235, 3 br i1 %exitcond240.not, label %for.end90, label %for.body77, !llvm.loop !536 diff --git a/bench/pbrt-v4/optimized/image.cpp.ll b/bench/pbrt-v4/optimized/image.cpp.ll index 62516100072..04df19d53f1 100644 --- a/bench/pbrt-v4/optimized/image.cpp.ll +++ b/bench/pbrt-v4/optimized/image.cpp.ll @@ -25549,13 +25549,12 @@ invoke.cont42: ; preds = %invoke.cont35 to label %invoke.cont45 unwind label %lpad5.loopexit.split-lp.loopexit invoke.cont45: ; preds = %invoke.cont42 - %18 = mul i64 %indvars.iv117, 3 - %19 = and i64 %18, 4294967295 - %gep = getelementptr float, ptr %invariant.gep, i64 %19 + %18 = mul nuw nsw i64 %indvars.iv117, 3 + %gep = getelementptr float, ptr %invariant.gep, i64 %18 store float %call46, ptr %gep, align 4 - %gep111 = getelementptr float, ptr %invariant.gep110, i64 %19 + %gep111 = getelementptr float, ptr %invariant.gep110, i64 %18 store float %call46, ptr %gep111, align 4 - %arrayidx.i33 = getelementptr inbounds float, ptr %call.i29, i64 %19 + %arrayidx.i33 = getelementptr inbounds float, ptr %call.i29, i64 %18 store float %call46, ptr %arrayidx.i33, align 4 br label %for.inc84 @@ -25566,10 +25565,10 @@ invoke.cont60: ; preds = %invoke.cont35 br i1 %cmp62, label %for.cond66.preheader, label %if.then63 for.cond66.preheader: ; preds = %invoke.cont60 - %20 = mul i64 %indvars.iv117, 3 - %21 = and i64 %20, 4294967295 - %22 = trunc i64 %indvars.iv117 to i32 - %invariant.gep126 = getelementptr float, ptr %call.i29, i64 %21 + %19 = mul i64 %indvars.iv117, 3 + %20 = and i64 %19, 4294967295 + %21 = trunc i64 %indvars.iv117 to i32 + %invariant.gep126 = getelementptr float, ptr %call.i29, i64 %20 br label %for.cond.preheader.i if.then63: ; preds = %invoke.cont60 @@ -25586,11 +25585,11 @@ for.cond.preheader.i: ; preds = %for.cond66.preheade call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %wrapMode.i) %resolution.sroa.9.0.extract.shift.i = lshr i64 %agg.tmp.sroa.0.0.copyload.i, 32 store i64 4294967297, ptr %wrapMode.i, align 8 - %23 = trunc i64 %agg.tmp.sroa.0.0.copyload.i to i32 + %22 = trunc i64 %agg.tmp.sroa.0.0.copyload.i to i32 br label %for.body.i for.body.i: ; preds = %for.inc.i, %for.cond.preheader.i - %p.i.sroa.0.4 = phi i32 [ %22, %for.cond.preheader.i ], [ %p.i.sroa.0.6, %for.inc.i ] + %p.i.sroa.0.4 = phi i32 [ %21, %for.cond.preheader.i ], [ %p.i.sroa.0.6, %for.inc.i ] %cmp.i.i56 = phi i1 [ true, %for.cond.preheader.i ], [ false, %for.inc.i ] %indvars.iv.i = phi i64 [ 0, %for.cond.preheader.i ], [ 1, %for.inc.i ] %.sroa.speculated = select i1 %cmp.i.i56, i32 %p.i.sroa.0.4, i32 %indvars @@ -25603,18 +25602,18 @@ for.body.i: ; preds = %for.inc.i, %for.con if.end78.i: ; preds = %for.body.i %arrayidx.i77.i = getelementptr inbounds [2 x i32], ptr %wrapMode.i, i64 0, i64 %indvars.iv.i - %24 = load i32, ptr %arrayidx.i77.i, align 4 - switch i32 %24, label %sw.default.i60.invoke [ + %23 = load i32, ptr %arrayidx.i77.i, align 4 + switch i32 %23, label %sw.default.i60.invoke [ i32 2, label %sw.bb.i58 i32 1, label %sw.bb85.i i32 0, label %call.i38.noexc ] sw.bb.i58: ; preds = %if.end78.i - %25 = srem i32 %.sroa.speculated, %.sroa.speculated111.i - %cmp.i84.i = icmp slt i32 %25, 0 + %24 = srem i32 %.sroa.speculated, %.sroa.speculated111.i + %cmp.i84.i = icmp slt i32 %24, 0 %add.i.i59 = select i1 %cmp.i84.i, i32 %.sroa.speculated111.i, i32 0 - %cond.i.i = add nsw i32 %add.i.i59, %25 + %cond.i.i = add nsw i32 %add.i.i59, %24 br label %for.inc.sink.split.i sw.bb85.i: ; preds = %if.end78.i @@ -25625,9 +25624,9 @@ sw.bb85.i: ; preds = %if.end78.i br label %for.inc.sink.split.i sw.default.i60.invoke: ; preds = %if.end.i, %if.end78.i - %26 = phi i32 [ 142, %if.end78.i ], [ 273, %if.end.i ] - %27 = phi ptr [ @.str.97, %if.end78.i ], [ @.str.23, %if.end.i ] - invoke void @_ZN4pbrt8LogFatalENS_8LogLevelEPKciS2_(i32 noundef 2, ptr noundef nonnull @.str.95, i32 noundef %26, ptr noundef nonnull %27) #32 + %25 = phi i32 [ 142, %if.end78.i ], [ 273, %if.end.i ] + %26 = phi ptr [ @.str.97, %if.end78.i ], [ @.str.23, %if.end.i ] + invoke void @_ZN4pbrt8LogFatalENS_8LogLevelEPKciS2_(i32 noundef 2, ptr noundef nonnull @.str.95, i32 noundef %25, ptr noundef nonnull %26) #32 to label %sw.default.i60.cont unwind label %lpad5.loopexit.split-lp.loopexit.split-lp sw.default.i60.cont: ; preds = %sw.default.i60.invoke @@ -25649,27 +25648,27 @@ if.end.i: ; preds = %for.inc.sink.split. %p.i.sroa.13.5.ph = phi i32 [ %indvars, %for.inc.i ], [ %cond.i.sink.i, %for.inc.sink.split.i ] %p.i.sroa.0.7.ph = phi i32 [ %p.i.sroa.0.6, %for.inc.i ], [ %p.i.sroa.0.4, %for.inc.sink.split.i ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %wrapMode.i) - %28 = load i32, ptr %this, align 8 - switch i32 %28, label %sw.default.i60.invoke [ + %27 = load i32, ptr %this, align 8 + switch i32 %27, label %sw.default.i60.invoke [ i32 0, label %sw.bb.i i32 1, label %sw.bb14.i i32 2, label %sw.bb22.i ] sw.bb.i: ; preds = %if.end.i - %29 = load i64, ptr %nStored.i.i, align 8 - %conv.i.i.i = trunc i64 %29 to i32 - %mul.i.i = mul nsw i32 %p.i.sroa.13.5.ph, %23 + %28 = load i64, ptr %nStored.i.i, align 8 + %conv.i.i.i = trunc i64 %28 to i32 + %mul.i.i = mul nsw i32 %p.i.sroa.13.5.ph, %22 %add.i.i = add nsw i32 %mul.i.i, %p.i.sroa.0.7.ph %mul3.i.i = mul nsw i32 %add.i.i, %conv.i.i.i %conv.i.i = sext i32 %mul3.i.i to i64 - %30 = load ptr, ptr %ptr.i.i, align 8 - %31 = getelementptr i8, ptr %30, i64 %conv.i.i - %arrayidx.i.i = getelementptr i8, ptr %31, i64 %indvars.iv - %32 = load i64, ptr %encoding.i, align 8 - %and.i.i.i.i = and i64 %32, 144115188075855871 - %33 = inttoptr i64 %and.i.i.i.i to ptr - %shr.i.i.i.i = lshr i64 %32, 57 + %29 = load ptr, ptr %ptr.i.i, align 8 + %30 = getelementptr i8, ptr %29, i64 %conv.i.i + %arrayidx.i.i = getelementptr i8, ptr %30, i64 %indvars.iv + %31 = load i64, ptr %encoding.i, align 8 + %and.i.i.i.i = and i64 %31, 144115188075855871 + %32 = inttoptr i64 %and.i.i.i.i to ptr + %shr.i.i.i.i = lshr i64 %31, 57 %conv.i.i.i.i = trunc i64 %shr.i.i.i.i to i32 switch i32 %conv.i.i.i.i, label %sw.default.i.i.i.i [ i32 1, label %for.body.i.i.i.i.i.preheader.i @@ -25677,36 +25676,36 @@ sw.bb.i: ; preds = %if.end.i ] for.body.i.i.i.i.i.preheader.i: ; preds = %sw.bb.i - %34 = load i8, ptr %arrayidx.i.i, align 1 - %conv3.i.i.i.i.i.i = uitofp i8 %34 to float + %33 = load i8, ptr %arrayidx.i.i, align 1 + %conv3.i.i.i.i.i.i = uitofp i8 %33 to float %div.i.i.i.i.i.i = fdiv float %conv3.i.i.i.i.i.i, 2.550000e+02 store float %div.i.i.i.i.i.i, ptr %r.i, align 4 br label %_ZNK4pbrt13ColorEncoding8ToLinearEN4pstd4spanIKhEENS2_IfEE.exit.i sw.bb3.i.i.i.i: ; preds = %sw.bb.i - invoke void @_ZNK4pbrt17sRGBColorEncoding8ToLinearEN4pstd4spanIKhEENS2_IfEE(ptr noundef nonnull align 1 dereferenceable(1) %33, ptr %arrayidx.i.i, i64 1, ptr nonnull %r.i, i64 1) + invoke void @_ZNK4pbrt17sRGBColorEncoding8ToLinearEN4pstd4spanIKhEENS2_IfEE(ptr noundef nonnull align 1 dereferenceable(1) %32, ptr %arrayidx.i.i, i64 1, ptr nonnull %r.i, i64 1) to label %_ZNK4pbrt13ColorEncoding8ToLinearEN4pstd4spanIKhEENS2_IfEE.exit.i unwind label %lpad5.loopexit sw.default.i.i.i.i: ; preds = %sw.bb.i - invoke void @_ZNK4pbrt18GammaColorEncoding8ToLinearEN4pstd4spanIKhEENS2_IfEE(ptr noundef nonnull align 4 dereferenceable(5124) %33, ptr %arrayidx.i.i, i64 1, ptr nonnull %r.i, i64 1) + invoke void @_ZNK4pbrt18GammaColorEncoding8ToLinearEN4pstd4spanIKhEENS2_IfEE(ptr noundef nonnull align 4 dereferenceable(5124) %32, ptr %arrayidx.i.i, i64 1, ptr nonnull %r.i, i64 1) to label %_ZNK4pbrt13ColorEncoding8ToLinearEN4pstd4spanIKhEENS2_IfEE.exit.i unwind label %lpad5.loopexit _ZNK4pbrt13ColorEncoding8ToLinearEN4pstd4spanIKhEENS2_IfEE.exit.i: ; preds = %sw.default.i.i.i.i, %sw.bb3.i.i.i.i, %for.body.i.i.i.i.i.preheader.i - %35 = load float, ptr %r.i, align 4 + %34 = load float, ptr %r.i, align 4 br label %invoke.cont76 sw.bb14.i: ; preds = %if.end.i - %36 = load i64, ptr %nStored.i.i, align 8 - %conv.i.i8.i = trunc i64 %36 to i32 - %mul.i10.i = mul nsw i32 %p.i.sroa.13.5.ph, %23 + %35 = load i64, ptr %nStored.i.i, align 8 + %conv.i.i8.i = trunc i64 %35 to i32 + %mul.i10.i = mul nsw i32 %p.i.sroa.13.5.ph, %22 %add.i11.i = add nsw i32 %mul.i10.i, %p.i.sroa.0.7.ph %mul3.i12.i = mul nsw i32 %add.i11.i, %conv.i.i8.i %conv.i13.i = sext i32 %mul3.i12.i to i64 - %37 = load ptr, ptr %ptr.i14.i, align 8 - %38 = getelementptr %"class.pbrt::Half", ptr %37, i64 %conv.i13.i - %arrayidx.i15.i = getelementptr %"class.pbrt::Half", ptr %38, i64 %indvars.iv - %39 = load i16, ptr %arrayidx.i15.i, align 2 - %conv.i16.i = zext i16 %39 to i32 + %36 = load ptr, ptr %ptr.i14.i, align 8 + %37 = getelementptr %"class.pbrt::Half", ptr %36, i64 %conv.i13.i + %arrayidx.i15.i = getelementptr %"class.pbrt::Half", ptr %37, i64 %indvars.iv + %38 = load i16, ptr %arrayidx.i15.i, align 2 + %conv.i16.i = zext i16 %38 to i32 %and.i.i = shl nuw nsw i32 %conv.i16.i, 13 %and3.i.i = and i32 %and.i.i, 260046848 %cmp.i.i = icmp eq i32 %and3.i.i, 260046848 @@ -25724,34 +25723,34 @@ if.else.i.i: ; preds = %sw.bb14.i if.then6.i.i: ; preds = %if.else.i.i %add7.i.i = or i32 %and.i.i, 947912704 - %40 = bitcast i32 %add7.i.i to float - %sub.i.i = fadd float %40, 0xBF10000000000000 - %41 = bitcast float %sub.i.i to i32 + %39 = bitcast i32 %add7.i.i to float + %sub.i.i = fadd float %39, 0xBF10000000000000 + %40 = bitcast float %sub.i.i to i32 br label %_ZNK4pbrt4HalfcvfEv.exit.i _ZNK4pbrt4HalfcvfEv.exit.i: ; preds = %if.then6.i.i, %if.else.i.i, %if.then.i.i - %o.sroa.0.0.i.i = phi i32 [ %add4.i.i, %if.then.i.i ], [ %41, %if.then6.i.i ], [ %add.i17.i, %if.else.i.i ] - %.signext.i.i = sext i16 %39 to i32 + %o.sroa.0.0.i.i = phi i32 [ %add4.i.i, %if.then.i.i ], [ %40, %if.then6.i.i ], [ %add.i17.i, %if.else.i.i ] + %.signext.i.i = sext i16 %38 to i32 %shl11.i.i = and i32 %.signext.i.i, -2147483648 %or.i.i = or i32 %o.sroa.0.0.i.i, %shl11.i.i - %42 = bitcast i32 %or.i.i to float + %41 = bitcast i32 %or.i.i to float br label %invoke.cont76 sw.bb22.i: ; preds = %if.end.i - %43 = load i64, ptr %nStored.i.i, align 8 - %conv.i.i22.i = trunc i64 %43 to i32 - %mul.i24.i = mul nsw i32 %p.i.sroa.13.5.ph, %23 + %42 = load i64, ptr %nStored.i.i, align 8 + %conv.i.i22.i = trunc i64 %42 to i32 + %mul.i24.i = mul nsw i32 %p.i.sroa.13.5.ph, %22 %add.i25.i = add nsw i32 %mul.i24.i, %p.i.sroa.0.7.ph %mul3.i26.i = mul nsw i32 %add.i25.i, %conv.i.i22.i %conv.i27.i = sext i32 %mul3.i26.i to i64 - %44 = load ptr, ptr %ptr.i28.i, align 8 - %45 = getelementptr float, ptr %44, i64 %conv.i27.i - %arrayidx.i29.i = getelementptr float, ptr %45, i64 %indvars.iv - %46 = load float, ptr %arrayidx.i29.i, align 4 + %43 = load ptr, ptr %ptr.i28.i, align 8 + %44 = getelementptr float, ptr %43, i64 %conv.i27.i + %arrayidx.i29.i = getelementptr float, ptr %44, i64 %indvars.iv + %45 = load float, ptr %arrayidx.i29.i, align 4 br label %invoke.cont76 invoke.cont76: ; preds = %sw.bb22.i, %_ZNK4pbrt4HalfcvfEv.exit.i, %_ZNK4pbrt13ColorEncoding8ToLinearEN4pstd4spanIKhEENS2_IfEE.exit.i, %call.i38.noexc - %retval.0.i = phi float [ %46, %sw.bb22.i ], [ %42, %_ZNK4pbrt4HalfcvfEv.exit.i ], [ %35, %_ZNK4pbrt13ColorEncoding8ToLinearEN4pstd4spanIKhEENS2_IfEE.exit.i ], [ 0.000000e+00, %call.i38.noexc ] + %retval.0.i = phi float [ %45, %sw.bb22.i ], [ %41, %_ZNK4pbrt4HalfcvfEv.exit.i ], [ %34, %_ZNK4pbrt13ColorEncoding8ToLinearEN4pstd4spanIKhEENS2_IfEE.exit.i ], [ 0.000000e+00, %call.i38.noexc ] call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %r.i) %gep127 = getelementptr float, ptr %invariant.gep126, i64 %indvars.iv store float %retval.0.i, ptr %gep127, align 4 @@ -25761,18 +25760,18 @@ invoke.cont76: ; preds = %sw.bb22.i, %_ZNK4pb for.inc84: ; preds = %invoke.cont76, %invoke.cont45 %indvars.iv.next118 = add nuw nsw i64 %indvars.iv117, 1 - %47 = load i32, ptr %resolution, align 4 - %48 = sext i32 %47 to i64 - %cmp33 = icmp slt i64 %indvars.iv.next118, %48 + %46 = load i32, ptr %resolution, align 4 + %47 = sext i32 %46 to i64 + %cmp33 = icmp slt i64 %indvars.iv.next118, %47 br i1 %cmp33, label %invoke.cont35, label %for.end86, !llvm.loop !226 for.end86: ; preds = %for.inc84, %for.cond30.preheader - %.lcssa = phi i32 [ %16, %for.cond30.preheader ], [ %47, %for.inc84 ] + %.lcssa = phi i32 [ %16, %for.cond30.preheader ], [ %46, %for.inc84 ] %mul91 = mul nsw i32 %.lcssa, 3 %conv92 = sext i32 %mul91 to i64 %call94 = call i64 @fwrite(ptr noundef nonnull %call.i29, i64 noundef 4, i64 noundef %conv92, ptr noundef nonnull %call) - %49 = load i32, ptr %resolution, align 4 - %mul97 = mul nsw i32 %49, 3 + %48 = load i32, ptr %resolution, align 4 + %mul97 = mul nsw i32 %48, 3 %conv98 = sext i32 %mul97 to i64 %cmp99 = icmp ult i64 %call94, %conv98 br i1 %cmp99, label %fail, label %for.cond, !llvm.loop !227 @@ -25784,12 +25783,12 @@ fail: ; preds = %for.end86, %if.end1 to label %_ZN4pbrt12StringPrintfIJRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_PKcDpOT_.exit.i48 unwind label %lpad.i.i45 common.resume.i46: ; preds = %lpad.i50, %lpad.i.i45 - %common.resume.op.i47 = phi { ptr, i32 } [ %50, %lpad.i.i45 ], [ %51, %lpad.i50 ] + %common.resume.op.i47 = phi { ptr, i32 } [ %49, %lpad.i.i45 ], [ %50, %lpad.i50 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i44) #31 br label %_ZNSt10unique_ptrIA_fSt14default_deleteIS0_EED2Ev.exit lpad.i.i45: ; preds = %fail - %50 = landingpad { ptr, i32 } + %49 = landingpad { ptr, i32 } cleanup br label %common.resume.i46 @@ -25799,7 +25798,7 @@ _ZN4pbrt12StringPrintfIJRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE to label %invoke.cont106 unwind label %lpad.i50 lpad.i50: ; preds = %_ZN4pbrt12StringPrintfIJRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES6_PKcDpOT_.exit.i48 - %51 = landingpad { ptr, i32 } + %50 = landingpad { ptr, i32 } cleanup br label %common.resume.i46 diff --git a/bench/pbrt-v4/optimized/integrators.cpp.ll b/bench/pbrt-v4/optimized/integrators.cpp.ll index 7742fe93ed7..96a499cf056 100644 --- a/bench/pbrt-v4/optimized/integrators.cpp.ll +++ b/bench/pbrt-v4/optimized/integrators.cpp.ll @@ -62409,16 +62409,15 @@ land.end.i.us: ; preds = %if.then19.us br i1 %cmp3.i.us, label %land.lhs.true4.i.us, label %land.rhs8.i land.lhs.true4.i.us: ; preds = %land.end.i.us - %conv5.i.us = and i64 %16, 4294967295 %18 = load i64, ptr %nStored.i5.i, align 8 - %cmp7.i.us = icmp ugt i64 %18, %conv5.i.us + %cmp7.i.us = icmp ugt i64 %18, %16 br i1 %cmp7.i.us, label %_ZNK4pbrt11BSSRDFTable11EvalProfileEii.exit.us, label %land.rhs8.i _ZNK4pbrt11BSSRDFTable11EvalProfileEii.exit.us: ; preds = %land.lhs.true4.i.us %mul.i.us = mul i64 %18, %conv.i24 %19 = load ptr, ptr %ptr.i.i26, align 8 %20 = getelementptr float, ptr %19, i64 %mul.i.us - %arrayidx.i.i27.us = getelementptr float, ptr %20, i64 %conv5.i.us + %arrayidx.i.i27.us = getelementptr float, ptr %20, i64 %16 %21 = load float, ptr %arrayidx.i.i27.us, align 4 %mul23.us = fmul float %mul17.us, %21 %add24.us = fadd float %sr.141.us, %mul23.us @@ -63023,16 +63022,15 @@ land.end.i.us: ; preds = %if.then27.us br i1 %cmp3.i.us, label %land.lhs.true4.i.us, label %land.rhs8.i land.lhs.true4.i.us: ; preds = %land.end.i.us - %conv5.i.us = and i64 %18, 4294967295 %20 = load i64, ptr %nStored.i5.i, align 8 - %cmp7.i.us = icmp ugt i64 %20, %conv5.i.us + %cmp7.i.us = icmp ugt i64 %20, %18 br i1 %cmp7.i.us, label %_ZNK4pbrt11BSSRDFTable11EvalProfileEii.exit.us, label %land.rhs8.i _ZNK4pbrt11BSSRDFTable11EvalProfileEii.exit.us: ; preds = %land.lhs.true4.i.us %mul.i.us = mul i64 %20, %conv.i29 %21 = load ptr, ptr %ptr.i.i31, align 8 %22 = getelementptr float, ptr %21, i64 %mul.i.us - %arrayidx.i.i32.us = getelementptr float, ptr %22, i64 %conv5.i.us + %arrayidx.i.i32.us = getelementptr float, ptr %22, i64 %18 %23 = load float, ptr %arrayidx.i.i32.us, align 4 %mul34.us = fmul float %12, %23 %mul37.us = fmul float %17, %mul34.us diff --git a/bench/pbrt-v4/optimized/math.cpp.ll b/bench/pbrt-v4/optimized/math.cpp.ll index 0358333ba3f..36186220f6e 100644 --- a/bench/pbrt-v4/optimized/math.cpp.ll +++ b/bench/pbrt-v4/optimized/math.cpp.ll @@ -2753,13 +2753,12 @@ for.body: ; preds = %do.end, %cond.end42 br i1 %cmp15.not, label %cond.false, label %cond.true cond.true: ; preds = %for.body - %4 = add nuw i64 %indvars.iv, 4294967295 - %conv17 = and i64 %4, 4294967295 - %arrayidx.i30 = getelementptr inbounds float, ptr %f.coerce0, i64 %conv17 + %4 = add nsw i64 %indvars.iv, -1 + %arrayidx.i30 = getelementptr inbounds float, ptr %f.coerce0, i64 %4 %5 = load float, ptr %arrayidx.i30, align 4 %sub19 = fsub float %3, %5 %mul = fmul float %sub14, %sub19 - %arrayidx.i31 = getelementptr inbounds float, ptr %nodes.coerce0, i64 %conv17 + %arrayidx.i31 = getelementptr inbounds float, ptr %nodes.coerce0, i64 %4 %6 = load float, ptr %arrayidx.i31, align 4 %sub23 = fsub float %1, %6 %div = fdiv float %mul, %sub23 diff --git a/bench/pbrt-v4/optimized/mesh.cpp.ll b/bench/pbrt-v4/optimized/mesh.cpp.ll index 54289994ef7..1e06a6c706a 100644 --- a/bench/pbrt-v4/optimized/mesh.cpp.ll +++ b/bench/pbrt-v4/optimized/mesh.cpp.ll @@ -3495,17 +3495,16 @@ for.body78.lr.ph: ; preds = %for.cond76.preheade for.body78.us: ; preds = %for.body78.lr.ph, %for.body78.us %indvars.iv122 = phi i64 [ %indvars.iv.next123, %for.body78.us ], [ 0, %for.body78.lr.ph ] %call79.us = tail call noundef i32 @_Z9ply_writeP6t_ply_d(ptr noundef %call1, double noundef 3.000000e+00) - %16 = mul i64 %indvars.iv122, 3 - %conv80.us = and i64 %16, 4294967295 - %arrayidx.i76.us = getelementptr inbounds i32, ptr %triIndices.coerce0, i64 %conv80.us + %16 = mul nuw nsw i64 %indvars.iv122, 3 + %arrayidx.i76.us = getelementptr inbounds i32, ptr %triIndices.coerce0, i64 %16 %17 = load i32, ptr %arrayidx.i76.us, align 4 %conv82.us = sitofp i32 %17 to double %call83.us = tail call noundef i32 @_Z9ply_writeP6t_ply_d(ptr noundef %call1, double noundef %conv82.us) - %gep.us = getelementptr i32, ptr %invariant.gep, i64 %conv80.us + %gep.us = getelementptr i32, ptr %invariant.gep, i64 %16 %18 = load i32, ptr %gep.us, align 4 %conv88.us = sitofp i32 %18 to double %call89.us = tail call noundef i32 @_Z9ply_writeP6t_ply_d(ptr noundef %call1, double noundef %conv88.us) - %gep97.us = getelementptr i32, ptr %invariant.gep96, i64 %conv80.us + %gep97.us = getelementptr i32, ptr %invariant.gep96, i64 %16 %19 = load i32, ptr %gep97.us, align 4 %conv94.us = sitofp i32 %19 to double %call95.us = tail call noundef i32 @_Z9ply_writeP6t_ply_d(ptr noundef %call1, double noundef %conv94.us) @@ -3569,17 +3568,16 @@ for.body109.lr.ph: ; preds = %for.cond107.prehead for.body78: ; preds = %for.body78.lr.ph, %for.body78 %indvars.iv116 = phi i64 [ %indvars.iv.next117, %for.body78 ], [ 0, %for.body78.lr.ph ] %call79 = tail call noundef i32 @_Z9ply_writeP6t_ply_d(ptr noundef %call1, double noundef 3.000000e+00) - %29 = mul i64 %indvars.iv116, 3 - %conv80 = and i64 %29, 4294967295 - %arrayidx.i76 = getelementptr inbounds i32, ptr %triIndices.coerce0, i64 %conv80 + %29 = mul nuw nsw i64 %indvars.iv116, 3 + %arrayidx.i76 = getelementptr inbounds i32, ptr %triIndices.coerce0, i64 %29 %30 = load i32, ptr %arrayidx.i76, align 4 %conv82 = sitofp i32 %30 to double %call83 = tail call noundef i32 @_Z9ply_writeP6t_ply_d(ptr noundef %call1, double noundef %conv82) - %gep = getelementptr i32, ptr %invariant.gep, i64 %conv80 + %gep = getelementptr i32, ptr %invariant.gep, i64 %29 %31 = load i32, ptr %gep, align 4 %conv88 = sitofp i32 %31 to double %call89 = tail call noundef i32 @_Z9ply_writeP6t_ply_d(ptr noundef %call1, double noundef %conv88) - %gep97 = getelementptr i32, ptr %invariant.gep96, i64 %conv80 + %gep97 = getelementptr i32, ptr %invariant.gep96, i64 %29 %32 = load i32, ptr %gep97, align 4 %conv94 = sitofp i32 %32 to double %call95 = tail call noundef i32 @_Z9ply_writeP6t_ply_d(ptr noundef %call1, double noundef %conv94) diff --git a/bench/pbrt-v4/optimized/paramdict.cpp.ll b/bench/pbrt-v4/optimized/paramdict.cpp.ll index a6041517ee2..3dfb76fc801 100644 --- a/bench/pbrt-v4/optimized/paramdict.cpp.ll +++ b/bench/pbrt-v4/optimized/paramdict.cpp.ll @@ -2533,8 +2533,8 @@ call5.i.i.i.i2.i.i15.i89.noexc: ; preds = %for.body.lr.ph.i87 br label %for.body.i94 for.body.i94: ; preds = %for.inc.i106, %call5.i.i.i.i2.i.i15.i89.noexc - %i.024.i = phi i64 [ 0, %call5.i.i.i.i2.i.i15.i89.noexc ], [ %inc.i108, %for.inc.i106 ] - %mul.i95 = mul i64 %i.024.i, %conv.i + %i.025.i = phi i64 [ 0, %call5.i.i.i.i2.i.i15.i89.noexc ], [ %inc.i108, %for.inc.i106 ] + %mul.i95 = mul i64 %i.025.i, %conv.i %41 = load ptr, ptr %ptr.i.i93, align 8, !noalias !33 %arrayidx.i.i96 = getelementptr inbounds float, ptr %41, i64 %mul.i95 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %ref.tmp9.i.i), !noalias !33 @@ -2605,19 +2605,18 @@ land.lhs.true.i.i: ; preds = %for.body.i.i %45 = shl nuw nsw i64 %indvars.iv.i.i, 1 %arrayidx.i16.i = getelementptr inbounds float, ptr %arrayidx.i.i96, i64 %45 %46 = load float, ptr %arrayidx.i16.i, align 4, !noalias !36 - %47 = trunc i64 %indvars.iv.i.i to i32 - %48 = add i32 %47, -1 - %conv7.i.i = zext nneg i32 %48 to i64 - %add.ptr.i.i.i = getelementptr inbounds float, ptr %call5.i.i.i.i2.i.i17.i18.i, i64 %conv7.i.i - %49 = load float, ptr %add.ptr.i.i.i, align 4, !noalias !36 - %cmp8.i.i101 = fcmp ugt float %46, %49 + %47 = add nsw i64 %indvars.iv.i.i, -1 + %add.ptr.i.i.i = getelementptr inbounds float, ptr %call5.i.i.i.i2.i.i17.i18.i, i64 %47 + %48 = load float, ptr %add.ptr.i.i.i, align 4, !noalias !36 + %cmp8.i.i101 = fcmp ugt float %46, %48 br i1 %cmp8.i.i101, label %if.end.i.i102, label %if.then.i.i if.then.i.i: ; preds = %land.lhs.true.i.i %arrayidx.i16.i.le = getelementptr inbounds float, ptr %arrayidx.i.i96, i64 %45 - %add.ptr.i.i.i.le = getelementptr inbounds float, ptr %call5.i.i.i.i2.i.i17.i18.i, i64 %conv7.i.i + %add.ptr.i.i.i.le = getelementptr inbounds float, ptr %call5.i.i.i.i2.i.i17.i18.i, i64 %47 + %49 = trunc i64 %47 to i32 %loc.i.i = getelementptr inbounds %class.anon.67, ptr %agg.tmp29, i64 0, i32 3, i32 2 - store i32 %48, ptr %ref.tmp9.i.i, align 4, !noalias !36 + store i32 %49, ptr %ref.tmp9.i.i, align 4, !noalias !36 invoke void @_ZN4pbrt9ErrorExitIJiRfRKfEEEvPKNS_7FileLocEPKcDpOT_(ptr noundef nonnull %loc.i.i, ptr noundef nonnull @.str.70, ptr noundef nonnull align 4 dereferenceable(4) %ref.tmp9.i.i, ptr noundef nonnull align 4 dereferenceable(4) %add.ptr.i.i.i.le, ptr noundef nonnull align 4 dereferenceable(4) %arrayidx.i16.i.le) #21 to label %invoke.cont18.i.i unwind label %lpad17.thread.i.i, !noalias !36 @@ -2719,9 +2718,9 @@ if.then.i.i.i48.i.i: ; preds = %ehcleanup.i.i, %ehc for.inc.i106: ; preds = %if.then.i.i.i45.i.i, %_ZNSt6vectorIfSaIfEED2Ev.exit43.i.i call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %ref.tmp9.i.i), !noalias !33 - %add.ptr.i.i107 = getelementptr inbounds %"class.pbrt::Spectrum", ptr %call5.i.i.i.i2.i.i15.i89119, i64 %i.024.i + %add.ptr.i.i107 = getelementptr inbounds %"class.pbrt::Spectrum", ptr %call5.i.i.i.i2.i.i15.i89119, i64 %i.025.i store i64 %or.i.i.i.i105, ptr %add.ptr.i.i107, align 8, !noalias !33 - %inc.i108 = add nuw i64 %i.024.i, 1 + %inc.i108 = add nuw i64 %i.025.i, 1 %cmp.i109 = icmp ult i64 %inc.i108, %div.i83 br i1 %cmp.i109, label %for.body.i94, label %invoke.cont, !llvm.loop !40 diff --git a/bench/pbrt-v4/optimized/stbimage.cpp.ll b/bench/pbrt-v4/optimized/stbimage.cpp.ll index 5657dd4d0d7..c99caf7cd6f 100644 --- a/bench/pbrt-v4/optimized/stbimage.cpp.ll +++ b/bench/pbrt-v4/optimized/stbimage.cpp.ll @@ -10198,15 +10198,14 @@ for.cond9.preheader.lr.ph.split: ; preds = %for.cond9.preheader br i1 %cmp28, label %for.cond9.preheader.us39.preheader, label %for.end52 for.cond9.preheader.us39.preheader: ; preds = %for.cond9.preheader.lr.ph.split + %12 = zext nneg i32 %comp to i64 %wide.trip.count = zext nneg i32 %mul.i.i to i64 br label %for.cond9.preheader.us39 for.cond9.preheader.us39: ; preds = %for.cond9.preheader.us39.preheader, %for.cond9.preheader.us39 %indvars.iv = phi i64 [ 0, %for.cond9.preheader.us39.preheader ], [ %indvars.iv.next, %for.cond9.preheader.us39 ] - %12 = trunc i64 %indvars.iv to i32 - %13 = mul i32 %12, %comp - %idxprom33.us43 = zext nneg i32 %13 to i64 - %arrayidx34.us44 = getelementptr inbounds float, ptr %data, i64 %idxprom33.us43 + %13 = mul nsw i64 %indvars.iv, %12 + %arrayidx34.us44 = getelementptr inbounds float, ptr %data, i64 %13 %14 = load float, ptr %arrayidx34.us44, align 4 %mul35.us45 = fmul float %14, 2.550000e+02 %add36.us46 = fadd float %mul35.us45, 5.000000e-01 @@ -10216,7 +10215,7 @@ for.cond9.preheader.us39: ; preds = %for.cond9.preheader %z30.1.us50 = select i1 %cmp40.us49, float 2.550000e+02, float %z30.0.us48 %conv43.us51 = fptosi float %z30.1.us50 to i32 %conv44.us52 = trunc i32 %conv43.us51 to i8 - %arrayidx48.us53 = getelementptr inbounds i8, ptr %call.i.i, i64 %idxprom33.us43 + %arrayidx48.us53 = getelementptr inbounds i8, ptr %call.i.i, i64 %13 store i8 %conv44.us52, ptr %arrayidx48.us53, align 1 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count diff --git a/bench/pbrt-v4/optimized/subsurface.cpp.ll b/bench/pbrt-v4/optimized/subsurface.cpp.ll index 3657451889d..96d40381f1d 100644 --- a/bench/pbrt-v4/optimized/subsurface.cpp.ll +++ b/bench/pbrt-v4/optimized/subsurface.cpp.ll @@ -6235,16 +6235,15 @@ land.end.i.us: ; preds = %if.then19.us br i1 %cmp3.i.us, label %land.lhs.true4.i.us, label %land.rhs8.i land.lhs.true4.i.us: ; preds = %land.end.i.us - %conv5.i.us = and i64 %16, 4294967295 %18 = load i64, ptr %nStored.i5.i, align 8 - %cmp7.i.us = icmp ugt i64 %18, %conv5.i.us + %cmp7.i.us = icmp ugt i64 %18, %16 br i1 %cmp7.i.us, label %_ZNK4pbrt11BSSRDFTable11EvalProfileEii.exit.us, label %land.rhs8.i _ZNK4pbrt11BSSRDFTable11EvalProfileEii.exit.us: ; preds = %land.lhs.true4.i.us %mul.i.us = mul i64 %18, %conv.i24 %19 = load ptr, ptr %ptr.i.i26, align 8 %20 = getelementptr float, ptr %19, i64 %mul.i.us - %arrayidx.i.i27.us = getelementptr float, ptr %20, i64 %conv5.i.us + %arrayidx.i.i27.us = getelementptr float, ptr %20, i64 %16 %21 = load float, ptr %arrayidx.i.i27.us, align 4 %mul23.us = fmul float %mul17.us, %21 %add24.us = fadd float %sr.141.us, %mul23.us @@ -6849,16 +6848,15 @@ land.end.i.us: ; preds = %if.then27.us br i1 %cmp3.i.us, label %land.lhs.true4.i.us, label %land.rhs8.i land.lhs.true4.i.us: ; preds = %land.end.i.us - %conv5.i.us = and i64 %18, 4294967295 %20 = load i64, ptr %nStored.i5.i, align 8 - %cmp7.i.us = icmp ugt i64 %20, %conv5.i.us + %cmp7.i.us = icmp ugt i64 %20, %18 br i1 %cmp7.i.us, label %_ZNK4pbrt11BSSRDFTable11EvalProfileEii.exit.us, label %land.rhs8.i _ZNK4pbrt11BSSRDFTable11EvalProfileEii.exit.us: ; preds = %land.lhs.true4.i.us %mul.i.us = mul i64 %20, %conv.i29 %21 = load ptr, ptr %ptr.i.i31, align 8 %22 = getelementptr float, ptr %21, i64 %mul.i.us - %arrayidx.i.i32.us = getelementptr float, ptr %22, i64 %conv5.i.us + %arrayidx.i.i32.us = getelementptr float, ptr %22, i64 %18 %23 = load float, ptr %arrayidx.i.i32.us, align 4 %mul34.us = fmul float %12, %23 %mul37.us = fmul float %17, %mul34.us diff --git a/bench/qemu/optimized/migration_savevm.c.ll b/bench/qemu/optimized/migration_savevm.c.ll index 4d8942b8220..7d48e5cc526 100644 --- a/bench/qemu/optimized/migration_savevm.c.ll +++ b/bench/qemu/optimized/migration_savevm.c.ll @@ -994,8 +994,7 @@ for.cond: ; preds = %find_se.exit, %for. for.body: ; preds = %for.cond %indvars.iv.next = add nsw i64 %indvars.iv, -1 - %idxprom = and i64 %indvars.iv.next, 4294967295 - %arrayidx = getelementptr %struct.SaveState, ptr @savevm_state, i64 0, i32 1, i64 %idxprom + %arrayidx = getelementptr %struct.SaveState, ptr @savevm_state, i64 0, i32 1, i64 %indvars.iv.next %9 = load ptr, ptr %arrayidx, align 8 %cmp8.not = icmp eq ptr %9, null br i1 %cmp8.not, label %for.cond, label %if.then9, !llvm.loop !11 diff --git a/bench/qemu/optimized/target_riscv_cpu.c.ll b/bench/qemu/optimized/target_riscv_cpu.c.ll index 9402570618c..ac6080ad975 100644 --- a/bench/qemu/optimized/target_riscv_cpu.c.ll +++ b/bench/qemu/optimized/target_riscv_cpu.c.ll @@ -1396,8 +1396,7 @@ for.body54.us: ; preds = %for.body54.us.prehe for.body62.us: ; preds = %for.body54.us, %for.body62.us %indvars.iv56 = phi i64 [ %13, %for.body54.us ], [ %indvars.iv.next57, %for.body62.us ] %indvars.iv.next57 = add nsw i64 %indvars.iv56, -1 - %idx.ext64.us = and i64 %indvars.iv.next57, 4294967295 - %add.ptr65.us = getelementptr i8, ptr %add.ptr.us, i64 %idx.ext64.us + %add.ptr65.us = getelementptr i8, ptr %add.ptr.us, i64 %indvars.iv.next57 %17 = load i8, ptr %add.ptr65.us, align 1 %conv66.us = zext i8 %17 to i32 %call67.us = call i32 (ptr, ptr, ...) @qemu_fprintf(ptr noundef %f, ptr noundef nonnull @.str.345, i32 noundef %conv66.us) #14 diff --git a/bench/qemu/optimized/tcg.c.ll b/bench/qemu/optimized/tcg.c.ll index b264a468e2f..e718d25b4d6 100644 --- a/bench/qemu/optimized/tcg.c.ll +++ b/bench/qemu/optimized/tcg.c.ll @@ -9116,10 +9116,10 @@ sw.bb108: ; preds = %for.body for.body.preheader.i317: ; preds = %sw.bb108 %260 = zext nneg i32 %bf.clear.i311 to i64 + %261 = zext nneg i32 %bf.lshr.i310 to i64 br label %for.body.i318 for.body27.preheader.i: ; preds = %for.inc.i323 - %261 = zext nneg i32 %bf.lshr.i310 to i64 %262 = zext nneg i32 %add.i.i313 to i64 br label %for.body27.i @@ -9128,12 +9128,10 @@ for.body.i318: ; preds = %for.inc.i323, %for. %indvars.iv.i319 = phi i64 [ %260, %for.body.preheader.i317 ], [ %indvars.iv.next.i320, %for.inc.i323 ] %indvars.iv.next.i320 = add nsw i64 %indvars.iv.i319, -1 %arrayidx.i321 = getelementptr %struct.TCGHelperInfo, ptr %258, i64 0, i32 4, i64 %indvars.iv.next.i320 - %263 = trunc i64 %indvars.iv.next.i320 to i32 - %264 = add i32 %bf.lshr.i310, %263 - %idxprom3.i = zext nneg i32 %264 to i64 - %arrayidx4.i = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 4, i64 %idxprom3.i - %265 = load i64, ptr %arrayidx4.i, align 8 - %266 = inttoptr i64 %265 to ptr + %263 = add nuw nsw i64 %indvars.iv.next.i320, %261 + %arrayidx4.i = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 4, i64 %263 + %264 = load i64, ptr %arrayidx4.i, align 8 + %265 = inttoptr i64 %264 to ptr %bf.load6.i322 = load i32, ptr %arrayidx.i321, align 4 %trunc88.i = trunc i32 %bf.load6.i322 to i8 switch i8 %trunc88.i, label %do.body.i382 [ @@ -9153,345 +9151,345 @@ sw.bb.i373: ; preds = %for.body.i318, %for if.then.i.i378: ; preds = %sw.bb.i373 %idxprom.i91.i = zext nneg i32 %bf.clear.i90.i to i64 %arrayidx.i92.i = getelementptr [6 x i32], ptr @tcg_target_call_iarg_regs, i64 0, i64 %idxprom.i91.i - %267 = load i32, ptr %arrayidx.i92.i, align 4 - %bf.load.i.i.i = load i64, ptr %266, align 8 - %268 = and i64 %bf.load.i.i.i, 65280 - %cmp.i8.i.i = icmp eq i64 %268, 256 + %266 = load i32, ptr %arrayidx.i92.i, align 4 + %bf.load.i.i.i = load i64, ptr %265, align 8 + %267 = and i64 %bf.load.i.i.i, 65280 + %cmp.i8.i.i = icmp eq i64 %267, 256 br i1 %cmp.i8.i.i, label %if.then.i.i.i380, label %if.else.i.i.i379 if.then.i.i.i380: ; preds = %if.then.i.i378 - %269 = trunc i64 %bf.load.i.i.i to i32 - %bf.cast3.i.i.i = and i32 %269, 255 - %cmp4.not.i.i.i = icmp eq i32 %bf.cast3.i.i.i, %267 + %268 = trunc i64 %bf.load.i.i.i to i32 + %bf.cast3.i.i.i = and i32 %268, 255 + %cmp4.not.i.i.i = icmp eq i32 %bf.cast3.i.i.i, %266 br i1 %cmp4.not.i.i.i, label %load_arg_reg.exit.i.i, label %if.then5.i.i.i if.then5.i.i.i: ; preds = %if.then.i.i.i380 - %idxprom.i.i.i.i = zext i32 %267 to i64 + %idxprom.i.i.i.i = zext i32 %266 to i64 %arrayidx.i.i.i.i381 = getelementptr %struct.TCGContext, ptr %s, i64 0, i32 41, i64 %idxprom.i.i.i.i - %270 = load ptr, ptr %arrayidx.i.i.i.i381, align 8 - %cmp.not.i.i.i.i = icmp eq ptr %270, null + %269 = load ptr, ptr %arrayidx.i.i.i.i381, align 8 + %cmp.not.i.i.i.i = icmp eq ptr %269, null br i1 %cmp.not.i.i.i.i, label %tcg_reg_free.exit.i.i.i, label %if.then.i.i.i.i if.then.i.i.i.i: ; preds = %if.then5.i.i.i - tail call fastcc void @temp_sync(ptr noundef nonnull %s, ptr noundef nonnull %270, i32 noundef %allocated_regs.i.0, i32 noundef 0, i32 noundef -1) - %bf.load6.pre.i.i.i = load i64, ptr %266, align 8 + tail call fastcc void @temp_sync(ptr noundef nonnull %s, ptr noundef nonnull %269, i32 noundef %allocated_regs.i.0, i32 noundef 0, i32 noundef -1) + %bf.load6.pre.i.i.i = load i64, ptr %265, align 8 %.pre.i.i.i = trunc i64 %bf.load6.pre.i.i.i to i32 %.pre29.i.i.i = and i32 %.pre.i.i.i, 255 br label %tcg_reg_free.exit.i.i.i tcg_reg_free.exit.i.i.i: ; preds = %if.then.i.i.i.i, %if.then5.i.i.i %bf.cast12.pre-phi.i.i.i = phi i32 [ %bf.cast3.i.i.i, %if.then5.i.i.i ], [ %.pre29.i.i.i, %if.then.i.i.i.i ] - %.pre-phi.i.i.i = phi i32 [ %269, %if.then5.i.i.i ], [ %.pre.i.i.i, %if.then.i.i.i.i ] - %271 = lshr i32 %.pre-phi.i.i.i, 24 - tail call fastcc void @tcg_out_mov(ptr noundef nonnull %s, i32 noundef %271, i32 noundef %267, i32 noundef %bf.cast12.pre-phi.i.i.i) + %.pre-phi.i.i.i = phi i32 [ %268, %if.then5.i.i.i ], [ %.pre.i.i.i, %if.then.i.i.i.i ] + %270 = lshr i32 %.pre-phi.i.i.i, 24 + tail call fastcc void @tcg_out_mov(ptr noundef nonnull %s, i32 noundef %270, i32 noundef %266, i32 noundef %bf.cast12.pre-phi.i.i.i) br label %load_arg_reg.exit.i.i if.else.i.i.i379: ; preds = %if.then.i.i378 - %idxprom.i23.i.i.i = zext i32 %267 to i64 + %idxprom.i23.i.i.i = zext i32 %266 to i64 %arrayidx.i24.i.i.i = getelementptr %struct.TCGContext, ptr %s, i64 0, i32 41, i64 %idxprom.i23.i.i.i - %272 = load ptr, ptr %arrayidx.i24.i.i.i, align 8 - %cmp.not.i25.i.i.i = icmp eq ptr %272, null + %271 = load ptr, ptr %arrayidx.i24.i.i.i, align 8 + %cmp.not.i25.i.i.i = icmp eq ptr %271, null br i1 %cmp.not.i25.i.i.i, label %tcg_reg_free.exit27.i.i.i, label %if.then.i26.i.i.i if.then.i26.i.i.i: ; preds = %if.else.i.i.i379 - tail call fastcc void @temp_sync(ptr noundef nonnull %s, ptr noundef nonnull %272, i32 noundef %allocated_regs.i.0, i32 noundef 0, i32 noundef -1) + tail call fastcc void @temp_sync(ptr noundef nonnull %s, ptr noundef nonnull %271, i32 noundef %allocated_regs.i.0, i32 noundef 0, i32 noundef -1) br label %tcg_reg_free.exit27.i.i.i tcg_reg_free.exit27.i.i.i: ; preds = %if.then.i26.i.i.i, %if.else.i.i.i379 - %shl.i.i.i = shl nuw i32 1, %267 - tail call fastcc void @temp_load(ptr noundef nonnull %s, ptr noundef nonnull %266, i32 noundef %shl.i.i.i, i32 noundef %allocated_regs.i.0, i32 noundef 0) + %shl.i.i.i = shl nuw i32 1, %266 + tail call fastcc void @temp_load(ptr noundef nonnull %s, ptr noundef nonnull %265, i32 noundef %shl.i.i.i, i32 noundef %allocated_regs.i.0, i32 noundef 0) br label %load_arg_reg.exit.i.i load_arg_reg.exit.i.i: ; preds = %tcg_reg_free.exit27.i.i.i, %tcg_reg_free.exit.i.i.i, %if.then.i.i.i380 - %shl.i.i = shl nuw i32 1, %267 + %shl.i.i = shl nuw i32 1, %266 %or.i.i = or i32 %shl.i.i, %allocated_regs.i.0 br label %for.inc.i323 if.else.i.i375: ; preds = %sw.bb.i373 - %bf.load.i9.i.i = load i64, ptr %266, align 8 - %273 = lshr i64 %bf.load.i9.i.i, 24 - %idxprom.i.i.i376 = and i64 %273, 255 + %bf.load.i9.i.i = load i64, ptr %265, align 8 + %272 = lshr i64 %bf.load.i9.i.i, 24 + %idxprom.i.i.i376 = and i64 %272, 255 %arrayidx.i.i.i377 = getelementptr [6 x i32], ptr @tcg_target_available_regs, i64 0, i64 %idxprom.i.i.i376 - %274 = load i32, ptr %arrayidx.i.i.i377, align 4 - tail call fastcc void @temp_load(ptr noundef %s, ptr noundef nonnull %266, i32 noundef %274, i32 noundef %allocated_regs.i.0, i32 noundef 0) - %bf.load1.i.i.i = load i64, ptr %266, align 8 - %275 = trunc i64 %bf.load1.i.i.i to i32 - %276 = lshr i32 %275, 24 - %bf.cast7.i.i.i = and i32 %275, 255 + %273 = load i32, ptr %arrayidx.i.i.i377, align 4 + tail call fastcc void @temp_load(ptr noundef %s, ptr noundef nonnull %265, i32 noundef %273, i32 noundef %allocated_regs.i.0, i32 noundef 0) + %bf.load1.i.i.i = load i64, ptr %265, align 8 + %274 = trunc i64 %bf.load1.i.i.i to i32 + %275 = lshr i32 %274, 24 + %bf.cast7.i.i.i = and i32 %274, 255 %sub.i.i.i.i = shl nuw nsw i32 %bf.clear.i90.i, 3 - %277 = add nsw i32 %sub.i.i.i.i, -48 - %conv.i.i.i = zext nneg i32 %277 to i64 - tail call fastcc void @tcg_out_st(ptr noundef %s, i32 noundef %276, i32 noundef %bf.cast7.i.i.i, i32 noundef 4, i64 noundef %conv.i.i.i) + %276 = add nsw i32 %sub.i.i.i.i, -48 + %conv.i.i.i = zext nneg i32 %276 to i64 + tail call fastcc void @tcg_out_st(ptr noundef %s, i32 noundef %275, i32 noundef %bf.cast7.i.i.i, i32 noundef 4, i64 noundef %conv.i.i.i) br label %for.inc.i323 sw.bb8.i: ; preds = %for.body.i318 - %bf.load.i93.i = load i64, ptr %266, align 8 - %278 = lshr i64 %bf.load.i93.i, 24 - %idxprom.i94.i = and i64 %278, 255 + %bf.load.i93.i = load i64, ptr %265, align 8 + %277 = lshr i64 %bf.load.i93.i, 24 + %idxprom.i94.i = and i64 %277, 255 %arrayidx.i95.i = getelementptr [6 x i32], ptr @tcg_target_available_regs, i64 0, i64 %idxprom.i94.i - %279 = load i32, ptr %arrayidx.i95.i, align 4 - tail call fastcc void @temp_load(ptr noundef %s, ptr noundef nonnull %266, i32 noundef %279, i32 noundef %allocated_regs.i.0, i32 noundef 0) - %bf.load1.i.i = load i64, ptr %266, align 8 - %280 = trunc i64 %bf.load1.i.i to i32 - %281 = lshr i32 %280, 24 - %bf.cast7.i.i = and i32 %280, 255 - %282 = lshr i32 %bf.load6.i322, 13 - %sub.i.i.i = and i32 %282, 2040 - %283 = add nsw i32 %sub.i.i.i, -48 - %conv.i.i = zext nneg i32 %283 to i64 - tail call fastcc void @tcg_out_st(ptr noundef %s, i32 noundef %281, i32 noundef %bf.cast7.i.i, i32 noundef 4, i64 noundef %conv.i.i) + %278 = load i32, ptr %arrayidx.i95.i, align 4 + tail call fastcc void @temp_load(ptr noundef %s, ptr noundef nonnull %265, i32 noundef %278, i32 noundef %allocated_regs.i.0, i32 noundef 0) + %bf.load1.i.i = load i64, ptr %265, align 8 + %279 = trunc i64 %bf.load1.i.i to i32 + %280 = lshr i32 %279, 24 + %bf.cast7.i.i = and i32 %279, 255 + %281 = lshr i32 %bf.load6.i322, 13 + %sub.i.i.i = and i32 %281, 2040 + %282 = add nsw i32 %sub.i.i.i, -48 + %conv.i.i = zext nneg i32 %282 to i64 + tail call fastcc void @tcg_out_st(ptr noundef %s, i32 noundef %280, i32 noundef %bf.cast7.i.i, i32 noundef 4, i64 noundef %conv.i.i) %bf.load12.i = load i32, ptr %arrayidx.i321, align 4 %bf.lshr13.i = lshr i32 %bf.load12.i, 8 %bf.clear14.i371 = and i32 %bf.lshr13.i, 255 - %284 = lshr i32 %bf.load12.i, 13 - %sub.i.i = and i32 %284, 2040 - %285 = add nsw i32 %sub.i.i, -48 + %283 = lshr i32 %bf.load12.i, 13 + %sub.i.i = and i32 %283, 2040 + %284 = add nsw i32 %sub.i.i, -48 %cmp.i.i603 = icmp ult i32 %bf.clear14.i371, 6 br i1 %cmp.i.i603, label %if.then.i611, label %if.else.i604 if.then.i611: ; preds = %sw.bb8.i %idxprom.i612 = zext nneg i32 %bf.clear14.i371 to i64 %arrayidx.i613 = getelementptr [6 x i32], ptr @tcg_target_call_iarg_regs, i64 0, i64 %idxprom.i612 - %286 = load i32, ptr %arrayidx.i613, align 4 - %idxprom.i.i614 = zext i32 %286 to i64 + %285 = load i32, ptr %arrayidx.i613, align 4 + %idxprom.i.i614 = zext i32 %285 to i64 %arrayidx.i.i615 = getelementptr %struct.TCGContext, ptr %s, i64 0, i32 41, i64 %idxprom.i.i614 - %287 = load ptr, ptr %arrayidx.i.i615, align 8 - %cmp.not.i.i616 = icmp eq ptr %287, null + %286 = load ptr, ptr %arrayidx.i.i615, align 8 + %cmp.not.i.i616 = icmp eq ptr %286, null br i1 %cmp.not.i.i616, label %tcg_reg_free.exit.i, label %if.then.i.i617 if.then.i.i617: ; preds = %if.then.i611 - tail call fastcc void @temp_sync(ptr noundef nonnull %s, ptr noundef nonnull %287, i32 noundef %allocated_regs.i.0, i32 noundef 0, i32 noundef -1) + tail call fastcc void @temp_sync(ptr noundef nonnull %s, ptr noundef nonnull %286, i32 noundef %allocated_regs.i.0, i32 noundef 0, i32 noundef -1) br label %tcg_reg_free.exit.i tcg_reg_free.exit.i: ; preds = %if.then.i.i617, %if.then.i611 - %288 = trunc i32 %286 to i8 - %289 = lshr i8 %288, 1 - %290 = and i8 %289, 4 - %conv.i.i.i620 = or disjoint i8 %290, 72 - %291 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i37.i.i.i622 = getelementptr i8, ptr %291, i64 1 + %287 = trunc i32 %285 to i8 + %288 = lshr i8 %287, 1 + %289 = and i8 %288, 4 + %conv.i.i.i620 = or disjoint i8 %289, 72 + %290 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i37.i.i.i622 = getelementptr i8, ptr %290, i64 1 store ptr %incdec.ptr.i37.i.i.i622, ptr %code_ptr, align 8 - store i8 %conv.i.i.i620, ptr %291, align 1 - %292 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i45.i.i.i623 = getelementptr i8, ptr %292, i64 1 + store i8 %conv.i.i.i620, ptr %290, align 1 + %291 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i45.i.i.i623 = getelementptr i8, ptr %291, i64 1 store ptr %incdec.ptr.i45.i.i.i623, ptr %code_ptr, align 8 - store i8 -115, ptr %292, align 1 - %cmp25.i634.not = icmp eq i32 %285, 0 - %cmp35.i656 = icmp ugt i32 %285, 127 + store i8 -115, ptr %291, align 1 + %cmp25.i634.not = icmp eq i32 %284, 0 + %cmp35.i656 = icmp ugt i32 %284, 127 %..i657 = select i1 %cmp35.i656, i32 128, i32 64 %mod.0.i636 = select i1 %cmp25.i634.not, i32 0, i32 %..i657 - %293 = add nsw i32 %sub.i.i, -49 - %cmp80.i637 = icmp ult i32 %293, 127 - %and67.i648 = shl i32 %286, 3 + %292 = add nsw i32 %sub.i.i, -49 + %cmp80.i637 = icmp ult i32 %292, 127 + %and67.i648 = shl i32 %285, 3 %shl68.i649 = and i32 %and67.i648, 56 %or69.i650 = or disjoint i32 %shl68.i649, %mod.0.i636 - %294 = trunc i32 %or69.i650 to i8 - %conv71.i651 = or disjoint i8 %294, 4 - %295 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i49.i653 = getelementptr i8, ptr %295, i64 1 + %293 = trunc i32 %or69.i650 to i8 + %conv71.i651 = or disjoint i8 %293, 4 + %294 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i49.i653 = getelementptr i8, ptr %294, i64 1 store ptr %incdec.ptr.i49.i653, ptr %code_ptr, align 8 - store i8 %conv71.i651, ptr %295, align 1 - %296 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i51.i654 = getelementptr i8, ptr %296, i64 1 + store i8 %conv71.i651, ptr %294, align 1 + %295 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i51.i654 = getelementptr i8, ptr %295, i64 1 store ptr %incdec.ptr.i51.i654, ptr %code_ptr, align 8 - store i8 36, ptr %296, align 1 + store i8 36, ptr %295, align 1 br i1 %cmp80.i637, label %if.then82.i644, label %if.else84.i639 if.then82.i644: ; preds = %tcg_reg_free.exit.i - %conv83.i645 = trunc i32 %285 to i8 - %297 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i53.i647 = getelementptr i8, ptr %297, i64 1 + %conv83.i645 = trunc i32 %284 to i8 + %296 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i53.i647 = getelementptr i8, ptr %296, i64 1 store ptr %incdec.ptr.i53.i647, ptr %code_ptr, align 8 - store i8 %conv83.i645, ptr %297, align 1 + store i8 %conv83.i645, ptr %296, align 1 br label %tcg_out_sib_offset.exit659 if.else84.i639: ; preds = %tcg_reg_free.exit.i br i1 %cmp35.i656, label %if.then87.i641, label %tcg_out_sib_offset.exit659 if.then87.i641: ; preds = %if.else84.i639 - %298 = load ptr, ptr %code_ptr, align 8 - store i32 %285, ptr %298, align 1 - %add.ptr.i55.i643 = getelementptr i8, ptr %298, i64 4 + %297 = load ptr, ptr %code_ptr, align 8 + store i32 %284, ptr %297, align 1 + %add.ptr.i55.i643 = getelementptr i8, ptr %297, i64 4 store ptr %add.ptr.i55.i643, ptr %code_ptr, align 8 br label %tcg_out_sib_offset.exit659 tcg_out_sib_offset.exit659: ; preds = %if.then82.i644, %if.else84.i639, %if.then87.i641 - %shl.i624 = shl nuw i32 1, %286 + %shl.i624 = shl nuw i32 1, %285 %or.i625 = or i32 %shl.i624, %allocated_regs.i.0 br label %for.inc.i323 if.else.i604: ; preds = %sw.bb8.i - %299 = load i32, ptr getelementptr inbounds ([6 x i32], ptr @tcg_target_available_regs, i64 0, i64 1), align 4 - %call1.i = tail call fastcc i32 @tcg_reg_alloc(ptr noundef %s, i32 noundef %299, i32 noundef %allocated_regs.i.0, i32 noundef 0, i1 noundef zeroext false) - %300 = trunc i32 %call1.i to i8 - %301 = lshr i8 %300, 1 - %302 = and i8 %301, 4 - %conv.i.i23.i = or disjoint i8 %302, 72 - %303 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i37.i.i25.i = getelementptr i8, ptr %303, i64 1 + %298 = load i32, ptr getelementptr inbounds ([6 x i32], ptr @tcg_target_available_regs, i64 0, i64 1), align 4 + %call1.i = tail call fastcc i32 @tcg_reg_alloc(ptr noundef %s, i32 noundef %298, i32 noundef %allocated_regs.i.0, i32 noundef 0, i1 noundef zeroext false) + %299 = trunc i32 %call1.i to i8 + %300 = lshr i8 %299, 1 + %301 = and i8 %300, 4 + %conv.i.i23.i = or disjoint i8 %301, 72 + %302 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i37.i.i25.i = getelementptr i8, ptr %302, i64 1 store ptr %incdec.ptr.i37.i.i25.i, ptr %code_ptr, align 8 - store i8 %conv.i.i23.i, ptr %303, align 1 - %304 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i45.i.i26.i = getelementptr i8, ptr %304, i64 1 + store i8 %conv.i.i23.i, ptr %302, align 1 + %303 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i45.i.i26.i = getelementptr i8, ptr %303, i64 1 store ptr %incdec.ptr.i45.i.i26.i, ptr %code_ptr, align 8 - store i8 -115, ptr %304, align 1 - %cmp25.i628.not = icmp eq i32 %285, 0 - %cmp35.i631 = icmp ugt i32 %285, 127 + store i8 -115, ptr %303, align 1 + %cmp25.i628.not = icmp eq i32 %284, 0 + %cmp35.i631 = icmp ugt i32 %284, 127 %..i = select i1 %cmp35.i631, i32 128, i32 64 %mod.0.i = select i1 %cmp25.i628.not, i32 0, i32 %..i - %305 = add nsw i32 %sub.i.i, -49 - %cmp80.i = icmp ult i32 %305, 127 + %304 = add nsw i32 %sub.i.i, -49 + %cmp80.i = icmp ult i32 %304, 127 %and67.i = shl i32 %call1.i, 3 %shl68.i = and i32 %and67.i, 56 %or69.i = or disjoint i32 %shl68.i, %mod.0.i - %306 = trunc i32 %or69.i to i8 - %conv71.i = or disjoint i8 %306, 4 - %307 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i49.i = getelementptr i8, ptr %307, i64 1 + %305 = trunc i32 %or69.i to i8 + %conv71.i = or disjoint i8 %305, 4 + %306 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i49.i = getelementptr i8, ptr %306, i64 1 store ptr %incdec.ptr.i49.i, ptr %code_ptr, align 8 - store i8 %conv71.i, ptr %307, align 1 - %308 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i51.i = getelementptr i8, ptr %308, i64 1 + store i8 %conv71.i, ptr %306, align 1 + %307 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i51.i = getelementptr i8, ptr %307, i64 1 store ptr %incdec.ptr.i51.i, ptr %code_ptr, align 8 - store i8 36, ptr %308, align 1 + store i8 36, ptr %307, align 1 br i1 %cmp80.i, label %if.then82.i, label %if.else84.i if.then82.i: ; preds = %if.else.i604 - %conv83.i = trunc i32 %285 to i8 - %309 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i53.i = getelementptr i8, ptr %309, i64 1 + %conv83.i = trunc i32 %284 to i8 + %308 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i53.i = getelementptr i8, ptr %308, i64 1 store ptr %incdec.ptr.i53.i, ptr %code_ptr, align 8 - store i8 %conv83.i, ptr %309, align 1 + store i8 %conv83.i, ptr %308, align 1 br label %tcg_out_sib_offset.exit if.else84.i: ; preds = %if.else.i604 br i1 %cmp35.i631, label %if.then87.i, label %tcg_out_sib_offset.exit if.then87.i: ; preds = %if.else84.i - %310 = load ptr, ptr %code_ptr, align 8 - store i32 %285, ptr %310, align 1 - %add.ptr.i55.i = getelementptr i8, ptr %310, i64 4 + %309 = load ptr, ptr %code_ptr, align 8 + store i32 %284, ptr %309, align 1 + %add.ptr.i55.i = getelementptr i8, ptr %309, i64 4 store ptr %add.ptr.i55.i, ptr %code_ptr, align 8 br label %tcg_out_sib_offset.exit tcg_out_sib_offset.exit: ; preds = %if.then82.i, %if.else84.i, %if.then87.i %sub.i.i605 = shl nuw nsw i32 %bf.clear14.i371, 3 - %311 = add nsw i32 %sub.i.i605, -48 + %310 = add nsw i32 %sub.i.i605, -48 %cmp2.i.i = icmp ult i32 %call1.i, 16 - %312 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i37.i52.i.i = getelementptr i8, ptr %312, i64 1 + %311 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i37.i52.i.i = getelementptr i8, ptr %311, i64 1 store ptr %incdec.ptr.i37.i52.i.i, ptr %code_ptr, align 8 br i1 %cmp2.i.i, label %if.then3.i.i610, label %do.body.i.i606 if.then3.i.i610: ; preds = %tcg_out_sib_offset.exit - store i8 %conv.i.i23.i, ptr %312, align 1 - %313 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i45.i54.i.i = getelementptr i8, ptr %313, i64 1 + store i8 %conv.i.i23.i, ptr %311, align 1 + %312 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i45.i54.i.i = getelementptr i8, ptr %312, i64 1 store ptr %incdec.ptr.i45.i54.i.i, ptr %code_ptr, align 8 - store i8 -119, ptr %313, align 1 - %cmp25.i27.not.i = icmp eq i32 %311, 0 - %cmp35.i48.i = icmp ugt i32 %311, 127 + store i8 -119, ptr %312, align 1 + %cmp25.i27.not.i = icmp eq i32 %310, 0 + %cmp35.i48.i = icmp ugt i32 %310, 127 %..i49.i = select i1 %cmp35.i48.i, i32 128, i32 64 %mod.0.i29.i = select i1 %cmp25.i27.not.i, i32 0, i32 %..i49.i - %314 = add nsw i32 %sub.i.i605, -49 - %cmp80.i30.i = icmp ult i32 %314, 127 + %313 = add nsw i32 %sub.i.i605, -49 + %cmp80.i30.i = icmp ult i32 %313, 127 %or69.i42.i = or disjoint i32 %shl68.i, %mod.0.i29.i - %315 = trunc i32 %or69.i42.i to i8 - %conv71.i43.i = or disjoint i8 %315, 4 - %316 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i49.i45.i = getelementptr i8, ptr %316, i64 1 + %314 = trunc i32 %or69.i42.i to i8 + %conv71.i43.i = or disjoint i8 %314, 4 + %315 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i49.i45.i = getelementptr i8, ptr %315, i64 1 store ptr %incdec.ptr.i49.i45.i, ptr %code_ptr, align 8 - store i8 %conv71.i43.i, ptr %316, align 1 - %317 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i51.i46.i = getelementptr i8, ptr %317, i64 1 + store i8 %conv71.i43.i, ptr %315, align 1 + %316 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i51.i46.i = getelementptr i8, ptr %316, i64 1 store ptr %incdec.ptr.i51.i46.i, ptr %code_ptr, align 8 - store i8 36, ptr %317, align 1 + store i8 36, ptr %316, align 1 br i1 %cmp80.i30.i, label %if.then82.i36.i, label %if.else84.i32.i if.then82.i36.i: ; preds = %if.then3.i.i610 - %conv83.i37.i = trunc i32 %311 to i8 - %318 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i53.i39.i = getelementptr i8, ptr %318, i64 1 + %conv83.i37.i = trunc i32 %310 to i8 + %317 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i53.i39.i = getelementptr i8, ptr %317, i64 1 store ptr %incdec.ptr.i53.i39.i, ptr %code_ptr, align 8 - store i8 %conv83.i37.i, ptr %318, align 1 + store i8 %conv83.i37.i, ptr %317, align 1 br label %for.inc.i323 if.else84.i32.i: ; preds = %if.then3.i.i610 br i1 %cmp35.i48.i, label %if.then87.i33.i, label %for.inc.i323 if.then87.i33.i: ; preds = %if.else84.i32.i - %319 = load ptr, ptr %code_ptr, align 8 - store i32 %311, ptr %319, align 1 - %add.ptr.i55.i35.i = getelementptr i8, ptr %319, i64 4 + %318 = load ptr, ptr %code_ptr, align 8 + store i32 %310, ptr %318, align 1 + %add.ptr.i55.i35.i = getelementptr i8, ptr %318, i64 4 store ptr %add.ptr.i55.i35.i, ptr %code_ptr, align 8 br label %for.inc.i323 do.body.i.i606: ; preds = %tcg_out_sib_offset.exit - %320 = shl i8 %300, 4 - %321 = and i8 %320, -128 - store i8 -59, ptr %312, align 1 - %322 = xor i8 %321, -7 - %323 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i35.i69.i.i = getelementptr i8, ptr %323, i64 1 + %319 = shl i8 %299, 4 + %320 = and i8 %319, -128 + store i8 -59, ptr %311, align 1 + %321 = xor i8 %320, -7 + %322 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i35.i69.i.i = getelementptr i8, ptr %322, i64 1 store ptr %incdec.ptr.i35.i69.i.i, ptr %code_ptr, align 8 - store i8 %322, ptr %323, align 1 - %324 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i37.i70.i.i = getelementptr i8, ptr %324, i64 1 + store i8 %321, ptr %322, align 1 + %323 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i37.i70.i.i = getelementptr i8, ptr %323, i64 1 store ptr %incdec.ptr.i37.i70.i.i, ptr %code_ptr, align 8 - store i8 -42, ptr %324, align 1 - %cmp25.i.not.i = icmp eq i32 %311, 0 - %cmp35.i.i = icmp ugt i32 %311, 127 + store i8 -42, ptr %323, align 1 + %cmp25.i.not.i = icmp eq i32 %310, 0 + %cmp35.i.i = icmp ugt i32 %310, 127 %..i.i = select i1 %cmp35.i.i, i32 128, i32 64 %mod.0.i.i = select i1 %cmp25.i.not.i, i32 0, i32 %..i.i - %325 = add nsw i32 %sub.i.i605, -49 - %cmp80.i.i = icmp ult i32 %325, 127 + %324 = add nsw i32 %sub.i.i605, -49 + %cmp80.i.i = icmp ult i32 %324, 127 %or69.i.i = or disjoint i32 %shl68.i, %mod.0.i.i - %326 = trunc i32 %or69.i.i to i8 - %conv71.i.i607 = or disjoint i8 %326, 4 - %327 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i49.i.i = getelementptr i8, ptr %327, i64 1 + %325 = trunc i32 %or69.i.i to i8 + %conv71.i.i607 = or disjoint i8 %325, 4 + %326 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i49.i.i = getelementptr i8, ptr %326, i64 1 store ptr %incdec.ptr.i49.i.i, ptr %code_ptr, align 8 - store i8 %conv71.i.i607, ptr %327, align 1 - %328 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i51.i.i = getelementptr i8, ptr %328, i64 1 + store i8 %conv71.i.i607, ptr %326, align 1 + %327 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i51.i.i = getelementptr i8, ptr %327, i64 1 store ptr %incdec.ptr.i51.i.i, ptr %code_ptr, align 8 - store i8 36, ptr %328, align 1 + store i8 36, ptr %327, align 1 br i1 %cmp80.i.i, label %if.then82.i.i609, label %if.else84.i.i if.then82.i.i609: ; preds = %do.body.i.i606 - %conv83.i.i = trunc i32 %311 to i8 - %329 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i53.i.i = getelementptr i8, ptr %329, i64 1 + %conv83.i.i = trunc i32 %310 to i8 + %328 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i53.i.i = getelementptr i8, ptr %328, i64 1 store ptr %incdec.ptr.i53.i.i, ptr %code_ptr, align 8 - store i8 %conv83.i.i, ptr %329, align 1 + store i8 %conv83.i.i, ptr %328, align 1 br label %for.inc.i323 if.else84.i.i: ; preds = %do.body.i.i606 br i1 %cmp35.i.i, label %if.then87.i.i, label %for.inc.i323 if.then87.i.i: ; preds = %if.else84.i.i - %330 = load ptr, ptr %code_ptr, align 8 - store i32 %311, ptr %330, align 1 - %add.ptr.i55.i.i = getelementptr i8, ptr %330, i64 4 + %329 = load ptr, ptr %code_ptr, align 8 + store i32 %310, ptr %329, align 1 + %add.ptr.i55.i.i = getelementptr i8, ptr %329, i64 4 store ptr %add.ptr.i55.i.i, ptr %code_ptr, align 8 br label %for.inc.i323 sw.bb19.i: ; preds = %for.body.i318 - %bf.load.i96.i = load i64, ptr %266, align 8 - %331 = lshr i64 %bf.load.i96.i, 24 - %idxprom.i97.i = and i64 %331, 255 + %bf.load.i96.i = load i64, ptr %265, align 8 + %330 = lshr i64 %bf.load.i96.i, 24 + %idxprom.i97.i = and i64 %330, 255 %arrayidx.i98.i = getelementptr [6 x i32], ptr @tcg_target_available_regs, i64 0, i64 %idxprom.i97.i - %332 = load i32, ptr %arrayidx.i98.i, align 4 - tail call fastcc void @temp_load(ptr noundef %s, ptr noundef nonnull %266, i32 noundef %332, i32 noundef %allocated_regs.i.0, i32 noundef 0) - %bf.load1.i99.i = load i64, ptr %266, align 8 - %333 = trunc i64 %bf.load1.i99.i to i32 - %334 = lshr i32 %333, 24 - %bf.cast7.i100.i = and i32 %333, 255 - %335 = lshr i32 %bf.load6.i322, 13 - %sub.i.i101.i = and i32 %335, 2040 - %336 = add nsw i32 %sub.i.i101.i, -48 - %conv.i102.i = zext nneg i32 %336 to i64 - tail call fastcc void @tcg_out_st(ptr noundef %s, i32 noundef %334, i32 noundef %bf.cast7.i100.i, i32 noundef 4, i64 noundef %conv.i102.i) + %331 = load i32, ptr %arrayidx.i98.i, align 4 + tail call fastcc void @temp_load(ptr noundef %s, ptr noundef nonnull %265, i32 noundef %331, i32 noundef %allocated_regs.i.0, i32 noundef 0) + %bf.load1.i99.i = load i64, ptr %265, align 8 + %332 = trunc i64 %bf.load1.i99.i to i32 + %333 = lshr i32 %332, 24 + %bf.cast7.i100.i = and i32 %332, 255 + %334 = lshr i32 %bf.load6.i322, 13 + %sub.i.i101.i = and i32 %334, 2040 + %335 = add nsw i32 %sub.i.i101.i, -48 + %conv.i102.i = zext nneg i32 %335 to i64 + tail call fastcc void @tcg_out_st(ptr noundef %s, i32 noundef %333, i32 noundef %bf.cast7.i100.i, i32 noundef 4, i64 noundef %conv.i102.i) br label %for.inc.i323 do.body.i382: ; preds = %for.body.i318 @@ -9510,20 +9508,20 @@ for.cond34.preheader.i: ; preds = %for.inc32.i, %sw.bb for.body27.i: ; preds = %for.inc32.i, %for.body27.preheader.i %indvars.iv166.i = phi i64 [ %261, %for.body27.preheader.i ], [ %indvars.iv.next167.i, %for.inc32.i ] - %337 = trunc i64 %indvars.iv166.i to i32 - %shl.i325 = shl i32 16, %337 + %336 = trunc i64 %indvars.iv166.i to i32 + %shl.i325 = shl i32 16, %336 %and.i326 = and i32 %shl.i325, %256 %tobool.not.i327 = icmp eq i32 %and.i326, 0 br i1 %tobool.not.i327, label %for.inc32.i, label %if.then.i328 if.then.i328: ; preds = %for.body27.i %arrayidx30.i = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 4, i64 %indvars.iv166.i - %338 = load i64, ptr %arrayidx30.i, align 8 - %339 = inttoptr i64 %338 to ptr - %bf.load.i.i103.i = load i64, ptr %339, align 8 + %337 = load i64, ptr %arrayidx30.i, align 8 + %338 = inttoptr i64 %337 to ptr + %bf.load.i.i103.i = load i64, ptr %338, align 8 %bf.lshr.i.i.i329 = lshr i64 %bf.load.i.i103.i, 32 - %340 = trunc i64 %bf.lshr.i.i.i329 to i32 - %bf.cast.i.i.i330 = and i32 %340, 7 + %339 = trunc i64 %bf.lshr.i.i.i329 to i32 + %bf.cast.i.i.i330 = and i32 %339, 7 switch i32 %bf.cast.i.i.i330, label %do.body.i.i.i370 [ i32 3, label %for.inc32.i i32 2, label %sw.epilog.i.i.i332 @@ -9544,25 +9542,25 @@ do.body.i.i.i370: ; preds = %if.then.i328 sw.epilog.i.i.i332: ; preds = %sw.bb3.i.i.i331, %sw.bb2.i.i.i369, %if.then.i328, %if.then.i328 %new_type.0.i.i.i333 = phi i64 [ 768, %sw.bb3.i.i.i331 ], [ 0, %sw.bb2.i.i.i369 ], [ 512, %if.then.i328 ], [ 512, %if.then.i328 ] - %341 = and i64 %bf.load.i.i103.i, 65280 - %cmp1.i.i.i.i334 = icmp eq i64 %341, 256 + %340 = and i64 %bf.load.i.i103.i, 65280 + %cmp1.i.i.i.i334 = icmp eq i64 %340, 256 br i1 %cmp1.i.i.i.i334, label %if.then2.i.i.i.i365, label %set_temp_val_nonreg.exit.i.i.i335 if.then2.i.i.i.i365: ; preds = %sw.epilog.i.i.i332 %bf.cast5.i.i.i.i366 = and i64 %bf.load.i.i103.i, 255 %arrayidx.i.i.i104.i = getelementptr %struct.TCGContext, ptr %s, i64 0, i32 41, i64 %bf.cast5.i.i.i.i366 - %342 = load ptr, ptr %arrayidx.i.i.i104.i, align 8 - %cmp7.i.i.i.i367 = icmp eq ptr %342, %339 + %341 = load ptr, ptr %arrayidx.i.i.i104.i, align 8 + %cmp7.i.i.i.i367 = icmp eq ptr %341, %338 tail call void @llvm.assume(i1 %cmp7.i.i.i.i367) store ptr null, ptr %arrayidx.i.i.i104.i, align 8 - %bf.load15.pre.i.i.i.i368 = load i64, ptr %339, align 8 + %bf.load15.pre.i.i.i.i368 = load i64, ptr %338, align 8 br label %set_temp_val_nonreg.exit.i.i.i335 set_temp_val_nonreg.exit.i.i.i335: ; preds = %if.then2.i.i.i.i365, %sw.epilog.i.i.i332 %bf.load15.i.i.i.i336 = phi i64 [ %bf.load15.pre.i.i.i.i368, %if.then2.i.i.i.i365 ], [ %bf.load.i.i103.i, %sw.epilog.i.i.i332 ] %bf.clear16.i.i.i.i337 = and i64 %bf.load15.i.i.i.i336, -65281 %bf.set.i.i.i.i338 = or disjoint i64 %bf.clear16.i.i.i.i337, %new_type.0.i.i.i333 - store i64 %bf.set.i.i.i.i338, ptr %339, align 8 + store i64 %bf.set.i.i.i.i338, ptr %338, align 8 br label %for.inc32.i for.inc32.i: ; preds = %set_temp_val_nonreg.exit.i.i.i335, %if.then.i328, %for.body27.i @@ -9573,21 +9571,21 @@ for.inc32.i: ; preds = %set_temp_val_nonreg for.body37.i: ; preds = %for.inc42.i340, %for.cond34.preheader.i %.b.i = phi i1 [ %.b.pre185.i, %for.cond34.preheader.i ], [ %.b186.i, %for.inc42.i340 ] %indvars.iv168.i = phi i64 [ 0, %for.cond34.preheader.i ], [ %indvars.iv.next169.i, %for.inc42.i340 ] - %343 = select i1 %.b.i, i32 -61497, i32 0 - %344 = trunc i64 %indvars.iv168.i to i32 - %345 = shl nuw i32 1, %344 - %346 = and i32 %345, %343 - %tobool39.not.i = icmp eq i32 %346, 0 + %342 = select i1 %.b.i, i32 -61497, i32 0 + %343 = trunc i64 %indvars.iv168.i to i32 + %344 = shl nuw i32 1, %343 + %345 = and i32 %344, %342 + %tobool39.not.i = icmp eq i32 %345, 0 br i1 %tobool39.not.i, label %for.inc42.i340, label %if.then40.i if.then40.i: ; preds = %for.body37.i %arrayidx.i106.i = getelementptr %struct.TCGContext, ptr %s, i64 0, i32 41, i64 %indvars.iv168.i - %347 = load ptr, ptr %arrayidx.i106.i, align 8 - %cmp.not.i.i339 = icmp eq ptr %347, null + %346 = load ptr, ptr %arrayidx.i106.i, align 8 + %cmp.not.i.i339 = icmp eq ptr %346, null br i1 %cmp.not.i.i339, label %for.inc42.i340, label %if.then.i107.i if.then.i107.i: ; preds = %if.then40.i - tail call fastcc void @temp_sync(ptr noundef nonnull %s, ptr noundef nonnull %347, i32 noundef %allocated_regs.i.3, i32 noundef 0, i32 noundef -1) + tail call fastcc void @temp_sync(ptr noundef nonnull %s, ptr noundef nonnull %346, i32 noundef %allocated_regs.i.3, i32 noundef 0, i32 noundef -1) %.b.pre.i = load i1, ptr @tcg_target_call_clobber_regs, align 4 br label %for.inc42.i340 @@ -9606,50 +9604,50 @@ for.end44.i342: ; preds = %for.inc42.i340 if.then67.i: ; preds = %for.end44.i342 %args69.i = getelementptr inbounds %struct.TCGOp, ptr %op.0746, i64 0, i32 4 - %348 = load i64, ptr %args69.i, align 8 - %349 = inttoptr i64 %348 to ptr - %bf.load72.i = load i64, ptr %349, align 8 - %350 = and i64 %bf.load72.i, 274877906944 - %tobool76.not.i = icmp eq i64 %350, 0 + %347 = load i64, ptr %args69.i, align 8 + %348 = inttoptr i64 %347 to ptr + %bf.load72.i = load i64, ptr %348, align 8 + %349 = and i64 %bf.load72.i, 274877906944 + %tobool76.not.i = icmp eq i64 %349, 0 br i1 %tobool76.not.i, label %if.then77.i, label %if.end78.i if.then77.i: ; preds = %if.then67.i - tail call fastcc void @temp_allocate_frame(ptr noundef %s, ptr noundef nonnull %349) + tail call fastcc void @temp_allocate_frame(ptr noundef %s, ptr noundef nonnull %348) br label %if.end78.i if.end78.i: ; preds = %if.then77.i, %if.then67.i - %mem_base.i363 = getelementptr inbounds %struct.TCGTemp, ptr %349, i64 0, i32 2 - %351 = load ptr, ptr %mem_base.i363, align 8 - %bf.load79.i = load i64, ptr %351, align 8 - %352 = trunc i64 %bf.load79.i to i32 - %bf.cast81.i = and i32 %352, 255 - %mem_offset.i364 = getelementptr inbounds %struct.TCGTemp, ptr %349, i64 0, i32 3 - %353 = load i64, ptr %mem_offset.i364, align 8 - %354 = load ptr, ptr %arrayidx.i.i109.i, align 8 - %cmp.not.i.i.i = icmp eq ptr %354, null + %mem_base.i363 = getelementptr inbounds %struct.TCGTemp, ptr %348, i64 0, i32 2 + %350 = load ptr, ptr %mem_base.i363, align 8 + %bf.load79.i = load i64, ptr %350, align 8 + %351 = trunc i64 %bf.load79.i to i32 + %bf.cast81.i = and i32 %351, 255 + %mem_offset.i364 = getelementptr inbounds %struct.TCGTemp, ptr %348, i64 0, i32 3 + %352 = load i64, ptr %mem_offset.i364, align 8 + %353 = load ptr, ptr %arrayidx.i.i109.i, align 8 + %cmp.not.i.i.i = icmp eq ptr %353, null br i1 %cmp.not.i.i.i, label %load_arg_ref.exit.i, label %if.then.i.i110.i if.then.i.i110.i: ; preds = %if.end78.i - tail call fastcc void @temp_sync(ptr noundef nonnull %s, ptr noundef nonnull %354, i32 noundef %allocated_regs.i.3, i32 noundef 0, i32 noundef -1) + tail call fastcc void @temp_sync(ptr noundef nonnull %s, ptr noundef nonnull %353, i32 noundef %allocated_regs.i.3, i32 noundef 0, i32 noundef -1) br label %load_arg_ref.exit.i load_arg_ref.exit.i: ; preds = %if.then.i.i110.i, %if.end78.i - %355 = add i64 %353, 2147483648 - %cmp.i15.i.i = icmp ult i64 %355, 4294967296 + %354 = add i64 %352, 2147483648 + %cmp.i15.i.i = icmp ult i64 %354, 4294967296 tail call void @llvm.assume(i1 %cmp.i15.i.i) - %356 = trunc i64 %bf.load79.i to i8 - %357 = lshr i8 %356, 3 - %358 = and i8 %357, 1 - %conv.i.i.i.i = or disjoint i8 %358, 72 - %359 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i37.i.i.i.i = getelementptr i8, ptr %359, i64 1 + %355 = trunc i64 %bf.load79.i to i8 + %356 = lshr i8 %355, 3 + %357 = and i8 %356, 1 + %conv.i.i.i.i = or disjoint i8 %357, 72 + %358 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i37.i.i.i.i = getelementptr i8, ptr %358, i64 1 store ptr %incdec.ptr.i37.i.i.i.i, ptr %code_ptr, align 8 - store i8 %conv.i.i.i.i, ptr %359, align 1 - %360 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i45.i.i.i.i = getelementptr i8, ptr %360, i64 1 + store i8 %conv.i.i.i.i, ptr %358, align 1 + %359 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i45.i.i.i.i = getelementptr i8, ptr %359, i64 1 store ptr %incdec.ptr.i45.i.i.i.i, ptr %code_ptr, align 8 - store i8 -115, ptr %360, align 1 - tail call fastcc void @tcg_out_sib_offset(ptr noundef nonnull %s, i32 noundef 7, i32 noundef %bf.cast81.i, i32 noundef -1, i32 noundef 0, i64 noundef %353) + store i8 -115, ptr %359, align 1 + tail call fastcc void @tcg_out_sib_offset(ptr noundef nonnull %s, i32 noundef 7, i32 noundef %bf.cast81.i, i32 noundef -1, i32 noundef 0, i64 noundef %352) br label %if.end82.i if.end82.i: ; preds = %load_arg_ref.exit.i, %for.end44.i342 @@ -9660,44 +9658,44 @@ if.end82.i: ; preds = %load_arg_ref.exit.i %add.i116.i = add nuw nsw i32 %bf.clear.i115.i, %bf.lshr.i113.i %idxprom.i117.i = zext nneg i32 %add.i116.i to i64 %arrayidx.i118.i = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 4, i64 %idxprom.i117.i - %361 = load i64, ptr %arrayidx.i118.i, align 8 + %360 = load i64, ptr %arrayidx.i118.i, align 8 %s.val.i.i.i = load ptr, ptr %code_ptr, align 8 %tobool.not.i.i.i.i.i = icmp eq ptr %s.val.i.i.i, null - %362 = load i64, ptr @tcg_splitwx_diff, align 8 - %add.ptr.i.i.i.i.i = getelementptr i8, ptr %s.val.i.i.i, i64 %362 + %361 = load i64, ptr @tcg_splitwx_diff, align 8 + %add.ptr.i.i.i.i.i = getelementptr i8, ptr %s.val.i.i.i, i64 %361 %cond.i.i.i.i.i = select i1 %tobool.not.i.i.i.i.i, ptr null, ptr %add.ptr.i.i.i.i.i %sub.ptr.rhs.cast.i.i.i.i.i = ptrtoint ptr %cond.i.i.i.i.i to i64 - %sub.ptr.sub.i.i.i.i.i = sub i64 %361, %sub.ptr.rhs.cast.i.i.i.i.i - %363 = add i64 %sub.ptr.sub.i.i.i.i.i, 2147483643 - %cmp.i.i119.i = icmp ult i64 %363, 4294967296 + %sub.ptr.sub.i.i.i.i.i = sub i64 %360, %sub.ptr.rhs.cast.i.i.i.i.i + %362 = add i64 %sub.ptr.sub.i.i.i.i.i, 2147483643 + %cmp.i.i119.i = icmp ult i64 %362, 4294967296 br i1 %cmp.i.i119.i, label %if.then.i.i121.i, label %if.else.i.i120.i if.then.i.i121.i: ; preds = %if.end82.i - %364 = trunc i64 %sub.ptr.sub.i.i.i.i.i to i32 - %conv.i.i122.i = add i32 %364, -5 + %363 = trunc i64 %sub.ptr.sub.i.i.i.i.i to i32 + %conv.i.i122.i = add i32 %363, -5 %incdec.ptr.i45.i.i.i123.i = getelementptr i8, ptr %s.val.i.i.i, i64 1 store ptr %incdec.ptr.i45.i.i.i123.i, ptr %code_ptr, align 8 store i8 -24, ptr %s.val.i.i.i, align 1 - %365 = load ptr, ptr %code_ptr, align 8 - store i32 %conv.i.i122.i, ptr %365, align 1 + %364 = load ptr, ptr %code_ptr, align 8 + store i32 %conv.i.i122.i, ptr %364, align 1 br label %tcg_out_call.exit.i if.else.i.i120.i: ; preds = %if.end82.i %incdec.ptr.i45.i13.i.i.i = getelementptr i8, ptr %s.val.i.i.i, i64 1 store ptr %incdec.ptr.i45.i13.i.i.i, ptr %code_ptr, align 8 store i8 -1, ptr %s.val.i.i.i, align 1 - %366 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i.i.i = getelementptr i8, ptr %366, i64 1 + %365 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i.i.i = getelementptr i8, ptr %365, i64 1 store ptr %incdec.ptr.i.i.i.i, ptr %code_ptr, align 8 - store i8 21, ptr %366, align 1 + store i8 21, ptr %365, align 1 + %366 = load ptr, ptr %code_ptr, align 8 + tail call fastcc void @new_pool_label(ptr noundef nonnull %s, i64 noundef %360, ptr noundef %366) %367 = load ptr, ptr %code_ptr, align 8 - tail call fastcc void @new_pool_label(ptr noundef nonnull %s, i64 noundef %361, ptr noundef %367) - %368 = load ptr, ptr %code_ptr, align 8 - store i32 0, ptr %368, align 1 + store i32 0, ptr %367, align 1 br label %tcg_out_call.exit.i tcg_out_call.exit.i: ; preds = %if.else.i.i120.i, %if.then.i.i121.i - %.pn.i.i.i = phi ptr [ %368, %if.else.i.i120.i ], [ %365, %if.then.i.i121.i ] + %.pn.i.i.i = phi ptr [ %367, %if.else.i.i120.i ], [ %364, %if.then.i.i121.i ] %storemerge.i.i.i = getelementptr i8, ptr %.pn.i.i.i, i64 4 store ptr %storemerge.i.i.i, ptr %code_ptr, align 8 %bf.load85.i = load i64, ptr %flags.i, align 8 @@ -9728,27 +9726,27 @@ for.body92.preheader.i: ; preds = %for.cond89.preheade for.body92.i: ; preds = %set_temp_val_reg.exit.i357, %for.body92.preheader.i %indvars.iv175.i = phi i64 [ 0, %for.body92.preheader.i ], [ %indvars.iv.next176.i, %set_temp_val_reg.exit.i357 ] %arrayidx96.i = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 4, i64 %indvars.iv175.i - %369 = load i64, ptr %arrayidx96.i, align 8 - %370 = inttoptr i64 %369 to ptr + %368 = load i64, ptr %arrayidx96.i, align 8 + %369 = inttoptr i64 %368 to ptr %or.cond.i.i = icmp ult i64 %indvars.iv175.i, 2 tail call void @llvm.assume(i1 %or.cond.i.i) %tobool.not.i.i346 = icmp eq i64 %indvars.iv175.i, 0 %cond.i.i347 = select i1 %tobool.not.i.i346, i32 0, i32 2 - %call97.val.i = load i64, ptr %370, align 8 - %371 = and i64 %call97.val.i, 30064771072 - %cmp.i.i348 = icmp ult i64 %371, 8589934593 + %call97.val.i = load i64, ptr %369, align 8 + %370 = and i64 %call97.val.i, 30064771072 + %cmp.i.i348 = icmp ult i64 %370, 8589934593 tail call void @llvm.assume(i1 %cmp.i.i348) - %372 = and i64 %call97.val.i, 65280 - %cmp.i125.i = icmp eq i64 %372, 256 + %371 = and i64 %call97.val.i, 65280 + %cmp.i125.i = icmp eq i64 %371, 256 br i1 %cmp.i125.i, label %if.then.i126.i, label %do.body13.i.i349 if.then.i126.i: ; preds = %for.body92.i - %373 = trunc i64 %call97.val.i to i32 - %bf.cast3.i.i358 = and i32 %373, 255 + %372 = trunc i64 %call97.val.i to i32 + %bf.cast3.i.i358 = and i32 %372, 255 %idxprom.i127.i = and i64 %call97.val.i, 255 %arrayidx.i128.i359 = getelementptr %struct.TCGContext, ptr %s, i64 0, i32 41, i64 %idxprom.i127.i - %374 = load ptr, ptr %arrayidx.i128.i359, align 8 - %cmp4.i.i360 = icmp eq ptr %374, %370 + %373 = load ptr, ptr %arrayidx.i128.i359, align 8 + %cmp4.i.i360 = icmp eq ptr %373, %369 tail call void @llvm.assume(i1 %cmp4.i.i360) %cmp6.i.i361 = icmp eq i32 %bf.cast3.i.i358, %cond.i.i347 br i1 %cmp6.i.i361, label %set_temp_val_reg.exit.i357, label %if.end8.i.i362 @@ -9760,11 +9758,11 @@ if.end8.i.i362: ; preds = %if.then.i126.i do.body13.i.i349: ; preds = %if.end8.i.i362, %for.body92.i %idxprom15.i.i350 = zext nneg i32 %cond.i.i347 to i64 %arrayidx16.i.i351 = getelementptr %struct.TCGContext, ptr %s, i64 0, i32 41, i64 %idxprom15.i.i350 - %375 = load ptr, ptr %arrayidx16.i.i351, align 8 - %cmp17.i.i352 = icmp eq ptr %375, null + %374 = load ptr, ptr %arrayidx16.i.i351, align 8 + %cmp17.i.i352 = icmp eq ptr %374, null tail call void @llvm.assume(i1 %cmp17.i.i352) - store ptr %370, ptr %arrayidx16.i.i351, align 8 - %bf.load24.i.i353 = load i64, ptr %370, align 8 + store ptr %369, ptr %arrayidx16.i.i351, align 8 + %bf.load24.i.i353 = load i64, ptr %369, align 8 %bf.clear25.i.i354 = and i64 %bf.load24.i.i353, -65536 %bf.set.i.i355 = or disjoint i64 %bf.clear25.i.i354, %idxprom15.i.i350 %bf.set28.i.i356 = or disjoint i64 %bf.set.i.i355, 256 @@ -9773,28 +9771,28 @@ do.body13.i.i349: ; preds = %if.end8.i.i362, %fo set_temp_val_reg.exit.i357: ; preds = %do.body13.i.i349, %if.then.i126.i %bf.load104.i = phi i64 [ %call97.val.i, %if.then.i126.i ], [ %bf.set28.i.i356, %do.body13.i.i349 ] %bf.clear105.i = and i64 %bf.load104.i, -137438953473 - store i64 %bf.clear105.i, ptr %370, align 8 + store i64 %bf.clear105.i, ptr %369, align 8 %indvars.iv.next176.i = add nuw nsw i64 %indvars.iv175.i, 1 %exitcond179.not.i = icmp eq i64 %indvars.iv.next176.i, %wide.trip.count178.i br i1 %exitcond179.not.i, label %sw.epilog166.i, label %for.body92.i, !llvm.loop !50 sw.bb109.i: ; preds = %tcg_out_call.exit.i %args111.i = getelementptr inbounds %struct.TCGOp, ptr %op.0746, i64 0, i32 4 - %376 = load i64, ptr %args111.i, align 8 - %377 = inttoptr i64 %376 to ptr - %bf.load115.i = load i64, ptr %377, align 8 - %378 = and i64 %bf.load115.i, 16711680 - %cmp119.i345 = icmp eq i64 %378, 131072 + %375 = load i64, ptr %args111.i, align 8 + %376 = inttoptr i64 %375 to ptr + %bf.load115.i = load i64, ptr %376, align 8 + %377 = and i64 %bf.load115.i, 16711680 + %cmp119.i345 = icmp eq i64 %377, 131072 tail call void @llvm.assume(i1 %cmp119.i345) - %379 = and i64 %bf.load115.i, 1099511627776 - %cmp129.i = icmp eq i64 %379, 0 + %378 = and i64 %bf.load115.i, 1099511627776 + %cmp129.i = icmp eq i64 %378, 0 tail call void @llvm.assume(i1 %cmp129.i) - %380 = and i64 %bf.load115.i, 274877906944 - %tobool138.not.i = icmp eq i64 %380, 0 + %379 = and i64 %bf.load115.i, 274877906944 + %tobool138.not.i = icmp eq i64 %379, 0 br i1 %tobool138.not.i, label %if.then139.i, label %if.end140.i if.then139.i: ; preds = %sw.bb109.i - tail call fastcc void @temp_allocate_frame(ptr noundef nonnull %s, ptr noundef nonnull %377) + tail call fastcc void @temp_allocate_frame(ptr noundef nonnull %s, ptr noundef nonnull %376) br label %if.end140.i if.end140.i: ; preds = %if.then139.i, %sw.bb109.i @@ -9804,12 +9802,12 @@ if.end140.i: ; preds = %if.then139.i, %sw.b for.body151.i: ; preds = %for.body151.i, %for.body151.preheader.i %indvars.iv171.i = phi i64 [ 0, %for.body151.preheader.i ], [ %indvars.iv.next172.i, %for.body151.i ] %arrayidx155.i = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 4, i64 %indvars.iv171.i - %381 = load i64, ptr %arrayidx155.i, align 8 - %382 = inttoptr i64 %381 to ptr - %bf.load157.i = load i64, ptr %382, align 8 + %380 = load i64, ptr %arrayidx155.i, align 8 + %381 = inttoptr i64 %380 to ptr + %bf.load157.i = load i64, ptr %381, align 8 %bf.clear158.i = and i64 %bf.load157.i, -65281 %bf.set159.i = or disjoint i64 %bf.clear158.i, 512 - store i64 %bf.set159.i, ptr %382, align 8 + store i64 %bf.set159.i, ptr %381, align 8 %indvars.iv.next172.i = add nuw nsw i64 %indvars.iv171.i, 1 %exitcond174.not.i = icmp eq i64 %indvars.iv.next172.i, %wide.trip.count.i344 br i1 %exitcond174.not.i, label %sw.epilog166.i, label %for.body151.i, !llvm.loop !51 @@ -9829,32 +9827,32 @@ for.body170.preheader.i: ; preds = %sw.epilog166.i for.body170.i: ; preds = %for.inc190.i, %for.body170.preheader.i %indvars.iv180.i = phi i64 [ 0, %for.body170.preheader.i ], [ %indvars.iv.next181.i, %for.inc190.i ] %arrayidx174.i = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 4, i64 %indvars.iv180.i - %383 = load i64, ptr %arrayidx174.i, align 8 - %384 = inttoptr i64 %383 to ptr - %385 = trunc i64 %indvars.iv180.i to i32 - %shl176.i = shl nuw i32 1, %385 + %382 = load i64, ptr %arrayidx174.i, align 8 + %383 = inttoptr i64 %382 to ptr + %384 = trunc i64 %indvars.iv180.i to i32 + %shl176.i = shl nuw i32 1, %384 %and177.i = and i32 %shl176.i, %256 %tobool178.not.i = icmp eq i32 %and177.i, 0 br i1 %tobool178.not.i, label %if.else183.i, label %if.then179.i if.then179.i: ; preds = %for.body170.i - %386 = load i32, ptr %reserved_regs.i316, align 4 - %shl181.i = shl i32 16, %385 + %385 = load i32, ptr %reserved_regs.i316, align 4 + %shl181.i = shl i32 16, %384 %and182.i = and i32 %shl181.i, %256 - tail call fastcc void @temp_sync(ptr noundef %s, ptr noundef %384, i32 noundef %386, i32 noundef 0, i32 noundef %and182.i) + tail call fastcc void @temp_sync(ptr noundef %s, ptr noundef %383, i32 noundef %385, i32 noundef 0, i32 noundef %and182.i) br label %for.inc190.i if.else183.i: ; preds = %for.body170.i - %shl184.i = shl i32 16, %385 + %shl184.i = shl i32 16, %384 %and185.i = and i32 %shl184.i, %256 %tobool186.not.i = icmp eq i32 %and185.i, 0 br i1 %tobool186.not.i, label %for.inc190.i, label %if.then187.i if.then187.i: ; preds = %if.else183.i - %bf.load.i.i130.i = load i64, ptr %384, align 8 + %bf.load.i.i130.i = load i64, ptr %383, align 8 %bf.lshr.i.i131.i = lshr i64 %bf.load.i.i130.i, 32 - %387 = trunc i64 %bf.lshr.i.i131.i to i32 - %bf.cast.i.i132.i = and i32 %387, 7 + %386 = trunc i64 %bf.lshr.i.i131.i to i32 + %bf.cast.i.i132.i = and i32 %386, 7 switch i32 %bf.cast.i.i132.i, label %do.body.i.i147.i [ i32 3, label %for.inc190.i i32 2, label %sw.epilog.i.i134.i @@ -9875,25 +9873,25 @@ do.body.i.i147.i: ; preds = %if.then187.i sw.epilog.i.i134.i: ; preds = %sw.bb3.i.i133.i, %sw.bb2.i.i146.i, %if.then187.i, %if.then187.i %new_type.0.i.i135.i = phi i64 [ 768, %sw.bb3.i.i133.i ], [ 0, %sw.bb2.i.i146.i ], [ 512, %if.then187.i ], [ 512, %if.then187.i ] - %388 = and i64 %bf.load.i.i130.i, 65280 - %cmp1.i.i.i136.i = icmp eq i64 %388, 256 + %387 = and i64 %bf.load.i.i130.i, 65280 + %cmp1.i.i.i136.i = icmp eq i64 %387, 256 br i1 %cmp1.i.i.i136.i, label %if.then2.i.i.i141.i, label %set_temp_val_nonreg.exit.i.i137.i if.then2.i.i.i141.i: ; preds = %sw.epilog.i.i134.i %bf.cast5.i.i.i142.i = and i64 %bf.load.i.i130.i, 255 %arrayidx.i.i.i143.i = getelementptr %struct.TCGContext, ptr %s, i64 0, i32 41, i64 %bf.cast5.i.i.i142.i - %389 = load ptr, ptr %arrayidx.i.i.i143.i, align 8 - %cmp7.i.i.i144.i = icmp eq ptr %389, %384 + %388 = load ptr, ptr %arrayidx.i.i.i143.i, align 8 + %cmp7.i.i.i144.i = icmp eq ptr %388, %383 tail call void @llvm.assume(i1 %cmp7.i.i.i144.i) store ptr null, ptr %arrayidx.i.i.i143.i, align 8 - %bf.load15.pre.i.i.i145.i = load i64, ptr %384, align 8 + %bf.load15.pre.i.i.i145.i = load i64, ptr %383, align 8 br label %set_temp_val_nonreg.exit.i.i137.i set_temp_val_nonreg.exit.i.i137.i: ; preds = %if.then2.i.i.i141.i, %sw.epilog.i.i134.i %bf.load15.i.i.i138.i = phi i64 [ %bf.load15.pre.i.i.i145.i, %if.then2.i.i.i141.i ], [ %bf.load.i.i130.i, %sw.epilog.i.i134.i ] %bf.clear16.i.i.i139.i = and i64 %bf.load15.i.i.i138.i, -65281 %bf.set.i.i.i140.i = or disjoint i64 %bf.clear16.i.i.i139.i, %new_type.0.i.i135.i - store i64 %bf.set.i.i.i140.i, ptr %384, align 8 + store i64 %bf.set.i.i.i140.i, ptr %383, align 8 br label %for.inc190.i for.inc190.i: ; preds = %set_temp_val_nonreg.exit.i.i137.i, %if.then187.i, %if.else183.i, %if.then179.i @@ -9903,184 +9901,184 @@ for.inc190.i: ; preds = %set_temp_val_nonreg sw.bb109: ; preds = %for.body %args110 = getelementptr inbounds %struct.TCGOp, ptr %op.0746, i64 0, i32 4 - %390 = load i64, ptr %args110, align 8 - %cmp.i383 = icmp eq i64 %390, 0 + %389 = load i64, ptr %args110, align 8 + %cmp.i383 = icmp eq i64 %389, 0 br i1 %cmp.i383, label %if.then.i387, label %if.end.i.i.i if.then.i387: ; preds = %sw.bb109 - %391 = load ptr, ptr @tcg_code_gen_epilogue, align 8 + %390 = load ptr, ptr @tcg_code_gen_epilogue, align 8 %s.val.i.i.i388 = load ptr, ptr %code_ptr, align 8 %tobool.not.i.i.i.i.i389 = icmp eq ptr %s.val.i.i.i388, null - %392 = load i64, ptr @tcg_splitwx_diff, align 8 - %add.ptr.i.i.i.i.i390 = getelementptr i8, ptr %s.val.i.i.i388, i64 %392 + %391 = load i64, ptr @tcg_splitwx_diff, align 8 + %add.ptr.i.i.i.i.i390 = getelementptr i8, ptr %s.val.i.i.i388, i64 %391 %cond.i.i.i.i.i391 = select i1 %tobool.not.i.i.i.i.i389, ptr null, ptr %add.ptr.i.i.i.i.i390 - %sub.ptr.lhs.cast.i.i.i.i.i = ptrtoint ptr %391 to i64 + %sub.ptr.lhs.cast.i.i.i.i.i = ptrtoint ptr %390 to i64 %sub.ptr.rhs.cast.i.i.i.i.i392 = ptrtoint ptr %cond.i.i.i.i.i391 to i64 %sub.ptr.sub.i.i.i.i.i393 = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i.i392 - %393 = add i64 %sub.ptr.sub.i.i.i.i.i393, 2147483643 - %cmp.i.i.i394 = icmp ult i64 %393, 4294967296 + %392 = add i64 %sub.ptr.sub.i.i.i.i.i393, 2147483643 + %cmp.i.i.i394 = icmp ult i64 %392, 4294967296 br i1 %cmp.i.i.i394, label %if.then.i.i.i398, label %if.else.i.i.i395 if.then.i.i.i398: ; preds = %if.then.i387 - %394 = trunc i64 %sub.ptr.sub.i.i.i.i.i393 to i32 - %conv.i.i.i399 = add i32 %394, -5 + %393 = trunc i64 %sub.ptr.sub.i.i.i.i.i393 to i32 + %conv.i.i.i399 = add i32 %393, -5 %incdec.ptr.i45.i.i.i.i400 = getelementptr i8, ptr %s.val.i.i.i388, i64 1 store ptr %incdec.ptr.i45.i.i.i.i400, ptr %code_ptr, align 8 store i8 -23, ptr %s.val.i.i.i388, align 1 - %395 = load ptr, ptr %code_ptr, align 8 - store i32 %conv.i.i.i399, ptr %395, align 1 + %394 = load ptr, ptr %code_ptr, align 8 + store i32 %conv.i.i.i399, ptr %394, align 1 br label %tcg_out_exit_tb.exit if.else.i.i.i395: ; preds = %if.then.i387 %incdec.ptr.i45.i13.i.i.i396 = getelementptr i8, ptr %s.val.i.i.i388, i64 1 store ptr %incdec.ptr.i45.i13.i.i.i396, ptr %code_ptr, align 8 store i8 -1, ptr %s.val.i.i.i388, align 1 - %396 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i.i.i397 = getelementptr i8, ptr %396, i64 1 + %395 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i.i.i397 = getelementptr i8, ptr %395, i64 1 store ptr %incdec.ptr.i.i.i.i397, ptr %code_ptr, align 8 - store i8 37, ptr %396, align 1 + store i8 37, ptr %395, align 1 + %396 = load ptr, ptr %code_ptr, align 8 + tail call fastcc void @new_pool_label(ptr noundef nonnull %s, i64 noundef %sub.ptr.lhs.cast.i.i.i.i.i, ptr noundef %396) %397 = load ptr, ptr %code_ptr, align 8 - tail call fastcc void @new_pool_label(ptr noundef nonnull %s, i64 noundef %sub.ptr.lhs.cast.i.i.i.i.i, ptr noundef %397) - %398 = load ptr, ptr %code_ptr, align 8 - store i32 0, ptr %398, align 1 + store i32 0, ptr %397, align 1 br label %tcg_out_exit_tb.exit if.end.i.i.i: ; preds = %sw.bb109 - %conv.i.i5.i = trunc i64 %390 to i32 - %cmp2.i.i.i = icmp ult i64 %390, 4294967296 + %conv.i.i5.i = trunc i64 %389 to i32 + %cmp2.i.i.i = icmp ult i64 %389, 4294967296 br i1 %cmp2.i.i.i, label %if.then6.i.i.i, label %if.end8.i.i.i if.then6.i.i.i: ; preds = %if.end.i.i.i - %399 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i45.i.i.i13.i = getelementptr i8, ptr %399, i64 1 + %398 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i45.i.i.i13.i = getelementptr i8, ptr %398, i64 1 store ptr %incdec.ptr.i45.i.i.i13.i, ptr %code_ptr, align 8 - store i8 -72, ptr %399, align 1 - %400 = load ptr, ptr %code_ptr, align 8 - store i32 %conv.i.i5.i, ptr %400, align 1 - %add.ptr.i.i.i.i386 = getelementptr i8, ptr %400, i64 4 + store i8 -72, ptr %398, align 1 + %399 = load ptr, ptr %code_ptr, align 8 + store i32 %conv.i.i5.i, ptr %399, align 1 + %add.ptr.i.i.i.i386 = getelementptr i8, ptr %399, i64 4 br label %tcg_out_movi.exit.i if.end8.i.i.i: ; preds = %if.end.i.i.i - %401 = add i64 %390, 2147483648 - %cmp11.i.i.i = icmp ult i64 %401, 4294967296 - %402 = load ptr, ptr %code_ptr, align 8 + %400 = add i64 %389, 2147483648 + %cmp11.i.i.i = icmp ult i64 %400, 4294967296 + %401 = load ptr, ptr %code_ptr, align 8 br i1 %cmp11.i.i.i, label %if.then13.i.i.i, label %if.end15.i.i.i if.then13.i.i.i: ; preds = %if.end8.i.i.i - %incdec.ptr.i37.i82.i.i.i = getelementptr i8, ptr %402, i64 1 + %incdec.ptr.i37.i82.i.i.i = getelementptr i8, ptr %401, i64 1 store ptr %incdec.ptr.i37.i82.i.i.i, ptr %code_ptr, align 8 - store i8 72, ptr %402, align 1 - %403 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i45.i84.i.i.i = getelementptr i8, ptr %403, i64 1 + store i8 72, ptr %401, align 1 + %402 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i45.i84.i.i.i = getelementptr i8, ptr %402, i64 1 store ptr %incdec.ptr.i45.i84.i.i.i, ptr %code_ptr, align 8 - store i8 -57, ptr %403, align 1 - %404 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i.i.i.i = getelementptr i8, ptr %404, i64 1 + store i8 -57, ptr %402, align 1 + %403 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i.i.i.i = getelementptr i8, ptr %403, i64 1 store ptr %incdec.ptr.i.i.i.i.i, ptr %code_ptr, align 8 - store i8 -64, ptr %404, align 1 - %405 = load ptr, ptr %code_ptr, align 8 - store i32 %conv.i.i5.i, ptr %405, align 1 - %add.ptr.i31.i.i.i = getelementptr i8, ptr %405, i64 4 + store i8 -64, ptr %403, align 1 + %404 = load ptr, ptr %code_ptr, align 8 + store i32 %conv.i.i5.i, ptr %404, align 1 + %add.ptr.i31.i.i.i = getelementptr i8, ptr %404, i64 4 br label %tcg_out_movi.exit.i if.end15.i.i.i: ; preds = %if.end8.i.i.i - %tobool.not.i.i.i.i7.i = icmp eq ptr %402, null - %406 = load i64, ptr @tcg_splitwx_diff, align 8 - %add.ptr.i.i.i.i8.i = getelementptr i8, ptr %402, i64 %406 + %tobool.not.i.i.i.i7.i = icmp eq ptr %401, null + %405 = load i64, ptr @tcg_splitwx_diff, align 8 + %add.ptr.i.i.i.i8.i = getelementptr i8, ptr %401, i64 %405 %cond.i.i.i.i9.i = select i1 %tobool.not.i.i.i.i7.i, ptr null, ptr %add.ptr.i.i.i.i8.i %sub.ptr.rhs.cast.i.i.i.i10.i = ptrtoint ptr %cond.i.i.i.i9.i to i64 - %sub.ptr.sub.i.i.i.i11.i = sub i64 %390, %sub.ptr.rhs.cast.i.i.i.i10.i - %407 = add i64 %sub.ptr.sub.i.i.i.i11.i, 2147483641 - %cmp18.i.i.i = icmp ult i64 %407, 4294967296 + %sub.ptr.sub.i.i.i.i11.i = sub i64 %389, %sub.ptr.rhs.cast.i.i.i.i10.i + %406 = add i64 %sub.ptr.sub.i.i.i.i11.i, 2147483641 + %cmp18.i.i.i = icmp ult i64 %406, 4294967296 br i1 %cmp18.i.i.i, label %if.then20.i.i.i, label %if.end24.i.i.i if.then20.i.i.i: ; preds = %if.end15.i.i.i - %408 = trunc i64 %sub.ptr.sub.i.i.i.i11.i to i32 - %conv16.i.i.i = add i32 %408, -7 - %incdec.ptr.i37.i35.i.i.i = getelementptr i8, ptr %402, i64 1 + %407 = trunc i64 %sub.ptr.sub.i.i.i.i11.i to i32 + %conv16.i.i.i = add i32 %407, -7 + %incdec.ptr.i37.i35.i.i.i = getelementptr i8, ptr %401, i64 1 store ptr %incdec.ptr.i37.i35.i.i.i, ptr %code_ptr, align 8 - store i8 72, ptr %402, align 1 - %409 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i45.i37.i.i.i = getelementptr i8, ptr %409, i64 1 + store i8 72, ptr %401, align 1 + %408 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i45.i37.i.i.i = getelementptr i8, ptr %408, i64 1 store ptr %incdec.ptr.i45.i37.i.i.i, ptr %code_ptr, align 8 - store i8 -115, ptr %409, align 1 - %410 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i.i12.i = getelementptr i8, ptr %410, i64 1 + store i8 -115, ptr %408, align 1 + %409 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i.i12.i = getelementptr i8, ptr %409, i64 1 store ptr %incdec.ptr.i.i.i12.i, ptr %code_ptr, align 8 - store i8 5, ptr %410, align 1 - %411 = load ptr, ptr %code_ptr, align 8 - store i32 %conv16.i.i.i, ptr %411, align 1 - %add.ptr.i40.i.i.i = getelementptr i8, ptr %411, i64 4 + store i8 5, ptr %409, align 1 + %410 = load ptr, ptr %code_ptr, align 8 + store i32 %conv16.i.i.i, ptr %410, align 1 + %add.ptr.i40.i.i.i = getelementptr i8, ptr %410, i64 4 store ptr %add.ptr.i40.i.i.i, ptr %code_ptr, align 8 br label %tcg_out_movi.exit.i if.end24.i.i.i: ; preds = %if.end15.i.i.i - %incdec.ptr.i37.i51.i.i.i = getelementptr i8, ptr %402, i64 1 + %incdec.ptr.i37.i51.i.i.i = getelementptr i8, ptr %401, i64 1 store ptr %incdec.ptr.i37.i51.i.i.i, ptr %code_ptr, align 8 - store i8 72, ptr %402, align 1 - %412 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i45.i54.i.i.i = getelementptr i8, ptr %412, i64 1 + store i8 72, ptr %401, align 1 + %411 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i45.i54.i.i.i = getelementptr i8, ptr %411, i64 1 store ptr %incdec.ptr.i45.i54.i.i.i, ptr %code_ptr, align 8 - store i8 -72, ptr %412, align 1 - %413 = load ptr, ptr %code_ptr, align 8 - store i64 %390, ptr %413, align 1 - %add.ptr.i56.i.i.i = getelementptr i8, ptr %413, i64 8 + store i8 -72, ptr %411, align 1 + %412 = load ptr, ptr %code_ptr, align 8 + store i64 %389, ptr %412, align 1 + %add.ptr.i56.i.i.i = getelementptr i8, ptr %412, i64 8 store ptr %add.ptr.i56.i.i.i, ptr %code_ptr, align 8 br label %tcg_out_movi.exit.i tcg_out_movi.exit.i: ; preds = %if.end24.i.i.i, %if.then20.i.i.i, %if.then13.i.i.i, %if.then6.i.i.i %s.val.i.i15.i = phi ptr [ %add.ptr.i.i.i.i386, %if.then6.i.i.i ], [ %add.ptr.i31.i.i.i, %if.then13.i.i.i ], [ %add.ptr.i40.i.i.i, %if.then20.i.i.i ], [ %add.ptr.i56.i.i.i, %if.end24.i.i.i ] - %414 = load ptr, ptr @tb_ret_addr, align 8 + %413 = load ptr, ptr @tb_ret_addr, align 8 %tobool.not.i.i.i.i16.i = icmp eq ptr %s.val.i.i15.i, null - %415 = load i64, ptr @tcg_splitwx_diff, align 8 - %add.ptr.i.i.i.i17.i = getelementptr i8, ptr %s.val.i.i15.i, i64 %415 + %414 = load i64, ptr @tcg_splitwx_diff, align 8 + %add.ptr.i.i.i.i17.i = getelementptr i8, ptr %s.val.i.i15.i, i64 %414 %cond.i.i.i.i18.i = select i1 %tobool.not.i.i.i.i16.i, ptr null, ptr %add.ptr.i.i.i.i17.i - %sub.ptr.lhs.cast.i.i.i.i19.i = ptrtoint ptr %414 to i64 + %sub.ptr.lhs.cast.i.i.i.i19.i = ptrtoint ptr %413 to i64 %sub.ptr.rhs.cast.i.i.i.i20.i = ptrtoint ptr %cond.i.i.i.i18.i to i64 %sub.ptr.sub.i.i.i.i21.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i19.i, %sub.ptr.rhs.cast.i.i.i.i20.i - %416 = add i64 %sub.ptr.sub.i.i.i.i21.i, 2147483643 - %cmp.i.i22.i = icmp ult i64 %416, 4294967296 + %415 = add i64 %sub.ptr.sub.i.i.i.i21.i, 2147483643 + %cmp.i.i22.i = icmp ult i64 %415, 4294967296 br i1 %cmp.i.i22.i, label %if.then.i.i28.i, label %if.else.i.i23.i if.then.i.i28.i: ; preds = %tcg_out_movi.exit.i - %417 = trunc i64 %sub.ptr.sub.i.i.i.i21.i to i32 - %conv.i.i29.i = add i32 %417, -5 + %416 = trunc i64 %sub.ptr.sub.i.i.i.i21.i to i32 + %conv.i.i29.i = add i32 %416, -5 %incdec.ptr.i45.i.i.i30.i = getelementptr i8, ptr %s.val.i.i15.i, i64 1 store ptr %incdec.ptr.i45.i.i.i30.i, ptr %code_ptr, align 8 store i8 -23, ptr %s.val.i.i15.i, align 1 - %418 = load ptr, ptr %code_ptr, align 8 - store i32 %conv.i.i29.i, ptr %418, align 1 + %417 = load ptr, ptr %code_ptr, align 8 + store i32 %conv.i.i29.i, ptr %417, align 1 br label %tcg_out_exit_tb.exit if.else.i.i23.i: ; preds = %tcg_out_movi.exit.i %incdec.ptr.i45.i13.i.i24.i = getelementptr i8, ptr %s.val.i.i15.i, i64 1 store ptr %incdec.ptr.i45.i13.i.i24.i, ptr %code_ptr, align 8 store i8 -1, ptr %s.val.i.i15.i, align 1 - %419 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i.i25.i = getelementptr i8, ptr %419, i64 1 + %418 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i.i25.i = getelementptr i8, ptr %418, i64 1 store ptr %incdec.ptr.i.i.i25.i, ptr %code_ptr, align 8 - store i8 37, ptr %419, align 1 + store i8 37, ptr %418, align 1 + %419 = load ptr, ptr %code_ptr, align 8 + tail call fastcc void @new_pool_label(ptr noundef nonnull %s, i64 noundef %sub.ptr.lhs.cast.i.i.i.i19.i, ptr noundef %419) %420 = load ptr, ptr %code_ptr, align 8 - tail call fastcc void @new_pool_label(ptr noundef nonnull %s, i64 noundef %sub.ptr.lhs.cast.i.i.i.i19.i, ptr noundef %420) - %421 = load ptr, ptr %code_ptr, align 8 - store i32 0, ptr %421, align 1 + store i32 0, ptr %420, align 1 br label %tcg_out_exit_tb.exit tcg_out_exit_tb.exit: ; preds = %if.then.i.i.i398, %if.else.i.i.i395, %if.then.i.i28.i, %if.else.i.i23.i - %.pn.i.i26.sink.i = phi ptr [ %398, %if.else.i.i.i395 ], [ %395, %if.then.i.i.i398 ], [ %421, %if.else.i.i23.i ], [ %418, %if.then.i.i28.i ] + %.pn.i.i26.sink.i = phi ptr [ %397, %if.else.i.i.i395 ], [ %394, %if.then.i.i.i398 ], [ %420, %if.else.i.i23.i ], [ %417, %if.then.i.i28.i ] %storemerge.i.i27.i = getelementptr i8, ptr %.pn.i.i26.sink.i, i64 4 store ptr %storemerge.i.i27.i, ptr %code_ptr, align 8 br label %sw.epilog sw.bb112: ; preds = %for.body %args113 = getelementptr inbounds %struct.TCGOp, ptr %op.0746, i64 0, i32 4 - %422 = load i64, ptr %args113, align 8 - %423 = load ptr, ptr %code_ptr, align 8 - %add.ptr.i402 = getelementptr i8, ptr %423, i64 1 - %424 = ptrtoint ptr %add.ptr.i402 to i64 - %sub.i403 = add i64 %424, 3 + %421 = load i64, ptr %args113, align 8 + %422 = load ptr, ptr %code_ptr, align 8 + %add.ptr.i402 = getelementptr i8, ptr %422, i64 1 + %423 = ptrtoint ptr %add.ptr.i402 to i64 + %sub.i403 = add i64 %423, 3 %div9.i = and i64 %sub.i403, 4294967292 - %sub.ptr.rhs.cast.i = ptrtoint ptr %423 to i64 + %sub.ptr.rhs.cast.i = ptrtoint ptr %422 to i64 %sub.ptr.sub.i = sub i64 %div9.i, %sub.ptr.rhs.cast.i %conv.i404 = trunc i64 %sub.ptr.sub.i to i32 %cmp.not.i = icmp eq i32 %conv.i404, 1 @@ -10095,10 +10093,10 @@ if.then.i405: ; preds = %sw.bb112 for.body.i.i412: ; preds = %if.then.i405, %for.body.i.i412 %i.07.i.i = phi i32 [ %inc.i.i413, %for.body.i.i412 ], [ 1, %if.then.i405 ] - %425 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i.i = getelementptr i8, ptr %425, i64 1 + %424 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i.i = getelementptr i8, ptr %424, i64 1 store ptr %incdec.ptr.i.i.i, ptr %code_ptr, align 8 - store i8 102, ptr %425, align 1 + store i8 102, ptr %424, align 1 %inc.i.i413 = add nuw nsw i32 %i.07.i.i, 1 %exitcond.not.i.i = icmp eq i32 %inc.i.i413, %sub3.i br i1 %exitcond.not.i.i, label %tcg_out_nopn.exit.loopexit.i, label %for.body.i.i412, !llvm.loop !53 @@ -10108,40 +10106,40 @@ tcg_out_nopn.exit.loopexit.i: ; preds = %for.body.i.i412 br label %tcg_out_nopn.exit.i tcg_out_nopn.exit.i: ; preds = %tcg_out_nopn.exit.loopexit.i, %if.then.i405 - %426 = phi ptr [ %.pre.i414, %tcg_out_nopn.exit.loopexit.i ], [ %423, %if.then.i405 ] - %incdec.ptr.i5.i.i = getelementptr i8, ptr %426, i64 1 + %425 = phi ptr [ %.pre.i414, %tcg_out_nopn.exit.loopexit.i ], [ %422, %if.then.i405 ] + %incdec.ptr.i5.i.i = getelementptr i8, ptr %425, i64 1 store ptr %incdec.ptr.i5.i.i, ptr %code_ptr, align 8 - store i8 -112, ptr %426, align 1 + store i8 -112, ptr %425, align 1 %.pre20.i = load ptr, ptr %code_ptr, align 8 br label %tcg_out_goto_tb.exit tcg_out_goto_tb.exit: ; preds = %sw.bb112, %tcg_out_nopn.exit.i - %427 = phi ptr [ %.pre20.i, %tcg_out_nopn.exit.i ], [ %423, %sw.bb112 ] - %incdec.ptr.i.i = getelementptr i8, ptr %427, i64 1 + %426 = phi ptr [ %.pre20.i, %tcg_out_nopn.exit.i ], [ %422, %sw.bb112 ] + %incdec.ptr.i.i = getelementptr i8, ptr %426, i64 1 store ptr %incdec.ptr.i.i, ptr %code_ptr, align 8 - store i8 -23, ptr %427, align 1 + store i8 -23, ptr %426, align 1 %s.val.i.i = load ptr, ptr %code_buf, align 8 %s.val2.i.i = load ptr, ptr %code_ptr, align 8 %sub.ptr.lhs.cast.i.i.i.i = ptrtoint ptr %s.val2.i.i to i64 %sub.ptr.rhs.cast.i.i.i.i = ptrtoint ptr %s.val.i.i 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 %conv.i.i408 = trunc i64 %sub.ptr.sub.i.i.i.i to i16 - %428 = load ptr, ptr %gen_tb, align 8 - %sext = shl i64 %422, 32 + %427 = load ptr, ptr %gen_tb, align 8 + %sext = shl i64 %421, 32 %idxprom.i.i409 = ashr exact i64 %sext, 32 - %arrayidx.i.i410 = getelementptr %struct.TranslationBlock, ptr %428, i64 0, i32 10, i64 %idxprom.i.i409 + %arrayidx.i.i410 = getelementptr %struct.TranslationBlock, ptr %427, i64 0, i32 10, i64 %idxprom.i.i409 store i16 %conv.i.i408, ptr %arrayidx.i.i410, align 2 - %429 = load ptr, ptr %code_ptr, align 8 - store i32 0, ptr %429, align 1 - %add.ptr.i.i411 = getelementptr i8, ptr %429, i64 4 + %428 = load ptr, ptr %code_ptr, align 8 + store i32 0, ptr %428, align 1 + %add.ptr.i.i411 = getelementptr i8, ptr %428, i64 4 store ptr %add.ptr.i.i411, ptr %code_ptr, align 8 %s.val.i11.i = load ptr, ptr %code_buf, align 8 %sub.ptr.lhs.cast.i.i.i13.i = ptrtoint ptr %add.ptr.i.i411 to i64 %sub.ptr.rhs.cast.i.i.i14.i = ptrtoint ptr %s.val.i11.i to i64 %sub.ptr.sub.i.i.i15.i = sub i64 %sub.ptr.lhs.cast.i.i.i13.i, %sub.ptr.rhs.cast.i.i.i14.i %conv.i16.i = trunc i64 %sub.ptr.sub.i.i.i15.i to i16 - %430 = load ptr, ptr %gen_tb, align 8 - %arrayidx.i19.i = getelementptr %struct.TranslationBlock, ptr %430, i64 0, i32 9, i64 %idxprom.i.i409 + %429 = load ptr, ptr %gen_tb, align 8 + %arrayidx.i19.i = getelementptr %struct.TranslationBlock, ptr %429, i64 0, i32 9, i64 %idxprom.i.i409 store i16 %conv.i16.i, ptr %arrayidx.i19.i, align 2 br label %sw.epilog @@ -10152,26 +10150,26 @@ do.body120: ; preds = %for.body call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %new_args.i) call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %const_args.i) %life.i415 = getelementptr inbounds %struct.TCGOp, ptr %op.0746, i64 0, i32 1 - %431 = load i32, ptr %life.i415, align 4 + %430 = load i32, ptr %life.i415, align 4 %idxprom.i418 = zext nneg i32 %bf.clear to i64 %nb_oargs1.i = getelementptr [0 x %struct.TCGOpDef], ptr @tcg_op_defs, i64 0, i64 %idxprom.i418, i32 1 - %432 = load i8, ptr %nb_oargs1.i, align 8 - %conv.i419 = zext i8 %432 to i64 + %431 = load i8, ptr %nb_oargs1.i, align 8 + %conv.i419 = zext i8 %431 to i64 %nb_iargs2.i = getelementptr [0 x %struct.TCGOpDef], ptr @tcg_op_defs, i64 0, i64 %idxprom.i418, i32 2 - %433 = load i8, ptr %nb_iargs2.i, align 1 - %conv3.i = zext i8 %433 to i64 + %432 = load i8, ptr %nb_iargs2.i, align 1 + %conv3.i = zext i8 %432 to i64 %add.ptr.i421 = getelementptr i64, ptr %new_args.i, i64 %conv.i419 %add.ptr5.i = getelementptr i64, ptr %add.ptr.i421, i64 %conv3.i %args.i422 = getelementptr inbounds %struct.TCGOp, ptr %op.0746, i64 0, i32 4 %add.ptr8.i = getelementptr i64, ptr %args.i422, i64 %conv.i419 %add.ptr10.i = getelementptr i64, ptr %add.ptr8.i, i64 %conv3.i %nb_cargs.i = getelementptr [0 x %struct.TCGOpDef], ptr @tcg_op_defs, i64 0, i64 %idxprom.i418, i32 3 - %434 = load i8, ptr %nb_cargs.i, align 2 - %conv11.i = zext i8 %434 to i64 + %433 = load i8, ptr %nb_cargs.i, align 2 + %conv11.i = zext i8 %433 to i64 %mul.i423 = shl nuw nsw i64 %conv11.i, 3 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %add.ptr5.i, ptr align 8 %add.ptr10.i, i64 %mul.i423, i1 false) - %435 = load i32, ptr %reserved_regs.i316, align 4 - %cmp669.not.i = icmp eq i8 %433, 0 + %434 = load i32, ptr %reserved_regs.i316, align 4 + %cmp669.not.i = icmp eq i8 %432, 0 br i1 %cmp669.not.i, label %for.end432.i, label %for.body.lr.ph.i425 for.body.lr.ph.i425: ; preds = %do.body120 @@ -10184,22 +10182,22 @@ for.body420.preheader.i: ; preds = %for.inc.i435 for.body.i427: ; preds = %for.inc.i435, %for.body.lr.ph.i425 %indvars.iv.i428 = phi i64 [ 0, %for.body.lr.ph.i425 ], [ %indvars.iv.next.i436, %for.inc.i435 ] - %i_allocated_regs.0671.i = phi i32 [ %435, %for.body.lr.ph.i425 ], [ %i_allocated_regs.3.i, %for.inc.i435 ] - %436 = load ptr, ptr %args_ct.i, align 8 - %437 = getelementptr %struct.TCGArgConstraint, ptr %436, i64 %indvars.iv.i428 - %arrayidx15.i = getelementptr %struct.TCGArgConstraint, ptr %437, i64 %conv.i419 + %i_allocated_regs.0671.i = phi i32 [ %434, %for.body.lr.ph.i425 ], [ %i_allocated_regs.3.i, %for.inc.i435 ] + %435 = load ptr, ptr %args_ct.i, align 8 + %436 = getelementptr %struct.TCGArgConstraint, ptr %435, i64 %indvars.iv.i428 + %arrayidx15.i = getelementptr %struct.TCGArgConstraint, ptr %436, i64 %conv.i419 %bf.load16.i = load i64, ptr %arrayidx15.i, align 4 - %438 = trunc i64 %bf.load16.i to i32 - %439 = lshr i32 %438, 20 - %bf.cast.i429 = and i32 %439, 15 + %437 = trunc i64 %bf.load16.i to i32 + %438 = lshr i32 %437, 20 + %bf.cast.i429 = and i32 %438, 15 %idxprom19.i = zext nneg i32 %bf.cast.i429 to i64 %arrayidx20.i = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 4, i64 %idxprom19.i - %440 = load i64, ptr %arrayidx20.i, align 8 - %arrayidx23.i = getelementptr %struct.TCGArgConstraint, ptr %436, i64 %idxprom19.i - %441 = inttoptr i64 %440 to ptr - %bf.load24.i = load i64, ptr %441, align 8 - %442 = and i64 %bf.load24.i, 65280 - %cmp28.i = icmp eq i64 %442, 768 + %439 = load i64, ptr %arrayidx20.i, align 8 + %arrayidx23.i = getelementptr %struct.TCGArgConstraint, ptr %435, i64 %idxprom19.i + %440 = inttoptr i64 %439 to ptr + %bf.load24.i = load i64, ptr %440, align 8 + %441 = and i64 %bf.load24.i, 65280 + %cmp28.i = icmp eq i64 %441, 768 %bf.load49.pre.i = load i64, ptr %arrayidx23.i, align 4 br i1 %cmp28.i, label %land.lhs.true.i522, label %for.body.if.end_crit_edge.i @@ -10208,49 +10206,49 @@ for.body.if.end_crit_edge.i: ; preds = %for.body.i427 br label %if.end.i430 land.lhs.true.i522: ; preds = %for.body.i427 - %val.i = getelementptr inbounds %struct.TCGTemp, ptr %441, i64 0, i32 1 - %443 = load i64, ptr %val.i, align 8 - %444 = trunc i64 %bf.load49.pre.i to i32 - %and.i.i523 = and i32 %444, 1 + %val.i = getelementptr inbounds %struct.TCGTemp, ptr %440, i64 0, i32 1 + %442 = load i64, ptr %val.i, align 8 + %443 = trunc i64 %bf.load49.pre.i to i32 + %and.i.i523 = and i32 %443, 1 %tobool.not.i.i524 = icmp eq i32 %and.i.i523, 0 br i1 %tobool.not.i.i524, label %if.end.i.i, label %if.then.i525 if.end.i.i: ; preds = %land.lhs.true.i522 - %445 = and i64 %bf.load24.i, 4278190080 - %cmp.i.i526 = icmp eq i64 %445, 0 + %444 = and i64 %bf.load24.i, 4278190080 + %cmp.i.i526 = icmp eq i64 %444, 0 br i1 %cmp.i.i526, label %if.then1.i.i, label %if.else.i.i527 if.then1.i.i: ; preds = %if.end.i.i - %and2.i.i = and i32 %444, 1792 + %and2.i.i = and i32 %443, 1792 %tobool3.not.i.i = icmp eq i32 %and2.i.i, 0 br i1 %tobool3.not.i.i, label %tcg_target_const_match.exit.i, label %if.then.i525 if.else.i.i527: ; preds = %if.end.i.i - %and6.i.i = and i32 %444, 256 + %and6.i.i = and i32 %443, 256 %tobool7.not.i.i = icmp ne i32 %and6.i.i, 0 - %446 = add i64 %443, 2147483648 - %cmp9.i.i = icmp ult i64 %446, 4294967296 + %445 = add i64 %442, 2147483648 + %cmp9.i.i = icmp ult i64 %445, 4294967296 %or.cond.i.i528 = and i1 %tobool7.not.i.i, %cmp9.i.i br i1 %or.cond.i.i528, label %if.then.i525, label %if.end12.i.i if.end12.i.i: ; preds = %if.else.i.i527 - %and13.i.i = and i32 %444, 512 + %and13.i.i = and i32 %443, 512 %tobool14.not.i.i = icmp ne i32 %and13.i.i, 0 - %cmp18.i.i = icmp ult i64 %443, 4294967296 + %cmp18.i.i = icmp ult i64 %442, 4294967296 %or.cond13.i.i = and i1 %tobool14.not.i.i, %cmp18.i.i br i1 %or.cond13.i.i, label %if.then.i525, label %if.end21.i.i if.end21.i.i: ; preds = %if.end12.i.i - %and22.i.i = and i32 %444, 1024 + %and22.i.i = and i32 %443, 1024 %tobool23.not.i.i = icmp ne i32 %and22.i.i, 0 %or.cond14.i.i = and i1 %tobool23.not.i.i, %cmp9.i.i br i1 %or.cond14.i.i, label %if.then.i525, label %tcg_target_const_match.exit.i tcg_target_const_match.exit.i: ; preds = %if.end21.i.i, %if.then1.i.i %cond.i.i529 = phi i64 [ 64, %if.end21.i.i ], [ 32, %if.then1.i.i ] - %and33.i.i = and i32 %444, 2048 + %and33.i.i = and i32 %443, 2048 %tobool34.not.i.i = icmp ne i32 %and33.i.i, 0 - %cmp39.i.i = icmp eq i64 %cond.i.i529, %443 + %cmp39.i.i = icmp eq i64 %cond.i.i529, %442 %or.cond15.i.i = and i1 %tobool34.not.i.i, %cmp39.i.i br i1 %or.cond15.i.i, label %if.then.i525, label %if.end.i430 @@ -10258,17 +10256,17 @@ if.then.i525: ; preds = %tcg_target_const_ma %arrayidx42.i = getelementptr [16 x i32], ptr %const_args.i, i64 0, i64 %idxprom19.i store i32 1, ptr %arrayidx42.i, align 4 %arrayidx45.i = getelementptr [16 x i64], ptr %new_args.i, i64 0, i64 %idxprom19.i - store i64 %443, ptr %arrayidx45.i, align 8 + store i64 %442, ptr %arrayidx45.i, align 8 br label %for.inc.i435 if.end.i430: ; preds = %tcg_target_const_match.exit.i, %for.body.if.end_crit_edge.i - %.pre-phi.i431 = phi i32 [ %.pre707.i, %for.body.if.end_crit_edge.i ], [ %444, %tcg_target_const_match.exit.i ] - %447 = trunc i64 %bf.load24.i to i32 - %bf.cast48.i = and i32 %447, 255 - %regs.i432 = getelementptr %struct.TCGArgConstraint, ptr %436, i64 %idxprom19.i, i32 1 - %448 = load i32, ptr %regs.i432, align 4 - %449 = lshr i32 %.pre-phi.i431, 28 - %bf.cast52.i = and i32 %449, 3 + %.pre-phi.i431 = phi i32 [ %.pre707.i, %for.body.if.end_crit_edge.i ], [ %443, %tcg_target_const_match.exit.i ] + %446 = trunc i64 %bf.load24.i to i32 + %bf.cast48.i = and i32 %446, 255 + %regs.i432 = getelementptr %struct.TCGArgConstraint, ptr %435, i64 %idxprom19.i, i32 1 + %447 = load i32, ptr %regs.i432, align 4 + %448 = lshr i32 %.pre-phi.i431, 28 + %bf.cast52.i = and i32 %448, 3 switch i32 %bf.cast52.i, label %if.end.unreachabledefault.i [ i32 0, label %sw.bb.i514 i32 1, label %sw.bb116.i @@ -10277,146 +10275,146 @@ if.end.i430: ; preds = %tcg_target_const_ma ] sw.bb.i514: ; preds = %if.end.i430 - %450 = and i64 %bf.load49.pre.i, 2147483648 - %bf.cast56.not.i = icmp eq i64 %450, 0 + %449 = and i64 %bf.load49.pre.i, 2147483648 + %bf.cast56.not.i = icmp eq i64 %449, 0 br i1 %bf.cast56.not.i, label %if.end100.i, label %if.then57.i if.then57.i: ; preds = %sw.bb.i514 - %451 = lshr i32 %.pre-phi.i431, 16 - %bf.cast61.i515 = and i32 %451, 15 + %450 = lshr i32 %.pre-phi.i431, 16 + %bf.cast61.i515 = and i32 %450, 15 %cmp.i291.i = icmp ult i32 %bf.cast61.i515, 2 br i1 %cmp.i291.i, label %cond.true.i.i, label %output_pref.exit.i cond.true.i.i: ; preds = %if.then57.i %conv.i.i520 = zext nneg i32 %bf.cast61.i515 to i64 %arrayidx.i.i521 = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 3, i64 %conv.i.i520 - %452 = load i32, ptr %arrayidx.i.i521, align 4 + %451 = load i32, ptr %arrayidx.i.i521, align 4 br label %output_pref.exit.i output_pref.exit.i: ; preds = %cond.true.i.i, %if.then57.i - %cond.i292.i = phi i32 [ %452, %cond.true.i.i ], [ 0, %if.then57.i ] - %453 = and i64 %bf.load24.i, 30064771072 - %cmp.i293.i = icmp ugt i64 %453, 8589934592 + %cond.i292.i = phi i32 [ %451, %cond.true.i.i ], [ 0, %if.then57.i ] + %452 = and i64 %bf.load24.i, 30064771072 + %cmp.i293.i = icmp ugt i64 %452, 8589934592 br i1 %cmp.i293.i, label %if.then102.i, label %lor.lhs.false.i lor.lhs.false.i: ; preds = %output_pref.exit.i %shl.i516 = shl nuw nsw i32 16, %bf.cast.i429 - %and.i517 = and i32 %shl.i516, %431 + %and.i517 = and i32 %shl.i516, %430 %tobool.not.i518 = icmp eq i32 %and.i517, 0 br i1 %tobool.not.i518, label %if.then102.i, label %lor.lhs.false65.i lor.lhs.false65.i: ; preds = %lor.lhs.false.i - %454 = lshr i64 %bf.load49.pre.i, 16 - %bf.cast70.i = and i64 %454, 15 - %arrayidx72.i = getelementptr %struct.TCGArgConstraint, ptr %436, i64 %bf.cast70.i + %453 = lshr i64 %bf.load49.pre.i, 16 + %bf.cast70.i = and i64 %453, 15 + %arrayidx72.i = getelementptr %struct.TCGArgConstraint, ptr %435, i64 %bf.cast70.i %bf.load73.i = load i64, ptr %arrayidx72.i, align 4 - %455 = and i64 %bf.load73.i, 4294967296 - %bf.cast76.not.i = icmp eq i64 %455, 0 + %454 = and i64 %bf.load73.i, 4294967296 + %bf.cast76.not.i = icmp eq i64 %454, 0 br i1 %bf.cast76.not.i, label %if.else.i519, label %if.then102.i if.else.i519: ; preds = %lor.lhs.false65.i - %cmp83.i = icmp eq i64 %442, 256 + %cmp83.i = icmp eq i64 %441, 256 br i1 %cmp83.i, label %if.end90.i, label %if.end100.i if.end90.i: ; preds = %if.else.i519 - %456 = shl nuw i32 1, %bf.cast48.i - %457 = and i32 %456, %i_allocated_regs.0671.i - %tobool87.not.i = icmp eq i32 %457, 0 + %455 = shl nuw i32 1, %bf.cast48.i + %456 = and i32 %455, %i_allocated_regs.0671.i + %tobool87.not.i = icmp eq i32 %456, 0 br i1 %tobool87.not.i, label %if.end100.i, label %if.then102.i if.end100.i: ; preds = %if.end90.i, %if.else.i519, %sw.bb.i514 %i_preferred_regs.0636.i = phi i32 [ %cond.i292.i, %if.end90.i ], [ 0, %sw.bb.i514 ], [ %cond.i292.i, %if.else.i519 ] - tail call fastcc void @temp_load(ptr noundef %s, ptr noundef nonnull %441, i32 noundef %448, i32 noundef %i_allocated_regs.0671.i, i32 noundef %i_preferred_regs.0636.i) - %bf.load93.i = load i64, ptr %441, align 8 - %458 = trunc i64 %bf.load93.i to i32 - %bf.cast95.i = and i32 %458, 255 - %459 = shl nuw i32 1, %bf.cast95.i - %460 = and i32 %459, %448 - %tobool98.not.not.i = icmp eq i32 %460, 0 + tail call fastcc void @temp_load(ptr noundef %s, ptr noundef nonnull %440, i32 noundef %447, i32 noundef %i_allocated_regs.0671.i, i32 noundef %i_preferred_regs.0636.i) + %bf.load93.i = load i64, ptr %440, align 8 + %457 = trunc i64 %bf.load93.i to i32 + %bf.cast95.i = and i32 %457, 255 + %458 = shl nuw i32 1, %bf.cast95.i + %459 = and i32 %458, %447 + %tobool98.not.not.i = icmp eq i32 %459, 0 br i1 %tobool98.not.not.i, label %if.then102.i, label %if.end408.i if.then102.i: ; preds = %if.end100.i, %if.end90.i, %lor.lhs.false65.i, %lor.lhs.false.i, %output_pref.exit.i %bf.load103.i = phi i64 [ %bf.load93.i, %if.end100.i ], [ %bf.load24.i, %if.end90.i ], [ %bf.load24.i, %lor.lhs.false65.i ], [ %bf.load24.i, %lor.lhs.false.i ], [ %bf.load24.i, %output_pref.exit.i ] %i_preferred_regs.0630641.i = phi i32 [ %i_preferred_regs.0636.i, %if.end100.i ], [ %cond.i292.i, %if.end90.i ], [ %cond.i292.i, %lor.lhs.false65.i ], [ %cond.i292.i, %lor.lhs.false.i ], [ %cond.i292.i, %output_pref.exit.i ] - %461 = lshr i64 %bf.load103.i, 24 - %idxprom107.i = and i64 %461, 255 + %460 = lshr i64 %bf.load103.i, 24 + %idxprom107.i = and i64 %460, 255 %arrayidx108.i = getelementptr [6 x i32], ptr @tcg_target_available_regs, i64 0, i64 %idxprom107.i - %462 = load i32, ptr %arrayidx108.i, align 4 - tail call fastcc void @temp_load(ptr noundef %s, ptr noundef nonnull %441, i32 noundef %462, i32 noundef %i_allocated_regs.0671.i, i32 noundef 0) - %bf.load109.i = load i64, ptr %441, align 8 - %463 = and i64 %bf.load109.i, 68719476736 - %tobool113.i = icmp ne i64 %463, 0 - %call114.i = tail call fastcc i32 @tcg_reg_alloc(ptr noundef %s, i32 noundef %448, i32 noundef %i_allocated_regs.0671.i, i32 noundef %i_preferred_regs.0630641.i, i1 noundef zeroext %tobool113.i) + %461 = load i32, ptr %arrayidx108.i, align 4 + tail call fastcc void @temp_load(ptr noundef %s, ptr noundef nonnull %440, i32 noundef %461, i32 noundef %i_allocated_regs.0671.i, i32 noundef 0) + %bf.load109.i = load i64, ptr %440, align 8 + %462 = and i64 %bf.load109.i, 68719476736 + %tobool113.i = icmp ne i64 %462, 0 + %call114.i = tail call fastcc i32 @tcg_reg_alloc(ptr noundef %s, i32 noundef %447, i32 noundef %i_allocated_regs.0671.i, i32 noundef %i_preferred_regs.0630641.i, i1 noundef zeroext %tobool113.i) br label %if.then390.i sw.bb116.i: ; preds = %if.end.i430 - %464 = lshr i32 %.pre-phi.i431, 24 - %bf.cast120.i = and i32 %464, 15 + %463 = lshr i32 %.pre-phi.i431, 24 + %bf.cast120.i = and i32 %463, 15 %cmp121.not.i = icmp eq i32 %bf.cast.i429, %bf.cast120.i br i1 %cmp121.not.i, label %cond.end.i, label %cond.true.i cond.true.i: ; preds = %sw.bb116.i %idxprom124.i = zext nneg i32 %bf.cast120.i to i64 %arrayidx125.i = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 4, i64 %idxprom124.i - %465 = load i64, ptr %arrayidx125.i, align 8 - %466 = inttoptr i64 %465 to ptr + %464 = load i64, ptr %arrayidx125.i, align 8 + %465 = inttoptr i64 %464 to ptr br label %cond.end.i cond.end.i: ; preds = %cond.true.i, %sw.bb116.i - %cond.i512 = phi ptr [ %466, %cond.true.i ], [ null, %sw.bb116.i ] - %467 = and i64 %bf.load49.pre.i, 2147483648 - %bf.cast130.not.i = icmp eq i64 %467, 0 + %cond.i512 = phi ptr [ %465, %cond.true.i ], [ null, %sw.bb116.i ] + %466 = and i64 %bf.load49.pre.i, 2147483648 + %bf.cast130.not.i = icmp eq i64 %466, 0 br i1 %bf.cast130.not.i, label %do.body.i513, label %if.then131.i if.then131.i: ; preds = %cond.end.i - %468 = lshr i32 %.pre-phi.i431, 16 - %bf.cast135.i = and i32 %468, 15 + %467 = lshr i32 %.pre-phi.i431, 16 + %bf.cast135.i = and i32 %467, 15 %cmp.i294.i = icmp ult i32 %bf.cast135.i, 2 br i1 %cmp.i294.i, label %cond.true.i296.i, label %output_pref.exit299.i cond.true.i296.i: ; preds = %if.then131.i %conv.i297.i = zext nneg i32 %bf.cast135.i to i64 %arrayidx.i298.i = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 3, i64 %conv.i297.i - %469 = load i32, ptr %arrayidx.i298.i, align 4 + %468 = load i32, ptr %arrayidx.i298.i, align 4 br label %output_pref.exit299.i output_pref.exit299.i: ; preds = %cond.true.i296.i, %if.then131.i - %cond.i295.i = phi i32 [ %469, %cond.true.i296.i ], [ 0, %if.then131.i ] + %cond.i295.i = phi i32 [ %468, %cond.true.i296.i ], [ 0, %if.then131.i ] %shl137.i = shl nuw nsw i32 16, %bf.cast.i429 - %and138.i = and i32 %shl137.i, %431 + %and138.i = and i32 %shl137.i, %430 %tobool139.not.i = icmp eq i32 %and138.i, 0 br i1 %tobool139.not.i, label %if.end228.i, label %land.lhs.true140.i land.lhs.true140.i: ; preds = %output_pref.exit299.i %shl141.i = shl nuw nsw i32 16, %bf.cast120.i - %and142.i = and i32 %shl141.i, %431 + %and142.i = and i32 %shl141.i, %430 %tobool143.not.i = icmp eq i32 %and142.i, 0 - %470 = and i64 %bf.load24.i, 30064771072 - %cmp.i300.i = icmp ugt i64 %470, 8589934592 + %469 = and i64 %bf.load24.i, 30064771072 + %cmp.i300.i = icmp ugt i64 %469, 8589934592 %or.cond656.i = or i1 %cmp.i300.i, %tobool143.not.i br i1 %or.cond656.i, label %if.end228.i, label %land.lhs.true146.i land.lhs.true146.i: ; preds = %land.lhs.true140.i - %cmp151.i = icmp eq i64 %442, 256 + %cmp151.i = icmp eq i64 %441, 256 %bf.cast156280.i = and i64 %bf.load24.i, 255 %cmp157.i = icmp ult i64 %bf.cast156280.i, 31 %or.cond285.i = and i1 %cmp151.i, %cmp157.i br i1 %or.cond285.i, label %land.lhs.true159.i, label %if.end228.i land.lhs.true159.i: ; preds = %land.lhs.true146.i - %471 = shl nuw i32 1, %bf.cast48.i - %472 = and i32 %448, %471 - %tobool162.not.i = icmp ne i32 %472, 0 - %473 = and i32 %471, %i_allocated_regs.0671.i - %tobool166.not.i = icmp eq i32 %473, 0 + %470 = shl nuw i32 1, %bf.cast48.i + %471 = and i32 %447, %470 + %tobool162.not.i = icmp ne i32 %471, 0 + %472 = and i32 %470, %i_allocated_regs.0671.i + %tobool166.not.i = icmp eq i32 %472, 0 %or.cond657.i = select i1 %tobool162.not.i, i1 %tobool166.not.i, i1 false br i1 %or.cond657.i, label %land.lhs.true167.i, label %if.end228.i land.lhs.true167.i: ; preds = %land.lhs.true159.i %add168.i = add nuw nsw i32 %bf.cast48.i, 1 - %474 = shl i32 2, %bf.cast48.i - %475 = and i32 %474, %i_allocated_regs.0671.i - %tobool171.not.i = icmp eq i32 %475, 0 + %473 = shl i32 2, %bf.cast48.i + %474 = and i32 %473, %i_allocated_regs.0671.i + %tobool171.not.i = icmp eq i32 %474, 0 br i1 %tobool171.not.i, label %land.lhs.true172.i, label %if.end228.i land.lhs.true172.i: ; preds = %land.lhs.true167.i @@ -10425,92 +10423,92 @@ land.lhs.true172.i: ; preds = %land.lhs.true167.i cond.true174.i: ; preds = %land.lhs.true172.i %bf.load175.i = load i64, ptr %cond.i512, align 8 - %476 = and i64 %bf.load175.i, 65280 - %cmp179.i = icmp ne i64 %476, 256 - %477 = trunc i64 %bf.load175.i to i32 - %bf.cast184.i = and i32 %477, 255 + %475 = and i64 %bf.load175.i, 65280 + %cmp179.i = icmp ne i64 %475, 256 + %476 = trunc i64 %bf.load175.i to i32 + %bf.cast184.i = and i32 %476, 255 %cmp186.i = icmp ne i32 %bf.cast184.i, %add168.i %or.cond286.not664.i = select i1 %cmp179.i, i1 true, i1 %cmp186.i - %478 = and i64 %bf.load175.i, 30064771072 - %cmp.i301.i = icmp ugt i64 %478, 8589934592 + %477 = and i64 %bf.load175.i, 30064771072 + %cmp.i301.i = icmp ugt i64 %477, 8589934592 %or.cond658.i = or i1 %cmp.i301.i, %or.cond286.not664.i br i1 %or.cond658.i, label %if.end228.i, label %if.end408.i cond.false190.i: ; preds = %land.lhs.true172.i %idxprom192.i = zext nneg i32 %add168.i to i64 %arrayidx193.i = getelementptr %struct.TCGContext, ptr %s, i64 0, i32 41, i64 %idxprom192.i - %479 = load ptr, ptr %arrayidx193.i, align 8 - %cmp194.i = icmp eq ptr %479, null + %478 = load ptr, ptr %arrayidx193.i, align 8 + %cmp194.i = icmp eq ptr %478, null br i1 %cmp194.i, label %if.end408.i, label %if.end228.i do.body.i513: ; preds = %cond.end.i %tobool199.i = icmp ne ptr %cond.i512, null tail call void @llvm.assume(i1 %tobool199.i) - %cmp206.i = icmp eq i64 %442, 256 + %cmp206.i = icmp eq i64 %441, 256 br i1 %cmp206.i, label %land.lhs.true208.i, label %if.end228.i land.lhs.true208.i: ; preds = %do.body.i513 %bf.load209.i = load i64, ptr %cond.i512, align 8 - %480 = and i64 %bf.load209.i, 65280 - %cmp213.i = icmp eq i64 %480, 256 + %479 = and i64 %bf.load209.i, 65280 + %cmp213.i = icmp eq i64 %479, 256 br i1 %cmp213.i, label %land.lhs.true215.i, label %if.end228.i land.lhs.true215.i: ; preds = %land.lhs.true208.i - %481 = trunc i64 %bf.load209.i to i32 - %bf.cast218.i = and i32 %481, 255 + %480 = trunc i64 %bf.load209.i to i32 + %bf.cast218.i = and i32 %480, 255 %add219.i = add nuw nsw i32 %bf.cast48.i, 1 %cmp220.i = icmp eq i32 %bf.cast218.i, %add219.i br i1 %cmp220.i, label %land.lhs.true222.i, label %if.end228.i land.lhs.true222.i: ; preds = %land.lhs.true215.i - %482 = shl nuw i32 1, %bf.cast48.i - %483 = and i32 %448, %482 - %tobool225.not.i = icmp eq i32 %483, 0 + %481 = shl nuw i32 1, %bf.cast48.i + %482 = and i32 %447, %481 + %tobool225.not.i = icmp eq i32 %482, 0 br i1 %tobool225.not.i, label %if.end228.i, label %if.end408.i if.end228.i: ; preds = %land.lhs.true222.i, %land.lhs.true215.i, %land.lhs.true208.i, %do.body.i513, %cond.false190.i, %cond.true174.i, %land.lhs.true167.i, %land.lhs.true159.i, %land.lhs.true146.i, %land.lhs.true140.i, %output_pref.exit299.i %i_preferred_regs.1.i = phi i32 [ %cond.i295.i, %land.lhs.true167.i ], [ %cond.i295.i, %cond.true174.i ], [ %cond.i295.i, %cond.false190.i ], [ %cond.i295.i, %land.lhs.true159.i ], [ %cond.i295.i, %land.lhs.true146.i ], [ %cond.i295.i, %land.lhs.true140.i ], [ %cond.i295.i, %output_pref.exit299.i ], [ 0, %land.lhs.true222.i ], [ 0, %land.lhs.true215.i ], [ 0, %land.lhs.true208.i ], [ 0, %do.body.i513 ] - %484 = and i64 %bf.load24.i, 68719476736 - %tobool233.i = icmp ne i64 %484, 0 - %call234.i = tail call fastcc i32 @tcg_reg_alloc_pair(ptr noundef %s, i32 noundef %448, i32 noundef %i_allocated_regs.0671.i, i32 noundef 0, i1 noundef zeroext %tobool233.i) + %483 = and i64 %bf.load24.i, 68719476736 + %tobool233.i = icmp ne i64 %483, 0 + %call234.i = tail call fastcc i32 @tcg_reg_alloc_pair(ptr noundef %s, i32 noundef %447, i32 noundef %i_allocated_regs.0671.i, i32 noundef 0, i1 noundef zeroext %tobool233.i) br label %do_pair.i sw.bb235.i: ; preds = %if.end.i430 - %485 = lshr i64 %bf.load49.pre.i, 24 - %bf.cast239.i = and i64 %485, 15 + %484 = lshr i64 %bf.load49.pre.i, 24 + %bf.cast239.i = and i64 %484, 15 %arrayidx241.i = getelementptr [16 x i64], ptr %new_args.i, i64 0, i64 %bf.cast239.i - %486 = load i64, ptr %arrayidx241.i, align 8 - %487 = trunc i64 %486 to i32 - %conv243.i = add i32 %487, 1 + %485 = load i64, ptr %arrayidx241.i, align 8 + %486 = trunc i64 %485 to i32 + %conv243.i = add i32 %486, 1 br label %do_pair.i do.body245.i: ; preds = %if.end.i430 - %488 = and i64 %bf.load49.pre.i, 2147483648 - %bf.cast249.i = icmp ne i64 %488, 0 + %487 = and i64 %bf.load49.pre.i, 2147483648 + %bf.cast249.i = icmp ne i64 %487, 0 tail call void @llvm.assume(i1 %bf.cast249.i) - %489 = lshr i32 %.pre-phi.i431, 16 - %bf.cast256.i = and i32 %489, 15 + %488 = lshr i32 %.pre-phi.i431, 16 + %bf.cast256.i = and i32 %488, 15 %cmp.i302.i = icmp ult i32 %bf.cast256.i, 2 br i1 %cmp.i302.i, label %cond.true.i304.i, label %output_pref.exit307.i cond.true.i304.i: ; preds = %do.body245.i %conv.i305.i = zext nneg i32 %bf.cast256.i to i64 %arrayidx.i306.i = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 3, i64 %conv.i305.i - %490 = load i32, ptr %arrayidx.i306.i, align 4 + %489 = load i32, ptr %arrayidx.i306.i, align 4 br label %output_pref.exit307.i output_pref.exit307.i: ; preds = %cond.true.i304.i, %do.body245.i - %cond.i303.i = phi i32 [ %490, %cond.true.i304.i ], [ 0, %do.body245.i ] + %cond.i303.i = phi i32 [ %489, %cond.true.i304.i ], [ 0, %do.body245.i ] %shl258.i = shl nuw nsw i32 16, %bf.cast.i429 - %and259.i = and i32 %shl258.i, %431 + %and259.i = and i32 %shl258.i, %430 %tobool260.not.i = icmp eq i32 %and259.i, 0 - %491 = and i64 %bf.load24.i, 30064771072 - %cmp.i308.i = icmp ugt i64 %491, 8589934592 + %490 = and i64 %bf.load24.i, 30064771072 + %cmp.i308.i = icmp ugt i64 %490, 8589934592 %or.cond659.i = or i1 %cmp.i308.i, %tobool260.not.i br i1 %or.cond659.i, label %if.end295.i, label %land.lhs.true263.i land.lhs.true263.i: ; preds = %output_pref.exit307.i - %cmp268.i = icmp eq i64 %442, 256 + %cmp268.i = icmp eq i64 %441, 256 %cmp271.i = icmp ne i32 %bf.cast48.i, 0 %or.cond.i433 = and i1 %cmp268.i, %cmp271.i br i1 %or.cond.i433, label %land.lhs.true273.i, label %if.end295.i @@ -10519,33 +10517,33 @@ land.lhs.true273.i: ; preds = %land.lhs.true263.i %sub.i510 = add nsw i32 %bf.cast48.i, -1 %idxprom275.i = zext nneg i32 %sub.i510 to i64 %arrayidx276.i = getelementptr %struct.TCGContext, ptr %s, i64 0, i32 41, i64 %idxprom275.i - %492 = load ptr, ptr %arrayidx276.i, align 8 - %cmp277.i = icmp eq ptr %492, null + %491 = load ptr, ptr %arrayidx276.i, align 8 + %cmp277.i = icmp eq ptr %491, null br i1 %cmp277.i, label %land.lhs.true279.i, label %if.end295.i land.lhs.true279.i: ; preds = %land.lhs.true273.i - %493 = shl nuw i32 1, %bf.cast48.i - %494 = and i32 %448, %493 - %tobool282.not.i = icmp ne i32 %494, 0 - %495 = and i32 %493, %i_allocated_regs.0671.i - %tobool286.not.i = icmp eq i32 %495, 0 + %492 = shl nuw i32 1, %bf.cast48.i + %493 = and i32 %447, %492 + %tobool282.not.i = icmp ne i32 %493, 0 + %494 = and i32 %492, %i_allocated_regs.0671.i + %tobool286.not.i = icmp eq i32 %494, 0 %or.cond660.i = select i1 %tobool282.not.i, i1 %tobool286.not.i, i1 false br i1 %or.cond660.i, label %land.lhs.true287.i, label %if.end295.i land.lhs.true287.i: ; preds = %land.lhs.true279.i - %496 = shl nuw i32 1, %sub.i510 - %497 = and i32 %496, %i_allocated_regs.0671.i - %tobool291.not.i = icmp eq i32 %497, 0 + %495 = shl nuw i32 1, %sub.i510 + %496 = and i32 %495, %i_allocated_regs.0671.i + %tobool291.not.i = icmp eq i32 %496, 0 br i1 %tobool291.not.i, label %if.then292.i, label %if.end295.i if.then292.i: ; preds = %land.lhs.true287.i - %or.i511 = or i32 %496, %i_allocated_regs.0671.i + %or.i511 = or i32 %495, %i_allocated_regs.0671.i br label %if.end408.i if.end295.i: ; preds = %land.lhs.true287.i, %land.lhs.true279.i, %land.lhs.true273.i, %land.lhs.true263.i, %output_pref.exit307.i - %shr296.i = lshr i32 %448, 1 - %498 = and i64 %bf.load24.i, 68719476736 - %tobool301.i = icmp ne i64 %498, 0 + %shr296.i = lshr i32 %447, 1 + %497 = and i64 %bf.load24.i, 68719476736 + %tobool301.i = icmp ne i64 %497, 0 %call302.i = tail call fastcc i32 @tcg_reg_alloc_pair(ptr noundef %s, i32 noundef %shr296.i, i32 noundef %i_allocated_regs.0671.i, i32 noundef 0, i1 noundef zeroext %tobool301.i) %shl303.i = shl nuw i32 1, %call302.i %or304.i = or i32 %shl303.i, %i_allocated_regs.0671.i @@ -10557,57 +10555,57 @@ do_pair.i: ; preds = %if.end295.i, %sw.bb %reg.1.i = phi i32 [ %add305.i, %if.end295.i ], [ %conv243.i, %sw.bb235.i ], [ %call234.i, %if.end228.i ] %i_allocated_regs.1.i = phi i32 [ %or304.i, %if.end295.i ], [ %i_allocated_regs.0671.i, %sw.bb235.i ], [ %i_allocated_regs.0671.i, %if.end228.i ] %bf.load306.i = load i64, ptr %arrayidx23.i, align 4 - %499 = and i64 %bf.load306.i, 2147483648 - %bf.cast309.not.i = icmp eq i64 %499, 0 + %498 = and i64 %bf.load306.i, 2147483648 + %bf.cast309.not.i = icmp eq i64 %498, 0 br i1 %bf.cast309.not.i, label %sw.epilog.i434, label %land.lhs.true311.i land.lhs.true311.i: ; preds = %do_pair.i %shl312.i = shl nuw nsw i32 16, %bf.cast.i429 - %and313.i = and i32 %shl312.i, %431 + %and313.i = and i32 %shl312.i, %430 %tobool314.not.i = icmp eq i32 %and313.i, 0 - %bf.load324.pre.i = load i64, ptr %441, align 8 - %500 = and i64 %bf.load324.pre.i, 30064771072 - %cmp.i309.i = icmp ugt i64 %500, 8589934592 + %bf.load324.pre.i = load i64, ptr %440, align 8 + %499 = and i64 %bf.load324.pre.i, 30064771072 + %cmp.i309.i = icmp ugt i64 %499, 8589934592 %or.cond712.i = select i1 %tobool314.not.i, i1 true, i1 %cmp.i309.i br i1 %or.cond712.i, label %if.then318.i, label %sw.epilog.i434 if.then318.i: ; preds = %land.lhs.true311.i - %501 = shl i32 3, %reg.1.i - %or323.i = or i32 %501, %i_allocated_regs.1.i - %502 = and i64 %bf.load324.pre.i, 65280 - %cmp328.i = icmp eq i64 %502, 256 - %503 = trunc i64 %bf.load324.pre.i to i32 - %bf.cast333.i = and i32 %503, 255 + %500 = shl i32 3, %reg.1.i + %or323.i = or i32 %500, %i_allocated_regs.1.i + %501 = and i64 %bf.load324.pre.i, 65280 + %cmp328.i = icmp eq i64 %501, 256 + %502 = trunc i64 %bf.load324.pre.i to i32 + %bf.cast333.i = and i32 %502, 255 %cmp334.i = icmp eq i32 %bf.cast333.i, %reg.1.i %or.cond287.i = select i1 %cmp328.i, i1 %cmp334.i, i1 false br i1 %or.cond287.i, label %do.body337.i, label %if.else370.i do.body337.i: ; preds = %if.then318.i - %cmp342.i = icmp ne i64 %500, 12884901888 + %cmp342.i = icmp ne i64 %499, 12884901888 tail call void @llvm.assume(i1 %cmp342.i) - %504 = lshr i64 %bf.load324.pre.i, 24 - %idxprom351.i = and i64 %504, 255 + %503 = lshr i64 %bf.load324.pre.i, 24 + %idxprom351.i = and i64 %503, 255 %arrayidx352.i = getelementptr [6 x i32], ptr @tcg_target_available_regs, i64 0, i64 %idxprom351.i - %505 = load i32, ptr %arrayidx352.i, align 4 - %506 = and i64 %bf.load324.pre.i, 68719476736 - %tobool357.i = icmp ne i64 %506, 0 - %call358.i = tail call fastcc i32 @tcg_reg_alloc(ptr noundef %s, i32 noundef %505, i32 noundef %or323.i, i32 noundef 0, i1 noundef zeroext %tobool357.i) - %bf.load359.i = load i64, ptr %441, align 8 - %507 = trunc i64 %bf.load359.i to i32 - %508 = lshr i32 %507, 24 - tail call fastcc void @tcg_out_mov(ptr noundef %s, i32 noundef %508, i32 noundef %call358.i, i32 noundef %reg.1.i) - %bf.load.i.i494 = load i64, ptr %441, align 8 - %509 = and i64 %bf.load.i.i494, 65280 - %cmp.i310.i = icmp eq i64 %509, 256 + %504 = load i32, ptr %arrayidx352.i, align 4 + %505 = and i64 %bf.load324.pre.i, 68719476736 + %tobool357.i = icmp ne i64 %505, 0 + %call358.i = tail call fastcc i32 @tcg_reg_alloc(ptr noundef %s, i32 noundef %504, i32 noundef %or323.i, i32 noundef 0, i1 noundef zeroext %tobool357.i) + %bf.load359.i = load i64, ptr %440, align 8 + %506 = trunc i64 %bf.load359.i to i32 + %507 = lshr i32 %506, 24 + tail call fastcc void @tcg_out_mov(ptr noundef %s, i32 noundef %507, i32 noundef %call358.i, i32 noundef %reg.1.i) + %bf.load.i.i494 = load i64, ptr %440, align 8 + %508 = and i64 %bf.load.i.i494, 65280 + %cmp.i310.i = icmp eq i64 %508, 256 br i1 %cmp.i310.i, label %if.then.i.i504, label %do.body13.i.i495 if.then.i.i504: ; preds = %do.body337.i - %510 = trunc i64 %bf.load.i.i494 to i32 - %bf.cast3.i.i505 = and i32 %510, 255 + %509 = trunc i64 %bf.load.i.i494 to i32 + %bf.cast3.i.i505 = and i32 %509, 255 %idxprom.i.i506 = and i64 %bf.load.i.i494, 255 %arrayidx.i311.i = getelementptr %struct.TCGContext, ptr %s, i64 0, i32 41, i64 %idxprom.i.i506 - %511 = load ptr, ptr %arrayidx.i311.i, align 8 - %cmp4.i.i507 = icmp eq ptr %511, %441 + %510 = load ptr, ptr %arrayidx.i311.i, align 8 + %cmp4.i.i507 = icmp eq ptr %510, %440 tail call void @llvm.assume(i1 %cmp4.i.i507) %cmp6.i.i508 = icmp eq i32 %bf.cast3.i.i505, %call358.i br i1 %cmp6.i.i508, label %if.end408.i, label %if.end8.i.i509 @@ -10619,24 +10617,24 @@ if.end8.i.i509: ; preds = %if.then.i.i504 do.body13.i.i495: ; preds = %if.end8.i.i509, %do.body337.i %idxprom15.i.i496 = zext i32 %call358.i to i64 %arrayidx16.i.i497 = getelementptr %struct.TCGContext, ptr %s, i64 0, i32 41, i64 %idxprom15.i.i496 - %512 = load ptr, ptr %arrayidx16.i.i497, align 8 - %cmp17.i.i498 = icmp eq ptr %512, null + %511 = load ptr, ptr %arrayidx16.i.i497, align 8 + %cmp17.i.i498 = icmp eq ptr %511, null tail call void @llvm.assume(i1 %cmp17.i.i498) - store ptr %441, ptr %arrayidx16.i.i497, align 8 - %bf.load24.i.i499 = load i64, ptr %441, align 8 + store ptr %440, ptr %arrayidx16.i.i497, align 8 + %bf.load24.i.i499 = load i64, ptr %440, align 8 %bf.clear25.i.i500 = and i64 %bf.load24.i.i499, -65536 %bf.value.i.i501 = and i64 %idxprom15.i.i496, 255 %bf.set.i.i502 = or disjoint i64 %bf.value.i.i501, %bf.clear25.i.i500 %bf.set28.i.i503 = or disjoint i64 %bf.set.i.i502, 256 - store i64 %bf.set28.i.i503, ptr %441, align 8 + store i64 %bf.set28.i.i503, ptr %440, align 8 br label %if.end408.i if.else370.i: ; preds = %if.then318.i - %513 = lshr i64 %bf.load324.pre.i, 24 - %idxprom375.i = and i64 %513, 255 + %512 = lshr i64 %bf.load324.pre.i, 24 + %idxprom375.i = and i64 %512, 255 %arrayidx376.i = getelementptr [6 x i32], ptr @tcg_target_available_regs, i64 0, i64 %idxprom375.i - %514 = load i32, ptr %arrayidx376.i, align 4 - tail call fastcc void @temp_load(ptr noundef %s, ptr noundef nonnull %441, i32 noundef %514, i32 noundef %or323.i, i32 noundef 0) + %513 = load i32, ptr %arrayidx376.i, align 4 + tail call fastcc void @temp_load(ptr noundef %s, ptr noundef nonnull %440, i32 noundef %513, i32 noundef %or323.i, i32 noundef 0) br label %if.then390.i if.end.unreachabledefault.i: ; preds = %if.end.i430 @@ -10644,21 +10642,21 @@ if.end.unreachabledefault.i: ; preds = %if.end.i430 sw.epilog.i434: ; preds = %land.lhs.true311.i, %do_pair.i %shl379.i = shl nuw i32 1, %reg.1.i - tail call fastcc void @temp_load(ptr noundef %s, ptr noundef nonnull %441, i32 noundef %shl379.i, i32 noundef %i_allocated_regs.1.i, i32 noundef %i_preferred_regs.2.i) - %bf.load380.i = load i64, ptr %441, align 8 - %515 = trunc i64 %bf.load380.i to i32 - %bf.cast382.i = and i32 %515, 255 + tail call fastcc void @temp_load(ptr noundef %s, ptr noundef nonnull %440, i32 noundef %shl379.i, i32 noundef %i_allocated_regs.1.i, i32 noundef %i_preferred_regs.2.i) + %bf.load380.i = load i64, ptr %440, align 8 + %514 = trunc i64 %bf.load380.i to i32 + %bf.cast382.i = and i32 %514, 255 %cmp383.not.i = icmp eq i32 %bf.cast382.i, %reg.1.i br i1 %cmp383.not.i, label %if.end408.i, label %if.then390.i if.then390.i: ; preds = %sw.epilog.i434, %if.else370.i, %if.then102.i %i_allocated_regs.2655.i = phi i32 [ %i_allocated_regs.1.i, %sw.epilog.i434 ], [ %i_allocated_regs.0671.i, %if.then102.i ], [ %i_allocated_regs.1.i, %if.else370.i ] %reg.2654.i = phi i32 [ %reg.1.i, %sw.epilog.i434 ], [ %call114.i, %if.then102.i ], [ %reg.1.i, %if.else370.i ] - %bf.load391.i = load i64, ptr %441, align 8 - %516 = trunc i64 %bf.load391.i to i32 - %517 = lshr i32 %516, 24 - %bf.cast397.i = and i32 %516, 255 - tail call fastcc void @tcg_out_mov(ptr noundef %s, i32 noundef %517, i32 noundef %reg.2654.i, i32 noundef %bf.cast397.i) + %bf.load391.i = load i64, ptr %440, align 8 + %515 = trunc i64 %bf.load391.i to i32 + %516 = lshr i32 %515, 24 + %bf.cast397.i = and i32 %515, 255 + tail call fastcc void @tcg_out_mov(ptr noundef %s, i32 noundef %516, i32 noundef %reg.2654.i, i32 noundef %bf.cast397.i) br label %if.end408.i if.end408.i: ; preds = %if.then390.i, %sw.epilog.i434, %do.body13.i.i495, %if.then.i.i504, %if.then292.i, %land.lhs.true222.i, %cond.false190.i, %cond.true174.i, %if.end100.i @@ -10681,20 +10679,20 @@ for.inc.i435: ; preds = %if.end408.i, %if.th for.body420.i: ; preds = %for.inc430.i, %for.body420.preheader.i %indvars.iv685.i = phi i64 [ %conv.i419, %for.body420.preheader.i ], [ %indvars.iv.next686.i, %for.inc430.i ] - %518 = trunc i64 %indvars.iv685.i to i32 - %shl421.i = shl i32 16, %518 - %and422.i = and i32 %shl421.i, %431 + %517 = trunc i64 %indvars.iv685.i to i32 + %shl421.i = shl i32 16, %517 + %and422.i = and i32 %shl421.i, %430 %tobool423.not.i = icmp eq i32 %and422.i, 0 br i1 %tobool423.not.i, label %for.inc430.i, label %if.then424.i if.then424.i: ; preds = %for.body420.i %arrayidx427.i = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 4, i64 %indvars.iv685.i - %519 = load i64, ptr %arrayidx427.i, align 8 - %520 = inttoptr i64 %519 to ptr - %bf.load.i.i.i438 = load i64, ptr %520, align 8 + %518 = load i64, ptr %arrayidx427.i, align 8 + %519 = inttoptr i64 %518 to ptr + %bf.load.i.i.i438 = load i64, ptr %519, align 8 %bf.lshr.i.i.i439 = lshr i64 %bf.load.i.i.i438, 32 - %521 = trunc i64 %bf.lshr.i.i.i439 to i32 - %bf.cast.i.i.i440 = and i32 %521, 7 + %520 = trunc i64 %bf.lshr.i.i.i439 to i32 + %bf.cast.i.i.i440 = and i32 %520, 7 switch i32 %bf.cast.i.i.i440, label %do.body.i.i.i493 [ i32 3, label %for.inc430.i i32 2, label %sw.epilog.i.i.i442 @@ -10715,25 +10713,25 @@ do.body.i.i.i493: ; preds = %if.then424.i sw.epilog.i.i.i442: ; preds = %sw.bb3.i.i.i441, %sw.bb2.i.i.i492, %if.then424.i, %if.then424.i %new_type.0.i.i.i443 = phi i64 [ 768, %sw.bb3.i.i.i441 ], [ 0, %sw.bb2.i.i.i492 ], [ 512, %if.then424.i ], [ 512, %if.then424.i ] - %522 = and i64 %bf.load.i.i.i438, 65280 - %cmp1.i.i.i.i444 = icmp eq i64 %522, 256 + %521 = and i64 %bf.load.i.i.i438, 65280 + %cmp1.i.i.i.i444 = icmp eq i64 %521, 256 br i1 %cmp1.i.i.i.i444, label %if.then2.i.i.i.i487, label %set_temp_val_nonreg.exit.i.i.i445 if.then2.i.i.i.i487: ; preds = %sw.epilog.i.i.i442 %bf.cast5.i.i.i.i488 = and i64 %bf.load.i.i.i438, 255 %arrayidx.i.i.i.i489 = getelementptr %struct.TCGContext, ptr %s, i64 0, i32 41, i64 %bf.cast5.i.i.i.i488 - %523 = load ptr, ptr %arrayidx.i.i.i.i489, align 8 - %cmp7.i.i.i.i490 = icmp eq ptr %523, %520 + %522 = load ptr, ptr %arrayidx.i.i.i.i489, align 8 + %cmp7.i.i.i.i490 = icmp eq ptr %522, %519 tail call void @llvm.assume(i1 %cmp7.i.i.i.i490) store ptr null, ptr %arrayidx.i.i.i.i489, align 8 - %bf.load15.pre.i.i.i.i491 = load i64, ptr %520, align 8 + %bf.load15.pre.i.i.i.i491 = load i64, ptr %519, align 8 br label %set_temp_val_nonreg.exit.i.i.i445 set_temp_val_nonreg.exit.i.i.i445: ; preds = %if.then2.i.i.i.i487, %sw.epilog.i.i.i442 %bf.load15.i.i.i.i446 = phi i64 [ %bf.load15.pre.i.i.i.i491, %if.then2.i.i.i.i487 ], [ %bf.load.i.i.i438, %sw.epilog.i.i.i442 ] %bf.clear16.i.i.i.i447 = and i64 %bf.load15.i.i.i.i446, -65281 %bf.set.i.i.i.i448 = or disjoint i64 %bf.clear16.i.i.i.i447, %new_type.0.i.i.i443 - store i64 %bf.set.i.i.i.i448, ptr %520, align 8 + store i64 %bf.set.i.i.i.i448, ptr %519, align 8 br label %for.inc430.i for.inc430.i: ; preds = %set_temp_val_nonreg.exit.i.i.i445, %if.then424.i, %for.body420.i @@ -10742,30 +10740,30 @@ for.inc430.i: ; preds = %set_temp_val_nonreg br i1 %cmp418.i, label %for.body420.i, label %for.end432.i, !llvm.loop !55 for.end432.i: ; preds = %for.inc430.i, %do.body120 - %i_allocated_regs.0.lcssa709.i = phi i32 [ %435, %do.body120 ], [ %i_allocated_regs.3.i, %for.inc430.i ] + %i_allocated_regs.0.lcssa709.i = phi i32 [ %434, %do.body120 ], [ %i_allocated_regs.3.i, %for.inc430.i ] %flags.i449 = getelementptr [0 x %struct.TCGOpDef], ptr @tcg_op_defs, i64 0, i64 %idxprom.i418, i32 5 - %524 = load i8, ptr %flags.i449, align 4 - %conv433.i = zext i8 %524 to i32 - %tobool435.not.i = icmp sgt i8 %524, -1 + %523 = load i8, ptr %flags.i449, align 4 + %conv433.i = zext i8 %523 to i32 + %tobool435.not.i = icmp sgt i8 %523, -1 br i1 %tobool435.not.i, label %if.else437.i, label %if.then436.i if.then436.i: ; preds = %for.end432.i - %525 = load i32, ptr %nb_globals.i, align 4 - %526 = load i32, ptr %nb_temps1.i, align 8 - %cmp9.i312.i = icmp slt i32 %525, %526 + %524 = load i32, ptr %nb_globals.i, align 4 + %525 = load i32, ptr %nb_temps1.i, align 8 + %cmp9.i312.i = icmp slt i32 %524, %525 br i1 %cmp9.i312.i, label %for.body.preheader.i.i, label %if.end636.i for.body.preheader.i.i: ; preds = %if.then436.i - %527 = sext i32 %525 to i64 + %526 = sext i32 %524 to i64 br label %for.body.i.i473 for.body.i.i473: ; preds = %for.inc.i.i476, %for.body.preheader.i.i - %indvars.iv.i.i = phi i64 [ %527, %for.body.preheader.i.i ], [ %indvars.iv.next.i.i, %for.inc.i.i476 ] + %indvars.iv.i.i = phi i64 [ %526, %for.body.preheader.i.i ], [ %indvars.iv.next.i.i, %for.inc.i.i476 ] %arrayidx.i313.i = getelementptr %struct.TCGContext, ptr %s, i64 0, i32 37, i64 %indvars.iv.i.i %bf.load.i314.i = load i64, ptr %arrayidx.i313.i, align 8 %bf.lshr.i.i474 = lshr i64 %bf.load.i314.i, 32 - %528 = trunc i64 %bf.lshr.i.i474 to i32 - %bf.cast.i.i475 = and i32 %528, 7 + %527 = trunc i64 %bf.lshr.i.i474 to i32 + %bf.cast.i.i475 = and i32 %527, 7 switch i32 %bf.cast.i.i475, label %do.body11.i.i [ i32 1, label %do.body.i.i478 i32 0, label %for.inc.i.i476 @@ -10773,13 +10771,13 @@ for.body.i.i473: ; preds = %for.inc.i.i476, %fo ] do.body.i.i478: ; preds = %for.body.i.i473 - %529 = and i64 %bf.load.i314.i, 65280 - %cmp5.not.i.i479 = icmp eq i64 %529, 256 + %528 = and i64 %bf.load.i314.i, 65280 + %cmp5.not.i.i479 = icmp eq i64 %528, 256 br i1 %cmp5.not.i.i479, label %lor.lhs.false.i.i480, label %for.inc.i.i476 lor.lhs.false.i.i480: ; preds = %do.body.i.i478 - %530 = and i64 %bf.load.i314.i, 137438953472 - %tobool.i.i = icmp ne i64 %530, 0 + %529 = and i64 %bf.load.i314.i, 137438953472 + %tobool.i.i = icmp ne i64 %529, 0 tail call void @llvm.assume(i1 %tobool.i.i) br label %for.inc.i.i476 @@ -10790,7 +10788,7 @@ do.body11.i.i: ; preds = %for.body.i.i473 for.inc.i.i476: ; preds = %lor.lhs.false.i.i480, %do.body.i.i478, %for.body.i.i473, %for.body.i.i473 %indvars.iv.next.i.i = add nsw i64 %indvars.iv.i.i, 1 %lftr.wideiv.i.i = trunc i64 %indvars.iv.next.i.i to i32 - %exitcond.not.i.i477 = icmp eq i32 %526, %lftr.wideiv.i.i + %exitcond.not.i.i477 = icmp eq i32 %525, %lftr.wideiv.i.i br i1 %exitcond.not.i.i477, label %if.end636.i, label %for.body.i.i473, !llvm.loop !56 if.else437.i: ; preds = %for.end432.i @@ -10799,22 +10797,22 @@ if.else437.i: ; preds = %for.end432.i br i1 %tobool441.not.i, label %if.else443.i, label %if.then442.i if.then442.i: ; preds = %if.else437.i - %531 = load i32, ptr %nb_globals.i, align 4 - %532 = load i32, ptr %nb_temps1.i, align 8 - %cmp11.i.i = icmp slt i32 %531, %532 + %530 = load i32, ptr %nb_globals.i, align 4 + %531 = load i32, ptr %nb_temps1.i, align 8 + %cmp11.i.i = icmp slt i32 %530, %531 br i1 %cmp11.i.i, label %for.body.preheader.i317.i, label %if.end636.i for.body.preheader.i317.i: ; preds = %if.then442.i - %533 = sext i32 %531 to i64 + %532 = sext i32 %530 to i64 br label %for.body.i318.i for.body.i318.i: ; preds = %for.inc.i324.i, %for.body.preheader.i317.i - %indvars.iv.i319.i = phi i64 [ %533, %for.body.preheader.i317.i ], [ %indvars.iv.next.i325.i, %for.inc.i324.i ] + %indvars.iv.i319.i = phi i64 [ %532, %for.body.preheader.i317.i ], [ %indvars.iv.next.i325.i, %for.inc.i324.i ] %arrayidx.i320.i = getelementptr %struct.TCGContext, ptr %s, i64 0, i32 37, i64 %indvars.iv.i319.i %bf.load.i321.i = load i64, ptr %arrayidx.i320.i, align 8 %bf.lshr.i322.i = lshr i64 %bf.load.i321.i, 32 - %534 = trunc i64 %bf.lshr.i322.i to i32 - %bf.cast.i323.i = and i32 %534, 7 + %533 = trunc i64 %bf.lshr.i322.i to i32 + %bf.cast.i323.i = and i32 %533, 7 switch i32 %bf.cast.i323.i, label %do.body17.i.i [ i32 1, label %sw.bb.i.i481 i32 0, label %do.body.i328.i @@ -10822,23 +10820,23 @@ for.body.i318.i: ; preds = %for.inc.i324.i, %fo ] sw.bb.i.i481: ; preds = %for.body.i318.i - %535 = and i64 %bf.load.i321.i, 65280 - %cmp.i.i.i482 = icmp eq i64 %535, 512 + %534 = and i64 %bf.load.i321.i, 65280 + %cmp.i.i.i482 = icmp eq i64 %534, 512 br i1 %cmp.i.i.i482, label %for.inc.i324.i, label %lor.lhs.false.i.i.i lor.lhs.false.i.i.i: ; preds = %sw.bb.i.i481 - %536 = and i64 %bf.load.i321.i, 30064771072 - %cmp.i.i.i.i = icmp ugt i64 %536, 8589934592 + %535 = and i64 %bf.load.i321.i, 30064771072 + %cmp.i.i.i.i = icmp ugt i64 %535, 8589934592 br label %for.inc.sink.split.i.i do.body.i328.i: ; preds = %for.body.i318.i - %537 = and i64 %bf.load.i321.i, 65280 - %cmp6.i329.i = icmp eq i64 %537, 0 + %536 = and i64 %bf.load.i321.i, 65280 + %cmp6.i329.i = icmp eq i64 %536, 0 br label %for.inc.sink.split.i.i do.body8.i.i: ; preds = %for.body.i318.i - %538 = and i64 %bf.load.i321.i, 65280 - %cmp13.i.i = icmp eq i64 %538, 768 + %537 = and i64 %bf.load.i321.i, 65280 + %cmp13.i.i = icmp eq i64 %537, 768 br label %for.inc.sink.split.i.i do.body17.i.i: ; preds = %for.body.i318.i @@ -10853,7 +10851,7 @@ for.inc.sink.split.i.i: ; preds = %do.body8.i.i, %do.b for.inc.i324.i: ; preds = %for.inc.sink.split.i.i, %sw.bb.i.i481 %indvars.iv.next.i325.i = add nsw i64 %indvars.iv.i319.i, 1 %lftr.wideiv.i326.i = trunc i64 %indvars.iv.next.i325.i to i32 - %exitcond.not.i327.i = icmp eq i32 %532, %lftr.wideiv.i326.i + %exitcond.not.i327.i = icmp eq i32 %531, %lftr.wideiv.i326.i br i1 %exitcond.not.i327.i, label %if.end636.i, label %for.body.i318.i, !llvm.loop !46 if.else443.i: ; preds = %if.else437.i @@ -10868,21 +10866,21 @@ for.body452.preheader.i: ; preds = %if.else443.i for.body452.i: ; preds = %for.inc458.i, %for.body452.preheader.i %.b.i483 = phi i1 [ %.b.pre703.i, %for.body452.preheader.i ], [ %.b704.i, %for.inc458.i ] %indvars.iv688.i = phi i64 [ 0, %for.body452.preheader.i ], [ %indvars.iv.next689.i, %for.inc458.i ] - %539 = select i1 %.b.i483, i32 -61497, i32 0 - %540 = trunc i64 %indvars.iv688.i to i32 - %541 = shl nuw i32 1, %540 - %542 = and i32 %541, %539 - %tobool455.not.i = icmp eq i32 %542, 0 + %538 = select i1 %.b.i483, i32 -61497, i32 0 + %539 = trunc i64 %indvars.iv688.i to i32 + %540 = shl nuw i32 1, %539 + %541 = and i32 %540, %538 + %tobool455.not.i = icmp eq i32 %541, 0 br i1 %tobool455.not.i, label %for.inc458.i, label %if.then456.i if.then456.i: ; preds = %for.body452.i %arrayidx.i331.i = getelementptr %struct.TCGContext, ptr %s, i64 0, i32 41, i64 %indvars.iv688.i - %543 = load ptr, ptr %arrayidx.i331.i, align 8 - %cmp.not.i.i484 = icmp eq ptr %543, null + %542 = load ptr, ptr %arrayidx.i331.i, align 8 + %cmp.not.i.i484 = icmp eq ptr %542, null br i1 %cmp.not.i.i484, label %for.inc458.i, label %if.then.i332.i if.then.i332.i: ; preds = %if.then456.i - tail call fastcc void @temp_sync(ptr noundef nonnull %s, ptr noundef nonnull %543, i32 noundef %i_allocated_regs.0.lcssa709.i, i32 noundef 0, i32 noundef -1) + tail call fastcc void @temp_sync(ptr noundef nonnull %s, ptr noundef nonnull %542, i32 noundef %i_allocated_regs.0.lcssa709.i, i32 noundef 0, i32 noundef -1) %.b.pre.i485 = load i1, ptr @tcg_target_call_clobber_regs, align 4 br label %for.inc458.i @@ -10893,7 +10891,7 @@ for.inc458.i: ; preds = %if.then.i332.i, %if br i1 %exitcond691.not.i, label %if.end467.i, label %for.body452.i, !llvm.loop !57 if.end467.i: ; preds = %for.inc458.i, %if.else443.i - %cmp469675.not.i = icmp eq i8 %432, 0 + %cmp469675.not.i = icmp eq i8 %431, 0 br i1 %cmp469675.not.i, label %if.end636.i, label %for.body471.lr.ph.i for.body471.lr.ph.i: ; preds = %if.end467.i @@ -10902,24 +10900,24 @@ for.body471.lr.ph.i: ; preds = %if.end467.i for.body471.i: ; preds = %set_temp_val_reg.exit371.i, %for.body471.lr.ph.i %indvars.iv692.i = phi i64 [ 0, %for.body471.lr.ph.i ], [ %indvars.iv.next693.i, %set_temp_val_reg.exit371.i ] - %o_allocated_regs.0677.i = phi i32 [ %435, %for.body471.lr.ph.i ], [ %or626.i, %set_temp_val_reg.exit371.i ] - %544 = load ptr, ptr %args_ct472.i, align 8 - %arrayidx474.i = getelementptr %struct.TCGArgConstraint, ptr %544, i64 %indvars.iv692.i + %o_allocated_regs.0677.i = phi i32 [ %434, %for.body471.lr.ph.i ], [ %or626.i, %set_temp_val_reg.exit371.i ] + %543 = load ptr, ptr %args_ct472.i, align 8 + %arrayidx474.i = getelementptr %struct.TCGArgConstraint, ptr %543, i64 %indvars.iv692.i %bf.load475.i = load i64, ptr %arrayidx474.i, align 4 - %545 = lshr i64 %bf.load475.i, 20 - %bf.cast478.i = and i64 %545, 15 + %544 = lshr i64 %bf.load475.i, 20 + %bf.cast478.i = and i64 %544, 15 %arrayidx481.i = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 4, i64 %bf.cast478.i - %546 = load i64, ptr %arrayidx481.i, align 8 - %arrayidx484.i = getelementptr %struct.TCGArgConstraint, ptr %544, i64 %bf.cast478.i - %547 = inttoptr i64 %546 to ptr - %call485.val.i = load i64, ptr %547, align 8 - %548 = and i64 %call485.val.i, 30064771072 - %cmp.i334.i = icmp ult i64 %548, 8589934593 + %545 = load i64, ptr %arrayidx481.i, align 8 + %arrayidx484.i = getelementptr %struct.TCGArgConstraint, ptr %543, i64 %bf.cast478.i + %546 = inttoptr i64 %545 to ptr + %call485.val.i = load i64, ptr %546, align 8 + %547 = and i64 %call485.val.i, 30064771072 + %cmp.i334.i = icmp ult i64 %547, 8589934593 tail call void @llvm.assume(i1 %cmp.i334.i) %bf.load491.i = load i64, ptr %arrayidx484.i, align 4 - %549 = trunc i64 %bf.load491.i to i32 - %550 = lshr i32 %549, 28 - %bf.cast494.i = and i32 %550, 3 + %548 = trunc i64 %bf.load491.i to i32 + %549 = lshr i32 %548, 28 + %bf.cast494.i = and i32 %549, 3 switch i32 %bf.cast494.i, label %for.body471.unreachabledefault.i [ i32 0, label %sw.bb495.i i32 1, label %do.body544.i @@ -10928,29 +10926,29 @@ for.body471.i: ; preds = %set_temp_val_reg.ex ] sw.bb495.i: ; preds = %for.body471.i - %551 = and i64 %bf.load491.i, 1073741824 - %bf.cast499.not.i = icmp eq i64 %551, 0 + %550 = and i64 %bf.load491.i, 1073741824 + %bf.cast499.not.i = icmp eq i64 %550, 0 br i1 %bf.cast499.not.i, label %if.else517.i, label %land.lhs.true501.i land.lhs.true501.i: ; preds = %sw.bb495.i - %552 = lshr i64 %bf.load491.i, 16 - %bf.cast505.i = and i64 %552, 15 + %551 = lshr i64 %bf.load491.i, 16 + %bf.cast505.i = and i64 %551, 15 %arrayidx507.i = getelementptr [16 x i32], ptr %const_args.i, i64 0, i64 %bf.cast505.i - %553 = load i32, ptr %arrayidx507.i, align 4 - %tobool508.not.i = icmp eq i32 %553, 0 + %552 = load i32, ptr %arrayidx507.i, align 4 + %tobool508.not.i = icmp eq i32 %552, 0 br i1 %tobool508.not.i, label %if.then509.i, label %if.else517.i if.then509.i: ; preds = %land.lhs.true501.i %arrayidx515.i = getelementptr [16 x i64], ptr %new_args.i, i64 0, i64 %bf.cast505.i - %554 = load i64, ptr %arrayidx515.i, align 8 - %conv516.i = trunc i64 %554 to i32 + %553 = load i64, ptr %arrayidx515.i, align 8 + %conv516.i = trunc i64 %553 to i32 br label %sw.epilog624.i if.else517.i: ; preds = %land.lhs.true501.i, %sw.bb495.i - %555 = and i64 %bf.load491.i, 4294967296 - %bf.cast521.not.i = icmp eq i64 %555, 0 - %regs533.i = getelementptr %struct.TCGArgConstraint, ptr %544, i64 %bf.cast478.i, i32 1 - %556 = load i32, ptr %regs533.i, align 4 + %554 = and i64 %bf.load491.i, 4294967296 + %bf.cast521.not.i = icmp eq i64 %554, 0 + %regs533.i = getelementptr %struct.TCGArgConstraint, ptr %543, i64 %bf.cast478.i, i32 1 + %555 = load i32, ptr %regs533.i, align 4 br i1 %bf.cast521.not.i, label %if.else532.i, label %if.then522.i if.then522.i: ; preds = %if.else517.i @@ -10960,14 +10958,14 @@ if.then522.i: ; preds = %if.else517.i cond.true.i337.i: ; preds = %if.then522.i %arrayidx.i339.i = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 3, i64 %indvars.iv692.i - %557 = load i32, ptr %arrayidx.i339.i, align 4 + %556 = load i32, ptr %arrayidx.i339.i, align 4 br label %output_pref.exit340.i output_pref.exit340.i: ; preds = %cond.true.i337.i, %if.then522.i - %cond.i336.i = phi i32 [ %557, %cond.true.i337.i ], [ 0, %if.then522.i ] - %558 = and i64 %call485.val.i, 68719476736 - %tobool530.i = icmp ne i64 %558, 0 - %call531.i = tail call fastcc i32 @tcg_reg_alloc(ptr noundef %s, i32 noundef %556, i32 noundef %or524.i, i32 noundef %cond.i336.i, i1 noundef zeroext %tobool530.i) + %cond.i336.i = phi i32 [ %556, %cond.true.i337.i ], [ 0, %if.then522.i ] + %557 = and i64 %call485.val.i, 68719476736 + %tobool530.i = icmp ne i64 %557, 0 + %call531.i = tail call fastcc i32 @tcg_reg_alloc(ptr noundef %s, i32 noundef %555, i32 noundef %or524.i, i32 noundef %cond.i336.i, i1 noundef zeroext %tobool530.i) br label %sw.epilog624.i if.else532.i: ; preds = %if.else517.i @@ -10976,85 +10974,85 @@ if.else532.i: ; preds = %if.else517.i cond.true.i343.i: ; preds = %if.else532.i %arrayidx.i345.i = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 3, i64 %indvars.iv692.i - %559 = load i32, ptr %arrayidx.i345.i, align 4 + %558 = load i32, ptr %arrayidx.i345.i, align 4 br label %output_pref.exit346.i output_pref.exit346.i: ; preds = %cond.true.i343.i, %if.else532.i - %cond.i342.i = phi i32 [ %559, %cond.true.i343.i ], [ 0, %if.else532.i ] - %560 = and i64 %call485.val.i, 68719476736 - %tobool539.i = icmp ne i64 %560, 0 - %call540.i = tail call fastcc i32 @tcg_reg_alloc(ptr noundef %s, i32 noundef %556, i32 noundef %o_allocated_regs.0677.i, i32 noundef %cond.i342.i, i1 noundef zeroext %tobool539.i) + %cond.i342.i = phi i32 [ %558, %cond.true.i343.i ], [ 0, %if.else532.i ] + %559 = and i64 %call485.val.i, 68719476736 + %tobool539.i = icmp ne i64 %559, 0 + %call540.i = tail call fastcc i32 @tcg_reg_alloc(ptr noundef %s, i32 noundef %555, i32 noundef %o_allocated_regs.0677.i, i32 noundef %cond.i342.i, i1 noundef zeroext %tobool539.i) br label %sw.epilog624.i do.body544.i: ; preds = %for.body471.i - %561 = and i64 %bf.load491.i, 4294967296 - %bf.cast548.not.i = icmp eq i64 %561, 0 + %560 = and i64 %bf.load491.i, 4294967296 + %bf.cast548.not.i = icmp eq i64 %560, 0 tail call void @llvm.assume(i1 %bf.cast548.not.i) - %562 = and i64 %bf.load491.i, 1073741824 - %bf.cast555.not.i = icmp eq i64 %562, 0 + %561 = and i64 %bf.load491.i, 1073741824 + %bf.cast555.not.i = icmp eq i64 %561, 0 br i1 %bf.cast555.not.i, label %if.end564.i, label %if.then556.i if.then556.i: ; preds = %do.body544.i - %563 = lshr i64 %bf.load491.i, 16 - %bf.cast560.i = and i64 %563, 15 + %562 = lshr i64 %bf.load491.i, 16 + %bf.cast560.i = and i64 %562, 15 %arrayidx562.i = getelementptr [16 x i64], ptr %new_args.i, i64 0, i64 %bf.cast560.i - %564 = load i64, ptr %arrayidx562.i, align 8 - %conv563.i = trunc i64 %564 to i32 + %563 = load i64, ptr %arrayidx562.i, align 8 + %conv563.i = trunc i64 %563 to i32 br label %sw.epilog624.i if.end564.i: ; preds = %do.body544.i - %regs565.i = getelementptr %struct.TCGArgConstraint, ptr %544, i64 %bf.cast478.i, i32 1 - %565 = load i32, ptr %regs565.i, align 4 + %regs565.i = getelementptr %struct.TCGArgConstraint, ptr %543, i64 %bf.cast478.i, i32 1 + %564 = load i32, ptr %regs565.i, align 4 %cmp.i347.i = icmp ult i64 %indvars.iv692.i, 2 br i1 %cmp.i347.i, label %cond.true.i349.i, label %output_pref.exit352.i cond.true.i349.i: ; preds = %if.end564.i %arrayidx.i351.i = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 3, i64 %indvars.iv692.i - %566 = load i32, ptr %arrayidx.i351.i, align 4 + %565 = load i32, ptr %arrayidx.i351.i, align 4 br label %output_pref.exit352.i output_pref.exit352.i: ; preds = %cond.true.i349.i, %if.end564.i - %cond.i348.i = phi i32 [ %566, %cond.true.i349.i ], [ 0, %if.end564.i ] - %567 = and i64 %call485.val.i, 68719476736 - %tobool571.i = icmp ne i64 %567, 0 - %call572.i = tail call fastcc i32 @tcg_reg_alloc_pair(ptr noundef %s, i32 noundef %565, i32 noundef %o_allocated_regs.0677.i, i32 noundef %cond.i348.i, i1 noundef zeroext %tobool571.i) + %cond.i348.i = phi i32 [ %565, %cond.true.i349.i ], [ 0, %if.end564.i ] + %566 = and i64 %call485.val.i, 68719476736 + %tobool571.i = icmp ne i64 %566, 0 + %call572.i = tail call fastcc i32 @tcg_reg_alloc_pair(ptr noundef %s, i32 noundef %564, i32 noundef %o_allocated_regs.0677.i, i32 noundef %cond.i348.i, i1 noundef zeroext %tobool571.i) br label %sw.epilog624.i do.body574.i: ; preds = %for.body471.i - %568 = and i64 %bf.load491.i, 4294967296 - %bf.cast578.not.i = icmp eq i64 %568, 0 + %567 = and i64 %bf.load491.i, 4294967296 + %bf.cast578.not.i = icmp eq i64 %567, 0 tail call void @llvm.assume(i1 %bf.cast578.not.i) - %569 = and i64 %bf.load491.i, 1073741824 - %bf.cast585.not.i = icmp eq i64 %569, 0 + %568 = and i64 %bf.load491.i, 1073741824 + %bf.cast585.not.i = icmp eq i64 %568, 0 br i1 %bf.cast585.not.i, label %if.else594.i, label %if.then586.i if.then586.i: ; preds = %do.body574.i - %570 = lshr i64 %bf.load491.i, 16 - %bf.cast590.i = and i64 %570, 15 + %569 = lshr i64 %bf.load491.i, 16 + %bf.cast590.i = and i64 %569, 15 %arrayidx592.i = getelementptr [16 x i64], ptr %new_args.i, i64 0, i64 %bf.cast590.i - %571 = load i64, ptr %arrayidx592.i, align 8 - %conv593.i = trunc i64 %571 to i32 + %570 = load i64, ptr %arrayidx592.i, align 8 + %conv593.i = trunc i64 %570 to i32 br label %sw.epilog624.i if.else594.i: ; preds = %do.body574.i - %572 = lshr i64 %bf.load491.i, 24 - %bf.cast598.i = and i64 %572, 15 + %571 = lshr i64 %bf.load491.i, 24 + %bf.cast598.i = and i64 %571, 15 %arrayidx600.i = getelementptr [16 x i64], ptr %new_args.i, i64 0, i64 %bf.cast598.i - %573 = load i64, ptr %arrayidx600.i, align 8 - %574 = trunc i64 %573 to i32 - %conv602.i = add i32 %574, 1 + %572 = load i64, ptr %arrayidx600.i, align 8 + %573 = trunc i64 %572 to i32 + %conv602.i = add i32 %573, 1 br label %sw.epilog624.i do.body605.i: ; preds = %for.body471.i - %575 = and i64 %bf.load491.i, 4294967296 - %bf.cast609.not.i = icmp eq i64 %575, 0 + %574 = and i64 %bf.load491.i, 4294967296 + %bf.cast609.not.i = icmp eq i64 %574, 0 tail call void @llvm.assume(i1 %bf.cast609.not.i) - %576 = lshr i64 %bf.load491.i, 24 - %bf.cast616.i = and i64 %576, 15 + %575 = lshr i64 %bf.load491.i, 24 + %bf.cast616.i = and i64 %575, 15 %arrayidx618.i = getelementptr [16 x i64], ptr %new_args.i, i64 0, i64 %bf.cast616.i - %577 = load i64, ptr %arrayidx618.i, align 8 - %578 = trunc i64 %577 to i32 - %conv620.i = add i32 %578, -1 + %576 = load i64, ptr %arrayidx618.i, align 8 + %577 = trunc i64 %576 to i32 + %conv620.i = add i32 %577, -1 br label %sw.epilog624.i for.body471.unreachabledefault.i: ; preds = %for.body471.i @@ -11064,18 +11062,18 @@ sw.epilog624.i: ; preds = %do.body605.i, %if.e %reg.3.i = phi i32 [ %conv620.i, %do.body605.i ], [ %conv593.i, %if.then586.i ], [ %conv602.i, %if.else594.i ], [ %conv563.i, %if.then556.i ], [ %call572.i, %output_pref.exit352.i ], [ %call531.i, %output_pref.exit340.i ], [ %call540.i, %output_pref.exit346.i ], [ %conv516.i, %if.then509.i ] %shl625.i = shl nuw i32 1, %reg.3.i %or626.i = or i32 %shl625.i, %o_allocated_regs.0677.i - %bf.load.i353.i = load i64, ptr %547, align 8 - %579 = and i64 %bf.load.i353.i, 65280 - %cmp.i354.i = icmp eq i64 %579, 256 + %bf.load.i353.i = load i64, ptr %546, align 8 + %578 = and i64 %bf.load.i353.i, 65280 + %cmp.i354.i = icmp eq i64 %578, 256 br i1 %cmp.i354.i, label %if.then.i364.i, label %do.body13.i355.i if.then.i364.i: ; preds = %sw.epilog624.i - %580 = trunc i64 %bf.load.i353.i to i32 - %bf.cast3.i365.i = and i32 %580, 255 + %579 = trunc i64 %bf.load.i353.i to i32 + %bf.cast3.i365.i = and i32 %579, 255 %idxprom.i366.i = and i64 %bf.load.i353.i, 255 %arrayidx.i367.i = getelementptr %struct.TCGContext, ptr %s, i64 0, i32 41, i64 %idxprom.i366.i - %581 = load ptr, ptr %arrayidx.i367.i, align 8 - %cmp4.i368.i = icmp eq ptr %581, %547 + %580 = load ptr, ptr %arrayidx.i367.i, align 8 + %cmp4.i368.i = icmp eq ptr %580, %546 tail call void @llvm.assume(i1 %cmp4.i368.i) %cmp6.i369.i = icmp eq i32 %bf.cast3.i365.i, %reg.3.i br i1 %cmp6.i369.i, label %if.then.i364.set_temp_val_reg.exit371_crit_edge.i, label %if.end8.i370.i @@ -11091,11 +11089,11 @@ if.end8.i370.i: ; preds = %if.then.i364.i do.body13.i355.i: ; preds = %if.end8.i370.i, %sw.epilog624.i %idxprom15.i356.i = zext i32 %reg.3.i to i64 %arrayidx16.i357.i = getelementptr %struct.TCGContext, ptr %s, i64 0, i32 41, i64 %idxprom15.i356.i - %582 = load ptr, ptr %arrayidx16.i357.i, align 8 - %cmp17.i358.i = icmp eq ptr %582, null + %581 = load ptr, ptr %arrayidx16.i357.i, align 8 + %cmp17.i358.i = icmp eq ptr %581, null tail call void @llvm.assume(i1 %cmp17.i358.i) - store ptr %547, ptr %arrayidx16.i357.i, align 8 - %bf.load24.i359.i = load i64, ptr %547, align 8 + store ptr %546, ptr %arrayidx16.i357.i, align 8 + %bf.load24.i359.i = load i64, ptr %546, align 8 %bf.clear25.i360.i = and i64 %bf.load24.i359.i, -65536 %bf.value.i361.i = and i64 %idxprom15.i356.i, 255 %bf.set.i362.i = or disjoint i64 %bf.value.i361.i, %bf.clear25.i360.i @@ -11106,7 +11104,7 @@ set_temp_val_reg.exit371.i: ; preds = %do.body13.i355.i, % %conv629.pre-phi.i = phi i64 [ %.pre.i486, %if.then.i364.set_temp_val_reg.exit371_crit_edge.i ], [ %idxprom15.i356.i, %do.body13.i355.i ] %bf.load627.i = phi i64 [ %bf.load.i353.i, %if.then.i364.set_temp_val_reg.exit371_crit_edge.i ], [ %bf.set28.i363.i, %do.body13.i355.i ] %bf.clear628.i = and i64 %bf.load627.i, -137438953473 - store i64 %bf.clear628.i, ptr %547, align 8 + store i64 %bf.clear628.i, ptr %546, align 8 %arrayidx631.i = getelementptr [16 x i64], ptr %new_args.i, i64 0, i64 %bf.cast478.i store i64 %conv629.pre-phi.i, ptr %arrayidx631.i, align 8 %indvars.iv.next693.i = add nuw nsw i64 %indvars.iv692.i, 1 @@ -11114,7 +11112,7 @@ set_temp_val_reg.exit371.i: ; preds = %do.body13.i355.i, % br i1 %exitcond696.not.i, label %if.end636.i, label %for.body471.i, !llvm.loop !58 if.end636.i: ; preds = %for.inc.i.i476, %for.inc.i324.i, %set_temp_val_reg.exit371.i, %if.end467.i, %if.then442.i, %if.then436.i - %o_allocated_regs.1.i = phi i32 [ %435, %if.then436.i ], [ %435, %if.then442.i ], [ %435, %if.end467.i ], [ %or626.i, %set_temp_val_reg.exit371.i ], [ %435, %for.inc.i324.i ], [ %435, %for.inc.i.i476 ] + %o_allocated_regs.1.i = phi i32 [ %434, %if.then436.i ], [ %434, %if.then442.i ], [ %434, %if.end467.i ], [ %or626.i, %set_temp_val_reg.exit371.i ], [ %434, %for.inc.i324.i ], [ %434, %for.inc.i.i476 ] %bf.load637.i = load i32, ptr %op.0746, align 8 %trunc.i451 = trunc i32 %bf.load637.i to i8 switch i8 %trunc.i451, label %sw.default694.i [ @@ -11134,10 +11132,10 @@ if.end636.i: ; preds = %for.inc.i.i476, %fo ] sw.bb639.i: ; preds = %if.end636.i - %583 = load i64, ptr %new_args.i, align 16 - %conv641.i = trunc i64 %583 to i32 - %584 = load i64, ptr %arrayidx692.i, align 8 - %conv643.i = trunc i64 %584 to i32 + %582 = load i64, ptr %new_args.i, align 16 + %conv641.i = trunc i64 %582 to i32 + %583 = load i64, ptr %arrayidx692.i, align 8 + %conv643.i = trunc i64 %583 to i32 %and18.i.i = lshr i32 %conv641.i, 1 %shr.i.i = and i32 %and18.i.i, 4 %and23.i.i = lshr i32 %conv643.i, 3 @@ -11151,8 +11149,8 @@ sw.bb639.i: ; preds = %if.end636.i br i1 %tobool34.not.i560.i, label %tcg_out_opc.exit.i, label %if.then35.i.i if.then35.i.i: ; preds = %sw.bb639.i - %585 = trunc i32 %or22.i.i to i8 - %conv.i561.i = or disjoint i8 %585, 64 + %584 = trunc i32 %or22.i.i to i8 + %conv.i561.i = or disjoint i8 %584, 64 %incdec.ptr.i37.i.i = getelementptr i8, ptr %.pre800, i64 1 store ptr %incdec.ptr.i37.i.i, ptr %code_ptr, align 8 store i8 %conv.i561.i, ptr %.pre800, align 1 @@ -11160,65 +11158,65 @@ if.then35.i.i: ; preds = %sw.bb639.i br label %tcg_out_opc.exit.i tcg_out_opc.exit.i: ; preds = %if.then35.i.i, %sw.bb639.i - %586 = phi ptr [ %.pre799, %if.then35.i.i ], [ %.pre800, %sw.bb639.i ] - %incdec.ptr.i39.i.i = getelementptr i8, ptr %586, i64 1 + %585 = phi ptr [ %.pre799, %if.then35.i.i ], [ %.pre800, %sw.bb639.i ] + %incdec.ptr.i39.i.i = getelementptr i8, ptr %585, i64 1 store ptr %incdec.ptr.i39.i.i, ptr %code_ptr, align 8 - store i8 15, ptr %586, align 1 - %587 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i45.i.i = getelementptr i8, ptr %587, i64 1 + store i8 15, ptr %585, align 1 + %586 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i45.i.i = getelementptr i8, ptr %586, i64 1 store ptr %incdec.ptr.i45.i.i, ptr %code_ptr, align 8 - store i8 -66, ptr %587, align 1 + store i8 -66, ptr %586, align 1 %and.i.i.i = shl i32 %conv641.i, 3 %and1.i.i.i = and i32 %conv643.i, 7 %or.i.i.i = or disjoint i32 %and1.i.i.i, %and.i.i.i - %588 = trunc i32 %or.i.i.i to i8 - %conv.i.i.i458 = or i8 %588, -64 - %589 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i.i.i459 = getelementptr i8, ptr %589, i64 1 + %587 = trunc i32 %or.i.i.i to i8 + %conv.i.i.i458 = or i8 %587, -64 + %588 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i.i.i459 = getelementptr i8, ptr %588, i64 1 store ptr %incdec.ptr.i.i.i.i459, ptr %code_ptr, align 8 - store i8 %conv.i.i.i458, ptr %589, align 1 + store i8 %conv.i.i.i458, ptr %588, align 1 br label %sw.epilog715.i sw.bb644.i: ; preds = %if.end636.i - %590 = load i64, ptr %new_args.i, align 16 - %conv646.i = trunc i64 %590 to i32 - %591 = load i64, ptr %arrayidx692.i, align 8 - %conv648.i = trunc i64 %591 to i32 + %589 = load i64, ptr %new_args.i, align 16 + %conv646.i = trunc i64 %589 to i32 + %590 = load i64, ptr %arrayidx692.i, align 8 + %conv648.i = trunc i64 %590 to i32 %and18.i564.i = lshr i32 %conv646.i, 1 %shr.i565.i = and i32 %and18.i564.i, 4 %and23.i566.i = lshr i32 %conv648.i, 3 %shr24.i567.i = and i32 %and23.i566.i, 1 %or19.i.i = or disjoint i32 %shr24.i567.i, %shr.i565.i - %592 = trunc i32 %or19.i.i to i8 - %conv.i576.i = or disjoint i8 %592, 72 - %593 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i37.i578.i = getelementptr i8, ptr %593, i64 1 + %591 = trunc i32 %or19.i.i to i8 + %conv.i576.i = or disjoint i8 %591, 72 + %592 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i37.i578.i = getelementptr i8, ptr %592, i64 1 store ptr %incdec.ptr.i37.i578.i, ptr %code_ptr, align 8 - store i8 %conv.i576.i, ptr %593, align 1 - %594 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i39.i580.i = getelementptr i8, ptr %594, i64 1 + store i8 %conv.i576.i, ptr %592, align 1 + %593 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i39.i580.i = getelementptr i8, ptr %593, i64 1 store ptr %incdec.ptr.i39.i580.i, ptr %code_ptr, align 8 - store i8 15, ptr %594, align 1 - %595 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i45.i582.i = getelementptr i8, ptr %595, i64 1 + store i8 15, ptr %593, align 1 + %594 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i45.i582.i = getelementptr i8, ptr %594, i64 1 store ptr %incdec.ptr.i45.i582.i, ptr %code_ptr, align 8 - store i8 -66, ptr %595, align 1 + store i8 -66, ptr %594, align 1 %and.i.i372.i = shl i32 %conv646.i, 3 %and1.i.i373.i = and i32 %conv648.i, 7 %or.i.i374.i = or disjoint i32 %and1.i.i373.i, %and.i.i372.i - %596 = trunc i32 %or.i.i374.i to i8 - %conv.i.i375.i = or i8 %596, -64 - %597 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i.i377.i = getelementptr i8, ptr %597, i64 1 + %595 = trunc i32 %or.i.i374.i to i8 + %conv.i.i375.i = or i8 %595, -64 + %596 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i.i377.i = getelementptr i8, ptr %596, i64 1 store ptr %incdec.ptr.i.i.i377.i, ptr %code_ptr, align 8 - store i8 %conv.i.i375.i, ptr %597, align 1 + store i8 %conv.i.i375.i, ptr %596, align 1 br label %sw.epilog715.i sw.bb649.i: ; preds = %if.end636.i, %if.end636.i - %598 = load i64, ptr %new_args.i, align 16 - %conv651.i = trunc i64 %598 to i32 - %599 = load i64, ptr %arrayidx692.i, align 8 - %conv653.i = trunc i64 %599 to i32 + %597 = load i64, ptr %new_args.i, align 16 + %conv651.i = trunc i64 %597 to i32 + %598 = load i64, ptr %arrayidx692.i, align 8 + %conv653.i = trunc i64 %598 to i32 %and18.i.i.i = lshr i32 %conv651.i, 1 %shr.i.i.i = and i32 %and18.i.i.i, 4 %and23.i.i.i = lshr i32 %conv653.i, 3 @@ -11232,8 +11230,8 @@ sw.bb649.i: ; preds = %if.end636.i, %if.en br i1 %tobool34.not.i.i.i, label %tcg_out_ext8u.exit.i, label %if.then35.i.i.i if.then35.i.i.i: ; preds = %sw.bb649.i - %600 = trunc i32 %or22.i.i.i to i8 - %conv.i2.i.i = or disjoint i8 %600, 64 + %599 = trunc i32 %or22.i.i.i to i8 + %conv.i2.i.i = or disjoint i8 %599, 64 %incdec.ptr.i37.i.i.i = getelementptr i8, ptr %.pre798, i64 1 store ptr %incdec.ptr.i37.i.i.i, ptr %code_ptr, align 8 store i8 %conv.i2.i.i, ptr %.pre798, align 1 @@ -11241,30 +11239,30 @@ if.then35.i.i.i: ; preds = %sw.bb649.i br label %tcg_out_ext8u.exit.i tcg_out_ext8u.exit.i: ; preds = %if.then35.i.i.i, %sw.bb649.i - %601 = phi ptr [ %.pre797, %if.then35.i.i.i ], [ %.pre798, %sw.bb649.i ] - %incdec.ptr.i39.i.i.i = getelementptr i8, ptr %601, i64 1 + %600 = phi ptr [ %.pre797, %if.then35.i.i.i ], [ %.pre798, %sw.bb649.i ] + %incdec.ptr.i39.i.i.i = getelementptr i8, ptr %600, i64 1 store ptr %incdec.ptr.i39.i.i.i, ptr %code_ptr, align 8 - store i8 15, ptr %601, align 1 - %602 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i45.i.i.i = getelementptr i8, ptr %602, i64 1 + store i8 15, ptr %600, align 1 + %601 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i45.i.i.i = getelementptr i8, ptr %601, i64 1 store ptr %incdec.ptr.i45.i.i.i, ptr %code_ptr, align 8 - store i8 -74, ptr %602, align 1 + store i8 -74, ptr %601, align 1 %and.i.i378.i = shl i32 %conv651.i, 3 %and1.i.i379.i = and i32 %conv653.i, 7 %or.i.i380.i = or disjoint i32 %and1.i.i379.i, %and.i.i378.i - %603 = trunc i32 %or.i.i380.i to i8 - %conv.i.i381.i = or i8 %603, -64 - %604 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i.i382.i = getelementptr i8, ptr %604, i64 1 + %602 = trunc i32 %or.i.i380.i to i8 + %conv.i.i381.i = or i8 %602, -64 + %603 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i.i382.i = getelementptr i8, ptr %603, i64 1 store ptr %incdec.ptr.i.i.i382.i, ptr %code_ptr, align 8 - store i8 %conv.i.i381.i, ptr %604, align 1 + store i8 %conv.i.i381.i, ptr %603, align 1 br label %sw.epilog715.i sw.bb654.i: ; preds = %if.end636.i - %605 = load i64, ptr %new_args.i, align 16 - %conv656.i = trunc i64 %605 to i32 - %606 = load i64, ptr %arrayidx692.i, align 8 - %conv658.i = trunc i64 %606 to i32 + %604 = load i64, ptr %new_args.i, align 16 + %conv656.i = trunc i64 %604 to i32 + %605 = load i64, ptr %arrayidx692.i, align 8 + %conv658.i = trunc i64 %605 to i32 %and18.i585.i = lshr i32 %conv656.i, 1 %shr.i586.i = and i32 %and18.i585.i, 4 %and23.i587.i = lshr i32 %conv658.i, 3 @@ -11275,8 +11273,8 @@ sw.bb654.i: ; preds = %if.end636.i br i1 %tobool34.not.i595.i, label %tcg_out_opc.exit604.i, label %if.then35.i596.i if.then35.i596.i: ; preds = %sw.bb654.i - %607 = trunc i32 %or22.i589.i to i8 - %conv.i597.i = or disjoint i8 %607, 64 + %606 = trunc i32 %or22.i589.i to i8 + %conv.i597.i = or disjoint i8 %606, 64 %incdec.ptr.i37.i599.i = getelementptr i8, ptr %.pre796, i64 1 store ptr %incdec.ptr.i37.i599.i, ptr %code_ptr, align 8 store i8 %conv.i597.i, ptr %.pre796, align 1 @@ -11284,65 +11282,65 @@ if.then35.i596.i: ; preds = %sw.bb654.i br label %tcg_out_opc.exit604.i tcg_out_opc.exit604.i: ; preds = %if.then35.i596.i, %sw.bb654.i - %608 = phi ptr [ %.pre795, %if.then35.i596.i ], [ %.pre796, %sw.bb654.i ] - %incdec.ptr.i39.i601.i = getelementptr i8, ptr %608, i64 1 + %607 = phi ptr [ %.pre795, %if.then35.i596.i ], [ %.pre796, %sw.bb654.i ] + %incdec.ptr.i39.i601.i = getelementptr i8, ptr %607, i64 1 store ptr %incdec.ptr.i39.i601.i, ptr %code_ptr, align 8 - store i8 15, ptr %608, align 1 - %609 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i45.i603.i = getelementptr i8, ptr %609, i64 1 + store i8 15, ptr %607, align 1 + %608 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i45.i603.i = getelementptr i8, ptr %608, i64 1 store ptr %incdec.ptr.i45.i603.i, ptr %code_ptr, align 8 - store i8 -65, ptr %609, align 1 + store i8 -65, ptr %608, align 1 %and.i.i383.i = shl i32 %conv656.i, 3 %and1.i.i384.i = and i32 %conv658.i, 7 %or.i.i385.i = or disjoint i32 %and1.i.i384.i, %and.i.i383.i - %610 = trunc i32 %or.i.i385.i to i8 - %conv.i.i386.i = or i8 %610, -64 - %611 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i.i388.i = getelementptr i8, ptr %611, i64 1 + %609 = trunc i32 %or.i.i385.i to i8 + %conv.i.i386.i = or i8 %609, -64 + %610 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i.i388.i = getelementptr i8, ptr %610, i64 1 store ptr %incdec.ptr.i.i.i388.i, ptr %code_ptr, align 8 - store i8 %conv.i.i386.i, ptr %611, align 1 + store i8 %conv.i.i386.i, ptr %610, align 1 br label %sw.epilog715.i sw.bb659.i: ; preds = %if.end636.i - %612 = load i64, ptr %new_args.i, align 16 - %conv661.i = trunc i64 %612 to i32 - %613 = load i64, ptr %arrayidx692.i, align 8 - %conv663.i = trunc i64 %613 to i32 + %611 = load i64, ptr %new_args.i, align 16 + %conv661.i = trunc i64 %611 to i32 + %612 = load i64, ptr %arrayidx692.i, align 8 + %conv663.i = trunc i64 %612 to i32 %and18.i607.i = lshr i32 %conv661.i, 1 %shr.i608.i = and i32 %and18.i607.i, 4 %and23.i610.i = lshr i32 %conv663.i, 3 %shr24.i611.i = and i32 %and23.i610.i, 1 %or19.i609.i = or disjoint i32 %shr24.i611.i, %shr.i608.i - %614 = trunc i32 %or19.i609.i to i8 - %conv.i619.i = or disjoint i8 %614, 72 - %615 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i37.i621.i = getelementptr i8, ptr %615, i64 1 + %613 = trunc i32 %or19.i609.i to i8 + %conv.i619.i = or disjoint i8 %613, 72 + %614 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i37.i621.i = getelementptr i8, ptr %614, i64 1 store ptr %incdec.ptr.i37.i621.i, ptr %code_ptr, align 8 - store i8 %conv.i619.i, ptr %615, align 1 - %616 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i39.i623.i = getelementptr i8, ptr %616, i64 1 + store i8 %conv.i619.i, ptr %614, align 1 + %615 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i39.i623.i = getelementptr i8, ptr %615, i64 1 store ptr %incdec.ptr.i39.i623.i, ptr %code_ptr, align 8 - store i8 15, ptr %616, align 1 - %617 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i45.i625.i = getelementptr i8, ptr %617, i64 1 + store i8 15, ptr %615, align 1 + %616 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i45.i625.i = getelementptr i8, ptr %616, i64 1 store ptr %incdec.ptr.i45.i625.i, ptr %code_ptr, align 8 - store i8 -65, ptr %617, align 1 + store i8 -65, ptr %616, align 1 %and.i.i389.i = shl i32 %conv661.i, 3 %and1.i.i390.i = and i32 %conv663.i, 7 %or.i.i391.i = or disjoint i32 %and1.i.i390.i, %and.i.i389.i - %618 = trunc i32 %or.i.i391.i to i8 - %conv.i.i392.i = or i8 %618, -64 - %619 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i.i394.i = getelementptr i8, ptr %619, i64 1 + %617 = trunc i32 %or.i.i391.i to i8 + %conv.i.i392.i = or i8 %617, -64 + %618 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i.i394.i = getelementptr i8, ptr %618, i64 1 store ptr %incdec.ptr.i.i.i394.i, ptr %code_ptr, align 8 - store i8 %conv.i.i392.i, ptr %619, align 1 + store i8 %conv.i.i392.i, ptr %618, align 1 br label %sw.epilog715.i sw.bb664.i: ; preds = %if.end636.i, %if.end636.i - %620 = load i64, ptr %new_args.i, align 16 - %conv666.i = trunc i64 %620 to i32 - %621 = load i64, ptr %arrayidx692.i, align 8 - %conv668.i = trunc i64 %621 to i32 + %619 = load i64, ptr %new_args.i, align 16 + %conv666.i = trunc i64 %619 to i32 + %620 = load i64, ptr %arrayidx692.i, align 8 + %conv668.i = trunc i64 %620 to i32 %and18.i.i395.i = lshr i32 %conv666.i, 1 %shr.i.i396.i = and i32 %and18.i.i395.i, 4 %and23.i.i397.i = lshr i32 %conv668.i, 3 @@ -11353,8 +11351,8 @@ sw.bb664.i: ; preds = %if.end636.i, %if.en br i1 %tobool34.not.i.i400.i, label %tcg_out_ext16u.exit.i, label %if.then35.i.i401.i if.then35.i.i401.i: ; preds = %sw.bb664.i - %622 = trunc i32 %or22.i.i399.i to i8 - %conv.i1.i.i = or disjoint i8 %622, 64 + %621 = trunc i32 %or22.i.i399.i to i8 + %conv.i1.i.i = or disjoint i8 %621, 64 %incdec.ptr.i37.i.i403.i = getelementptr i8, ptr %.pre794, i64 1 store ptr %incdec.ptr.i37.i.i403.i, ptr %code_ptr, align 8 store i8 %conv.i1.i.i, ptr %.pre794, align 1 @@ -11362,61 +11360,61 @@ if.then35.i.i401.i: ; preds = %sw.bb664.i br label %tcg_out_ext16u.exit.i tcg_out_ext16u.exit.i: ; preds = %if.then35.i.i401.i, %sw.bb664.i - %623 = phi ptr [ %.pre793, %if.then35.i.i401.i ], [ %.pre794, %sw.bb664.i ] - %incdec.ptr.i39.i.i405.i = getelementptr i8, ptr %623, i64 1 + %622 = phi ptr [ %.pre793, %if.then35.i.i401.i ], [ %.pre794, %sw.bb664.i ] + %incdec.ptr.i39.i.i405.i = getelementptr i8, ptr %622, i64 1 store ptr %incdec.ptr.i39.i.i405.i, ptr %code_ptr, align 8 - store i8 15, ptr %623, align 1 - %624 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i45.i.i406.i = getelementptr i8, ptr %624, i64 1 + store i8 15, ptr %622, align 1 + %623 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i45.i.i406.i = getelementptr i8, ptr %623, i64 1 store ptr %incdec.ptr.i45.i.i406.i, ptr %code_ptr, align 8 - store i8 -73, ptr %624, align 1 + store i8 -73, ptr %623, align 1 %and.i.i407.i = shl i32 %conv666.i, 3 %and1.i.i408.i = and i32 %conv668.i, 7 %or.i.i409.i = or disjoint i32 %and1.i.i408.i, %and.i.i407.i - %625 = trunc i32 %or.i.i409.i to i8 - %conv.i.i410.i = or i8 %625, -64 - %626 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i.i411.i = getelementptr i8, ptr %626, i64 1 + %624 = trunc i32 %or.i.i409.i to i8 + %conv.i.i410.i = or i8 %624, -64 + %625 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i.i411.i = getelementptr i8, ptr %625, i64 1 store ptr %incdec.ptr.i.i.i411.i, ptr %code_ptr, align 8 - store i8 %conv.i.i410.i, ptr %626, align 1 + store i8 %conv.i.i410.i, ptr %625, align 1 br label %sw.epilog715.i sw.bb669.i: ; preds = %if.end636.i - %627 = load i64, ptr %new_args.i, align 16 - %conv671.i = trunc i64 %627 to i32 - %628 = load i64, ptr %arrayidx692.i, align 8 - %conv673.i = trunc i64 %628 to i32 + %626 = load i64, ptr %new_args.i, align 16 + %conv671.i = trunc i64 %626 to i32 + %627 = load i64, ptr %arrayidx692.i, align 8 + %conv673.i = trunc i64 %627 to i32 %and18.i.i412.i = lshr i32 %conv671.i, 1 %shr.i.i413.i = and i32 %and18.i.i412.i, 4 %and23.i.i414.i = lshr i32 %conv673.i, 3 %shr24.i.i415.i = and i32 %and23.i.i414.i, 1 %or19.i.i.i = or disjoint i32 %shr24.i.i415.i, %shr.i.i413.i - %629 = trunc i32 %or19.i.i.i to i8 - %conv.i1.i416.i = or disjoint i8 %629, 72 - %630 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i37.i.i418.i = getelementptr i8, ptr %630, i64 1 + %628 = trunc i32 %or19.i.i.i to i8 + %conv.i1.i416.i = or disjoint i8 %628, 72 + %629 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i37.i.i418.i = getelementptr i8, ptr %629, i64 1 store ptr %incdec.ptr.i37.i.i418.i, ptr %code_ptr, align 8 - store i8 %conv.i1.i416.i, ptr %630, align 1 - %631 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i45.i.i419.i = getelementptr i8, ptr %631, i64 1 + store i8 %conv.i1.i416.i, ptr %629, align 1 + %630 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i45.i.i419.i = getelementptr i8, ptr %630, i64 1 store ptr %incdec.ptr.i45.i.i419.i, ptr %code_ptr, align 8 - store i8 99, ptr %631, align 1 + store i8 99, ptr %630, align 1 %and.i.i420.i = shl i32 %conv671.i, 3 %and1.i.i421.i = and i32 %conv673.i, 7 %or.i.i422.i = or disjoint i32 %and1.i.i421.i, %and.i.i420.i - %632 = trunc i32 %or.i.i422.i to i8 - %conv.i.i423.i = or i8 %632, -64 - %633 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i.i424.i = getelementptr i8, ptr %633, i64 1 + %631 = trunc i32 %or.i.i422.i to i8 + %conv.i.i423.i = or i8 %631, -64 + %632 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i.i424.i = getelementptr i8, ptr %632, i64 1 store ptr %incdec.ptr.i.i.i424.i, ptr %code_ptr, align 8 - store i8 %conv.i.i423.i, ptr %633, align 1 + store i8 %conv.i.i423.i, ptr %632, align 1 br label %sw.epilog715.i sw.bb674.i: ; preds = %if.end636.i - %634 = load i64, ptr %new_args.i, align 16 - %conv676.i = trunc i64 %634 to i32 - %635 = load i64, ptr %arrayidx692.i, align 8 - %conv678.i = trunc i64 %635 to i32 + %633 = load i64, ptr %new_args.i, align 16 + %conv676.i = trunc i64 %633 to i32 + %634 = load i64, ptr %arrayidx692.i, align 8 + %conv678.i = trunc i64 %634 to i32 %and18.i.i425.i = lshr i32 %conv676.i, 1 %shr.i.i426.i = and i32 %and18.i.i425.i, 4 %and23.i.i427.i = lshr i32 %conv678.i, 3 @@ -11427,8 +11425,8 @@ sw.bb674.i: ; preds = %if.end636.i br i1 %tobool34.not.i.i430.i, label %tcg_out_ext32u.exit.i, label %if.then35.i.i431.i if.then35.i.i431.i: ; preds = %sw.bb674.i - %636 = trunc i32 %or22.i.i429.i to i8 - %conv.i1.i432.i = or disjoint i8 %636, 64 + %635 = trunc i32 %or22.i.i429.i to i8 + %conv.i1.i432.i = or disjoint i8 %635, 64 %incdec.ptr.i37.i.i434.i = getelementptr i8, ptr %.pre792, i64 1 store ptr %incdec.ptr.i37.i.i434.i, ptr %code_ptr, align 8 store i8 %conv.i1.i432.i, ptr %.pre792, align 1 @@ -11436,57 +11434,57 @@ if.then35.i.i431.i: ; preds = %sw.bb674.i br label %tcg_out_ext32u.exit.i tcg_out_ext32u.exit.i: ; preds = %if.then35.i.i431.i, %sw.bb674.i - %637 = phi ptr [ %.pre791, %if.then35.i.i431.i ], [ %.pre792, %sw.bb674.i ] - %incdec.ptr.i45.i.i435.i = getelementptr i8, ptr %637, i64 1 + %636 = phi ptr [ %.pre791, %if.then35.i.i431.i ], [ %.pre792, %sw.bb674.i ] + %incdec.ptr.i45.i.i435.i = getelementptr i8, ptr %636, i64 1 store ptr %incdec.ptr.i45.i.i435.i, ptr %code_ptr, align 8 - store i8 -117, ptr %637, align 1 + store i8 -117, ptr %636, align 1 %and.i.i436.i = shl i32 %conv676.i, 3 %and1.i.i437.i = and i32 %conv678.i, 7 %or.i.i438.i = or disjoint i32 %and1.i.i437.i, %and.i.i436.i - %638 = trunc i32 %or.i.i438.i to i8 - %conv.i.i439.i = or i8 %638, -64 - %639 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i.i440.i = getelementptr i8, ptr %639, i64 1 + %637 = trunc i32 %or.i.i438.i to i8 + %conv.i.i439.i = or i8 %637, -64 + %638 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i.i440.i = getelementptr i8, ptr %638, i64 1 store ptr %incdec.ptr.i.i.i440.i, ptr %code_ptr, align 8 - store i8 %conv.i.i439.i, ptr %639, align 1 + store i8 %conv.i.i439.i, ptr %638, align 1 br label %sw.epilog715.i sw.bb679.i: ; preds = %if.end636.i - %640 = load i64, ptr %new_args.i, align 16 - %conv681.i = trunc i64 %640 to i32 - %641 = load i64, ptr %arrayidx692.i, align 8 - %conv683.i = trunc i64 %641 to i32 + %639 = load i64, ptr %new_args.i, align 16 + %conv681.i = trunc i64 %639 to i32 + %640 = load i64, ptr %arrayidx692.i, align 8 + %conv683.i = trunc i64 %640 to i32 %and18.i.i.i.i = lshr i32 %conv681.i, 1 %shr.i.i.i.i = and i32 %and18.i.i.i.i, 4 %and23.i.i.i.i = lshr i32 %conv683.i, 3 %shr24.i.i.i.i = and i32 %and23.i.i.i.i, 1 %or19.i.i.i.i = or disjoint i32 %shr24.i.i.i.i, %shr.i.i.i.i - %642 = trunc i32 %or19.i.i.i.i to i8 - %conv.i1.i.i.i = or disjoint i8 %642, 72 - %643 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i37.i.i.i.i454 = getelementptr i8, ptr %643, i64 1 + %641 = trunc i32 %or19.i.i.i.i to i8 + %conv.i1.i.i.i = or disjoint i8 %641, 72 + %642 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i37.i.i.i.i454 = getelementptr i8, ptr %642, i64 1 store ptr %incdec.ptr.i37.i.i.i.i454, ptr %code_ptr, align 8 - store i8 %conv.i1.i.i.i, ptr %643, align 1 - %644 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i45.i.i.i.i455 = getelementptr i8, ptr %644, i64 1 + store i8 %conv.i1.i.i.i, ptr %642, align 1 + %643 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i45.i.i.i.i455 = getelementptr i8, ptr %643, i64 1 store ptr %incdec.ptr.i45.i.i.i.i455, ptr %code_ptr, align 8 - store i8 99, ptr %644, align 1 + store i8 99, ptr %643, align 1 %and.i.i.i.i = shl i32 %conv681.i, 3 %and1.i.i.i.i = and i32 %conv683.i, 7 %or.i.i.i.i = or disjoint i32 %and1.i.i.i.i, %and.i.i.i.i - %645 = trunc i32 %or.i.i.i.i to i8 - %conv.i.i.i.i456 = or i8 %645, -64 - %646 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i.i.i.i457 = getelementptr i8, ptr %646, i64 1 + %644 = trunc i32 %or.i.i.i.i to i8 + %conv.i.i.i.i456 = or i8 %644, -64 + %645 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i.i.i.i457 = getelementptr i8, ptr %645, i64 1 store ptr %incdec.ptr.i.i.i.i.i457, ptr %code_ptr, align 8 - store i8 %conv.i.i.i.i456, ptr %646, align 1 + store i8 %conv.i.i.i.i456, ptr %645, align 1 br label %sw.epilog715.i sw.bb684.i: ; preds = %if.end636.i - %647 = load i64, ptr %new_args.i, align 16 - %conv686.i = trunc i64 %647 to i32 - %648 = load i64, ptr %arrayidx692.i, align 8 - %conv688.i = trunc i64 %648 to i32 + %646 = load i64, ptr %new_args.i, align 16 + %conv686.i = trunc i64 %646 to i32 + %647 = load i64, ptr %arrayidx692.i, align 8 + %conv688.i = trunc i64 %647 to i32 %cmp.not.i441.i = icmp eq i32 %conv686.i, %conv688.i br i1 %cmp.not.i441.i, label %sw.epilog715.i, label %if.then.i442.i @@ -11501,8 +11499,8 @@ if.then.i442.i: ; preds = %sw.bb684.i br i1 %tobool34.not.i.i.i.i, label %tcg_out_ext32u.exit.i.i, label %if.then35.i.i.i.i if.then35.i.i.i.i: ; preds = %if.then.i442.i - %649 = trunc i32 %or22.i.i.i.i to i8 - %conv.i1.i.i447.i = or disjoint i8 %649, 64 + %648 = trunc i32 %or22.i.i.i.i to i8 + %conv.i1.i.i447.i = or disjoint i8 %648, 64 %incdec.ptr.i37.i.i.i449.i = getelementptr i8, ptr %.pre790, i64 1 store ptr %incdec.ptr.i37.i.i.i449.i, ptr %code_ptr, align 8 store i8 %conv.i1.i.i447.i, ptr %.pre790, align 1 @@ -11510,26 +11508,26 @@ if.then35.i.i.i.i: ; preds = %if.then.i442.i br label %tcg_out_ext32u.exit.i.i tcg_out_ext32u.exit.i.i: ; preds = %if.then35.i.i.i.i, %if.then.i442.i - %650 = phi ptr [ %.pre789, %if.then35.i.i.i.i ], [ %.pre790, %if.then.i442.i ] - %incdec.ptr.i45.i.i.i450.i = getelementptr i8, ptr %650, i64 1 + %649 = phi ptr [ %.pre789, %if.then35.i.i.i.i ], [ %.pre790, %if.then.i442.i ] + %incdec.ptr.i45.i.i.i450.i = getelementptr i8, ptr %649, i64 1 store ptr %incdec.ptr.i45.i.i.i450.i, ptr %code_ptr, align 8 - store i8 -117, ptr %650, align 1 + store i8 -117, ptr %649, align 1 %and.i.i.i451.i = shl i32 %conv686.i, 3 %and1.i.i.i452.i = and i32 %conv688.i, 7 %or.i.i.i453.i = or disjoint i32 %and1.i.i.i452.i, %and.i.i.i451.i - %651 = trunc i32 %or.i.i.i453.i to i8 - %conv.i.i.i454.i = or i8 %651, -64 - %652 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i.i.i455.i = getelementptr i8, ptr %652, i64 1 + %650 = trunc i32 %or.i.i.i453.i to i8 + %conv.i.i.i454.i = or i8 %650, -64 + %651 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i.i.i455.i = getelementptr i8, ptr %651, i64 1 store ptr %incdec.ptr.i.i.i.i455.i, ptr %code_ptr, align 8 - store i8 %conv.i.i.i454.i, ptr %652, align 1 + store i8 %conv.i.i.i454.i, ptr %651, align 1 br label %sw.epilog715.i sw.bb689.i: ; preds = %if.end636.i - %653 = load i64, ptr %new_args.i, align 16 - %conv691.i = trunc i64 %653 to i32 - %654 = load i64, ptr %arrayidx692.i, align 8 - %conv693.i = trunc i64 %654 to i32 + %652 = load i64, ptr %new_args.i, align 16 + %conv691.i = trunc i64 %652 to i32 + %653 = load i64, ptr %arrayidx692.i, align 8 + %conv693.i = trunc i64 %653 to i32 %and18.i.i.i457.i = lshr i32 %conv691.i, 1 %shr.i.i.i458.i = and i32 %and18.i.i.i457.i, 4 %and23.i.i.i459.i = lshr i32 %conv693.i, 3 @@ -11540,8 +11538,8 @@ sw.bb689.i: ; preds = %if.end636.i br i1 %tobool34.not.i.i.i462.i, label %tcg_out_extrl_i64_i32.exit.i, label %if.then35.i.i.i463.i if.then35.i.i.i463.i: ; preds = %sw.bb689.i - %655 = trunc i32 %or22.i.i.i461.i to i8 - %conv.i1.i.i464.i = or disjoint i8 %655, 64 + %654 = trunc i32 %or22.i.i.i461.i to i8 + %conv.i1.i.i464.i = or disjoint i8 %654, 64 %incdec.ptr.i37.i.i.i466.i = getelementptr i8, ptr %.pre788, i64 1 store ptr %incdec.ptr.i37.i.i.i466.i, ptr %code_ptr, align 8 store i8 %conv.i1.i.i464.i, ptr %.pre788, align 1 @@ -11549,25 +11547,25 @@ if.then35.i.i.i463.i: ; preds = %sw.bb689.i br label %tcg_out_extrl_i64_i32.exit.i tcg_out_extrl_i64_i32.exit.i: ; preds = %if.then35.i.i.i463.i, %sw.bb689.i - %656 = phi ptr [ %.pre, %if.then35.i.i.i463.i ], [ %.pre788, %sw.bb689.i ] - %incdec.ptr.i45.i.i.i469.i = getelementptr i8, ptr %656, i64 1 + %655 = phi ptr [ %.pre, %if.then35.i.i.i463.i ], [ %.pre788, %sw.bb689.i ] + %incdec.ptr.i45.i.i.i469.i = getelementptr i8, ptr %655, i64 1 store ptr %incdec.ptr.i45.i.i.i469.i, ptr %code_ptr, align 8 - store i8 -117, ptr %656, align 1 + store i8 -117, ptr %655, align 1 %and.i.i.i470.i = shl i32 %conv691.i, 3 %and1.i.i.i471.i = and i32 %conv693.i, 7 %or.i.i.i472.i = or disjoint i32 %and1.i.i.i471.i, %and.i.i.i470.i - %657 = trunc i32 %or.i.i.i472.i to i8 - %conv.i.i.i473.i = or i8 %657, -64 - %658 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i.i.i474.i = getelementptr i8, ptr %658, i64 1 + %656 = trunc i32 %or.i.i.i472.i to i8 + %conv.i.i.i473.i = or i8 %656, -64 + %657 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i.i.i474.i = getelementptr i8, ptr %657, i64 1 store ptr %incdec.ptr.i.i.i.i474.i, ptr %code_ptr, align 8 - store i8 %conv.i.i.i473.i, ptr %658, align 1 + store i8 %conv.i.i.i473.i, ptr %657, align 1 br label %sw.epilog715.i sw.default694.i: ; preds = %if.end636.i - %659 = load i8, ptr %flags.i449, align 4 - %660 = and i8 %659, 64 - %tobool698.not.i = icmp eq i8 %660, 0 + %658 = load i8, ptr %flags.i449, align 4 + %659 = and i8 %658, 64 + %tobool698.not.i = icmp eq i8 %659, 0 br i1 %tobool698.not.i, label %if.else709.i, label %if.then699.i if.then699.i: ; preds = %sw.default694.i @@ -11575,9 +11573,9 @@ if.then699.i: ; preds = %sw.default694.i %bf.clear704.i = and i32 %bf.lshr703.i, 255 %bf.lshr706.i = lshr i32 %bf.load637.i, 24 %add.i.i460 = add nuw nsw i32 %bf.clear704.i, 3 - %661 = load i64, ptr %new_args.i, align 16 - %662 = load i64, ptr %arrayidx692.i, align 8 - %663 = load i64, ptr %arrayidx2.i.i, align 16 + %660 = load i64, ptr %new_args.i, align 16 + %661 = load i64, ptr %arrayidx692.i, align 8 + %662 = load i64, ptr %arrayidx2.i.i, align 16 switch i8 %trunc.i451, label %do.body236.i.i [ i8 -101, label %sw.bb.i484.i i8 -96, label %sw.bb4.i.i @@ -11634,43 +11632,43 @@ if.then699.i: ; preds = %sw.default694.i sw.bb.i484.i: ; preds = %if.then699.i %idxprom.i485.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx3.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.add_insn, i64 0, i64 %idxprom.i485.i - %664 = load i32, ptr %arrayidx3.i.i, align 4 + %663 = load i32, ptr %arrayidx3.i.i, align 4 br label %do.body.i481.i sw.bb4.i.i: ; preds = %if.then699.i %idxprom5.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx6.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.ssadd_insn, i64 0, i64 %idxprom5.i.i - %665 = load i32, ptr %arrayidx6.i.i, align 4 + %664 = load i32, ptr %arrayidx6.i.i, align 4 br label %do.body.i481.i sw.bb7.i.i: ; preds = %if.then699.i %idxprom8.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx9.i.i464 = getelementptr [4 x i32], ptr @tcg_out_vec_op.usadd_insn, i64 0, i64 %idxprom8.i.i - %666 = load i32, ptr %arrayidx9.i.i464, align 4 + %665 = load i32, ptr %arrayidx9.i.i464, align 4 br label %do.body.i481.i sw.bb10.i.i: ; preds = %if.then699.i %idxprom11.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx12.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.sub_insn, i64 0, i64 %idxprom11.i.i - %667 = load i32, ptr %arrayidx12.i.i, align 4 + %666 = load i32, ptr %arrayidx12.i.i, align 4 br label %do.body.i481.i sw.bb13.i.i: ; preds = %if.then699.i %idxprom14.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx15.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.sssub_insn, i64 0, i64 %idxprom14.i.i - %668 = load i32, ptr %arrayidx15.i.i, align 4 + %667 = load i32, ptr %arrayidx15.i.i, align 4 br label %do.body.i481.i sw.bb16.i.i: ; preds = %if.then699.i %idxprom17.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx18.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.ussub_insn, i64 0, i64 %idxprom17.i.i - %669 = load i32, ptr %arrayidx18.i.i, align 4 + %668 = load i32, ptr %arrayidx18.i.i, align 4 br label %do.body.i481.i sw.bb19.i.i: ; preds = %if.then699.i %idxprom20.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx21.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.mul_insn, i64 0, i64 %idxprom20.i.i - %670 = load i32, ptr %arrayidx21.i.i, align 4 + %669 = load i32, ptr %arrayidx21.i.i, align 4 br label %do.body.i481.i sw.bb23.i.i: ; preds = %if.then699.i @@ -11682,137 +11680,137 @@ sw.bb24.i.i: ; preds = %if.then699.i sw.bb25.i.i: ; preds = %if.then699.i %idxprom26.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx27.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.smin_insn, i64 0, i64 %idxprom26.i.i - %671 = load i32, ptr %arrayidx27.i.i, align 4 + %670 = load i32, ptr %arrayidx27.i.i, align 4 br label %do.body.i481.i sw.bb28.i.i: ; preds = %if.then699.i %idxprom29.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx30.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.umin_insn, i64 0, i64 %idxprom29.i.i - %672 = load i32, ptr %arrayidx30.i.i, align 4 + %671 = load i32, ptr %arrayidx30.i.i, align 4 br label %do.body.i481.i sw.bb31.i.i: ; preds = %if.then699.i %idxprom32.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx33.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.smax_insn, i64 0, i64 %idxprom32.i.i - %673 = load i32, ptr %arrayidx33.i.i, align 4 + %672 = load i32, ptr %arrayidx33.i.i, align 4 br label %do.body.i481.i sw.bb34.i.i: ; preds = %if.then699.i %idxprom35.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx36.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.umax_insn, i64 0, i64 %idxprom35.i.i - %674 = load i32, ptr %arrayidx36.i.i, align 4 + %673 = load i32, ptr %arrayidx36.i.i, align 4 br label %do.body.i481.i sw.bb37.i.i: ; preds = %if.then699.i %idxprom38.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx39.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.shlv_insn, i64 0, i64 %idxprom38.i.i - %675 = load i32, ptr %arrayidx39.i.i, align 4 + %674 = load i32, ptr %arrayidx39.i.i, align 4 br label %do.body.i481.i sw.bb40.i.i: ; preds = %if.then699.i %idxprom41.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx42.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.shrv_insn, i64 0, i64 %idxprom41.i.i - %676 = load i32, ptr %arrayidx42.i.i, align 4 + %675 = load i32, ptr %arrayidx42.i.i, align 4 br label %do.body.i481.i sw.bb43.i.i: ; preds = %if.then699.i %idxprom44.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx45.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.sarv_insn, i64 0, i64 %idxprom44.i.i - %677 = load i32, ptr %arrayidx45.i.i, align 4 + %676 = load i32, ptr %arrayidx45.i.i, align 4 br label %do.body.i481.i sw.bb46.i.i: ; preds = %if.then699.i %idxprom47.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx48.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.rotlv_insn, i64 0, i64 %idxprom47.i.i - %678 = load i32, ptr %arrayidx48.i.i, align 4 + %677 = load i32, ptr %arrayidx48.i.i, align 4 br label %do.body.i481.i sw.bb49.i.i: ; preds = %if.then699.i %idxprom50.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx51.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.rotrv_insn, i64 0, i64 %idxprom50.i.i - %679 = load i32, ptr %arrayidx51.i.i, align 4 + %678 = load i32, ptr %arrayidx51.i.i, align 4 br label %do.body.i481.i sw.bb52.i.i: ; preds = %if.then699.i %idxprom53.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx54.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.shls_insn, i64 0, i64 %idxprom53.i.i - %680 = load i32, ptr %arrayidx54.i.i, align 4 + %679 = load i32, ptr %arrayidx54.i.i, align 4 br label %do.body.i481.i sw.bb55.i.i: ; preds = %if.then699.i %idxprom56.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx57.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.shrs_insn, i64 0, i64 %idxprom56.i.i - %681 = load i32, ptr %arrayidx57.i.i, align 4 + %680 = load i32, ptr %arrayidx57.i.i, align 4 br label %do.body.i481.i sw.bb58.i.i: ; preds = %if.then699.i %idxprom59.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx60.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.sars_insn, i64 0, i64 %idxprom59.i.i - %682 = load i32, ptr %arrayidx60.i.i, align 4 + %681 = load i32, ptr %arrayidx60.i.i, align 4 br label %do.body.i481.i sw.bb61.i.i: ; preds = %if.then699.i %idxprom62.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx63.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.punpckl_insn, i64 0, i64 %idxprom62.i.i - %683 = load i32, ptr %arrayidx63.i.i, align 4 + %682 = load i32, ptr %arrayidx63.i.i, align 4 br label %do.body.i481.i sw.bb64.i.i: ; preds = %if.then699.i %idxprom65.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx66.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.punpckh_insn, i64 0, i64 %idxprom65.i.i - %684 = load i32, ptr %arrayidx66.i.i, align 4 + %683 = load i32, ptr %arrayidx66.i.i, align 4 br label %do.body.i481.i sw.bb67.i.i: ; preds = %if.then699.i %idxprom68.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx69.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.packss_insn, i64 0, i64 %idxprom68.i.i - %685 = load i32, ptr %arrayidx69.i.i, align 4 + %684 = load i32, ptr %arrayidx69.i.i, align 4 br label %do.body.i481.i sw.bb70.i.i: ; preds = %if.then699.i %idxprom71.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx72.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.packus_insn, i64 0, i64 %idxprom71.i.i - %686 = load i32, ptr %arrayidx72.i.i, align 4 + %685 = load i32, ptr %arrayidx72.i.i, align 4 br label %do.body.i481.i sw.bb73.i.i: ; preds = %if.then699.i %idxprom74.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx75.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.vpshldv_insn, i64 0, i64 %idxprom74.i.i - %687 = load i32, ptr %arrayidx75.i.i, align 4 - %688 = load i64, ptr %arrayidx229.i.i, align 8 + %686 = load i32, ptr %arrayidx75.i.i, align 4 + %687 = load i64, ptr %arrayidx229.i.i, align 8 br label %do.body.i481.i sw.bb77.i.i: ; preds = %if.then699.i %idxprom78.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx79.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.vpshrdv_insn, i64 0, i64 %idxprom78.i.i - %689 = load i32, ptr %arrayidx79.i.i, align 4 - %690 = load i64, ptr %arrayidx229.i.i, align 8 + %688 = load i32, ptr %arrayidx79.i.i, align 4 + %689 = load i64, ptr %arrayidx229.i.i, align 8 br label %do.body.i481.i sw.bb81.i.i: ; preds = %if.then699.i %idxprom82.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx83.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.abs_insn, i64 0, i64 %idxprom82.i.i - %691 = load i32, ptr %arrayidx83.i.i, align 4 + %690 = load i32, ptr %arrayidx83.i.i, align 4 br label %do.body.i481.i do.body.i481.i: ; preds = %if.then99.i.i, %if.then94.i.i, %sw.bb81.i.i, %sw.bb77.i.i, %sw.bb73.i.i, %sw.bb70.i.i, %sw.bb67.i.i, %sw.bb64.i.i, %sw.bb61.i.i, %sw.bb58.i.i, %sw.bb55.i.i, %sw.bb52.i.i, %sw.bb49.i.i, %sw.bb46.i.i, %sw.bb43.i.i, %sw.bb40.i.i, %sw.bb37.i.i, %sw.bb34.i.i, %sw.bb31.i.i, %sw.bb28.i.i, %sw.bb25.i.i, %sw.bb24.i.i, %sw.bb23.i.i, %sw.bb19.i.i, %sw.bb16.i.i, %sw.bb13.i.i, %sw.bb10.i.i, %sw.bb7.i.i, %sw.bb4.i.i, %sw.bb.i484.i, %if.then699.i - %a1.0.i.i = phi i64 [ %662, %if.then94.i.i ], [ %662, %if.then99.i.i ], [ 0, %sw.bb81.i.i ], [ %663, %sw.bb77.i.i ], [ %663, %sw.bb73.i.i ], [ %662, %sw.bb70.i.i ], [ %662, %sw.bb67.i.i ], [ %662, %sw.bb64.i.i ], [ %662, %sw.bb61.i.i ], [ %662, %sw.bb58.i.i ], [ %662, %sw.bb55.i.i ], [ %662, %sw.bb52.i.i ], [ %662, %sw.bb49.i.i ], [ %662, %sw.bb46.i.i ], [ %662, %sw.bb43.i.i ], [ %662, %sw.bb40.i.i ], [ %662, %sw.bb37.i.i ], [ %662, %sw.bb34.i.i ], [ %662, %sw.bb31.i.i ], [ %662, %sw.bb28.i.i ], [ %662, %sw.bb25.i.i ], [ %662, %sw.bb24.i.i ], [ %662, %sw.bb23.i.i ], [ %662, %sw.bb19.i.i ], [ %662, %sw.bb16.i.i ], [ %662, %sw.bb13.i.i ], [ %662, %sw.bb10.i.i ], [ %662, %sw.bb7.i.i ], [ %662, %sw.bb4.i.i ], [ %662, %sw.bb.i484.i ], [ %662, %if.then699.i ] - %a2.0.i.i = phi i64 [ %663, %if.then94.i.i ], [ %663, %if.then99.i.i ], [ %662, %sw.bb81.i.i ], [ %690, %sw.bb77.i.i ], [ %688, %sw.bb73.i.i ], [ %663, %sw.bb70.i.i ], [ %663, %sw.bb67.i.i ], [ %663, %sw.bb64.i.i ], [ %663, %sw.bb61.i.i ], [ %663, %sw.bb58.i.i ], [ %663, %sw.bb55.i.i ], [ %663, %sw.bb52.i.i ], [ %663, %sw.bb49.i.i ], [ %663, %sw.bb46.i.i ], [ %663, %sw.bb43.i.i ], [ %663, %sw.bb40.i.i ], [ %663, %sw.bb37.i.i ], [ %663, %sw.bb34.i.i ], [ %663, %sw.bb31.i.i ], [ %663, %sw.bb28.i.i ], [ %663, %sw.bb25.i.i ], [ %663, %sw.bb24.i.i ], [ %663, %sw.bb23.i.i ], [ %663, %sw.bb19.i.i ], [ %663, %sw.bb16.i.i ], [ %663, %sw.bb13.i.i ], [ %663, %sw.bb10.i.i ], [ %663, %sw.bb7.i.i ], [ %663, %sw.bb4.i.i ], [ %663, %sw.bb.i484.i ], [ %663, %if.then699.i ] - %insn.0.i.i = phi i32 [ %693, %if.then94.i.i ], [ %694, %if.then99.i.i ], [ %691, %sw.bb81.i.i ], [ %689, %sw.bb77.i.i ], [ %687, %sw.bb73.i.i ], [ %686, %sw.bb70.i.i ], [ %685, %sw.bb67.i.i ], [ %684, %sw.bb64.i.i ], [ %683, %sw.bb61.i.i ], [ %682, %sw.bb58.i.i ], [ %681, %sw.bb55.i.i ], [ %680, %sw.bb52.i.i ], [ %679, %sw.bb49.i.i ], [ %678, %sw.bb46.i.i ], [ %677, %sw.bb43.i.i ], [ %676, %sw.bb40.i.i ], [ %675, %sw.bb37.i.i ], [ %674, %sw.bb34.i.i ], [ %673, %sw.bb31.i.i ], [ %672, %sw.bb28.i.i ], [ %671, %sw.bb25.i.i ], [ 1519, %sw.bb24.i.i ], [ 1515, %sw.bb23.i.i ], [ %670, %sw.bb19.i.i ], [ %669, %sw.bb16.i.i ], [ %668, %sw.bb13.i.i ], [ %667, %sw.bb10.i.i ], [ %666, %sw.bb7.i.i ], [ %665, %sw.bb4.i.i ], [ %664, %sw.bb.i484.i ], [ 1499, %if.then699.i ] + %a1.0.i.i = phi i64 [ %661, %if.then94.i.i ], [ %661, %if.then99.i.i ], [ 0, %sw.bb81.i.i ], [ %662, %sw.bb77.i.i ], [ %662, %sw.bb73.i.i ], [ %661, %sw.bb70.i.i ], [ %661, %sw.bb67.i.i ], [ %661, %sw.bb64.i.i ], [ %661, %sw.bb61.i.i ], [ %661, %sw.bb58.i.i ], [ %661, %sw.bb55.i.i ], [ %661, %sw.bb52.i.i ], [ %661, %sw.bb49.i.i ], [ %661, %sw.bb46.i.i ], [ %661, %sw.bb43.i.i ], [ %661, %sw.bb40.i.i ], [ %661, %sw.bb37.i.i ], [ %661, %sw.bb34.i.i ], [ %661, %sw.bb31.i.i ], [ %661, %sw.bb28.i.i ], [ %661, %sw.bb25.i.i ], [ %661, %sw.bb24.i.i ], [ %661, %sw.bb23.i.i ], [ %661, %sw.bb19.i.i ], [ %661, %sw.bb16.i.i ], [ %661, %sw.bb13.i.i ], [ %661, %sw.bb10.i.i ], [ %661, %sw.bb7.i.i ], [ %661, %sw.bb4.i.i ], [ %661, %sw.bb.i484.i ], [ %661, %if.then699.i ] + %a2.0.i.i = phi i64 [ %662, %if.then94.i.i ], [ %662, %if.then99.i.i ], [ %661, %sw.bb81.i.i ], [ %689, %sw.bb77.i.i ], [ %687, %sw.bb73.i.i ], [ %662, %sw.bb70.i.i ], [ %662, %sw.bb67.i.i ], [ %662, %sw.bb64.i.i ], [ %662, %sw.bb61.i.i ], [ %662, %sw.bb58.i.i ], [ %662, %sw.bb55.i.i ], [ %662, %sw.bb52.i.i ], [ %662, %sw.bb49.i.i ], [ %662, %sw.bb46.i.i ], [ %662, %sw.bb43.i.i ], [ %662, %sw.bb40.i.i ], [ %662, %sw.bb37.i.i ], [ %662, %sw.bb34.i.i ], [ %662, %sw.bb31.i.i ], [ %662, %sw.bb28.i.i ], [ %662, %sw.bb25.i.i ], [ %662, %sw.bb24.i.i ], [ %662, %sw.bb23.i.i ], [ %662, %sw.bb19.i.i ], [ %662, %sw.bb16.i.i ], [ %662, %sw.bb13.i.i ], [ %662, %sw.bb10.i.i ], [ %662, %sw.bb7.i.i ], [ %662, %sw.bb4.i.i ], [ %662, %sw.bb.i484.i ], [ %662, %if.then699.i ] + %insn.0.i.i = phi i32 [ %692, %if.then94.i.i ], [ %693, %if.then99.i.i ], [ %690, %sw.bb81.i.i ], [ %688, %sw.bb77.i.i ], [ %686, %sw.bb73.i.i ], [ %685, %sw.bb70.i.i ], [ %684, %sw.bb67.i.i ], [ %683, %sw.bb64.i.i ], [ %682, %sw.bb61.i.i ], [ %681, %sw.bb58.i.i ], [ %680, %sw.bb55.i.i ], [ %679, %sw.bb52.i.i ], [ %678, %sw.bb49.i.i ], [ %677, %sw.bb46.i.i ], [ %676, %sw.bb43.i.i ], [ %675, %sw.bb40.i.i ], [ %674, %sw.bb37.i.i ], [ %673, %sw.bb34.i.i ], [ %672, %sw.bb31.i.i ], [ %671, %sw.bb28.i.i ], [ %670, %sw.bb25.i.i ], [ 1519, %sw.bb24.i.i ], [ 1515, %sw.bb23.i.i ], [ %669, %sw.bb19.i.i ], [ %668, %sw.bb16.i.i ], [ %667, %sw.bb13.i.i ], [ %666, %sw.bb10.i.i ], [ %665, %sw.bb7.i.i ], [ %664, %sw.bb4.i.i ], [ %663, %sw.bb.i484.i ], [ 1499, %if.then699.i ] %cmp.i482.i = icmp ne i32 %insn.0.i.i, 267 tail call void @llvm.assume(i1 %cmp.i482.i) %cmp84.i.i = icmp eq i32 %add.i.i460, 5 %or.i.i463 = or i32 %insn.0.i.i, 524288 %spec.select.i.i = select i1 %cmp84.i.i, i32 %or.i.i463, i32 %insn.0.i.i - %conv.i483.i = trunc i64 %661 to i32 + %conv.i483.i = trunc i64 %660 to i32 %conv87.i.i = trunc i64 %a1.0.i.i to i32 %conv88.i.i = trunc i64 %a2.0.i.i to i32 tail call fastcc void @tcg_out_vex_modrm(ptr noundef %s, i32 noundef %spec.select.i.i, i32 noundef %conv.i483.i, i32 noundef %conv87.i.i, i32 noundef %conv88.i.i) br label %sw.epilog715.i sw.bb89.i.i: ; preds = %if.then699.i - %692 = load i64, ptr %arrayidx229.i.i, align 8 - %conv91.i.i = trunc i64 %692 to i32 + %691 = load i64, ptr %arrayidx229.i.i, align 8 + %conv91.i.i = trunc i64 %691 to i32 switch i32 %conv91.i.i, label %do.body103.i.i [ i32 8, label %if.then94.i.i i32 11, label %if.then99.i.i @@ -11821,13 +11819,13 @@ sw.bb89.i.i: ; preds = %if.then699.i if.then94.i.i: ; preds = %sw.bb89.i.i %idxprom95.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx96.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.cmpeq_insn, i64 0, i64 %idxprom95.i.i - %693 = load i32, ptr %arrayidx96.i.i, align 4 + %692 = load i32, ptr %arrayidx96.i.i, align 4 br label %do.body.i481.i if.then99.i.i: ; preds = %sw.bb89.i.i %idxprom100.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx101.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.cmpgt_insn, i64 0, i64 %idxprom100.i.i - %694 = load i32, ptr %arrayidx101.i.i, align 4 + %693 = load i32, ptr %arrayidx101.i.i, align 4 br label %do.body.i481.i do.body103.i.i: ; preds = %sw.bb89.i.i @@ -11837,22 +11835,22 @@ do.body103.i.i: ; preds = %sw.bb89.i.i sw.bb107.i.i: ; preds = %if.then699.i %cmp108.i.i = icmp eq i32 %add.i.i460, 5 %spec.select123.i.i = select i1 %cmp108.i.i, i32 525791, i32 1503 - %conv113.i.i = trunc i64 %661 to i32 - %conv114.i.i = trunc i64 %663 to i32 - %conv115.i.i = trunc i64 %662 to i32 + %conv113.i.i = trunc i64 %660 to i32 + %conv114.i.i = trunc i64 %662 to i32 + %conv115.i.i = trunc i64 %661 to i32 tail call fastcc void @tcg_out_vex_modrm(ptr noundef %s, i32 noundef %spec.select123.i.i, i32 noundef %conv113.i.i, i32 noundef %conv114.i.i, i32 noundef %conv115.i.i) br label %sw.epilog715.i sw.bb116.i.i: ; preds = %if.then699.i %idxprom117.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx118.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.shift_imm_insn, i64 0, i64 %idxprom117.i.i - %695 = load i32, ptr %arrayidx118.i.i, align 4 + %694 = load i32, ptr %arrayidx118.i.i, align 4 br label %do.body136.i.i sw.bb119.i.i: ; preds = %if.then699.i %idxprom120.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx121.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.shift_imm_insn, i64 0, i64 %idxprom120.i.i - %696 = load i32, ptr %arrayidx121.i.i, align 4 + %695 = load i32, ptr %arrayidx121.i.i, align 4 br label %do.body136.i.i sw.bb122.i.i: ; preds = %if.then699.i @@ -11862,7 +11860,7 @@ sw.bb122.i.i: ; preds = %if.then699.i if.else126.i.i: ; preds = %sw.bb122.i.i %idxprom127.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx128.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.shift_imm_insn, i64 0, i64 %idxprom127.i.i - %697 = load i32, ptr %arrayidx128.i.i, align 4 + %696 = load i32, ptr %arrayidx128.i.i, align 4 br label %do.body136.i.i sw.bb130.i.i: ; preds = %if.then699.i @@ -11872,43 +11870,43 @@ sw.bb130.i.i: ; preds = %if.then699.i do.body136.i.i: ; preds = %sw.bb130.i.i, %if.else126.i.i, %sw.bb122.i.i, %sw.bb119.i.i, %sw.bb116.i.i %sub.0.i.i = phi i32 [ 1, %sw.bb130.i.i ], [ 2, %sw.bb119.i.i ], [ 6, %sw.bb116.i.i ], [ 4, %sw.bb122.i.i ], [ 4, %if.else126.i.i ] - %insn.5.i.i = phi i32 [ %spec.select124.i.i, %sw.bb130.i.i ], [ %696, %sw.bb119.i.i ], [ %695, %sw.bb116.i.i ], [ 1054066, %sw.bb122.i.i ], [ %697, %if.else126.i.i ] + %insn.5.i.i = phi i32 [ %spec.select124.i.i, %sw.bb130.i.i ], [ %695, %sw.bb119.i.i ], [ %694, %sw.bb116.i.i ], [ 1054066, %sw.bb122.i.i ], [ %696, %if.else126.i.i ] %cmp137.i.i = icmp ugt i32 %bf.load637.i, 16777215 tail call void @llvm.assume(i1 %cmp137.i.i) %cmp142.i.i = icmp eq i32 %add.i.i460, 5 %or145.i.i = or i32 %insn.5.i.i, 524288 %spec.select125.i.i = select i1 %cmp142.i.i, i32 %or145.i.i, i32 %insn.5.i.i - %conv147.i.i = trunc i64 %661 to i32 - %conv148.i.i = trunc i64 %662 to i32 + %conv147.i.i = trunc i64 %660 to i32 + %conv148.i.i = trunc i64 %661 to i32 tail call fastcc void @tcg_out_vex_modrm(ptr noundef %s, i32 noundef %spec.select125.i.i, i32 noundef %sub.0.i.i, i32 noundef %conv147.i.i, i32 noundef %conv148.i.i) - %conv149.i.i = trunc i64 %663 to i8 - %698 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i.i462 = getelementptr i8, ptr %698, i64 1 + %conv149.i.i = trunc i64 %662 to i8 + %697 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i.i462 = getelementptr i8, ptr %697, i64 1 store ptr %incdec.ptr.i.i.i462, ptr %code_ptr, align 8 - store i8 %conv149.i.i, ptr %698, align 1 + store i8 %conv149.i.i, ptr %697, align 1 br label %sw.epilog715.i sw.bb150.i.i: ; preds = %if.then699.i - %conv151.i.i = trunc i64 %661 to i32 - %conv152.i.i = trunc i64 %662 to i32 - tail call fastcc void @tcg_out_ld(ptr noundef %s, i32 noundef %add.i.i460, i32 noundef %conv151.i.i, i32 noundef %conv152.i.i, i64 noundef %663) + %conv151.i.i = trunc i64 %660 to i32 + %conv152.i.i = trunc i64 %661 to i32 + tail call fastcc void @tcg_out_ld(ptr noundef %s, i32 noundef %add.i.i460, i32 noundef %conv151.i.i, i32 noundef %conv152.i.i, i64 noundef %662) br label %sw.epilog715.i sw.bb153.i.i: ; preds = %if.then699.i - %conv154.i.i = trunc i64 %661 to i32 - %conv155.i.i = trunc i64 %662 to i32 - tail call fastcc void @tcg_out_st(ptr noundef %s, i32 noundef %add.i.i460, i32 noundef %conv154.i.i, i32 noundef %conv155.i.i, i64 noundef %663) + %conv154.i.i = trunc i64 %660 to i32 + %conv155.i.i = trunc i64 %661 to i32 + tail call fastcc void @tcg_out_st(ptr noundef %s, i32 noundef %add.i.i460, i32 noundef %conv154.i.i, i32 noundef %conv155.i.i, i64 noundef %662) br label %sw.epilog715.i sw.bb156.i.i: ; preds = %if.then699.i - %conv157.i.i = trunc i64 %661 to i32 - %conv158.i.i = trunc i64 %662 to i32 - tail call fastcc void @tcg_out_dupm_vec(ptr noundef %s, i32 noundef %add.i.i460, i32 noundef %bf.lshr706.i, i32 noundef %conv157.i.i, i32 noundef %conv158.i.i, i64 noundef %663) + %conv157.i.i = trunc i64 %660 to i32 + %conv158.i.i = trunc i64 %661 to i32 + tail call fastcc void @tcg_out_dupm_vec(ptr noundef %s, i32 noundef %add.i.i460, i32 noundef %bf.lshr706.i, i32 noundef %conv157.i.i, i32 noundef %conv158.i.i, i64 noundef %662) br label %sw.epilog715.i sw.bb159.i.i: ; preds = %if.then699.i - %699 = load i64, ptr %arrayidx229.i.i, align 8 - %conv161.i.i = trunc i64 %699 to i8 + %698 = load i64, ptr %arrayidx229.i.i, align 8 + %conv161.i.i = trunc i64 %698 to i8 br label %do.body205.i.i sw.bb162.i.i: ; preds = %if.then699.i @@ -11919,8 +11917,8 @@ sw.bb162.i.i: ; preds = %if.then699.i ] if.then169.i.i: ; preds = %sw.bb162.i.i - %700 = load i32, ptr @cpuinfo, align 4 - %and.i478.i = and i32 %700, 1024 + %699 = load i32, ptr @cpuinfo, align 4 + %and.i478.i = and i32 %699, 1024 %tobool.not.i479.i = icmp eq i32 %and.i478.i, 0 %cond.i480.i = select i1 %tobool.not.i479.i, i32 66572, i32 66562 br label %if.end174.i.i @@ -11931,21 +11929,21 @@ do.body171.i.i: ; preds = %sw.bb162.i.i if.end174.i.i: ; preds = %if.then169.i.i, %sw.bb162.i.i %insn.7.i.i = phi i32 [ %cond.i480.i, %if.then169.i.i ], [ 66574, %sw.bb162.i.i ] - %701 = load i64, ptr %arrayidx229.i.i, align 8 - %conv176.i.i = trunc i64 %701 to i8 + %700 = load i64, ptr %arrayidx229.i.i, align 8 + %conv176.i.i = trunc i64 %700 to i8 br label %do.body205.i.i sw.bb177.i.i: ; preds = %if.then699.i - %702 = load i64, ptr %arrayidx229.i.i, align 8 - %conv179.i.i = trunc i64 %702 to i8 + %701 = load i64, ptr %arrayidx229.i.i, align 8 + %conv179.i.i = trunc i64 %701 to i8 br label %do.body205.i.i sw.bb180.i.i: ; preds = %if.then699.i %idxprom181.i.i = zext nneg i32 %bf.lshr706.i to i64 %arrayidx182.i.i = getelementptr [4 x i32], ptr @tcg_out_vec_op.vpshldi_insn, i64 0, i64 %idxprom181.i.i - %703 = load i32, ptr %arrayidx182.i.i, align 4 - %704 = load i64, ptr %arrayidx229.i.i, align 8 - %conv184.i.i = trunc i64 %704 to i8 + %702 = load i32, ptr %arrayidx182.i.i, align 4 + %703 = load i64, ptr %arrayidx229.i.i, align 8 + %conv184.i.i = trunc i64 %703 to i8 br label %do.body205.i.i sw.bb186.i.i: ; preds = %if.then699.i @@ -11961,72 +11959,72 @@ sw.bb189.i.i: ; preds = %if.then699.i br label %do.body205.i.i sw.bb190.i.i: ; preds = %if.then699.i - %705 = load i64, ptr %arrayidx229.i.i, align 8 - %cmp192.i.i = icmp eq i64 %661, %662 + %704 = load i64, ptr %arrayidx229.i.i, align 8 + %cmp192.i.i = icmp eq i64 %660, %661 br i1 %cmp192.i.i, label %do.body205.i.i, label %if.else195.i.i if.else195.i.i: ; preds = %sw.bb190.i.i - %cmp196.i.i = icmp eq i64 %661, %663 + %cmp196.i.i = icmp eq i64 %660, %662 br i1 %cmp196.i.i, label %do.body205.i.i, label %if.else199.i.i if.else199.i.i: ; preds = %if.else195.i.i - %conv200.i.i = trunc i64 %661 to i32 - %conv201.i.i = trunc i64 %705 to i32 + %conv200.i.i = trunc i64 %660 to i32 + %conv201.i.i = trunc i64 %704 to i32 tail call fastcc void @tcg_out_mov(ptr noundef %s, i32 noundef %add.i.i460, i32 noundef %conv200.i.i, i32 noundef %conv201.i.i) br label %do.body205.i.i do.body205.i.i: ; preds = %if.else199.i.i, %if.else195.i.i, %sw.bb190.i.i, %sw.bb189.i.i, %sw.bb188.i.i, %sw.bb187.i.i, %sw.bb186.i.i, %sw.bb180.i.i, %sw.bb177.i.i, %if.end174.i.i, %sw.bb159.i.i, %if.then699.i %sub.1.i.i = phi i8 [ -72, %if.else199.i.i ], [ -35, %sw.bb189.i.i ], [ -103, %sw.bb188.i.i ], [ 119, %sw.bb187.i.i ], [ 17, %sw.bb186.i.i ], [ %conv184.i.i, %sw.bb180.i.i ], [ %conv179.i.i, %sw.bb177.i.i ], [ %conv176.i.i, %if.end174.i.i ], [ %conv161.i.i, %sw.bb159.i.i ], [ 51, %if.then699.i ], [ -54, %sw.bb190.i.i ], [ -30, %if.else195.i.i ] - %a1.1.i.i = phi i64 [ %662, %if.else199.i.i ], [ %662, %sw.bb189.i.i ], [ %662, %sw.bb188.i.i ], [ %662, %sw.bb187.i.i ], [ %662, %sw.bb186.i.i ], [ %662, %sw.bb180.i.i ], [ %662, %sw.bb177.i.i ], [ %662, %if.end174.i.i ], [ %662, %sw.bb159.i.i ], [ %662, %if.then699.i ], [ %663, %sw.bb190.i.i ], [ %662, %if.else195.i.i ] - %a2.1.i.i = phi i64 [ %663, %if.else199.i.i ], [ %663, %sw.bb189.i.i ], [ %663, %sw.bb188.i.i ], [ %663, %sw.bb187.i.i ], [ %663, %sw.bb186.i.i ], [ %663, %sw.bb180.i.i ], [ %663, %sw.bb177.i.i ], [ %663, %if.end174.i.i ], [ %663, %sw.bb159.i.i ], [ %662, %if.then699.i ], [ %705, %sw.bb190.i.i ], [ %705, %if.else195.i.i ] - %insn.8.i.i = phi i32 [ 1119269, %if.else199.i.i ], [ 1119269, %sw.bb189.i.i ], [ 1119269, %sw.bb188.i.i ], [ 1119269, %sw.bb187.i.i ], [ 1119269, %sw.bb186.i.i ], [ %703, %sw.bb180.i.i ], [ 590918, %sw.bb177.i.i ], [ %insn.7.i.i, %if.end174.i.i ], [ 454, %sw.bb159.i.i ], [ 1119269, %if.then699.i ], [ 1119269, %sw.bb190.i.i ], [ 1119269, %if.else195.i.i ] + %a1.1.i.i = phi i64 [ %661, %if.else199.i.i ], [ %661, %sw.bb189.i.i ], [ %661, %sw.bb188.i.i ], [ %661, %sw.bb187.i.i ], [ %661, %sw.bb186.i.i ], [ %661, %sw.bb180.i.i ], [ %661, %sw.bb177.i.i ], [ %661, %if.end174.i.i ], [ %661, %sw.bb159.i.i ], [ %661, %if.then699.i ], [ %662, %sw.bb190.i.i ], [ %661, %if.else195.i.i ] + %a2.1.i.i = phi i64 [ %662, %if.else199.i.i ], [ %662, %sw.bb189.i.i ], [ %662, %sw.bb188.i.i ], [ %662, %sw.bb187.i.i ], [ %662, %sw.bb186.i.i ], [ %662, %sw.bb180.i.i ], [ %662, %sw.bb177.i.i ], [ %662, %if.end174.i.i ], [ %662, %sw.bb159.i.i ], [ %661, %if.then699.i ], [ %704, %sw.bb190.i.i ], [ %704, %if.else195.i.i ] + %insn.8.i.i = phi i32 [ 1119269, %if.else199.i.i ], [ 1119269, %sw.bb189.i.i ], [ 1119269, %sw.bb188.i.i ], [ 1119269, %sw.bb187.i.i ], [ 1119269, %sw.bb186.i.i ], [ %702, %sw.bb180.i.i ], [ 590918, %sw.bb177.i.i ], [ %insn.7.i.i, %if.end174.i.i ], [ 454, %sw.bb159.i.i ], [ 1119269, %if.then699.i ], [ 1119269, %sw.bb190.i.i ], [ 1119269, %if.else195.i.i ] %cmp206.i.i = icmp ne i32 %insn.8.i.i, 267 tail call void @llvm.assume(i1 %cmp206.i.i) %cmp211.i.i = icmp eq i32 %add.i.i460, 5 %or214.i.i = or i32 %insn.8.i.i, 524288 %spec.select126.i.i = select i1 %cmp211.i.i, i32 %or214.i.i, i32 %insn.8.i.i - %conv216.i.i = trunc i64 %661 to i32 + %conv216.i.i = trunc i64 %660 to i32 %conv217.i.i = trunc i64 %a1.1.i.i to i32 %conv218.i.i = trunc i64 %a2.1.i.i to i32 tail call fastcc void @tcg_out_vex_modrm(ptr noundef %s, i32 noundef %spec.select126.i.i, i32 noundef %conv216.i.i, i32 noundef %conv217.i.i, i32 noundef %conv218.i.i) - %706 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i129.i.i = getelementptr i8, ptr %706, i64 1 + %705 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i129.i.i = getelementptr i8, ptr %705, i64 1 store ptr %incdec.ptr.i129.i.i, ptr %code_ptr, align 8 - store i8 %sub.1.i.i, ptr %706, align 1 + store i8 %sub.1.i.i, ptr %705, align 1 br label %sw.epilog715.i sw.bb220.i.i: ; preds = %if.then699.i %cmp221.i.i = icmp eq i32 %add.i.i460, 5 %spec.select127.i.i = select i1 %cmp221.i.i, i32 590924, i32 66636 - %conv226.i.i = trunc i64 %661 to i32 - %conv227.i.i = trunc i64 %662 to i32 - %conv228.i.i = trunc i64 %663 to i32 + %conv226.i.i = trunc i64 %660 to i32 + %conv227.i.i = trunc i64 %661 to i32 + %conv228.i.i = trunc i64 %662 to i32 tail call fastcc void @tcg_out_vex_modrm(ptr noundef %s, i32 noundef %spec.select127.i.i, i32 noundef %conv226.i.i, i32 noundef %conv227.i.i, i32 noundef %conv228.i.i) - %707 = load i64, ptr %arrayidx229.i.i, align 8 - %.tr.i.i = trunc i64 %707 to i8 + %706 = load i64, ptr %arrayidx229.i.i, align 8 + %.tr.i.i = trunc i64 %706 to i8 %conv230.i.i = shl i8 %.tr.i.i, 4 - %708 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i131.i.i = getelementptr i8, ptr %708, i64 1 + %707 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i131.i.i = getelementptr i8, ptr %707, i64 1 store ptr %incdec.ptr.i131.i.i, ptr %code_ptr, align 8 - store i8 %conv230.i.i, ptr %708, align 1 + store i8 %conv230.i.i, ptr %707, align 1 br label %sw.epilog715.i sw.bb231.i.i: ; preds = %if.then699.i - %conv232.i.i = trunc i64 %661 to i32 - %conv233.i.i = trunc i64 %662 to i32 + %conv232.i.i = trunc i64 %660 to i32 + %conv233.i.i = trunc i64 %661 to i32 tail call fastcc void @tcg_out_vex_opc(ptr noundef %s, i32 noundef 1395, i32 noundef 3, i32 noundef %conv232.i.i, i32 noundef %conv233.i.i, i32 noundef 0) - %709 = trunc i64 %662 to i8 - %710 = and i8 %709, 7 - %conv.i.i475.i = or disjoint i8 %710, -40 - %711 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i.i477.i = getelementptr i8, ptr %711, i64 1 + %708 = trunc i64 %661 to i8 + %709 = and i8 %708, 7 + %conv.i.i475.i = or disjoint i8 %709, -40 + %710 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i.i477.i = getelementptr i8, ptr %710, i64 1 store ptr %incdec.ptr.i.i.i477.i, ptr %code_ptr, align 8 - store i8 %conv.i.i475.i, ptr %711, align 1 - %conv234.i.i = trunc i64 %663 to i8 - %712 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i133.i.i = getelementptr i8, ptr %712, i64 1 + store i8 %conv.i.i475.i, ptr %710, align 1 + %conv234.i.i = trunc i64 %662 to i8 + %711 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i133.i.i = getelementptr i8, ptr %711, i64 1 store ptr %incdec.ptr.i133.i.i, ptr %code_ptr, align 8 - store i8 %conv234.i.i, ptr %712, align 1 + store i8 %conv234.i.i, ptr %711, align 1 br label %sw.epilog715.i do.body236.i.i: ; preds = %if.then699.i @@ -12034,10 +12032,10 @@ do.body236.i.i: ; preds = %if.then699.i unreachable if.else709.i: ; preds = %sw.default694.i - %713 = load i64, ptr %new_args.i, align 16 - %714 = load i64, ptr %arrayidx692.i, align 8 - %715 = load i64, ptr %arrayidx2.i.i, align 16 - %716 = load i32, ptr %arrayidx3.i488.i, align 8 + %712 = load i64, ptr %new_args.i, align 16 + %713 = load i64, ptr %arrayidx692.i, align 8 + %714 = load i64, ptr %arrayidx2.i.i, align 16 + %715 = load i32, ptr %arrayidx3.i488.i, align 8 switch i8 %trunc.i451, label %do.body523.i.i [ i8 -124, label %sw.bb.i529.i i8 3, label %sw.bb4.i528.i @@ -12149,8 +12147,8 @@ entry.do.body465_crit_edge.i.i: ; preds = %if.else709.i br label %do.body465.i.i sw.bb.i529.i: ; preds = %if.else709.i - %717 = and i64 %713, 8 - %tobool34.not.i.i530.i = icmp eq i64 %717, 0 + %716 = and i64 %712, 8 + %tobool34.not.i.i530.i = icmp eq i64 %716, 0 %.pre808 = load ptr, ptr %code_ptr, align 8 br i1 %tobool34.not.i.i530.i, label %tcg_out_opc.exit.i.i, label %if.then35.i.i531.i @@ -12162,28 +12160,28 @@ if.then35.i.i531.i: ; preds = %sw.bb.i529.i br label %tcg_out_opc.exit.i.i tcg_out_opc.exit.i.i: ; preds = %if.then35.i.i531.i, %sw.bb.i529.i - %718 = phi ptr [ %.pre807, %if.then35.i.i531.i ], [ %.pre808, %sw.bb.i529.i ] - %incdec.ptr.i45.i.i535.i = getelementptr i8, ptr %718, i64 1 + %717 = phi ptr [ %.pre807, %if.then35.i.i531.i ], [ %.pre808, %sw.bb.i529.i ] + %incdec.ptr.i45.i.i535.i = getelementptr i8, ptr %717, i64 1 store ptr %incdec.ptr.i45.i.i535.i, ptr %code_ptr, align 8 - store i8 -1, ptr %718, align 1 - %719 = trunc i64 %713 to i8 - %720 = and i8 %719, 7 - %conv.i.i536.i = or disjoint i8 %720, -32 - %721 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i.i537.i = getelementptr i8, ptr %721, i64 1 + store i8 -1, ptr %717, align 1 + %718 = trunc i64 %712 to i8 + %719 = and i8 %718, 7 + %conv.i.i536.i = or disjoint i8 %719, -32 + %720 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i.i537.i = getelementptr i8, ptr %720, i64 1 store ptr %incdec.ptr.i.i.i537.i, ptr %code_ptr, align 8 - store i8 %conv.i.i536.i, ptr %721, align 1 + store i8 %conv.i.i536.i, ptr %720, align 1 br label %sw.epilog715.i sw.bb4.i528.i: ; preds = %if.else709.i - %722 = inttoptr i64 %713 to ptr - tail call fastcc void @tcg_out_jxx(ptr noundef %s, i32 noundef -1, ptr noundef %722, i1 noundef zeroext false) + %721 = inttoptr i64 %712 to ptr + tail call fastcc void @tcg_out_jxx(ptr noundef %s, i32 noundef -1, ptr noundef %721, i1 noundef zeroext false) br label %sw.epilog715.i sw.bb6.i.i472: ; preds = %if.else709.i, %if.else709.i - %conv7.i.i = trunc i64 %713 to i32 - %conv8.i.i = trunc i64 %714 to i32 - tail call fastcc void @tcg_out_modrm_offset(ptr noundef %s, i32 noundef 438, i32 noundef %conv7.i.i, i32 noundef %conv8.i.i, i64 noundef %715) + %conv7.i.i = trunc i64 %712 to i32 + %conv8.i.i = trunc i64 %713 to i32 + tail call fastcc void @tcg_out_modrm_offset(ptr noundef %s, i32 noundef 438, i32 noundef %conv7.i.i, i32 noundef %conv8.i.i, i64 noundef %714) br label %sw.epilog715.i sw.bb9.i.i: ; preds = %if.else709.i @@ -12191,15 +12189,15 @@ sw.bb9.i.i: ; preds = %if.else709.i sw.bb10.i527.i: ; preds = %sw.bb9.i.i, %if.else709.i %rexw.0.i.i = phi i32 [ 446, %if.else709.i ], [ 4542, %sw.bb9.i.i ] - %conv11.i.i = trunc i64 %713 to i32 - %conv12.i.i = trunc i64 %714 to i32 - tail call fastcc void @tcg_out_modrm_offset(ptr noundef %s, i32 noundef %rexw.0.i.i, i32 noundef %conv11.i.i, i32 noundef %conv12.i.i, i64 noundef %715) + %conv11.i.i = trunc i64 %712 to i32 + %conv12.i.i = trunc i64 %713 to i32 + tail call fastcc void @tcg_out_modrm_offset(ptr noundef %s, i32 noundef %rexw.0.i.i, i32 noundef %conv11.i.i, i32 noundef %conv12.i.i, i64 noundef %714) br label %sw.epilog715.i sw.bb14.i.i: ; preds = %if.else709.i, %if.else709.i - %conv15.i.i = trunc i64 %713 to i32 - %conv16.i.i = trunc i64 %714 to i32 - tail call fastcc void @tcg_out_modrm_offset(ptr noundef %s, i32 noundef 439, i32 noundef %conv15.i.i, i32 noundef %conv16.i.i, i64 noundef %715) + %conv15.i.i = trunc i64 %712 to i32 + %conv16.i.i = trunc i64 %713 to i32 + tail call fastcc void @tcg_out_modrm_offset(ptr noundef %s, i32 noundef 439, i32 noundef %conv15.i.i, i32 noundef %conv16.i.i, i64 noundef %714) br label %sw.epilog715.i sw.bb17.i.i: ; preds = %if.else709.i @@ -12207,78 +12205,78 @@ sw.bb17.i.i: ; preds = %if.else709.i sw.bb18.i.i: ; preds = %sw.bb17.i.i, %if.else709.i %rexw.1.i.i = phi i32 [ 447, %if.else709.i ], [ 4543, %sw.bb17.i.i ] - %conv20.i.i = trunc i64 %713 to i32 - %conv21.i.i = trunc i64 %714 to i32 - tail call fastcc void @tcg_out_modrm_offset(ptr noundef %s, i32 noundef %rexw.1.i.i, i32 noundef %conv20.i.i, i32 noundef %conv21.i.i, i64 noundef %715) + %conv20.i.i = trunc i64 %712 to i32 + %conv21.i.i = trunc i64 %713 to i32 + tail call fastcc void @tcg_out_modrm_offset(ptr noundef %s, i32 noundef %rexw.1.i.i, i32 noundef %conv20.i.i, i32 noundef %conv21.i.i, i64 noundef %714) br label %sw.epilog715.i sw.bb22.i.i: ; preds = %if.else709.i, %if.else709.i - %conv23.i.i = trunc i64 %713 to i32 - %conv24.i.i = trunc i64 %714 to i32 - tail call fastcc void @tcg_out_ld(ptr noundef %s, i32 noundef 0, i32 noundef %conv23.i.i, i32 noundef %conv24.i.i, i64 noundef %715) + %conv23.i.i = trunc i64 %712 to i32 + %conv24.i.i = trunc i64 %713 to i32 + tail call fastcc void @tcg_out_ld(ptr noundef %s, i32 noundef 0, i32 noundef %conv23.i.i, i32 noundef %conv24.i.i, i64 noundef %714) br label %sw.epilog715.i sw.bb26.i.i: ; preds = %if.else709.i, %if.else709.i - %723 = load i32, ptr %const_args.i, align 16 - %tobool.not.i522.i = icmp eq i32 %723, 0 + %722 = load i32, ptr %const_args.i, align 16 + %tobool.not.i522.i = icmp eq i32 %722, 0 br i1 %tobool.not.i522.i, label %if.else.i526.i, label %if.then.i523.i if.then.i523.i: ; preds = %sw.bb26.i.i - %conv28.i.i = trunc i64 %714 to i32 - tail call fastcc void @tcg_out_modrm_offset(ptr noundef %s, i32 noundef 198, i32 noundef 0, i32 noundef %conv28.i.i, i64 noundef %715) - %conv29.i.i = trunc i64 %713 to i8 - %724 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i525.i = getelementptr i8, ptr %724, i64 1 + %conv28.i.i = trunc i64 %713 to i32 + tail call fastcc void @tcg_out_modrm_offset(ptr noundef %s, i32 noundef 198, i32 noundef 0, i32 noundef %conv28.i.i, i64 noundef %714) + %conv29.i.i = trunc i64 %712 to i8 + %723 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i525.i = getelementptr i8, ptr %723, i64 1 store ptr %incdec.ptr.i.i525.i, ptr %code_ptr, align 8 - store i8 %conv29.i.i, ptr %724, align 1 + store i8 %conv29.i.i, ptr %723, align 1 br label %sw.epilog715.i if.else.i526.i: ; preds = %sw.bb26.i.i - %conv30.i.i = trunc i64 %713 to i32 - %conv31.i.i = trunc i64 %714 to i32 - tail call fastcc void @tcg_out_modrm_offset(ptr noundef %s, i32 noundef 8328, i32 noundef %conv30.i.i, i32 noundef %conv31.i.i, i64 noundef %715) + %conv30.i.i = trunc i64 %712 to i32 + %conv31.i.i = trunc i64 %713 to i32 + tail call fastcc void @tcg_out_modrm_offset(ptr noundef %s, i32 noundef 8328, i32 noundef %conv30.i.i, i32 noundef %conv31.i.i, i64 noundef %714) br label %sw.epilog715.i sw.bb33.i.i: ; preds = %if.else709.i, %if.else709.i - %725 = load i32, ptr %const_args.i, align 16 - %tobool35.not.i.i = icmp eq i32 %725, 0 + %724 = load i32, ptr %const_args.i, align 16 + %tobool35.not.i.i = icmp eq i32 %724, 0 br i1 %tobool35.not.i.i, label %if.else39.i.i, label %if.then36.i.i if.then36.i.i: ; preds = %sw.bb33.i.i - %conv37.i.i = trunc i64 %714 to i32 - tail call fastcc void @tcg_out_modrm_offset(ptr noundef %s, i32 noundef 1223, i32 noundef 0, i32 noundef %conv37.i.i, i64 noundef %715) - %conv38.i.i = trunc i64 %713 to i16 - %726 = load ptr, ptr %code_ptr, align 8 - store i16 %conv38.i.i, ptr %726, align 1 - %add.ptr.i.i.i471 = getelementptr i8, ptr %726, i64 2 + %conv37.i.i = trunc i64 %713 to i32 + tail call fastcc void @tcg_out_modrm_offset(ptr noundef %s, i32 noundef 1223, i32 noundef 0, i32 noundef %conv37.i.i, i64 noundef %714) + %conv38.i.i = trunc i64 %712 to i16 + %725 = load ptr, ptr %code_ptr, align 8 + store i16 %conv38.i.i, ptr %725, align 1 + %add.ptr.i.i.i471 = getelementptr i8, ptr %725, i64 2 store ptr %add.ptr.i.i.i471, ptr %code_ptr, align 8 br label %sw.epilog715.i if.else39.i.i: ; preds = %sw.bb33.i.i - %conv40.i.i = trunc i64 %713 to i32 - %conv41.i.i = trunc i64 %714 to i32 - tail call fastcc void @tcg_out_modrm_offset(ptr noundef %s, i32 noundef 1161, i32 noundef %conv40.i.i, i32 noundef %conv41.i.i, i64 noundef %715) + %conv40.i.i = trunc i64 %712 to i32 + %conv41.i.i = trunc i64 %713 to i32 + tail call fastcc void @tcg_out_modrm_offset(ptr noundef %s, i32 noundef 1161, i32 noundef %conv40.i.i, i32 noundef %conv41.i.i, i64 noundef %714) br label %sw.epilog715.i sw.bb43.i521.i: ; preds = %if.else709.i, %if.else709.i - %727 = load i32, ptr %const_args.i, align 16 - %tobool45.not.i.i = icmp eq i32 %727, 0 + %726 = load i32, ptr %const_args.i, align 16 + %tobool45.not.i.i = icmp eq i32 %726, 0 br i1 %tobool45.not.i.i, label %if.else49.i.i, label %if.then46.i.i if.then46.i.i: ; preds = %sw.bb43.i521.i - %conv47.i.i = trunc i64 %714 to i32 - tail call fastcc void @tcg_out_modrm_offset(ptr noundef %s, i32 noundef 199, i32 noundef 0, i32 noundef %conv47.i.i, i64 noundef %715) - %conv48.i.i = trunc i64 %713 to i32 - %728 = load ptr, ptr %code_ptr, align 8 - store i32 %conv48.i.i, ptr %728, align 1 - %add.ptr.i397.i.i = getelementptr i8, ptr %728, i64 4 + %conv47.i.i = trunc i64 %713 to i32 + tail call fastcc void @tcg_out_modrm_offset(ptr noundef %s, i32 noundef 199, i32 noundef 0, i32 noundef %conv47.i.i, i64 noundef %714) + %conv48.i.i = trunc i64 %712 to i32 + %727 = load ptr, ptr %code_ptr, align 8 + store i32 %conv48.i.i, ptr %727, align 1 + %add.ptr.i397.i.i = getelementptr i8, ptr %727, i64 4 store ptr %add.ptr.i397.i.i, ptr %code_ptr, align 8 br label %sw.epilog715.i if.else49.i.i: ; preds = %sw.bb43.i521.i - %conv50.i.i = trunc i64 %713 to i32 - %conv51.i.i = trunc i64 %714 to i32 - tail call fastcc void @tcg_out_st(ptr noundef %s, i32 noundef 0, i32 noundef %conv50.i.i, i32 noundef %conv51.i.i, i64 noundef %715) + %conv50.i.i = trunc i64 %712 to i32 + %conv51.i.i = trunc i64 %713 to i32 + tail call fastcc void @tcg_out_st(ptr noundef %s, i32 noundef 0, i32 noundef %conv50.i.i, i32 noundef %conv51.i.i, i64 noundef %714) br label %sw.epilog715.i sw.bb53.i.i: ; preds = %if.else709.i @@ -12286,29 +12284,29 @@ sw.bb53.i.i: ; preds = %if.else709.i sw.bb54.i.i: ; preds = %sw.bb53.i.i, %if.else709.i %rexw.2.i.i = phi i32 [ 0, %if.else709.i ], [ 4096, %sw.bb53.i.i ] - %cmp.not.i519.i = icmp eq i64 %713, %714 + %cmp.not.i519.i = icmp eq i64 %712, %713 br i1 %cmp.not.i519.i, label %gen_arith.i.i, label %if.then56.i.i if.then56.i.i: ; preds = %sw.bb54.i.i - %tobool57.not.i.i = icmp eq i32 %716, 0 + %tobool57.not.i.i = icmp eq i32 %715, 0 br i1 %tobool57.not.i.i, label %if.else59.i.i, label %if.end67.i.i if.else59.i.i: ; preds = %if.then56.i.i - %cmp60.i.i = icmp eq i64 %713, %715 + %cmp60.i.i = icmp eq i64 %712, %714 br i1 %cmp60.i.i, label %if.then62.i.i, label %if.end67.i.i if.then62.i.i: ; preds = %if.else59.i.i - %conv64.i.i = trunc i64 %713 to i32 - %conv65.i.i = trunc i64 %714 to i32 + %conv64.i.i = trunc i64 %712 to i32 + %conv65.i.i = trunc i64 %713 to i32 tail call fastcc void @tgen_arithr(ptr noundef %s, i32 noundef %rexw.2.i.i, i32 noundef %conv64.i.i, i32 noundef %conv65.i.i) br label %sw.epilog715.i if.end67.i.i: ; preds = %if.else59.i.i, %if.then56.i.i - %c3.0.i.i = phi i64 [ 0, %if.else59.i.i ], [ %715, %if.then56.i.i ] - %a2.0.i520.i = phi i64 [ %715, %if.else59.i.i ], [ -1, %if.then56.i.i ] + %c3.0.i.i = phi i64 [ 0, %if.else59.i.i ], [ %714, %if.then56.i.i ] + %a2.0.i520.i = phi i64 [ %714, %if.else59.i.i ], [ -1, %if.then56.i.i ] %add68.i.i = or disjoint i32 %rexw.2.i.i, 141 - %conv69.i.i = trunc i64 %713 to i32 - %conv70.i.i = trunc i64 %714 to i32 + %conv69.i.i = trunc i64 %712 to i32 + %conv70.i.i = trunc i64 %713 to i32 %conv71.i.i = trunc i64 %a2.0.i520.i to i32 tail call fastcc void @tcg_out_modrm_sib_offset(ptr noundef %s, i32 noundef %add68.i.i, i32 noundef %conv69.i.i, i32 noundef %conv70.i.i, i32 noundef %conv71.i.i, i32 noundef 0, i64 noundef %c3.0.i.i) br label %sw.epilog715.i @@ -12337,17 +12335,17 @@ sw.bb80.i.i: ; preds = %if.else709.i gen_arith.i.i: ; preds = %sw.bb80.i.i, %sw.bb79.i.i, %sw.bb78.i.i, %sw.bb77.i517.i, %sw.bb76.i.i, %sw.bb75.i.i, %sw.bb73.i518.i, %sw.bb54.i.i, %if.else709.i %c.0.i.i = phi i32 [ 0, %sw.bb54.i.i ], [ 5, %sw.bb73.i518.i ], [ 5, %if.else709.i ], [ 4, %sw.bb75.i.i ], [ 4, %sw.bb76.i.i ], [ 1, %sw.bb77.i517.i ], [ 1, %sw.bb78.i.i ], [ 6, %sw.bb79.i.i ], [ 6, %sw.bb80.i.i ] %rexw.7.i.i = phi i32 [ %rexw.2.i.i, %sw.bb54.i.i ], [ 4096, %sw.bb73.i518.i ], [ 0, %if.else709.i ], [ 4096, %sw.bb75.i.i ], [ 0, %sw.bb76.i.i ], [ 4096, %sw.bb77.i517.i ], [ 0, %sw.bb78.i.i ], [ 4096, %sw.bb79.i.i ], [ 0, %sw.bb80.i.i ] - %tobool81.not.i.i = icmp eq i32 %716, 0 + %tobool81.not.i.i = icmp eq i32 %715, 0 %add86.i.i = add nuw nsw i32 %rexw.7.i.i, %c.0.i.i - %conv87.i509.i = trunc i64 %713 to i32 + %conv87.i509.i = trunc i64 %712 to i32 br i1 %tobool81.not.i.i, label %if.else85.i.i, label %if.then82.i.i if.then82.i.i: ; preds = %gen_arith.i.i - tail call fastcc void @tgen_arithi(ptr noundef %s, i32 noundef %add86.i.i, i32 noundef %conv87.i509.i, i64 noundef %715, i32 noundef 0) + tail call fastcc void @tgen_arithi(ptr noundef %s, i32 noundef %add86.i.i, i32 noundef %conv87.i509.i, i64 noundef %714, i32 noundef 0) br label %sw.epilog715.i if.else85.i.i: ; preds = %gen_arith.i.i - %conv88.i510.i = trunc i64 %715 to i32 + %conv88.i510.i = trunc i64 %714 to i32 %and.i.i511.i = and i32 %add86.i.i, -8 %and1.i398.i.i = shl nuw nsw i32 %add86.i.i, 3 %shl.i.i.i469 = and i32 %and1.i398.i.i, 56 @@ -12357,12 +12355,12 @@ if.else85.i.i: ; preds = %gen_arith.i.i %and.i.i.i512.i = shl i32 %conv87.i509.i, 3 %and1.i.i.i513.i = and i32 %conv88.i510.i, 7 %or.i.i.i514.i = or disjoint i32 %and1.i.i.i513.i, %and.i.i.i512.i - %729 = trunc i32 %or.i.i.i514.i to i8 - %conv.i.i.i515.i = or i8 %729, -64 - %730 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i.i.i516.i = getelementptr i8, ptr %730, i64 1 + %728 = trunc i32 %or.i.i.i514.i to i8 + %conv.i.i.i515.i = or i8 %728, -64 + %729 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i.i.i516.i = getelementptr i8, ptr %729, i64 1 store ptr %incdec.ptr.i.i.i.i516.i, ptr %code_ptr, align 8 - store i8 %conv.i.i.i515.i, ptr %730, align 1 + store i8 %conv.i.i.i515.i, ptr %729, align 1 br label %sw.epilog715.i sw.bb90.i.i: ; preds = %if.else709.i @@ -12371,23 +12369,23 @@ sw.bb90.i.i: ; preds = %if.else709.i sw.bb91.i.i: ; preds = %sw.bb90.i.i, %if.else709.i %tobool94.not.i.i = phi i32 [ 0, %if.else709.i ], [ 1, %sw.bb90.i.i ] %rexw.8.i.i = phi i32 [ 0, %if.else709.i ], [ 4096, %sw.bb90.i.i ] - %tobool92.not.i.i = icmp eq i32 %716, 0 + %tobool92.not.i.i = icmp eq i32 %715, 0 br i1 %tobool92.not.i.i, label %if.else100.i.i, label %if.then93.i.i if.then93.i.i: ; preds = %sw.bb91.i.i - %conv95.i.i = trunc i64 %713 to i32 - %conv96.i.i = trunc i64 %714 to i32 + %conv95.i.i = trunc i64 %712 to i32 + %conv96.i.i = trunc i64 %713 to i32 tail call fastcc void @tcg_out_mov(ptr noundef %s, i32 noundef %tobool94.not.i.i, i32 noundef %conv95.i.i, i32 noundef %conv96.i.i) %add98.i.i = or disjoint i32 %rexw.8.i.i, 4 - %not.i.i = xor i64 %715, -1 + %not.i.i = xor i64 %714, -1 tail call fastcc void @tgen_arithi(ptr noundef %s, i32 noundef %add98.i.i, i32 noundef %conv95.i.i, i64 noundef %not.i.i, i32 noundef 0) br label %sw.epilog715.i if.else100.i.i: ; preds = %sw.bb91.i.i %add101.i.i = or disjoint i32 %rexw.8.i.i, 754 - %conv102.i.i = trunc i64 %713 to i32 - %conv103.i.i = trunc i64 %715 to i32 - %conv104.i.i = trunc i64 %714 to i32 + %conv102.i.i = trunc i64 %712 to i32 + %conv103.i.i = trunc i64 %714 to i32 + %conv104.i.i = trunc i64 %713 to i32 tail call fastcc void @tcg_out_vex_modrm(ptr noundef %s, i32 noundef %add101.i.i, i32 noundef %conv102.i.i, i32 noundef %conv103.i.i, i32 noundef %conv104.i.i) br label %sw.epilog715.i @@ -12396,62 +12394,62 @@ sw.bb106.i.i: ; preds = %if.else709.i sw.bb107.i508.i: ; preds = %sw.bb106.i.i, %if.else709.i %rexw.9.i.i = phi i32 [ 0, %if.else709.i ], [ 4096, %sw.bb106.i.i ] - %tobool108.not.i.i = icmp eq i32 %716, 0 + %tobool108.not.i.i = icmp eq i32 %715, 0 br i1 %tobool108.not.i.i, label %if.else125.i.i, label %if.then109.i.i if.then109.i.i: ; preds = %sw.bb107.i508.i - %conv110.i.i = trunc i64 %715 to i32 - %conv111.i.i = trunc i64 %715 to i8 + %conv110.i.i = trunc i64 %714 to i32 + %conv111.i.i = trunc i64 %714 to i8 %conv112.i.i = sext i8 %conv111.i.i to i32 %cmp113.i.i = icmp eq i32 %conv110.i.i, %conv112.i.i - %conv117.i.i = trunc i64 %713 to i32 + %conv117.i.i = trunc i64 %712 to i32 %and.i399.i.i = shl i32 %conv117.i.i, 3 %and1.i400.i.i = and i32 %conv117.i.i, 7 %or.i401.i.i = or disjoint i32 %and1.i400.i.i, %and.i399.i.i - %731 = trunc i32 %or.i401.i.i to i8 - %conv.i402.i.i = or i8 %731, -64 + %730 = trunc i32 %or.i401.i.i to i8 + %conv.i402.i.i = or i8 %730, -64 br i1 %cmp113.i.i, label %if.then115.i.i, label %if.else120.i.i if.then115.i.i: ; preds = %if.then109.i.i %add116.i.i = or disjoint i32 %rexw.9.i.i, 107 tail call fastcc void @tcg_out_opc(ptr noundef %s, i32 noundef %add116.i.i, i32 noundef %conv117.i.i, i32 noundef %conv117.i.i, i32 noundef 0) - %732 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i404.i.i = getelementptr i8, ptr %732, i64 1 + %731 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i404.i.i = getelementptr i8, ptr %731, i64 1 store ptr %incdec.ptr.i.i404.i.i, ptr %code_ptr, align 8 - store i8 %conv.i402.i.i, ptr %732, align 1 - %733 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i406.i.i = getelementptr i8, ptr %733, i64 1 + store i8 %conv.i402.i.i, ptr %731, align 1 + %732 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i406.i.i = getelementptr i8, ptr %732, i64 1 store ptr %incdec.ptr.i406.i.i, ptr %code_ptr, align 8 - store i8 %conv111.i.i, ptr %733, align 1 + store i8 %conv111.i.i, ptr %732, align 1 br label %sw.epilog715.i if.else120.i.i: ; preds = %if.then109.i.i %add121.i.i = or disjoint i32 %rexw.9.i.i, 105 tail call fastcc void @tcg_out_opc(ptr noundef %s, i32 noundef %add121.i.i, i32 noundef %conv117.i.i, i32 noundef %conv117.i.i, i32 noundef 0) - %734 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i412.i.i = getelementptr i8, ptr %734, i64 1 + %733 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i412.i.i = getelementptr i8, ptr %733, i64 1 store ptr %incdec.ptr.i.i412.i.i, ptr %code_ptr, align 8 - store i8 %conv.i402.i.i, ptr %734, align 1 - %735 = load ptr, ptr %code_ptr, align 8 - store i32 %conv110.i.i, ptr %735, align 1 - %add.ptr.i414.i.i = getelementptr i8, ptr %735, i64 4 + store i8 %conv.i402.i.i, ptr %733, align 1 + %734 = load ptr, ptr %code_ptr, align 8 + store i32 %conv110.i.i, ptr %734, align 1 + %add.ptr.i414.i.i = getelementptr i8, ptr %734, i64 4 store ptr %add.ptr.i414.i.i, ptr %code_ptr, align 8 br label %sw.epilog715.i if.else125.i.i: ; preds = %sw.bb107.i508.i %add126.i.i = or disjoint i32 %rexw.9.i.i, 431 - %conv127.i.i = trunc i64 %713 to i32 - %conv128.i.i = trunc i64 %715 to i32 + %conv127.i.i = trunc i64 %712 to i32 + %conv128.i.i = trunc i64 %714 to i32 tail call fastcc void @tcg_out_opc(ptr noundef %s, i32 noundef %add126.i.i, i32 noundef %conv127.i.i, i32 noundef %conv128.i.i, i32 noundef 0) %and.i415.i.i = shl i32 %conv127.i.i, 3 %and1.i416.i.i = and i32 %conv128.i.i, 7 %or.i417.i.i = or disjoint i32 %and1.i416.i.i, %and.i415.i.i - %736 = trunc i32 %or.i417.i.i to i8 - %conv.i418.i.i = or i8 %736, -64 - %737 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i420.i.i = getelementptr i8, ptr %737, i64 1 + %735 = trunc i32 %or.i417.i.i to i8 + %conv.i418.i.i = or i8 %735, -64 + %736 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i420.i.i = getelementptr i8, ptr %736, i64 1 store ptr %incdec.ptr.i.i420.i.i, ptr %code_ptr, align 8 - store i8 %conv.i418.i.i, ptr %737, align 1 + store i8 %conv.i418.i.i, ptr %736, align 1 br label %sw.epilog715.i sw.bb130.i507.i: ; preds = %if.else709.i @@ -12459,15 +12457,15 @@ sw.bb130.i507.i: ; preds = %if.else709.i sw.bb131.i.i: ; preds = %sw.bb130.i507.i, %if.else709.i %rexw.10.i.i = phi i32 [ 247, %if.else709.i ], [ 4343, %sw.bb130.i507.i ] - %738 = load i64, ptr %arrayidx413.i.i, align 16 - %conv134.i.i = trunc i64 %738 to i32 + %737 = load i64, ptr %arrayidx413.i.i, align 16 + %conv134.i.i = trunc i64 %737 to i32 tail call fastcc void @tcg_out_opc(ptr noundef %s, i32 noundef %rexw.10.i.i, i32 noundef 7, i32 noundef %conv134.i.i, i32 noundef 0) - %739 = trunc i64 %738 to i8 - %conv.i423.i.i = or i8 %739, -8 - %740 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i425.i.i = getelementptr i8, ptr %740, i64 1 + %738 = trunc i64 %737 to i8 + %conv.i423.i.i = or i8 %738, -8 + %739 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i425.i.i = getelementptr i8, ptr %739, i64 1 store ptr %incdec.ptr.i.i425.i.i, ptr %code_ptr, align 8 - store i8 %conv.i423.i.i, ptr %740, align 1 + store i8 %conv.i423.i.i, ptr %739, align 1 br label %sw.epilog715.i sw.bb135.i.i: ; preds = %if.else709.i @@ -12475,16 +12473,16 @@ sw.bb135.i.i: ; preds = %if.else709.i sw.bb136.i.i: ; preds = %sw.bb135.i.i, %if.else709.i %rexw.11.i.i = phi i32 [ 247, %if.else709.i ], [ 4343, %sw.bb135.i.i ] - %741 = load i64, ptr %arrayidx413.i.i, align 16 - %conv139.i.i = trunc i64 %741 to i32 + %740 = load i64, ptr %arrayidx413.i.i, align 16 + %conv139.i.i = trunc i64 %740 to i32 tail call fastcc void @tcg_out_opc(ptr noundef %s, i32 noundef %rexw.11.i.i, i32 noundef 6, i32 noundef %conv139.i.i, i32 noundef 0) - %742 = trunc i64 %741 to i8 - %743 = and i8 %742, 7 - %conv.i428.i.i = or disjoint i8 %743, -16 - %744 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i430.i.i = getelementptr i8, ptr %744, i64 1 + %741 = trunc i64 %740 to i8 + %742 = and i8 %741, 7 + %conv.i428.i.i = or disjoint i8 %742, -16 + %743 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i430.i.i = getelementptr i8, ptr %743, i64 1 store ptr %incdec.ptr.i.i430.i.i, ptr %code_ptr, align 8 - store i8 %conv.i428.i.i, ptr %744, align 1 + store i8 %conv.i428.i.i, ptr %743, align 1 br label %sw.epilog715.i sw.bb140.i.i: ; preds = %if.else709.i @@ -12492,21 +12490,21 @@ sw.bb140.i.i: ; preds = %if.else709.i sw.bb141.i.i: ; preds = %sw.bb140.i.i, %if.else709.i %rexw.12.i.i = phi i32 [ 0, %if.else709.i ], [ 4096, %sw.bb140.i.i ] - %tobool142.not.i.i = icmp eq i32 %716, 0 - %cmp143.not.i.i = icmp eq i64 %713, %714 + %tobool142.not.i.i = icmp eq i32 %715, 0 + %cmp143.not.i.i = icmp eq i64 %712, %713 %or.cond393.i.i = select i1 %tobool142.not.i.i, i1 true, i1 %cmp143.not.i.i br i1 %or.cond393.i.i, label %gen_shift_maybe_vex.i.i, label %land.lhs.true145.i.i land.lhs.true145.i.i: ; preds = %sw.bb141.i.i - %sub.i.i468 = add i64 %715, -1 + %sub.i.i468 = add i64 %714, -1 %cmp146.i.i = icmp ult i64 %sub.i.i468, 3 br i1 %cmp146.i.i, label %if.then148.i.i, label %gen_shift_maybe_vex.i.i if.then148.i.i: ; preds = %land.lhs.true145.i.i %cmp150.i.i = icmp eq i64 %sub.i.i468, 0 %add153.i.i = or disjoint i32 %rexw.12.i.i, 141 - %conv154.i504.i = trunc i64 %713 to i32 - %conv155.i505.i = trunc i64 %714 to i32 + %conv154.i504.i = trunc i64 %712 to i32 + %conv155.i505.i = trunc i64 %713 to i32 br i1 %cmp150.i.i, label %if.then152.i.i, label %if.else157.i.i if.then152.i.i: ; preds = %if.then148.i.i @@ -12514,7 +12512,7 @@ if.then152.i.i: ; preds = %if.then148.i.i br label %sw.epilog715.i if.else157.i.i: ; preds = %if.then148.i.i - %conv161.i506.i = trunc i64 %715 to i32 + %conv161.i506.i = trunc i64 %714 to i32 tail call fastcc void @tcg_out_modrm_sib_offset(ptr noundef %s, i32 noundef %add153.i.i, i32 noundef %conv154.i504.i, i32 noundef -1, i32 noundef %conv155.i505.i, i32 noundef %conv161.i506.i, i64 noundef 0) br label %sw.epilog715.i @@ -12540,38 +12538,38 @@ gen_shift_maybe_vex.i.i: ; preds = %sw.bb167.i.i, %sw.b %c.1.i.i = phi i32 [ 4, %land.lhs.true145.i.i ], [ 4, %sw.bb141.i.i ], [ 5, %sw.bb164.i.i ], [ 5, %if.else709.i ], [ 7, %sw.bb166.i.i ], [ 7, %sw.bb167.i.i ] %vexop.0.i.i = phi i32 [ 1783, %land.lhs.true145.i.i ], [ 1783, %sw.bb141.i.i ], [ 262903, %sw.bb164.i.i ], [ 262903, %if.else709.i ], [ 131831, %sw.bb166.i.i ], [ 131831, %sw.bb167.i.i ] %rexw.17.i.i = phi i32 [ %rexw.12.i.i, %land.lhs.true145.i.i ], [ %rexw.12.i.i, %sw.bb141.i.i ], [ 4096, %sw.bb164.i.i ], [ 0, %if.else709.i ], [ 4096, %sw.bb166.i.i ], [ 0, %sw.bb167.i.i ] - %745 = load i32, ptr @cpuinfo, align 4 - %and.i502.i = and i32 %745, 64 + %744 = load i32, ptr @cpuinfo, align 4 + %and.i502.i = and i32 %744, 64 %tobool172.not.i.i = icmp eq i32 %and.i502.i, 0 br i1 %tobool172.not.i.i, label %gen_shift.i.i, label %if.then173.i.i if.then173.i.i: ; preds = %gen_shift_maybe_vex.i.i - %tobool174.not.i.i = icmp eq i32 %716, 0 - %conv179.i503.i = trunc i64 %714 to i32 + %tobool174.not.i.i = icmp eq i32 %715, 0 + %conv179.i503.i = trunc i64 %713 to i32 br i1 %tobool174.not.i.i, label %if.then175.i.i, label %gen_shift.thread.i.i if.then175.i.i: ; preds = %if.then173.i.i %add176.i.i = add nuw nsw i32 %rexw.17.i.i, %vexop.0.i.i - %conv177.i.i = trunc i64 %713 to i32 - %conv178.i.i = trunc i64 %715 to i32 + %conv177.i.i = trunc i64 %712 to i32 + %conv178.i.i = trunc i64 %714 to i32 tail call fastcc void @tcg_out_vex_modrm(ptr noundef %s, i32 noundef %add176.i.i, i32 noundef %conv177.i.i, i32 noundef %conv178.i.i, i32 noundef %conv179.i503.i) br label %sw.epilog715.i gen_shift.thread.i.i: ; preds = %if.then173.i.i %tobool181.not.i.i = icmp ne i32 %rexw.17.i.i, 0 %cond182.i.i = zext i1 %tobool181.not.i.i to i32 - %conv183.i.i = trunc i64 %713 to i32 + %conv183.i.i = trunc i64 %712 to i32 tail call fastcc void @tcg_out_mov(ptr noundef %s, i32 noundef %cond182.i.i, i32 noundef %conv183.i.i, i32 noundef %conv179.i503.i) br label %if.then188.i.i gen_shift.i.i: ; preds = %gen_shift_maybe_vex.i.i, %sw.bb171.i.i, %sw.bb170.i.i, %sw.bb168.i.i, %if.else709.i %c.2.i.i = phi i32 [ %c.1.i.i, %gen_shift_maybe_vex.i.i ], [ 0, %sw.bb168.i.i ], [ 0, %if.else709.i ], [ 1, %sw.bb170.i.i ], [ 1, %sw.bb171.i.i ] %rexw.18.i.i = phi i32 [ %rexw.17.i.i, %gen_shift_maybe_vex.i.i ], [ 4096, %sw.bb168.i.i ], [ 0, %if.else709.i ], [ 4096, %sw.bb170.i.i ], [ 0, %sw.bb171.i.i ] - %tobool187.not.i.i = icmp eq i32 %716, 0 + %tobool187.not.i.i = icmp eq i32 %715, 0 br i1 %tobool187.not.i.i, label %if.else192.i.i, label %gen_shift.if.then188_crit_edge.i.i gen_shift.if.then188_crit_edge.i.i: ; preds = %gen_shift.i.i - %.pre565.i.i = trunc i64 %713 to i32 + %.pre565.i.i = trunc i64 %712 to i32 br label %if.then188.i.i if.then188.i.i: ; preds = %gen_shift.if.then188_crit_edge.i.i, %gen_shift.thread.i.i @@ -12581,51 +12579,51 @@ if.then188.i.i: ; preds = %gen_shift.if.then18 %add189.i.i = add nuw nsw i32 %c.2554.i.i, %rexw.18555.i.i %and.i431.i.i = and i32 %add189.i.i, -8 %and1.i432.i.i = and i32 %add189.i.i, 7 - %746 = and i64 %715, 4294967295 - %cmp.i.i501.i = icmp eq i64 %746, 1 + %745 = and i64 %714, 4294967295 + %cmp.i.i501.i = icmp eq i64 %745, 1 %and.i.i433.i.i = shl nuw nsw i32 %and1.i432.i.i, 3 %and1.i.i434.i.i = and i32 %conv190.pre-phi.i.i, 7 %or.i.i435.i.i = or disjoint i32 %and.i.i433.i.i, %and1.i.i434.i.i - %747 = trunc i32 %or.i.i435.i.i to i8 - %conv.i.i436.i.i = or disjoint i8 %747, -64 + %746 = trunc i32 %or.i.i435.i.i to i8 + %conv.i.i436.i.i = or disjoint i8 %746, -64 br i1 %cmp.i.i501.i, label %if.then.i.i.i467, label %if.else.i.i.i466 if.then.i.i.i467: ; preds = %if.then188.i.i %add.i441.i.i = add nuw nsw i32 %and.i431.i.i, 209 tail call fastcc void @tcg_out_opc(ptr noundef %s, i32 noundef %add.i441.i.i, i32 noundef %and1.i432.i.i, i32 noundef %conv190.pre-phi.i.i, i32 noundef 0) - %748 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i.i442.i.i = getelementptr i8, ptr %748, i64 1 + %747 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i.i442.i.i = getelementptr i8, ptr %747, i64 1 store ptr %incdec.ptr.i.i.i442.i.i, ptr %code_ptr, align 8 - store i8 %conv.i.i436.i.i, ptr %748, align 1 + store i8 %conv.i.i436.i.i, ptr %747, align 1 br label %sw.epilog715.i if.else.i.i.i466: ; preds = %if.then188.i.i %add2.i438.i.i = add nuw nsw i32 %and.i431.i.i, 193 tail call fastcc void @tcg_out_opc(ptr noundef %s, i32 noundef %add2.i438.i.i, i32 noundef %and1.i432.i.i, i32 noundef %conv190.pre-phi.i.i, i32 noundef 0) - %749 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i14.i.i.i = getelementptr i8, ptr %749, i64 1 + %748 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i14.i.i.i = getelementptr i8, ptr %748, i64 1 store ptr %incdec.ptr.i.i14.i.i.i, ptr %code_ptr, align 8 - store i8 %conv.i.i436.i.i, ptr %749, align 1 - %conv.i439.i.i = trunc i64 %715 to i8 - %750 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i440.i.i = getelementptr i8, ptr %750, i64 1 + store i8 %conv.i.i436.i.i, ptr %748, align 1 + %conv.i439.i.i = trunc i64 %714 to i8 + %749 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i440.i.i = getelementptr i8, ptr %749, i64 1 store ptr %incdec.ptr.i.i440.i.i, ptr %code_ptr, align 8 - store i8 %conv.i439.i.i, ptr %750, align 1 + store i8 %conv.i439.i.i, ptr %749, align 1 br label %sw.epilog715.i if.else192.i.i: ; preds = %gen_shift.i.i %add193.i.i = add nuw nsw i32 %rexw.18.i.i, 211 - %conv194.i.i = trunc i64 %713 to i32 + %conv194.i.i = trunc i64 %712 to i32 tail call fastcc void @tcg_out_opc(ptr noundef %s, i32 noundef %add193.i.i, i32 noundef %c.2.i.i, i32 noundef %conv194.i.i, i32 noundef 0) %and.i443.i.i = shl nuw nsw i32 %c.2.i.i, 3 %and1.i444.i.i = and i32 %conv194.i.i, 7 %or.i445.i.i = or disjoint i32 %and.i443.i.i, %and1.i444.i.i - %751 = trunc i32 %or.i445.i.i to i8 - %conv.i446.i.i = or i8 %751, -64 - %752 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i448.i.i = getelementptr i8, ptr %752, i64 1 + %750 = trunc i32 %or.i445.i.i to i8 + %conv.i446.i.i = or i8 %750, -64 + %751 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i448.i.i = getelementptr i8, ptr %751, i64 1 store ptr %incdec.ptr.i.i448.i.i, ptr %code_ptr, align 8 - store i8 %conv.i446.i.i, ptr %752, align 1 + store i8 %conv.i446.i.i, ptr %751, align 1 br label %sw.epilog715.i sw.bb196.i.i: ; preds = %if.else709.i @@ -12633,10 +12631,10 @@ sw.bb196.i.i: ; preds = %if.else709.i sw.bb197.i.i: ; preds = %sw.bb196.i.i, %if.else709.i %rexw.19.i.i = phi i32 [ 0, %if.else709.i ], [ 4096, %sw.bb196.i.i ] - %conv199.i.i = trunc i64 %713 to i32 - %conv201.i500.i = trunc i64 %714 to i32 - %tobool204.i.i = icmp ne i32 %716, 0 - tail call fastcc void @tcg_out_ctz(ptr noundef %s, i32 noundef %rexw.19.i.i, i32 noundef %conv199.i.i, i32 noundef %conv201.i500.i, i64 noundef %715, i1 noundef zeroext %tobool204.i.i) + %conv199.i.i = trunc i64 %712 to i32 + %conv201.i500.i = trunc i64 %713 to i32 + %tobool204.i.i = icmp ne i32 %715, 0 + tail call fastcc void @tcg_out_ctz(ptr noundef %s, i32 noundef %rexw.19.i.i, i32 noundef %conv199.i.i, i32 noundef %conv201.i500.i, i64 noundef %714, i1 noundef zeroext %tobool204.i.i) br label %sw.epilog715.i sw.bb205.i.i: ; preds = %if.else709.i @@ -12644,10 +12642,10 @@ sw.bb205.i.i: ; preds = %if.else709.i sw.bb206.i.i: ; preds = %sw.bb205.i.i, %if.else709.i %rexw.20.i.i = phi i32 [ 0, %if.else709.i ], [ 4096, %sw.bb205.i.i ] - %conv208.i.i = trunc i64 %713 to i32 - %conv210.i.i = trunc i64 %714 to i32 - %tobool213.i.i = icmp ne i32 %716, 0 - tail call fastcc void @tcg_out_clz(ptr noundef %s, i32 noundef %rexw.20.i.i, i32 noundef %conv208.i.i, i32 noundef %conv210.i.i, i64 noundef %715, i1 noundef zeroext %tobool213.i.i) + %conv208.i.i = trunc i64 %712 to i32 + %conv210.i.i = trunc i64 %713 to i32 + %tobool213.i.i = icmp ne i32 %715, 0 + tail call fastcc void @tcg_out_clz(ptr noundef %s, i32 noundef %rexw.20.i.i, i32 noundef %conv208.i.i, i32 noundef %conv210.i.i, i64 noundef %714, i1 noundef zeroext %tobool213.i.i) br label %sw.epilog715.i sw.bb214.i.i: ; preds = %if.else709.i @@ -12655,18 +12653,18 @@ sw.bb214.i.i: ; preds = %if.else709.i sw.bb215.i.i: ; preds = %sw.bb214.i.i, %if.else709.i %rexw.21.i.i = phi i32 [ 131512, %if.else709.i ], [ 135608, %sw.bb214.i.i ] - %conv217.i498.i = trunc i64 %713 to i32 - %conv218.i499.i = trunc i64 %714 to i32 + %conv217.i498.i = trunc i64 %712 to i32 + %conv218.i499.i = trunc i64 %713 to i32 tail call fastcc void @tcg_out_opc(ptr noundef %s, i32 noundef %rexw.21.i.i, i32 noundef %conv217.i498.i, i32 noundef %conv218.i499.i, i32 noundef 0) %and.i449.i.i = shl i32 %conv217.i498.i, 3 %and1.i450.i.i = and i32 %conv218.i499.i, 7 %or.i451.i.i = or disjoint i32 %and1.i450.i.i, %and.i449.i.i - %753 = trunc i32 %or.i451.i.i to i8 - %conv.i452.i.i = or i8 %753, -64 - %754 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i454.i.i = getelementptr i8, ptr %754, i64 1 + %752 = trunc i32 %or.i451.i.i to i8 + %conv.i452.i.i = or i8 %752, -64 + %753 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i454.i.i = getelementptr i8, ptr %753, i64 1 store ptr %incdec.ptr.i.i454.i.i, ptr %code_ptr, align 8 - store i8 %conv.i452.i.i, ptr %754, align 1 + store i8 %conv.i452.i.i, ptr %753, align 1 br label %sw.epilog715.i sw.bb219.i.i: ; preds = %if.else709.i @@ -12674,11 +12672,11 @@ sw.bb219.i.i: ; preds = %if.else709.i sw.bb220.i497.i: ; preds = %sw.bb219.i.i, %if.else709.i %rexw.22.i.i = phi i32 [ 0, %if.else709.i ], [ 4096, %sw.bb219.i.i ] - %conv221.i.i = trunc i64 %715 to i32 - %755 = load i32, ptr %arrayidx222.i.i, align 4 - %756 = load i64, ptr %arrayidx229.i.i, align 8 - %757 = inttoptr i64 %756 to ptr - tail call fastcc void @tcg_out_brcond(ptr noundef %s, i32 noundef %rexw.22.i.i, i32 noundef %conv221.i.i, i64 noundef %713, i64 noundef %714, i32 noundef %755, ptr noundef %757) + %conv221.i.i = trunc i64 %714 to i32 + %754 = load i32, ptr %arrayidx222.i.i, align 4 + %755 = load i64, ptr %arrayidx229.i.i, align 8 + %756 = inttoptr i64 %755 to ptr + tail call fastcc void @tcg_out_brcond(ptr noundef %s, i32 noundef %rexw.22.i.i, i32 noundef %conv221.i.i, i64 noundef %712, i64 noundef %713, i32 noundef %754, ptr noundef %756) br label %sw.epilog715.i sw.bb225.i.i: ; preds = %if.else709.i @@ -12686,9 +12684,9 @@ sw.bb225.i.i: ; preds = %if.else709.i sw.bb226.i.i: ; preds = %sw.bb225.i.i, %if.else709.i %rexw.23.i.i = phi i32 [ 0, %if.else709.i ], [ 4096, %sw.bb225.i.i ] - %758 = load i64, ptr %arrayidx229.i.i, align 8 - %conv228.i496.i = trunc i64 %758 to i32 - tail call fastcc void @tcg_out_setcond(ptr noundef %s, i32 noundef %rexw.23.i.i, i32 noundef %conv228.i496.i, i64 noundef %713, i64 noundef %714, i64 noundef %715, i32 noundef %716, i1 noundef zeroext false) + %757 = load i64, ptr %arrayidx229.i.i, align 8 + %conv228.i496.i = trunc i64 %757 to i32 + tail call fastcc void @tcg_out_setcond(ptr noundef %s, i32 noundef %rexw.23.i.i, i32 noundef %conv228.i496.i, i64 noundef %712, i64 noundef %713, i64 noundef %714, i32 noundef %715, i1 noundef zeroext false) br label %sw.epilog715.i sw.bb229.i.i: ; preds = %if.else709.i @@ -12696,9 +12694,9 @@ sw.bb229.i.i: ; preds = %if.else709.i sw.bb230.i.i: ; preds = %sw.bb229.i.i, %if.else709.i %rexw.24.i.i = phi i32 [ 0, %if.else709.i ], [ 4096, %sw.bb229.i.i ] - %759 = load i64, ptr %arrayidx229.i.i, align 8 - %conv232.i495.i = trunc i64 %759 to i32 - tail call fastcc void @tcg_out_setcond(ptr noundef %s, i32 noundef %rexw.24.i.i, i32 noundef %conv232.i495.i, i64 noundef %713, i64 noundef %714, i64 noundef %715, i32 noundef %716, i1 noundef zeroext true) + %758 = load i64, ptr %arrayidx229.i.i, align 8 + %conv232.i495.i = trunc i64 %758 to i32 + tail call fastcc void @tcg_out_setcond(ptr noundef %s, i32 noundef %rexw.24.i.i, i32 noundef %conv232.i495.i, i64 noundef %712, i64 noundef %713, i64 noundef %714, i32 noundef %715, i1 noundef zeroext true) br label %sw.epilog715.i sw.bb233.i.i: ; preds = %if.else709.i @@ -12706,52 +12704,52 @@ sw.bb233.i.i: ; preds = %if.else709.i sw.bb234.i.i: ; preds = %sw.bb233.i.i, %if.else709.i %rexw.25.i.i = phi i32 [ 0, %if.else709.i ], [ 4096, %sw.bb233.i.i ] - %760 = load i64, ptr %arrayidx384.i.i, align 8 - %conv236.i.i = trunc i64 %760 to i32 - %conv237.i.i = trunc i64 %713 to i32 - %conv238.i.i = trunc i64 %714 to i32 - %761 = load i64, ptr %arrayidx229.i.i, align 8 - %conv240.i.i = trunc i64 %761 to i32 - tail call fastcc void @tcg_out_movcond(ptr noundef %s, i32 noundef %rexw.25.i.i, i32 noundef %conv236.i.i, i32 noundef %conv237.i.i, i32 noundef %conv238.i.i, i64 noundef %715, i32 noundef %716, i32 noundef %conv240.i.i) + %759 = load i64, ptr %arrayidx384.i.i, align 8 + %conv236.i.i = trunc i64 %759 to i32 + %conv237.i.i = trunc i64 %712 to i32 + %conv238.i.i = trunc i64 %713 to i32 + %760 = load i64, ptr %arrayidx229.i.i, align 8 + %conv240.i.i = trunc i64 %760 to i32 + tail call fastcc void @tcg_out_movcond(ptr noundef %s, i32 noundef %rexw.25.i.i, i32 noundef %conv236.i.i, i32 noundef %conv237.i.i, i32 noundef %conv238.i.i, i64 noundef %714, i32 noundef %715, i32 noundef %conv240.i.i) br label %sw.epilog715.i sw.bb242.i.i: ; preds = %if.else709.i - %and243.i.i = and i64 %715, 4 + %and243.i.i = and i64 %714, 4 %tobool244.not.i.i = icmp eq i64 %and243.i.i, 0 br i1 %tobool244.not.i.i, label %if.else255.i.i, label %if.else251.i.i sw.bb242.thread.i.i: ; preds = %if.else709.i - %and243558.i.i = and i64 %715, 4 + %and243558.i.i = and i64 %714, 4 %tobool244.not559.i.i = icmp eq i64 %and243558.i.i, 0 br i1 %tobool244.not559.i.i, label %if.else255.i.i, label %if.then247.i.i if.then247.i.i: ; preds = %sw.bb242.thread.i.i - %conv248.i.i = trunc i64 %713 to i32 - %762 = trunc i64 %713 to i8 - %763 = lshr i8 %762, 3 - %764 = and i8 %763, 1 - %conv.i.i455.i.i = or disjoint i8 %764, 72 - %765 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i37.i.i.i493.i = getelementptr i8, ptr %765, i64 1 + %conv248.i.i = trunc i64 %712 to i32 + %761 = trunc i64 %712 to i8 + %762 = lshr i8 %761, 3 + %763 = and i8 %762, 1 + %conv.i.i455.i.i = or disjoint i8 %763, 72 + %764 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i37.i.i.i493.i = getelementptr i8, ptr %764, i64 1 store ptr %incdec.ptr.i37.i.i.i493.i, ptr %code_ptr, align 8 - store i8 %conv.i.i455.i.i, ptr %765, align 1 - %766 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i39.i.i.i.i = getelementptr i8, ptr %766, i64 1 + store i8 %conv.i.i455.i.i, ptr %764, align 1 + %765 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i39.i.i.i.i = getelementptr i8, ptr %765, i64 1 store ptr %incdec.ptr.i39.i.i.i.i, ptr %code_ptr, align 8 - store i8 15, ptr %766, align 1 - %767 = and i8 %762, 7 - %conv51.i.i.i.i = or disjoint i8 %767, -56 - %768 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i45.i.i.i494.i = getelementptr i8, ptr %768, i64 1 + store i8 15, ptr %765, align 1 + %766 = and i8 %761, 7 + %conv51.i.i.i.i = or disjoint i8 %766, -56 + %767 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i45.i.i.i494.i = getelementptr i8, ptr %767, i64 1 store ptr %incdec.ptr.i45.i.i.i494.i, ptr %code_ptr, align 8 - store i8 %conv51.i.i.i.i, ptr %768, align 1 + store i8 %conv51.i.i.i.i, ptr %767, align 1 tail call fastcc void @tcg_out_shifti(ptr noundef %s, i32 noundef 4103, i32 noundef %conv248.i.i, i32 noundef 48) br label %sw.epilog715.i if.else251.i.i: ; preds = %sw.bb242.i.i - %conv252.i.i = trunc i64 %713 to i32 - %769 = and i32 %conv252.i.i, 8 - %tobool34.not.i.i.i490.i = icmp eq i32 %769, 0 + %conv252.i.i = trunc i64 %712 to i32 + %768 = and i32 %conv252.i.i, 8 + %tobool34.not.i.i.i490.i = icmp eq i32 %768, 0 %.pre804 = load ptr, ptr %code_ptr, align 8 br i1 %tobool34.not.i.i.i490.i, label %tcg_out_bswap32.exit.i.i, label %if.then35.i.i.i491.i @@ -12763,29 +12761,29 @@ if.then35.i.i.i491.i: ; preds = %if.else251.i.i br label %tcg_out_bswap32.exit.i.i tcg_out_bswap32.exit.i.i: ; preds = %if.then35.i.i.i491.i, %if.else251.i.i - %770 = phi ptr [ %.pre803, %if.then35.i.i.i491.i ], [ %.pre804, %if.else251.i.i ] - %incdec.ptr.i39.i.i458.i.i = getelementptr i8, ptr %770, i64 1 + %769 = phi ptr [ %.pre803, %if.then35.i.i.i491.i ], [ %.pre804, %if.else251.i.i ] + %incdec.ptr.i39.i.i458.i.i = getelementptr i8, ptr %769, i64 1 store ptr %incdec.ptr.i39.i.i458.i.i, ptr %code_ptr, align 8 - store i8 15, ptr %770, align 1 - %771 = trunc i64 %713 to i8 - %772 = and i8 %771, 7 - %conv51.i.i459.i.i = or disjoint i8 %772, -56 - %773 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i45.i.i460.i.i = getelementptr i8, ptr %773, i64 1 + store i8 15, ptr %769, align 1 + %770 = trunc i64 %712 to i8 + %771 = and i8 %770, 7 + %conv51.i.i459.i.i = or disjoint i8 %771, -56 + %772 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i45.i.i460.i.i = getelementptr i8, ptr %772, i64 1 store ptr %incdec.ptr.i45.i.i460.i.i, ptr %code_ptr, align 8 - store i8 %conv51.i.i459.i.i, ptr %773, align 1 + store i8 %conv51.i.i459.i.i, ptr %772, align 1 tail call fastcc void @tcg_out_shifti(ptr noundef nonnull %s, i32 noundef 7, i32 noundef %conv252.i.i, i32 noundef 16) br label %sw.epilog715.i if.else255.i.i: ; preds = %sw.bb242.thread.i.i, %sw.bb242.i.i - %and256.i.i = and i64 %715, 3 + %and256.i.i = and i64 %714, 3 %cmp257.i.i = icmp eq i64 %and256.i.i, 2 - %conv260.i.i = trunc i64 %713 to i32 + %conv260.i.i = trunc i64 %712 to i32 br i1 %cmp257.i.i, label %if.then259.i.i, label %if.else262.i.i if.then259.i.i: ; preds = %if.else255.i.i - %774 = and i32 %conv260.i.i, 8 - %tobool34.not.i.i461.i.i = icmp eq i32 %774, 0 + %773 = and i32 %conv260.i.i, 8 + %tobool34.not.i.i461.i.i = icmp eq i32 %773, 0 %.pre806 = load ptr, ptr %code_ptr, align 8 br i1 %tobool34.not.i.i461.i.i, label %tcg_out_bswap32.exit469.i.i, label %if.then35.i.i462.i.i @@ -12797,17 +12795,17 @@ if.then35.i.i462.i.i: ; preds = %if.then259.i.i br label %tcg_out_bswap32.exit469.i.i tcg_out_bswap32.exit469.i.i: ; preds = %if.then35.i.i462.i.i, %if.then259.i.i - %775 = phi ptr [ %.pre805, %if.then35.i.i462.i.i ], [ %.pre806, %if.then259.i.i ] - %incdec.ptr.i39.i.i466.i.i = getelementptr i8, ptr %775, i64 1 + %774 = phi ptr [ %.pre805, %if.then35.i.i462.i.i ], [ %.pre806, %if.then259.i.i ] + %incdec.ptr.i39.i.i466.i.i = getelementptr i8, ptr %774, i64 1 store ptr %incdec.ptr.i39.i.i466.i.i, ptr %code_ptr, align 8 - store i8 15, ptr %775, align 1 - %776 = trunc i64 %713 to i8 - %777 = and i8 %776, 7 - %conv51.i.i467.i.i = or disjoint i8 %777, -56 - %778 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i45.i.i468.i.i = getelementptr i8, ptr %778, i64 1 + store i8 15, ptr %774, align 1 + %775 = trunc i64 %712 to i8 + %776 = and i8 %775, 7 + %conv51.i.i467.i.i = or disjoint i8 %776, -56 + %777 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i45.i.i468.i.i = getelementptr i8, ptr %777, i64 1 store ptr %incdec.ptr.i45.i.i468.i.i, ptr %code_ptr, align 8 - store i8 %conv51.i.i467.i.i, ptr %778, align 1 + store i8 %conv51.i.i467.i.i, ptr %777, align 1 tail call fastcc void @tcg_out_shifti(ptr noundef nonnull %s, i32 noundef 5, i32 noundef %conv260.i.i, i32 noundef 16) br label %sw.epilog715.i @@ -12820,9 +12818,9 @@ sw.bb266.i.i: ; preds = %if.else709.i sw.bb267.i.i: ; preds = %sw.bb266.i.i, %if.else709.i %tobool269.not.i.i = phi i1 [ true, %if.else709.i ], [ false, %sw.bb266.i.i ] - %conv268.i.i = trunc i64 %713 to i32 - %779 = and i32 %conv268.i.i, 8 - %tobool34.not.i.i470.i.i = icmp eq i32 %779, 0 + %conv268.i.i = trunc i64 %712 to i32 + %778 = and i32 %conv268.i.i, 8 + %tobool34.not.i.i470.i.i = icmp eq i32 %778, 0 %.pre802 = load ptr, ptr %code_ptr, align 8 br i1 %tobool34.not.i.i470.i.i, label %tcg_out_bswap32.exit478.i.i, label %if.then35.i.i471.i.i @@ -12834,18 +12832,18 @@ if.then35.i.i471.i.i: ; preds = %sw.bb267.i.i br label %tcg_out_bswap32.exit478.i.i tcg_out_bswap32.exit478.i.i: ; preds = %if.then35.i.i471.i.i, %sw.bb267.i.i - %780 = phi ptr [ %.pre801, %if.then35.i.i471.i.i ], [ %.pre802, %sw.bb267.i.i ] - %incdec.ptr.i39.i.i475.i.i = getelementptr i8, ptr %780, i64 1 + %779 = phi ptr [ %.pre801, %if.then35.i.i471.i.i ], [ %.pre802, %sw.bb267.i.i ] + %incdec.ptr.i39.i.i475.i.i = getelementptr i8, ptr %779, i64 1 store ptr %incdec.ptr.i39.i.i475.i.i, ptr %code_ptr, align 8 - store i8 15, ptr %780, align 1 - %781 = trunc i64 %713 to i8 - %782 = and i8 %781, 7 - %conv51.i.i476.i.i = or disjoint i8 %782, -56 - %783 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i45.i.i477.i.i = getelementptr i8, ptr %783, i64 1 + store i8 15, ptr %779, align 1 + %780 = trunc i64 %712 to i8 + %781 = and i8 %780, 7 + %conv51.i.i476.i.i = or disjoint i8 %781, -56 + %782 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i45.i.i477.i.i = getelementptr i8, ptr %782, i64 1 store ptr %incdec.ptr.i45.i.i477.i.i, ptr %code_ptr, align 8 - store i8 %conv51.i.i476.i.i, ptr %783, align 1 - %and271.i.i = and i64 %715, 4 + store i8 %conv51.i.i476.i.i, ptr %782, align 1 + %and271.i.i = and i64 %714, 4 %tobool272.not.i.i = icmp eq i64 %and271.i.i, 0 %or.cond394.i.i = select i1 %tobool269.not.i.i, i1 true, i1 %tobool272.not.i.i br i1 %or.cond394.i.i, label %sw.epilog715.i, label %if.then273.i.i @@ -12859,15 +12857,15 @@ sw.bb277.i.i: ; preds = %if.else709.i sw.bb278.i.i: ; preds = %sw.bb277.i.i, %if.else709.i %rexw.28.i.i = phi i32 [ 247, %if.else709.i ], [ 4343, %sw.bb277.i.i ] - %conv280.i.i = trunc i64 %713 to i32 + %conv280.i.i = trunc i64 %712 to i32 tail call fastcc void @tcg_out_opc(ptr noundef %s, i32 noundef %rexw.28.i.i, i32 noundef 3, i32 noundef %conv280.i.i, i32 noundef 0) - %784 = trunc i64 %713 to i8 - %785 = and i8 %784, 7 - %conv.i481.i.i = or disjoint i8 %785, -40 - %786 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i483.i.i = getelementptr i8, ptr %786, i64 1 + %783 = trunc i64 %712 to i8 + %784 = and i8 %783, 7 + %conv.i481.i.i = or disjoint i8 %784, -40 + %785 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i483.i.i = getelementptr i8, ptr %785, i64 1 store ptr %incdec.ptr.i.i483.i.i, ptr %code_ptr, align 8 - store i8 %conv.i481.i.i, ptr %786, align 1 + store i8 %conv.i481.i.i, ptr %785, align 1 br label %sw.epilog715.i sw.bb281.i.i: ; preds = %if.else709.i @@ -12875,74 +12873,74 @@ sw.bb281.i.i: ; preds = %if.else709.i sw.bb282.i.i: ; preds = %sw.bb281.i.i, %if.else709.i %rexw.29.i.i = phi i32 [ 247, %if.else709.i ], [ 4343, %sw.bb281.i.i ] - %conv284.i.i = trunc i64 %713 to i32 + %conv284.i.i = trunc i64 %712 to i32 tail call fastcc void @tcg_out_opc(ptr noundef %s, i32 noundef %rexw.29.i.i, i32 noundef 2, i32 noundef %conv284.i.i, i32 noundef 0) - %787 = trunc i64 %713 to i8 - %788 = and i8 %787, 7 - %conv.i486.i.i = or disjoint i8 %788, -48 - %789 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i488.i.i = getelementptr i8, ptr %789, i64 1 + %786 = trunc i64 %712 to i8 + %787 = and i8 %786, 7 + %conv.i486.i.i = or disjoint i8 %787, -48 + %788 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i488.i.i = getelementptr i8, ptr %788, i64 1 store ptr %incdec.ptr.i.i488.i.i, ptr %code_ptr, align 8 - store i8 %conv.i486.i.i, ptr %789, align 1 + store i8 %conv.i486.i.i, ptr %788, align 1 br label %sw.epilog715.i sw.bb286.i.i: ; preds = %if.else709.i, %if.else709.i - %conv287.i.i = trunc i64 %713 to i32 - %conv288.i.i = trunc i64 %714 to i32 - %conv289.i.i = trunc i64 %715 to i32 + %conv287.i.i = trunc i64 %712 to i32 + %conv288.i.i = trunc i64 %713 to i32 + %conv289.i.i = trunc i64 %714 to i32 tail call fastcc void @tcg_out_qemu_ld(ptr noundef %s, i32 noundef %conv287.i.i, i32 noundef -1, i32 noundef %conv288.i.i, i32 noundef %conv289.i.i, i32 noundef 0) br label %sw.epilog715.i sw.bb290.i.i: ; preds = %if.else709.i - %conv291.i.i = trunc i64 %713 to i32 - %conv292.i.i = trunc i64 %714 to i32 - %conv293.i.i = trunc i64 %715 to i32 + %conv291.i.i = trunc i64 %712 to i32 + %conv292.i.i = trunc i64 %713 to i32 + %conv293.i.i = trunc i64 %714 to i32 tail call fastcc void @tcg_out_qemu_ld(ptr noundef %s, i32 noundef %conv291.i.i, i32 noundef -1, i32 noundef %conv292.i.i, i32 noundef %conv293.i.i, i32 noundef 1) br label %sw.epilog715.i sw.bb294.i.i: ; preds = %if.else709.i - %conv295.i.i = trunc i64 %713 to i32 - %conv296.i.i = trunc i64 %714 to i32 - %conv297.i.i = trunc i64 %715 to i32 + %conv295.i.i = trunc i64 %712 to i32 + %conv296.i.i = trunc i64 %713 to i32 + %conv297.i.i = trunc i64 %714 to i32 tail call fastcc void @tcg_out_qemu_ld(ptr noundef %s, i32 noundef %conv295.i.i, i32 noundef -1, i32 noundef %conv296.i.i, i32 noundef %conv297.i.i, i32 noundef 1) br label %sw.epilog715.i do.end.i.i: ; preds = %if.else709.i, %if.else709.i - %conv299.i.i = trunc i64 %713 to i32 - %conv300.i.i = trunc i64 %714 to i32 - %conv301.i.i = trunc i64 %715 to i32 - %790 = load i64, ptr %arrayidx229.i.i, align 8 - %conv303.i.i = trunc i64 %790 to i32 + %conv299.i.i = trunc i64 %712 to i32 + %conv300.i.i = trunc i64 %713 to i32 + %conv301.i.i = trunc i64 %714 to i32 + %789 = load i64, ptr %arrayidx229.i.i, align 8 + %conv303.i.i = trunc i64 %789 to i32 tail call fastcc void @tcg_out_qemu_ld(ptr noundef %s, i32 noundef %conv299.i.i, i32 noundef %conv300.i.i, i32 noundef %conv301.i.i, i32 noundef %conv303.i.i, i32 noundef 2) br label %sw.epilog715.i sw.bb305.i.i: ; preds = %if.else709.i, %if.else709.i, %if.else709.i, %if.else709.i - %conv306.i.i = trunc i64 %713 to i32 - %conv307.i.i = trunc i64 %714 to i32 - %conv308.i.i = trunc i64 %715 to i32 + %conv306.i.i = trunc i64 %712 to i32 + %conv307.i.i = trunc i64 %713 to i32 + %conv308.i.i = trunc i64 %714 to i32 tail call fastcc void @tcg_out_qemu_st(ptr noundef %s, i32 noundef %conv306.i.i, i32 noundef -1, i32 noundef %conv307.i.i, i32 noundef %conv308.i.i, i32 noundef 0) br label %sw.epilog715.i sw.bb309.i.i: ; preds = %if.else709.i - %conv310.i.i = trunc i64 %713 to i32 - %conv311.i.i = trunc i64 %714 to i32 - %conv312.i.i = trunc i64 %715 to i32 + %conv310.i.i = trunc i64 %712 to i32 + %conv311.i.i = trunc i64 %713 to i32 + %conv312.i.i = trunc i64 %714 to i32 tail call fastcc void @tcg_out_qemu_st(ptr noundef %s, i32 noundef %conv310.i.i, i32 noundef -1, i32 noundef %conv311.i.i, i32 noundef %conv312.i.i, i32 noundef 1) br label %sw.epilog715.i sw.bb313.i.i: ; preds = %if.else709.i - %conv314.i.i = trunc i64 %713 to i32 - %conv315.i.i = trunc i64 %714 to i32 - %conv316.i.i = trunc i64 %715 to i32 + %conv314.i.i = trunc i64 %712 to i32 + %conv315.i.i = trunc i64 %713 to i32 + %conv316.i.i = trunc i64 %714 to i32 tail call fastcc void @tcg_out_qemu_st(ptr noundef %s, i32 noundef %conv314.i.i, i32 noundef -1, i32 noundef %conv315.i.i, i32 noundef %conv316.i.i, i32 noundef 1) br label %sw.epilog715.i do.end319.i.i: ; preds = %if.else709.i, %if.else709.i - %conv320.i.i = trunc i64 %713 to i32 - %conv321.i.i = trunc i64 %714 to i32 - %conv322.i.i = trunc i64 %715 to i32 - %791 = load i64, ptr %arrayidx229.i.i, align 8 - %conv324.i.i = trunc i64 %791 to i32 + %conv320.i.i = trunc i64 %712 to i32 + %conv321.i.i = trunc i64 %713 to i32 + %conv322.i.i = trunc i64 %714 to i32 + %790 = load i64, ptr %arrayidx229.i.i, align 8 + %conv324.i.i = trunc i64 %790 to i32 tail call fastcc void @tcg_out_qemu_st(ptr noundef %s, i32 noundef %conv320.i.i, i32 noundef %conv321.i.i, i32 noundef %conv322.i.i, i32 noundef %conv324.i.i, i32 noundef 2) br label %sw.epilog715.i @@ -12951,16 +12949,16 @@ sw.bb325.i.i: ; preds = %if.else709.i sw.bb326.i.i: ; preds = %sw.bb325.i.i, %if.else709.i %rexw.30.i.i = phi i32 [ 247, %if.else709.i ], [ 4343, %sw.bb325.i.i ] - %792 = load i64, ptr %arrayidx229.i.i, align 8 - %conv329.i.i = trunc i64 %792 to i32 + %791 = load i64, ptr %arrayidx229.i.i, align 8 + %conv329.i.i = trunc i64 %791 to i32 tail call fastcc void @tcg_out_opc(ptr noundef %s, i32 noundef %rexw.30.i.i, i32 noundef 4, i32 noundef %conv329.i.i, i32 noundef 0) - %793 = trunc i64 %792 to i8 - %794 = and i8 %793, 7 - %conv.i491.i.i = or disjoint i8 %794, -32 - %795 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i493.i.i = getelementptr i8, ptr %795, i64 1 + %792 = trunc i64 %791 to i8 + %793 = and i8 %792, 7 + %conv.i491.i.i = or disjoint i8 %793, -32 + %794 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i493.i.i = getelementptr i8, ptr %794, i64 1 store ptr %incdec.ptr.i.i493.i.i, ptr %code_ptr, align 8 - store i8 %conv.i491.i.i, ptr %795, align 1 + store i8 %conv.i491.i.i, ptr %794, align 1 br label %sw.epilog715.i sw.bb330.i.i: ; preds = %if.else709.i @@ -12968,16 +12966,16 @@ sw.bb330.i.i: ; preds = %if.else709.i sw.bb331.i.i: ; preds = %sw.bb330.i.i, %if.else709.i %rexw.31.i.i = phi i32 [ 247, %if.else709.i ], [ 4343, %sw.bb330.i.i ] - %796 = load i64, ptr %arrayidx229.i.i, align 8 - %conv334.i.i = trunc i64 %796 to i32 + %795 = load i64, ptr %arrayidx229.i.i, align 8 + %conv334.i.i = trunc i64 %795 to i32 tail call fastcc void @tcg_out_opc(ptr noundef %s, i32 noundef %rexw.31.i.i, i32 noundef 5, i32 noundef %conv334.i.i, i32 noundef 0) - %797 = trunc i64 %796 to i8 - %798 = and i8 %797, 7 - %conv.i496.i.i = or disjoint i8 %798, -24 - %799 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i498.i.i = getelementptr i8, ptr %799, i64 1 + %796 = trunc i64 %795 to i8 + %797 = and i8 %796, 7 + %conv.i496.i.i = or disjoint i8 %797, -24 + %798 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i498.i.i = getelementptr i8, ptr %798, i64 1 store ptr %incdec.ptr.i.i498.i.i, ptr %code_ptr, align 8 - store i8 %conv.i496.i.i, ptr %799, align 1 + store i8 %conv.i496.i.i, ptr %798, align 1 br label %sw.epilog715.i sw.bb335.i.i: ; preds = %if.else709.i @@ -12985,35 +12983,35 @@ sw.bb335.i.i: ; preds = %if.else709.i sw.bb336.i.i: ; preds = %sw.bb335.i.i, %if.else709.i %rexw.32.i.i = phi i32 [ 0, %if.else709.i ], [ 4096, %sw.bb335.i.i ] - %800 = load i32, ptr %arrayidx363.i.i, align 16 - %tobool338.not.i.i = icmp eq i32 %800, 0 - %conv345.i.i = trunc i64 %713 to i32 - %801 = load i64, ptr %arrayidx413.i.i, align 16 + %799 = load i32, ptr %arrayidx363.i.i, align 16 + %tobool338.not.i.i = icmp eq i32 %799, 0 + %conv345.i.i = trunc i64 %712 to i32 + %800 = load i64, ptr %arrayidx413.i.i, align 16 br i1 %tobool338.not.i.i, label %if.else343.i.i, label %if.then339.i.i if.then339.i.i: ; preds = %sw.bb336.i.i - tail call fastcc void @tgen_arithi(ptr noundef %s, i32 noundef %rexw.32.i.i, i32 noundef %conv345.i.i, i64 noundef %801, i32 noundef 1) + tail call fastcc void @tgen_arithi(ptr noundef %s, i32 noundef %rexw.32.i.i, i32 noundef %conv345.i.i, i64 noundef %800, i32 noundef 1) br label %if.end348.i.i if.else343.i.i: ; preds = %sw.bb336.i.i - %conv347.i.i = trunc i64 %801 to i32 + %conv347.i.i = trunc i64 %800 to i32 tail call fastcc void @tgen_arithr(ptr noundef %s, i32 noundef %rexw.32.i.i, i32 noundef %conv345.i.i, i32 noundef %conv347.i.i) br label %if.end348.i.i if.end348.i.i: ; preds = %if.else343.i.i, %if.then339.i.i - %802 = load i32, ptr %arrayidx375.i.i, align 4 - %tobool350.not.i.i = icmp eq i32 %802, 0 + %801 = load i32, ptr %arrayidx375.i.i, align 4 + %tobool350.not.i.i = icmp eq i32 %801, 0 %add356.i.i = or disjoint i32 %rexw.32.i.i, 2 - %conv357.i.i = trunc i64 %714 to i32 - %803 = load i64, ptr %arrayidx384.i.i, align 8 + %conv357.i.i = trunc i64 %713 to i32 + %802 = load i64, ptr %arrayidx384.i.i, align 8 br i1 %tobool350.not.i.i, label %if.else355.i.i, label %if.then351.i.i if.then351.i.i: ; preds = %if.end348.i.i - tail call fastcc void @tgen_arithi(ptr noundef %s, i32 noundef %add356.i.i, i32 noundef %conv357.i.i, i64 noundef %803, i32 noundef 1) + tail call fastcc void @tgen_arithi(ptr noundef %s, i32 noundef %add356.i.i, i32 noundef %conv357.i.i, i64 noundef %802, i32 noundef 1) br label %sw.epilog715.i if.else355.i.i: ; preds = %if.end348.i.i - %conv359.i.i = trunc i64 %803 to i32 + %conv359.i.i = trunc i64 %802 to i32 tail call fastcc void @tgen_arithr(ptr noundef %s, i32 noundef %add356.i.i, i32 noundef %conv357.i.i, i32 noundef %conv359.i.i) br label %sw.epilog715.i @@ -13022,170 +13020,170 @@ sw.bb361.i.i: ; preds = %if.else709.i sw.bb362.i.i: ; preds = %sw.bb361.i.i, %if.else709.i %rexw.33.i.i = phi i32 [ 0, %if.else709.i ], [ 4096, %sw.bb361.i.i ] - %804 = load i32, ptr %arrayidx363.i.i, align 16 - %tobool364.not.i.i = icmp eq i32 %804, 0 + %803 = load i32, ptr %arrayidx363.i.i, align 16 + %tobool364.not.i.i = icmp eq i32 %803, 0 %add370.i.i = or disjoint i32 %rexw.33.i.i, 5 - %conv371.i.i = trunc i64 %713 to i32 - %805 = load i64, ptr %arrayidx413.i.i, align 16 + %conv371.i.i = trunc i64 %712 to i32 + %804 = load i64, ptr %arrayidx413.i.i, align 16 br i1 %tobool364.not.i.i, label %if.else369.i.i, label %if.then365.i.i if.then365.i.i: ; preds = %sw.bb362.i.i - tail call fastcc void @tgen_arithi(ptr noundef %s, i32 noundef %add370.i.i, i32 noundef %conv371.i.i, i64 noundef %805, i32 noundef 1) + tail call fastcc void @tgen_arithi(ptr noundef %s, i32 noundef %add370.i.i, i32 noundef %conv371.i.i, i64 noundef %804, i32 noundef 1) br label %if.end374.i.i if.else369.i.i: ; preds = %sw.bb362.i.i - %conv373.i.i = trunc i64 %805 to i32 + %conv373.i.i = trunc i64 %804 to i32 tail call fastcc void @tgen_arithr(ptr noundef %s, i32 noundef %add370.i.i, i32 noundef %conv371.i.i, i32 noundef %conv373.i.i) br label %if.end374.i.i if.end374.i.i: ; preds = %if.else369.i.i, %if.then365.i.i - %806 = load i32, ptr %arrayidx375.i.i, align 4 - %tobool376.not.i.i = icmp eq i32 %806, 0 + %805 = load i32, ptr %arrayidx375.i.i, align 4 + %tobool376.not.i.i = icmp eq i32 %805, 0 %add382.i.i = or disjoint i32 %rexw.33.i.i, 3 - %conv383.i.i = trunc i64 %714 to i32 - %807 = load i64, ptr %arrayidx384.i.i, align 8 + %conv383.i.i = trunc i64 %713 to i32 + %806 = load i64, ptr %arrayidx384.i.i, align 8 br i1 %tobool376.not.i.i, label %if.else381.i.i, label %if.then377.i.i if.then377.i.i: ; preds = %if.end374.i.i - tail call fastcc void @tgen_arithi(ptr noundef %s, i32 noundef %add382.i.i, i32 noundef %conv383.i.i, i64 noundef %807, i32 noundef 1) + tail call fastcc void @tgen_arithi(ptr noundef %s, i32 noundef %add382.i.i, i32 noundef %conv383.i.i, i64 noundef %806, i32 noundef 1) br label %sw.epilog715.i if.else381.i.i: ; preds = %if.end374.i.i - %conv385.i.i = trunc i64 %807 to i32 + %conv385.i.i = trunc i64 %806 to i32 tail call fastcc void @tgen_arithr(ptr noundef %s, i32 noundef %add382.i.i, i32 noundef %conv383.i.i, i32 noundef %conv385.i.i) br label %sw.epilog715.i sw.bb387.i.i: ; preds = %if.else709.i - %conv388.i.i = trunc i64 %713 to i32 - %conv389.i.i = trunc i64 %714 to i32 - tail call fastcc void @tcg_out_modrm_offset(ptr noundef %s, i32 noundef 4195, i32 noundef %conv388.i.i, i32 noundef %conv389.i.i, i64 noundef %715) + %conv388.i.i = trunc i64 %712 to i32 + %conv389.i.i = trunc i64 %713 to i32 + tail call fastcc void @tcg_out_modrm_offset(ptr noundef %s, i32 noundef 4195, i32 noundef %conv388.i.i, i32 noundef %conv389.i.i, i64 noundef %714) br label %sw.epilog715.i sw.bb390.i.i: ; preds = %if.else709.i - %conv391.i.i = trunc i64 %713 to i32 - %conv392.i.i = trunc i64 %714 to i32 - tail call fastcc void @tcg_out_ld(ptr noundef %s, i32 noundef 1, i32 noundef %conv391.i.i, i32 noundef %conv392.i.i, i64 noundef %715) + %conv391.i.i = trunc i64 %712 to i32 + %conv392.i.i = trunc i64 %713 to i32 + tail call fastcc void @tcg_out_ld(ptr noundef %s, i32 noundef 1, i32 noundef %conv391.i.i, i32 noundef %conv392.i.i, i64 noundef %714) br label %sw.epilog715.i sw.bb393.i.i: ; preds = %if.else709.i - %808 = load i32, ptr %const_args.i, align 16 - %tobool395.not.i.i = icmp eq i32 %808, 0 + %807 = load i32, ptr %const_args.i, align 16 + %tobool395.not.i.i = icmp eq i32 %807, 0 br i1 %tobool395.not.i.i, label %if.else399.i.i, label %if.then396.i.i if.then396.i.i: ; preds = %sw.bb393.i.i - %conv397.i.i = trunc i64 %714 to i32 - tail call fastcc void @tcg_out_modrm_offset(ptr noundef %s, i32 noundef 4295, i32 noundef 0, i32 noundef %conv397.i.i, i64 noundef %715) - %conv398.i.i = trunc i64 %713 to i32 - %809 = load ptr, ptr %code_ptr, align 8 - store i32 %conv398.i.i, ptr %809, align 1 - %add.ptr.i500.i.i = getelementptr i8, ptr %809, i64 4 + %conv397.i.i = trunc i64 %713 to i32 + tail call fastcc void @tcg_out_modrm_offset(ptr noundef %s, i32 noundef 4295, i32 noundef 0, i32 noundef %conv397.i.i, i64 noundef %714) + %conv398.i.i = trunc i64 %712 to i32 + %808 = load ptr, ptr %code_ptr, align 8 + store i32 %conv398.i.i, ptr %808, align 1 + %add.ptr.i500.i.i = getelementptr i8, ptr %808, i64 4 store ptr %add.ptr.i500.i.i, ptr %code_ptr, align 8 br label %sw.epilog715.i if.else399.i.i: ; preds = %sw.bb393.i.i - %conv400.i.i = trunc i64 %713 to i32 - %conv401.i.i = trunc i64 %714 to i32 - tail call fastcc void @tcg_out_st(ptr noundef %s, i32 noundef 1, i32 noundef %conv400.i.i, i32 noundef %conv401.i.i, i64 noundef %715) + %conv400.i.i = trunc i64 %712 to i32 + %conv401.i.i = trunc i64 %713 to i32 + tail call fastcc void @tcg_out_st(ptr noundef %s, i32 noundef 1, i32 noundef %conv400.i.i, i32 noundef %conv401.i.i, i64 noundef %714) br label %sw.epilog715.i sw.bb403.i.i: ; preds = %if.else709.i - %810 = trunc i64 %713 to i8 - %811 = lshr i8 %810, 3 - %812 = and i8 %811, 1 - %conv.i.i501.i.i = or disjoint i8 %812, 72 - %813 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i37.i.i503.i.i = getelementptr i8, ptr %813, i64 1 + %809 = trunc i64 %712 to i8 + %810 = lshr i8 %809, 3 + %811 = and i8 %810, 1 + %conv.i.i501.i.i = or disjoint i8 %811, 72 + %812 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i37.i.i503.i.i = getelementptr i8, ptr %812, i64 1 store ptr %incdec.ptr.i37.i.i503.i.i, ptr %code_ptr, align 8 - store i8 %conv.i.i501.i.i, ptr %813, align 1 - %814 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i39.i.i504.i.i = getelementptr i8, ptr %814, i64 1 + store i8 %conv.i.i501.i.i, ptr %812, align 1 + %813 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i39.i.i504.i.i = getelementptr i8, ptr %813, i64 1 store ptr %incdec.ptr.i39.i.i504.i.i, ptr %code_ptr, align 8 - store i8 15, ptr %814, align 1 - %815 = and i8 %810, 7 - %conv51.i.i505.i.i = or disjoint i8 %815, -56 - %816 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i45.i.i506.i.i = getelementptr i8, ptr %816, i64 1 + store i8 15, ptr %813, align 1 + %814 = and i8 %809, 7 + %conv51.i.i505.i.i = or disjoint i8 %814, -56 + %815 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i45.i.i506.i.i = getelementptr i8, ptr %815, i64 1 store ptr %incdec.ptr.i45.i.i506.i.i, ptr %code_ptr, align 8 - store i8 %conv51.i.i505.i.i, ptr %816, align 1 + store i8 %conv51.i.i505.i.i, ptr %815, align 1 br label %sw.epilog715.i sw.bb405.i.i: ; preds = %if.else709.i - %conv406.i.i = trunc i64 %713 to i32 + %conv406.i.i = trunc i64 %712 to i32 tail call fastcc void @tcg_out_shifti(ptr noundef %s, i32 noundef 4101, i32 noundef %conv406.i.i, i32 noundef 32) br label %sw.epilog715.i sw.bb408.i.i: ; preds = %if.else709.i, %if.else709.i - %817 = load i64, ptr %arrayidx229.i.i, align 8 - %cmp410.i.i = icmp eq i64 %817, 0 + %816 = load i64, ptr %arrayidx229.i.i, align 8 + %cmp410.i.i = icmp eq i64 %816, 0 br i1 %cmp410.i.i, label %land.lhs.true412.i.i, label %do.body448.i.i land.lhs.true412.i.i: ; preds = %sw.bb408.i.i - %818 = load i64, ptr %arrayidx413.i.i, align 16 - switch i64 %818, label %do.body448.i.i [ + %817 = load i64, ptr %arrayidx413.i.i, align 16 + switch i64 %817, label %do.body448.i.i [ i64 8, label %if.then416.i.i i64 16, label %if.then435.i.i ] if.then416.i.i: ; preds = %land.lhs.true412.i.i - %tobool417.not.i.i = icmp eq i32 %716, 0 + %tobool417.not.i.i = icmp eq i32 %715, 0 br i1 %tobool417.not.i.i, label %if.else423.i.i, label %if.then418.i.i if.then418.i.i: ; preds = %if.then416.i.i - %819 = trunc i64 %713 to i32 - %820 = and i32 %819, 7 - %conv420.i.i = or disjoint i32 %820, 16560 - tail call fastcc void @tcg_out_opc(ptr noundef %s, i32 noundef %conv420.i.i, i32 noundef 0, i32 noundef %819, i32 noundef 0) - %conv422.i.i = trunc i64 %715 to i8 - %821 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i508.i.i = getelementptr i8, ptr %821, i64 1 + %818 = trunc i64 %712 to i32 + %819 = and i32 %818, 7 + %conv420.i.i = or disjoint i32 %819, 16560 + tail call fastcc void @tcg_out_opc(ptr noundef %s, i32 noundef %conv420.i.i, i32 noundef 0, i32 noundef %818, i32 noundef 0) + %conv422.i.i = trunc i64 %714 to i8 + %820 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i508.i.i = getelementptr i8, ptr %820, i64 1 store ptr %incdec.ptr.i508.i.i, ptr %code_ptr, align 8 - store i8 %conv422.i.i, ptr %821, align 1 + store i8 %conv422.i.i, ptr %820, align 1 br label %sw.epilog715.i if.else423.i.i: ; preds = %if.then416.i.i - %conv424.i.i = trunc i64 %715 to i32 - %conv425.i.i = trunc i64 %713 to i32 + %conv424.i.i = trunc i64 %714 to i32 + %conv425.i.i = trunc i64 %712 to i32 tail call fastcc void @tcg_out_opc(ptr noundef %s, i32 noundef 24712, i32 noundef %conv424.i.i, i32 noundef %conv425.i.i, i32 noundef 0) %and.i509.i.i = shl i32 %conv424.i.i, 3 %and1.i510.i.i = and i32 %conv425.i.i, 7 %or.i511.i.i = or disjoint i32 %and.i509.i.i, %and1.i510.i.i - %822 = trunc i32 %or.i511.i.i to i8 - %conv.i512.i.i = or i8 %822, -64 - %823 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i514.i.i = getelementptr i8, ptr %823, i64 1 + %821 = trunc i32 %or.i511.i.i to i8 + %conv.i512.i.i = or i8 %821, -64 + %822 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i514.i.i = getelementptr i8, ptr %822, i64 1 store ptr %incdec.ptr.i.i514.i.i, ptr %code_ptr, align 8 - store i8 %conv.i512.i.i, ptr %823, align 1 + store i8 %conv.i512.i.i, ptr %822, align 1 br label %sw.epilog715.i if.then435.i.i: ; preds = %land.lhs.true412.i.i - %tobool436.not.i.i = icmp eq i32 %716, 0 + %tobool436.not.i.i = icmp eq i32 %715, 0 br i1 %tobool436.not.i.i, label %if.else443.i.i, label %if.then437.i.i if.then437.i.i: ; preds = %if.then435.i.i - %824 = trunc i64 %713 to i32 - %825 = and i32 %824, 7 - %conv440.i.i = or disjoint i32 %825, 1208 - tail call fastcc void @tcg_out_opc(ptr noundef %s, i32 noundef %conv440.i.i, i32 noundef 0, i32 noundef %824, i32 noundef 0) - %conv442.i.i = trunc i64 %715 to i16 - %826 = load ptr, ptr %code_ptr, align 8 - store i16 %conv442.i.i, ptr %826, align 1 - %add.ptr.i516.i.i = getelementptr i8, ptr %826, i64 2 + %823 = trunc i64 %712 to i32 + %824 = and i32 %823, 7 + %conv440.i.i = or disjoint i32 %824, 1208 + tail call fastcc void @tcg_out_opc(ptr noundef %s, i32 noundef %conv440.i.i, i32 noundef 0, i32 noundef %823, i32 noundef 0) + %conv442.i.i = trunc i64 %714 to i16 + %825 = load ptr, ptr %code_ptr, align 8 + store i16 %conv442.i.i, ptr %825, align 1 + %add.ptr.i516.i.i = getelementptr i8, ptr %825, i64 2 store ptr %add.ptr.i516.i.i, ptr %code_ptr, align 8 br label %sw.epilog715.i if.else443.i.i: ; preds = %if.then435.i.i - %conv444.i.i = trunc i64 %715 to i32 - %conv445.i.i = trunc i64 %713 to i32 + %conv444.i.i = trunc i64 %714 to i32 + %conv445.i.i = trunc i64 %712 to i32 tail call fastcc void @tcg_out_opc(ptr noundef %s, i32 noundef 1161, i32 noundef %conv444.i.i, i32 noundef %conv445.i.i, i32 noundef 0) %and.i517.i.i = shl i32 %conv444.i.i, 3 %and1.i518.i.i = and i32 %conv445.i.i, 7 %or.i519.i.i = or disjoint i32 %and.i517.i.i, %and1.i518.i.i - %827 = trunc i32 %or.i519.i.i to i8 - %conv.i520.i.i = or i8 %827, -64 - %828 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i522.i.i = getelementptr i8, ptr %828, i64 1 + %826 = trunc i32 %or.i519.i.i to i8 + %conv.i520.i.i = or i8 %826, -64 + %827 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i522.i.i = getelementptr i8, ptr %827, i64 1 store ptr %incdec.ptr.i.i522.i.i, ptr %code_ptr, align 8 - store i8 %conv.i520.i.i, ptr %828, align 1 + store i8 %conv.i520.i.i, ptr %827, align 1 br label %sw.epilog715.i do.body448.i.i: ; preds = %land.lhs.true412.i.i, %sw.bb408.i.i @@ -13193,87 +13191,87 @@ do.body448.i.i: ; preds = %land.lhs.true412.i. unreachable sw.bb452.i.i: ; preds = %if.else709.i - %829 = load i64, ptr %arrayidx229.i.i, align 8 - %add454.i.i = add i64 %829, %715 + %828 = load i64, ptr %arrayidx229.i.i, align 8 + %add454.i.i = add i64 %828, %714 %cmp455.i.i = icmp eq i64 %add454.i.i, 32 br i1 %cmp455.i.i, label %if.then457.i.i, label %do.body465.i.i if.then457.i.i: ; preds = %sw.bb452.i.i - %conv458.i.i = trunc i64 %713 to i32 - %conv459.i.i = trunc i64 %714 to i32 + %conv458.i.i = trunc i64 %712 to i32 + %conv459.i.i = trunc i64 %713 to i32 tail call fastcc void @tcg_out_mov(ptr noundef %s, i32 noundef 0, i32 noundef %conv458.i.i, i32 noundef %conv459.i.i) - %conv462.i.i = trunc i64 %715 to i32 + %conv462.i.i = trunc i64 %714 to i32 tail call fastcc void @tcg_out_shifti(ptr noundef %s, i32 noundef 5, i32 noundef %conv458.i.i, i32 noundef %conv462.i.i) br label %sw.epilog715.i do.body465.i.i: ; preds = %sw.bb452.i.i, %entry.do.body465_crit_edge.i.i - %830 = phi i64 [ %.pre.i.i465, %entry.do.body465_crit_edge.i.i ], [ %829, %sw.bb452.i.i ] - %cmp466.i.i = icmp eq i64 %715, 8 + %829 = phi i64 [ %.pre.i.i465, %entry.do.body465_crit_edge.i.i ], [ %828, %sw.bb452.i.i ] + %cmp466.i.i = icmp eq i64 %714, 8 tail call void @llvm.assume(i1 %cmp466.i.i) - %cmp470.i.i = icmp eq i64 %830, 8 + %cmp470.i.i = icmp eq i64 %829, 8 tail call void @llvm.assume(i1 %cmp470.i.i) - %cmp475.i.i = icmp ult i64 %714, 4 - %cmp478.i.i = icmp ult i64 %713, 8 + %cmp475.i.i = icmp ult i64 %713, 4 + %cmp478.i.i = icmp ult i64 %712, 8 %or.cond.i489.i = select i1 %cmp475.i.i, i1 %cmp478.i.i, i1 false - %conv481.i.i = trunc i64 %713 to i32 - %831 = trunc i64 %714 to i32 + %conv481.i.i = trunc i64 %712 to i32 + %830 = trunc i64 %713 to i32 br i1 %or.cond.i489.i, label %if.then480.i.i, label %if.else484.i.i if.then480.i.i: ; preds = %do.body465.i.i - %conv483.i.i = add nuw nsw i32 %831, 4 + %conv483.i.i = add nuw nsw i32 %830, 4 tail call fastcc void @tcg_out_opc(ptr noundef %s, i32 noundef 438, i32 noundef %conv481.i.i, i32 noundef %conv483.i.i, i32 noundef 0) %and.i523.i.i = shl nuw nsw i32 %conv481.i.i, 3 %or.i525.i.i = add nuw nsw i32 %conv483.i.i, %and.i523.i.i - %832 = trunc i32 %or.i525.i.i to i8 - %conv.i526.i.i = or i8 %832, -64 - %833 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i528.i.i = getelementptr i8, ptr %833, i64 1 + %831 = trunc i32 %or.i525.i.i to i8 + %conv.i526.i.i = or i8 %831, -64 + %832 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i528.i.i = getelementptr i8, ptr %832, i64 1 store ptr %incdec.ptr.i.i528.i.i, ptr %code_ptr, align 8 - store i8 %conv.i526.i.i, ptr %833, align 1 + store i8 %conv.i526.i.i, ptr %832, align 1 br label %sw.epilog715.i if.else484.i.i: ; preds = %do.body465.i.i - tail call fastcc void @tcg_out_ext16u(ptr noundef %s, i32 noundef %conv481.i.i, i32 noundef %831) + tail call fastcc void @tcg_out_ext16u(ptr noundef %s, i32 noundef %conv481.i.i, i32 noundef %830) tail call fastcc void @tcg_out_shifti(ptr noundef %s, i32 noundef 5, i32 noundef %conv481.i.i, i32 noundef 8) br label %sw.epilog715.i do.body490.i.i: ; preds = %if.else709.i - %cmp491.i.i = icmp eq i64 %715, 8 + %cmp491.i.i = icmp eq i64 %714, 8 tail call void @llvm.assume(i1 %cmp491.i.i) - %834 = load i64, ptr %arrayidx229.i.i, align 8 - %cmp495.i.i = icmp eq i64 %834, 8 + %833 = load i64, ptr %arrayidx229.i.i, align 8 + %cmp495.i.i = icmp eq i64 %833, 8 tail call void @llvm.assume(i1 %cmp495.i.i) - %cmp500.i.i = icmp ult i64 %714, 4 - %cmp503.i.i = icmp ult i64 %713, 8 + %cmp500.i.i = icmp ult i64 %713, 4 + %cmp503.i.i = icmp ult i64 %712, 8 %or.cond1.i.i = select i1 %cmp500.i.i, i1 %cmp503.i.i, i1 false - %conv506.i.i = trunc i64 %713 to i32 - %835 = trunc i64 %714 to i32 + %conv506.i.i = trunc i64 %712 to i32 + %834 = trunc i64 %713 to i32 br i1 %or.cond1.i.i, label %if.then505.i.i, label %if.else509.i.i if.then505.i.i: ; preds = %do.body490.i.i - %conv508.i.i = add nuw nsw i32 %835, 4 + %conv508.i.i = add nuw nsw i32 %834, 4 tail call fastcc void @tcg_out_opc(ptr noundef %s, i32 noundef 446, i32 noundef %conv506.i.i, i32 noundef %conv508.i.i, i32 noundef 0) %and.i529.i.i = shl nuw nsw i32 %conv506.i.i, 3 %or.i531.i.i = add nuw nsw i32 %conv508.i.i, %and.i529.i.i - %836 = trunc i32 %or.i531.i.i to i8 - %conv.i532.i.i = or i8 %836, -64 - %837 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i534.i.i = getelementptr i8, ptr %837, i64 1 + %835 = trunc i32 %or.i531.i.i to i8 + %conv.i532.i.i = or i8 %835, -64 + %836 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i534.i.i = getelementptr i8, ptr %836, i64 1 store ptr %incdec.ptr.i.i534.i.i, ptr %code_ptr, align 8 - store i8 %conv.i532.i.i, ptr %837, align 1 + store i8 %conv.i532.i.i, ptr %836, align 1 br label %sw.epilog715.i if.else509.i.i: ; preds = %do.body490.i.i - tail call fastcc void @tcg_out_opc(ptr noundef %s, i32 noundef 447, i32 noundef %conv506.i.i, i32 noundef %835, i32 noundef 0) + tail call fastcc void @tcg_out_opc(ptr noundef %s, i32 noundef 447, i32 noundef %conv506.i.i, i32 noundef %834, i32 noundef 0) %and.i.i535.i.i = shl i32 %conv506.i.i, 3 - %and1.i.i536.i.i = and i32 %835, 7 + %and1.i.i536.i.i = and i32 %834, 7 %or.i.i537.i.i = or disjoint i32 %and1.i.i536.i.i, %and.i.i535.i.i - %838 = trunc i32 %or.i.i537.i.i to i8 - %conv.i.i538.i.i = or i8 %838, -64 - %839 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i.i540.i.i = getelementptr i8, ptr %839, i64 1 + %837 = trunc i32 %or.i.i537.i.i to i8 + %conv.i.i538.i.i = or i8 %837, -64 + %838 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i.i540.i.i = getelementptr i8, ptr %838, i64 1 store ptr %incdec.ptr.i.i.i540.i.i, ptr %code_ptr, align 8 - store i8 %conv.i.i538.i.i, ptr %839, align 1 + store i8 %conv.i.i538.i.i, ptr %838, align 1 tail call fastcc void @tcg_out_shifti(ptr noundef %s, i32 noundef 7, i32 noundef %conv506.i.i, i32 noundef 8) br label %sw.epilog715.i @@ -13282,28 +13280,28 @@ sw.bb514.i.i: ; preds = %if.else709.i sw.bb515.i.i: ; preds = %sw.bb514.i.i, %if.else709.i %rexw.34.i.i = phi i32 [ 428, %if.else709.i ], [ 4524, %sw.bb514.i.i ] - %conv517.i.i = trunc i64 %715 to i32 - %conv518.i.i = trunc i64 %713 to i32 + %conv517.i.i = trunc i64 %714 to i32 + %conv518.i.i = trunc i64 %712 to i32 tail call fastcc void @tcg_out_opc(ptr noundef %s, i32 noundef %rexw.34.i.i, i32 noundef %conv517.i.i, i32 noundef %conv518.i.i, i32 noundef 0) %and.i541.i.i = shl i32 %conv517.i.i, 3 %and1.i542.i.i = and i32 %conv518.i.i, 7 %or.i543.i.i = or disjoint i32 %and.i541.i.i, %and1.i542.i.i - %840 = trunc i32 %or.i543.i.i to i8 - %conv.i544.i.i = or i8 %840, -64 - %841 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i546.i.i = getelementptr i8, ptr %841, i64 1 + %839 = trunc i32 %or.i543.i.i to i8 + %conv.i544.i.i = or i8 %839, -64 + %840 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i546.i.i = getelementptr i8, ptr %840, i64 1 store ptr %incdec.ptr.i.i546.i.i, ptr %code_ptr, align 8 - store i8 %conv.i544.i.i, ptr %841, align 1 - %842 = load i64, ptr %arrayidx229.i.i, align 8 - %conv520.i.i = trunc i64 %842 to i8 - %843 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i548.i.i = getelementptr i8, ptr %843, i64 1 + store i8 %conv.i544.i.i, ptr %840, align 1 + %841 = load i64, ptr %arrayidx229.i.i, align 8 + %conv520.i.i = trunc i64 %841 to i8 + %842 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i548.i.i = getelementptr i8, ptr %842, i64 1 store ptr %incdec.ptr.i548.i.i, ptr %code_ptr, align 8 - store i8 %conv520.i.i, ptr %843, align 1 + store i8 %conv520.i.i, ptr %842, align 1 br label %sw.epilog715.i sw.bb521.i.i: ; preds = %if.else709.i - tail call fastcc void @tcg_out_mb(ptr noundef %s, i64 noundef %713) + tail call fastcc void @tcg_out_mb(ptr noundef %s, i64 noundef %712) br label %sw.epilog715.i do.body523.i.i: ; preds = %if.else709.i @@ -13311,28 +13309,28 @@ do.body523.i.i: ; preds = %if.else709.i unreachable sw.epilog715.i: ; preds = %sw.bb521.i.i, %sw.bb515.i.i, %if.else509.i.i, %if.then505.i.i, %if.else484.i.i, %if.then480.i.i, %if.then457.i.i, %if.else443.i.i, %if.then437.i.i, %if.else423.i.i, %if.then418.i.i, %sw.bb405.i.i, %sw.bb403.i.i, %if.else399.i.i, %if.then396.i.i, %sw.bb390.i.i, %sw.bb387.i.i, %if.else381.i.i, %if.then377.i.i, %if.else355.i.i, %if.then351.i.i, %sw.bb331.i.i, %sw.bb326.i.i, %do.end319.i.i, %sw.bb313.i.i, %sw.bb309.i.i, %sw.bb305.i.i, %do.end.i.i, %sw.bb294.i.i, %sw.bb290.i.i, %sw.bb286.i.i, %sw.bb282.i.i, %sw.bb278.i.i, %if.then273.i.i, %tcg_out_bswap32.exit478.i.i, %if.else262.i.i, %tcg_out_bswap32.exit469.i.i, %tcg_out_bswap32.exit.i.i, %if.then247.i.i, %sw.bb234.i.i, %sw.bb230.i.i, %sw.bb226.i.i, %sw.bb220.i497.i, %sw.bb215.i.i, %sw.bb206.i.i, %sw.bb197.i.i, %if.else192.i.i, %if.else.i.i.i466, %if.then.i.i.i467, %if.then175.i.i, %if.else157.i.i, %if.then152.i.i, %sw.bb136.i.i, %sw.bb131.i.i, %if.else125.i.i, %if.else120.i.i, %if.then115.i.i, %if.else100.i.i, %if.then93.i.i, %if.else85.i.i, %if.then82.i.i, %if.end67.i.i, %if.then62.i.i, %if.else49.i.i, %if.then46.i.i, %if.else39.i.i, %if.then36.i.i, %if.else.i526.i, %if.then.i523.i, %sw.bb22.i.i, %sw.bb18.i.i, %sw.bb14.i.i, %sw.bb10.i527.i, %sw.bb6.i.i472, %sw.bb4.i528.i, %tcg_out_opc.exit.i.i, %sw.bb231.i.i, %sw.bb220.i.i, %do.body205.i.i, %sw.bb156.i.i, %sw.bb153.i.i, %sw.bb150.i.i, %do.body136.i.i, %sw.bb107.i.i, %do.body.i481.i, %tcg_out_extrl_i64_i32.exit.i, %tcg_out_ext32u.exit.i.i, %sw.bb684.i, %sw.bb679.i, %tcg_out_ext32u.exit.i, %sw.bb669.i, %tcg_out_ext16u.exit.i, %sw.bb659.i, %tcg_out_opc.exit604.i, %tcg_out_ext8u.exit.i, %sw.bb644.i, %tcg_out_opc.exit.i - %cmp717679.not.i = icmp eq i8 %432, 0 + %cmp717679.not.i = icmp eq i8 %431, 0 br i1 %cmp717679.not.i, label %tcg_reg_alloc_op.exit, label %for.body719.i for.body719.i: ; preds = %sw.epilog715.i, %for.inc742.i %indvars.iv697.i = phi i64 [ %indvars.iv.next698.i, %for.inc742.i ], [ 0, %sw.epilog715.i ] %arrayidx722.i = getelementptr %struct.TCGOp, ptr %op.0746, i64 0, i32 4, i64 %indvars.iv697.i - %844 = load i64, ptr %arrayidx722.i, align 8 - %845 = inttoptr i64 %844 to ptr - %call723.val.i = load i64, ptr %845, align 8 - %846 = and i64 %call723.val.i, 30064771072 - %cmp.i538.i = icmp ult i64 %846, 8589934593 + %843 = load i64, ptr %arrayidx722.i, align 8 + %844 = inttoptr i64 %843 to ptr + %call723.val.i = load i64, ptr %844, align 8 + %845 = and i64 %call723.val.i, 30064771072 + %cmp.i538.i = icmp ult i64 %845, 8589934593 tail call void @llvm.assume(i1 %cmp.i538.i) - %847 = trunc i64 %indvars.iv697.i to i32 - %shl729.i = shl nuw i32 1, %847 - %and730.i = and i32 %shl729.i, %431 + %846 = trunc i64 %indvars.iv697.i to i32 + %shl729.i = shl nuw i32 1, %846 + %and730.i = and i32 %shl729.i, %430 %tobool731.not.i = icmp eq i32 %and730.i, 0 - %shl736.i = shl i32 16, %847 - %and737.i = and i32 %shl736.i, %431 + %shl736.i = shl i32 16, %846 + %and737.i = and i32 %shl736.i, %430 br i1 %tobool731.not.i, label %if.else735.i, label %if.then732.i if.then732.i: ; preds = %for.body719.i - tail call fastcc void @temp_sync(ptr noundef %s, ptr noundef nonnull %845, i32 noundef %o_allocated_regs.1.i, i32 noundef 0, i32 noundef %and737.i) + tail call fastcc void @temp_sync(ptr noundef %s, ptr noundef nonnull %844, i32 noundef %o_allocated_regs.1.i, i32 noundef 0, i32 noundef %and737.i) br label %for.inc742.i if.else735.i: ; preds = %for.body719.i @@ -13341,8 +13339,8 @@ if.else735.i: ; preds = %for.body719.i if.then739.i: ; preds = %if.else735.i %bf.lshr.i.i540.i = lshr i64 %call723.val.i, 32 - %848 = trunc i64 %bf.lshr.i.i540.i to i32 - %bf.cast.i.i541.i = and i32 %848, 7 + %847 = trunc i64 %bf.lshr.i.i540.i to i32 + %bf.cast.i.i541.i = and i32 %847, 7 switch i32 %bf.cast.i.i541.i, label %do.body.i.i556.i [ i32 3, label %for.inc742.i i32 2, label %sw.epilog.i.i543.i @@ -13363,25 +13361,25 @@ do.body.i.i556.i: ; preds = %if.then739.i sw.epilog.i.i543.i: ; preds = %sw.bb3.i.i542.i, %sw.bb2.i.i555.i, %if.then739.i, %if.then739.i %new_type.0.i.i544.i = phi i64 [ 768, %sw.bb3.i.i542.i ], [ 0, %sw.bb2.i.i555.i ], [ 512, %if.then739.i ], [ 512, %if.then739.i ] - %849 = and i64 %call723.val.i, 65280 - %cmp1.i.i.i545.i = icmp eq i64 %849, 256 + %848 = and i64 %call723.val.i, 65280 + %cmp1.i.i.i545.i = icmp eq i64 %848, 256 br i1 %cmp1.i.i.i545.i, label %if.then2.i.i.i550.i, label %set_temp_val_nonreg.exit.i.i546.i if.then2.i.i.i550.i: ; preds = %sw.epilog.i.i543.i %bf.cast5.i.i.i551.i = and i64 %call723.val.i, 255 %arrayidx.i.i.i552.i = getelementptr %struct.TCGContext, ptr %s, i64 0, i32 41, i64 %bf.cast5.i.i.i551.i - %850 = load ptr, ptr %arrayidx.i.i.i552.i, align 8 - %cmp7.i.i.i553.i = icmp eq ptr %850, %845 + %849 = load ptr, ptr %arrayidx.i.i.i552.i, align 8 + %cmp7.i.i.i553.i = icmp eq ptr %849, %844 tail call void @llvm.assume(i1 %cmp7.i.i.i553.i) store ptr null, ptr %arrayidx.i.i.i552.i, align 8 - %bf.load15.pre.i.i.i554.i = load i64, ptr %845, align 8 + %bf.load15.pre.i.i.i554.i = load i64, ptr %844, align 8 br label %set_temp_val_nonreg.exit.i.i546.i set_temp_val_nonreg.exit.i.i546.i: ; preds = %if.then2.i.i.i550.i, %sw.epilog.i.i543.i %bf.load15.i.i.i547.i = phi i64 [ %bf.load15.pre.i.i.i554.i, %if.then2.i.i.i550.i ], [ %call723.val.i, %sw.epilog.i.i543.i ] %bf.clear16.i.i.i548.i = and i64 %bf.load15.i.i.i547.i, -65281 %bf.set.i.i.i549.i = or disjoint i64 %bf.clear16.i.i.i548.i, %new_type.0.i.i544.i - store i64 %bf.set.i.i.i549.i, ptr %845, align 8 + store i64 %bf.set.i.i.i549.i, ptr %844, align 8 br label %for.inc742.i for.inc742.i: ; preds = %set_temp_val_nonreg.exit.i.i546.i, %if.then739.i, %if.else735.i, %if.then732.i @@ -13396,14 +13394,14 @@ tcg_reg_alloc_op.exit: ; preds = %for.inc742.i, %sw.e sw.epilog: ; preds = %for.inc190.i, %for.body94, %if.end90, %sw.epilog166.i, %for.cond89.preheader.i, %for.cond148.preheader.i, %set_temp_val_nonreg.exit.i.i279, %sw.bb101, %set_temp_val_nonreg.exit.i.i93.i, %if.then132.i, %if.end129.i, %set_temp_val_nonreg.exit.i.i.i.i258, %if.then6.i.i254, %if.else.i.i251, %if.then2.i.i249, %if.then121.i, %set_temp_val_reg.exit.i, %set_temp_val_nonreg.exit.i.i96.i, %if.end61.i, %set_temp_val_nonreg.exit.i.i.i.i, %if.then6.i.i, %if.else.i.i188, %if.then2.i.i, %tcg_reg_alloc_op.exit, %tcg_out_goto_tb.exit, %tcg_out_exit_tb.exit, %tcg_reg_alloc_bb_end.exit %num_insns.1 = phi i32 [ %num_insns.0745, %tcg_reg_alloc_op.exit ], [ %num_insns.0745, %tcg_out_goto_tb.exit ], [ %num_insns.0745, %tcg_out_exit_tb.exit ], [ %num_insns.0745, %tcg_reg_alloc_bb_end.exit ], [ %num_insns.0745, %if.then2.i.i ], [ %num_insns.0745, %if.else.i.i188 ], [ %num_insns.0745, %if.then6.i.i ], [ %num_insns.0745, %set_temp_val_nonreg.exit.i.i.i.i ], [ %num_insns.0745, %if.end61.i ], [ %num_insns.0745, %set_temp_val_nonreg.exit.i.i96.i ], [ %num_insns.0745, %set_temp_val_reg.exit.i ], [ %num_insns.0745, %if.then121.i ], [ %num_insns.0745, %if.then2.i.i249 ], [ %num_insns.0745, %if.else.i.i251 ], [ %num_insns.0745, %if.then6.i.i254 ], [ %num_insns.0745, %set_temp_val_nonreg.exit.i.i.i.i258 ], [ %num_insns.0745, %if.end129.i ], [ %num_insns.0745, %if.then132.i ], [ %num_insns.0745, %set_temp_val_nonreg.exit.i.i93.i ], [ %num_insns.0745, %sw.bb101 ], [ %num_insns.0745, %set_temp_val_nonreg.exit.i.i279 ], [ %num_insns.0745, %for.cond148.preheader.i ], [ %num_insns.0745, %for.cond89.preheader.i ], [ %num_insns.0745, %sw.epilog166.i ], [ %inc, %if.end90 ], [ %inc, %for.body94 ], [ %num_insns.0745, %for.inc190.i ] - %851 = load ptr, ptr %code_ptr, align 8 - %852 = load ptr, ptr %code_gen_highwater, align 8 - %cmp126 = icmp ugt ptr %851, %852 + %850 = load ptr, ptr %code_ptr, align 8 + %851 = load ptr, ptr %code_gen_highwater, align 8 + %cmp126 = icmp ugt ptr %850, %851 br i1 %cmp126, label %return, label %if.end135 if.end135: ; preds = %sw.epilog %s.val104 = load ptr, ptr %code_buf, align 8 - %sub.ptr.lhs.cast.i.i530 = ptrtoint ptr %851 to i64 + %sub.ptr.lhs.cast.i.i530 = ptrtoint ptr %850 to i64 %sub.ptr.rhs.cast.i.i531 = ptrtoint ptr %s.val104 to i64 %sub.ptr.sub.i.i532 = sub i64 %sub.ptr.lhs.cast.i.i530, %sub.ptr.rhs.cast.i.i531 %cmp137 = icmp ugt i64 %sub.ptr.sub.i.i532, 65535 @@ -13419,10 +13417,10 @@ do.body149: ; preds = %for.inc147, %tcg_ma %sub.ptr.sub.i.i535.pre-phi = phi i64 [ %.pre814, %tcg_malloc.exit.do.body149_crit_edge ], [ %sub.ptr.sub.i.i532, %for.inc147 ] %num_insns.0.lcssa = phi i32 [ -1, %tcg_malloc.exit.do.body149_crit_edge ], [ %num_insns.1, %for.inc147 ] %add150 = add i32 %num_insns.0.lcssa, 1 - %853 = load ptr, ptr %gen_tb, align 8 - %icount152 = getelementptr inbounds %struct.TranslationBlock, ptr %853, i64 0, i32 5 - %854 = load i16, ptr %icount152, align 2 - %conv153 = zext i16 %854 to i32 + %852 = load ptr, ptr %gen_tb, align 8 + %icount152 = getelementptr inbounds %struct.TranslationBlock, ptr %852, i64 0, i32 5 + %853 = load i16, ptr %icount152, align 2 + %conv153 = zext i16 %853 to i32 %cmp154 = icmp eq i32 %add150, %conv153 tail call void @llvm.assume(i1 %cmp154) %conv160 = trunc i64 %sub.ptr.sub.i.i535.pre-phi to i16 @@ -13468,60 +13466,60 @@ for.cond.i: ; preds = %if.end.i569 br i1 %tobool.not.i571, label %if.end168, label %for.body.i538, !llvm.loop !61 for.body.i538: ; preds = %for.cond.i, %for.body.lr.ph.i536 - %855 = phi ptr [ %.pre811, %for.body.lr.ph.i536 ], [ %storemerge.i, %for.cond.i ] + %854 = phi ptr [ %.pre811, %for.body.lr.ph.i536 ], [ %storemerge.i, %for.cond.i ] %lb.097.i = phi ptr [ %lb.095.i, %for.body.lr.ph.i536 ], [ %lb.0.i, %for.cond.i ] - %856 = load i8, ptr %lb.097.i, align 8 - %857 = and i8 %856, 1 - %tobool1.not.i = icmp eq i8 %857, 0 + %855 = load i8, ptr %lb.097.i, align 8 + %856 = and i8 %855, 1 + %tobool1.not.i = icmp eq i8 %856, 0 %oi.i10.i = getelementptr inbounds %struct.TCGLabelQemuLdst, ptr %lb.097.i, i64 0, i32 1 - %858 = load i32, ptr %oi.i10.i, align 4 - %shr.i.i11.i = lshr i32 %858, 4 + %857 = load i32, ptr %oi.i10.i, align 4 + %shr.i.i11.i = lshr i32 %857, 4 %label_ptr1.i12.i = getelementptr inbounds %struct.TCGLabelQemuLdst, ptr %lb.097.i, i64 0, i32 8 - %859 = load ptr, ptr %label_ptr1.i12.i, align 8 - %sub.ptr.lhs.cast.i14.i = ptrtoint ptr %855 to i64 - %sub.ptr.rhs.cast.i15.i = ptrtoint ptr %859 to i64 + %858 = load ptr, ptr %label_ptr1.i12.i, align 8 + %sub.ptr.lhs.cast.i14.i = ptrtoint ptr %854 to i64 + %sub.ptr.rhs.cast.i15.i = ptrtoint ptr %858 to i64 %sub.ptr.sub.i16.i = sub i64 %sub.ptr.lhs.cast.i14.i, %sub.ptr.rhs.cast.i15.i - %860 = trunc i64 %sub.ptr.sub.i16.i to i32 - %conv.i17.i = add i32 %860, -4 - store i32 %conv.i17.i, ptr %859, align 1 + %859 = trunc i64 %sub.ptr.sub.i16.i to i32 + %conv.i17.i = add i32 %859, -4 + store i32 %conv.i17.i, ptr %858, align 1 %arrayidx4.i18.i = getelementptr %struct.TCGLabelQemuLdst, ptr %lb.097.i, i64 0, i32 8, i64 1 - %861 = load ptr, ptr %arrayidx4.i18.i, align 8 - %tobool.not.i19.i = icmp eq ptr %861, null + %860 = load ptr, ptr %arrayidx4.i18.i, align 8 + %tobool.not.i19.i = icmp eq ptr %860, null br i1 %tobool1.not.i, label %cond.false.i, label %cond.true.i539 cond.true.i539: ; preds = %for.body.i538 br i1 %tobool.not.i19.i, label %if.end.i.i542, label %if.then.i.i540 if.then.i.i540: ; preds = %cond.true.i539 - %862 = load ptr, ptr %code_ptr, align 8 - %sub.ptr.lhs.cast8.i.i = ptrtoint ptr %862 to i64 - %sub.ptr.rhs.cast9.i.i = ptrtoint ptr %861 to i64 + %861 = load ptr, ptr %code_ptr, align 8 + %sub.ptr.lhs.cast8.i.i = ptrtoint ptr %861 to i64 + %sub.ptr.rhs.cast9.i.i = ptrtoint ptr %860 to i64 %sub.ptr.sub10.i.i = sub i64 %sub.ptr.lhs.cast8.i.i, %sub.ptr.rhs.cast9.i.i - %863 = trunc i64 %sub.ptr.sub10.i.i to i32 - %conv12.i.i541 = add i32 %863, -4 - store i32 %conv12.i.i541, ptr %861, align 1 + %862 = trunc i64 %sub.ptr.sub10.i.i to i32 + %conv12.i.i541 = add i32 %862, -4 + store i32 %conv12.i.i541, ptr %860, align 1 br label %if.end.i.i542 if.end.i.i542: ; preds = %if.then.i.i540, %cond.true.i539 call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %mov.i.i.i) - %864 = load i32, ptr %oi.i10.i, align 4 - %shr.i.i.i.i543 = lshr i32 %864, 4 + %863 = load i32, ptr %oi.i10.i, align 4 + %shr.i.i.i.i543 = lshr i32 %863, 4 %and.i.i.i544 = and i32 %shr.i.i.i.i543, 7 - %865 = icmp ult i32 %and.i.i.i544, 5 - br i1 %865, label %switch.lookup, label %do.body.i.i.i580 + %864 = icmp ult i32 %and.i.i.i544, 5 + br i1 %864, label %switch.lookup, label %do.body.i.i.i580 do.body.i.i.i580: ; preds = %if.end.i.i542 tail call void @g_assertion_message_expr(ptr noundef null, ptr noundef nonnull @.str.1, i32 noundef 5771, ptr noundef nonnull @__func__.tcg_out_ld_helper_args, ptr noundef null) #27 unreachable switch.lookup: ; preds = %if.end.i.i542 - %866 = zext nneg i32 %and.i.i.i544 to i64 - %switch.gep = getelementptr inbounds [5 x ptr], ptr @switch.table.tcg_gen_code, i64 0, i64 %866 + %865 = zext nneg i32 %and.i.i.i544 to i64 + %switch.gep = getelementptr inbounds [5 x ptr], ptr @switch.table.tcg_gen_code, i64 0, i64 %865 %switch.load = load ptr, ptr %switch.gep, align 8 %arrayidx.i.i.i547 = getelementptr %struct.TCGHelperInfo, ptr %switch.load, i64 0, i32 4, i64 1 - %867 = load i32, ptr %addr_type.i.i.i, align 4 + %866 = load i32, ptr %addr_type.i.i.i, align 4 %addrlo_reg.i.i.i = getelementptr inbounds %struct.TCGLabelQemuLdst, ptr %lb.097.i, i64 0, i32 3 - %868 = load i32, ptr %addrlo_reg.i.i.i, align 4 + %867 = load i32, ptr %addrlo_reg.i.i.i, align 4 %bf.load.i.i.i.i = load i32, ptr %arrayidx.i.i.i547, align 4 %trunc.i.i.i.i = trunc i32 %bf.load.i.i.i.i to i8 switch i8 %trunc.i.i.i.i, label %do.body.i.i.i.i579 [ @@ -13531,7 +13529,7 @@ switch.lookup: ; preds = %if.end.i.i542 ] sw.bb.i.i.i.i: ; preds = %switch.lookup - %cmp1.i.i.i.i578 = icmp eq i32 %867, 0 + %cmp1.i.i.i.i578 = icmp eq i32 %866, 0 %cond.i.i.i.i = select i1 %cmp1.i.i.i.i578, i32 2, i32 3 br label %tcg_out_helper_add_mov.exit.i.i.i @@ -13548,8 +13546,8 @@ tcg_out_helper_add_mov.exit.i.i.i: ; preds = %sw.bb3.i.i.i.i548, %bf.clear5.i.i.i.i = and i32 %bf.lshr.i.i.i.i549, 255 store i32 %bf.clear5.i.i.i.i, ptr %mov.i.i.i, align 16 store i32 1, ptr %dst_type7.i.i.i.i, align 8 - store i32 %868, ptr %src.i.i.i.i, align 4 - store i32 %867, ptr %src_type41.i.i.i.i, align 4 + store i32 %867, ptr %src.i.i.i.i, align 4 + store i32 %866, ptr %src_type41.i.i.i.i, align 4 store i32 %src_ext.0.i.i.i.i, ptr %src_ext43.i.i.i.i, align 16 call fastcc void @tcg_out_helper_load_slots(ptr noundef nonnull %s, i32 noundef 1, ptr noundef nonnull %mov.i.i.i) %out_kind.i.i.i = getelementptr inbounds %struct.TCGHelperInfo, ptr %switch.load, i64 0, i32 3 @@ -13563,22 +13561,22 @@ tcg_out_helper_add_mov.exit.i.i.i: ; preds = %sw.bb3.i.i.i.i548, ] sw.bb6.i.i.i: ; preds = %tcg_out_helper_add_mov.exit.i.i.i - %869 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i37.i.i.i.i.i = getelementptr i8, ptr %869, i64 1 + %868 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i37.i.i.i.i.i = getelementptr i8, ptr %868, i64 1 store ptr %incdec.ptr.i37.i.i.i.i.i, ptr %code_ptr, align 8 - store i8 72, ptr %869, align 1 - %870 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i45.i.i.i.i.i = getelementptr i8, ptr %870, i64 1 + store i8 72, ptr %868, align 1 + %869 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i45.i.i.i.i.i = getelementptr i8, ptr %869, i64 1 store ptr %incdec.ptr.i45.i.i.i.i.i, ptr %code_ptr, align 8 - store i8 -115, ptr %870, align 1 - %871 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i49.i.i.i.i = getelementptr i8, ptr %871, i64 1 + store i8 -115, ptr %869, align 1 + %870 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i49.i.i.i.i = getelementptr i8, ptr %870, i64 1 store ptr %incdec.ptr.i49.i.i.i.i, ptr %code_ptr, align 8 - store i8 60, ptr %871, align 1 - %872 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i51.i.i.i.i = getelementptr i8, ptr %872, i64 1 + store i8 60, ptr %870, align 1 + %871 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i51.i.i.i.i = getelementptr i8, ptr %871, i64 1 store ptr %incdec.ptr.i51.i.i.i.i, ptr %code_ptr, align 8 - store i8 36, ptr %872, align 1 + store i8 36, ptr %871, align 1 br label %tcg_out_ld_helper_args.exit.i.i do.body19.i.i.i: ; preds = %tcg_out_helper_add_mov.exit.i.i.i @@ -13591,69 +13589,69 @@ tcg_out_ld_helper_args.exit.i.i: ; preds = %sw.bb6.i.i.i, %tcg_ %and.i.i552 = and i32 %shr.i.i11.i, 7 %idxprom.i.i553 = zext nneg i32 %and.i.i552 to i64 %arrayidx13.i.i = getelementptr [16 x ptr], ptr @qemu_ld_helpers, i64 0, i64 %idxprom.i.i553 - %873 = load ptr, ptr %arrayidx13.i.i, align 8 + %872 = load ptr, ptr %arrayidx13.i.i, align 8 %s.val.i.i.i554 = load ptr, ptr %code_ptr, align 8 %tobool.not.i.i.i.i.i555 = icmp eq ptr %s.val.i.i.i554, null - %874 = load i64, ptr @tcg_splitwx_diff, align 8 - %add.ptr.i.i.i.i.i556 = getelementptr i8, ptr %s.val.i.i.i554, i64 %874 + %873 = load i64, ptr @tcg_splitwx_diff, align 8 + %add.ptr.i.i.i.i.i556 = getelementptr i8, ptr %s.val.i.i.i554, i64 %873 %cond.i.i.i.i.i557 = select i1 %tobool.not.i.i.i.i.i555, ptr null, ptr %add.ptr.i.i.i.i.i556 - %sub.ptr.lhs.cast.i.i.i.i.i558 = ptrtoint ptr %873 to i64 + %sub.ptr.lhs.cast.i.i.i.i.i558 = ptrtoint ptr %872 to i64 %sub.ptr.rhs.cast.i.i.i.i.i559 = ptrtoint ptr %cond.i.i.i.i.i557 to i64 %sub.ptr.sub.i.i.i.i.i560 = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i558, %sub.ptr.rhs.cast.i.i.i.i.i559 - %875 = add i64 %sub.ptr.sub.i.i.i.i.i560, 2147483643 - %cmp.i.i.i561 = icmp ult i64 %875, 4294967296 + %874 = add i64 %sub.ptr.sub.i.i.i.i.i560, 2147483643 + %cmp.i.i.i561 = icmp ult i64 %874, 4294967296 br i1 %cmp.i.i.i561, label %if.then.i.i.i575, label %if.else.i.i.i562 if.then.i.i.i575: ; preds = %tcg_out_ld_helper_args.exit.i.i - %876 = trunc i64 %sub.ptr.sub.i.i.i.i.i560 to i32 - %conv.i.i.i576 = add i32 %876, -5 + %875 = trunc i64 %sub.ptr.sub.i.i.i.i.i560 to i32 + %conv.i.i.i576 = add i32 %875, -5 %incdec.ptr.i45.i.i.i.i577 = getelementptr i8, ptr %s.val.i.i.i554, i64 1 store ptr %incdec.ptr.i45.i.i.i.i577, ptr %code_ptr, align 8 store i8 -24, ptr %s.val.i.i.i554, align 1 - %877 = load ptr, ptr %code_ptr, align 8 - store i32 %conv.i.i.i576, ptr %877, align 1 + %876 = load ptr, ptr %code_ptr, align 8 + store i32 %conv.i.i.i576, ptr %876, align 1 br label %tcg_out_branch.exit.i.i if.else.i.i.i562: ; preds = %tcg_out_ld_helper_args.exit.i.i %incdec.ptr.i45.i13.i.i.i563 = getelementptr i8, ptr %s.val.i.i.i554, i64 1 store ptr %incdec.ptr.i45.i13.i.i.i563, ptr %code_ptr, align 8 store i8 -1, ptr %s.val.i.i.i554, align 1 - %878 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i.i.i564 = getelementptr i8, ptr %878, i64 1 + %877 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i.i.i564 = getelementptr i8, ptr %877, i64 1 store ptr %incdec.ptr.i.i.i.i564, ptr %code_ptr, align 8 - store i8 21, ptr %878, align 1 + store i8 21, ptr %877, align 1 + %878 = load ptr, ptr %code_ptr, align 8 + tail call fastcc void @new_pool_label(ptr noundef nonnull %s, i64 noundef %sub.ptr.lhs.cast.i.i.i.i.i558, ptr noundef %878) %879 = load ptr, ptr %code_ptr, align 8 - tail call fastcc void @new_pool_label(ptr noundef nonnull %s, i64 noundef %sub.ptr.lhs.cast.i.i.i.i.i558, ptr noundef %879) - %880 = load ptr, ptr %code_ptr, align 8 - store i32 0, ptr %880, align 1 + store i32 0, ptr %879, align 1 br label %tcg_out_branch.exit.i.i tcg_out_branch.exit.i.i: ; preds = %if.else.i.i.i562, %if.then.i.i.i575 - %.pn.i.i.i565 = phi ptr [ %880, %if.else.i.i.i562 ], [ %877, %if.then.i.i.i575 ] + %.pn.i.i.i565 = phi ptr [ %879, %if.else.i.i.i562 ], [ %876, %if.then.i.i.i575 ] %storemerge.i.i.i566 = getelementptr i8, ptr %.pn.i.i.i565, i64 4 store ptr %storemerge.i.i.i566, ptr %code_ptr, align 8 call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %mov.i14.i.i) %type.i.i.i = getelementptr inbounds %struct.TCGLabelQemuLdst, ptr %lb.097.i, i64 0, i32 2 - %881 = load i32, ptr %type.i.i.i, align 8 - switch i32 %881, label %do.body19.i19.i.i [ + %880 = load i32, ptr %type.i.i.i, align 8 + switch i32 %880, label %do.body19.i19.i.i [ i32 1, label %sw.bb1.i15.i.i i32 0, label %sw.bb1.i15.i.i i32 2, label %do.end.i.i.i ] sw.bb1.i15.i.i: ; preds = %tcg_out_branch.exit.i.i, %tcg_out_branch.exit.i.i - %882 = load i32, ptr %oi.i10.i, align 4 - %shr.i.i17.i.i = lshr i32 %882, 4 + %881 = load i32, ptr %oi.i10.i, align 4 + %shr.i.i17.i.i = lshr i32 %881, 4 %datalo_reg.i.i.i = getelementptr inbounds %struct.TCGLabelQemuLdst, ptr %lb.097.i, i64 0, i32 5 - %883 = load i32, ptr %datalo_reg.i.i.i, align 4 - store i32 %883, ptr %mov.i14.i.i, align 16 + %882 = load i32, ptr %datalo_reg.i.i.i, align 4 + store i32 %882, ptr %mov.i14.i.i, align 16 store i32 0, ptr %src26.i.i.i, align 4 - store i32 %881, ptr %dst_type28.i.i.i, align 8 + store i32 %880, ptr %dst_type28.i.i.i, align 8 store i32 1, ptr %src_type30.i.i.i, align 4 - %884 = and i32 %882, 128 - %tobool7.not.i.i.i = icmp eq i32 %884, 0 + %883 = and i32 %881, 128 + %tobool7.not.i.i.i = icmp eq i32 %883, 0 %and14.i.i.i = and i32 %shr.i.i17.i.i, 15 - %cmp.i18.i.i = icmp eq i32 %881, 0 + %cmp.i18.i.i = icmp eq i32 %880, 0 %..i.i.i = select i1 %cmp.i18.i.i, i32 2, i32 3 %.sink.i.i.i = select i1 %tobool7.not.i.i.i, i32 %..i.i.i, i32 %and14.i.i.i store i32 %.sink.i.i.i, ptr %src_ext32.i.i.i, align 16 @@ -13662,12 +13660,12 @@ sw.bb1.i15.i.i: ; preds = %tcg_out_branch.exit do.end.i.i.i: ; preds = %tcg_out_branch.exit.i.i %datalo_reg21.i.i.i = getelementptr inbounds %struct.TCGLabelQemuLdst, ptr %lb.097.i, i64 0, i32 5 - %885 = load i32, ptr %datalo_reg21.i.i.i, align 4 - store i32 %885, ptr %mov.i14.i.i, align 16 + %884 = load i32, ptr %datalo_reg21.i.i.i, align 4 + store i32 %884, ptr %mov.i14.i.i, align 16 store <4 x i32> , ptr %src26.i.i.i, align 4 %datahi_reg.i.i.i = getelementptr inbounds %struct.TCGLabelQemuLdst, ptr %lb.097.i, i64 0, i32 6 - %886 = load i32, ptr %datahi_reg.i.i.i, align 8 - store i32 %886, ptr %arrayidx33.i.i.i, align 4 + %885 = load i32, ptr %datahi_reg.i.i.i, align 8 + store i32 %885, ptr %arrayidx33.i.i.i, align 4 store <4 x i32> , ptr %src37.i.i.i, align 8 call fastcc void @tcg_out_movext2(ptr noundef nonnull %s, ptr noundef nonnull %mov.i14.i.i, ptr noundef nonnull %arrayidx33.i.i.i) br label %tcg_out_ld_helper_ret.exit.i.i @@ -13679,60 +13677,60 @@ do.body19.i19.i.i: ; preds = %tcg_out_branch.exit tcg_out_ld_helper_ret.exit.i.i: ; preds = %do.end.i.i.i, %sw.bb1.i15.i.i call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %mov.i14.i.i) %raddr.i.i = getelementptr inbounds %struct.TCGLabelQemuLdst, ptr %lb.097.i, i64 0, i32 7 - %887 = load ptr, ptr %raddr.i.i, align 8 + %886 = load ptr, ptr %raddr.i.i, align 8 %s.val.i.i.i.i = load ptr, ptr %code_ptr, align 8 %tobool.not.i.i.i.i.i.i = icmp eq ptr %s.val.i.i.i.i, null - %888 = load i64, ptr @tcg_splitwx_diff, align 8 - %add.ptr.i.i.i.i.i.i = getelementptr i8, ptr %s.val.i.i.i.i, i64 %888 + %887 = load i64, ptr @tcg_splitwx_diff, align 8 + %add.ptr.i.i.i.i.i.i = getelementptr i8, ptr %s.val.i.i.i.i, i64 %887 %cond.i.i.i.i.i.i = select i1 %tobool.not.i.i.i.i.i.i, ptr null, ptr %add.ptr.i.i.i.i.i.i - %sub.ptr.lhs.cast.i.i.i.i.i.i = ptrtoint ptr %887 to i64 + %sub.ptr.lhs.cast.i.i.i.i.i.i = ptrtoint ptr %886 to i64 %sub.ptr.rhs.cast.i.i.i.i.i.i = ptrtoint ptr %cond.i.i.i.i.i.i to i64 %sub.ptr.sub.i.i.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i.i.i - %889 = add i64 %sub.ptr.sub.i.i.i.i.i.i, 2147483643 - %cmp.i.i.i.i567 = icmp ult i64 %889, 4294967296 + %888 = add i64 %sub.ptr.sub.i.i.i.i.i.i, 2147483643 + %cmp.i.i.i.i567 = icmp ult i64 %888, 4294967296 br i1 %cmp.i.i.i.i567, label %if.then.i.i.i.i573, label %if.else.i.i.i.i if.then.i.i.i.i573: ; preds = %tcg_out_ld_helper_ret.exit.i.i - %890 = trunc i64 %sub.ptr.sub.i.i.i.i.i.i to i32 - %conv.i.i.i.i574 = add i32 %890, -5 + %889 = trunc i64 %sub.ptr.sub.i.i.i.i.i.i to i32 + %conv.i.i.i.i574 = add i32 %889, -5 %incdec.ptr.i45.i.i.i20.i.i = getelementptr i8, ptr %s.val.i.i.i.i, i64 1 store ptr %incdec.ptr.i45.i.i.i20.i.i, ptr %code_ptr, align 8 store i8 -23, ptr %s.val.i.i.i.i, align 1 - %891 = load ptr, ptr %code_ptr, align 8 - store i32 %conv.i.i.i.i574, ptr %891, align 1 + %890 = load ptr, ptr %code_ptr, align 8 + store i32 %conv.i.i.i.i574, ptr %890, align 1 br label %if.end.i569 if.else.i.i.i.i: ; preds = %tcg_out_ld_helper_ret.exit.i.i %incdec.ptr.i45.i13.i.i.i.i = getelementptr i8, ptr %s.val.i.i.i.i, i64 1 store ptr %incdec.ptr.i45.i13.i.i.i.i, ptr %code_ptr, align 8 store i8 -1, ptr %s.val.i.i.i.i, align 1 - %892 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i.i.i.i568 = getelementptr i8, ptr %892, i64 1 + %891 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i.i.i.i568 = getelementptr i8, ptr %891, i64 1 store ptr %incdec.ptr.i.i.i.i.i568, ptr %code_ptr, align 8 - store i8 37, ptr %892, align 1 + store i8 37, ptr %891, align 1 + %892 = load ptr, ptr %code_ptr, align 8 + tail call fastcc void @new_pool_label(ptr noundef nonnull %s, i64 noundef %sub.ptr.lhs.cast.i.i.i.i.i.i, ptr noundef %892) %893 = load ptr, ptr %code_ptr, align 8 - tail call fastcc void @new_pool_label(ptr noundef nonnull %s, i64 noundef %sub.ptr.lhs.cast.i.i.i.i.i.i, ptr noundef %893) - %894 = load ptr, ptr %code_ptr, align 8 - store i32 0, ptr %894, align 1 + store i32 0, ptr %893, align 1 br label %if.end.i569 cond.false.i: ; preds = %for.body.i538 br i1 %tobool.not.i19.i, label %if.end.i25.i, label %if.then.i20.i if.then.i20.i: ; preds = %cond.false.i - %895 = load ptr, ptr %code_ptr, align 8 - %sub.ptr.lhs.cast8.i21.i = ptrtoint ptr %895 to i64 - %sub.ptr.rhs.cast9.i22.i = ptrtoint ptr %861 to i64 + %894 = load ptr, ptr %code_ptr, align 8 + %sub.ptr.lhs.cast8.i21.i = ptrtoint ptr %894 to i64 + %sub.ptr.rhs.cast9.i22.i = ptrtoint ptr %860 to i64 %sub.ptr.sub10.i23.i = sub i64 %sub.ptr.lhs.cast8.i21.i, %sub.ptr.rhs.cast9.i22.i - %896 = trunc i64 %sub.ptr.sub10.i23.i to i32 - %conv12.i24.i = add i32 %896, -4 - store i32 %conv12.i24.i, ptr %861, align 1 + %895 = trunc i64 %sub.ptr.sub10.i23.i to i32 + %conv12.i24.i = add i32 %895, -4 + store i32 %conv12.i24.i, ptr %860, align 1 br label %if.end.i25.i if.end.i25.i: ; preds = %if.then.i20.i, %cond.false.i call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %mov.i.i9.i) - %897 = load i32, ptr %oi.i10.i, align 4 - %shr.i.i.i26.i = lshr i32 %897, 4 + %896 = load i32, ptr %oi.i10.i, align 4 + %shr.i.i.i26.i = lshr i32 %896, 4 %and.i.i27.i = and i32 %shr.i.i.i26.i, 7 switch i32 %and.i.i27.i, label %do.body.i.i94.i [ i32 0, label %sw.epilog.i.i29.i @@ -13758,9 +13756,9 @@ sw.epilog.i.i29.i: ; preds = %sw.bb2.i.i28.i, %sw %data_type.0.i.i.i = phi i32 [ 2, %sw.bb2.i.i28.i ], [ 1, %sw.bb1.i.i93.i ], [ 0, %if.end.i25.i ], [ 0, %if.end.i25.i ], [ 0, %if.end.i25.i ] %info.0.i.i32.i = phi ptr [ @info_helper_st128_mmu, %sw.bb2.i.i28.i ], [ @info_helper_st64_mmu, %sw.bb1.i.i93.i ], [ @info_helper_st32_mmu, %if.end.i25.i ], [ @info_helper_st32_mmu, %if.end.i25.i ], [ @info_helper_st32_mmu, %if.end.i25.i ] %arrayidx.i.i33.i = getelementptr %struct.TCGHelperInfo, ptr %info.0.i.i32.i, i64 0, i32 4, i64 1 - %898 = load i32, ptr %addr_type.i.i.i, align 4 + %897 = load i32, ptr %addr_type.i.i.i, align 4 %addrlo_reg.i.i35.i = getelementptr inbounds %struct.TCGLabelQemuLdst, ptr %lb.097.i, i64 0, i32 3 - %899 = load i32, ptr %addrlo_reg.i.i35.i, align 4 + %898 = load i32, ptr %addrlo_reg.i.i35.i, align 4 %bf.load.i.i.i36.i = load i32, ptr %arrayidx.i.i33.i, align 4 %trunc.i.i.i37.i = trunc i32 %bf.load.i.i.i36.i to i8 switch i8 %trunc.i.i.i37.i, label %do.body.i.i.i92.i [ @@ -13770,7 +13768,7 @@ sw.epilog.i.i29.i: ; preds = %sw.bb2.i.i28.i, %sw ] sw.bb.i.i.i89.i: ; preds = %sw.epilog.i.i29.i - %cmp1.i.i.i90.i = icmp eq i32 %898, 0 + %cmp1.i.i.i90.i = icmp eq i32 %897, 0 %cond.i.i.i91.i = select i1 %cmp1.i.i.i90.i, i32 2, i32 3 br label %tcg_out_helper_add_mov.exit.i.i39.i @@ -13787,8 +13785,8 @@ tcg_out_helper_add_mov.exit.i.i39.i: ; preds = %sw.bb3.i.i.i38.i, % %bf.clear5.i.i.i42.i = and i32 %bf.lshr.i.i.i41.i, 255 store i32 %bf.clear5.i.i.i42.i, ptr %mov.i.i9.i, align 16 store i32 1, ptr %dst_type7.i.i.i43.i, align 8 - store i32 %899, ptr %src.i.i.i44.i, align 4 - store i32 %898, ptr %src_type41.i.i.i45.i, align 4 + store i32 %898, ptr %src.i.i.i44.i, align 4 + store i32 %897, ptr %src_type41.i.i.i45.i, align 4 store i32 %src_ext.0.i.i.i40.i, ptr %src_ext43.i.i.i46.i, align 16 %arrayidx7.i.i.i = getelementptr %struct.TCGHelperInfo, ptr %info.0.i.i32.i, i64 0, i32 4, i64 2 %bf.load.i.i47.i = load i32, ptr %arrayidx7.i.i.i, align 8 @@ -13802,9 +13800,9 @@ tcg_out_helper_add_mov.exit.i.i39.i: ; preds = %sw.bb3.i.i.i38.i, % sw.bb8.i.i.i: ; preds = %tcg_out_helper_add_mov.exit.i.i39.i, %tcg_out_helper_add_mov.exit.i.i39.i, %tcg_out_helper_add_mov.exit.i.i39.i %type.i.i85.i = getelementptr inbounds %struct.TCGLabelQemuLdst, ptr %lb.097.i, i64 0, i32 2 - %900 = load i32, ptr %type.i.i85.i, align 8 + %899 = load i32, ptr %type.i.i85.i, align 8 %datalo_reg.i.i86.i = getelementptr inbounds %struct.TCGLabelQemuLdst, ptr %lb.097.i, i64 0, i32 5 - %901 = load i32, ptr %datalo_reg.i.i86.i, align 4 + %900 = load i32, ptr %datalo_reg.i.i86.i, align 4 br i1 %cmp.i.i.i31.i, label %if.then.i.i.i88.i, label %if.end15.i.i.i.i if.then.i.i.i88.i: ; preds = %sw.bb8.i.i.i @@ -13815,7 +13813,7 @@ if.then.i.i.i88.i: ; preds = %sw.bb8.i.i.i ] sw.bb.i56.i.i.i: ; preds = %if.then.i.i.i88.i - %cmp1.i57.i.i.i = icmp eq i32 %900, 0 + %cmp1.i57.i.i.i = icmp eq i32 %899, 0 %cond.i58.i.i.i = select i1 %cmp1.i57.i.i.i, i32 2, i32 3 br label %sw.epilog.i.i.i.i @@ -13833,16 +13831,16 @@ sw.epilog.i.i.i.i: ; preds = %sw.bb3.i50.i.i.i, % %bf.clear5.i53.i.i.i = and i32 %bf.lshr.i52.i.i.i, 255 store i32 %bf.clear5.i53.i.i.i, ptr %add.ptr.i.i.i537, align 4 store i32 %dst_type.addr.0.i.i.i.i, ptr %dst_type25.i.i.i.i, align 4 - store i32 %901, ptr %src23.i.i.i.i, align 8 + store i32 %900, ptr %src23.i.i.i.i, align 8 br label %tcg_out_helper_add_mov.exit60.i.i.i if.end15.i.i.i.i: ; preds = %sw.bb8.i.i.i %datahi_reg.i.i87.i = getelementptr inbounds %struct.TCGLabelQemuLdst, ptr %lb.097.i, i64 0, i32 6 - %902 = load i32, ptr %datahi_reg.i.i87.i, align 8 + %901 = load i32, ptr %datahi_reg.i.i87.i, align 8 %bf.lshr18.i.i.i.i = lshr i32 %bf.load.i.i47.i, 8 %bf.clear19.i.i.i.i = and i32 %bf.lshr18.i.i.i.i, 255 store i32 %bf.clear19.i.i.i.i, ptr %add.ptr.i.i.i537, align 4 - store i32 %901, ptr %src23.i.i.i.i, align 8 + store i32 %900, ptr %src23.i.i.i.i, align 8 store i32 1, ptr %dst_type25.i.i.i.i, align 4 store i32 1, ptr %src_type27.i.i.i.i, align 16 store i32 3, ptr %src_ext29.i.i.i.i, align 4 @@ -13851,13 +13849,13 @@ if.end15.i.i.i.i: ; preds = %sw.bb8.i.i.i %bf.lshr32.i.i.i.i = lshr i32 %bf.load31.i.i.i.i, 8 %bf.clear33.i.i.i.i = and i32 %bf.lshr32.i.i.i.i, 255 store i32 %bf.clear33.i.i.i.i, ptr %arrayidx34.i.i.i.i, align 8 - store i32 %902, ptr %src37.i.i.i.i, align 4 + store i32 %901, ptr %src37.i.i.i.i, align 4 store i32 1, ptr %dst_type39.i.i.i.i, align 16 br label %tcg_out_helper_add_mov.exit60.i.i.i tcg_out_helper_add_mov.exit60.i.i.i: ; preds = %if.end15.i.i.i.i, %sw.epilog.i.i.i.i %.sink25.i.i.i.i = phi i64 [ 1, %if.end15.i.i.i.i ], [ 0, %sw.epilog.i.i.i.i ] - %.sink24.i.i.i.i = phi i32 [ 1, %if.end15.i.i.i.i ], [ %900, %sw.epilog.i.i.i.i ] + %.sink24.i.i.i.i = phi i32 [ 1, %if.end15.i.i.i.i ], [ %899, %sw.epilog.i.i.i.i ] %.sink.i.i.i.i = phi i32 [ 3, %if.end15.i.i.i.i ], [ %src_ext.0.i51.i.i.i, %sw.epilog.i.i.i.i ] %retval.0.i.i.i.i = phi i32 [ 2, %if.end15.i.i.i.i ], [ 1, %sw.epilog.i.i.i.i ] %src_type41.i47.i.i.i = getelementptr %struct.TCGMovExtend, ptr %add.ptr.i.i.i537, i64 %.sink25.i.i.i.i, i32 3 @@ -13872,237 +13870,237 @@ tcg_out_helper_add_mov.exit60.i.i.i: ; preds = %if.end15.i.i.i.i, % do.body17.i.i.i: ; preds = %tcg_out_helper_add_mov.exit.i.i39.i tail call void @llvm.assume(i1 %cmp.i.i30.i) %datalo_reg19.i.i.i = getelementptr inbounds %struct.TCGLabelQemuLdst, ptr %lb.097.i, i64 0, i32 5 - %903 = load i32, ptr %datalo_reg19.i.i.i, align 4 - %904 = lshr i32 %bf.load.i.i47.i, 13 - %sub.i.i.i.i581 = and i32 %904, 2040 - %905 = add nsw i32 %sub.i.i.i.i581, -48 - %cmp2.i.i.i.i = icmp ult i32 %903, 16 + %902 = load i32, ptr %datalo_reg19.i.i.i, align 4 + %903 = lshr i32 %bf.load.i.i47.i, 13 + %sub.i.i.i.i581 = and i32 %903, 2040 + %904 = add nsw i32 %sub.i.i.i.i581, -48 + %cmp2.i.i.i.i = icmp ult i32 %902, 16 br i1 %cmp2.i.i.i.i, label %if.then3.i.i.i.i582, label %do.body.i61.i.i.i if.then3.i.i.i.i582: ; preds = %do.body17.i.i.i - %906 = trunc i32 %903 to i8 - %907 = lshr i8 %906, 1 - %908 = and i8 %907, 4 - %conv.i50.i.i.i.i = or disjoint i8 %908, 72 - %909 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i37.i52.i.i.i.i = getelementptr i8, ptr %909, i64 1 + %905 = trunc i32 %902 to i8 + %906 = lshr i8 %905, 1 + %907 = and i8 %906, 4 + %conv.i50.i.i.i.i = or disjoint i8 %907, 72 + %908 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i37.i52.i.i.i.i = getelementptr i8, ptr %908, i64 1 store ptr %incdec.ptr.i37.i52.i.i.i.i, ptr %code_ptr, align 8 - store i8 %conv.i50.i.i.i.i, ptr %909, align 1 - %910 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i45.i54.i.i.i.i = getelementptr i8, ptr %910, i64 1 + store i8 %conv.i50.i.i.i.i, ptr %908, align 1 + %909 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i45.i54.i.i.i.i = getelementptr i8, ptr %909, i64 1 store ptr %incdec.ptr.i45.i54.i.i.i.i, ptr %code_ptr, align 8 - store i8 -119, ptr %910, align 1 - %cmp25.i85.not.i.i.i = icmp eq i32 %905, 0 - %cmp35.i106.i.i.i = icmp ugt i32 %905, 127 + store i8 -119, ptr %909, align 1 + %cmp25.i85.not.i.i.i = icmp eq i32 %904, 0 + %cmp35.i106.i.i.i = icmp ugt i32 %904, 127 %..i107.i.i.i = select i1 %cmp35.i106.i.i.i, i32 128, i32 64 %mod.0.i87.i.i.i = select i1 %cmp25.i85.not.i.i.i, i32 0, i32 %..i107.i.i.i - %911 = add nsw i32 %sub.i.i.i.i581, -49 - %cmp80.i88.i.i.i = icmp ult i32 %911, 127 - %and67.i98.i.i.i = shl nuw nsw i32 %903, 3 + %910 = add nsw i32 %sub.i.i.i.i581, -49 + %cmp80.i88.i.i.i = icmp ult i32 %910, 127 + %and67.i98.i.i.i = shl nuw nsw i32 %902, 3 %shl68.i99.i.i.i = and i32 %and67.i98.i.i.i, 56 %or69.i100.i.i.i = or disjoint i32 %shl68.i99.i.i.i, %mod.0.i87.i.i.i - %912 = trunc i32 %or69.i100.i.i.i to i8 - %conv71.i101.i.i.i = or disjoint i8 %912, 4 - %913 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i49.i103.i.i.i = getelementptr i8, ptr %913, i64 1 + %911 = trunc i32 %or69.i100.i.i.i to i8 + %conv71.i101.i.i.i = or disjoint i8 %911, 4 + %912 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i49.i103.i.i.i = getelementptr i8, ptr %912, i64 1 store ptr %incdec.ptr.i49.i103.i.i.i, ptr %code_ptr, align 8 - store i8 %conv71.i101.i.i.i, ptr %913, align 1 - %914 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i51.i104.i.i.i = getelementptr i8, ptr %914, i64 1 + store i8 %conv71.i101.i.i.i, ptr %912, align 1 + %913 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i51.i104.i.i.i = getelementptr i8, ptr %913, i64 1 store ptr %incdec.ptr.i51.i104.i.i.i, ptr %code_ptr, align 8 - store i8 36, ptr %914, align 1 + store i8 36, ptr %913, align 1 br i1 %cmp80.i88.i.i.i, label %if.then82.i94.i.i.i, label %if.else84.i90.i.i.i if.then82.i94.i.i.i: ; preds = %if.then3.i.i.i.i582 - %conv83.i95.i.i.i = trunc i32 %905 to i8 - %915 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i53.i97.i.i.i = getelementptr i8, ptr %915, i64 1 + %conv83.i95.i.i.i = trunc i32 %904 to i8 + %914 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i53.i97.i.i.i = getelementptr i8, ptr %914, i64 1 store ptr %incdec.ptr.i53.i97.i.i.i, ptr %code_ptr, align 8 - store i8 %conv83.i95.i.i.i, ptr %915, align 1 + store i8 %conv83.i95.i.i.i, ptr %914, align 1 br label %tcg_out_st.exit.i.i.i if.else84.i90.i.i.i: ; preds = %if.then3.i.i.i.i582 br i1 %cmp35.i106.i.i.i, label %if.then87.i91.i.i.i, label %tcg_out_st.exit.i.i.i if.then87.i91.i.i.i: ; preds = %if.else84.i90.i.i.i - %916 = load ptr, ptr %code_ptr, align 8 - store i32 %905, ptr %916, align 1 - %add.ptr.i55.i93.i.i.i = getelementptr i8, ptr %916, i64 4 + %915 = load ptr, ptr %code_ptr, align 8 + store i32 %904, ptr %915, align 1 + %add.ptr.i55.i93.i.i.i = getelementptr i8, ptr %915, i64 4 store ptr %add.ptr.i55.i93.i.i.i, ptr %code_ptr, align 8 br label %tcg_out_st.exit.i.i.i do.body.i61.i.i.i: ; preds = %do.body17.i.i.i - %917 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i29.i73.i.i.i.i = getelementptr i8, ptr %917, i64 1 + %916 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i29.i73.i.i.i.i = getelementptr i8, ptr %916, i64 1 store ptr %incdec.ptr.i29.i73.i.i.i.i, ptr %code_ptr, align 8 - %arg.tr145.i.i.i.i = trunc i32 %903 to i8 - %918 = shl i8 %arg.tr145.i.i.i.i, 4 - %919 = and i8 %918, -128 - store i8 -59, ptr %917, align 1 - %920 = xor i8 %919, -7 - %921 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i35.i69.i.i.i.i = getelementptr i8, ptr %921, i64 1 + %arg.tr145.i.i.i.i = trunc i32 %902 to i8 + %917 = shl i8 %arg.tr145.i.i.i.i, 4 + %918 = and i8 %917, -128 + store i8 -59, ptr %916, align 1 + %919 = xor i8 %918, -7 + %920 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i35.i69.i.i.i.i = getelementptr i8, ptr %920, i64 1 store ptr %incdec.ptr.i35.i69.i.i.i.i, ptr %code_ptr, align 8 - store i8 %920, ptr %921, align 1 - %922 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i37.i70.i.i.i.i = getelementptr i8, ptr %922, i64 1 + store i8 %919, ptr %920, align 1 + %921 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i37.i70.i.i.i.i = getelementptr i8, ptr %921, i64 1 store ptr %incdec.ptr.i37.i70.i.i.i.i, ptr %code_ptr, align 8 - store i8 -42, ptr %922, align 1 - %cmp25.i.not.i.i.i = icmp eq i32 %905, 0 - %cmp35.i.i.i.i = icmp ugt i32 %905, 127 + store i8 -42, ptr %921, align 1 + %cmp25.i.not.i.i.i = icmp eq i32 %904, 0 + %cmp35.i.i.i.i = icmp ugt i32 %904, 127 %..i.i.i.i = select i1 %cmp35.i.i.i.i, i32 128, i32 64 %mod.0.i.i.i.i = select i1 %cmp25.i.not.i.i.i, i32 0, i32 %..i.i.i.i - %923 = add nsw i32 %sub.i.i.i.i581, -49 - %cmp80.i.i.i.i = icmp ult i32 %923, 127 - %and67.i.i.i.i = shl i32 %903, 3 + %922 = add nsw i32 %sub.i.i.i.i581, -49 + %cmp80.i.i.i.i = icmp ult i32 %922, 127 + %and67.i.i.i.i = shl i32 %902, 3 %shl68.i.i.i.i = and i32 %and67.i.i.i.i, 56 %or69.i.i.i.i = or disjoint i32 %shl68.i.i.i.i, %mod.0.i.i.i.i - %924 = trunc i32 %or69.i.i.i.i to i8 - %conv71.i.i.i.i = or disjoint i8 %924, 4 - %925 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i49.i.i.i49.i = getelementptr i8, ptr %925, i64 1 + %923 = trunc i32 %or69.i.i.i.i to i8 + %conv71.i.i.i.i = or disjoint i8 %923, 4 + %924 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i49.i.i.i49.i = getelementptr i8, ptr %924, i64 1 store ptr %incdec.ptr.i49.i.i.i49.i, ptr %code_ptr, align 8 - store i8 %conv71.i.i.i.i, ptr %925, align 1 - %926 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i51.i.i.i50.i = getelementptr i8, ptr %926, i64 1 + store i8 %conv71.i.i.i.i, ptr %924, align 1 + %925 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i51.i.i.i50.i = getelementptr i8, ptr %925, i64 1 store ptr %incdec.ptr.i51.i.i.i50.i, ptr %code_ptr, align 8 - store i8 36, ptr %926, align 1 + store i8 36, ptr %925, align 1 br i1 %cmp80.i.i.i.i, label %if.then82.i.i.i.i, label %if.else84.i.i.i.i if.then82.i.i.i.i: ; preds = %do.body.i61.i.i.i - %conv83.i.i.i.i = trunc i32 %905 to i8 - %927 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i53.i.i.i.i = getelementptr i8, ptr %927, i64 1 + %conv83.i.i.i.i = trunc i32 %904 to i8 + %926 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i53.i.i.i.i = getelementptr i8, ptr %926, i64 1 store ptr %incdec.ptr.i53.i.i.i.i, ptr %code_ptr, align 8 - store i8 %conv83.i.i.i.i, ptr %927, align 1 + store i8 %conv83.i.i.i.i, ptr %926, align 1 br label %tcg_out_st.exit.i.i.i if.else84.i.i.i.i: ; preds = %do.body.i61.i.i.i br i1 %cmp35.i.i.i.i, label %if.then87.i.i.i.i, label %tcg_out_st.exit.i.i.i if.then87.i.i.i.i: ; preds = %if.else84.i.i.i.i - %928 = load ptr, ptr %code_ptr, align 8 - store i32 %905, ptr %928, align 1 - %add.ptr.i55.i.i.i.i = getelementptr i8, ptr %928, i64 4 + %927 = load ptr, ptr %code_ptr, align 8 + store i32 %904, ptr %927, align 1 + %add.ptr.i55.i.i.i.i = getelementptr i8, ptr %927, i64 4 store ptr %add.ptr.i55.i.i.i.i, ptr %code_ptr, align 8 br label %tcg_out_st.exit.i.i.i tcg_out_st.exit.i.i.i: ; preds = %if.then87.i.i.i.i, %if.else84.i.i.i.i, %if.then82.i.i.i.i, %if.then87.i91.i.i.i, %if.else84.i90.i.i.i, %if.then82.i94.i.i.i %datahi_reg24.i.i.i = getelementptr inbounds %struct.TCGLabelQemuLdst, ptr %lb.097.i, i64 0, i32 6 - %929 = load i32, ptr %datahi_reg24.i.i.i, align 8 + %928 = load i32, ptr %datahi_reg24.i.i.i, align 8 %arrayidx25.i.i.i = getelementptr %struct.TCGHelperInfo, ptr %info.0.i.i32.i, i64 0, i32 4, i64 3 %bf.load26.i.i.i = load i32, ptr %arrayidx25.i.i.i, align 4 - %930 = lshr i32 %bf.load26.i.i.i, 13 - %sub.i63.i.i.i = and i32 %930, 2040 - %931 = add nsw i32 %sub.i63.i.i.i, -48 - %cmp2.i64.i.i.i = icmp ult i32 %929, 16 + %929 = lshr i32 %bf.load26.i.i.i, 13 + %sub.i63.i.i.i = and i32 %929, 2040 + %930 = add nsw i32 %sub.i63.i.i.i, -48 + %cmp2.i64.i.i.i = icmp ult i32 %928, 16 br i1 %cmp2.i64.i.i.i, label %if.then3.i74.i.i.i, label %do.body.i65.i.i.i if.then3.i74.i.i.i: ; preds = %tcg_out_st.exit.i.i.i - %932 = trunc i32 %929 to i8 - %933 = lshr i8 %932, 1 - %934 = and i8 %933, 4 - %conv.i50.i77.i.i.i = or disjoint i8 %934, 72 - %935 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i37.i52.i79.i.i.i = getelementptr i8, ptr %935, i64 1 + %931 = trunc i32 %928 to i8 + %932 = lshr i8 %931, 1 + %933 = and i8 %932, 4 + %conv.i50.i77.i.i.i = or disjoint i8 %933, 72 + %934 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i37.i52.i79.i.i.i = getelementptr i8, ptr %934, i64 1 store ptr %incdec.ptr.i37.i52.i79.i.i.i, ptr %code_ptr, align 8 - store i8 %conv.i50.i77.i.i.i, ptr %935, align 1 - %936 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i45.i54.i80.i.i.i = getelementptr i8, ptr %936, i64 1 + store i8 %conv.i50.i77.i.i.i, ptr %934, align 1 + %935 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i45.i54.i80.i.i.i = getelementptr i8, ptr %935, i64 1 store ptr %incdec.ptr.i45.i54.i80.i.i.i, ptr %code_ptr, align 8 - store i8 -119, ptr %936, align 1 - %cmp25.i135.not.i.i.i = icmp eq i32 %931, 0 - %cmp35.i156.i.i.i = icmp ugt i32 %931, 127 + store i8 -119, ptr %935, align 1 + %cmp25.i135.not.i.i.i = icmp eq i32 %930, 0 + %cmp35.i156.i.i.i = icmp ugt i32 %930, 127 %..i157.i.i.i = select i1 %cmp35.i156.i.i.i, i32 128, i32 64 %mod.0.i137.i.i.i = select i1 %cmp25.i135.not.i.i.i, i32 0, i32 %..i157.i.i.i - %937 = add nsw i32 %sub.i63.i.i.i, -49 - %cmp80.i138.i.i.i = icmp ult i32 %937, 127 - %and67.i148.i.i.i = shl nuw nsw i32 %929, 3 + %936 = add nsw i32 %sub.i63.i.i.i, -49 + %cmp80.i138.i.i.i = icmp ult i32 %936, 127 + %and67.i148.i.i.i = shl nuw nsw i32 %928, 3 %shl68.i149.i.i.i = and i32 %and67.i148.i.i.i, 56 %or69.i150.i.i.i = or disjoint i32 %mod.0.i137.i.i.i, %shl68.i149.i.i.i - %938 = trunc i32 %or69.i150.i.i.i to i8 - %conv71.i151.i.i.i = or disjoint i8 %938, 4 - %939 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i49.i153.i.i.i = getelementptr i8, ptr %939, i64 1 + %937 = trunc i32 %or69.i150.i.i.i to i8 + %conv71.i151.i.i.i = or disjoint i8 %937, 4 + %938 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i49.i153.i.i.i = getelementptr i8, ptr %938, i64 1 store ptr %incdec.ptr.i49.i153.i.i.i, ptr %code_ptr, align 8 - store i8 %conv71.i151.i.i.i, ptr %939, align 1 - %940 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i51.i154.i.i.i = getelementptr i8, ptr %940, i64 1 + store i8 %conv71.i151.i.i.i, ptr %938, align 1 + %939 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i51.i154.i.i.i = getelementptr i8, ptr %939, i64 1 store ptr %incdec.ptr.i51.i154.i.i.i, ptr %code_ptr, align 8 - store i8 36, ptr %940, align 1 + store i8 36, ptr %939, align 1 br i1 %cmp80.i138.i.i.i, label %if.then82.i144.i.i.i, label %if.else84.i140.i.i.i if.then82.i144.i.i.i: ; preds = %if.then3.i74.i.i.i - %conv83.i145.i.i.i = trunc i32 %931 to i8 - %941 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i53.i147.i.i.i = getelementptr i8, ptr %941, i64 1 + %conv83.i145.i.i.i = trunc i32 %930 to i8 + %940 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i53.i147.i.i.i = getelementptr i8, ptr %940, i64 1 store ptr %incdec.ptr.i53.i147.i.i.i, ptr %code_ptr, align 8 - store i8 %conv83.i145.i.i.i, ptr %941, align 1 + store i8 %conv83.i145.i.i.i, ptr %940, align 1 br label %tcg_out_st.exit81.i.i.i if.else84.i140.i.i.i: ; preds = %if.then3.i74.i.i.i br i1 %cmp35.i156.i.i.i, label %if.then87.i141.i.i.i, label %tcg_out_st.exit81.i.i.i if.then87.i141.i.i.i: ; preds = %if.else84.i140.i.i.i - %942 = load ptr, ptr %code_ptr, align 8 - store i32 %931, ptr %942, align 1 - %add.ptr.i55.i143.i.i.i = getelementptr i8, ptr %942, i64 4 + %941 = load ptr, ptr %code_ptr, align 8 + store i32 %930, ptr %941, align 1 + %add.ptr.i55.i143.i.i.i = getelementptr i8, ptr %941, i64 4 store ptr %add.ptr.i55.i143.i.i.i, ptr %code_ptr, align 8 br label %tcg_out_st.exit81.i.i.i do.body.i65.i.i.i: ; preds = %tcg_out_st.exit.i.i.i - %943 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i29.i73.i68.i.i.i = getelementptr i8, ptr %943, i64 1 + %942 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i29.i73.i68.i.i.i = getelementptr i8, ptr %942, i64 1 store ptr %incdec.ptr.i29.i73.i68.i.i.i, ptr %code_ptr, align 8 - %arg.tr145.i69.i.i.i = trunc i32 %929 to i8 - %944 = shl i8 %arg.tr145.i69.i.i.i, 4 - %945 = and i8 %944, -128 - store i8 -59, ptr %943, align 1 - %946 = xor i8 %945, -7 - %947 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i35.i69.i71.i.i.i = getelementptr i8, ptr %947, i64 1 + %arg.tr145.i69.i.i.i = trunc i32 %928 to i8 + %943 = shl i8 %arg.tr145.i69.i.i.i, 4 + %944 = and i8 %943, -128 + store i8 -59, ptr %942, align 1 + %945 = xor i8 %944, -7 + %946 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i35.i69.i71.i.i.i = getelementptr i8, ptr %946, i64 1 store ptr %incdec.ptr.i35.i69.i71.i.i.i, ptr %code_ptr, align 8 - store i8 %946, ptr %947, align 1 - %948 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i37.i70.i72.i.i.i = getelementptr i8, ptr %948, i64 1 + store i8 %945, ptr %946, align 1 + %947 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i37.i70.i72.i.i.i = getelementptr i8, ptr %947, i64 1 store ptr %incdec.ptr.i37.i70.i72.i.i.i, ptr %code_ptr, align 8 - store i8 -42, ptr %948, align 1 - %cmp25.i110.not.i.i.i = icmp eq i32 %931, 0 - %cmp35.i131.i.i.i = icmp ugt i32 %931, 127 + store i8 -42, ptr %947, align 1 + %cmp25.i110.not.i.i.i = icmp eq i32 %930, 0 + %cmp35.i131.i.i.i = icmp ugt i32 %930, 127 %..i132.i.i.i = select i1 %cmp35.i131.i.i.i, i32 128, i32 64 %mod.0.i112.i.i.i = select i1 %cmp25.i110.not.i.i.i, i32 0, i32 %..i132.i.i.i - %949 = add nsw i32 %sub.i63.i.i.i, -49 - %cmp80.i113.i.i.i = icmp ult i32 %949, 127 - %and67.i123.i.i.i = shl i32 %929, 3 + %948 = add nsw i32 %sub.i63.i.i.i, -49 + %cmp80.i113.i.i.i = icmp ult i32 %948, 127 + %and67.i123.i.i.i = shl i32 %928, 3 %shl68.i124.i.i.i = and i32 %and67.i123.i.i.i, 56 %or69.i125.i.i.i = or disjoint i32 %mod.0.i112.i.i.i, %shl68.i124.i.i.i - %950 = trunc i32 %or69.i125.i.i.i to i8 - %conv71.i126.i.i.i = or disjoint i8 %950, 4 - %951 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i49.i128.i.i.i = getelementptr i8, ptr %951, i64 1 + %949 = trunc i32 %or69.i125.i.i.i to i8 + %conv71.i126.i.i.i = or disjoint i8 %949, 4 + %950 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i49.i128.i.i.i = getelementptr i8, ptr %950, i64 1 store ptr %incdec.ptr.i49.i128.i.i.i, ptr %code_ptr, align 8 - store i8 %conv71.i126.i.i.i, ptr %951, align 1 - %952 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i51.i129.i.i.i = getelementptr i8, ptr %952, i64 1 + store i8 %conv71.i126.i.i.i, ptr %950, align 1 + %951 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i51.i129.i.i.i = getelementptr i8, ptr %951, i64 1 store ptr %incdec.ptr.i51.i129.i.i.i, ptr %code_ptr, align 8 - store i8 36, ptr %952, align 1 + store i8 36, ptr %951, align 1 br i1 %cmp80.i113.i.i.i, label %if.then82.i119.i.i.i, label %if.else84.i115.i.i.i if.then82.i119.i.i.i: ; preds = %do.body.i65.i.i.i - %conv83.i120.i.i.i = trunc i32 %931 to i8 - %953 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i53.i122.i.i.i = getelementptr i8, ptr %953, i64 1 + %conv83.i120.i.i.i = trunc i32 %930 to i8 + %952 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i53.i122.i.i.i = getelementptr i8, ptr %952, i64 1 store ptr %incdec.ptr.i53.i122.i.i.i, ptr %code_ptr, align 8 - store i8 %conv83.i120.i.i.i, ptr %953, align 1 + store i8 %conv83.i120.i.i.i, ptr %952, align 1 br label %tcg_out_st.exit81.i.i.i if.else84.i115.i.i.i: ; preds = %do.body.i65.i.i.i br i1 %cmp35.i131.i.i.i, label %if.then87.i116.i.i.i, label %tcg_out_st.exit81.i.i.i if.then87.i116.i.i.i: ; preds = %if.else84.i115.i.i.i - %954 = load ptr, ptr %code_ptr, align 8 - store i32 %931, ptr %954, align 1 - %add.ptr.i55.i118.i.i.i = getelementptr i8, ptr %954, i64 4 + %953 = load ptr, ptr %code_ptr, align 8 + store i32 %930, ptr %953, align 1 + %add.ptr.i55.i118.i.i.i = getelementptr i8, ptr %953, i64 4 store ptr %add.ptr.i55.i118.i.i.i, ptr %code_ptr, align 8 br label %tcg_out_st.exit81.i.i.i @@ -14115,58 +14113,58 @@ tcg_out_st.exit81.i.i.i: ; preds = %if.then87.i116.i.i. tail call void @llvm.assume(i1 %cmp.i82.i.i.i) %idxprom40.i.i.i = zext nneg i32 %bf.clear34.i.i.i to i64 %arrayidx41.i.i.i = getelementptr [6 x i32], ptr @tcg_target_call_iarg_regs, i64 0, i64 %idxprom40.i.i.i - %955 = load i32, ptr %arrayidx41.i.i.i, align 4 - %956 = lshr i32 %bf.load32.i.i.i, 13 - %sub.i83.i.i.i = and i32 %956, 2040 - %957 = add nsw i32 %sub.i83.i.i.i, -48 - %958 = trunc i32 %955 to i8 - %959 = lshr i8 %958, 1 - %960 = and i8 %959, 4 - %conv.i.i.i.i.i = or disjoint i8 %960, 72 - %961 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i37.i.i.i.i51.i = getelementptr i8, ptr %961, i64 1 + %954 = load i32, ptr %arrayidx41.i.i.i, align 4 + %955 = lshr i32 %bf.load32.i.i.i, 13 + %sub.i83.i.i.i = and i32 %955, 2040 + %956 = add nsw i32 %sub.i83.i.i.i, -48 + %957 = trunc i32 %954 to i8 + %958 = lshr i8 %957, 1 + %959 = and i8 %958, 4 + %conv.i.i.i.i.i = or disjoint i8 %959, 72 + %960 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i37.i.i.i.i51.i = getelementptr i8, ptr %960, i64 1 store ptr %incdec.ptr.i37.i.i.i.i51.i, ptr %code_ptr, align 8 - store i8 %conv.i.i.i.i.i, ptr %961, align 1 - %962 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i45.i.i.i.i52.i = getelementptr i8, ptr %962, i64 1 + store i8 %conv.i.i.i.i.i, ptr %960, align 1 + %961 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i45.i.i.i.i52.i = getelementptr i8, ptr %961, i64 1 store ptr %incdec.ptr.i45.i.i.i.i52.i, ptr %code_ptr, align 8 - store i8 -115, ptr %962, align 1 - %cmp25.i160.not.i.i.i = icmp eq i32 %957, 0 - %cmp35.i181.i.i.i = icmp ugt i32 %957, 127 + store i8 -115, ptr %961, align 1 + %cmp25.i160.not.i.i.i = icmp eq i32 %956, 0 + %cmp35.i181.i.i.i = icmp ugt i32 %956, 127 %..i182.i.i.i = select i1 %cmp35.i181.i.i.i, i32 128, i32 64 %mod.0.i162.i.i.i = select i1 %cmp25.i160.not.i.i.i, i32 0, i32 %..i182.i.i.i - %963 = add nsw i32 %sub.i83.i.i.i, -49 - %cmp80.i163.i.i.i = icmp ult i32 %963, 127 - %and67.i173.i.i.i = shl i32 %955, 3 + %962 = add nsw i32 %sub.i83.i.i.i, -49 + %cmp80.i163.i.i.i = icmp ult i32 %962, 127 + %and67.i173.i.i.i = shl i32 %954, 3 %shl68.i174.i.i.i = and i32 %and67.i173.i.i.i, 56 %or69.i175.i.i.i = or disjoint i32 %mod.0.i162.i.i.i, %shl68.i174.i.i.i - %964 = trunc i32 %or69.i175.i.i.i to i8 - %conv71.i176.i.i.i = or disjoint i8 %964, 4 - %965 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i49.i178.i.i.i = getelementptr i8, ptr %965, i64 1 + %963 = trunc i32 %or69.i175.i.i.i to i8 + %conv71.i176.i.i.i = or disjoint i8 %963, 4 + %964 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i49.i178.i.i.i = getelementptr i8, ptr %964, i64 1 store ptr %incdec.ptr.i49.i178.i.i.i, ptr %code_ptr, align 8 - store i8 %conv71.i176.i.i.i, ptr %965, align 1 - %966 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i51.i179.i.i.i = getelementptr i8, ptr %966, i64 1 + store i8 %conv71.i176.i.i.i, ptr %964, align 1 + %965 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i51.i179.i.i.i = getelementptr i8, ptr %965, i64 1 store ptr %incdec.ptr.i51.i179.i.i.i, ptr %code_ptr, align 8 - store i8 36, ptr %966, align 1 + store i8 36, ptr %965, align 1 br i1 %cmp80.i163.i.i.i, label %if.then82.i169.i.i.i, label %if.else84.i165.i.i.i if.then82.i169.i.i.i: ; preds = %tcg_out_st.exit81.i.i.i - %conv83.i170.i.i.i = trunc i32 %957 to i8 - %967 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i53.i172.i.i.i = getelementptr i8, ptr %967, i64 1 + %conv83.i170.i.i.i = trunc i32 %956 to i8 + %966 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i53.i172.i.i.i = getelementptr i8, ptr %966, i64 1 store ptr %incdec.ptr.i53.i172.i.i.i, ptr %code_ptr, align 8 - store i8 %conv83.i170.i.i.i, ptr %967, align 1 + store i8 %conv83.i170.i.i.i, ptr %966, align 1 br label %tcg_out_st_helper_args.exit.i.i if.else84.i165.i.i.i: ; preds = %tcg_out_st.exit81.i.i.i br i1 %cmp35.i181.i.i.i, label %if.then87.i166.i.i.i, label %tcg_out_st_helper_args.exit.i.i if.then87.i166.i.i.i: ; preds = %if.else84.i165.i.i.i - %968 = load ptr, ptr %code_ptr, align 8 - store i32 %957, ptr %968, align 1 - %add.ptr.i55.i168.i.i.i = getelementptr i8, ptr %968, i64 4 + %967 = load ptr, ptr %code_ptr, align 8 + store i32 %956, ptr %967, align 1 + %add.ptr.i55.i168.i.i.i = getelementptr i8, ptr %967, i64 4 store ptr %add.ptr.i55.i168.i.i.i, ptr %code_ptr, align 8 br label %tcg_out_st_helper_args.exit.i.i @@ -14181,90 +14179,90 @@ tcg_out_st_helper_args.exit.i.i: ; preds = %if.then87.i166.i.i. %and.i53.i = and i32 %shr.i.i11.i, 7 %idxprom.i54.i = zext nneg i32 %and.i53.i to i64 %arrayidx13.i55.i = getelementptr [8 x ptr], ptr @qemu_st_helpers, i64 0, i64 %idxprom.i54.i - %969 = load ptr, ptr %arrayidx13.i55.i, align 8 + %968 = load ptr, ptr %arrayidx13.i55.i, align 8 %s.val.i.i56.i = load ptr, ptr %code_ptr, align 8 %tobool.not.i.i.i.i57.i = icmp eq ptr %s.val.i.i56.i, null - %970 = load i64, ptr @tcg_splitwx_diff, align 8 - %add.ptr.i.i.i.i58.i = getelementptr i8, ptr %s.val.i.i56.i, i64 %970 + %969 = load i64, ptr @tcg_splitwx_diff, align 8 + %add.ptr.i.i.i.i58.i = getelementptr i8, ptr %s.val.i.i56.i, i64 %969 %cond.i.i.i.i59.i = select i1 %tobool.not.i.i.i.i57.i, ptr null, ptr %add.ptr.i.i.i.i58.i - %sub.ptr.lhs.cast.i.i.i.i60.i = ptrtoint ptr %969 to i64 + %sub.ptr.lhs.cast.i.i.i.i60.i = ptrtoint ptr %968 to i64 %sub.ptr.rhs.cast.i.i.i.i61.i = ptrtoint ptr %cond.i.i.i.i59.i to i64 %sub.ptr.sub.i.i.i.i62.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i60.i, %sub.ptr.rhs.cast.i.i.i.i61.i - %971 = add i64 %sub.ptr.sub.i.i.i.i62.i, 2147483643 - %cmp.i12.i.i = icmp ult i64 %971, 4294967296 + %970 = add i64 %sub.ptr.sub.i.i.i.i62.i, 2147483643 + %cmp.i12.i.i = icmp ult i64 %970, 4294967296 br i1 %cmp.i12.i.i, label %if.then.i.i82.i, label %if.else.i.i63.i if.then.i.i82.i: ; preds = %tcg_out_st_helper_args.exit.i.i - %972 = trunc i64 %sub.ptr.sub.i.i.i.i62.i to i32 - %conv.i.i83.i = add i32 %972, -5 + %971 = trunc i64 %sub.ptr.sub.i.i.i.i62.i to i32 + %conv.i.i83.i = add i32 %971, -5 %incdec.ptr.i45.i.i.i84.i = getelementptr i8, ptr %s.val.i.i56.i, i64 1 store ptr %incdec.ptr.i45.i.i.i84.i, ptr %code_ptr, align 8 store i8 -24, ptr %s.val.i.i56.i, align 1 - %973 = load ptr, ptr %code_ptr, align 8 - store i32 %conv.i.i83.i, ptr %973, align 1 + %972 = load ptr, ptr %code_ptr, align 8 + store i32 %conv.i.i83.i, ptr %972, align 1 br label %tcg_out_branch.exit.i66.i if.else.i.i63.i: ; preds = %tcg_out_st_helper_args.exit.i.i %incdec.ptr.i45.i13.i.i64.i = getelementptr i8, ptr %s.val.i.i56.i, i64 1 store ptr %incdec.ptr.i45.i13.i.i64.i, ptr %code_ptr, align 8 store i8 -1, ptr %s.val.i.i56.i, align 1 - %974 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i.i65.i = getelementptr i8, ptr %974, i64 1 + %973 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i.i65.i = getelementptr i8, ptr %973, i64 1 store ptr %incdec.ptr.i.i.i65.i, ptr %code_ptr, align 8 - store i8 21, ptr %974, align 1 + store i8 21, ptr %973, align 1 + %974 = load ptr, ptr %code_ptr, align 8 + tail call fastcc void @new_pool_label(ptr noundef nonnull %s, i64 noundef %sub.ptr.lhs.cast.i.i.i.i60.i, ptr noundef %974) %975 = load ptr, ptr %code_ptr, align 8 - tail call fastcc void @new_pool_label(ptr noundef nonnull %s, i64 noundef %sub.ptr.lhs.cast.i.i.i.i60.i, ptr noundef %975) - %976 = load ptr, ptr %code_ptr, align 8 - store i32 0, ptr %976, align 1 + store i32 0, ptr %975, align 1 br label %tcg_out_branch.exit.i66.i tcg_out_branch.exit.i66.i: ; preds = %if.else.i.i63.i, %if.then.i.i82.i - %.pn.i.i67.i = phi ptr [ %976, %if.else.i.i63.i ], [ %973, %if.then.i.i82.i ] + %.pn.i.i67.i = phi ptr [ %975, %if.else.i.i63.i ], [ %972, %if.then.i.i82.i ] %storemerge.i.i68.i = getelementptr i8, ptr %.pn.i.i67.i, i64 4 store ptr %storemerge.i.i68.i, ptr %code_ptr, align 8 %raddr.i69.i = getelementptr inbounds %struct.TCGLabelQemuLdst, ptr %lb.097.i, i64 0, i32 7 - %977 = load ptr, ptr %raddr.i69.i, align 8 + %976 = load ptr, ptr %raddr.i69.i, align 8 %tobool.not.i.i.i.i.i70.i = icmp eq ptr %storemerge.i.i68.i, null - %978 = load i64, ptr @tcg_splitwx_diff, align 8 - %add.ptr.i.i.i.i.i71.i = getelementptr i8, ptr %storemerge.i.i68.i, i64 %978 + %977 = load i64, ptr @tcg_splitwx_diff, align 8 + %add.ptr.i.i.i.i.i71.i = getelementptr i8, ptr %storemerge.i.i68.i, i64 %977 %cond.i.i.i.i.i72.i = select i1 %tobool.not.i.i.i.i.i70.i, ptr null, ptr %add.ptr.i.i.i.i.i71.i - %sub.ptr.lhs.cast.i.i.i.i.i73.i = ptrtoint ptr %977 to i64 + %sub.ptr.lhs.cast.i.i.i.i.i73.i = ptrtoint ptr %976 to i64 %sub.ptr.rhs.cast.i.i.i.i.i74.i = ptrtoint ptr %cond.i.i.i.i.i72.i to i64 %sub.ptr.sub.i.i.i.i.i75.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i73.i, %sub.ptr.rhs.cast.i.i.i.i.i74.i - %979 = add i64 %sub.ptr.sub.i.i.i.i.i75.i, 2147483643 - %cmp.i.i13.i.i = icmp ult i64 %979, 4294967296 + %978 = add i64 %sub.ptr.sub.i.i.i.i.i75.i, 2147483643 + %cmp.i.i13.i.i = icmp ult i64 %978, 4294967296 br i1 %cmp.i.i13.i.i, label %if.then.i.i14.i.i, label %if.else.i.i.i76.i if.then.i.i14.i.i: ; preds = %tcg_out_branch.exit.i66.i - %980 = trunc i64 %sub.ptr.sub.i.i.i.i.i75.i to i32 - %conv.i.i.i81.i = add i32 %980, -5 + %979 = trunc i64 %sub.ptr.sub.i.i.i.i.i75.i to i32 + %conv.i.i.i81.i = add i32 %979, -5 %incdec.ptr.i45.i.i.i15.i.i = getelementptr i8, ptr %.pn.i.i67.i, i64 5 store ptr %incdec.ptr.i45.i.i.i15.i.i, ptr %code_ptr, align 8 store i8 -23, ptr %storemerge.i.i68.i, align 1 - %981 = load ptr, ptr %code_ptr, align 8 - store i32 %conv.i.i.i81.i, ptr %981, align 1 + %980 = load ptr, ptr %code_ptr, align 8 + store i32 %conv.i.i.i81.i, ptr %980, align 1 br label %if.end.i569 if.else.i.i.i76.i: ; preds = %tcg_out_branch.exit.i66.i %incdec.ptr.i45.i13.i.i.i77.i = getelementptr i8, ptr %.pn.i.i67.i, i64 5 store ptr %incdec.ptr.i45.i13.i.i.i77.i, ptr %code_ptr, align 8 store i8 -1, ptr %storemerge.i.i68.i, align 1 - %982 = load ptr, ptr %code_ptr, align 8 - %incdec.ptr.i.i.i.i78.i = getelementptr i8, ptr %982, i64 1 + %981 = load ptr, ptr %code_ptr, align 8 + %incdec.ptr.i.i.i.i78.i = getelementptr i8, ptr %981, i64 1 store ptr %incdec.ptr.i.i.i.i78.i, ptr %code_ptr, align 8 - store i8 37, ptr %982, align 1 + store i8 37, ptr %981, align 1 + %982 = load ptr, ptr %code_ptr, align 8 + tail call fastcc void @new_pool_label(ptr noundef nonnull %s, i64 noundef %sub.ptr.lhs.cast.i.i.i.i.i73.i, ptr noundef %982) %983 = load ptr, ptr %code_ptr, align 8 - tail call fastcc void @new_pool_label(ptr noundef nonnull %s, i64 noundef %sub.ptr.lhs.cast.i.i.i.i.i73.i, ptr noundef %983) - %984 = load ptr, ptr %code_ptr, align 8 - store i32 0, ptr %984, align 1 + store i32 0, ptr %983, align 1 br label %if.end.i569 if.end.i569: ; preds = %if.else.i.i.i76.i, %if.then.i.i14.i.i, %if.else.i.i.i.i, %if.then.i.i.i.i573 - %.pn.i.i.i.pn.i = phi ptr [ %894, %if.else.i.i.i.i ], [ %891, %if.then.i.i.i.i573 ], [ %984, %if.else.i.i.i76.i ], [ %981, %if.then.i.i14.i.i ] + %.pn.i.i.i.pn.i = phi ptr [ %893, %if.else.i.i.i.i ], [ %890, %if.then.i.i.i.i573 ], [ %983, %if.else.i.i.i76.i ], [ %980, %if.then.i.i14.i.i ] %storemerge.i = getelementptr i8, ptr %.pn.i.i.i.pn.i, i64 4 store ptr %storemerge.i, ptr %code_ptr, align 8 - %985 = load ptr, ptr %code_gen_highwater.i, align 8 - %cmp.i570 = icmp ugt ptr %storemerge.i, %985 + %984 = load ptr, ptr %code_gen_highwater.i, align 8 + %cmp.i570 = icmp ugt ptr %storemerge.i, %984 br i1 %cmp.i570, label %return, label %for.cond.i if.end168: ; preds = %for.cond.i, %do.body149 @@ -14281,7 +14279,7 @@ if.end173: ; preds = %if.end168 for.body.i583: ; preds = %if.end173, %for.inc5.i %l.018.i = phi ptr [ %l.0.i, %for.inc5.i ], [ %l.016.i, %if.end173 ] %u.i584 = getelementptr inbounds %struct.TCGLabel, ptr %l.018.i, i64 0, i32 3 - %986 = load i64, ptr %u.i584, align 8 + %985 = load i64, ptr %u.i584, align 8 %relocs.i = getelementptr inbounds %struct.TCGLabel, ptr %l.018.i, i64 0, i32 5 %r.013.i = load ptr, ptr %relocs.i, align 8 %tobool3.not14.i = icmp eq ptr %r.013.i, null @@ -14290,49 +14288,49 @@ for.body.i583: ; preds = %if.end173, %for.inc for.body4.i585: ; preds = %for.body.i583, %patch_reloc.exit.i %r.015.i = phi ptr [ %r.0.i, %patch_reloc.exit.i ], [ %r.013.i, %for.body.i583 ] %ptr.i = getelementptr inbounds %struct.TCGRelocation, ptr %r.015.i, i64 0, i32 1 - %987 = load ptr, ptr %ptr.i, align 8 + %986 = load ptr, ptr %ptr.i, align 8 %type.i = getelementptr inbounds %struct.TCGRelocation, ptr %r.015.i, i64 0, i32 3 - %988 = load i32, ptr %type.i, align 8 + %987 = load i32, ptr %type.i, align 8 %addend.i = getelementptr inbounds %struct.TCGRelocation, ptr %r.015.i, i64 0, i32 2 - %989 = load i64, ptr %addend.i, align 8 - %add.i.i586 = add i64 %989, %986 - switch i32 %988, label %do.body.i.i594 [ + %988 = load i64, ptr %addend.i, align 8 + %add.i.i586 = add i64 %988, %985 + switch i32 %987, label %do.body.i.i594 [ i32 2, label %sw.bb.i.i590 i32 1, label %sw.bb3.i.i589 i32 23, label %sw.bb5.i.i ] sw.bb.i.i590: ; preds = %for.body4.i585 - %tobool.not.i.i.i = icmp eq ptr %987, null - %990 = load i64, ptr @tcg_splitwx_diff, align 8 - %add.ptr.i.i.i591 = getelementptr i8, ptr %987, i64 %990 + %tobool.not.i.i.i = icmp eq ptr %986, null + %989 = load i64, ptr @tcg_splitwx_diff, align 8 + %add.ptr.i.i.i591 = getelementptr i8, ptr %986, i64 %989 %cond.i.i.i = select i1 %tobool.not.i.i.i, ptr null, ptr %add.ptr.i.i.i591 - %991 = ptrtoint ptr %cond.i.i.i to i64 - %sub.i.i592 = sub i64 %add.i.i586, %991 - %992 = add i64 %sub.i.i592, 2147483648 - %cmp.not.i.i593 = icmp ult i64 %992, 4294967296 + %990 = ptrtoint ptr %cond.i.i.i to i64 + %sub.i.i592 = sub i64 %add.i.i586, %990 + %991 = add i64 %sub.i.i592, 2147483648 + %cmp.not.i.i593 = icmp ult i64 %991, 4294967296 br i1 %cmp.not.i.i593, label %sw.bb3.i.i589, label %return sw.bb3.i.i589: ; preds = %sw.bb.i.i590, %for.body4.i585 %value.addr.0.i.i = phi i64 [ %add.i.i586, %for.body4.i585 ], [ %sub.i.i592, %sw.bb.i.i590 ] %conv4.i.i = trunc i64 %value.addr.0.i.i to i32 - store i32 %conv4.i.i, ptr %987, align 1 + store i32 %conv4.i.i, ptr %986, align 1 br label %patch_reloc.exit.i sw.bb5.i.i: ; preds = %for.body4.i585 - %tobool.not.i12.i.i = icmp eq ptr %987, null - %993 = load i64, ptr @tcg_splitwx_diff, align 8 - %add.ptr.i13.i.i = getelementptr i8, ptr %987, i64 %993 + %tobool.not.i12.i.i = icmp eq ptr %986, null + %992 = load i64, ptr @tcg_splitwx_diff, align 8 + %add.ptr.i13.i.i = getelementptr i8, ptr %986, i64 %992 %cond.i14.i.i = select i1 %tobool.not.i12.i.i, ptr null, ptr %add.ptr.i13.i.i - %994 = ptrtoint ptr %cond.i14.i.i to i64 - %sub7.i.i = sub i64 %add.i.i586, %994 - %995 = add i64 %sub7.i.i, 128 - %cmp10.not.i.i = icmp ult i64 %995, 256 + %993 = ptrtoint ptr %cond.i14.i.i to i64 + %sub7.i.i = sub i64 %add.i.i586, %993 + %994 = add i64 %sub7.i.i, 128 + %cmp10.not.i.i = icmp ult i64 %994, 256 br i1 %cmp10.not.i.i, label %if.end13.i.i, label %return if.end13.i.i: ; preds = %sw.bb5.i.i %conv8.i.i587 = trunc i64 %sub7.i.i to i8 - store i8 %conv8.i.i587, ptr %987, align 1 + store i8 %conv8.i.i587, ptr %986, align 1 br label %patch_reloc.exit.i do.body.i.i594: ; preds = %for.body4.i585 @@ -14351,10 +14349,10 @@ for.inc5.i: ; preds = %patch_reloc.exit.i, br i1 %tobool.not.i588, label %if.end176, label %for.body.i583, !llvm.loop !63 if.end176: ; preds = %for.inc5.i, %if.end173 - %996 = load ptr, ptr %code_buf, align 8 - %997 = load ptr, ptr %code_ptr, align 8 - %sub.ptr.lhs.cast.i = ptrtoint ptr %997 to i64 - %sub.ptr.rhs.cast.i598 = ptrtoint ptr %996 to i64 + %995 = load ptr, ptr %code_buf, align 8 + %996 = load ptr, ptr %code_ptr, align 8 + %sub.ptr.lhs.cast.i = ptrtoint ptr %996 to i64 + %sub.ptr.rhs.cast.i598 = ptrtoint ptr %995 to i64 %sub.ptr.sub.i.i602 = sub i64 %sub.ptr.lhs.cast.i, %sub.ptr.rhs.cast.i598 %conv184 = trunc i64 %sub.ptr.sub.i.i602 to i32 br label %return @@ -15657,23 +15655,22 @@ la_cross_call.exit: ; preds = %for.inc.i235, %for. for.body87.preheader: ; preds = %la_cross_call.exit %56 = and i32 %bf.lshr2.i, 255 %57 = zext nneg i32 %56 to i64 + %58 = zext nneg i32 %bf.lshr.i to i64 br label %for.body87 for.cond120.preheader: ; preds = %for.inc118 br i1 %cmp67380.not, label %sw.epilog441, label %for.body123.preheader for.body123.preheader: ; preds = %for.cond120.preheader - %58 = zext nneg i32 %bf.lshr.i to i64 + %59 = zext nneg i32 %bf.lshr.i to i64 %wide.trip.count434 = zext nneg i32 %bf.clear.i to i64 br label %for.body123 for.body87: ; preds = %for.body87.preheader, %for.inc118 %indvars.iv426 = phi i64 [ %57, %for.body87.preheader ], [ %indvars.iv.next427, %for.inc118 ] %indvars.iv.next427 = add nsw i64 %indvars.iv426, -1 - %59 = trunc i64 %indvars.iv.next427 to i32 - %60 = add i32 %bf.lshr.i, %59 - %idxprom92 = zext nneg i32 %60 to i64 - %arrayidx93 = getelementptr %struct.TCGOp, ptr %op.0404, i64 0, i32 4, i64 %idxprom92 + %60 = add nuw nsw i64 %indvars.iv.next427, %58 + %arrayidx93 = getelementptr %struct.TCGOp, ptr %op.0404, i64 0, i32 4, i64 %60 %61 = load i64, ptr %arrayidx93, align 8 %62 = inttoptr i64 %61 to ptr %state95 = getelementptr inbounds %struct.TCGTemp, ptr %62, i64 0, i32 5 @@ -15722,7 +15719,7 @@ for.inc118: ; preds = %for.body87, %sw.epi for.body123: ; preds = %for.body123.preheader, %for.inc152 %indvars.iv430 = phi i64 [ 0, %for.body123.preheader ], [ %indvars.iv.next431, %for.inc152 ] %arrayidx127 = getelementptr %struct.TCGHelperInfo, ptr %25, i64 0, i32 4, i64 %indvars.iv430 - %69 = add nuw nsw i64 %indvars.iv430, %58 + %69 = add nuw nsw i64 %indvars.iv430, %59 %arrayidx131 = getelementptr %struct.TCGOp, ptr %op.0404, i64 0, i32 4, i64 %69 %70 = load i64, ptr %arrayidx131, align 8 %71 = inttoptr i64 %70 to ptr diff --git a/bench/redis/optimized/geo.ll b/bench/redis/optimized/geo.ll index ba7a971ab4d..f95cdfffd8f 100644 --- a/bench/redis/optimized/geo.ll +++ b/bench/redis/optimized/geo.ll @@ -1000,28 +1000,32 @@ for.body38.lr.ph: ; preds = %for.cond35.preheade %idx.ext = zext i32 %longidx.0.lcssa97104 to i64 %arrayidx14.phi.trans.insert.i = getelementptr inbounds double, ptr %xy, i64 1 %9 = getelementptr inbounds { i64, i8 }, ptr %hash, i64 0, i32 1 - %add77 = add nuw nsw i32 %longidx.0.lcssa97104, 1 + %10 = sext i32 %longidx.0.lcssa97104 to i64 %wide.trip.count85 = zext nneg i32 %div to i64 + %invariant.gep = getelementptr ptr, ptr %call22, i64 %10 + %11 = sext i32 %longidx.0.lcssa97104 to i64 + %invariant.gep112 = getelementptr ptr, ptr %call22, i64 %11 + %invariant.gep114 = getelementptr ptr, ptr %invariant.gep112, i64 1 br label %for.body38 for.body: ; preds = %for.body.lr.ph, %for.body %indvars.iv72 = phi i64 [ 1, %for.body.lr.ph ], [ %indvars.iv.next73, %for.body ] - %10 = load ptr, ptr %argv27, align 8 - %arrayidx29 = getelementptr inbounds ptr, ptr %10, i64 %indvars.iv72 - %11 = load ptr, ptr %arrayidx29, align 8 + %12 = load ptr, ptr %argv27, align 8 + %arrayidx29 = getelementptr inbounds ptr, ptr %12, i64 %indvars.iv72 + %13 = load ptr, ptr %arrayidx29, align 8 %arrayidx31 = getelementptr inbounds ptr, ptr %call22, i64 %indvars.iv72 - store ptr %11, ptr %arrayidx31, align 8 - tail call void @incrRefCount(ptr noundef %11) #14 + store ptr %13, ptr %arrayidx31, align 8 + tail call void @incrRefCount(ptr noundef %13) #14 %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 %for.cond35.preheader, label %for.body, !llvm.loop !13 for.body38: ; preds = %for.body38.lr.ph, %if.end61 %indvars.iv77 = phi i64 [ 0, %for.body38.lr.ph ], [ %indvars.iv.next78, %if.end61 ] - %12 = load ptr, ptr %argv39, align 8 - %add.ptr = getelementptr inbounds ptr, ptr %12, i64 %idx.ext - %13 = mul nuw nsw i64 %indvars.iv77, 3 - %add.ptr42 = getelementptr inbounds ptr, ptr %add.ptr, i64 %13 + %14 = load ptr, ptr %argv39, align 8 + %add.ptr = getelementptr inbounds ptr, ptr %14, i64 %idx.ext + %15 = mul nuw nsw i64 %indvars.iv77, 3 + %add.ptr42 = getelementptr inbounds ptr, ptr %add.ptr, i64 %15 br label %for.body.i for.cond.i: ; preds = %for.body.i @@ -1031,16 +1035,16 @@ for.body.i: ; preds = %for.cond.i, %for.bo %cmp.i = phi i1 [ true, %for.body38 ], [ false, %for.cond.i ] %indvars.iv.i = phi i64 [ 0, %for.body38 ], [ 1, %for.cond.i ] %arrayidx.i = getelementptr inbounds ptr, ptr %add.ptr42, i64 %indvars.iv.i - %14 = load ptr, ptr %arrayidx.i, align 8 + %16 = load ptr, ptr %arrayidx.i, align 8 %add.ptr.i = getelementptr inbounds double, ptr %xy, i64 %indvars.iv.i - %call.i = call i32 @getDoubleFromObjectOrReply(ptr noundef %c, ptr noundef %14, ptr noundef nonnull %add.ptr.i, ptr noundef null) #14 + %call.i = call i32 @getDoubleFromObjectOrReply(ptr noundef %c, ptr noundef %16, ptr noundef nonnull %add.ptr.i, ptr noundef null) #14 %cmp1.not.i = icmp eq i32 %call.i, 0 br i1 %cmp1.not.i, label %for.cond.i, label %extractLongLatOrReply.exit for.end.i: ; preds = %for.cond.i - %15 = load double, ptr %xy, align 16 - %cmp3.i = fcmp olt double %15, -1.800000e+02 - %cmp5.i = fcmp ogt double %15, 1.800000e+02 + %17 = load double, ptr %xy, align 16 + %cmp3.i = fcmp olt double %17, -1.800000e+02 + %cmp5.i = fcmp ogt double %17, 1.800000e+02 %or.cond.i = or i1 %cmp3.i, %cmp5.i %.pre.i = load double, ptr %arrayidx14.phi.trans.insert.i, align 8 br i1 %or.cond.i, label %if.then12.i, label %lor.lhs.false6.i @@ -1052,7 +1056,7 @@ lor.lhs.false6.i: ; preds = %for.end.i br i1 %or.cond12.i, label %if.then12.i, label %if.end61 if.then12.i: ; preds = %lor.lhs.false6.i, %for.end.i - call void (ptr, ptr, ...) @addReplyErrorFormat(ptr noundef %c, ptr noundef nonnull @.str, double noundef %15, double noundef %.pre.i) #14 + call void (ptr, ptr, ...) @addReplyErrorFormat(ptr noundef %c, ptr noundef nonnull @.str, double noundef %17, double noundef %.pre.i) #14 br label %extractLongLatOrReply.exit extractLongLatOrReply.exit: ; preds = %for.body.i, %if.then12.i @@ -1066,12 +1070,12 @@ for.body50.preheader: ; preds = %extractLongLatOrRep for.body50: ; preds = %for.body50.preheader, %for.inc58 %indvars.iv87 = phi i64 [ 0, %for.body50.preheader ], [ %indvars.iv.next88, %for.inc58 ] %arrayidx52 = getelementptr inbounds ptr, ptr %call22, i64 %indvars.iv87 - %16 = load ptr, ptr %arrayidx52, align 8 - %tobool53.not = icmp eq ptr %16, null + %18 = load ptr, ptr %arrayidx52, align 8 + %tobool53.not = icmp eq ptr %18, null br i1 %tobool53.not, label %for.inc58, label %if.then54 if.then54: ; preds = %for.body50 - call void @decrRefCount(ptr noundef nonnull %16) #14 + call void @decrRefCount(ptr noundef nonnull %18) #14 br label %for.inc58 for.inc58: ; preds = %for.body50, %if.then54 @@ -1084,28 +1088,22 @@ for.end60: ; preds = %for.inc58, %extract br label %return if.end61: ; preds = %lor.lhs.false6.i - %call64 = call i32 @geohashEncodeWGS84(double noundef %15, double noundef %.pre.i, i8 noundef zeroext 26, ptr noundef nonnull %hash) #14 - %17 = load i64, ptr %hash, align 8 - %18 = load i8, ptr %9, align 8 - %call65 = call i64 @geohashAlign52Bits(i64 %17, i8 %18) #14 + %call64 = call i32 @geohashEncodeWGS84(double noundef %17, double noundef %.pre.i, i8 noundef zeroext 26, ptr noundef nonnull %hash) #14 + %19 = load i64, ptr %hash, align 8 + %20 = load i8, ptr %9, align 8 + %call65 = call i64 @geohashAlign52Bits(i64 %19, i8 %20) #14 %call66 = call ptr @createStringObjectFromLongLongWithSds(i64 noundef %call65) #14 - %19 = load ptr, ptr %argv39, align 8 - %20 = getelementptr ptr, ptr %19, i64 %13 - %21 = getelementptr ptr, ptr %20, i64 %idx.ext - %arrayidx72 = getelementptr ptr, ptr %21, i64 2 - %22 = load ptr, ptr %arrayidx72, align 8 - %23 = shl nuw nsw i64 %indvars.iv77, 1 - %24 = trunc i64 %23 to i32 - %25 = add i32 %longidx.0.lcssa97104, %24 - %idxprom75 = zext nneg i32 %25 to i64 - %arrayidx76 = getelementptr inbounds ptr, ptr %call22, i64 %idxprom75 - store ptr %call66, ptr %arrayidx76, align 8 - %26 = trunc i64 %23 to i32 - %27 = add i32 %add77, %26 - %idxprom80 = zext nneg i32 %27 to i64 - %arrayidx81 = getelementptr inbounds ptr, ptr %call22, i64 %idxprom80 - store ptr %22, ptr %arrayidx81, align 8 - call void @incrRefCount(ptr noundef %22) #14 + %21 = load ptr, ptr %argv39, align 8 + %22 = getelementptr ptr, ptr %21, i64 %15 + %23 = getelementptr ptr, ptr %22, i64 %idx.ext + %arrayidx72 = getelementptr ptr, ptr %23, i64 2 + %24 = load ptr, ptr %arrayidx72, align 8 + %25 = shl nuw nsw i64 %indvars.iv77, 1 + %gep = getelementptr ptr, ptr %invariant.gep, i64 %25 + store ptr %call66, ptr %gep, align 8 + %gep115 = getelementptr ptr, ptr %invariant.gep114, i64 %25 + store ptr %24, ptr %gep115, align 8 + call void @incrRefCount(ptr noundef %24) #14 %indvars.iv.next78 = add nuw nsw i64 %indvars.iv77, 1 %exitcond86.not = icmp eq i64 %indvars.iv.next78, %wide.trip.count85 br i1 %exitcond86.not, label %for.end84, label %for.body38, !llvm.loop !15 @@ -2136,10 +2134,9 @@ if.end14: ; preds = %if.else for.body29: ; preds = %if.end14, %for.body29 %indvars.iv = phi i64 [ 0, %if.end14 ], [ %indvars.iv.next, %for.body29 ] %cmp30 = icmp eq i64 %indvars.iv, 10 - %13 = mul i64 %indvars.iv, 4294967291 - %14 = add i64 %13, 47 - %sh_prom = and i64 %14, 4294967295 - %shr = lshr i64 %12, %sh_prom + %13 = mul nsw i64 %indvars.iv, -5 + %14 = add nsw i64 %13, 47 + %shr = lshr i64 %12, %14 %conv35 = and i64 %shr, 31 %idx.0 = select i1 %cmp30, i64 0, i64 %conv35 %arrayidx38 = getelementptr inbounds i8, ptr @.str.53, i64 %idx.0 diff --git a/bench/redis/optimized/module.ll b/bench/redis/optimized/module.ll index 82cf0dd2fbf..6981661ac1f 100644 --- a/bench/redis/optimized/module.ll +++ b/bench/redis/optimized/module.ll @@ -23411,9 +23411,7 @@ for.body: ; preds = %for.body.preheader, %7 = getelementptr ptr, ptr %6, i64 %indvars.iv %arrayidx = getelementptr ptr, ptr %7, i64 -1 %8 = load ptr, ptr %arrayidx, align 8 - %idxprom16 = and i64 %indvars.iv, 4294967295 - %arrayidx17 = getelementptr inbounds ptr, ptr %6, i64 %idxprom16 - store ptr %8, ptr %arrayidx17, align 8 + store ptr %8, ptr %7, align 8 %indvars.iv.next = add nsw i64 %indvars.iv, -1 %cmp12 = icmp sgt i64 %indvars.iv.next, %5 br i1 %cmp12, label %for.body, label %for.end, !llvm.loop !63 diff --git a/bench/redis/optimized/t_zset.ll b/bench/redis/optimized/t_zset.ll index 27118f13347..f4327489d07 100644 --- a/bench/redis/optimized/t_zset.ll +++ b/bench/redis/optimized/t_zset.ll @@ -6596,6 +6596,7 @@ if.end72: ; preds = %if.end66 br i1 %cmp75122, label %for.body.preheader, label %for.end for.body.preheader: ; preds = %if.end72 + %12 = sext i32 %scoreidx.0.lcssa to i64 %wide.trip.count141 = zext nneg i32 %div to i64 br label %for.body @@ -6606,22 +6607,20 @@ for.cond: ; preds = %for.body for.body: ; preds = %for.body.preheader, %for.cond %indvars.iv136 = phi i64 [ 0, %for.body.preheader ], [ %indvars.iv.next137, %for.cond ] - %12 = load ptr, ptr %argv, align 8 - %indvars.iv136.tr = trunc i64 %indvars.iv136 to i32 - %13 = shl i32 %indvars.iv136.tr, 1 - %14 = add i32 %13, %scoreidx.0.lcssa - %idxprom79 = zext nneg i32 %14 to i64 - %arrayidx80 = getelementptr inbounds ptr, ptr %12, i64 %idxprom79 - %15 = load ptr, ptr %arrayidx80, align 8 + %13 = load ptr, ptr %argv, align 8 + %14 = shl nuw nsw i64 %indvars.iv136, 1 + %15 = getelementptr ptr, ptr %13, i64 %14 + %arrayidx80 = getelementptr ptr, ptr %15, i64 %12 + %16 = load ptr, ptr %arrayidx80, align 8 %arrayidx82 = getelementptr inbounds double, ptr %call74, i64 %indvars.iv136 - %call83 = tail call i32 @getDoubleFromObjectOrReply(ptr noundef nonnull %c, ptr noundef %15, ptr noundef %arrayidx82, ptr noundef null) #20 + %call83 = tail call i32 @getDoubleFromObjectOrReply(ptr noundef nonnull %c, ptr noundef %16, ptr noundef %arrayidx82, ptr noundef null) #20 %cmp84.not = icmp eq i32 %call83, 0 br i1 %cmp84.not, label %for.cond, label %cleanup for.end: ; preds = %for.cond, %if.end72 %db = getelementptr inbounds %struct.client, ptr %c, i64 0, i32 4 - %16 = load ptr, ptr %db, align 8 - %call89 = tail call ptr @lookupKeyWrite(ptr noundef %16, ptr noundef %1) #20 + %17 = load ptr, ptr %db, align 8 + %call89 = tail call ptr @lookupKeyWrite(ptr noundef %17, ptr noundef %1) #20 %call90 = tail call i32 @checkType(ptr noundef nonnull %c, ptr noundef %call89, i32 noundef 3) #20 %tobool91.not = icmp eq i32 %call90, 0 br i1 %tobool91.not, label %if.end93, label %cleanup @@ -6634,25 +6633,25 @@ if.then96: ; preds = %if.end93 br i1 %cmp37.not, label %if.end99, label %reply_to_client.thread if.end99: ; preds = %if.then96 - %17 = load ptr, ptr %argv, align 8 - %18 = zext nneg i32 %scoreidx.0.lcssa to i64 - %19 = getelementptr ptr, ptr %17, i64 %18 - %arrayidx104 = getelementptr ptr, ptr %19, i64 1 - %20 = load ptr, ptr %arrayidx104, align 8 - %ptr105 = getelementptr inbounds %struct.redisObject, ptr %20, i64 0, i32 2 - %21 = load ptr, ptr %ptr105, align 8 - %call106 = tail call fastcc i64 @sdslen(ptr noundef %21) + %18 = load ptr, ptr %argv, align 8 + %19 = zext nneg i32 %scoreidx.0.lcssa to i64 + %20 = getelementptr ptr, ptr %18, i64 %19 + %arrayidx104 = getelementptr ptr, ptr %20, i64 1 + %21 = load ptr, ptr %arrayidx104, align 8 + %ptr105 = getelementptr inbounds %struct.redisObject, ptr %21, i64 0, i32 2 + %22 = load ptr, ptr %ptr105, align 8 + %call106 = tail call fastcc i64 @sdslen(ptr noundef %22) %call107 = tail call ptr @zsetTypeCreate(i64 noundef %conv73, i64 noundef %call106) - %22 = load ptr, ptr %db, align 8 - tail call void @dbAdd(ptr noundef %22, ptr noundef %1, ptr noundef %call107) #20 + %23 = load ptr, ptr %db, align 8 + tail call void @dbAdd(ptr noundef %23, ptr noundef %1, ptr noundef %call107) #20 br label %if.end111 if.else109: ; preds = %if.end93 %bf.load.i = load i32, ptr %call89, align 8 - %23 = and i32 %bf.load.i, 240 - %cmp.i = icmp eq i32 %23, 176 - %24 = load i64, ptr getelementptr inbounds (%struct.redisServer, ptr @server, i64 0, i32 342), align 8 - %cmp1.i = icmp ult i64 %24, %conv73 + %24 = and i32 %bf.load.i, 240 + %cmp.i = icmp eq i32 %24, 176 + %25 = load i64, ptr getelementptr inbounds (%struct.redisServer, ptr @server, i64 0, i32 342), align 8 + %cmp1.i = icmp ult i64 %25, %conv73 %or.cond.i = select i1 %cmp.i, i1 %cmp1.i, i1 false br i1 %or.cond.i, label %if.then.i, label %if.end111 @@ -6665,8 +6664,8 @@ if.end111: ; preds = %if.then.i, %if.else br i1 %cmp75122, label %for.body115.lr.ph, label %reply_to_client.thread150 for.body115.lr.ph: ; preds = %if.end111 - %add119 = add nuw nsw i32 %scoreidx.0.lcssa, 1 %wide.trip.count148 = zext nneg i32 %div to i64 + %26 = sext i32 %scoreidx.0.lcssa to i64 br label %for.body115 for.body115: ; preds = %for.body115.lr.ph, %if.end129 @@ -6675,18 +6674,17 @@ for.body115: ; preds = %for.body115.lr.ph, %updated.0126 = phi i32 [ 0, %for.body115.lr.ph ], [ %updated.1, %if.end129 ] %added.0125 = phi i32 [ 0, %for.body115.lr.ph ], [ %spec.select, %if.end129 ] %arrayidx117 = getelementptr inbounds double, ptr %call74, i64 %indvars.iv143 - %25 = load double, ptr %arrayidx117, align 8 + %27 = load double, ptr %arrayidx117, align 8 store i32 0, ptr %retflags, align 4 - %26 = load ptr, ptr %argv, align 8 - %indvars.iv143.tr = trunc i64 %indvars.iv143 to i32 - %27 = shl i32 %indvars.iv143.tr, 1 - %28 = add i32 %27, %add119 - %idxprom122 = zext nneg i32 %28 to i64 - %arrayidx123 = getelementptr inbounds ptr, ptr %26, i64 %idxprom122 - %29 = load ptr, ptr %arrayidx123, align 8 - %ptr124 = getelementptr inbounds %struct.redisObject, ptr %29, i64 0, i32 2 - %30 = load ptr, ptr %ptr124, align 8 - %call125 = call i32 @zsetAdd(ptr noundef %zobj.0, double noundef %25, ptr noundef %30, i32 noundef %flags.addr.0.lcssa, ptr noundef nonnull %retflags, ptr noundef nonnull %newscore), !range !40 + %28 = load ptr, ptr %argv, align 8 + %29 = shl nuw nsw i64 %indvars.iv143, 1 + %30 = getelementptr ptr, ptr %28, i64 %29 + %31 = getelementptr ptr, ptr %30, i64 %26 + %arrayidx123 = getelementptr ptr, ptr %31, i64 1 + %32 = load ptr, ptr %arrayidx123, align 8 + %ptr124 = getelementptr inbounds %struct.redisObject, ptr %32, i64 0, i32 2 + %33 = load ptr, ptr %ptr124, align 8 + %call125 = call i32 @zsetAdd(ptr noundef %zobj.0, double noundef %27, ptr noundef %33, i32 noundef %flags.addr.0.lcssa, ptr noundef nonnull %retflags, ptr noundef nonnull %newscore), !range !40 %cmp126 = icmp eq i32 %call125, 0 br i1 %cmp126, label %if.then128, label %if.end129 @@ -6695,26 +6693,26 @@ if.then128: ; preds = %for.body115 br label %cleanup if.end129: ; preds = %for.body115 - %31 = load i32, ptr %retflags, align 4 - %and130 = lshr i32 %31, 2 - %32 = and i32 %and130, 1 - %spec.select = add i32 %32, %added.0125 - %and135 = lshr i32 %31, 3 - %33 = and i32 %and135, 1 - %updated.1 = add i32 %33, %updated.0126 - %and140 = and i32 %31, 1 - %34 = xor i32 %and140, 1 - %processed.1 = add i32 %34, %processed.0127 + %34 = load i32, ptr %retflags, align 4 + %and130 = lshr i32 %34, 2 + %35 = and i32 %and130, 1 + %spec.select = add i32 %35, %added.0125 + %and135 = lshr i32 %34, 3 + %36 = and i32 %and135, 1 + %updated.1 = add i32 %36, %updated.0126 + %and140 = and i32 %34, 1 + %37 = xor i32 %and140, 1 + %processed.1 = add i32 %37, %processed.0127 %indvars.iv.next144 = add nuw nsw i64 %indvars.iv143, 1 %exitcond149.not = icmp eq i64 %indvars.iv.next144, %wide.trip.count148 br i1 %exitcond149.not, label %reply_to_client, label %for.body115, !llvm.loop !61 reply_to_client: ; preds = %if.end129 - %35 = load double, ptr %newscore, align 8 + %38 = load double, ptr %newscore, align 8 %add148 = add nsw i32 %updated.1, %spec.select %conv149 = sext i32 %add148 to i64 - %36 = load i64, ptr getelementptr inbounds (%struct.redisServer, ptr @server, i64 0, i32 219), align 8 - %add150 = add nsw i64 %36, %conv149 + %39 = load i64, ptr getelementptr inbounds (%struct.redisServer, ptr @server, i64 0, i32 219), align 8 + %add150 = add nsw i64 %39, %conv149 store i64 %add150, ptr getelementptr inbounds (%struct.redisServer, ptr @server, i64 0, i32 219), align 8 br i1 %cmp32, label %if.then152, label %if.else157 @@ -6725,11 +6723,11 @@ reply_to_client.thread: ; preds = %if.then96 br i1 %cmp32, label %if.else155, label %if.else157 if.then152: ; preds = %reply_to_client - %37 = icmp eq i32 %processed.1, 0 - br i1 %37, label %if.else155, label %if.then154 + %40 = icmp eq i32 %processed.1, 0 + br i1 %40, label %if.else155, label %if.then154 if.then154: ; preds = %if.then152 - call void @addReplyDouble(ptr noundef nonnull %c, double noundef %35) #20 + call void @addReplyDouble(ptr noundef nonnull %c, double noundef %38) #20 br label %cleanup if.else155: ; preds = %reply_to_client.thread150, %reply_to_client.thread, %if.then152 @@ -6759,13 +6757,13 @@ cleanup: ; preds = %for.body, %if.else1 if.then165: ; preds = %cleanup %db166 = getelementptr inbounds %struct.client, ptr %c, i64 0, i32 4 - %38 = load ptr, ptr %db166, align 8 - call void @signalModifiedKey(ptr noundef nonnull %c, ptr noundef %38, ptr noundef %1) #20 + %41 = load ptr, ptr %db166, align 8 + call void @signalModifiedKey(ptr noundef nonnull %c, ptr noundef %41, ptr noundef %1) #20 %cond168 = select i1 %cmp32, ptr @.str.27, ptr @.str.28 - %39 = load ptr, ptr %db166, align 8 - %id = getelementptr inbounds %struct.redisDb, ptr %39, i64 0, i32 6 - %40 = load i32, ptr %id, align 8 - call void @notifyKeyspaceEvent(i32 noundef 128, ptr noundef nonnull %cond168, ptr noundef %1, i32 noundef %40) #20 + %42 = load ptr, ptr %db166, align 8 + %id = getelementptr inbounds %struct.redisDb, ptr %42, i64 0, i32 6 + %43 = load i32, ptr %id, align 8 + call void @notifyKeyspaceEvent(i32 noundef 128, ptr noundef nonnull %cond168, ptr noundef %1, i32 noundef %43) #20 br label %if.end170 if.end170: ; preds = %cleanup, %if.then165, %if.then71, %if.then65, %if.then52, %if.then48 diff --git a/bench/rocksdb/optimized/skiplistrep.cc.ll b/bench/rocksdb/optimized/skiplistrep.cc.ll index ff762e6ae69..ed3c33372b4 100644 --- a/bench/rocksdb/optimized/skiplistrep.cc.ll +++ b/bench/rocksdb/optimized/skiplistrep.cc.ll @@ -2697,64 +2697,62 @@ for.body.i: ; preds = %_ZN7rocksdb14Inline %arrayidx10.i = getelementptr inbounds ptr, ptr %37, i64 %indvars.iv.next.i %idx.neg.i.i.i = sub nsw i64 1, %indvars.iv.i %cmp4.i.not.i = icmp eq i64 %indvars.iv.next.i, 0 - %39 = add nuw nsw i64 %indvars.iv.i, 4294967294 - %idx.ext.i16.i.i = and i64 %39, 4294967295 - %idx.neg.i17.i.i = sub nsw i64 0, %idx.ext.i16.i.i + %idx.neg.i17.i.i = sub nsw i64 2, %indvars.iv.i br i1 %cmp4.i.not.i, label %while.body.i.i, label %while.body.us.i.i while.body.us.i.i: ; preds = %for.body.i, %_ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.us.i.i %before.addr.0.us.i.i = phi ptr [ %atomic-temp.i.0.i.i.us.i.i, %_ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.us.i.i ], [ %36, %for.body.i ] %add.ptr.i.us.i.i = getelementptr inbounds %"struct.std::atomic.29", ptr %before.addr.0.us.i.i, i64 %idx.neg.i.i.i - %40 = load atomic i64, ptr %add.ptr.i.us.i.i acquire, align 8 - %atomic-temp.i.0.i.i.us.i.i = inttoptr i64 %40 to ptr - %cmp.us.not.i.i = icmp eq i64 %40, 0 + %39 = load atomic i64, ptr %add.ptr.i.us.i.i acquire, align 8 + %atomic-temp.i.0.i.i.us.i.i = inttoptr i64 %39 to ptr + %cmp.us.not.i.i = icmp eq i64 %39, 0 br i1 %cmp.us.not.i.i, label %_ZN7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE18FindSpliceForLevelILb1EEEvRKNS_5SliceEPNS5_4NodeESB_iPSB_SC_.exit.i, label %if.end.us.i.i if.end.us.i.i: ; preds = %while.body.us.i.i %add.ptr.i14.us.i.i = getelementptr inbounds %"struct.std::atomic.29", ptr %atomic-temp.i.0.i.i.us.i.i, i64 %idx.neg.i.i.i - %41 = load atomic i64, ptr %add.ptr.i14.us.i.i acquire, align 8 - %atomic-temp.i.0.i.i15.us.i.i = inttoptr i64 %41 to ptr + %40 = load atomic i64, ptr %add.ptr.i14.us.i.i acquire, align 8 + %atomic-temp.i.0.i.i15.us.i.i = inttoptr i64 %40 to ptr call void @llvm.prefetch.p0(ptr %atomic-temp.i.0.i.i15.us.i.i, i32 0, i32 1, i32 1) %add.ptr.i18.us.i.i = getelementptr inbounds %"struct.std::atomic.29", ptr %atomic-temp.i.0.i.i.us.i.i, i64 %idx.neg.i17.i.i - %42 = load atomic i64, ptr %add.ptr.i18.us.i.i acquire, align 8 - %atomic-temp.i.0.i.i19.us.i.i = inttoptr i64 %42 to ptr + %41 = load atomic i64, ptr %add.ptr.i18.us.i.i acquire, align 8 + %atomic-temp.i.0.i.i19.us.i.i = inttoptr i64 %41 to ptr call void @llvm.prefetch.p0(ptr %atomic-temp.i.0.i.i19.us.i.i, i32 0, i32 1, i32 1) %cmp8.us.i.i = icmp eq ptr %38, %atomic-temp.i.0.i.i.us.i.i br i1 %cmp8.us.i.i, label %_ZN7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE18FindSpliceForLevelILb1EEEvRKNS_5SliceEPNS5_4NodeESB_iPSB_SC_.exit.i, label %_ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.us.i.i _ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.us.i.i: ; preds = %if.end.us.i.i - %43 = load ptr, ptr %compare_, align 8 + %42 = load ptr, ptr %compare_, align 8 %arrayidx.i.i.us.i.i = getelementptr inbounds [1 x %"struct.std::atomic.29"], ptr %atomic-temp.i.0.i.i.us.i.i, i64 0, i64 1 - %vtable.i.us.i.i = load ptr, ptr %43, align 8 + %vtable.i.us.i.i = load ptr, ptr %42, align 8 %vfn.i.us.i.i = getelementptr inbounds ptr, ptr %vtable.i.us.i.i, i64 2 - %44 = load ptr, ptr %vfn.i.us.i.i, align 8 - %call2.i.us.i.i = call noundef i32 %44(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull %arrayidx.i.i.us.i.i, ptr noundef nonnull align 8 dereferenceable(16) %key_decoded) + %43 = load ptr, ptr %vfn.i.us.i.i, align 8 + %call2.i.us.i.i = call noundef i32 %43(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull %arrayidx.i.i.us.i.i, ptr noundef nonnull align 8 dereferenceable(16) %key_decoded) %cmp3.i.us.i.i = icmp slt i32 %call2.i.us.i.i, 0 br i1 %cmp3.i.us.i.i, label %while.body.us.i.i, label %_ZN7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE18FindSpliceForLevelILb1EEEvRKNS_5SliceEPNS5_4NodeESB_iPSB_SC_.exit.i, !llvm.loop !25 while.body.i.i: ; preds = %for.body.i, %_ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.i.i %before.addr.0.i.i = phi ptr [ %atomic-temp.i.0.i.i.i.i, %_ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.i.i ], [ %36, %for.body.i ] %add.ptr.i.i.i = getelementptr inbounds %"struct.std::atomic.29", ptr %before.addr.0.i.i, i64 %idx.neg.i.i.i - %45 = load atomic i64, ptr %add.ptr.i.i.i acquire, align 8 - %atomic-temp.i.0.i.i.i.i = inttoptr i64 %45 to ptr - %cmp.not.i.i = icmp eq i64 %45, 0 + %44 = load atomic i64, ptr %add.ptr.i.i.i acquire, align 8 + %atomic-temp.i.0.i.i.i.i = inttoptr i64 %44 to ptr + %cmp.not.i.i = icmp eq i64 %44, 0 br i1 %cmp.not.i.i, label %_ZN7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE18FindSpliceForLevelILb1EEEvRKNS_5SliceEPNS5_4NodeESB_iPSB_SC_.exit.i, label %if.end.i.i if.end.i.i: ; preds = %while.body.i.i %add.ptr.i14.i.i = getelementptr inbounds %"struct.std::atomic.29", ptr %atomic-temp.i.0.i.i.i.i, i64 %idx.neg.i.i.i - %46 = load atomic i64, ptr %add.ptr.i14.i.i acquire, align 8 - %atomic-temp.i.0.i.i15.i.i = inttoptr i64 %46 to ptr + %45 = load atomic i64, ptr %add.ptr.i14.i.i acquire, align 8 + %atomic-temp.i.0.i.i15.i.i = inttoptr i64 %45 to ptr call void @llvm.prefetch.p0(ptr %atomic-temp.i.0.i.i15.i.i, i32 0, i32 1, i32 1) %cmp8.i.i = icmp eq ptr %38, %atomic-temp.i.0.i.i.i.i br i1 %cmp8.i.i, label %_ZN7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE18FindSpliceForLevelILb1EEEvRKNS_5SliceEPNS5_4NodeESB_iPSB_SC_.exit.i, label %_ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.i.i _ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.i.i: ; preds = %if.end.i.i - %47 = load ptr, ptr %compare_, align 8 + %46 = load ptr, ptr %compare_, align 8 %arrayidx.i.i.i.i = getelementptr inbounds [1 x %"struct.std::atomic.29"], ptr %atomic-temp.i.0.i.i.i.i, i64 0, i64 1 - %vtable.i.i.i = load ptr, ptr %47, align 8 + %vtable.i.i.i = load ptr, ptr %46, align 8 %vfn.i.i.i = getelementptr inbounds ptr, ptr %vtable.i.i.i, i64 2 - %48 = load ptr, ptr %vfn.i.i.i, align 8 - %call2.i.i.i = call noundef i32 %48(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull %arrayidx.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(16) %key_decoded) + %47 = load ptr, ptr %vfn.i.i.i, align 8 + %call2.i.i.i = call noundef i32 %47(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef nonnull %arrayidx.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(16) %key_decoded) %cmp3.i.i.i = icmp slt i32 %call2.i.i.i, 0 br i1 %cmp3.i.i.i, label %while.body.i.i, label %_ZN7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE18FindSpliceForLevelILb1EEEvRKNS_5SliceEPNS5_4NodeESB_iPSB_SC_.exit.i, !llvm.loop !25 @@ -2775,9 +2773,9 @@ for.body.lr.ph: ; preds = %if.end78 %prev_82 = getelementptr inbounds %"struct.rocksdb::InlineSkipList::Splice", ptr %splice, i64 0, i32 1 %next_86 = getelementptr inbounds %"struct.rocksdb::InlineSkipList::Splice", ptr %splice, i64 0, i32 2 %head_124 = getelementptr inbounds %"class.rocksdb::InlineSkipList", ptr %this, i64 0, i32 5 - %49 = ptrtoint ptr %add.ptr to i64 - %50 = sext i32 %recompute_height.4181 to i64 - %51 = zext nneg i32 %rv.0.copyload.i to i64 + %48 = ptrtoint ptr %add.ptr to i64 + %49 = sext i32 %recompute_height.4181 to i64 + %50 = zext nneg i32 %rv.0.copyload.i to i64 %wide.trip.count = zext nneg i32 %rv.0.copyload.i to i64 br label %for.body @@ -2789,48 +2787,48 @@ for.body152.lr.ph: ; preds = %if.end139 for.body: ; preds = %for.body.lr.ph, %if.end139 %indvars.iv169 = phi i64 [ 0, %for.body.lr.ph ], [ %indvars.iv.next170, %if.end139 ] %cmp79155 = phi i1 [ false, %for.body.lr.ph ], [ %cmp79, %if.end139 ] - %cmp80.not = icmp slt i64 %indvars.iv169, %50 + %cmp80.not = icmp slt i64 %indvars.iv169, %49 br i1 %cmp80.not, label %if.end100, label %land.lhs.true81 land.lhs.true81: ; preds = %for.body - %52 = load ptr, ptr %prev_82, align 8 - %arrayidx84 = getelementptr inbounds ptr, ptr %52, i64 %indvars.iv169 - %53 = load ptr, ptr %arrayidx84, align 8 + %51 = load ptr, ptr %prev_82, align 8 + %arrayidx84 = getelementptr inbounds ptr, ptr %51, i64 %indvars.iv169 + %52 = load ptr, ptr %arrayidx84, align 8 %idx.neg.i129 = sub nsw i64 0, %indvars.iv169 - %add.ptr.i130 = getelementptr inbounds %"struct.std::atomic.29", ptr %53, i64 %idx.neg.i129 - %54 = load atomic i64, ptr %add.ptr.i130 acquire, align 8 - %atomic-temp.i.0.i.i131 = inttoptr i64 %54 to ptr - %55 = load ptr, ptr %next_86, align 8 - %arrayidx88 = getelementptr inbounds ptr, ptr %55, i64 %indvars.iv169 - %56 = load ptr, ptr %arrayidx88, align 8 - %cmp89.not = icmp eq ptr %56, %atomic-temp.i.0.i.i131 + %add.ptr.i130 = getelementptr inbounds %"struct.std::atomic.29", ptr %52, i64 %idx.neg.i129 + %53 = load atomic i64, ptr %add.ptr.i130 acquire, align 8 + %atomic-temp.i.0.i.i131 = inttoptr i64 %53 to ptr + %54 = load ptr, ptr %next_86, align 8 + %arrayidx88 = getelementptr inbounds ptr, ptr %54, i64 %indvars.iv169 + %55 = load ptr, ptr %arrayidx88, align 8 + %cmp89.not = icmp eq ptr %55, %atomic-temp.i.0.i.i131 br i1 %cmp89.not, label %if.end100, label %if.then90 if.then90: ; preds = %land.lhs.true81 - %57 = load ptr, ptr %prev_82, align 8 - %arrayidx93 = getelementptr inbounds ptr, ptr %57, i64 %indvars.iv169 - %58 = load ptr, ptr %arrayidx93, align 8 + %56 = load ptr, ptr %prev_82, align 8 + %arrayidx93 = getelementptr inbounds ptr, ptr %56, i64 %indvars.iv169 + %57 = load ptr, ptr %arrayidx93, align 8 br label %while.body.i while.body.i: ; preds = %_ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.i, %if.then90 - %before.addr.0.i = phi ptr [ %58, %if.then90 ], [ %atomic-temp.i.0.i.i.i, %_ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.i ] + %before.addr.0.i = phi ptr [ %57, %if.then90 ], [ %atomic-temp.i.0.i.i.i, %_ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.i ] %add.ptr.i.i = getelementptr inbounds %"struct.std::atomic.29", ptr %before.addr.0.i, i64 %idx.neg.i129 - %59 = load atomic i64, ptr %add.ptr.i.i acquire, align 8 - %atomic-temp.i.0.i.i.i = inttoptr i64 %59 to ptr - %cmp.not.i132 = icmp eq i64 %59, 0 + %58 = load atomic i64, ptr %add.ptr.i.i acquire, align 8 + %atomic-temp.i.0.i.i.i = inttoptr i64 %58 to ptr + %cmp.not.i132 = icmp eq i64 %58, 0 br i1 %cmp.not.i132, label %_ZN7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE18FindSpliceForLevelILb0EEEvRKNS_5SliceEPNS5_4NodeESB_iPSB_SC_.exit, label %_ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.i _ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.i: ; preds = %while.body.i %add.ptr.i10.i = getelementptr inbounds %"struct.std::atomic.29", ptr %atomic-temp.i.0.i.i.i, i64 %idx.neg.i129 - %60 = load atomic i64, ptr %add.ptr.i10.i acquire, align 8 - %atomic-temp.i.0.i.i11.i = inttoptr i64 %60 to ptr + %59 = load atomic i64, ptr %add.ptr.i10.i acquire, align 8 + %atomic-temp.i.0.i.i11.i = inttoptr i64 %59 to ptr call void @llvm.prefetch.p0(ptr %atomic-temp.i.0.i.i11.i, i32 0, i32 1, i32 1) - %61 = load ptr, ptr %compare_, align 8 + %60 = load ptr, ptr %compare_, align 8 %arrayidx.i.i.i = getelementptr inbounds [1 x %"struct.std::atomic.29"], ptr %atomic-temp.i.0.i.i.i, i64 0, i64 1 - %vtable.i.i = load ptr, ptr %61, align 8 + %vtable.i.i = load ptr, ptr %60, align 8 %vfn.i.i = getelementptr inbounds ptr, ptr %vtable.i.i, i64 2 - %62 = load ptr, ptr %vfn.i.i, align 8 - %call2.i.i = call noundef i32 %62(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef nonnull %arrayidx.i.i.i, ptr noundef nonnull align 8 dereferenceable(16) %key_decoded) + %61 = load ptr, ptr %vfn.i.i, align 8 + %call2.i.i = call noundef i32 %61(ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef nonnull %arrayidx.i.i.i, ptr noundef nonnull align 8 dereferenceable(16) %key_decoded) %cmp3.i.i = icmp slt i32 %call2.i.i, 0 br i1 %cmp3.i.i, label %while.body.i, label %_ZN7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE18FindSpliceForLevelILb0EEEvRKNS_5SliceEPNS5_4NodeESB_iPSB_SC_.exit, !llvm.loop !27 @@ -2844,60 +2842,60 @@ if.end100: ; preds = %_ZN7rocksdb14Inline br i1 %cmp101, label %land.lhs.true102, label %if.end139 land.lhs.true102: ; preds = %if.end100 - %63 = load ptr, ptr %next_86, align 8 - %64 = load ptr, ptr %63, align 8 - %cmp106.not = icmp eq ptr %64, null + %62 = load ptr, ptr %next_86, align 8 + %63 = load ptr, ptr %62, align 8 + %cmp106.not = icmp eq ptr %63, null br i1 %cmp106.not, label %land.lhs.true120, label %land.rhs land.rhs: ; preds = %land.lhs.true102 - %65 = load ptr, ptr %compare_, align 8 - %arrayidx.i134 = getelementptr inbounds [1 x %"struct.std::atomic.29"], ptr %64, i64 0, i64 1 - %vtable113 = load ptr, ptr %65, align 8 + %64 = load ptr, ptr %compare_, align 8 + %arrayidx.i134 = getelementptr inbounds [1 x %"struct.std::atomic.29"], ptr %63, i64 0, i64 1 + %vtable113 = load ptr, ptr %64, align 8 %vfn114 = getelementptr inbounds ptr, ptr %vtable113, i64 1 - %66 = load ptr, ptr %vfn114, align 8 - %call115 = call noundef i32 %66(ptr noundef nonnull align 8 dereferenceable(8) %65, ptr noundef nonnull %key, ptr noundef nonnull %arrayidx.i134) + %65 = load ptr, ptr %vfn114, align 8 + %call115 = call noundef i32 %65(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull %key, ptr noundef nonnull %arrayidx.i134) %cmp116 = icmp sgt i32 %call115, -1 br i1 %cmp116, label %return, label %land.lhs.true120 land.lhs.true120: ; preds = %land.rhs, %land.lhs.true102 - %67 = load ptr, ptr %prev_82, align 8 - %68 = load ptr, ptr %67, align 8 - %69 = load ptr, ptr %head_124, align 8 - %cmp125.not = icmp eq ptr %68, %69 + %66 = load ptr, ptr %prev_82, align 8 + %67 = load ptr, ptr %66, align 8 + %68 = load ptr, ptr %head_124, align 8 + %cmp125.not = icmp eq ptr %67, %68 br i1 %cmp125.not, label %if.end139, label %land.rhs126 land.rhs126: ; preds = %land.lhs.true120 - %70 = load ptr, ptr %compare_, align 8 - %arrayidx.i135 = getelementptr inbounds [1 x %"struct.std::atomic.29"], ptr %68, i64 0, i64 1 - %vtable133 = load ptr, ptr %70, align 8 + %69 = load ptr, ptr %compare_, align 8 + %arrayidx.i135 = getelementptr inbounds [1 x %"struct.std::atomic.29"], ptr %67, i64 0, i64 1 + %vtable133 = load ptr, ptr %69, align 8 %vfn134 = getelementptr inbounds ptr, ptr %vtable133, i64 1 - %71 = load ptr, ptr %vfn134, align 8 - %call135 = call noundef i32 %71(ptr noundef nonnull align 8 dereferenceable(8) %70, ptr noundef nonnull %arrayidx.i135, ptr noundef nonnull %key) + %70 = load ptr, ptr %vfn134, align 8 + %call135 = call noundef i32 %70(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull %arrayidx.i135, ptr noundef nonnull %key) %cmp136 = icmp sgt i32 %call135, -1 br i1 %cmp136, label %return, label %if.end139 if.end139: ; preds = %if.end100, %land.lhs.true120, %land.rhs126 - %72 = load ptr, ptr %next_86, align 8 - %arrayidx142 = getelementptr inbounds ptr, ptr %72, i64 %indvars.iv169 - %73 = load ptr, ptr %arrayidx142, align 8 + %71 = load ptr, ptr %next_86, align 8 + %arrayidx142 = getelementptr inbounds ptr, ptr %71, i64 %indvars.iv169 + %72 = load ptr, ptr %arrayidx142, align 8 %idx.neg.i138 = sub nsw i64 0, %indvars.iv169 %add.ptr.i139 = getelementptr inbounds %"struct.std::atomic.29", ptr %add.ptr, i64 %idx.neg.i138 - %74 = ptrtoint ptr %73 to i64 - store atomic i64 %74, ptr %add.ptr.i139 monotonic, align 8 - %75 = load ptr, ptr %prev_82, align 8 - %arrayidx145 = getelementptr inbounds ptr, ptr %75, i64 %indvars.iv169 - %76 = load ptr, ptr %arrayidx145, align 8 - %add.ptr.i142 = getelementptr inbounds %"struct.std::atomic.29", ptr %76, i64 %idx.neg.i138 - store atomic i64 %49, ptr %add.ptr.i142 release, align 8 + %73 = ptrtoint ptr %72 to i64 + store atomic i64 %73, ptr %add.ptr.i139 monotonic, align 8 + %74 = load ptr, ptr %prev_82, align 8 + %arrayidx145 = getelementptr inbounds ptr, ptr %74, i64 %indvars.iv169 + %75 = load ptr, ptr %arrayidx145, align 8 + %add.ptr.i142 = getelementptr inbounds %"struct.std::atomic.29", ptr %75, i64 %idx.neg.i138 + store atomic i64 %48, ptr %add.ptr.i142 release, align 8 %indvars.iv.next170 = add nuw nsw i64 %indvars.iv169, 1 - %cmp79 = icmp uge i64 %indvars.iv.next170, %51 + %cmp79 = icmp uge i64 %indvars.iv.next170, %50 %exitcond = icmp eq i64 %indvars.iv.next170, %wide.trip.count br i1 %exitcond, label %for.body152.lr.ph, label %for.body, !llvm.loop !28 for.body152: ; preds = %for.body152.lr.ph, %for.body152 %indvars.iv171 = phi i64 [ 0, %for.body152.lr.ph ], [ %indvars.iv.next172, %for.body152 ] - %77 = load ptr, ptr %prev_153, align 8 - %arrayidx155 = getelementptr inbounds ptr, ptr %77, i64 %indvars.iv171 + %76 = load ptr, ptr %prev_153, align 8 + %arrayidx155 = getelementptr inbounds ptr, ptr %76, i64 %indvars.iv171 store ptr %add.ptr, ptr %arrayidx155, align 8 %indvars.iv.next172 = add nuw nsw i64 %indvars.iv171, 1 %exitcond175.not = icmp eq i64 %indvars.iv.next172, %wide.trip.count174 @@ -3109,64 +3107,62 @@ for.body.i: ; preds = %_ZN7rocksdb14Inline %arrayidx10.i = getelementptr inbounds ptr, ptr %37, i64 %indvars.iv.next.i %idx.neg.i.i.i = sub nsw i64 1, %indvars.iv.i %cmp4.i.not.i = icmp eq i64 %indvars.iv.next.i, 0 - %39 = add nuw nsw i64 %indvars.iv.i, 4294967294 - %idx.ext.i16.i.i = and i64 %39, 4294967295 - %idx.neg.i17.i.i = sub nsw i64 0, %idx.ext.i16.i.i + %idx.neg.i17.i.i = sub nsw i64 2, %indvars.iv.i br i1 %cmp4.i.not.i, label %while.body.i.i, label %while.body.us.i.i while.body.us.i.i: ; preds = %for.body.i, %_ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.us.i.i %before.addr.0.us.i.i = phi ptr [ %atomic-temp.i.0.i.i.us.i.i, %_ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.us.i.i ], [ %36, %for.body.i ] %add.ptr.i.us.i.i = getelementptr inbounds %"struct.std::atomic.29", ptr %before.addr.0.us.i.i, i64 %idx.neg.i.i.i - %40 = load atomic i64, ptr %add.ptr.i.us.i.i acquire, align 8 - %atomic-temp.i.0.i.i.us.i.i = inttoptr i64 %40 to ptr - %cmp.us.not.i.i = icmp eq i64 %40, 0 + %39 = load atomic i64, ptr %add.ptr.i.us.i.i acquire, align 8 + %atomic-temp.i.0.i.i.us.i.i = inttoptr i64 %39 to ptr + %cmp.us.not.i.i = icmp eq i64 %39, 0 br i1 %cmp.us.not.i.i, label %_ZN7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE18FindSpliceForLevelILb1EEEvRKNS_5SliceEPNS5_4NodeESB_iPSB_SC_.exit.i, label %if.end.us.i.i if.end.us.i.i: ; preds = %while.body.us.i.i %add.ptr.i14.us.i.i = getelementptr inbounds %"struct.std::atomic.29", ptr %atomic-temp.i.0.i.i.us.i.i, i64 %idx.neg.i.i.i - %41 = load atomic i64, ptr %add.ptr.i14.us.i.i acquire, align 8 - %atomic-temp.i.0.i.i15.us.i.i = inttoptr i64 %41 to ptr + %40 = load atomic i64, ptr %add.ptr.i14.us.i.i acquire, align 8 + %atomic-temp.i.0.i.i15.us.i.i = inttoptr i64 %40 to ptr call void @llvm.prefetch.p0(ptr %atomic-temp.i.0.i.i15.us.i.i, i32 0, i32 1, i32 1) %add.ptr.i18.us.i.i = getelementptr inbounds %"struct.std::atomic.29", ptr %atomic-temp.i.0.i.i.us.i.i, i64 %idx.neg.i17.i.i - %42 = load atomic i64, ptr %add.ptr.i18.us.i.i acquire, align 8 - %atomic-temp.i.0.i.i19.us.i.i = inttoptr i64 %42 to ptr + %41 = load atomic i64, ptr %add.ptr.i18.us.i.i acquire, align 8 + %atomic-temp.i.0.i.i19.us.i.i = inttoptr i64 %41 to ptr call void @llvm.prefetch.p0(ptr %atomic-temp.i.0.i.i19.us.i.i, i32 0, i32 1, i32 1) %cmp8.us.i.i = icmp eq ptr %38, %atomic-temp.i.0.i.i.us.i.i br i1 %cmp8.us.i.i, label %_ZN7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE18FindSpliceForLevelILb1EEEvRKNS_5SliceEPNS5_4NodeESB_iPSB_SC_.exit.i, label %_ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.us.i.i _ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.us.i.i: ; preds = %if.end.us.i.i - %43 = load ptr, ptr %compare_, align 8 + %42 = load ptr, ptr %compare_, align 8 %arrayidx.i.i.us.i.i = getelementptr inbounds [1 x %"struct.std::atomic.29"], ptr %atomic-temp.i.0.i.i.us.i.i, i64 0, i64 1 - %vtable.i.us.i.i = load ptr, ptr %43, align 8 + %vtable.i.us.i.i = load ptr, ptr %42, align 8 %vfn.i.us.i.i = getelementptr inbounds ptr, ptr %vtable.i.us.i.i, i64 2 - %44 = load ptr, ptr %vfn.i.us.i.i, align 8 - %call2.i.us.i.i = call noundef i32 %44(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull %arrayidx.i.i.us.i.i, ptr noundef nonnull align 8 dereferenceable(16) %key_decoded) + %43 = load ptr, ptr %vfn.i.us.i.i, align 8 + %call2.i.us.i.i = call noundef i32 %43(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull %arrayidx.i.i.us.i.i, ptr noundef nonnull align 8 dereferenceable(16) %key_decoded) %cmp3.i.us.i.i = icmp slt i32 %call2.i.us.i.i, 0 br i1 %cmp3.i.us.i.i, label %while.body.us.i.i, label %_ZN7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE18FindSpliceForLevelILb1EEEvRKNS_5SliceEPNS5_4NodeESB_iPSB_SC_.exit.i, !llvm.loop !25 while.body.i.i: ; preds = %for.body.i, %_ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.i.i %before.addr.0.i.i = phi ptr [ %atomic-temp.i.0.i.i.i.i, %_ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.i.i ], [ %36, %for.body.i ] %add.ptr.i.i.i = getelementptr inbounds %"struct.std::atomic.29", ptr %before.addr.0.i.i, i64 %idx.neg.i.i.i - %45 = load atomic i64, ptr %add.ptr.i.i.i acquire, align 8 - %atomic-temp.i.0.i.i.i.i = inttoptr i64 %45 to ptr - %cmp.not.i.i = icmp eq i64 %45, 0 + %44 = load atomic i64, ptr %add.ptr.i.i.i acquire, align 8 + %atomic-temp.i.0.i.i.i.i = inttoptr i64 %44 to ptr + %cmp.not.i.i = icmp eq i64 %44, 0 br i1 %cmp.not.i.i, label %_ZN7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE18FindSpliceForLevelILb1EEEvRKNS_5SliceEPNS5_4NodeESB_iPSB_SC_.exit.i, label %if.end.i.i if.end.i.i: ; preds = %while.body.i.i %add.ptr.i14.i.i = getelementptr inbounds %"struct.std::atomic.29", ptr %atomic-temp.i.0.i.i.i.i, i64 %idx.neg.i.i.i - %46 = load atomic i64, ptr %add.ptr.i14.i.i acquire, align 8 - %atomic-temp.i.0.i.i15.i.i = inttoptr i64 %46 to ptr + %45 = load atomic i64, ptr %add.ptr.i14.i.i acquire, align 8 + %atomic-temp.i.0.i.i15.i.i = inttoptr i64 %45 to ptr call void @llvm.prefetch.p0(ptr %atomic-temp.i.0.i.i15.i.i, i32 0, i32 1, i32 1) %cmp8.i.i = icmp eq ptr %38, %atomic-temp.i.0.i.i.i.i br i1 %cmp8.i.i, label %_ZN7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE18FindSpliceForLevelILb1EEEvRKNS_5SliceEPNS5_4NodeESB_iPSB_SC_.exit.i, label %_ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.i.i _ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.i.i: ; preds = %if.end.i.i - %47 = load ptr, ptr %compare_, align 8 + %46 = load ptr, ptr %compare_, align 8 %arrayidx.i.i.i.i = getelementptr inbounds [1 x %"struct.std::atomic.29"], ptr %atomic-temp.i.0.i.i.i.i, i64 0, i64 1 - %vtable.i.i.i = load ptr, ptr %47, align 8 + %vtable.i.i.i = load ptr, ptr %46, align 8 %vfn.i.i.i = getelementptr inbounds ptr, ptr %vtable.i.i.i, i64 2 - %48 = load ptr, ptr %vfn.i.i.i, align 8 - %call2.i.i.i = call noundef i32 %48(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull %arrayidx.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(16) %key_decoded) + %47 = load ptr, ptr %vfn.i.i.i, align 8 + %call2.i.i.i = call noundef i32 %47(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef nonnull %arrayidx.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(16) %key_decoded) %cmp3.i.i.i = icmp slt i32 %call2.i.i.i, 0 br i1 %cmp3.i.i.i, label %while.body.i.i, label %_ZN7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE18FindSpliceForLevelILb1EEEvRKNS_5SliceEPNS5_4NodeESB_iPSB_SC_.exit.i, !llvm.loop !25 @@ -3186,8 +3182,8 @@ while.body81.preheader.lr.ph: ; preds = %if.end78 %next_84 = getelementptr inbounds %"struct.rocksdb::InlineSkipList::Splice", ptr %splice, i64 0, i32 2 %prev_102 = getelementptr inbounds %"struct.rocksdb::InlineSkipList::Splice", ptr %splice, i64 0, i32 1 %head_105 = getelementptr inbounds %"class.rocksdb::InlineSkipList", ptr %this, i64 0, i32 5 - %49 = ptrtoint ptr %add.ptr to i64 - %50 = zext nneg i32 %rv.0.copyload.i to i64 + %48 = ptrtoint ptr %add.ptr to i64 + %49 = zext nneg i32 %rv.0.copyload.i to i64 %wide.trip.count = zext nneg i32 %rv.0.copyload.i to i64 br label %while.body81.preheader @@ -3201,165 +3197,165 @@ while.body81.preheader: ; preds = %while.body81.prehea br i1 %cmp82, label %while.body81.us, label %while.body81.preheader.split while.body81.us: ; preds = %while.body81.preheader, %_ZN7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE18FindSpliceForLevelILb0EEEvRKNS_5SliceEPNS5_4NodeESB_iPSB_SC_.exit.us - %51 = load ptr, ptr %next_84, align 8 - %52 = load ptr, ptr %51, align 8 - %cmp87.not.us = icmp eq ptr %52, null + %50 = load ptr, ptr %next_84, align 8 + %51 = load ptr, ptr %50, align 8 + %cmp87.not.us = icmp eq ptr %51, null br i1 %cmp87.not.us, label %land.lhs.true101.us, label %land.rhs.us land.rhs.us: ; preds = %while.body81.us - %53 = load ptr, ptr %compare_, align 8 - %arrayidx.i126.us = getelementptr inbounds [1 x %"struct.std::atomic.29"], ptr %52, i64 0, i64 1 - %vtable94.us = load ptr, ptr %53, align 8 + %52 = load ptr, ptr %compare_, align 8 + %arrayidx.i126.us = getelementptr inbounds [1 x %"struct.std::atomic.29"], ptr %51, i64 0, i64 1 + %vtable94.us = load ptr, ptr %52, align 8 %vfn95.us = getelementptr inbounds ptr, ptr %vtable94.us, i64 1 - %54 = load ptr, ptr %vfn95.us, align 8 - %call96.us = call noundef i32 %54(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull %key, ptr noundef nonnull %arrayidx.i126.us) + %53 = load ptr, ptr %vfn95.us, align 8 + %call96.us = call noundef i32 %53(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull %key, ptr noundef nonnull %arrayidx.i126.us) %cmp97.us = icmp sgt i32 %call96.us, -1 br i1 %cmp97.us, label %return, label %land.lhs.true101.us land.lhs.true101.us: ; preds = %land.rhs.us, %while.body81.us - %55 = load ptr, ptr %prev_102, align 8 - %56 = load ptr, ptr %55, align 8 - %57 = load ptr, ptr %head_105, align 8 - %cmp106.not.us = icmp eq ptr %56, %57 + %54 = load ptr, ptr %prev_102, align 8 + %55 = load ptr, ptr %54, align 8 + %56 = load ptr, ptr %head_105, align 8 + %cmp106.not.us = icmp eq ptr %55, %56 br i1 %cmp106.not.us, label %if.end120.us, label %land.rhs107.us land.rhs107.us: ; preds = %land.lhs.true101.us - %58 = load ptr, ptr %compare_, align 8 - %arrayidx.i127.us = getelementptr inbounds [1 x %"struct.std::atomic.29"], ptr %56, i64 0, i64 1 - %vtable114.us = load ptr, ptr %58, align 8 + %57 = load ptr, ptr %compare_, align 8 + %arrayidx.i127.us = getelementptr inbounds [1 x %"struct.std::atomic.29"], ptr %55, i64 0, i64 1 + %vtable114.us = load ptr, ptr %57, align 8 %vfn115.us = getelementptr inbounds ptr, ptr %vtable114.us, i64 1 - %59 = load ptr, ptr %vfn115.us, align 8 - %call116.us = call noundef i32 %59(ptr noundef nonnull align 8 dereferenceable(8) %58, ptr noundef nonnull %arrayidx.i127.us, ptr noundef nonnull %key) + %58 = load ptr, ptr %vfn115.us, align 8 + %call116.us = call noundef i32 %58(ptr noundef nonnull align 8 dereferenceable(8) %57, ptr noundef nonnull %arrayidx.i127.us, ptr noundef nonnull %key) %cmp117.us = icmp sgt i32 %call116.us, -1 br i1 %cmp117.us, label %return, label %if.end120.us if.end120.us: ; preds = %land.rhs107.us, %land.lhs.true101.us - %60 = load ptr, ptr %next_84, align 8 - %61 = load ptr, ptr %60, align 8 - %62 = ptrtoint ptr %61 to i64 - store atomic i64 %62, ptr %add.ptr.i131 monotonic, align 8 - %63 = load ptr, ptr %prev_102, align 8 - %64 = load ptr, ptr %63, align 8 - %65 = load ptr, ptr %next_84, align 8 - %66 = load ptr, ptr %65, align 8 - %add.ptr.i134.us = getelementptr inbounds %"struct.std::atomic.29", ptr %64, i64 %idx.neg.i130 - %67 = ptrtoint ptr %66 to i64 - %68 = cmpxchg ptr %add.ptr.i134.us, i64 %67, i64 %49 seq_cst seq_cst, align 8 - %69 = extractvalue { i64, i1 } %68, 1 - br i1 %69, label %for.inc, label %if.end132.us + %59 = load ptr, ptr %next_84, align 8 + %60 = load ptr, ptr %59, align 8 + %61 = ptrtoint ptr %60 to i64 + store atomic i64 %61, ptr %add.ptr.i131 monotonic, align 8 + %62 = load ptr, ptr %prev_102, align 8 + %63 = load ptr, ptr %62, align 8 + %64 = load ptr, ptr %next_84, align 8 + %65 = load ptr, ptr %64, align 8 + %add.ptr.i134.us = getelementptr inbounds %"struct.std::atomic.29", ptr %63, i64 %idx.neg.i130 + %66 = ptrtoint ptr %65 to i64 + %67 = cmpxchg ptr %add.ptr.i134.us, i64 %66, i64 %48 seq_cst seq_cst, align 8 + %68 = extractvalue { i64, i1 } %67, 1 + br i1 %68, label %for.inc, label %if.end132.us if.end132.us: ; preds = %if.end120.us - %70 = load ptr, ptr %prev_102, align 8 - %71 = load ptr, ptr %70, align 8 - %72 = load ptr, ptr %next_84, align 8 + %69 = load ptr, ptr %prev_102, align 8 + %70 = load ptr, ptr %69, align 8 + %71 = load ptr, ptr %next_84, align 8 br label %while.body.i.us while.body.i.us: ; preds = %_ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.i.us, %if.end132.us - %before.addr.0.i.us = phi ptr [ %71, %if.end132.us ], [ %atomic-temp.i.0.i.i.i.us, %_ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.i.us ] + %before.addr.0.i.us = phi ptr [ %70, %if.end132.us ], [ %atomic-temp.i.0.i.i.i.us, %_ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.i.us ] %add.ptr.i.i.us = getelementptr inbounds %"struct.std::atomic.29", ptr %before.addr.0.i.us, i64 %idx.neg.i130 - %73 = load atomic i64, ptr %add.ptr.i.i.us acquire, align 8 - %atomic-temp.i.0.i.i.i.us = inttoptr i64 %73 to ptr - %cmp.not.i135.us = icmp eq i64 %73, 0 + %72 = load atomic i64, ptr %add.ptr.i.i.us acquire, align 8 + %atomic-temp.i.0.i.i.i.us = inttoptr i64 %72 to ptr + %cmp.not.i135.us = icmp eq i64 %72, 0 br i1 %cmp.not.i135.us, label %_ZN7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE18FindSpliceForLevelILb0EEEvRKNS_5SliceEPNS5_4NodeESB_iPSB_SC_.exit.us, label %_ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.i.us _ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.i.us: ; preds = %while.body.i.us %add.ptr.i10.i.us = getelementptr inbounds %"struct.std::atomic.29", ptr %atomic-temp.i.0.i.i.i.us, i64 %idx.neg.i130 - %74 = load atomic i64, ptr %add.ptr.i10.i.us acquire, align 8 - %atomic-temp.i.0.i.i11.i.us = inttoptr i64 %74 to ptr + %73 = load atomic i64, ptr %add.ptr.i10.i.us acquire, align 8 + %atomic-temp.i.0.i.i11.i.us = inttoptr i64 %73 to ptr call void @llvm.prefetch.p0(ptr %atomic-temp.i.0.i.i11.i.us, i32 0, i32 1, i32 1) - %75 = load ptr, ptr %compare_, align 8 + %74 = load ptr, ptr %compare_, align 8 %arrayidx.i.i.i.us = getelementptr inbounds [1 x %"struct.std::atomic.29"], ptr %atomic-temp.i.0.i.i.i.us, i64 0, i64 1 - %vtable.i.i.us = load ptr, ptr %75, align 8 + %vtable.i.i.us = load ptr, ptr %74, align 8 %vfn.i.i.us = getelementptr inbounds ptr, ptr %vtable.i.i.us, i64 2 - %76 = load ptr, ptr %vfn.i.i.us, align 8 - %call2.i.i.us = call noundef i32 %76(ptr noundef nonnull align 8 dereferenceable(8) %75, ptr noundef nonnull %arrayidx.i.i.i.us, ptr noundef nonnull align 8 dereferenceable(16) %key_decoded) + %75 = load ptr, ptr %vfn.i.i.us, align 8 + %call2.i.i.us = call noundef i32 %75(ptr noundef nonnull align 8 dereferenceable(8) %74, ptr noundef nonnull %arrayidx.i.i.i.us, ptr noundef nonnull align 8 dereferenceable(16) %key_decoded) %cmp3.i.i.us = icmp slt i32 %call2.i.i.us, 0 br i1 %cmp3.i.i.us, label %while.body.i.us, label %_ZN7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE18FindSpliceForLevelILb0EEEvRKNS_5SliceEPNS5_4NodeESB_iPSB_SC_.exit.us, !llvm.loop !27 _ZN7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE18FindSpliceForLevelILb0EEEvRKNS_5SliceEPNS5_4NodeESB_iPSB_SC_.exit.us: ; preds = %_ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.i.us, %while.body.i.us - store ptr %before.addr.0.i.us, ptr %70, align 8 - store ptr %atomic-temp.i.0.i.i.i.us, ptr %72, align 8 + store ptr %before.addr.0.i.us, ptr %69, align 8 + store ptr %atomic-temp.i.0.i.i.i.us, ptr %71, align 8 br label %while.body81.us, !llvm.loop !34 while.body81.preheader.split: ; preds = %while.body81.preheader - %77 = load ptr, ptr %next_84, align 8 - %arrayidx123149 = getelementptr inbounds ptr, ptr %77, i64 %indvars.iv173 - %78 = load ptr, ptr %arrayidx123149, align 8 - %79 = ptrtoint ptr %78 to i64 - store atomic i64 %79, ptr %add.ptr.i131 monotonic, align 8 - %80 = load ptr, ptr %prev_102, align 8 - %arrayidx126150 = getelementptr inbounds ptr, ptr %80, i64 %indvars.iv173 - %81 = load ptr, ptr %arrayidx126150, align 8 - %82 = load ptr, ptr %next_84, align 8 - %arrayidx129151 = getelementptr inbounds ptr, ptr %82, i64 %indvars.iv173 - %83 = load ptr, ptr %arrayidx129151, align 8 - %add.ptr.i134152 = getelementptr inbounds %"struct.std::atomic.29", ptr %81, i64 %idx.neg.i130 - %84 = ptrtoint ptr %83 to i64 - %85 = cmpxchg ptr %add.ptr.i134152, i64 %84, i64 %49 seq_cst seq_cst, align 8 - %86 = extractvalue { i64, i1 } %85, 1 - br i1 %86, label %for.inc, label %if.end132 + %76 = load ptr, ptr %next_84, align 8 + %arrayidx123149 = getelementptr inbounds ptr, ptr %76, i64 %indvars.iv173 + %77 = load ptr, ptr %arrayidx123149, align 8 + %78 = ptrtoint ptr %77 to i64 + store atomic i64 %78, ptr %add.ptr.i131 monotonic, align 8 + %79 = load ptr, ptr %prev_102, align 8 + %arrayidx126150 = getelementptr inbounds ptr, ptr %79, i64 %indvars.iv173 + %80 = load ptr, ptr %arrayidx126150, align 8 + %81 = load ptr, ptr %next_84, align 8 + %arrayidx129151 = getelementptr inbounds ptr, ptr %81, i64 %indvars.iv173 + %82 = load ptr, ptr %arrayidx129151, align 8 + %add.ptr.i134152 = getelementptr inbounds %"struct.std::atomic.29", ptr %80, i64 %idx.neg.i130 + %83 = ptrtoint ptr %82 to i64 + %84 = cmpxchg ptr %add.ptr.i134152, i64 %83, i64 %48 seq_cst seq_cst, align 8 + %85 = extractvalue { i64, i1 } %84, 1 + br i1 %85, label %for.inc, label %if.end132 if.end132: ; preds = %while.body81.preheader.split, %_ZN7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE18FindSpliceForLevelILb0EEEvRKNS_5SliceEPNS5_4NodeESB_iPSB_SC_.exit - %87 = load ptr, ptr %prev_102, align 8 - %arrayidx135 = getelementptr inbounds ptr, ptr %87, i64 %indvars.iv173 - %88 = load ptr, ptr %arrayidx135, align 8 - %89 = load ptr, ptr %next_84, align 8 - %arrayidx141 = getelementptr inbounds ptr, ptr %89, i64 %indvars.iv173 + %86 = load ptr, ptr %prev_102, align 8 + %arrayidx135 = getelementptr inbounds ptr, ptr %86, i64 %indvars.iv173 + %87 = load ptr, ptr %arrayidx135, align 8 + %88 = load ptr, ptr %next_84, align 8 + %arrayidx141 = getelementptr inbounds ptr, ptr %88, i64 %indvars.iv173 br label %while.body.i while.body.i: ; preds = %_ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.i, %if.end132 - %before.addr.0.i = phi ptr [ %88, %if.end132 ], [ %atomic-temp.i.0.i.i.i, %_ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.i ] + %before.addr.0.i = phi ptr [ %87, %if.end132 ], [ %atomic-temp.i.0.i.i.i, %_ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.i ] %add.ptr.i.i = getelementptr inbounds %"struct.std::atomic.29", ptr %before.addr.0.i, i64 %idx.neg.i130 - %90 = load atomic i64, ptr %add.ptr.i.i acquire, align 8 - %atomic-temp.i.0.i.i.i = inttoptr i64 %90 to ptr - %cmp.not.i135 = icmp eq i64 %90, 0 + %89 = load atomic i64, ptr %add.ptr.i.i acquire, align 8 + %atomic-temp.i.0.i.i.i = inttoptr i64 %89 to ptr + %cmp.not.i135 = icmp eq i64 %89, 0 br i1 %cmp.not.i135, label %_ZN7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE18FindSpliceForLevelILb0EEEvRKNS_5SliceEPNS5_4NodeESB_iPSB_SC_.exit, label %_ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.i _ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.i: ; preds = %while.body.i %add.ptr.i10.i = getelementptr inbounds %"struct.std::atomic.29", ptr %atomic-temp.i.0.i.i.i, i64 %idx.neg.i130 - %91 = load atomic i64, ptr %add.ptr.i10.i acquire, align 8 - %atomic-temp.i.0.i.i11.i = inttoptr i64 %91 to ptr + %90 = load atomic i64, ptr %add.ptr.i10.i acquire, align 8 + %atomic-temp.i.0.i.i11.i = inttoptr i64 %90 to ptr call void @llvm.prefetch.p0(ptr %atomic-temp.i.0.i.i11.i, i32 0, i32 1, i32 1) - %92 = load ptr, ptr %compare_, align 8 + %91 = load ptr, ptr %compare_, align 8 %arrayidx.i.i.i = getelementptr inbounds [1 x %"struct.std::atomic.29"], ptr %atomic-temp.i.0.i.i.i, i64 0, i64 1 - %vtable.i.i = load ptr, ptr %92, align 8 + %vtable.i.i = load ptr, ptr %91, align 8 %vfn.i.i = getelementptr inbounds ptr, ptr %vtable.i.i, i64 2 - %93 = load ptr, ptr %vfn.i.i, align 8 - %call2.i.i = call noundef i32 %93(ptr noundef nonnull align 8 dereferenceable(8) %92, ptr noundef nonnull %arrayidx.i.i.i, ptr noundef nonnull align 8 dereferenceable(16) %key_decoded) + %92 = load ptr, ptr %vfn.i.i, align 8 + %call2.i.i = call noundef i32 %92(ptr noundef nonnull align 8 dereferenceable(8) %91, ptr noundef nonnull %arrayidx.i.i.i, ptr noundef nonnull align 8 dereferenceable(16) %key_decoded) %cmp3.i.i = icmp slt i32 %call2.i.i, 0 br i1 %cmp3.i.i, label %while.body.i, label %_ZN7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE18FindSpliceForLevelILb0EEEvRKNS_5SliceEPNS5_4NodeESB_iPSB_SC_.exit, !llvm.loop !27 _ZN7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE18FindSpliceForLevelILb0EEEvRKNS_5SliceEPNS5_4NodeESB_iPSB_SC_.exit: ; preds = %while.body.i, %_ZNK7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE14KeyIsAfterNodeERKNS_5SliceEPNS5_4NodeE.exit.i store ptr %before.addr.0.i, ptr %arrayidx135, align 8 store ptr %atomic-temp.i.0.i.i.i, ptr %arrayidx141, align 8 - %94 = load ptr, ptr %next_84, align 8 - %arrayidx123 = getelementptr inbounds ptr, ptr %94, i64 %indvars.iv173 - %95 = load ptr, ptr %arrayidx123, align 8 - %96 = ptrtoint ptr %95 to i64 - store atomic i64 %96, ptr %add.ptr.i131 monotonic, align 8 - %97 = load ptr, ptr %prev_102, align 8 - %arrayidx126 = getelementptr inbounds ptr, ptr %97, i64 %indvars.iv173 - %98 = load ptr, ptr %arrayidx126, align 8 - %99 = load ptr, ptr %next_84, align 8 - %arrayidx129 = getelementptr inbounds ptr, ptr %99, i64 %indvars.iv173 - %100 = load ptr, ptr %arrayidx129, align 8 - %add.ptr.i134 = getelementptr inbounds %"struct.std::atomic.29", ptr %98, i64 %idx.neg.i130 - %101 = ptrtoint ptr %100 to i64 - %102 = cmpxchg ptr %add.ptr.i134, i64 %101, i64 %49 seq_cst seq_cst, align 8 - %103 = extractvalue { i64, i1 } %102, 1 - br i1 %103, label %for.inc, label %if.end132, !llvm.loop !34 + %93 = load ptr, ptr %next_84, align 8 + %arrayidx123 = getelementptr inbounds ptr, ptr %93, i64 %indvars.iv173 + %94 = load ptr, ptr %arrayidx123, align 8 + %95 = ptrtoint ptr %94 to i64 + store atomic i64 %95, ptr %add.ptr.i131 monotonic, align 8 + %96 = load ptr, ptr %prev_102, align 8 + %arrayidx126 = getelementptr inbounds ptr, ptr %96, i64 %indvars.iv173 + %97 = load ptr, ptr %arrayidx126, align 8 + %98 = load ptr, ptr %next_84, align 8 + %arrayidx129 = getelementptr inbounds ptr, ptr %98, i64 %indvars.iv173 + %99 = load ptr, ptr %arrayidx129, align 8 + %add.ptr.i134 = getelementptr inbounds %"struct.std::atomic.29", ptr %97, i64 %idx.neg.i130 + %100 = ptrtoint ptr %99 to i64 + %101 = cmpxchg ptr %add.ptr.i134, i64 %100, i64 %48 seq_cst seq_cst, align 8 + %102 = extractvalue { i64, i1 } %101, 1 + br i1 %102, label %for.inc, label %if.end132, !llvm.loop !34 for.inc: ; preds = %_ZN7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE18FindSpliceForLevelILb0EEEvRKNS_5SliceEPNS5_4NodeESB_iPSB_SC_.exit, %if.end120.us, %while.body81.preheader.split %.us-phi148 = phi i8 [ %splice_is_valid.0155, %while.body81.preheader.split ], [ %splice_is_valid.0155, %if.end120.us ], [ 0, %_ZN7rocksdb14InlineSkipListIRKNS_11MemTableRep13KeyComparatorEE18FindSpliceForLevelILb0EEEvRKNS_5SliceEPNS5_4NodeESB_iPSB_SC_.exit ] %indvars.iv.next174 = add nuw nsw i64 %indvars.iv173, 1 - %cmp79 = icmp uge i64 %indvars.iv.next174, %50 + %cmp79 = icmp uge i64 %indvars.iv.next174, %49 %exitcond = icmp eq i64 %indvars.iv.next174, %wide.trip.count br i1 %exitcond, label %for.end, label %while.body81.preheader, !llvm.loop !35 for.end: ; preds = %for.inc - %104 = and i8 %.us-phi148, 1 - %105 = icmp eq i8 %104, 0 - br i1 %105, label %if.else167, label %for.body152.lr.ph + %103 = and i8 %.us-phi148, 1 + %104 = icmp eq i8 %103, 0 + br i1 %104, label %if.else167, label %for.body152.lr.ph for.body152.lr.ph: ; preds = %for.end %prev_153 = getelementptr inbounds %"struct.rocksdb::InlineSkipList::Splice", ptr %splice, i64 0, i32 1 @@ -3368,8 +3364,8 @@ for.body152.lr.ph: ; preds = %for.end for.body152: ; preds = %for.body152.lr.ph, %for.body152 %indvars.iv175 = phi i64 [ 0, %for.body152.lr.ph ], [ %indvars.iv.next176, %for.body152 ] - %106 = load ptr, ptr %prev_153, align 8 - %arrayidx155 = getelementptr inbounds ptr, ptr %106, i64 %indvars.iv175 + %105 = load ptr, ptr %prev_153, align 8 + %arrayidx155 = getelementptr inbounds ptr, ptr %105, i64 %indvars.iv175 store ptr %add.ptr, ptr %arrayidx155, align 8 %indvars.iv.next176 = add nuw nsw i64 %indvars.iv175, 1 %exitcond179.not = icmp eq i64 %indvars.iv.next176, %wide.trip.count178 diff --git a/bench/rocksdb/optimized/version_set.cc.ll b/bench/rocksdb/optimized/version_set.cc.ll index 057aeaaed1b..b5fbaf7304d 100644 --- a/bench/rocksdb/optimized/version_set.cc.ll +++ b/bench/rocksdb/optimized/version_set.cc.ll @@ -18980,12 +18980,12 @@ for.body22: ; preds = %for.body22.lr.ph, % %16 = load i8, ptr %add.ptr, align 8 %cmp27 = icmp eq i8 %16, 1 %or.cond49 = select i1 %cmp23, i1 %cmp27, i1 false + %17 = load ptr, ptr %level_max_bytes_, align 8 br i1 %or.cond49, label %if.then28, label %if.else if.then28: ; preds = %for.body22 - %17 = load i64, ptr %max_bytes_for_level_base46, align 8 - %18 = load ptr, ptr %level_max_bytes_, align 8 - store i64 %17, ptr %18, align 8 + %18 = load i64, ptr %max_bytes_for_level_base46, align 8 + store i64 %18, ptr %17, align 8 br label %for.inc52 if.else: ; preds = %for.body22 @@ -18994,48 +18994,45 @@ if.else: ; preds = %for.body22 if.then33: ; preds = %if.else %19 = add nsw i64 %indvars.iv130, -1 - %conv35 = and i64 %19, 4294967295 - %20 = load ptr, ptr %level_max_bytes_, align 8 - %add.ptr.i53 = getelementptr inbounds i64, ptr %20, i64 %conv35 - %21 = load i64, ptr %add.ptr.i53, align 8 - %22 = load double, ptr %max_bytes_for_level_multiplier, align 8 - %call37 = tail call noundef i64 @_ZN7rocksdb21MultiplyCheckOverflowEmd(i64 noundef %21, double noundef %22) - %23 = load ptr, ptr %_M_finish.i.i54, align 8 - %24 = load ptr, ptr %max_bytes_for_level_multiplier_additional.i, align 8 - %sub.ptr.lhs.cast.i.i55 = ptrtoint ptr %23 to i64 - %sub.ptr.rhs.cast.i.i56 = ptrtoint ptr %24 to i64 + %add.ptr.i53 = getelementptr inbounds i64, ptr %17, i64 %19 + %20 = load i64, ptr %add.ptr.i53, align 8 + %21 = load double, ptr %max_bytes_for_level_multiplier, align 8 + %call37 = tail call noundef i64 @_ZN7rocksdb21MultiplyCheckOverflowEmd(i64 noundef %20, double noundef %21) + %22 = load ptr, ptr %_M_finish.i.i54, align 8 + %23 = load ptr, ptr %max_bytes_for_level_multiplier_additional.i, align 8 + %sub.ptr.lhs.cast.i.i55 = ptrtoint ptr %22 to i64 + %sub.ptr.rhs.cast.i.i56 = ptrtoint ptr %23 to i64 %sub.ptr.sub.i.i57 = sub i64 %sub.ptr.lhs.cast.i.i55, %sub.ptr.rhs.cast.i.i56 %sext = shl i64 %sub.ptr.sub.i.i57, 30 - %25 = ashr i64 %sext, 32 - %cmp.not.i.not = icmp sgt i64 %indvars.iv130, %25 + %24 = ashr i64 %sext, 32 + %cmp.not.i.not = icmp sgt i64 %indvars.iv130, %24 br i1 %cmp.not.i.not, label %_ZNK7rocksdb16MutableCFOptions27MaxBytesMultiplerAdditionalEi.exit, label %if.end.i if.end.i: ; preds = %if.then33 - %add.ptr.i.i = getelementptr inbounds i32, ptr %24, i64 %19 - %26 = load i32, ptr %add.ptr.i.i, align 4 + %add.ptr.i.i = getelementptr inbounds i32, ptr %23, i64 %19 + %25 = load i32, ptr %add.ptr.i.i, align 4 br label %_ZNK7rocksdb16MutableCFOptions27MaxBytesMultiplerAdditionalEi.exit _ZNK7rocksdb16MutableCFOptions27MaxBytesMultiplerAdditionalEi.exit: ; preds = %if.then33, %if.end.i - %retval.0.i = phi i32 [ %26, %if.end.i ], [ 1, %if.then33 ] + %retval.0.i = phi i32 [ %25, %if.end.i ], [ 1, %if.then33 ] %conv40 = sitofp i32 %retval.0.i to double %call41 = tail call noundef i64 @_ZN7rocksdb21MultiplyCheckOverflowEmd(i64 noundef %call37, double noundef %conv40) - %27 = load ptr, ptr %level_max_bytes_, align 8 - %add.ptr.i59 = getelementptr inbounds i64, ptr %27, i64 %indvars.iv130 + %26 = load ptr, ptr %level_max_bytes_, align 8 + %add.ptr.i59 = getelementptr inbounds i64, ptr %26, i64 %indvars.iv130 store i64 %call41, ptr %add.ptr.i59, align 8 br label %for.inc52 if.else45: ; preds = %if.else - %28 = load i64, ptr %max_bytes_for_level_base46, align 8 - %29 = load ptr, ptr %level_max_bytes_, align 8 - %add.ptr.i60 = getelementptr inbounds i64, ptr %29, i64 %indvars.iv130 - store i64 %28, ptr %add.ptr.i60, align 8 + %27 = load i64, ptr %max_bytes_for_level_base46, align 8 + %add.ptr.i60 = getelementptr inbounds i64, ptr %17, i64 %indvars.iv130 + store i64 %27, ptr %add.ptr.i60, align 8 br label %for.inc52 for.inc52: ; preds = %if.then28, %if.else45, %_ZNK7rocksdb16MutableCFOptions27MaxBytesMultiplerAdditionalEi.exit %indvars.iv.next131 = add nuw nsw i64 %indvars.iv130, 1 - %30 = load i32, ptr %num_levels, align 8 - %31 = sext i32 %30 to i64 - %cmp21 = icmp slt i64 %indvars.iv.next131, %31 + %28 = load i32, ptr %num_levels, align 8 + %29 = sext i32 %28 to i64 + %cmp21 = icmp slt i64 %indvars.iv.next131, %29 br i1 %cmp21, label %for.body22, label %if.end182, !llvm.loop !170 for.cond86.preheader: ; preds = %for.end73, %for.cond57.preheader @@ -19049,21 +19046,21 @@ for.body59: ; preds = %for.body59.lr.ph, % %first_non_empty_level.094 = phi i32 [ -1, %for.body59.lr.ph ], [ %spec.select50, %for.end73 ] %max_level_size.093 = phi i64 [ 0, %for.body59.lr.ph ], [ %max_level_size.1, %for.end73 ] %arrayidx62 = getelementptr inbounds %"class.std::vector.297", ptr %13, i64 %indvars.iv119 - %32 = load ptr, ptr %arrayidx62, align 8 + %30 = load ptr, ptr %arrayidx62, align 8 %_M_finish.i61 = getelementptr inbounds %"struct.std::_Vector_base>::_Vector_impl_data", ptr %arrayidx62, i64 0, i32 1 - %33 = load ptr, ptr %_M_finish.i61, align 8 - %cmp.i62.not88 = icmp eq ptr %32, %33 + %31 = load ptr, ptr %_M_finish.i61, align 8 + %cmp.i62.not88 = icmp eq ptr %30, %31 br i1 %cmp.i62.not88, label %for.end73, label %for.body68 for.body68: ; preds = %for.body59, %for.body68 %total_size.090 = phi i64 [ %add, %for.body68 ], [ 0, %for.body59 ] - %__begin3.sroa.0.089 = phi ptr [ %incdec.ptr.i, %for.body68 ], [ %32, %for.body59 ] - %34 = load ptr, ptr %__begin3.sroa.0.089, align 8 - %file_size.i = getelementptr inbounds %"struct.rocksdb::FileDescriptor", ptr %34, i64 0, i32 2 - %35 = load i64, ptr %file_size.i, align 8 - %add = add i64 %35, %total_size.090 + %__begin3.sroa.0.089 = phi ptr [ %incdec.ptr.i, %for.body68 ], [ %30, %for.body59 ] + %32 = load ptr, ptr %__begin3.sroa.0.089, align 8 + %file_size.i = getelementptr inbounds %"struct.rocksdb::FileDescriptor", ptr %32, i64 0, i32 2 + %33 = load i64, ptr %file_size.i, align 8 + %add = add i64 %33, %total_size.090 %incdec.ptr.i = getelementptr inbounds ptr, ptr %__begin3.sroa.0.089, i64 1 - %cmp.i62.not = icmp eq ptr %incdec.ptr.i, %33 + %cmp.i62.not = icmp eq ptr %incdec.ptr.i, %31 br i1 %cmp.i62.not, label %for.end73, label %for.body68 for.end73: ; preds = %for.body68, %for.body59 @@ -19071,8 +19068,8 @@ for.end73: ; preds = %for.body68, %for.bo %cmp74 = icmp ne i64 %total_size.0.lcssa, 0 %cmp76 = icmp eq i32 %first_non_empty_level.094, -1 %or.cond = select i1 %cmp74, i1 %cmp76, i1 false - %36 = trunc i64 %indvars.iv119 to i32 - %spec.select50 = select i1 %or.cond, i32 %36, i32 %first_non_empty_level.094 + %34 = trunc i64 %indvars.iv119 to i32 + %spec.select50 = select i1 %or.cond, i32 %34, i32 %first_non_empty_level.094 %max_level_size.1 = tail call i64 @llvm.umax.i64(i64 %total_size.0.lcssa, i64 %max_level_size.093) %indvars.iv.next120 = add nuw nsw i64 %indvars.iv119, 1 %exitcond123.not = icmp eq i64 %indvars.iv.next120, %wide.trip.count122 @@ -19080,17 +19077,17 @@ for.end73: ; preds = %for.body68, %for.bo for.body89: ; preds = %for.cond86.preheader, %for.body89 %indvars.iv124 = phi i64 [ %indvars.iv.next125, %for.body89 ], [ 0, %for.cond86.preheader ] - %37 = load ptr, ptr %level_max_bytes_, align 8 - %add.ptr.i63 = getelementptr inbounds i64, ptr %37, i64 %indvars.iv124 + %35 = load ptr, ptr %level_max_bytes_, align 8 + %add.ptr.i63 = getelementptr inbounds i64, ptr %35, i64 %indvars.iv124 store i64 -1, ptr %add.ptr.i63, align 8 %indvars.iv.next125 = add nuw nsw i64 %indvars.iv124, 1 - %38 = load i32, ptr %num_levels_, align 16 - %39 = sext i32 %38 to i64 - %cmp88 = icmp slt i64 %indvars.iv.next125, %39 + %36 = load i32, ptr %num_levels_, align 16 + %37 = sext i32 %36 to i64 + %cmp88 = icmp slt i64 %indvars.iv.next125, %37 br i1 %cmp88, label %for.body89, label %for.end96, !llvm.loop !172 for.end96: ; preds = %for.body89, %for.cond86.preheader - %.lcssa = phi i32 [ %12, %for.cond86.preheader ], [ %38, %for.body89 ] + %.lcssa = phi i32 [ %12, %for.cond86.preheader ], [ %36, %for.body89 ] %lowest_unnecessary_level_ = getelementptr inbounds %"class.rocksdb::VersionStorageInfo", ptr %this, i64 0, i32 14 store i32 -1, ptr %lowest_unnecessary_level_, align 4 %cmp97 = icmp eq i64 %max_level_size.0.lcssa, 0 @@ -19104,11 +19101,11 @@ if.then98: ; preds = %for.end96 if.else102: ; preds = %for.end96 %max_bytes_for_level_base103 = getelementptr inbounds %"struct.rocksdb::MutableCFOptions", ptr %options, i64 0, i32 20 - %40 = load i64, ptr %max_bytes_for_level_base103, align 8 - %conv104 = uitofp i64 %40 to double + %38 = load i64, ptr %max_bytes_for_level_base103, align 8 + %conv104 = uitofp i64 %38 to double %max_bytes_for_level_multiplier105 = getelementptr inbounds %"struct.rocksdb::MutableCFOptions", ptr %options, i64 0, i32 21 - %41 = load double, ptr %max_bytes_for_level_multiplier105, align 8 - %div = fdiv double %conv104, %41 + %39 = load double, ptr %max_bytes_for_level_multiplier105, align 8 + %div = fdiv double %conv104, %39 %conv106 = fptoui double %div to i64 %sub109 = add nsw i32 %.lcssa, -2 %cmp111.not101 = icmp slt i32 %sub109, %first_non_empty_level.0.lcssa @@ -19119,22 +19116,22 @@ for.body112.lr.ph: ; preds = %if.else102 br label %for.body112 for.body112: ; preds = %for.body112.lr.ph, %for.inc130 - %42 = phi i32 [ -1, %for.body112.lr.ph ], [ %46, %for.inc130 ] - %43 = phi i32 [ -1, %for.body112.lr.ph ], [ %47, %for.inc130 ] + %40 = phi i32 [ -1, %for.body112.lr.ph ], [ %44, %for.inc130 ] + %41 = phi i32 [ -1, %for.body112.lr.ph ], [ %45, %for.inc130 ] %i107.0103 = phi i32 [ %sub109, %for.body112.lr.ph ], [ %dec, %for.inc130 ] %cur_level_size.0102 = phi i64 [ %max_level_size.0.lcssa, %for.body112.lr.ph ], [ %conv116, %for.inc130 ] %conv113 = uitofp i64 %cur_level_size.0102 to double - %44 = load double, ptr %max_bytes_for_level_multiplier105, align 8 - %div115 = fdiv double %conv113, %44 + %42 = load double, ptr %max_bytes_for_level_multiplier105, align 8 + %div115 = fdiv double %conv113, %42 %conv116 = fptoui double %div115 to i64 - %cmp118 = icmp ne i32 %43, -1 + %cmp118 = icmp ne i32 %41, -1 %cmp120.not = icmp ugt i64 %conv116, %conv106 %or.cond51 = select i1 %cmp118, i1 true, i1 %cmp120.not br i1 %or.cond51, label %for.inc130, label %land.lhs.true121 land.lhs.true121: ; preds = %for.body112 - %45 = load i64, ptr %preclude_last_level_data_seconds, align 8 - %cmp123 = icmp eq i64 %45, 0 + %43 = load i64, ptr %preclude_last_level_data_seconds, align 8 + %cmp123 = icmp eq i64 %43, 0 %cmp126 = icmp slt i32 %i107.0103, %sub109 %or.cond83 = or i1 %cmp123, %cmp126 br i1 %or.cond83, label %if.then127, label %for.inc130 @@ -19144,14 +19141,14 @@ if.then127: ; preds = %land.lhs.true121 br label %for.inc130 for.inc130: ; preds = %land.lhs.true121, %for.body112, %if.then127 - %46 = phi i32 [ %42, %land.lhs.true121 ], [ %42, %for.body112 ], [ %i107.0103, %if.then127 ] - %47 = phi i32 [ -1, %land.lhs.true121 ], [ %43, %for.body112 ], [ %i107.0103, %if.then127 ] + %44 = phi i32 [ %40, %land.lhs.true121 ], [ %40, %for.body112 ], [ %i107.0103, %if.then127 ] + %45 = phi i32 [ -1, %land.lhs.true121 ], [ %41, %for.body112 ], [ %i107.0103, %if.then127 ] %dec = add nsw i32 %i107.0103, -1 %cmp111.not.not = icmp sgt i32 %i107.0103, %first_non_empty_level.0.lcssa br i1 %cmp111.not.not, label %for.body112, label %for.end131, !llvm.loop !173 for.end131: ; preds = %for.inc130, %if.else102 - %48 = phi i32 [ -1, %if.else102 ], [ %46, %for.inc130 ] + %46 = phi i32 [ -1, %if.else102 ], [ %44, %for.inc130 ] %cur_level_size.0.lcssa = phi i64 [ %max_level_size.0.lcssa, %if.else102 ], [ %conv116, %for.inc130 ] %cmp132.not = icmp ugt i64 %cur_level_size.0.lcssa, %conv106 br i1 %cmp132.not, label %if.else144, label %if.then133 @@ -19166,8 +19163,8 @@ if.then133: ; preds = %for.end131 if.then140: ; preds = %if.then133 %logger = getelementptr inbounds %"struct.rocksdb::ImmutableDBOptions", ptr %ioptions, i64 0, i32 90 - %49 = load ptr, ptr %logger, align 8 - tail call void (i8, ptr, ptr, ...) @_ZN7rocksdb3LogENS_12InfoLogLevelEPNS_6LoggerEPKcz(i8 noundef zeroext 1, ptr noundef %49, ptr noundef nonnull @.str.28, ptr noundef nonnull getelementptr inbounds ([111 x i8], ptr @.str.14, i64 0, i64 93), i32 noundef %48) + %47 = load ptr, ptr %logger, align 8 + tail call void (i8, ptr, ptr, ...) @_ZN7rocksdb3LogENS_12InfoLogLevelEPNS_6LoggerEPKcz(i8 noundef zeroext 1, ptr noundef %47, ptr noundef nonnull @.str.28, ptr noundef nonnull getelementptr inbounds ([111 x i8], ptr @.str.14, i64 0, i64 93), i32 noundef %46) %.pre = load i32, ptr %base_level_135, align 16 %.pre134 = load i32, ptr %num_levels_, align 16 br label %if.end160 @@ -19176,26 +19173,26 @@ if.else144: ; preds = %for.end131 %base_level_145 = getelementptr inbounds %"class.rocksdb::VersionStorageInfo", ptr %this, i64 0, i32 13 store i32 %first_non_empty_level.0.lcssa, ptr %base_level_145, align 16 %cmp147105 = icmp sgt i32 %first_non_empty_level.0.lcssa, 1 - %cmp148106 = icmp ugt i64 %cur_level_size.0.lcssa, %40 - %50 = select i1 %cmp147105, i1 %cmp148106, i1 false - br i1 %50, label %while.body, label %while.end + %cmp148106 = icmp ugt i64 %cur_level_size.0.lcssa, %38 + %48 = select i1 %cmp147105, i1 %cmp148106, i1 false + br i1 %48, label %while.body, label %while.end while.body: ; preds = %if.else144, %while.body - %51 = phi i32 [ %dec150, %while.body ], [ %first_non_empty_level.0.lcssa, %if.else144 ] + %49 = phi i32 [ %dec150, %while.body ], [ %first_non_empty_level.0.lcssa, %if.else144 ] %cur_level_size.1107 = phi i64 [ %conv154, %while.body ], [ %cur_level_size.0.lcssa, %if.else144 ] - %dec150 = add nsw i32 %51, -1 + %dec150 = add nsw i32 %49, -1 store i32 %dec150, ptr %base_level_145, align 16 %conv151 = uitofp i64 %cur_level_size.1107 to double - %52 = load double, ptr %max_bytes_for_level_multiplier105, align 8 - %div153 = fdiv double %conv151, %52 + %50 = load double, ptr %max_bytes_for_level_multiplier105, align 8 + %div153 = fdiv double %conv151, %50 %conv154 = fptoui double %div153 to i64 - %cmp147 = icmp ugt i32 %51, 2 - %cmp148 = icmp ult i64 %40, %conv154 - %53 = select i1 %cmp147, i1 %cmp148, i1 false - br i1 %53, label %while.body, label %while.end, !llvm.loop !174 + %cmp147 = icmp ugt i32 %49, 2 + %cmp148 = icmp ult i64 %38, %conv154 + %51 = select i1 %cmp147, i1 %cmp148, i1 false + br i1 %51, label %while.body, label %while.end, !llvm.loop !174 while.end: ; preds = %while.body, %if.else144 - %54 = phi i32 [ %first_non_empty_level.0.lcssa, %if.else144 ], [ %dec150, %while.body ] + %52 = phi i32 [ %first_non_empty_level.0.lcssa, %if.else144 ], [ %dec150, %while.body ] %cur_level_size.1.lcssa = phi i64 [ %cur_level_size.0.lcssa, %if.else144 ], [ %conv154, %while.body ] %cmp148.lcssa = phi i1 [ %cmp148106, %if.else144 ], [ %cmp148, %while.body ] br i1 %cmp148.lcssa, label %if.end160, label %if.else157 @@ -19205,43 +19202,43 @@ if.else157: ; preds = %while.end br label %if.end160 if.end160: ; preds = %while.end, %if.else157, %if.then133, %if.then140 - %55 = phi i32 [ %.pre134, %if.then140 ], [ %.lcssa, %if.then133 ], [ %.lcssa, %if.else157 ], [ %.lcssa, %while.end ] - %56 = phi i32 [ %.pre, %if.then140 ], [ %first_non_empty_level.0.lcssa, %if.then133 ], [ %54, %if.else157 ], [ %54, %while.end ] - %base_level_size.0 = phi i64 [ %add134, %if.then140 ], [ %add134, %if.then133 ], [ %.sroa.speculated72, %if.else157 ], [ %40, %while.end ] - %57 = load double, ptr %max_bytes_for_level_multiplier105, align 8 + %53 = phi i32 [ %.pre134, %if.then140 ], [ %.lcssa, %if.then133 ], [ %.lcssa, %if.else157 ], [ %.lcssa, %while.end ] + %54 = phi i32 [ %.pre, %if.then140 ], [ %first_non_empty_level.0.lcssa, %if.then133 ], [ %52, %if.else157 ], [ %52, %while.end ] + %base_level_size.0 = phi i64 [ %add134, %if.then140 ], [ %add134, %if.then133 ], [ %.sroa.speculated72, %if.else157 ], [ %38, %while.end ] + %55 = load double, ptr %max_bytes_for_level_multiplier105, align 8 %level_multiplier_ = getelementptr inbounds %"class.rocksdb::VersionStorageInfo", ptr %this, i64 0, i32 15 - store double %57, ptr %level_multiplier_, align 8 + store double %55, ptr %level_multiplier_, align 8 %base_level_163 = getelementptr inbounds %"class.rocksdb::VersionStorageInfo", ptr %this, i64 0, i32 13 - %cmp166110 = icmp slt i32 %56, %55 + %cmp166110 = icmp slt i32 %54, %53 br i1 %cmp166110, label %for.body167.preheader, label %if.end182 for.body167.preheader: ; preds = %if.end160 - %58 = sext i32 %56 to i64 + %56 = sext i32 %54 to i64 br label %for.body167 for.body167: ; preds = %for.body167.preheader, %if.end173 - %indvars.iv127 = phi i64 [ %58, %for.body167.preheader ], [ %indvars.iv.next128, %if.end173 ] + %indvars.iv127 = phi i64 [ %56, %for.body167.preheader ], [ %indvars.iv.next128, %if.end173 ] %level_size.0111 = phi i64 [ %base_level_size.0, %for.body167.preheader ], [ %level_size.1, %if.end173 ] - %59 = load i32, ptr %base_level_163, align 16 - %60 = sext i32 %59 to i64 - %cmp169 = icmp sgt i64 %indvars.iv127, %60 + %57 = load i32, ptr %base_level_163, align 16 + %58 = sext i32 %57 to i64 + %cmp169 = icmp sgt i64 %indvars.iv127, %58 br i1 %cmp169, label %if.then170, label %if.end173 if.then170: ; preds = %for.body167 - %61 = load double, ptr %level_multiplier_, align 8 - %call172 = tail call noundef i64 @_ZN7rocksdb21MultiplyCheckOverflowEmd(i64 noundef %level_size.0111, double noundef %61) + %59 = load double, ptr %level_multiplier_, align 8 + %call172 = tail call noundef i64 @_ZN7rocksdb21MultiplyCheckOverflowEmd(i64 noundef %level_size.0111, double noundef %59) br label %if.end173 if.end173: ; preds = %if.then170, %for.body167 %level_size.1 = phi i64 [ %call172, %if.then170 ], [ %level_size.0111, %for.body167 ] - %.sroa.speculated = tail call i64 @llvm.umax.i64(i64 %level_size.1, i64 %40) - %62 = load ptr, ptr %level_max_bytes_, align 8 - %add.ptr.i67 = getelementptr inbounds i64, ptr %62, i64 %indvars.iv127 + %.sroa.speculated = tail call i64 @llvm.umax.i64(i64 %level_size.1, i64 %38) + %60 = load ptr, ptr %level_max_bytes_, align 8 + %add.ptr.i67 = getelementptr inbounds i64, ptr %60, i64 %indvars.iv127 store i64 %.sroa.speculated, ptr %add.ptr.i67, align 8 %indvars.iv.next128 = add nsw i64 %indvars.iv127, 1 - %63 = load i32, ptr %num_levels_, align 16 - %64 = sext i32 %63 to i64 - %cmp166 = icmp slt i64 %indvars.iv.next128, %64 + %61 = load i32, ptr %num_levels_, align 16 + %62 = sext i32 %61 to i64 + %cmp166 = icmp slt i64 %indvars.iv.next128, %62 br i1 %cmp166, label %for.body167, label %if.end182, !llvm.loop !175 if.end182: ; preds = %if.end173, %for.inc52, %if.end160, %if.then13, %if.then98 diff --git a/bench/stb/optimized/stb_connected_components.c.ll b/bench/stb/optimized/stb_connected_components.c.ll index 6c5909002f7..eef131db245 100644 --- a/bench/stb/optimized/stb_connected_components.c.ll +++ b/bench/stb/optimized/stb_connected_components.c.ll @@ -687,8 +687,7 @@ land.lhs.true: ; preds = %for.body br i1 %tobool66.not, label %if.end124, label %if.then67 if.then67: ; preds = %land.lhs.true - %idxprom72 = and i64 %8, 4294967295 - %arrayidx73 = getelementptr inbounds %struct.st_stbcc_grid, ptr %g, i64 0, i32 6, i64 %7, i64 %idxprom72 + %arrayidx73 = getelementptr inbounds %struct.st_stbcc_grid, ptr %g, i64 0, i32 6, i64 %7, i64 %8 %15 = load i16, ptr %arrayidx73, align 2 %arrayidx82 = getelementptr inbounds %struct.st_stbcc_grid, ptr %g, i64 0, i32 6, i64 %11, i64 %12 %16 = load i16, ptr %arrayidx82, align 2 @@ -1078,8 +1077,7 @@ land.lhs.true: ; preds = %for.body br i1 %tobool59.not, label %if.end108, label %if.then60 if.then60: ; preds = %land.lhs.true - %idxprom65 = and i64 %7, 4294967295 - %arrayidx66 = getelementptr inbounds %struct.st_stbcc_grid, ptr %g, i64 0, i32 6, i64 %6, i64 %idxprom65 + %arrayidx66 = getelementptr inbounds %struct.st_stbcc_grid, ptr %g, i64 0, i32 6, i64 %6, i64 %7 %14 = load i16, ptr %arrayidx66, align 2 %arrayidx75 = getelementptr inbounds %struct.st_stbcc_grid, ptr %g, i64 0, i32 6, i64 %10, i64 %11 %15 = load i16, ptr %arrayidx75, align 2 diff --git a/bench/stb/optimized/stb_herringbone_wang_tile.c.ll b/bench/stb/optimized/stb_herringbone_wang_tile.c.ll index 77e9641b58a..6a583cb5746 100644 --- a/bench/stb/optimized/stb_herringbone_wang_tile.c.ll +++ b/bench/stb/optimized/stb_herringbone_wang_tile.c.ll @@ -1452,10 +1452,9 @@ for.body6.us: ; preds = %for.cond4.preheader br i1 %or.cond17.us, label %if.then12.us, label %for.inc.us if.then12.us: ; preds = %for.body6.us - %8 = add i64 %indvars.iv, %11 - %9 = mul i64 %8, 3 - %idxprom.us = and i64 %9, 4294967295 - %arrayidx.us = getelementptr inbounds %struct.stbhw_tile, ptr %h, i64 0, i32 6, i64 %idxprom.us + %8 = add nuw nsw i64 %indvars.iv, %11 + %9 = mul nsw i64 %8, 3 + %arrayidx.us = getelementptr inbounds %struct.stbhw_tile, ptr %h, i64 0, i32 6, i64 %9 %10 = mul nsw i64 %7, 3 %add.ptr3.i.us = getelementptr inbounds i8, ptr %add.ptr.i.us, i64 %10 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %add.ptr3.i.us, ptr noundef nonnull align 1 dereferenceable(3) %arrayidx.us, i64 3, i1 false) @@ -1467,7 +1466,7 @@ for.inc.us: ; preds = %if.then12.us, %for. br i1 %exitcond.not, label %for.inc19.us, label %for.body6.us, !llvm.loop !39 for.cond4.preheader.us: ; preds = %for.body.us - %11 = mul i64 %indvars.iv29, %5 + %11 = mul nsw i64 %indvars.iv29, %5 %12 = mul nsw i64 %6, %4 %add.ptr.i.us = getelementptr inbounds i8, ptr %output, i64 %12 br label %for.body6.us @@ -1897,26 +1896,26 @@ if.end: ; preds = %entry if.then4: ; preds = %if.end %num_color = getelementptr inbounds %struct.stbhw_tileset, ptr %ts, i64 0, i32 1 - %cmp5478 = icmp sgt i32 %div1, -6 - br i1 %cmp5478, label %for.cond6.preheader.lr.ph, label %for.end172 + %cmp5477 = icmp sgt i32 %div1, -6 + br i1 %cmp5477, label %for.cond6.preheader.lr.ph, label %for.end172 for.cond6.preheader.lr.ph: ; preds = %if.then4 - %cmp7476 = icmp sgt i32 %div, -6 - br i1 %cmp7476, label %for.cond6.preheader.lr.ph.split.us, label %for.cond38.preheader + %cmp7475 = icmp sgt i32 %div, -6 + br i1 %cmp7475, label %for.cond6.preheader.lr.ph.split.us, label %for.cond38.preheader for.cond6.preheader.lr.ph.split.us: ; preds = %for.cond6.preheader.lr.ph %cmp10 = icmp eq ptr %weighting, null - %wide.trip.count543 = zext nneg i32 %add2 to i64 - %wide.trip.count538 = zext i32 %add to i64 + %wide.trip.count542 = zext nneg i32 %add2 to i64 + %wide.trip.count537 = zext i32 %add to i64 br i1 %cmp10, label %for.cond6.preheader.us.us, label %for.cond6.preheader.us for.cond6.preheader.us.us: ; preds = %for.cond6.preheader.lr.ph.split.us, %for.cond6.for.inc35_crit_edge.split.us.us.us - %indvars.iv540 = phi i64 [ %indvars.iv.next541, %for.cond6.for.inc35_crit_edge.split.us.us.us ], [ 0, %for.cond6.preheader.lr.ph.split.us ] + %indvars.iv539 = phi i64 [ %indvars.iv.next540, %for.cond6.for.inc35_crit_edge.split.us.us.us ], [ 0, %for.cond6.preheader.lr.ph.split.us ] br label %for.body8.us.us.us for.body8.us.us.us: ; preds = %for.body8.us.us.us, %for.cond6.preheader.us.us - %indvars.iv533 = phi i64 [ %indvars.iv.next534, %for.body8.us.us.us ], [ 0, %for.cond6.preheader.us.us ] - %2 = sub nsw i64 %indvars.iv533, %indvars.iv540 + %indvars.iv532 = phi i64 [ %indvars.iv.next533, %for.body8.us.us.us ], [ 0, %for.cond6.preheader.us.us ] + %2 = sub nsw i64 %indvars.iv532, %indvars.iv539 %3 = add i64 %2, 1 %and.us.us.us = and i64 %3, 3 %call.us.us.us = tail call i32 @rand() #15 @@ -1925,33 +1924,33 @@ for.body8.us.us.us: ; preds = %for.body8.us.us.us, %4 = load i32, ptr %arrayidx19.us.us.us, align 4 %rem.us.us.us = srem i32 %shr.us.us.us, %4 %conv.us.us.us = trunc i32 %rem.us.us.us to i8 - %arrayidx23.us.us.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %indvars.iv540, i64 %indvars.iv533 + %arrayidx23.us.us.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %indvars.iv539, i64 %indvars.iv532 store i8 %conv.us.us.us, ptr %arrayidx23.us.us.us, align 1 - %indvars.iv.next534 = add nuw nsw i64 %indvars.iv533, 1 - %exitcond539.not = icmp eq i64 %indvars.iv.next534, %wide.trip.count538 - br i1 %exitcond539.not, label %for.cond6.for.inc35_crit_edge.split.us.us.us, label %for.body8.us.us.us, !llvm.loop !46 + %indvars.iv.next533 = add nuw nsw i64 %indvars.iv532, 1 + %exitcond538.not = icmp eq i64 %indvars.iv.next533, %wide.trip.count537 + br i1 %exitcond538.not, label %for.cond6.for.inc35_crit_edge.split.us.us.us, label %for.body8.us.us.us, !llvm.loop !46 for.cond6.for.inc35_crit_edge.split.us.us.us: ; preds = %for.body8.us.us.us - %indvars.iv.next541 = add nuw nsw i64 %indvars.iv540, 1 - %exitcond544.not = icmp eq i64 %indvars.iv.next541, %wide.trip.count543 - br i1 %exitcond544.not, label %for.cond38.preheader, label %for.cond6.preheader.us.us, !llvm.loop !47 + %indvars.iv.next540 = add nuw nsw i64 %indvars.iv539, 1 + %exitcond543.not = icmp eq i64 %indvars.iv.next540, %wide.trip.count542 + br i1 %exitcond543.not, label %for.cond38.preheader, label %for.cond6.preheader.us.us, !llvm.loop !47 -for.cond6.preheader.us: ; preds = %for.cond6.preheader.lr.ph.split.us, %for.cond6.for.inc35_crit_edge.split.us494 - %indvars.iv528 = phi i64 [ %indvars.iv.next529, %for.cond6.for.inc35_crit_edge.split.us494 ], [ 0, %for.cond6.preheader.lr.ph.split.us ] - br label %for.body8.us480 +for.cond6.preheader.us: ; preds = %for.cond6.preheader.lr.ph.split.us, %for.cond6.for.inc35_crit_edge.split.us493 + %indvars.iv527 = phi i64 [ %indvars.iv.next528, %for.cond6.for.inc35_crit_edge.split.us493 ], [ 0, %for.cond6.preheader.lr.ph.split.us ] + br label %for.body8.us479 -for.body8.us480: ; preds = %for.cond6.preheader.us, %for.inc.us +for.body8.us479: ; preds = %for.cond6.preheader.us, %for.inc.us %indvars.iv = phi i64 [ 0, %for.cond6.preheader.us ], [ %indvars.iv.next, %for.inc.us ] - %5 = sub nsw i64 %indvars.iv, %indvars.iv528 + %5 = sub nsw i64 %indvars.iv, %indvars.iv527 %6 = add i64 %5, 1 - %and.us483 = and i64 %6, 3 - %arrayidx.us = getelementptr inbounds ptr, ptr %weighting, i64 %and.us483 + %and.us482 = and i64 %6, 3 + %arrayidx.us = getelementptr inbounds ptr, ptr %weighting, i64 %and.us482 %7 = load ptr, ptr %arrayidx.us, align 8 %cmp12.us = icmp eq ptr %7, null br i1 %cmp12.us, label %if.then17.us, label %lor.lhs.false13.us -lor.lhs.false13.us: ; preds = %for.body8.us480 - %arrayidx15.us = getelementptr inbounds i32, ptr %num_color, i64 %and.us483 +lor.lhs.false13.us: ; preds = %for.body8.us479 + %arrayidx15.us = getelementptr inbounds i32, ptr %num_color, i64 %and.us482 %8 = load i32, ptr %arrayidx15.us, align 4 %cmp16.us = icmp eq i32 %8, 1 br i1 %cmp16.us, label %if.then17.us, label %if.else.us @@ -2002,85 +2001,85 @@ for.end10.loopexit.split.loop.exit.i.us: ; preds = %for.body3.i.us %11 = trunc i64 %indvars.iv21.i.us to i32 br label %for.inc.us -if.then17.us: ; preds = %lor.lhs.false13.us, %for.body8.us480 - %call.us484 = tail call i32 @rand() #15 - %shr.us485 = ashr i32 %call.us484, 4 - %arrayidx19.us487 = getelementptr inbounds i32, ptr %num_color, i64 %and.us483 - %12 = load i32, ptr %arrayidx19.us487, align 4 - %rem.us488 = srem i32 %shr.us485, %12 +if.then17.us: ; preds = %lor.lhs.false13.us, %for.body8.us479 + %call.us483 = tail call i32 @rand() #15 + %shr.us484 = ashr i32 %call.us483, 4 + %arrayidx19.us486 = getelementptr inbounds i32, ptr %num_color, i64 %and.us482 + %12 = load i32, ptr %arrayidx19.us486, align 4 + %rem.us487 = srem i32 %shr.us484, %12 br label %for.inc.us for.inc.us: ; preds = %for.inc8.i.us, %for.end.thread.i.us, %for.end10.loopexit.split.loop.exit.i.us, %if.then17.us - %rem.us488.sink = phi i32 [ %rem.us488, %if.then17.us ], [ 0, %for.end.thread.i.us ], [ %11, %for.end10.loopexit.split.loop.exit.i.us ], [ %8, %for.inc8.i.us ] - %conv.us489 = trunc i32 %rem.us488.sink to i8 - %arrayidx23.us491 = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %indvars.iv528, i64 %indvars.iv - store i8 %conv.us489, ptr %arrayidx23.us491, align 1 + %rem.us487.sink = phi i32 [ %rem.us487, %if.then17.us ], [ 0, %for.end.thread.i.us ], [ %11, %for.end10.loopexit.split.loop.exit.i.us ], [ %8, %for.inc8.i.us ] + %conv.us488 = trunc i32 %rem.us487.sink to i8 + %arrayidx23.us490 = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %indvars.iv527, i64 %indvars.iv + store i8 %conv.us488, ptr %arrayidx23.us490, align 1 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count538 - br i1 %exitcond.not, label %for.cond6.for.inc35_crit_edge.split.us494, label %for.body8.us480, !llvm.loop !46 + %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count537 + br i1 %exitcond.not, label %for.cond6.for.inc35_crit_edge.split.us493, label %for.body8.us479, !llvm.loop !46 -for.cond6.for.inc35_crit_edge.split.us494: ; preds = %for.inc.us - %indvars.iv.next529 = add nuw nsw i64 %indvars.iv528, 1 - %exitcond532.not = icmp eq i64 %indvars.iv.next529, %wide.trip.count543 - br i1 %exitcond532.not, label %for.cond38.preheader, label %for.cond6.preheader.us, !llvm.loop !47 +for.cond6.for.inc35_crit_edge.split.us493: ; preds = %for.inc.us + %indvars.iv.next528 = add nuw nsw i64 %indvars.iv527, 1 + %exitcond531.not = icmp eq i64 %indvars.iv.next528, %wide.trip.count542 + br i1 %exitcond531.not, label %for.cond38.preheader, label %for.cond6.preheader.us, !llvm.loop !47 -for.cond38.preheader: ; preds = %for.cond6.for.inc35_crit_edge.split.us494, %for.cond6.for.inc35_crit_edge.split.us.us.us, %for.cond6.preheader.lr.ph +for.cond38.preheader: ; preds = %for.cond6.for.inc35_crit_edge.split.us493, %for.cond6.for.inc35_crit_edge.split.us.us.us, %for.cond6.preheader.lr.ph %sub39 = add i32 %div1, 3 - %cmp40498 = icmp sgt i32 %div1, -3 - br i1 %cmp40498, label %for.cond43.preheader.lr.ph, label %for.end172 + %cmp40497 = icmp sgt i32 %div1, -3 + br i1 %cmp40497, label %for.cond43.preheader.lr.ph, label %for.end172 for.cond43.preheader.lr.ph: ; preds = %for.cond38.preheader - %cmp45496 = icmp sgt i32 %div, -3 + %cmp45495 = icmp sgt i32 %div, -3 %tobool92.not = icmp eq ptr %weighting, null - br i1 %cmp45496, label %for.cond43.preheader.us.preheader, label %for.end172 + br i1 %cmp45495, label %for.cond43.preheader.us.preheader, label %for.end172 for.cond43.preheader.us.preheader: ; preds = %for.cond43.preheader.lr.ph %13 = add i32 %div, 2 %smax = tail call i32 @llvm.smax.i32(i32 %13, i32 0) %14 = add nuw i32 %smax, 1 - %smax562 = tail call i32 @llvm.smax.i32(i32 %sub39, i32 1) - %wide.trip.count563 = zext nneg i32 %smax562 to i64 - %wide.trip.count553 = zext i32 %14 to i64 + %smax561 = tail call i32 @llvm.smax.i32(i32 %sub39, i32 1) + %wide.trip.count562 = zext nneg i32 %smax561 to i64 + %wide.trip.count552 = zext i32 %14 to i64 br label %for.cond43.preheader.us for.cond43.preheader.us: ; preds = %for.cond43.preheader.us.preheader, %for.cond43.for.inc170_crit_edge.us - %indvars.iv555 = phi i64 [ 0, %for.cond43.preheader.us.preheader ], [ %indvars.iv.next556, %for.cond43.for.inc170_crit_edge.us ] - %indvars.iv.next556 = add nuw nsw i64 %indvars.iv555, 1 - %15 = add nuw nsw i64 %indvars.iv555, 2 - %16 = add nuw nsw i64 %indvars.iv555, 3 + %indvars.iv554 = phi i64 [ 0, %for.cond43.preheader.us.preheader ], [ %indvars.iv.next555, %for.cond43.for.inc170_crit_edge.us ] + %indvars.iv.next555 = add nuw nsw i64 %indvars.iv554, 1 + %15 = add nuw nsw i64 %indvars.iv554, 2 + %16 = add nuw nsw i64 %indvars.iv554, 3 br label %for.body47.us for.body47.us: ; preds = %for.cond43.preheader.us, %for.inc167.us - %indvars.iv545 = phi i64 [ 0, %for.cond43.preheader.us ], [ %indvars.iv.next546, %for.inc167.us ] - %arrayidx2.i.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %indvars.iv555, i64 %indvars.iv545 + %indvars.iv544 = phi i64 [ 0, %for.cond43.preheader.us ], [ %indvars.iv.next545, %for.inc167.us ] + %arrayidx2.i.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %indvars.iv554, i64 %indvars.iv544 %17 = load i8, ptr %arrayidx2.i.us, align 1 - %indvars.iv.next546 = add nuw nsw i64 %indvars.iv545, 1 - %arrayidx7.i.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %indvars.iv.next556, i64 %indvars.iv.next546 + %indvars.iv.next545 = add nuw nsw i64 %indvars.iv544, 1 + %arrayidx7.i.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %indvars.iv.next555, i64 %indvars.iv.next545 %18 = load i8, ptr %arrayidx7.i.us, align 1 %cmp.i.not.us = icmp eq i8 %17, %18 br i1 %cmp.i.not.us, label %land.lhs.true.us, label %if.end104.us land.lhs.true.us: ; preds = %for.body47.us - %arrayidx2.i214.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %indvars.iv.next556, i64 %indvars.iv545 + %arrayidx2.i214.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %indvars.iv.next555, i64 %indvars.iv544 %19 = load i8, ptr %arrayidx2.i214.us, align 1 - %arrayidx7.i219.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %15, i64 %indvars.iv.next546 + %arrayidx7.i219.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %15, i64 %indvars.iv.next545 %20 = load i8, ptr %arrayidx7.i219.us, align 1 %cmp.i220.not.us = icmp eq i8 %19, %20 br i1 %cmp.i220.not.us, label %land.lhs.true53.us, label %land.lhs.true107.us land.lhs.true53.us: ; preds = %land.lhs.true.us - %arrayidx2.i224.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %15, i64 %indvars.iv545 + %arrayidx2.i224.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %15, i64 %indvars.iv544 %21 = load i8, ptr %arrayidx2.i224.us, align 1 - %arrayidx7.i229.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %16, i64 %indvars.iv.next546 + %arrayidx7.i229.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %16, i64 %indvars.iv.next545 %22 = load i8, ptr %arrayidx7.i229.us, align 1 %cmp.i230.not.us = icmp eq i8 %21, %22 br i1 %cmp.i230.not.us, label %land.lhs.true57.us, label %land.lhs.true107.us land.lhs.true57.us: ; preds = %land.lhs.true53.us - %arrayidx2.i234.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %indvars.iv555, i64 %indvars.iv.next546 + %arrayidx2.i234.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %indvars.iv554, i64 %indvars.iv.next545 %23 = load i8, ptr %arrayidx2.i234.us, align 1 - %24 = add nuw nsw i64 %indvars.iv545, 2 - %arrayidx7.i239.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %indvars.iv.next556, i64 %24 + %24 = add nuw nsw i64 %indvars.iv544, 2 + %arrayidx7.i239.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %indvars.iv.next555, i64 %24 %25 = load i8, ptr %arrayidx7.i239.us, align 1 %cmp.i240.not.us = icmp eq i8 %23, %25 br i1 %cmp.i240.not.us, label %land.lhs.true61.us, label %land.lhs.true107.us @@ -2098,7 +2097,7 @@ land.lhs.true66.us: ; preds = %land.lhs.true61.us br i1 %cmp.i260.not.us, label %if.then71.us, label %land.lhs.true107.us if.then71.us: ; preds = %land.lhs.true66.us - %28 = sub nsw i64 %indvars.iv545, %indvars.iv555 + %28 = sub nsw i64 %indvars.iv544, %indvars.iv554 %add76.us = add i64 %28, 1 %and77.us = and i64 %add76.us, 3 %arrayidx79.us = getelementptr inbounds i32, ptr %num_color, i64 %and77.us @@ -2193,27 +2192,27 @@ if.end104.us: ; preds = %stbhw__change_color land.lhs.true107.us: ; preds = %land.lhs.true.us, %land.lhs.true53.us, %land.lhs.true57.us, %land.lhs.true61.us, %land.lhs.true66.us, %if.then71.us, %if.end104.us %37 = phi i8 [ %35, %if.end104.us ], [ %17, %if.then71.us ], [ %17, %land.lhs.true66.us ], [ %17, %land.lhs.true61.us ], [ %17, %land.lhs.true57.us ], [ %17, %land.lhs.true53.us ], [ %17, %land.lhs.true.us ] - %arrayidx2.i287.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %indvars.iv555, i64 %indvars.iv.next546 + %arrayidx2.i287.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %indvars.iv554, i64 %indvars.iv.next545 %38 = load i8, ptr %arrayidx2.i287.us, align 1 - %39 = add nuw nsw i64 %indvars.iv545, 2 - %arrayidx7.i292.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %indvars.iv.next556, i64 %39 + %39 = add nuw nsw i64 %indvars.iv544, 2 + %arrayidx7.i292.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %indvars.iv.next555, i64 %39 %40 = load i8, ptr %arrayidx7.i292.us, align 1 %cmp.i293.not.us = icmp eq i8 %38, %40 br i1 %cmp.i293.not.us, label %land.lhs.true111.us, label %for.inc167.us land.lhs.true111.us: ; preds = %land.lhs.true107.us - %arrayidx2.i297.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %indvars.iv555, i64 %39 + %arrayidx2.i297.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %indvars.iv554, i64 %39 %41 = load i8, ptr %arrayidx2.i297.us, align 1 - %42 = add nuw nsw i64 %indvars.iv545, 3 - %arrayidx7.i302.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %indvars.iv.next556, i64 %42 + %42 = add nuw nsw i64 %indvars.iv544, 3 + %arrayidx7.i302.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %indvars.iv.next555, i64 %42 %43 = load i8, ptr %arrayidx7.i302.us, align 1 %cmp.i303.not.us = icmp eq i8 %41, %43 br i1 %cmp.i303.not.us, label %land.lhs.true115.us, label %for.inc167.us land.lhs.true115.us: ; preds = %land.lhs.true111.us - %arrayidx2.i307.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %indvars.iv.next556, i64 %indvars.iv545 + %arrayidx2.i307.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %indvars.iv.next555, i64 %indvars.iv544 %44 = load i8, ptr %arrayidx2.i307.us, align 1 - %arrayidx7.i312.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %15, i64 %indvars.iv.next546 + %arrayidx7.i312.us = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %15, i64 %indvars.iv.next545 %45 = load i8, ptr %arrayidx7.i312.us, align 1 %cmp.i313.not.us = icmp eq i8 %44, %45 br i1 %cmp.i313.not.us, label %land.lhs.true119.us, label %for.inc167.us @@ -2231,7 +2230,7 @@ land.lhs.true124.us: ; preds = %land.lhs.true119.us br i1 %cmp.i333.not.us, label %if.then129.us, label %for.inc167.us if.then129.us: ; preds = %land.lhs.true124.us - %add134.us = sub nsw i64 %39, %indvars.iv555 + %add134.us = sub nsw i64 %39, %indvars.iv554 %and135.us = and i64 %add134.us, 3 %arrayidx137.us = getelementptr inbounds i32, ptr %num_color, i64 %and135.us %48 = load i32, ptr %arrayidx137.us, align 4 @@ -2317,17 +2316,17 @@ stbhw__change_color.exit381.us: ; preds = %for.inc15.i368.us, br label %for.inc167.us for.inc167.us: ; preds = %stbhw__change_color.exit381.us, %if.then129.us, %land.lhs.true124.us, %land.lhs.true119.us, %land.lhs.true115.us, %land.lhs.true111.us, %land.lhs.true107.us, %if.end104.us - %exitcond554.not = icmp eq i64 %indvars.iv.next546, %wide.trip.count553 - br i1 %exitcond554.not, label %for.cond43.for.inc170_crit_edge.us, label %for.body47.us, !llvm.loop !48 + %exitcond553.not = icmp eq i64 %indvars.iv.next545, %wide.trip.count552 + br i1 %exitcond553.not, label %for.cond43.for.inc170_crit_edge.us, label %for.body47.us, !llvm.loop !48 for.cond43.for.inc170_crit_edge.us: ; preds = %for.inc167.us - %exitcond564.not = icmp eq i64 %indvars.iv.next556, %wide.trip.count563 - br i1 %exitcond564.not, label %for.end172, label %for.cond43.preheader.us, !llvm.loop !49 + %exitcond563.not = icmp eq i64 %indvars.iv.next555, %wide.trip.count562 + br i1 %exitcond563.not, label %for.end172, label %for.cond43.preheader.us, !llvm.loop !49 for.end172: ; preds = %for.cond43.for.inc170_crit_edge.us, %if.then4, %for.cond43.preheader.lr.ph, %for.cond38.preheader %mul = sub nsw i32 0, %0 - %cmp174504 = icmp slt i32 %mul, %h - br i1 %cmp174504, label %for.body176.lr.ph, label %return + %cmp174503 = icmp slt i32 %mul, %h + br i1 %cmp174503, label %for.body176.lr.ph, label %return for.body176.lr.ph: ; preds = %for.end172 %h_tiles = getelementptr inbounds %struct.stbhw_tileset, ptr %ts, i64 0, i32 3 @@ -2348,29 +2347,29 @@ for.body176.lr.ph: ; preds = %for.end172 br label %for.body176 for.body176: ; preds = %for.body176.lr.ph, %for.end291 - %indvars.iv580 = phi i64 [ %58, %for.body176.lr.ph ], [ %indvars.iv.next581, %for.end291 ] - %indvars.iv573 = phi i64 [ -1, %for.body176.lr.ph ], [ %indvars.iv.next574, %for.end291 ] - %59 = trunc i64 %indvars.iv573 to i32 + %indvars.iv579 = phi i64 [ %58, %for.body176.lr.ph ], [ %indvars.iv.next580, %for.end291 ] + %indvars.iv572 = phi i64 [ -1, %for.body176.lr.ph ], [ %indvars.iv.next573, %for.end291 ] + %59 = trunc i64 %indvars.iv572 to i32 %and177 = and i32 %59, 3 %cmp178 = icmp eq i32 %and177, 0 %sub182 = or i32 %59, -4 %i.2 = select i1 %cmp178, i32 0, i32 %sub182 - %mul185500 = mul nsw i32 %i.2, %0 - %cmp186.not501 = icmp slt i32 %mul185500, %w - br i1 %cmp186.not501, label %if.end189.lr.ph, label %for.end291 + %mul185499 = mul nsw i32 %i.2, %0 + %cmp186.not500 = icmp slt i32 %mul185499, %w + br i1 %cmp186.not500, label %if.end189.lr.ph, label %for.end291 if.end189.lr.ph: ; preds = %for.body176 - %60 = add nsw i64 %indvars.iv573, 2 - %61 = add nsw i64 %indvars.iv573, 3 - %62 = add nsw i64 %indvars.iv573, 4 + %60 = add nsw i64 %indvars.iv572, 2 + %61 = add nsw i64 %indvars.iv572, 3 + %62 = add nsw i64 %indvars.iv572, 4 %63 = sext i32 %i.2 to i64 - %64 = trunc i64 %indvars.iv580 to i32 + %64 = trunc i64 %indvars.iv579 to i32 br label %if.end189 if.end189: ; preds = %if.end189.lr.ph, %for.inc289 - %indvars.iv565 = phi i64 [ %63, %if.end189.lr.ph ], [ %indvars.iv.next566, %for.inc289 ] - %mul185503 = phi i32 [ %mul185500, %if.end189.lr.ph ], [ %93, %for.inc289 ] - %65 = trunc i64 %indvars.iv565 to i32 + %indvars.iv564 = phi i64 [ %63, %if.end189.lr.ph ], [ %indvars.iv.next565, %for.inc289 ] + %mul185502 = phi i32 [ %mul185499, %if.end189.lr.ph ], [ %93, %for.inc289 ] + %65 = trunc i64 %indvars.iv564 to i32 %mul185210 = add i32 %65, 2 %add191 = mul i32 %mul185210, %0 %66 = or i32 %add191, %64 @@ -2382,9 +2381,9 @@ if.then197: ; preds = %if.end189 %68 = load i32, ptr %num_h_tiles, align 8 %idxprom202 = sext i32 %mul185210 to i64 %arrayidx203 = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %60, i64 %idxprom202 - %69 = add nsw i64 %indvars.iv565, 3 + %69 = add nsw i64 %indvars.iv564, 3 %arrayidx209 = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %60, i64 %69 - %70 = add nsw i64 %indvars.iv565, 4 + %70 = add nsw i64 %indvars.iv564, 4 %arrayidx215 = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %60, i64 %70 %arrayidx221 = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %61, i64 %idxprom202 %arrayidx227 = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %61, i64 %69 @@ -2397,12 +2396,12 @@ if.end238: ; preds = %if.then197 br i1 %cmp20.i, label %for.body.us.preheader.i, label %if.end239 for.body.us.preheader.i: ; preds = %if.end238 - %71 = sext i32 %mul185503 to i64 + %71 = sext i32 %mul185502 to i64 br label %for.body.us.i for.body.us.i: ; preds = %for.inc20.us.i, %for.body.us.preheader.i %indvars.iv29.i = phi i64 [ 0, %for.body.us.preheader.i ], [ %indvars.iv.next30.i, %for.inc20.us.i ] - %72 = add nsw i64 %indvars.iv29.i, %indvars.iv580 + %72 = add nsw i64 %indvars.iv29.i, %indvars.iv579 %cmp1.us.i = icmp sgt i64 %72, -1 %cmp3.us.i = icmp slt i64 %72, %55 %or.cond.us.i = and i1 %cmp1.us.i, %cmp3.us.i @@ -2451,11 +2450,11 @@ if.end239: ; preds = %for.inc20.us.i, %if if.then245: ; preds = %if.end239 %80 = load ptr, ptr %v_tiles, align 8 %81 = load i32, ptr %num_v_tiles, align 8 - %82 = add nsw i64 %indvars.iv565, 5 + %82 = add nsw i64 %indvars.iv564, 5 %arrayidx252 = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %60, i64 %82 %arrayidx258 = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %61, i64 %82 %arrayidx264 = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %62, i64 %82 - %83 = add nsw i64 %indvars.iv565, 6 + %83 = add nsw i64 %indvars.iv564, 6 %arrayidx270 = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %60, i64 %83 %arrayidx276 = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %61, i64 %83 %arrayidx282 = getelementptr inbounds [106 x [106 x i8]], ptr @c_color, i64 0, i64 %62, i64 %83 @@ -2472,7 +2471,7 @@ for.body.us.preheader.i387: ; preds = %if.end287 for.body.us.i390: ; preds = %for.inc19.us.i, %for.body.us.preheader.i387 %indvars.iv29.i391 = phi i64 [ 0, %for.body.us.preheader.i387 ], [ %indvars.iv.next30.i395, %for.inc19.us.i ] - %85 = add nsw i64 %indvars.iv29.i391, %indvars.iv580 + %85 = add nsw i64 %indvars.iv29.i391, %indvars.iv579 %cmp1.us.i392 = icmp sgt i64 %85, -1 %cmp3.us.i393 = icmp slt i64 %85, %55 %or.cond.us.i394 = and i1 %cmp1.us.i392, %cmp3.us.i393 @@ -2493,9 +2492,8 @@ for.body6.us.i398: ; preds = %for.cond4.preheader if.then12.us.i406: ; preds = %for.body6.us.i398 %87 = add nuw nsw i64 %indvars.iv.i399, %90 - %88 = mul i64 %87, 3 - %idxprom.us.i = and i64 %88, 4294967295 - %arrayidx.us.i407 = getelementptr inbounds %struct.stbhw_tile, ptr %call283, i64 0, i32 6, i64 %idxprom.us.i + %88 = mul nsw i64 %87, 3 + %arrayidx.us.i407 = getelementptr inbounds %struct.stbhw_tile, ptr %call283, i64 0, i32 6, i64 %88 %89 = mul nsw i64 %86, 3 %add.ptr3.i.us.i408 = getelementptr inbounds i8, ptr %add.ptr.i.us.i397, i64 %89 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %add.ptr3.i.us.i408, ptr noundef nonnull align 1 dereferenceable(3) %arrayidx.us.i407, i64 3, i1 false) @@ -2513,24 +2511,24 @@ for.cond4.preheader.us.i396: ; preds = %for.body.us.i390 br label %for.body6.us.i398 for.inc289: ; preds = %for.inc19.us.i, %if.end287, %if.end239 - %indvars.iv.next566 = add i64 %indvars.iv565, 4 - %92 = mul nsw i64 %indvars.iv.next566, %57 + %indvars.iv.next565 = add i64 %indvars.iv564, 4 + %92 = mul nsw i64 %indvars.iv.next565, %57 %cmp186.not = icmp slt i64 %92, %54 %93 = trunc i64 %92 to i32 br i1 %cmp186.not, label %if.end189, label %for.end291 for.end291: ; preds = %for.inc289, %for.body176 - %indvars.iv.next581 = add i64 %indvars.iv580, %57 - %indvars.iv.next574 = add i64 %indvars.iv573, 1 - %cmp174 = icmp slt i64 %indvars.iv.next581, %55 + %indvars.iv.next580 = add i64 %indvars.iv579, %57 + %indvars.iv.next573 = add i64 %indvars.iv572, 1 + %cmp174 = icmp slt i64 %indvars.iv.next580, %55 br i1 %cmp174, label %for.body176, label %return, !llvm.loop !50 if.else296: ; preds = %if.end tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(11130) @v_color, i8 -1, i64 11130, i1 false) tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(11130) @h_color, i8 -1, i64 11130, i1 false) %mul300 = sub nsw i32 0, %0 - %cmp302511 = icmp slt i32 %mul300, %h - br i1 %cmp302511, label %for.body304.lr.ph, label %return + %cmp302510 = icmp slt i32 %mul300, %h + br i1 %cmp302510, label %for.body304.lr.ph, label %return for.body304.lr.ph: ; preds = %if.else296 %h_tiles329 = getelementptr inbounds %struct.stbhw_tileset, ptr %ts, i64 0, i32 3 @@ -2551,29 +2549,29 @@ for.body304.lr.ph: ; preds = %if.else296 br label %for.body304 for.body304: ; preds = %for.body304.lr.ph, %for.end426 - %indvars.iv595 = phi i64 [ -1, %for.body304.lr.ph ], [ %indvars.iv.next596, %for.end426 ] - %indvars.iv593 = phi i64 [ %98, %for.body304.lr.ph ], [ %indvars.iv.next594, %for.end426 ] - %99 = trunc i64 %indvars.iv595 to i32 + %indvars.iv594 = phi i64 [ -1, %for.body304.lr.ph ], [ %indvars.iv.next595, %for.end426 ] + %indvars.iv592 = phi i64 [ %98, %for.body304.lr.ph ], [ %indvars.iv.next593, %for.end426 ] + %99 = trunc i64 %indvars.iv594 to i32 %and306 = and i32 %99, 3 %cmp307 = icmp eq i32 %and306, 0 %sub311 = or i32 %99, -4 %i297.0 = select i1 %cmp307, i32 0, i32 %sub311 - %mul315507 = mul nsw i32 %i297.0, %0 - %cmp316.not508 = icmp slt i32 %mul315507, %w - br i1 %cmp316.not508, label %if.end319.lr.ph, label %for.end426 + %mul315506 = mul nsw i32 %i297.0, %0 + %cmp316.not507 = icmp slt i32 %mul315506, %w + br i1 %cmp316.not507, label %if.end319.lr.ph, label %for.end426 if.end319.lr.ph: ; preds = %for.body304 - %100 = add nsw i64 %indvars.iv595, 2 - %101 = add nsw i64 %indvars.iv595, 3 - %102 = add nsw i64 %indvars.iv595, 4 + %100 = add nsw i64 %indvars.iv594, 2 + %101 = add nsw i64 %indvars.iv594, 3 + %102 = add nsw i64 %indvars.iv594, 4 %103 = sext i32 %i297.0 to i64 - %104 = trunc i64 %indvars.iv593 to i32 + %104 = trunc i64 %indvars.iv592 to i32 br label %if.end319 if.end319: ; preds = %if.end319.lr.ph, %for.inc424 - %indvars.iv585 = phi i64 [ %103, %if.end319.lr.ph ], [ %indvars.iv.next586, %for.inc424 ] - %mul315510 = phi i32 [ %mul315507, %if.end319.lr.ph ], [ %133, %for.inc424 ] - %105 = trunc i64 %indvars.iv585 to i32 + %indvars.iv584 = phi i64 [ %103, %if.end319.lr.ph ], [ %indvars.iv.next585, %for.inc424 ] + %mul315509 = phi i32 [ %mul315506, %if.end319.lr.ph ], [ %133, %for.inc424 ] + %105 = trunc i64 %indvars.iv584 to i32 %mul315209 = add i32 %105, 2 %add321 = mul i32 %mul315209, %0 %106 = or i32 %add321, %104 @@ -2585,10 +2583,10 @@ if.then327: ; preds = %if.end319 %108 = load i32, ptr %num_h_tiles330, align 8 %idxprom335 = sext i32 %mul315209 to i64 %arrayidx336 = getelementptr inbounds [105 x [106 x i8]], ptr @h_color, i64 0, i64 %100, i64 %idxprom335 - %109 = add nsw i64 %indvars.iv585, 3 + %109 = add nsw i64 %indvars.iv584, 3 %arrayidx342 = getelementptr inbounds [105 x [106 x i8]], ptr @h_color, i64 0, i64 %100, i64 %109 %arrayidx348 = getelementptr inbounds [106 x [105 x i8]], ptr @v_color, i64 0, i64 %100, i64 %idxprom335 - %110 = add nsw i64 %indvars.iv585, 4 + %110 = add nsw i64 %indvars.iv584, 4 %arrayidx354 = getelementptr inbounds [106 x [105 x i8]], ptr @v_color, i64 0, i64 %100, i64 %110 %arrayidx360 = getelementptr inbounds [105 x [106 x i8]], ptr @h_color, i64 0, i64 %101, i64 %idxprom335 %arrayidx366 = getelementptr inbounds [105 x [106 x i8]], ptr @h_color, i64 0, i64 %101, i64 %109 @@ -2600,12 +2598,12 @@ if.end371: ; preds = %if.then327 br i1 %cmp20.i409, label %for.body.us.preheader.i410, label %if.end372 for.body.us.preheader.i410: ; preds = %if.end371 - %111 = sext i32 %mul315510 to i64 + %111 = sext i32 %mul315509 to i64 br label %for.body.us.i414 for.body.us.i414: ; preds = %for.inc20.us.i419, %for.body.us.preheader.i410 %indvars.iv29.i415 = phi i64 [ 0, %for.body.us.preheader.i410 ], [ %indvars.iv.next30.i420, %for.inc20.us.i419 ] - %112 = add nsw i64 %indvars.iv29.i415, %indvars.iv593 + %112 = add nsw i64 %indvars.iv29.i415, %indvars.iv592 %cmp1.us.i416 = icmp sgt i64 %112, -1 %cmp3.us.i417 = icmp slt i64 %112, %95 %or.cond.us.i418 = and i1 %cmp1.us.i416, %cmp3.us.i417 @@ -2654,10 +2652,10 @@ if.end372: ; preds = %for.inc20.us.i419, if.then378: ; preds = %if.end372 %120 = load ptr, ptr %v_tiles380, align 8 %121 = load i32, ptr %num_v_tiles381, align 8 - %122 = add nsw i64 %indvars.iv585, 5 + %122 = add nsw i64 %indvars.iv584, 5 %arrayidx387 = getelementptr inbounds [105 x [106 x i8]], ptr @h_color, i64 0, i64 %100, i64 %122 %arrayidx393 = getelementptr inbounds [106 x [105 x i8]], ptr @v_color, i64 0, i64 %100, i64 %122 - %123 = add nsw i64 %indvars.iv585, 6 + %123 = add nsw i64 %indvars.iv584, 6 %arrayidx399 = getelementptr inbounds [106 x [105 x i8]], ptr @v_color, i64 0, i64 %100, i64 %123 %arrayidx405 = getelementptr inbounds [106 x [105 x i8]], ptr @v_color, i64 0, i64 %101, i64 %122 %arrayidx411 = getelementptr inbounds [106 x [105 x i8]], ptr @v_color, i64 0, i64 %101, i64 %123 @@ -2675,7 +2673,7 @@ for.body.us.preheader.i438: ; preds = %if.end422 for.body.us.i443: ; preds = %for.inc19.us.i448, %for.body.us.preheader.i438 %indvars.iv29.i444 = phi i64 [ 0, %for.body.us.preheader.i438 ], [ %indvars.iv.next30.i449, %for.inc19.us.i448 ] - %125 = add nsw i64 %indvars.iv29.i444, %indvars.iv593 + %125 = add nsw i64 %indvars.iv29.i444, %indvars.iv592 %cmp1.us.i445 = icmp sgt i64 %125, -1 %cmp3.us.i446 = icmp slt i64 %125, %95 %or.cond.us.i447 = and i1 %cmp1.us.i445, %cmp3.us.i446 @@ -2696,12 +2694,11 @@ for.body6.us.i453: ; preds = %for.cond4.preheader if.then12.us.i461: ; preds = %for.body6.us.i453 %127 = add nuw nsw i64 %indvars.iv.i454, %130 - %128 = mul i64 %127, 3 - %idxprom.us.i462 = and i64 %128, 4294967295 - %arrayidx.us.i463 = getelementptr inbounds %struct.stbhw_tile, ptr %call418, i64 0, i32 6, i64 %idxprom.us.i462 + %128 = mul nsw i64 %127, 3 + %arrayidx.us.i462 = getelementptr inbounds %struct.stbhw_tile, ptr %call418, i64 0, i32 6, i64 %128 %129 = mul nsw i64 %126, 3 - %add.ptr3.i.us.i464 = getelementptr inbounds i8, ptr %add.ptr.i.us.i452, i64 %129 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %add.ptr3.i.us.i464, ptr noundef nonnull align 1 dereferenceable(3) %arrayidx.us.i463, i64 3, i1 false) + %add.ptr3.i.us.i463 = getelementptr inbounds i8, ptr %add.ptr.i.us.i452, i64 %129 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %add.ptr3.i.us.i463, ptr noundef nonnull align 1 dereferenceable(3) %arrayidx.us.i462, i64 3, i1 false) br label %for.inc.us.i458 for.inc.us.i458: ; preds = %if.then12.us.i461, %for.body6.us.i453 @@ -2716,16 +2713,16 @@ for.cond4.preheader.us.i451: ; preds = %for.body.us.i443 br label %for.body6.us.i453 for.inc424: ; preds = %for.inc19.us.i448, %if.end422, %if.end372 - %indvars.iv.next586 = add i64 %indvars.iv585, 4 - %132 = mul nsw i64 %indvars.iv.next586, %97 + %indvars.iv.next585 = add i64 %indvars.iv584, 4 + %132 = mul nsw i64 %indvars.iv.next585, %97 %cmp316.not = icmp slt i64 %132, %94 %133 = trunc i64 %132 to i32 br i1 %cmp316.not, label %if.end319, label %for.end426 for.end426: ; preds = %for.inc424, %for.body304 - %indvars.iv.next594 = add i64 %indvars.iv593, %97 - %indvars.iv.next596 = add i64 %indvars.iv595, 1 - %cmp302 = icmp slt i64 %indvars.iv.next594, %95 + %indvars.iv.next593 = add i64 %indvars.iv592, %97 + %indvars.iv.next595 = add i64 %indvars.iv594, 1 + %cmp302 = icmp slt i64 %indvars.iv.next593, %95 br i1 %cmp302, label %for.body304, label %return, !llvm.loop !51 return: ; preds = %for.end291, %if.then245, %if.then197, %for.end426, %if.then378, %if.then327, %for.end172, %if.else296, %if.then @@ -2779,20 +2776,19 @@ for.cond18.preheader.lr.ph.split.us: ; preds = %entry %3 = load i32, ptr %stride, align 8 %4 = sext i32 %inc to i64 %smax = tail call i32 @llvm.smax.i32(i32 %mul, i32 1) - %5 = sext i32 %inc4 to i64 - %6 = sext i32 %3 to i64 + %5 = zext nneg i32 %mul2 to i64 + %6 = sext i32 %inc4 to i64 + %7 = sext i32 %3 to i64 %wide.trip.count39 = zext nneg i32 %1 to i64 %wide.trip.count = zext nneg i32 %smax to i64 br label %for.cond18.preheader.us for.cond18.preheader.us: ; preds = %for.cond18.for.inc38_crit_edge.us, %for.cond18.preheader.lr.ph.split.us %indvars.iv33 = phi i64 [ %indvars.iv.next34, %for.cond18.for.inc38_crit_edge.us ], [ 0, %for.cond18.preheader.lr.ph.split.us ] - %7 = trunc i64 %indvars.iv33 to i32 - %8 = mul i32 %mul2, %7 - %idx.ext.us = zext nneg i32 %8 to i64 - %add.ptr.us = getelementptr inbounds i8, ptr %pixels, i64 %idx.ext.us - %9 = add nsw i64 %indvars.iv33, %5 - %10 = mul nsw i64 %9, %6 + %8 = mul nsw i64 %indvars.iv33, %5 + %add.ptr.us = getelementptr inbounds i8, ptr %pixels, i64 %8 + %9 = add nsw i64 %indvars.iv33, %6 + %10 = mul nsw i64 %9, %7 %add.ptr32.us = getelementptr inbounds i8, ptr %2, i64 %10 br label %for.body22.us @@ -2873,8 +2869,9 @@ for.cond19.preheader.lr.ph.split.us: ; preds = %entry %2 = load ptr, ptr %data, align 8 %3 = load i32, ptr %stride, align 8 %4 = sext i32 %inc to i64 - %5 = sext i32 %inc4 to i64 - %6 = sext i32 %3 to i64 + %5 = zext nneg i32 %mul23 to i64 + %6 = sext i32 %inc4 to i64 + %7 = sext i32 %3 to i64 %smax = tail call i32 @llvm.smax.i32(i32 %mul, i32 1) %wide.trip.count39 = zext nneg i32 %smax to i64 %wide.trip.count = zext nneg i32 %1 to i64 @@ -2882,12 +2879,10 @@ for.cond19.preheader.lr.ph.split.us: ; preds = %entry for.cond19.preheader.us: ; preds = %for.cond19.for.inc37_crit_edge.us, %for.cond19.preheader.lr.ph.split.us %indvars.iv33 = phi i64 [ %indvars.iv.next34, %for.cond19.for.inc37_crit_edge.us ], [ 0, %for.cond19.preheader.lr.ph.split.us ] - %7 = trunc i64 %indvars.iv33 to i32 - %8 = mul i32 %mul23, %7 - %idx.ext.us = zext nneg i32 %8 to i64 - %add.ptr.us = getelementptr inbounds i8, ptr %pixels, i64 %idx.ext.us - %9 = add nsw i64 %indvars.iv33, %5 - %10 = mul nsw i64 %9, %6 + %8 = mul nsw i64 %indvars.iv33, %5 + %add.ptr.us = getelementptr inbounds i8, ptr %pixels, i64 %8 + %9 = add nsw i64 %indvars.iv33, %6 + %10 = mul nsw i64 %9, %7 %add.ptr31.us = getelementptr inbounds i8, ptr %2, i64 %10 br label %for.body22.us diff --git a/bench/stb/optimized/stb_hexwave.c.ll b/bench/stb/optimized/stb_hexwave.c.ll index d8582a6dfdd..f0c0d2d042b 100644 --- a/bench/stb/optimized/stb_hexwave.c.ll +++ b/bench/stb/optimized/stb_hexwave.c.ll @@ -1060,15 +1060,14 @@ for.cond107.preheader.us: ; preds = %for.cond107.prehead for.body110.us: ; preds = %for.cond107.preheader.us, %for.body110.us %indvars.iv157 = phi i64 [ 0, %for.cond107.preheader.us ], [ %indvars.iv.next158, %for.body110.us ] - %14 = mul i64 %indvars.iv157, %10 - %15 = add i64 %14, %indvars.iv165 - %idxprom113.us = and i64 %15, 4294967295 - %arrayidx114.us = getelementptr inbounds float, ptr %cond102, i64 %idxprom113.us + %14 = mul nsw i64 %indvars.iv157, %10 + %15 = add nuw nsw i64 %14, %indvars.iv165 + %arrayidx114.us = getelementptr inbounds float, ptr %cond102, i64 %15 %16 = load float, ptr %arrayidx114.us, align 4 %17 = add nuw nsw i64 %indvars.iv157, %13 %arrayidx118.us = getelementptr inbounds float, ptr %blep_buffer.0, i64 %17 store float %16, ptr %arrayidx118.us, align 4 - %arrayidx122.us = getelementptr inbounds float, ptr %add.ptr9104, i64 %idxprom113.us + %arrayidx122.us = getelementptr inbounds float, ptr %add.ptr9104, i64 %15 %18 = load float, ptr %arrayidx122.us, align 4 %arrayidx126.us = getelementptr inbounds float, ptr %blamp_buffer.0, i64 %17 store float %18, ptr %arrayidx126.us, align 4 diff --git a/bench/stb/optimized/stb_image.c.ll b/bench/stb/optimized/stb_image.c.ll index da7e9cf6a7f..a87843d3bc2 100644 --- a/bench/stb/optimized/stb_image.c.ll +++ b/bench/stb/optimized/stb_image.c.ll @@ -5317,15 +5317,14 @@ for.cond9.preheader.lr.ph.split: ; preds = %for.cond9.preheader br i1 %cmp32, label %for.cond9.preheader.us40.preheader, label %for.end58 for.cond9.preheader.us40.preheader: ; preds = %for.cond9.preheader.lr.ph.split + %14 = zext nneg i32 %comp to i64 %wide.trip.count = zext nneg i32 %mul.i.i to i64 br label %for.cond9.preheader.us40 for.cond9.preheader.us40: ; preds = %for.cond9.preheader.us40.preheader, %for.cond9.preheader.us40 %indvars.iv = phi i64 [ 0, %for.cond9.preheader.us40.preheader ], [ %indvars.iv.next, %for.cond9.preheader.us40 ] - %14 = trunc i64 %indvars.iv to i32 - %15 = mul i32 %14, %comp - %idxprom38.us44 = zext nneg i32 %15 to i64 - %arrayidx39.us45 = getelementptr inbounds float, ptr %data, i64 %idxprom38.us44 + %15 = mul nsw i64 %indvars.iv, %14 + %arrayidx39.us45 = getelementptr inbounds float, ptr %data, i64 %15 %16 = load float, ptr %arrayidx39.us45, align 4 %17 = tail call float @llvm.fmuladd.f32(float %16, float 2.550000e+02, float 5.000000e-01) %cmp41.us46 = fcmp olt float %17, 0.000000e+00 @@ -5334,7 +5333,7 @@ for.cond9.preheader.us40: ; preds = %for.cond9.preheader %z35.1.us49 = select i1 %cmp45.us48, float 2.550000e+02, float %z35.0.us47 %conv49.us50 = fptosi float %z35.1.us49 to i32 %conv50.us51 = trunc i32 %conv49.us50 to i8 - %arrayidx54.us52 = getelementptr inbounds i8, ptr %call.i.i, i64 %idxprom38.us44 + %arrayidx54.us52 = getelementptr inbounds i8, ptr %call.i.i, i64 %15 store i8 %conv50.us51, ptr %arrayidx54.us52, align 1 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count @@ -20980,25 +20979,24 @@ for.body11: ; preds = %for.body11.preheade %idxprom14 = zext nneg i32 %add13 to i64 %arrayidx15 = getelementptr inbounds i8, ptr %dest, i64 %idxprom14 store i8 -1, ptr %arrayidx15, align 1 - %5 = mul i64 %indvars.iv, 3 - %6 = and i64 %5, 4294967295 - %7 = getelementptr i8, ptr %src, i64 %6 - %arrayidx19 = getelementptr i8, ptr %7, i64 2 - %8 = load i8, ptr %arrayidx19, align 1 + %5 = mul nsw i64 %indvars.iv, 3 + %6 = getelementptr i8, ptr %src, i64 %5 + %arrayidx19 = getelementptr i8, ptr %6, i64 2 + %7 = load i8, ptr %arrayidx19, align 1 %add21 = or disjoint i32 %mul12, 2 %idxprom22 = zext nneg i32 %add21 to i64 %arrayidx23 = getelementptr inbounds i8, ptr %dest, i64 %idxprom22 - store i8 %8, ptr %arrayidx23, align 1 - %arrayidx27 = getelementptr i8, ptr %7, i64 1 - %9 = load i8, ptr %arrayidx27, align 1 + store i8 %7, ptr %arrayidx23, align 1 + %arrayidx27 = getelementptr i8, ptr %6, i64 1 + %8 = load i8, ptr %arrayidx27, align 1 %add29 = or disjoint i32 %mul12, 1 %idxprom30 = zext nneg i32 %add29 to i64 %arrayidx31 = getelementptr inbounds i8, ptr %dest, i64 %idxprom30 - store i8 %9, ptr %arrayidx31, align 1 - %10 = load i8, ptr %7, align 1 + store i8 %8, ptr %arrayidx31, align 1 + %9 = load i8, ptr %6, align 1 %idxprom38 = zext nneg i32 %mul12 to i64 %arrayidx39 = getelementptr inbounds i8, ptr %dest, i64 %idxprom38 - store i8 %10, ptr %arrayidx39, align 1 + store i8 %9, ptr %arrayidx39, align 1 %indvars.iv.next = add nsw i64 %indvars.iv, -1 %cmp10.not = icmp eq i64 %indvars.iv, 0 br i1 %cmp10.not, label %if.end, label %for.body11, !llvm.loop !181 @@ -21536,24 +21534,23 @@ for.body11.i: ; preds = %for.cond9.preheader %arrayidx15.i = getelementptr inbounds i8, ptr %add.ptr43418, i64 %idxprom14.i store i8 -1, ptr %arrayidx15.i, align 1 %54 = mul nsw i64 %indvars.iv.i, 3 - %55 = and i64 %54, 4294967295 - %56 = getelementptr i8, ptr %add.ptr43418, i64 %55 - %arrayidx19.i = getelementptr i8, ptr %56, i64 2 - %57 = load i8, ptr %arrayidx19.i, align 1 + %55 = getelementptr i8, ptr %add.ptr43418, i64 %54 + %arrayidx19.i = getelementptr i8, ptr %55, i64 2 + %56 = load i8, ptr %arrayidx19.i, align 1 %add21.i = or disjoint i32 %mul12.i, 2 %idxprom22.i = zext nneg i32 %add21.i to i64 %arrayidx23.i = getelementptr inbounds i8, ptr %add.ptr43418, i64 %idxprom22.i - store i8 %57, ptr %arrayidx23.i, align 1 - %arrayidx27.i = getelementptr i8, ptr %56, i64 1 - %58 = load i8, ptr %arrayidx27.i, align 1 + store i8 %56, ptr %arrayidx23.i, align 1 + %arrayidx27.i = getelementptr i8, ptr %55, i64 1 + %57 = load i8, ptr %arrayidx27.i, align 1 %add29.i = or disjoint i32 %mul12.i, 1 %idxprom30.i = zext nneg i32 %add29.i to i64 %arrayidx31.i = getelementptr inbounds i8, ptr %add.ptr43418, i64 %idxprom30.i - store i8 %58, ptr %arrayidx31.i, align 1 - %59 = load i8, ptr %56, align 1 + store i8 %57, ptr %arrayidx31.i, align 1 + %58 = load i8, ptr %55, align 1 %idxprom38.i = zext nneg i32 %mul12.i to i64 %arrayidx39.i = getelementptr inbounds i8, ptr %add.ptr43418, i64 %idxprom38.i - store i8 %59, ptr %arrayidx39.i, align 1 + store i8 %58, ptr %arrayidx39.i, align 1 %indvars.iv.next.i = add nsw i64 %indvars.iv.i, -1 %cmp10.not.i = icmp eq i64 %indvars.iv.i, 0 br i1 %cmp10.not.i, label %for.inc393, label %for.body11.i, !llvm.loop !181 @@ -21579,48 +21576,47 @@ for.cond.preheader.i245: ; preds = %if.else305 for.body.i247: ; preds = %for.cond.preheader.i245, %for.body.i247 %indvars.iv33.i248 = phi i64 [ %indvars.iv.next34.i256, %for.body.i247 ], [ %12, %for.cond.preheader.i245 ] - %60 = trunc i64 %indvars.iv33.i248 to i32 - %mul.i249 = shl nuw nsw i32 %60, 1 + %59 = trunc i64 %indvars.iv33.i248 to i32 + %mul.i249 = shl nuw nsw i32 %59, 1 %add.i250 = or disjoint i32 %mul.i249, 1 %idxprom.i251 = zext nneg i32 %add.i250 to i64 %arrayidx.i252 = getelementptr inbounds i8, ptr %add.ptr43418, i64 %idxprom.i251 store i8 -1, ptr %arrayidx.i252, align 1 %arrayidx3.i253 = getelementptr inbounds i8, ptr %add.ptr416, i64 %indvars.iv33.i248 - %61 = load i8, ptr %arrayidx3.i253, align 1 + %60 = load i8, ptr %arrayidx3.i253, align 1 %idxprom6.i254 = zext nneg i32 %mul.i249 to i64 %arrayidx7.i255 = getelementptr inbounds i8, ptr %add.ptr43418, i64 %idxprom6.i254 - store i8 %61, ptr %arrayidx7.i255, align 1 + store i8 %60, ptr %arrayidx7.i255, align 1 %indvars.iv.next34.i256 = add nsw i64 %indvars.iv33.i248, -1 %cmp1.not.i257 = icmp eq i64 %indvars.iv33.i248, 0 br i1 %cmp1.not.i257, label %for.inc393, label %for.body.i247, !llvm.loop !180 for.body11.i227: ; preds = %for.cond9.preheader.i225, %for.body11.i227 %indvars.iv.i228 = phi i64 [ %indvars.iv.next.i243, %for.body11.i227 ], [ %12, %for.cond9.preheader.i225 ] - %62 = trunc i64 %indvars.iv.i228 to i32 - %mul12.i229 = shl nsw i32 %62, 2 + %61 = trunc i64 %indvars.iv.i228 to i32 + %mul12.i229 = shl nsw i32 %61, 2 %add13.i230 = or disjoint i32 %mul12.i229, 3 %idxprom14.i231 = zext nneg i32 %add13.i230 to i64 %arrayidx15.i232 = getelementptr inbounds i8, ptr %add.ptr43418, i64 %idxprom14.i231 store i8 -1, ptr %arrayidx15.i232, align 1 - %63 = mul nsw i64 %indvars.iv.i228, 3 - %64 = and i64 %63, 4294967295 - %65 = getelementptr i8, ptr %add.ptr416, i64 %64 - %arrayidx19.i233 = getelementptr i8, ptr %65, i64 2 - %66 = load i8, ptr %arrayidx19.i233, align 1 + %62 = mul nsw i64 %indvars.iv.i228, 3 + %63 = getelementptr i8, ptr %add.ptr416, i64 %62 + %arrayidx19.i233 = getelementptr i8, ptr %63, i64 2 + %64 = load i8, ptr %arrayidx19.i233, align 1 %add21.i234 = or disjoint i32 %mul12.i229, 2 %idxprom22.i235 = zext nneg i32 %add21.i234 to i64 %arrayidx23.i236 = getelementptr inbounds i8, ptr %add.ptr43418, i64 %idxprom22.i235 - store i8 %66, ptr %arrayidx23.i236, align 1 - %arrayidx27.i237 = getelementptr i8, ptr %65, i64 1 - %67 = load i8, ptr %arrayidx27.i237, align 1 + store i8 %64, ptr %arrayidx23.i236, align 1 + %arrayidx27.i237 = getelementptr i8, ptr %63, i64 1 + %65 = load i8, ptr %arrayidx27.i237, align 1 %add29.i238 = or disjoint i32 %mul12.i229, 1 %idxprom30.i239 = zext nneg i32 %add29.i238 to i64 %arrayidx31.i240 = getelementptr inbounds i8, ptr %add.ptr43418, i64 %idxprom30.i239 - store i8 %67, ptr %arrayidx31.i240, align 1 - %68 = load i8, ptr %65, align 1 + store i8 %65, ptr %arrayidx31.i240, align 1 + %66 = load i8, ptr %63, align 1 %idxprom38.i241 = zext nneg i32 %mul12.i229 to i64 %arrayidx39.i242 = getelementptr inbounds i8, ptr %add.ptr43418, i64 %idxprom38.i241 - store i8 %68, ptr %arrayidx39.i242, align 1 + store i8 %66, ptr %arrayidx39.i242, align 1 %indvars.iv.next.i243 = add nsw i64 %indvars.iv.i228, -1 %cmp10.not.i244 = icmp eq i64 %indvars.iv.i228, 0 br i1 %cmp10.not.i244, label %for.inc393, label %for.body11.i227, !llvm.loop !181 @@ -21638,12 +21634,12 @@ for.body319: ; preds = %for.cond316.prehead %dest16.0307 = phi ptr [ %incdec.ptr328, %for.body319 ], [ %add.ptr43418, %for.cond316.preheader ] %i.3306 = phi i32 [ %inc327, %for.body319 ], [ 0, %for.cond316.preheader ] %cur.0305 = phi ptr [ %add.ptr329, %for.body319 ], [ %add.ptr416, %for.cond316.preheader ] - %69 = load i8, ptr %cur.0305, align 1 - %conv321 = zext i8 %69 to i16 + %67 = load i8, ptr %cur.0305, align 1 + %conv321 = zext i8 %67 to i16 %shl322 = shl nuw i16 %conv321, 8 %arrayidx323 = getelementptr inbounds i8, ptr %cur.0305, i64 1 - %70 = load i8, ptr %arrayidx323, align 1 - %conv324 = zext i8 %70 to i16 + %68 = load i8, ptr %arrayidx323, align 1 + %conv324 = zext i8 %68 to i16 %or = or disjoint i16 %shl322, %conv324 store i16 %or, ptr %dest16.0307, align 2 %inc327 = add nuw i32 %i.3306, 1 @@ -21665,12 +21661,12 @@ for.body338: ; preds = %for.cond335.prehead %dest16.1303 = phi ptr [ %add.ptr350, %for.body338 ], [ %add.ptr43418, %for.cond335.preheader ] %i.4302 = phi i32 [ %inc349, %for.body338 ], [ 0, %for.cond335.preheader ] %cur.1301 = phi ptr [ %add.ptr351, %for.body338 ], [ %add.ptr416, %for.cond335.preheader ] - %71 = load i8, ptr %cur.1301, align 1 - %conv340 = zext i8 %71 to i16 + %69 = load i8, ptr %cur.1301, align 1 + %conv340 = zext i8 %69 to i16 %shl341 = shl nuw i16 %conv340, 8 %arrayidx342 = getelementptr inbounds i8, ptr %cur.1301, i64 1 - %72 = load i8, ptr %arrayidx342, align 1 - %conv343 = zext i8 %72 to i16 + %70 = load i8, ptr %arrayidx342, align 1 + %conv343 = zext i8 %70 to i16 %or344 = or disjoint i16 %shl341, %conv343 store i16 %or344, ptr %dest16.1303, align 2 %arrayidx347 = getelementptr inbounds i16, ptr %dest16.1303, i64 1 @@ -21685,31 +21681,31 @@ for.body357: ; preds = %for.cond354.prehead %dest16.2299 = phi ptr [ %add.ptr385, %for.body357 ], [ %add.ptr43418, %for.cond354.preheader ] %i.5298 = phi i32 [ %inc384, %for.body357 ], [ 0, %for.cond354.preheader ] %cur.2297 = phi ptr [ %add.ptr386, %for.body357 ], [ %add.ptr416, %for.cond354.preheader ] - %73 = load i8, ptr %cur.2297, align 1 - %conv359 = zext i8 %73 to i16 + %71 = load i8, ptr %cur.2297, align 1 + %conv359 = zext i8 %71 to i16 %shl360 = shl nuw i16 %conv359, 8 %arrayidx361 = getelementptr inbounds i8, ptr %cur.2297, i64 1 - %74 = load i8, ptr %arrayidx361, align 1 - %conv362 = zext i8 %74 to i16 + %72 = load i8, ptr %arrayidx361, align 1 + %conv362 = zext i8 %72 to i16 %or363 = or disjoint i16 %shl360, %conv362 store i16 %or363, ptr %dest16.2299, align 2 %arrayidx366 = getelementptr inbounds i8, ptr %cur.2297, i64 2 - %75 = load i8, ptr %arrayidx366, align 1 - %conv367 = zext i8 %75 to i16 + %73 = load i8, ptr %arrayidx366, align 1 + %conv367 = zext i8 %73 to i16 %shl368 = shl nuw i16 %conv367, 8 %arrayidx369 = getelementptr inbounds i8, ptr %cur.2297, i64 3 - %76 = load i8, ptr %arrayidx369, align 1 - %conv370 = zext i8 %76 to i16 + %74 = load i8, ptr %arrayidx369, align 1 + %conv370 = zext i8 %74 to i16 %or371 = or disjoint i16 %shl368, %conv370 %arrayidx373 = getelementptr inbounds i16, ptr %dest16.2299, i64 1 store i16 %or371, ptr %arrayidx373, align 2 %arrayidx374 = getelementptr inbounds i8, ptr %cur.2297, i64 4 - %77 = load i8, ptr %arrayidx374, align 1 - %conv375 = zext i8 %77 to i16 + %75 = load i8, ptr %arrayidx374, align 1 + %conv375 = zext i8 %75 to i16 %shl376 = shl nuw i16 %conv375, 8 %arrayidx377 = getelementptr inbounds i8, ptr %cur.2297, i64 5 - %78 = load i8, ptr %arrayidx377, align 1 - %conv378 = zext i8 %78 to i16 + %76 = load i8, ptr %arrayidx377, align 1 + %conv378 = zext i8 %76 to i16 %or379 = or disjoint i16 %shl376, %conv378 %arrayidx381 = getelementptr inbounds i16, ptr %dest16.2299, i64 2 store i16 %or379, ptr %arrayidx381, align 2 diff --git a/bench/stb/optimized/stb_image_write.c.ll b/bench/stb/optimized/stb_image_write.c.ll index f528d58b8fe..caeaf282967 100644 --- a/bench/stb/optimized/stb_image_write.c.ll +++ b/bench/stb/optimized/stb_image_write.c.ll @@ -1370,38 +1370,40 @@ for.body33.lr.ph: ; preds = %entry %switch98 = icmp ult i32 %ncomp.off97, 2 %mul72 = shl nuw nsw i32 %width, 1 %mul77 = mul nuw nsw i32 %width, 3 + %1 = zext nneg i32 %width to i64 + %2 = zext nneg i32 %mul72 to i64 + %3 = zext nneg i32 %mul77 to i64 br i1 %switch98, label %for.body33.us.preheader, label %for.body33.preheader for.body33.preheader: ; preds = %for.body33.lr.ph - %1 = sext i32 %ncomp to i64 + %4 = sext i32 %ncomp to i64 %wide.trip.count = zext nneg i32 %width to i64 + %invariant.gep = getelementptr i8, ptr %scratch, i64 %1 + %invariant.gep206 = getelementptr i8, ptr %scratch, i64 %2 + %invariant.gep208 = getelementptr i8, ptr %scratch, i64 %3 br label %for.body33 for.body33.us.preheader: ; preds = %for.body33.lr.ph - %2 = zext nneg i32 %width to i64 - %3 = zext nneg i32 %mul72 to i64 - %4 = zext nneg i32 %mul77 to i64 - %invariant.gep = getelementptr i8, ptr %scratch, i64 %2 - %invariant.gep206 = getelementptr i8, ptr %scratch, i64 %3 - %invariant.gep208 = getelementptr i8, ptr %scratch, i64 %4 + %5 = zext nneg i32 %ncomp to i64 + %invariant.gep210 = getelementptr i8, ptr %scratch, i64 %1 + %invariant.gep212 = getelementptr i8, ptr %scratch, i64 %2 + %invariant.gep214 = getelementptr i8, ptr %scratch, i64 %3 br label %for.body33.us for.body33.us: ; preds = %for.body33.us.preheader, %stbiw__linear_to_rgbe.exit125.us %indvars.iv172 = phi i64 [ 0, %for.body33.us.preheader ], [ %indvars.iv.next173, %stbiw__linear_to_rgbe.exit125.us ] - %5 = trunc i64 %indvars.iv172 to i32 - %6 = mul i32 %5, %ncomp - %7 = zext nneg i32 %6 to i64 - %8 = getelementptr float, ptr %scanline, i64 %7 - %arrayidx38.us = getelementptr float, ptr %8, i64 2 - %9 = load float, ptr %arrayidx38.us, align 4 - %arrayidx43.us = getelementptr float, ptr %8, i64 1 - %10 = load float, ptr %arrayidx43.us, align 4 - %11 = load float, ptr %8, align 4 + %6 = mul nsw i64 %indvars.iv172, %5 + %7 = getelementptr float, ptr %scanline, i64 %6 + %arrayidx38.us = getelementptr float, ptr %7, i64 2 + %8 = load float, ptr %arrayidx38.us, align 4 + %arrayidx43.us = getelementptr float, ptr %7, i64 1 + %9 = load float, ptr %arrayidx43.us, align 4 + %10 = load float, ptr %7, align 4 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %exponent.i99) - %cmp.i102.us = fcmp ogt float %10, %9 - %..i103.us = select i1 %cmp.i102.us, float %10, float %9 - %cmp5.i104.us = fcmp ogt float %11, %..i103.us - %cond19.i105.us = select i1 %cmp5.i104.us, float %11, float %..i103.us + %cmp.i102.us = fcmp ogt float %9, %8 + %..i103.us = select i1 %cmp.i102.us, float %9, float %8 + %cmp5.i104.us = fcmp ogt float %10, %..i103.us + %cond19.i105.us = select i1 %cmp5.i104.us, float %10, float %..i103.us %cmp20.i106.us = fcmp olt float %cond19.i105.us, 0x3949F623E0000000 br i1 %cmp20.i106.us, label %stbiw__linear_to_rgbe.exit125.us, label %if.else.i107.us @@ -1411,33 +1413,33 @@ if.else.i107.us: ; preds = %for.body33.us %conv25.i110.us = fptrunc double %call.i109.us to float %mul.i111.us = fmul float %conv25.i110.us, 2.560000e+02 %div.i112.us = fdiv float %mul.i111.us, %cond19.i105.us - %mul27.i113.us = fmul float %11, %div.i112.us + %mul27.i113.us = fmul float %10, %div.i112.us %conv28.i114.us = fptoui float %mul27.i113.us to i8 - %mul31.i115.us = fmul float %10, %div.i112.us + %mul31.i115.us = fmul float %9, %div.i112.us %conv32.i116.us = fptoui float %mul31.i115.us to i8 - %mul35.i118.us = fmul float %9, %div.i112.us + %mul35.i118.us = fmul float %8, %div.i112.us %conv36.i119.us = fptoui float %mul35.i118.us to i8 - %12 = load i32, ptr %exponent.i99, align 4 - %13 = trunc i32 %12 to i8 - %conv38.i120.us = xor i8 %13, -128 + %11 = load i32, ptr %exponent.i99, align 4 + %12 = trunc i32 %11 to i8 + %conv38.i120.us = xor i8 %12, -128 br label %stbiw__linear_to_rgbe.exit125.us stbiw__linear_to_rgbe.exit125.us: ; preds = %for.body33.us, %if.else.i107.us %conv32.i116140.us = phi i8 [ %conv32.i116.us, %if.else.i107.us ], [ 0, %for.body33.us ] - %14 = phi i8 [ %conv28.i114.us, %if.else.i107.us ], [ 0, %for.body33.us ] + %13 = phi i8 [ %conv28.i114.us, %if.else.i107.us ], [ 0, %for.body33.us ] %conv38.sink.i121.us = phi i8 [ %conv38.i120.us, %if.else.i107.us ], [ 0, %for.body33.us ] %conv36.sink.i122.us = phi i8 [ %conv36.i119.us, %if.else.i107.us ], [ 0, %for.body33.us ] call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %exponent.i99) %arrayidx65.us = getelementptr inbounds i8, ptr %scratch, i64 %indvars.iv172 - store i8 %14, ptr %arrayidx65.us, align 1 - %gep = getelementptr i8, ptr %invariant.gep, i64 %indvars.iv172 - store i8 %conv32.i116140.us, ptr %gep, align 1 - %gep207 = getelementptr i8, ptr %invariant.gep206, i64 %indvars.iv172 - store i8 %conv36.sink.i122.us, ptr %gep207, align 1 - %gep209 = getelementptr i8, ptr %invariant.gep208, i64 %indvars.iv172 - store i8 %conv38.sink.i121.us, ptr %gep209, align 1 + store i8 %13, ptr %arrayidx65.us, align 1 + %gep211 = getelementptr i8, ptr %invariant.gep210, i64 %indvars.iv172 + store i8 %conv32.i116140.us, ptr %gep211, align 1 + %gep213 = getelementptr i8, ptr %invariant.gep212, i64 %indvars.iv172 + store i8 %conv36.sink.i122.us, ptr %gep213, align 1 + %gep215 = getelementptr i8, ptr %invariant.gep214, i64 %indvars.iv172 + store i8 %conv38.sink.i121.us, ptr %gep215, align 1 %indvars.iv.next173 = add nuw nsw i64 %indvars.iv172, 1 - %exitcond180.not = icmp eq i64 %indvars.iv.next173, %2 + %exitcond180.not = icmp eq i64 %indvars.iv.next173, %1 br i1 %exitcond180.not, label %for.body90.us.preheader, label %for.body33.us, !llvm.loop !15 for.cond.preheader: ; preds = %entry @@ -1448,39 +1450,35 @@ for.body.lr.ph: ; preds = %for.cond.preheader %ncomp.off = add i32 %ncomp, -3 %switch = icmp ult i32 %ncomp.off, 2 %arrayidx33.i = getelementptr inbounds i8, ptr %rgbe, i64 1 - %15 = getelementptr inbounds i8, ptr %rgbe, i64 3 - %16 = getelementptr inbounds i8, ptr %rgbe, i64 2 + %14 = getelementptr inbounds i8, ptr %rgbe, i64 3 + %15 = getelementptr inbounds i8, ptr %rgbe, i64 2 %context = getelementptr inbounds %struct.stbi__write_context, ptr %s, i64 0, i32 1 - %17 = sext i32 %ncomp to i64 + %16 = sext i32 %ncomp to i64 %wide.trip.count202 = zext nneg i32 %width to i64 br label %for.body for.body: ; preds = %for.body.lr.ph, %stbiw__linear_to_rgbe.exit %indvars.iv197 = phi i64 [ 0, %for.body.lr.ph ], [ %indvars.iv.next198, %stbiw__linear_to_rgbe.exit ] + %17 = mul nsw i64 %indvars.iv197, %16 + %18 = getelementptr float, ptr %scanline, i64 %17 br i1 %switch, label %sw.bb, label %sw.default sw.bb: ; preds = %for.body - %18 = trunc i64 %indvars.iv197 to i32 - %19 = mul i32 %18, %ncomp - %20 = zext nneg i32 %19 to i64 - %21 = getelementptr float, ptr %scanline, i64 %20 - %arrayidx9 = getelementptr float, ptr %21, i64 2 - %22 = load float, ptr %arrayidx9, align 4 - %arrayidx14 = getelementptr float, ptr %21, i64 1 - %23 = load float, ptr %arrayidx14, align 4 - %24 = load float, ptr %21, align 4 + %arrayidx9 = getelementptr float, ptr %18, i64 2 + %19 = load float, ptr %arrayidx9, align 4 + %arrayidx14 = getelementptr float, ptr %18, i64 1 + %20 = load float, ptr %arrayidx14, align 4 + %21 = load float, ptr %18, align 4 br label %sw.epilog sw.default: ; preds = %for.body - %25 = mul nsw i64 %indvars.iv197, %17 - %arrayidx24 = getelementptr inbounds float, ptr %scanline, i64 %25 - %26 = load float, ptr %arrayidx24, align 4 + %22 = load float, ptr %18, align 4 br label %sw.epilog sw.epilog: ; preds = %sw.default, %sw.bb - %linear.sroa.12.0 = phi float [ %22, %sw.bb ], [ %26, %sw.default ] - %linear.sroa.4.0 = phi float [ %23, %sw.bb ], [ %26, %sw.default ] - %storemerge96 = phi float [ %24, %sw.bb ], [ %26, %sw.default ] + %linear.sroa.12.0 = phi float [ %19, %sw.bb ], [ %22, %sw.default ] + %linear.sroa.4.0 = phi float [ %20, %sw.bb ], [ %22, %sw.default ] + %storemerge96 = phi float [ %21, %sw.bb ], [ %22, %sw.default ] call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %exponent.i) %cmp.i = fcmp ogt float %linear.sroa.4.0, %linear.sroa.12.0 %..i = select i1 %cmp.i, float %linear.sroa.4.0, float %linear.sroa.12.0 @@ -1506,9 +1504,9 @@ if.else.i: ; preds = %sw.epilog store i8 %conv32.i, ptr %arrayidx33.i, align 1 %mul35.i = fmul float %linear.sroa.12.0, %div.i %conv36.i = fptoui float %mul35.i to i8 - %27 = load i32, ptr %exponent.i, align 4 - %28 = trunc i32 %27 to i8 - %conv38.i = xor i8 %28, -128 + %23 = load i32, ptr %exponent.i, align 4 + %24 = trunc i32 %23 to i8 + %conv38.i = xor i8 %24, -128 br label %stbiw__linear_to_rgbe.exit stbiw__linear_to_rgbe.exit: ; preds = %if.then.i, %if.else.i @@ -1516,36 +1514,36 @@ stbiw__linear_to_rgbe.exit: ; preds = %if.then.i, %if.else %conv38.sink.i = phi i8 [ 0, %if.then.i ], [ %conv38.i, %if.else.i ] %conv36.sink.i = phi i8 [ 0, %if.then.i ], [ %conv36.i, %if.else.i ] store i8 %conv28.i.sink, ptr %rgbe, align 1 - store i8 %conv38.sink.i, ptr %15, align 1 - store i8 %conv36.sink.i, ptr %16, align 1 + store i8 %conv38.sink.i, ptr %14, align 1 + store i8 %conv36.sink.i, ptr %15, align 1 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %exponent.i) - %29 = load ptr, ptr %s, align 8 - %30 = load ptr, ptr %context, align 8 - call void %29(ptr noundef %30, ptr noundef nonnull %rgbe, i32 noundef 4) #27 + %25 = load ptr, ptr %s, align 8 + %26 = load ptr, ptr %context, align 8 + call void %25(ptr noundef %26, ptr noundef nonnull %rgbe, i32 noundef 4) #27 %indvars.iv.next198 = add nuw nsw i64 %indvars.iv197, 1 %exitcond203.not = icmp eq i64 %indvars.iv.next198, %wide.trip.count202 br i1 %exitcond203.not, label %if.end175, label %for.body, !llvm.loop !16 for.body33: ; preds = %for.body33.preheader, %stbiw__linear_to_rgbe.exit125 %indvars.iv = phi i64 [ 0, %for.body33.preheader ], [ %indvars.iv.next, %stbiw__linear_to_rgbe.exit125 ] - %31 = mul nsw i64 %indvars.iv, %1 - %arrayidx54 = getelementptr inbounds float, ptr %scanline, i64 %31 - %32 = load float, ptr %arrayidx54, align 4 + %27 = mul nsw i64 %indvars.iv, %4 + %arrayidx54 = getelementptr inbounds float, ptr %scanline, i64 %27 + %28 = load float, ptr %arrayidx54, align 4 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %exponent.i99) - %cmp20.i106 = fcmp olt float %32, 0x3949F623E0000000 + %cmp20.i106 = fcmp olt float %28, 0x3949F623E0000000 br i1 %cmp20.i106, label %stbiw__linear_to_rgbe.exit125, label %if.else.i107 if.else.i107: ; preds = %for.body33 - %conv.i108 = fpext float %32 to double + %conv.i108 = fpext float %28 to double %call.i109 = call double @frexp(double noundef %conv.i108, ptr noundef nonnull %exponent.i99) #27 %conv25.i110 = fptrunc double %call.i109 to float %mul.i111 = fmul float %conv25.i110, 2.560000e+02 - %div.i112 = fdiv float %mul.i111, %32 - %mul27.i113 = fmul float %32, %div.i112 + %div.i112 = fdiv float %mul.i111, %28 + %mul27.i113 = fmul float %28, %div.i112 %conv28.i114 = fptoui float %mul27.i113 to i8 - %33 = load i32, ptr %exponent.i99, align 4 - %34 = trunc i32 %33 to i8 - %conv38.i120 = xor i8 %34, -128 + %29 = load i32, ptr %exponent.i99, align 4 + %30 = trunc i32 %29 to i8 + %conv38.i120 = xor i8 %30, -128 br label %stbiw__linear_to_rgbe.exit125 stbiw__linear_to_rgbe.exit125: ; preds = %for.body33, %if.else.i107 @@ -1554,55 +1552,46 @@ stbiw__linear_to_rgbe.exit125: ; preds = %for.body33, %if.els call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %exponent.i99) %arrayidx65 = getelementptr inbounds i8, ptr %scratch, i64 %indvars.iv store i8 %conv32.i116140, ptr %arrayidx65, align 1 - %35 = trunc i64 %indvars.iv to i32 - %36 = add i32 %35, %width - %idxprom69 = zext nneg i32 %36 to i64 - %arrayidx70 = getelementptr inbounds i8, ptr %scratch, i64 %idxprom69 - store i8 %conv32.i116140, ptr %arrayidx70, align 1 - %37 = trunc i64 %indvars.iv to i32 - %38 = add i32 %mul72, %37 - %idxprom74 = zext nneg i32 %38 to i64 - %arrayidx75 = getelementptr inbounds i8, ptr %scratch, i64 %idxprom74 - store i8 %conv32.i116140, ptr %arrayidx75, align 1 - %39 = trunc i64 %indvars.iv to i32 - %40 = add i32 %mul77, %39 - %idxprom79 = zext nneg i32 %40 to i64 - %arrayidx80 = getelementptr inbounds i8, ptr %scratch, i64 %idxprom79 - store i8 %conv38.sink.i121, ptr %arrayidx80, align 1 + %gep = getelementptr i8, ptr %invariant.gep, i64 %indvars.iv + store i8 %conv32.i116140, ptr %gep, align 1 + %gep207 = getelementptr i8, ptr %invariant.gep206, i64 %indvars.iv + store i8 %conv32.i116140, ptr %gep207, align 1 + %gep209 = getelementptr i8, ptr %invariant.gep208, i64 %indvars.iv + store i8 %conv38.sink.i121, ptr %gep209, align 1 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count br i1 %exitcond.not, label %for.body90.us.preheader, label %for.body33, !llvm.loop !15 for.body90.us.preheader: ; preds = %stbiw__linear_to_rgbe.exit125, %stbiw__linear_to_rgbe.exit125.us - %41 = load ptr, ptr %s, align 8 + %31 = load ptr, ptr %s, align 8 %context85 = getelementptr inbounds %struct.stbi__write_context, ptr %s, i64 0, i32 1 - %42 = load ptr, ptr %context85, align 8 - call void %41(ptr noundef %42, ptr noundef nonnull %scanlineheader, i32 noundef 4) #27 - %43 = zext nneg i32 %width to i64 - %44 = zext nneg i32 %width to i64 - %invariant.op = add nsw i64 %43, -3 + %32 = load ptr, ptr %context85, align 8 + call void %31(ptr noundef %32, ptr noundef nonnull %scanlineheader, i32 noundef 4) #27 + %33 = zext nneg i32 %width to i64 + %34 = zext nneg i32 %width to i64 + %invariant.op = add nsw i64 %33, -3 br label %for.body90.us for.body90.us: ; preds = %for.body90.us.preheader, %while.cond.for.inc172_crit_edge.us %indvars.iv192 = phi i64 [ 0, %for.body90.us.preheader ], [ %indvars.iv.next193, %while.cond.for.inc172_crit_edge.us ] - %45 = mul nuw nsw i64 %indvars.iv192, %44 - %arrayidx93.us = getelementptr inbounds i8, ptr %scratch, i64 %45 + %35 = mul nuw nsw i64 %indvars.iv192, %34 + %arrayidx93.us = getelementptr inbounds i8, ptr %scratch, i64 %35 br label %while.cond96.preheader.us while.body100.us: ; preds = %while.body100.us.preheader, %if.end.us - %46 = phi i8 [ %.pre, %while.body100.us.preheader ], [ %47, %if.end.us ] - %indvars.iv183 = phi i64 [ %65, %while.body100.us.preheader ], [ %indvars.iv.next184, %if.end.us ] - %indvars.iv181 = phi i64 [ %66, %while.body100.us.preheader ], [ %indvars.iv.next182, %if.end.us ] + %36 = phi i8 [ %.pre, %while.body100.us.preheader ], [ %37, %if.end.us ] + %indvars.iv183 = phi i64 [ %55, %while.body100.us.preheader ], [ %indvars.iv.next184, %if.end.us ] + %indvars.iv181 = phi i64 [ %56, %while.body100.us.preheader ], [ %indvars.iv.next182, %if.end.us ] %indvars.iv.next184 = add nsw i64 %indvars.iv183, 1 %arrayidx106.us = getelementptr inbounds i8, ptr %arrayidx93.us, i64 %indvars.iv.next184 - %47 = load i8, ptr %arrayidx106.us, align 1 - %cmp108.us = icmp eq i8 %46, %47 + %37 = load i8, ptr %arrayidx106.us, align 1 + %cmp108.us = icmp eq i8 %36, %37 br i1 %cmp108.us, label %land.lhs.true.us, label %if.end.us land.lhs.true.us: ; preds = %while.body100.us %arrayidx115.us = getelementptr inbounds i8, ptr %arrayidx93.us, i64 %indvars.iv181 - %48 = load i8, ptr %arrayidx115.us, align 1 - %cmp117.us = icmp eq i8 %46, %48 + %38 = load i8, ptr %arrayidx115.us, align 1 + %cmp117.us = icmp eq i8 %36, %38 br i1 %cmp117.us, label %while.end.us.loopexit.split.loop.exit, label %if.end.us if.end.us: ; preds = %land.lhs.true.us, %while.body100.us @@ -1611,11 +1600,11 @@ if.end.us: ; preds = %land.lhs.true.us, % br i1 %cmp98.us, label %while.body100.us, label %while.end.us, !llvm.loop !17 while.end.us.loopexit.split.loop.exit: ; preds = %land.lhs.true.us - %49 = trunc i64 %indvars.iv183 to i32 + %39 = trunc i64 %indvars.iv183 to i32 br label %while.end.us while.end.us: ; preds = %if.end.us, %while.end.us.loopexit.split.loop.exit, %while.cond96.preheader.us - %spec.select.us = phi i32 [ %width, %while.cond96.preheader.us ], [ %49, %while.end.us.loopexit.split.loop.exit ], [ %width, %if.end.us ] + %spec.select.us = phi i32 [ %width, %while.cond96.preheader.us ], [ %39, %while.end.us.loopexit.split.loop.exit ], [ %width, %if.end.us ] %cmp127150.us = icmp slt i32 %x.2158.us, %spec.select.us br i1 %cmp127150.us, label %while.body129.us, label %while.end137.us @@ -1626,18 +1615,18 @@ while.end137.us: ; preds = %while.body129.us, % br i1 %cmp139.us, label %while.cond142.preheader.us, label %if.end170.us land.rhs.us: ; preds = %while.cond142.preheader.us, %while.body153.us - %indvars.iv189 = phi i64 [ %63, %while.cond142.preheader.us ], [ %indvars.iv.next190, %while.body153.us ] + %indvars.iv189 = phi i64 [ %53, %while.cond142.preheader.us ], [ %indvars.iv.next190, %while.body153.us ] %arrayidx146.us = getelementptr inbounds i8, ptr %arrayidx93.us, i64 %indvars.iv189 - %50 = load i8, ptr %arrayidx146.us, align 1 - %cmp151.us = icmp eq i8 %50, %62 - br i1 %cmp151.us, label %while.body153.us, label %while.end155.us.split.loop.exit212 + %40 = load i8, ptr %arrayidx146.us, align 1 + %cmp151.us = icmp eq i8 %40, %52 + br i1 %cmp151.us, label %while.body153.us, label %while.end155.us.split.loop.exit218 -while.end155.us.split.loop.exit212: ; preds = %land.rhs.us - %51 = trunc i64 %indvars.iv189 to i32 +while.end155.us.split.loop.exit218: ; preds = %land.rhs.us + %41 = trunc i64 %indvars.iv189 to i32 br label %while.end155.us -while.end155.us: ; preds = %while.body153.us, %while.end155.us.split.loop.exit212 - %r.2.lcssa.us = phi i32 [ %51, %while.end155.us.split.loop.exit212 ], [ %smax, %while.body153.us ] +while.end155.us: ; preds = %while.body153.us, %while.end155.us.split.loop.exit218 + %r.2.lcssa.us = phi i32 [ %41, %while.end155.us.split.loop.exit218 ], [ %smax, %while.body153.us ] %cmp157154.us = icmp slt i32 %x.3.lcssa.us, %r.2.lcssa.us br i1 %cmp157154.us, label %while.body159.us, label %if.end170.us @@ -1652,19 +1641,19 @@ while.body159.us: ; preds = %while.end155.us, %w %spec.store.select1.us = call i32 @llvm.smin.i32(i32 %sub161.us, i32 127) %idxprom166.us = sext i32 %x.4155.us to i64 %arrayidx167.us = getelementptr inbounds i8, ptr %arrayidx93.us, i64 %idxprom166.us - %52 = load i8, ptr %arrayidx167.us, align 1 + %42 = load i8, ptr %arrayidx167.us, align 1 call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %databyte.addr.i) call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %lengthbyte.i127) - store i8 %52, ptr %databyte.addr.i, align 1 - %53 = trunc i32 %spec.store.select1.us to i8 - %conv.i128.us = xor i8 %53, -128 + store i8 %42, ptr %databyte.addr.i, align 1 + %43 = trunc i32 %spec.store.select1.us to i8 + %conv.i128.us = xor i8 %43, -128 store i8 %conv.i128.us, ptr %lengthbyte.i127, align 1 - %54 = load ptr, ptr %s, align 8 - %55 = load ptr, ptr %context85, align 8 - call void %54(ptr noundef %55, ptr noundef nonnull %lengthbyte.i127, i32 noundef 1) #27 - %56 = load ptr, ptr %s, align 8 - %57 = load ptr, ptr %context85, align 8 - call void %56(ptr noundef %57, ptr noundef nonnull %databyte.addr.i, i32 noundef 1) #27 + %44 = load ptr, ptr %s, align 8 + %45 = load ptr, ptr %context85, align 8 + call void %44(ptr noundef %45, ptr noundef nonnull %lengthbyte.i127, i32 noundef 1) #27 + %46 = load ptr, ptr %s, align 8 + %47 = load ptr, ptr %context85, align 8 + call void %46(ptr noundef %47, ptr noundef nonnull %databyte.addr.i, i32 noundef 1) #27 call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %databyte.addr.i) call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %lengthbyte.i127) %add168.us = add nsw i32 %spec.store.select1.us, %x.4155.us @@ -1673,7 +1662,7 @@ while.body159.us: ; preds = %while.end155.us, %w while.body153.us: ; preds = %land.rhs.us %indvars.iv.next190 = add nsw i64 %indvars.iv189, 1 - %cmp143.us = icmp slt i64 %indvars.iv.next190, %43 + %cmp143.us = icmp slt i64 %indvars.iv.next190, %33 br i1 %cmp143.us, label %land.rhs.us, label %while.end155.us, !llvm.loop !20 while.body129.us: ; preds = %while.end.us, %while.body129.us @@ -1685,12 +1674,12 @@ while.body129.us: ; preds = %while.end.us, %whil call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %lengthbyte.i) %conv.i126.us = trunc i32 %spec.store.select.us to i8 store i8 %conv.i126.us, ptr %lengthbyte.i, align 1 - %58 = load ptr, ptr %s, align 8 - %59 = load ptr, ptr %context85, align 8 - call void %58(ptr noundef %59, ptr noundef nonnull %lengthbyte.i, i32 noundef 1) #27 - %60 = load ptr, ptr %s, align 8 - %61 = load ptr, ptr %context85, align 8 - call void %60(ptr noundef %61, ptr noundef %arrayidx135.us, i32 noundef %spec.store.select.us) #27 + %48 = load ptr, ptr %s, align 8 + %49 = load ptr, ptr %context85, align 8 + call void %48(ptr noundef %49, ptr noundef nonnull %lengthbyte.i, i32 noundef 1) #27 + %50 = load ptr, ptr %s, align 8 + %51 = load ptr, ptr %context85, align 8 + call void %50(ptr noundef %51, ptr noundef %arrayidx135.us, i32 noundef %spec.store.select.us) #27 call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %lengthbyte.i) %add136.us = add nsw i32 %spec.store.select.us, %x.3151.us %cmp127.us = icmp slt i32 %add136.us, %spec.select.us @@ -1699,10 +1688,10 @@ while.body129.us: ; preds = %while.end.us, %whil while.cond142.preheader.us: ; preds = %while.end137.us %idxprom148.us = sext i32 %x.3.lcssa.us to i64 %arrayidx149.us = getelementptr inbounds i8, ptr %arrayidx93.us, i64 %idxprom148.us - %62 = load i8, ptr %arrayidx149.us, align 1 - %63 = sext i32 %spec.select.us to i64 - %64 = add i32 %spec.select.us, 1 - %smax = call i32 @llvm.smax.i32(i32 %width, i32 %64) + %52 = load i8, ptr %arrayidx149.us, align 1 + %53 = sext i32 %spec.select.us to i64 + %54 = add i32 %spec.select.us, 1 + %smax = call i32 @llvm.smax.i32(i32 %width, i32 %54) br label %land.rhs.us while.cond96.preheader.us: ; preds = %for.body90.us, %if.end170.us @@ -1712,9 +1701,9 @@ while.cond96.preheader.us: ; preds = %for.body90.us, %if. br i1 %cmp98145.us, label %while.body100.us.preheader, label %while.end.us while.body100.us.preheader: ; preds = %while.cond96.preheader.us - %65 = sext i32 %x.2158.us to i64 - %66 = add nsw i64 %65, 2 - %arrayidx102.us.phi.trans.insert = getelementptr inbounds i8, ptr %arrayidx93.us, i64 %65 + %55 = sext i32 %x.2158.us to i64 + %56 = add nsw i64 %55, 2 + %arrayidx102.us.phi.trans.insert = getelementptr inbounds i8, ptr %arrayidx93.us, i64 %55 %.pre = load i8, ptr %arrayidx102.us.phi.trans.insert, align 1 br label %while.body100.us @@ -4224,33 +4213,31 @@ for.body.us: ; preds = %for.body.us, %for.b for.body.lr.ph.split: ; preds = %for.body.lr.ph %cmp25184 = icmp sgt i32 %mul, 0 + %wide.trip.count220 = zext nneg i32 %y to i64 br i1 %cmp25184, label %for.body.us194.preheader, label %for.body.preheader for.body.preheader: ; preds = %for.body.lr.ph.split %4 = sext i32 %add to i64 - %wide.trip.count = zext nneg i32 %y to i64 br label %for.body for.body.us194.preheader: ; preds = %for.body.lr.ph.split - %wide.trip.count220 = zext nneg i32 %y to i64 + %5 = zext nneg i32 %add to i64 %wide.trip.count213 = zext nneg i32 %mul to i64 br label %for.body.us194 for.body.us194: ; preds = %for.body.us194.preheader, %if.end41.us196 %indvars.iv216 = phi i64 [ 0, %for.body.us194.preheader ], [ %indvars.iv.next217, %if.end41.us196 ] - %5 = trunc i64 %indvars.iv216 to i32 + %6 = trunc i64 %indvars.iv216 to i32 br label %for.body22.us.us if.then39.us: ; preds = %for.end36.split.us.us - tail call void @stbiw__encode_png_line(ptr noundef %pixels, i32 noundef %spec.select, i32 noundef %x, i32 noundef %y, i32 noundef %5, i32 noundef %n, i32 noundef %spec.select76.us.us, ptr noundef nonnull %call10) + tail call void @stbiw__encode_png_line(ptr noundef %pixels, i32 noundef %spec.select, i32 noundef %x, i32 noundef %y, i32 noundef %6, i32 noundef %n, i32 noundef %spec.select76.us.us, ptr noundef nonnull %call10) br label %if.end41.us196 if.end41.us196: ; preds = %for.end36.split.us.us, %if.then39.us %conv42.us198 = trunc i32 %spec.select76.us.us to i8 - %6 = trunc i64 %indvars.iv216 to i32 - %7 = mul i32 %add, %6 - %idxprom46.us200 = zext nneg i32 %7 to i64 - %arrayidx47.us201 = getelementptr inbounds i8, ptr %call, i64 %idxprom46.us200 + %7 = mul nsw i64 %indvars.iv216, %5 + %arrayidx47.us201 = getelementptr inbounds i8, ptr %call, i64 %7 store i8 %conv42.us198, ptr %arrayidx47.us201, align 1 %add.ptr51.us202 = getelementptr inbounds i8, ptr %arrayidx47.us201, i64 1 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %add.ptr51.us202, ptr nonnull align 1 %call10, i64 %conv9, i1 false) @@ -4262,7 +4249,7 @@ for.body22.us.us: ; preds = %for.cond23.for.end_ %best_filter_val.0189.us.us = phi i32 [ 2147483647, %for.body.us194 ], [ %spec.select77.us.us, %for.cond23.for.end_crit_edge.us.us ] %best_filter.0188.us.us = phi i32 [ 0, %for.body.us194 ], [ %spec.select76.us.us, %for.cond23.for.end_crit_edge.us.us ] %filter_type.0187.us.us = phi i32 [ 0, %for.body.us194 ], [ %inc35.us.us, %for.cond23.for.end_crit_edge.us.us ] - tail call void @stbiw__encode_png_line(ptr noundef %pixels, i32 noundef %spec.select, i32 noundef %x, i32 noundef %y, i32 noundef %5, i32 noundef %n, i32 noundef %filter_type.0187.us.us, ptr noundef nonnull %call10) + tail call void @stbiw__encode_png_line(ptr noundef %pixels, i32 noundef %spec.select, i32 noundef %x, i32 noundef %y, i32 noundef %6, i32 noundef %n, i32 noundef %filter_type.0187.us.us, ptr noundef nonnull %call10) br label %for.body27.us.us for.body27.us.us: ; preds = %for.body27.us.us, %for.body22.us.us @@ -4313,7 +4300,7 @@ if.end41: ; preds = %for.body22 %add.ptr51 = getelementptr inbounds i8, ptr %arrayidx47, i64 1 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %add.ptr51, ptr nonnull align 1 %call10, i64 %conv9, i1 false) %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %exitcond209.not = icmp eq i64 %indvars.iv.next, %wide.trip.count + %exitcond209.not = icmp eq i64 %indvars.iv.next, %wide.trip.count220 br i1 %exitcond209.not, label %for.end56, label %for.body, !llvm.loop !46 for.end56: ; preds = %if.end41, %if.end41.us196, %for.body.us, %for.cond.preheader diff --git a/bench/stb/optimized/stb_tilemap_editor.c.ll b/bench/stb/optimized/stb_tilemap_editor.c.ll index 95ee595ca9b..b75021d30b2 100644 --- a/bench/stb/optimized/stb_tilemap_editor.c.ll +++ b/bench/stb/optimized/stb_tilemap_editor.c.ll @@ -7009,7 +7009,6 @@ for.cond5.preheader.us: ; preds = %for.cond5.preheader %20 = mul nuw nsw i64 %19, 3200 %21 = add nsw i64 %indvars.iv143, %16 %cmp8.us = icmp sgt i64 %21, -1 - %idxprom41.us = and i64 %21, 4294967295 %conv2.i.us = trunc i64 %21 to i16 %scevgep = getelementptr i8, ptr %tm, i64 %20 %sext = shl i64 %p.0128.us, 32 @@ -7171,7 +7170,7 @@ for.body36.us: ; preds = %for.body36.lr.ph.us %indvars.iv = phi i64 [ 0, %for.body36.lr.ph.us ], [ %indvars.iv.next, %for.inc76.us ] %arrayidx38.us = getelementptr inbounds [8 x i16], ptr %tilestack, i64 0, i64 %indvars.iv %55 = load i16, ptr %arrayidx38.us, align 2 - %arrayidx47.us = getelementptr inbounds [200 x [200 x [8 x i16]]], ptr %tm, i64 0, i64 %idxprom41.us, i64 %idxprom44.us, i64 %indvars.iv + %arrayidx47.us = getelementptr inbounds [200 x [200 x [8 x i16]]], ptr %tm, i64 0, i64 %21, i64 %29, i64 %indvars.iv %56 = load i16, ptr %arrayidx47.us, align 2 %cmp49.not.us = icmp eq i16 %55, %56 br i1 %cmp49.not.us, label %for.inc76.us, label %if.then51.us @@ -7275,7 +7274,6 @@ for.body36.lr.ph.us: ; preds = %for.cond18.preheade call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 16 %tilestack, ptr align 2 %scevgep131, i64 %75, i1 false) %arrayidx31.us151 = getelementptr inbounds %struct.stbte__ui_t, ptr @stbte__ui, i64 0, i32 61, i64 %indvars.iv138 call void @stbte__paste_stack(ptr noundef nonnull %tm, ptr noundef nonnull %tilestack, ptr noundef nonnull %tilestack, ptr noundef nonnull %arrayidx31.us151, i32 noundef 0) - %idxprom44.us = and i64 %29, 4294967295 %conv1.i.us = trunc i64 %29 to i16 br label %for.body36.us diff --git a/bench/zstd/optimized/divsufsort.c.ll b/bench/zstd/optimized/divsufsort.c.ll index 2d459825b35..8b34453277a 100644 --- a/bench/zstd/optimized/divsufsort.c.ll +++ b/bench/zstd/optimized/divsufsort.c.ll @@ -1354,8 +1354,8 @@ for.cond.outer.i.i: ; preds = %for.cond.outer.i.i. %limit.0.ph.i.i = phi i32 [ %limit.0.ph.i.i.ph, %for.cond.outer.i.i.preheader ], [ %limit.0.ph.i.i.be, %for.cond.outer.i.i.backedge ] %ssize.0.ph.i.i = phi i32 [ 0, %for.cond.outer.i.i.preheader ], [ %ssize.0.ph.i.i.be, %for.cond.outer.i.i.backedge ] %trlink.0.ph.i.i = phi i32 [ -1, %for.cond.outer.i.i.preheader ], [ %trlink.0.ph.i.i.be, %for.cond.outer.i.i.backedge ] - %cmp808.i.i = icmp slt i32 %limit.0.ph.i.i, 0 - br i1 %cmp808.i.i, label %if.then.i.i, label %if.end511.lr.ph.i.i + %cmp807.i.i = icmp slt i32 %limit.0.ph.i.i, 0 + br i1 %cmp807.i.i, label %if.then.i.i, label %if.end511.lr.ph.i.i if.end511.lr.ph.i.i: ; preds = %for.cond.outer.i.i %sub.ptr.lhs.cast512.i.i = ptrtoint ptr %last.addr.0.ph.i.i to i64 @@ -1373,7 +1373,7 @@ if.end511.lr.ph.i.i: ; preds = %for.cond.outer.i.i %idxprom3.i669.i.i = sext i32 %dec.i.i.i to i64 %arrayidx4.i670.i.i = getelementptr inbounds i32, ptr %first.addr.0.ph.i.i, i64 %idxprom3.i669.i.i %add.ptr529.i.i = getelementptr inbounds i32, ptr %last.addr.0.ph.i.i, i64 -1 - %cmp531805.i.i = icmp ult ptr %first.addr.0.ph.i.i, %add.ptr529.i.i + %cmp531804.i.i = icmp ult ptr %first.addr.0.ph.i.i, %add.ptr529.i.i br i1 %cmp516.i.i, label %if.end511.lr.ph.split.us.i.i, label %if.end511.i.i if.end511.lr.ph.split.us.i.i: ; preds = %if.end511.lr.ph.i.i @@ -1745,16 +1745,16 @@ if.then17.i.i: ; preds = %tr_partition.exit21 %sub.ptr.div21.i.i = lshr exact i64 %sub.ptr.sub20.i.i, 2 %133 = trunc i64 %sub.ptr.div21.i.i to i32 %conv23.i.i = add i32 %133, -1 - %cmp25824.i.i = icmp ult ptr %first.addr.0.ph.i.i, %first.addr.0.i104.i - br i1 %cmp25824.i.i, label %for.body.i.i275, label %if.end.i.i272 + %cmp25823.i.i = icmp ult ptr %first.addr.0.ph.i.i, %first.addr.0.i104.i + br i1 %cmp25823.i.i, label %for.body.i.i275, label %if.end.i.i272 for.body.i.i275: ; preds = %if.then17.i.i, %for.body.i.i275 - %c.0825.i.i = phi ptr [ %incdec.ptr.i.i276, %for.body.i.i275 ], [ %first.addr.0.ph.i.i, %if.then17.i.i ] - %134 = load i32, ptr %c.0825.i.i, align 4 + %c.0824.i.i = phi ptr [ %incdec.ptr.i.i276, %for.body.i.i275 ], [ %first.addr.0.ph.i.i, %if.then17.i.i ] + %134 = load i32, ptr %c.0824.i.i, align 4 %idxprom.i36.i = sext i32 %134 to i64 %arrayidx.i37.i = getelementptr inbounds i32, ptr %add.ptr101, i64 %idxprom.i36.i store i32 %conv23.i.i, ptr %arrayidx.i37.i, align 4 - %incdec.ptr.i.i276 = getelementptr inbounds i32, ptr %c.0825.i.i, i64 1 + %incdec.ptr.i.i276 = getelementptr inbounds i32, ptr %c.0824.i.i, i64 1 %cmp25.i.i = icmp ult ptr %incdec.ptr.i.i276, %first.addr.0.i104.i br i1 %cmp25.i.i, label %for.body.i.i275, label %if.end.i.i272, !llvm.loop !39 @@ -1768,16 +1768,16 @@ if.then29.i.i: ; preds = %if.end.i.i272 %sub.ptr.div33.i.i = lshr exact i64 %sub.ptr.sub32.i.i, 2 %135 = trunc i64 %sub.ptr.div33.i.i to i32 %conv35.i.i = add i32 %135, -1 - %cmp37826.i.i = icmp ult ptr %first.addr.0.i104.i, %last.addr.0.i103.i - br i1 %cmp37826.i.i, label %for.body39.i.i, label %if.end45.i.i + %cmp37825.i.i = icmp ult ptr %first.addr.0.i104.i, %last.addr.0.i103.i + br i1 %cmp37825.i.i, label %for.body39.i.i, label %if.end45.i.i for.body39.i.i: ; preds = %if.then29.i.i, %for.body39.i.i - %c.1827.i.i = phi ptr [ %incdec.ptr43.i.i, %for.body39.i.i ], [ %first.addr.0.i104.i, %if.then29.i.i ] - %136 = load i32, ptr %c.1827.i.i, align 4 + %c.1826.i.i = phi ptr [ %incdec.ptr43.i.i, %for.body39.i.i ], [ %first.addr.0.i104.i, %if.then29.i.i ] + %136 = load i32, ptr %c.1826.i.i, align 4 %idxprom40.i.i = sext i32 %136 to i64 %arrayidx41.i.i = getelementptr inbounds i32, ptr %add.ptr101, i64 %idxprom40.i.i store i32 %conv35.i.i, ptr %arrayidx41.i.i, align 4 - %incdec.ptr43.i.i = getelementptr inbounds i32, ptr %c.1827.i.i, i64 1 + %incdec.ptr43.i.i = getelementptr inbounds i32, ptr %c.1826.i.i, i64 1 %cmp37.i.i = icmp ult ptr %incdec.ptr43.i.i, %last.addr.0.i103.i br i1 %cmp37.i.i, label %for.body39.i.i, label %if.end45.i.i, !llvm.loop !40 @@ -2429,15 +2429,15 @@ if.else310.i.i: ; preds = %for.inc551.i.i, %if do.body314.i.i: ; preds = %if.else310.i.i, %land.rhs.i.i258 %194 = phi i32 [ %195, %land.rhs.i.i258 ], [ %193, %if.else310.i.i ] - %incdec.ptr322828.i.i = phi ptr [ %incdec.ptr322.i.i, %land.rhs.i.i258 ], [ %first.addr.0.ph.i.i, %if.else310.i.i ] - %sub.ptr.lhs.cast315.i.i = ptrtoint ptr %incdec.ptr322828.i.i to i64 + %incdec.ptr322827.i.i = phi ptr [ %incdec.ptr322.i.i, %land.rhs.i.i258 ], [ %first.addr.0.ph.i.i, %if.else310.i.i ] + %sub.ptr.lhs.cast315.i.i = ptrtoint ptr %incdec.ptr322827.i.i to i64 %sub.ptr.sub317.i.i = sub i64 %sub.ptr.lhs.cast315.i.i, %sub.ptr.rhs.cast587.i.i %sub.ptr.div318.i.i = lshr exact i64 %sub.ptr.sub317.i.i, 2 %conv319.i.i = trunc i64 %sub.ptr.div318.i.i to i32 %idxprom320.i.i = zext nneg i32 %194 to i64 %arrayidx321.i.i = getelementptr inbounds i32, ptr %add.ptr101, i64 %idxprom320.i.i store i32 %conv319.i.i, ptr %arrayidx321.i.i, align 4 - %incdec.ptr322.i.i = getelementptr inbounds i32, ptr %incdec.ptr322828.i.i, i64 1 + %incdec.ptr322.i.i = getelementptr inbounds i32, ptr %incdec.ptr322827.i.i, i64 1 %cmp323.i.i = icmp ult ptr %incdec.ptr322.i.i, %last.addr.0.ph.i.i br i1 %cmp323.i.i, label %land.rhs.i.i258, label %if.end328.i.i @@ -2452,15 +2452,15 @@ if.end328.i.i: ; preds = %land.rhs.i.i258, %d br i1 %cmp329.i.i, label %if.then331.i.i, label %do.body485.i.i if.then331.i.i: ; preds = %if.end328.i.i - %.pre851.i.i = load i32, ptr %first.addr.1.i.i, align 4 + %.pre850.i.i = load i32, ptr %first.addr.1.i.i, align 4 br label %do.body332.i.i do.body332.i.i: ; preds = %do.body332.i.i, %if.then331.i.i - %196 = phi i32 [ %197, %do.body332.i.i ], [ %.pre851.i.i, %if.then331.i.i ] - %incdec.ptr334832.i.i = phi ptr [ %incdec.ptr334.i.i, %do.body332.i.i ], [ %first.addr.1.i.i, %if.then331.i.i ] + %196 = phi i32 [ %197, %do.body332.i.i ], [ %.pre850.i.i, %if.then331.i.i ] + %incdec.ptr334831.i.i = phi ptr [ %incdec.ptr334.i.i, %do.body332.i.i ], [ %first.addr.1.i.i, %if.then331.i.i ] %not.i.i = xor i32 %196, -1 - store i32 %not.i.i, ptr %incdec.ptr334832.i.i, align 4 - %incdec.ptr334.i.i = getelementptr inbounds i32, ptr %incdec.ptr334832.i.i, i64 1 + store i32 %not.i.i, ptr %incdec.ptr334831.i.i, align 4 + %incdec.ptr334.i.i = getelementptr inbounds i32, ptr %incdec.ptr334831.i.i, i64 1 %197 = load i32, ptr %incdec.ptr334.i.i, align 4 %cmp335.i.i = icmp slt i32 %197, 0 br i1 %cmp335.i.i, label %do.body332.i.i, label %do.end337.i.i, !llvm.loop !47 @@ -2524,7 +2524,7 @@ cond.false19.i650.i.i: ; preds = %cond.false10.i643.i cond.end.i.i: ; preds = %cond.false19.i650.i.i, %cond.true13.i645.i.i, %cond.false.i638.i.i, %cond.true3.i632.i.i, %do.end337.i.i %cond.i.i256 = phi i32 [ -1, %do.end337.i.i ], [ %add.i636.i.i, %cond.true3.i632.i.i ], [ %add9.i642.i.i, %cond.false.i638.i.i ], [ %add18.i649.i.i, %cond.true13.i645.i.i ], [ %204, %cond.false19.i650.i.i ] - %incdec.ptr350.i.i = getelementptr inbounds i32, ptr %incdec.ptr334832.i.i, i64 2 + %incdec.ptr350.i.i = getelementptr inbounds i32, ptr %incdec.ptr334831.i.i, i64 2 %cmp351.i.i = icmp ult ptr %incdec.ptr350.i.i, %last.addr.0.ph.i.i %sub.ptr.lhs.cast354.i.i = ptrtoint ptr %incdec.ptr350.i.i to i64 br i1 %cmp351.i.i, label %if.then353.i.i, label %if.end369.i.i @@ -2534,16 +2534,16 @@ if.then353.i.i: ; preds = %cond.end.i.i %sub.ptr.div357.i.i = lshr exact i64 %sub.ptr.sub356.i.i, 2 %205 = trunc i64 %sub.ptr.div357.i.i to i32 %conv359.i.i = add i32 %205, -1 - %cmp361834.i.i = icmp ult ptr %first.addr.1.i.i, %incdec.ptr350.i.i - br i1 %cmp361834.i.i, label %for.body363.i.i, label %if.end369.i.i + %cmp361833.i.i = icmp ult ptr %first.addr.1.i.i, %incdec.ptr350.i.i + br i1 %cmp361833.i.i, label %for.body363.i.i, label %if.end369.i.i for.body363.i.i: ; preds = %if.then353.i.i, %for.body363.i.i - %incdec.ptr367833835.i.i = phi ptr [ %incdec.ptr367.i.i, %for.body363.i.i ], [ %first.addr.1.i.i, %if.then353.i.i ] - %206 = load i32, ptr %incdec.ptr367833835.i.i, align 4 + %incdec.ptr367832834.i.i = phi ptr [ %incdec.ptr367.i.i, %for.body363.i.i ], [ %first.addr.1.i.i, %if.then353.i.i ] + %206 = load i32, ptr %incdec.ptr367832834.i.i, align 4 %idxprom364.i.i = sext i32 %206 to i64 %arrayidx365.i.i = getelementptr inbounds i32, ptr %add.ptr101, i64 %idxprom364.i.i store i32 %conv359.i.i, ptr %arrayidx365.i.i, align 4 - %incdec.ptr367.i.i = getelementptr inbounds i32, ptr %incdec.ptr367833835.i.i, i64 1 + %incdec.ptr367.i.i = getelementptr inbounds i32, ptr %incdec.ptr367832834.i.i, i64 1 %cmp361.i.i = icmp ult ptr %incdec.ptr367.i.i, %incdec.ptr350.i.i br i1 %cmp361.i.i, label %for.body363.i.i, label %if.end369.i.i, !llvm.loop !48 @@ -2703,14 +2703,13 @@ for.body.preheader.i.i.i: ; preds = %if.end19.i.i.i for.body.i665.i.i: ; preds = %tr_fixdown.exit.i.i.i, %for.body.preheader.i.i.i %indvars.iv.i.i.i = phi i64 [ %221, %for.body.preheader.i.i.i ], [ %indvars.iv.next.i.i.i, %tr_fixdown.exit.i.i.i ] %indvars.iv.next.i.i.i = add nsw i64 %indvars.iv.i.i.i, -1 - %222 = trunc i64 %indvars.iv.next.i.i.i to i32 - %idxprom.i.i.i.i = and i64 %indvars.iv.next.i.i.i, 4294967295 - %arrayidx.i.i.i.i = getelementptr inbounds i32, ptr %first.addr.0.ph.i.i, i64 %idxprom.i.i.i.i - %223 = load i32, ptr %arrayidx.i.i.i.i, align 4 - %idxprom1.i.i.i.i = sext i32 %223 to i64 + %arrayidx.i.i.i.i = getelementptr inbounds i32, ptr %first.addr.0.ph.i.i, i64 %indvars.iv.next.i.i.i + %222 = load i32, ptr %arrayidx.i.i.i.i, align 4 + %idxprom1.i.i.i.i = sext i32 %222 to i64 %arrayidx2.i.i.i.i = getelementptr inbounds i32, ptr %ISAd.addr.0.ph.i.i, i64 %idxprom1.i.i.i.i - %224 = load i32, ptr %arrayidx2.i.i.i.i, align 4 - %mul18.i.i.i.i = shl nuw nsw i32 %222, 1 + %223 = load i32, ptr %arrayidx2.i.i.i.i, align 4 + %224 = trunc i64 %indvars.iv.next.i.i.i to i32 + %mul18.i.i.i.i = shl nuw nsw i32 %224, 1 %add19.i.i.i.i = or disjoint i32 %mul18.i.i.i.i, 1 %cmp20.i.i.i.i = icmp slt i32 %add19.i.i.i.i, %m.0.i.i.i br i1 %cmp20.i.i.i.i, label %for.body.i.i.i.i260, label %tr_fixdown.exit.i.i.i @@ -2718,7 +2717,7 @@ for.body.i665.i.i: ; preds = %tr_fixdown.exit.i.i for.body.i.i.i.i260: ; preds = %for.body.i665.i.i, %for.inc.i.i.i.i %add23.i.i.i.i = phi i32 [ %add.i.i.i.i, %for.inc.i.i.i.i ], [ %add19.i.i.i.i, %for.body.i665.i.i ] %mul22.i.i.i.i = phi i32 [ %mul.i.i.i.i, %for.inc.i.i.i.i ], [ %mul18.i.i.i.i, %for.body.i665.i.i ] - %i.addr.021.i.i.i.i = phi i32 [ %spec.select.i.i.i.i, %for.inc.i.i.i.i ], [ %222, %for.body.i665.i.i ] + %i.addr.021.i.i.i.i = phi i32 [ %spec.select.i.i.i.i, %for.inc.i.i.i.i ], [ %224, %for.body.i665.i.i ] %inc.i.i.i.i = add i32 %mul22.i.i.i.i, 2 %idxprom3.i.i.i.i = sext i32 %add23.i.i.i.i to i64 %arrayidx4.i.i.i.i = getelementptr inbounds i32, ptr %first.addr.0.ph.i.i, i64 %idxprom3.i.i.i.i @@ -2733,7 +2732,7 @@ for.body.i.i.i.i260: ; preds = %for.body.i665.i.i, %arrayidx10.i.i.i.i = getelementptr inbounds i32, ptr %ISAd.addr.0.ph.i.i, i64 %idxprom9.i.i.i.i %228 = load i32, ptr %arrayidx10.i.i.i.i, align 4 %spec.select17.i.i.i.i = tail call i32 @llvm.smax.i32(i32 %226, i32 %228) - %cmp12.not.i.i.i.i = icmp sgt i32 %spec.select17.i.i.i.i, %224 + %cmp12.not.i.i.i.i = icmp sgt i32 %spec.select17.i.i.i.i, %223 br i1 %cmp12.not.i.i.i.i, label %for.inc.i.i.i.i, label %tr_fixdown.exit.i.i.i for.inc.i.i.i.i: ; preds = %for.body.i.i.i.i260 @@ -2751,10 +2750,10 @@ for.inc.i.i.i.i: ; preds = %for.body.i.i.i.i260 br i1 %cmp.i.i.i.i261, label %for.body.i.i.i.i260, label %tr_fixdown.exit.i.i.i, !llvm.loop !49 tr_fixdown.exit.i.i.i: ; preds = %for.inc.i.i.i.i, %for.body.i.i.i.i260, %for.body.i665.i.i - %i.addr.0.lcssa.i.i.i.i = phi i32 [ %222, %for.body.i665.i.i ], [ %i.addr.021.i.i.i.i, %for.body.i.i.i.i260 ], [ %spec.select.i.i.i.i, %for.inc.i.i.i.i ] + %i.addr.0.lcssa.i.i.i.i = phi i32 [ %224, %for.body.i665.i.i ], [ %i.addr.021.i.i.i.i, %for.body.i.i.i.i260 ], [ %spec.select.i.i.i.i, %for.inc.i.i.i.i ] %idxprom19.i.i.i.i = sext i32 %i.addr.0.lcssa.i.i.i.i to i64 %arrayidx20.i.i.i.i = getelementptr inbounds i32, ptr %first.addr.0.ph.i.i, i64 %idxprom19.i.i.i.i - store i32 %223, ptr %arrayidx20.i.i.i.i, align 4 + store i32 %222, ptr %arrayidx20.i.i.i.i, align 4 %cmp21.i.i.i = icmp sgt i64 %indvars.iv.i.i.i, 1 br i1 %cmp21.i.i.i, label %for.body.i665.i.i, label %for.end.i664.i.i, !llvm.loop !50 @@ -2796,7 +2795,7 @@ for.body.i50.i.i.i: ; preds = %do.body26.i.i.i259, br i1 %cmp12.not.i64.i.i.i, label %for.inc.i65.i.i.i, label %for.body.i50.i.tr_fixdown.exit75.loopexit.i_crit_edge.i.i for.body.i50.i.tr_fixdown.exit75.loopexit.i_crit_edge.i.i: ; preds = %for.body.i50.i.i.i - %.pre854.i.i = sext i32 %i.addr.021.i53.i.i.i to i64 + %.pre853.i.i = sext i32 %i.addr.021.i53.i.i.i to i64 br label %tr_fixdown.exit75.i.i.i for.inc.i65.i.i.i: ; preds = %for.body.i50.i.i.i @@ -2814,7 +2813,7 @@ for.inc.i65.i.i.i: ; preds = %for.body.i50.i.i.i br i1 %cmp.i74.i.i.i, label %for.body.i50.i.i.i, label %tr_fixdown.exit75.i.i.i, !llvm.loop !49 tr_fixdown.exit75.i.i.i: ; preds = %for.inc.i65.i.i.i, %for.body.i50.i.tr_fixdown.exit75.loopexit.i_crit_edge.i.i, %do.body26.i.i.i259 - %i.addr.0.lcssa.i47.i.i.i = phi i64 [ 0, %do.body26.i.i.i259 ], [ %.pre854.i.i, %for.body.i50.i.tr_fixdown.exit75.loopexit.i_crit_edge.i.i ], [ %idxprom15.i68.i.i.i, %for.inc.i65.i.i.i ] + %i.addr.0.lcssa.i47.i.i.i = phi i64 [ 0, %do.body26.i.i.i259 ], [ %.pre853.i.i, %for.body.i50.i.tr_fixdown.exit75.loopexit.i_crit_edge.i.i ], [ %idxprom15.i68.i.i.i, %for.inc.i65.i.i.i ] %arrayidx20.i49.i.i.i = getelementptr inbounds i32, ptr %first.addr.0.ph.i.i, i64 %i.addr.0.lcssa.i47.i.i.i store i32 %232, ptr %arrayidx20.i49.i.i.i, align 4 br label %if.end34.i.i.i @@ -2870,7 +2869,7 @@ for.body.i82.i.i.i: ; preds = %for.inc.i97.i.i.i, br i1 %cmp12.not.i96.i.i.i, label %for.inc.i97.i.i.i, label %for.body.i82.i.tr_fixdown.exit107.i_crit_edge.i.i for.body.i82.i.tr_fixdown.exit107.i_crit_edge.i.i: ; preds = %for.body.i82.i.i.i - %.pre855.i.i = sext i32 %i.addr.021.i85.i.i.i to i64 + %.pre854.i.i = sext i32 %i.addr.021.i85.i.i.i to i64 br label %tr_fixdown.exit107.i.i.i for.inc.i97.i.i.i: ; preds = %for.body.i82.i.i.i @@ -2889,7 +2888,7 @@ for.inc.i97.i.i.i: ; preds = %for.body.i82.i.i.i br i1 %cmp.i106.i.i.i, label %for.body.i82.i.i.i, label %tr_fixdown.exit107.i.i.i, !llvm.loop !49 tr_fixdown.exit107.i.i.i: ; preds = %for.inc.i97.i.i.i, %for.body.i82.i.tr_fixdown.exit107.i_crit_edge.i.i - %idxprom19.i80.i.pre-phi.i.i = phi i64 [ %.pre855.i.i, %for.body.i82.i.tr_fixdown.exit107.i_crit_edge.i.i ], [ %idxprom15.i100.i.i.i, %for.inc.i97.i.i.i ] + %idxprom19.i80.i.pre-phi.i.i = phi i64 [ %.pre854.i.i, %for.body.i82.i.tr_fixdown.exit107.i_crit_edge.i.i ], [ %idxprom15.i100.i.i.i, %for.inc.i97.i.i.i ] %arrayidx20.i81.i.i.i = getelementptr inbounds i32, ptr %first.addr.0.ph.i.i, i64 %idxprom19.i80.i.pre-phi.i.i store i32 %242, ptr %arrayidx20.i81.i.i.i, align 4 store i32 %243, ptr %arrayidx41.i.i297.i, align 4 @@ -2902,20 +2901,20 @@ tr_fixdown.exit107.i.i.i: ; preds = %for.inc.i97.i.i.i, br i1 %cmp20.i78.i.i.i, label %for.body.i82.i.i.preheader.i, label %tr_fixdown.exit107.thread.i.i.i tr_heapsort.exit.i.i: ; preds = %tr_fixdown.exit107.thread.i.i.i, %if.end34.i.i.i - br i1 %cmp531805.i.i, label %for.body533.i.i, label %if.else310.i.i + br i1 %cmp531804.i.i, label %for.body533.i.i, label %if.else310.i.i for.body533.i.i: ; preds = %tr_heapsort.exit.i.i, %for.inc551.i.i - %storemerge806.i.i = phi ptr [ %storemerge448.lcssa.i.i, %for.inc551.i.i ], [ %add.ptr529.i.i, %tr_heapsort.exit.i.i ] - %253 = load i32, ptr %storemerge806.i.i, align 4 + %storemerge805.i.i = phi ptr [ %storemerge448.lcssa.i.i, %for.inc551.i.i ], [ %add.ptr529.i.i, %tr_heapsort.exit.i.i ] + %253 = load i32, ptr %storemerge805.i.i, align 4 %idxprom534.i.i = sext i32 %253 to i64 %arrayidx535.i.i = getelementptr inbounds i32, ptr %ISAd.addr.0.ph.i.i, i64 %idxprom534.i.i %254 = load i32, ptr %arrayidx535.i.i, align 4 - %storemerge448801.i.i = getelementptr inbounds i32, ptr %storemerge806.i.i, i64 -1 - %cmp538.not802.i.i = icmp ugt ptr %first.addr.0.ph.i.i, %storemerge448801.i.i - br i1 %cmp538.not802.i.i, label %for.inc551.i.i, label %land.rhs540.i.i + %storemerge448800.i.i = getelementptr inbounds i32, ptr %storemerge805.i.i, i64 -1 + %cmp538.not801.i.i = icmp ugt ptr %first.addr.0.ph.i.i, %storemerge448800.i.i + br i1 %cmp538.not801.i.i, label %for.inc551.i.i, label %land.rhs540.i.i land.rhs540.i.i: ; preds = %for.body533.i.i, %for.body546.i.i - %b.i.0.i = phi ptr [ %storemerge448.i.i, %for.body546.i.i ], [ %storemerge448801.i.i, %for.body533.i.i ] + %b.i.0.i = phi ptr [ %storemerge448.i.i, %for.body546.i.i ], [ %storemerge448800.i.i, %for.body533.i.i ] %255 = load i32, ptr %b.i.0.i, align 4 %idxprom541.i.i = sext i32 %255 to i64 %arrayidx542.i.i = getelementptr inbounds i32, ptr %ISAd.addr.0.ph.i.i, i64 %idxprom541.i.i @@ -2931,7 +2930,7 @@ for.body546.i.i: ; preds = %land.rhs540.i.i br i1 %cmp538.not.i.i, label %for.inc551.i.i, label %land.rhs540.i.i, !llvm.loop !51 for.inc551.i.i: ; preds = %for.body546.i.i, %land.rhs540.i.i, %for.body533.i.i - %storemerge448.lcssa.i.i = phi ptr [ %storemerge448801.i.i, %for.body533.i.i ], [ %b.i.0.i, %land.rhs540.i.i ], [ %storemerge448.i.i, %for.body546.i.i ] + %storemerge448.lcssa.i.i = phi ptr [ %storemerge448800.i.i, %for.body533.i.i ], [ %b.i.0.i, %land.rhs540.i.i ], [ %storemerge448.i.i, %for.body546.i.i ] %cmp531.i.i = icmp ult ptr %first.addr.0.ph.i.i, %storemerge448.lcssa.i.i br i1 %cmp531.i.i, label %for.body533.i.i, label %if.else310.i.i, !llvm.loop !52 @@ -2951,32 +2950,32 @@ if.then.i682.i.i: ; preds = %if.end553.i.i if.then4.i.i.i: ; preds = %if.then.i682.i.i %257 = load i32, ptr %first.addr.0.ph.i.i, align 4 - %idxprom.i.i686.i.i = sext i32 %257 to i64 - %arrayidx.i.i687.i.i = getelementptr inbounds i32, ptr %ISAd.addr.0.ph.i.i, i64 %idxprom.i.i686.i.i - %258 = load i32, ptr %arrayidx.i.i687.i.i, align 4 + %idxprom.i.i.i.i = sext i32 %257 to i64 + %arrayidx.i.i686.i.i = getelementptr inbounds i32, ptr %ISAd.addr.0.ph.i.i, i64 %idxprom.i.i.i.i + %258 = load i32, ptr %arrayidx.i.i686.i.i, align 4 %259 = load i32, ptr %add.ptr.i678.i.i, align 4 - %idxprom1.i.i688.i.i = sext i32 %259 to i64 - %arrayidx2.i.i689.i.i = getelementptr inbounds i32, ptr %ISAd.addr.0.ph.i.i, i64 %idxprom1.i.i688.i.i - %260 = load i32, ptr %arrayidx2.i.i689.i.i, align 4 - %cmp.i.i690.i.i = icmp sgt i32 %258, %260 - %261 = select i1 %cmp.i.i690.i.i, i32 %257, i32 %259 - %spec.select.i.i691.i.i = select i1 %cmp.i.i690.i.i, ptr %first.addr.0.ph.i.i, ptr %add.ptr.i678.i.i - %idxprom3.i.i692.i.i = sext i32 %261 to i64 - %arrayidx4.i.i693.i.i = getelementptr inbounds i32, ptr %ISAd.addr.0.ph.i.i, i64 %idxprom3.i.i692.i.i - %262 = load i32, ptr %arrayidx4.i.i693.i.i, align 4 + %idxprom1.i.i687.i.i = sext i32 %259 to i64 + %arrayidx2.i.i688.i.i = getelementptr inbounds i32, ptr %ISAd.addr.0.ph.i.i, i64 %idxprom1.i.i687.i.i + %260 = load i32, ptr %arrayidx2.i.i688.i.i, align 4 + %cmp.i.i689.i.i = icmp sgt i32 %258, %260 + %261 = select i1 %cmp.i.i689.i.i, i32 %257, i32 %259 + %spec.select.i.i690.i.i = select i1 %cmp.i.i689.i.i, ptr %first.addr.0.ph.i.i, ptr %add.ptr.i678.i.i + %idxprom3.i.i691.i.i = sext i32 %261 to i64 + %arrayidx4.i.i692.i.i = getelementptr inbounds i32, ptr %ISAd.addr.0.ph.i.i, i64 %idxprom3.i.i691.i.i + %262 = load i32, ptr %arrayidx4.i.i692.i.i, align 4 %263 = load i32, ptr %add.ptr529.i.i, align 4 - %idxprom5.i.i694.i.i = sext i32 %263 to i64 - %arrayidx6.i.i695.i.i = getelementptr inbounds i32, ptr %ISAd.addr.0.ph.i.i, i64 %idxprom5.i.i694.i.i - %264 = load i32, ptr %arrayidx6.i.i695.i.i, align 4 + %idxprom5.i.i693.i.i = sext i32 %263 to i64 + %arrayidx6.i.i694.i.i = getelementptr inbounds i32, ptr %ISAd.addr.0.ph.i.i, i64 %idxprom5.i.i693.i.i + %264 = load i32, ptr %arrayidx6.i.i694.i.i, align 4 %cmp7.i.i.i.i = icmp sgt i32 %262, %264 br i1 %cmp7.i.i.i.i, label %if.then8.i.i.i.i, label %tr_pivot.exit.i.i if.then8.i.i.i.i: ; preds = %if.then4.i.i.i - %265 = select i1 %cmp.i.i690.i.i, i32 %259, i32 %257 - %spec.select14.i.i.i.i = select i1 %cmp.i.i690.i.i, ptr %add.ptr.i678.i.i, ptr %first.addr.0.ph.i.i - %idxprom9.i.i696.i.i = sext i32 %265 to i64 - %arrayidx10.i.i697.i.i = getelementptr inbounds i32, ptr %ISAd.addr.0.ph.i.i, i64 %idxprom9.i.i696.i.i - %266 = load i32, ptr %arrayidx10.i.i697.i.i, align 4 + %265 = select i1 %cmp.i.i689.i.i, i32 %259, i32 %257 + %spec.select14.i.i.i.i = select i1 %cmp.i.i689.i.i, ptr %add.ptr.i678.i.i, ptr %first.addr.0.ph.i.i + %idxprom9.i.i695.i.i = sext i32 %265 to i64 + %arrayidx10.i.i696.i.i = getelementptr inbounds i32, ptr %ISAd.addr.0.ph.i.i, i64 %idxprom9.i.i695.i.i + %266 = load i32, ptr %arrayidx10.i.i696.i.i, align 4 %cmp13.i.i.i.i = icmp sgt i32 %266, %264 %spec.select14.v3.i.i.i.i = select i1 %cmp13.i.i.i.i, ptr %spec.select14.i.i.i.i, ptr %add.ptr529.i.i br label %tr_pivot.exit.i.i @@ -3201,7 +3200,7 @@ if.then8.i119.i.i.i: ; preds = %tr_median3.exit106. tr_pivot.exit.i.i: ; preds = %if.then8.i119.i.i.i, %tr_median3.exit106.i.i.i, %if.else.i.i.i255, %if.then8.i.i.i.i, %if.then4.i.i.i %330 = phi i32 [ %279, %if.else.i.i.i255 ], [ %257, %if.then8.i.i.i.i ], [ %257, %if.then4.i.i.i ], [ %291, %if.then8.i119.i.i.i ], [ %291, %tr_median3.exit106.i.i.i ] - %retval.0.i681.i.i = phi ptr [ %retval.0.i49.i.i.i, %if.else.i.i.i255 ], [ %spec.select14.v3.i.i.i.i, %if.then8.i.i.i.i ], [ %spec.select.i.i691.i.i, %if.then4.i.i.i ], [ %spec.select14.v3.i124.i.i.i, %if.then8.i119.i.i.i ], [ %spec.select.i112.i.i.i, %tr_median3.exit106.i.i.i ] + %retval.0.i681.i.i = phi ptr [ %retval.0.i49.i.i.i, %if.else.i.i.i255 ], [ %spec.select14.v3.i.i.i.i, %if.then8.i.i.i.i ], [ %spec.select.i.i690.i.i, %if.then4.i.i.i ], [ %spec.select14.v3.i124.i.i.i, %if.then8.i119.i.i.i ], [ %spec.select.i112.i.i.i, %tr_median3.exit106.i.i.i ] %331 = load i32, ptr %retval.0.i681.i.i, align 4 store i32 %331, ptr %first.addr.0.ph.i.i, align 4 store i32 %330, ptr %retval.0.i681.i.i, align 4 @@ -3498,63 +3497,63 @@ if.then571.i.i: ; preds = %tr_partition.exit.i cond.true576.i.i: ; preds = %if.then571.i.i %conv581.i.i = trunc i64 %.pre337.i to i32 - %tobool.not.i698.i.i = icmp ult i32 %conv581.i.i, 65536 - br i1 %tobool.not.i698.i.i, label %cond.false10.i712.i.i, label %cond.true.i699.i.i - -cond.true.i699.i.i: ; preds = %cond.true576.i.i - %tobool2.not.i700.i.i = icmp ult i32 %conv581.i.i, 16777216 - br i1 %tobool2.not.i700.i.i, label %cond.false.i707.i.i, label %cond.true3.i701.i.i - -cond.true3.i701.i.i: ; preds = %cond.true.i699.i.i - %shr.i702.i.i = lshr i64 %.pre337.i, 24 - %idxprom.i703.i.i = and i64 %shr.i702.i.i, 255 - %arrayidx.i704.i.i = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %idxprom.i703.i.i - %359 = load i32, ptr %arrayidx.i704.i.i, align 4 - %add.i705.i.i = add nsw i32 %359, 24 + %tobool.not.i697.i.i = icmp ult i32 %conv581.i.i, 65536 + br i1 %tobool.not.i697.i.i, label %cond.false10.i711.i.i, label %cond.true.i698.i.i + +cond.true.i698.i.i: ; preds = %cond.true576.i.i + %tobool2.not.i699.i.i = icmp ult i32 %conv581.i.i, 16777216 + br i1 %tobool2.not.i699.i.i, label %cond.false.i706.i.i, label %cond.true3.i700.i.i + +cond.true3.i700.i.i: ; preds = %cond.true.i698.i.i + %shr.i701.i.i = lshr i64 %.pre337.i, 24 + %idxprom.i702.i.i = and i64 %shr.i701.i.i, 255 + %arrayidx.i703.i.i = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %idxprom.i702.i.i + %359 = load i32, ptr %arrayidx.i703.i.i, align 4 + %add.i704.i.i = add nsw i32 %359, 24 br label %cond.end584.i.i -cond.false.i707.i.i: ; preds = %cond.true.i699.i.i - %shr5.i708.i.i = lshr i64 %.pre337.i, 16 - %idxprom7.i709.i.i = and i64 %shr5.i708.i.i, 65535 - %arrayidx8.i710.i.i = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %idxprom7.i709.i.i - %360 = load i32, ptr %arrayidx8.i710.i.i, align 4 - %add9.i711.i.i = add nsw i32 %360, 16 +cond.false.i706.i.i: ; preds = %cond.true.i698.i.i + %shr5.i707.i.i = lshr i64 %.pre337.i, 16 + %idxprom7.i708.i.i = and i64 %shr5.i707.i.i, 65535 + %arrayidx8.i709.i.i = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %idxprom7.i708.i.i + %360 = load i32, ptr %arrayidx8.i709.i.i, align 4 + %add9.i710.i.i = add nsw i32 %360, 16 br label %cond.end584.i.i -cond.false10.i712.i.i: ; preds = %cond.true576.i.i - %tobool12.not.i713.i.i = icmp ult i32 %conv581.i.i, 256 - br i1 %tobool12.not.i713.i.i, label %cond.false19.i719.i.i, label %cond.true13.i714.i.i +cond.false10.i711.i.i: ; preds = %cond.true576.i.i + %tobool12.not.i712.i.i = icmp ult i32 %conv581.i.i, 256 + br i1 %tobool12.not.i712.i.i, label %cond.false19.i718.i.i, label %cond.true13.i713.i.i -cond.true13.i714.i.i: ; preds = %cond.false10.i712.i.i - %shr14.i715.i.i = lshr i64 %.pre337.i, 8 - %idxprom16.i716.i.i = and i64 %shr14.i715.i.i, 16777215 - %arrayidx17.i717.i.i = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %idxprom16.i716.i.i - %361 = load i32, ptr %arrayidx17.i717.i.i, align 4 - %add18.i718.i.i = add nsw i32 %361, 8 +cond.true13.i713.i.i: ; preds = %cond.false10.i711.i.i + %shr14.i714.i.i = lshr i64 %.pre337.i, 8 + %idxprom16.i715.i.i = and i64 %shr14.i714.i.i, 16777215 + %arrayidx17.i716.i.i = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %idxprom16.i715.i.i + %361 = load i32, ptr %arrayidx17.i716.i.i, align 4 + %add18.i717.i.i = add nsw i32 %361, 8 br label %cond.end584.i.i -cond.false19.i719.i.i: ; preds = %cond.false10.i712.i.i - %idxprom22.i720.i.i = and i64 %.pre337.i, 4294967295 - %arrayidx23.i721.i.i = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %idxprom22.i720.i.i - %362 = load i32, ptr %arrayidx23.i721.i.i, align 4 +cond.false19.i718.i.i: ; preds = %cond.false10.i711.i.i + %idxprom22.i719.i.i = and i64 %.pre337.i, 4294967295 + %arrayidx23.i720.i.i = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %idxprom22.i719.i.i + %362 = load i32, ptr %arrayidx23.i720.i.i, align 4 br label %cond.end584.i.i -cond.end584.i.i: ; preds = %cond.false19.i719.i.i, %cond.true13.i714.i.i, %cond.false.i707.i.i, %cond.true3.i701.i.i, %if.then571.i.i - %cond585.i.i = phi i32 [ -1, %if.then571.i.i ], [ %add.i705.i.i, %cond.true3.i701.i.i ], [ %add9.i711.i.i, %cond.false.i707.i.i ], [ %add18.i718.i.i, %cond.true13.i714.i.i ], [ %362, %cond.false19.i719.i.i ] +cond.end584.i.i: ; preds = %cond.false19.i718.i.i, %cond.true13.i713.i.i, %cond.false.i706.i.i, %cond.true3.i700.i.i, %if.then571.i.i + %cond585.i.i = phi i32 [ -1, %if.then571.i.i ], [ %add.i704.i.i, %cond.true3.i700.i.i ], [ %add9.i710.i.i, %cond.false.i706.i.i ], [ %add18.i717.i.i, %cond.true13.i713.i.i ], [ %362, %cond.false19.i718.i.i ] %sub.ptr.sub588.i.i = sub i64 %.pre335.i, %sub.ptr.rhs.cast587.i.i %sub.ptr.div589.i.i = lshr exact i64 %sub.ptr.sub588.i.i, 2 %363 = trunc i64 %sub.ptr.div589.i.i to i32 %conv591.i.i = add i32 %363, -1 - %cmp593820.i.i = icmp sgt i64 %sub.ptr.sub92.i.i, 0 - br i1 %cmp593820.i.i, label %for.body595.i.i, label %for.end600.i.i + %cmp593819.i.i = icmp sgt i64 %sub.ptr.sub92.i.i, 0 + br i1 %cmp593819.i.i, label %for.body595.i.i, label %for.end600.i.i for.body595.i.i: ; preds = %cond.end584.i.i, %for.body595.i.i - %c.2821.i.i = phi ptr [ %incdec.ptr599.i.i, %for.body595.i.i ], [ %first.addr.0.ph.i.i, %cond.end584.i.i ] - %364 = load i32, ptr %c.2821.i.i, align 4 + %c.2820.i.i = phi ptr [ %incdec.ptr599.i.i, %for.body595.i.i ], [ %first.addr.0.ph.i.i, %cond.end584.i.i ] + %364 = load i32, ptr %c.2820.i.i, align 4 %idxprom596.i.i = sext i32 %364 to i64 %arrayidx597.i.i = getelementptr inbounds i32, ptr %add.ptr101, i64 %idxprom596.i.i store i32 %conv591.i.i, ptr %arrayidx597.i.i, align 4 - %incdec.ptr599.i.i = getelementptr inbounds i32, ptr %c.2821.i.i, i64 1 + %incdec.ptr599.i.i = getelementptr inbounds i32, ptr %c.2820.i.i, i64 1 %cmp593.i.i = icmp ult ptr %incdec.ptr599.i.i, %add.ptr141.i.i br i1 %cmp593.i.i, label %for.body595.i.i, label %for.end600.i.i, !llvm.loop !53 @@ -3567,16 +3566,16 @@ if.then603.i.i: ; preds = %for.end600.i.i %sub.ptr.div607.i.i = lshr exact i64 %sub.ptr.sub606.i.i, 2 %365 = trunc i64 %sub.ptr.div607.i.i to i32 %conv609.i.i = add i32 %365, -1 - %cmp611822.i.i = icmp ult ptr %add.ptr141.i.i, %add.ptr147.i.i - br i1 %cmp611822.i.i, label %for.body613.i.i, label %if.end619.i.i + %cmp611821.i.i = icmp ult ptr %add.ptr141.i.i, %add.ptr147.i.i + br i1 %cmp611821.i.i, label %for.body613.i.i, label %if.end619.i.i for.body613.i.i: ; preds = %if.then603.i.i, %for.body613.i.i - %c.3823.i.i = phi ptr [ %incdec.ptr617.i.i, %for.body613.i.i ], [ %add.ptr141.i.i, %if.then603.i.i ] - %366 = load i32, ptr %c.3823.i.i, align 4 + %c.3822.i.i = phi ptr [ %incdec.ptr617.i.i, %for.body613.i.i ], [ %add.ptr141.i.i, %if.then603.i.i ] + %366 = load i32, ptr %c.3822.i.i, align 4 %idxprom614.i.i = sext i32 %366 to i64 %arrayidx615.i.i = getelementptr inbounds i32, ptr %add.ptr101, i64 %idxprom614.i.i store i32 %conv609.i.i, ptr %arrayidx615.i.i, align 4 - %incdec.ptr617.i.i = getelementptr inbounds i32, ptr %c.3823.i.i, i64 1 + %incdec.ptr617.i.i = getelementptr inbounds i32, ptr %c.3822.i.i, i64 1 %cmp611.i.i = icmp ult ptr %incdec.ptr617.i.i, %add.ptr147.i.i br i1 %cmp611.i.i, label %for.body613.i.i, label %if.end619.i.i, !llvm.loop !54 @@ -3586,26 +3585,26 @@ if.end619.i.i: ; preds = %for.body613.i.i, %i land.lhs.true.i.i: ; preds = %if.end619.i.i %conv630.i.i = trunc i64 %.pre337.i to i32 - %cmp.not.i724.i.i = icmp slt i32 %budget.sroa.7.2.i, %conv630.i.i - br i1 %cmp.not.i724.i.i, label %if.end.i728.i.i, label %if.then633.i.i + %cmp.not.i723.i.i = icmp slt i32 %budget.sroa.7.2.i, %conv630.i.i + br i1 %cmp.not.i723.i.i, label %if.end.i727.i.i, label %if.then633.i.i -if.end.i728.i.i: ; preds = %land.lhs.true.i.i - %cmp2.i729.i.i = icmp eq i32 %budget.sroa.0.2.i, 0 - br i1 %cmp2.i729.i.i, label %trbudget_check.exit738.i.i, label %if.end4.i730.i.i +if.end.i727.i.i: ; preds = %land.lhs.true.i.i + %cmp2.i728.i.i = icmp eq i32 %budget.sroa.0.2.i, 0 + br i1 %cmp2.i728.i.i, label %trbudget_check.exit737.i.i, label %if.end4.i729.i.i -if.end4.i730.i.i: ; preds = %if.end.i728.i.i - %sub5.i732.i.i = add i32 %budget.sroa.7.2.i, %sub55 - %sub9.i734.i.i = add nsw i32 %budget.sroa.0.2.i, -1 +if.end4.i729.i.i: ; preds = %if.end.i727.i.i + %sub5.i731.i.i = add i32 %budget.sroa.7.2.i, %sub55 + %sub9.i733.i.i = add nsw i32 %budget.sroa.0.2.i, -1 br label %if.then633.i.i -trbudget_check.exit738.i.i: ; preds = %if.end.i728.i.i - %add.i737.i.i = add nsw i32 %budget.sroa.21.0.i, %conv630.i.i +trbudget_check.exit737.i.i: ; preds = %if.end.i727.i.i + %add.i736.i.i = add nsw i32 %budget.sroa.21.0.i, %conv630.i.i br label %if.else1081.i.i -if.then633.i.i: ; preds = %if.end4.i730.i.i, %land.lhs.true.i.i - %sub5.i732.i.pn.i = phi i32 [ %sub5.i732.i.i, %if.end4.i730.i.i ], [ %budget.sroa.7.2.i, %land.lhs.true.i.i ] - %budget.sroa.0.5.i = phi i32 [ %sub9.i734.i.i, %if.end4.i730.i.i ], [ %budget.sroa.0.2.i, %land.lhs.true.i.i ] - %budget.sroa.7.5.i = sub i32 %sub5.i732.i.pn.i, %conv630.i.i +if.then633.i.i: ; preds = %if.end4.i729.i.i, %land.lhs.true.i.i + %sub5.i731.i.pn.i = phi i32 [ %sub5.i731.i.i, %if.end4.i729.i.i ], [ %budget.sroa.7.2.i, %land.lhs.true.i.i ] + %budget.sroa.0.5.i = phi i32 [ %sub9.i733.i.i, %if.end4.i729.i.i ], [ %budget.sroa.0.2.i, %land.lhs.true.i.i ] + %budget.sroa.7.5.i = sub i32 %sub5.i731.i.pn.i, %conv630.i.i %cmp642.not.i.i = icmp sgt i64 %sub.ptr.div93.i.i, %sub.ptr.div112.i.i br i1 %cmp642.not.i.i, label %if.else862.i.i, label %if.then644.i.i @@ -3849,8 +3848,8 @@ do.body1038.i.i: ; preds = %if.else955.i.i %add.ptr1077.i.i = getelementptr inbounds i32, ptr %ISAd.addr.0.ph.i.i, i64 %idx.ext733.i.i br label %for.cond.outer.i.i.backedge -if.else1081.i.i: ; preds = %trbudget_check.exit738.i.i, %if.end619.i.i - %budget.sroa.21.2.i = phi i32 [ %add.i737.i.i, %trbudget_check.exit738.i.i ], [ %budget.sroa.21.0.i, %if.end619.i.i ] +if.else1081.i.i: ; preds = %trbudget_check.exit737.i.i, %if.end619.i.i + %budget.sroa.21.2.i = phi i32 [ %add.i736.i.i, %trbudget_check.exit737.i.i ], [ %budget.sroa.21.0.i, %if.end619.i.i ] %cmp1086.i.i = icmp sgt i64 %.pre336.i, 4 %cmp1089.i.i = icmp sgt i32 %trlink.0.ph.i.i, -1 %or.cond.i.i249 = select i1 %cmp1086.i.i, i1 %cmp1089.i.i, i1 false @@ -3951,70 +3950,70 @@ if.end1207.i.i: ; preds = %do.body1203.i.i br label %for.cond.outer.i.i.backedge if.else1230.i.i: ; preds = %tr_partition.exit.i, %for.end86.i.i - %cmp.not.i740.i.i = icmp slt i32 %budget.sroa.7.2.i, %conv528.i.i - br i1 %cmp.not.i740.i.i, label %if.end.i744.i.i, label %if.then1238.i.i + %cmp.not.i739.i.i = icmp slt i32 %budget.sroa.7.2.i, %conv528.i.i + br i1 %cmp.not.i739.i.i, label %if.end.i743.i.i, label %if.then1238.i.i -if.end.i744.i.i: ; preds = %if.else1230.i.i - %cmp2.i745.i.i = icmp eq i32 %budget.sroa.0.2.i, 0 - br i1 %cmp2.i745.i.i, label %if.else1247.i.i, label %if.end4.i746.i.i +if.end.i743.i.i: ; preds = %if.else1230.i.i + %cmp2.i744.i.i = icmp eq i32 %budget.sroa.0.2.i, 0 + br i1 %cmp2.i744.i.i, label %if.else1247.i.i, label %if.end4.i745.i.i -if.end4.i746.i.i: ; preds = %if.end.i744.i.i - %sub5.i748.i.i = add i32 %budget.sroa.7.2.i, %sub55 - %sub9.i750.i.i = add nsw i32 %budget.sroa.0.2.i, -1 +if.end4.i745.i.i: ; preds = %if.end.i743.i.i + %sub5.i747.i.i = add i32 %budget.sroa.7.2.i, %sub55 + %sub9.i749.i.i = add nsw i32 %budget.sroa.0.2.i, -1 br label %if.then1238.i.i -if.then1238.i.i: ; preds = %if.end4.i746.i.i, %if.else1230.i.i - %sub5.i748.i.pn.i = phi i32 [ %sub5.i748.i.i, %if.end4.i746.i.i ], [ %budget.sroa.7.2.i, %if.else1230.i.i ] - %budget.sroa.0.6.i = phi i32 [ %sub9.i750.i.i, %if.end4.i746.i.i ], [ %budget.sroa.0.2.i, %if.else1230.i.i ] - %budget.sroa.7.6.i = sub i32 %sub5.i748.i.pn.i, %conv528.i.i - %tobool.not.i755.i.i = icmp ult i32 %conv528.i.i, 65536 - br i1 %tobool.not.i755.i.i, label %cond.false10.i769.i.i, label %cond.true.i756.i.i - -cond.true.i756.i.i: ; preds = %if.then1238.i.i - %tobool2.not.i757.i.i = icmp ult i32 %conv528.i.i, 16777216 - br i1 %tobool2.not.i757.i.i, label %cond.false.i764.i.i, label %cond.true3.i758.i.i - -cond.true3.i758.i.i: ; preds = %cond.true.i756.i.i - %shr.i759.i.i = lshr i64 %sub.ptr.div515.i.i, 24 - %idxprom.i760.i.i = and i64 %shr.i759.i.i, 255 - %arrayidx.i761.i.i = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %idxprom.i760.i.i - %377 = load i32, ptr %arrayidx.i761.i.i, align 4 - %add.i762.i.i = add nsw i32 %377, 24 - br label %tr_ilg.exit779.i.i - -cond.false.i764.i.i: ; preds = %cond.true.i756.i.i - %shr5.i765.i.i = lshr i64 %sub.ptr.div515.i.i, 16 - %idxprom7.i766.i.i = and i64 %shr5.i765.i.i, 65535 - %arrayidx8.i767.i.i = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %idxprom7.i766.i.i - %378 = load i32, ptr %arrayidx8.i767.i.i, align 4 - %add9.i768.i.i = add nsw i32 %378, 16 - br label %tr_ilg.exit779.i.i - -cond.false10.i769.i.i: ; preds = %if.then1238.i.i - %tobool12.not.i770.i.i = icmp ult i32 %conv528.i.i, 256 - br i1 %tobool12.not.i770.i.i, label %cond.false19.i776.i.i, label %cond.true13.i771.i.i - -cond.true13.i771.i.i: ; preds = %cond.false10.i769.i.i - %shr14.i772.i.i = lshr i64 %sub.ptr.div515.i.i, 8 - %idxprom16.i773.i.i = and i64 %shr14.i772.i.i, 16777215 - %arrayidx17.i774.i.i = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %idxprom16.i773.i.i - %379 = load i32, ptr %arrayidx17.i774.i.i, align 4 - %add18.i775.i.i = add nsw i32 %379, 8 - br label %tr_ilg.exit779.i.i - -cond.false19.i776.i.i: ; preds = %cond.false10.i769.i.i - %idxprom22.i777.i.i = and i64 %sub.ptr.div515.i.i, 4294967295 - %arrayidx23.i778.i.i = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %idxprom22.i777.i.i - %380 = load i32, ptr %arrayidx23.i778.i.i, align 4 - br label %tr_ilg.exit779.i.i - -tr_ilg.exit779.i.i: ; preds = %cond.false19.i776.i.i, %cond.true13.i771.i.i, %cond.false.i764.i.i, %cond.true3.i758.i.i - %cond28.i763.i.i = phi i32 [ %add.i762.i.i, %cond.true3.i758.i.i ], [ %add9.i768.i.i, %cond.false.i764.i.i ], [ %add18.i775.i.i, %cond.true13.i771.i.i ], [ %380, %cond.false19.i776.i.i ] +if.then1238.i.i: ; preds = %if.end4.i745.i.i, %if.else1230.i.i + %sub5.i747.i.pn.i = phi i32 [ %sub5.i747.i.i, %if.end4.i745.i.i ], [ %budget.sroa.7.2.i, %if.else1230.i.i ] + %budget.sroa.0.6.i = phi i32 [ %sub9.i749.i.i, %if.end4.i745.i.i ], [ %budget.sroa.0.2.i, %if.else1230.i.i ] + %budget.sroa.7.6.i = sub i32 %sub5.i747.i.pn.i, %conv528.i.i + %tobool.not.i754.i.i = icmp ult i32 %conv528.i.i, 65536 + br i1 %tobool.not.i754.i.i, label %cond.false10.i768.i.i, label %cond.true.i755.i.i + +cond.true.i755.i.i: ; preds = %if.then1238.i.i + %tobool2.not.i756.i.i = icmp ult i32 %conv528.i.i, 16777216 + br i1 %tobool2.not.i756.i.i, label %cond.false.i763.i.i, label %cond.true3.i757.i.i + +cond.true3.i757.i.i: ; preds = %cond.true.i755.i.i + %shr.i758.i.i = lshr i64 %sub.ptr.div515.i.i, 24 + %idxprom.i759.i.i = and i64 %shr.i758.i.i, 255 + %arrayidx.i760.i.i = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %idxprom.i759.i.i + %377 = load i32, ptr %arrayidx.i760.i.i, align 4 + %add.i761.i.i = add nsw i32 %377, 24 + br label %tr_ilg.exit778.i.i + +cond.false.i763.i.i: ; preds = %cond.true.i755.i.i + %shr5.i764.i.i = lshr i64 %sub.ptr.div515.i.i, 16 + %idxprom7.i765.i.i = and i64 %shr5.i764.i.i, 65535 + %arrayidx8.i766.i.i = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %idxprom7.i765.i.i + %378 = load i32, ptr %arrayidx8.i766.i.i, align 4 + %add9.i767.i.i = add nsw i32 %378, 16 + br label %tr_ilg.exit778.i.i + +cond.false10.i768.i.i: ; preds = %if.then1238.i.i + %tobool12.not.i769.i.i = icmp ult i32 %conv528.i.i, 256 + br i1 %tobool12.not.i769.i.i, label %cond.false19.i775.i.i, label %cond.true13.i770.i.i + +cond.true13.i770.i.i: ; preds = %cond.false10.i768.i.i + %shr14.i771.i.i = lshr i64 %sub.ptr.div515.i.i, 8 + %idxprom16.i772.i.i = and i64 %shr14.i771.i.i, 16777215 + %arrayidx17.i773.i.i = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %idxprom16.i772.i.i + %379 = load i32, ptr %arrayidx17.i773.i.i, align 4 + %add18.i774.i.i = add nsw i32 %379, 8 + br label %tr_ilg.exit778.i.i + +cond.false19.i775.i.i: ; preds = %cond.false10.i768.i.i + %idxprom22.i776.i.i = and i64 %sub.ptr.div515.i.i, 4294967295 + %arrayidx23.i777.i.i = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %idxprom22.i776.i.i + %380 = load i32, ptr %arrayidx23.i777.i.i, align 4 + br label %tr_ilg.exit778.i.i + +tr_ilg.exit778.i.i: ; preds = %cond.false19.i775.i.i, %cond.true13.i770.i.i, %cond.false.i763.i.i, %cond.true3.i757.i.i + %cond28.i762.i.i = phi i32 [ %add.i761.i.i, %cond.true3.i757.i.i ], [ %add9.i767.i.i, %cond.false.i763.i.i ], [ %add18.i774.i.i, %cond.true13.i770.i.i ], [ %380, %cond.false19.i775.i.i ] %add.ptr1246.i.i = getelementptr inbounds i32, ptr %ISAd.addr.0.ph.i.i, i64 %idx.ext733.i.i br label %for.cond.outer.i.i.backedge -if.else1247.i.i: ; preds = %if.end.i744.i.i - %add.i753.i.i = add nsw i32 %budget.sroa.21.0.i, %conv528.i.i +if.else1247.i.i: ; preds = %if.end.i743.i.i + %add.i752.i.i = add nsw i32 %budget.sroa.21.0.i, %conv528.i.i %cmp1248.i.i = icmp sgt i32 %trlink.0.ph.i.i, -1 br i1 %cmp1248.i.i, label %if.then1250.i.i, label %do.body1255.i.i @@ -4043,21 +4042,21 @@ if.end1259.i.i: ; preds = %do.body1255.i.i %385 = load i32, ptr %e1275.i.i, align 4 br label %for.cond.outer.i.i.backedge -for.cond.outer.i.i.backedge: ; preds = %if.end1259.i.i, %tr_ilg.exit779.i.i, %if.end1207.i.i, %if.else1194.i.i, %do.body1175.i.i, %if.end1146.i.i, %if.else1133.i.i, %do.body1114.i.i, %do.body1038.i.i, %do.body974.i.i, %if.then966.i.i, %do.body929.i.i, %if.else921.i.i, %do.body881.i.i, %do.body820.i.i, %do.body756.i.i, %if.then748.i.i, %do.body711.i.i, %if.else703.i.i, %do.body663.i.i, %if.end489.i.i, %if.end463.i.i, %if.end450.i.i, %do.body417.i.i, %if.else409.i.i, %do.body388.i.i, %if.end292.i.i, %if.end231.i.i, %cond.false19.i599.i.i, %cond.true13.i594.i.i, %cond.false.i587.i.i, %cond.true3.i581.i.i, %cond.false19.i574.i.i, %cond.true13.i569.i.i, %cond.false.i562.i.i, %cond.true3.i556.i.i, %if.end155.i.i, %cond.false19.i524.i.i, %cond.true13.i519.i.i, %cond.false.i512.i.i, %cond.true3.i506.i.i, %cond.false19.i499.i.i, %cond.true13.i494.i.i, %cond.false.i487.i.i, %cond.true3.i481.i.i - %budget.sroa.21.0.i.be = phi i32 [ %add.i656.i.i, %if.end450.i.i ], [ %add.i656.i.i, %if.end463.i.i ], [ %budget.sroa.21.0.i, %do.body417.i.i ], [ %budget.sroa.21.0.i, %if.else409.i.i ], [ %budget.sroa.21.0.i, %do.body388.i.i ], [ %budget.sroa.21.0.i, %if.end489.i.i ], [ %budget.sroa.21.0.i, %if.end292.i.i ], [ %budget.sroa.21.0.i, %cond.false19.i574.i.i ], [ %budget.sroa.21.0.i, %cond.true13.i569.i.i ], [ %budget.sroa.21.0.i, %cond.false.i562.i.i ], [ %budget.sroa.21.0.i, %cond.true3.i556.i.i ], [ %budget.sroa.21.0.i, %cond.false19.i599.i.i ], [ %budget.sroa.21.0.i, %cond.true13.i594.i.i ], [ %budget.sroa.21.0.i, %cond.false.i587.i.i ], [ %budget.sroa.21.0.i, %cond.true3.i581.i.i ], [ %budget.sroa.21.0.i, %if.end231.i.i ], [ %budget.sroa.21.0.i, %cond.false19.i499.i.i ], [ %budget.sroa.21.0.i, %cond.true13.i494.i.i ], [ %budget.sroa.21.0.i, %cond.false.i487.i.i ], [ %budget.sroa.21.0.i, %cond.true3.i481.i.i ], [ %budget.sroa.21.0.i, %cond.false19.i524.i.i ], [ %budget.sroa.21.0.i, %cond.true13.i519.i.i ], [ %budget.sroa.21.0.i, %cond.false.i512.i.i ], [ %budget.sroa.21.0.i, %cond.true3.i506.i.i ], [ %budget.sroa.21.0.i, %if.end155.i.i ], [ %add.i753.i.i, %if.end1259.i.i ], [ %budget.sroa.21.0.i, %tr_ilg.exit779.i.i ], [ %budget.sroa.21.2.i, %do.body1175.i.i ], [ %budget.sroa.21.2.i, %if.else1194.i.i ], [ %budget.sroa.21.2.i, %if.end1207.i.i ], [ %budget.sroa.21.2.i, %do.body1114.i.i ], [ %budget.sroa.21.2.i, %if.else1133.i.i ], [ %budget.sroa.21.2.i, %if.end1146.i.i ], [ %budget.sroa.21.0.i, %do.body1038.i.i ], [ %budget.sroa.21.0.i, %do.body974.i.i ], [ %budget.sroa.21.0.i, %if.then966.i.i ], [ %budget.sroa.21.0.i, %do.body881.i.i ], [ %budget.sroa.21.0.i, %do.body929.i.i ], [ %budget.sroa.21.0.i, %if.else921.i.i ], [ %budget.sroa.21.0.i, %do.body820.i.i ], [ %budget.sroa.21.0.i, %do.body756.i.i ], [ %budget.sroa.21.0.i, %if.then748.i.i ], [ %budget.sroa.21.0.i, %do.body663.i.i ], [ %budget.sroa.21.0.i, %do.body711.i.i ], [ %budget.sroa.21.0.i, %if.else703.i.i ] - %budget.sroa.7.2.i.be = phi i32 [ %budget.sroa.7.2.i, %if.end450.i.i ], [ %budget.sroa.7.2.i, %if.end463.i.i ], [ %budget.sroa.7.3.i, %do.body417.i.i ], [ %budget.sroa.7.3.i, %if.else409.i.i ], [ %budget.sroa.7.3.i, %do.body388.i.i ], [ %budget.sroa.7.2.i, %if.end489.i.i ], [ %budget.sroa.7.2.i, %if.end292.i.i ], [ %budget.sroa.7.2.i, %cond.false19.i574.i.i ], [ %budget.sroa.7.2.i, %cond.true13.i569.i.i ], [ %budget.sroa.7.2.i, %cond.false.i562.i.i ], [ %budget.sroa.7.2.i, %cond.true3.i556.i.i ], [ %budget.sroa.7.2.i, %cond.false19.i599.i.i ], [ %budget.sroa.7.2.i, %cond.true13.i594.i.i ], [ %budget.sroa.7.2.i, %cond.false.i587.i.i ], [ %budget.sroa.7.2.i, %cond.true3.i581.i.i ], [ %budget.sroa.7.2.i, %if.end231.i.i ], [ %budget.sroa.7.2.i, %cond.false19.i499.i.i ], [ %budget.sroa.7.2.i, %cond.true13.i494.i.i ], [ %budget.sroa.7.2.i, %cond.false.i487.i.i ], [ %budget.sroa.7.2.i, %cond.true3.i481.i.i ], [ %budget.sroa.7.2.i, %cond.false19.i524.i.i ], [ %budget.sroa.7.2.i, %cond.true13.i519.i.i ], [ %budget.sroa.7.2.i, %cond.false.i512.i.i ], [ %budget.sroa.7.2.i, %cond.true3.i506.i.i ], [ %budget.sroa.7.2.i, %if.end155.i.i ], [ %budget.sroa.7.2.i, %if.end1259.i.i ], [ %budget.sroa.7.6.i, %tr_ilg.exit779.i.i ], [ %budget.sroa.7.2.i, %do.body1175.i.i ], [ %budget.sroa.7.2.i, %if.else1194.i.i ], [ %budget.sroa.7.2.i, %if.end1207.i.i ], [ %budget.sroa.7.2.i, %do.body1114.i.i ], [ %budget.sroa.7.2.i, %if.else1133.i.i ], [ %budget.sroa.7.2.i, %if.end1146.i.i ], [ %budget.sroa.7.5.i, %do.body1038.i.i ], [ %budget.sroa.7.5.i, %do.body974.i.i ], [ %budget.sroa.7.5.i, %if.then966.i.i ], [ %budget.sroa.7.5.i, %do.body881.i.i ], [ %budget.sroa.7.5.i, %do.body929.i.i ], [ %budget.sroa.7.5.i, %if.else921.i.i ], [ %budget.sroa.7.5.i, %do.body820.i.i ], [ %budget.sroa.7.5.i, %do.body756.i.i ], [ %budget.sroa.7.5.i, %if.then748.i.i ], [ %budget.sroa.7.5.i, %do.body663.i.i ], [ %budget.sroa.7.5.i, %do.body711.i.i ], [ %budget.sroa.7.5.i, %if.else703.i.i ] - %budget.sroa.0.2.i.be = phi i32 [ 0, %if.end450.i.i ], [ 0, %if.end463.i.i ], [ %budget.sroa.0.3.i, %do.body417.i.i ], [ %budget.sroa.0.3.i, %if.else409.i.i ], [ %budget.sroa.0.3.i, %do.body388.i.i ], [ %budget.sroa.0.2.i, %if.end489.i.i ], [ %budget.sroa.0.2.i, %if.end292.i.i ], [ %budget.sroa.0.2.i, %cond.false19.i574.i.i ], [ %budget.sroa.0.2.i, %cond.true13.i569.i.i ], [ %budget.sroa.0.2.i, %cond.false.i562.i.i ], [ %budget.sroa.0.2.i, %cond.true3.i556.i.i ], [ %budget.sroa.0.2.i, %cond.false19.i599.i.i ], [ %budget.sroa.0.2.i, %cond.true13.i594.i.i ], [ %budget.sroa.0.2.i, %cond.false.i587.i.i ], [ %budget.sroa.0.2.i, %cond.true3.i581.i.i ], [ %budget.sroa.0.2.i, %if.end231.i.i ], [ %budget.sroa.0.2.i, %cond.false19.i499.i.i ], [ %budget.sroa.0.2.i, %cond.true13.i494.i.i ], [ %budget.sroa.0.2.i, %cond.false.i487.i.i ], [ %budget.sroa.0.2.i, %cond.true3.i481.i.i ], [ %budget.sroa.0.2.i, %cond.false19.i524.i.i ], [ %budget.sroa.0.2.i, %cond.true13.i519.i.i ], [ %budget.sroa.0.2.i, %cond.false.i512.i.i ], [ %budget.sroa.0.2.i, %cond.true3.i506.i.i ], [ %budget.sroa.0.2.i, %if.end155.i.i ], [ 0, %if.end1259.i.i ], [ %budget.sroa.0.6.i, %tr_ilg.exit779.i.i ], [ %budget.sroa.0.2.i, %do.body1175.i.i ], [ %budget.sroa.0.2.i, %if.else1194.i.i ], [ %budget.sroa.0.2.i, %if.end1207.i.i ], [ %budget.sroa.0.2.i, %do.body1114.i.i ], [ %budget.sroa.0.2.i, %if.else1133.i.i ], [ %budget.sroa.0.2.i, %if.end1146.i.i ], [ %budget.sroa.0.5.i, %do.body1038.i.i ], [ %budget.sroa.0.5.i, %do.body974.i.i ], [ %budget.sroa.0.5.i, %if.then966.i.i ], [ %budget.sroa.0.5.i, %do.body881.i.i ], [ %budget.sroa.0.5.i, %do.body929.i.i ], [ %budget.sroa.0.5.i, %if.else921.i.i ], [ %budget.sroa.0.5.i, %do.body820.i.i ], [ %budget.sroa.0.5.i, %do.body756.i.i ], [ %budget.sroa.0.5.i, %if.then748.i.i ], [ %budget.sroa.0.5.i, %do.body663.i.i ], [ %budget.sroa.0.5.i, %do.body711.i.i ], [ %budget.sroa.0.5.i, %if.else703.i.i ] - %last.addr.0.ph.i.i.be = phi ptr [ %last.addr.0.ph.i.i, %if.end450.i.i ], [ %209, %if.end463.i.i ], [ %last.addr.0.ph.i.i, %do.body417.i.i ], [ %incdec.ptr350.i.i, %if.else409.i.i ], [ %incdec.ptr350.i.i, %do.body388.i.i ], [ %214, %if.end489.i.i ], [ %190, %if.end292.i.i ], [ %last.addr.0.ph.i.i, %cond.false19.i574.i.i ], [ %last.addr.0.ph.i.i, %cond.true13.i569.i.i ], [ %last.addr.0.ph.i.i, %cond.false.i562.i.i ], [ %last.addr.0.ph.i.i, %cond.true3.i556.i.i ], [ %first.addr.0.i104.i, %cond.false19.i599.i.i ], [ %first.addr.0.i104.i, %cond.true13.i594.i.i ], [ %first.addr.0.i104.i, %cond.false.i587.i.i ], [ %first.addr.0.i104.i, %cond.true3.i581.i.i ], [ %168, %if.end231.i.i ], [ %first.addr.0.i104.i, %cond.false19.i499.i.i ], [ %first.addr.0.i104.i, %cond.true13.i494.i.i ], [ %first.addr.0.i104.i, %cond.false.i487.i.i ], [ %first.addr.0.i104.i, %cond.true3.i481.i.i ], [ %last.addr.0.ph.i.i, %cond.false19.i524.i.i ], [ %last.addr.0.ph.i.i, %cond.true13.i519.i.i ], [ %last.addr.0.ph.i.i, %cond.false.i512.i.i ], [ %last.addr.0.ph.i.i, %cond.true3.i506.i.i ], [ %151, %if.end155.i.i ], [ %383, %if.end1259.i.i ], [ %last.addr.0.ph.i.i, %tr_ilg.exit779.i.i ], [ %last.addr.0.ph.i.i, %do.body1175.i.i ], [ %add.ptr141.i.i, %if.else1194.i.i ], [ %374, %if.end1207.i.i ], [ %add.ptr141.i.i, %do.body1114.i.i ], [ %last.addr.0.ph.i.i, %if.else1133.i.i ], [ %369, %if.end1146.i.i ], [ %add.ptr147.i.i, %do.body1038.i.i ], [ %last.addr.0.ph.i.i, %do.body974.i.i ], [ %add.ptr147.i.i, %if.then966.i.i ], [ %last.addr.0.ph.i.i, %do.body881.i.i ], [ %add.ptr141.i.i, %do.body929.i.i ], [ %add.ptr147.i.i, %if.else921.i.i ], [ %add.ptr147.i.i, %do.body820.i.i ], [ %add.ptr141.i.i, %do.body756.i.i ], [ %add.ptr147.i.i, %if.then748.i.i ], [ %add.ptr141.i.i, %do.body663.i.i ], [ %last.addr.0.ph.i.i, %do.body711.i.i ], [ %add.ptr147.i.i, %if.else703.i.i ] - %first.addr.0.ph.i.i.be = phi ptr [ %incdec.ptr350.i.i, %if.end450.i.i ], [ %208, %if.end463.i.i ], [ %incdec.ptr350.i.i, %do.body417.i.i ], [ %first.addr.1.i.i, %if.else409.i.i ], [ %first.addr.1.i.i, %do.body388.i.i ], [ %213, %if.end489.i.i ], [ %189, %if.end292.i.i ], [ %last.addr.0.i103.i, %cond.false19.i574.i.i ], [ %last.addr.0.i103.i, %cond.true13.i569.i.i ], [ %last.addr.0.i103.i, %cond.false.i562.i.i ], [ %last.addr.0.i103.i, %cond.true3.i556.i.i ], [ %first.addr.0.ph.i.i, %cond.false19.i599.i.i ], [ %first.addr.0.ph.i.i, %cond.true13.i594.i.i ], [ %first.addr.0.ph.i.i, %cond.false.i587.i.i ], [ %first.addr.0.ph.i.i, %cond.true3.i581.i.i ], [ %167, %if.end231.i.i ], [ %first.addr.0.ph.i.i, %cond.false19.i499.i.i ], [ %first.addr.0.ph.i.i, %cond.true13.i494.i.i ], [ %first.addr.0.ph.i.i, %cond.false.i487.i.i ], [ %first.addr.0.ph.i.i, %cond.true3.i481.i.i ], [ %last.addr.0.i103.i, %cond.false19.i524.i.i ], [ %last.addr.0.i103.i, %cond.true13.i519.i.i ], [ %last.addr.0.i103.i, %cond.false.i512.i.i ], [ %last.addr.0.i103.i, %cond.true3.i506.i.i ], [ %150, %if.end155.i.i ], [ %382, %if.end1259.i.i ], [ %first.addr.0.ph.i.i, %tr_ilg.exit779.i.i ], [ %add.ptr147.i.i, %do.body1175.i.i ], [ %first.addr.0.ph.i.i, %if.else1194.i.i ], [ %373, %if.end1207.i.i ], [ %first.addr.0.ph.i.i, %do.body1114.i.i ], [ %add.ptr147.i.i, %if.else1133.i.i ], [ %368, %if.end1146.i.i ], [ %add.ptr141.i.i, %do.body1038.i.i ], [ %add.ptr147.i.i, %do.body974.i.i ], [ %add.ptr141.i.i, %if.then966.i.i ], [ %add.ptr147.i.i, %do.body881.i.i ], [ %first.addr.0.ph.i.i, %do.body929.i.i ], [ %add.ptr141.i.i, %if.else921.i.i ], [ %add.ptr141.i.i, %do.body820.i.i ], [ %first.addr.0.ph.i.i, %do.body756.i.i ], [ %add.ptr141.i.i, %if.then748.i.i ], [ %first.addr.0.ph.i.i, %do.body663.i.i ], [ %add.ptr147.i.i, %do.body711.i.i ], [ %add.ptr141.i.i, %if.else703.i.i ] - %ISAd.addr.0.ph.i.i.be = phi ptr [ %ISAd.addr.0.ph.i.i, %if.end450.i.i ], [ %207, %if.end463.i.i ], [ %ISAd.addr.0.ph.i.i, %do.body417.i.i ], [ %add.ptr419.i.i, %if.else409.i.i ], [ %add.ptr408.i.i, %do.body388.i.i ], [ %212, %if.end489.i.i ], [ %188, %if.end292.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.false19.i574.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.true13.i569.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.false.i562.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.true3.i556.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.false19.i599.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.true13.i594.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.false.i587.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.true3.i581.i.i ], [ %166, %if.end231.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.false19.i499.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.true13.i494.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.false.i487.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.true3.i481.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.false19.i524.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.true13.i519.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.false.i512.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.true3.i506.i.i ], [ %149, %if.end155.i.i ], [ %381, %if.end1259.i.i ], [ %add.ptr1246.i.i, %tr_ilg.exit779.i.i ], [ %ISAd.addr.0.ph.i.i, %do.body1175.i.i ], [ %ISAd.addr.0.ph.i.i, %if.else1194.i.i ], [ %372, %if.end1207.i.i ], [ %ISAd.addr.0.ph.i.i, %do.body1114.i.i ], [ %ISAd.addr.0.ph.i.i, %if.else1133.i.i ], [ %367, %if.end1146.i.i ], [ %add.ptr1077.i.i, %do.body1038.i.i ], [ %ISAd.addr.0.ph.i.i, %do.body974.i.i ], [ %add.ptr995.i.i, %if.then966.i.i ], [ %ISAd.addr.0.ph.i.i, %do.body881.i.i ], [ %ISAd.addr.0.ph.i.i, %do.body929.i.i ], [ %add.ptr931.i.i, %if.else921.i.i ], [ %add.ptr859.i.i, %do.body820.i.i ], [ %ISAd.addr.0.ph.i.i, %do.body756.i.i ], [ %add.ptr777.i.i, %if.then748.i.i ], [ %ISAd.addr.0.ph.i.i, %do.body663.i.i ], [ %ISAd.addr.0.ph.i.i, %do.body711.i.i ], [ %add.ptr713.i.i, %if.else703.i.i ] - %limit.0.ph.i.i.be = phi i32 [ -3, %if.end450.i.i ], [ %210, %if.end463.i.i ], [ -3, %do.body417.i.i ], [ %cond.i.i256, %if.else409.i.i ], [ %cond.i.i256, %do.body388.i.i ], [ %215, %if.end489.i.i ], [ %191, %if.end292.i.i ], [ %161, %cond.false19.i574.i.i ], [ %add18.i573.i.i, %cond.true13.i569.i.i ], [ %add9.i566.i.i, %cond.false.i562.i.i ], [ %add.i560.i.i, %cond.true3.i556.i.i ], [ %165, %cond.false19.i599.i.i ], [ %add18.i598.i.i, %cond.true13.i594.i.i ], [ %add9.i591.i.i, %cond.false.i587.i.i ], [ %add.i585.i.i, %cond.true3.i581.i.i ], [ %169, %if.end231.i.i ], [ %144, %cond.false19.i499.i.i ], [ %add18.i498.i.i, %cond.true13.i494.i.i ], [ %add9.i491.i.i, %cond.false.i487.i.i ], [ %add.i485.i.i, %cond.true3.i481.i.i ], [ %148, %cond.false19.i524.i.i ], [ %add18.i523.i.i, %cond.true13.i519.i.i ], [ %add9.i516.i.i, %cond.false.i512.i.i ], [ %add.i510.i.i, %cond.true3.i506.i.i ], [ %152, %if.end155.i.i ], [ %384, %if.end1259.i.i ], [ %cond28.i763.i.i, %tr_ilg.exit779.i.i ], [ %dec520.le.i.i, %do.body1175.i.i ], [ %dec520.le.i.i, %if.else1194.i.i ], [ %375, %if.end1207.i.i ], [ %dec520.le.i.i, %do.body1114.i.i ], [ %dec520.le.i.i, %if.else1133.i.i ], [ %370, %if.end1146.i.i ], [ %cond585.i.i, %do.body1038.i.i ], [ %dec520.le.i.i, %do.body974.i.i ], [ %cond585.i.i, %if.then966.i.i ], [ %dec520.le.i.i, %do.body881.i.i ], [ %dec520.le.i.i, %do.body929.i.i ], [ %cond585.i.i, %if.else921.i.i ], [ %cond585.i.i, %do.body820.i.i ], [ %dec520.le.i.i, %do.body756.i.i ], [ %cond585.i.i, %if.then748.i.i ], [ %dec520.le.i.i, %do.body663.i.i ], [ %dec520.le.i.i, %do.body711.i.i ], [ %cond585.i.i, %if.else703.i.i ] - %ssize.0.ph.i.i.be = phi i32 [ %ssize.0.ph.i.i, %if.end450.i.i ], [ %dec464.i.i, %if.end463.i.i ], [ %inc432.i.i, %do.body417.i.i ], [ %ssize.0.ph.i.i, %if.else409.i.i ], [ %inc401.i.i, %do.body388.i.i ], [ %dec490.i.i, %if.end489.i.i ], [ %dec293.i.i, %if.end292.i.i ], [ %inc201.i.i, %cond.false19.i574.i.i ], [ %inc201.i.i, %cond.true13.i569.i.i ], [ %inc201.i.i, %cond.false.i562.i.i ], [ %inc201.i.i, %cond.true3.i556.i.i ], [ %ssize.1.i.i, %cond.false19.i599.i.i ], [ %ssize.1.i.i, %cond.true13.i594.i.i ], [ %ssize.1.i.i, %cond.false.i587.i.i ], [ %ssize.1.i.i, %cond.true3.i581.i.i ], [ %dec232.i.i, %if.end231.i.i ], [ %inc126.i.i, %cond.false19.i499.i.i ], [ %inc126.i.i, %cond.true13.i494.i.i ], [ %inc126.i.i, %cond.false.i487.i.i ], [ %inc126.i.i, %cond.true3.i481.i.i ], [ %ssize.1.i.i, %cond.false19.i524.i.i ], [ %ssize.1.i.i, %cond.true13.i519.i.i ], [ %ssize.1.i.i, %cond.false.i512.i.i ], [ %ssize.1.i.i, %cond.true3.i506.i.i ], [ %dec.i.i, %if.end155.i.i ], [ %dec1260.i.i, %if.end1259.i.i ], [ %ssize.0.ph.i.i, %tr_ilg.exit779.i.i ], [ %inc1188.i.i, %do.body1175.i.i ], [ %ssize.0.ph.i.i, %if.else1194.i.i ], [ %dec1208.i.i, %if.end1207.i.i ], [ %inc1127.i.i, %do.body1114.i.i ], [ %ssize.0.ph.i.i, %if.else1133.i.i ], [ %dec1147.i.i, %if.end1146.i.i ], [ %inc1070.i.i, %do.body1038.i.i ], [ %inc1008.i.i, %do.body974.i.i ], [ %inc987.i.i, %if.then966.i.i ], [ %inc915.i.i, %do.body881.i.i ], [ %inc944.i.i, %do.body929.i.i ], [ %ssize.0.ph.i.i, %if.else921.i.i ], [ %inc852.i.i, %do.body820.i.i ], [ %inc790.i.i, %do.body756.i.i ], [ %inc769.i.i, %if.then748.i.i ], [ %inc697.i.i, %do.body663.i.i ], [ %inc726.i.i, %do.body711.i.i ], [ %ssize.0.ph.i.i, %if.else703.i.i ] - %trlink.0.ph.i.i.be = phi i32 [ %trlink.0.ph.i.i, %if.end450.i.i ], [ %211, %if.end463.i.i ], [ %trlink.0.ph.i.i, %do.body417.i.i ], [ %trlink.0.ph.i.i, %if.else409.i.i ], [ %trlink.0.ph.i.i, %do.body388.i.i ], [ %216, %if.end489.i.i ], [ %192, %if.end292.i.i ], [ %trlink.1.i.i, %cond.false19.i574.i.i ], [ %trlink.1.i.i, %cond.true13.i569.i.i ], [ %trlink.1.i.i, %cond.false.i562.i.i ], [ %trlink.1.i.i, %cond.true3.i556.i.i ], [ %trlink.1.i.i, %cond.false19.i599.i.i ], [ %trlink.1.i.i, %cond.true13.i594.i.i ], [ %trlink.1.i.i, %cond.false.i587.i.i ], [ %trlink.1.i.i, %cond.true3.i581.i.i ], [ %170, %if.end231.i.i ], [ %trlink.1.i.i, %cond.false19.i499.i.i ], [ %trlink.1.i.i, %cond.true13.i494.i.i ], [ %trlink.1.i.i, %cond.false.i487.i.i ], [ %trlink.1.i.i, %cond.true3.i481.i.i ], [ %trlink.1.i.i, %cond.false19.i524.i.i ], [ %trlink.1.i.i, %cond.true13.i519.i.i ], [ %trlink.1.i.i, %cond.false.i512.i.i ], [ %trlink.1.i.i, %cond.true3.i506.i.i ], [ %153, %if.end155.i.i ], [ %385, %if.end1259.i.i ], [ %trlink.0.ph.i.i, %tr_ilg.exit779.i.i ], [ %trlink.0.ph.i.i, %do.body1175.i.i ], [ %trlink.0.ph.i.i, %if.else1194.i.i ], [ %376, %if.end1207.i.i ], [ %trlink.0.ph.i.i, %do.body1114.i.i ], [ %trlink.0.ph.i.i, %if.else1133.i.i ], [ %371, %if.end1146.i.i ], [ %trlink.0.ph.i.i, %do.body1038.i.i ], [ %trlink.0.ph.i.i, %do.body974.i.i ], [ %trlink.0.ph.i.i, %if.then966.i.i ], [ %trlink.0.ph.i.i, %do.body881.i.i ], [ %trlink.0.ph.i.i, %do.body929.i.i ], [ %trlink.0.ph.i.i, %if.else921.i.i ], [ %trlink.0.ph.i.i, %do.body820.i.i ], [ %trlink.0.ph.i.i, %do.body756.i.i ], [ %trlink.0.ph.i.i, %if.then748.i.i ], [ %trlink.0.ph.i.i, %do.body663.i.i ], [ %trlink.0.ph.i.i, %do.body711.i.i ], [ %trlink.0.ph.i.i, %if.else703.i.i ] +for.cond.outer.i.i.backedge: ; preds = %if.end1259.i.i, %tr_ilg.exit778.i.i, %if.end1207.i.i, %if.else1194.i.i, %do.body1175.i.i, %if.end1146.i.i, %if.else1133.i.i, %do.body1114.i.i, %do.body1038.i.i, %do.body974.i.i, %if.then966.i.i, %do.body929.i.i, %if.else921.i.i, %do.body881.i.i, %do.body820.i.i, %do.body756.i.i, %if.then748.i.i, %do.body711.i.i, %if.else703.i.i, %do.body663.i.i, %if.end489.i.i, %if.end463.i.i, %if.end450.i.i, %do.body417.i.i, %if.else409.i.i, %do.body388.i.i, %if.end292.i.i, %if.end231.i.i, %cond.false19.i599.i.i, %cond.true13.i594.i.i, %cond.false.i587.i.i, %cond.true3.i581.i.i, %cond.false19.i574.i.i, %cond.true13.i569.i.i, %cond.false.i562.i.i, %cond.true3.i556.i.i, %if.end155.i.i, %cond.false19.i524.i.i, %cond.true13.i519.i.i, %cond.false.i512.i.i, %cond.true3.i506.i.i, %cond.false19.i499.i.i, %cond.true13.i494.i.i, %cond.false.i487.i.i, %cond.true3.i481.i.i + %budget.sroa.21.0.i.be = phi i32 [ %add.i656.i.i, %if.end450.i.i ], [ %add.i656.i.i, %if.end463.i.i ], [ %budget.sroa.21.0.i, %do.body417.i.i ], [ %budget.sroa.21.0.i, %if.else409.i.i ], [ %budget.sroa.21.0.i, %do.body388.i.i ], [ %budget.sroa.21.0.i, %if.end489.i.i ], [ %budget.sroa.21.0.i, %if.end292.i.i ], [ %budget.sroa.21.0.i, %cond.false19.i574.i.i ], [ %budget.sroa.21.0.i, %cond.true13.i569.i.i ], [ %budget.sroa.21.0.i, %cond.false.i562.i.i ], [ %budget.sroa.21.0.i, %cond.true3.i556.i.i ], [ %budget.sroa.21.0.i, %cond.false19.i599.i.i ], [ %budget.sroa.21.0.i, %cond.true13.i594.i.i ], [ %budget.sroa.21.0.i, %cond.false.i587.i.i ], [ %budget.sroa.21.0.i, %cond.true3.i581.i.i ], [ %budget.sroa.21.0.i, %if.end231.i.i ], [ %budget.sroa.21.0.i, %cond.false19.i499.i.i ], [ %budget.sroa.21.0.i, %cond.true13.i494.i.i ], [ %budget.sroa.21.0.i, %cond.false.i487.i.i ], [ %budget.sroa.21.0.i, %cond.true3.i481.i.i ], [ %budget.sroa.21.0.i, %cond.false19.i524.i.i ], [ %budget.sroa.21.0.i, %cond.true13.i519.i.i ], [ %budget.sroa.21.0.i, %cond.false.i512.i.i ], [ %budget.sroa.21.0.i, %cond.true3.i506.i.i ], [ %budget.sroa.21.0.i, %if.end155.i.i ], [ %add.i752.i.i, %if.end1259.i.i ], [ %budget.sroa.21.0.i, %tr_ilg.exit778.i.i ], [ %budget.sroa.21.2.i, %do.body1175.i.i ], [ %budget.sroa.21.2.i, %if.else1194.i.i ], [ %budget.sroa.21.2.i, %if.end1207.i.i ], [ %budget.sroa.21.2.i, %do.body1114.i.i ], [ %budget.sroa.21.2.i, %if.else1133.i.i ], [ %budget.sroa.21.2.i, %if.end1146.i.i ], [ %budget.sroa.21.0.i, %do.body1038.i.i ], [ %budget.sroa.21.0.i, %do.body974.i.i ], [ %budget.sroa.21.0.i, %if.then966.i.i ], [ %budget.sroa.21.0.i, %do.body881.i.i ], [ %budget.sroa.21.0.i, %do.body929.i.i ], [ %budget.sroa.21.0.i, %if.else921.i.i ], [ %budget.sroa.21.0.i, %do.body820.i.i ], [ %budget.sroa.21.0.i, %do.body756.i.i ], [ %budget.sroa.21.0.i, %if.then748.i.i ], [ %budget.sroa.21.0.i, %do.body663.i.i ], [ %budget.sroa.21.0.i, %do.body711.i.i ], [ %budget.sroa.21.0.i, %if.else703.i.i ] + %budget.sroa.7.2.i.be = phi i32 [ %budget.sroa.7.2.i, %if.end450.i.i ], [ %budget.sroa.7.2.i, %if.end463.i.i ], [ %budget.sroa.7.3.i, %do.body417.i.i ], [ %budget.sroa.7.3.i, %if.else409.i.i ], [ %budget.sroa.7.3.i, %do.body388.i.i ], [ %budget.sroa.7.2.i, %if.end489.i.i ], [ %budget.sroa.7.2.i, %if.end292.i.i ], [ %budget.sroa.7.2.i, %cond.false19.i574.i.i ], [ %budget.sroa.7.2.i, %cond.true13.i569.i.i ], [ %budget.sroa.7.2.i, %cond.false.i562.i.i ], [ %budget.sroa.7.2.i, %cond.true3.i556.i.i ], [ %budget.sroa.7.2.i, %cond.false19.i599.i.i ], [ %budget.sroa.7.2.i, %cond.true13.i594.i.i ], [ %budget.sroa.7.2.i, %cond.false.i587.i.i ], [ %budget.sroa.7.2.i, %cond.true3.i581.i.i ], [ %budget.sroa.7.2.i, %if.end231.i.i ], [ %budget.sroa.7.2.i, %cond.false19.i499.i.i ], [ %budget.sroa.7.2.i, %cond.true13.i494.i.i ], [ %budget.sroa.7.2.i, %cond.false.i487.i.i ], [ %budget.sroa.7.2.i, %cond.true3.i481.i.i ], [ %budget.sroa.7.2.i, %cond.false19.i524.i.i ], [ %budget.sroa.7.2.i, %cond.true13.i519.i.i ], [ %budget.sroa.7.2.i, %cond.false.i512.i.i ], [ %budget.sroa.7.2.i, %cond.true3.i506.i.i ], [ %budget.sroa.7.2.i, %if.end155.i.i ], [ %budget.sroa.7.2.i, %if.end1259.i.i ], [ %budget.sroa.7.6.i, %tr_ilg.exit778.i.i ], [ %budget.sroa.7.2.i, %do.body1175.i.i ], [ %budget.sroa.7.2.i, %if.else1194.i.i ], [ %budget.sroa.7.2.i, %if.end1207.i.i ], [ %budget.sroa.7.2.i, %do.body1114.i.i ], [ %budget.sroa.7.2.i, %if.else1133.i.i ], [ %budget.sroa.7.2.i, %if.end1146.i.i ], [ %budget.sroa.7.5.i, %do.body1038.i.i ], [ %budget.sroa.7.5.i, %do.body974.i.i ], [ %budget.sroa.7.5.i, %if.then966.i.i ], [ %budget.sroa.7.5.i, %do.body881.i.i ], [ %budget.sroa.7.5.i, %do.body929.i.i ], [ %budget.sroa.7.5.i, %if.else921.i.i ], [ %budget.sroa.7.5.i, %do.body820.i.i ], [ %budget.sroa.7.5.i, %do.body756.i.i ], [ %budget.sroa.7.5.i, %if.then748.i.i ], [ %budget.sroa.7.5.i, %do.body663.i.i ], [ %budget.sroa.7.5.i, %do.body711.i.i ], [ %budget.sroa.7.5.i, %if.else703.i.i ] + %budget.sroa.0.2.i.be = phi i32 [ 0, %if.end450.i.i ], [ 0, %if.end463.i.i ], [ %budget.sroa.0.3.i, %do.body417.i.i ], [ %budget.sroa.0.3.i, %if.else409.i.i ], [ %budget.sroa.0.3.i, %do.body388.i.i ], [ %budget.sroa.0.2.i, %if.end489.i.i ], [ %budget.sroa.0.2.i, %if.end292.i.i ], [ %budget.sroa.0.2.i, %cond.false19.i574.i.i ], [ %budget.sroa.0.2.i, %cond.true13.i569.i.i ], [ %budget.sroa.0.2.i, %cond.false.i562.i.i ], [ %budget.sroa.0.2.i, %cond.true3.i556.i.i ], [ %budget.sroa.0.2.i, %cond.false19.i599.i.i ], [ %budget.sroa.0.2.i, %cond.true13.i594.i.i ], [ %budget.sroa.0.2.i, %cond.false.i587.i.i ], [ %budget.sroa.0.2.i, %cond.true3.i581.i.i ], [ %budget.sroa.0.2.i, %if.end231.i.i ], [ %budget.sroa.0.2.i, %cond.false19.i499.i.i ], [ %budget.sroa.0.2.i, %cond.true13.i494.i.i ], [ %budget.sroa.0.2.i, %cond.false.i487.i.i ], [ %budget.sroa.0.2.i, %cond.true3.i481.i.i ], [ %budget.sroa.0.2.i, %cond.false19.i524.i.i ], [ %budget.sroa.0.2.i, %cond.true13.i519.i.i ], [ %budget.sroa.0.2.i, %cond.false.i512.i.i ], [ %budget.sroa.0.2.i, %cond.true3.i506.i.i ], [ %budget.sroa.0.2.i, %if.end155.i.i ], [ 0, %if.end1259.i.i ], [ %budget.sroa.0.6.i, %tr_ilg.exit778.i.i ], [ %budget.sroa.0.2.i, %do.body1175.i.i ], [ %budget.sroa.0.2.i, %if.else1194.i.i ], [ %budget.sroa.0.2.i, %if.end1207.i.i ], [ %budget.sroa.0.2.i, %do.body1114.i.i ], [ %budget.sroa.0.2.i, %if.else1133.i.i ], [ %budget.sroa.0.2.i, %if.end1146.i.i ], [ %budget.sroa.0.5.i, %do.body1038.i.i ], [ %budget.sroa.0.5.i, %do.body974.i.i ], [ %budget.sroa.0.5.i, %if.then966.i.i ], [ %budget.sroa.0.5.i, %do.body881.i.i ], [ %budget.sroa.0.5.i, %do.body929.i.i ], [ %budget.sroa.0.5.i, %if.else921.i.i ], [ %budget.sroa.0.5.i, %do.body820.i.i ], [ %budget.sroa.0.5.i, %do.body756.i.i ], [ %budget.sroa.0.5.i, %if.then748.i.i ], [ %budget.sroa.0.5.i, %do.body663.i.i ], [ %budget.sroa.0.5.i, %do.body711.i.i ], [ %budget.sroa.0.5.i, %if.else703.i.i ] + %last.addr.0.ph.i.i.be = phi ptr [ %last.addr.0.ph.i.i, %if.end450.i.i ], [ %209, %if.end463.i.i ], [ %last.addr.0.ph.i.i, %do.body417.i.i ], [ %incdec.ptr350.i.i, %if.else409.i.i ], [ %incdec.ptr350.i.i, %do.body388.i.i ], [ %214, %if.end489.i.i ], [ %190, %if.end292.i.i ], [ %last.addr.0.ph.i.i, %cond.false19.i574.i.i ], [ %last.addr.0.ph.i.i, %cond.true13.i569.i.i ], [ %last.addr.0.ph.i.i, %cond.false.i562.i.i ], [ %last.addr.0.ph.i.i, %cond.true3.i556.i.i ], [ %first.addr.0.i104.i, %cond.false19.i599.i.i ], [ %first.addr.0.i104.i, %cond.true13.i594.i.i ], [ %first.addr.0.i104.i, %cond.false.i587.i.i ], [ %first.addr.0.i104.i, %cond.true3.i581.i.i ], [ %168, %if.end231.i.i ], [ %first.addr.0.i104.i, %cond.false19.i499.i.i ], [ %first.addr.0.i104.i, %cond.true13.i494.i.i ], [ %first.addr.0.i104.i, %cond.false.i487.i.i ], [ %first.addr.0.i104.i, %cond.true3.i481.i.i ], [ %last.addr.0.ph.i.i, %cond.false19.i524.i.i ], [ %last.addr.0.ph.i.i, %cond.true13.i519.i.i ], [ %last.addr.0.ph.i.i, %cond.false.i512.i.i ], [ %last.addr.0.ph.i.i, %cond.true3.i506.i.i ], [ %151, %if.end155.i.i ], [ %383, %if.end1259.i.i ], [ %last.addr.0.ph.i.i, %tr_ilg.exit778.i.i ], [ %last.addr.0.ph.i.i, %do.body1175.i.i ], [ %add.ptr141.i.i, %if.else1194.i.i ], [ %374, %if.end1207.i.i ], [ %add.ptr141.i.i, %do.body1114.i.i ], [ %last.addr.0.ph.i.i, %if.else1133.i.i ], [ %369, %if.end1146.i.i ], [ %add.ptr147.i.i, %do.body1038.i.i ], [ %last.addr.0.ph.i.i, %do.body974.i.i ], [ %add.ptr147.i.i, %if.then966.i.i ], [ %last.addr.0.ph.i.i, %do.body881.i.i ], [ %add.ptr141.i.i, %do.body929.i.i ], [ %add.ptr147.i.i, %if.else921.i.i ], [ %add.ptr147.i.i, %do.body820.i.i ], [ %add.ptr141.i.i, %do.body756.i.i ], [ %add.ptr147.i.i, %if.then748.i.i ], [ %add.ptr141.i.i, %do.body663.i.i ], [ %last.addr.0.ph.i.i, %do.body711.i.i ], [ %add.ptr147.i.i, %if.else703.i.i ] + %first.addr.0.ph.i.i.be = phi ptr [ %incdec.ptr350.i.i, %if.end450.i.i ], [ %208, %if.end463.i.i ], [ %incdec.ptr350.i.i, %do.body417.i.i ], [ %first.addr.1.i.i, %if.else409.i.i ], [ %first.addr.1.i.i, %do.body388.i.i ], [ %213, %if.end489.i.i ], [ %189, %if.end292.i.i ], [ %last.addr.0.i103.i, %cond.false19.i574.i.i ], [ %last.addr.0.i103.i, %cond.true13.i569.i.i ], [ %last.addr.0.i103.i, %cond.false.i562.i.i ], [ %last.addr.0.i103.i, %cond.true3.i556.i.i ], [ %first.addr.0.ph.i.i, %cond.false19.i599.i.i ], [ %first.addr.0.ph.i.i, %cond.true13.i594.i.i ], [ %first.addr.0.ph.i.i, %cond.false.i587.i.i ], [ %first.addr.0.ph.i.i, %cond.true3.i581.i.i ], [ %167, %if.end231.i.i ], [ %first.addr.0.ph.i.i, %cond.false19.i499.i.i ], [ %first.addr.0.ph.i.i, %cond.true13.i494.i.i ], [ %first.addr.0.ph.i.i, %cond.false.i487.i.i ], [ %first.addr.0.ph.i.i, %cond.true3.i481.i.i ], [ %last.addr.0.i103.i, %cond.false19.i524.i.i ], [ %last.addr.0.i103.i, %cond.true13.i519.i.i ], [ %last.addr.0.i103.i, %cond.false.i512.i.i ], [ %last.addr.0.i103.i, %cond.true3.i506.i.i ], [ %150, %if.end155.i.i ], [ %382, %if.end1259.i.i ], [ %first.addr.0.ph.i.i, %tr_ilg.exit778.i.i ], [ %add.ptr147.i.i, %do.body1175.i.i ], [ %first.addr.0.ph.i.i, %if.else1194.i.i ], [ %373, %if.end1207.i.i ], [ %first.addr.0.ph.i.i, %do.body1114.i.i ], [ %add.ptr147.i.i, %if.else1133.i.i ], [ %368, %if.end1146.i.i ], [ %add.ptr141.i.i, %do.body1038.i.i ], [ %add.ptr147.i.i, %do.body974.i.i ], [ %add.ptr141.i.i, %if.then966.i.i ], [ %add.ptr147.i.i, %do.body881.i.i ], [ %first.addr.0.ph.i.i, %do.body929.i.i ], [ %add.ptr141.i.i, %if.else921.i.i ], [ %add.ptr141.i.i, %do.body820.i.i ], [ %first.addr.0.ph.i.i, %do.body756.i.i ], [ %add.ptr141.i.i, %if.then748.i.i ], [ %first.addr.0.ph.i.i, %do.body663.i.i ], [ %add.ptr147.i.i, %do.body711.i.i ], [ %add.ptr141.i.i, %if.else703.i.i ] + %ISAd.addr.0.ph.i.i.be = phi ptr [ %ISAd.addr.0.ph.i.i, %if.end450.i.i ], [ %207, %if.end463.i.i ], [ %ISAd.addr.0.ph.i.i, %do.body417.i.i ], [ %add.ptr419.i.i, %if.else409.i.i ], [ %add.ptr408.i.i, %do.body388.i.i ], [ %212, %if.end489.i.i ], [ %188, %if.end292.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.false19.i574.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.true13.i569.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.false.i562.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.true3.i556.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.false19.i599.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.true13.i594.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.false.i587.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.true3.i581.i.i ], [ %166, %if.end231.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.false19.i499.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.true13.i494.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.false.i487.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.true3.i481.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.false19.i524.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.true13.i519.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.false.i512.i.i ], [ %ISAd.addr.0.ph.i.i, %cond.true3.i506.i.i ], [ %149, %if.end155.i.i ], [ %381, %if.end1259.i.i ], [ %add.ptr1246.i.i, %tr_ilg.exit778.i.i ], [ %ISAd.addr.0.ph.i.i, %do.body1175.i.i ], [ %ISAd.addr.0.ph.i.i, %if.else1194.i.i ], [ %372, %if.end1207.i.i ], [ %ISAd.addr.0.ph.i.i, %do.body1114.i.i ], [ %ISAd.addr.0.ph.i.i, %if.else1133.i.i ], [ %367, %if.end1146.i.i ], [ %add.ptr1077.i.i, %do.body1038.i.i ], [ %ISAd.addr.0.ph.i.i, %do.body974.i.i ], [ %add.ptr995.i.i, %if.then966.i.i ], [ %ISAd.addr.0.ph.i.i, %do.body881.i.i ], [ %ISAd.addr.0.ph.i.i, %do.body929.i.i ], [ %add.ptr931.i.i, %if.else921.i.i ], [ %add.ptr859.i.i, %do.body820.i.i ], [ %ISAd.addr.0.ph.i.i, %do.body756.i.i ], [ %add.ptr777.i.i, %if.then748.i.i ], [ %ISAd.addr.0.ph.i.i, %do.body663.i.i ], [ %ISAd.addr.0.ph.i.i, %do.body711.i.i ], [ %add.ptr713.i.i, %if.else703.i.i ] + %limit.0.ph.i.i.be = phi i32 [ -3, %if.end450.i.i ], [ %210, %if.end463.i.i ], [ -3, %do.body417.i.i ], [ %cond.i.i256, %if.else409.i.i ], [ %cond.i.i256, %do.body388.i.i ], [ %215, %if.end489.i.i ], [ %191, %if.end292.i.i ], [ %161, %cond.false19.i574.i.i ], [ %add18.i573.i.i, %cond.true13.i569.i.i ], [ %add9.i566.i.i, %cond.false.i562.i.i ], [ %add.i560.i.i, %cond.true3.i556.i.i ], [ %165, %cond.false19.i599.i.i ], [ %add18.i598.i.i, %cond.true13.i594.i.i ], [ %add9.i591.i.i, %cond.false.i587.i.i ], [ %add.i585.i.i, %cond.true3.i581.i.i ], [ %169, %if.end231.i.i ], [ %144, %cond.false19.i499.i.i ], [ %add18.i498.i.i, %cond.true13.i494.i.i ], [ %add9.i491.i.i, %cond.false.i487.i.i ], [ %add.i485.i.i, %cond.true3.i481.i.i ], [ %148, %cond.false19.i524.i.i ], [ %add18.i523.i.i, %cond.true13.i519.i.i ], [ %add9.i516.i.i, %cond.false.i512.i.i ], [ %add.i510.i.i, %cond.true3.i506.i.i ], [ %152, %if.end155.i.i ], [ %384, %if.end1259.i.i ], [ %cond28.i762.i.i, %tr_ilg.exit778.i.i ], [ %dec520.le.i.i, %do.body1175.i.i ], [ %dec520.le.i.i, %if.else1194.i.i ], [ %375, %if.end1207.i.i ], [ %dec520.le.i.i, %do.body1114.i.i ], [ %dec520.le.i.i, %if.else1133.i.i ], [ %370, %if.end1146.i.i ], [ %cond585.i.i, %do.body1038.i.i ], [ %dec520.le.i.i, %do.body974.i.i ], [ %cond585.i.i, %if.then966.i.i ], [ %dec520.le.i.i, %do.body881.i.i ], [ %dec520.le.i.i, %do.body929.i.i ], [ %cond585.i.i, %if.else921.i.i ], [ %cond585.i.i, %do.body820.i.i ], [ %dec520.le.i.i, %do.body756.i.i ], [ %cond585.i.i, %if.then748.i.i ], [ %dec520.le.i.i, %do.body663.i.i ], [ %dec520.le.i.i, %do.body711.i.i ], [ %cond585.i.i, %if.else703.i.i ] + %ssize.0.ph.i.i.be = phi i32 [ %ssize.0.ph.i.i, %if.end450.i.i ], [ %dec464.i.i, %if.end463.i.i ], [ %inc432.i.i, %do.body417.i.i ], [ %ssize.0.ph.i.i, %if.else409.i.i ], [ %inc401.i.i, %do.body388.i.i ], [ %dec490.i.i, %if.end489.i.i ], [ %dec293.i.i, %if.end292.i.i ], [ %inc201.i.i, %cond.false19.i574.i.i ], [ %inc201.i.i, %cond.true13.i569.i.i ], [ %inc201.i.i, %cond.false.i562.i.i ], [ %inc201.i.i, %cond.true3.i556.i.i ], [ %ssize.1.i.i, %cond.false19.i599.i.i ], [ %ssize.1.i.i, %cond.true13.i594.i.i ], [ %ssize.1.i.i, %cond.false.i587.i.i ], [ %ssize.1.i.i, %cond.true3.i581.i.i ], [ %dec232.i.i, %if.end231.i.i ], [ %inc126.i.i, %cond.false19.i499.i.i ], [ %inc126.i.i, %cond.true13.i494.i.i ], [ %inc126.i.i, %cond.false.i487.i.i ], [ %inc126.i.i, %cond.true3.i481.i.i ], [ %ssize.1.i.i, %cond.false19.i524.i.i ], [ %ssize.1.i.i, %cond.true13.i519.i.i ], [ %ssize.1.i.i, %cond.false.i512.i.i ], [ %ssize.1.i.i, %cond.true3.i506.i.i ], [ %dec.i.i, %if.end155.i.i ], [ %dec1260.i.i, %if.end1259.i.i ], [ %ssize.0.ph.i.i, %tr_ilg.exit778.i.i ], [ %inc1188.i.i, %do.body1175.i.i ], [ %ssize.0.ph.i.i, %if.else1194.i.i ], [ %dec1208.i.i, %if.end1207.i.i ], [ %inc1127.i.i, %do.body1114.i.i ], [ %ssize.0.ph.i.i, %if.else1133.i.i ], [ %dec1147.i.i, %if.end1146.i.i ], [ %inc1070.i.i, %do.body1038.i.i ], [ %inc1008.i.i, %do.body974.i.i ], [ %inc987.i.i, %if.then966.i.i ], [ %inc915.i.i, %do.body881.i.i ], [ %inc944.i.i, %do.body929.i.i ], [ %ssize.0.ph.i.i, %if.else921.i.i ], [ %inc852.i.i, %do.body820.i.i ], [ %inc790.i.i, %do.body756.i.i ], [ %inc769.i.i, %if.then748.i.i ], [ %inc697.i.i, %do.body663.i.i ], [ %inc726.i.i, %do.body711.i.i ], [ %ssize.0.ph.i.i, %if.else703.i.i ] + %trlink.0.ph.i.i.be = phi i32 [ %trlink.0.ph.i.i, %if.end450.i.i ], [ %211, %if.end463.i.i ], [ %trlink.0.ph.i.i, %do.body417.i.i ], [ %trlink.0.ph.i.i, %if.else409.i.i ], [ %trlink.0.ph.i.i, %do.body388.i.i ], [ %216, %if.end489.i.i ], [ %192, %if.end292.i.i ], [ %trlink.1.i.i, %cond.false19.i574.i.i ], [ %trlink.1.i.i, %cond.true13.i569.i.i ], [ %trlink.1.i.i, %cond.false.i562.i.i ], [ %trlink.1.i.i, %cond.true3.i556.i.i ], [ %trlink.1.i.i, %cond.false19.i599.i.i ], [ %trlink.1.i.i, %cond.true13.i594.i.i ], [ %trlink.1.i.i, %cond.false.i587.i.i ], [ %trlink.1.i.i, %cond.true3.i581.i.i ], [ %170, %if.end231.i.i ], [ %trlink.1.i.i, %cond.false19.i499.i.i ], [ %trlink.1.i.i, %cond.true13.i494.i.i ], [ %trlink.1.i.i, %cond.false.i487.i.i ], [ %trlink.1.i.i, %cond.true3.i481.i.i ], [ %trlink.1.i.i, %cond.false19.i524.i.i ], [ %trlink.1.i.i, %cond.true13.i519.i.i ], [ %trlink.1.i.i, %cond.false.i512.i.i ], [ %trlink.1.i.i, %cond.true3.i506.i.i ], [ %153, %if.end155.i.i ], [ %385, %if.end1259.i.i ], [ %trlink.0.ph.i.i, %tr_ilg.exit778.i.i ], [ %trlink.0.ph.i.i, %do.body1175.i.i ], [ %trlink.0.ph.i.i, %if.else1194.i.i ], [ %376, %if.end1207.i.i ], [ %trlink.0.ph.i.i, %do.body1114.i.i ], [ %trlink.0.ph.i.i, %if.else1133.i.i ], [ %371, %if.end1146.i.i ], [ %trlink.0.ph.i.i, %do.body1038.i.i ], [ %trlink.0.ph.i.i, %do.body974.i.i ], [ %trlink.0.ph.i.i, %if.then966.i.i ], [ %trlink.0.ph.i.i, %do.body881.i.i ], [ %trlink.0.ph.i.i, %do.body929.i.i ], [ %trlink.0.ph.i.i, %if.else921.i.i ], [ %trlink.0.ph.i.i, %do.body820.i.i ], [ %trlink.0.ph.i.i, %do.body756.i.i ], [ %trlink.0.ph.i.i, %if.then748.i.i ], [ %trlink.0.ph.i.i, %do.body663.i.i ], [ %trlink.0.ph.i.i, %do.body711.i.i ], [ %trlink.0.ph.i.i, %if.else703.i.i ] br label %for.cond.outer.i.i tr_introsort.exit.i: ; preds = %do.body1255.i.i, %do.body1203.i.i, %do.body1142.i.i, %do.body485.i.i, %do.body459.i.i, %do.body288.i.i, %do.body227.i.i, %do.body151.i.i %budget.sroa.0.2.lcssa.i = phi i32 [ %budget.sroa.0.2.i, %do.body151.i.i ], [ %budget.sroa.0.2.i, %do.body227.i.i ], [ %budget.sroa.0.2.i, %do.body288.i.i ], [ 0, %do.body459.i.i ], [ %budget.sroa.0.2.i, %do.body485.i.i ], [ %budget.sroa.0.2.i, %do.body1142.i.i ], [ %budget.sroa.0.2.i, %do.body1203.i.i ], [ 0, %do.body1255.i.i ] - %budget.sroa.21.3.i = phi i32 [ %budget.sroa.21.0.i, %do.body151.i.i ], [ %budget.sroa.21.0.i, %do.body227.i.i ], [ %budget.sroa.21.0.i, %do.body288.i.i ], [ %add.i656.i.i, %do.body459.i.i ], [ %budget.sroa.21.0.i, %do.body485.i.i ], [ %budget.sroa.21.2.i, %do.body1142.i.i ], [ %budget.sroa.21.2.i, %do.body1203.i.i ], [ %add.i753.i.i, %do.body1255.i.i ] + %budget.sroa.21.3.i = phi i32 [ %budget.sroa.21.0.i, %do.body151.i.i ], [ %budget.sroa.21.0.i, %do.body227.i.i ], [ %budget.sroa.21.0.i, %do.body288.i.i ], [ %add.i656.i.i, %do.body459.i.i ], [ %budget.sroa.21.0.i, %do.body485.i.i ], [ %budget.sroa.21.2.i, %do.body1142.i.i ], [ %budget.sroa.21.2.i, %do.body1203.i.i ], [ %add.i752.i.i, %do.body1255.i.i ] call void @llvm.lifetime.end.p0(i64 2048, ptr nonnull %stack.i.i) %cmp14.not.i = icmp eq i32 %budget.sroa.21.3.i, 0 br i1 %cmp14.not.i, label %if.else18.i, label %do.cond.thread.i @@ -4957,12 +4956,12 @@ for.cond.outer: ; preds = %for.cond.outer.back %first.addr.0.ph = phi ptr [ %first, %ss_ilg.exit ], [ %first.addr.0.ph.be, %for.cond.outer.backedge ] %ssize.0.ph = phi i32 [ 0, %ss_ilg.exit ], [ %ssize.0.ph.be, %for.cond.outer.backedge ] %limit.0.ph = phi i32 [ %cond.i, %ss_ilg.exit ], [ %limit.0.ph.be, %for.cond.outer.backedge ] - %sub.ptr.lhs.cast1654 = ptrtoint ptr %last.addr.0.ph to i64 - %sub.ptr.rhs.cast2655 = ptrtoint ptr %first.addr.0.ph to i64 - %sub.ptr.sub3656 = sub i64 %sub.ptr.lhs.cast1654, %sub.ptr.rhs.cast2655 - %sub.ptr.div4657 = ashr exact i64 %sub.ptr.sub3656, 2 - %cmp658 = icmp slt i64 %sub.ptr.div4657, 9 - br i1 %cmp658, label %if.then.preheader, label %if.end27 + %sub.ptr.lhs.cast1653 = ptrtoint ptr %last.addr.0.ph to i64 + %sub.ptr.rhs.cast2654 = ptrtoint ptr %first.addr.0.ph to i64 + %sub.ptr.sub3655 = sub i64 %sub.ptr.lhs.cast1653, %sub.ptr.rhs.cast2654 + %sub.ptr.div4656 = ashr exact i64 %sub.ptr.sub3655, 2 + %cmp657 = icmp slt i64 %sub.ptr.div4656, 9 + br i1 %cmp657, label %if.then.preheader, label %if.end27 if.then.preheader: ; preds = %for.cond.outer %3 = sext i32 %ssize.0.ph to i64 @@ -4970,20 +4969,20 @@ if.then.preheader: ; preds = %for.cond.outer if.then: ; preds = %if.then.preheader, %if.end16 %indvars.iv = phi i64 [ %3, %if.then.preheader ], [ %indvars.iv.next, %if.end16 ] - %sub.ptr.div4663 = phi i64 [ %sub.ptr.div4657, %if.then.preheader ], [ %sub.ptr.div4, %if.end16 ] - %first.addr.0661 = phi ptr [ %first.addr.0.ph, %if.then.preheader ], [ %15, %if.end16 ] - %depth.addr.0660 = phi i32 [ %depth.addr.0.ph, %if.then.preheader ], [ %17, %if.end16 ] - %last.addr.0659 = phi ptr [ %last.addr.0.ph, %if.then.preheader ], [ %16, %if.end16 ] - %cmp10 = icmp sgt i64 %sub.ptr.div4663, 1 + %sub.ptr.div4662 = phi i64 [ %sub.ptr.div4656, %if.then.preheader ], [ %sub.ptr.div4, %if.end16 ] + %first.addr.0660 = phi ptr [ %first.addr.0.ph, %if.then.preheader ], [ %15, %if.end16 ] + %depth.addr.0659 = phi i32 [ %depth.addr.0.ph, %if.then.preheader ], [ %17, %if.end16 ] + %last.addr.0658 = phi ptr [ %last.addr.0.ph, %if.then.preheader ], [ %16, %if.end16 ] + %cmp10 = icmp sgt i64 %sub.ptr.div4662, 1 br i1 %cmp10, label %if.then12, label %do.body if.then12: ; preds = %if.then - %add.ptr.i = getelementptr inbounds i32, ptr %last.addr.0659, i64 -2 - %cmp.not30.i = icmp ult ptr %add.ptr.i, %first.addr.0661 + %add.ptr.i = getelementptr inbounds i32, ptr %last.addr.0658, i64 -2 + %cmp.not30.i = icmp ult ptr %add.ptr.i, %first.addr.0660 br i1 %cmp.not30.i, label %do.body, label %for.body.lr.ph.i for.body.lr.ph.i: ; preds = %if.then12 - %idx.ext.i.i = sext i32 %depth.addr.0660 to i64 + %idx.ext.i.i = sext i32 %depth.addr.0659 to i64 %add.ptr.i.i = getelementptr inbounds i8, ptr %T, i64 %idx.ext.i.i br label %for.body.i @@ -5076,7 +5075,7 @@ do.body.i: ; preds = %do.body.i.preheader %add.ptr8.i = getelementptr inbounds i32, ptr %j.1.i, i64 -1 store i32 %12, ptr %add.ptr8.i, align 4 %incdec.ptr.i = getelementptr inbounds i32, ptr %j.1.i, i64 1 - %cmp9.i = icmp ult ptr %incdec.ptr.i, %last.addr.0659 + %cmp9.i = icmp ult ptr %incdec.ptr.i, %last.addr.0658 br i1 %cmp9.i, label %land.rhs.i, label %if.end14.i land.rhs.i: ; preds = %do.body.i @@ -5099,7 +5098,7 @@ if.end14.i: ; preds = %do.body.i, %if.then %add.ptr15.i = getelementptr inbounds i32, ptr %j.246.i, i64 -1 store i32 %4, ptr %add.ptr15.i, align 4 %incdec.ptr16.i = getelementptr inbounds i32, ptr %i.031.i, i64 -1 - %cmp.not.i = icmp ult ptr %incdec.ptr16.i, %first.addr.0661 + %cmp.not.i = icmp ult ptr %incdec.ptr16.i, %first.addr.0660 br i1 %cmp.not.i, label %do.body, label %for.body.i, !llvm.loop !72 do.body: ; preds = %if.end14.i, %if.then12, %if.then @@ -5136,10 +5135,10 @@ if.end27: ; preds = %if.end27.loopexit, %first.addr.0.lcssa = phi ptr [ %first.addr.0.ph, %for.cond.outer ], [ %15, %if.end27.loopexit ] %ssize.0.lcssa = phi i32 [ %ssize.0.ph, %for.cond.outer ], [ %19, %if.end27.loopexit ] %limit.0.lcssa = phi i32 [ %limit.0.ph, %for.cond.outer ], [ %18, %if.end27.loopexit ] - %sub.ptr.lhs.cast1.lcssa = phi i64 [ %sub.ptr.lhs.cast1654, %for.cond.outer ], [ %sub.ptr.lhs.cast1, %if.end27.loopexit ] - %sub.ptr.rhs.cast2.lcssa = phi i64 [ %sub.ptr.rhs.cast2655, %for.cond.outer ], [ %sub.ptr.rhs.cast2, %if.end27.loopexit ] - %sub.ptr.sub3.lcssa = phi i64 [ %sub.ptr.sub3656, %for.cond.outer ], [ %sub.ptr.sub3, %if.end27.loopexit ] - %sub.ptr.div4.lcssa = phi i64 [ %sub.ptr.div4657, %for.cond.outer ], [ %sub.ptr.div4, %if.end27.loopexit ] + %sub.ptr.lhs.cast1.lcssa = phi i64 [ %sub.ptr.lhs.cast1653, %for.cond.outer ], [ %sub.ptr.lhs.cast1, %if.end27.loopexit ] + %sub.ptr.rhs.cast2.lcssa = phi i64 [ %sub.ptr.rhs.cast2654, %for.cond.outer ], [ %sub.ptr.rhs.cast2, %if.end27.loopexit ] + %sub.ptr.sub3.lcssa = phi i64 [ %sub.ptr.sub3655, %for.cond.outer ], [ %sub.ptr.sub3, %if.end27.loopexit ] + %sub.ptr.div4.lcssa = phi i64 [ %sub.ptr.div4656, %for.cond.outer ], [ %sub.ptr.div4, %if.end27.loopexit ] %idx.ext = sext i32 %depth.addr.0.lcssa to i64 %add.ptr = getelementptr inbounds i8, ptr %T, i64 %idx.ext %dec28 = add nsw i32 %limit.0.lcssa, -1 @@ -5194,17 +5193,16 @@ for.body.preheader.i: ; preds = %if.end25.i for.body.i363: ; preds = %ss_fixdown.exit.i, %for.body.preheader.i %indvars.iv.i = phi i64 [ %27, %for.body.preheader.i ], [ %indvars.iv.next.i, %ss_fixdown.exit.i ] %indvars.iv.next.i = add nsw i64 %indvars.iv.i, -1 - %28 = trunc i64 %indvars.iv.next.i to i32 - %idxprom.i.i = and i64 %indvars.iv.next.i, 4294967295 - %arrayidx.i.i = getelementptr inbounds i32, ptr %first.addr.0.lcssa, i64 %idxprom.i.i - %29 = load i32, ptr %arrayidx.i.i, align 4 - %idxprom1.i.i = sext i32 %29 to i64 + %arrayidx.i.i = getelementptr inbounds i32, ptr %first.addr.0.lcssa, i64 %indvars.iv.next.i + %28 = load i32, ptr %arrayidx.i.i, align 4 + %idxprom1.i.i = sext i32 %28 to i64 %arrayidx2.i.i = getelementptr inbounds i32, ptr %PA, i64 %idxprom1.i.i - %30 = load i32, ptr %arrayidx2.i.i, align 4 - %idxprom3.i.i = sext i32 %30 to i64 + %29 = load i32, ptr %arrayidx2.i.i, align 4 + %idxprom3.i.i = sext i32 %29 to i64 %arrayidx4.i.i = getelementptr inbounds i8, ptr %add.ptr, i64 %idxprom3.i.i - %31 = load i8, ptr %arrayidx4.i.i, align 1 - %mul19.i.i = shl nuw nsw i32 %28, 1 + %30 = load i8, ptr %arrayidx4.i.i, align 1 + %31 = trunc i64 %indvars.iv.next.i to i32 + %mul19.i.i = shl nuw nsw i32 %31, 1 %add20.i.i = or disjoint i32 %mul19.i.i, 1 %cmp21.i.i = icmp slt i32 %add20.i.i, %m.0.i br i1 %cmp21.i.i, label %for.body.i.i, label %ss_fixdown.exit.i @@ -5212,7 +5210,7 @@ for.body.i363: ; preds = %ss_fixdown.exit.i, for.body.i.i: ; preds = %for.body.i363, %for.inc.i.i364 %add24.i.i = phi i32 [ %add.i.i, %for.inc.i.i364 ], [ %add20.i.i, %for.body.i363 ] %mul23.i.i = phi i32 [ %mul.i.i, %for.inc.i.i364 ], [ %mul19.i.i, %for.body.i363 ] - %i.addr.022.i.i = phi i32 [ %spec.select.i.i, %for.inc.i.i364 ], [ %28, %for.body.i363 ] + %i.addr.022.i.i = phi i32 [ %spec.select.i.i, %for.inc.i.i364 ], [ %31, %for.body.i363 ] %inc.i.i = add i32 %mul23.i.i, 2 %idxprom6.i.i = sext i32 %add24.i.i to i64 %arrayidx7.i.i = getelementptr inbounds i32, ptr %first.addr.0.lcssa, i64 %idxprom6.i.i @@ -5233,7 +5231,7 @@ for.body.i.i: ; preds = %for.body.i363, %for %arrayidx18.i.i = getelementptr inbounds i8, ptr %add.ptr, i64 %idxprom17.i.i %37 = load i8, ptr %arrayidx18.i.i, align 1 %spec.select18.i.i = tail call i8 @llvm.umax.i8(i8 %34, i8 %37) - %cmp22.not.i.i = icmp ugt i8 %spec.select18.i.i, %31 + %cmp22.not.i.i = icmp ugt i8 %spec.select18.i.i, %30 br i1 %cmp22.not.i.i, label %for.inc.i.i364, label %ss_fixdown.exit.i for.inc.i.i364: ; preds = %for.body.i.i @@ -5251,10 +5249,10 @@ for.inc.i.i364: ; preds = %for.body.i.i br i1 %cmp.i.i365, label %for.body.i.i, label %ss_fixdown.exit.i, !llvm.loop !73 ss_fixdown.exit.i: ; preds = %for.inc.i.i364, %for.body.i.i, %for.body.i363 - %i.addr.0.lcssa.i.i = phi i32 [ %28, %for.body.i363 ], [ %i.addr.022.i.i, %for.body.i.i ], [ %spec.select.i.i, %for.inc.i.i364 ] + %i.addr.0.lcssa.i.i = phi i32 [ %31, %for.body.i363 ], [ %i.addr.022.i.i, %for.body.i.i ], [ %spec.select.i.i, %for.inc.i.i364 ] %idxprom30.i.i = sext i32 %i.addr.0.lcssa.i.i to i64 %arrayidx31.i.i = getelementptr inbounds i32, ptr %first.addr.0.lcssa, i64 %idxprom30.i.i - store i32 %29, ptr %arrayidx31.i.i, align 4 + store i32 %28, ptr %arrayidx31.i.i, align 4 %cmp27.i = icmp sgt i64 %indvars.iv.i, 1 br i1 %cmp27.i, label %for.body.i363, label %for.end.i362, !llvm.loop !74 @@ -5305,7 +5303,7 @@ for.body.i56.i: ; preds = %do.body34.i, %for.i br i1 %cmp22.not.i74.i, label %for.inc.i75.i, label %for.body.i56.i.ss_fixdown.exit85.loopexit.i_crit_edge for.body.i56.i.ss_fixdown.exit85.loopexit.i_crit_edge: ; preds = %for.body.i56.i - %.pre830 = sext i32 %i.addr.022.i59.i to i64 + %.pre829 = sext i32 %i.addr.022.i59.i to i64 br label %ss_fixdown.exit85.i for.inc.i75.i: ; preds = %for.body.i56.i @@ -5323,7 +5321,7 @@ for.inc.i75.i: ; preds = %for.body.i56.i br i1 %cmp.i84.i, label %for.body.i56.i, label %ss_fixdown.exit85.i, !llvm.loop !73 ss_fixdown.exit85.i: ; preds = %for.inc.i75.i, %for.body.i56.i.ss_fixdown.exit85.loopexit.i_crit_edge, %do.body34.i - %i.addr.0.lcssa.i53.i = phi i64 [ 0, %do.body34.i ], [ %.pre830, %for.body.i56.i.ss_fixdown.exit85.loopexit.i_crit_edge ], [ %idxprom26.i78.i, %for.inc.i75.i ] + %i.addr.0.lcssa.i53.i = phi i64 [ 0, %do.body34.i ], [ %.pre829, %for.body.i56.i.ss_fixdown.exit85.loopexit.i_crit_edge ], [ %idxprom26.i78.i, %for.inc.i75.i ] %arrayidx31.i55.i = getelementptr inbounds i32, ptr %first.addr.0.lcssa, i64 %i.addr.0.lcssa.i53.i store i32 %41, ptr %arrayidx31.i55.i, align 4 br label %if.end42.i @@ -5388,7 +5386,7 @@ for.body.i94.i: ; preds = %for.body.i94.i.preh br i1 %cmp22.not.i112.i, label %for.inc.i113.i, label %for.body.i94.i.ss_fixdown.exit123.i_crit_edge for.body.i94.i.ss_fixdown.exit123.i_crit_edge: ; preds = %for.body.i94.i - %.pre832 = sext i32 %i.addr.022.i97.i to i64 + %.pre831 = sext i32 %i.addr.022.i97.i to i64 br label %ss_fixdown.exit123.i for.inc.i113.i: ; preds = %for.body.i94.i @@ -5407,7 +5405,7 @@ for.inc.i113.i: ; preds = %for.body.i94.i br i1 %cmp.i122.i, label %for.body.i94.i, label %ss_fixdown.exit123.i, !llvm.loop !73 ss_fixdown.exit123.i: ; preds = %for.inc.i113.i, %for.body.i94.i.ss_fixdown.exit123.i_crit_edge - %idxprom30.i92.i.pre-phi = phi i64 [ %.pre832, %for.body.i94.i.ss_fixdown.exit123.i_crit_edge ], [ %idxprom26.i116.i, %for.inc.i113.i ] + %idxprom30.i92.i.pre-phi = phi i64 [ %.pre831, %for.body.i94.i.ss_fixdown.exit123.i_crit_edge ], [ %idxprom26.i116.i, %for.inc.i113.i ] %arrayidx31.i93.i = getelementptr inbounds i32, ptr %first.addr.0.lcssa, i64 %idxprom30.i92.i.pre-phi store i32 %54, ptr %arrayidx31.i93.i, align 4 store i32 %55, ptr %arrayidx50.i44, align 4 @@ -5432,15 +5430,15 @@ if.then40: ; preds = %if.end37 %arrayidx45 = getelementptr inbounds i8, ptr %add.ptr, i64 %idxprom44 %69 = load i8, ptr %arrayidx45, align 1 %conv46 = zext i8 %69 to i32 - %a.0752 = getelementptr inbounds i32, ptr %first.addr.0.lcssa, i64 1 - %cmp48753 = icmp ult ptr %a.0752, %last.addr.0.lcssa - br i1 %cmp48753, label %for.body, label %for.end + %a.0751 = getelementptr inbounds i32, ptr %first.addr.0.lcssa, i64 1 + %cmp48752 = icmp ult ptr %a.0751, %last.addr.0.lcssa + br i1 %cmp48752, label %for.body, label %for.end for.body: ; preds = %if.then40, %for.inc - %a.0756 = phi ptr [ %a.0, %for.inc ], [ %a.0752, %if.then40 ] - %v.0755 = phi i32 [ %v.1, %for.inc ], [ %conv46, %if.then40 ] - %first.addr.1754 = phi ptr [ %first.addr.2, %for.inc ], [ %first.addr.0.lcssa, %if.then40 ] - %70 = load i32, ptr %a.0756, align 4 + %a.0755 = phi ptr [ %a.0, %for.inc ], [ %a.0751, %if.then40 ] + %v.0754 = phi i32 [ %v.1, %for.inc ], [ %conv46, %if.then40 ] + %first.addr.1753 = phi ptr [ %first.addr.2, %for.inc ], [ %first.addr.0.lcssa, %if.then40 ] + %70 = load i32, ptr %a.0755, align 4 %idxprom50 = sext i32 %70 to i64 %arrayidx51 = getelementptr inbounds i32, ptr %PA, i64 %idxprom50 %71 = load i32, ptr %arrayidx51, align 4 @@ -5448,39 +5446,39 @@ for.body: ; preds = %if.then40, %for.inc %arrayidx53 = getelementptr inbounds i8, ptr %add.ptr, i64 %idxprom52 %72 = load i8, ptr %arrayidx53, align 1 %conv54 = zext i8 %72 to i32 - %cmp55.not = icmp eq i32 %v.0755, %conv54 + %cmp55.not = icmp eq i32 %v.0754, %conv54 br i1 %cmp55.not, label %for.inc, label %if.then57 if.then57: ; preds = %for.body - %sub.ptr.lhs.cast58 = ptrtoint ptr %a.0756 to i64 - %sub.ptr.rhs.cast59 = ptrtoint ptr %first.addr.1754 to i64 + %sub.ptr.lhs.cast58 = ptrtoint ptr %a.0755 to i64 + %sub.ptr.rhs.cast59 = ptrtoint ptr %first.addr.1753 to i64 %sub.ptr.sub60 = sub i64 %sub.ptr.lhs.cast58, %sub.ptr.rhs.cast59 %cmp62 = icmp sgt i64 %sub.ptr.sub60, 4 br i1 %cmp62, label %for.end.loopexit, label %for.inc for.inc: ; preds = %if.then57, %for.body - %first.addr.2 = phi ptr [ %first.addr.1754, %for.body ], [ %a.0756, %if.then57 ] - %v.1 = phi i32 [ %v.0755, %for.body ], [ %conv54, %if.then57 ] - %a.0 = getelementptr inbounds i32, ptr %a.0756, i64 1 + %first.addr.2 = phi ptr [ %first.addr.1753, %for.body ], [ %a.0755, %if.then57 ] + %v.1 = phi i32 [ %v.0754, %for.body ], [ %conv54, %if.then57 ] + %a.0 = getelementptr inbounds i32, ptr %a.0755, i64 1 %cmp48 = icmp ult ptr %a.0, %last.addr.0.lcssa br i1 %cmp48, label %for.body, label %for.end.loopexit, !llvm.loop !75 for.end.loopexit: ; preds = %if.then57, %for.inc - %first.addr.1.lcssa.ph = phi ptr [ %first.addr.2, %for.inc ], [ %first.addr.1754, %if.then57 ] - %v.0.lcssa.ph = phi i32 [ %v.1, %for.inc ], [ %v.0755, %if.then57 ] - %a.0.lcssa.ph = phi ptr [ %a.0, %for.inc ], [ %a.0756, %if.then57 ] - %.pre827 = load i32, ptr %first.addr.1.lcssa.ph, align 4 - %idxprom67.phi.trans.insert = sext i32 %.pre827 to i64 + %first.addr.1.lcssa.ph = phi ptr [ %first.addr.2, %for.inc ], [ %first.addr.1753, %if.then57 ] + %v.0.lcssa.ph = phi i32 [ %v.1, %for.inc ], [ %v.0754, %if.then57 ] + %a.0.lcssa.ph = phi ptr [ %a.0, %for.inc ], [ %a.0755, %if.then57 ] + %.pre826 = load i32, ptr %first.addr.1.lcssa.ph, align 4 + %idxprom67.phi.trans.insert = sext i32 %.pre826 to i64 %arrayidx68.phi.trans.insert = getelementptr inbounds i32, ptr %PA, i64 %idxprom67.phi.trans.insert - %.pre828 = load i32, ptr %arrayidx68.phi.trans.insert, align 4 - %.pre829 = sext i32 %.pre828 to i64 + %.pre827 = load i32, ptr %arrayidx68.phi.trans.insert, align 4 + %.pre828 = sext i32 %.pre827 to i64 br label %for.end for.end: ; preds = %for.end.loopexit, %if.then40 - %.pre-phi = phi i64 [ %.pre829, %for.end.loopexit ], [ %idxprom44, %if.then40 ] + %.pre-phi = phi i64 [ %.pre828, %for.end.loopexit ], [ %idxprom44, %if.then40 ] %first.addr.1.lcssa = phi ptr [ %first.addr.1.lcssa.ph, %for.end.loopexit ], [ %first.addr.0.lcssa, %if.then40 ] %v.0.lcssa = phi i32 [ %v.0.lcssa.ph, %for.end.loopexit ], [ %conv46, %if.then40 ] - %a.0.lcssa = phi ptr [ %a.0.lcssa.ph, %for.end.loopexit ], [ %a.0752, %if.then40 ] + %a.0.lcssa = phi ptr [ %a.0.lcssa.ph, %for.end.loopexit ], [ %a.0751, %if.then40 ] %73 = getelementptr i8, ptr %add.ptr, i64 %.pre-phi %arrayidx70 = getelementptr i8, ptr %73, i64 -1 %74 = load i8, ptr %arrayidx70, align 1 @@ -5675,22 +5673,22 @@ if.then.i431: ; preds = %if.end156 if.then4.i: ; preds = %if.then.i431 %add.ptr5.i436 = getelementptr inbounds i32, ptr %last.addr.0.lcssa, i64 -1 %92 = load i32, ptr %first.addr.0.lcssa, align 4 - %idxprom.i.i437 = sext i32 %92 to i64 - %arrayidx.i.i438 = getelementptr inbounds i32, ptr %PA, i64 %idxprom.i.i437 - %93 = load i32, ptr %arrayidx.i.i438, align 4 - %idxprom1.i.i439 = sext i32 %93 to i64 - %arrayidx2.i.i440 = getelementptr inbounds i8, ptr %add.ptr, i64 %idxprom1.i.i439 - %94 = load i8, ptr %arrayidx2.i.i440, align 1 + %idxprom.i.i = sext i32 %92 to i64 + %arrayidx.i.i437 = getelementptr inbounds i32, ptr %PA, i64 %idxprom.i.i + %93 = load i32, ptr %arrayidx.i.i437, align 4 + %idxprom1.i.i438 = sext i32 %93 to i64 + %arrayidx2.i.i439 = getelementptr inbounds i8, ptr %add.ptr, i64 %idxprom1.i.i438 + %94 = load i8, ptr %arrayidx2.i.i439, align 1 %95 = load i32, ptr %add.ptr.i426, align 4 - %idxprom3.i.i441 = sext i32 %95 to i64 - %arrayidx4.i.i442 = getelementptr inbounds i32, ptr %PA, i64 %idxprom3.i.i441 - %96 = load i32, ptr %arrayidx4.i.i442, align 4 + %idxprom3.i.i440 = sext i32 %95 to i64 + %arrayidx4.i.i441 = getelementptr inbounds i32, ptr %PA, i64 %idxprom3.i.i440 + %96 = load i32, ptr %arrayidx4.i.i441, align 4 %idxprom5.i.i = sext i32 %96 to i64 %arrayidx6.i.i = getelementptr inbounds i8, ptr %add.ptr, i64 %idxprom5.i.i %97 = load i8, ptr %arrayidx6.i.i, align 1 - %cmp.i.i443 = icmp ugt i8 %94, %97 - %98 = select i1 %cmp.i.i443, i32 %92, i32 %95 - %spec.select.i.i444 = select i1 %cmp.i.i443, ptr %first.addr.0.lcssa, ptr %add.ptr.i426 + %cmp.i.i442 = icmp ugt i8 %94, %97 + %98 = select i1 %cmp.i.i442, i32 %92, i32 %95 + %spec.select.i.i443 = select i1 %cmp.i.i442, ptr %first.addr.0.lcssa, ptr %add.ptr.i426 %idxprom9.i.i = sext i32 %98 to i64 %arrayidx10.i.i = getelementptr inbounds i32, ptr %PA, i64 %idxprom9.i.i %99 = load i32, ptr %arrayidx10.i.i, align 4 @@ -5708,8 +5706,8 @@ if.then4.i: ; preds = %if.then.i431 br i1 %cmp19.i.i, label %if.then21.i.i, label %ss_pivot.exit if.then21.i.i: ; preds = %if.then4.i - %104 = select i1 %cmp.i.i443, i32 %95, i32 %92 - %spec.select19.i.i = select i1 %cmp.i.i443, ptr %add.ptr.i426, ptr %first.addr.0.lcssa + %104 = select i1 %cmp.i.i442, i32 %95, i32 %92 + %spec.select19.i.i = select i1 %cmp.i.i442, ptr %add.ptr.i426, ptr %first.addr.0.lcssa %idxprom22.i.i = sext i32 %104 to i64 %arrayidx23.i.i = getelementptr inbounds i32, ptr %PA, i64 %idxprom22.i.i %105 = load i32, ptr %arrayidx23.i.i, align 4 @@ -6038,7 +6036,7 @@ if.then21.i170.i: ; preds = %ss_median3.exit149. ss_pivot.exit: ; preds = %if.then4.i, %if.then21.i.i, %if.else.i, %ss_median3.exit149.i, %if.then21.i170.i %201 = phi i32 [ %125, %if.else.i ], [ %92, %if.then21.i.i ], [ %92, %if.then4.i ], [ %143, %if.then21.i170.i ], [ %143, %ss_median3.exit149.i ] - %retval.0.i = phi ptr [ %retval.0.i62.i, %if.else.i ], [ %spec.select19.v3.i.i, %if.then21.i.i ], [ %spec.select.i.i444, %if.then4.i ], [ %spec.select19.v3.i177.i, %if.then21.i170.i ], [ %spec.select.i159.i, %ss_median3.exit149.i ] + %retval.0.i = phi ptr [ %retval.0.i62.i, %if.else.i ], [ %spec.select19.v3.i.i, %if.then21.i.i ], [ %spec.select.i.i443, %if.then4.i ], [ %spec.select19.v3.i177.i, %if.then21.i170.i ], [ %spec.select.i159.i, %ss_median3.exit149.i ] %202 = load i32, ptr %retval.0.i, align 4 %idxprom158 = sext i32 %202 to i64 %arrayidx159 = getelementptr inbounds i32, ptr %PA, i64 %idxprom158 @@ -6048,18 +6046,18 @@ ss_pivot.exit: ; preds = %if.then4.i, %if.the %204 = load i8, ptr %arrayidx161, align 1 store i32 %202, ptr %first.addr.0.lcssa, align 4 store i32 %201, ptr %retval.0.i, align 4 - %incdec.ptr166672 = getelementptr inbounds i32, ptr %first.addr.0.lcssa, i64 1 - %cmp167673 = icmp ult ptr %incdec.ptr166672, %last.addr.0.lcssa - br i1 %cmp167673, label %land.rhs, label %if.end205 + %incdec.ptr166671 = getelementptr inbounds i32, ptr %first.addr.0.lcssa, i64 1 + %cmp167672 = icmp ult ptr %incdec.ptr166671, %last.addr.0.lcssa + br i1 %cmp167672, label %land.rhs, label %if.end205 for.cond165: ; preds = %land.rhs - %incdec.ptr166 = getelementptr inbounds i32, ptr %incdec.ptr166674, i64 1 + %incdec.ptr166 = getelementptr inbounds i32, ptr %incdec.ptr166673, i64 1 %cmp167 = icmp ult ptr %incdec.ptr166, %last.addr.0.lcssa br i1 %cmp167, label %land.rhs, label %if.end205, !llvm.loop !78 land.rhs: ; preds = %ss_pivot.exit, %for.cond165 - %incdec.ptr166674 = phi ptr [ %incdec.ptr166, %for.cond165 ], [ %incdec.ptr166672, %ss_pivot.exit ] - %205 = load i32, ptr %incdec.ptr166674, align 4 + %incdec.ptr166673 = phi ptr [ %incdec.ptr166, %for.cond165 ], [ %incdec.ptr166671, %ss_pivot.exit ] + %205 = load i32, ptr %incdec.ptr166673, align 4 %idxprom169 = sext i32 %205 to i64 %arrayidx170 = getelementptr inbounds i32, ptr %PA, i64 %idxprom169 %206 = load i32, ptr %arrayidx170, align 4 @@ -6074,14 +6072,14 @@ for.end177: ; preds = %land.rhs br i1 %cmp180, label %for.cond183.preheader, label %if.end205 for.cond183.preheader: ; preds = %for.end177 - %incdec.ptr184677 = getelementptr inbounds i32, ptr %incdec.ptr166674, i64 1 - %cmp185678 = icmp ult ptr %incdec.ptr184677, %last.addr.0.lcssa - br i1 %cmp185678, label %land.rhs187, label %if.end205 + %incdec.ptr184676 = getelementptr inbounds i32, ptr %incdec.ptr166673, i64 1 + %cmp185677 = icmp ult ptr %incdec.ptr184676, %last.addr.0.lcssa + br i1 %cmp185677, label %land.rhs187, label %if.end205 land.rhs187: ; preds = %for.cond183.preheader, %if.end203 - %incdec.ptr184680 = phi ptr [ %incdec.ptr184, %if.end203 ], [ %incdec.ptr184677, %for.cond183.preheader ] - %a.1679 = phi ptr [ %a.2, %if.end203 ], [ %incdec.ptr166674, %for.cond183.preheader ] - %208 = load i32, ptr %incdec.ptr184680, align 4 + %incdec.ptr184679 = phi ptr [ %incdec.ptr184, %if.end203 ], [ %incdec.ptr184676, %for.cond183.preheader ] + %a.1678 = phi ptr [ %a.2, %if.end203 ], [ %incdec.ptr166673, %for.cond183.preheader ] + %208 = load i32, ptr %incdec.ptr184679, align 4 %idxprom188 = sext i32 %208 to i64 %arrayidx189 = getelementptr inbounds i32, ptr %PA, i64 %idxprom188 %209 = load i32, ptr %arrayidx189, align 4 @@ -6096,33 +6094,33 @@ for.body196: ; preds = %land.rhs187 br i1 %cmp197, label %do.body200, label %if.end203 do.body200: ; preds = %for.body196 - %211 = load i32, ptr %a.1679, align 4 - store i32 %211, ptr %incdec.ptr184680, align 4 - store i32 %208, ptr %a.1679, align 4 - %incdec.ptr202 = getelementptr inbounds i32, ptr %a.1679, i64 1 + %211 = load i32, ptr %a.1678, align 4 + store i32 %211, ptr %incdec.ptr184679, align 4 + store i32 %208, ptr %a.1678, align 4 + %incdec.ptr202 = getelementptr inbounds i32, ptr %a.1678, i64 1 br label %if.end203 if.end203: ; preds = %do.body200, %for.body196 - %a.2 = phi ptr [ %incdec.ptr202, %do.body200 ], [ %a.1679, %for.body196 ] - %incdec.ptr184 = getelementptr inbounds i32, ptr %incdec.ptr184680, i64 1 + %a.2 = phi ptr [ %incdec.ptr202, %do.body200 ], [ %a.1678, %for.body196 ] + %incdec.ptr184 = getelementptr inbounds i32, ptr %incdec.ptr184679, i64 1 %cmp185 = icmp ult ptr %incdec.ptr184, %last.addr.0.lcssa br i1 %cmp185, label %land.rhs187, label %if.end205, !llvm.loop !79 if.end205: ; preds = %for.cond165, %land.rhs187, %if.end203, %ss_pivot.exit, %for.cond183.preheader, %for.end177 - %a.3 = phi ptr [ %incdec.ptr166674, %for.end177 ], [ %incdec.ptr166674, %for.cond183.preheader ], [ %incdec.ptr166672, %ss_pivot.exit ], [ %a.1679, %land.rhs187 ], [ %a.2, %if.end203 ], [ %incdec.ptr166, %for.cond165 ] - %b.2 = phi ptr [ %incdec.ptr166674, %for.end177 ], [ %incdec.ptr184677, %for.cond183.preheader ], [ %incdec.ptr166672, %ss_pivot.exit ], [ %incdec.ptr184680, %land.rhs187 ], [ %incdec.ptr184, %if.end203 ], [ %incdec.ptr166, %for.cond165 ] - %incdec.ptr207690 = getelementptr inbounds i32, ptr %last.addr.0.lcssa, i64 -1 - %cmp208691 = icmp ult ptr %b.2, %incdec.ptr207690 - br i1 %cmp208691, label %land.rhs210, label %if.end249 + %a.3 = phi ptr [ %incdec.ptr166673, %for.end177 ], [ %incdec.ptr166673, %for.cond183.preheader ], [ %incdec.ptr166671, %ss_pivot.exit ], [ %a.1678, %land.rhs187 ], [ %a.2, %if.end203 ], [ %incdec.ptr166, %for.cond165 ] + %b.2 = phi ptr [ %incdec.ptr166673, %for.end177 ], [ %incdec.ptr184676, %for.cond183.preheader ], [ %incdec.ptr166671, %ss_pivot.exit ], [ %incdec.ptr184679, %land.rhs187 ], [ %incdec.ptr184, %if.end203 ], [ %incdec.ptr166, %for.cond165 ] + %incdec.ptr207689 = getelementptr inbounds i32, ptr %last.addr.0.lcssa, i64 -1 + %cmp208690 = icmp ult ptr %b.2, %incdec.ptr207689 + br i1 %cmp208690, label %land.rhs210, label %if.end249 for.cond206: ; preds = %land.rhs210 - %incdec.ptr207 = getelementptr inbounds i32, ptr %incdec.ptr207692, i64 -1 + %incdec.ptr207 = getelementptr inbounds i32, ptr %incdec.ptr207691, i64 -1 %cmp208 = icmp ult ptr %b.2, %incdec.ptr207 br i1 %cmp208, label %land.rhs210, label %if.end249, !llvm.loop !80 land.rhs210: ; preds = %if.end205, %for.cond206 - %incdec.ptr207692 = phi ptr [ %incdec.ptr207, %for.cond206 ], [ %incdec.ptr207690, %if.end205 ] - %212 = load i32, ptr %incdec.ptr207692, align 4 + %incdec.ptr207691 = phi ptr [ %incdec.ptr207, %for.cond206 ], [ %incdec.ptr207689, %if.end205 ] + %212 = load i32, ptr %incdec.ptr207691, align 4 %idxprom211 = sext i32 %212 to i64 %arrayidx212 = getelementptr inbounds i32, ptr %PA, i64 %idxprom211 %213 = load i32, ptr %arrayidx212, align 4 @@ -6137,14 +6135,14 @@ for.end220: ; preds = %land.rhs210 br i1 %cmp224, label %for.cond227.preheader, label %if.end249 for.cond227.preheader: ; preds = %for.end220 - %incdec.ptr228695 = getelementptr inbounds i32, ptr %incdec.ptr207692, i64 -1 - %cmp229696 = icmp ult ptr %b.2, %incdec.ptr228695 - br i1 %cmp229696, label %land.rhs231, label %if.end249 + %incdec.ptr228694 = getelementptr inbounds i32, ptr %incdec.ptr207691, i64 -1 + %cmp229695 = icmp ult ptr %b.2, %incdec.ptr228694 + br i1 %cmp229695, label %land.rhs231, label %if.end249 land.rhs231: ; preds = %for.cond227.preheader, %if.end247 - %incdec.ptr228698 = phi ptr [ %incdec.ptr228, %if.end247 ], [ %incdec.ptr228695, %for.cond227.preheader ] - %d.0697 = phi ptr [ %d.1, %if.end247 ], [ %incdec.ptr207692, %for.cond227.preheader ] - %215 = load i32, ptr %incdec.ptr228698, align 4 + %incdec.ptr228697 = phi ptr [ %incdec.ptr228, %if.end247 ], [ %incdec.ptr228694, %for.cond227.preheader ] + %d.0696 = phi ptr [ %d.1, %if.end247 ], [ %incdec.ptr207691, %for.cond227.preheader ] + %215 = load i32, ptr %incdec.ptr228697, align 4 %idxprom232 = sext i32 %215 to i64 %arrayidx233 = getelementptr inbounds i32, ptr %PA, i64 %idxprom232 %216 = load i32, ptr %arrayidx233, align 4 @@ -6159,41 +6157,41 @@ for.body240: ; preds = %land.rhs231 br i1 %cmp241, label %do.body244, label %if.end247 do.body244: ; preds = %for.body240 - %218 = load i32, ptr %d.0697, align 4 - store i32 %218, ptr %incdec.ptr228698, align 4 - store i32 %215, ptr %d.0697, align 4 - %incdec.ptr246 = getelementptr inbounds i32, ptr %d.0697, i64 -1 + %218 = load i32, ptr %d.0696, align 4 + store i32 %218, ptr %incdec.ptr228697, align 4 + store i32 %215, ptr %d.0696, align 4 + %incdec.ptr246 = getelementptr inbounds i32, ptr %d.0696, i64 -1 br label %if.end247 if.end247: ; preds = %do.body244, %for.body240 - %d.1 = phi ptr [ %incdec.ptr246, %do.body244 ], [ %d.0697, %for.body240 ] - %incdec.ptr228 = getelementptr inbounds i32, ptr %incdec.ptr228698, i64 -1 + %d.1 = phi ptr [ %incdec.ptr246, %do.body244 ], [ %d.0696, %for.body240 ] + %incdec.ptr228 = getelementptr inbounds i32, ptr %incdec.ptr228697, i64 -1 %cmp229 = icmp ult ptr %b.2, %incdec.ptr228 br i1 %cmp229, label %land.rhs231, label %if.end249, !llvm.loop !81 if.end249: ; preds = %for.cond206, %land.rhs231, %if.end247, %if.end205, %for.cond227.preheader, %for.end220 - %c.2 = phi ptr [ %incdec.ptr207692, %for.end220 ], [ %incdec.ptr228695, %for.cond227.preheader ], [ %incdec.ptr207690, %if.end205 ], [ %incdec.ptr228698, %land.rhs231 ], [ %incdec.ptr228, %if.end247 ], [ %incdec.ptr207, %for.cond206 ] - %d.2 = phi ptr [ %incdec.ptr207692, %for.end220 ], [ %incdec.ptr207692, %for.cond227.preheader ], [ %incdec.ptr207690, %if.end205 ], [ %d.0697, %land.rhs231 ], [ %d.1, %if.end247 ], [ %incdec.ptr207, %for.cond206 ] - %cmp251734 = icmp ult ptr %b.2, %c.2 - br i1 %cmp251734, label %do.body254, label %for.end300 + %c.2 = phi ptr [ %incdec.ptr207691, %for.end220 ], [ %incdec.ptr228694, %for.cond227.preheader ], [ %incdec.ptr207689, %if.end205 ], [ %incdec.ptr228697, %land.rhs231 ], [ %incdec.ptr228, %if.end247 ], [ %incdec.ptr207, %for.cond206 ] + %d.2 = phi ptr [ %incdec.ptr207691, %for.end220 ], [ %incdec.ptr207691, %for.cond227.preheader ], [ %incdec.ptr207689, %if.end205 ], [ %d.0696, %land.rhs231 ], [ %d.1, %if.end247 ], [ %incdec.ptr207, %for.cond206 ] + %cmp251733 = icmp ult ptr %b.2, %c.2 + br i1 %cmp251733, label %do.body254, label %for.end300 do.body254: ; preds = %if.end249, %for.end299 - %d.3738 = phi ptr [ %d.4.lcssa, %for.end299 ], [ %d.2, %if.end249 ] - %c.3737 = phi ptr [ %incdec.ptr279.lcssa, %for.end299 ], [ %c.2, %if.end249 ] - %b.3736 = phi ptr [ %incdec.ptr257.lcssa, %for.end299 ], [ %b.2, %if.end249 ] - %a.4735 = phi ptr [ %a.5.lcssa, %for.end299 ], [ %a.3, %if.end249 ] - %219 = load i32, ptr %b.3736, align 4 - %220 = load i32, ptr %c.3737, align 4 - store i32 %220, ptr %b.3736, align 4 - store i32 %219, ptr %c.3737, align 4 - %incdec.ptr257708 = getelementptr inbounds i32, ptr %b.3736, i64 1 - %cmp258709 = icmp ult ptr %incdec.ptr257708, %c.3737 - br i1 %cmp258709, label %land.rhs260, label %for.end277 + %d.3737 = phi ptr [ %d.4.lcssa, %for.end299 ], [ %d.2, %if.end249 ] + %c.3736 = phi ptr [ %incdec.ptr279.lcssa, %for.end299 ], [ %c.2, %if.end249 ] + %b.3735 = phi ptr [ %incdec.ptr257.lcssa, %for.end299 ], [ %b.2, %if.end249 ] + %a.4734 = phi ptr [ %a.5.lcssa, %for.end299 ], [ %a.3, %if.end249 ] + %219 = load i32, ptr %b.3735, align 4 + %220 = load i32, ptr %c.3736, align 4 + store i32 %220, ptr %b.3735, align 4 + store i32 %219, ptr %c.3736, align 4 + %incdec.ptr257707 = getelementptr inbounds i32, ptr %b.3735, i64 1 + %cmp258708 = icmp ult ptr %incdec.ptr257707, %c.3736 + br i1 %cmp258708, label %land.rhs260, label %for.end277 land.rhs260: ; preds = %do.body254, %if.end276 - %incdec.ptr257711 = phi ptr [ %incdec.ptr257, %if.end276 ], [ %incdec.ptr257708, %do.body254 ] - %a.5710 = phi ptr [ %a.6, %if.end276 ], [ %a.4735, %do.body254 ] - %221 = load i32, ptr %incdec.ptr257711, align 4 + %incdec.ptr257710 = phi ptr [ %incdec.ptr257, %if.end276 ], [ %incdec.ptr257707, %do.body254 ] + %a.5709 = phi ptr [ %a.6, %if.end276 ], [ %a.4734, %do.body254 ] + %221 = load i32, ptr %incdec.ptr257710, align 4 %idxprom261 = sext i32 %221 to i64 %arrayidx262 = getelementptr inbounds i32, ptr %PA, i64 %idxprom261 %222 = load i32, ptr %arrayidx262, align 4 @@ -6208,29 +6206,29 @@ for.body269: ; preds = %land.rhs260 br i1 %cmp270, label %do.body273, label %if.end276 do.body273: ; preds = %for.body269 - %224 = load i32, ptr %a.5710, align 4 - store i32 %224, ptr %incdec.ptr257711, align 4 - store i32 %221, ptr %a.5710, align 4 - %incdec.ptr275 = getelementptr inbounds i32, ptr %a.5710, i64 1 + %224 = load i32, ptr %a.5709, align 4 + store i32 %224, ptr %incdec.ptr257710, align 4 + store i32 %221, ptr %a.5709, align 4 + %incdec.ptr275 = getelementptr inbounds i32, ptr %a.5709, i64 1 br label %if.end276 if.end276: ; preds = %do.body273, %for.body269 - %a.6 = phi ptr [ %incdec.ptr275, %do.body273 ], [ %a.5710, %for.body269 ] - %incdec.ptr257 = getelementptr inbounds i32, ptr %incdec.ptr257711, i64 1 - %cmp258 = icmp ult ptr %incdec.ptr257, %c.3737 + %a.6 = phi ptr [ %incdec.ptr275, %do.body273 ], [ %a.5709, %for.body269 ] + %incdec.ptr257 = getelementptr inbounds i32, ptr %incdec.ptr257710, i64 1 + %cmp258 = icmp ult ptr %incdec.ptr257, %c.3736 br i1 %cmp258, label %land.rhs260, label %for.end277, !llvm.loop !82 for.end277: ; preds = %land.rhs260, %if.end276, %do.body254 - %a.5.lcssa = phi ptr [ %a.4735, %do.body254 ], [ %a.5710, %land.rhs260 ], [ %a.6, %if.end276 ] - %incdec.ptr257.lcssa = phi ptr [ %incdec.ptr257708, %do.body254 ], [ %incdec.ptr257711, %land.rhs260 ], [ %incdec.ptr257, %if.end276 ] - %incdec.ptr279721 = getelementptr inbounds i32, ptr %c.3737, i64 -1 - %cmp280722 = icmp ult ptr %incdec.ptr257.lcssa, %incdec.ptr279721 - br i1 %cmp280722, label %land.rhs282, label %for.end299 + %a.5.lcssa = phi ptr [ %a.4734, %do.body254 ], [ %a.5709, %land.rhs260 ], [ %a.6, %if.end276 ] + %incdec.ptr257.lcssa = phi ptr [ %incdec.ptr257707, %do.body254 ], [ %incdec.ptr257710, %land.rhs260 ], [ %incdec.ptr257, %if.end276 ] + %incdec.ptr279720 = getelementptr inbounds i32, ptr %c.3736, i64 -1 + %cmp280721 = icmp ult ptr %incdec.ptr257.lcssa, %incdec.ptr279720 + br i1 %cmp280721, label %land.rhs282, label %for.end299 land.rhs282: ; preds = %for.end277, %if.end298 - %incdec.ptr279724 = phi ptr [ %incdec.ptr279, %if.end298 ], [ %incdec.ptr279721, %for.end277 ] - %d.4723 = phi ptr [ %d.5, %if.end298 ], [ %d.3738, %for.end277 ] - %225 = load i32, ptr %incdec.ptr279724, align 4 + %incdec.ptr279723 = phi ptr [ %incdec.ptr279, %if.end298 ], [ %incdec.ptr279720, %for.end277 ] + %d.4722 = phi ptr [ %d.5, %if.end298 ], [ %d.3737, %for.end277 ] + %225 = load i32, ptr %incdec.ptr279723, align 4 %idxprom283 = sext i32 %225 to i64 %arrayidx284 = getelementptr inbounds i32, ptr %PA, i64 %idxprom283 %226 = load i32, ptr %arrayidx284, align 4 @@ -6245,21 +6243,21 @@ for.body291: ; preds = %land.rhs282 br i1 %cmp292, label %do.body295, label %if.end298 do.body295: ; preds = %for.body291 - %228 = load i32, ptr %d.4723, align 4 - store i32 %228, ptr %incdec.ptr279724, align 4 - store i32 %225, ptr %d.4723, align 4 - %incdec.ptr297 = getelementptr inbounds i32, ptr %d.4723, i64 -1 + %228 = load i32, ptr %d.4722, align 4 + store i32 %228, ptr %incdec.ptr279723, align 4 + store i32 %225, ptr %d.4722, align 4 + %incdec.ptr297 = getelementptr inbounds i32, ptr %d.4722, i64 -1 br label %if.end298 if.end298: ; preds = %do.body295, %for.body291 - %d.5 = phi ptr [ %incdec.ptr297, %do.body295 ], [ %d.4723, %for.body291 ] - %incdec.ptr279 = getelementptr inbounds i32, ptr %incdec.ptr279724, i64 -1 + %d.5 = phi ptr [ %incdec.ptr297, %do.body295 ], [ %d.4722, %for.body291 ] + %incdec.ptr279 = getelementptr inbounds i32, ptr %incdec.ptr279723, i64 -1 %cmp280 = icmp ult ptr %incdec.ptr257.lcssa, %incdec.ptr279 br i1 %cmp280, label %land.rhs282, label %for.end299, !llvm.loop !83 for.end299: ; preds = %land.rhs282, %if.end298, %for.end277 - %d.4.lcssa = phi ptr [ %d.3738, %for.end277 ], [ %d.4723, %land.rhs282 ], [ %d.5, %if.end298 ] - %incdec.ptr279.lcssa = phi ptr [ %incdec.ptr279721, %for.end277 ], [ %incdec.ptr279724, %land.rhs282 ], [ %incdec.ptr279, %if.end298 ] + %d.4.lcssa = phi ptr [ %d.3737, %for.end277 ], [ %d.4722, %land.rhs282 ], [ %d.5, %if.end298 ] + %incdec.ptr279.lcssa = phi ptr [ %incdec.ptr279720, %for.end277 ], [ %incdec.ptr279723, %land.rhs282 ], [ %incdec.ptr279, %if.end298 ] %cmp251 = icmp ult ptr %incdec.ptr257.lcssa, %incdec.ptr279.lcssa br i1 %cmp251, label %do.body254, label %for.end300, !llvm.loop !84 @@ -6281,8 +6279,8 @@ if.then303: ; preds = %for.end300 %sub.ptr.div313 = ashr exact i64 %sub.ptr.sub312, 2 %conv314 = trunc i64 %sub.ptr.div313 to i32 %spec.select = tail call i32 @llvm.smin.i32(i32 %conv309, i32 %conv314) - %cmp322744 = icmp sgt i32 %spec.select, 0 - br i1 %cmp322744, label %do.body325.preheader, label %for.end331 + %cmp322743 = icmp sgt i32 %spec.select, 0 + br i1 %cmp322743, label %do.body325.preheader, label %for.end331 do.body325.preheader: ; preds = %if.then303 %idx.ext319 = zext nneg i32 %spec.select to i64 @@ -6291,17 +6289,17 @@ do.body325.preheader: ; preds = %if.then303 br label %do.body325 do.body325: ; preds = %do.body325.preheader, %do.body325 - %s.1747 = phi i32 [ %dec328, %do.body325 ], [ %spec.select, %do.body325.preheader ] - %f.0746 = phi ptr [ %incdec.ptr330, %do.body325 ], [ %add.ptr320, %do.body325.preheader ] - %e.0745 = phi ptr [ %incdec.ptr329, %do.body325 ], [ %first.addr.0.lcssa, %do.body325.preheader ] - %229 = load i32, ptr %e.0745, align 4 - %230 = load i32, ptr %f.0746, align 4 - store i32 %230, ptr %e.0745, align 4 - store i32 %229, ptr %f.0746, align 4 - %dec328 = add nsw i32 %s.1747, -1 - %incdec.ptr329 = getelementptr inbounds i32, ptr %e.0745, i64 1 - %incdec.ptr330 = getelementptr inbounds i32, ptr %f.0746, i64 1 - %cmp322 = icmp ugt i32 %s.1747, 1 + %s.1746 = phi i32 [ %dec328, %do.body325 ], [ %spec.select, %do.body325.preheader ] + %f.0745 = phi ptr [ %incdec.ptr330, %do.body325 ], [ %add.ptr320, %do.body325.preheader ] + %e.0744 = phi ptr [ %incdec.ptr329, %do.body325 ], [ %first.addr.0.lcssa, %do.body325.preheader ] + %229 = load i32, ptr %e.0744, align 4 + %230 = load i32, ptr %f.0745, align 4 + store i32 %230, ptr %e.0744, align 4 + store i32 %229, ptr %f.0745, align 4 + %dec328 = add nsw i32 %s.1746, -1 + %incdec.ptr329 = getelementptr inbounds i32, ptr %e.0744, i64 1 + %incdec.ptr330 = getelementptr inbounds i32, ptr %f.0745, i64 1 + %cmp322 = icmp ugt i32 %s.1746, 1 br i1 %cmp322, label %do.body325, label %for.end331, !llvm.loop !85 for.end331: ; preds = %do.body325, %if.then303 @@ -6315,8 +6313,8 @@ for.end331: ; preds = %do.body325, %if.the %231 = trunc i64 %sub.ptr.div340 to i32 %conv342 = add i32 %231, -1 %spec.select361 = tail call i32 @llvm.smin.i32(i32 %conv342, i32 %conv336) - %cmp351748 = icmp sgt i32 %spec.select361, 0 - br i1 %cmp351748, label %do.body354.preheader, label %for.end360 + %cmp351747 = icmp sgt i32 %spec.select361, 0 + br i1 %cmp351747, label %do.body354.preheader, label %for.end360 do.body354.preheader: ; preds = %for.end331 %idx.ext347 = zext nneg i32 %spec.select361 to i64 @@ -6325,17 +6323,17 @@ do.body354.preheader: ; preds = %for.end331 br label %do.body354 do.body354: ; preds = %do.body354.preheader, %do.body354 - %s.3751 = phi i32 [ %dec357, %do.body354 ], [ %spec.select361, %do.body354.preheader ] - %f.1750 = phi ptr [ %incdec.ptr359, %do.body354 ], [ %add.ptr349, %do.body354.preheader ] - %e.1749 = phi ptr [ %incdec.ptr358, %do.body354 ], [ %b.3.lcssa, %do.body354.preheader ] - %232 = load i32, ptr %e.1749, align 4 - %233 = load i32, ptr %f.1750, align 4 - store i32 %233, ptr %e.1749, align 4 - store i32 %232, ptr %f.1750, align 4 - %dec357 = add nsw i32 %s.3751, -1 - %incdec.ptr358 = getelementptr inbounds i32, ptr %e.1749, i64 1 - %incdec.ptr359 = getelementptr inbounds i32, ptr %f.1750, i64 1 - %cmp351 = icmp ugt i32 %s.3751, 1 + %s.3750 = phi i32 [ %dec357, %do.body354 ], [ %spec.select361, %do.body354.preheader ] + %f.1749 = phi ptr [ %incdec.ptr359, %do.body354 ], [ %add.ptr349, %do.body354.preheader ] + %e.1748 = phi ptr [ %incdec.ptr358, %do.body354 ], [ %b.3.lcssa, %do.body354.preheader ] + %232 = load i32, ptr %e.1748, align 4 + %233 = load i32, ptr %f.1749, align 4 + store i32 %233, ptr %e.1748, align 4 + store i32 %232, ptr %f.1749, align 4 + %dec357 = add nsw i32 %s.3750, -1 + %incdec.ptr358 = getelementptr inbounds i32, ptr %e.1748, i64 1 + %incdec.ptr359 = getelementptr inbounds i32, ptr %f.1749, i64 1 + %cmp351 = icmp ugt i32 %s.3750, 1 br i1 %cmp351, label %do.body354, label %for.end360, !llvm.loop !86 for.end360: ; preds = %do.body354, %for.end331 @@ -6354,75 +6352,75 @@ for.end360: ; preds = %do.body354, %for.en br i1 %cmp378.not, label %cond.false, label %cond.end cond.false: ; preds = %for.end360 - %add.ptr.i445 = getelementptr inbounds i32, ptr %add.ptr365, i64 -1 - br label %for.cond.i446 - -for.cond.i446: ; preds = %if.end.i467, %cond.false - %b.0.i447 = phi ptr [ %add.ptr371, %cond.false ], [ %incdec.ptr8.i455, %if.end.i467 ] - %a.0.i448 = phi ptr [ %add.ptr.i445, %cond.false ], [ %incdec.ptr.lcssa.i452, %if.end.i467 ] - %incdec.ptr25.i449 = getelementptr inbounds i32, ptr %a.0.i448, i64 1 - %cmp26.i450 = icmp ult ptr %incdec.ptr25.i449, %b.0.i447 - br i1 %cmp26.i450, label %land.rhs.i469, label %for.end.i451 - -land.rhs.i469: ; preds = %for.cond.i446, %for.body.i476 - %incdec.ptr27.i470 = phi ptr [ %incdec.ptr.i478, %for.body.i476 ], [ %incdec.ptr25.i449, %for.cond.i446 ] - %239 = load i32, ptr %incdec.ptr27.i470, align 4 - %idxprom.i471 = sext i32 %239 to i64 - %arrayidx.i472 = getelementptr inbounds i32, ptr %PA, i64 %idxprom.i471 - %240 = load i32, ptr %arrayidx.i472, align 4 - %add.i473 = add nsw i32 %240, %depth.addr.0.lcssa - %arrayidx4.i474 = getelementptr i32, ptr %arrayidx.i472, i64 1 - %241 = load i32, ptr %arrayidx4.i474, align 4 - %cmp6.not.not.i475 = icmp sgt i32 %add.i473, %241 - br i1 %cmp6.not.not.i475, label %for.body.i476, label %for.end.i451 - -for.body.i476: ; preds = %land.rhs.i469 - %not.i477 = xor i32 %239, -1 - store i32 %not.i477, ptr %incdec.ptr27.i470, align 4 - %incdec.ptr.i478 = getelementptr inbounds i32, ptr %incdec.ptr27.i470, i64 1 - %cmp.i479 = icmp ult ptr %incdec.ptr.i478, %b.0.i447 - br i1 %cmp.i479, label %land.rhs.i469, label %for.end.i451, !llvm.loop !76 - -for.end.i451: ; preds = %for.body.i476, %land.rhs.i469, %for.cond.i446 - %incdec.ptr.lcssa.i452 = phi ptr [ %incdec.ptr25.i449, %for.cond.i446 ], [ %incdec.ptr27.i470, %land.rhs.i469 ], [ %incdec.ptr.i478, %for.body.i476 ] - br label %for.cond7.i453 - -for.cond7.i453: ; preds = %land.rhs10.i461, %for.end.i451 - %b.1.i454 = phi ptr [ %b.0.i447, %for.end.i451 ], [ %incdec.ptr8.i455, %land.rhs10.i461 ] - %incdec.ptr8.i455 = getelementptr inbounds i32, ptr %b.1.i454, i64 -1 - %cmp9.i456 = icmp ult ptr %incdec.ptr.lcssa.i452, %incdec.ptr8.i455 - br i1 %cmp9.i456, label %land.rhs10.i461, label %for.end24.i457 - -land.rhs10.i461: ; preds = %for.cond7.i453 - %242 = load i32, ptr %incdec.ptr8.i455, align 4 - %idxprom11.i462 = sext i32 %242 to i64 - %arrayidx12.i463 = getelementptr inbounds i32, ptr %PA, i64 %idxprom11.i462 - %243 = load i32, ptr %arrayidx12.i463, align 4 - %add13.i464 = add nsw i32 %243, %depth.addr.0.lcssa - %arrayidx16.i465 = getelementptr i32, ptr %arrayidx12.i463, i64 1 - %244 = load i32, ptr %arrayidx16.i465, align 4 - %cmp18.not.i466 = icmp sgt i32 %add13.i464, %244 - br i1 %cmp18.not.i466, label %if.end.i467, label %for.cond7.i453, !llvm.loop !77 - -if.end.i467: ; preds = %land.rhs10.i461 - %not23.i468 = xor i32 %242, -1 - %245 = load i32, ptr %incdec.ptr.lcssa.i452, align 4 - store i32 %245, ptr %incdec.ptr8.i455, align 4 - store i32 %not23.i468, ptr %incdec.ptr.lcssa.i452, align 4 - br label %for.cond.i446 - -for.end24.i457: ; preds = %for.cond7.i453 - %cmp25.i458 = icmp ugt ptr %incdec.ptr.lcssa.i452, %add.ptr365 - br i1 %cmp25.i458, label %if.then26.i459, label %cond.end - -if.then26.i459: ; preds = %for.end24.i457 + %add.ptr.i444 = getelementptr inbounds i32, ptr %add.ptr365, i64 -1 + br label %for.cond.i445 + +for.cond.i445: ; preds = %if.end.i466, %cond.false + %b.0.i446 = phi ptr [ %add.ptr371, %cond.false ], [ %incdec.ptr8.i454, %if.end.i466 ] + %a.0.i447 = phi ptr [ %add.ptr.i444, %cond.false ], [ %incdec.ptr.lcssa.i451, %if.end.i466 ] + %incdec.ptr25.i448 = getelementptr inbounds i32, ptr %a.0.i447, i64 1 + %cmp26.i449 = icmp ult ptr %incdec.ptr25.i448, %b.0.i446 + br i1 %cmp26.i449, label %land.rhs.i468, label %for.end.i450 + +land.rhs.i468: ; preds = %for.cond.i445, %for.body.i475 + %incdec.ptr27.i469 = phi ptr [ %incdec.ptr.i477, %for.body.i475 ], [ %incdec.ptr25.i448, %for.cond.i445 ] + %239 = load i32, ptr %incdec.ptr27.i469, align 4 + %idxprom.i470 = sext i32 %239 to i64 + %arrayidx.i471 = getelementptr inbounds i32, ptr %PA, i64 %idxprom.i470 + %240 = load i32, ptr %arrayidx.i471, align 4 + %add.i472 = add nsw i32 %240, %depth.addr.0.lcssa + %arrayidx4.i473 = getelementptr i32, ptr %arrayidx.i471, i64 1 + %241 = load i32, ptr %arrayidx4.i473, align 4 + %cmp6.not.not.i474 = icmp sgt i32 %add.i472, %241 + br i1 %cmp6.not.not.i474, label %for.body.i475, label %for.end.i450 + +for.body.i475: ; preds = %land.rhs.i468 + %not.i476 = xor i32 %239, -1 + store i32 %not.i476, ptr %incdec.ptr27.i469, align 4 + %incdec.ptr.i477 = getelementptr inbounds i32, ptr %incdec.ptr27.i469, i64 1 + %cmp.i478 = icmp ult ptr %incdec.ptr.i477, %b.0.i446 + br i1 %cmp.i478, label %land.rhs.i468, label %for.end.i450, !llvm.loop !76 + +for.end.i450: ; preds = %for.body.i475, %land.rhs.i468, %for.cond.i445 + %incdec.ptr.lcssa.i451 = phi ptr [ %incdec.ptr25.i448, %for.cond.i445 ], [ %incdec.ptr27.i469, %land.rhs.i468 ], [ %incdec.ptr.i477, %for.body.i475 ] + br label %for.cond7.i452 + +for.cond7.i452: ; preds = %land.rhs10.i460, %for.end.i450 + %b.1.i453 = phi ptr [ %b.0.i446, %for.end.i450 ], [ %incdec.ptr8.i454, %land.rhs10.i460 ] + %incdec.ptr8.i454 = getelementptr inbounds i32, ptr %b.1.i453, i64 -1 + %cmp9.i455 = icmp ult ptr %incdec.ptr.lcssa.i451, %incdec.ptr8.i454 + br i1 %cmp9.i455, label %land.rhs10.i460, label %for.end24.i456 + +land.rhs10.i460: ; preds = %for.cond7.i452 + %242 = load i32, ptr %incdec.ptr8.i454, align 4 + %idxprom11.i461 = sext i32 %242 to i64 + %arrayidx12.i462 = getelementptr inbounds i32, ptr %PA, i64 %idxprom11.i461 + %243 = load i32, ptr %arrayidx12.i462, align 4 + %add13.i463 = add nsw i32 %243, %depth.addr.0.lcssa + %arrayidx16.i464 = getelementptr i32, ptr %arrayidx12.i462, i64 1 + %244 = load i32, ptr %arrayidx16.i464, align 4 + %cmp18.not.i465 = icmp sgt i32 %add13.i463, %244 + br i1 %cmp18.not.i465, label %if.end.i466, label %for.cond7.i452, !llvm.loop !77 + +if.end.i466: ; preds = %land.rhs10.i460 + %not23.i467 = xor i32 %242, -1 + %245 = load i32, ptr %incdec.ptr.lcssa.i451, align 4 + store i32 %245, ptr %incdec.ptr8.i454, align 4 + store i32 %not23.i467, ptr %incdec.ptr.lcssa.i451, align 4 + br label %for.cond.i445 + +for.end24.i456: ; preds = %for.cond7.i452 + %cmp25.i457 = icmp ugt ptr %incdec.ptr.lcssa.i451, %add.ptr365 + br i1 %cmp25.i457, label %if.then26.i458, label %cond.end + +if.then26.i458: ; preds = %for.end24.i456 %246 = load i32, ptr %add.ptr365, align 4 - %not27.i460 = xor i32 %246, -1 - store i32 %not27.i460, ptr %add.ptr365, align 4 + %not27.i459 = xor i32 %246, -1 + store i32 %not27.i459, ptr %add.ptr365, align 4 br label %cond.end -cond.end: ; preds = %if.then26.i459, %for.end24.i457, %for.end360 - %cond = phi ptr [ %add.ptr365, %for.end360 ], [ %incdec.ptr.lcssa.i452, %for.end24.i457 ], [ %incdec.ptr.lcssa.i452, %if.then26.i459 ] +cond.end: ; preds = %if.then26.i458, %for.end24.i456, %for.end360 + %cond = phi ptr [ %add.ptr365, %for.end360 ], [ %incdec.ptr.lcssa.i451, %for.end24.i456 ], [ %incdec.ptr.lcssa.i451, %if.then26.i458 ] %sub.ptr.rhs.cast386 = ptrtoint ptr %add.ptr371 to i64 %cmp389.not = icmp sgt i64 %sub.ptr.div313, %sub.ptr.div335 %sub.ptr.rhs.cast535 = ptrtoint ptr %cond to i64 @@ -6444,28 +6442,28 @@ do.body403: ; preds = %if.then391 %c413 = getelementptr inbounds [16 x %struct.anon], ptr %stack, i64 0, i64 %idxprom404, i32 2 store i32 %add410, ptr %c413, align 8 %247 = and i64 %sub.ptr.sub536, 261120 - %tobool.not.i482 = icmp eq i64 %247, 0 - br i1 %tobool.not.i482, label %cond.false.i490, label %cond.true.i483 - -cond.true.i483: ; preds = %do.body403 - %shr.i484 = lshr i64 %sub.ptr.div537, 8 - %and1.i485 = and i64 %shr.i484, 255 - %arrayidx.i487 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and1.i485 - %248 = load i32, ptr %arrayidx.i487, align 4 - %add.i488 = add nsw i32 %248, 8 - br label %ss_ilg.exit494 - -cond.false.i490: ; preds = %do.body403 - %and3.i491 = and i64 %sub.ptr.div537, 255 - %arrayidx5.i493 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and3.i491 - %249 = load i32, ptr %arrayidx5.i493, align 4 - br label %ss_ilg.exit494 - -ss_ilg.exit494: ; preds = %cond.true.i483, %cond.false.i490 - %cond.i489 = phi i32 [ %add.i488, %cond.true.i483 ], [ %249, %cond.false.i490 ] + %tobool.not.i481 = icmp eq i64 %247, 0 + br i1 %tobool.not.i481, label %cond.false.i489, label %cond.true.i482 + +cond.true.i482: ; preds = %do.body403 + %shr.i483 = lshr i64 %sub.ptr.div537, 8 + %and1.i484 = and i64 %shr.i483, 255 + %arrayidx.i486 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and1.i484 + %248 = load i32, ptr %arrayidx.i486, align 4 + %add.i487 = add nsw i32 %248, 8 + br label %ss_ilg.exit493 + +cond.false.i489: ; preds = %do.body403 + %and3.i490 = and i64 %sub.ptr.div537, 255 + %arrayidx5.i492 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and3.i490 + %249 = load i32, ptr %arrayidx5.i492, align 4 + br label %ss_ilg.exit493 + +ss_ilg.exit493: ; preds = %cond.true.i482, %cond.false.i489 + %cond.i488 = phi i32 [ %add.i487, %cond.true.i482 ], [ %249, %cond.false.i489 ] %inc420 = add nsw i32 %ssize.0.lcssa, 1 %d423 = getelementptr inbounds [16 x %struct.anon], ptr %stack, i64 0, i64 %idxprom404, i32 3 - store i32 %cond.i489, ptr %d423, align 4 + store i32 %cond.i488, ptr %d423, align 4 %idxprom426 = sext i32 %inc420 to i64 %arrayidx427 = getelementptr inbounds [16 x %struct.anon], ptr %stack, i64 0, i64 %idxprom426 store ptr %add.ptr371, ptr %arrayidx427, align 8 @@ -6502,28 +6500,28 @@ do.body452: ; preds = %if.else440 %c477 = getelementptr inbounds [16 x %struct.anon], ptr %stack, i64 0, i64 %idxprom506, i32 2 store i32 %add474, ptr %c477, align 8 %250 = and i64 %sub.ptr.sub536, 261120 - %tobool.not.i496 = icmp eq i64 %250, 0 - br i1 %tobool.not.i496, label %cond.false.i504, label %cond.true.i497 - -cond.true.i497: ; preds = %do.body452 - %shr.i498 = lshr i64 %sub.ptr.div537, 8 - %and1.i499 = and i64 %shr.i498, 255 - %arrayidx.i501 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and1.i499 - %251 = load i32, ptr %arrayidx.i501, align 4 - %add.i502 = add nsw i32 %251, 8 - br label %ss_ilg.exit508 - -cond.false.i504: ; preds = %do.body452 - %and3.i505 = and i64 %sub.ptr.div537, 255 - %arrayidx5.i507 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and3.i505 - %252 = load i32, ptr %arrayidx5.i507, align 4 - br label %ss_ilg.exit508 - -ss_ilg.exit508: ; preds = %cond.true.i497, %cond.false.i504 - %cond.i503 = phi i32 [ %add.i502, %cond.true.i497 ], [ %252, %cond.false.i504 ] + %tobool.not.i495 = icmp eq i64 %250, 0 + br i1 %tobool.not.i495, label %cond.false.i503, label %cond.true.i496 + +cond.true.i496: ; preds = %do.body452 + %shr.i497 = lshr i64 %sub.ptr.div537, 8 + %and1.i498 = and i64 %shr.i497, 255 + %arrayidx.i500 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and1.i498 + %251 = load i32, ptr %arrayidx.i500, align 4 + %add.i501 = add nsw i32 %251, 8 + br label %ss_ilg.exit507 + +cond.false.i503: ; preds = %do.body452 + %and3.i504 = and i64 %sub.ptr.div537, 255 + %arrayidx5.i506 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and3.i504 + %252 = load i32, ptr %arrayidx5.i506, align 4 + br label %ss_ilg.exit507 + +ss_ilg.exit507: ; preds = %cond.true.i496, %cond.false.i503 + %cond.i502 = phi i32 [ %add.i501, %cond.true.i496 ], [ %252, %cond.false.i503 ] %inc484 = add nsw i32 %ssize.0.lcssa, 2 %d487 = getelementptr inbounds [16 x %struct.anon], ptr %stack, i64 0, i64 %idxprom506, i32 3 - store i32 %cond.i503, ptr %d487, align 4 + store i32 %cond.i502, ptr %d487, align 4 br label %for.cond.outer.backedge do.body490: ; preds = %if.else440 @@ -6536,21 +6534,21 @@ do.body490: ; preds = %if.else440 store i32 %dec28, ptr %d518, align 4 %add520 = add nsw i32 %depth.addr.0.lcssa, 1 %253 = and i64 %sub.ptr.sub536, 261120 - %tobool.not.i510 = icmp eq i64 %253, 0 - br i1 %tobool.not.i510, label %cond.false.i518, label %cond.true.i511 - -cond.true.i511: ; preds = %do.body490 - %shr.i512 = lshr i64 %sub.ptr.div537, 8 - %and1.i513 = and i64 %shr.i512, 255 - %arrayidx.i515 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and1.i513 - %254 = load i32, ptr %arrayidx.i515, align 4 - %add.i516 = add nsw i32 %254, 8 + %tobool.not.i509 = icmp eq i64 %253, 0 + br i1 %tobool.not.i509, label %cond.false.i517, label %cond.true.i510 + +cond.true.i510: ; preds = %do.body490 + %shr.i511 = lshr i64 %sub.ptr.div537, 8 + %and1.i512 = and i64 %shr.i511, 255 + %arrayidx.i514 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and1.i512 + %254 = load i32, ptr %arrayidx.i514, align 4 + %add.i515 = add nsw i32 %254, 8 br label %for.cond.outer.backedge -cond.false.i518: ; preds = %do.body490 - %and3.i519 = and i64 %sub.ptr.div537, 255 - %arrayidx5.i521 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and3.i519 - %255 = load i32, ptr %arrayidx5.i521, align 4 +cond.false.i517: ; preds = %do.body490 + %and3.i518 = and i64 %sub.ptr.div537, 255 + %arrayidx5.i520 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and3.i518 + %255 = load i32, ptr %arrayidx5.i520, align 4 br label %for.cond.outer.backedge if.else529: ; preds = %cond.end @@ -6567,28 +6565,28 @@ do.body541: ; preds = %if.else529 %c551 = getelementptr inbounds [16 x %struct.anon], ptr %stack, i64 0, i64 %idxprom542, i32 2 store i32 %add548, ptr %c551, align 8 %256 = and i64 %sub.ptr.sub536, 261120 - %tobool.not.i524 = icmp eq i64 %256, 0 - br i1 %tobool.not.i524, label %cond.false.i532, label %cond.true.i525 - -cond.true.i525: ; preds = %do.body541 - %shr.i526 = lshr i64 %sub.ptr.div537, 8 - %and1.i527 = and i64 %shr.i526, 255 - %arrayidx.i529 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and1.i527 - %257 = load i32, ptr %arrayidx.i529, align 4 - %add.i530 = add nsw i32 %257, 8 - br label %ss_ilg.exit536 - -cond.false.i532: ; preds = %do.body541 - %and3.i533 = and i64 %sub.ptr.div537, 255 - %arrayidx5.i535 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and3.i533 - %258 = load i32, ptr %arrayidx5.i535, align 4 - br label %ss_ilg.exit536 - -ss_ilg.exit536: ; preds = %cond.true.i525, %cond.false.i532 - %cond.i531 = phi i32 [ %add.i530, %cond.true.i525 ], [ %258, %cond.false.i532 ] + %tobool.not.i523 = icmp eq i64 %256, 0 + br i1 %tobool.not.i523, label %cond.false.i531, label %cond.true.i524 + +cond.true.i524: ; preds = %do.body541 + %shr.i525 = lshr i64 %sub.ptr.div537, 8 + %and1.i526 = and i64 %shr.i525, 255 + %arrayidx.i528 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and1.i526 + %257 = load i32, ptr %arrayidx.i528, align 4 + %add.i529 = add nsw i32 %257, 8 + br label %ss_ilg.exit535 + +cond.false.i531: ; preds = %do.body541 + %and3.i532 = and i64 %sub.ptr.div537, 255 + %arrayidx5.i534 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and3.i532 + %258 = load i32, ptr %arrayidx5.i534, align 4 + br label %ss_ilg.exit535 + +ss_ilg.exit535: ; preds = %cond.true.i524, %cond.false.i531 + %cond.i530 = phi i32 [ %add.i529, %cond.true.i524 ], [ %258, %cond.false.i531 ] %inc558 = add nsw i32 %ssize.0.lcssa, 1 %d561 = getelementptr inbounds [16 x %struct.anon], ptr %stack, i64 0, i64 %idxprom542, i32 3 - store i32 %cond.i531, ptr %d561, align 4 + store i32 %cond.i530, ptr %d561, align 4 %idxprom564 = sext i32 %inc558 to i64 %arrayidx565 = getelementptr inbounds [16 x %struct.anon], ptr %stack, i64 0, i64 %idxprom564 store ptr %first.addr.0.lcssa, ptr %arrayidx565, align 8 @@ -6625,28 +6623,28 @@ do.body590: ; preds = %if.else578 %c615 = getelementptr inbounds [16 x %struct.anon], ptr %stack, i64 0, i64 %idxprom644, i32 2 store i32 %add612, ptr %c615, align 8 %259 = and i64 %sub.ptr.sub536, 261120 - %tobool.not.i538 = icmp eq i64 %259, 0 - br i1 %tobool.not.i538, label %cond.false.i546, label %cond.true.i539 - -cond.true.i539: ; preds = %do.body590 - %shr.i540 = lshr i64 %sub.ptr.div537, 8 - %and1.i541 = and i64 %shr.i540, 255 - %arrayidx.i543 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and1.i541 - %260 = load i32, ptr %arrayidx.i543, align 4 - %add.i544 = add nsw i32 %260, 8 - br label %ss_ilg.exit550 - -cond.false.i546: ; preds = %do.body590 - %and3.i547 = and i64 %sub.ptr.div537, 255 - %arrayidx5.i549 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and3.i547 - %261 = load i32, ptr %arrayidx5.i549, align 4 - br label %ss_ilg.exit550 - -ss_ilg.exit550: ; preds = %cond.true.i539, %cond.false.i546 - %cond.i545 = phi i32 [ %add.i544, %cond.true.i539 ], [ %261, %cond.false.i546 ] + %tobool.not.i537 = icmp eq i64 %259, 0 + br i1 %tobool.not.i537, label %cond.false.i545, label %cond.true.i538 + +cond.true.i538: ; preds = %do.body590 + %shr.i539 = lshr i64 %sub.ptr.div537, 8 + %and1.i540 = and i64 %shr.i539, 255 + %arrayidx.i542 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and1.i540 + %260 = load i32, ptr %arrayidx.i542, align 4 + %add.i543 = add nsw i32 %260, 8 + br label %ss_ilg.exit549 + +cond.false.i545: ; preds = %do.body590 + %and3.i546 = and i64 %sub.ptr.div537, 255 + %arrayidx5.i548 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and3.i546 + %261 = load i32, ptr %arrayidx5.i548, align 4 + br label %ss_ilg.exit549 + +ss_ilg.exit549: ; preds = %cond.true.i538, %cond.false.i545 + %cond.i544 = phi i32 [ %add.i543, %cond.true.i538 ], [ %261, %cond.false.i545 ] %inc622 = add nsw i32 %ssize.0.lcssa, 2 %d625 = getelementptr inbounds [16 x %struct.anon], ptr %stack, i64 0, i64 %idxprom644, i32 3 - store i32 %cond.i545, ptr %d625, align 4 + store i32 %cond.i544, ptr %d625, align 4 br label %for.cond.outer.backedge do.body628: ; preds = %if.else578 @@ -6659,21 +6657,21 @@ do.body628: ; preds = %if.else578 store i32 %dec28, ptr %d656, align 4 %add658 = add nsw i32 %depth.addr.0.lcssa, 1 %262 = and i64 %sub.ptr.sub536, 261120 - %tobool.not.i552 = icmp eq i64 %262, 0 - br i1 %tobool.not.i552, label %cond.false.i560, label %cond.true.i553 - -cond.true.i553: ; preds = %do.body628 - %shr.i554 = lshr i64 %sub.ptr.div537, 8 - %and1.i555 = and i64 %shr.i554, 255 - %arrayidx.i557 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and1.i555 - %263 = load i32, ptr %arrayidx.i557, align 4 - %add.i558 = add nsw i32 %263, 8 + %tobool.not.i551 = icmp eq i64 %262, 0 + br i1 %tobool.not.i551, label %cond.false.i559, label %cond.true.i552 + +cond.true.i552: ; preds = %do.body628 + %shr.i553 = lshr i64 %sub.ptr.div537, 8 + %and1.i554 = and i64 %shr.i553, 255 + %arrayidx.i556 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and1.i554 + %263 = load i32, ptr %arrayidx.i556, align 4 + %add.i557 = add nsw i32 %263, 8 br label %for.cond.outer.backedge -cond.false.i560: ; preds = %do.body628 - %and3.i561 = and i64 %sub.ptr.div537, 255 - %arrayidx5.i563 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and3.i561 - %264 = load i32, ptr %arrayidx5.i563, align 4 +cond.false.i559: ; preds = %do.body628 + %and3.i560 = and i64 %sub.ptr.div537, 255 + %arrayidx5.i562 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and3.i560 + %264 = load i32, ptr %arrayidx5.i562, align 4 br label %for.cond.outer.backedge if.else668: ; preds = %for.end300 @@ -6689,107 +6687,107 @@ if.else668: ; preds = %for.end300 br i1 %cmp676, label %if.then678, label %if.end686 if.then678: ; preds = %if.else668 - %add.ptr.i565 = getelementptr inbounds i32, ptr %first.addr.0.lcssa, i64 -1 - br label %for.cond.i566 - -for.cond.i566: ; preds = %if.end.i587, %if.then678 - %b.0.i567 = phi ptr [ %last.addr.0.lcssa, %if.then678 ], [ %incdec.ptr8.i575, %if.end.i587 ] - %a.0.i568 = phi ptr [ %add.ptr.i565, %if.then678 ], [ %incdec.ptr.lcssa.i572, %if.end.i587 ] - %incdec.ptr25.i569 = getelementptr inbounds i32, ptr %a.0.i568, i64 1 - %cmp26.i570 = icmp ult ptr %incdec.ptr25.i569, %b.0.i567 - br i1 %cmp26.i570, label %land.rhs.i589, label %for.end.i571 - -land.rhs.i589: ; preds = %for.cond.i566, %for.body.i596 - %incdec.ptr27.i590 = phi ptr [ %incdec.ptr.i598, %for.body.i596 ], [ %incdec.ptr25.i569, %for.cond.i566 ] - %270 = load i32, ptr %incdec.ptr27.i590, align 4 - %idxprom.i591 = sext i32 %270 to i64 - %arrayidx.i592 = getelementptr inbounds i32, ptr %PA, i64 %idxprom.i591 - %271 = load i32, ptr %arrayidx.i592, align 4 - %add.i593 = add nsw i32 %271, %depth.addr.0.lcssa - %arrayidx4.i594 = getelementptr i32, ptr %arrayidx.i592, i64 1 - %272 = load i32, ptr %arrayidx4.i594, align 4 - %cmp6.not.not.i595 = icmp sgt i32 %add.i593, %272 - br i1 %cmp6.not.not.i595, label %for.body.i596, label %for.end.i571 - -for.body.i596: ; preds = %land.rhs.i589 - %not.i597 = xor i32 %270, -1 - store i32 %not.i597, ptr %incdec.ptr27.i590, align 4 - %incdec.ptr.i598 = getelementptr inbounds i32, ptr %incdec.ptr27.i590, i64 1 - %cmp.i599 = icmp ult ptr %incdec.ptr.i598, %b.0.i567 - br i1 %cmp.i599, label %land.rhs.i589, label %for.end.i571, !llvm.loop !76 - -for.end.i571: ; preds = %for.body.i596, %land.rhs.i589, %for.cond.i566 - %incdec.ptr.lcssa.i572 = phi ptr [ %incdec.ptr25.i569, %for.cond.i566 ], [ %incdec.ptr27.i590, %land.rhs.i589 ], [ %incdec.ptr.i598, %for.body.i596 ] - br label %for.cond7.i573 - -for.cond7.i573: ; preds = %land.rhs10.i581, %for.end.i571 - %b.1.i574 = phi ptr [ %b.0.i567, %for.end.i571 ], [ %incdec.ptr8.i575, %land.rhs10.i581 ] - %incdec.ptr8.i575 = getelementptr inbounds i32, ptr %b.1.i574, i64 -1 - %cmp9.i576 = icmp ult ptr %incdec.ptr.lcssa.i572, %incdec.ptr8.i575 - br i1 %cmp9.i576, label %land.rhs10.i581, label %for.end24.i577 - -land.rhs10.i581: ; preds = %for.cond7.i573 - %273 = load i32, ptr %incdec.ptr8.i575, align 4 - %idxprom11.i582 = sext i32 %273 to i64 - %arrayidx12.i583 = getelementptr inbounds i32, ptr %PA, i64 %idxprom11.i582 - %274 = load i32, ptr %arrayidx12.i583, align 4 - %add13.i584 = add nsw i32 %274, %depth.addr.0.lcssa - %arrayidx16.i585 = getelementptr i32, ptr %arrayidx12.i583, i64 1 - %275 = load i32, ptr %arrayidx16.i585, align 4 - %cmp18.not.i586 = icmp sgt i32 %add13.i584, %275 - br i1 %cmp18.not.i586, label %if.end.i587, label %for.cond7.i573, !llvm.loop !77 - -if.end.i587: ; preds = %land.rhs10.i581 - %not23.i588 = xor i32 %273, -1 - %276 = load i32, ptr %incdec.ptr.lcssa.i572, align 4 - store i32 %276, ptr %incdec.ptr8.i575, align 4 - store i32 %not23.i588, ptr %incdec.ptr.lcssa.i572, align 4 - br label %for.cond.i566 - -for.end24.i577: ; preds = %for.cond7.i573 - %cmp25.i578 = icmp ugt ptr %incdec.ptr.lcssa.i572, %first.addr.0.lcssa - br i1 %cmp25.i578, label %if.then26.i579, label %ss_partition.exit600 - -if.then26.i579: ; preds = %for.end24.i577 + %add.ptr.i564 = getelementptr inbounds i32, ptr %first.addr.0.lcssa, i64 -1 + br label %for.cond.i565 + +for.cond.i565: ; preds = %if.end.i586, %if.then678 + %b.0.i566 = phi ptr [ %last.addr.0.lcssa, %if.then678 ], [ %incdec.ptr8.i574, %if.end.i586 ] + %a.0.i567 = phi ptr [ %add.ptr.i564, %if.then678 ], [ %incdec.ptr.lcssa.i571, %if.end.i586 ] + %incdec.ptr25.i568 = getelementptr inbounds i32, ptr %a.0.i567, i64 1 + %cmp26.i569 = icmp ult ptr %incdec.ptr25.i568, %b.0.i566 + br i1 %cmp26.i569, label %land.rhs.i588, label %for.end.i570 + +land.rhs.i588: ; preds = %for.cond.i565, %for.body.i595 + %incdec.ptr27.i589 = phi ptr [ %incdec.ptr.i597, %for.body.i595 ], [ %incdec.ptr25.i568, %for.cond.i565 ] + %270 = load i32, ptr %incdec.ptr27.i589, align 4 + %idxprom.i590 = sext i32 %270 to i64 + %arrayidx.i591 = getelementptr inbounds i32, ptr %PA, i64 %idxprom.i590 + %271 = load i32, ptr %arrayidx.i591, align 4 + %add.i592 = add nsw i32 %271, %depth.addr.0.lcssa + %arrayidx4.i593 = getelementptr i32, ptr %arrayidx.i591, i64 1 + %272 = load i32, ptr %arrayidx4.i593, align 4 + %cmp6.not.not.i594 = icmp sgt i32 %add.i592, %272 + br i1 %cmp6.not.not.i594, label %for.body.i595, label %for.end.i570 + +for.body.i595: ; preds = %land.rhs.i588 + %not.i596 = xor i32 %270, -1 + store i32 %not.i596, ptr %incdec.ptr27.i589, align 4 + %incdec.ptr.i597 = getelementptr inbounds i32, ptr %incdec.ptr27.i589, i64 1 + %cmp.i598 = icmp ult ptr %incdec.ptr.i597, %b.0.i566 + br i1 %cmp.i598, label %land.rhs.i588, label %for.end.i570, !llvm.loop !76 + +for.end.i570: ; preds = %for.body.i595, %land.rhs.i588, %for.cond.i565 + %incdec.ptr.lcssa.i571 = phi ptr [ %incdec.ptr25.i568, %for.cond.i565 ], [ %incdec.ptr27.i589, %land.rhs.i588 ], [ %incdec.ptr.i597, %for.body.i595 ] + br label %for.cond7.i572 + +for.cond7.i572: ; preds = %land.rhs10.i580, %for.end.i570 + %b.1.i573 = phi ptr [ %b.0.i566, %for.end.i570 ], [ %incdec.ptr8.i574, %land.rhs10.i580 ] + %incdec.ptr8.i574 = getelementptr inbounds i32, ptr %b.1.i573, i64 -1 + %cmp9.i575 = icmp ult ptr %incdec.ptr.lcssa.i571, %incdec.ptr8.i574 + br i1 %cmp9.i575, label %land.rhs10.i580, label %for.end24.i576 + +land.rhs10.i580: ; preds = %for.cond7.i572 + %273 = load i32, ptr %incdec.ptr8.i574, align 4 + %idxprom11.i581 = sext i32 %273 to i64 + %arrayidx12.i582 = getelementptr inbounds i32, ptr %PA, i64 %idxprom11.i581 + %274 = load i32, ptr %arrayidx12.i582, align 4 + %add13.i583 = add nsw i32 %274, %depth.addr.0.lcssa + %arrayidx16.i584 = getelementptr i32, ptr %arrayidx12.i582, i64 1 + %275 = load i32, ptr %arrayidx16.i584, align 4 + %cmp18.not.i585 = icmp sgt i32 %add13.i583, %275 + br i1 %cmp18.not.i585, label %if.end.i586, label %for.cond7.i572, !llvm.loop !77 + +if.end.i586: ; preds = %land.rhs10.i580 + %not23.i587 = xor i32 %273, -1 + %276 = load i32, ptr %incdec.ptr.lcssa.i571, align 4 + store i32 %276, ptr %incdec.ptr8.i574, align 4 + store i32 %not23.i587, ptr %incdec.ptr.lcssa.i571, align 4 + br label %for.cond.i565 + +for.end24.i576: ; preds = %for.cond7.i572 + %cmp25.i577 = icmp ugt ptr %incdec.ptr.lcssa.i571, %first.addr.0.lcssa + br i1 %cmp25.i577, label %if.then26.i578, label %ss_partition.exit599 + +if.then26.i578: ; preds = %for.end24.i576 %277 = load i32, ptr %first.addr.0.lcssa, align 4 - %not27.i580 = xor i32 %277, -1 - store i32 %not27.i580, ptr %first.addr.0.lcssa, align 4 - br label %ss_partition.exit600 + %not27.i579 = xor i32 %277, -1 + store i32 %not27.i579, ptr %first.addr.0.lcssa, align 4 + br label %ss_partition.exit599 -ss_partition.exit600: ; preds = %for.end24.i577, %if.then26.i579 - %sub.ptr.rhs.cast681 = ptrtoint ptr %incdec.ptr.lcssa.i572 to i64 +ss_partition.exit599: ; preds = %for.end24.i576, %if.then26.i578 + %sub.ptr.rhs.cast681 = ptrtoint ptr %incdec.ptr.lcssa.i571 to i64 %sub.ptr.sub682 = sub i64 %sub.ptr.lhs.cast1.lcssa, %sub.ptr.rhs.cast681 %278 = and i64 %sub.ptr.sub682, 261120 - %tobool.not.i602 = icmp eq i64 %278, 0 - br i1 %tobool.not.i602, label %cond.false.i610, label %cond.true.i603 - -cond.true.i603: ; preds = %ss_partition.exit600 - %shr.i604 = lshr i64 %sub.ptr.sub682, 10 - %and1.i605 = and i64 %shr.i604, 255 - %arrayidx.i607 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and1.i605 - %279 = load i32, ptr %arrayidx.i607, align 4 - %add.i608 = add nsw i32 %279, 8 + %tobool.not.i601 = icmp eq i64 %278, 0 + br i1 %tobool.not.i601, label %cond.false.i609, label %cond.true.i602 + +cond.true.i602: ; preds = %ss_partition.exit599 + %shr.i603 = lshr i64 %sub.ptr.sub682, 10 + %and1.i604 = and i64 %shr.i603, 255 + %arrayidx.i606 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and1.i604 + %279 = load i32, ptr %arrayidx.i606, align 4 + %add.i607 = add nsw i32 %279, 8 br label %if.end686 -cond.false.i610: ; preds = %ss_partition.exit600 +cond.false.i609: ; preds = %ss_partition.exit599 %sub.ptr.div683 = lshr exact i64 %sub.ptr.sub682, 2 - %and3.i611 = and i64 %sub.ptr.div683, 255 - %arrayidx5.i613 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and3.i611 - %280 = load i32, ptr %arrayidx5.i613, align 4 + %and3.i610 = and i64 %sub.ptr.div683, 255 + %arrayidx5.i612 = getelementptr inbounds [256 x i32], ptr @lg_table, i64 0, i64 %and3.i610 + %280 = load i32, ptr %arrayidx5.i612, align 4 br label %if.end686 -if.end686: ; preds = %cond.false.i610, %cond.true.i603, %if.else668 - %first.addr.5 = phi ptr [ %first.addr.0.lcssa, %if.else668 ], [ %incdec.ptr.lcssa.i572, %cond.true.i603 ], [ %incdec.ptr.lcssa.i572, %cond.false.i610 ] - %limit.2 = phi i32 [ %limit.0.lcssa, %if.else668 ], [ %add.i608, %cond.true.i603 ], [ %280, %cond.false.i610 ] +if.end686: ; preds = %cond.false.i609, %cond.true.i602, %if.else668 + %first.addr.5 = phi ptr [ %first.addr.0.lcssa, %if.else668 ], [ %incdec.ptr.lcssa.i571, %cond.true.i602 ], [ %incdec.ptr.lcssa.i571, %cond.false.i609 ] + %limit.2 = phi i32 [ %limit.0.lcssa, %if.else668 ], [ %add.i607, %cond.true.i602 ], [ %280, %cond.false.i609 ] %add687 = add nsw i32 %depth.addr.0.lcssa, 1 br label %for.cond.outer.backedge -for.cond.outer.backedge: ; preds = %if.end686, %ss_ilg.exit536, %ss_ilg.exit550, %ss_ilg.exit494, %ss_ilg.exit508, %cond.true.i511, %cond.false.i518, %cond.true.i553, %cond.false.i560, %ss_ilg.exit409, %if.then87, %cond.true.i384, %cond.false.i391, %cond.true.i412, %cond.false.i419 - %last.addr.0.ph.be = phi ptr [ %last.addr.0.lcssa, %ss_ilg.exit409 ], [ %last.addr.0.lcssa, %if.then87 ], [ %a.0.lcssa, %cond.true.i384 ], [ %a.0.lcssa, %cond.false.i391 ], [ %a.0.lcssa, %cond.true.i412 ], [ %a.0.lcssa, %cond.false.i419 ], [ %add.ptr365, %ss_ilg.exit494 ], [ %add.ptr365, %ss_ilg.exit508 ], [ %last.addr.0.lcssa, %ss_ilg.exit536 ], [ %last.addr.0.lcssa, %ss_ilg.exit550 ], [ %last.addr.0.lcssa, %if.end686 ], [ %add.ptr371, %cond.true.i511 ], [ %add.ptr371, %cond.false.i518 ], [ %add.ptr371, %cond.true.i553 ], [ %add.ptr371, %cond.false.i560 ] - %depth.addr.0.ph.be = phi i32 [ %depth.addr.0.lcssa, %ss_ilg.exit409 ], [ %depth.addr.0.lcssa, %if.then87 ], [ %add, %cond.true.i384 ], [ %add, %cond.false.i391 ], [ %add147, %cond.true.i412 ], [ %add147, %cond.false.i419 ], [ %depth.addr.0.lcssa, %ss_ilg.exit494 ], [ %depth.addr.0.lcssa, %ss_ilg.exit508 ], [ %depth.addr.0.lcssa, %ss_ilg.exit536 ], [ %depth.addr.0.lcssa, %ss_ilg.exit550 ], [ %add687, %if.end686 ], [ %add520, %cond.true.i511 ], [ %add520, %cond.false.i518 ], [ %add658, %cond.true.i553 ], [ %add658, %cond.false.i560 ] - %first.addr.0.ph.be = phi ptr [ %a.0.lcssa, %ss_ilg.exit409 ], [ %a.0.lcssa, %if.then87 ], [ %first.addr.3, %cond.true.i384 ], [ %first.addr.3, %cond.false.i391 ], [ %first.addr.3, %cond.true.i412 ], [ %first.addr.3, %cond.false.i419 ], [ %first.addr.0.lcssa, %ss_ilg.exit494 ], [ %first.addr.0.lcssa, %ss_ilg.exit508 ], [ %add.ptr371, %ss_ilg.exit536 ], [ %add.ptr371, %ss_ilg.exit550 ], [ %first.addr.5, %if.end686 ], [ %cond, %cond.true.i511 ], [ %cond, %cond.false.i518 ], [ %cond, %cond.true.i553 ], [ %cond, %cond.false.i560 ] - %ssize.0.ph.be = phi i32 [ %inc141, %ss_ilg.exit409 ], [ %ssize.0.lcssa, %if.then87 ], [ %inc, %cond.true.i384 ], [ %inc, %cond.false.i391 ], [ %ssize.0.lcssa, %cond.true.i412 ], [ %ssize.0.lcssa, %cond.false.i419 ], [ %inc435, %ss_ilg.exit494 ], [ %inc484, %ss_ilg.exit508 ], [ %inc573, %ss_ilg.exit536 ], [ %inc622, %ss_ilg.exit550 ], [ %ssize.0.lcssa, %if.end686 ], [ %inc515, %cond.true.i511 ], [ %inc515, %cond.false.i518 ], [ %inc653, %cond.true.i553 ], [ %inc653, %cond.false.i560 ] - %limit.0.ph.be = phi i32 [ -1, %ss_ilg.exit409 ], [ -1, %if.then87 ], [ %add.i389, %cond.true.i384 ], [ %85, %cond.false.i391 ], [ %add.i417, %cond.true.i412 ], [ %91, %cond.false.i419 ], [ %dec28, %ss_ilg.exit494 ], [ %dec28, %ss_ilg.exit508 ], [ %dec28, %ss_ilg.exit536 ], [ %dec28, %ss_ilg.exit550 ], [ %limit.2, %if.end686 ], [ %add.i516, %cond.true.i511 ], [ %255, %cond.false.i518 ], [ %add.i558, %cond.true.i553 ], [ %264, %cond.false.i560 ] +for.cond.outer.backedge: ; preds = %if.end686, %ss_ilg.exit535, %ss_ilg.exit549, %ss_ilg.exit493, %ss_ilg.exit507, %cond.true.i510, %cond.false.i517, %cond.true.i552, %cond.false.i559, %ss_ilg.exit409, %if.then87, %cond.true.i384, %cond.false.i391, %cond.true.i412, %cond.false.i419 + %last.addr.0.ph.be = phi ptr [ %last.addr.0.lcssa, %ss_ilg.exit409 ], [ %last.addr.0.lcssa, %if.then87 ], [ %a.0.lcssa, %cond.true.i384 ], [ %a.0.lcssa, %cond.false.i391 ], [ %a.0.lcssa, %cond.true.i412 ], [ %a.0.lcssa, %cond.false.i419 ], [ %add.ptr365, %ss_ilg.exit493 ], [ %add.ptr365, %ss_ilg.exit507 ], [ %last.addr.0.lcssa, %ss_ilg.exit535 ], [ %last.addr.0.lcssa, %ss_ilg.exit549 ], [ %last.addr.0.lcssa, %if.end686 ], [ %add.ptr371, %cond.true.i510 ], [ %add.ptr371, %cond.false.i517 ], [ %add.ptr371, %cond.true.i552 ], [ %add.ptr371, %cond.false.i559 ] + %depth.addr.0.ph.be = phi i32 [ %depth.addr.0.lcssa, %ss_ilg.exit409 ], [ %depth.addr.0.lcssa, %if.then87 ], [ %add, %cond.true.i384 ], [ %add, %cond.false.i391 ], [ %add147, %cond.true.i412 ], [ %add147, %cond.false.i419 ], [ %depth.addr.0.lcssa, %ss_ilg.exit493 ], [ %depth.addr.0.lcssa, %ss_ilg.exit507 ], [ %depth.addr.0.lcssa, %ss_ilg.exit535 ], [ %depth.addr.0.lcssa, %ss_ilg.exit549 ], [ %add687, %if.end686 ], [ %add520, %cond.true.i510 ], [ %add520, %cond.false.i517 ], [ %add658, %cond.true.i552 ], [ %add658, %cond.false.i559 ] + %first.addr.0.ph.be = phi ptr [ %a.0.lcssa, %ss_ilg.exit409 ], [ %a.0.lcssa, %if.then87 ], [ %first.addr.3, %cond.true.i384 ], [ %first.addr.3, %cond.false.i391 ], [ %first.addr.3, %cond.true.i412 ], [ %first.addr.3, %cond.false.i419 ], [ %first.addr.0.lcssa, %ss_ilg.exit493 ], [ %first.addr.0.lcssa, %ss_ilg.exit507 ], [ %add.ptr371, %ss_ilg.exit535 ], [ %add.ptr371, %ss_ilg.exit549 ], [ %first.addr.5, %if.end686 ], [ %cond, %cond.true.i510 ], [ %cond, %cond.false.i517 ], [ %cond, %cond.true.i552 ], [ %cond, %cond.false.i559 ] + %ssize.0.ph.be = phi i32 [ %inc141, %ss_ilg.exit409 ], [ %ssize.0.lcssa, %if.then87 ], [ %inc, %cond.true.i384 ], [ %inc, %cond.false.i391 ], [ %ssize.0.lcssa, %cond.true.i412 ], [ %ssize.0.lcssa, %cond.false.i419 ], [ %inc435, %ss_ilg.exit493 ], [ %inc484, %ss_ilg.exit507 ], [ %inc573, %ss_ilg.exit535 ], [ %inc622, %ss_ilg.exit549 ], [ %ssize.0.lcssa, %if.end686 ], [ %inc515, %cond.true.i510 ], [ %inc515, %cond.false.i517 ], [ %inc653, %cond.true.i552 ], [ %inc653, %cond.false.i559 ] + %limit.0.ph.be = phi i32 [ -1, %ss_ilg.exit409 ], [ -1, %if.then87 ], [ %add.i389, %cond.true.i384 ], [ %85, %cond.false.i391 ], [ %add.i417, %cond.true.i412 ], [ %91, %cond.false.i419 ], [ %dec28, %ss_ilg.exit493 ], [ %dec28, %ss_ilg.exit507 ], [ %dec28, %ss_ilg.exit535 ], [ %dec28, %ss_ilg.exit549 ], [ %limit.2, %if.end686 ], [ %add.i515, %cond.true.i510 ], [ %255, %cond.false.i517 ], [ %add.i557, %cond.true.i552 ], [ %264, %cond.false.i559 ] br label %for.cond.outer } diff --git a/llvm/llvm-project b/llvm/llvm-project index 30a1c0aa279..ffabf735530 160000 --- a/llvm/llvm-project +++ b/llvm/llvm-project @@ -1 +1 @@ -Subproject commit 30a1c0aa27944e52f6e51fe12abc91f62e7b7eac +Subproject commit ffabf7355302b4c506e9a9534ef8f78c1a9e94e7