From 5185824c039cc01e48150016eab6d246db508ca2 Mon Sep 17 00:00:00 2001 From: Yingwei Zheng Date: Sun, 24 Mar 2024 03:48:29 +0800 Subject: [PATCH 1/2] pre-commit: test PR86409 PR Link: https://github.com/llvm/llvm-project/pull/86409 --- scripts/setup_pre_commit_patch.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index e65287a7be9..499471fd3cc 100755 --- a/scripts/setup_pre_commit_patch.sh +++ b/scripts/setup_pre_commit_patch.sh @@ -2,7 +2,7 @@ set -euo pipefail shopt -s inherit_errexit -export GITHUB_PATCH_ID="/llvm-project/commit/" +export GITHUB_PATCH_ID="llvm/llvm-project/pull/86409" # Please rebase manually # git fetch origin From 5147bb9b5efb0e4daff02d9c5cd2336867fa63f9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 24 Mar 2024 04:16:41 +0800 Subject: [PATCH 2/2] pre-commit: Update --- bench/cpython/optimized/dtoa.ll | 14 +- bench/fmt/optimized/format-impl-test.cc.ll | 299 +- bench/hermes/optimized/Interpreter.cpp.ll | 2646 ++++++++--------- bench/hermes/optimized/dtoa.c.ll | 8 +- bench/icu/optimized/putil.ll | 12 +- bench/jq/optimized/jv_dtoa.ll | 4 +- bench/libquic/optimized/dtoa.cc.ll | 4 +- bench/meshlab/optimized/matching.cpp.ll | 6 +- .../optimized/quantization.cpp.ll | 19 +- bench/oiio/optimized/color_ocio.cpp.ll | 52 +- .../optimized/imagebufalgo_pixelmath.cpp.ll | 696 ++--- bench/oiio/optimized/imagebufalgo_yee.cpp.ll | 4 +- bench/oiio/optimized/strutil.cpp.ll | 6 +- bench/openexr/optimized/ImfConvert.cpp.ll | 18 +- bench/openexr/optimized/pack.c.ll | 432 ++- bench/openexr/optimized/unpack.c.ll | 1422 +++++---- bench/php/optimized/zend_strtod.ll | 4 +- bench/postgres/optimized/float.ll | 2 +- bench/quickjs/optimized/quickjs.ll | 6 +- bench/raylib/optimized/rtextures.c.ll | 180 +- bench/ruby/optimized/enumerator.ll | 125 +- bench/ruby/optimized/numeric.ll | 136 +- bench/ruby/optimized/rational.ll | 86 +- bench/ruby/optimized/util.ll | 1651 +++++----- bench/sqlite/optimized/sqlite3.ll | 6 +- 25 files changed, 3828 insertions(+), 4010 deletions(-) diff --git a/bench/cpython/optimized/dtoa.ll b/bench/cpython/optimized/dtoa.ll index c4b8c3b2a30..7aead1d23ad 100644 --- a/bench/cpython/optimized/dtoa.ll +++ b/bench/cpython/optimized/dtoa.ll @@ -4290,9 +4290,8 @@ if.end.i: ; preds = %if.end29.i.i, %if.t store i32 0, ptr %sign.i.i, align 8 %x1.i = getelementptr inbounds i8, ptr %rv.1.i.i, i64 24 %and.i = and i32 %u.sroa.0.4.extract.trunc796, 1048575 - %and3.i = and i32 %u.sroa.0.4.extract.trunc796, 2147483647 - %shr.i = lshr i32 %and3.i, 20 - %tobool.not.i445 = icmp ult i32 %and3.i, 1048576 + %shr.i = lshr i32 %u.sroa.0.4.extract.trunc796, 20 + %tobool.not.i445 = icmp ult i32 %u.sroa.0.4.extract.trunc796, 1048576 %or.i = or disjoint i32 %and.i, 1048576 %spec.select.i = select i1 %tobool.not.i445, i32 %and.i, i32 %or.i %u.sroa.0.0.extract.trunc789 = trunc i64 %.pre-phi to i32 @@ -4535,8 +4534,8 @@ cond.end: ; preds = %cond.false, %cond.t %cond = phi i32 [ %or38, %cond.true ], [ %shl41, %cond.false ] %conv = uitofp i32 %cond to double %27 = bitcast double %conv to i64 - %28 = and i64 %27, -4294967296 - %d2.sroa.0.4.insert.shift82 = add i64 %28, -139611588448485376 + %28 = and i64 %27, 9223372032559808512 + %d2.sroa.0.4.insert.shift82 = add nsw i64 %28, -139611588448485376 %d2.sroa.0.4.insert.mask83 = and i64 %27, 4294967295 %d2.sroa.0.4.insert.insert84 = or disjoint i64 %d2.sroa.0.4.insert.shift82, %d2.sroa.0.4.insert.mask83 %sub44 = add nsw i32 %add, -1 @@ -5308,9 +5307,8 @@ if.end439: ; preds = %if.then433, %if.end land.lhs.true447: ; preds = %if.end439 %tobool450.not = icmp ne i32 %and.i, 0 - %and453 = and i32 %u.sroa.0.4.extract.trunc796, 2145386496 - %tobool454.not = icmp eq i32 %and453, 0 - %or.cond355 = or i1 %tobool450.not, %tobool454.not + %tobool454.not = icmp ult i32 %u.sroa.0.4.extract.trunc796, 2097152 + %or.cond355 = or i1 %tobool454.not, %tobool450.not br i1 %or.cond355, label %if.end459, label %if.then455 if.then455: ; preds = %land.lhs.true447 diff --git a/bench/fmt/optimized/format-impl-test.cc.ll b/bench/fmt/optimized/format-impl-test.cc.ll index 7130837687d..5106faaeb42 100644 --- a/bench/fmt/optimized/format-impl-test.cc.ll +++ b/bench/fmt/optimized/format-impl-test.cc.ll @@ -33597,8 +33597,7 @@ if.end10: ; preds = %if.end %12 = lshr i80 %11, 64 %retval.sroa.2.0.extract.trunc.i.i.i = trunc i80 %12 to i32 %retval.sroa.0.0.extract.trunc.i.mask.i.i = and i80 %11, 18446744073709551615 - %coerce.sroa.2.0.insert.shift45.i.i = and i32 %retval.sroa.2.0.extract.trunc.i.i.i, 32767 - %spec.store.select.i.i = tail call i32 @llvm.umax.i32(i32 %coerce.sroa.2.0.insert.shift45.i.i, i32 1) + %spec.store.select.i.i = tail call i32 @llvm.umax.i32(i32 %retval.sroa.2.0.extract.trunc.i.i.i, i32 1) %m.sroa.0.0.insert.ext.i.i = zext nneg i80 %retval.sroa.0.0.extract.trunc.i.mask.i.i to i128 br label %do.body.i.i @@ -33632,7 +33631,7 @@ cond.true: ; preds = %_ZN3fmt3v106detail1 %conv.i = zext nneg i32 %and.i to i128 %and3.i = and i32 %15, 2139095040 %cmp6.i = icmp eq i32 %and3.i, 0 - %shr.i = lshr exact i32 %and3.i, 23 + %shr.i = lshr i32 %15, 23 %add.i35 = or disjoint i128 %conv.i, 8388608 %16 = add nsw i32 %shr.i, -150 %storemerge.i = select i1 %cmp6.i, i128 %conv.i, i128 %add.i35 @@ -33644,7 +33643,7 @@ cond.true: ; preds = %_ZN3fmt3v106detail1 cond.false: ; preds = %_ZN3fmt3v106detail12count_digitsILi1EoEEiT0_.exit %cmp.i37 = icmp eq i80 %retval.sroa.0.0.extract.trunc.i.mask.i.i, 0 - %cmp6.i38 = icmp ugt i32 %coerce.sroa.2.0.insert.shift45.i.i, 1 + %cmp6.i38 = icmp ugt i32 %retval.sroa.2.0.extract.trunc.i.i.i, 1 %18 = and i1 %cmp.i37, %cmp6.i38 br label %cond.end @@ -44113,7 +44112,7 @@ invoke.cont.i: ; preds = %if.then common.resume: ; preds = %lpad.i.i228, %lpad.i141, %lpad.i112, %lpad.i %exception.i.i227.sink = phi ptr [ %exception.i.i227, %lpad.i.i228 ], [ %exception.i140, %lpad.i141 ], [ %exception.i111, %lpad.i112 ], [ %exception.i, %lpad.i ] - %common.resume.op = phi { ptr, i32 } [ %83, %lpad.i.i228 ], [ %37, %lpad.i141 ], [ %30, %lpad.i112 ], [ %0, %lpad.i ] + %common.resume.op = phi { ptr, i32 } [ %82, %lpad.i.i228 ], [ %36, %lpad.i141 ], [ %29, %lpad.i112 ], [ %0, %lpad.i ] tail call void @__cxa_free_exception(ptr %exception.i.i227.sink) #26 resume { ptr, i32 } %common.resume.op @@ -44288,9 +44287,8 @@ if.end25.i109: ; preds = %_ZN3fmt3v106detail1 if.else: ; preds = %if.end10 %27 = bitcast double %value to i64 %and = and i64 %27, 4503599627370495 - %and40 = lshr i64 %27, 52 - %28 = trunc i64 %and40 to i32 - %conv42 = and i32 %28, 2047 + %shr = lshr i64 %27, 52 + %conv42 = trunc i64 %shr to i32 %cmp43.not = icmp eq i32 %conv42, 0 br i1 %cmp43.not, label %if.else51, label %if.then44 @@ -44305,9 +44303,9 @@ if.else51: ; preds = %if.else br i1 %cmp52.not, label %if.then53, label %if.end54.thread if.end54.thread: ; preds = %if.else51 - %29 = tail call i64 @llvm.ctlz.i64(i64 %and, i1 true), !range !414 - %cast.i = trunc i64 %29 to i32 - %sub66 = add nuw nsw i64 %29, 4294967286 + %28 = tail call i64 @llvm.ctlz.i64(i64 %and, i1 true), !range !414 + %cast.i = trunc i64 %28 to i32 + %sub66 = add nuw nsw i64 %28, 4294967286 %sub69 = sub nuw nsw i32 -1063, %cast.i %sh_prom70 = and i64 %sub66, 4294967295 %shl71 = shl i64 %and, %sh_prom70 @@ -44323,7 +44321,7 @@ invoke.cont.i113: ; preds = %if.then53 unreachable lpad.i112: ; preds = %if.then53 - %30 = landingpad { ptr, i32 } + %29 = landingpad { ptr, i32 } cleanup br label %common.resume @@ -44340,24 +44338,24 @@ if.end72: ; preds = %if.end54.thread, %i %sh_prom78 = zext nneg i32 %add77 to i64 %shl79 = shl i64 %significand37.0, %sh_prom78 %call.i = tail call { i64, i64 } @_ZN3fmt3v106detail9dragonbox14cache_accessorIdE16get_cached_powerEi(i32 noundef %sub74) #26 - %31 = extractvalue { i64, i64 } %call.i, 0 - %32 = extractvalue { i64, i64 } %call.i, 1 + %30 = extractvalue { i64, i64 } %call.i, 0 + %31 = extractvalue { i64, i64 } %call.i, 1 %conv.i.i = zext i64 %shl79 to i128 - %conv1.i.i = zext i64 %32 to i128 + %conv1.i.i = zext i64 %31 to i128 %mul.i.i = mul nuw i128 %conv.i.i, %conv1.i.i %shr.i.i = lshr i128 %mul.i.i, 64 %conv2.i.i = trunc i128 %shr.i.i to i64 %conv3.i.i = trunc i128 %mul.i.i to i64 - %conv1.i3.i = zext i64 %31 to i128 + %conv1.i3.i = zext i64 %30 to i128 %mul.i4.i = mul nuw i128 %conv.i.i, %conv1.i3.i %shr.i5.i = lshr i128 %mul.i4.i, 64 %conv2.i6.i = trunc i128 %shr.i5.i to i64 - %33 = tail call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %conv3.i.i, i64 %conv2.i6.i) - %34 = extractvalue { i64, i1 } %33, 1 - %35 = extractvalue { i64, i1 } %33, 0 - %36 = zext i1 %34 to i64 - %add.i.i134 = add nuw i64 %36, %conv2.i.i - %cmp85 = icmp ne i64 %35, 0 + %32 = tail call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %conv3.i.i, i64 %conv2.i6.i) + %33 = extractvalue { i64, i1 } %32, 1 + %34 = extractvalue { i64, i1 } %32, 0 + %35 = zext i1 %33 to i64 + %add.i.i134 = add nuw i64 %35, %conv2.i.i + %cmp85 = icmp ne i64 %34, 0 %cmp87 = icmp ugt i64 %add.i.i134, 999999999999999999 %mul = mul nuw i64 %add.i.i134, 10 %digits_in_the_first_segment.0 = select i1 %cmp87, i32 19, i32 18 @@ -44382,7 +44380,7 @@ invoke.cont.i142: ; preds = %if.then.i139 unreachable lpad.i141: ; preds = %if.then.i139 - %37 = landingpad { ptr, i32 } + %36 = landingpad { ptr, i32 } cleanup br label %common.resume @@ -44412,36 +44410,36 @@ if.then101: ; preds = %if.then98 if.else102: ; preds = %if.then98 %capacity_.i.i145 = getelementptr inbounds i8, ptr %buf, i64 24 - %38 = load i64, ptr %capacity_.i.i145, align 8 - %cmp.i.i146 = icmp eq i64 %38, 0 + %37 = load i64, ptr %capacity_.i.i145, align 8 + %cmp.i.i146 = icmp eq i64 %37, 0 br i1 %cmp.i.i146, label %if.then.i.i149, label %_ZN3fmt3v106detail6bufferIcE10try_resizeEm.exit152 if.then.i.i149: ; preds = %if.else102 %vtable.i.i150 = load ptr, ptr %buf, align 8 - %39 = load ptr, ptr %vtable.i.i150, align 8 - tail call void %39(ptr noundef nonnull align 8 dereferenceable(32) %buf, i64 noundef 1) + %38 = load ptr, ptr %vtable.i.i150, align 8 + tail call void %38(ptr noundef nonnull align 8 dereferenceable(32) %buf, i64 noundef 1) %.pre.i151 = load i64, ptr %capacity_.i.i145, align 8 - %40 = icmp ne i64 %.pre.i151, 0 - %41 = zext i1 %40 to i64 + %39 = icmp ne i64 %.pre.i151, 0 + %40 = zext i1 %39 to i64 br label %_ZN3fmt3v106detail6bufferIcE10try_resizeEm.exit152 _ZN3fmt3v106detail6bufferIcE10try_resizeEm.exit152: ; preds = %if.else102, %if.then.i.i149 - %.count.i147 = phi i64 [ 1, %if.else102 ], [ %41, %if.then.i.i149 ] + %.count.i147 = phi i64 [ 1, %if.else102 ], [ %40, %if.then.i.i149 ] %size_.i148 = getelementptr inbounds i8, ptr %buf, i64 16 store i64 %.count.i147, ptr %size_.i148, align 8 %conv104 = zext i1 %cmp85 to i64 %or105 = or i64 %first_segment.0, %conv104 %cmp106 = icmp ugt i64 %or105, 5000000000000000000 %ptr_.i153 = getelementptr inbounds i8, ptr %buf, i64 8 - %42 = load ptr, ptr %ptr_.i153, align 8 + %41 = load ptr, ptr %ptr_.i153, align 8 br i1 %cmp106, label %if.then107, label %if.else109 if.then107: ; preds = %_ZN3fmt3v106detail6bufferIcE10try_resizeEm.exit152 - store i8 49, ptr %42, align 1 + store i8 49, ptr %41, align 1 br label %if.end263 if.else109: ; preds = %_ZN3fmt3v106detail6bufferIcE10try_resizeEm.exit152 - store i8 48, ptr %42, align 1 + store i8 48, ptr %41, align 1 br label %if.end263 if.else113: ; preds = %if.then96 @@ -44454,10 +44452,10 @@ if.else113: ; preds = %if.then96 %shr117346 = trunc i128 %sum.shift to i64 %mul120.neg = mul i64 %shr117346, -10000000000 %sub121 = add i64 %mul120.neg, %first_segment.0 - %43 = tail call i32 @llvm.umin.i32(i32 %precision.addr.0, i32 9) + %42 = tail call i32 @llvm.umin.i32(i32 %precision.addr.0, i32 9) %ptr_.i157 = getelementptr inbounds i8, ptr %buf, i64 8 - %44 = load ptr, ptr %ptr_.i157, align 8 - %and.i = and i32 %43, 1 + %43 = load ptr, ptr %ptr_.i157, align 8 + %and.i = and i32 %42, 1 %cmp.not.i = icmp eq i32 %and.i, 0 br i1 %cmp.not.i, label %if.else.i, label %if.then.i158 @@ -44466,9 +44464,9 @@ if.then.i158: ; preds = %if.else113 %shr.i160 = lshr i64 %mul.i159, 24 %add.i161 = add nuw nsw i64 %shr.i160, 1 %shr2.i = lshr i64 %add.i161, 32 - %45 = trunc i64 %shr2.i to i8 - %conv5.i = add nuw nsw i8 %45, 48 - store i8 %conv5.i, ptr %44, align 1 + %44 = trunc i64 %shr2.i to i8 + %conv5.i = add nuw nsw i8 %44, 48 + store i8 %conv5.i, ptr %43, align 1 br label %if.end.i if.else.i: ; preds = %if.else113 @@ -44478,8 +44476,8 @@ if.else.i: ; preds = %if.else113 %shr10.i = lshr i64 %add9.i, 32 %mul.i.i163 = shl nuw nsw i64 %shr10.i, 1 %arrayidx.i.i = getelementptr inbounds [201 x i8], ptr @.str.191, i64 0, i64 %mul.i.i163 - %46 = load i16, ptr %arrayidx.i.i, align 1 - store i16 %46, ptr %44, align 1 + %45 = load i16, ptr %arrayidx.i.i, align 1 + store i16 %45, ptr %43, align 1 br label %if.end.i if.end.i: ; preds = %if.else.i, %if.then.i158 @@ -44494,23 +44492,23 @@ if.then125.thread: ; preds = %if.end.i br label %if.then127 while.body.lr.ph.i: ; preds = %if.end.i - %47 = zext nneg i32 %number_of_digits_printed.0.i to i64 - %48 = zext nneg i32 %43 to i64 + %46 = zext nneg i32 %number_of_digits_printed.0.i to i64 + %47 = zext nneg i32 %42 to i64 br label %while.body.i while.body.i: ; preds = %while.body.i, %while.body.lr.ph.i %prod.1 = phi i64 [ %prod.0, %while.body.lr.ph.i ], [ %mul17.i, %while.body.i ] - %indvars.iv.i = phi i64 [ %47, %while.body.lr.ph.i ], [ %indvars.iv.next.i, %while.body.i ] + %indvars.iv.i = phi i64 [ %46, %while.body.lr.ph.i ], [ %indvars.iv.next.i, %while.body.i ] %conv16.i = and i64 %prod.1, 4294967295 %mul17.i = mul nuw nsw i64 %conv16.i, 100 %shr18.i = lshr i64 %mul17.i, 32 - %add.ptr.i162 = getelementptr inbounds i8, ptr %44, i64 %indvars.iv.i + %add.ptr.i162 = getelementptr inbounds i8, ptr %43, i64 %indvars.iv.i %mul.i8.i = shl nuw nsw i64 %shr18.i, 1 %arrayidx.i9.i = getelementptr inbounds [201 x i8], ptr @.str.191, i64 0, i64 %mul.i8.i - %49 = load i16, ptr %arrayidx.i9.i, align 1 - store i16 %49, ptr %add.ptr.i162, align 1 + %48 = load i16, ptr %arrayidx.i9.i, align 1 + store i16 %48, ptr %add.ptr.i162, align 1 %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 2 - %cmp14.i = icmp ult i64 %indvars.iv.next.i, %48 + %cmp14.i = icmp ult i64 %indvars.iv.next.i, %47 br i1 %cmp14.i, label %while.body.i, label %_ZZN3fmt3v106detail12format_floatIdEEiT_iNS1_11float_specsERNS1_6bufferIcEEENKUljPcE_clEjS8_.exit, !llvm.loop !415 _ZZN3fmt3v106detail12format_floatIdEEiT_iNS1_11float_specsERNS1_6bufferIcEEENKUljPcE_clEjS8_.exit: ; preds = %while.body.i @@ -44526,19 +44524,19 @@ if.then127: ; preds = %if.then125.thread, %prod.2363369 = phi i64 [ %prod.0, %if.then125.thread ], [ %mul17.i, %if.then125 ] %digits.1364368 = phi i32 [ %digits.1361, %if.then125.thread ], [ %digits.1, %if.then125 ] %conv128 = trunc i64 %prod.2363369 to i32 - %sub129 = sub nsw i32 8, %43 + %sub129 = sub nsw i32 8, %42 %idxprom.i = sext i32 %sub129 to i64 %arrayidx.i164 = getelementptr inbounds [9 x i32], ptr @.str.227, i64 0, i64 %idxprom.i - %50 = load i32, ptr %arrayidx.i164, align 4 - %cmp131.not = icmp ugt i32 %50, %conv128 + %49 = load i32, ptr %arrayidx.i164, align 4 + %cmp131.not = icmp ugt i32 %49, %conv128 br i1 %cmp131.not, label %lor.rhs, label %if.then199 lor.rhs: ; preds = %if.then127 %shr132 = lshr i32 %conv128, 31 - %51 = or i64 %sub121, %35 - %52 = icmp ne i64 %51, 0 - %53 = zext i1 %52 to i32 - %or139 = or i32 %digits.1364368, %53 + %50 = or i64 %sub121, %34 + %51 = icmp ne i64 %50, 0 + %52 = zext i1 %51 to i32 + %or139 = or i32 %digits.1364368, %52 %and140 = and i32 %or139, %shr132 %.not347 = icmp eq i32 %and140, 0 br i1 %.not347, label %if.end227, label %if.then199 @@ -44554,8 +44552,8 @@ lor.rhs145: ; preds = %if.else143 land.rhs: ; preds = %lor.rhs145 %and147 = and i32 %digits.1, 1 %cmp148 = icmp ne i32 %and147, 0 - %54 = or i1 %cmp85, %cmp148 - br i1 %54, label %if.then199.thread, label %_ZN3fmt3v106detail11to_unsignedIiEENSt13make_unsignedIT_E4typeES4_.exit231 + %53 = or i1 %cmp85, %cmp148 + br i1 %53, label %if.then199.thread, label %_ZN3fmt3v106detail11to_unsignedIiEENSt13make_unsignedIT_E4typeES4_.exit231 if.else155: ; preds = %_ZZN3fmt3v106detail12format_floatIdEEiT_iNS1_11float_specsERNS1_6bufferIcEEENKUljPcE_clEjS8_.exit %conv.i165 = zext i64 %sub121 to i128 @@ -44566,12 +44564,12 @@ if.else155: ; preds = %_ZZN3fmt3v106detail %mul159.neg = mul i32 %conv157, -10 %sub160 = add i32 %mul159.neg, %conv158 %sub161 = add nsw i32 %precision.addr.0, -9 - %55 = load ptr, ptr %ptr_.i157, align 8 - %add.ptr = getelementptr inbounds i8, ptr %55, i64 9 + %54 = load ptr, ptr %ptr_.i157, align 8 + %add.ptr = getelementptr inbounds i8, ptr %54, i64 9 %and.i170 = and i32 %sub161, 1 %cmp.not.i171 = icmp eq i32 %and.i170, 0 - %56 = trunc i128 %shr.i167 to i64 - %conv6.i172 = and i64 %56, 4294967295 + %55 = trunc i128 %shr.i167 to i64 + %conv6.i172 = and i64 %55, 4294967295 br i1 %cmp.not.i171, label %if.else.i196, label %if.then.i173 if.then.i173: ; preds = %if.else155 @@ -44579,8 +44577,8 @@ if.then.i173: ; preds = %if.else155 %shr.i175 = lshr i64 %mul.i174, 24 %add.i176 = add nuw nsw i64 %shr.i175, 1 %shr2.i177 = lshr i64 %add.i176, 32 - %57 = trunc i64 %shr2.i177 to i8 - %conv5.i179 = add nuw nsw i8 %57, 48 + %56 = trunc i64 %shr2.i177 to i8 + %conv5.i179 = add nuw nsw i8 %56, 48 store i8 %conv5.i179, ptr %add.ptr, align 1 br label %if.end.i180 @@ -44591,8 +44589,8 @@ if.else.i196: ; preds = %if.else155 %shr10.i200 = lshr i64 %add9.i199, 32 %mul.i.i203 = shl nuw nsw i64 %shr10.i200, 1 %arrayidx.i.i204 = getelementptr inbounds [201 x i8], ptr @.str.191, i64 0, i64 %mul.i.i203 - %58 = load i16, ptr %arrayidx.i.i204, align 1 - store i16 %58, ptr %add.ptr, align 1 + %57 = load i16, ptr %arrayidx.i.i204, align 1 + store i16 %57, ptr %add.ptr, align 1 br label %if.end.i180 if.end.i180: ; preds = %if.else.i196, %if.then.i173 @@ -44604,23 +44602,23 @@ if.end.i180: ; preds = %if.else.i196, %if.t br i1 %cmp1410.i182, label %while.body.lr.ph.i183, label %if.then164 while.body.lr.ph.i183: ; preds = %if.end.i180 - %59 = zext nneg i32 %number_of_digits_printed.0.i181 to i64 - %60 = zext nneg i32 %sub161 to i64 + %58 = zext nneg i32 %number_of_digits_printed.0.i181 to i64 + %59 = zext nneg i32 %sub161 to i64 br label %while.body.i184 while.body.i184: ; preds = %while.body.i184, %while.body.lr.ph.i183 %prod.4 = phi i64 [ %prod.3, %while.body.lr.ph.i183 ], [ %mul17.i187, %while.body.i184 ] - %indvars.iv.i185 = phi i64 [ %59, %while.body.lr.ph.i183 ], [ %indvars.iv.next.i194, %while.body.i184 ] + %indvars.iv.i185 = phi i64 [ %58, %while.body.lr.ph.i183 ], [ %indvars.iv.next.i194, %while.body.i184 ] %conv16.i186 = and i64 %prod.4, 4294967295 %mul17.i187 = mul nuw nsw i64 %conv16.i186, 100 %shr18.i188 = lshr i64 %mul17.i187, 32 %add.ptr.i190 = getelementptr inbounds i8, ptr %add.ptr, i64 %indvars.iv.i185 %mul.i8.i192 = shl nuw nsw i64 %shr18.i188, 1 %arrayidx.i9.i193 = getelementptr inbounds [201 x i8], ptr @.str.191, i64 0, i64 %mul.i8.i192 - %61 = load i16, ptr %arrayidx.i9.i193, align 1 - store i16 %61, ptr %add.ptr.i190, align 1 + %60 = load i16, ptr %arrayidx.i9.i193, align 1 + store i16 %60, ptr %add.ptr.i190, align 1 %indvars.iv.next.i194 = add nuw nsw i64 %indvars.iv.i185, 2 - %cmp14.i195 = icmp ult i64 %indvars.iv.next.i194, %60 + %cmp14.i195 = icmp ult i64 %indvars.iv.next.i194, %59 br i1 %cmp14.i195, label %while.body.i184, label %_ZZN3fmt3v106detail12format_floatIdEEiT_iNS1_11float_specsERNS1_6bufferIcEEENKUljPcE_clEjS8_.exit205, !llvm.loop !415 _ZZN3fmt3v106detail12format_floatIdEEiT_iNS1_11float_specsERNS1_6bufferIcEEENKUljPcE_clEjS8_.exit205: ; preds = %while.body.i184 @@ -44635,8 +44633,8 @@ if.then164: ; preds = %if.end.i180, %_ZZN3 %sub167 = sub nsw i32 17, %precision.addr.0 %idxprom.i206 = zext nneg i32 %sub167 to i64 %arrayidx.i207 = getelementptr inbounds [9 x i32], ptr @.str.227, i64 0, i64 %idxprom.i206 - %62 = load i32, ptr %arrayidx.i207, align 4 - %cmp169.not = icmp ugt i32 %62, %conv166 + %61 = load i32, ptr %arrayidx.i207, align 4 + %cmp169.not = icmp ugt i32 %61, %conv166 br i1 %cmp169.not, label %lor.rhs170, label %if.then199 lor.rhs170: ; preds = %if.then164 @@ -44660,71 +44658,71 @@ lor.rhs185: ; preds = %if.else183 if.end197: ; preds = %lor.rhs185 %and188 = and i32 %conv19.i189.le, 1 %cmp189 = icmp ne i32 %and188, 0 - %63 = or i1 %cmp85, %cmp189 - br i1 %63, label %if.then199.thread, label %_ZN3fmt3v106detail11to_unsignedIiEENSt13make_unsignedIT_E4typeES4_.exit231 + %62 = or i1 %cmp85, %cmp189 + br i1 %62, label %if.then199.thread, label %_ZN3fmt3v106detail11to_unsignedIiEENSt13make_unsignedIT_E4typeES4_.exit231 if.then199.thread: ; preds = %land.rhs, %if.else143, %if.else183, %if.end197 - %64 = load ptr, ptr %ptr_.i157, align 8 - %65 = zext nneg i32 %precision.addr.0 to i64 - %66 = getelementptr i8, ptr %64, i64 %65 - %arrayidx.i210370 = getelementptr i8, ptr %66, i64 -1 - %67 = load i8, ptr %arrayidx.i210370, align 1 - %inc371 = add i8 %67, 1 + %63 = load ptr, ptr %ptr_.i157, align 8 + %64 = zext nneg i32 %precision.addr.0 to i64 + %65 = getelementptr i8, ptr %63, i64 %64 + %arrayidx.i210370 = getelementptr i8, ptr %65, i64 -1 + %66 = load i8, ptr %arrayidx.i210370, align 1 + %inc371 = add i8 %66, 1 store i8 %inc371, ptr %arrayidx.i210370, align 1 br label %land.rhs204.preheader if.then199: ; preds = %lor.rhs170, %lor.rhs, %if.then127, %if.then164 - %68 = load ptr, ptr %ptr_.i157, align 8 - %69 = zext nneg i32 %precision.addr.0 to i64 - %70 = getelementptr i8, ptr %68, i64 %69 - %arrayidx.i210 = getelementptr i8, ptr %70, i64 -1 - %71 = load i8, ptr %arrayidx.i210, align 1 - %inc = add i8 %71, 1 + %67 = load ptr, ptr %ptr_.i157, align 8 + %68 = zext nneg i32 %precision.addr.0 to i64 + %69 = getelementptr i8, ptr %67, i64 %68 + %arrayidx.i210 = getelementptr i8, ptr %69, i64 -1 + %70 = load i8, ptr %arrayidx.i210, align 1 + %inc = add i8 %70, 1 store i8 %inc, ptr %arrayidx.i210, align 1 %cmp203349.not = icmp eq i32 %precision.addr.0, 1 br i1 %cmp203349.not, label %for.end, label %land.rhs204.preheader land.rhs204.preheader: ; preds = %if.then199.thread, %if.then199 - %72 = phi i64 [ %65, %if.then199.thread ], [ %69, %if.then199 ] + %71 = phi i64 [ %64, %if.then199.thread ], [ %68, %if.then199 ] br label %land.rhs204 land.rhs204: ; preds = %land.rhs204.preheader, %for.body - %indvars.iv = phi i64 [ %72, %land.rhs204.preheader ], [ %indvars.iv.next, %for.body ] + %indvars.iv = phi i64 [ %71, %land.rhs204.preheader ], [ %indvars.iv.next, %for.body ] %indvars.iv.next = add nsw i64 %indvars.iv, -1 - %73 = load ptr, ptr %ptr_.i157, align 8 + %72 = load ptr, ptr %ptr_.i157, align 8 %idxprom.i212 = and i64 %indvars.iv.next, 4294967295 - %arrayidx.i213 = getelementptr inbounds i8, ptr %73, i64 %idxprom.i212 - %74 = load i8, ptr %arrayidx.i213, align 1 - %cmp207 = icmp sgt i8 %74, 57 + %arrayidx.i213 = getelementptr inbounds i8, ptr %72, i64 %idxprom.i212 + %73 = load i8, ptr %arrayidx.i213, align 1 + %cmp207 = icmp sgt i8 %73, 57 br i1 %cmp207, label %for.body, label %for.end for.body: ; preds = %land.rhs204 store i8 48, ptr %arrayidx.i213, align 1 - %75 = load ptr, ptr %ptr_.i157, align 8 - %76 = getelementptr i8, ptr %75, i64 %indvars.iv - %arrayidx.i219 = getelementptr i8, ptr %76, i64 -2 - %77 = load i8, ptr %arrayidx.i219, align 1 - %inc212 = add i8 %77, 1 + %74 = load ptr, ptr %ptr_.i157, align 8 + %75 = getelementptr i8, ptr %74, i64 %indvars.iv + %arrayidx.i219 = getelementptr i8, ptr %75, i64 -2 + %76 = load i8, ptr %arrayidx.i219, align 1 + %inc212 = add i8 %76, 1 store i8 %inc212, ptr %arrayidx.i219, align 1 - %78 = trunc i64 %indvars.iv to i32 - %cmp203 = icmp sgt i32 %78, 2 + %77 = trunc i64 %indvars.iv to i32 + %cmp203 = icmp sgt i32 %77, 2 br i1 %cmp203, label %land.rhs204, label %for.end, !llvm.loop !416 for.end: ; preds = %land.rhs204, %for.body, %if.then199 - %79 = phi i64 [ 1, %if.then199 ], [ %72, %for.body ], [ %72, %land.rhs204 ] - %80 = load ptr, ptr %ptr_.i157, align 8 - %81 = load i8, ptr %80, align 1 - %cmp216 = icmp sgt i8 %81, 57 + %78 = phi i64 [ 1, %if.then199 ], [ %71, %for.body ], [ %71, %land.rhs204 ] + %79 = load ptr, ptr %ptr_.i157, align 8 + %80 = load i8, ptr %79, align 1 + %cmp216 = icmp sgt i8 %80, 57 br i1 %cmp216, label %if.then217, label %if.end227 if.then217: ; preds = %for.end - store i8 49, ptr %80, align 1 + store i8 49, ptr %79, align 1 br i1 %cmp1, label %if.else223, label %if.then220 if.then220: ; preds = %if.then217 %inc221 = add nuw nsw i32 %precision.addr.0, 1 - %82 = load ptr, ptr %ptr_.i157, align 8 - %arrayidx.i224 = getelementptr inbounds i8, ptr %82, i64 %79 + %81 = load ptr, ptr %ptr_.i157, align 8 + %arrayidx.i224 = getelementptr inbounds i8, ptr %81, i64 %78 store i8 48, ptr %arrayidx.i224, align 1 br label %if.end227 @@ -44748,7 +44746,7 @@ invoke.cont.i.i229: ; preds = %if.then.i226 unreachable lpad.i.i228: ; preds = %if.then.i226 - %83 = landingpad { ptr, i32 } + %82 = landingpad { ptr, i32 } cleanup br label %common.resume @@ -44756,14 +44754,14 @@ _ZN3fmt3v106detail11to_unsignedIiEENSt13make_unsignedIT_E4typeES4_.exit231: ; pr %precision.addr.1340 = phi i32 [ %precision.addr.1, %if.end227 ], [ %precision.addr.0, %if.end197 ], [ 9, %lor.rhs145 ], [ %precision.addr.0, %lor.rhs185 ], [ 9, %land.rhs ] %conv229 = zext nneg i32 %precision.addr.1340 to i64 %capacity_.i.i232 = getelementptr inbounds i8, ptr %buf, i64 24 - %84 = load i64, ptr %capacity_.i.i232, align 8 - %cmp.i.i233 = icmp ult i64 %84, %conv229 + %83 = load i64, ptr %capacity_.i.i232, align 8 + %cmp.i.i233 = icmp ult i64 %83, %conv229 br i1 %cmp.i.i233, label %if.then.i.i236, label %if.end235 if.then.i.i236: ; preds = %_ZN3fmt3v106detail11to_unsignedIiEENSt13make_unsignedIT_E4typeES4_.exit231 %vtable.i.i237 = load ptr, ptr %buf, align 8 - %85 = load ptr, ptr %vtable.i.i237, align 8 - tail call void %85(ptr noundef nonnull align 8 dereferenceable(32) %buf, i64 noundef %conv229) + %84 = load ptr, ptr %vtable.i.i237, align 8 + tail call void %84(ptr noundef nonnull align 8 dereferenceable(32) %buf, i64 noundef %conv229) %.pre.i238 = load i64, ptr %capacity_.i.i232, align 8 br label %if.end235 @@ -44771,49 +44769,49 @@ if.end235.thread342: ; preds = %if.end94 %sub232 = add nsw i32 %digits_in_the_first_segment.0, -1 %add233 = add nsw i32 %sub232, %sub74.neg store i32 %add233, ptr %exp, align 4 - %86 = and i32 %specs.sroa.1.0.extract.trunc, 262144 - %bf.cast242.not = icmp eq i32 %86, 0 + %85 = and i32 %specs.sroa.1.0.extract.trunc, 262144 + %bf.cast242.not = icmp eq i32 %85, 0 br i1 %bf.cast242.not, label %cond.false246, label %cond.true243 if.end235: ; preds = %if.then.i.i236, %_ZN3fmt3v106detail11to_unsignedIiEENSt13make_unsignedIT_E4typeES4_.exit231 - %87 = phi i64 [ %84, %_ZN3fmt3v106detail11to_unsignedIiEENSt13make_unsignedIT_E4typeES4_.exit231 ], [ %.pre.i238, %if.then.i.i236 ] - %.count.i234 = tail call i64 @llvm.umin.i64(i64 %87, i64 %conv229) + %86 = phi i64 [ %83, %_ZN3fmt3v106detail11to_unsignedIiEENSt13make_unsignedIT_E4typeES4_.exit231 ], [ %.pre.i238, %if.then.i.i236 ] + %.count.i234 = tail call i64 @llvm.umin.i64(i64 %86, i64 %conv229) %size_.i235 = getelementptr inbounds i8, ptr %buf, i64 16 store i64 %.count.i234, ptr %size_.i235, align 8 br label %if.end263 cond.true243: ; preds = %if.end235.thread342 %conv244 = fptrunc double %value to float - %88 = bitcast float %conv244 to i32 - %and.i240 = and i32 %88, 8388607 + %87 = bitcast float %conv244 to i32 + %and.i240 = and i32 %87, 8388607 %conv.i241 = zext nneg i32 %and.i240 to i128 - %and3.i = and i32 %88, 2139095040 + %and3.i = and i32 %87, 2139095040 %cmp6.i = icmp eq i32 %and3.i, 0 - %shr.i242 = lshr exact i32 %and3.i, 23 + %shr.i242 = lshr i32 %87, 23 %add.i243 = or disjoint i128 %conv.i241, 8388608 - %89 = add nsw i32 %shr.i242, -150 + %88 = add nsw i32 %shr.i242, -150 %storemerge.i = select i1 %cmp6.i, i128 %conv.i241, i128 %add.i243 - %biased_e.0.i = select i1 %cmp6.i, i32 -149, i32 %89 + %biased_e.0.i = select i1 %cmp6.i, i32 -149, i32 %88 %cmp.i244 = icmp eq i32 %and.i240, 0 %cmp5.i = icmp ugt i32 %and3.i, 16777215 - %90 = and i1 %cmp.i244, %cmp5.i + %89 = and i1 %cmp.i244, %cmp5.i br label %cond.end248 cond.false246: ; preds = %if.end235.thread342 %conv.i246 = zext nneg i64 %and to i128 %add.i249 = or disjoint i128 %conv.i246, 4503599627370496 - %91 = add nsw i32 %conv42, -1075 + %90 = add nsw i32 %conv42, -1075 %storemerge.i250 = select i1 %cmp43.not, i128 %conv.i246, i128 %add.i249 - %biased_e.0.i251 = select i1 %cmp43.not, i32 -1074, i32 %91 + %biased_e.0.i251 = select i1 %cmp43.not, i32 -1074, i32 %90 %cmp.i252 = icmp eq i64 %and, 0 %cmp6.i253 = icmp ugt i32 %conv42, 1 - %92 = and i1 %cmp.i252, %cmp6.i253 + %91 = and i1 %cmp.i252, %cmp6.i253 br label %cond.end248 cond.end248: ; preds = %cond.false246, %cond.true243 %f.sroa.0.0 = phi i128 [ %storemerge.i250, %cond.false246 ], [ %storemerge.i, %cond.true243 ] %f.sroa.4.0 = phi i32 [ %biased_e.0.i251, %cond.false246 ], [ %biased_e.0.i, %cond.true243 ] - %cond249 = phi i1 [ %92, %cond.false246 ], [ %90, %cond.true243 ] + %cond249 = phi i1 [ %91, %cond.false246 ], [ %89, %cond.true243 ] %spec.select = zext i1 %cond249 to i32 %or257 = or disjoint i32 %spec.select, 4 %dragon_flags.1 = select i1 %cmp1, i32 %spec.select, i32 %or257 @@ -44825,30 +44823,30 @@ cond.end248: ; preds = %cond.false246, %con br label %if.end263 if.end263: ; preds = %if.end235, %if.then107, %if.else109, %if.then101, %cond.end248 - %93 = and i32 %specs.sroa.1.0.extract.trunc, 524288 - %bf.cast268.not = icmp eq i32 %93, 0 + %92 = and i32 %specs.sroa.1.0.extract.trunc, 524288 + %bf.cast268.not = icmp eq i32 %92, 0 %or.cond = select i1 %cmp1, i1 %bf.cast268.not, i1 false br i1 %or.cond, label %if.then269, label %if.end280 if.then269: ; preds = %if.end263 %size_.i255 = getelementptr inbounds i8, ptr %buf, i64 16 - %94 = load i64, ptr %size_.i255, align 8 - %cmp271.not353 = icmp eq i64 %94, 0 + %93 = load i64, ptr %size_.i255, align 8 + %cmp271.not353 = icmp eq i64 %93, 0 br i1 %cmp271.not353, label %while.end.thread, label %land.rhs272.lr.ph land.rhs272.lr.ph: ; preds = %if.then269 %exp.promoted = load i32, ptr %exp, align 4 %ptr_.i256 = getelementptr inbounds i8, ptr %buf, i64 8 - %95 = load ptr, ptr %ptr_.i256, align 8 + %94 = load ptr, ptr %ptr_.i256, align 8 br label %land.rhs272 land.rhs272: ; preds = %land.rhs272.lr.ph, %while.body - %num_digits.0355 = phi i64 [ %94, %land.rhs272.lr.ph ], [ %sub273, %while.body ] + %num_digits.0355 = phi i64 [ %93, %land.rhs272.lr.ph ], [ %sub273, %while.body ] %inc279352354 = phi i32 [ %exp.promoted, %land.rhs272.lr.ph ], [ %inc279, %while.body ] %sub273 = add i64 %num_digits.0355, -1 - %arrayidx.i257 = getelementptr inbounds i8, ptr %95, i64 %sub273 - %96 = load i8, ptr %arrayidx.i257, align 1 - %cmp276 = icmp eq i8 %96, 48 + %arrayidx.i257 = getelementptr inbounds i8, ptr %94, i64 %sub273 + %95 = load i8, ptr %arrayidx.i257, align 1 + %cmp276 = icmp eq i8 %95, 48 br i1 %cmp276, label %while.body, label %while.end while.body: ; preds = %land.rhs272 @@ -44859,35 +44857,35 @@ while.body: ; preds = %land.rhs272 while.end.thread: ; preds = %while.body, %if.then269 %capacity_.i.i258374 = getelementptr inbounds i8, ptr %buf, i64 24 - %97 = load i64, ptr %capacity_.i.i258374, align 8 + %96 = load i64, ptr %capacity_.i.i258374, align 8 br label %_ZN3fmt3v106detail6bufferIcE10try_resizeEm.exit265 while.end: ; preds = %land.rhs272 %capacity_.i.i258 = getelementptr inbounds i8, ptr %buf, i64 24 - %98 = load i64, ptr %capacity_.i.i258, align 8 - %cmp.i.i259 = icmp ult i64 %98, %num_digits.0355 + %97 = load i64, ptr %capacity_.i.i258, align 8 + %cmp.i.i259 = icmp ult i64 %97, %num_digits.0355 br i1 %cmp.i.i259, label %if.then.i.i262, label %_ZN3fmt3v106detail6bufferIcE10try_resizeEm.exit265 if.then.i.i262: ; preds = %while.end %vtable.i.i263 = load ptr, ptr %buf, align 8 - %99 = load ptr, ptr %vtable.i.i263, align 8 - call void %99(ptr noundef nonnull align 8 dereferenceable(32) %buf, i64 noundef %num_digits.0355) + %98 = load ptr, ptr %vtable.i.i263, align 8 + call void %98(ptr noundef nonnull align 8 dereferenceable(32) %buf, i64 noundef %num_digits.0355) %.pre.i264 = load i64, ptr %capacity_.i.i258, align 8 br label %_ZN3fmt3v106detail6bufferIcE10try_resizeEm.exit265 _ZN3fmt3v106detail6bufferIcE10try_resizeEm.exit265: ; preds = %while.end.thread, %while.end, %if.then.i.i262 %num_digits.0.lcssa376 = phi i64 [ %num_digits.0355, %while.end ], [ %num_digits.0355, %if.then.i.i262 ], [ 0, %while.end.thread ] - %100 = phi i64 [ %98, %while.end ], [ %.pre.i264, %if.then.i.i262 ], [ %97, %while.end.thread ] - %.count.i260 = call i64 @llvm.umin.i64(i64 %100, i64 %num_digits.0.lcssa376) + %99 = phi i64 [ %97, %while.end ], [ %.pre.i264, %if.then.i.i262 ], [ %96, %while.end.thread ] + %.count.i260 = call i64 @llvm.umin.i64(i64 %99, i64 %num_digits.0.lcssa376) store i64 %.count.i260, ptr %size_.i255, align 8 br label %if.end280 if.end280: ; preds = %_ZN3fmt3v106detail6bufferIcE10try_resizeEm.exit265, %if.end263 - %101 = load i32, ptr %exp, align 4 + %100 = load i32, ptr %exp, align 4 br label %return return: ; preds = %if.end25.i109, %if.end14.i106, %if.end25.i, %if.end14.i, %if.end280, %_ZN3fmt3v106detail6fill_nIciEEPT_S4_T0_c.exit, %_ZN3fmt3v106detail6bufferIcE9push_backERKc.exit - %retval.0 = phi i32 [ 0, %_ZN3fmt3v106detail6bufferIcE9push_backERKc.exit ], [ %sub, %_ZN3fmt3v106detail6fill_nIciEEPT_S4_T0_c.exit ], [ %101, %if.end280 ], [ %dec.sroa.2.0.extract.trunc, %if.end14.i ], [ %dec.sroa.2.0.extract.trunc, %if.end25.i ], [ %19, %if.end14.i106 ], [ %19, %if.end25.i109 ] + %retval.0 = phi i32 [ 0, %_ZN3fmt3v106detail6bufferIcE9push_backERKc.exit ], [ %sub, %_ZN3fmt3v106detail6fill_nIciEEPT_S4_T0_c.exit ], [ %100, %if.end280 ], [ %dec.sroa.2.0.extract.trunc, %if.end14.i ], [ %dec.sroa.2.0.extract.trunc, %if.end25.i ], [ %19, %if.end14.i106 ], [ %19, %if.end25.i109 ] ret i32 %retval.0 } @@ -49363,8 +49361,7 @@ if.end12: ; preds = %if.end %conv.i.i.i = zext nneg i64 %and.i.i.i to i128 %and3.i.i.i = lshr i64 %11, 52 %12 = trunc i64 %and3.i.i.i to i32 - %conv4.i.i.i = and i32 %12, 2047 - %cmp7.i.i.i = icmp eq i32 %conv4.i.i.i, 0 + %cmp7.i.i.i = icmp eq i32 %12, 0 %add.i1.i.i = or disjoint i128 %conv.i.i.i, 4503599627370496 %storemerge.i.i.i = select i1 %cmp7.i.i.i, i128 %conv.i.i.i, i128 %add.i1.i.i br label %do.body.i.i @@ -49378,7 +49375,7 @@ do.body.i.i: ; preds = %do.body.i.i, %if.en br i1 %cmp.not.i.i, label %_ZN3fmt3v106detail12count_digitsILi1EoEEiT0_.exit, label %do.body.i.i, !llvm.loop !278 _ZN3fmt3v106detail12count_digitsILi1EoEEiT0_.exit: ; preds = %do.body.i.i - %13 = add nsw i32 %conv4.i.i.i, -1075 + %13 = add nsw i32 %12, -1075 %biased_e.0.i.i.i = select i1 %cmp7.i.i.i, i32 -1074, i32 %13 %sub17 = add i32 %num_digits.0.i.i, %biased_e.0.i.i.i %conv18 = sitofp i32 %sub17 to double @@ -49400,7 +49397,7 @@ cond.true: ; preds = %_ZN3fmt3v106detail1 %conv.i = zext nneg i32 %and.i to i128 %and3.i = and i32 %16, 2139095040 %cmp6.i = icmp eq i32 %and3.i, 0 - %shr.i = lshr exact i32 %and3.i, 23 + %shr.i = lshr i32 %16, 23 %add.i35 = or disjoint i128 %conv.i, 8388608 %17 = add nsw i32 %shr.i, -150 %storemerge.i = select i1 %cmp6.i, i128 %conv.i, i128 %add.i35 @@ -49412,7 +49409,7 @@ cond.true: ; preds = %_ZN3fmt3v106detail1 cond.false: ; preds = %_ZN3fmt3v106detail12count_digitsILi1EoEEiT0_.exit %cmp.i.i37 = icmp eq i64 %and.i.i.i, 0 - %cmp6.i.i = icmp ugt i32 %conv4.i.i.i, 1 + %cmp6.i.i = icmp ugt i32 %12, 1 %19 = and i1 %cmp.i.i37, %cmp6.i.i br label %cond.end @@ -52350,7 +52347,7 @@ if.end14: ; preds = %if.end %and.i.i = and i32 %11, 8388607 %and3.i.i = and i32 %11, 2139095040 %cmp6.i.i = icmp eq i32 %and3.i.i, 0 - %shr.i.i = lshr exact i32 %and3.i.i, 23 + %shr.i.i = lshr i32 %11, 23 %add.i.i = or disjoint i32 %and.i.i, 8388608 %12 = add nsw i32 %shr.i.i, -150 %storemerge.i.i = select i1 %cmp6.i.i, i32 %and.i.i, i32 %add.i.i diff --git a/bench/hermes/optimized/Interpreter.cpp.ll b/bench/hermes/optimized/Interpreter.cpp.ll index 4ad600af28a..12167f379e6 100644 --- a/bench/hermes/optimized/Interpreter.cpp.ll +++ b/bench/hermes/optimized/Interpreter.cpp.ll @@ -991,11 +991,9 @@ _ZN6hermes2vm11Interpreter30tryGetPrimitiveOwnPropertyByIdERNS0_7RuntimeENS0_6Ha %and.i.i = and i32 %2, 2147483647 %conv.i.i = uitofp i32 %and.i.i to double %3 = bitcast double %conv.i.i to i64 - %shr.i.mask.i = and i64 %3, -140737488355328 - %cmp.i = icmp eq i64 %shr.i.mask.i, -1970324836974592 - br i1 %cmp.i, label %if.end, label %return + br label %return -if.end: ; preds = %entry, %_ZN6hermes2vm11Interpreter30tryGetPrimitiveOwnPropertyByIdERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEENS0_8SymbolIDE.exit +if.end: ; preds = %entry %call14 = tail call ptr @_ZN6hermes2vm21getPrimitivePrototypeERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr nonnull %base.coerce) #10 %cmp.i.i8.not = icmp eq ptr %call14, inttoptr (i64 -1 to ptr) br i1 %cmp.i.i8.not, label %_ZN4llvh9StringRefC2EPKc.exit, label %if.end27 @@ -2454,20 +2452,20 @@ _ZN6hermes2vm13MutableHandleINS0_11HermesValueEEC2ERNS0_15HandleRootOwnerES2_.ex %functionPrototype = getelementptr inbounds i8, ptr %runtime, i64 200 %asyncBreakRequestFlag_.i = getelementptr inbounds i8, ptr %runtime, i64 9760 %builtins_.i = getelementptr inbounds i8, ptr %runtime, i64 9632 - %slot.i.i3343 = getelementptr inbounds i8, ptr %desc1680, i64 4 + %slot.i.i3341 = getelementptr inbounds i8, ptr %desc1680, i64 4 %level_.i.i.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %runtime, i64 1656 %effectiveEnd_.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %runtime, i64 1664 - %rightKind_.i3.i3643 = getelementptr inbounds i8, ptr %ref.tmp2557, i64 24 - %leftSize_.i4.i3644 = getelementptr inbounds i8, ptr %ref.tmp2557, i64 32 - %rightSize_.i5.i3645 = getelementptr inbounds i8, ptr %ref.tmp2557, i64 40 + %rightKind_.i3.i3641 = getelementptr inbounds i8, ptr %ref.tmp2557, i64 24 + %leftSize_.i4.i3642 = getelementptr inbounds i8, ptr %ref.tmp2557, i64 32 + %rightSize_.i5.i3643 = getelementptr inbounds i8, ptr %ref.tmp2557, i64 40 %7 = getelementptr inbounds i8, ptr %ref.tmp2557, i64 8 %rightKind_.i3.i2594 = getelementptr inbounds i8, ptr %ref.tmp625, i64 24 %leftSize_.i4.i2595 = getelementptr inbounds i8, ptr %ref.tmp625, i64 32 %rightSize_.i5.i2596 = getelementptr inbounds i8, ptr %ref.tmp625, i64 40 %8 = getelementptr inbounds i8, ptr %ref.tmp625, i64 8 - %rightKind_.i3.i3760 = getelementptr inbounds i8, ptr %ref.tmp2890, i64 24 - %leftSize_.i4.i3761 = getelementptr inbounds i8, ptr %ref.tmp2890, i64 32 - %rightSize_.i5.i3762 = getelementptr inbounds i8, ptr %ref.tmp2890, i64 40 + %rightKind_.i3.i3758 = getelementptr inbounds i8, ptr %ref.tmp2890, i64 24 + %leftSize_.i4.i3759 = getelementptr inbounds i8, ptr %ref.tmp2890, i64 32 + %rightSize_.i5.i3760 = getelementptr inbounds i8, ptr %ref.tmp2890, i64 40 %9 = getelementptr inbounds i8, ptr %ref.tmp2890, i64 8 br label %tailCall @@ -2578,7 +2576,7 @@ if.else: ; preds = %if.then22 br label %handleExceptionInParent for.cond: ; preds = %if.end15, %do.body5710 - %defaultPropOpFlags.sroa.0.0.in.in = phi i8 [ %retval.sroa.0.0.i.i4837, %do.body5710 ], [ %retval.sroa.0.0.i.i, %if.end15 ] + %defaultPropOpFlags.sroa.0.0.in.in = phi i8 [ %retval.sroa.0.0.i.i4835, %do.body5710 ], [ %retval.sroa.0.0.i.i, %if.end15 ] %frameRegs.0 = phi ptr [ %frameRegs.2, %do.body5710 ], [ %arrayidx.i5861, %if.end15 ] %ip.1 = phi ptr [ %add.ptr5729, %do.body5710 ], [ %25, %if.end15 ] %curCodeBlock.1 = phi ptr [ %curCodeBlock.3, %do.body5710 ], [ %curCodeBlock.0, %if.end15 ] @@ -2600,12 +2598,12 @@ case_Mov: ; preds = %indirectgoto %add.ptr = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 br label %indirectgoto.backedge -indirectgoto.backedge: ; preds = %case_Mov, %case_MovLong, %if.then66, %if.end80, %if.then98, %if.end112, %if.end160, %if.end202, %if.end217, %if.end370, %case_GetBuiltinClosure, %if.end447, %if.end459, %case_CompleteGenerator, %do.body473, %do.body483, %if.end506, %if.end544, %do.body578, %case_Catch, %if.end628, %do.end642, %if.end658, %case_ProfilePoint, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2622, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2659, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2696, %if.end818, %if.end854, %for.end, %_ZN6hermes2vm11Environment6createERNS0_7RuntimeENS0_6HandleIS1_EEj.exit, %_ZN6hermes2vm11Environment6createERNS0_7RuntimeENS0_6HandleIS1_EEj.exit2821, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE3setISt17integral_constantIbLb1EEEEvS2_RNS0_7HadesGCE.exit, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE3setISt17integral_constantIbLb1EEEEvS2_RNS0_7HadesGCE.exit2838, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE9setNonPtrES2_RNS0_7HadesGCE.exit, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE9setNonPtrES2_RNS0_7HadesGCE.exit2862, %case_LoadFromEnvironment, %case_LoadFromEnvironmentL, %case_GetGlobalObject, %case_GetNewTarget, %if.end1079, %if.end1090, %_ZNK6hermes2vm13HermesValue329unboxToHVERNS0_11PointerBaseE.exit2933, %_ZNK6hermes2vm13HermesValue329unboxToHVERNS0_11PointerBaseE.exit3011, %_ZN6hermes2vm8JSObject23getNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEES4_PS1_RNS0_11PointerBaseEj.exit, %if.end1284, %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE1EEEvPS1_RNS0_7RuntimeEjS4_.exit, %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEEvPS1_RNS0_7RuntimeEjS4_.exit, %if.end1462, %if.end1514, %if.end1590, %putOwnByIndex, %if.end1640, %if.end1740, %if.end1779, %if.end1817, %if.end1834, %if.end1897, %case_Jmp, %case_JmpLong, %if.end1927, %if.end1943, %if.end1960, %if.end1976, %if.end1991, %if.end2005, %if.then2014, %if.end2045, %if.then2060, %if.end2091, %case_AddN, %if.end2152, %_ZN6hermes15truncateToInt32Ed.exit, %if.end2197, %if.then2211, %if.end2247, %if.then2278, %if.end2314, %if.then2331, %if.end2355, %case_NewObject, %case_NewObjectWithParent, %if.end2439, %if.end2462, %if.end2486, %if.end2511, %if.end2535, %if.end2596, %case_SelectObject, %if.end2646, %case_StrictEq, %case_StrictNeq, %case_Not, %if.then2734, %if.end2763, %case_TypeOf, %if.then2802, %if.end2843, %if.end2870, %if.end2913, %if.end2976, %if.end3083, %if.end3173, %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_15StringPrimitiveEEENS0_6HandleIT_EEPS5_.exit3913, %if.then3250, %if.end3266, %case_LoadConstUInt8, %case_LoadConstInt, %case_LoadConstDouble, %case_LoadConstString, %case_LoadConstStringLongIndex, %case_LoadConstEmpty, %case_LoadConstUndefined, %case_LoadConstNull, %case_LoadConstTrue, %case_LoadConstFalse, %case_LoadConstZero, %if.end3420, %case_SubN, %if.end3480, %case_MulN, %if.end3541, %case_DivN, %if.end3602, %_ZN6hermes15truncateToInt32Ed.exit4038, %if.end3666, %_ZN6hermes15truncateToInt32Ed.exit4090, %if.end3730, %_ZN6hermes15truncateToInt32Ed.exit4141, %if.end3794, %_ZN6hermes15truncateToInt32Ed.exit4192, %if.end3858, %_ZN6hermes15truncateToInt32Ed.exit4244, %if.end3925, %_ZN6hermes15truncateToInt32Ed.exit4296, %if.end3992, %if.then4013, %if.end4052, %if.then4076, %if.end4115, %if.then4139, %if.end4178, %if.then4202, %if.end4241, %if.then4275, %if.end4283, %if.then4308, %if.end4316, %if.then4342, %if.end4349, %if.then4374, %if.end4381, %if.then4407, %if.end4412, %if.then4440, %if.end4445, %if.then4474, %if.end4479, %if.then4506, %if.end4511, %if.then4539, %if.end4547, %if.then4572, %if.end4580, %if.then4606, %if.end4613, %if.then4638, %if.end4645, %if.then4671, %if.end4676, %if.then4704, %if.end4709, %if.then4738, %if.end4743, %if.then4770, %if.end4775, %if.then4803, %if.end4811, %if.then4836, %if.end4844, %if.then4870, %if.end4877, %if.then4902, %if.end4909, %if.then4935, %if.end4940, %if.then4968, %if.end4973, %if.then5002, %if.end5007, %if.then5034, %if.end5039, %if.then5067, %if.end5075, %if.then5100, %if.end5108, %if.then5134, %if.end5141, %if.then5166, %if.end5173, %if.then5199, %if.end5204, %if.then5232, %if.end5237, %if.then5266, %if.end5271, %if.then5298, %if.end5303, %if.then5321, %if.end5329, %if.then5345, %if.end5352, %if.then5368, %if.end5373, %if.then5392, %if.end5397, %if.then5423, %if.end5431, %if.then5455, %if.end5462, %if.then5486, %if.end5491, %if.then5518, %if.end5523, %if.end5536, %if.end5547, %if.end5558, %if.end5569, %if.end5580, %if.end5623 - %add.ptr.sink.sink.be = phi ptr [ %add.ptr, %case_Mov ], [ %add.ptr56, %case_MovLong ], [ %add.ptr76, %if.then66 ], [ %add.ptr88, %if.end80 ], [ %add.ptr108, %if.then98 ], [ %add.ptr120, %if.end112 ], [ %add.ptr161, %if.end160 ], [ %add.ptr203, %if.end202 ], [ %add.ptr200, %if.end217 ], [ %nextIP.1, %if.end370 ], [ %add.ptr436, %case_GetBuiltinClosure ], [ %add.ptr448, %if.end447 ], [ %add.ptr460, %if.end459 ], [ %add.ptr469, %case_CompleteGenerator ], [ %add.ptr479, %do.body473 ], [ %add.ptr490, %do.body483 ], [ %nextIP.2, %if.end506 ], [ %add.ptr545, %if.end544 ], [ %add.ptr.i, %do.body578 ], [ %add.ptr604, %case_Catch ], [ %add.ptr636, %if.end628 ], [ %add.ptr643, %do.end642 ], [ %add.ptr659, %if.end658 ], [ %add.ptr663, %case_ProfilePoint ], [ %add.ptr671, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2622 ], [ %add.ptr713, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2659 ], [ %add.ptr756, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2696 ], [ %add.ptr828, %if.end818 ], [ %add.ptr864, %if.end854 ], [ %add.ptr884, %for.end ], [ %add.ptr906, %_ZN6hermes2vm11Environment6createERNS0_7RuntimeENS0_6HandleIS1_EEj.exit ], [ %add.ptr939, %_ZN6hermes2vm11Environment6createERNS0_7RuntimeENS0_6HandleIS1_EEj.exit2821 ], [ %add.ptr958, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE3setISt17integral_constantIbLb1EEEEvS2_RNS0_7HadesGCE.exit ], [ %add.ptr977, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE3setISt17integral_constantIbLb1EEEEvS2_RNS0_7HadesGCE.exit2838 ], [ %add.ptr996, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE9setNonPtrES2_RNS0_7HadesGCE.exit ], [ %add.ptr1015, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE9setNonPtrES2_RNS0_7HadesGCE.exit2862 ], [ %add.ptr1032, %case_LoadFromEnvironment ], [ %add.ptr1049, %case_LoadFromEnvironmentL ], [ %add.ptr1058, %case_GetGlobalObject ], [ %add.ptr1069, %case_GetNewTarget ], [ %add.ptr1080, %if.end1079 ], [ %add.ptr1091, %if.end1090 ], [ %add.ptr1107, %_ZNK6hermes2vm13HermesValue329unboxToHVERNS0_11PointerBaseE.exit2933 ], [ %add.ptr1107, %_ZNK6hermes2vm13HermesValue329unboxToHVERNS0_11PointerBaseE.exit3011 ], [ %add.ptr1107, %_ZN6hermes2vm8JSObject23getNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEES4_PS1_RNS0_11PointerBaseEj.exit ], [ %add.ptr1107, %if.end1284 ], [ %add.ptr1305, %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE1EEEvPS1_RNS0_7RuntimeEjS4_.exit ], [ %add.ptr1305, %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEEvPS1_RNS0_7RuntimeEjS4_.exit ], [ %add.ptr1305, %if.end1462 ], [ %add.ptr1523, %if.end1514 ], [ %add.ptr1591, %if.end1590 ], [ %nextIP.8, %putOwnByIndex ], [ %add.ptr1641, %if.end1640 ], [ %add.ptr1741, %if.end1740 ], [ %ip.11, %if.end1779 ], [ %ip.12, %if.end1817 ], [ %add.ptr1840, %if.end1834 ], [ %ip.13, %if.end1897 ], [ %add.ptr1904, %case_Jmp ], [ %add.ptr1910, %case_JmpLong ], [ %add.ptr1926, %if.end1927 ], [ %add.ptr1942, %if.end1943 ], [ %add.ptr1959, %if.end1960 ], [ %add.ptr1975, %if.end1976 ], [ %add.ptr1990, %if.end1991 ], [ %add.ptr2004, %if.end2005 ], [ %add.ptr2027, %if.then2014 ], [ %add.ptr2051, %if.end2045 ], [ %add.ptr2073, %if.then2060 ], [ %add.ptr2097, %if.end2091 ], [ %add.ptr2129, %case_AddN ], [ %add.ptr2158, %if.end2152 ], [ %add.ptr2180, %_ZN6hermes15truncateToInt32Ed.exit ], [ %add.ptr2203, %if.end2197 ], [ %add.ptr2222, %if.then2211 ], [ %add.ptr2256, %if.end2247 ], [ %add.ptr2287, %if.then2278 ], [ %add.ptr2323, %if.end2314 ], [ %add.ptr2332, %if.then2331 ], [ %add.ptr2364, %if.end2355 ], [ %add.ptr2379, %case_NewObject ], [ %add.ptr2423, %case_NewObjectWithParent ], [ %add.ptr2448, %if.end2439 ], [ %add.ptr2471, %if.end2462 ], [ %add.ptr2495, %if.end2486 ], [ %add.ptr2520, %if.end2511 ], [ %add.ptr2544, %if.end2535 ], [ %add.ptr2605, %if.end2596 ], [ %add.ptr2626, %case_SelectObject ], [ %add.ptr2662, %if.end2646 ], [ %add.ptr2684, %case_StrictEq ], [ %add.ptr2707, %case_StrictNeq ], [ %add.ptr2725, %case_Not ], [ %add.ptr2746, %if.then2734 ], [ %add.ptr2769, %if.end2763 ], [ %add.ptr2787, %case_TypeOf ], [ %add.ptr2819, %if.then2802 ], [ %add.ptr2849, %if.end2843 ], [ %add.ptr2879, %if.end2870 ], [ %add.ptr2922, %if.end2913 ], [ %nextIP.9, %if.end2976 ], [ %add.ptr2984, %if.end3083 ], [ %add.ptr3174, %if.end3173 ], [ %add.ptr3224, %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_15StringPrimitiveEEENS0_6HandleIT_EEPS5_.exit3913 ], [ %add.ptr3261, %if.then3250 ], [ %add.ptr3269, %if.end3266 ], [ %add.ptr3281, %case_LoadConstUInt8 ], [ %add.ptr3293, %case_LoadConstInt ], [ %add.ptr3305, %case_LoadConstDouble ], [ %add.ptr3321, %case_LoadConstString ], [ %add.ptr3336, %case_LoadConstStringLongIndex ], [ %add.ptr3347, %case_LoadConstEmpty ], [ %add.ptr3358, %case_LoadConstUndefined ], [ %add.ptr3369, %case_LoadConstNull ], [ %add.ptr3380, %case_LoadConstTrue ], [ %add.ptr3391, %case_LoadConstFalse ], [ %add.ptr3402, %case_LoadConstZero ], [ %add.ptr3410, %if.end3420 ], [ %add.ptr3457, %case_SubN ], [ %add.ptr3486, %if.end3480 ], [ %add.ptr3518, %case_MulN ], [ %add.ptr3547, %if.end3541 ], [ %add.ptr3579, %case_DivN ], [ %add.ptr3608, %if.end3602 ], [ %add.ptr3642, %_ZN6hermes15truncateToInt32Ed.exit4038 ], [ %add.ptr3672, %if.end3666 ], [ %add.ptr3706, %_ZN6hermes15truncateToInt32Ed.exit4090 ], [ %add.ptr3736, %if.end3730 ], [ %add.ptr3770, %_ZN6hermes15truncateToInt32Ed.exit4141 ], [ %add.ptr3800, %if.end3794 ], [ %add.ptr3834, %_ZN6hermes15truncateToInt32Ed.exit4192 ], [ %add.ptr3864, %if.end3858 ], [ %add.ptr3901, %_ZN6hermes15truncateToInt32Ed.exit4244 ], [ %add.ptr3931, %if.end3925 ], [ %add.ptr3968, %_ZN6hermes15truncateToInt32Ed.exit4296 ], [ %add.ptr3998, %if.end3992 ], [ %add.ptr4030, %if.then4013 ], [ %add.ptr4061, %if.end4052 ], [ %add.ptr4093, %if.then4076 ], [ %add.ptr4124, %if.end4115 ], [ %add.ptr4156, %if.then4139 ], [ %add.ptr4187, %if.end4178 ], [ %add.ptr4219, %if.then4202 ], [ %add.ptr4250, %if.end4241 ], [ %add.ptr4279, %if.then4275 ], [ %add.ptr4284, %if.end4283 ], [ %add.ptr4312, %if.then4308 ], [ %add.ptr4317, %if.end4316 ], [ %add.ptr4345, %if.then4342 ], [ %add.ptr4350, %if.end4349 ], [ %add.ptr4377, %if.then4374 ], [ %add.ptr4382, %if.end4381 ], [ %add.ptr4408, %if.then4407 ], [ %add.ptr4416, %if.end4412 ], [ %add.ptr4441, %if.then4440 ], [ %add.ptr4449, %if.end4445 ], [ %add.ptr4475, %if.then4474 ], [ %add.ptr4482, %if.end4479 ], [ %add.ptr4507, %if.then4506 ], [ %add.ptr4514, %if.end4511 ], [ %add.ptr4543, %if.then4539 ], [ %add.ptr4548, %if.end4547 ], [ %add.ptr4576, %if.then4572 ], [ %add.ptr4581, %if.end4580 ], [ %add.ptr4609, %if.then4606 ], [ %add.ptr4614, %if.end4613 ], [ %add.ptr4641, %if.then4638 ], [ %add.ptr4646, %if.end4645 ], [ %add.ptr4672, %if.then4671 ], [ %add.ptr4680, %if.end4676 ], [ %add.ptr4705, %if.then4704 ], [ %add.ptr4713, %if.end4709 ], [ %add.ptr4739, %if.then4738 ], [ %add.ptr4746, %if.end4743 ], [ %add.ptr4771, %if.then4770 ], [ %add.ptr4778, %if.end4775 ], [ %add.ptr4807, %if.then4803 ], [ %add.ptr4812, %if.end4811 ], [ %add.ptr4840, %if.then4836 ], [ %add.ptr4845, %if.end4844 ], [ %add.ptr4873, %if.then4870 ], [ %add.ptr4878, %if.end4877 ], [ %add.ptr4905, %if.then4902 ], [ %add.ptr4910, %if.end4909 ], [ %add.ptr4936, %if.then4935 ], [ %add.ptr4944, %if.end4940 ], [ %add.ptr4969, %if.then4968 ], [ %add.ptr4977, %if.end4973 ], [ %add.ptr5003, %if.then5002 ], [ %add.ptr5010, %if.end5007 ], [ %add.ptr5035, %if.then5034 ], [ %add.ptr5042, %if.end5039 ], [ %add.ptr5071, %if.then5067 ], [ %add.ptr5076, %if.end5075 ], [ %add.ptr5104, %if.then5100 ], [ %add.ptr5109, %if.end5108 ], [ %add.ptr5137, %if.then5134 ], [ %add.ptr5142, %if.end5141 ], [ %add.ptr5169, %if.then5166 ], [ %add.ptr5174, %if.end5173 ], [ %add.ptr5200, %if.then5199 ], [ %add.ptr5208, %if.end5204 ], [ %add.ptr5233, %if.then5232 ], [ %add.ptr5241, %if.end5237 ], [ %add.ptr5267, %if.then5266 ], [ %add.ptr5274, %if.end5271 ], [ %add.ptr5299, %if.then5298 ], [ %add.ptr5306, %if.end5303 ], [ %add.ptr5325, %if.then5321 ], [ %add.ptr5330, %if.end5329 ], [ %add.ptr5348, %if.then5345 ], [ %add.ptr5353, %if.end5352 ], [ %add.ptr5369, %if.then5368 ], [ %add.ptr5377, %if.end5373 ], [ %add.ptr5393, %if.then5392 ], [ %add.ptr5400, %if.end5397 ], [ %add.ptr5427, %if.then5423 ], [ %add.ptr5432, %if.end5431 ], [ %add.ptr5458, %if.then5455 ], [ %add.ptr5463, %if.end5462 ], [ %add.ptr5487, %if.then5486 ], [ %add.ptr5495, %if.end5491 ], [ %add.ptr5519, %if.then5518 ], [ %add.ptr5526, %if.end5523 ], [ %add.ptr5537, %if.end5536 ], [ %add.ptr5548, %if.end5547 ], [ %add.ptr5559, %if.end5558 ], [ %add.ptr5570, %if.end5569 ], [ %add.ptr5581, %if.end5580 ], [ %add.ptr5624, %if.end5623 ] - %defaultPropOpFlags.sroa.0.1.be = phi i8 [ %defaultPropOpFlags.sroa.0.1, %case_Mov ], [ %defaultPropOpFlags.sroa.0.1, %case_MovLong ], [ %defaultPropOpFlags.sroa.0.1, %if.then66 ], [ %defaultPropOpFlags.sroa.0.1, %if.end80 ], [ %defaultPropOpFlags.sroa.0.1, %if.then98 ], [ %defaultPropOpFlags.sroa.0.1, %if.end112 ], [ %defaultPropOpFlags.sroa.0.1, %if.end160 ], [ %defaultPropOpFlags.sroa.0.1, %if.end202 ], [ %defaultPropOpFlags.sroa.0.1, %if.end217 ], [ %defaultPropOpFlags.sroa.0.1, %if.end370 ], [ %defaultPropOpFlags.sroa.0.1, %case_GetBuiltinClosure ], [ %defaultPropOpFlags.sroa.0.1, %if.end447 ], [ %defaultPropOpFlags.sroa.0.1, %if.end459 ], [ %defaultPropOpFlags.sroa.0.1, %case_CompleteGenerator ], [ %defaultPropOpFlags.sroa.0.1, %do.body473 ], [ %defaultPropOpFlags.sroa.0.1, %do.body483 ], [ %defaultPropOpFlags.sroa.0.1, %if.end506 ], [ %defaultPropOpFlags.sroa.0.1, %if.end544 ], [ %.lobit, %do.body578 ], [ %defaultPropOpFlags.sroa.0.1, %case_Catch ], [ %defaultPropOpFlags.sroa.0.1, %if.end628 ], [ %defaultPropOpFlags.sroa.0.1, %do.end642 ], [ %defaultPropOpFlags.sroa.0.1, %if.end658 ], [ %defaultPropOpFlags.sroa.0.1, %case_ProfilePoint ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2622 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2659 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2696 ], [ %defaultPropOpFlags.sroa.0.1, %if.end818 ], [ %defaultPropOpFlags.sroa.0.1, %if.end854 ], [ %defaultPropOpFlags.sroa.0.1, %for.end ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes2vm11Environment6createERNS0_7RuntimeENS0_6HandleIS1_EEj.exit ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes2vm11Environment6createERNS0_7RuntimeENS0_6HandleIS1_EEj.exit2821 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE3setISt17integral_constantIbLb1EEEEvS2_RNS0_7HadesGCE.exit ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE3setISt17integral_constantIbLb1EEEEvS2_RNS0_7HadesGCE.exit2838 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE9setNonPtrES2_RNS0_7HadesGCE.exit ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE9setNonPtrES2_RNS0_7HadesGCE.exit2862 ], [ %defaultPropOpFlags.sroa.0.1, %case_LoadFromEnvironment ], [ %defaultPropOpFlags.sroa.0.1, %case_LoadFromEnvironmentL ], [ %defaultPropOpFlags.sroa.0.1, %case_GetGlobalObject ], [ %defaultPropOpFlags.sroa.0.1, %case_GetNewTarget ], [ %defaultPropOpFlags.sroa.0.1, %if.end1079 ], [ %defaultPropOpFlags.sroa.0.1, %if.end1090 ], [ %defaultPropOpFlags.sroa.0.1, %_ZNK6hermes2vm13HermesValue329unboxToHVERNS0_11PointerBaseE.exit2933 ], [ %defaultPropOpFlags.sroa.0.1, %_ZNK6hermes2vm13HermesValue329unboxToHVERNS0_11PointerBaseE.exit3011 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes2vm8JSObject23getNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEES4_PS1_RNS0_11PointerBaseEj.exit ], [ %defaultPropOpFlags.sroa.0.1, %if.end1284 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE1EEEvPS1_RNS0_7RuntimeEjS4_.exit ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEEvPS1_RNS0_7RuntimeEjS4_.exit ], [ %defaultPropOpFlags.sroa.0.1, %if.end1462 ], [ %defaultPropOpFlags.sroa.0.1, %if.end1514 ], [ %defaultPropOpFlags.sroa.0.1, %if.end1590 ], [ %defaultPropOpFlags.sroa.0.1, %putOwnByIndex ], [ %defaultPropOpFlags.sroa.0.1, %if.end1640 ], [ %defaultPropOpFlags.sroa.0.1, %if.end1740 ], [ %defaultPropOpFlags.sroa.0.1, %if.end1779 ], [ %defaultPropOpFlags.sroa.0.1, %if.end1817 ], [ %defaultPropOpFlags.sroa.0.1, %if.end1834 ], [ %defaultPropOpFlags.sroa.0.1, %if.end1897 ], [ %defaultPropOpFlags.sroa.0.1, %case_Jmp ], [ %defaultPropOpFlags.sroa.0.1, %case_JmpLong ], [ %defaultPropOpFlags.sroa.0.1, %if.end1927 ], [ %defaultPropOpFlags.sroa.0.1, %if.end1943 ], [ %defaultPropOpFlags.sroa.0.1, %if.end1960 ], [ %defaultPropOpFlags.sroa.0.1, %if.end1976 ], [ %defaultPropOpFlags.sroa.0.1, %if.end1991 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2005 ], [ %defaultPropOpFlags.sroa.0.1, %if.then2014 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2045 ], [ %defaultPropOpFlags.sroa.0.1, %if.then2060 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2091 ], [ %defaultPropOpFlags.sroa.0.1, %case_AddN ], [ %defaultPropOpFlags.sroa.0.1, %if.end2152 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes15truncateToInt32Ed.exit ], [ %defaultPropOpFlags.sroa.0.1, %if.end2197 ], [ %defaultPropOpFlags.sroa.0.1, %if.then2211 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2247 ], [ %defaultPropOpFlags.sroa.0.1, %if.then2278 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2314 ], [ %defaultPropOpFlags.sroa.0.1, %if.then2331 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2355 ], [ %defaultPropOpFlags.sroa.0.1, %case_NewObject ], [ %defaultPropOpFlags.sroa.0.1, %case_NewObjectWithParent ], [ %defaultPropOpFlags.sroa.0.1, %if.end2439 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2462 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2486 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2511 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2535 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2596 ], [ %defaultPropOpFlags.sroa.0.1, %case_SelectObject ], [ %defaultPropOpFlags.sroa.0.1, %if.end2646 ], [ %defaultPropOpFlags.sroa.0.1, %case_StrictEq ], [ %defaultPropOpFlags.sroa.0.1, %case_StrictNeq ], [ %defaultPropOpFlags.sroa.0.1, %case_Not ], [ %defaultPropOpFlags.sroa.0.1, %if.then2734 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2763 ], [ %defaultPropOpFlags.sroa.0.1, %case_TypeOf ], [ %defaultPropOpFlags.sroa.0.1, %if.then2802 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2843 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2870 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2913 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2976 ], [ %defaultPropOpFlags.sroa.0.1, %if.end3083 ], [ %defaultPropOpFlags.sroa.0.1, %if.end3173 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_15StringPrimitiveEEENS0_6HandleIT_EEPS5_.exit3913 ], [ %defaultPropOpFlags.sroa.0.1, %if.then3250 ], [ %defaultPropOpFlags.sroa.0.1, %if.end3266 ], [ %defaultPropOpFlags.sroa.0.1, %case_LoadConstUInt8 ], [ %defaultPropOpFlags.sroa.0.1, %case_LoadConstInt ], [ %defaultPropOpFlags.sroa.0.1, %case_LoadConstDouble ], [ %defaultPropOpFlags.sroa.0.1, %case_LoadConstString ], [ %defaultPropOpFlags.sroa.0.1, %case_LoadConstStringLongIndex ], [ %defaultPropOpFlags.sroa.0.1, %case_LoadConstEmpty ], [ %defaultPropOpFlags.sroa.0.1, %case_LoadConstUndefined ], [ %defaultPropOpFlags.sroa.0.1, %case_LoadConstNull ], [ %defaultPropOpFlags.sroa.0.1, %case_LoadConstTrue ], [ %defaultPropOpFlags.sroa.0.1, %case_LoadConstFalse ], [ %defaultPropOpFlags.sroa.0.1, %case_LoadConstZero ], [ %defaultPropOpFlags.sroa.0.1, %if.end3420 ], [ %defaultPropOpFlags.sroa.0.1, %case_SubN ], [ %defaultPropOpFlags.sroa.0.1, %if.end3480 ], [ %defaultPropOpFlags.sroa.0.1, %case_MulN ], [ %defaultPropOpFlags.sroa.0.1, %if.end3541 ], [ %defaultPropOpFlags.sroa.0.1, %case_DivN ], [ %defaultPropOpFlags.sroa.0.1, %if.end3602 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes15truncateToInt32Ed.exit4038 ], [ %defaultPropOpFlags.sroa.0.1, %if.end3666 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes15truncateToInt32Ed.exit4090 ], [ %defaultPropOpFlags.sroa.0.1, %if.end3730 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes15truncateToInt32Ed.exit4141 ], [ %defaultPropOpFlags.sroa.0.1, %if.end3794 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes15truncateToInt32Ed.exit4192 ], [ %defaultPropOpFlags.sroa.0.1, %if.end3858 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes15truncateToInt32Ed.exit4244 ], [ %defaultPropOpFlags.sroa.0.1, %if.end3925 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes15truncateToInt32Ed.exit4296 ], [ %defaultPropOpFlags.sroa.0.1, %if.end3992 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4013 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4052 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4076 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4115 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4139 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4178 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4202 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4241 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4275 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4283 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4308 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4316 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4342 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4349 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4374 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4381 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4407 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4412 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4440 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4445 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4474 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4479 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4506 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4511 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4539 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4547 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4572 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4580 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4606 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4613 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4638 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4645 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4671 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4676 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4704 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4709 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4738 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4743 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4770 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4775 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4803 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4811 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4836 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4844 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4870 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4877 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4902 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4909 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4935 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4940 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4968 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4973 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5002 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5007 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5034 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5039 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5067 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5075 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5100 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5108 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5134 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5141 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5166 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5173 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5199 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5204 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5232 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5237 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5266 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5271 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5298 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5303 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5321 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5329 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5345 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5352 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5368 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5373 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5392 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5397 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5423 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5431 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5455 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5462 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5486 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5491 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5518 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5523 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5536 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5547 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5558 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5569 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5580 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5623 ] - %strictMode.1.be = phi i8 [ %strictMode.1, %case_Mov ], [ %strictMode.1, %case_MovLong ], [ %strictMode.1, %if.then66 ], [ %strictMode.1, %if.end80 ], [ %strictMode.1, %if.then98 ], [ %strictMode.1, %if.end112 ], [ %strictMode.1, %if.end160 ], [ %strictMode.1, %if.end202 ], [ %strictMode.1, %if.end217 ], [ %strictMode.1, %if.end370 ], [ %strictMode.1, %case_GetBuiltinClosure ], [ %strictMode.1, %if.end447 ], [ %strictMode.1, %if.end459 ], [ %strictMode.1, %case_CompleteGenerator ], [ %strictMode.1, %do.body473 ], [ %strictMode.1, %do.body483 ], [ %strictMode.1, %if.end506 ], [ %strictMode.1, %if.end544 ], [ %.lobit, %do.body578 ], [ %strictMode.1, %case_Catch ], [ %strictMode.1, %if.end628 ], [ %strictMode.1, %do.end642 ], [ %strictMode.1, %if.end658 ], [ %strictMode.1, %case_ProfilePoint ], [ %strictMode.1, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2622 ], [ %strictMode.1, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2659 ], [ %strictMode.1, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2696 ], [ %strictMode.1, %if.end818 ], [ %strictMode.1, %if.end854 ], [ %strictMode.1, %for.end ], [ %strictMode.1, %_ZN6hermes2vm11Environment6createERNS0_7RuntimeENS0_6HandleIS1_EEj.exit ], [ %strictMode.1, %_ZN6hermes2vm11Environment6createERNS0_7RuntimeENS0_6HandleIS1_EEj.exit2821 ], [ %strictMode.1, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE3setISt17integral_constantIbLb1EEEEvS2_RNS0_7HadesGCE.exit ], [ %strictMode.1, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE3setISt17integral_constantIbLb1EEEEvS2_RNS0_7HadesGCE.exit2838 ], [ %strictMode.1, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE9setNonPtrES2_RNS0_7HadesGCE.exit ], [ %strictMode.1, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE9setNonPtrES2_RNS0_7HadesGCE.exit2862 ], [ %strictMode.1, %case_LoadFromEnvironment ], [ %strictMode.1, %case_LoadFromEnvironmentL ], [ %strictMode.1, %case_GetGlobalObject ], [ %strictMode.1, %case_GetNewTarget ], [ %strictMode.1, %if.end1079 ], [ %strictMode.1, %if.end1090 ], [ %strictMode.1, %_ZNK6hermes2vm13HermesValue329unboxToHVERNS0_11PointerBaseE.exit2933 ], [ %strictMode.1, %_ZNK6hermes2vm13HermesValue329unboxToHVERNS0_11PointerBaseE.exit3011 ], [ %strictMode.1, %_ZN6hermes2vm8JSObject23getNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEES4_PS1_RNS0_11PointerBaseEj.exit ], [ %strictMode.1, %if.end1284 ], [ %strictMode.1, %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE1EEEvPS1_RNS0_7RuntimeEjS4_.exit ], [ %strictMode.1, %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEEvPS1_RNS0_7RuntimeEjS4_.exit ], [ %strictMode.1, %if.end1462 ], [ %strictMode.1, %if.end1514 ], [ %strictMode.1, %if.end1590 ], [ %strictMode.1, %putOwnByIndex ], [ %strictMode.1, %if.end1640 ], [ %strictMode.1, %if.end1740 ], [ %strictMode.1, %if.end1779 ], [ %strictMode.1, %if.end1817 ], [ %strictMode.1, %if.end1834 ], [ %strictMode.1, %if.end1897 ], [ %strictMode.1, %case_Jmp ], [ %strictMode.1, %case_JmpLong ], [ %strictMode.1, %if.end1927 ], [ %strictMode.1, %if.end1943 ], [ %strictMode.1, %if.end1960 ], [ %strictMode.1, %if.end1976 ], [ %strictMode.1, %if.end1991 ], [ %strictMode.1, %if.end2005 ], [ %strictMode.1, %if.then2014 ], [ %strictMode.1, %if.end2045 ], [ %strictMode.1, %if.then2060 ], [ %strictMode.1, %if.end2091 ], [ %strictMode.1, %case_AddN ], [ %strictMode.1, %if.end2152 ], [ %strictMode.1, %_ZN6hermes15truncateToInt32Ed.exit ], [ %strictMode.1, %if.end2197 ], [ %strictMode.1, %if.then2211 ], [ %strictMode.1, %if.end2247 ], [ %strictMode.1, %if.then2278 ], [ %strictMode.1, %if.end2314 ], [ %strictMode.1, %if.then2331 ], [ %strictMode.1, %if.end2355 ], [ %strictMode.1, %case_NewObject ], [ %strictMode.1, %case_NewObjectWithParent ], [ %strictMode.1, %if.end2439 ], [ %strictMode.1, %if.end2462 ], [ %strictMode.1, %if.end2486 ], [ %strictMode.1, %if.end2511 ], [ %strictMode.1, %if.end2535 ], [ %strictMode.1, %if.end2596 ], [ %strictMode.1, %case_SelectObject ], [ %strictMode.1, %if.end2646 ], [ %strictMode.1, %case_StrictEq ], [ %strictMode.1, %case_StrictNeq ], [ %strictMode.1, %case_Not ], [ %strictMode.1, %if.then2734 ], [ %strictMode.1, %if.end2763 ], [ %strictMode.1, %case_TypeOf ], [ %strictMode.1, %if.then2802 ], [ %strictMode.1, %if.end2843 ], [ %strictMode.1, %if.end2870 ], [ %strictMode.1, %if.end2913 ], [ %strictMode.1, %if.end2976 ], [ %strictMode.1, %if.end3083 ], [ %strictMode.1, %if.end3173 ], [ %strictMode.1, %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_15StringPrimitiveEEENS0_6HandleIT_EEPS5_.exit3913 ], [ %strictMode.1, %if.then3250 ], [ %strictMode.1, %if.end3266 ], [ %strictMode.1, %case_LoadConstUInt8 ], [ %strictMode.1, %case_LoadConstInt ], [ %strictMode.1, %case_LoadConstDouble ], [ %strictMode.1, %case_LoadConstString ], [ %strictMode.1, %case_LoadConstStringLongIndex ], [ %strictMode.1, %case_LoadConstEmpty ], [ %strictMode.1, %case_LoadConstUndefined ], [ %strictMode.1, %case_LoadConstNull ], [ %strictMode.1, %case_LoadConstTrue ], [ %strictMode.1, %case_LoadConstFalse ], [ %strictMode.1, %case_LoadConstZero ], [ %strictMode.1, %if.end3420 ], [ %strictMode.1, %case_SubN ], [ %strictMode.1, %if.end3480 ], [ %strictMode.1, %case_MulN ], [ %strictMode.1, %if.end3541 ], [ %strictMode.1, %case_DivN ], [ %strictMode.1, %if.end3602 ], [ %strictMode.1, %_ZN6hermes15truncateToInt32Ed.exit4038 ], [ %strictMode.1, %if.end3666 ], [ %strictMode.1, %_ZN6hermes15truncateToInt32Ed.exit4090 ], [ %strictMode.1, %if.end3730 ], [ %strictMode.1, %_ZN6hermes15truncateToInt32Ed.exit4141 ], [ %strictMode.1, %if.end3794 ], [ %strictMode.1, %_ZN6hermes15truncateToInt32Ed.exit4192 ], [ %strictMode.1, %if.end3858 ], [ %strictMode.1, %_ZN6hermes15truncateToInt32Ed.exit4244 ], [ %strictMode.1, %if.end3925 ], [ %strictMode.1, %_ZN6hermes15truncateToInt32Ed.exit4296 ], [ %strictMode.1, %if.end3992 ], [ %strictMode.1, %if.then4013 ], [ %strictMode.1, %if.end4052 ], [ %strictMode.1, %if.then4076 ], [ %strictMode.1, %if.end4115 ], [ %strictMode.1, %if.then4139 ], [ %strictMode.1, %if.end4178 ], [ %strictMode.1, %if.then4202 ], [ %strictMode.1, %if.end4241 ], [ %strictMode.1, %if.then4275 ], [ %strictMode.1, %if.end4283 ], [ %strictMode.1, %if.then4308 ], [ %strictMode.1, %if.end4316 ], [ %strictMode.1, %if.then4342 ], [ %strictMode.1, %if.end4349 ], [ %strictMode.1, %if.then4374 ], [ %strictMode.1, %if.end4381 ], [ %strictMode.1, %if.then4407 ], [ %strictMode.1, %if.end4412 ], [ %strictMode.1, %if.then4440 ], [ %strictMode.1, %if.end4445 ], [ %strictMode.1, %if.then4474 ], [ %strictMode.1, %if.end4479 ], [ %strictMode.1, %if.then4506 ], [ %strictMode.1, %if.end4511 ], [ %strictMode.1, %if.then4539 ], [ %strictMode.1, %if.end4547 ], [ %strictMode.1, %if.then4572 ], [ %strictMode.1, %if.end4580 ], [ %strictMode.1, %if.then4606 ], [ %strictMode.1, %if.end4613 ], [ %strictMode.1, %if.then4638 ], [ %strictMode.1, %if.end4645 ], [ %strictMode.1, %if.then4671 ], [ %strictMode.1, %if.end4676 ], [ %strictMode.1, %if.then4704 ], [ %strictMode.1, %if.end4709 ], [ %strictMode.1, %if.then4738 ], [ %strictMode.1, %if.end4743 ], [ %strictMode.1, %if.then4770 ], [ %strictMode.1, %if.end4775 ], [ %strictMode.1, %if.then4803 ], [ %strictMode.1, %if.end4811 ], [ %strictMode.1, %if.then4836 ], [ %strictMode.1, %if.end4844 ], [ %strictMode.1, %if.then4870 ], [ %strictMode.1, %if.end4877 ], [ %strictMode.1, %if.then4902 ], [ %strictMode.1, %if.end4909 ], [ %strictMode.1, %if.then4935 ], [ %strictMode.1, %if.end4940 ], [ %strictMode.1, %if.then4968 ], [ %strictMode.1, %if.end4973 ], [ %strictMode.1, %if.then5002 ], [ %strictMode.1, %if.end5007 ], [ %strictMode.1, %if.then5034 ], [ %strictMode.1, %if.end5039 ], [ %strictMode.1, %if.then5067 ], [ %strictMode.1, %if.end5075 ], [ %strictMode.1, %if.then5100 ], [ %strictMode.1, %if.end5108 ], [ %strictMode.1, %if.then5134 ], [ %strictMode.1, %if.end5141 ], [ %strictMode.1, %if.then5166 ], [ %strictMode.1, %if.end5173 ], [ %strictMode.1, %if.then5199 ], [ %strictMode.1, %if.end5204 ], [ %strictMode.1, %if.then5232 ], [ %strictMode.1, %if.end5237 ], [ %strictMode.1, %if.then5266 ], [ %strictMode.1, %if.end5271 ], [ %strictMode.1, %if.then5298 ], [ %strictMode.1, %if.end5303 ], [ %strictMode.1, %if.then5321 ], [ %strictMode.1, %if.end5329 ], [ %strictMode.1, %if.then5345 ], [ %strictMode.1, %if.end5352 ], [ %strictMode.1, %if.then5368 ], [ %strictMode.1, %if.end5373 ], [ %strictMode.1, %if.then5392 ], [ %strictMode.1, %if.end5397 ], [ %strictMode.1, %if.then5423 ], [ %strictMode.1, %if.end5431 ], [ %strictMode.1, %if.then5455 ], [ %strictMode.1, %if.end5462 ], [ %strictMode.1, %if.then5486 ], [ %strictMode.1, %if.end5491 ], [ %strictMode.1, %if.then5518 ], [ %strictMode.1, %if.end5523 ], [ %strictMode.1, %if.end5536 ], [ %strictMode.1, %if.end5547 ], [ %strictMode.1, %if.end5558 ], [ %strictMode.1, %if.end5569 ], [ %strictMode.1, %if.end5580 ], [ %strictMode.1, %if.end5623 ] - %frameRegs.3.be = phi ptr [ %frameRegs.3, %case_Mov ], [ %frameRegs.3, %case_MovLong ], [ %frameRegs.3, %if.then66 ], [ %frameRegs.3, %if.end80 ], [ %frameRegs.3, %if.then98 ], [ %frameRegs.3, %if.end112 ], [ %frameRegs.3, %if.end160 ], [ %frameRegs.3, %if.end202 ], [ %frameRegs.3, %if.end217 ], [ %frameRegs.3, %if.end370 ], [ %frameRegs.3, %case_GetBuiltinClosure ], [ %frameRegs.3, %if.end447 ], [ %frameRegs.3, %if.end459 ], [ %frameRegs.3, %case_CompleteGenerator ], [ %frameRegs.3, %do.body473 ], [ %frameRegs.3, %do.body483 ], [ %frameRegs.3, %if.end506 ], [ %frameRegs.3, %if.end544 ], [ %arrayidx.i5858, %do.body578 ], [ %frameRegs.3, %case_Catch ], [ %frameRegs.3, %if.end628 ], [ %frameRegs.3, %do.end642 ], [ %frameRegs.3, %if.end658 ], [ %frameRegs.3, %case_ProfilePoint ], [ %frameRegs.3, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2622 ], [ %frameRegs.3, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2659 ], [ %frameRegs.3, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2696 ], [ %frameRegs.3, %if.end818 ], [ %frameRegs.3, %if.end854 ], [ %frameRegs.3, %for.end ], [ %frameRegs.3, %_ZN6hermes2vm11Environment6createERNS0_7RuntimeENS0_6HandleIS1_EEj.exit ], [ %frameRegs.3, %_ZN6hermes2vm11Environment6createERNS0_7RuntimeENS0_6HandleIS1_EEj.exit2821 ], [ %frameRegs.3, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE3setISt17integral_constantIbLb1EEEEvS2_RNS0_7HadesGCE.exit ], [ %frameRegs.3, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE3setISt17integral_constantIbLb1EEEEvS2_RNS0_7HadesGCE.exit2838 ], [ %frameRegs.3, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE9setNonPtrES2_RNS0_7HadesGCE.exit ], [ %frameRegs.3, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE9setNonPtrES2_RNS0_7HadesGCE.exit2862 ], [ %frameRegs.3, %case_LoadFromEnvironment ], [ %frameRegs.3, %case_LoadFromEnvironmentL ], [ %frameRegs.3, %case_GetGlobalObject ], [ %frameRegs.3, %case_GetNewTarget ], [ %frameRegs.3, %if.end1079 ], [ %frameRegs.3, %if.end1090 ], [ %frameRegs.3, %_ZNK6hermes2vm13HermesValue329unboxToHVERNS0_11PointerBaseE.exit2933 ], [ %frameRegs.3, %_ZNK6hermes2vm13HermesValue329unboxToHVERNS0_11PointerBaseE.exit3011 ], [ %frameRegs.3, %_ZN6hermes2vm8JSObject23getNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEES4_PS1_RNS0_11PointerBaseEj.exit ], [ %frameRegs.3, %if.end1284 ], [ %frameRegs.3, %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE1EEEvPS1_RNS0_7RuntimeEjS4_.exit ], [ %frameRegs.3, %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEEvPS1_RNS0_7RuntimeEjS4_.exit ], [ %frameRegs.3, %if.end1462 ], [ %frameRegs.3, %if.end1514 ], [ %frameRegs.3, %if.end1590 ], [ %frameRegs.3, %putOwnByIndex ], [ %frameRegs.3, %if.end1640 ], [ %frameRegs.3, %if.end1740 ], [ %frameRegs.3, %if.end1779 ], [ %frameRegs.3, %if.end1817 ], [ %frameRegs.3, %if.end1834 ], [ %frameRegs.3, %if.end1897 ], [ %frameRegs.3, %case_Jmp ], [ %frameRegs.3, %case_JmpLong ], [ %frameRegs.3, %if.end1927 ], [ %frameRegs.3, %if.end1943 ], [ %frameRegs.3, %if.end1960 ], [ %frameRegs.3, %if.end1976 ], [ %frameRegs.3, %if.end1991 ], [ %frameRegs.3, %if.end2005 ], [ %frameRegs.3, %if.then2014 ], [ %frameRegs.3, %if.end2045 ], [ %frameRegs.3, %if.then2060 ], [ %frameRegs.3, %if.end2091 ], [ %frameRegs.3, %case_AddN ], [ %frameRegs.3, %if.end2152 ], [ %frameRegs.3, %_ZN6hermes15truncateToInt32Ed.exit ], [ %frameRegs.3, %if.end2197 ], [ %frameRegs.3, %if.then2211 ], [ %frameRegs.3, %if.end2247 ], [ %frameRegs.3, %if.then2278 ], [ %frameRegs.3, %if.end2314 ], [ %frameRegs.3, %if.then2331 ], [ %frameRegs.3, %if.end2355 ], [ %frameRegs.3, %case_NewObject ], [ %frameRegs.3, %case_NewObjectWithParent ], [ %frameRegs.3, %if.end2439 ], [ %frameRegs.3, %if.end2462 ], [ %frameRegs.3, %if.end2486 ], [ %frameRegs.3, %if.end2511 ], [ %frameRegs.3, %if.end2535 ], [ %frameRegs.3, %if.end2596 ], [ %frameRegs.3, %case_SelectObject ], [ %frameRegs.3, %if.end2646 ], [ %frameRegs.3, %case_StrictEq ], [ %frameRegs.3, %case_StrictNeq ], [ %frameRegs.3, %case_Not ], [ %frameRegs.3, %if.then2734 ], [ %frameRegs.3, %if.end2763 ], [ %frameRegs.3, %case_TypeOf ], [ %frameRegs.3, %if.then2802 ], [ %frameRegs.3, %if.end2843 ], [ %frameRegs.3, %if.end2870 ], [ %frameRegs.3, %if.end2913 ], [ %frameRegs.3, %if.end2976 ], [ %frameRegs.3, %if.end3083 ], [ %frameRegs.3, %if.end3173 ], [ %frameRegs.3, %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_15StringPrimitiveEEENS0_6HandleIT_EEPS5_.exit3913 ], [ %frameRegs.3, %if.then3250 ], [ %frameRegs.3, %if.end3266 ], [ %frameRegs.3, %case_LoadConstUInt8 ], [ %frameRegs.3, %case_LoadConstInt ], [ %frameRegs.3, %case_LoadConstDouble ], [ %frameRegs.3, %case_LoadConstString ], [ %frameRegs.3, %case_LoadConstStringLongIndex ], [ %frameRegs.3, %case_LoadConstEmpty ], [ %frameRegs.3, %case_LoadConstUndefined ], [ %frameRegs.3, %case_LoadConstNull ], [ %frameRegs.3, %case_LoadConstTrue ], [ %frameRegs.3, %case_LoadConstFalse ], [ %frameRegs.3, %case_LoadConstZero ], [ %frameRegs.3, %if.end3420 ], [ %frameRegs.3, %case_SubN ], [ %frameRegs.3, %if.end3480 ], [ %frameRegs.3, %case_MulN ], [ %frameRegs.3, %if.end3541 ], [ %frameRegs.3, %case_DivN ], [ %frameRegs.3, %if.end3602 ], [ %frameRegs.3, %_ZN6hermes15truncateToInt32Ed.exit4038 ], [ %frameRegs.3, %if.end3666 ], [ %frameRegs.3, %_ZN6hermes15truncateToInt32Ed.exit4090 ], [ %frameRegs.3, %if.end3730 ], [ %frameRegs.3, %_ZN6hermes15truncateToInt32Ed.exit4141 ], [ %frameRegs.3, %if.end3794 ], [ %frameRegs.3, %_ZN6hermes15truncateToInt32Ed.exit4192 ], [ %frameRegs.3, %if.end3858 ], [ %frameRegs.3, %_ZN6hermes15truncateToInt32Ed.exit4244 ], [ %frameRegs.3, %if.end3925 ], [ %frameRegs.3, %_ZN6hermes15truncateToInt32Ed.exit4296 ], [ %frameRegs.3, %if.end3992 ], [ %frameRegs.3, %if.then4013 ], [ %frameRegs.3, %if.end4052 ], [ %frameRegs.3, %if.then4076 ], [ %frameRegs.3, %if.end4115 ], [ %frameRegs.3, %if.then4139 ], [ %frameRegs.3, %if.end4178 ], [ %frameRegs.3, %if.then4202 ], [ %frameRegs.3, %if.end4241 ], [ %frameRegs.3, %if.then4275 ], [ %frameRegs.3, %if.end4283 ], [ %frameRegs.3, %if.then4308 ], [ %frameRegs.3, %if.end4316 ], [ %frameRegs.3, %if.then4342 ], [ %frameRegs.3, %if.end4349 ], [ %frameRegs.3, %if.then4374 ], [ %frameRegs.3, %if.end4381 ], [ %frameRegs.3, %if.then4407 ], [ %frameRegs.3, %if.end4412 ], [ %frameRegs.3, %if.then4440 ], [ %frameRegs.3, %if.end4445 ], [ %frameRegs.3, %if.then4474 ], [ %frameRegs.3, %if.end4479 ], [ %frameRegs.3, %if.then4506 ], [ %frameRegs.3, %if.end4511 ], [ %frameRegs.3, %if.then4539 ], [ %frameRegs.3, %if.end4547 ], [ %frameRegs.3, %if.then4572 ], [ %frameRegs.3, %if.end4580 ], [ %frameRegs.3, %if.then4606 ], [ %frameRegs.3, %if.end4613 ], [ %frameRegs.3, %if.then4638 ], [ %frameRegs.3, %if.end4645 ], [ %frameRegs.3, %if.then4671 ], [ %frameRegs.3, %if.end4676 ], [ %frameRegs.3, %if.then4704 ], [ %frameRegs.3, %if.end4709 ], [ %frameRegs.3, %if.then4738 ], [ %frameRegs.3, %if.end4743 ], [ %frameRegs.3, %if.then4770 ], [ %frameRegs.3, %if.end4775 ], [ %frameRegs.3, %if.then4803 ], [ %frameRegs.3, %if.end4811 ], [ %frameRegs.3, %if.then4836 ], [ %frameRegs.3, %if.end4844 ], [ %frameRegs.3, %if.then4870 ], [ %frameRegs.3, %if.end4877 ], [ %frameRegs.3, %if.then4902 ], [ %frameRegs.3, %if.end4909 ], [ %frameRegs.3, %if.then4935 ], [ %frameRegs.3, %if.end4940 ], [ %frameRegs.3, %if.then4968 ], [ %frameRegs.3, %if.end4973 ], [ %frameRegs.3, %if.then5002 ], [ %frameRegs.3, %if.end5007 ], [ %frameRegs.3, %if.then5034 ], [ %frameRegs.3, %if.end5039 ], [ %frameRegs.3, %if.then5067 ], [ %frameRegs.3, %if.end5075 ], [ %frameRegs.3, %if.then5100 ], [ %frameRegs.3, %if.end5108 ], [ %frameRegs.3, %if.then5134 ], [ %frameRegs.3, %if.end5141 ], [ %frameRegs.3, %if.then5166 ], [ %frameRegs.3, %if.end5173 ], [ %frameRegs.3, %if.then5199 ], [ %frameRegs.3, %if.end5204 ], [ %frameRegs.3, %if.then5232 ], [ %frameRegs.3, %if.end5237 ], [ %frameRegs.3, %if.then5266 ], [ %frameRegs.3, %if.end5271 ], [ %frameRegs.3, %if.then5298 ], [ %frameRegs.3, %if.end5303 ], [ %frameRegs.3, %if.then5321 ], [ %frameRegs.3, %if.end5329 ], [ %frameRegs.3, %if.then5345 ], [ %frameRegs.3, %if.end5352 ], [ %frameRegs.3, %if.then5368 ], [ %frameRegs.3, %if.end5373 ], [ %frameRegs.3, %if.then5392 ], [ %frameRegs.3, %if.end5397 ], [ %frameRegs.3, %if.then5423 ], [ %frameRegs.3, %if.end5431 ], [ %frameRegs.3, %if.then5455 ], [ %frameRegs.3, %if.end5462 ], [ %frameRegs.3, %if.then5486 ], [ %frameRegs.3, %if.end5491 ], [ %frameRegs.3, %if.then5518 ], [ %frameRegs.3, %if.end5523 ], [ %frameRegs.3, %if.end5536 ], [ %frameRegs.3, %if.end5547 ], [ %frameRegs.3, %if.end5558 ], [ %frameRegs.3, %if.end5569 ], [ %frameRegs.3, %if.end5580 ], [ %frameRegs.3, %if.end5623 ] - %curCodeBlock.4.be = phi ptr [ %curCodeBlock.4, %case_Mov ], [ %curCodeBlock.4, %case_MovLong ], [ %curCodeBlock.4, %if.then66 ], [ %curCodeBlock.4, %if.end80 ], [ %curCodeBlock.4, %if.then98 ], [ %curCodeBlock.4, %if.end112 ], [ %curCodeBlock.4, %if.end160 ], [ %curCodeBlock.4, %if.end202 ], [ %curCodeBlock.4, %if.end217 ], [ %curCodeBlock.4, %if.end370 ], [ %curCodeBlock.4, %case_GetBuiltinClosure ], [ %curCodeBlock.4, %if.end447 ], [ %curCodeBlock.4, %if.end459 ], [ %curCodeBlock.4, %case_CompleteGenerator ], [ %curCodeBlock.4, %do.body473 ], [ %curCodeBlock.4, %do.body483 ], [ %curCodeBlock.4, %if.end506 ], [ %curCodeBlock.4, %if.end544 ], [ %153, %do.body578 ], [ %curCodeBlock.4, %case_Catch ], [ %curCodeBlock.4, %if.end628 ], [ %curCodeBlock.4, %do.end642 ], [ %curCodeBlock.4, %if.end658 ], [ %curCodeBlock.4, %case_ProfilePoint ], [ %curCodeBlock.4, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2622 ], [ %curCodeBlock.4, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2659 ], [ %curCodeBlock.4, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2696 ], [ %curCodeBlock.4, %if.end818 ], [ %curCodeBlock.4, %if.end854 ], [ %curCodeBlock.4, %for.end ], [ %curCodeBlock.4, %_ZN6hermes2vm11Environment6createERNS0_7RuntimeENS0_6HandleIS1_EEj.exit ], [ %curCodeBlock.4, %_ZN6hermes2vm11Environment6createERNS0_7RuntimeENS0_6HandleIS1_EEj.exit2821 ], [ %curCodeBlock.4, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE3setISt17integral_constantIbLb1EEEEvS2_RNS0_7HadesGCE.exit ], [ %curCodeBlock.4, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE3setISt17integral_constantIbLb1EEEEvS2_RNS0_7HadesGCE.exit2838 ], [ %curCodeBlock.4, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE9setNonPtrES2_RNS0_7HadesGCE.exit ], [ %curCodeBlock.4, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE9setNonPtrES2_RNS0_7HadesGCE.exit2862 ], [ %curCodeBlock.4, %case_LoadFromEnvironment ], [ %curCodeBlock.4, %case_LoadFromEnvironmentL ], [ %curCodeBlock.4, %case_GetGlobalObject ], [ %curCodeBlock.4, %case_GetNewTarget ], [ %curCodeBlock.4, %if.end1079 ], [ %curCodeBlock.4, %if.end1090 ], [ %curCodeBlock.4, %_ZNK6hermes2vm13HermesValue329unboxToHVERNS0_11PointerBaseE.exit2933 ], [ %curCodeBlock.4, %_ZNK6hermes2vm13HermesValue329unboxToHVERNS0_11PointerBaseE.exit3011 ], [ %curCodeBlock.4, %_ZN6hermes2vm8JSObject23getNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEES4_PS1_RNS0_11PointerBaseEj.exit ], [ %curCodeBlock.4, %if.end1284 ], [ %curCodeBlock.4, %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE1EEEvPS1_RNS0_7RuntimeEjS4_.exit ], [ %curCodeBlock.4, %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEEvPS1_RNS0_7RuntimeEjS4_.exit ], [ %curCodeBlock.4, %if.end1462 ], [ %curCodeBlock.4, %if.end1514 ], [ %curCodeBlock.4, %if.end1590 ], [ %curCodeBlock.4, %putOwnByIndex ], [ %curCodeBlock.4, %if.end1640 ], [ %curCodeBlock.4, %if.end1740 ], [ %curCodeBlock.4, %if.end1779 ], [ %curCodeBlock.4, %if.end1817 ], [ %curCodeBlock.4, %if.end1834 ], [ %curCodeBlock.4, %if.end1897 ], [ %curCodeBlock.4, %case_Jmp ], [ %curCodeBlock.4, %case_JmpLong ], [ %curCodeBlock.4, %if.end1927 ], [ %curCodeBlock.4, %if.end1943 ], [ %curCodeBlock.4, %if.end1960 ], [ %curCodeBlock.4, %if.end1976 ], [ %curCodeBlock.4, %if.end1991 ], [ %curCodeBlock.4, %if.end2005 ], [ %curCodeBlock.4, %if.then2014 ], [ %curCodeBlock.4, %if.end2045 ], [ %curCodeBlock.4, %if.then2060 ], [ %curCodeBlock.4, %if.end2091 ], [ %curCodeBlock.4, %case_AddN ], [ %curCodeBlock.4, %if.end2152 ], [ %curCodeBlock.4, %_ZN6hermes15truncateToInt32Ed.exit ], [ %curCodeBlock.4, %if.end2197 ], [ %curCodeBlock.4, %if.then2211 ], [ %curCodeBlock.4, %if.end2247 ], [ %curCodeBlock.4, %if.then2278 ], [ %curCodeBlock.4, %if.end2314 ], [ %curCodeBlock.4, %if.then2331 ], [ %curCodeBlock.4, %if.end2355 ], [ %curCodeBlock.4, %case_NewObject ], [ %curCodeBlock.4, %case_NewObjectWithParent ], [ %curCodeBlock.4, %if.end2439 ], [ %curCodeBlock.4, %if.end2462 ], [ %curCodeBlock.4, %if.end2486 ], [ %curCodeBlock.4, %if.end2511 ], [ %curCodeBlock.4, %if.end2535 ], [ %curCodeBlock.4, %if.end2596 ], [ %curCodeBlock.4, %case_SelectObject ], [ %curCodeBlock.4, %if.end2646 ], [ %curCodeBlock.4, %case_StrictEq ], [ %curCodeBlock.4, %case_StrictNeq ], [ %curCodeBlock.4, %case_Not ], [ %curCodeBlock.4, %if.then2734 ], [ %curCodeBlock.4, %if.end2763 ], [ %curCodeBlock.4, %case_TypeOf ], [ %curCodeBlock.4, %if.then2802 ], [ %curCodeBlock.4, %if.end2843 ], [ %curCodeBlock.4, %if.end2870 ], [ %curCodeBlock.4, %if.end2913 ], [ %curCodeBlock.4, %if.end2976 ], [ %curCodeBlock.4, %if.end3083 ], [ %curCodeBlock.4, %if.end3173 ], [ %curCodeBlock.4, %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_15StringPrimitiveEEENS0_6HandleIT_EEPS5_.exit3913 ], [ %curCodeBlock.4, %if.then3250 ], [ %curCodeBlock.4, %if.end3266 ], [ %curCodeBlock.4, %case_LoadConstUInt8 ], [ %curCodeBlock.4, %case_LoadConstInt ], [ %curCodeBlock.4, %case_LoadConstDouble ], [ %curCodeBlock.4, %case_LoadConstString ], [ %curCodeBlock.4, %case_LoadConstStringLongIndex ], [ %curCodeBlock.4, %case_LoadConstEmpty ], [ %curCodeBlock.4, %case_LoadConstUndefined ], [ %curCodeBlock.4, %case_LoadConstNull ], [ %curCodeBlock.4, %case_LoadConstTrue ], [ %curCodeBlock.4, %case_LoadConstFalse ], [ %curCodeBlock.4, %case_LoadConstZero ], [ %curCodeBlock.4, %if.end3420 ], [ %curCodeBlock.4, %case_SubN ], [ %curCodeBlock.4, %if.end3480 ], [ %curCodeBlock.4, %case_MulN ], [ %curCodeBlock.4, %if.end3541 ], [ %curCodeBlock.4, %case_DivN ], [ %curCodeBlock.4, %if.end3602 ], [ %curCodeBlock.4, %_ZN6hermes15truncateToInt32Ed.exit4038 ], [ %curCodeBlock.4, %if.end3666 ], [ %curCodeBlock.4, %_ZN6hermes15truncateToInt32Ed.exit4090 ], [ %curCodeBlock.4, %if.end3730 ], [ %curCodeBlock.4, %_ZN6hermes15truncateToInt32Ed.exit4141 ], [ %curCodeBlock.4, %if.end3794 ], [ %curCodeBlock.4, %_ZN6hermes15truncateToInt32Ed.exit4192 ], [ %curCodeBlock.4, %if.end3858 ], [ %curCodeBlock.4, %_ZN6hermes15truncateToInt32Ed.exit4244 ], [ %curCodeBlock.4, %if.end3925 ], [ %curCodeBlock.4, %_ZN6hermes15truncateToInt32Ed.exit4296 ], [ %curCodeBlock.4, %if.end3992 ], [ %curCodeBlock.4, %if.then4013 ], [ %curCodeBlock.4, %if.end4052 ], [ %curCodeBlock.4, %if.then4076 ], [ %curCodeBlock.4, %if.end4115 ], [ %curCodeBlock.4, %if.then4139 ], [ %curCodeBlock.4, %if.end4178 ], [ %curCodeBlock.4, %if.then4202 ], [ %curCodeBlock.4, %if.end4241 ], [ %curCodeBlock.4, %if.then4275 ], [ %curCodeBlock.4, %if.end4283 ], [ %curCodeBlock.4, %if.then4308 ], [ %curCodeBlock.4, %if.end4316 ], [ %curCodeBlock.4, %if.then4342 ], [ %curCodeBlock.4, %if.end4349 ], [ %curCodeBlock.4, %if.then4374 ], [ %curCodeBlock.4, %if.end4381 ], [ %curCodeBlock.4, %if.then4407 ], [ %curCodeBlock.4, %if.end4412 ], [ %curCodeBlock.4, %if.then4440 ], [ %curCodeBlock.4, %if.end4445 ], [ %curCodeBlock.4, %if.then4474 ], [ %curCodeBlock.4, %if.end4479 ], [ %curCodeBlock.4, %if.then4506 ], [ %curCodeBlock.4, %if.end4511 ], [ %curCodeBlock.4, %if.then4539 ], [ %curCodeBlock.4, %if.end4547 ], [ %curCodeBlock.4, %if.then4572 ], [ %curCodeBlock.4, %if.end4580 ], [ %curCodeBlock.4, %if.then4606 ], [ %curCodeBlock.4, %if.end4613 ], [ %curCodeBlock.4, %if.then4638 ], [ %curCodeBlock.4, %if.end4645 ], [ %curCodeBlock.4, %if.then4671 ], [ %curCodeBlock.4, %if.end4676 ], [ %curCodeBlock.4, %if.then4704 ], [ %curCodeBlock.4, %if.end4709 ], [ %curCodeBlock.4, %if.then4738 ], [ %curCodeBlock.4, %if.end4743 ], [ %curCodeBlock.4, %if.then4770 ], [ %curCodeBlock.4, %if.end4775 ], [ %curCodeBlock.4, %if.then4803 ], [ %curCodeBlock.4, %if.end4811 ], [ %curCodeBlock.4, %if.then4836 ], [ %curCodeBlock.4, %if.end4844 ], [ %curCodeBlock.4, %if.then4870 ], [ %curCodeBlock.4, %if.end4877 ], [ %curCodeBlock.4, %if.then4902 ], [ %curCodeBlock.4, %if.end4909 ], [ %curCodeBlock.4, %if.then4935 ], [ %curCodeBlock.4, %if.end4940 ], [ %curCodeBlock.4, %if.then4968 ], [ %curCodeBlock.4, %if.end4973 ], [ %curCodeBlock.4, %if.then5002 ], [ %curCodeBlock.4, %if.end5007 ], [ %curCodeBlock.4, %if.then5034 ], [ %curCodeBlock.4, %if.end5039 ], [ %curCodeBlock.4, %if.then5067 ], [ %curCodeBlock.4, %if.end5075 ], [ %curCodeBlock.4, %if.then5100 ], [ %curCodeBlock.4, %if.end5108 ], [ %curCodeBlock.4, %if.then5134 ], [ %curCodeBlock.4, %if.end5141 ], [ %curCodeBlock.4, %if.then5166 ], [ %curCodeBlock.4, %if.end5173 ], [ %curCodeBlock.4, %if.then5199 ], [ %curCodeBlock.4, %if.end5204 ], [ %curCodeBlock.4, %if.then5232 ], [ %curCodeBlock.4, %if.end5237 ], [ %curCodeBlock.4, %if.then5266 ], [ %curCodeBlock.4, %if.end5271 ], [ %curCodeBlock.4, %if.then5298 ], [ %curCodeBlock.4, %if.end5303 ], [ %curCodeBlock.4, %if.then5321 ], [ %curCodeBlock.4, %if.end5329 ], [ %curCodeBlock.4, %if.then5345 ], [ %curCodeBlock.4, %if.end5352 ], [ %curCodeBlock.4, %if.then5368 ], [ %curCodeBlock.4, %if.end5373 ], [ %curCodeBlock.4, %if.then5392 ], [ %curCodeBlock.4, %if.end5397 ], [ %curCodeBlock.4, %if.then5423 ], [ %curCodeBlock.4, %if.end5431 ], [ %curCodeBlock.4, %if.then5455 ], [ %curCodeBlock.4, %if.end5462 ], [ %curCodeBlock.4, %if.then5486 ], [ %curCodeBlock.4, %if.end5491 ], [ %curCodeBlock.4, %if.then5518 ], [ %curCodeBlock.4, %if.end5523 ], [ %curCodeBlock.4, %if.end5536 ], [ %curCodeBlock.4, %if.end5547 ], [ %curCodeBlock.4, %if.end5558 ], [ %curCodeBlock.4, %if.end5569 ], [ %curCodeBlock.4, %if.end5580 ], [ %curCodeBlock.4, %if.end5623 ] +indirectgoto.backedge: ; preds = %case_Mov, %case_MovLong, %if.then66, %if.end80, %if.then98, %if.end112, %if.end160, %if.end202, %if.end217, %if.end370, %case_GetBuiltinClosure, %if.end447, %if.end459, %case_CompleteGenerator, %do.body473, %do.body483, %if.end506, %if.end544, %do.body578, %case_Catch, %if.end628, %do.end642, %if.end658, %case_ProfilePoint, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2622, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2659, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2696, %if.end818, %if.end854, %for.end, %_ZN6hermes2vm11Environment6createERNS0_7RuntimeENS0_6HandleIS1_EEj.exit, %_ZN6hermes2vm11Environment6createERNS0_7RuntimeENS0_6HandleIS1_EEj.exit2821, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE3setISt17integral_constantIbLb1EEEEvS2_RNS0_7HadesGCE.exit, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE3setISt17integral_constantIbLb1EEEEvS2_RNS0_7HadesGCE.exit2838, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE9setNonPtrES2_RNS0_7HadesGCE.exit, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE9setNonPtrES2_RNS0_7HadesGCE.exit2862, %case_LoadFromEnvironment, %case_LoadFromEnvironmentL, %case_GetGlobalObject, %case_GetNewTarget, %if.end1079, %if.end1090, %_ZNK6hermes2vm13HermesValue329unboxToHVERNS0_11PointerBaseE.exit2933, %_ZNK6hermes2vm13HermesValue329unboxToHVERNS0_11PointerBaseE.exit3011, %_ZN6hermes2vm8JSObject23getNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEES4_PS1_RNS0_11PointerBaseEj.exit, %if.end1284, %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE1EEEvPS1_RNS0_7RuntimeEjS4_.exit, %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEEvPS1_RNS0_7RuntimeEjS4_.exit, %if.end1462, %if.end1514, %if.end1590, %putOwnByIndex, %if.end1640, %if.end1740, %if.end1779, %if.end1817, %if.end1834, %if.end1897, %case_Jmp, %case_JmpLong, %if.end1927, %if.end1943, %if.end1960, %if.end1976, %if.end1991, %if.end2005, %if.then2014, %if.end2045, %if.then2060, %if.end2091, %case_AddN, %if.end2152, %_ZN6hermes15truncateToInt32Ed.exit, %if.end2197, %if.then2211, %if.end2247, %if.then2278, %if.end2314, %if.then2331, %if.end2355, %case_NewObject, %case_NewObjectWithParent, %if.end2439, %if.end2462, %if.end2486, %if.end2511, %if.end2535, %if.end2596, %case_SelectObject, %if.end2646, %case_StrictEq, %case_StrictNeq, %case_Not, %if.then2734, %if.end2763, %case_TypeOf, %if.then2802, %if.end2843, %if.end2870, %if.end2913, %if.end2976, %if.end3083, %if.end3173, %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_15StringPrimitiveEEENS0_6HandleIT_EEPS5_.exit3911, %if.then3250, %if.end3266, %case_LoadConstUInt8, %case_LoadConstInt, %case_LoadConstDouble, %case_LoadConstString, %case_LoadConstStringLongIndex, %case_LoadConstEmpty, %case_LoadConstUndefined, %case_LoadConstNull, %case_LoadConstTrue, %case_LoadConstFalse, %case_LoadConstZero, %if.end3420, %case_SubN, %if.end3480, %case_MulN, %if.end3541, %case_DivN, %if.end3602, %_ZN6hermes15truncateToInt32Ed.exit4036, %if.end3666, %_ZN6hermes15truncateToInt32Ed.exit4088, %if.end3730, %_ZN6hermes15truncateToInt32Ed.exit4139, %if.end3794, %_ZN6hermes15truncateToInt32Ed.exit4190, %if.end3858, %_ZN6hermes15truncateToInt32Ed.exit4242, %if.end3925, %_ZN6hermes15truncateToInt32Ed.exit4294, %if.end3992, %if.then4013, %if.end4052, %if.then4076, %if.end4115, %if.then4139, %if.end4178, %if.then4202, %if.end4241, %if.then4275, %if.end4283, %if.then4308, %if.end4316, %if.then4342, %if.end4349, %if.then4374, %if.end4381, %if.then4407, %if.end4412, %if.then4440, %if.end4445, %if.then4474, %if.end4479, %if.then4506, %if.end4511, %if.then4539, %if.end4547, %if.then4572, %if.end4580, %if.then4606, %if.end4613, %if.then4638, %if.end4645, %if.then4671, %if.end4676, %if.then4704, %if.end4709, %if.then4738, %if.end4743, %if.then4770, %if.end4775, %if.then4803, %if.end4811, %if.then4836, %if.end4844, %if.then4870, %if.end4877, %if.then4902, %if.end4909, %if.then4935, %if.end4940, %if.then4968, %if.end4973, %if.then5002, %if.end5007, %if.then5034, %if.end5039, %if.then5067, %if.end5075, %if.then5100, %if.end5108, %if.then5134, %if.end5141, %if.then5166, %if.end5173, %if.then5199, %if.end5204, %if.then5232, %if.end5237, %if.then5266, %if.end5271, %if.then5298, %if.end5303, %if.then5321, %if.end5329, %if.then5345, %if.end5352, %if.then5368, %if.end5373, %if.then5392, %if.end5397, %if.then5423, %if.end5431, %if.then5455, %if.end5462, %if.then5486, %if.end5491, %if.then5518, %if.end5523, %if.end5536, %if.end5547, %if.end5558, %if.end5569, %if.end5580, %if.end5623 + %add.ptr.sink.sink.be = phi ptr [ %add.ptr, %case_Mov ], [ %add.ptr56, %case_MovLong ], [ %add.ptr76, %if.then66 ], [ %add.ptr88, %if.end80 ], [ %add.ptr108, %if.then98 ], [ %add.ptr120, %if.end112 ], [ %add.ptr161, %if.end160 ], [ %add.ptr203, %if.end202 ], [ %add.ptr200, %if.end217 ], [ %nextIP.1, %if.end370 ], [ %add.ptr436, %case_GetBuiltinClosure ], [ %add.ptr448, %if.end447 ], [ %add.ptr460, %if.end459 ], [ %add.ptr469, %case_CompleteGenerator ], [ %add.ptr479, %do.body473 ], [ %add.ptr490, %do.body483 ], [ %nextIP.2, %if.end506 ], [ %add.ptr545, %if.end544 ], [ %add.ptr.i, %do.body578 ], [ %add.ptr604, %case_Catch ], [ %add.ptr636, %if.end628 ], [ %add.ptr643, %do.end642 ], [ %add.ptr659, %if.end658 ], [ %add.ptr663, %case_ProfilePoint ], [ %add.ptr671, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2622 ], [ %add.ptr713, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2659 ], [ %add.ptr756, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2696 ], [ %add.ptr828, %if.end818 ], [ %add.ptr864, %if.end854 ], [ %add.ptr884, %for.end ], [ %add.ptr906, %_ZN6hermes2vm11Environment6createERNS0_7RuntimeENS0_6HandleIS1_EEj.exit ], [ %add.ptr939, %_ZN6hermes2vm11Environment6createERNS0_7RuntimeENS0_6HandleIS1_EEj.exit2821 ], [ %add.ptr958, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE3setISt17integral_constantIbLb1EEEEvS2_RNS0_7HadesGCE.exit ], [ %add.ptr977, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE3setISt17integral_constantIbLb1EEEEvS2_RNS0_7HadesGCE.exit2838 ], [ %add.ptr996, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE9setNonPtrES2_RNS0_7HadesGCE.exit ], [ %add.ptr1015, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE9setNonPtrES2_RNS0_7HadesGCE.exit2862 ], [ %add.ptr1032, %case_LoadFromEnvironment ], [ %add.ptr1049, %case_LoadFromEnvironmentL ], [ %add.ptr1058, %case_GetGlobalObject ], [ %add.ptr1069, %case_GetNewTarget ], [ %add.ptr1080, %if.end1079 ], [ %add.ptr1091, %if.end1090 ], [ %add.ptr1107, %_ZNK6hermes2vm13HermesValue329unboxToHVERNS0_11PointerBaseE.exit2933 ], [ %add.ptr1107, %_ZNK6hermes2vm13HermesValue329unboxToHVERNS0_11PointerBaseE.exit3011 ], [ %add.ptr1107, %_ZN6hermes2vm8JSObject23getNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEES4_PS1_RNS0_11PointerBaseEj.exit ], [ %add.ptr1107, %if.end1284 ], [ %add.ptr1305, %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE1EEEvPS1_RNS0_7RuntimeEjS4_.exit ], [ %add.ptr1305, %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEEvPS1_RNS0_7RuntimeEjS4_.exit ], [ %add.ptr1305, %if.end1462 ], [ %add.ptr1523, %if.end1514 ], [ %add.ptr1591, %if.end1590 ], [ %nextIP.8, %putOwnByIndex ], [ %add.ptr1641, %if.end1640 ], [ %add.ptr1741, %if.end1740 ], [ %ip.11, %if.end1779 ], [ %ip.12, %if.end1817 ], [ %add.ptr1840, %if.end1834 ], [ %ip.13, %if.end1897 ], [ %add.ptr1904, %case_Jmp ], [ %add.ptr1910, %case_JmpLong ], [ %add.ptr1926, %if.end1927 ], [ %add.ptr1942, %if.end1943 ], [ %add.ptr1959, %if.end1960 ], [ %add.ptr1975, %if.end1976 ], [ %add.ptr1990, %if.end1991 ], [ %add.ptr2004, %if.end2005 ], [ %add.ptr2027, %if.then2014 ], [ %add.ptr2051, %if.end2045 ], [ %add.ptr2073, %if.then2060 ], [ %add.ptr2097, %if.end2091 ], [ %add.ptr2129, %case_AddN ], [ %add.ptr2158, %if.end2152 ], [ %add.ptr2180, %_ZN6hermes15truncateToInt32Ed.exit ], [ %add.ptr2203, %if.end2197 ], [ %add.ptr2222, %if.then2211 ], [ %add.ptr2256, %if.end2247 ], [ %add.ptr2287, %if.then2278 ], [ %add.ptr2323, %if.end2314 ], [ %add.ptr2332, %if.then2331 ], [ %add.ptr2364, %if.end2355 ], [ %add.ptr2379, %case_NewObject ], [ %add.ptr2423, %case_NewObjectWithParent ], [ %add.ptr2448, %if.end2439 ], [ %add.ptr2471, %if.end2462 ], [ %add.ptr2495, %if.end2486 ], [ %add.ptr2520, %if.end2511 ], [ %add.ptr2544, %if.end2535 ], [ %add.ptr2605, %if.end2596 ], [ %add.ptr2626, %case_SelectObject ], [ %add.ptr2662, %if.end2646 ], [ %add.ptr2684, %case_StrictEq ], [ %add.ptr2707, %case_StrictNeq ], [ %add.ptr2725, %case_Not ], [ %add.ptr2746, %if.then2734 ], [ %add.ptr2769, %if.end2763 ], [ %add.ptr2787, %case_TypeOf ], [ %add.ptr2819, %if.then2802 ], [ %add.ptr2849, %if.end2843 ], [ %add.ptr2879, %if.end2870 ], [ %add.ptr2922, %if.end2913 ], [ %nextIP.9, %if.end2976 ], [ %add.ptr2984, %if.end3083 ], [ %add.ptr3174, %if.end3173 ], [ %add.ptr3224, %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_15StringPrimitiveEEENS0_6HandleIT_EEPS5_.exit3911 ], [ %add.ptr3261, %if.then3250 ], [ %add.ptr3269, %if.end3266 ], [ %add.ptr3281, %case_LoadConstUInt8 ], [ %add.ptr3293, %case_LoadConstInt ], [ %add.ptr3305, %case_LoadConstDouble ], [ %add.ptr3321, %case_LoadConstString ], [ %add.ptr3336, %case_LoadConstStringLongIndex ], [ %add.ptr3347, %case_LoadConstEmpty ], [ %add.ptr3358, %case_LoadConstUndefined ], [ %add.ptr3369, %case_LoadConstNull ], [ %add.ptr3380, %case_LoadConstTrue ], [ %add.ptr3391, %case_LoadConstFalse ], [ %add.ptr3402, %case_LoadConstZero ], [ %add.ptr3410, %if.end3420 ], [ %add.ptr3457, %case_SubN ], [ %add.ptr3486, %if.end3480 ], [ %add.ptr3518, %case_MulN ], [ %add.ptr3547, %if.end3541 ], [ %add.ptr3579, %case_DivN ], [ %add.ptr3608, %if.end3602 ], [ %add.ptr3642, %_ZN6hermes15truncateToInt32Ed.exit4036 ], [ %add.ptr3672, %if.end3666 ], [ %add.ptr3706, %_ZN6hermes15truncateToInt32Ed.exit4088 ], [ %add.ptr3736, %if.end3730 ], [ %add.ptr3770, %_ZN6hermes15truncateToInt32Ed.exit4139 ], [ %add.ptr3800, %if.end3794 ], [ %add.ptr3834, %_ZN6hermes15truncateToInt32Ed.exit4190 ], [ %add.ptr3864, %if.end3858 ], [ %add.ptr3901, %_ZN6hermes15truncateToInt32Ed.exit4242 ], [ %add.ptr3931, %if.end3925 ], [ %add.ptr3968, %_ZN6hermes15truncateToInt32Ed.exit4294 ], [ %add.ptr3998, %if.end3992 ], [ %add.ptr4030, %if.then4013 ], [ %add.ptr4061, %if.end4052 ], [ %add.ptr4093, %if.then4076 ], [ %add.ptr4124, %if.end4115 ], [ %add.ptr4156, %if.then4139 ], [ %add.ptr4187, %if.end4178 ], [ %add.ptr4219, %if.then4202 ], [ %add.ptr4250, %if.end4241 ], [ %add.ptr4279, %if.then4275 ], [ %add.ptr4284, %if.end4283 ], [ %add.ptr4312, %if.then4308 ], [ %add.ptr4317, %if.end4316 ], [ %add.ptr4345, %if.then4342 ], [ %add.ptr4350, %if.end4349 ], [ %add.ptr4377, %if.then4374 ], [ %add.ptr4382, %if.end4381 ], [ %add.ptr4408, %if.then4407 ], [ %add.ptr4416, %if.end4412 ], [ %add.ptr4441, %if.then4440 ], [ %add.ptr4449, %if.end4445 ], [ %add.ptr4475, %if.then4474 ], [ %add.ptr4482, %if.end4479 ], [ %add.ptr4507, %if.then4506 ], [ %add.ptr4514, %if.end4511 ], [ %add.ptr4543, %if.then4539 ], [ %add.ptr4548, %if.end4547 ], [ %add.ptr4576, %if.then4572 ], [ %add.ptr4581, %if.end4580 ], [ %add.ptr4609, %if.then4606 ], [ %add.ptr4614, %if.end4613 ], [ %add.ptr4641, %if.then4638 ], [ %add.ptr4646, %if.end4645 ], [ %add.ptr4672, %if.then4671 ], [ %add.ptr4680, %if.end4676 ], [ %add.ptr4705, %if.then4704 ], [ %add.ptr4713, %if.end4709 ], [ %add.ptr4739, %if.then4738 ], [ %add.ptr4746, %if.end4743 ], [ %add.ptr4771, %if.then4770 ], [ %add.ptr4778, %if.end4775 ], [ %add.ptr4807, %if.then4803 ], [ %add.ptr4812, %if.end4811 ], [ %add.ptr4840, %if.then4836 ], [ %add.ptr4845, %if.end4844 ], [ %add.ptr4873, %if.then4870 ], [ %add.ptr4878, %if.end4877 ], [ %add.ptr4905, %if.then4902 ], [ %add.ptr4910, %if.end4909 ], [ %add.ptr4936, %if.then4935 ], [ %add.ptr4944, %if.end4940 ], [ %add.ptr4969, %if.then4968 ], [ %add.ptr4977, %if.end4973 ], [ %add.ptr5003, %if.then5002 ], [ %add.ptr5010, %if.end5007 ], [ %add.ptr5035, %if.then5034 ], [ %add.ptr5042, %if.end5039 ], [ %add.ptr5071, %if.then5067 ], [ %add.ptr5076, %if.end5075 ], [ %add.ptr5104, %if.then5100 ], [ %add.ptr5109, %if.end5108 ], [ %add.ptr5137, %if.then5134 ], [ %add.ptr5142, %if.end5141 ], [ %add.ptr5169, %if.then5166 ], [ %add.ptr5174, %if.end5173 ], [ %add.ptr5200, %if.then5199 ], [ %add.ptr5208, %if.end5204 ], [ %add.ptr5233, %if.then5232 ], [ %add.ptr5241, %if.end5237 ], [ %add.ptr5267, %if.then5266 ], [ %add.ptr5274, %if.end5271 ], [ %add.ptr5299, %if.then5298 ], [ %add.ptr5306, %if.end5303 ], [ %add.ptr5325, %if.then5321 ], [ %add.ptr5330, %if.end5329 ], [ %add.ptr5348, %if.then5345 ], [ %add.ptr5353, %if.end5352 ], [ %add.ptr5369, %if.then5368 ], [ %add.ptr5377, %if.end5373 ], [ %add.ptr5393, %if.then5392 ], [ %add.ptr5400, %if.end5397 ], [ %add.ptr5427, %if.then5423 ], [ %add.ptr5432, %if.end5431 ], [ %add.ptr5458, %if.then5455 ], [ %add.ptr5463, %if.end5462 ], [ %add.ptr5487, %if.then5486 ], [ %add.ptr5495, %if.end5491 ], [ %add.ptr5519, %if.then5518 ], [ %add.ptr5526, %if.end5523 ], [ %add.ptr5537, %if.end5536 ], [ %add.ptr5548, %if.end5547 ], [ %add.ptr5559, %if.end5558 ], [ %add.ptr5570, %if.end5569 ], [ %add.ptr5581, %if.end5580 ], [ %add.ptr5624, %if.end5623 ] + %defaultPropOpFlags.sroa.0.1.be = phi i8 [ %defaultPropOpFlags.sroa.0.1, %case_Mov ], [ %defaultPropOpFlags.sroa.0.1, %case_MovLong ], [ %defaultPropOpFlags.sroa.0.1, %if.then66 ], [ %defaultPropOpFlags.sroa.0.1, %if.end80 ], [ %defaultPropOpFlags.sroa.0.1, %if.then98 ], [ %defaultPropOpFlags.sroa.0.1, %if.end112 ], [ %defaultPropOpFlags.sroa.0.1, %if.end160 ], [ %defaultPropOpFlags.sroa.0.1, %if.end202 ], [ %defaultPropOpFlags.sroa.0.1, %if.end217 ], [ %defaultPropOpFlags.sroa.0.1, %if.end370 ], [ %defaultPropOpFlags.sroa.0.1, %case_GetBuiltinClosure ], [ %defaultPropOpFlags.sroa.0.1, %if.end447 ], [ %defaultPropOpFlags.sroa.0.1, %if.end459 ], [ %defaultPropOpFlags.sroa.0.1, %case_CompleteGenerator ], [ %defaultPropOpFlags.sroa.0.1, %do.body473 ], [ %defaultPropOpFlags.sroa.0.1, %do.body483 ], [ %defaultPropOpFlags.sroa.0.1, %if.end506 ], [ %defaultPropOpFlags.sroa.0.1, %if.end544 ], [ %.lobit, %do.body578 ], [ %defaultPropOpFlags.sroa.0.1, %case_Catch ], [ %defaultPropOpFlags.sroa.0.1, %if.end628 ], [ %defaultPropOpFlags.sroa.0.1, %do.end642 ], [ %defaultPropOpFlags.sroa.0.1, %if.end658 ], [ %defaultPropOpFlags.sroa.0.1, %case_ProfilePoint ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2622 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2659 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2696 ], [ %defaultPropOpFlags.sroa.0.1, %if.end818 ], [ %defaultPropOpFlags.sroa.0.1, %if.end854 ], [ %defaultPropOpFlags.sroa.0.1, %for.end ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes2vm11Environment6createERNS0_7RuntimeENS0_6HandleIS1_EEj.exit ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes2vm11Environment6createERNS0_7RuntimeENS0_6HandleIS1_EEj.exit2821 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE3setISt17integral_constantIbLb1EEEEvS2_RNS0_7HadesGCE.exit ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE3setISt17integral_constantIbLb1EEEEvS2_RNS0_7HadesGCE.exit2838 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE9setNonPtrES2_RNS0_7HadesGCE.exit ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE9setNonPtrES2_RNS0_7HadesGCE.exit2862 ], [ %defaultPropOpFlags.sroa.0.1, %case_LoadFromEnvironment ], [ %defaultPropOpFlags.sroa.0.1, %case_LoadFromEnvironmentL ], [ %defaultPropOpFlags.sroa.0.1, %case_GetGlobalObject ], [ %defaultPropOpFlags.sroa.0.1, %case_GetNewTarget ], [ %defaultPropOpFlags.sroa.0.1, %if.end1079 ], [ %defaultPropOpFlags.sroa.0.1, %if.end1090 ], [ %defaultPropOpFlags.sroa.0.1, %_ZNK6hermes2vm13HermesValue329unboxToHVERNS0_11PointerBaseE.exit2933 ], [ %defaultPropOpFlags.sroa.0.1, %_ZNK6hermes2vm13HermesValue329unboxToHVERNS0_11PointerBaseE.exit3011 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes2vm8JSObject23getNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEES4_PS1_RNS0_11PointerBaseEj.exit ], [ %defaultPropOpFlags.sroa.0.1, %if.end1284 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE1EEEvPS1_RNS0_7RuntimeEjS4_.exit ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEEvPS1_RNS0_7RuntimeEjS4_.exit ], [ %defaultPropOpFlags.sroa.0.1, %if.end1462 ], [ %defaultPropOpFlags.sroa.0.1, %if.end1514 ], [ %defaultPropOpFlags.sroa.0.1, %if.end1590 ], [ %defaultPropOpFlags.sroa.0.1, %putOwnByIndex ], [ %defaultPropOpFlags.sroa.0.1, %if.end1640 ], [ %defaultPropOpFlags.sroa.0.1, %if.end1740 ], [ %defaultPropOpFlags.sroa.0.1, %if.end1779 ], [ %defaultPropOpFlags.sroa.0.1, %if.end1817 ], [ %defaultPropOpFlags.sroa.0.1, %if.end1834 ], [ %defaultPropOpFlags.sroa.0.1, %if.end1897 ], [ %defaultPropOpFlags.sroa.0.1, %case_Jmp ], [ %defaultPropOpFlags.sroa.0.1, %case_JmpLong ], [ %defaultPropOpFlags.sroa.0.1, %if.end1927 ], [ %defaultPropOpFlags.sroa.0.1, %if.end1943 ], [ %defaultPropOpFlags.sroa.0.1, %if.end1960 ], [ %defaultPropOpFlags.sroa.0.1, %if.end1976 ], [ %defaultPropOpFlags.sroa.0.1, %if.end1991 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2005 ], [ %defaultPropOpFlags.sroa.0.1, %if.then2014 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2045 ], [ %defaultPropOpFlags.sroa.0.1, %if.then2060 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2091 ], [ %defaultPropOpFlags.sroa.0.1, %case_AddN ], [ %defaultPropOpFlags.sroa.0.1, %if.end2152 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes15truncateToInt32Ed.exit ], [ %defaultPropOpFlags.sroa.0.1, %if.end2197 ], [ %defaultPropOpFlags.sroa.0.1, %if.then2211 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2247 ], [ %defaultPropOpFlags.sroa.0.1, %if.then2278 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2314 ], [ %defaultPropOpFlags.sroa.0.1, %if.then2331 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2355 ], [ %defaultPropOpFlags.sroa.0.1, %case_NewObject ], [ %defaultPropOpFlags.sroa.0.1, %case_NewObjectWithParent ], [ %defaultPropOpFlags.sroa.0.1, %if.end2439 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2462 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2486 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2511 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2535 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2596 ], [ %defaultPropOpFlags.sroa.0.1, %case_SelectObject ], [ %defaultPropOpFlags.sroa.0.1, %if.end2646 ], [ %defaultPropOpFlags.sroa.0.1, %case_StrictEq ], [ %defaultPropOpFlags.sroa.0.1, %case_StrictNeq ], [ %defaultPropOpFlags.sroa.0.1, %case_Not ], [ %defaultPropOpFlags.sroa.0.1, %if.then2734 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2763 ], [ %defaultPropOpFlags.sroa.0.1, %case_TypeOf ], [ %defaultPropOpFlags.sroa.0.1, %if.then2802 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2843 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2870 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2913 ], [ %defaultPropOpFlags.sroa.0.1, %if.end2976 ], [ %defaultPropOpFlags.sroa.0.1, %if.end3083 ], [ %defaultPropOpFlags.sroa.0.1, %if.end3173 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_15StringPrimitiveEEENS0_6HandleIT_EEPS5_.exit3911 ], [ %defaultPropOpFlags.sroa.0.1, %if.then3250 ], [ %defaultPropOpFlags.sroa.0.1, %if.end3266 ], [ %defaultPropOpFlags.sroa.0.1, %case_LoadConstUInt8 ], [ %defaultPropOpFlags.sroa.0.1, %case_LoadConstInt ], [ %defaultPropOpFlags.sroa.0.1, %case_LoadConstDouble ], [ %defaultPropOpFlags.sroa.0.1, %case_LoadConstString ], [ %defaultPropOpFlags.sroa.0.1, %case_LoadConstStringLongIndex ], [ %defaultPropOpFlags.sroa.0.1, %case_LoadConstEmpty ], [ %defaultPropOpFlags.sroa.0.1, %case_LoadConstUndefined ], [ %defaultPropOpFlags.sroa.0.1, %case_LoadConstNull ], [ %defaultPropOpFlags.sroa.0.1, %case_LoadConstTrue ], [ %defaultPropOpFlags.sroa.0.1, %case_LoadConstFalse ], [ %defaultPropOpFlags.sroa.0.1, %case_LoadConstZero ], [ %defaultPropOpFlags.sroa.0.1, %if.end3420 ], [ %defaultPropOpFlags.sroa.0.1, %case_SubN ], [ %defaultPropOpFlags.sroa.0.1, %if.end3480 ], [ %defaultPropOpFlags.sroa.0.1, %case_MulN ], [ %defaultPropOpFlags.sroa.0.1, %if.end3541 ], [ %defaultPropOpFlags.sroa.0.1, %case_DivN ], [ %defaultPropOpFlags.sroa.0.1, %if.end3602 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes15truncateToInt32Ed.exit4036 ], [ %defaultPropOpFlags.sroa.0.1, %if.end3666 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes15truncateToInt32Ed.exit4088 ], [ %defaultPropOpFlags.sroa.0.1, %if.end3730 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes15truncateToInt32Ed.exit4139 ], [ %defaultPropOpFlags.sroa.0.1, %if.end3794 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes15truncateToInt32Ed.exit4190 ], [ %defaultPropOpFlags.sroa.0.1, %if.end3858 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes15truncateToInt32Ed.exit4242 ], [ %defaultPropOpFlags.sroa.0.1, %if.end3925 ], [ %defaultPropOpFlags.sroa.0.1, %_ZN6hermes15truncateToInt32Ed.exit4294 ], [ %defaultPropOpFlags.sroa.0.1, %if.end3992 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4013 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4052 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4076 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4115 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4139 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4178 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4202 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4241 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4275 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4283 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4308 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4316 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4342 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4349 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4374 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4381 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4407 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4412 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4440 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4445 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4474 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4479 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4506 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4511 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4539 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4547 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4572 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4580 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4606 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4613 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4638 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4645 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4671 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4676 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4704 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4709 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4738 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4743 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4770 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4775 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4803 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4811 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4836 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4844 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4870 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4877 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4902 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4909 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4935 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4940 ], [ %defaultPropOpFlags.sroa.0.1, %if.then4968 ], [ %defaultPropOpFlags.sroa.0.1, %if.end4973 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5002 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5007 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5034 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5039 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5067 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5075 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5100 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5108 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5134 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5141 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5166 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5173 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5199 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5204 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5232 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5237 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5266 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5271 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5298 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5303 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5321 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5329 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5345 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5352 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5368 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5373 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5392 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5397 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5423 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5431 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5455 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5462 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5486 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5491 ], [ %defaultPropOpFlags.sroa.0.1, %if.then5518 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5523 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5536 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5547 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5558 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5569 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5580 ], [ %defaultPropOpFlags.sroa.0.1, %if.end5623 ] + %strictMode.1.be = phi i8 [ %strictMode.1, %case_Mov ], [ %strictMode.1, %case_MovLong ], [ %strictMode.1, %if.then66 ], [ %strictMode.1, %if.end80 ], [ %strictMode.1, %if.then98 ], [ %strictMode.1, %if.end112 ], [ %strictMode.1, %if.end160 ], [ %strictMode.1, %if.end202 ], [ %strictMode.1, %if.end217 ], [ %strictMode.1, %if.end370 ], [ %strictMode.1, %case_GetBuiltinClosure ], [ %strictMode.1, %if.end447 ], [ %strictMode.1, %if.end459 ], [ %strictMode.1, %case_CompleteGenerator ], [ %strictMode.1, %do.body473 ], [ %strictMode.1, %do.body483 ], [ %strictMode.1, %if.end506 ], [ %strictMode.1, %if.end544 ], [ %.lobit, %do.body578 ], [ %strictMode.1, %case_Catch ], [ %strictMode.1, %if.end628 ], [ %strictMode.1, %do.end642 ], [ %strictMode.1, %if.end658 ], [ %strictMode.1, %case_ProfilePoint ], [ %strictMode.1, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2622 ], [ %strictMode.1, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2659 ], [ %strictMode.1, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2696 ], [ %strictMode.1, %if.end818 ], [ %strictMode.1, %if.end854 ], [ %strictMode.1, %for.end ], [ %strictMode.1, %_ZN6hermes2vm11Environment6createERNS0_7RuntimeENS0_6HandleIS1_EEj.exit ], [ %strictMode.1, %_ZN6hermes2vm11Environment6createERNS0_7RuntimeENS0_6HandleIS1_EEj.exit2821 ], [ %strictMode.1, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE3setISt17integral_constantIbLb1EEEEvS2_RNS0_7HadesGCE.exit ], [ %strictMode.1, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE3setISt17integral_constantIbLb1EEEEvS2_RNS0_7HadesGCE.exit2838 ], [ %strictMode.1, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE9setNonPtrES2_RNS0_7HadesGCE.exit ], [ %strictMode.1, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE9setNonPtrES2_RNS0_7HadesGCE.exit2862 ], [ %strictMode.1, %case_LoadFromEnvironment ], [ %strictMode.1, %case_LoadFromEnvironmentL ], [ %strictMode.1, %case_GetGlobalObject ], [ %strictMode.1, %case_GetNewTarget ], [ %strictMode.1, %if.end1079 ], [ %strictMode.1, %if.end1090 ], [ %strictMode.1, %_ZNK6hermes2vm13HermesValue329unboxToHVERNS0_11PointerBaseE.exit2933 ], [ %strictMode.1, %_ZNK6hermes2vm13HermesValue329unboxToHVERNS0_11PointerBaseE.exit3011 ], [ %strictMode.1, %_ZN6hermes2vm8JSObject23getNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEES4_PS1_RNS0_11PointerBaseEj.exit ], [ %strictMode.1, %if.end1284 ], [ %strictMode.1, %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE1EEEvPS1_RNS0_7RuntimeEjS4_.exit ], [ %strictMode.1, %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEEvPS1_RNS0_7RuntimeEjS4_.exit ], [ %strictMode.1, %if.end1462 ], [ %strictMode.1, %if.end1514 ], [ %strictMode.1, %if.end1590 ], [ %strictMode.1, %putOwnByIndex ], [ %strictMode.1, %if.end1640 ], [ %strictMode.1, %if.end1740 ], [ %strictMode.1, %if.end1779 ], [ %strictMode.1, %if.end1817 ], [ %strictMode.1, %if.end1834 ], [ %strictMode.1, %if.end1897 ], [ %strictMode.1, %case_Jmp ], [ %strictMode.1, %case_JmpLong ], [ %strictMode.1, %if.end1927 ], [ %strictMode.1, %if.end1943 ], [ %strictMode.1, %if.end1960 ], [ %strictMode.1, %if.end1976 ], [ %strictMode.1, %if.end1991 ], [ %strictMode.1, %if.end2005 ], [ %strictMode.1, %if.then2014 ], [ %strictMode.1, %if.end2045 ], [ %strictMode.1, %if.then2060 ], [ %strictMode.1, %if.end2091 ], [ %strictMode.1, %case_AddN ], [ %strictMode.1, %if.end2152 ], [ %strictMode.1, %_ZN6hermes15truncateToInt32Ed.exit ], [ %strictMode.1, %if.end2197 ], [ %strictMode.1, %if.then2211 ], [ %strictMode.1, %if.end2247 ], [ %strictMode.1, %if.then2278 ], [ %strictMode.1, %if.end2314 ], [ %strictMode.1, %if.then2331 ], [ %strictMode.1, %if.end2355 ], [ %strictMode.1, %case_NewObject ], [ %strictMode.1, %case_NewObjectWithParent ], [ %strictMode.1, %if.end2439 ], [ %strictMode.1, %if.end2462 ], [ %strictMode.1, %if.end2486 ], [ %strictMode.1, %if.end2511 ], [ %strictMode.1, %if.end2535 ], [ %strictMode.1, %if.end2596 ], [ %strictMode.1, %case_SelectObject ], [ %strictMode.1, %if.end2646 ], [ %strictMode.1, %case_StrictEq ], [ %strictMode.1, %case_StrictNeq ], [ %strictMode.1, %case_Not ], [ %strictMode.1, %if.then2734 ], [ %strictMode.1, %if.end2763 ], [ %strictMode.1, %case_TypeOf ], [ %strictMode.1, %if.then2802 ], [ %strictMode.1, %if.end2843 ], [ %strictMode.1, %if.end2870 ], [ %strictMode.1, %if.end2913 ], [ %strictMode.1, %if.end2976 ], [ %strictMode.1, %if.end3083 ], [ %strictMode.1, %if.end3173 ], [ %strictMode.1, %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_15StringPrimitiveEEENS0_6HandleIT_EEPS5_.exit3911 ], [ %strictMode.1, %if.then3250 ], [ %strictMode.1, %if.end3266 ], [ %strictMode.1, %case_LoadConstUInt8 ], [ %strictMode.1, %case_LoadConstInt ], [ %strictMode.1, %case_LoadConstDouble ], [ %strictMode.1, %case_LoadConstString ], [ %strictMode.1, %case_LoadConstStringLongIndex ], [ %strictMode.1, %case_LoadConstEmpty ], [ %strictMode.1, %case_LoadConstUndefined ], [ %strictMode.1, %case_LoadConstNull ], [ %strictMode.1, %case_LoadConstTrue ], [ %strictMode.1, %case_LoadConstFalse ], [ %strictMode.1, %case_LoadConstZero ], [ %strictMode.1, %if.end3420 ], [ %strictMode.1, %case_SubN ], [ %strictMode.1, %if.end3480 ], [ %strictMode.1, %case_MulN ], [ %strictMode.1, %if.end3541 ], [ %strictMode.1, %case_DivN ], [ %strictMode.1, %if.end3602 ], [ %strictMode.1, %_ZN6hermes15truncateToInt32Ed.exit4036 ], [ %strictMode.1, %if.end3666 ], [ %strictMode.1, %_ZN6hermes15truncateToInt32Ed.exit4088 ], [ %strictMode.1, %if.end3730 ], [ %strictMode.1, %_ZN6hermes15truncateToInt32Ed.exit4139 ], [ %strictMode.1, %if.end3794 ], [ %strictMode.1, %_ZN6hermes15truncateToInt32Ed.exit4190 ], [ %strictMode.1, %if.end3858 ], [ %strictMode.1, %_ZN6hermes15truncateToInt32Ed.exit4242 ], [ %strictMode.1, %if.end3925 ], [ %strictMode.1, %_ZN6hermes15truncateToInt32Ed.exit4294 ], [ %strictMode.1, %if.end3992 ], [ %strictMode.1, %if.then4013 ], [ %strictMode.1, %if.end4052 ], [ %strictMode.1, %if.then4076 ], [ %strictMode.1, %if.end4115 ], [ %strictMode.1, %if.then4139 ], [ %strictMode.1, %if.end4178 ], [ %strictMode.1, %if.then4202 ], [ %strictMode.1, %if.end4241 ], [ %strictMode.1, %if.then4275 ], [ %strictMode.1, %if.end4283 ], [ %strictMode.1, %if.then4308 ], [ %strictMode.1, %if.end4316 ], [ %strictMode.1, %if.then4342 ], [ %strictMode.1, %if.end4349 ], [ %strictMode.1, %if.then4374 ], [ %strictMode.1, %if.end4381 ], [ %strictMode.1, %if.then4407 ], [ %strictMode.1, %if.end4412 ], [ %strictMode.1, %if.then4440 ], [ %strictMode.1, %if.end4445 ], [ %strictMode.1, %if.then4474 ], [ %strictMode.1, %if.end4479 ], [ %strictMode.1, %if.then4506 ], [ %strictMode.1, %if.end4511 ], [ %strictMode.1, %if.then4539 ], [ %strictMode.1, %if.end4547 ], [ %strictMode.1, %if.then4572 ], [ %strictMode.1, %if.end4580 ], [ %strictMode.1, %if.then4606 ], [ %strictMode.1, %if.end4613 ], [ %strictMode.1, %if.then4638 ], [ %strictMode.1, %if.end4645 ], [ %strictMode.1, %if.then4671 ], [ %strictMode.1, %if.end4676 ], [ %strictMode.1, %if.then4704 ], [ %strictMode.1, %if.end4709 ], [ %strictMode.1, %if.then4738 ], [ %strictMode.1, %if.end4743 ], [ %strictMode.1, %if.then4770 ], [ %strictMode.1, %if.end4775 ], [ %strictMode.1, %if.then4803 ], [ %strictMode.1, %if.end4811 ], [ %strictMode.1, %if.then4836 ], [ %strictMode.1, %if.end4844 ], [ %strictMode.1, %if.then4870 ], [ %strictMode.1, %if.end4877 ], [ %strictMode.1, %if.then4902 ], [ %strictMode.1, %if.end4909 ], [ %strictMode.1, %if.then4935 ], [ %strictMode.1, %if.end4940 ], [ %strictMode.1, %if.then4968 ], [ %strictMode.1, %if.end4973 ], [ %strictMode.1, %if.then5002 ], [ %strictMode.1, %if.end5007 ], [ %strictMode.1, %if.then5034 ], [ %strictMode.1, %if.end5039 ], [ %strictMode.1, %if.then5067 ], [ %strictMode.1, %if.end5075 ], [ %strictMode.1, %if.then5100 ], [ %strictMode.1, %if.end5108 ], [ %strictMode.1, %if.then5134 ], [ %strictMode.1, %if.end5141 ], [ %strictMode.1, %if.then5166 ], [ %strictMode.1, %if.end5173 ], [ %strictMode.1, %if.then5199 ], [ %strictMode.1, %if.end5204 ], [ %strictMode.1, %if.then5232 ], [ %strictMode.1, %if.end5237 ], [ %strictMode.1, %if.then5266 ], [ %strictMode.1, %if.end5271 ], [ %strictMode.1, %if.then5298 ], [ %strictMode.1, %if.end5303 ], [ %strictMode.1, %if.then5321 ], [ %strictMode.1, %if.end5329 ], [ %strictMode.1, %if.then5345 ], [ %strictMode.1, %if.end5352 ], [ %strictMode.1, %if.then5368 ], [ %strictMode.1, %if.end5373 ], [ %strictMode.1, %if.then5392 ], [ %strictMode.1, %if.end5397 ], [ %strictMode.1, %if.then5423 ], [ %strictMode.1, %if.end5431 ], [ %strictMode.1, %if.then5455 ], [ %strictMode.1, %if.end5462 ], [ %strictMode.1, %if.then5486 ], [ %strictMode.1, %if.end5491 ], [ %strictMode.1, %if.then5518 ], [ %strictMode.1, %if.end5523 ], [ %strictMode.1, %if.end5536 ], [ %strictMode.1, %if.end5547 ], [ %strictMode.1, %if.end5558 ], [ %strictMode.1, %if.end5569 ], [ %strictMode.1, %if.end5580 ], [ %strictMode.1, %if.end5623 ] + %frameRegs.3.be = phi ptr [ %frameRegs.3, %case_Mov ], [ %frameRegs.3, %case_MovLong ], [ %frameRegs.3, %if.then66 ], [ %frameRegs.3, %if.end80 ], [ %frameRegs.3, %if.then98 ], [ %frameRegs.3, %if.end112 ], [ %frameRegs.3, %if.end160 ], [ %frameRegs.3, %if.end202 ], [ %frameRegs.3, %if.end217 ], [ %frameRegs.3, %if.end370 ], [ %frameRegs.3, %case_GetBuiltinClosure ], [ %frameRegs.3, %if.end447 ], [ %frameRegs.3, %if.end459 ], [ %frameRegs.3, %case_CompleteGenerator ], [ %frameRegs.3, %do.body473 ], [ %frameRegs.3, %do.body483 ], [ %frameRegs.3, %if.end506 ], [ %frameRegs.3, %if.end544 ], [ %arrayidx.i5858, %do.body578 ], [ %frameRegs.3, %case_Catch ], [ %frameRegs.3, %if.end628 ], [ %frameRegs.3, %do.end642 ], [ %frameRegs.3, %if.end658 ], [ %frameRegs.3, %case_ProfilePoint ], [ %frameRegs.3, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2622 ], [ %frameRegs.3, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2659 ], [ %frameRegs.3, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2696 ], [ %frameRegs.3, %if.end818 ], [ %frameRegs.3, %if.end854 ], [ %frameRegs.3, %for.end ], [ %frameRegs.3, %_ZN6hermes2vm11Environment6createERNS0_7RuntimeENS0_6HandleIS1_EEj.exit ], [ %frameRegs.3, %_ZN6hermes2vm11Environment6createERNS0_7RuntimeENS0_6HandleIS1_EEj.exit2821 ], [ %frameRegs.3, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE3setISt17integral_constantIbLb1EEEEvS2_RNS0_7HadesGCE.exit ], [ %frameRegs.3, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE3setISt17integral_constantIbLb1EEEEvS2_RNS0_7HadesGCE.exit2838 ], [ %frameRegs.3, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE9setNonPtrES2_RNS0_7HadesGCE.exit ], [ %frameRegs.3, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE9setNonPtrES2_RNS0_7HadesGCE.exit2862 ], [ %frameRegs.3, %case_LoadFromEnvironment ], [ %frameRegs.3, %case_LoadFromEnvironmentL ], [ %frameRegs.3, %case_GetGlobalObject ], [ %frameRegs.3, %case_GetNewTarget ], [ %frameRegs.3, %if.end1079 ], [ %frameRegs.3, %if.end1090 ], [ %frameRegs.3, %_ZNK6hermes2vm13HermesValue329unboxToHVERNS0_11PointerBaseE.exit2933 ], [ %frameRegs.3, %_ZNK6hermes2vm13HermesValue329unboxToHVERNS0_11PointerBaseE.exit3011 ], [ %frameRegs.3, %_ZN6hermes2vm8JSObject23getNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEES4_PS1_RNS0_11PointerBaseEj.exit ], [ %frameRegs.3, %if.end1284 ], [ %frameRegs.3, %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE1EEEvPS1_RNS0_7RuntimeEjS4_.exit ], [ %frameRegs.3, %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEEvPS1_RNS0_7RuntimeEjS4_.exit ], [ %frameRegs.3, %if.end1462 ], [ %frameRegs.3, %if.end1514 ], [ %frameRegs.3, %if.end1590 ], [ %frameRegs.3, %putOwnByIndex ], [ %frameRegs.3, %if.end1640 ], [ %frameRegs.3, %if.end1740 ], [ %frameRegs.3, %if.end1779 ], [ %frameRegs.3, %if.end1817 ], [ %frameRegs.3, %if.end1834 ], [ %frameRegs.3, %if.end1897 ], [ %frameRegs.3, %case_Jmp ], [ %frameRegs.3, %case_JmpLong ], [ %frameRegs.3, %if.end1927 ], [ %frameRegs.3, %if.end1943 ], [ %frameRegs.3, %if.end1960 ], [ %frameRegs.3, %if.end1976 ], [ %frameRegs.3, %if.end1991 ], [ %frameRegs.3, %if.end2005 ], [ %frameRegs.3, %if.then2014 ], [ %frameRegs.3, %if.end2045 ], [ %frameRegs.3, %if.then2060 ], [ %frameRegs.3, %if.end2091 ], [ %frameRegs.3, %case_AddN ], [ %frameRegs.3, %if.end2152 ], [ %frameRegs.3, %_ZN6hermes15truncateToInt32Ed.exit ], [ %frameRegs.3, %if.end2197 ], [ %frameRegs.3, %if.then2211 ], [ %frameRegs.3, %if.end2247 ], [ %frameRegs.3, %if.then2278 ], [ %frameRegs.3, %if.end2314 ], [ %frameRegs.3, %if.then2331 ], [ %frameRegs.3, %if.end2355 ], [ %frameRegs.3, %case_NewObject ], [ %frameRegs.3, %case_NewObjectWithParent ], [ %frameRegs.3, %if.end2439 ], [ %frameRegs.3, %if.end2462 ], [ %frameRegs.3, %if.end2486 ], [ %frameRegs.3, %if.end2511 ], [ %frameRegs.3, %if.end2535 ], [ %frameRegs.3, %if.end2596 ], [ %frameRegs.3, %case_SelectObject ], [ %frameRegs.3, %if.end2646 ], [ %frameRegs.3, %case_StrictEq ], [ %frameRegs.3, %case_StrictNeq ], [ %frameRegs.3, %case_Not ], [ %frameRegs.3, %if.then2734 ], [ %frameRegs.3, %if.end2763 ], [ %frameRegs.3, %case_TypeOf ], [ %frameRegs.3, %if.then2802 ], [ %frameRegs.3, %if.end2843 ], [ %frameRegs.3, %if.end2870 ], [ %frameRegs.3, %if.end2913 ], [ %frameRegs.3, %if.end2976 ], [ %frameRegs.3, %if.end3083 ], [ %frameRegs.3, %if.end3173 ], [ %frameRegs.3, %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_15StringPrimitiveEEENS0_6HandleIT_EEPS5_.exit3911 ], [ %frameRegs.3, %if.then3250 ], [ %frameRegs.3, %if.end3266 ], [ %frameRegs.3, %case_LoadConstUInt8 ], [ %frameRegs.3, %case_LoadConstInt ], [ %frameRegs.3, %case_LoadConstDouble ], [ %frameRegs.3, %case_LoadConstString ], [ %frameRegs.3, %case_LoadConstStringLongIndex ], [ %frameRegs.3, %case_LoadConstEmpty ], [ %frameRegs.3, %case_LoadConstUndefined ], [ %frameRegs.3, %case_LoadConstNull ], [ %frameRegs.3, %case_LoadConstTrue ], [ %frameRegs.3, %case_LoadConstFalse ], [ %frameRegs.3, %case_LoadConstZero ], [ %frameRegs.3, %if.end3420 ], [ %frameRegs.3, %case_SubN ], [ %frameRegs.3, %if.end3480 ], [ %frameRegs.3, %case_MulN ], [ %frameRegs.3, %if.end3541 ], [ %frameRegs.3, %case_DivN ], [ %frameRegs.3, %if.end3602 ], [ %frameRegs.3, %_ZN6hermes15truncateToInt32Ed.exit4036 ], [ %frameRegs.3, %if.end3666 ], [ %frameRegs.3, %_ZN6hermes15truncateToInt32Ed.exit4088 ], [ %frameRegs.3, %if.end3730 ], [ %frameRegs.3, %_ZN6hermes15truncateToInt32Ed.exit4139 ], [ %frameRegs.3, %if.end3794 ], [ %frameRegs.3, %_ZN6hermes15truncateToInt32Ed.exit4190 ], [ %frameRegs.3, %if.end3858 ], [ %frameRegs.3, %_ZN6hermes15truncateToInt32Ed.exit4242 ], [ %frameRegs.3, %if.end3925 ], [ %frameRegs.3, %_ZN6hermes15truncateToInt32Ed.exit4294 ], [ %frameRegs.3, %if.end3992 ], [ %frameRegs.3, %if.then4013 ], [ %frameRegs.3, %if.end4052 ], [ %frameRegs.3, %if.then4076 ], [ %frameRegs.3, %if.end4115 ], [ %frameRegs.3, %if.then4139 ], [ %frameRegs.3, %if.end4178 ], [ %frameRegs.3, %if.then4202 ], [ %frameRegs.3, %if.end4241 ], [ %frameRegs.3, %if.then4275 ], [ %frameRegs.3, %if.end4283 ], [ %frameRegs.3, %if.then4308 ], [ %frameRegs.3, %if.end4316 ], [ %frameRegs.3, %if.then4342 ], [ %frameRegs.3, %if.end4349 ], [ %frameRegs.3, %if.then4374 ], [ %frameRegs.3, %if.end4381 ], [ %frameRegs.3, %if.then4407 ], [ %frameRegs.3, %if.end4412 ], [ %frameRegs.3, %if.then4440 ], [ %frameRegs.3, %if.end4445 ], [ %frameRegs.3, %if.then4474 ], [ %frameRegs.3, %if.end4479 ], [ %frameRegs.3, %if.then4506 ], [ %frameRegs.3, %if.end4511 ], [ %frameRegs.3, %if.then4539 ], [ %frameRegs.3, %if.end4547 ], [ %frameRegs.3, %if.then4572 ], [ %frameRegs.3, %if.end4580 ], [ %frameRegs.3, %if.then4606 ], [ %frameRegs.3, %if.end4613 ], [ %frameRegs.3, %if.then4638 ], [ %frameRegs.3, %if.end4645 ], [ %frameRegs.3, %if.then4671 ], [ %frameRegs.3, %if.end4676 ], [ %frameRegs.3, %if.then4704 ], [ %frameRegs.3, %if.end4709 ], [ %frameRegs.3, %if.then4738 ], [ %frameRegs.3, %if.end4743 ], [ %frameRegs.3, %if.then4770 ], [ %frameRegs.3, %if.end4775 ], [ %frameRegs.3, %if.then4803 ], [ %frameRegs.3, %if.end4811 ], [ %frameRegs.3, %if.then4836 ], [ %frameRegs.3, %if.end4844 ], [ %frameRegs.3, %if.then4870 ], [ %frameRegs.3, %if.end4877 ], [ %frameRegs.3, %if.then4902 ], [ %frameRegs.3, %if.end4909 ], [ %frameRegs.3, %if.then4935 ], [ %frameRegs.3, %if.end4940 ], [ %frameRegs.3, %if.then4968 ], [ %frameRegs.3, %if.end4973 ], [ %frameRegs.3, %if.then5002 ], [ %frameRegs.3, %if.end5007 ], [ %frameRegs.3, %if.then5034 ], [ %frameRegs.3, %if.end5039 ], [ %frameRegs.3, %if.then5067 ], [ %frameRegs.3, %if.end5075 ], [ %frameRegs.3, %if.then5100 ], [ %frameRegs.3, %if.end5108 ], [ %frameRegs.3, %if.then5134 ], [ %frameRegs.3, %if.end5141 ], [ %frameRegs.3, %if.then5166 ], [ %frameRegs.3, %if.end5173 ], [ %frameRegs.3, %if.then5199 ], [ %frameRegs.3, %if.end5204 ], [ %frameRegs.3, %if.then5232 ], [ %frameRegs.3, %if.end5237 ], [ %frameRegs.3, %if.then5266 ], [ %frameRegs.3, %if.end5271 ], [ %frameRegs.3, %if.then5298 ], [ %frameRegs.3, %if.end5303 ], [ %frameRegs.3, %if.then5321 ], [ %frameRegs.3, %if.end5329 ], [ %frameRegs.3, %if.then5345 ], [ %frameRegs.3, %if.end5352 ], [ %frameRegs.3, %if.then5368 ], [ %frameRegs.3, %if.end5373 ], [ %frameRegs.3, %if.then5392 ], [ %frameRegs.3, %if.end5397 ], [ %frameRegs.3, %if.then5423 ], [ %frameRegs.3, %if.end5431 ], [ %frameRegs.3, %if.then5455 ], [ %frameRegs.3, %if.end5462 ], [ %frameRegs.3, %if.then5486 ], [ %frameRegs.3, %if.end5491 ], [ %frameRegs.3, %if.then5518 ], [ %frameRegs.3, %if.end5523 ], [ %frameRegs.3, %if.end5536 ], [ %frameRegs.3, %if.end5547 ], [ %frameRegs.3, %if.end5558 ], [ %frameRegs.3, %if.end5569 ], [ %frameRegs.3, %if.end5580 ], [ %frameRegs.3, %if.end5623 ] + %curCodeBlock.4.be = phi ptr [ %curCodeBlock.4, %case_Mov ], [ %curCodeBlock.4, %case_MovLong ], [ %curCodeBlock.4, %if.then66 ], [ %curCodeBlock.4, %if.end80 ], [ %curCodeBlock.4, %if.then98 ], [ %curCodeBlock.4, %if.end112 ], [ %curCodeBlock.4, %if.end160 ], [ %curCodeBlock.4, %if.end202 ], [ %curCodeBlock.4, %if.end217 ], [ %curCodeBlock.4, %if.end370 ], [ %curCodeBlock.4, %case_GetBuiltinClosure ], [ %curCodeBlock.4, %if.end447 ], [ %curCodeBlock.4, %if.end459 ], [ %curCodeBlock.4, %case_CompleteGenerator ], [ %curCodeBlock.4, %do.body473 ], [ %curCodeBlock.4, %do.body483 ], [ %curCodeBlock.4, %if.end506 ], [ %curCodeBlock.4, %if.end544 ], [ %153, %do.body578 ], [ %curCodeBlock.4, %case_Catch ], [ %curCodeBlock.4, %if.end628 ], [ %curCodeBlock.4, %do.end642 ], [ %curCodeBlock.4, %if.end658 ], [ %curCodeBlock.4, %case_ProfilePoint ], [ %curCodeBlock.4, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2622 ], [ %curCodeBlock.4, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2659 ], [ %curCodeBlock.4, %_ZN6hermes2vm13RuntimeModule23getCodeBlockMayAllocateEj.exit2696 ], [ %curCodeBlock.4, %if.end818 ], [ %curCodeBlock.4, %if.end854 ], [ %curCodeBlock.4, %for.end ], [ %curCodeBlock.4, %_ZN6hermes2vm11Environment6createERNS0_7RuntimeENS0_6HandleIS1_EEj.exit ], [ %curCodeBlock.4, %_ZN6hermes2vm11Environment6createERNS0_7RuntimeENS0_6HandleIS1_EEj.exit2821 ], [ %curCodeBlock.4, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE3setISt17integral_constantIbLb1EEEEvS2_RNS0_7HadesGCE.exit ], [ %curCodeBlock.4, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE3setISt17integral_constantIbLb1EEEEvS2_RNS0_7HadesGCE.exit2838 ], [ %curCodeBlock.4, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE9setNonPtrES2_RNS0_7HadesGCE.exit ], [ %curCodeBlock.4, %_ZN6hermes2vm17GCHermesValueBaseINS0_11HermesValueEE9setNonPtrES2_RNS0_7HadesGCE.exit2862 ], [ %curCodeBlock.4, %case_LoadFromEnvironment ], [ %curCodeBlock.4, %case_LoadFromEnvironmentL ], [ %curCodeBlock.4, %case_GetGlobalObject ], [ %curCodeBlock.4, %case_GetNewTarget ], [ %curCodeBlock.4, %if.end1079 ], [ %curCodeBlock.4, %if.end1090 ], [ %curCodeBlock.4, %_ZNK6hermes2vm13HermesValue329unboxToHVERNS0_11PointerBaseE.exit2933 ], [ %curCodeBlock.4, %_ZNK6hermes2vm13HermesValue329unboxToHVERNS0_11PointerBaseE.exit3011 ], [ %curCodeBlock.4, %_ZN6hermes2vm8JSObject23getNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEES4_PS1_RNS0_11PointerBaseEj.exit ], [ %curCodeBlock.4, %if.end1284 ], [ %curCodeBlock.4, %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE1EEEvPS1_RNS0_7RuntimeEjS4_.exit ], [ %curCodeBlock.4, %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEEvPS1_RNS0_7RuntimeEjS4_.exit ], [ %curCodeBlock.4, %if.end1462 ], [ %curCodeBlock.4, %if.end1514 ], [ %curCodeBlock.4, %if.end1590 ], [ %curCodeBlock.4, %putOwnByIndex ], [ %curCodeBlock.4, %if.end1640 ], [ %curCodeBlock.4, %if.end1740 ], [ %curCodeBlock.4, %if.end1779 ], [ %curCodeBlock.4, %if.end1817 ], [ %curCodeBlock.4, %if.end1834 ], [ %curCodeBlock.4, %if.end1897 ], [ %curCodeBlock.4, %case_Jmp ], [ %curCodeBlock.4, %case_JmpLong ], [ %curCodeBlock.4, %if.end1927 ], [ %curCodeBlock.4, %if.end1943 ], [ %curCodeBlock.4, %if.end1960 ], [ %curCodeBlock.4, %if.end1976 ], [ %curCodeBlock.4, %if.end1991 ], [ %curCodeBlock.4, %if.end2005 ], [ %curCodeBlock.4, %if.then2014 ], [ %curCodeBlock.4, %if.end2045 ], [ %curCodeBlock.4, %if.then2060 ], [ %curCodeBlock.4, %if.end2091 ], [ %curCodeBlock.4, %case_AddN ], [ %curCodeBlock.4, %if.end2152 ], [ %curCodeBlock.4, %_ZN6hermes15truncateToInt32Ed.exit ], [ %curCodeBlock.4, %if.end2197 ], [ %curCodeBlock.4, %if.then2211 ], [ %curCodeBlock.4, %if.end2247 ], [ %curCodeBlock.4, %if.then2278 ], [ %curCodeBlock.4, %if.end2314 ], [ %curCodeBlock.4, %if.then2331 ], [ %curCodeBlock.4, %if.end2355 ], [ %curCodeBlock.4, %case_NewObject ], [ %curCodeBlock.4, %case_NewObjectWithParent ], [ %curCodeBlock.4, %if.end2439 ], [ %curCodeBlock.4, %if.end2462 ], [ %curCodeBlock.4, %if.end2486 ], [ %curCodeBlock.4, %if.end2511 ], [ %curCodeBlock.4, %if.end2535 ], [ %curCodeBlock.4, %if.end2596 ], [ %curCodeBlock.4, %case_SelectObject ], [ %curCodeBlock.4, %if.end2646 ], [ %curCodeBlock.4, %case_StrictEq ], [ %curCodeBlock.4, %case_StrictNeq ], [ %curCodeBlock.4, %case_Not ], [ %curCodeBlock.4, %if.then2734 ], [ %curCodeBlock.4, %if.end2763 ], [ %curCodeBlock.4, %case_TypeOf ], [ %curCodeBlock.4, %if.then2802 ], [ %curCodeBlock.4, %if.end2843 ], [ %curCodeBlock.4, %if.end2870 ], [ %curCodeBlock.4, %if.end2913 ], [ %curCodeBlock.4, %if.end2976 ], [ %curCodeBlock.4, %if.end3083 ], [ %curCodeBlock.4, %if.end3173 ], [ %curCodeBlock.4, %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_15StringPrimitiveEEENS0_6HandleIT_EEPS5_.exit3911 ], [ %curCodeBlock.4, %if.then3250 ], [ %curCodeBlock.4, %if.end3266 ], [ %curCodeBlock.4, %case_LoadConstUInt8 ], [ %curCodeBlock.4, %case_LoadConstInt ], [ %curCodeBlock.4, %case_LoadConstDouble ], [ %curCodeBlock.4, %case_LoadConstString ], [ %curCodeBlock.4, %case_LoadConstStringLongIndex ], [ %curCodeBlock.4, %case_LoadConstEmpty ], [ %curCodeBlock.4, %case_LoadConstUndefined ], [ %curCodeBlock.4, %case_LoadConstNull ], [ %curCodeBlock.4, %case_LoadConstTrue ], [ %curCodeBlock.4, %case_LoadConstFalse ], [ %curCodeBlock.4, %case_LoadConstZero ], [ %curCodeBlock.4, %if.end3420 ], [ %curCodeBlock.4, %case_SubN ], [ %curCodeBlock.4, %if.end3480 ], [ %curCodeBlock.4, %case_MulN ], [ %curCodeBlock.4, %if.end3541 ], [ %curCodeBlock.4, %case_DivN ], [ %curCodeBlock.4, %if.end3602 ], [ %curCodeBlock.4, %_ZN6hermes15truncateToInt32Ed.exit4036 ], [ %curCodeBlock.4, %if.end3666 ], [ %curCodeBlock.4, %_ZN6hermes15truncateToInt32Ed.exit4088 ], [ %curCodeBlock.4, %if.end3730 ], [ %curCodeBlock.4, %_ZN6hermes15truncateToInt32Ed.exit4139 ], [ %curCodeBlock.4, %if.end3794 ], [ %curCodeBlock.4, %_ZN6hermes15truncateToInt32Ed.exit4190 ], [ %curCodeBlock.4, %if.end3858 ], [ %curCodeBlock.4, %_ZN6hermes15truncateToInt32Ed.exit4242 ], [ %curCodeBlock.4, %if.end3925 ], [ %curCodeBlock.4, %_ZN6hermes15truncateToInt32Ed.exit4294 ], [ %curCodeBlock.4, %if.end3992 ], [ %curCodeBlock.4, %if.then4013 ], [ %curCodeBlock.4, %if.end4052 ], [ %curCodeBlock.4, %if.then4076 ], [ %curCodeBlock.4, %if.end4115 ], [ %curCodeBlock.4, %if.then4139 ], [ %curCodeBlock.4, %if.end4178 ], [ %curCodeBlock.4, %if.then4202 ], [ %curCodeBlock.4, %if.end4241 ], [ %curCodeBlock.4, %if.then4275 ], [ %curCodeBlock.4, %if.end4283 ], [ %curCodeBlock.4, %if.then4308 ], [ %curCodeBlock.4, %if.end4316 ], [ %curCodeBlock.4, %if.then4342 ], [ %curCodeBlock.4, %if.end4349 ], [ %curCodeBlock.4, %if.then4374 ], [ %curCodeBlock.4, %if.end4381 ], [ %curCodeBlock.4, %if.then4407 ], [ %curCodeBlock.4, %if.end4412 ], [ %curCodeBlock.4, %if.then4440 ], [ %curCodeBlock.4, %if.end4445 ], [ %curCodeBlock.4, %if.then4474 ], [ %curCodeBlock.4, %if.end4479 ], [ %curCodeBlock.4, %if.then4506 ], [ %curCodeBlock.4, %if.end4511 ], [ %curCodeBlock.4, %if.then4539 ], [ %curCodeBlock.4, %if.end4547 ], [ %curCodeBlock.4, %if.then4572 ], [ %curCodeBlock.4, %if.end4580 ], [ %curCodeBlock.4, %if.then4606 ], [ %curCodeBlock.4, %if.end4613 ], [ %curCodeBlock.4, %if.then4638 ], [ %curCodeBlock.4, %if.end4645 ], [ %curCodeBlock.4, %if.then4671 ], [ %curCodeBlock.4, %if.end4676 ], [ %curCodeBlock.4, %if.then4704 ], [ %curCodeBlock.4, %if.end4709 ], [ %curCodeBlock.4, %if.then4738 ], [ %curCodeBlock.4, %if.end4743 ], [ %curCodeBlock.4, %if.then4770 ], [ %curCodeBlock.4, %if.end4775 ], [ %curCodeBlock.4, %if.then4803 ], [ %curCodeBlock.4, %if.end4811 ], [ %curCodeBlock.4, %if.then4836 ], [ %curCodeBlock.4, %if.end4844 ], [ %curCodeBlock.4, %if.then4870 ], [ %curCodeBlock.4, %if.end4877 ], [ %curCodeBlock.4, %if.then4902 ], [ %curCodeBlock.4, %if.end4909 ], [ %curCodeBlock.4, %if.then4935 ], [ %curCodeBlock.4, %if.end4940 ], [ %curCodeBlock.4, %if.then4968 ], [ %curCodeBlock.4, %if.end4973 ], [ %curCodeBlock.4, %if.then5002 ], [ %curCodeBlock.4, %if.end5007 ], [ %curCodeBlock.4, %if.then5034 ], [ %curCodeBlock.4, %if.end5039 ], [ %curCodeBlock.4, %if.then5067 ], [ %curCodeBlock.4, %if.end5075 ], [ %curCodeBlock.4, %if.then5100 ], [ %curCodeBlock.4, %if.end5108 ], [ %curCodeBlock.4, %if.then5134 ], [ %curCodeBlock.4, %if.end5141 ], [ %curCodeBlock.4, %if.then5166 ], [ %curCodeBlock.4, %if.end5173 ], [ %curCodeBlock.4, %if.then5199 ], [ %curCodeBlock.4, %if.end5204 ], [ %curCodeBlock.4, %if.then5232 ], [ %curCodeBlock.4, %if.end5237 ], [ %curCodeBlock.4, %if.then5266 ], [ %curCodeBlock.4, %if.end5271 ], [ %curCodeBlock.4, %if.then5298 ], [ %curCodeBlock.4, %if.end5303 ], [ %curCodeBlock.4, %if.then5321 ], [ %curCodeBlock.4, %if.end5329 ], [ %curCodeBlock.4, %if.then5345 ], [ %curCodeBlock.4, %if.end5352 ], [ %curCodeBlock.4, %if.then5368 ], [ %curCodeBlock.4, %if.end5373 ], [ %curCodeBlock.4, %if.then5392 ], [ %curCodeBlock.4, %if.end5397 ], [ %curCodeBlock.4, %if.then5423 ], [ %curCodeBlock.4, %if.end5431 ], [ %curCodeBlock.4, %if.then5455 ], [ %curCodeBlock.4, %if.end5462 ], [ %curCodeBlock.4, %if.then5486 ], [ %curCodeBlock.4, %if.end5491 ], [ %curCodeBlock.4, %if.then5518 ], [ %curCodeBlock.4, %if.end5523 ], [ %curCodeBlock.4, %if.end5536 ], [ %curCodeBlock.4, %if.end5547 ], [ %curCodeBlock.4, %if.end5558 ], [ %curCodeBlock.4, %if.end5569 ], [ %curCodeBlock.4, %if.end5580 ], [ %curCodeBlock.4, %if.end5623 ] br label %indirectgoto case_MovLong: ; preds = %indirectgoto @@ -2762,15 +2760,15 @@ if.end202: ; preds = %if.then187, %if.the br label %indirectgoto.backedge coerceThisSlowPath: ; preds = %if.else178, %if.else137 - %.sink5429 = phi i64 [ %43, %if.else137 ], [ %46, %if.else178 ] + %.sink5427 = phi i64 [ %43, %if.else137 ], [ %46, %if.else178 ] %.sink = phi i64 [ 3, %if.else137 ], [ 2, %if.else178 ] - store i64 %.sink5429, ptr %inlineStorage_.i, align 8 + store i64 %.sink5427, ptr %inlineStorage_.i, align 8 store ptr %add.ptr.sink.sink, ptr %currentIP_.i.i, align 8 %call211 = call { i32, i64 } @_ZN6hermes2vm8toObjectERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr nonnull %inlineStorage_.i) #10 %49 = extractvalue { i32, i64 } %call211, 0 %50 = load ptr, ptr %currentIP_.i.i, align 8 %cmp.i2417 = icmp eq i32 %49, 0 - br i1 %cmp.i2417, label %exceptionthread-pre-split.loopexit5518, label %if.end217 + br i1 %cmp.i2417, label %exceptionthread-pre-split.loopexit5516, label %if.end217 if.end217: ; preds = %coerceThisSlowPath %add.ptr200 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %.sink @@ -3013,7 +3011,7 @@ _ZN6hermes2vm11Interpreter18handleCallSlowPathERNS0_7RuntimeEPNS0_17PinnedHermes %retval.sroa.4.0.i = phi i64 [ -1688849860263936, %if.else11.i ], [ %94, %if.then7.i ], [ %92, %if.then.i ] %95 = load ptr, ptr %currentIP_.i.i, align 8 %cmp.i2481 = icmp eq i32 %retval.sroa.0.0.i, 0 - br i1 %cmp.i2481, label %exceptionthread-pre-split.loopexit5518, label %if.end370 + br i1 %cmp.i2481, label %exceptionthread-pre-split.loopexit5516, label %if.end370 if.end370: ; preds = %_ZN6hermes2vm11Interpreter18handleCallSlowPathERNS0_7RuntimeEPNS0_17PinnedHermesValueE.exit %op1375 = getelementptr inbounds i8, ptr %95, i64 1 @@ -3115,7 +3113,7 @@ case_CallBuiltin: ; preds = %indirectgoto %call442 = call noundef i32 @_ZN6hermes2vm11Interpreter15implCallBuiltinERNS0_7RuntimeEPNS0_17PinnedHermesValueEPNS0_9CodeBlockEj(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr noundef %frameRegs.3, ptr noundef %curCodeBlock.4, i32 noundef %conv441) #10 %117 = load ptr, ptr %currentIP_.i.i, align 8 %cmp444 = icmp eq i32 %call442, 0 - br i1 %cmp444, label %exceptionthread-pre-split.loopexit5518, label %if.end447 + br i1 %cmp444, label %exceptionthread-pre-split.loopexit5516, label %if.end447 if.end447: ; preds = %case_CallBuiltin store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 @@ -3131,7 +3129,7 @@ case_CallBuiltinLong: ; preds = %indirectgoto %call454 = call noundef i32 @_ZN6hermes2vm11Interpreter15implCallBuiltinERNS0_7RuntimeEPNS0_17PinnedHermesValueEPNS0_9CodeBlockEj(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr noundef %frameRegs.3, ptr noundef %curCodeBlock.4, i32 noundef %118) #10 %119 = load ptr, ptr %currentIP_.i.i, align 8 %cmp456 = icmp eq i32 %call454, 0 - br i1 %cmp456, label %exceptionthread-pre-split.loopexit5518, label %if.end459 + br i1 %cmp456, label %exceptionthread-pre-split.loopexit5516, label %if.end459 if.end459: ; preds = %case_CallBuiltinLong store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 @@ -3464,15 +3462,15 @@ if.then649: ; preds = %case_AsyncBreakChec _ZN6hermes2vm7Runtime36testAndClearTimeoutAsyncBreakRequestEv.exit: ; preds = %if.then649 %169 = atomicrmw and ptr %asyncBreakRequestFlag_.i, i8 -5 monotonic, align 1 - %.not5149 = icmp eq i8 %169, 0 - br i1 %.not5149, label %if.end658, label %if.then651 + %.not5147 = icmp eq i8 %169, 0 + br i1 %.not5147, label %if.end658, label %if.then651 if.then651: ; preds = %_ZN6hermes2vm7Runtime36testAndClearTimeoutAsyncBreakRequestEv.exit store ptr %add.ptr.sink.sink, ptr %currentIP_.i.i, align 8 %call652 = call noundef i32 @_ZN6hermes2vm7Runtime13notifyTimeoutEv(ptr noundef nonnull align 8 dereferenceable(9832) %runtime) #10 %170 = load ptr, ptr %currentIP_.i.i, align 8 %cmp654 = icmp eq i32 %call652, 0 - br i1 %cmp654, label %exceptionthread-pre-split.loopexit5518, label %if.end658 + br i1 %cmp654, label %exceptionthread-pre-split.loopexit5516, label %if.end658 if.end658: ; preds = %if.then649, %_ZN6hermes2vm7Runtime36testAndClearTimeoutAsyncBreakRequestEv.exit, %if.then651, %case_AsyncBreakCheck %ip.2 = phi ptr [ %170, %if.then651 ], [ %add.ptr.sink.sink, %_ZN6hermes2vm7Runtime36testAndClearTimeoutAsyncBreakRequestEv.exit ], [ %add.ptr.sink.sink, %case_AsyncBreakCheck ], [ %add.ptr.sink.sink, %if.then649 ] @@ -3502,9 +3500,9 @@ case_CreateClosureLongIndex: ; preds = %indirectgoto br label %createClosure createClosure: ; preds = %case_CreateClosureLongIndex, %case_CreateClosure - %.sink5430 = phi i64 [ 7, %case_CreateClosureLongIndex ], [ 5, %case_CreateClosure ] + %.sink5428 = phi i64 [ 7, %case_CreateClosureLongIndex ], [ 5, %case_CreateClosure ] %idVal.0 = phi i32 [ %172, %case_CreateClosureLongIndex ], [ %conv668, %case_CreateClosure ] - %add.ptr671 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %.sink5430 + %add.ptr671 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %.sink5428 %173 = load ptr, ptr %curCodeBlock.4, align 8 store ptr %add.ptr.sink.sink, ptr %currentIP_.i.i, align 8 %domain_.i.i = getelementptr inbounds i8, ptr %173, i64 48 @@ -3589,9 +3587,9 @@ case_CreateAsyncClosureLongIndex: ; preds = %indirectgoto br label %createAsyncClosure createAsyncClosure: ; preds = %case_CreateAsyncClosureLongIndex, %case_CreateAsyncClosure - %.sink5431 = phi i64 [ 7, %case_CreateAsyncClosureLongIndex ], [ 5, %case_CreateAsyncClosure ] + %.sink5429 = phi i64 [ 7, %case_CreateAsyncClosureLongIndex ], [ 5, %case_CreateAsyncClosure ] %idVal.1 = phi i32 [ %188, %case_CreateAsyncClosureLongIndex ], [ %conv710, %case_CreateAsyncClosure ] - %add.ptr713 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %.sink5431 + %add.ptr713 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %.sink5429 %189 = load ptr, ptr %curCodeBlock.4, align 8 store ptr %add.ptr.sink.sink, ptr %currentIP_.i.i, align 8 %domain_.i.i2633 = getelementptr inbounds i8, ptr %189, i64 48 @@ -3676,9 +3674,9 @@ case_CreateGeneratorClosureLongIndex: ; preds = %indirectgoto br label %createGeneratorClosure createGeneratorClosure: ; preds = %case_CreateGeneratorClosureLongIndex, %case_CreateGeneratorClosure - %.sink5432 = phi i64 [ 7, %case_CreateGeneratorClosureLongIndex ], [ 5, %case_CreateGeneratorClosure ] + %.sink5430 = phi i64 [ 7, %case_CreateGeneratorClosureLongIndex ], [ 5, %case_CreateGeneratorClosure ] %idVal.2 = phi i32 [ %204, %case_CreateGeneratorClosureLongIndex ], [ %conv753, %case_CreateGeneratorClosure ] - %add.ptr756 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %.sink5432 + %add.ptr756 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %.sink5430 %205 = load ptr, ptr %curCodeBlock.4, align 8 store ptr %add.ptr.sink.sink, ptr %currentIP_.i.i, align 8 %domain_.i.i2670 = getelementptr inbounds i8, ptr %205, i64 48 @@ -3773,7 +3771,7 @@ case_CreateGenerator: ; preds = %indirectgoto %call811 = call ptr @_ZN6hermes2vm11Interpreter19createGenerator_RJSERNS0_7RuntimeEPNS0_13RuntimeModuleEjNS0_6HandleINS0_11EnvironmentEEENS0_10NativeArgsE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr noundef %219, i32 noundef %conv798, ptr %arrayidx802, ptr noundef nonnull %agg.tmp806) %223 = load ptr, ptr %currentIP_.i.i, align 8 %cmp.i.i2710.not = icmp eq ptr %call811, inttoptr (i64 -1 to ptr) - br i1 %cmp.i.i2710.not, label %exceptionthread-pre-split.loopexit5518, label %if.end818 + br i1 %cmp.i.i2710.not, label %exceptionthread-pre-split.loopexit5516, label %if.end818 if.end818: ; preds = %case_CreateGenerator %224 = ptrtoint ptr %call811 to i64 @@ -3810,7 +3808,7 @@ case_CreateGeneratorLongIndex: ; preds = %indirectgoto %call847 = call ptr @_ZN6hermes2vm11Interpreter19createGenerator_RJSERNS0_7RuntimeEPNS0_13RuntimeModuleEjNS0_6HandleINS0_11EnvironmentEEENS0_10NativeArgsE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr noundef %226, i32 noundef %227, ptr %arrayidx838, ptr noundef nonnull %agg.tmp842) %230 = load ptr, ptr %currentIP_.i.i, align 8 %cmp.i.i2728.not = icmp eq ptr %call847, inttoptr (i64 -1 to ptr) - br i1 %cmp.i.i2728.not, label %exceptionthread-pre-split.loopexit5518, label %if.end854 + br i1 %cmp.i.i2728.not, label %exceptionthread-pre-split.loopexit5516, label %if.end854 if.end854: ; preds = %case_CreateGeneratorLongIndex %231 = ptrtoint ptr %call847 to i64 @@ -3840,24 +3838,24 @@ case_GetEnvironment: ; preds = %indirectgoto %cond.i.i.i.i.i = select i1 %cmp.i.not.i.i.i.i.i2743, ptr null, ptr %234 %op2872 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 2 %235 = load i8, ptr %op2872, align 1 - %tobool875.not5265 = icmp eq i8 %235, 0 - br i1 %tobool875.not5265, label %for.end, label %for.body.preheader + %tobool875.not5263 = icmp eq i8 %235, 0 + br i1 %tobool875.not5263, label %for.end, label %for.body.preheader for.body.preheader: ; preds = %case_GetEnvironment %conv873 = zext i8 %235 to i32 br label %for.body for.body: ; preds = %for.body.preheader, %for.body - %curEnv.05267 = phi ptr [ %cond.i.i.i.i.i2750, %for.body ], [ %cond.i.i.i.i.i, %for.body.preheader ] - %level.05266 = phi i32 [ %dec, %for.body ], [ %conv873, %for.body.preheader ] - %parentEnvironment_.i = getelementptr inbounds i8, ptr %curEnv.05267, i64 4 + %curEnv.05265 = phi ptr [ %cond.i.i.i.i.i2750, %for.body ], [ %cond.i.i.i.i.i, %for.body.preheader ] + %level.05264 = phi i32 [ %dec, %for.body ], [ %conv873, %for.body.preheader ] + %parentEnvironment_.i = getelementptr inbounds i8, ptr %curEnv.05265, i64 4 %agg.tmp.sroa.0.0.copyload.i.i.i2746 = load i32, ptr %parentEnvironment_.i, align 4 %cmp.i.not.i.i.i.i.i2747 = icmp eq i32 %agg.tmp.sroa.0.0.copyload.i.i.i2746, 0 %conv.i.i.i.i.i.i2748 = zext i32 %agg.tmp.sroa.0.0.copyload.i.i.i2746 to i64 %add.i.i.i.i.i.i2749 = add i64 %conv.i.i.i.i.i.i2748, %6 %236 = inttoptr i64 %add.i.i.i.i.i.i2749 to ptr %cond.i.i.i.i.i2750 = select i1 %cmp.i.not.i.i.i.i.i2747, ptr null, ptr %236 - %dec = add nsw i32 %level.05266, -1 + %dec = add nsw i32 %level.05264, -1 %tobool875.not = icmp eq i32 %dec, 0 br i1 %tobool875.not, label %for.end, label %for.body, !llvm.loop !71 @@ -4290,7 +4288,7 @@ case_DeclareGlobalVar: ; preds = %indirectgoto %call1074 = call noundef i32 @_ZN6hermes2vm11Interpreter20declareGlobalVarImplERNS0_7RuntimeEPNS0_9CodeBlockEPKNS_4inst4InstE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr noundef %curCodeBlock.4, ptr noundef nonnull %add.ptr.sink.sink) #10 %308 = load ptr, ptr %currentIP_.i.i, align 8 %cmp1076 = icmp eq i32 %call1074, 0 - br i1 %cmp1076, label %exceptionthread-pre-split.loopexit5518, label %if.end1079 + br i1 %cmp1076, label %exceptionthread-pre-split.loopexit5516, label %if.end1079 if.end1079: ; preds = %case_DeclareGlobalVar %add.ptr1080 = getelementptr inbounds i8, ptr %308, i64 5 @@ -4301,7 +4299,7 @@ case_ThrowIfHasRestrictedGlobalProperty: ; preds = %indirectgoto %call1085 = call noundef i32 @_ZN6hermes2vm11Interpreter38throwIfHasRestrictedGlobalPropertyImplERNS0_7RuntimeEPNS0_9CodeBlockEPKNS_4inst4InstE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr noundef %curCodeBlock.4, ptr noundef nonnull %add.ptr.sink.sink) #10 %309 = load ptr, ptr %currentIP_.i.i, align 8 %cmp1087 = icmp eq i32 %call1085, 0 - br i1 %cmp1087, label %exceptionthread-pre-split.loopexit5518, label %if.end1090 + br i1 %cmp1087, label %exceptionthread-pre-split.loopexit5516, label %if.end1090 if.end1090: ; preds = %case_ThrowIfHasRestrictedGlobalProperty %add.ptr1091 = getelementptr inbounds i8, ptr %309, i64 5 @@ -4336,10 +4334,10 @@ case_GetById: ; preds = %indirectgoto br label %getById getById: ; preds = %case_GetById, %case_TryGetById, %case_GetByIdShort, %case_GetByIdLong, %case_TryGetByIdLong - %.sink5433 = phi i64 [ 6, %case_GetById ], [ 6, %case_TryGetById ], [ 5, %case_GetByIdShort ], [ 8, %case_GetByIdLong ], [ 8, %case_TryGetByIdLong ] + %.sink5431 = phi i64 [ 6, %case_GetById ], [ 6, %case_TryGetById ], [ 5, %case_GetByIdShort ], [ 8, %case_GetByIdLong ], [ 8, %case_TryGetByIdLong ] %tryProp.0 = phi i1 [ false, %case_GetById ], [ true, %case_TryGetById ], [ false, %case_GetByIdShort ], [ false, %case_GetByIdLong ], [ true, %case_TryGetByIdLong ] %idVal.3 = phi i32 [ %conv1106, %case_GetById ], [ %conv1103, %case_TryGetById ], [ %conv1100, %case_GetByIdShort ], [ %311, %case_GetByIdLong ], [ %310, %case_TryGetByIdLong ] - %add.ptr1107 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %.sink5433 + %add.ptr1107 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %.sink5431 %op21109 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 2 %315 = load i8, ptr %op21109, align 1 %idxprom1110 = zext i8 %315 to i64 @@ -4695,8 +4693,8 @@ if.then1200: ; preds = %land.lhs.true1196 %conv.i.i.i.i.i.i3022 = zext i32 %agg.tmp.sroa.0.0.copyload.i.i.i3020 to i64 %add.i.i.i.i.i.i3023 = add i64 %conv.i.i.i.i.i.i3022, %6 %361 = inttoptr i64 %add.i.i.i.i.i.i3023 to ptr - %tobool1203.not5163 = icmp eq i64 %add.i.i.i.i.i.i3023, 0 - %tobool1203.not = or i1 %cmp.i.not.i.i.i.i.i3021, %tobool1203.not5163 + %tobool1203.not5161 = icmp eq i64 %add.i.i.i.i.i.i3023, 0 + %tobool1203.not = or i1 %cmp.i.not.i.i.i.i.i3021, %tobool1203.not5161 br i1 %tobool1203.not, label %if.end1230, label %land.lhs.true1204 land.lhs.true1204: ; preds = %if.then1200 @@ -4706,8 +4704,8 @@ land.lhs.true1204: ; preds = %if.then1200 %cmp.i.i3028 = icmp ne i32 %362, %agg.tmp.sroa.0.0.copyload.i3027 %363 = and i32 %bf.load.i3017, 64 %tobool.i3031 = icmp ne i32 %363, 0 - %or.cond5123 = or i1 %tobool.i3031, %cmp.i.i3028 - br i1 %or.cond5123, label %if.end1230, label %if.then1212 + %or.cond5121 = or i1 %tobool.i3031, %cmp.i.i3028 + br i1 %or.cond5121, label %if.end1230, label %if.then1212 if.then1212: ; preds = %land.lhs.true1204 %slot1216 = getelementptr inbounds i8, ptr %arrayidx.i2883, i64 4 @@ -4760,7 +4758,7 @@ if.end1230: ; preds = %land.lhs.true, %_ZN %370 = extractvalue { i32, i64 } %call.i, 1 %371 = load ptr, ptr %currentIP_.i.i, align 8 %cmp.i3060 = icmp eq i32 %369, 0 - br i1 %cmp.i3060, label %exceptionthread-pre-split.loopexit5518, label %if.end1284 + br i1 %cmp.i3060, label %exceptionthread-pre-split.loopexit5516, label %if.end1284 if.else1264: ; preds = %getById store ptr %add.ptr.sink.sink, ptr %currentIP_.i.i, align 8 @@ -4778,9 +4776,9 @@ if.else1264: ; preds = %getById %cmp.i.i.i3066 = icmp eq i64 %shr.i.mask.i.i.i, -844424930131968 %cmp.i1.i.i = icmp eq i32 %retval.sroa.0.0.copyload.i3065, 82 %or.cond.i.i = select i1 %cmp.i.i.i3066, i1 %cmp.i1.i.i, i1 false - br i1 %or.cond.i.i, label %_ZN6hermes2vm11Interpreter30tryGetPrimitiveOwnPropertyByIdERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEENS0_8SymbolIDE.exit.i, label %if.end.i3067 + br i1 %or.cond.i.i, label %_ZN6hermes2vm11Interpreter20getByIdTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEENS0_8SymbolIDE.exit.thread, label %if.end.i3067 -_ZN6hermes2vm11Interpreter30tryGetPrimitiveOwnPropertyByIdERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEENS0_8SymbolIDE.exit.i: ; preds = %if.else1264 +_ZN6hermes2vm11Interpreter20getByIdTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEENS0_8SymbolIDE.exit.thread: ; preds = %if.else1264 %and.i.i.i.i3072 = and i64 %375, 281474976710655 %376 = inttoptr i64 %and.i.i.i.i3072 to ptr %lengthAndUniquedFlag_.i.i.i = getelementptr inbounds i8, ptr %376, i64 4 @@ -4788,11 +4786,9 @@ _ZN6hermes2vm11Interpreter30tryGetPrimitiveOwnPropertyByIdERNS0_7RuntimeENS0_6Ha %and.i.i.i3073 = and i32 %377, 2147483647 %conv.i.i.i3074 = uitofp i32 %and.i.i.i3073 to double %378 = bitcast double %conv.i.i.i3074 to i64 - %shr.i.mask.i.i3075 = and i64 %378, -140737488355328 - %cmp.i.i3076 = icmp eq i64 %shr.i.mask.i.i3075, -1970324836974592 - br i1 %cmp.i.i3076, label %if.end.i3067, label %if.end1284 + br label %if.end1284 -if.end.i3067: ; preds = %_ZN6hermes2vm11Interpreter30tryGetPrimitiveOwnPropertyByIdERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEENS0_8SymbolIDE.exit.i, %if.else1264 +if.end.i3067: ; preds = %if.else1264 %call14.i = call ptr @_ZN6hermes2vm21getPrimitivePrototypeERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr nonnull %arrayidx1270) #10 %cmp.i.i8.not.i = icmp eq ptr %call14.i, inttoptr (i64 -1 to ptr) br i1 %cmp.i.i8.not.i, label %_ZN4llvh9StringRefC2EPKc.exit.i, label %if.end27.i @@ -4811,12 +4807,12 @@ _ZN6hermes2vm11Interpreter20getByIdTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_1 %retval.sroa.0.0.i3068 = phi i32 [ %call26.i, %_ZN4llvh9StringRefC2EPKc.exit.i ], [ %379, %if.end27.i ] %retval.sroa.4.0.i3069 = phi i64 [ -1688849860263936, %_ZN4llvh9StringRefC2EPKc.exit.i ], [ %380, %if.end27.i ] %381 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i3078 = icmp eq i32 %retval.sroa.0.0.i3068, 0 - br i1 %cmp.i3078, label %exceptionthread-pre-split.loopexit5518, label %if.end1284 + %cmp.i3076 = icmp eq i32 %retval.sroa.0.0.i3068, 0 + br i1 %cmp.i3076, label %exceptionthread-pre-split.loopexit5516, label %if.end1284 -if.end1284: ; preds = %_ZN6hermes2vm11Interpreter30tryGetPrimitiveOwnPropertyByIdERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEENS0_8SymbolIDE.exit.i, %_ZN6hermes2vm11Interpreter20getByIdTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEENS0_8SymbolIDE.exit, %if.end1230 - %resPH.sroa.21.0 = phi i64 [ %370, %if.end1230 ], [ %retval.sroa.4.0.i3069, %_ZN6hermes2vm11Interpreter20getByIdTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEENS0_8SymbolIDE.exit ], [ %378, %_ZN6hermes2vm11Interpreter30tryGetPrimitiveOwnPropertyByIdERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEENS0_8SymbolIDE.exit.i ] - %ip.4 = phi ptr [ %371, %if.end1230 ], [ %381, %_ZN6hermes2vm11Interpreter20getByIdTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEENS0_8SymbolIDE.exit ], [ %add.ptr.sink.sink, %_ZN6hermes2vm11Interpreter30tryGetPrimitiveOwnPropertyByIdERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEENS0_8SymbolIDE.exit.i ] +if.end1284: ; preds = %_ZN6hermes2vm11Interpreter20getByIdTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEENS0_8SymbolIDE.exit.thread, %_ZN6hermes2vm11Interpreter20getByIdTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEENS0_8SymbolIDE.exit, %if.end1230 + %resPH.sroa.21.0 = phi i64 [ %370, %if.end1230 ], [ %retval.sroa.4.0.i3069, %_ZN6hermes2vm11Interpreter20getByIdTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEENS0_8SymbolIDE.exit ], [ %378, %_ZN6hermes2vm11Interpreter20getByIdTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEENS0_8SymbolIDE.exit.thread ] + %ip.4 = phi ptr [ %371, %if.end1230 ], [ %381, %_ZN6hermes2vm11Interpreter20getByIdTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEENS0_8SymbolIDE.exit ], [ %add.ptr.sink.sink, %_ZN6hermes2vm11Interpreter20getByIdTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEENS0_8SymbolIDE.exit.thread ] %op11289 = getelementptr inbounds i8, ptr %ip.4, i64 1 %382 = load i8, ptr %op11289, align 1 %idxprom1290 = zext i8 %382 to i64 @@ -4850,18 +4846,18 @@ case_PutById: ; preds = %indirectgoto br label %putById putById: ; preds = %case_PutById, %case_TryPutById, %case_PutByIdLong, %case_TryPutByIdLong - %.sink5434 = phi i64 [ 6, %case_PutById ], [ 6, %case_TryPutById ], [ 8, %case_PutByIdLong ], [ 8, %case_TryPutByIdLong ] + %.sink5432 = phi i64 [ 6, %case_PutById ], [ 6, %case_TryPutById ], [ 8, %case_PutByIdLong ], [ 8, %case_TryPutByIdLong ] %tryProp.1 = phi i1 [ false, %case_PutById ], [ true, %case_TryPutById ], [ false, %case_PutByIdLong ], [ true, %case_TryPutByIdLong ] %idVal.4 = phi i32 [ %conv1304, %case_PutById ], [ %conv1301, %case_TryPutById ], [ %384, %case_PutByIdLong ], [ %383, %case_TryPutByIdLong ] - %add.ptr1305 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %.sink5434 + %add.ptr1305 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %.sink5432 %op11307 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %387 = load i8, ptr %op11307, align 1 %idxprom1308 = zext i8 %387 to i64 %arrayidx1309 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom1308 %388 = load i64, ptr %arrayidx1309, align 8 - %cmp.i3088 = icmp ugt i64 %388, -281474976710657 + %cmp.i3086 = icmp ugt i64 %388, -281474976710657 store ptr %add.ptr.sink.sink, ptr %currentIP_.i.i, align 8 - br i1 %cmp.i3088, label %if.then1312, label %if.else1437 + br i1 %cmp.i3086, label %if.then1312, label %if.else1437 if.then1312: ; preds = %putById %op21314 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 2 @@ -4869,8 +4865,8 @@ if.then1312: ; preds = %putById %idxprom1315 = zext i8 %389 to i64 %arrayidx1316 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom1315 %agg.tmp1313.sroa.0.0.copyload = load i64, ptr %arrayidx1316, align 8 - %shr.i.i3090 = ashr i64 %agg.tmp1313.sroa.0.0.copyload, 47 - switch i64 %shr.i.i3090, label %sw.default.i [ + %shr.i.i3088 = ashr i64 %agg.tmp1313.sroa.0.0.copyload, 47 + switch i64 %shr.i.i3088, label %sw.default.i [ i64 -14, label %_ZN6hermes2vm13HermesValue3217encodeHermesValueENS0_11HermesValueERNS0_7RuntimeE.exit i64 -12, label %sw.bb3.i i64 -11, label %sw.bb6.i @@ -4891,27 +4887,27 @@ sw.bb6.i: ; preds = %if.then1312 br label %_ZN6hermes2vm13HermesValue3217encodeHermesValueENS0_11HermesValueERNS0_7RuntimeE.exit sw.bb9.i: ; preds = %if.then1312 - %and.i.i3096 = and i64 %agg.tmp1313.sroa.0.0.copyload, 1 - %tobool.i.not.i = icmp eq i64 %and.i.i3096, 0 - %or.i.i.i3097 = select i1 %tobool.i.not.i, i32 6, i32 22 + %and.i.i3094 = and i64 %agg.tmp1313.sroa.0.0.copyload, 1 + %tobool.i.not.i = icmp eq i64 %and.i.i3094, 0 + %or.i.i.i3095 = select i1 %tobool.i.not.i, i32 6, i32 22 br label %_ZN6hermes2vm13HermesValue3217encodeHermesValueENS0_11HermesValueERNS0_7RuntimeE.exit sw.bb13.i: ; preds = %if.then1312 - %conv.i.i3095 = trunc i64 %agg.tmp1313.sroa.0.0.copyload to i32 - %shl.i.i.i = shl i32 %conv.i.i3095, 3 + %conv.i.i3093 = trunc i64 %agg.tmp1313.sroa.0.0.copyload to i32 + %shl.i.i.i = shl i32 %conv.i.i3093, 3 %or.i.i4.i = or disjoint i32 %shl.i.i.i, 5 br label %_ZN6hermes2vm13HermesValue3217encodeHermesValueENS0_11HermesValueERNS0_7RuntimeE.exit sw.bb19.i: ; preds = %if.then1312, %if.then1312 %sub.i.i.i.i.i.i = sub i64 %agg.tmp1313.sroa.0.0.copyload, %6 - %conv.i.i.i.i.i.i3093 = trunc i64 %sub.i.i.i.i.i.i to i32 - %or.i.i.i.i3094 = or i32 %conv.i.i.i.i.i.i3093, 2 + %conv.i.i.i.i.i.i3091 = trunc i64 %sub.i.i.i.i.i.i to i32 + %or.i.i.i.i3092 = or i32 %conv.i.i.i.i.i.i3091, 2 br label %_ZN6hermes2vm13HermesValue3217encodeHermesValueENS0_11HermesValueERNS0_7RuntimeE.exit sw.bb23.i: ; preds = %if.then1312, %if.then1312 %sub.i.i.i.i.i6.i = sub i64 %agg.tmp1313.sroa.0.0.copyload, %6 %conv.i.i.i.i.i7.i = trunc i64 %sub.i.i.i.i.i6.i to i32 - %or.i.i.i8.i3092 = or i32 %conv.i.i.i.i.i7.i, 1 + %or.i.i.i8.i3090 = or i32 %conv.i.i.i.i.i7.i, 1 br label %_ZN6hermes2vm13HermesValue3217encodeHermesValueENS0_11HermesValueERNS0_7RuntimeE.exit sw.bb27.i: ; preds = %if.then1312, %if.then1312 @@ -4921,30 +4917,30 @@ sw.bb27.i: ; preds = %if.then1312, %if.th sw.default.i: ; preds = %if.then1312 %390 = bitcast i64 %agg.tmp1313.sroa.0.0.copyload to double - %conv.i.i.i.i.i3098 = fptosi double %390 to i32 - %shl.i.i.i.i.i = shl i32 %conv.i.i.i.i.i3098, 3 + %conv.i.i.i.i.i3096 = fptosi double %390 to i32 + %shl.i.i.i.i.i = shl i32 %conv.i.i.i.i.i3096, 3 %shr.i.i.i.i.i = ashr exact i32 %shl.i.i.i.i.i, 3 %conv.i12.i = sitofp i32 %shr.i.i.i.i.i to double %391 = bitcast double %conv.i12.i to i64 - %cmp.i.i3099 = icmp eq i64 %agg.tmp1313.sroa.0.0.copyload, %391 - br i1 %cmp.i.i3099, label %if.then.i.i3101, label %if.end.i.i3100 + %cmp.i.i3097 = icmp eq i64 %agg.tmp1313.sroa.0.0.copyload, %391 + br i1 %cmp.i.i3097, label %if.then.i.i3099, label %if.end.i.i3098 -if.then.i.i3101: ; preds = %sw.default.i +if.then.i.i3099: ; preds = %sw.default.i %or.i.i16.i = or disjoint i32 %shl.i.i.i.i.i, 4 br label %_ZN6hermes2vm13HermesValue3217encodeHermesValueENS0_11HermesValueERNS0_7RuntimeE.exit -if.end.i.i3100: ; preds = %sw.default.i +if.end.i.i3098: ; preds = %sw.default.i %392 = load ptr, ptr %level_.i.i.i.i.i.i.i.i.i, align 8 %add.ptr.i.i.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %392, i64 16 %393 = load ptr, ptr %effectiveEnd_.i.i.i.i.i.i.i.i.i.i, align 8 %cmp.i.i.i.i.i.i.i.i.i = icmp ugt ptr %add.ptr.i.i.i.i.i.i.i.i.i, %393 br i1 %cmp.i.i.i.i.i.i.i.i.i, label %cond.true.i.i.i.i.i.i.i.i, label %cond.false.i.i.i.i.i.i.i.i -cond.true.i.i.i.i.i.i.i.i: ; preds = %if.end.i.i3100 +cond.true.i.i.i.i.i.i.i.i: ; preds = %if.end.i.i3098 %call3.i.i.i.i.i.i.i.i = call noundef ptr @_ZN6hermes2vm7HadesGC9allocSlowEj(ptr noundef nonnull align 8 dereferenceable(8152) %heapStorage_.i.i, i32 noundef 16) #10 br label %_ZN6hermes2vm11BoxedDouble6createEdRNS0_7RuntimeE.exit.i.i -cond.false.i.i.i.i.i.i.i.i: ; preds = %if.end.i.i3100 +cond.false.i.i.i.i.i.i.i.i: ; preds = %if.end.i.i3098 store ptr %add.ptr.i.i.i.i.i.i.i.i.i, ptr %level_.i.i.i.i.i.i.i.i.i, align 8 br label %_ZN6hermes2vm11BoxedDouble6createEdRNS0_7RuntimeE.exit.i.i @@ -4957,135 +4953,135 @@ _ZN6hermes2vm11BoxedDouble6createEdRNS0_7RuntimeE.exit.i.i: ; preds = %cond.fals %sub.i.i.i.i.i13.i = sub i64 %394, %6 %conv.i.i.i.i.i14.i = trunc i64 %sub.i.i.i.i.i13.i to i32 %or.i.i.i15.i = or i32 %conv.i.i.i.i.i14.i, 3 - %.pre5336 = load ptr, ptr %currentIP_.i.i, align 8 + %.pre5334 = load ptr, ptr %currentIP_.i.i, align 8 br label %_ZN6hermes2vm13HermesValue3217encodeHermesValueENS0_11HermesValueERNS0_7RuntimeE.exit -_ZN6hermes2vm13HermesValue3217encodeHermesValueENS0_11HermesValueERNS0_7RuntimeE.exit: ; preds = %if.then1312, %sw.bb3.i, %sw.bb6.i, %sw.bb9.i, %sw.bb13.i, %sw.bb19.i, %sw.bb23.i, %sw.bb27.i, %if.then.i.i3101, %_ZN6hermes2vm11BoxedDouble6createEdRNS0_7RuntimeE.exit.i.i - %395 = phi ptr [ %add.ptr.sink.sink, %sw.bb27.i ], [ %add.ptr.sink.sink, %sw.bb23.i ], [ %add.ptr.sink.sink, %sw.bb19.i ], [ %add.ptr.sink.sink, %sw.bb13.i ], [ %add.ptr.sink.sink, %sw.bb9.i ], [ %add.ptr.sink.sink, %sw.bb6.i ], [ %add.ptr.sink.sink, %sw.bb3.i ], [ %add.ptr.sink.sink, %if.then1312 ], [ %add.ptr.sink.sink, %if.then.i.i3101 ], [ %.pre5336, %_ZN6hermes2vm11BoxedDouble6createEdRNS0_7RuntimeE.exit.i.i ] - %retval.sroa.0.0.i3091 = phi i32 [ %conv.i.i.i.i.i11.i, %sw.bb27.i ], [ %or.i.i.i8.i3092, %sw.bb23.i ], [ %or.i.i.i.i3094, %sw.bb19.i ], [ %or.i.i4.i, %sw.bb13.i ], [ %or.i.i.i3097, %sw.bb9.i ], [ 15, %sw.bb6.i ], [ 14, %sw.bb3.i ], [ 7, %if.then1312 ], [ %or.i.i16.i, %if.then.i.i3101 ], [ %or.i.i.i15.i, %_ZN6hermes2vm11BoxedDouble6createEdRNS0_7RuntimeE.exit.i.i ] +_ZN6hermes2vm13HermesValue3217encodeHermesValueENS0_11HermesValueERNS0_7RuntimeE.exit: ; preds = %if.then1312, %sw.bb3.i, %sw.bb6.i, %sw.bb9.i, %sw.bb13.i, %sw.bb19.i, %sw.bb23.i, %sw.bb27.i, %if.then.i.i3099, %_ZN6hermes2vm11BoxedDouble6createEdRNS0_7RuntimeE.exit.i.i + %395 = phi ptr [ %add.ptr.sink.sink, %sw.bb27.i ], [ %add.ptr.sink.sink, %sw.bb23.i ], [ %add.ptr.sink.sink, %sw.bb19.i ], [ %add.ptr.sink.sink, %sw.bb13.i ], [ %add.ptr.sink.sink, %sw.bb9.i ], [ %add.ptr.sink.sink, %sw.bb6.i ], [ %add.ptr.sink.sink, %sw.bb3.i ], [ %add.ptr.sink.sink, %if.then1312 ], [ %add.ptr.sink.sink, %if.then.i.i3099 ], [ %.pre5334, %_ZN6hermes2vm11BoxedDouble6createEdRNS0_7RuntimeE.exit.i.i ] + %retval.sroa.0.0.i3089 = phi i32 [ %conv.i.i.i.i.i11.i, %sw.bb27.i ], [ %or.i.i.i8.i3090, %sw.bb23.i ], [ %or.i.i.i.i3092, %sw.bb19.i ], [ %or.i.i4.i, %sw.bb13.i ], [ %or.i.i.i3095, %sw.bb9.i ], [ 15, %sw.bb6.i ], [ 14, %sw.bb3.i ], [ 7, %if.then1312 ], [ %or.i.i16.i, %if.then.i.i3099 ], [ %or.i.i.i15.i, %_ZN6hermes2vm11BoxedDouble6createEdRNS0_7RuntimeE.exit.i.i ] %op11323 = getelementptr inbounds i8, ptr %395, i64 1 %396 = load i8, ptr %op11323, align 1 %idxprom1324 = zext i8 %396 to i64 %arrayidx1325 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom1324 %agg.tmp1322.sroa.0.0.copyload = load i64, ptr %arrayidx1325, align 8 - %and.i.i3103 = and i64 %agg.tmp1322.sroa.0.0.copyload, 281474976710655 - %397 = inttoptr i64 %and.i.i3103 to ptr + %and.i.i3101 = and i64 %agg.tmp1322.sroa.0.0.copyload, 281474976710655 + %397 = inttoptr i64 %and.i.i3101 to ptr %op31329 = getelementptr inbounds i8, ptr %395, i64 3 %398 = load i8, ptr %op31329, align 1 - %add.ptr.i.i.i.i3104 = getelementptr inbounds i8, ptr %curCodeBlock.4, i64 40 + %add.ptr.i.i.i.i3102 = getelementptr inbounds i8, ptr %curCodeBlock.4, i64 40 %writePropCacheOffset_.i = getelementptr inbounds i8, ptr %curCodeBlock.4, i64 32 %399 = load i32, ptr %writePropCacheOffset_.i, align 8 - %conv.i3105 = zext i8 %398 to i32 - %add.i3106 = add i32 %399, %conv.i3105 - %idxprom.i3107 = zext i32 %add.i3106 to i64 - %arrayidx.i3108 = getelementptr inbounds %"struct.hermes::vm::PropertyCacheEntry", ptr %add.ptr.i.i.i.i3104, i64 %idxprom.i3107 - %clazz_.i3109 = getelementptr inbounds i8, ptr %397, i64 12 - %400 = load i32, ptr %clazz_.i3109, align 4 - %401 = load i32, ptr %arrayidx.i3108, align 4 - %cmp.i.i3111 = icmp eq i32 %401, %400 - br i1 %cmp.i.i3111, label %if.then1337, label %if.end1346 + %conv.i3103 = zext i8 %398 to i32 + %add.i3104 = add i32 %399, %conv.i3103 + %idxprom.i3105 = zext i32 %add.i3104 to i64 + %arrayidx.i3106 = getelementptr inbounds %"struct.hermes::vm::PropertyCacheEntry", ptr %add.ptr.i.i.i.i3102, i64 %idxprom.i3105 + %clazz_.i3107 = getelementptr inbounds i8, ptr %397, i64 12 + %400 = load i32, ptr %clazz_.i3107, align 4 + %401 = load i32, ptr %arrayidx.i3106, align 4 + %cmp.i.i3109 = icmp eq i32 %401, %400 + br i1 %cmp.i.i3109, label %if.then1337, label %if.end1346 if.then1337: ; preds = %_ZN6hermes2vm13HermesValue3217encodeHermesValueENS0_11HermesValueERNS0_7RuntimeE.exit - %slot1339 = getelementptr inbounds i8, ptr %arrayidx.i3108, i64 4 + %slot1339 = getelementptr inbounds i8, ptr %arrayidx.i3106, i64 4 %402 = load i32, ptr %slot1339, align 4 - %cmp.i3113 = icmp ult i32 %402, 5 - br i1 %cmp.i3113, label %if.then.i3123, label %if.end.i3114 + %cmp.i3111 = icmp ult i32 %402, 5 + br i1 %cmp.i3111, label %if.then.i3121, label %if.end.i3112 -if.then.i3123: ; preds = %if.then1337 - %directProps_.i.i3124 = getelementptr inbounds i8, ptr %397, i64 20 - %idxprom.i3125 = zext nneg i32 %402 to i64 - %arrayidx.i3126 = getelementptr inbounds %"class.hermes::vm::GCHermesValueBase", ptr %directProps_.i.i3124, i64 %idxprom.i3125 +if.then.i3121: ; preds = %if.then1337 + %directProps_.i.i3122 = getelementptr inbounds i8, ptr %397, i64 20 + %idxprom.i3123 = zext nneg i32 %402 to i64 + %arrayidx.i3124 = getelementptr inbounds %"class.hermes::vm::GCHermesValueBase", ptr %directProps_.i.i3122, i64 %idxprom.i3123 %403 = load ptr, ptr %youngGen_.i.i.i.i, align 8 - %404 = ptrtoint ptr %arrayidx.i3126 to i64 - %and.i.i.i.i.i3128 = and i64 %404, 1125899902648320 - %405 = inttoptr i64 %and.i.i.i.i.i3128 to ptr - %cmp.i.i.i.i3129 = icmp eq ptr %403, %405 - br i1 %cmp.i.i.i.i3129, label %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE1EEEvPS1_RNS0_7RuntimeEjS4_.exit, label %return.sink.split.i - -if.end.i3114: ; preds = %if.then1337 - %propStorage_.i3115 = getelementptr inbounds i8, ptr %397, i64 16 - %agg.tmp.sroa.0.0.copyload.i.i.i3116 = load i32, ptr %propStorage_.i3115, align 4 - %conv.i.i.i.i3117 = zext i32 %agg.tmp.sroa.0.0.copyload.i.i.i3116 to i64 - %add.i.i.i.i3118 = add i64 %conv.i.i.i.i3117, %6 - %406 = inttoptr i64 %add.i.i.i.i3118 to ptr - %sub.i3119 = add i32 %402, -5 - %add.ptr.i.i.i.i.i3120 = getelementptr inbounds i8, ptr %406, i64 8 - %idxprom.i.i3121 = zext i32 %sub.i3119 to i64 - %arrayidx.i.i3122 = getelementptr inbounds %"class.hermes::vm::GCHermesValueBase", ptr %add.ptr.i.i.i.i.i3120, i64 %idxprom.i.i3121 + %404 = ptrtoint ptr %arrayidx.i3124 to i64 + %and.i.i.i.i.i3126 = and i64 %404, 1125899902648320 + %405 = inttoptr i64 %and.i.i.i.i.i3126 to ptr + %cmp.i.i.i.i3127 = icmp eq ptr %403, %405 + br i1 %cmp.i.i.i.i3127, label %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE1EEEvPS1_RNS0_7RuntimeEjS4_.exit, label %return.sink.split.i + +if.end.i3112: ; preds = %if.then1337 + %propStorage_.i3113 = getelementptr inbounds i8, ptr %397, i64 16 + %agg.tmp.sroa.0.0.copyload.i.i.i3114 = load i32, ptr %propStorage_.i3113, align 4 + %conv.i.i.i.i3115 = zext i32 %agg.tmp.sroa.0.0.copyload.i.i.i3114 to i64 + %add.i.i.i.i3116 = add i64 %conv.i.i.i.i3115, %6 + %406 = inttoptr i64 %add.i.i.i.i3116 to ptr + %sub.i3117 = add i32 %402, -5 + %add.ptr.i.i.i.i.i3118 = getelementptr inbounds i8, ptr %406, i64 8 + %idxprom.i.i3119 = zext i32 %sub.i3117 to i64 + %arrayidx.i.i3120 = getelementptr inbounds %"class.hermes::vm::GCHermesValueBase", ptr %add.ptr.i.i.i.i.i3118, i64 %idxprom.i.i3119 %407 = load ptr, ptr %youngGen_.i.i.i.i, align 8 - %408 = ptrtoint ptr %arrayidx.i.i3122 to i64 + %408 = ptrtoint ptr %arrayidx.i.i3120 to i64 %and.i.i.i.i.i.i = and i64 %408, -4194304 %409 = inttoptr i64 %and.i.i.i.i.i.i to ptr %cmp.i.i.i.i.i = icmp eq ptr %407, %409 br i1 %cmp.i.i.i.i.i, label %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE1EEEvPS1_RNS0_7RuntimeEjS4_.exit, label %return.sink.split.i -return.sink.split.i: ; preds = %if.end.i3114, %if.then.i3123 - %arrayidx.i.sink8.i = phi ptr [ %arrayidx.i3126, %if.then.i3123 ], [ %arrayidx.i.i3122, %if.end.i3114 ] - call void @_ZN6hermes2vm7HadesGC16writeBarrierSlowEPKNS0_17GCHermesValueBaseINS0_13HermesValue32EEES3_(ptr noundef nonnull align 8 dereferenceable(8152) %heapStorage_.i.i, ptr noundef nonnull %arrayidx.i.sink8.i, i32 %retval.sroa.0.0.i3091) #10 +return.sink.split.i: ; preds = %if.end.i3112, %if.then.i3121 + %arrayidx.i.sink8.i = phi ptr [ %arrayidx.i3124, %if.then.i3121 ], [ %arrayidx.i.i3120, %if.end.i3112 ] + call void @_ZN6hermes2vm7HadesGC16writeBarrierSlowEPKNS0_17GCHermesValueBaseINS0_13HermesValue32EEES3_(ptr noundef nonnull align 8 dereferenceable(8152) %heapStorage_.i.i, ptr noundef nonnull %arrayidx.i.sink8.i, i32 %retval.sroa.0.0.i3089) #10 br label %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE1EEEvPS1_RNS0_7RuntimeEjS4_.exit -_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE1EEEvPS1_RNS0_7RuntimeEjS4_.exit: ; preds = %if.then.i3123, %if.end.i3114, %return.sink.split.i - %arrayidx.i.sink.i = phi ptr [ %arrayidx.i3126, %if.then.i3123 ], [ %arrayidx.i.i3122, %if.end.i3114 ], [ %arrayidx.i.sink8.i, %return.sink.split.i ] - store i32 %retval.sroa.0.0.i3091, ptr %arrayidx.i.sink.i, align 4 +_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE1EEEvPS1_RNS0_7RuntimeEjS4_.exit: ; preds = %if.then.i3121, %if.end.i3112, %return.sink.split.i + %arrayidx.i.sink.i = phi ptr [ %arrayidx.i3124, %if.then.i3121 ], [ %arrayidx.i.i3120, %if.end.i3112 ], [ %arrayidx.i.sink8.i, %return.sink.split.i ] + store i32 %retval.sroa.0.0.i3089, ptr %arrayidx.i.sink.i, align 4 br label %indirectgoto.backedge if.end1346: ; preds = %_ZN6hermes2vm13HermesValue3217encodeHermesValueENS0_11HermesValueERNS0_7RuntimeE.exit %410 = load ptr, ptr %curCodeBlock.4, align 8 - %stringIDMap_.i3131 = getelementptr inbounds i8, ptr %410, i64 24 - %conv.i3132 = zext i32 %idVal.4 to i64 - %411 = load ptr, ptr %stringIDMap_.i3131, align 8 - %add.ptr.i.i3133 = getelementptr inbounds %"class.hermes::vm::RootSymbolID", ptr %411, i64 %conv.i3132 - %retval.sroa.0.0.copyload.i3134 = load i32, ptr %add.ptr.i.i3133, align 4 - %conv.i.i.i.i3139 = zext i32 %400 to i64 - %add.i.i.i.i3140 = add i64 %conv.i.i.i.i3139, %6 - %412 = inttoptr i64 %add.i.i.i.i3140 to ptr - %propertyMap_.i.i3141 = getelementptr inbounds i8, ptr %412, i64 16 - %413 = load i32, ptr %propertyMap_.i.i3141, align 4 - %cmp.i.i.not.i.i3142 = icmp eq i32 %413, 0 - br i1 %cmp.i.i.not.i.i3142, label %if.end1405, label %if.then.i.i3143 - -if.then.i.i3143: ; preds = %if.end1346 - %conv.i.i.i.i.i3144 = zext i32 %413 to i64 - %add.i.i.i.i.i3145 = add i64 %conv.i.i.i.i.i3144, %6 - %414 = inttoptr i64 %add.i.i.i.i.i3145 to ptr - %call.i.i.i3146 = call { i8, ptr } @_ZN6hermes2vm15DictPropertyMap14lookupEntryForEPS1_NS0_8SymbolIDE(ptr noundef %414, i32 %retval.sroa.0.0.copyload.i3134) #10 - %415 = extractvalue { i8, ptr } %call.i.i.i3146, 0 + %stringIDMap_.i3129 = getelementptr inbounds i8, ptr %410, i64 24 + %conv.i3130 = zext i32 %idVal.4 to i64 + %411 = load ptr, ptr %stringIDMap_.i3129, align 8 + %add.ptr.i.i3131 = getelementptr inbounds %"class.hermes::vm::RootSymbolID", ptr %411, i64 %conv.i3130 + %retval.sroa.0.0.copyload.i3132 = load i32, ptr %add.ptr.i.i3131, align 4 + %conv.i.i.i.i3137 = zext i32 %400 to i64 + %add.i.i.i.i3138 = add i64 %conv.i.i.i.i3137, %6 + %412 = inttoptr i64 %add.i.i.i.i3138 to ptr + %propertyMap_.i.i3139 = getelementptr inbounds i8, ptr %412, i64 16 + %413 = load i32, ptr %propertyMap_.i.i3139, align 4 + %cmp.i.i.not.i.i3140 = icmp eq i32 %413, 0 + br i1 %cmp.i.i.not.i.i3140, label %if.end1405, label %if.then.i.i3141 + +if.then.i.i3141: ; preds = %if.end1346 + %conv.i.i.i.i.i3142 = zext i32 %413 to i64 + %add.i.i.i.i.i3143 = add i64 %conv.i.i.i.i.i3142, %6 + %414 = inttoptr i64 %add.i.i.i.i.i3143 to ptr + %call.i.i.i3144 = call { i8, ptr } @_ZN6hermes2vm15DictPropertyMap14lookupEntryForEPS1_NS0_8SymbolIDE(ptr noundef %414, i32 %retval.sroa.0.0.copyload.i3132) #10 + %415 = extractvalue { i8, ptr } %call.i.i.i3144, 0 %416 = and i8 %415, 1 - %tobool.not.i.not.i.i3147 = icmp eq i8 %416, 0 - br i1 %tobool.not.i.not.i.i3147, label %land.rhs1358, label %land.lhs.true1362 + %tobool.not.i.not.i.i3145 = icmp eq i8 %416, 0 + br i1 %tobool.not.i.not.i.i3145, label %land.rhs1358, label %land.lhs.true1362 -land.rhs1358: ; preds = %if.then.i.i3143 +land.rhs1358: ; preds = %if.then.i.i3141 %417 = load ptr, ptr %currentIP_.i.i, align 8 br label %if.end1405 -land.lhs.true1362: ; preds = %if.then.i.i3143 - %418 = extractvalue { i8, ptr } %call.i.i.i3146, 1 - %add.ptr.i.i.i.i.i.i.i3149 = getelementptr inbounds i8, ptr %414, i64 28 - %descriptorCapacity_.i.i.i.i.i.i.i.i3150 = getelementptr inbounds i8, ptr %414, i64 4 - %419 = load i32, ptr %descriptorCapacity_.i.i.i.i.i.i.i.i3150, align 4 - %conv.i.i.i.i.i.i.i.i3151 = zext i32 %419 to i64 - %add.ptr.i.i.i.i.i.i3152 = getelementptr inbounds %"struct.std::pair.341", ptr %add.ptr.i.i.i.i.i.i.i3149, i64 %conv.i.i.i.i.i.i.i.i3151 - %sub.ptr.lhs.cast.i.i.i3153 = ptrtoint ptr %418 to i64 - %sub.ptr.rhs.cast.i.i.i3154 = ptrtoint ptr %add.ptr.i.i.i.i.i.i3152 to i64 - %sub.ptr.sub.i.i.i3155 = sub i64 %sub.ptr.lhs.cast.i.i.i3153, %sub.ptr.rhs.cast.i.i.i3154 - %sub.ptr.div.i.i.i3156 = lshr exact i64 %sub.ptr.sub.i.i.i3155, 2 - %420 = and i64 %sub.ptr.div.i.i.i3156, 4294967295 - %agg.tmp.sroa.0.0.copyload.i.i5.i.i3157 = load i32, ptr %propertyMap_.i.i3141, align 4 - %conv.i.i.i6.i.i3158 = zext i32 %agg.tmp.sroa.0.0.copyload.i.i5.i.i3157 to i64 - %add.i.i.i7.i.i3159 = add i64 %conv.i.i.i6.i.i3158, %6 - %421 = inttoptr i64 %add.i.i.i7.i.i3159 to ptr - %add.ptr.i.i.i.i.i8.i.i3160 = getelementptr inbounds i8, ptr %421, i64 28 - %descriptorCapacity_.i.i.i.i.i.i9.i.i3161 = getelementptr inbounds i8, ptr %421, i64 4 - %422 = load i32, ptr %descriptorCapacity_.i.i.i.i.i.i9.i.i3161, align 4 - %conv.i.i.i.i.i.i10.i.i3162 = zext i32 %422 to i64 - %add.ptr.i.i.i.i11.i.i3163 = getelementptr inbounds %"struct.std::pair.341", ptr %add.ptr.i.i.i.i.i8.i.i3160, i64 %conv.i.i.i.i.i.i10.i.i3162 - %add.ptr.i.i.i3164 = getelementptr inbounds %"class.hermes::vm::detail::DPMHashPair", ptr %add.ptr.i.i.i.i11.i.i3163, i64 %420 - %bf.load.i.i.i.i3165 = load i32, ptr %add.ptr.i.i.i3164, align 4 - %bf.lshr.i.i.i.i3166 = lshr i32 %bf.load.i.i.i.i3165, 8 - %sub.i.i.i.i3167 = add nsw i32 %bf.lshr.i.i.i.i3166, -2 - %idx.ext3.i.i.i3168 = zext i32 %sub.i.i.i.i3167 to i64 - %second.i.i3169 = getelementptr inbounds %"struct.std::pair.341", ptr %add.ptr.i.i.i.i.i8.i.i3160, i64 %idx.ext3.i.i.i3168, i32 1 - %423 = load i64, ptr %second.i.i3169, align 4 +land.lhs.true1362: ; preds = %if.then.i.i3141 + %418 = extractvalue { i8, ptr } %call.i.i.i3144, 1 + %add.ptr.i.i.i.i.i.i.i3147 = getelementptr inbounds i8, ptr %414, i64 28 + %descriptorCapacity_.i.i.i.i.i.i.i.i3148 = getelementptr inbounds i8, ptr %414, i64 4 + %419 = load i32, ptr %descriptorCapacity_.i.i.i.i.i.i.i.i3148, align 4 + %conv.i.i.i.i.i.i.i.i3149 = zext i32 %419 to i64 + %add.ptr.i.i.i.i.i.i3150 = getelementptr inbounds %"struct.std::pair.341", ptr %add.ptr.i.i.i.i.i.i.i3147, i64 %conv.i.i.i.i.i.i.i.i3149 + %sub.ptr.lhs.cast.i.i.i3151 = ptrtoint ptr %418 to i64 + %sub.ptr.rhs.cast.i.i.i3152 = ptrtoint ptr %add.ptr.i.i.i.i.i.i3150 to i64 + %sub.ptr.sub.i.i.i3153 = sub i64 %sub.ptr.lhs.cast.i.i.i3151, %sub.ptr.rhs.cast.i.i.i3152 + %sub.ptr.div.i.i.i3154 = lshr exact i64 %sub.ptr.sub.i.i.i3153, 2 + %420 = and i64 %sub.ptr.div.i.i.i3154, 4294967295 + %agg.tmp.sroa.0.0.copyload.i.i5.i.i3155 = load i32, ptr %propertyMap_.i.i3139, align 4 + %conv.i.i.i6.i.i3156 = zext i32 %agg.tmp.sroa.0.0.copyload.i.i5.i.i3155 to i64 + %add.i.i.i7.i.i3157 = add i64 %conv.i.i.i6.i.i3156, %6 + %421 = inttoptr i64 %add.i.i.i7.i.i3157 to ptr + %add.ptr.i.i.i.i.i8.i.i3158 = getelementptr inbounds i8, ptr %421, i64 28 + %descriptorCapacity_.i.i.i.i.i.i9.i.i3159 = getelementptr inbounds i8, ptr %421, i64 4 + %422 = load i32, ptr %descriptorCapacity_.i.i.i.i.i.i9.i.i3159, align 4 + %conv.i.i.i.i.i.i10.i.i3160 = zext i32 %422 to i64 + %add.ptr.i.i.i.i11.i.i3161 = getelementptr inbounds %"struct.std::pair.341", ptr %add.ptr.i.i.i.i.i8.i.i3158, i64 %conv.i.i.i.i.i.i10.i.i3160 + %add.ptr.i.i.i3162 = getelementptr inbounds %"class.hermes::vm::detail::DPMHashPair", ptr %add.ptr.i.i.i.i11.i.i3161, i64 %420 + %bf.load.i.i.i.i3163 = load i32, ptr %add.ptr.i.i.i3162, align 4 + %bf.lshr.i.i.i.i3164 = lshr i32 %bf.load.i.i.i.i3163, 8 + %sub.i.i.i.i3165 = add nsw i32 %bf.lshr.i.i.i.i3164, -2 + %idx.ext3.i.i.i3166 = zext i32 %sub.i.i.i.i3165 to i64 + %second.i.i3167 = getelementptr inbounds %"struct.std::pair.341", ptr %add.ptr.i.i.i.i.i8.i.i3158, i64 %idx.ext3.i.i.i3166, i32 1 + %423 = load i64, ptr %second.i.i3167, align 4 %desc1351.sroa.3.0.extract.shift = lshr i64 %423, 32 %desc1351.sroa.3.0.extract.trunc = trunc i64 %desc1351.sroa.3.0.extract.shift to i32 %424 = load ptr, ptr %currentIP_.i.i, align 8 @@ -5094,60 +5090,60 @@ land.lhs.true1362: ; preds = %if.then.i.i3143 br i1 %or.cond2352, label %if.then1377, label %if.end1405 if.then1377: ; preds = %land.lhs.true1362 - %flags_.i3184 = getelementptr inbounds i8, ptr %412, i64 10 - %bf.load.i3185 = load i8, ptr %flags_.i3184, align 2 - %bf.clear.i3186 = and i8 %bf.load.i3185, 1 - %tobool.i3187 = icmp ne i8 %bf.clear.i3186, 0 + %flags_.i3182 = getelementptr inbounds i8, ptr %412, i64 10 + %bf.load.i3183 = load i8, ptr %flags_.i3182, align 2 + %bf.clear.i3184 = and i8 %bf.load.i3183, 1 + %tobool.i3185 = icmp ne i8 %bf.clear.i3184, 0 %cmp1387 = icmp eq i8 %398, 0 - %or.cond1.not = or i1 %cmp1387, %tobool.i3187 + %or.cond1.not = or i1 %cmp1387, %tobool.i3185 br i1 %or.cond1.not, label %if.end1397, label %if.then1389 if.then1389: ; preds = %if.then1377 - store i32 %400, ptr %arrayidx.i3108, align 4 - %slot1396 = getelementptr inbounds i8, ptr %arrayidx.i3108, i64 4 + store i32 %400, ptr %arrayidx.i3106, align 4 + %slot1396 = getelementptr inbounds i8, ptr %arrayidx.i3106, i64 4 store i32 %desc1351.sroa.3.0.extract.trunc, ptr %slot1396, align 4 br label %if.end1397 if.end1397: ; preds = %if.then1389, %if.then1377 store ptr %424, ptr %currentIP_.i.i, align 8 - %cmp.i3189 = icmp ult i32 %desc1351.sroa.3.0.extract.trunc, 5 - br i1 %cmp.i3189, label %if.then.i3206, label %if.end.i3190 + %cmp.i3187 = icmp ult i32 %desc1351.sroa.3.0.extract.trunc, 5 + br i1 %cmp.i3187, label %if.then.i3204, label %if.end.i3188 -if.then.i3206: ; preds = %if.end1397 - %directProps_.i.i3207 = getelementptr inbounds i8, ptr %397, i64 20 - %arrayidx.i3209 = getelementptr inbounds %"class.hermes::vm::GCHermesValueBase", ptr %directProps_.i.i3207, i64 %desc1351.sroa.3.0.extract.shift +if.then.i3204: ; preds = %if.end1397 + %directProps_.i.i3205 = getelementptr inbounds i8, ptr %397, i64 20 + %arrayidx.i3207 = getelementptr inbounds %"class.hermes::vm::GCHermesValueBase", ptr %directProps_.i.i3205, i64 %desc1351.sroa.3.0.extract.shift %426 = load ptr, ptr %youngGen_.i.i.i.i, align 8 - %427 = ptrtoint ptr %arrayidx.i3209 to i64 - %and.i.i.i.i.i3211 = and i64 %427, 1125899902648320 - %428 = inttoptr i64 %and.i.i.i.i.i3211 to ptr - %cmp.i.i.i.i3212 = icmp eq ptr %426, %428 - br i1 %cmp.i.i.i.i3212, label %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEEvPS1_RNS0_7RuntimeEjS4_.exit, label %return.sink.split.i3202 - -if.end.i3190: ; preds = %if.end1397 - %propStorage_.i3191 = getelementptr inbounds i8, ptr %397, i64 16 - %agg.tmp.sroa.0.0.copyload.i.i.i3192 = load i32, ptr %propStorage_.i3191, align 4 - %conv.i.i.i.i3193 = zext i32 %agg.tmp.sroa.0.0.copyload.i.i.i3192 to i64 - %add.i.i.i.i3194 = add i64 %conv.i.i.i.i3193, %6 - %429 = inttoptr i64 %add.i.i.i.i3194 to ptr - %sub.i3195 = add nuw nsw i64 %desc1351.sroa.3.0.extract.shift, 4294967291 - %add.ptr.i.i.i.i.i3196 = getelementptr inbounds i8, ptr %429, i64 8 - %idxprom.i.i3197 = and i64 %sub.i3195, 4294967295 - %arrayidx.i.i3198 = getelementptr inbounds %"class.hermes::vm::GCHermesValueBase", ptr %add.ptr.i.i.i.i.i3196, i64 %idxprom.i.i3197 + %427 = ptrtoint ptr %arrayidx.i3207 to i64 + %and.i.i.i.i.i3209 = and i64 %427, 1125899902648320 + %428 = inttoptr i64 %and.i.i.i.i.i3209 to ptr + %cmp.i.i.i.i3210 = icmp eq ptr %426, %428 + br i1 %cmp.i.i.i.i3210, label %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEEvPS1_RNS0_7RuntimeEjS4_.exit, label %return.sink.split.i3200 + +if.end.i3188: ; preds = %if.end1397 + %propStorage_.i3189 = getelementptr inbounds i8, ptr %397, i64 16 + %agg.tmp.sroa.0.0.copyload.i.i.i3190 = load i32, ptr %propStorage_.i3189, align 4 + %conv.i.i.i.i3191 = zext i32 %agg.tmp.sroa.0.0.copyload.i.i.i3190 to i64 + %add.i.i.i.i3192 = add i64 %conv.i.i.i.i3191, %6 + %429 = inttoptr i64 %add.i.i.i.i3192 to ptr + %sub.i3193 = add nuw nsw i64 %desc1351.sroa.3.0.extract.shift, 4294967291 + %add.ptr.i.i.i.i.i3194 = getelementptr inbounds i8, ptr %429, i64 8 + %idxprom.i.i3195 = and i64 %sub.i3193, 4294967295 + %arrayidx.i.i3196 = getelementptr inbounds %"class.hermes::vm::GCHermesValueBase", ptr %add.ptr.i.i.i.i.i3194, i64 %idxprom.i.i3195 %430 = load ptr, ptr %youngGen_.i.i.i.i, align 8 - %431 = ptrtoint ptr %arrayidx.i.i3198 to i64 - %and.i.i.i.i.i.i3200 = and i64 %431, -4194304 - %432 = inttoptr i64 %and.i.i.i.i.i.i3200 to ptr - %cmp.i.i.i.i.i3201 = icmp eq ptr %430, %432 - br i1 %cmp.i.i.i.i.i3201, label %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEEvPS1_RNS0_7RuntimeEjS4_.exit, label %return.sink.split.i3202 - -return.sink.split.i3202: ; preds = %if.end.i3190, %if.then.i3206 - %arrayidx.i.sink8.i3203 = phi ptr [ %arrayidx.i3209, %if.then.i3206 ], [ %arrayidx.i.i3198, %if.end.i3190 ] - call void @_ZN6hermes2vm7HadesGC16writeBarrierSlowEPKNS0_17GCHermesValueBaseINS0_13HermesValue32EEES3_(ptr noundef nonnull align 8 dereferenceable(8152) %heapStorage_.i.i, ptr noundef nonnull %arrayidx.i.sink8.i3203, i32 %retval.sroa.0.0.i3091) #10 + %431 = ptrtoint ptr %arrayidx.i.i3196 to i64 + %and.i.i.i.i.i.i3198 = and i64 %431, -4194304 + %432 = inttoptr i64 %and.i.i.i.i.i.i3198 to ptr + %cmp.i.i.i.i.i3199 = icmp eq ptr %430, %432 + br i1 %cmp.i.i.i.i.i3199, label %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEEvPS1_RNS0_7RuntimeEjS4_.exit, label %return.sink.split.i3200 + +return.sink.split.i3200: ; preds = %if.end.i3188, %if.then.i3204 + %arrayidx.i.sink8.i3201 = phi ptr [ %arrayidx.i3207, %if.then.i3204 ], [ %arrayidx.i.i3196, %if.end.i3188 ] + call void @_ZN6hermes2vm7HadesGC16writeBarrierSlowEPKNS0_17GCHermesValueBaseINS0_13HermesValue32EEES3_(ptr noundef nonnull align 8 dereferenceable(8152) %heapStorage_.i.i, ptr noundef nonnull %arrayidx.i.sink8.i3201, i32 %retval.sroa.0.0.i3089) #10 br label %_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEEvPS1_RNS0_7RuntimeEjS4_.exit -_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEEvPS1_RNS0_7RuntimeEjS4_.exit: ; preds = %if.then.i3206, %if.end.i3190, %return.sink.split.i3202 - %arrayidx.i.sink.i3205 = phi ptr [ %arrayidx.i3209, %if.then.i3206 ], [ %arrayidx.i.i3198, %if.end.i3190 ], [ %arrayidx.i.sink8.i3203, %return.sink.split.i3202 ] - store i32 %retval.sroa.0.0.i3091, ptr %arrayidx.i.sink.i3205, align 4 +_ZN6hermes2vm8JSObject23setNamedSlotValueUnsafeILNS0_16ArrayStorageBaseINS0_13HermesValue32EE6InlineE0EEEvPS1_RNS0_7RuntimeEjS4_.exit: ; preds = %if.then.i3204, %if.end.i3188, %return.sink.split.i3200 + %arrayidx.i.sink.i3203 = phi ptr [ %arrayidx.i3207, %if.then.i3204 ], [ %arrayidx.i.i3196, %if.end.i3188 ], [ %arrayidx.i.sink8.i3201, %return.sink.split.i3200 ] + store i32 %retval.sroa.0.0.i3089, ptr %arrayidx.i.sink.i3203, align 4 br label %indirectgoto.backedge if.end1405: ; preds = %if.end1346, %land.rhs1358, %land.lhs.true1362 @@ -5160,34 +5156,34 @@ if.end1405: ; preds = %if.end1346, %land.r %435 = load i8, ptr %op21415, align 1 %idxprom1416 = zext i8 %435 to i64 %arrayidx1417 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom1416 - %bf.set.i3218 = or disjoint i8 %defaultPropOpFlags.sroa.0.1, 2 - %agg.tmp1418.sroa.0.0.in = select i1 %tryProp.1, i8 %bf.set.i3218, i8 %defaultPropOpFlags.sroa.0.1 + %bf.set.i3216 = or disjoint i8 %defaultPropOpFlags.sroa.0.1, 2 + %agg.tmp1418.sroa.0.0.in = select i1 %tryProp.1, i8 %bf.set.i3216, i8 %defaultPropOpFlags.sroa.0.1 %agg.tmp1418.sroa.0.0 = zext nneg i8 %agg.tmp1418.sroa.0.0.in to i32 - %call.i3223 = call i32 @_ZN6hermes2vm8JSObject24putNamedWithReceiver_RJSENS0_6HandleIS1_EERNS0_7RuntimeENS0_8SymbolIDENS2_INS0_11HermesValueEEES8_NS0_11PropOpFlagsE(ptr %arrayidx1409, ptr noundef nonnull align 8 dereferenceable(9832) %runtime, i32 %retval.sroa.0.0.copyload.i3134, ptr %arrayidx1417, ptr %arrayidx1409, i32 %agg.tmp1418.sroa.0.0) #10 + %call.i3221 = call i32 @_ZN6hermes2vm8JSObject24putNamedWithReceiver_RJSENS0_6HandleIS1_EERNS0_7RuntimeENS0_8SymbolIDENS2_INS0_11HermesValueEEES8_NS0_11PropOpFlagsE(ptr %arrayidx1409, ptr noundef nonnull align 8 dereferenceable(9832) %runtime, i32 %retval.sroa.0.0.copyload.i3132, ptr %arrayidx1417, ptr %arrayidx1409, i32 %agg.tmp1418.sroa.0.0) #10 %436 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i32265161.mask = and i32 %call.i3223, 255 - %cmp.i3227 = icmp eq i32 %bf.cast.i.i32265161.mask, 0 - br i1 %cmp.i3227, label %exceptionthread-pre-split.loopexit5518, label %if.end1462 + %bf.cast.i.i32245159.mask = and i32 %call.i3221, 255 + %cmp.i3225 = icmp eq i32 %bf.cast.i.i32245159.mask, 0 + br i1 %cmp.i3225, label %exceptionthread-pre-split.loopexit5516, label %if.end1462 if.else1437: ; preds = %putById %437 = load i8, ptr %op11307, align 1 %idxprom1441 = zext i8 %437 to i64 %arrayidx1442 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom1441 %438 = load ptr, ptr %curCodeBlock.4, align 8 - %stringIDMap_.i3229 = getelementptr inbounds i8, ptr %438, i64 24 - %conv.i3230 = zext i32 %idVal.4 to i64 - %439 = load ptr, ptr %stringIDMap_.i3229, align 8 - %add.ptr.i.i3231 = getelementptr inbounds %"class.hermes::vm::RootSymbolID", ptr %439, i64 %conv.i3230 - %retval.sroa.0.0.copyload.i3232 = load i32, ptr %add.ptr.i.i3231, align 4 + %stringIDMap_.i3227 = getelementptr inbounds i8, ptr %438, i64 24 + %conv.i3228 = zext i32 %idVal.4 to i64 + %439 = load ptr, ptr %stringIDMap_.i3227, align 8 + %add.ptr.i.i3229 = getelementptr inbounds %"class.hermes::vm::RootSymbolID", ptr %439, i64 %conv.i3228 + %retval.sroa.0.0.copyload.i3230 = load i32, ptr %add.ptr.i.i3229, align 4 %op21448 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 2 %440 = load i8, ptr %op21448, align 1 %idxprom1449 = zext i8 %440 to i64 %arrayidx1450 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom1449 %tobool1451 = icmp ne i8 %strictMode.1, 0 - %call1457 = call noundef i32 @_ZN6hermes2vm11Interpreter20putByIdTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEENS0_8SymbolIDES6_b(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx1442, i32 %retval.sroa.0.0.copyload.i3232, ptr %arrayidx1450, i1 noundef zeroext %tobool1451) + %call1457 = call noundef i32 @_ZN6hermes2vm11Interpreter20putByIdTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEENS0_8SymbolIDES6_b(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx1442, i32 %retval.sroa.0.0.copyload.i3230, ptr %arrayidx1450, i1 noundef zeroext %tobool1451) %441 = load ptr, ptr %currentIP_.i.i, align 8 %cmp1459 = icmp eq i32 %call1457, 0 - br i1 %cmp1459, label %exceptionthread-pre-split.loopexit5518, label %if.end1462 + br i1 %cmp1459, label %exceptionthread-pre-split.loopexit5516, label %if.end1462 if.end1462: ; preds = %if.else1437, %if.end1405 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 @@ -5201,7 +5197,7 @@ case_GetByVal: ; preds = %indirectgoto %idxprom1467 = zext i8 %442 to i64 %arrayidx1468 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom1467 %443 = load i64, ptr %arrayidx1468, align 8 - %cmp.i3240 = icmp ugt i64 %443, -281474976710657 + %cmp.i3238 = icmp ugt i64 %443, -281474976710657 store ptr %add.ptr.sink.sink, ptr %currentIP_.i.i, align 8 %444 = load i8, ptr %op21466, align 1 %idxprom1475 = zext i8 %444 to i64 @@ -5210,68 +5206,68 @@ case_GetByVal: ; preds = %indirectgoto %445 = load i8, ptr %op31481, align 1 %idxprom1482 = zext i8 %445 to i64 %arrayidx1483 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom1482 - br i1 %cmp.i3240, label %if.then1471, label %if.else1494 + br i1 %cmp.i3238, label %if.then1471, label %if.else1494 if.then1471: ; preds = %case_GetByVal - %call.i3242 = call { i32, i64 } @_ZN6hermes2vm8JSObject27getComputedWithReceiver_RJSENS0_6HandleIS1_EERNS0_7RuntimeENS2_INS0_11HermesValueEEES7_(ptr %arrayidx1476, ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx1483, ptr %arrayidx1476) #10 - %446 = extractvalue { i32, i64 } %call.i3242, 0 - %447 = extractvalue { i32, i64 } %call.i3242, 1 + %call.i3240 = call { i32, i64 } @_ZN6hermes2vm8JSObject27getComputedWithReceiver_RJSENS0_6HandleIS1_EERNS0_7RuntimeENS2_INS0_11HermesValueEEES7_(ptr %arrayidx1476, ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx1483, ptr %arrayidx1476) #10 + %446 = extractvalue { i32, i64 } %call.i3240, 0 + %447 = extractvalue { i32, i64 } %call.i3240, 1 %448 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i3244 = icmp eq i32 %446, 0 - br i1 %cmp.i3244, label %exceptionthread-pre-split.loopexit5518, label %if.end1514 + %cmp.i3242 = icmp eq i32 %446, 0 + br i1 %cmp.i3242, label %exceptionthread-pre-split.loopexit5516, label %if.end1514 if.else1494: ; preds = %case_GetByVal - %call.i3246 = call i64 @_ZN6hermes2vm11Interpreter21getByValTransientFastERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx1476, ptr %arrayidx1483) - %shr.i.mask.i.i3247 = and i64 %call.i3246, -140737488355328 - %cmp.i.i3248 = icmp eq i64 %shr.i.mask.i.i3247, -1970324836974592 - br i1 %cmp.i.i3248, label %if.end.i3253, label %_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit.thread + %call.i3244 = call i64 @_ZN6hermes2vm11Interpreter21getByValTransientFastERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx1476, ptr %arrayidx1483) + %shr.i.mask.i.i3245 = and i64 %call.i3244, -140737488355328 + %cmp.i.i3246 = icmp eq i64 %shr.i.mask.i.i3245, -1970324836974592 + br i1 %cmp.i.i3246, label %if.end.i3251, label %_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit.thread _ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit.thread: ; preds = %if.else1494 %449 = load ptr, ptr %currentIP_.i.i, align 8 br label %if.end1514 -if.end.i3253: ; preds = %if.else1494 +if.end.i3251: ; preds = %if.else1494 %call16.i = call { i32, i64 } @_ZN6hermes2vm8toObjectERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx1476) #10 %450 = extractvalue { i32, i64 } %call16.i, 0 %cmp.i4.i = icmp eq i32 %450, 0 - br i1 %cmp.i4.i, label %_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit.thread5350, label %if.end19.i + br i1 %cmp.i4.i, label %_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit.thread5348, label %if.end19.i -_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit.thread5350: ; preds = %if.end.i3253 +_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit.thread5348: ; preds = %if.end.i3251 %451 = load ptr, ptr %currentIP_.i.i, align 8 br label %exceptionthread-pre-split -if.end19.i: ; preds = %if.end.i3253 +if.end19.i: ; preds = %if.end.i3251 %452 = extractvalue { i32, i64 } %call16.i, 1 %or.i.i.i.i.i.i = or i64 %452, -281474976710656 %453 = load ptr, ptr %topGCScope_.i, align 8 - %next_.i.i.i.i.i.i.i.i3255 = getelementptr inbounds i8, ptr %453, i64 192 - %454 = load ptr, ptr %next_.i.i.i.i.i.i.i.i3255, align 8 - %curChunkEnd_.i.i.i.i.i.i.i3256 = getelementptr inbounds i8, ptr %453, i64 200 - %455 = load ptr, ptr %curChunkEnd_.i.i.i.i.i.i.i3256, align 8 - %cmp.i.i.i.i.i.i.i3257 = icmp ult ptr %454, %455 - br i1 %cmp.i.i.i.i.i.i.i3257, label %if.then.i.i.i.i.i.i.i3261, label %if.end.i.i.i.i.i.i.i3258 - -if.then.i.i.i.i.i.i.i3261: ; preds = %if.end19.i - %incdec.ptr.i.i.i.i.i.i.i3262 = getelementptr inbounds i8, ptr %454, i64 8 - store ptr %incdec.ptr.i.i.i.i.i.i.i3262, ptr %next_.i.i.i.i.i.i.i.i3255, align 8 + %next_.i.i.i.i.i.i.i.i3253 = getelementptr inbounds i8, ptr %453, i64 192 + %454 = load ptr, ptr %next_.i.i.i.i.i.i.i.i3253, align 8 + %curChunkEnd_.i.i.i.i.i.i.i3254 = getelementptr inbounds i8, ptr %453, i64 200 + %455 = load ptr, ptr %curChunkEnd_.i.i.i.i.i.i.i3254, align 8 + %cmp.i.i.i.i.i.i.i3255 = icmp ult ptr %454, %455 + br i1 %cmp.i.i.i.i.i.i.i3255, label %if.then.i.i.i.i.i.i.i3259, label %if.end.i.i.i.i.i.i.i3256 + +if.then.i.i.i.i.i.i.i3259: ; preds = %if.end19.i + %incdec.ptr.i.i.i.i.i.i.i3260 = getelementptr inbounds i8, ptr %454, i64 8 + store ptr %incdec.ptr.i.i.i.i.i.i.i3260, ptr %next_.i.i.i.i.i.i.i.i3253, align 8 store i64 %or.i.i.i.i.i.i, ptr %454, align 8 br label %_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit -if.end.i.i.i.i.i.i.i3258: ; preds = %if.end19.i - %call7.i.i.i.i.i.i.i3259 = call noundef ptr @_ZN6hermes2vm7GCScope15_newChunkAndPHVENS0_11HermesValueE(ptr noundef nonnull align 8 dereferenceable(212) %453, i64 %or.i.i.i.i.i.i) #10 +if.end.i.i.i.i.i.i.i3256: ; preds = %if.end19.i + %call7.i.i.i.i.i.i.i3257 = call noundef ptr @_ZN6hermes2vm7GCScope15_newChunkAndPHVENS0_11HermesValueE(ptr noundef nonnull align 8 dereferenceable(212) %453, i64 %or.i.i.i.i.i.i) #10 br label %_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit -_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit: ; preds = %if.then.i.i.i.i.i.i.i3261, %if.end.i.i.i.i.i.i.i3258 - %retval.0.i.i.i.i.i.i.i3260 = phi ptr [ %454, %if.then.i.i.i.i.i.i.i3261 ], [ %call7.i.i.i.i.i.i.i3259, %if.end.i.i.i.i.i.i.i3258 ] - %call35.i = call { i32, i64 } @_ZN6hermes2vm8JSObject27getComputedWithReceiver_RJSENS0_6HandleIS1_EERNS0_7RuntimeENS2_INS0_11HermesValueEEES7_(ptr %retval.0.i.i.i.i.i.i.i3260, ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx1483, ptr %arrayidx1476) #10 +_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit: ; preds = %if.then.i.i.i.i.i.i.i3259, %if.end.i.i.i.i.i.i.i3256 + %retval.0.i.i.i.i.i.i.i3258 = phi ptr [ %454, %if.then.i.i.i.i.i.i.i3259 ], [ %call7.i.i.i.i.i.i.i3257, %if.end.i.i.i.i.i.i.i3256 ] + %call35.i = call { i32, i64 } @_ZN6hermes2vm8JSObject27getComputedWithReceiver_RJSENS0_6HandleIS1_EERNS0_7RuntimeENS2_INS0_11HermesValueEEES7_(ptr %retval.0.i.i.i.i.i.i.i3258, ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx1483, ptr %arrayidx1476) #10 %456 = extractvalue { i32, i64 } %call35.i, 0 %457 = extractvalue { i32, i64 } %call35.i, 1 %458 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i3264 = icmp eq i32 %456, 0 - br i1 %cmp.i3264, label %exceptionthread-pre-split.loopexit5518, label %if.end1514 + %cmp.i3262 = icmp eq i32 %456, 0 + br i1 %cmp.i3262, label %exceptionthread-pre-split.loopexit5516, label %if.end1514 if.end1514: ; preds = %_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit.thread, %_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit, %if.then1471 - %resPH.sroa.21.1 = phi i64 [ %447, %if.then1471 ], [ %457, %_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit ], [ %call.i3246, %_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit.thread ] + %resPH.sroa.21.1 = phi i64 [ %447, %if.then1471 ], [ %457, %_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit ], [ %call.i3244, %_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit.thread ] %ip.5 = phi ptr [ %448, %if.then1471 ], [ %458, %_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit ], [ %449, %_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit.thread ] store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 @@ -5290,10 +5286,10 @@ case_PutByVal: ; preds = %indirectgoto %idxprom1528 = zext i8 %460 to i64 %arrayidx1529 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom1528 %461 = load i64, ptr %arrayidx1529, align 8 - %cmp.i3274 = icmp ugt i64 %461, -281474976710657 + %cmp.i3272 = icmp ugt i64 %461, -281474976710657 store ptr %add.ptr.sink.sink, ptr %currentIP_.i.i, align 8 %462 = load i8, ptr %op11527, align 1 - br i1 %cmp.i3274, label %if.then1532, label %if.else1563 + br i1 %cmp.i3272, label %if.then1532, label %if.else1563 if.then1532: ; preds = %case_PutByVal %idxprom1536 = zext i8 %462 to i64 @@ -5306,12 +5302,12 @@ if.then1532: ; preds = %case_PutByVal %464 = load i8, ptr %op31546, align 1 %idxprom1547 = zext i8 %464 to i64 %arrayidx1548 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom1547 - %defaultPropOpFlags.sroa.0.0.insert.ext5006 = zext nneg i8 %defaultPropOpFlags.sroa.0.1 to i32 - %call.i3276 = call i32 @_ZN6hermes2vm8JSObject27putComputedWithReceiver_RJSENS0_6HandleIS1_EERNS0_7RuntimeENS2_INS0_11HermesValueEEES7_S7_NS0_11PropOpFlagsE(ptr %arrayidx1537, ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx1544, ptr %arrayidx1548, ptr %arrayidx1537, i32 %defaultPropOpFlags.sroa.0.0.insert.ext5006) #10 + %defaultPropOpFlags.sroa.0.0.insert.ext5004 = zext nneg i8 %defaultPropOpFlags.sroa.0.1 to i32 + %call.i3274 = call i32 @_ZN6hermes2vm8JSObject27putComputedWithReceiver_RJSENS0_6HandleIS1_EERNS0_7RuntimeENS2_INS0_11HermesValueEEES7_S7_NS0_11PropOpFlagsE(ptr %arrayidx1537, ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx1544, ptr %arrayidx1548, ptr %arrayidx1537, i32 %defaultPropOpFlags.sroa.0.0.insert.ext5004) #10 %465 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i32815155.mask = and i32 %call.i3276, 255 - %cmp.i3282 = icmp eq i32 %bf.cast.i.i32815155.mask, 0 - br i1 %cmp.i3282, label %exceptionthread-pre-split.loopexit5518, label %if.end1590 + %bf.cast.i.i32795153.mask = and i32 %call.i3274, 255 + %cmp.i3280 = icmp eq i32 %bf.cast.i.i32795153.mask, 0 + br i1 %cmp.i3280, label %exceptionthread-pre-split.loopexit5516, label %if.end1590 if.else1563: ; preds = %case_PutByVal %op21570 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 2 @@ -5320,8 +5316,8 @@ if.else1563: ; preds = %case_PutByVal %arrayidx1572 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom1571 %op31574 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 %467 = load i8, ptr %op31574, align 1 - %call.i3284 = call ptr @_ZN6hermes2vm15valueToSymbolIDERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx1572) #10 - %cmp.i.i.not.i = icmp eq ptr %call.i3284, inttoptr (i64 -1 to ptr) + %call.i3282 = call ptr @_ZN6hermes2vm15valueToSymbolIDERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx1572) #10 + %cmp.i.i.not.i = icmp eq ptr %call.i3282, inttoptr (i64 -1 to ptr) br i1 %cmp.i.i.not.i, label %_ZN6hermes2vm11Interpreter21putByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_S6_b.exit.thread, label %_ZN6hermes2vm11Interpreter21putByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_S6_b.exit _ZN6hermes2vm11Interpreter21putByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_S6_b.exit.thread: ; preds = %if.else1563 @@ -5334,12 +5330,12 @@ _ZN6hermes2vm11Interpreter21putByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_ %arrayidx1576 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom1575 %idxprom1567 = zext i8 %462 to i64 %arrayidx1568 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom1567 - %retval.sroa.0.0.copyload.i.i.i.i = load i64, ptr %call.i3284, align 8 - %conv.i.i.i.i.i3286 = trunc i64 %retval.sroa.0.0.copyload.i.i.i.i to i32 - %call23.i = call noundef i32 @_ZN6hermes2vm11Interpreter20putByIdTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEENS0_8SymbolIDES6_b(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx1568, i32 %conv.i.i.i.i.i3286, ptr %arrayidx1576, i1 noundef zeroext %tobool1577) + %retval.sroa.0.0.copyload.i.i.i.i = load i64, ptr %call.i3282, align 8 + %conv.i.i.i.i.i3284 = trunc i64 %retval.sroa.0.0.copyload.i.i.i.i to i32 + %call23.i = call noundef i32 @_ZN6hermes2vm11Interpreter20putByIdTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEENS0_8SymbolIDES6_b(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx1568, i32 %conv.i.i.i.i.i3284, ptr %arrayidx1576, i1 noundef zeroext %tobool1577) %469 = load ptr, ptr %currentIP_.i.i, align 8 %cmp1586 = icmp eq i32 %call23.i, 0 - br i1 %cmp1586, label %exceptionthread-pre-split.loopexit5518, label %if.end1590 + br i1 %cmp1586, label %exceptionthread-pre-split.loopexit5516, label %if.end1590 if.end1590: ; preds = %_ZN6hermes2vm11Interpreter21putByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_S6_b.exit, %if.then1532 %ip.6 = phi ptr [ %465, %if.then1532 ], [ %469, %_ZN6hermes2vm11Interpreter21putByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_S6_b.exit ] @@ -5365,8 +5361,8 @@ case_PutOwnByIndex: ; preds = %indirectgoto putOwnByIndex: ; preds = %case_PutOwnByIndex, %case_PutOwnByIndexL %idVal.5 = phi i32 [ %470, %case_PutOwnByIndexL ], [ %conv1599, %case_PutOwnByIndex ] %nextIP.8 = phi ptr [ %add.ptr1595, %case_PutOwnByIndexL ], [ %add.ptr1597, %case_PutOwnByIndex ] - %conv.i3295 = uitofp i32 %idVal.5 to double - store double %conv.i3295, ptr %inlineStorage_.i, align 8 + %conv.i3293 = uitofp i32 %idVal.5 to double + store double %conv.i3293, ptr %inlineStorage_.i, align 8 store ptr %add.ptr.sink.sink, ptr %currentIP_.i.i, align 8 %op11606 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %472 = load i8, ptr %op11606, align 1 @@ -5388,7 +5384,7 @@ case_GetPNameList: ; preds = %indirectgoto %call1635 = call noundef i32 @_ZN6hermes2vm11Interpreter16caseGetPNameListERNS0_7RuntimeEPNS0_17PinnedHermesValueEPKNS_4inst4InstE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr noundef %frameRegs.3, ptr noundef nonnull %add.ptr.sink.sink) #10 %474 = load ptr, ptr %currentIP_.i.i, align 8 %cmp1637 = icmp eq i32 %call1635, 0 - br i1 %cmp1637, label %exceptionthread-pre-split.loopexit5518, label %if.end1640 + br i1 %cmp1637, label %exceptionthread-pre-split.loopexit5516, label %if.end1640 if.end1640: ; preds = %case_GetPNameList store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 @@ -5419,49 +5415,49 @@ case_GetNextPName: ; preds = %indirectgoto %480 = load double, ptr %arrayidx1665, align 8 %conv1667 = fptoui double %480 to i32 %481 = load ptr, ptr %topGCScope_.i, align 8 - %next_.i.i.i.i.i.i.i3313 = getelementptr inbounds i8, ptr %481, i64 192 - %482 = load ptr, ptr %next_.i.i.i.i.i.i.i3313, align 8 - %curChunkEnd_.i.i.i.i.i.i3314 = getelementptr inbounds i8, ptr %481, i64 200 - %483 = load ptr, ptr %curChunkEnd_.i.i.i.i.i.i3314, align 8 - %cmp.i.i.i.i.i.i3315 = icmp ult ptr %482, %483 - br i1 %cmp.i.i.i.i.i.i3315, label %if.then.i.i.i.i.i.i3319, label %if.end.i.i.i.i.i.i3316 - -if.then.i.i.i.i.i.i3319: ; preds = %case_GetNextPName - %incdec.ptr.i.i.i.i.i.i3320 = getelementptr inbounds i8, ptr %482, i64 8 - store ptr %incdec.ptr.i.i.i.i.i.i3320, ptr %next_.i.i.i.i.i.i.i3313, align 8 + %next_.i.i.i.i.i.i.i3311 = getelementptr inbounds i8, ptr %481, i64 192 + %482 = load ptr, ptr %next_.i.i.i.i.i.i.i3311, align 8 + %curChunkEnd_.i.i.i.i.i.i3312 = getelementptr inbounds i8, ptr %481, i64 200 + %483 = load ptr, ptr %curChunkEnd_.i.i.i.i.i.i3312, align 8 + %cmp.i.i.i.i.i.i3313 = icmp ult ptr %482, %483 + br i1 %cmp.i.i.i.i.i.i3313, label %if.then.i.i.i.i.i.i3317, label %if.end.i.i.i.i.i.i3314 + +if.then.i.i.i.i.i.i3317: ; preds = %case_GetNextPName + %incdec.ptr.i.i.i.i.i.i3318 = getelementptr inbounds i8, ptr %482, i64 8 + store ptr %incdec.ptr.i.i.i.i.i.i3318, ptr %next_.i.i.i.i.i.i.i3311, align 8 store i64 -281474976710656, ptr %482, align 8 br label %_ZN6hermes2vm13MutableHandleINS0_8JSObjectEEC2ERNS0_15HandleRootOwnerEPS2_.exit -if.end.i.i.i.i.i.i3316: ; preds = %case_GetNextPName - %call7.i.i.i.i.i.i3317 = call noundef ptr @_ZN6hermes2vm7GCScope15_newChunkAndPHVENS0_11HermesValueE(ptr noundef nonnull align 8 dereferenceable(212) %481, i64 -281474976710656) #10 +if.end.i.i.i.i.i.i3314: ; preds = %case_GetNextPName + %call7.i.i.i.i.i.i3315 = call noundef ptr @_ZN6hermes2vm7GCScope15_newChunkAndPHVENS0_11HermesValueE(ptr noundef nonnull align 8 dereferenceable(212) %481, i64 -281474976710656) #10 br label %_ZN6hermes2vm13MutableHandleINS0_8JSObjectEEC2ERNS0_15HandleRootOwnerEPS2_.exit -_ZN6hermes2vm13MutableHandleINS0_8JSObjectEEC2ERNS0_15HandleRootOwnerEPS2_.exit: ; preds = %if.then.i.i.i.i.i.i3319, %if.end.i.i.i.i.i.i3316 - %retval.0.i.i.i.i.i.i3318 = phi ptr [ %482, %if.then.i.i.i.i.i.i3319 ], [ %call7.i.i.i.i.i.i3317, %if.end.i.i.i.i.i.i3316 ] - store ptr %retval.0.i.i.i.i.i.i3318, ptr %propObj, align 8 +_ZN6hermes2vm13MutableHandleINS0_8JSObjectEEC2ERNS0_15HandleRootOwnerEPS2_.exit: ; preds = %if.then.i.i.i.i.i.i3317, %if.end.i.i.i.i.i.i3314 + %retval.0.i.i.i.i.i.i3316 = phi ptr [ %482, %if.then.i.i.i.i.i.i3317 ], [ %call7.i.i.i.i.i.i3315, %if.end.i.i.i.i.i.i3314 ] + store ptr %retval.0.i.i.i.i.i.i3316, ptr %propObj, align 8 %484 = load ptr, ptr %topGCScope_.i, align 8 - %next_.i.i.i.i.i.i.i3322 = getelementptr inbounds i8, ptr %484, i64 192 - %485 = load ptr, ptr %next_.i.i.i.i.i.i.i3322, align 8 - %curChunkEnd_.i.i.i.i.i.i3323 = getelementptr inbounds i8, ptr %484, i64 200 - %486 = load ptr, ptr %curChunkEnd_.i.i.i.i.i.i3323, align 8 - %cmp.i.i.i.i.i.i3324 = icmp ult ptr %485, %486 - br i1 %cmp.i.i.i.i.i.i3324, label %if.then.i.i.i.i.i.i3328, label %if.end.i.i.i.i.i.i3325 - -if.then.i.i.i.i.i.i3328: ; preds = %_ZN6hermes2vm13MutableHandleINS0_8JSObjectEEC2ERNS0_15HandleRootOwnerEPS2_.exit - %incdec.ptr.i.i.i.i.i.i3329 = getelementptr inbounds i8, ptr %485, i64 8 - store ptr %incdec.ptr.i.i.i.i.i.i3329, ptr %next_.i.i.i.i.i.i.i3322, align 8 + %next_.i.i.i.i.i.i.i3320 = getelementptr inbounds i8, ptr %484, i64 192 + %485 = load ptr, ptr %next_.i.i.i.i.i.i.i3320, align 8 + %curChunkEnd_.i.i.i.i.i.i3321 = getelementptr inbounds i8, ptr %484, i64 200 + %486 = load ptr, ptr %curChunkEnd_.i.i.i.i.i.i3321, align 8 + %cmp.i.i.i.i.i.i3322 = icmp ult ptr %485, %486 + br i1 %cmp.i.i.i.i.i.i3322, label %if.then.i.i.i.i.i.i3326, label %if.end.i.i.i.i.i.i3323 + +if.then.i.i.i.i.i.i3326: ; preds = %_ZN6hermes2vm13MutableHandleINS0_8JSObjectEEC2ERNS0_15HandleRootOwnerEPS2_.exit + %incdec.ptr.i.i.i.i.i.i3327 = getelementptr inbounds i8, ptr %485, i64 8 + store ptr %incdec.ptr.i.i.i.i.i.i3327, ptr %next_.i.i.i.i.i.i.i3320, align 8 store i64 -1266636858327041, ptr %485, align 8 br label %_ZN6hermes2vm13MutableHandleINS0_8SymbolIDEEC2ERNS0_15HandleRootOwnerES2_.exit -if.end.i.i.i.i.i.i3325: ; preds = %_ZN6hermes2vm13MutableHandleINS0_8JSObjectEEC2ERNS0_15HandleRootOwnerEPS2_.exit - %call7.i.i.i.i.i.i3326 = call noundef ptr @_ZN6hermes2vm7GCScope15_newChunkAndPHVENS0_11HermesValueE(ptr noundef nonnull align 8 dereferenceable(212) %484, i64 -1266636858327041) #10 +if.end.i.i.i.i.i.i3323: ; preds = %_ZN6hermes2vm13MutableHandleINS0_8JSObjectEEC2ERNS0_15HandleRootOwnerEPS2_.exit + %call7.i.i.i.i.i.i3324 = call noundef ptr @_ZN6hermes2vm7GCScope15_newChunkAndPHVENS0_11HermesValueE(ptr noundef nonnull align 8 dereferenceable(212) %484, i64 -1266636858327041) #10 br label %_ZN6hermes2vm13MutableHandleINS0_8SymbolIDEEC2ERNS0_15HandleRootOwnerES2_.exit -_ZN6hermes2vm13MutableHandleINS0_8SymbolIDEEC2ERNS0_15HandleRootOwnerES2_.exit: ; preds = %if.then.i.i.i.i.i.i3328, %if.end.i.i.i.i.i.i3325 - %retval.0.i.i.i.i.i.i3327 = phi ptr [ %485, %if.then.i.i.i.i.i.i3328 ], [ %call7.i.i.i.i.i.i3326, %if.end.i.i.i.i.i.i3325 ] - store ptr %retval.0.i.i.i.i.i.i3327, ptr %tmpPropNameStorage, align 8 - %cmp16735262 = icmp ult i32 %conv1662, %conv1667 - br i1 %cmp16735262, label %while.body.preheader, label %if.end1740 +_ZN6hermes2vm13MutableHandleINS0_8SymbolIDEEC2ERNS0_15HandleRootOwnerES2_.exit: ; preds = %if.then.i.i.i.i.i.i3326, %if.end.i.i.i.i.i.i3323 + %retval.0.i.i.i.i.i.i3325 = phi ptr [ %485, %if.then.i.i.i.i.i.i3326 ], [ %call7.i.i.i.i.i.i3324, %if.end.i.i.i.i.i.i3323 ] + store ptr %retval.0.i.i.i.i.i.i3325, ptr %tmpPropNameStorage, align 8 + %cmp16735260 = icmp ult i32 %conv1662, %conv1667 + br i1 %cmp16735260, label %while.body.preheader, label %if.end1740 while.body.preheader: ; preds = %_ZN6hermes2vm13MutableHandleINS0_8SymbolIDEEC2ERNS0_15HandleRootOwnerES2_.exit %487 = zext i32 %conv1662 to i64 @@ -5469,39 +5465,39 @@ while.body.preheader: ; preds = %_ZN6hermes2vm13Muta while.body: ; preds = %while.body.preheader, %if.end1696 %indvars.iv = phi i64 [ %487, %while.body.preheader ], [ %indvars.iv.next, %if.end1696 ] - %ip.75264 = phi ptr [ %add.ptr.sink.sink, %while.body.preheader ], [ %491, %if.end1696 ] - %agg.tmp.sroa.0.0.copyload.i.i3330 = load i64, ptr %arrayidx1654, align 8 - %and.i.i.i.i.i3331 = and i64 %agg.tmp.sroa.0.0.copyload.i.i3330, 281474976710655 - %488 = inttoptr i64 %and.i.i.i.i.i3331 to ptr - %cmp.i3332 = icmp ult i64 %indvars.iv, 4096 - br i1 %cmp.i3332, label %if.then.i3339, label %if.else.i - -if.then.i3339: ; preds = %while.body - %add.ptr.i.i.i.i3340 = getelementptr inbounds i8, ptr %488, i64 8 - %arrayidx.i3342 = getelementptr inbounds %"class.hermes::vm::GCHermesValueBase.245", ptr %add.ptr.i.i.i.i3340, i64 %indvars.iv + %ip.75262 = phi ptr [ %add.ptr.sink.sink, %while.body.preheader ], [ %491, %if.end1696 ] + %agg.tmp.sroa.0.0.copyload.i.i3328 = load i64, ptr %arrayidx1654, align 8 + %and.i.i.i.i.i3329 = and i64 %agg.tmp.sroa.0.0.copyload.i.i3328, 281474976710655 + %488 = inttoptr i64 %and.i.i.i.i.i3329 to ptr + %cmp.i3330 = icmp ult i64 %indvars.iv, 4096 + br i1 %cmp.i3330, label %if.then.i3337, label %if.else.i + +if.then.i3337: ; preds = %while.body + %add.ptr.i.i.i.i3338 = getelementptr inbounds i8, ptr %488, i64 8 + %arrayidx.i3340 = getelementptr inbounds %"class.hermes::vm::GCHermesValueBase.245", ptr %add.ptr.i.i.i.i3338, i64 %indvars.iv br label %_ZNK6hermes2vm18SegmentedArrayBaseINS0_11HermesValueEE2atILNS3_6InlineE0EEES2_RNS0_11PointerBaseEj.exit if.else.i: ; preds = %while.body - %sub.i.i3333 = add nuw i64 %indvars.iv, 4294963200 - %div1.i.i = lshr i64 %sub.i.i3333, 10 + %sub.i.i3331 = add nuw i64 %indvars.iv, 4294963200 + %div1.i.i = lshr i64 %sub.i.i3331, 10 %add.ptr.i.i.i5.i = getelementptr inbounds i8, ptr %488, i64 32776 %idx.ext.i.i.i = and i64 %div1.i.i, 4194303 - %add.ptr.i.i.i3334 = getelementptr inbounds %"class.hermes::vm::GCHermesValueBase.245", ptr %add.ptr.i.i.i5.i, i64 %idx.ext.i.i.i - %489 = load i64, ptr %add.ptr.i.i.i3334, align 8 - %and.i.i.i.i.i3335 = and i64 %489, 281474976710655 - %490 = inttoptr i64 %and.i.i.i.i.i3335 to ptr + %add.ptr.i.i.i3332 = getelementptr inbounds %"class.hermes::vm::GCHermesValueBase.245", ptr %add.ptr.i.i.i5.i, i64 %idx.ext.i.i.i + %489 = load i64, ptr %add.ptr.i.i.i3332, align 8 + %and.i.i.i.i.i3333 = and i64 %489, 281474976710655 + %490 = inttoptr i64 %and.i.i.i.i.i3333 to ptr %rem.i.i = and i64 %indvars.iv, 1023 %data_.i.i = getelementptr inbounds i8, ptr %490, i64 8 - %arrayidx.i.i3337 = getelementptr inbounds [1024 x %"class.hermes::vm::GCHermesValueBase.245"], ptr %data_.i.i, i64 0, i64 %rem.i.i + %arrayidx.i.i3335 = getelementptr inbounds [1024 x %"class.hermes::vm::GCHermesValueBase.245"], ptr %data_.i.i, i64 0, i64 %rem.i.i br label %_ZNK6hermes2vm18SegmentedArrayBaseINS0_11HermesValueEE2atILNS3_6InlineE0EEES2_RNS0_11PointerBaseEj.exit -_ZNK6hermes2vm18SegmentedArrayBaseINS0_11HermesValueEE2atILNS3_6InlineE0EEES2_RNS0_11PointerBaseEj.exit: ; preds = %if.then.i3339, %if.else.i - %retval.sroa.0.0.in.i = phi ptr [ %arrayidx.i3342, %if.then.i3339 ], [ %arrayidx.i.i3337, %if.else.i ] - %retval.sroa.0.0.i3338 = load i64, ptr %retval.sroa.0.0.in.i, align 8 - store i64 %retval.sroa.0.0.i3338, ptr %inlineStorage_.i, align 8 +_ZNK6hermes2vm18SegmentedArrayBaseINS0_11HermesValueEE2atILNS3_6InlineE0EEES2_RNS0_11PointerBaseEj.exit: ; preds = %if.then.i3337, %if.else.i + %retval.sroa.0.0.in.i = phi ptr [ %arrayidx.i3340, %if.then.i3337 ], [ %arrayidx.i.i3335, %if.else.i ] + %retval.sroa.0.0.i3336 = load i64, ptr %retval.sroa.0.0.in.i, align 8 + store i64 %retval.sroa.0.0.i3336, ptr %inlineStorage_.i, align 8 store i32 0, ptr %desc1680, align 4 - store i32 -1, ptr %slot.i.i3343, align 4 - store ptr %ip.75264, ptr %currentIP_.i.i, align 8 + store i32 -1, ptr %slot.i.i3341, align 4 + store ptr %ip.75262, ptr %currentIP_.i.i, align 8 %call1687 = call noundef i32 @_ZN6hermes2vm8JSObject30getComputedPrimitiveDescriptorENS0_6HandleIS1_EERNS0_7RuntimeENS2_INS0_11HermesValueEEERNS0_13MutableHandleIS1_EERNS8_INS0_8SymbolIDEEERNS0_26ComputedPropertyDescriptorE(ptr nonnull %arrayidx1648, ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr nonnull %inlineStorage_.i, ptr noundef nonnull align 8 dereferenceable(8) %propObj, ptr noundef nonnull align 8 dereferenceable(8) %tmpPropNameStorage, ptr noundef nonnull align 4 dereferenceable(8) %desc1680) #10 %491 = load ptr, ptr %currentIP_.i.i, align 8 %cmp1689 = icmp eq i32 %call1687, 0 @@ -5510,10 +5506,10 @@ _ZNK6hermes2vm18SegmentedArrayBaseINS0_11HermesValueEE2atILNS3_6InlineE0EEES2_RN if.end1692: ; preds = %_ZNK6hermes2vm18SegmentedArrayBaseINS0_11HermesValueEE2atILNS3_6InlineE0EEES2_RNS0_11PointerBaseEj.exit %492 = load ptr, ptr %propObj, align 8 %493 = load i64, ptr %492, align 8 - %cmp.i.i3346 = icmp ugt i64 %493, -844424930131969 - %and.i.i3347 = and i64 %493, 281474976710655 - %tobool.i3348 = icmp ne i64 %and.i.i3347, 0 - %494 = and i1 %cmp.i.i3346, %tobool.i3348 + %cmp.i.i3344 = icmp ugt i64 %493, -844424930131969 + %and.i.i3345 = and i64 %493, 281474976710655 + %tobool.i3346 = icmp ne i64 %and.i.i3345, 0 + %494 = and i1 %cmp.i.i3344, %tobool.i3346 br i1 %494, label %if.then1698, label %if.end1696 if.end1696: ; preds = %if.end1692 @@ -5525,37 +5521,37 @@ if.end1696: ; preds = %if.end1692 if.then1698: ; preds = %if.end1692 %495 = trunc i64 %indvars.iv to i32 %496 = load i64, ptr %inlineStorage_.i, align 8 - %cmp.i.i3349 = icmp ult i64 %496, -1970324836974592 - br i1 %cmp.i.i3349, label %if.then1701, label %if.end1716 + %cmp.i.i3347 = icmp ult i64 %496, -1970324836974592 + br i1 %cmp.i.i3347, label %if.then1701, label %if.end1716 if.then1701: ; preds = %if.then1698 %call1706 = call ptr @_ZN6hermes2vm12toString_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr nonnull %inlineStorage_.i) #10 %497 = load ptr, ptr %currentIP_.i.i, align 8 %498 = ptrtoint ptr %call1706 to i64 - %or.i.i.i.i3352 = or i64 %498, -844424930131968 - store i64 %or.i.i.i.i3352, ptr %inlineStorage_.i, align 8 + %or.i.i.i.i3350 = or i64 %498, -844424930131968 + store i64 %or.i.i.i.i3350, ptr %inlineStorage_.i, align 8 br label %if.end1716 if.end1716: ; preds = %if.then1701, %if.then1698 %ip.9 = phi ptr [ %497, %if.then1701 ], [ %491, %if.then1698 ] %add1718 = add nuw i32 %495, 1 - %conv.i3353 = uitofp i32 %add1718 to double + %conv.i3351 = uitofp i32 %add1718 to double %op41721 = getelementptr inbounds i8, ptr %ip.9, i64 4 %499 = load i8, ptr %op41721, align 1 %idxprom1722 = zext i8 %499 to i64 %arrayidx1723 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom1722 - store double %conv.i3353, ptr %arrayidx1723, align 8 + store double %conv.i3351, ptr %arrayidx1723, align 8 %retval.sroa.0.0.copyload.i.i = load i64, ptr %inlineStorage_.i, align 8 br label %if.end1740 if.end1740: ; preds = %if.end1696, %_ZN6hermes2vm13MutableHandleINS0_8SymbolIDEEC2ERNS0_15HandleRootOwnerES2_.exit, %if.end1716 %ip.7.lcssa.sink = phi ptr [ %ip.9, %if.end1716 ], [ %add.ptr.sink.sink, %_ZN6hermes2vm13MutableHandleINS0_8SymbolIDEEC2ERNS0_15HandleRootOwnerES2_.exit ], [ %491, %if.end1696 ] - %.sink5435 = phi i64 [ %retval.sroa.0.0.copyload.i.i, %if.end1716 ], [ -1688849860263936, %_ZN6hermes2vm13MutableHandleINS0_8SymbolIDEEC2ERNS0_15HandleRootOwnerES2_.exit ], [ -1688849860263936, %if.end1696 ] + %.sink5433 = phi i64 [ %retval.sroa.0.0.copyload.i.i, %if.end1716 ], [ -1688849860263936, %_ZN6hermes2vm13MutableHandleINS0_8SymbolIDEEC2ERNS0_15HandleRootOwnerES2_.exit ], [ -1688849860263936, %if.end1696 ] %op11736 = getelementptr inbounds i8, ptr %ip.7.lcssa.sink, i64 1 %500 = load i8, ptr %op11736, align 1 %idxprom1737 = zext i8 %500 to i64 %arrayidx1738 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom1737 - store i64 %.sink5435, ptr %arrayidx1738, align 8 + store i64 %.sink5433, ptr %arrayidx1738, align 8 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 @@ -5569,8 +5565,8 @@ case_ToNumber: ; preds = %indirectgoto %idxprom1746 = zext i8 %501 to i64 %arrayidx1747 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom1746 %502 = load i64, ptr %arrayidx1747, align 8 - %cmp.i.i3363 = icmp ult i64 %502, -1970324836974592 - br i1 %cmp.i.i3363, label %if.end1779, label %if.else1759 + %cmp.i.i3361 = icmp ult i64 %502, -1970324836974592 + br i1 %cmp.i.i3361, label %if.end1779, label %if.else1759 if.else1759: ; preds = %case_ToNumber store ptr %add.ptr.sink.sink, ptr %currentIP_.i.i, align 8 @@ -5580,8 +5576,8 @@ if.else1759: ; preds = %case_ToNumber %call1767 = call { i32, i64 } @_ZN6hermes2vm12toNumber_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx1764) #10 %504 = extractvalue { i32, i64 } %call1767, 0 %505 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i3369 = icmp eq i32 %504, 0 - br i1 %cmp.i3369, label %exceptionthread-pre-split.loopexit5518, label %if.end1772 + %cmp.i3367 = icmp eq i32 %504, 0 + br i1 %cmp.i3367, label %exceptionthread-pre-split.loopexit5516, label %if.end1772 if.end1772: ; preds = %if.else1759 %506 = extractvalue { i32, i64 } %call1767, 1 @@ -5591,14 +5587,14 @@ if.end1772: ; preds = %if.else1759 br label %if.end1779 if.end1779: ; preds = %case_ToNumber, %if.end1772 - %.sink5439 = phi ptr [ %505, %if.end1772 ], [ %add.ptr.sink.sink, %case_ToNumber ] - %.sink5437 = phi i64 [ %506, %if.end1772 ], [ %502, %case_ToNumber ] - %op11774 = getelementptr inbounds i8, ptr %.sink5439, i64 1 + %.sink5437 = phi ptr [ %505, %if.end1772 ], [ %add.ptr.sink.sink, %case_ToNumber ] + %.sink5435 = phi i64 [ %506, %if.end1772 ], [ %502, %case_ToNumber ] + %op11774 = getelementptr inbounds i8, ptr %.sink5437, i64 1 %507 = load i8, ptr %op11774, align 1 %idxprom1775 = zext i8 %507 to i64 %arrayidx1776 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom1775 - store i64 %.sink5437, ptr %arrayidx1776, align 8 - %ip.11 = getelementptr inbounds i8, ptr %.sink5439, i64 3 + store i64 %.sink5435, ptr %arrayidx1776, align 8 + %ip.11 = getelementptr inbounds i8, ptr %.sink5437, i64 3 br label %indirectgoto.backedge case_ToNumeric: ; preds = %indirectgoto @@ -5607,8 +5603,8 @@ case_ToNumeric: ; preds = %indirectgoto %idxprom1784 = zext i8 %508 to i64 %arrayidx1785 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom1784 %509 = load i64, ptr %arrayidx1785, align 8 - %cmp.i.i3378 = icmp ult i64 %509, -1970324836974592 - br i1 %cmp.i.i3378, label %if.end1817, label %if.else1797 + %cmp.i.i3376 = icmp ult i64 %509, -1970324836974592 + br i1 %cmp.i.i3376, label %if.end1817, label %if.else1797 if.else1797: ; preds = %case_ToNumeric store ptr %add.ptr.sink.sink, ptr %currentIP_.i.i, align 8 @@ -5618,8 +5614,8 @@ if.else1797: ; preds = %case_ToNumeric %call1805 = call { i32, i64 } @_ZN6hermes2vm13toNumeric_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx1802) #10 %511 = extractvalue { i32, i64 } %call1805, 0 %512 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i3384 = icmp eq i32 %511, 0 - br i1 %cmp.i3384, label %exceptionthread-pre-split.loopexit5518, label %if.end1810 + %cmp.i3382 = icmp eq i32 %511, 0 + br i1 %cmp.i3382, label %exceptionthread-pre-split.loopexit5516, label %if.end1810 if.end1810: ; preds = %if.else1797 %513 = extractvalue { i32, i64 } %call1805, 1 @@ -5629,14 +5625,14 @@ if.end1810: ; preds = %if.else1797 br label %if.end1817 if.end1817: ; preds = %case_ToNumeric, %if.end1810 - %.sink5442 = phi ptr [ %512, %if.end1810 ], [ %add.ptr.sink.sink, %case_ToNumeric ] - %.sink5440 = phi i64 [ %513, %if.end1810 ], [ %509, %case_ToNumeric ] - %op11812 = getelementptr inbounds i8, ptr %.sink5442, i64 1 + %.sink5440 = phi ptr [ %512, %if.end1810 ], [ %add.ptr.sink.sink, %case_ToNumeric ] + %.sink5438 = phi i64 [ %513, %if.end1810 ], [ %509, %case_ToNumeric ] + %op11812 = getelementptr inbounds i8, ptr %.sink5440, i64 1 %514 = load i8, ptr %op11812, align 1 %idxprom1813 = zext i8 %514 to i64 %arrayidx1814 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom1813 - store i64 %.sink5440, ptr %arrayidx1814, align 8 - %ip.12 = getelementptr inbounds i8, ptr %.sink5442, i64 3 + store i64 %.sink5438, ptr %arrayidx1814, align 8 + %ip.12 = getelementptr inbounds i8, ptr %.sink5440, i64 3 br label %indirectgoto.backedge case_ToInt32: ; preds = %indirectgoto @@ -5648,8 +5644,8 @@ case_ToInt32: ; preds = %indirectgoto %call1828 = call { i32, i64 } @_ZN6hermes2vm11toInt32_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx1825) #10 %516 = extractvalue { i32, i64 } %call1828, 0 %517 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i3397 = icmp eq i32 %516, 0 - br i1 %cmp.i3397, label %exceptionthread-pre-split.loopexit5518, label %if.end1834 + %cmp.i3395 = icmp eq i32 %516, 0 + br i1 %cmp.i3395, label %exceptionthread-pre-split.loopexit5516, label %if.end1834 if.end1834: ; preds = %case_ToInt32 %518 = extractvalue { i32, i64 } %call1828, 1 @@ -5670,9 +5666,9 @@ case_AddEmptyString: ; preds = %indirectgoto %idxprom1845 = zext i8 %520 to i64 %arrayidx1846 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom1845 %521 = load i64, ptr %arrayidx1846, align 8 - %shr.i.mask.i3406 = and i64 %521, -281474976710656 - %cmp.i3407 = icmp eq i64 %shr.i.mask.i3406, -844424930131968 - br i1 %cmp.i3407, label %if.end1897, label %if.else1858 + %shr.i.mask.i3404 = and i64 %521, -281474976710656 + %cmp.i3405 = icmp eq i64 %shr.i.mask.i3404, -844424930131968 + br i1 %cmp.i3405, label %if.end1897, label %if.else1858 if.else1858: ; preds = %case_AddEmptyString store ptr %add.ptr.sink.sink, ptr %currentIP_.i.i, align 8 @@ -5682,16 +5678,16 @@ if.else1858: ; preds = %case_AddEmptyString %call1866 = call { i32, i64 } @_ZN6hermes2vm15toPrimitive_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEENS0_13PreferredTypeE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx1863, i32 noundef 0) #10 %523 = extractvalue { i32, i64 } %call1866, 0 %524 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i3413 = icmp eq i32 %523, 0 - br i1 %cmp.i3413, label %exceptionthread-pre-split.loopexit5518, label %if.end1872 + %cmp.i3411 = icmp eq i32 %523, 0 + br i1 %cmp.i3411, label %exceptionthread-pre-split.loopexit5516, label %if.end1872 if.end1872: ; preds = %if.else1858 %525 = extractvalue { i32, i64 } %call1866, 1 store i64 %525, ptr %inlineStorage_.i, align 8 %call1880 = call ptr @_ZN6hermes2vm12toString_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr nonnull %inlineStorage_.i) #10 %526 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i.i3417.not = icmp eq ptr %call1880, inttoptr (i64 -1 to ptr) - br i1 %cmp.i.i3417.not, label %exceptionthread-pre-split.loopexit5518, label %if.end1887 + %cmp.i.i3415.not = icmp eq ptr %call1880, inttoptr (i64 -1 to ptr) + br i1 %cmp.i.i3415.not, label %exceptionthread-pre-split.loopexit5516, label %if.end1887 if.end1887: ; preds = %if.end1872 store i64 -1688849860263936, ptr %inlineStorage_.i, align 8 @@ -5699,18 +5695,18 @@ if.end1887: ; preds = %if.end1872 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 %527 = ptrtoint ptr %call1880 to i64 - %or.i.i.i.i3426 = or i64 %527, -844424930131968 + %or.i.i.i.i3424 = or i64 %527, -844424930131968 br label %if.end1897 if.end1897: ; preds = %case_AddEmptyString, %if.end1887 - %.sink5444 = phi ptr [ %526, %if.end1887 ], [ %add.ptr.sink.sink, %case_AddEmptyString ] - %or.i.i.i.i3426.sink = phi i64 [ %or.i.i.i.i3426, %if.end1887 ], [ %521, %case_AddEmptyString ] - %op11892 = getelementptr inbounds i8, ptr %.sink5444, i64 1 + %.sink5442 = phi ptr [ %526, %if.end1887 ], [ %add.ptr.sink.sink, %case_AddEmptyString ] + %or.i.i.i.i3424.sink = phi i64 [ %or.i.i.i.i3424, %if.end1887 ], [ %521, %case_AddEmptyString ] + %op11892 = getelementptr inbounds i8, ptr %.sink5442, i64 1 %528 = load i8, ptr %op11892, align 1 %idxprom1893 = zext i8 %528 to i64 %arrayidx1894 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom1893 - store i64 %or.i.i.i.i3426.sink, ptr %arrayidx1894, align 8 - %ip.13 = getelementptr inbounds i8, ptr %.sink5444, i64 3 + store i64 %or.i.i.i.i3424.sink, ptr %arrayidx1894, align 8 + %ip.13 = getelementptr inbounds i8, ptr %.sink5442, i64 3 br label %indirectgoto.backedge case_Jmp: ; preds = %indirectgoto @@ -5743,8 +5739,8 @@ if.then1920: ; preds = %case_JmpTrue br label %if.end1927 if.end1927: ; preds = %case_JmpTrue, %if.then1920 - %.sink5445 = phi i64 [ %idx.ext1923, %if.then1920 ], [ 3, %case_JmpTrue ] - %add.ptr1926 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %.sink5445 + %.sink5443 = phi i64 [ %idx.ext1923, %if.then1920 ], [ 3, %case_JmpTrue ] + %add.ptr1926 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %.sink5443 br label %indirectgoto.backedge case_JmpTrueLong: ; preds = %indirectgoto @@ -5763,8 +5759,8 @@ if.then1937: ; preds = %case_JmpTrueLong br label %if.end1943 if.end1943: ; preds = %case_JmpTrueLong, %if.then1937 - %.sink5446 = phi i64 [ %idx.ext1939, %if.then1937 ], [ 6, %case_JmpTrueLong ] - %add.ptr1942 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %.sink5446 + %.sink5444 = phi i64 [ %idx.ext1939, %if.then1937 ], [ 6, %case_JmpTrueLong ] + %add.ptr1942 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %.sink5444 br label %indirectgoto.backedge case_JmpFalse: ; preds = %indirectgoto @@ -5783,8 +5779,8 @@ if.then1953: ; preds = %case_JmpFalse br label %if.end1960 if.end1960: ; preds = %case_JmpFalse, %if.then1953 - %.sink5447 = phi i64 [ %idx.ext1956, %if.then1953 ], [ 3, %case_JmpFalse ] - %add.ptr1959 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %.sink5447 + %.sink5445 = phi i64 [ %idx.ext1956, %if.then1953 ], [ 3, %case_JmpFalse ] + %add.ptr1959 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %.sink5445 br label %indirectgoto.backedge case_JmpFalseLong: ; preds = %indirectgoto @@ -5803,8 +5799,8 @@ if.then1970: ; preds = %case_JmpFalseLong br label %if.end1976 if.end1976: ; preds = %case_JmpFalseLong, %if.then1970 - %.sink5448 = phi i64 [ %idx.ext1972, %if.then1970 ], [ 6, %case_JmpFalseLong ] - %add.ptr1975 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %.sink5448 + %.sink5446 = phi i64 [ %idx.ext1972, %if.then1970 ], [ 6, %case_JmpFalseLong ] + %add.ptr1975 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %.sink5446 br label %indirectgoto.backedge case_JmpUndefined: ; preds = %indirectgoto @@ -5813,9 +5809,9 @@ case_JmpUndefined: ; preds = %indirectgoto %idxprom1981 = zext i8 %539 to i64 %arrayidx1982 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom1981 %540 = load i64, ptr %arrayidx1982, align 8 - %shr.i.mask.i3428 = and i64 %540, -140737488355328 - %cmp.i3429 = icmp eq i64 %shr.i.mask.i3428, -1688849860263936 - br i1 %cmp.i3429, label %if.then1984, label %if.end1991 + %shr.i.mask.i3426 = and i64 %540, -140737488355328 + %cmp.i3427 = icmp eq i64 %shr.i.mask.i3426, -1688849860263936 + br i1 %cmp.i3427, label %if.then1984, label %if.end1991 if.then1984: ; preds = %case_JmpUndefined %op11985 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 @@ -5824,8 +5820,8 @@ if.then1984: ; preds = %case_JmpUndefined br label %if.end1991 if.end1991: ; preds = %case_JmpUndefined, %if.then1984 - %.sink5449 = phi i64 [ %idx.ext1987, %if.then1984 ], [ 3, %case_JmpUndefined ] - %add.ptr1990 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %.sink5449 + %.sink5447 = phi i64 [ %idx.ext1987, %if.then1984 ], [ 3, %case_JmpUndefined ] + %add.ptr1990 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %.sink5447 br label %indirectgoto.backedge case_JmpUndefinedLong: ; preds = %indirectgoto @@ -5834,9 +5830,9 @@ case_JmpUndefinedLong: ; preds = %indirectgoto %idxprom1996 = zext i8 %542 to i64 %arrayidx1997 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom1996 %543 = load i64, ptr %arrayidx1997, align 8 - %shr.i.mask.i3430 = and i64 %543, -140737488355328 - %cmp.i3431 = icmp eq i64 %shr.i.mask.i3430, -1688849860263936 - br i1 %cmp.i3431, label %if.then1999, label %if.end2005 + %shr.i.mask.i3428 = and i64 %543, -140737488355328 + %cmp.i3429 = icmp eq i64 %shr.i.mask.i3428, -1688849860263936 + br i1 %cmp.i3429, label %if.then1999, label %if.end2005 if.then1999: ; preds = %case_JmpUndefinedLong %op12000 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 @@ -5845,8 +5841,8 @@ if.then1999: ; preds = %case_JmpUndefinedLo br label %if.end2005 if.end2005: ; preds = %case_JmpUndefinedLong, %if.then1999 - %.sink5450 = phi i64 [ %idx.ext2001, %if.then1999 ], [ 6, %case_JmpUndefinedLong ] - %add.ptr2004 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %.sink5450 + %.sink5448 = phi i64 [ %idx.ext2001, %if.then1999 ], [ 6, %case_JmpUndefinedLong ] + %add.ptr2004 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %.sink5448 br label %indirectgoto.backedge case_Inc: ; preds = %indirectgoto @@ -5855,17 +5851,17 @@ case_Inc: ; preds = %indirectgoto %idxprom2010 = zext i8 %545 to i64 %arrayidx2011 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2010 %546 = load i64, ptr %arrayidx2011, align 8 - %cmp.i.i3432 = icmp ult i64 %546, -1970324836974592 - br i1 %cmp.i.i3432, label %if.then2014, label %if.end2031 + %cmp.i.i3430 = icmp ult i64 %546, -1970324836974592 + br i1 %cmp.i.i3430, label %if.then2014, label %if.end2031 if.then2014: ; preds = %case_Inc %547 = bitcast i64 %546 to double - %add.i3433 = fadd double %547, 1.000000e+00 + %add.i3431 = fadd double %547, 1.000000e+00 %op12023 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %548 = load i8, ptr %op12023, align 1 %idxprom2024 = zext i8 %548 to i64 %arrayidx2025 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2024 - store double %add.i3433, ptr %arrayidx2025, align 8 + store double %add.i3431, ptr %arrayidx2025, align 8 %add.ptr2027 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 br label %indirectgoto.backedge @@ -5877,8 +5873,8 @@ if.end2031: ; preds = %case_Inc %call2039 = call { i32, i64 } @_ZN6hermes2vm20doIncDecOperSlowPathITnDaXadL_ZNS0_5doIncEdEEEENS0_10CallResultINS0_11HermesValueELNS0_6detail20CallResultSpecializeE2EEERNS0_7RuntimeENS0_6HandleIS3_EE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx2036) #10 %550 = extractvalue { i32, i64 } %call2039, 0 %551 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i3439 = icmp eq i32 %550, 0 - br i1 %cmp.i3439, label %exceptionthread-pre-split.loopexit5518, label %if.end2045 + %cmp.i3437 = icmp eq i32 %550, 0 + br i1 %cmp.i3437, label %exceptionthread-pre-split.loopexit5516, label %if.end2045 if.end2045: ; preds = %if.end2031 %552 = extractvalue { i32, i64 } %call2039, 1 @@ -5899,17 +5895,17 @@ case_Dec: ; preds = %indirectgoto %idxprom2056 = zext i8 %554 to i64 %arrayidx2057 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2056 %555 = load i64, ptr %arrayidx2057, align 8 - %cmp.i.i3448 = icmp ult i64 %555, -1970324836974592 - br i1 %cmp.i.i3448, label %if.then2060, label %if.end2077 + %cmp.i.i3446 = icmp ult i64 %555, -1970324836974592 + br i1 %cmp.i.i3446, label %if.then2060, label %if.end2077 if.then2060: ; preds = %case_Dec %556 = bitcast i64 %555 to double - %sub.i3449 = fadd double %556, -1.000000e+00 + %sub.i3447 = fadd double %556, -1.000000e+00 %op12069 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %557 = load i8, ptr %op12069, align 1 %idxprom2070 = zext i8 %557 to i64 %arrayidx2071 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2070 - store double %sub.i3449, ptr %arrayidx2071, align 8 + store double %sub.i3447, ptr %arrayidx2071, align 8 %add.ptr2073 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 br label %indirectgoto.backedge @@ -5921,8 +5917,8 @@ if.end2077: ; preds = %case_Dec %call2085 = call { i32, i64 } @_ZN6hermes2vm20doIncDecOperSlowPathITnDaXadL_ZNS0_5doDecEdEEEENS0_10CallResultINS0_11HermesValueELNS0_6detail20CallResultSpecializeE2EEERNS0_7RuntimeENS0_6HandleIS3_EE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx2082) #10 %559 = extractvalue { i32, i64 } %call2085, 0 %560 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i3455 = icmp eq i32 %559, 0 - br i1 %cmp.i3455, label %exceptionthread-pre-split.loopexit5518, label %if.end2091 + %cmp.i3453 = icmp eq i32 %559, 0 + br i1 %cmp.i3453, label %exceptionthread-pre-split.loopexit5516, label %if.end2091 if.end2091: ; preds = %if.end2077 %561 = extractvalue { i32, i64 } %call2085, 1 @@ -5943,8 +5939,8 @@ case_Add: ; preds = %indirectgoto %idxprom2102 = zext i8 %563 to i64 %arrayidx2103 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2102 %564 = load i64, ptr %arrayidx2103, align 8 - %cmp.i.i3464 = icmp ult i64 %564, -1970324836974592 - br i1 %cmp.i.i3464, label %land.rhs2105, label %if.end2133 + %cmp.i.i3462 = icmp ult i64 %564, -1970324836974592 + br i1 %cmp.i.i3462, label %land.rhs2105, label %if.end2133 land.rhs2105: ; preds = %case_Add %op32106 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 @@ -5952,8 +5948,8 @@ land.rhs2105: ; preds = %case_Add %idxprom2107 = zext i8 %565 to i64 %arrayidx2108 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2107 %566 = load i64, ptr %arrayidx2108, align 8 - %cmp.i.i3465 = icmp ult i64 %566, -1970324836974592 - br i1 %cmp.i.i3465, label %case_AddN, label %if.end2133 + %cmp.i.i3463 = icmp ult i64 %566, -1970324836974592 + br i1 %cmp.i.i3463, label %case_AddN, label %if.end2133 case_AddN: ; preds = %land.rhs2105, %indirectgoto %op22114 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 2 @@ -5987,8 +5983,8 @@ if.end2133: ; preds = %case_Add, %land.rhs %call2147 = call { i32, i64 } @_ZN6hermes2vm9addOp_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES5_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx2138, ptr %arrayidx2142) #10 %574 = extractvalue { i32, i64 } %call2147, 0 %575 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i3471 = icmp eq i32 %574, 0 - br i1 %cmp.i3471, label %exceptionthread-pre-split.loopexit5518, label %if.end2152 + %cmp.i3469 = icmp eq i32 %574, 0 + br i1 %cmp.i3469, label %exceptionthread-pre-split.loopexit5516, label %if.end2152 if.end2152: ; preds = %if.end2133 %576 = extractvalue { i32, i64 } %call2147, 1 @@ -6009,35 +6005,35 @@ case_BitNot: ; preds = %indirectgoto %idxprom2163 = zext i8 %578 to i64 %arrayidx2164 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2163 %579 = load i64, ptr %arrayidx2164, align 8 - %cmp.i.i3480 = icmp ult i64 %579, -1970324836974592 + %cmp.i.i3478 = icmp ult i64 %579, -1970324836974592 %580 = bitcast i64 %579 to double - br i1 %cmp.i.i3480, label %if.else.i3481, label %if.end2184 + br i1 %cmp.i.i3478, label %if.else.i3479, label %if.end2184 -if.else.i3481: ; preds = %case_BitNot +if.else.i3479: ; preds = %case_BitNot %conv4.i = fptoui double %580 to i64 %shl.i = shl i64 %conv4.i, 1 - %shr.i3482 = ashr exact i64 %shl.i, 1 - %conv5.i = sitofp i64 %shr.i3482 to double + %shr.i3480 = ashr exact i64 %shl.i, 1 + %conv5.i = sitofp i64 %shr.i3480 to double %cmp6.i = fcmp oeq double %580, %conv5.i br i1 %cmp6.i, label %if.then8.i, label %if.end11.i -if.then8.i: ; preds = %if.else.i3481 +if.then8.i: ; preds = %if.else.i3479 %conv9.i = trunc i64 %conv4.i to i32 br label %_ZN6hermes15truncateToInt32Ed.exit -if.end11.i: ; preds = %if.else.i3481 - %call.i3483 = call noundef i32 @_ZN6hermes23truncateToInt32SlowPathEd(double noundef %580) #10 +if.end11.i: ; preds = %if.else.i3479 + %call.i3481 = call noundef i32 @_ZN6hermes23truncateToInt32SlowPathEd(double noundef %580) #10 br label %_ZN6hermes15truncateToInt32Ed.exit _ZN6hermes15truncateToInt32Ed.exit: ; preds = %if.then8.i, %if.end11.i - %retval.0.i3484 = phi i32 [ %call.i3483, %if.end11.i ], [ %conv9.i, %if.then8.i ] - %not = xor i32 %retval.0.i3484, -1 - %conv.i3487 = sitofp i32 %not to double + %retval.0.i3482 = phi i32 [ %call.i3481, %if.end11.i ], [ %conv9.i, %if.then8.i ] + %not = xor i32 %retval.0.i3482, -1 + %conv.i3485 = sitofp i32 %not to double %op12176 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %581 = load i8, ptr %op12176, align 1 %idxprom2177 = zext i8 %581 to i64 %arrayidx2178 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2177 - store double %conv.i3487, ptr %arrayidx2178, align 8 + store double %conv.i3485, ptr %arrayidx2178, align 8 %add.ptr2180 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 br label %indirectgoto.backedge @@ -6049,8 +6045,8 @@ if.end2184: ; preds = %case_BitNot %call2192 = call { i32, i64 } @_ZN6hermes2vm16doBitNotSlowPathERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx2189) #10 %583 = extractvalue { i32, i64 } %call2192, 0 %584 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i3493 = icmp eq i32 %583, 0 - br i1 %cmp.i3493, label %exceptionthread-pre-split.loopexit5518, label %if.end2197 + %cmp.i3491 = icmp eq i32 %583, 0 + br i1 %cmp.i3491, label %exceptionthread-pre-split.loopexit5516, label %if.end2197 if.end2197: ; preds = %if.end2184 %585 = extractvalue { i32, i64 } %call2192, 1 @@ -6071,20 +6067,20 @@ case_GetArgumentsLength: ; preds = %indirectgoto %idxprom2208 = zext i8 %587 to i64 %arrayidx2209 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2208 %588 = load i64, ptr %arrayidx2209, align 8 - %shr.i.mask.i3502 = and i64 %588, -140737488355328 - %cmp.i3503 = icmp eq i64 %shr.i.mask.i3502, -1688849860263936 - br i1 %cmp.i3503, label %if.then2211, label %if.end2226 + %shr.i.mask.i3500 = and i64 %588, -140737488355328 + %cmp.i3501 = icmp eq i64 %shr.i.mask.i3500, -1688849860263936 + br i1 %cmp.i3501, label %if.then2211, label %if.end2226 if.then2211: ; preds = %case_GetArgumentsLength - %arrayidx.i.i3504 = getelementptr inbounds i8, ptr %frameRegs.3, i64 -40 - %589 = load i64, ptr %arrayidx.i.i3504, align 8 - %conv.i.i3505 = trunc i64 %589 to i32 - %conv.i3506 = uitofp i32 %conv.i.i3505 to double + %arrayidx.i.i3502 = getelementptr inbounds i8, ptr %frameRegs.3, i64 -40 + %589 = load i64, ptr %arrayidx.i.i3502, align 8 + %conv.i.i3503 = trunc i64 %589 to i32 + %conv.i3504 = uitofp i32 %conv.i.i3503 to double %op12218 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %590 = load i8, ptr %op12218, align 1 %idxprom2219 = zext i8 %590 to i64 %arrayidx2220 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2219 - store double %conv.i3506, ptr %arrayidx2220, align 8 + store double %conv.i3504, ptr %arrayidx2220, align 8 %add.ptr2222 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 br label %indirectgoto.backedge @@ -6093,14 +6089,14 @@ if.end2226: ; preds = %case_GetArgumentsLe %591 = load i8, ptr %op22207, align 1 %idxprom2230 = zext i8 %591 to i64 %arrayidx2231 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2230 - %call.i3509 = call { i32, i64 } @_ZN6hermes2vm8JSObject24getNamedWithReceiver_RJSENS0_6HandleIS1_EERNS0_7RuntimeENS0_8SymbolIDENS2_INS0_11HermesValueEEENS0_11PropOpFlagsEPNS0_18PropertyCacheEntryE(ptr %arrayidx2231, ptr noundef nonnull align 8 dereferenceable(9832) %runtime, i32 82, ptr %arrayidx2231, i32 0, ptr noundef null) #10 - %592 = extractvalue { i32, i64 } %call.i3509, 0 + %call.i3507 = call { i32, i64 } @_ZN6hermes2vm8JSObject24getNamedWithReceiver_RJSENS0_6HandleIS1_EERNS0_7RuntimeENS0_8SymbolIDENS2_INS0_11HermesValueEEENS0_11PropOpFlagsEPNS0_18PropertyCacheEntryE(ptr %arrayidx2231, ptr noundef nonnull align 8 dereferenceable(9832) %runtime, i32 82, ptr %arrayidx2231, i32 0, ptr noundef null) #10 + %592 = extractvalue { i32, i64 } %call.i3507, 0 %593 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i3511 = icmp eq i32 %592, 0 - br i1 %cmp.i3511, label %exceptionthread-pre-split.loopexit5518, label %if.end2247 + %cmp.i3509 = icmp eq i32 %592, 0 + br i1 %cmp.i3509, label %exceptionthread-pre-split.loopexit5516, label %if.end2247 if.end2247: ; preds = %if.end2226 - %594 = extractvalue { i32, i64 } %call.i3509, 1 + %594 = extractvalue { i32, i64 } %call.i3507, 1 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 @@ -6118,9 +6114,9 @@ case_GetArgumentsPropByVal: ; preds = %indirectgoto %idxprom2261 = zext i8 %596 to i64 %arrayidx2262 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2261 %597 = load i64, ptr %arrayidx2262, align 8 - %shr.i.mask.i3521 = and i64 %597, -140737488355328 - %cmp.i3522 = icmp eq i64 %shr.i.mask.i3521, -1688849860263936 - br i1 %cmp.i3522, label %if.then2264, label %if.end2293 + %shr.i.mask.i3519 = and i64 %597, -140737488355328 + %cmp.i3520 = icmp eq i64 %shr.i.mask.i3519, -1688849860263936 + br i1 %cmp.i3520, label %if.then2264, label %if.end2293 if.then2264: ; preds = %case_GetArgumentsPropByVal %op22266 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 2 @@ -6128,37 +6124,37 @@ if.then2264: ; preds = %case_GetArgumentsPr %idxprom2267 = zext i8 %598 to i64 %arrayidx2268 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2267 %agg.tmp2265.sroa.0.0.copyload = load i64, ptr %arrayidx2268, align 8 - %cmp.i.i.i3523 = icmp ult i64 %agg.tmp2265.sroa.0.0.copyload, -1970324836974592 - br i1 %cmp.i.i.i3523, label %_ZN6hermes2vm20toArrayIndexFastPathENS0_11HermesValueE.exit, label %if.end2293 + %cmp.i.i.i3521 = icmp ult i64 %agg.tmp2265.sroa.0.0.copyload, -1970324836974592 + br i1 %cmp.i.i.i3521, label %_ZN6hermes2vm20toArrayIndexFastPathENS0_11HermesValueE.exit, label %if.end2293 _ZN6hermes2vm20toArrayIndexFastPathENS0_11HermesValueE.exit: ; preds = %if.then2264 %599 = bitcast i64 %agg.tmp2265.sroa.0.0.copyload to double - %conv.i.i3526 = fptoui double %599 to i32 - %conv1.i.i = uitofp i32 %conv.i.i3526 to double - %cmp.i.i3527 = fcmp une double %conv1.i.i, %599 - %cmp2.i.i = icmp eq i32 %conv.i.i3526, -1 - %or.cond.i.i3528.not = or i1 %cmp2.i.i, %cmp.i.i3527 - br i1 %or.cond.i.i3528.not, label %if.end2293, label %if.then2272 + %conv.i.i3524 = fptoui double %599 to i32 + %conv1.i.i = uitofp i32 %conv.i.i3524 to double + %cmp.i.i3525 = fcmp une double %conv1.i.i, %599 + %cmp2.i.i = icmp eq i32 %conv.i.i3524, -1 + %or.cond.i.i3526.not = or i1 %cmp2.i.i, %cmp.i.i3525 + br i1 %or.cond.i.i3526.not, label %if.end2293, label %if.then2272 if.then2272: ; preds = %_ZN6hermes2vm20toArrayIndexFastPathENS0_11HermesValueE.exit - %arrayidx.i.i3530 = getelementptr inbounds i8, ptr %frameRegs.3, i64 -40 - %600 = load i64, ptr %arrayidx.i.i3530, align 8 - %conv.i.i3531 = trunc i64 %600 to i32 - %cmp2277 = icmp ult i32 %conv.i.i3526, %conv.i.i3531 + %arrayidx.i.i3528 = getelementptr inbounds i8, ptr %frameRegs.3, i64 -40 + %600 = load i64, ptr %arrayidx.i.i3528, align 8 + %conv.i.i3529 = trunc i64 %600 to i32 + %cmp2277 = icmp ult i32 %conv.i.i3524, %conv.i.i3529 br i1 %cmp2277, label %if.then2278, label %if.end2293 if.then2278: ; preds = %if.then2272 - %arrayidx.i.i.i3532 = getelementptr inbounds i8, ptr %frameRegs.3, i64 -64 - %conv.i3533 = sext i32 %conv.i.i3526 to i64 - %idx.neg.i.i.i3534 = sub nsw i64 0, %conv.i3533 - %add.ptr.i.i.i3535 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %arrayidx.i.i.i3532, i64 %idx.neg.i.i.i3534 - %incdec.ptr.i.i.i3536 = getelementptr inbounds i8, ptr %add.ptr.i.i.i3535, i64 -8 + %arrayidx.i.i.i3530 = getelementptr inbounds i8, ptr %frameRegs.3, i64 -64 + %conv.i3531 = sext i32 %conv.i.i3524 to i64 + %idx.neg.i.i.i3532 = sub nsw i64 0, %conv.i3531 + %add.ptr.i.i.i3533 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %arrayidx.i.i.i3530, i64 %idx.neg.i.i.i3532 + %incdec.ptr.i.i.i3534 = getelementptr inbounds i8, ptr %add.ptr.i.i.i3533, i64 -8 %op12283 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %601 = load i8, ptr %op12283, align 1 %idxprom2284 = zext i8 %601 to i64 %arrayidx2285 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2284 - %agg.tmp.sroa.0.0.copyload.i3537 = load i64, ptr %incdec.ptr.i.i.i3536, align 8 - store i64 %agg.tmp.sroa.0.0.copyload.i3537, ptr %arrayidx2285, align 8 + %agg.tmp.sroa.0.0.copyload.i3535 = load i64, ptr %incdec.ptr.i.i.i3534, align 8 + store i64 %agg.tmp.sroa.0.0.copyload.i3535, ptr %arrayidx2285, align 8 %add.ptr2287 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 4 br label %indirectgoto.backedge @@ -6171,13 +6167,13 @@ if.end2293: ; preds = %if.then2264, %_ZN6h %603 = load i8, ptr %op22298, align 1 %idxprom2299 = zext i8 %603 to i64 %arrayidx2300 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2299 - %arrayidx.i.i3539 = getelementptr inbounds i8, ptr %frameRegs.3, i64 -56 + %arrayidx.i.i3537 = getelementptr inbounds i8, ptr %frameRegs.3, i64 -56 %tobool2307 = icmp ne i8 %strictMode.1, 0 - %call2310 = call { i32, i64 } @_ZN6hermes2vm11Interpreter33getArgumentsPropByValSlowPath_RJSERNS0_7RuntimeEPNS0_17PinnedHermesValueES5_NS0_6HandleINS0_8CallableEEEb(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr noundef %arrayidx2297, ptr noundef %arrayidx2300, ptr nonnull %arrayidx.i.i3539, i1 noundef zeroext %tobool2307) + %call2310 = call { i32, i64 } @_ZN6hermes2vm11Interpreter33getArgumentsPropByValSlowPath_RJSERNS0_7RuntimeEPNS0_17PinnedHermesValueES5_NS0_6HandleINS0_8CallableEEEb(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr noundef %arrayidx2297, ptr noundef %arrayidx2300, ptr nonnull %arrayidx.i.i3537, i1 noundef zeroext %tobool2307) %604 = extractvalue { i32, i64 } %call2310, 0 %605 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i3541 = icmp eq i32 %604, 0 - br i1 %cmp.i3541, label %exceptionthread-pre-split.loopexit5518, label %if.end2314 + %cmp.i3539 = icmp eq i32 %604, 0 + br i1 %cmp.i3539, label %exceptionthread-pre-split.loopexit5516, label %if.end2314 if.end2314: ; preds = %if.end2293 %606 = extractvalue { i32, i64 } %call2310, 1 @@ -6198,9 +6194,9 @@ case_ReifyArguments: ; preds = %indirectgoto %idxprom2328 = zext i8 %608 to i64 %arrayidx2329 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2328 %609 = load i64, ptr %arrayidx2329, align 8 - %shr.i.mask.i3551 = and i64 %609, -140737488355328 - %cmp.i3552 = icmp eq i64 %shr.i.mask.i3551, -1688849860263936 - br i1 %cmp.i3552, label %if.end2336, label %if.then2331 + %shr.i.mask.i3549 = and i64 %609, -140737488355328 + %cmp.i3550 = icmp eq i64 %shr.i.mask.i3549, -1688849860263936 + br i1 %cmp.i3550, label %if.end2336, label %if.then2331 if.then2331: ; preds = %case_ReifyArguments %add.ptr2332 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 2 @@ -6208,20 +6204,20 @@ if.then2331: ; preds = %case_ReifyArguments if.end2336: ; preds = %case_ReifyArguments store ptr %add.ptr.sink.sink, ptr %currentIP_.i.i, align 8 - %arrayidx.i.i3554 = getelementptr inbounds i8, ptr %frameRegs.3, i64 -56 + %arrayidx.i.i3552 = getelementptr inbounds i8, ptr %frameRegs.3, i64 -56 %tobool2344 = icmp ne i8 %strictMode.1, 0 - %call2347 = call ptr @_ZN6hermes2vm11Interpreter22reifyArgumentsSlowPathERNS0_7RuntimeENS0_6HandleINS0_8CallableEEEb(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr nonnull %arrayidx.i.i3554, i1 noundef zeroext %tobool2344) + %call2347 = call ptr @_ZN6hermes2vm11Interpreter22reifyArgumentsSlowPathERNS0_7RuntimeENS0_6HandleINS0_8CallableEEEb(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr nonnull %arrayidx.i.i3552, i1 noundef zeroext %tobool2344) %610 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i.i3556.not = icmp eq ptr %call2347, inttoptr (i64 -1 to ptr) - br i1 %cmp.i.i3556.not, label %exceptionthread-pre-split.loopexit5518, label %if.end2355 + %cmp.i.i3554.not = icmp eq ptr %call2347, inttoptr (i64 -1 to ptr) + br i1 %cmp.i.i3554.not, label %exceptionthread-pre-split.loopexit5516, label %if.end2355 if.end2355: ; preds = %if.end2336 - %retval.sroa.0.0.copyload.i3559 = load i64, ptr %call2347, align 8 + %retval.sroa.0.0.copyload.i3557 = load i64, ptr %call2347, align 8 %op12360 = getelementptr inbounds i8, ptr %610, i64 1 %611 = load i8, ptr %op12360, align 1 %idxprom2361 = zext i8 %611 to i64 %arrayidx2362 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2361 - store i64 %retval.sroa.0.0.copyload.i3559, ptr %arrayidx2362, align 8 + store i64 %retval.sroa.0.0.copyload.i3557, ptr %arrayidx2362, align 8 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 @@ -6232,12 +6228,12 @@ case_NewObject: ; preds = %indirectgoto store ptr %add.ptr.sink.sink, ptr %currentIP_.i.i, align 8 %call2370 = call ptr @_ZN6hermes2vm8JSObject6createERNS0_7RuntimeE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime) #10 %612 = ptrtoint ptr %call2370 to i64 - %or.i.i.i.i3568 = or i64 %612, -281474976710656 + %or.i.i.i.i3566 = or i64 %612, -281474976710656 %op12374 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %613 = load i8, ptr %op12374, align 1 %idxprom2375 = zext i8 %613 to i64 %arrayidx2376 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2375 - store i64 %or.i.i.i.i3568, ptr %arrayidx2376, align 8 + store i64 %or.i.i.i.i3566, ptr %arrayidx2376, align 8 %614 = load ptr, ptr %currentIP_.i.i, align 8 %add.ptr2379 = getelementptr inbounds i8, ptr %614, i64 2 br label %indirectgoto.backedge @@ -6249,19 +6245,19 @@ case_NewObjectWithParent: ; preds = %indirectgoto %idxprom2387 = zext i8 %615 to i64 %arrayidx2388 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2387 %616 = load i64, ptr %arrayidx2388, align 8 - %cmp.i3572 = icmp ugt i64 %616, -281474976710657 - %shr.i.mask.i3573 = and i64 %616, -140737488355328 - %cmp.i3574 = icmp eq i64 %shr.i.mask.i3573, -1548112371908608 - %spec.select5124 = select i1 %cmp.i3574, ptr @_ZN6hermes2vm15HandleRootOwner12nullPointer_E, ptr %objectPrototype2579 - %agg.tmp2385.sroa.0.0 = select i1 %cmp.i3572, ptr %arrayidx2388, ptr %spec.select5124 + %cmp.i3570 = icmp ugt i64 %616, -281474976710657 + %shr.i.mask.i3571 = and i64 %616, -140737488355328 + %cmp.i3572 = icmp eq i64 %shr.i.mask.i3571, -1548112371908608 + %spec.select5122 = select i1 %cmp.i3572, ptr @_ZN6hermes2vm15HandleRootOwner12nullPointer_E, ptr %objectPrototype2579 + %agg.tmp2385.sroa.0.0 = select i1 %cmp.i3570, ptr %arrayidx2388, ptr %spec.select5122 %call2414 = call ptr @_ZN6hermes2vm8JSObject6createERNS0_7RuntimeENS0_6HandleIS1_EE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr nonnull %agg.tmp2385.sroa.0.0) #10 %617 = ptrtoint ptr %call2414 to i64 - %or.i.i.i.i3575 = or i64 %617, -281474976710656 + %or.i.i.i.i3573 = or i64 %617, -281474976710656 %op12418 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %618 = load i8, ptr %op12418, align 1 %idxprom2419 = zext i8 %618 to i64 %arrayidx2420 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2419 - store i64 %or.i.i.i.i3575, ptr %arrayidx2420, align 8 + store i64 %or.i.i.i.i3573, ptr %arrayidx2420, align 8 %619 = load ptr, ptr %currentIP_.i.i, align 8 %add.ptr2423 = getelementptr inbounds i8, ptr %619, i64 3 br label %indirectgoto.backedge @@ -6280,8 +6276,8 @@ case_NewObjectWithBuffer: ; preds = %indirectgoto %call2434 = call { i32, i64 } @_ZN6hermes2vm11Interpreter22createObjectFromBufferERNS0_7RuntimeEPNS0_9CodeBlockEjjj(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr noundef %curCodeBlock.4, i32 noundef %conv2429, i32 noundef %conv2431, i32 noundef %conv2433) %623 = extractvalue { i32, i64 } %call2434, 0 %624 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i3580 = icmp eq i32 %623, 0 - br i1 %cmp.i3580, label %exceptionthread-pre-split.loopexit5518, label %if.end2439 + %cmp.i3578 = icmp eq i32 %623, 0 + br i1 %cmp.i3578, label %exceptionthread-pre-split.loopexit5516, label %if.end2439 if.end2439: ; preds = %case_NewObjectWithBuffer %625 = extractvalue { i32, i64 } %call2434, 1 @@ -6308,8 +6304,8 @@ case_NewObjectWithBufferLong: ; preds = %indirectgoto %call2457 = call { i32, i64 } @_ZN6hermes2vm11Interpreter22createObjectFromBufferERNS0_7RuntimeEPNS0_9CodeBlockEjjj(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr noundef %curCodeBlock.4, i32 noundef %conv2454, i32 noundef %628, i32 noundef %629) %630 = extractvalue { i32, i64 } %call2457, 0 %631 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i3592 = icmp eq i32 %630, 0 - br i1 %cmp.i3592, label %exceptionthread-pre-split.loopexit5518, label %if.end2462 + %cmp.i3590 = icmp eq i32 %630, 0 + br i1 %cmp.i3590, label %exceptionthread-pre-split.loopexit5516, label %if.end2462 if.end2462: ; preds = %case_NewObjectWithBufferLong %632 = extractvalue { i32, i64 } %call2457, 1 @@ -6331,16 +6327,16 @@ case_NewArray: ; preds = %indirectgoto %conv2476 = zext i16 %634 to i32 %call2479 = call ptr @_ZN6hermes2vm7JSArray6createERNS0_7RuntimeEjj(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, i32 noundef %conv2476, i32 noundef %conv2476) #10 %635 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i.i3604.not = icmp eq ptr %call2479, inttoptr (i64 -1 to ptr) - br i1 %cmp.i.i3604.not, label %exceptionthread-pre-split.loopexit5518, label %if.end2486 + %cmp.i.i3602.not = icmp eq ptr %call2479, inttoptr (i64 -1 to ptr) + br i1 %cmp.i.i3602.not, label %exceptionthread-pre-split.loopexit5516, label %if.end2486 if.end2486: ; preds = %case_NewArray - %retval.sroa.0.0.copyload.i3607 = load i64, ptr %call2479, align 8 + %retval.sroa.0.0.copyload.i3605 = load i64, ptr %call2479, align 8 %op12491 = getelementptr inbounds i8, ptr %635, i64 1 %636 = load i8, ptr %op12491, align 1 %idxprom2492 = zext i8 %636 to i64 %arrayidx2493 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2492 - store i64 %retval.sroa.0.0.copyload.i3607, ptr %arrayidx2493, align 8 + store i64 %retval.sroa.0.0.copyload.i3605, ptr %arrayidx2493, align 8 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 @@ -6361,8 +6357,8 @@ case_NewArrayWithBuffer: ; preds = %indirectgoto %call2506 = call { i32, i64 } @_ZN6hermes2vm11Interpreter21createArrayFromBufferERNS0_7RuntimeEPNS0_9CodeBlockEjjj(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr noundef %curCodeBlock.4, i32 noundef %conv2501, i32 noundef %conv2503, i32 noundef %conv2505) %640 = extractvalue { i32, i64 } %call2506, 0 %641 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i3617 = icmp eq i32 %640, 0 - br i1 %cmp.i3617, label %exceptionthread-pre-split.loopexit5518, label %if.end2511 + %cmp.i3615 = icmp eq i32 %640, 0 + br i1 %cmp.i3615, label %exceptionthread-pre-split.loopexit5516, label %if.end2511 if.end2511: ; preds = %case_NewArrayWithBuffer %642 = extractvalue { i32, i64 } %call2506, 1 @@ -6391,8 +6387,8 @@ case_NewArrayWithBufferLong: ; preds = %indirectgoto %call2530 = call { i32, i64 } @_ZN6hermes2vm11Interpreter21createArrayFromBufferERNS0_7RuntimeEPNS0_9CodeBlockEjjj(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr noundef %curCodeBlock.4, i32 noundef %conv2526, i32 noundef %conv2528, i32 noundef %646) %647 = extractvalue { i32, i64 } %call2530, 0 %648 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i3629 = icmp eq i32 %647, 0 - br i1 %cmp.i3629, label %exceptionthread-pre-split.loopexit5518, label %if.end2535 + %cmp.i3627 = icmp eq i32 %647, 0 + br i1 %cmp.i3627, label %exceptionthread-pre-split.loopexit5516, label %if.end2535 if.end2535: ; preds = %case_NewArrayWithBufferLong %649 = extractvalue { i32, i64 } %call2530, 1 @@ -6414,12 +6410,12 @@ case_CreateThis: ; preds = %indirectgoto %idxprom2550 = zext i8 %651 to i64 %arrayidx2551 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2550 %agg.tmp2548.sroa.0.0.copyload = load i64, ptr %arrayidx2551, align 8 - %cmp.i.i3639 = icmp ugt i64 %agg.tmp2548.sroa.0.0.copyload, -844424930131969 - br i1 %cmp.i.i3639, label %_ZN6hermes2vm5vmisaINS0_8CallableEEEbNS0_11HermesValueE.exit, label %if.then2556 + %cmp.i.i3637 = icmp ugt i64 %agg.tmp2548.sroa.0.0.copyload, -844424930131969 + br i1 %cmp.i.i3637, label %_ZN6hermes2vm5vmisaINS0_8CallableEEEbNS0_11HermesValueE.exit, label %if.then2556 _ZN6hermes2vm5vmisaINS0_8CallableEEEbNS0_11HermesValueE.exit: ; preds = %case_CreateThis - %and.i.i3640 = and i64 %agg.tmp2548.sroa.0.0.copyload, 281474976710655 - %652 = inttoptr i64 %and.i.i3640 to ptr + %and.i.i3638 = and i64 %agg.tmp2548.sroa.0.0.copyload, 281474976710655 + %652 = inttoptr i64 %and.i.i3638 to ptr %bf.load.i.i.i.i.i.i.i.i.i = load i32, ptr %652, align 4 %653 = add i32 %bf.load.i.i.i.i.i.i.i.i.i, -1140850688 %654 = icmp ult i32 %653, 150994944 @@ -6427,9 +6423,9 @@ _ZN6hermes2vm5vmisaINS0_8CallableEEEbNS0_11HermesValueE.exit: ; preds = %case_Cr if.then2556: ; preds = %case_CreateThis, %_ZN6hermes2vm5vmisaINS0_8CallableEEEbNS0_11HermesValueE.exit store ptr %add.ptr.sink.sink, ptr %currentIP_.i.i, align 8 - store i32 1, ptr %rightKind_.i3.i3643, align 8 - store i64 27, ptr %leftSize_.i4.i3644, align 8 - store i64 0, ptr %rightSize_.i5.i3645, align 8 + store i32 1, ptr %rightKind_.i3.i3641, align 8 + store i64 27, ptr %leftSize_.i4.i3642, align 8 + store i64 0, ptr %rightSize_.i5.i3643, align 8 store ptr @.str.15, ptr %ref.tmp2557, align 8 store i32 3, ptr %7, align 8 %call2558 = call noundef i32 @_ZN6hermes2vm7Runtime14raiseTypeErrorERKNS0_11TwineChar16E(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr noundef nonnull align 8 dereferenceable(48) %ref.tmp2557) #10 @@ -6446,34 +6442,34 @@ if.end2560: ; preds = %_ZN6hermes2vm5vmisa %idxprom2571 = zext i8 %657 to i64 %arrayidx2572 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2571 %658 = load i64, ptr %arrayidx2572, align 8 - %cmp.i3653 = icmp ugt i64 %658, -281474976710657 - %spec.select5125 = select i1 %cmp.i3653, ptr %arrayidx2572, ptr %objectPrototype2579 - %agg.tmp.sroa.0.0.copyload.i.i.i3654 = load i64, ptr %arrayidx2565, align 8 - %and.i.i.i.i.i.i3655 = and i64 %agg.tmp.sroa.0.0.copyload.i.i.i3654, 281474976710655 - %659 = inttoptr i64 %and.i.i.i.i.i.i3655 to ptr - %bf.load.i.i.i.i3656 = load i32, ptr %659, align 4 - %bf.lshr.i.i.i.i3657 = lshr i32 %bf.load.i.i.i.i3656, 24 - %conv.i.i.i.i3658 = zext nneg i32 %bf.lshr.i.i.i.i3657 to i64 - %arrayidx.i.i.i.i.i.i = getelementptr inbounds [79 x ptr], ptr @_ZN6hermes2vm6VTable11vtableArrayE, i64 0, i64 %conv.i.i.i.i3658 + %cmp.i3651 = icmp ugt i64 %658, -281474976710657 + %spec.select5123 = select i1 %cmp.i3651, ptr %arrayidx2572, ptr %objectPrototype2579 + %agg.tmp.sroa.0.0.copyload.i.i.i3652 = load i64, ptr %arrayidx2565, align 8 + %and.i.i.i.i.i.i3653 = and i64 %agg.tmp.sroa.0.0.copyload.i.i.i3652, 281474976710655 + %659 = inttoptr i64 %and.i.i.i.i.i.i3653 to ptr + %bf.load.i.i.i.i3654 = load i32, ptr %659, align 4 + %bf.lshr.i.i.i.i3655 = lshr i32 %bf.load.i.i.i.i3654, 24 + %conv.i.i.i.i3656 = zext nneg i32 %bf.lshr.i.i.i.i3655 to i64 + %arrayidx.i.i.i.i.i.i = getelementptr inbounds [79 x ptr], ptr @_ZN6hermes2vm6VTable11vtableArrayE, i64 0, i64 %conv.i.i.i.i3656 %660 = load ptr, ptr %arrayidx.i.i.i.i.i.i, align 8 %newObject.i = getelementptr inbounds i8, ptr %660, i64 104 %661 = load ptr, ptr %newObject.i, align 8 - %call10.i = call ptr %661(ptr nonnull %arrayidx2565, ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr nonnull %spec.select5125) #10 + %call10.i = call ptr %661(ptr nonnull %arrayidx2565, ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr nonnull %spec.select5123) #10 %662 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i.i3660.not = icmp eq ptr %call10.i, inttoptr (i64 -1 to ptr) - br i1 %cmp.i.i3660.not, label %exceptionthread-pre-split.loopexit5518, label %if.end2596 + %cmp.i.i3658.not = icmp eq ptr %call10.i, inttoptr (i64 -1 to ptr) + br i1 %cmp.i.i3658.not, label %exceptionthread-pre-split.loopexit5516, label %if.end2596 if.end2596: ; preds = %if.end2560 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 %663 = ptrtoint ptr %call10.i to i64 - %or.i.i.i.i3669 = or i64 %663, -281474976710656 + %or.i.i.i.i3667 = or i64 %663, -281474976710656 %op12601 = getelementptr inbounds i8, ptr %662, i64 1 %664 = load i8, ptr %op12601, align 1 %idxprom2602 = zext i8 %664 to i64 %arrayidx2603 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2602 - store i64 %or.i.i.i.i3669, ptr %arrayidx2603, align 8 + store i64 %or.i.i.i.i3667, ptr %arrayidx2603, align 8 %add.ptr2605 = getelementptr inbounds i8, ptr %662, i64 4 br label %indirectgoto.backedge @@ -6483,9 +6479,9 @@ case_SelectObject: ; preds = %indirectgoto %idxprom2610 = zext i8 %665 to i64 %arrayidx2611 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2610 %666 = load i64, ptr %arrayidx2611, align 8 - %cmp.i3671 = icmp ugt i64 %666, -281474976710657 + %cmp.i3669 = icmp ugt i64 %666, -281474976710657 %op22618 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 2 - %idxprom2615.pn.in.in = select i1 %cmp.i3671, ptr %op32609, ptr %op22618 + %idxprom2615.pn.in.in = select i1 %cmp.i3669, ptr %op32609, ptr %op22618 %idxprom2615.pn.in = load i8, ptr %idxprom2615.pn.in.in, align 1 %idxprom2615.pn = zext i8 %idxprom2615.pn.in to i64 %cond-lvalue = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2615.pn @@ -6493,8 +6489,8 @@ case_SelectObject: ; preds = %indirectgoto %667 = load i8, ptr %op12622, align 1 %idxprom2623 = zext i8 %667 to i64 %arrayidx2624 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2623 - %agg.tmp.sroa.0.0.copyload.i3672 = load i64, ptr %cond-lvalue, align 8 - store i64 %agg.tmp.sroa.0.0.copyload.i3672, ptr %arrayidx2624, align 8 + %agg.tmp.sroa.0.0.copyload.i3670 = load i64, ptr %cond-lvalue, align 8 + store i64 %agg.tmp.sroa.0.0.copyload.i3670, ptr %arrayidx2624, align 8 %add.ptr2626 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 4 br label %indirectgoto.backedge @@ -6510,9 +6506,9 @@ case_Neq: ; preds = %indirectgoto %arrayidx2637 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2636 %call2642 = call i32 @_ZN6hermes2vm24abstractEqualityTest_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES5_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx2633, ptr %arrayidx2637) #10 %670 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i36785176.mask = and i32 %call2642, 255 - %cmp.i3679 = icmp eq i32 %bf.cast.i.i36785176.mask, 0 - br i1 %cmp.i3679, label %exceptionthread-pre-split.loopexit5518, label %if.end2646 + %bf.cast.i.i36765174.mask = and i32 %call2642, 255 + %cmp.i3677 = icmp eq i32 %bf.cast.i.i36765174.mask, 0 + br i1 %cmp.i3677, label %exceptionthread-pre-split.loopexit5516, label %if.end2646 if.end2646: ; preds = %case_Neq %eqRes.sroa.0.0.extract.trunc = trunc i32 %call2642 to i16 @@ -6522,16 +6518,16 @@ if.end2646: ; preds = %case_Neq %671 = load i8, ptr %670, align 1 %cmp2648 = icmp eq i8 %671, 14 %672 = and i16 %eqRes.sroa.0.0.extract.trunc, 256 - %bf.cast.i.i3687 = icmp ne i16 %672, 0 - %bf.cast.i.i3689.not = icmp eq i16 %672, 0 - %cond2655 = select i1 %cmp2648, i1 %bf.cast.i.i3687, i1 %bf.cast.i.i3689.not - %conv.i3690 = zext i1 %cond2655 to i64 - %or.i.i3691 = or disjoint i64 %conv.i3690, -1407374883553280 + %bf.cast.i.i3685 = icmp ne i16 %672, 0 + %bf.cast.i.i3687.not = icmp eq i16 %672, 0 + %cond2655 = select i1 %cmp2648, i1 %bf.cast.i.i3685, i1 %bf.cast.i.i3687.not + %conv.i3688 = zext i1 %cond2655 to i64 + %or.i.i3689 = or disjoint i64 %conv.i3688, -1407374883553280 %op12658 = getelementptr inbounds i8, ptr %670, i64 1 %673 = load i8, ptr %op12658, align 1 %idxprom2659 = zext i8 %673 to i64 %arrayidx2660 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2659 - store i64 %or.i.i3691, ptr %arrayidx2660, align 8 + store i64 %or.i.i3689, ptr %arrayidx2660, align 8 %add.ptr2662 = getelementptr inbounds i8, ptr %670, i64 4 br label %indirectgoto.backedge @@ -6547,13 +6543,13 @@ case_StrictEq: ; preds = %indirectgoto %arrayidx2674 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2673 %agg.tmp2671.sroa.0.0.copyload = load i64, ptr %arrayidx2674, align 8 %call2677 = call noundef zeroext i1 @_ZN6hermes2vm18strictEqualityTestENS0_11HermesValueES1_(i64 %agg.tmp2667.sroa.0.0.copyload, i64 %agg.tmp2671.sroa.0.0.copyload) #10 - %conv.i3693 = zext i1 %call2677 to i64 - %or.i.i3694 = or disjoint i64 %conv.i3693, -1407374883553280 + %conv.i3691 = zext i1 %call2677 to i64 + %or.i.i3692 = or disjoint i64 %conv.i3691, -1407374883553280 %op12680 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %676 = load i8, ptr %op12680, align 1 %idxprom2681 = zext i8 %676 to i64 %arrayidx2682 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2681 - store i64 %or.i.i3694, ptr %arrayidx2682, align 8 + store i64 %or.i.i3692, ptr %arrayidx2682, align 8 %add.ptr2684 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 4 br label %indirectgoto.backedge @@ -6570,13 +6566,13 @@ case_StrictNeq: ; preds = %indirectgoto %agg.tmp2693.sroa.0.0.copyload = load i64, ptr %arrayidx2696, align 8 %call2699 = call noundef zeroext i1 @_ZN6hermes2vm18strictEqualityTestENS0_11HermesValueES1_(i64 %agg.tmp2689.sroa.0.0.copyload, i64 %agg.tmp2693.sroa.0.0.copyload) #10 %lnot2700 = xor i1 %call2699, true - %conv.i3696 = zext i1 %lnot2700 to i64 - %or.i.i3697 = or disjoint i64 %conv.i3696, -1407374883553280 + %conv.i3694 = zext i1 %lnot2700 to i64 + %or.i.i3695 = or disjoint i64 %conv.i3694, -1407374883553280 %op12703 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %679 = load i8, ptr %op12703, align 1 %idxprom2704 = zext i8 %679 to i64 %arrayidx2705 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2704 - store i64 %or.i.i3697, ptr %arrayidx2705, align 8 + store i64 %or.i.i3695, ptr %arrayidx2705, align 8 %add.ptr2707 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 4 br label %indirectgoto.backedge @@ -6588,13 +6584,13 @@ case_Not: ; preds = %indirectgoto %agg.tmp2712.sroa.0.0.copyload = load i64, ptr %arrayidx2715, align 8 %call2717 = call noundef zeroext i1 @_ZN6hermes2vm9toBooleanENS0_11HermesValueE(i64 %agg.tmp2712.sroa.0.0.copyload) #10 %lnot2718 = xor i1 %call2717, true - %conv.i3699 = zext i1 %lnot2718 to i64 - %or.i.i3700 = or disjoint i64 %conv.i3699, -1407374883553280 + %conv.i3697 = zext i1 %lnot2718 to i64 + %or.i.i3698 = or disjoint i64 %conv.i3697, -1407374883553280 %op12721 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %681 = load i8, ptr %op12721, align 1 %idxprom2722 = zext i8 %681 to i64 %arrayidx2723 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2722 - store i64 %or.i.i3700, ptr %arrayidx2723, align 8 + store i64 %or.i.i3698, ptr %arrayidx2723, align 8 %add.ptr2725 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 br label %indirectgoto.backedge @@ -6604,20 +6600,20 @@ case_Negate: ; preds = %indirectgoto %idxprom2730 = zext i8 %682 to i64 %arrayidx2731 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2730 %683 = load i64, ptr %arrayidx2731, align 8 - %cmp.i.i3702 = icmp ult i64 %683, -1970324836974592 - br i1 %cmp.i.i3702, label %if.then2734, label %if.end2750 + %cmp.i.i3700 = icmp ult i64 %683, -1970324836974592 + br i1 %cmp.i.i3700, label %if.then2734, label %if.end2750 if.then2734: ; preds = %case_Negate %684 = bitcast i64 %683 to double %fneg = fneg double %684 %685 = fcmp uno double %684, 0.000000e+00 %686 = bitcast double %fneg to i64 - %retval.sroa.0.0.i3703 = select i1 %685, i64 9221120237041090560, i64 %686 + %retval.sroa.0.0.i3701 = select i1 %685, i64 9221120237041090560, i64 %686 %op12742 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %687 = load i8, ptr %op12742, align 1 %idxprom2743 = zext i8 %687 to i64 %arrayidx2744 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2743 - store i64 %retval.sroa.0.0.i3703, ptr %arrayidx2744, align 8 + store i64 %retval.sroa.0.0.i3701, ptr %arrayidx2744, align 8 %add.ptr2746 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 br label %indirectgoto.backedge @@ -6629,8 +6625,8 @@ if.end2750: ; preds = %case_Negate %call2758 = call { i32, i64 } @_ZN6hermes2vm16doNegateSlowPathERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx2755) #10 %689 = extractvalue { i32, i64 } %call2758, 0 %690 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i3709 = icmp eq i32 %689, 0 - br i1 %cmp.i3709, label %exceptionthread-pre-split.loopexit5518, label %if.end2763 + %cmp.i3707 = icmp eq i32 %689, 0 + br i1 %cmp.i3707, label %exceptionthread-pre-split.loopexit5516, label %if.end2763 if.end2763: ; preds = %if.end2750 %691 = extractvalue { i32, i64 } %call2758, 1 @@ -6667,9 +6663,9 @@ case_Mod: ; preds = %indirectgoto %idxprom2792 = zext i8 %696 to i64 %arrayidx2793 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2792 %697 = load i64, ptr %arrayidx2793, align 8 - %cmp.i.i3721 = icmp ult i64 %697, -1970324836974592 + %cmp.i.i3719 = icmp ult i64 %697, -1970324836974592 %698 = bitcast i64 %697 to double - br i1 %cmp.i.i3721, label %land.rhs2795, label %if.end2823 + br i1 %cmp.i.i3719, label %land.rhs2795, label %if.end2823 land.rhs2795: ; preds = %case_Mod %op32796 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 @@ -6677,20 +6673,20 @@ land.rhs2795: ; preds = %case_Mod %idxprom2797 = zext i8 %699 to i64 %arrayidx2798 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2797 %700 = load i64, ptr %arrayidx2798, align 8 - %cmp.i.i3722 = icmp ult i64 %700, -1970324836974592 - br i1 %cmp.i.i3722, label %if.then2802, label %if.end2823 + %cmp.i.i3720 = icmp ult i64 %700, -1970324836974592 + br i1 %cmp.i.i3720, label %if.then2802, label %if.end2823 if.then2802: ; preds = %land.rhs2795 %701 = bitcast i64 %700 to double - %call.i3723 = call noundef double @fmod(double noundef %698, double noundef %701) #10 - %702 = fcmp uno double %call.i3723, 0.000000e+00 - %703 = bitcast double %call.i3723 to i64 - %retval.sroa.0.0.i3724 = select i1 %702, i64 9221120237041090560, i64 %703 + %call.i3721 = call noundef double @fmod(double noundef %698, double noundef %701) #10 + %702 = fcmp uno double %call.i3721, 0.000000e+00 + %703 = bitcast double %call.i3721 to i64 + %retval.sroa.0.0.i3722 = select i1 %702, i64 9221120237041090560, i64 %703 %op12815 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %704 = load i8, ptr %op12815, align 1 %idxprom2816 = zext i8 %704 to i64 %arrayidx2817 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2816 - store i64 %retval.sroa.0.0.i3724, ptr %arrayidx2817, align 8 + store i64 %retval.sroa.0.0.i3722, ptr %arrayidx2817, align 8 %add.ptr2819 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 4 br label %indirectgoto.backedge @@ -6706,8 +6702,8 @@ if.end2823: ; preds = %case_Mod, %land.rhs %call2837 = call { i32, i64 } @_ZN6hermes2vm14doOperSlowPathITnDaXadL_ZNS0_5doModEddEEEENS0_10CallResultINS0_11HermesValueELNS0_6detail20CallResultSpecializeE2EEERNS0_7RuntimeENS0_6HandleIS3_EESA_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx2828, ptr %arrayidx2832) #10 %707 = extractvalue { i32, i64 } %call2837, 0 %708 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i3730 = icmp eq i32 %707, 0 - br i1 %cmp.i3730, label %exceptionthread-pre-split.loopexit5518, label %if.end2843 + %cmp.i3728 = icmp eq i32 %707, 0 + br i1 %cmp.i3728, label %exceptionthread-pre-split.loopexit5516, label %if.end2843 if.end2843: ; preds = %if.end2823 %709 = extractvalue { i32, i64 } %call2837, 1 @@ -6734,20 +6730,20 @@ case_InstanceOf: ; preds = %indirectgoto %arrayidx2860 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2859 %call2865 = call i32 @_ZN6hermes2vm22instanceOfOperator_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES5_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx2856, ptr %arrayidx2860) #10 %713 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i37445166.mask = and i32 %call2865, 255 - %cmp.i3745 = icmp eq i32 %bf.cast.i.i37445166.mask, 0 - br i1 %cmp.i3745, label %exceptionthread-pre-split.loopexit5518, label %if.end2870 + %bf.cast.i.i37425164.mask = and i32 %call2865, 255 + %cmp.i3743 = icmp eq i32 %bf.cast.i.i37425164.mask, 0 + br i1 %cmp.i3743, label %exceptionthread-pre-split.loopexit5516, label %if.end2870 if.end2870: ; preds = %case_InstanceOf %714 = lshr i32 %call2865, 8 - %.lobit5167 = and i32 %714, 1 - %conv.i3748 = zext nneg i32 %.lobit5167 to i64 - %or.i.i3749 = or disjoint i64 %conv.i3748, -1407374883553280 + %.lobit5165 = and i32 %714, 1 + %conv.i3746 = zext nneg i32 %.lobit5165 to i64 + %or.i.i3747 = or disjoint i64 %conv.i3746, -1407374883553280 %op12875 = getelementptr inbounds i8, ptr %713, i64 1 %715 = load i8, ptr %op12875, align 1 %idxprom2876 = zext i8 %715 to i64 %arrayidx2877 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2876 - store i64 %or.i.i3749, ptr %arrayidx2877, align 8 + store i64 %or.i.i3747, ptr %arrayidx2877, align 8 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 @@ -6760,14 +6756,14 @@ case_IsIn: ; preds = %indirectgoto %idxprom2884 = zext i8 %716 to i64 %arrayidx2885 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2884 %717 = load i64, ptr %arrayidx2885, align 8 - %cmp.i3757 = icmp ugt i64 %717, -281474976710657 + %cmp.i3755 = icmp ugt i64 %717, -281474976710657 store ptr %add.ptr.sink.sink, ptr %currentIP_.i.i, align 8 - br i1 %cmp.i3757, label %if.end2893, label %if.then2889 + br i1 %cmp.i3755, label %if.end2893, label %if.then2889 if.then2889: ; preds = %case_IsIn - store i32 1, ptr %rightKind_.i3.i3760, align 8 - store i64 38, ptr %leftSize_.i4.i3761, align 8 - store i64 0, ptr %rightSize_.i5.i3762, align 8 + store i32 1, ptr %rightKind_.i3.i3758, align 8 + store i64 38, ptr %leftSize_.i4.i3759, align 8 + store i64 0, ptr %rightSize_.i5.i3760, align 8 store ptr @.str.16, ptr %ref.tmp2890, align 8 store i32 3, ptr %9, align 8 %call2891 = call noundef i32 @_ZN6hermes2vm7Runtime14raiseTypeErrorERKNS0_11TwineChar16E(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr noundef nonnull align 8 dereferenceable(48) %ref.tmp2890) #10 @@ -6784,20 +6780,20 @@ if.end2893: ; preds = %case_IsIn %arrayidx2904 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2903 %call2909 = call i32 @_ZN6hermes2vm8JSObject11hasComputedENS0_6HandleIS1_EERNS0_7RuntimeENS2_INS0_11HermesValueEEE(ptr %arrayidx2897, ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx2904) #10 %721 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i37745164.mask = and i32 %call2909, 255 - %cmp.i3775 = icmp eq i32 %bf.cast.i.i37745164.mask, 0 - br i1 %cmp.i3775, label %exceptionthread-pre-split.loopexit5518, label %if.end2913 + %bf.cast.i.i37725162.mask = and i32 %call2909, 255 + %cmp.i3773 = icmp eq i32 %bf.cast.i.i37725162.mask, 0 + br i1 %cmp.i3773, label %exceptionthread-pre-split.loopexit5516, label %if.end2913 if.end2913: ; preds = %if.end2893 %722 = lshr i32 %call2909, 8 - %.lobit5165 = and i32 %722, 1 - %conv.i3778 = zext nneg i32 %.lobit5165 to i64 - %or.i.i3779 = or disjoint i64 %conv.i3778, -1407374883553280 + %.lobit5163 = and i32 %722, 1 + %conv.i3776 = zext nneg i32 %.lobit5163 to i64 + %or.i.i3777 = or disjoint i64 %conv.i3776, -1407374883553280 %op12918 = getelementptr inbounds i8, ptr %721, i64 1 %723 = load i8, ptr %op12918, align 1 %idxprom2919 = zext i8 %723 to i64 %arrayidx2920 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2919 - store i64 %or.i.i3779, ptr %arrayidx2920, align 8 + store i64 %or.i.i3777, ptr %arrayidx2920, align 8 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 @@ -6833,22 +6829,22 @@ putOwnById: ; preds = %case_PutNewOwnById, %idxprom2937 = zext i8 %727 to i64 %arrayidx2938 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2937 %728 = load ptr, ptr %curCodeBlock.4, align 8 - %stringIDMap_.i3788 = getelementptr inbounds i8, ptr %728, i64 24 - %conv.i3789 = zext i32 %idVal.6 to i64 - %729 = load ptr, ptr %stringIDMap_.i3788, align 8 - %add.ptr.i.i3790 = getelementptr inbounds %"class.hermes::vm::RootSymbolID", ptr %729, i64 %conv.i3789 - %retval.sroa.0.0.copyload.i3791 = load i32, ptr %add.ptr.i.i3790, align 4 + %stringIDMap_.i3786 = getelementptr inbounds i8, ptr %728, i64 24 + %conv.i3787 = zext i32 %idVal.6 to i64 + %729 = load ptr, ptr %stringIDMap_.i3786, align 8 + %add.ptr.i.i3788 = getelementptr inbounds %"class.hermes::vm::RootSymbolID", ptr %729, i64 %conv.i3787 + %retval.sroa.0.0.copyload.i3789 = load i32, ptr %add.ptr.i.i3788, align 4 %730 = load i8, ptr %add.ptr.sink.sink, align 1 %cmp2947 = icmp ult i8 %730, 66 - %spec.select5126 = select i1 %cmp2947, i16 14, i16 12 + %spec.select5124 = select i1 %cmp2947, i16 14, i16 12 %op22960 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 2 %731 = load i8, ptr %op22960, align 1 %idxprom2961 = zext i8 %731 to i64 %arrayidx2962 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2961 - %call2971 = call noundef i32 @_ZN6hermes2vm8JSObject20defineNewOwnPropertyENS0_6HandleIS1_EERNS0_7RuntimeENS0_8SymbolIDENS0_13PropertyFlagsENS2_INS0_11HermesValueEEE(ptr %arrayidx2938, ptr noundef nonnull align 8 dereferenceable(9832) %runtime, i32 %retval.sroa.0.0.copyload.i3791, i16 %spec.select5126, ptr %arrayidx2962) #10 + %call2971 = call noundef i32 @_ZN6hermes2vm8JSObject20defineNewOwnPropertyENS0_6HandleIS1_EERNS0_7RuntimeENS0_8SymbolIDENS0_13PropertyFlagsENS2_INS0_11HermesValueEEE(ptr %arrayidx2938, ptr noundef nonnull align 8 dereferenceable(9832) %runtime, i32 %retval.sroa.0.0.copyload.i3789, i16 %spec.select5124, ptr %arrayidx2962) #10 %732 = load ptr, ptr %currentIP_.i.i, align 8 %cmp2973 = icmp eq i32 %call2971, 0 - br i1 %cmp2973, label %exceptionthread-pre-split.loopexit5518, label %if.end2976 + br i1 %cmp2973, label %exceptionthread-pre-split.loopexit5516, label %if.end2976 if.end2976: ; preds = %putOwnById store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 @@ -6868,52 +6864,52 @@ case_DelById: ; preds = %indirectgoto br label %DelById DelById: ; preds = %case_DelById, %case_DelByIdLong - %.sink5451 = phi i64 [ 5, %case_DelById ], [ 7, %case_DelByIdLong ] + %.sink5449 = phi i64 [ 5, %case_DelById ], [ 7, %case_DelByIdLong ] %idVal.7 = phi i32 [ %conv2983, %case_DelById ], [ %733, %case_DelByIdLong ] - %add.ptr2984 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %.sink5451 + %add.ptr2984 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %.sink5449 %op22985 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 2 %735 = load i8, ptr %op22985, align 1 %idxprom2986 = zext i8 %735 to i64 %arrayidx2987 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2986 %736 = load i64, ptr %arrayidx2987, align 8 - %cmp.i3799 = icmp ugt i64 %736, -281474976710657 + %cmp.i3797 = icmp ugt i64 %736, -281474976710657 store ptr %add.ptr.sink.sink, ptr %currentIP_.i.i, align 8 %737 = load i8, ptr %op22985, align 1 %idxprom2994 = zext i8 %737 to i64 %arrayidx2995 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom2994 - br i1 %cmp.i3799, label %if.then2990, label %if.else3022 + br i1 %cmp.i3797, label %if.then2990, label %if.else3022 if.then2990: ; preds = %DelById %738 = load ptr, ptr %curCodeBlock.4, align 8 - %stringIDMap_.i3801 = getelementptr inbounds i8, ptr %738, i64 24 - %conv.i3802 = zext i32 %idVal.7 to i64 - %739 = load ptr, ptr %stringIDMap_.i3801, align 8 - %add.ptr.i.i3803 = getelementptr inbounds %"class.hermes::vm::RootSymbolID", ptr %739, i64 %conv.i3802 - %retval.sroa.0.0.copyload.i3804 = load i32, ptr %add.ptr.i.i3803, align 4 - %defaultPropOpFlags.sroa.0.0.insert.ext5003 = zext nneg i8 %defaultPropOpFlags.sroa.0.1 to i32 - %call3008 = call i32 @_ZN6hermes2vm8JSObject11deleteNamedENS0_6HandleIS1_EERNS0_7RuntimeENS0_8SymbolIDENS0_11PropOpFlagsE(ptr %arrayidx2995, ptr noundef nonnull align 8 dereferenceable(9832) %runtime, i32 %retval.sroa.0.0.copyload.i3804, i32 %defaultPropOpFlags.sroa.0.0.insert.ext5003) #10 + %stringIDMap_.i3799 = getelementptr inbounds i8, ptr %738, i64 24 + %conv.i3800 = zext i32 %idVal.7 to i64 + %739 = load ptr, ptr %stringIDMap_.i3799, align 8 + %add.ptr.i.i3801 = getelementptr inbounds %"class.hermes::vm::RootSymbolID", ptr %739, i64 %conv.i3800 + %retval.sroa.0.0.copyload.i3802 = load i32, ptr %add.ptr.i.i3801, align 4 + %defaultPropOpFlags.sroa.0.0.insert.ext5001 = zext nneg i8 %defaultPropOpFlags.sroa.0.1 to i32 + %call3008 = call i32 @_ZN6hermes2vm8JSObject11deleteNamedENS0_6HandleIS1_EERNS0_7RuntimeENS0_8SymbolIDENS0_11PropOpFlagsE(ptr %arrayidx2995, ptr noundef nonnull align 8 dereferenceable(9832) %runtime, i32 %retval.sroa.0.0.copyload.i3802, i32 %defaultPropOpFlags.sroa.0.0.insert.ext5001) #10 %740 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i38095158.mask = and i32 %call3008, 255 - %cmp.i3810 = icmp eq i32 %bf.cast.i.i38095158.mask, 0 - br i1 %cmp.i3810, label %exceptionthread-pre-split.loopexit5518, label %if.end3013 + %bf.cast.i.i38075156.mask = and i32 %call3008, 255 + %cmp.i3808 = icmp eq i32 %bf.cast.i.i38075156.mask, 0 + br i1 %cmp.i3808, label %exceptionthread-pre-split.loopexit5516, label %if.end3013 if.end3013: ; preds = %if.then2990 %741 = lshr i32 %call3008, 8 - %.lobit5159 = and i32 %741, 1 - %conv.i3813 = zext nneg i32 %.lobit5159 to i64 - %or.i.i3814 = or disjoint i64 %conv.i3813, -1407374883553280 + %.lobit5157 = and i32 %741, 1 + %conv.i3811 = zext nneg i32 %.lobit5157 to i64 + %or.i.i3812 = or disjoint i64 %conv.i3811, -1407374883553280 %op13018 = getelementptr inbounds i8, ptr %740, i64 1 %742 = load i8, ptr %op13018, align 1 %idxprom3019 = zext i8 %742 to i64 %arrayidx3020 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3019 - store i64 %or.i.i3814, ptr %arrayidx3020, align 8 + store i64 %or.i.i3812, ptr %arrayidx3020, align 8 br label %if.end3083 if.else3022: ; preds = %DelById %call3030 = call { i32, i64 } @_ZN6hermes2vm8toObjectERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx2995) #10 %743 = extractvalue { i32, i64 } %call3030, 0 - %cmp.i3820 = icmp eq i32 %743, 0 - br i1 %cmp.i3820, label %if.then3035, label %if.end3050 + %cmp.i3818 = icmp eq i32 %743, 0 + br i1 %cmp.i3818, label %if.then3035, label %if.end3050 if.then3035: ; preds = %if.else3022 %744 = load ptr, ptr %currentIP_.i.i, align 8 @@ -6922,12 +6918,12 @@ if.then3035: ; preds = %if.else3022 %idxprom3038 = zext i8 %745 to i64 %arrayidx3039 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3038 %746 = load ptr, ptr %curCodeBlock.4, align 8 - %stringIDMap_.i3822 = getelementptr inbounds i8, ptr %746, i64 24 - %conv.i3823 = zext i32 %idVal.7 to i64 - %747 = load ptr, ptr %stringIDMap_.i3822, align 8 - %add.ptr.i.i3824 = getelementptr inbounds %"class.hermes::vm::RootSymbolID", ptr %747, i64 %conv.i3823 - %retval.sroa.0.0.copyload.i3825 = load i32, ptr %add.ptr.i.i3824, align 4 - %call3048 = call noundef i32 @_ZN6hermes2vm35amendPropAccessErrorMsgWithPropNameERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEEN4llvh9StringRefENS0_8SymbolIDE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx3039, ptr nonnull @.str.17, i64 6, i32 %retval.sroa.0.0.copyload.i3825) #10 + %stringIDMap_.i3820 = getelementptr inbounds i8, ptr %746, i64 24 + %conv.i3821 = zext i32 %idVal.7 to i64 + %747 = load ptr, ptr %stringIDMap_.i3820, align 8 + %add.ptr.i.i3822 = getelementptr inbounds %"class.hermes::vm::RootSymbolID", ptr %747, i64 %conv.i3821 + %retval.sroa.0.0.copyload.i3823 = load i32, ptr %add.ptr.i.i3822, align 4 + %call3048 = call noundef i32 @_ZN6hermes2vm35amendPropAccessErrorMsgWithPropNameERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEEN4llvh9StringRefENS0_8SymbolIDE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx3039, ptr nonnull @.str.17, i64 6, i32 %retval.sroa.0.0.copyload.i3823) #10 %748 = load ptr, ptr %currentIP_.i.i, align 8 br label %exceptionthread-pre-split @@ -6935,28 +6931,28 @@ if.end3050: ; preds = %if.else3022 %749 = extractvalue { i32, i64 } %call3030, 1 store i64 %749, ptr %inlineStorage_.i, align 8 %750 = load ptr, ptr %curCodeBlock.4, align 8 - %stringIDMap_.i3829 = getelementptr inbounds i8, ptr %750, i64 24 - %conv.i3830 = zext i32 %idVal.7 to i64 - %751 = load ptr, ptr %stringIDMap_.i3829, align 8 - %add.ptr.i.i3831 = getelementptr inbounds %"class.hermes::vm::RootSymbolID", ptr %751, i64 %conv.i3830 - %retval.sroa.0.0.copyload.i3832 = load i32, ptr %add.ptr.i.i3831, align 4 - %defaultPropOpFlags.sroa.0.0.insert.ext5000 = zext nneg i8 %defaultPropOpFlags.sroa.0.1 to i32 - %call3069 = call i32 @_ZN6hermes2vm8JSObject11deleteNamedENS0_6HandleIS1_EERNS0_7RuntimeENS0_8SymbolIDENS0_11PropOpFlagsE(ptr nonnull %inlineStorage_.i, ptr noundef nonnull align 8 dereferenceable(9832) %runtime, i32 %retval.sroa.0.0.copyload.i3832, i32 %defaultPropOpFlags.sroa.0.0.insert.ext5000) #10 + %stringIDMap_.i3827 = getelementptr inbounds i8, ptr %750, i64 24 + %conv.i3828 = zext i32 %idVal.7 to i64 + %751 = load ptr, ptr %stringIDMap_.i3827, align 8 + %add.ptr.i.i3829 = getelementptr inbounds %"class.hermes::vm::RootSymbolID", ptr %751, i64 %conv.i3828 + %retval.sroa.0.0.copyload.i3830 = load i32, ptr %add.ptr.i.i3829, align 4 + %defaultPropOpFlags.sroa.0.0.insert.ext4998 = zext nneg i8 %defaultPropOpFlags.sroa.0.1 to i32 + %call3069 = call i32 @_ZN6hermes2vm8JSObject11deleteNamedENS0_6HandleIS1_EERNS0_7RuntimeENS0_8SymbolIDENS0_11PropOpFlagsE(ptr nonnull %inlineStorage_.i, ptr noundef nonnull align 8 dereferenceable(9832) %runtime, i32 %retval.sroa.0.0.copyload.i3830, i32 %defaultPropOpFlags.sroa.0.0.insert.ext4998) #10 %752 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i38375156.mask = and i32 %call3069, 255 - %cmp.i3838 = icmp eq i32 %bf.cast.i.i38375156.mask, 0 - br i1 %cmp.i3838, label %exceptionthread-pre-split.loopexit5518, label %if.end3074 + %bf.cast.i.i38355154.mask = and i32 %call3069, 255 + %cmp.i3836 = icmp eq i32 %bf.cast.i.i38355154.mask, 0 + br i1 %cmp.i3836, label %exceptionthread-pre-split.loopexit5516, label %if.end3074 if.end3074: ; preds = %if.end3050 %753 = lshr i32 %call3069, 8 - %.lobit5157 = and i32 %753, 1 - %conv.i3841 = zext nneg i32 %.lobit5157 to i64 - %or.i.i3842 = or disjoint i64 %conv.i3841, -1407374883553280 + %.lobit5155 = and i32 %753, 1 + %conv.i3839 = zext nneg i32 %.lobit5155 to i64 + %or.i.i3840 = or disjoint i64 %conv.i3839, -1407374883553280 %op13079 = getelementptr inbounds i8, ptr %752, i64 1 %754 = load i8, ptr %op13079, align 1 %idxprom3080 = zext i8 %754 to i64 %arrayidx3081 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3080 - store i64 %or.i.i3842, ptr %arrayidx3081, align 8 + store i64 %or.i.i3840, ptr %arrayidx3081, align 8 store i64 -1688849860263936, ptr %inlineStorage_.i, align 8 br label %if.end3083 @@ -6972,31 +6968,31 @@ case_DelByVal: ; preds = %indirectgoto %idxprom3088 = zext i8 %755 to i64 %arrayidx3089 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3088 %756 = load i64, ptr %arrayidx3089, align 8 - %cmp.i3850 = icmp ugt i64 %756, -281474976710657 + %cmp.i3848 = icmp ugt i64 %756, -281474976710657 store ptr %add.ptr.sink.sink, ptr %currentIP_.i.i, align 8 %757 = load i8, ptr %op23087, align 1 %idxprom3096 = zext i8 %757 to i64 %arrayidx3097 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3096 - br i1 %cmp.i3850, label %if.then3092, label %if.else3125 + br i1 %cmp.i3848, label %if.then3092, label %if.else3125 if.then3092: ; preds = %case_DelByVal %op33102 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 %758 = load i8, ptr %op33102, align 1 %idxprom3103 = zext i8 %758 to i64 %arrayidx3104 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3103 - %defaultPropOpFlags.sroa.0.0.insert.ext4997 = zext nneg i8 %defaultPropOpFlags.sroa.0.1 to i32 - %call3111 = call i32 @_ZN6hermes2vm8JSObject14deleteComputedENS0_6HandleIS1_EERNS0_7RuntimeENS2_INS0_11HermesValueEEENS0_11PropOpFlagsE(ptr %arrayidx3097, ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx3104, i32 %defaultPropOpFlags.sroa.0.0.insert.ext4997) #10 + %defaultPropOpFlags.sroa.0.0.insert.ext4995 = zext nneg i8 %defaultPropOpFlags.sroa.0.1 to i32 + %call3111 = call i32 @_ZN6hermes2vm8JSObject14deleteComputedENS0_6HandleIS1_EERNS0_7RuntimeENS2_INS0_11HermesValueEEENS0_11PropOpFlagsE(ptr %arrayidx3097, ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx3104, i32 %defaultPropOpFlags.sroa.0.0.insert.ext4995) #10 %759 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i38565153.mask = and i32 %call3111, 255 - %cmp.i3857 = icmp eq i32 %bf.cast.i.i38565153.mask, 0 - br i1 %cmp.i3857, label %exceptionthread-pre-split.loopexit5518, label %if.end3173 + %bf.cast.i.i38545151.mask = and i32 %call3111, 255 + %cmp.i3855 = icmp eq i32 %bf.cast.i.i38545151.mask, 0 + br i1 %cmp.i3855, label %exceptionthread-pre-split.loopexit5516, label %if.end3173 if.else3125: ; preds = %case_DelByVal %call3133 = call { i32, i64 } @_ZN6hermes2vm8toObjectERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx3097) #10 %760 = extractvalue { i32, i64 } %call3133, 0 %761 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i3867 = icmp eq i32 %760, 0 - br i1 %cmp.i3867, label %exceptionthread-pre-split.loopexit5518, label %if.end3139 + %cmp.i3865 = icmp eq i32 %760, 0 + br i1 %cmp.i3865, label %exceptionthread-pre-split.loopexit5516, label %if.end3139 if.end3139: ; preds = %if.else3125 %762 = extractvalue { i32, i64 } %call3133, 1 @@ -7008,39 +7004,39 @@ if.end3139: ; preds = %if.else3125 %defaultPropOpFlags.sroa.0.0.insert.ext = zext nneg i8 %defaultPropOpFlags.sroa.0.1 to i32 %call3159 = call i32 @_ZN6hermes2vm8JSObject14deleteComputedENS0_6HandleIS1_EERNS0_7RuntimeENS2_INS0_11HermesValueEEENS0_11PropOpFlagsE(ptr nonnull %inlineStorage_.i, ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx3152, i32 %defaultPropOpFlags.sroa.0.0.insert.ext) #10 %764 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i38745151.mask = and i32 %call3159, 255 - %cmp.i3875 = icmp eq i32 %bf.cast.i.i38745151.mask, 0 - br i1 %cmp.i3875, label %exceptionthread-pre-split.loopexit5518, label %if.end3173 + %bf.cast.i.i38725149.mask = and i32 %call3159, 255 + %cmp.i3873 = icmp eq i32 %bf.cast.i.i38725149.mask, 0 + br i1 %cmp.i3873, label %exceptionthread-pre-split.loopexit5516, label %if.end3173 if.end3173: ; preds = %if.end3139, %if.then3092 %call3159.sink = phi i32 [ %call3111, %if.then3092 ], [ %call3159, %if.end3139 ] - %.sink5453 = phi ptr [ %759, %if.then3092 ], [ %764, %if.end3139 ] + %.sink5451 = phi ptr [ %759, %if.then3092 ], [ %764, %if.end3139 ] %765 = lshr i32 %call3159.sink, 8 - %.lobit5152 = and i32 %765, 1 - %conv.i3878 = zext nneg i32 %.lobit5152 to i64 - %or.i.i3879 = or disjoint i64 %conv.i3878, -1407374883553280 - %op13169 = getelementptr inbounds i8, ptr %.sink5453, i64 1 + %.lobit5150 = and i32 %765, 1 + %conv.i3876 = zext nneg i32 %.lobit5150 to i64 + %or.i.i3877 = or disjoint i64 %conv.i3876, -1407374883553280 + %op13169 = getelementptr inbounds i8, ptr %.sink5451, i64 1 %766 = load i8, ptr %op13169, align 1 %idxprom3170 = zext i8 %766 to i64 %arrayidx3171 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3170 - store i64 %or.i.i3879, ptr %arrayidx3171, align 8 + store i64 %or.i.i3877, ptr %arrayidx3171, align 8 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 store i64 -1688849860263936, ptr %inlineStorage_.i, align 8 - %add.ptr3174 = getelementptr inbounds i8, ptr %.sink5453, i64 4 + %add.ptr3174 = getelementptr inbounds i8, ptr %.sink5451, i64 4 br label %indirectgoto.backedge case_CreateRegExp: ; preds = %indirectgoto store ptr %add.ptr.sink.sink, ptr %currentIP_.i.i, align 8 %call4.i = call ptr @_ZN6hermes2vm8JSRegExp6createERNS0_7RuntimeENS0_6HandleINS0_8JSObjectEEE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr nonnull %regExpPrototype.i) #10 %767 = ptrtoint ptr %call4.i to i64 - %or.i.i.i.i3888 = or i64 %767, -281474976710656 + %or.i.i.i.i3886 = or i64 %767, -281474976710656 %op13184 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %768 = load i8, ptr %op13184, align 1 %idxprom3185 = zext i8 %768 to i64 %arrayidx3186 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3185 - store i64 %or.i.i.i.i3888, ptr %arrayidx3186, align 8 + store i64 %or.i.i.i.i3886, ptr %arrayidx3186, align 8 %769 = load ptr, ptr %currentIP_.i.i, align 8 %op13189 = getelementptr inbounds i8, ptr %769, i64 1 %770 = load i8, ptr %op13189, align 1 @@ -7053,52 +7049,52 @@ case_CreateRegExp: ; preds = %indirectgoto %773 = ptrtoint ptr %call3197 to i64 %or.i.i.i.i.i = or i64 %773, -844424930131968 %774 = load ptr, ptr %topGCScope_.i, align 8 - %next_.i.i.i.i.i.i.i3893 = getelementptr inbounds i8, ptr %774, i64 192 - %775 = load ptr, ptr %next_.i.i.i.i.i.i.i3893, align 8 - %curChunkEnd_.i.i.i.i.i.i3894 = getelementptr inbounds i8, ptr %774, i64 200 - %776 = load ptr, ptr %curChunkEnd_.i.i.i.i.i.i3894, align 8 - %cmp.i.i.i.i.i.i3895 = icmp ult ptr %775, %776 - br i1 %cmp.i.i.i.i.i.i3895, label %if.then.i.i.i.i.i.i3899, label %if.end.i.i.i.i.i.i3896 - -if.then.i.i.i.i.i.i3899: ; preds = %case_CreateRegExp - %incdec.ptr.i.i.i.i.i.i3900 = getelementptr inbounds i8, ptr %775, i64 8 - store ptr %incdec.ptr.i.i.i.i.i.i3900, ptr %next_.i.i.i.i.i.i.i3893, align 8 + %next_.i.i.i.i.i.i.i3891 = getelementptr inbounds i8, ptr %774, i64 192 + %775 = load ptr, ptr %next_.i.i.i.i.i.i.i3891, align 8 + %curChunkEnd_.i.i.i.i.i.i3892 = getelementptr inbounds i8, ptr %774, i64 200 + %776 = load ptr, ptr %curChunkEnd_.i.i.i.i.i.i3892, align 8 + %cmp.i.i.i.i.i.i3893 = icmp ult ptr %775, %776 + br i1 %cmp.i.i.i.i.i.i3893, label %if.then.i.i.i.i.i.i3897, label %if.end.i.i.i.i.i.i3894 + +if.then.i.i.i.i.i.i3897: ; preds = %case_CreateRegExp + %incdec.ptr.i.i.i.i.i.i3898 = getelementptr inbounds i8, ptr %775, i64 8 + store ptr %incdec.ptr.i.i.i.i.i.i3898, ptr %next_.i.i.i.i.i.i.i3891, align 8 store i64 %or.i.i.i.i.i, ptr %775, align 8 br label %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_15StringPrimitiveEEENS0_6HandleIT_EEPS5_.exit -if.end.i.i.i.i.i.i3896: ; preds = %case_CreateRegExp - %call7.i.i.i.i.i.i3897 = call noundef ptr @_ZN6hermes2vm7GCScope15_newChunkAndPHVENS0_11HermesValueE(ptr noundef nonnull align 8 dereferenceable(212) %774, i64 %or.i.i.i.i.i) #10 +if.end.i.i.i.i.i.i3894: ; preds = %case_CreateRegExp + %call7.i.i.i.i.i.i3895 = call noundef ptr @_ZN6hermes2vm7GCScope15_newChunkAndPHVENS0_11HermesValueE(ptr noundef nonnull align 8 dereferenceable(212) %774, i64 %or.i.i.i.i.i) #10 br label %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_15StringPrimitiveEEENS0_6HandleIT_EEPS5_.exit -_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_15StringPrimitiveEEENS0_6HandleIT_EEPS5_.exit: ; preds = %if.then.i.i.i.i.i.i3899, %if.end.i.i.i.i.i.i3896 - %retval.0.i.i.i.i.i.i3898 = phi ptr [ %775, %if.then.i.i.i.i.i.i3899 ], [ %call7.i.i.i.i.i.i3897, %if.end.i.i.i.i.i.i3896 ] +_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_15StringPrimitiveEEENS0_6HandleIT_EEPS5_.exit: ; preds = %if.then.i.i.i.i.i.i3897, %if.end.i.i.i.i.i.i3894 + %retval.0.i.i.i.i.i.i3896 = phi ptr [ %775, %if.then.i.i.i.i.i.i3897 ], [ %call7.i.i.i.i.i.i3895, %if.end.i.i.i.i.i.i3894 ] %777 = load ptr, ptr %currentIP_.i.i, align 8 %778 = load ptr, ptr %curCodeBlock.4, align 8 %op33203 = getelementptr inbounds i8, ptr %777, i64 6 %779 = load i32, ptr %op33203, align 1 %call3204 = call noundef ptr @_ZN6hermes2vm13RuntimeModule36getStringPrimFromStringIDMayAllocateEj(ptr noundef nonnull align 8 dereferenceable(192) %778, i32 noundef %779) #10 %780 = ptrtoint ptr %call3204 to i64 - %or.i.i.i.i.i3903 = or i64 %780, -844424930131968 + %or.i.i.i.i.i3901 = or i64 %780, -844424930131968 %781 = load ptr, ptr %topGCScope_.i, align 8 - %next_.i.i.i.i.i.i.i3905 = getelementptr inbounds i8, ptr %781, i64 192 - %782 = load ptr, ptr %next_.i.i.i.i.i.i.i3905, align 8 - %curChunkEnd_.i.i.i.i.i.i3906 = getelementptr inbounds i8, ptr %781, i64 200 - %783 = load ptr, ptr %curChunkEnd_.i.i.i.i.i.i3906, align 8 - %cmp.i.i.i.i.i.i3907 = icmp ult ptr %782, %783 - br i1 %cmp.i.i.i.i.i.i3907, label %if.then.i.i.i.i.i.i3911, label %if.end.i.i.i.i.i.i3908 - -if.then.i.i.i.i.i.i3911: ; preds = %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_15StringPrimitiveEEENS0_6HandleIT_EEPS5_.exit - %incdec.ptr.i.i.i.i.i.i3912 = getelementptr inbounds i8, ptr %782, i64 8 - store ptr %incdec.ptr.i.i.i.i.i.i3912, ptr %next_.i.i.i.i.i.i.i3905, align 8 - store i64 %or.i.i.i.i.i3903, ptr %782, align 8 - br label %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_15StringPrimitiveEEENS0_6HandleIT_EEPS5_.exit3913 - -if.end.i.i.i.i.i.i3908: ; preds = %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_15StringPrimitiveEEENS0_6HandleIT_EEPS5_.exit - %call7.i.i.i.i.i.i3909 = call noundef ptr @_ZN6hermes2vm7GCScope15_newChunkAndPHVENS0_11HermesValueE(ptr noundef nonnull align 8 dereferenceable(212) %781, i64 %or.i.i.i.i.i3903) #10 - br label %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_15StringPrimitiveEEENS0_6HandleIT_EEPS5_.exit3913 - -_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_15StringPrimitiveEEENS0_6HandleIT_EEPS5_.exit3913: ; preds = %if.then.i.i.i.i.i.i3911, %if.end.i.i.i.i.i.i3908 - %retval.0.i.i.i.i.i.i3910 = phi ptr [ %782, %if.then.i.i.i.i.i.i3911 ], [ %call7.i.i.i.i.i.i3909, %if.end.i.i.i.i.i.i3908 ] + %next_.i.i.i.i.i.i.i3903 = getelementptr inbounds i8, ptr %781, i64 192 + %782 = load ptr, ptr %next_.i.i.i.i.i.i.i3903, align 8 + %curChunkEnd_.i.i.i.i.i.i3904 = getelementptr inbounds i8, ptr %781, i64 200 + %783 = load ptr, ptr %curChunkEnd_.i.i.i.i.i.i3904, align 8 + %cmp.i.i.i.i.i.i3905 = icmp ult ptr %782, %783 + br i1 %cmp.i.i.i.i.i.i3905, label %if.then.i.i.i.i.i.i3909, label %if.end.i.i.i.i.i.i3906 + +if.then.i.i.i.i.i.i3909: ; preds = %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_15StringPrimitiveEEENS0_6HandleIT_EEPS5_.exit + %incdec.ptr.i.i.i.i.i.i3910 = getelementptr inbounds i8, ptr %782, i64 8 + store ptr %incdec.ptr.i.i.i.i.i.i3910, ptr %next_.i.i.i.i.i.i.i3903, align 8 + store i64 %or.i.i.i.i.i3901, ptr %782, align 8 + br label %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_15StringPrimitiveEEENS0_6HandleIT_EEPS5_.exit3911 + +if.end.i.i.i.i.i.i3906: ; preds = %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_15StringPrimitiveEEENS0_6HandleIT_EEPS5_.exit + %call7.i.i.i.i.i.i3907 = call noundef ptr @_ZN6hermes2vm7GCScope15_newChunkAndPHVENS0_11HermesValueE(ptr noundef nonnull align 8 dereferenceable(212) %781, i64 %or.i.i.i.i.i3901) #10 + br label %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_15StringPrimitiveEEENS0_6HandleIT_EEPS5_.exit3911 + +_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_15StringPrimitiveEEENS0_6HandleIT_EEPS5_.exit3911: ; preds = %if.then.i.i.i.i.i.i3909, %if.end.i.i.i.i.i.i3906 + %retval.0.i.i.i.i.i.i3908 = phi ptr [ %782, %if.then.i.i.i.i.i.i3909 ], [ %call7.i.i.i.i.i.i3907, %if.end.i.i.i.i.i.i3906 ] %784 = load ptr, ptr %currentIP_.i.i, align 8 %785 = load ptr, ptr %curCodeBlock.4, align 8 %op43210 = getelementptr inbounds i8, ptr %784, i64 10 @@ -7106,7 +7102,7 @@ _ZN6hermes2vm15HandleRootOwner10makeHandleINS0_15StringPrimitiveEEENS0_6HandleIT %call3211 = call { ptr, i64 } @_ZNK6hermes2vm13RuntimeModule29getRegExpBytecodeFromRegExpIDEj(ptr noundef nonnull align 8 dereferenceable(192) %785, i32 noundef %786) #10 %787 = extractvalue { ptr, i64 } %call3211, 0 %788 = extractvalue { ptr, i64 } %call3211, 1 - call void @_ZN6hermes2vm8JSRegExp10initializeENS0_6HandleIS1_EERNS0_7RuntimeENS2_INS0_15StringPrimitiveEEES7_N4llvh8ArrayRefIhEE(ptr nonnull %arrayidx3191, ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %retval.0.i.i.i.i.i.i3898, ptr %retval.0.i.i.i.i.i.i3910, ptr %787, i64 %788) #10 + call void @_ZN6hermes2vm8JSRegExp10initializeENS0_6HandleIS1_EERNS0_7RuntimeENS2_INS0_15StringPrimitiveEEES7_N4llvh8ArrayRefIhEE(ptr nonnull %arrayidx3191, ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %retval.0.i.i.i.i.i.i3896, ptr %retval.0.i.i.i.i.i.i3908, ptr %787, i64 %788) #10 %789 = load ptr, ptr %currentIP_.i.i, align 8 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 @@ -7120,8 +7116,8 @@ case_SwitchImm: ; preds = %indirectgoto %idxprom3229 = zext i8 %790 to i64 %arrayidx3230 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3229 %791 = load i64, ptr %arrayidx3230, align 8 - %cmp.i.i3925 = icmp ult i64 %791, -1970324836974592 - br i1 %cmp.i.i3925, label %if.then3233, label %if.end3266 + %cmp.i.i3923 = icmp ult i64 %791, -1970324836974592 + br i1 %cmp.i.i3923, label %if.then3233, label %if.end3266 if.then3233: ; preds = %case_SwitchImm %792 = bitcast i64 %791 to double @@ -7148,9 +7144,9 @@ if.then3250: ; preds = %land.lhs.true3246 %idx.ext3252 = zext i32 %795 to i64 %add.ptr3253 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %idx.ext3252 %796 = ptrtoint ptr %add.ptr3253 to i64 - %sub.i3926 = add i64 %796, 3 - %and.i3927 = and i64 %sub.i3926, -4 - %797 = inttoptr i64 %and.i3927 to ptr + %sub.i3924 = add i64 %796, 3 + %and.i3925 = and i64 %sub.i3924, -4 + %797 = inttoptr i64 %and.i3925 to ptr %idx.ext3255 = zext i32 %conv3238 to i64 %add.ptr3256 = getelementptr inbounds i32, ptr %797, i64 %idx.ext3255 %idx.ext3258 = zext i32 %793 to i64 @@ -7171,24 +7167,24 @@ if.end3266: ; preds = %if.then3233, %land. case_LoadConstUInt8: ; preds = %indirectgoto %op23274 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 2 %800 = load i8, ptr %op23274, align 1 - %conv.i3928 = uitofp i8 %800 to double + %conv.i3926 = uitofp i8 %800 to double %op13277 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %801 = load i8, ptr %op13277, align 1 %idxprom3278 = zext i8 %801 to i64 %arrayidx3279 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3278 - store double %conv.i3928, ptr %arrayidx3279, align 8 + store double %conv.i3926, ptr %arrayidx3279, align 8 %add.ptr3281 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 br label %indirectgoto.backedge case_LoadConstInt: ; preds = %indirectgoto %op23286 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 2 %802 = load i32, ptr %op23286, align 1 - %conv.i3930 = sitofp i32 %802 to double + %conv.i3928 = sitofp i32 %802 to double %op13289 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %803 = load i8, ptr %op13289, align 1 %idxprom3290 = zext i8 %803 to i64 %arrayidx3291 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3290 - store double %conv.i3930, ptr %arrayidx3291, align 8 + store double %conv.i3928, ptr %arrayidx3291, align 8 %add.ptr3293 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 6 br label %indirectgoto.backedge @@ -7197,12 +7193,12 @@ case_LoadConstDouble: ; preds = %indirectgoto %804 = load double, ptr %op23298, align 1 %805 = fcmp uno double %804, 0.000000e+00 %806 = bitcast double %804 to i64 - %retval.sroa.0.0.i3932 = select i1 %805, i64 9221120237041090560, i64 %806 + %retval.sroa.0.0.i3930 = select i1 %805, i64 9221120237041090560, i64 %806 %op13301 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %807 = load i8, ptr %op13301, align 1 %idxprom3302 = zext i8 %807 to i64 %arrayidx3303 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3302 - store i64 %retval.sroa.0.0.i3932, ptr %arrayidx3303, align 8 + store i64 %retval.sroa.0.0.i3930, ptr %arrayidx3303, align 8 %add.ptr3305 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 10 br label %indirectgoto.backedge @@ -7214,12 +7210,12 @@ case_LoadConstString: ; preds = %indirectgoto %conv3312 = zext i16 %809 to i32 %call3313 = call noundef ptr @_ZN6hermes2vm13RuntimeModule36getStringPrimFromStringIDMayAllocateEj(ptr noundef nonnull align 8 dereferenceable(192) %808, i32 noundef %conv3312) #10 %810 = ptrtoint ptr %call3313 to i64 - %or.i.i.i3935 = or i64 %810, -844424930131968 + %or.i.i.i3933 = or i64 %810, -844424930131968 %op13316 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %811 = load i8, ptr %op13316, align 1 %idxprom3317 = zext i8 %811 to i64 %arrayidx3318 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3317 - store i64 %or.i.i.i3935, ptr %arrayidx3318, align 8 + store i64 %or.i.i.i3933, ptr %arrayidx3318, align 8 %812 = load ptr, ptr %currentIP_.i.i, align 8 %add.ptr3321 = getelementptr inbounds i8, ptr %812, i64 4 br label %indirectgoto.backedge @@ -7231,12 +7227,12 @@ case_LoadConstStringLongIndex: ; preds = %indirectgoto %814 = load i32, ptr %op23327, align 1 %call3328 = call noundef ptr @_ZN6hermes2vm13RuntimeModule36getStringPrimFromStringIDMayAllocateEj(ptr noundef nonnull align 8 dereferenceable(192) %813, i32 noundef %814) #10 %815 = ptrtoint ptr %call3328 to i64 - %or.i.i.i3939 = or i64 %815, -844424930131968 + %or.i.i.i3937 = or i64 %815, -844424930131968 %op13331 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %816 = load i8, ptr %op13331, align 1 %idxprom3332 = zext i8 %816 to i64 %arrayidx3333 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3332 - store i64 %or.i.i.i3939, ptr %arrayidx3333, align 8 + store i64 %or.i.i.i3937, ptr %arrayidx3333, align 8 %817 = load ptr, ptr %currentIP_.i.i, align 8 %add.ptr3336 = getelementptr inbounds i8, ptr %817, i64 6 br label %indirectgoto.backedge @@ -7307,7 +7303,7 @@ case_LoadConstBigIntLongIndex: ; preds = %indirectgoto br label %doLoadConstBigInt doLoadConstBigInt: ; preds = %case_LoadConstBigIntLongIndex, %case_LoadConstBigInt - %.sink5455 = phi i64 [ 6, %case_LoadConstBigIntLongIndex ], [ 4, %case_LoadConstBigInt ] + %.sink5453 = phi i64 [ 6, %case_LoadConstBigIntLongIndex ], [ 4, %case_LoadConstBigInt ] %idVal.8 = phi i32 [ %825, %case_LoadConstBigIntLongIndex ], [ %conv3407, %case_LoadConstBigInt ] store ptr %add.ptr.sink.sink, ptr %currentIP_.i.i, align 8 %826 = load ptr, ptr %curCodeBlock.4, align 8 @@ -7317,11 +7313,11 @@ doLoadConstBigInt: ; preds = %case_LoadConstBigIn %call3415 = call { i32, i64 } @_ZN6hermes2vm15BigIntPrimitive9fromBytesERNS0_7RuntimeEN4llvh8ArrayRefIhEE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %827, i64 %828) %829 = extractvalue { i32, i64 } %call3415, 0 %830 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i3950 = icmp eq i32 %829, 0 - br i1 %cmp.i3950, label %exceptionthread-pre-split.loopexit5518, label %if.end3420 + %cmp.i3948 = icmp eq i32 %829, 0 + br i1 %cmp.i3948, label %exceptionthread-pre-split.loopexit5516, label %if.end3420 if.end3420: ; preds = %doLoadConstBigInt - %add.ptr3410 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %.sink5455 + %add.ptr3410 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 %.sink5453 %831 = extractvalue { i32, i64 } %call3415, 1 %op13422 = getelementptr inbounds i8, ptr %830, i64 1 %832 = load i8, ptr %op13422, align 1 @@ -7336,8 +7332,8 @@ case_Sub: ; preds = %indirectgoto %idxprom3430 = zext i8 %833 to i64 %arrayidx3431 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3430 %834 = load i64, ptr %arrayidx3431, align 8 - %cmp.i.i3953 = icmp ult i64 %834, -1970324836974592 - br i1 %cmp.i.i3953, label %land.rhs3433, label %if.end3461 + %cmp.i.i3951 = icmp ult i64 %834, -1970324836974592 + br i1 %cmp.i.i3951, label %land.rhs3433, label %if.end3461 land.rhs3433: ; preds = %case_Sub %op33434 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 @@ -7345,8 +7341,8 @@ land.rhs3433: ; preds = %case_Sub %idxprom3435 = zext i8 %835 to i64 %arrayidx3436 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3435 %836 = load i64, ptr %arrayidx3436, align 8 - %cmp.i.i3954 = icmp ult i64 %836, -1970324836974592 - br i1 %cmp.i.i3954, label %case_SubN, label %if.end3461 + %cmp.i.i3952 = icmp ult i64 %836, -1970324836974592 + br i1 %cmp.i.i3952, label %case_SubN, label %if.end3461 case_SubN: ; preds = %land.rhs3433, %indirectgoto %op23442 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 2 @@ -7359,12 +7355,12 @@ case_SubN: ; preds = %land.rhs3433, %indi %idxprom3447 = zext i8 %839 to i64 %arrayidx3448 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3447 %840 = load double, ptr %arrayidx3448, align 8 - %sub.i3955 = fsub double %838, %840 + %sub.i3953 = fsub double %838, %840 %op13453 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %841 = load i8, ptr %op13453, align 1 %idxprom3454 = zext i8 %841 to i64 %arrayidx3455 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3454 - store double %sub.i3955, ptr %arrayidx3455, align 8 + store double %sub.i3953, ptr %arrayidx3455, align 8 %add.ptr3457 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 4 br label %indirectgoto.backedge @@ -7380,8 +7376,8 @@ if.end3461: ; preds = %case_Sub, %land.rhs %call3475 = call { i32, i64 } @_ZN6hermes2vm14doOperSlowPathITnDaXadL_ZNS0_5doSubEddEEEENS0_10CallResultINS0_11HermesValueELNS0_6detail20CallResultSpecializeE2EEERNS0_7RuntimeENS0_6HandleIS3_EESA_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx3466, ptr %arrayidx3470) #10 %844 = extractvalue { i32, i64 } %call3475, 0 %845 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i3961 = icmp eq i32 %844, 0 - br i1 %cmp.i3961, label %exceptionthread-pre-split.loopexit5518, label %if.end3480 + %cmp.i3959 = icmp eq i32 %844, 0 + br i1 %cmp.i3959, label %exceptionthread-pre-split.loopexit5516, label %if.end3480 if.end3480: ; preds = %if.end3461 %846 = extractvalue { i32, i64 } %call3475, 1 @@ -7402,8 +7398,8 @@ case_Mul: ; preds = %indirectgoto %idxprom3491 = zext i8 %848 to i64 %arrayidx3492 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3491 %849 = load i64, ptr %arrayidx3492, align 8 - %cmp.i.i3970 = icmp ult i64 %849, -1970324836974592 - br i1 %cmp.i.i3970, label %land.rhs3494, label %if.end3522 + %cmp.i.i3968 = icmp ult i64 %849, -1970324836974592 + br i1 %cmp.i.i3968, label %land.rhs3494, label %if.end3522 land.rhs3494: ; preds = %case_Mul %op33495 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 @@ -7411,8 +7407,8 @@ land.rhs3494: ; preds = %case_Mul %idxprom3496 = zext i8 %850 to i64 %arrayidx3497 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3496 %851 = load i64, ptr %arrayidx3497, align 8 - %cmp.i.i3971 = icmp ult i64 %851, -1970324836974592 - br i1 %cmp.i.i3971, label %case_MulN, label %if.end3522 + %cmp.i.i3969 = icmp ult i64 %851, -1970324836974592 + br i1 %cmp.i.i3969, label %case_MulN, label %if.end3522 case_MulN: ; preds = %land.rhs3494, %indirectgoto %op23503 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 2 @@ -7425,12 +7421,12 @@ case_MulN: ; preds = %land.rhs3494, %indi %idxprom3508 = zext i8 %854 to i64 %arrayidx3509 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3508 %855 = load double, ptr %arrayidx3509, align 8 - %mul.i3972 = fmul double %853, %855 + %mul.i3970 = fmul double %853, %855 %op13514 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %856 = load i8, ptr %op13514, align 1 %idxprom3515 = zext i8 %856 to i64 %arrayidx3516 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3515 - store double %mul.i3972, ptr %arrayidx3516, align 8 + store double %mul.i3970, ptr %arrayidx3516, align 8 %add.ptr3518 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 4 br label %indirectgoto.backedge @@ -7446,8 +7442,8 @@ if.end3522: ; preds = %case_Mul, %land.rhs %call3536 = call { i32, i64 } @_ZN6hermes2vm14doOperSlowPathITnDaXadL_ZNS0_5doMulEddEEEENS0_10CallResultINS0_11HermesValueELNS0_6detail20CallResultSpecializeE2EEERNS0_7RuntimeENS0_6HandleIS3_EESA_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx3527, ptr %arrayidx3531) #10 %859 = extractvalue { i32, i64 } %call3536, 0 %860 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i3978 = icmp eq i32 %859, 0 - br i1 %cmp.i3978, label %exceptionthread-pre-split.loopexit5518, label %if.end3541 + %cmp.i3976 = icmp eq i32 %859, 0 + br i1 %cmp.i3976, label %exceptionthread-pre-split.loopexit5516, label %if.end3541 if.end3541: ; preds = %if.end3522 %861 = extractvalue { i32, i64 } %call3536, 1 @@ -7468,8 +7464,8 @@ case_Div: ; preds = %indirectgoto %idxprom3552 = zext i8 %863 to i64 %arrayidx3553 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3552 %864 = load i64, ptr %arrayidx3553, align 8 - %cmp.i.i3987 = icmp ult i64 %864, -1970324836974592 - br i1 %cmp.i.i3987, label %land.rhs3555, label %if.end3583 + %cmp.i.i3985 = icmp ult i64 %864, -1970324836974592 + br i1 %cmp.i.i3985, label %land.rhs3555, label %if.end3583 land.rhs3555: ; preds = %case_Div %op33556 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 @@ -7477,8 +7473,8 @@ land.rhs3555: ; preds = %case_Div %idxprom3557 = zext i8 %865 to i64 %arrayidx3558 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3557 %866 = load i64, ptr %arrayidx3558, align 8 - %cmp.i.i3988 = icmp ult i64 %866, -1970324836974592 - br i1 %cmp.i.i3988, label %case_DivN, label %if.end3583 + %cmp.i.i3986 = icmp ult i64 %866, -1970324836974592 + br i1 %cmp.i.i3986, label %case_DivN, label %if.end3583 case_DivN: ; preds = %land.rhs3555, %indirectgoto %op23564 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 2 @@ -7512,8 +7508,8 @@ if.end3583: ; preds = %case_Div, %land.rhs %call3597 = call { i32, i64 } @_ZN6hermes2vm14doOperSlowPathITnDaXadL_ZNS0_5doDivEddEEEENS0_10CallResultINS0_11HermesValueELNS0_6detail20CallResultSpecializeE2EEERNS0_7RuntimeENS0_6HandleIS3_EESA_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx3588, ptr %arrayidx3592) #10 %874 = extractvalue { i32, i64 } %call3597, 0 %875 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i3994 = icmp eq i32 %874, 0 - br i1 %cmp.i3994, label %exceptionthread-pre-split.loopexit5518, label %if.end3602 + %cmp.i3992 = icmp eq i32 %874, 0 + br i1 %cmp.i3992, label %exceptionthread-pre-split.loopexit5516, label %if.end3602 if.end3602: ; preds = %if.end3583 %876 = extractvalue { i32, i64 } %call3597, 1 @@ -7534,9 +7530,9 @@ case_BitAnd: ; preds = %indirectgoto %idxprom3613 = zext i8 %878 to i64 %arrayidx3614 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3613 %879 = load i64, ptr %arrayidx3614, align 8 - %cmp.i.i4003 = icmp ult i64 %879, -1970324836974592 + %cmp.i.i4001 = icmp ult i64 %879, -1970324836974592 %880 = bitcast i64 %879 to double - br i1 %cmp.i.i4003, label %land.rhs3616, label %if.end3646 + br i1 %cmp.i.i4001, label %land.rhs3616, label %if.end3646 land.rhs3616: ; preds = %case_BitAnd %op33617 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 @@ -7544,57 +7540,57 @@ land.rhs3616: ; preds = %case_BitAnd %idxprom3618 = zext i8 %881 to i64 %arrayidx3619 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3618 %882 = load i64, ptr %arrayidx3619, align 8 - %cmp.i.i4004 = icmp ult i64 %882, -1970324836974592 + %cmp.i.i4002 = icmp ult i64 %882, -1970324836974592 %883 = bitcast i64 %882 to double - br i1 %cmp.i.i4004, label %if.else.i4005, label %if.end3646 - -if.else.i4005: ; preds = %land.rhs3616 - %conv4.i4006 = fptoui double %880 to i64 - %shl.i4007 = shl i64 %conv4.i4006, 1 - %shr.i4008 = ashr exact i64 %shl.i4007, 1 - %conv5.i4009 = sitofp i64 %shr.i4008 to double - %cmp6.i4010 = fcmp oeq double %880, %conv5.i4009 - br i1 %cmp6.i4010, label %if.then8.i4014, label %if.end11.i4011 - -if.then8.i4014: ; preds = %if.else.i4005 - %conv9.i4015 = trunc i64 %conv4.i4006 to i32 - br label %if.else.i4022 - -if.end11.i4011: ; preds = %if.else.i4005 - %call.i4012 = call noundef i32 @_ZN6hermes23truncateToInt32SlowPathEd(double noundef %880) #10 - %.pre5342 = load i8, ptr %op33617, align 1 - %idxprom3631.phi.trans.insert = zext i8 %.pre5342 to i64 + br i1 %cmp.i.i4002, label %if.else.i4003, label %if.end3646 + +if.else.i4003: ; preds = %land.rhs3616 + %conv4.i4004 = fptoui double %880 to i64 + %shl.i4005 = shl i64 %conv4.i4004, 1 + %shr.i4006 = ashr exact i64 %shl.i4005, 1 + %conv5.i4007 = sitofp i64 %shr.i4006 to double + %cmp6.i4008 = fcmp oeq double %880, %conv5.i4007 + br i1 %cmp6.i4008, label %if.then8.i4012, label %if.end11.i4009 + +if.then8.i4012: ; preds = %if.else.i4003 + %conv9.i4013 = trunc i64 %conv4.i4004 to i32 + br label %if.else.i4020 + +if.end11.i4009: ; preds = %if.else.i4003 + %call.i4010 = call noundef i32 @_ZN6hermes23truncateToInt32SlowPathEd(double noundef %880) #10 + %.pre5340 = load i8, ptr %op33617, align 1 + %idxprom3631.phi.trans.insert = zext i8 %.pre5340 to i64 %arrayidx3632.phi.trans.insert = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3631.phi.trans.insert - %.pre5343 = load double, ptr %arrayidx3632.phi.trans.insert, align 8 - br label %if.else.i4022 - -if.else.i4022: ; preds = %if.end11.i4011, %if.then8.i4014 - %884 = phi double [ %.pre5343, %if.end11.i4011 ], [ %883, %if.then8.i4014 ] - %retval.0.i4013 = phi i32 [ %call.i4012, %if.end11.i4011 ], [ %conv9.i4015, %if.then8.i4014 ] - %conv4.i4023 = fptoui double %884 to i64 - %shl.i4024 = shl i64 %conv4.i4023, 1 - %shr.i4025 = ashr exact i64 %shl.i4024, 1 - %conv5.i4026 = sitofp i64 %shr.i4025 to double - %cmp6.i4027 = fcmp oeq double %884, %conv5.i4026 - br i1 %cmp6.i4027, label %if.then8.i4031, label %if.end11.i4028 - -if.then8.i4031: ; preds = %if.else.i4022 - %conv9.i4032 = trunc i64 %conv4.i4023 to i32 - br label %_ZN6hermes15truncateToInt32Ed.exit4038 - -if.end11.i4028: ; preds = %if.else.i4022 - %call.i4029 = call noundef i32 @_ZN6hermes23truncateToInt32SlowPathEd(double noundef %884) #10 - br label %_ZN6hermes15truncateToInt32Ed.exit4038 - -_ZN6hermes15truncateToInt32Ed.exit4038: ; preds = %if.then8.i4031, %if.end11.i4028 - %retval.0.i4030 = phi i32 [ %call.i4029, %if.end11.i4028 ], [ %conv9.i4032, %if.then8.i4031 ] - %and.i4039 = and i32 %retval.0.i4030, %retval.0.i4013 - %conv.i4040 = sitofp i32 %and.i4039 to double + %.pre5341 = load double, ptr %arrayidx3632.phi.trans.insert, align 8 + br label %if.else.i4020 + +if.else.i4020: ; preds = %if.end11.i4009, %if.then8.i4012 + %884 = phi double [ %.pre5341, %if.end11.i4009 ], [ %883, %if.then8.i4012 ] + %retval.0.i4011 = phi i32 [ %call.i4010, %if.end11.i4009 ], [ %conv9.i4013, %if.then8.i4012 ] + %conv4.i4021 = fptoui double %884 to i64 + %shl.i4022 = shl i64 %conv4.i4021, 1 + %shr.i4023 = ashr exact i64 %shl.i4022, 1 + %conv5.i4024 = sitofp i64 %shr.i4023 to double + %cmp6.i4025 = fcmp oeq double %884, %conv5.i4024 + br i1 %cmp6.i4025, label %if.then8.i4029, label %if.end11.i4026 + +if.then8.i4029: ; preds = %if.else.i4020 + %conv9.i4030 = trunc i64 %conv4.i4021 to i32 + br label %_ZN6hermes15truncateToInt32Ed.exit4036 + +if.end11.i4026: ; preds = %if.else.i4020 + %call.i4027 = call noundef i32 @_ZN6hermes23truncateToInt32SlowPathEd(double noundef %884) #10 + br label %_ZN6hermes15truncateToInt32Ed.exit4036 + +_ZN6hermes15truncateToInt32Ed.exit4036: ; preds = %if.then8.i4029, %if.end11.i4026 + %retval.0.i4028 = phi i32 [ %call.i4027, %if.end11.i4026 ], [ %conv9.i4030, %if.then8.i4029 ] + %and.i4037 = and i32 %retval.0.i4028, %retval.0.i4011 + %conv.i4038 = sitofp i32 %and.i4037 to double %op13638 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %885 = load i8, ptr %op13638, align 1 %idxprom3639 = zext i8 %885 to i64 %arrayidx3640 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3639 - store double %conv.i4040, ptr %arrayidx3640, align 8 + store double %conv.i4038, ptr %arrayidx3640, align 8 %add.ptr3642 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 4 br label %indirectgoto.backedge @@ -7610,8 +7606,8 @@ if.end3646: ; preds = %case_BitAnd, %land. %call3660 = call { i32, i64 } @_ZN6hermes2vm17doBitOperSlowPathITnDaXadL_ZNS0_8doBitAndEiiEEEENS0_10CallResultINS0_11HermesValueELNS0_6detail20CallResultSpecializeE2EEERNS0_7RuntimeENS0_6HandleIS3_EESA_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx3651, ptr %arrayidx3655) #10 %888 = extractvalue { i32, i64 } %call3660, 0 %889 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i4046 = icmp eq i32 %888, 0 - br i1 %cmp.i4046, label %exceptionthread-pre-split.loopexit5518, label %if.end3666 + %cmp.i4044 = icmp eq i32 %888, 0 + br i1 %cmp.i4044, label %exceptionthread-pre-split.loopexit5516, label %if.end3666 if.end3666: ; preds = %if.end3646 %890 = extractvalue { i32, i64 } %call3660, 1 @@ -7632,9 +7628,9 @@ case_BitOr: ; preds = %indirectgoto %idxprom3677 = zext i8 %892 to i64 %arrayidx3678 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3677 %893 = load i64, ptr %arrayidx3678, align 8 - %cmp.i.i4055 = icmp ult i64 %893, -1970324836974592 + %cmp.i.i4053 = icmp ult i64 %893, -1970324836974592 %894 = bitcast i64 %893 to double - br i1 %cmp.i.i4055, label %land.rhs3680, label %if.end3710 + br i1 %cmp.i.i4053, label %land.rhs3680, label %if.end3710 land.rhs3680: ; preds = %case_BitOr %op33681 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 @@ -7642,57 +7638,57 @@ land.rhs3680: ; preds = %case_BitOr %idxprom3682 = zext i8 %895 to i64 %arrayidx3683 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3682 %896 = load i64, ptr %arrayidx3683, align 8 - %cmp.i.i4056 = icmp ult i64 %896, -1970324836974592 + %cmp.i.i4054 = icmp ult i64 %896, -1970324836974592 %897 = bitcast i64 %896 to double - br i1 %cmp.i.i4056, label %if.else.i4057, label %if.end3710 - -if.else.i4057: ; preds = %land.rhs3680 - %conv4.i4058 = fptoui double %894 to i64 - %shl.i4059 = shl i64 %conv4.i4058, 1 - %shr.i4060 = ashr exact i64 %shl.i4059, 1 - %conv5.i4061 = sitofp i64 %shr.i4060 to double - %cmp6.i4062 = fcmp oeq double %894, %conv5.i4061 - br i1 %cmp6.i4062, label %if.then8.i4066, label %if.end11.i4063 - -if.then8.i4066: ; preds = %if.else.i4057 - %conv9.i4067 = trunc i64 %conv4.i4058 to i32 - br label %if.else.i4074 - -if.end11.i4063: ; preds = %if.else.i4057 - %call.i4064 = call noundef i32 @_ZN6hermes23truncateToInt32SlowPathEd(double noundef %894) #10 - %.pre5338 = load i8, ptr %op33681, align 1 - %idxprom3695.phi.trans.insert = zext i8 %.pre5338 to i64 + br i1 %cmp.i.i4054, label %if.else.i4055, label %if.end3710 + +if.else.i4055: ; preds = %land.rhs3680 + %conv4.i4056 = fptoui double %894 to i64 + %shl.i4057 = shl i64 %conv4.i4056, 1 + %shr.i4058 = ashr exact i64 %shl.i4057, 1 + %conv5.i4059 = sitofp i64 %shr.i4058 to double + %cmp6.i4060 = fcmp oeq double %894, %conv5.i4059 + br i1 %cmp6.i4060, label %if.then8.i4064, label %if.end11.i4061 + +if.then8.i4064: ; preds = %if.else.i4055 + %conv9.i4065 = trunc i64 %conv4.i4056 to i32 + br label %if.else.i4072 + +if.end11.i4061: ; preds = %if.else.i4055 + %call.i4062 = call noundef i32 @_ZN6hermes23truncateToInt32SlowPathEd(double noundef %894) #10 + %.pre5336 = load i8, ptr %op33681, align 1 + %idxprom3695.phi.trans.insert = zext i8 %.pre5336 to i64 %arrayidx3696.phi.trans.insert = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3695.phi.trans.insert - %.pre5339 = load double, ptr %arrayidx3696.phi.trans.insert, align 8 - br label %if.else.i4074 - -if.else.i4074: ; preds = %if.end11.i4063, %if.then8.i4066 - %898 = phi double [ %.pre5339, %if.end11.i4063 ], [ %897, %if.then8.i4066 ] - %retval.0.i4065 = phi i32 [ %call.i4064, %if.end11.i4063 ], [ %conv9.i4067, %if.then8.i4066 ] - %conv4.i4075 = fptoui double %898 to i64 - %shl.i4076 = shl i64 %conv4.i4075, 1 - %shr.i4077 = ashr exact i64 %shl.i4076, 1 - %conv5.i4078 = sitofp i64 %shr.i4077 to double - %cmp6.i4079 = fcmp oeq double %898, %conv5.i4078 - br i1 %cmp6.i4079, label %if.then8.i4083, label %if.end11.i4080 - -if.then8.i4083: ; preds = %if.else.i4074 - %conv9.i4084 = trunc i64 %conv4.i4075 to i32 - br label %_ZN6hermes15truncateToInt32Ed.exit4090 - -if.end11.i4080: ; preds = %if.else.i4074 - %call.i4081 = call noundef i32 @_ZN6hermes23truncateToInt32SlowPathEd(double noundef %898) #10 - br label %_ZN6hermes15truncateToInt32Ed.exit4090 - -_ZN6hermes15truncateToInt32Ed.exit4090: ; preds = %if.then8.i4083, %if.end11.i4080 - %retval.0.i4082 = phi i32 [ %call.i4081, %if.end11.i4080 ], [ %conv9.i4084, %if.then8.i4083 ] - %or.i = or i32 %retval.0.i4082, %retval.0.i4065 - %conv.i4091 = sitofp i32 %or.i to double + %.pre5337 = load double, ptr %arrayidx3696.phi.trans.insert, align 8 + br label %if.else.i4072 + +if.else.i4072: ; preds = %if.end11.i4061, %if.then8.i4064 + %898 = phi double [ %.pre5337, %if.end11.i4061 ], [ %897, %if.then8.i4064 ] + %retval.0.i4063 = phi i32 [ %call.i4062, %if.end11.i4061 ], [ %conv9.i4065, %if.then8.i4064 ] + %conv4.i4073 = fptoui double %898 to i64 + %shl.i4074 = shl i64 %conv4.i4073, 1 + %shr.i4075 = ashr exact i64 %shl.i4074, 1 + %conv5.i4076 = sitofp i64 %shr.i4075 to double + %cmp6.i4077 = fcmp oeq double %898, %conv5.i4076 + br i1 %cmp6.i4077, label %if.then8.i4081, label %if.end11.i4078 + +if.then8.i4081: ; preds = %if.else.i4072 + %conv9.i4082 = trunc i64 %conv4.i4073 to i32 + br label %_ZN6hermes15truncateToInt32Ed.exit4088 + +if.end11.i4078: ; preds = %if.else.i4072 + %call.i4079 = call noundef i32 @_ZN6hermes23truncateToInt32SlowPathEd(double noundef %898) #10 + br label %_ZN6hermes15truncateToInt32Ed.exit4088 + +_ZN6hermes15truncateToInt32Ed.exit4088: ; preds = %if.then8.i4081, %if.end11.i4078 + %retval.0.i4080 = phi i32 [ %call.i4079, %if.end11.i4078 ], [ %conv9.i4082, %if.then8.i4081 ] + %or.i = or i32 %retval.0.i4080, %retval.0.i4063 + %conv.i4089 = sitofp i32 %or.i to double %op13702 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %899 = load i8, ptr %op13702, align 1 %idxprom3703 = zext i8 %899 to i64 %arrayidx3704 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3703 - store double %conv.i4091, ptr %arrayidx3704, align 8 + store double %conv.i4089, ptr %arrayidx3704, align 8 %add.ptr3706 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 4 br label %indirectgoto.backedge @@ -7708,8 +7704,8 @@ if.end3710: ; preds = %case_BitOr, %land.r %call3724 = call { i32, i64 } @_ZN6hermes2vm17doBitOperSlowPathITnDaXadL_ZNS0_7doBitOrEiiEEEENS0_10CallResultINS0_11HermesValueELNS0_6detail20CallResultSpecializeE2EEERNS0_7RuntimeENS0_6HandleIS3_EESA_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx3715, ptr %arrayidx3719) #10 %902 = extractvalue { i32, i64 } %call3724, 0 %903 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i4097 = icmp eq i32 %902, 0 - br i1 %cmp.i4097, label %exceptionthread-pre-split.loopexit5518, label %if.end3730 + %cmp.i4095 = icmp eq i32 %902, 0 + br i1 %cmp.i4095, label %exceptionthread-pre-split.loopexit5516, label %if.end3730 if.end3730: ; preds = %if.end3710 %904 = extractvalue { i32, i64 } %call3724, 1 @@ -7730,9 +7726,9 @@ case_BitXor: ; preds = %indirectgoto %idxprom3741 = zext i8 %906 to i64 %arrayidx3742 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3741 %907 = load i64, ptr %arrayidx3742, align 8 - %cmp.i.i4106 = icmp ult i64 %907, -1970324836974592 + %cmp.i.i4104 = icmp ult i64 %907, -1970324836974592 %908 = bitcast i64 %907 to double - br i1 %cmp.i.i4106, label %land.rhs3744, label %if.end3774 + br i1 %cmp.i.i4104, label %land.rhs3744, label %if.end3774 land.rhs3744: ; preds = %case_BitXor %op33745 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 @@ -7740,57 +7736,57 @@ land.rhs3744: ; preds = %case_BitXor %idxprom3746 = zext i8 %909 to i64 %arrayidx3747 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3746 %910 = load i64, ptr %arrayidx3747, align 8 - %cmp.i.i4107 = icmp ult i64 %910, -1970324836974592 + %cmp.i.i4105 = icmp ult i64 %910, -1970324836974592 %911 = bitcast i64 %910 to double - br i1 %cmp.i.i4107, label %if.else.i4108, label %if.end3774 - -if.else.i4108: ; preds = %land.rhs3744 - %conv4.i4109 = fptoui double %908 to i64 - %shl.i4110 = shl i64 %conv4.i4109, 1 - %shr.i4111 = ashr exact i64 %shl.i4110, 1 - %conv5.i4112 = sitofp i64 %shr.i4111 to double - %cmp6.i4113 = fcmp oeq double %908, %conv5.i4112 - br i1 %cmp6.i4113, label %if.then8.i4117, label %if.end11.i4114 - -if.then8.i4117: ; preds = %if.else.i4108 - %conv9.i4118 = trunc i64 %conv4.i4109 to i32 - br label %if.else.i4125 - -if.end11.i4114: ; preds = %if.else.i4108 - %call.i4115 = call noundef i32 @_ZN6hermes23truncateToInt32SlowPathEd(double noundef %908) #10 - %.pre5340 = load i8, ptr %op33745, align 1 - %idxprom3759.phi.trans.insert = zext i8 %.pre5340 to i64 + br i1 %cmp.i.i4105, label %if.else.i4106, label %if.end3774 + +if.else.i4106: ; preds = %land.rhs3744 + %conv4.i4107 = fptoui double %908 to i64 + %shl.i4108 = shl i64 %conv4.i4107, 1 + %shr.i4109 = ashr exact i64 %shl.i4108, 1 + %conv5.i4110 = sitofp i64 %shr.i4109 to double + %cmp6.i4111 = fcmp oeq double %908, %conv5.i4110 + br i1 %cmp6.i4111, label %if.then8.i4115, label %if.end11.i4112 + +if.then8.i4115: ; preds = %if.else.i4106 + %conv9.i4116 = trunc i64 %conv4.i4107 to i32 + br label %if.else.i4123 + +if.end11.i4112: ; preds = %if.else.i4106 + %call.i4113 = call noundef i32 @_ZN6hermes23truncateToInt32SlowPathEd(double noundef %908) #10 + %.pre5338 = load i8, ptr %op33745, align 1 + %idxprom3759.phi.trans.insert = zext i8 %.pre5338 to i64 %arrayidx3760.phi.trans.insert = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3759.phi.trans.insert - %.pre5341 = load double, ptr %arrayidx3760.phi.trans.insert, align 8 - br label %if.else.i4125 - -if.else.i4125: ; preds = %if.end11.i4114, %if.then8.i4117 - %912 = phi double [ %.pre5341, %if.end11.i4114 ], [ %911, %if.then8.i4117 ] - %retval.0.i4116 = phi i32 [ %call.i4115, %if.end11.i4114 ], [ %conv9.i4118, %if.then8.i4117 ] - %conv4.i4126 = fptoui double %912 to i64 - %shl.i4127 = shl i64 %conv4.i4126, 1 - %shr.i4128 = ashr exact i64 %shl.i4127, 1 - %conv5.i4129 = sitofp i64 %shr.i4128 to double - %cmp6.i4130 = fcmp oeq double %912, %conv5.i4129 - br i1 %cmp6.i4130, label %if.then8.i4134, label %if.end11.i4131 - -if.then8.i4134: ; preds = %if.else.i4125 - %conv9.i4135 = trunc i64 %conv4.i4126 to i32 - br label %_ZN6hermes15truncateToInt32Ed.exit4141 - -if.end11.i4131: ; preds = %if.else.i4125 - %call.i4132 = call noundef i32 @_ZN6hermes23truncateToInt32SlowPathEd(double noundef %912) #10 - br label %_ZN6hermes15truncateToInt32Ed.exit4141 - -_ZN6hermes15truncateToInt32Ed.exit4141: ; preds = %if.then8.i4134, %if.end11.i4131 - %retval.0.i4133 = phi i32 [ %call.i4132, %if.end11.i4131 ], [ %conv9.i4135, %if.then8.i4134 ] - %xor.i = xor i32 %retval.0.i4133, %retval.0.i4116 - %conv.i4142 = sitofp i32 %xor.i to double + %.pre5339 = load double, ptr %arrayidx3760.phi.trans.insert, align 8 + br label %if.else.i4123 + +if.else.i4123: ; preds = %if.end11.i4112, %if.then8.i4115 + %912 = phi double [ %.pre5339, %if.end11.i4112 ], [ %911, %if.then8.i4115 ] + %retval.0.i4114 = phi i32 [ %call.i4113, %if.end11.i4112 ], [ %conv9.i4116, %if.then8.i4115 ] + %conv4.i4124 = fptoui double %912 to i64 + %shl.i4125 = shl i64 %conv4.i4124, 1 + %shr.i4126 = ashr exact i64 %shl.i4125, 1 + %conv5.i4127 = sitofp i64 %shr.i4126 to double + %cmp6.i4128 = fcmp oeq double %912, %conv5.i4127 + br i1 %cmp6.i4128, label %if.then8.i4132, label %if.end11.i4129 + +if.then8.i4132: ; preds = %if.else.i4123 + %conv9.i4133 = trunc i64 %conv4.i4124 to i32 + br label %_ZN6hermes15truncateToInt32Ed.exit4139 + +if.end11.i4129: ; preds = %if.else.i4123 + %call.i4130 = call noundef i32 @_ZN6hermes23truncateToInt32SlowPathEd(double noundef %912) #10 + br label %_ZN6hermes15truncateToInt32Ed.exit4139 + +_ZN6hermes15truncateToInt32Ed.exit4139: ; preds = %if.then8.i4132, %if.end11.i4129 + %retval.0.i4131 = phi i32 [ %call.i4130, %if.end11.i4129 ], [ %conv9.i4133, %if.then8.i4132 ] + %xor.i = xor i32 %retval.0.i4131, %retval.0.i4114 + %conv.i4140 = sitofp i32 %xor.i to double %op13766 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %913 = load i8, ptr %op13766, align 1 %idxprom3767 = zext i8 %913 to i64 %arrayidx3768 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3767 - store double %conv.i4142, ptr %arrayidx3768, align 8 + store double %conv.i4140, ptr %arrayidx3768, align 8 %add.ptr3770 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 4 br label %indirectgoto.backedge @@ -7806,8 +7802,8 @@ if.end3774: ; preds = %case_BitXor, %land. %call3788 = call { i32, i64 } @_ZN6hermes2vm17doBitOperSlowPathITnDaXadL_ZNS0_8doBitXorEiiEEEENS0_10CallResultINS0_11HermesValueELNS0_6detail20CallResultSpecializeE2EEERNS0_7RuntimeENS0_6HandleIS3_EESA_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx3779, ptr %arrayidx3783) #10 %916 = extractvalue { i32, i64 } %call3788, 0 %917 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i4148 = icmp eq i32 %916, 0 - br i1 %cmp.i4148, label %exceptionthread-pre-split.loopexit5518, label %if.end3794 + %cmp.i4146 = icmp eq i32 %916, 0 + br i1 %cmp.i4146, label %exceptionthread-pre-split.loopexit5516, label %if.end3794 if.end3794: ; preds = %if.end3774 %918 = extractvalue { i32, i64 } %call3788, 1 @@ -7828,9 +7824,9 @@ case_LShift: ; preds = %indirectgoto %idxprom3805 = zext i8 %920 to i64 %arrayidx3806 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3805 %921 = load i64, ptr %arrayidx3806, align 8 - %cmp.i.i4157 = icmp ult i64 %921, -1970324836974592 + %cmp.i.i4155 = icmp ult i64 %921, -1970324836974592 %922 = bitcast i64 %921 to double - br i1 %cmp.i.i4157, label %land.rhs3808, label %if.end3838 + br i1 %cmp.i.i4155, label %land.rhs3808, label %if.end3838 land.rhs3808: ; preds = %case_LShift %op33809 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 @@ -7838,58 +7834,58 @@ land.rhs3808: ; preds = %case_LShift %idxprom3810 = zext i8 %923 to i64 %arrayidx3811 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3810 %924 = load i64, ptr %arrayidx3811, align 8 - %cmp.i.i4158 = icmp ult i64 %924, -1970324836974592 + %cmp.i.i4156 = icmp ult i64 %924, -1970324836974592 %925 = bitcast i64 %924 to double - br i1 %cmp.i.i4158, label %if.else.i4159, label %if.end3838 - -if.else.i4159: ; preds = %land.rhs3808 - %conv4.i4160 = fptoui double %922 to i64 - %shl.i4161 = shl i64 %conv4.i4160, 1 - %shr.i4162 = ashr exact i64 %shl.i4161, 1 - %conv5.i4163 = sitofp i64 %shr.i4162 to double - %cmp6.i4164 = fcmp oeq double %922, %conv5.i4163 - br i1 %cmp6.i4164, label %if.then8.i4168, label %if.end11.i4165 - -if.then8.i4168: ; preds = %if.else.i4159 - %conv9.i4169 = trunc i64 %conv4.i4160 to i32 - br label %if.else.i4176 - -if.end11.i4165: ; preds = %if.else.i4159 - %call.i4166 = call noundef i32 @_ZN6hermes23truncateToInt32SlowPathEd(double noundef %922) #10 - %.pre5348 = load i8, ptr %op33809, align 1 - %idxprom3822.phi.trans.insert = zext i8 %.pre5348 to i64 + br i1 %cmp.i.i4156, label %if.else.i4157, label %if.end3838 + +if.else.i4157: ; preds = %land.rhs3808 + %conv4.i4158 = fptoui double %922 to i64 + %shl.i4159 = shl i64 %conv4.i4158, 1 + %shr.i4160 = ashr exact i64 %shl.i4159, 1 + %conv5.i4161 = sitofp i64 %shr.i4160 to double + %cmp6.i4162 = fcmp oeq double %922, %conv5.i4161 + br i1 %cmp6.i4162, label %if.then8.i4166, label %if.end11.i4163 + +if.then8.i4166: ; preds = %if.else.i4157 + %conv9.i4167 = trunc i64 %conv4.i4158 to i32 + br label %if.else.i4174 + +if.end11.i4163: ; preds = %if.else.i4157 + %call.i4164 = call noundef i32 @_ZN6hermes23truncateToInt32SlowPathEd(double noundef %922) #10 + %.pre5346 = load i8, ptr %op33809, align 1 + %idxprom3822.phi.trans.insert = zext i8 %.pre5346 to i64 %arrayidx3823.phi.trans.insert = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3822.phi.trans.insert - %.pre5349 = load double, ptr %arrayidx3823.phi.trans.insert, align 8 - br label %if.else.i4176 - -if.else.i4176: ; preds = %if.end11.i4165, %if.then8.i4168 - %926 = phi double [ %.pre5349, %if.end11.i4165 ], [ %925, %if.then8.i4168 ] - %retval.0.i4167 = phi i32 [ %call.i4166, %if.end11.i4165 ], [ %conv9.i4169, %if.then8.i4168 ] - %conv4.i4177 = fptoui double %926 to i64 - %shl.i4178 = shl i64 %conv4.i4177, 1 - %shr.i4179 = ashr exact i64 %shl.i4178, 1 - %conv5.i4180 = sitofp i64 %shr.i4179 to double - %cmp6.i4181 = fcmp oeq double %926, %conv5.i4180 - br i1 %cmp6.i4181, label %if.then8.i4185, label %if.end11.i4182 - -if.then8.i4185: ; preds = %if.else.i4176 - %conv9.i4186 = trunc i64 %conv4.i4177 to i32 - br label %_ZN6hermes15truncateToInt32Ed.exit4192 - -if.end11.i4182: ; preds = %if.else.i4176 - %call.i4183 = call noundef i32 @_ZN6hermes23truncateToInt32SlowPathEd(double noundef %926) #10 - br label %_ZN6hermes15truncateToInt32Ed.exit4192 - -_ZN6hermes15truncateToInt32Ed.exit4192: ; preds = %if.then8.i4185, %if.end11.i4182 - %retval.0.i4184 = phi i32 [ %call.i4183, %if.end11.i4182 ], [ %conv9.i4186, %if.then8.i4185 ] - %and = and i32 %retval.0.i4184, 31 - %shl.i4193 = shl i32 %retval.0.i4167, %and - %conv.i4194 = sitofp i32 %shl.i4193 to double + %.pre5347 = load double, ptr %arrayidx3823.phi.trans.insert, align 8 + br label %if.else.i4174 + +if.else.i4174: ; preds = %if.end11.i4163, %if.then8.i4166 + %926 = phi double [ %.pre5347, %if.end11.i4163 ], [ %925, %if.then8.i4166 ] + %retval.0.i4165 = phi i32 [ %call.i4164, %if.end11.i4163 ], [ %conv9.i4167, %if.then8.i4166 ] + %conv4.i4175 = fptoui double %926 to i64 + %shl.i4176 = shl i64 %conv4.i4175, 1 + %shr.i4177 = ashr exact i64 %shl.i4176, 1 + %conv5.i4178 = sitofp i64 %shr.i4177 to double + %cmp6.i4179 = fcmp oeq double %926, %conv5.i4178 + br i1 %cmp6.i4179, label %if.then8.i4183, label %if.end11.i4180 + +if.then8.i4183: ; preds = %if.else.i4174 + %conv9.i4184 = trunc i64 %conv4.i4175 to i32 + br label %_ZN6hermes15truncateToInt32Ed.exit4190 + +if.end11.i4180: ; preds = %if.else.i4174 + %call.i4181 = call noundef i32 @_ZN6hermes23truncateToInt32SlowPathEd(double noundef %926) #10 + br label %_ZN6hermes15truncateToInt32Ed.exit4190 + +_ZN6hermes15truncateToInt32Ed.exit4190: ; preds = %if.then8.i4183, %if.end11.i4180 + %retval.0.i4182 = phi i32 [ %call.i4181, %if.end11.i4180 ], [ %conv9.i4184, %if.then8.i4183 ] + %and = and i32 %retval.0.i4182, 31 + %shl.i4191 = shl i32 %retval.0.i4165, %and + %conv.i4192 = sitofp i32 %shl.i4191 to double %op13830 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %927 = load i8, ptr %op13830, align 1 %idxprom3831 = zext i8 %927 to i64 %arrayidx3832 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3831 - store double %conv.i4194, ptr %arrayidx3832, align 8 + store double %conv.i4192, ptr %arrayidx3832, align 8 %add.ptr3834 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 4 br label %indirectgoto.backedge @@ -7905,8 +7901,8 @@ if.end3838: ; preds = %case_LShift, %land. %call3852 = call { i32, i64 } @_ZN6hermes2vm19doShiftOperSlowPathITnDaXadL_ZNS0_8doLShiftEjjEEEENS0_10CallResultINS0_11HermesValueELNS0_6detail20CallResultSpecializeE2EEERNS0_7RuntimeENS0_6HandleIS3_EESA_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx3843, ptr %arrayidx3847) #10 %930 = extractvalue { i32, i64 } %call3852, 0 %931 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i4200 = icmp eq i32 %930, 0 - br i1 %cmp.i4200, label %exceptionthread-pre-split.loopexit5518, label %if.end3858 + %cmp.i4198 = icmp eq i32 %930, 0 + br i1 %cmp.i4198, label %exceptionthread-pre-split.loopexit5516, label %if.end3858 if.end3858: ; preds = %if.end3838 %932 = extractvalue { i32, i64 } %call3852, 1 @@ -7927,9 +7923,9 @@ case_RShift: ; preds = %indirectgoto %idxprom3869 = zext i8 %934 to i64 %arrayidx3870 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3869 %935 = load i64, ptr %arrayidx3870, align 8 - %cmp.i.i4209 = icmp ult i64 %935, -1970324836974592 + %cmp.i.i4207 = icmp ult i64 %935, -1970324836974592 %936 = bitcast i64 %935 to double - br i1 %cmp.i.i4209, label %land.rhs3872, label %if.end3905 + br i1 %cmp.i.i4207, label %land.rhs3872, label %if.end3905 land.rhs3872: ; preds = %case_RShift %op33873 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 @@ -7937,58 +7933,58 @@ land.rhs3872: ; preds = %case_RShift %idxprom3874 = zext i8 %937 to i64 %arrayidx3875 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3874 %938 = load i64, ptr %arrayidx3875, align 8 - %cmp.i.i4210 = icmp ult i64 %938, -1970324836974592 + %cmp.i.i4208 = icmp ult i64 %938, -1970324836974592 %939 = bitcast i64 %938 to double - br i1 %cmp.i.i4210, label %if.else.i4211, label %if.end3905 - -if.else.i4211: ; preds = %land.rhs3872 - %conv4.i4212 = fptoui double %936 to i64 - %shl.i4213 = shl i64 %conv4.i4212, 1 - %shr.i4214 = ashr exact i64 %shl.i4213, 1 - %conv5.i4215 = sitofp i64 %shr.i4214 to double - %cmp6.i4216 = fcmp oeq double %936, %conv5.i4215 - br i1 %cmp6.i4216, label %if.then8.i4220, label %if.end11.i4217 - -if.then8.i4220: ; preds = %if.else.i4211 - %conv9.i4221 = trunc i64 %conv4.i4212 to i32 - br label %if.else.i4228 - -if.end11.i4217: ; preds = %if.else.i4211 - %call.i4218 = call noundef i32 @_ZN6hermes23truncateToInt32SlowPathEd(double noundef %936) #10 - %.pre5346 = load i8, ptr %op33873, align 1 - %idxprom3888.phi.trans.insert = zext i8 %.pre5346 to i64 + br i1 %cmp.i.i4208, label %if.else.i4209, label %if.end3905 + +if.else.i4209: ; preds = %land.rhs3872 + %conv4.i4210 = fptoui double %936 to i64 + %shl.i4211 = shl i64 %conv4.i4210, 1 + %shr.i4212 = ashr exact i64 %shl.i4211, 1 + %conv5.i4213 = sitofp i64 %shr.i4212 to double + %cmp6.i4214 = fcmp oeq double %936, %conv5.i4213 + br i1 %cmp6.i4214, label %if.then8.i4218, label %if.end11.i4215 + +if.then8.i4218: ; preds = %if.else.i4209 + %conv9.i4219 = trunc i64 %conv4.i4210 to i32 + br label %if.else.i4226 + +if.end11.i4215: ; preds = %if.else.i4209 + %call.i4216 = call noundef i32 @_ZN6hermes23truncateToInt32SlowPathEd(double noundef %936) #10 + %.pre5344 = load i8, ptr %op33873, align 1 + %idxprom3888.phi.trans.insert = zext i8 %.pre5344 to i64 %arrayidx3889.phi.trans.insert = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3888.phi.trans.insert - %.pre5347 = load double, ptr %arrayidx3889.phi.trans.insert, align 8 - br label %if.else.i4228 - -if.else.i4228: ; preds = %if.end11.i4217, %if.then8.i4220 - %940 = phi double [ %.pre5347, %if.end11.i4217 ], [ %939, %if.then8.i4220 ] - %retval.0.i4219 = phi i32 [ %call.i4218, %if.end11.i4217 ], [ %conv9.i4221, %if.then8.i4220 ] - %conv4.i4229 = fptoui double %940 to i64 - %shl.i4230 = shl i64 %conv4.i4229, 1 - %shr.i4231 = ashr exact i64 %shl.i4230, 1 - %conv5.i4232 = sitofp i64 %shr.i4231 to double - %cmp6.i4233 = fcmp oeq double %940, %conv5.i4232 - br i1 %cmp6.i4233, label %if.then8.i4237, label %if.end11.i4234 - -if.then8.i4237: ; preds = %if.else.i4228 - %conv9.i4238 = trunc i64 %conv4.i4229 to i32 - br label %_ZN6hermes15truncateToInt32Ed.exit4244 - -if.end11.i4234: ; preds = %if.else.i4228 - %call.i4235 = call noundef i32 @_ZN6hermes23truncateToInt32SlowPathEd(double noundef %940) #10 - br label %_ZN6hermes15truncateToInt32Ed.exit4244 - -_ZN6hermes15truncateToInt32Ed.exit4244: ; preds = %if.then8.i4237, %if.end11.i4234 - %retval.0.i4236 = phi i32 [ %call.i4235, %if.end11.i4234 ], [ %conv9.i4238, %if.then8.i4237 ] - %and3892 = and i32 %retval.0.i4236, 31 - %shr.i4245 = ashr i32 %retval.0.i4219, %and3892 - %conv.i4246 = sitofp i32 %shr.i4245 to double + %.pre5345 = load double, ptr %arrayidx3889.phi.trans.insert, align 8 + br label %if.else.i4226 + +if.else.i4226: ; preds = %if.end11.i4215, %if.then8.i4218 + %940 = phi double [ %.pre5345, %if.end11.i4215 ], [ %939, %if.then8.i4218 ] + %retval.0.i4217 = phi i32 [ %call.i4216, %if.end11.i4215 ], [ %conv9.i4219, %if.then8.i4218 ] + %conv4.i4227 = fptoui double %940 to i64 + %shl.i4228 = shl i64 %conv4.i4227, 1 + %shr.i4229 = ashr exact i64 %shl.i4228, 1 + %conv5.i4230 = sitofp i64 %shr.i4229 to double + %cmp6.i4231 = fcmp oeq double %940, %conv5.i4230 + br i1 %cmp6.i4231, label %if.then8.i4235, label %if.end11.i4232 + +if.then8.i4235: ; preds = %if.else.i4226 + %conv9.i4236 = trunc i64 %conv4.i4227 to i32 + br label %_ZN6hermes15truncateToInt32Ed.exit4242 + +if.end11.i4232: ; preds = %if.else.i4226 + %call.i4233 = call noundef i32 @_ZN6hermes23truncateToInt32SlowPathEd(double noundef %940) #10 + br label %_ZN6hermes15truncateToInt32Ed.exit4242 + +_ZN6hermes15truncateToInt32Ed.exit4242: ; preds = %if.then8.i4235, %if.end11.i4232 + %retval.0.i4234 = phi i32 [ %call.i4233, %if.end11.i4232 ], [ %conv9.i4236, %if.then8.i4235 ] + %and3892 = and i32 %retval.0.i4234, 31 + %shr.i4243 = ashr i32 %retval.0.i4217, %and3892 + %conv.i4244 = sitofp i32 %shr.i4243 to double %op13897 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %941 = load i8, ptr %op13897, align 1 %idxprom3898 = zext i8 %941 to i64 %arrayidx3899 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3898 - store double %conv.i4246, ptr %arrayidx3899, align 8 + store double %conv.i4244, ptr %arrayidx3899, align 8 %add.ptr3901 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 4 br label %indirectgoto.backedge @@ -8004,8 +8000,8 @@ if.end3905: ; preds = %case_RShift, %land. %call3919 = call { i32, i64 } @_ZN6hermes2vm19doShiftOperSlowPathITnDaXadL_ZNS0_8doRShiftEijEEEENS0_10CallResultINS0_11HermesValueELNS0_6detail20CallResultSpecializeE2EEERNS0_7RuntimeENS0_6HandleIS3_EESA_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx3910, ptr %arrayidx3914) #10 %944 = extractvalue { i32, i64 } %call3919, 0 %945 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i4252 = icmp eq i32 %944, 0 - br i1 %cmp.i4252, label %exceptionthread-pre-split.loopexit5518, label %if.end3925 + %cmp.i4250 = icmp eq i32 %944, 0 + br i1 %cmp.i4250, label %exceptionthread-pre-split.loopexit5516, label %if.end3925 if.end3925: ; preds = %if.end3905 %946 = extractvalue { i32, i64 } %call3919, 1 @@ -8026,9 +8022,9 @@ case_URshift: ; preds = %indirectgoto %idxprom3936 = zext i8 %948 to i64 %arrayidx3937 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3936 %949 = load i64, ptr %arrayidx3937, align 8 - %cmp.i.i4261 = icmp ult i64 %949, -1970324836974592 + %cmp.i.i4259 = icmp ult i64 %949, -1970324836974592 %950 = bitcast i64 %949 to double - br i1 %cmp.i.i4261, label %land.rhs3939, label %if.end3972 + br i1 %cmp.i.i4259, label %land.rhs3939, label %if.end3972 land.rhs3939: ; preds = %case_URshift %op33940 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 @@ -8036,58 +8032,58 @@ land.rhs3939: ; preds = %case_URshift %idxprom3941 = zext i8 %951 to i64 %arrayidx3942 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3941 %952 = load i64, ptr %arrayidx3942, align 8 - %cmp.i.i4262 = icmp ult i64 %952, -1970324836974592 + %cmp.i.i4260 = icmp ult i64 %952, -1970324836974592 %953 = bitcast i64 %952 to double - br i1 %cmp.i.i4262, label %if.else.i4263, label %if.end3972 - -if.else.i4263: ; preds = %land.rhs3939 - %conv4.i4264 = fptoui double %950 to i64 - %shl.i4265 = shl i64 %conv4.i4264, 1 - %shr.i4266 = ashr exact i64 %shl.i4265, 1 - %conv5.i4267 = sitofp i64 %shr.i4266 to double - %cmp6.i4268 = fcmp oeq double %950, %conv5.i4267 - br i1 %cmp6.i4268, label %if.then8.i4272, label %if.end11.i4269 - -if.then8.i4272: ; preds = %if.else.i4263 - %conv9.i4273 = trunc i64 %conv4.i4264 to i32 - br label %if.else.i4280 - -if.end11.i4269: ; preds = %if.else.i4263 - %call.i4270 = call noundef i32 @_ZN6hermes23truncateToInt32SlowPathEd(double noundef %950) #10 - %.pre5344 = load i8, ptr %op33940, align 1 - %idxprom3955.phi.trans.insert = zext i8 %.pre5344 to i64 + br i1 %cmp.i.i4260, label %if.else.i4261, label %if.end3972 + +if.else.i4261: ; preds = %land.rhs3939 + %conv4.i4262 = fptoui double %950 to i64 + %shl.i4263 = shl i64 %conv4.i4262, 1 + %shr.i4264 = ashr exact i64 %shl.i4263, 1 + %conv5.i4265 = sitofp i64 %shr.i4264 to double + %cmp6.i4266 = fcmp oeq double %950, %conv5.i4265 + br i1 %cmp6.i4266, label %if.then8.i4270, label %if.end11.i4267 + +if.then8.i4270: ; preds = %if.else.i4261 + %conv9.i4271 = trunc i64 %conv4.i4262 to i32 + br label %if.else.i4278 + +if.end11.i4267: ; preds = %if.else.i4261 + %call.i4268 = call noundef i32 @_ZN6hermes23truncateToInt32SlowPathEd(double noundef %950) #10 + %.pre5342 = load i8, ptr %op33940, align 1 + %idxprom3955.phi.trans.insert = zext i8 %.pre5342 to i64 %arrayidx3956.phi.trans.insert = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3955.phi.trans.insert - %.pre5345 = load double, ptr %arrayidx3956.phi.trans.insert, align 8 - br label %if.else.i4280 - -if.else.i4280: ; preds = %if.end11.i4269, %if.then8.i4272 - %954 = phi double [ %.pre5345, %if.end11.i4269 ], [ %953, %if.then8.i4272 ] - %retval.0.i4271 = phi i32 [ %call.i4270, %if.end11.i4269 ], [ %conv9.i4273, %if.then8.i4272 ] - %conv4.i4281 = fptoui double %954 to i64 - %shl.i4282 = shl i64 %conv4.i4281, 1 - %shr.i4283 = ashr exact i64 %shl.i4282, 1 - %conv5.i4284 = sitofp i64 %shr.i4283 to double - %cmp6.i4285 = fcmp oeq double %954, %conv5.i4284 - br i1 %cmp6.i4285, label %if.then8.i4289, label %if.end11.i4286 - -if.then8.i4289: ; preds = %if.else.i4280 - %conv9.i4290 = trunc i64 %conv4.i4281 to i32 - br label %_ZN6hermes15truncateToInt32Ed.exit4296 - -if.end11.i4286: ; preds = %if.else.i4280 - %call.i4287 = call noundef i32 @_ZN6hermes23truncateToInt32SlowPathEd(double noundef %954) #10 - br label %_ZN6hermes15truncateToInt32Ed.exit4296 - -_ZN6hermes15truncateToInt32Ed.exit4296: ; preds = %if.then8.i4289, %if.end11.i4286 - %retval.0.i4288 = phi i32 [ %call.i4287, %if.end11.i4286 ], [ %conv9.i4290, %if.then8.i4289 ] - %and3959 = and i32 %retval.0.i4288, 31 - %shr.i4297 = lshr i32 %retval.0.i4271, %and3959 - %conv.i4298 = uitofp i32 %shr.i4297 to double + %.pre5343 = load double, ptr %arrayidx3956.phi.trans.insert, align 8 + br label %if.else.i4278 + +if.else.i4278: ; preds = %if.end11.i4267, %if.then8.i4270 + %954 = phi double [ %.pre5343, %if.end11.i4267 ], [ %953, %if.then8.i4270 ] + %retval.0.i4269 = phi i32 [ %call.i4268, %if.end11.i4267 ], [ %conv9.i4271, %if.then8.i4270 ] + %conv4.i4279 = fptoui double %954 to i64 + %shl.i4280 = shl i64 %conv4.i4279, 1 + %shr.i4281 = ashr exact i64 %shl.i4280, 1 + %conv5.i4282 = sitofp i64 %shr.i4281 to double + %cmp6.i4283 = fcmp oeq double %954, %conv5.i4282 + br i1 %cmp6.i4283, label %if.then8.i4287, label %if.end11.i4284 + +if.then8.i4287: ; preds = %if.else.i4278 + %conv9.i4288 = trunc i64 %conv4.i4279 to i32 + br label %_ZN6hermes15truncateToInt32Ed.exit4294 + +if.end11.i4284: ; preds = %if.else.i4278 + %call.i4285 = call noundef i32 @_ZN6hermes23truncateToInt32SlowPathEd(double noundef %954) #10 + br label %_ZN6hermes15truncateToInt32Ed.exit4294 + +_ZN6hermes15truncateToInt32Ed.exit4294: ; preds = %if.then8.i4287, %if.end11.i4284 + %retval.0.i4286 = phi i32 [ %call.i4285, %if.end11.i4284 ], [ %conv9.i4288, %if.then8.i4287 ] + %and3959 = and i32 %retval.0.i4286, 31 + %shr.i4295 = lshr i32 %retval.0.i4269, %and3959 + %conv.i4296 = uitofp i32 %shr.i4295 to double %op13964 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %955 = load i8, ptr %op13964, align 1 %idxprom3965 = zext i8 %955 to i64 %arrayidx3966 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom3965 - store double %conv.i4298, ptr %arrayidx3966, align 8 + store double %conv.i4296, ptr %arrayidx3966, align 8 %add.ptr3968 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 4 br label %indirectgoto.backedge @@ -8103,8 +8099,8 @@ if.end3972: ; preds = %case_URshift, %land %call3986 = call { i32, i64 } @_ZN6hermes2vm19doShiftOperSlowPathITnDaXadL_ZNS0_9doURshiftEjjEEEENS0_10CallResultINS0_11HermesValueELNS0_6detail20CallResultSpecializeE2EEERNS0_7RuntimeENS0_6HandleIS3_EESA_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx3977, ptr %arrayidx3981) #10 %958 = extractvalue { i32, i64 } %call3986, 0 %959 = load ptr, ptr %currentIP_.i.i, align 8 - %cmp.i4304 = icmp eq i32 %958, 0 - br i1 %cmp.i4304, label %exceptionthread-pre-split.loopexit5518, label %if.end3992 + %cmp.i4302 = icmp eq i32 %958, 0 + br i1 %cmp.i4302, label %exceptionthread-pre-split.loopexit5516, label %if.end3992 if.end3992: ; preds = %if.end3972 %960 = extractvalue { i32, i64 } %call3986, 1 @@ -8125,9 +8121,9 @@ case_Less: ; preds = %indirectgoto %idxprom4003 = zext i8 %962 to i64 %arrayidx4004 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4003 %963 = load i64, ptr %arrayidx4004, align 8 - %cmp.i.i4313 = icmp ult i64 %963, -1970324836974592 + %cmp.i.i4311 = icmp ult i64 %963, -1970324836974592 %964 = bitcast i64 %963 to double - br i1 %cmp.i.i4313, label %land.rhs4006, label %if.end4034 + br i1 %cmp.i.i4311, label %land.rhs4006, label %if.end4034 land.rhs4006: ; preds = %case_Less %op34007 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 @@ -8135,19 +8131,19 @@ land.rhs4006: ; preds = %case_Less %idxprom4008 = zext i8 %965 to i64 %arrayidx4009 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4008 %966 = load i64, ptr %arrayidx4009, align 8 - %cmp.i.i4314 = icmp ult i64 %966, -1970324836974592 - br i1 %cmp.i.i4314, label %if.then4013, label %if.end4034 + %cmp.i.i4312 = icmp ult i64 %966, -1970324836974592 + br i1 %cmp.i.i4312, label %if.then4013, label %if.end4034 if.then4013: ; preds = %land.rhs4006 %967 = bitcast i64 %966 to double %cmp4023 = fcmp olt double %964, %967 - %conv.i4315 = zext i1 %cmp4023 to i64 - %or.i.i4316 = or disjoint i64 %conv.i4315, -1407374883553280 + %conv.i4313 = zext i1 %cmp4023 to i64 + %or.i.i4314 = or disjoint i64 %conv.i4313, -1407374883553280 %op14026 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %968 = load i8, ptr %op14026, align 1 %idxprom4027 = zext i8 %968 to i64 %arrayidx4028 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4027 - store i64 %or.i.i4316, ptr %arrayidx4028, align 8 + store i64 %or.i.i4314, ptr %arrayidx4028, align 8 %add.ptr4030 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 4 br label %indirectgoto.backedge @@ -8162,23 +8158,23 @@ if.end4034: ; preds = %case_Less, %land.rh %arrayidx4043 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4042 %call4048 = call i32 @_ZN6hermes2vm10lessOp_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES5_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx4039, ptr %arrayidx4043) #10 %971 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i43235174.mask = and i32 %call4048, 255 - %cmp.i4324 = icmp eq i32 %bf.cast.i.i43235174.mask, 0 - br i1 %cmp.i4324, label %exceptionthread-pre-split.loopexit5518, label %if.end4052 + %bf.cast.i.i43215172.mask = and i32 %call4048, 255 + %cmp.i4322 = icmp eq i32 %bf.cast.i.i43215172.mask, 0 + br i1 %cmp.i4322, label %exceptionthread-pre-split.loopexit5516, label %if.end4052 if.end4052: ; preds = %if.end4034 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 %972 = lshr i32 %call4048, 8 - %.lobit5175 = and i32 %972, 1 - %conv.i4333 = zext nneg i32 %.lobit5175 to i64 - %or.i.i4334 = or disjoint i64 %conv.i4333, -1407374883553280 + %.lobit5173 = and i32 %972, 1 + %conv.i4331 = zext nneg i32 %.lobit5173 to i64 + %or.i.i4332 = or disjoint i64 %conv.i4331, -1407374883553280 %op14057 = getelementptr inbounds i8, ptr %971, i64 1 %973 = load i8, ptr %op14057, align 1 %idxprom4058 = zext i8 %973 to i64 %arrayidx4059 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4058 - store i64 %or.i.i4334, ptr %arrayidx4059, align 8 + store i64 %or.i.i4332, ptr %arrayidx4059, align 8 %add.ptr4061 = getelementptr inbounds i8, ptr %971, i64 4 br label %indirectgoto.backedge @@ -8188,9 +8184,9 @@ case_LessEq: ; preds = %indirectgoto %idxprom4066 = zext i8 %974 to i64 %arrayidx4067 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4066 %975 = load i64, ptr %arrayidx4067, align 8 - %cmp.i.i4336 = icmp ult i64 %975, -1970324836974592 + %cmp.i.i4334 = icmp ult i64 %975, -1970324836974592 %976 = bitcast i64 %975 to double - br i1 %cmp.i.i4336, label %land.rhs4069, label %if.end4097 + br i1 %cmp.i.i4334, label %land.rhs4069, label %if.end4097 land.rhs4069: ; preds = %case_LessEq %op34070 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 @@ -8198,19 +8194,19 @@ land.rhs4069: ; preds = %case_LessEq %idxprom4071 = zext i8 %977 to i64 %arrayidx4072 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4071 %978 = load i64, ptr %arrayidx4072, align 8 - %cmp.i.i4337 = icmp ult i64 %978, -1970324836974592 - br i1 %cmp.i.i4337, label %if.then4076, label %if.end4097 + %cmp.i.i4335 = icmp ult i64 %978, -1970324836974592 + br i1 %cmp.i.i4335, label %if.then4076, label %if.end4097 if.then4076: ; preds = %land.rhs4069 %979 = bitcast i64 %978 to double %cmp4086 = fcmp ole double %976, %979 - %conv.i4338 = zext i1 %cmp4086 to i64 - %or.i.i4339 = or disjoint i64 %conv.i4338, -1407374883553280 + %conv.i4336 = zext i1 %cmp4086 to i64 + %or.i.i4337 = or disjoint i64 %conv.i4336, -1407374883553280 %op14089 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %980 = load i8, ptr %op14089, align 1 %idxprom4090 = zext i8 %980 to i64 %arrayidx4091 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4090 - store i64 %or.i.i4339, ptr %arrayidx4091, align 8 + store i64 %or.i.i4337, ptr %arrayidx4091, align 8 %add.ptr4093 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 4 br label %indirectgoto.backedge @@ -8225,23 +8221,23 @@ if.end4097: ; preds = %case_LessEq, %land. %arrayidx4106 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4105 %call4111 = call i32 @_ZN6hermes2vm15lessEqualOp_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES5_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx4102, ptr %arrayidx4106) #10 %983 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i43465172.mask = and i32 %call4111, 255 - %cmp.i4347 = icmp eq i32 %bf.cast.i.i43465172.mask, 0 - br i1 %cmp.i4347, label %exceptionthread-pre-split.loopexit5518, label %if.end4115 + %bf.cast.i.i43445170.mask = and i32 %call4111, 255 + %cmp.i4345 = icmp eq i32 %bf.cast.i.i43445170.mask, 0 + br i1 %cmp.i4345, label %exceptionthread-pre-split.loopexit5516, label %if.end4115 if.end4115: ; preds = %if.end4097 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 %984 = lshr i32 %call4111, 8 - %.lobit5173 = and i32 %984, 1 - %conv.i4356 = zext nneg i32 %.lobit5173 to i64 - %or.i.i4357 = or disjoint i64 %conv.i4356, -1407374883553280 + %.lobit5171 = and i32 %984, 1 + %conv.i4354 = zext nneg i32 %.lobit5171 to i64 + %or.i.i4355 = or disjoint i64 %conv.i4354, -1407374883553280 %op14120 = getelementptr inbounds i8, ptr %983, i64 1 %985 = load i8, ptr %op14120, align 1 %idxprom4121 = zext i8 %985 to i64 %arrayidx4122 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4121 - store i64 %or.i.i4357, ptr %arrayidx4122, align 8 + store i64 %or.i.i4355, ptr %arrayidx4122, align 8 %add.ptr4124 = getelementptr inbounds i8, ptr %983, i64 4 br label %indirectgoto.backedge @@ -8251,9 +8247,9 @@ case_Greater: ; preds = %indirectgoto %idxprom4129 = zext i8 %986 to i64 %arrayidx4130 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4129 %987 = load i64, ptr %arrayidx4130, align 8 - %cmp.i.i4359 = icmp ult i64 %987, -1970324836974592 + %cmp.i.i4357 = icmp ult i64 %987, -1970324836974592 %988 = bitcast i64 %987 to double - br i1 %cmp.i.i4359, label %land.rhs4132, label %if.end4160 + br i1 %cmp.i.i4357, label %land.rhs4132, label %if.end4160 land.rhs4132: ; preds = %case_Greater %op34133 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 @@ -8261,19 +8257,19 @@ land.rhs4132: ; preds = %case_Greater %idxprom4134 = zext i8 %989 to i64 %arrayidx4135 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4134 %990 = load i64, ptr %arrayidx4135, align 8 - %cmp.i.i4360 = icmp ult i64 %990, -1970324836974592 - br i1 %cmp.i.i4360, label %if.then4139, label %if.end4160 + %cmp.i.i4358 = icmp ult i64 %990, -1970324836974592 + br i1 %cmp.i.i4358, label %if.then4139, label %if.end4160 if.then4139: ; preds = %land.rhs4132 %991 = bitcast i64 %990 to double %cmp4149 = fcmp ogt double %988, %991 - %conv.i4361 = zext i1 %cmp4149 to i64 - %or.i.i4362 = or disjoint i64 %conv.i4361, -1407374883553280 + %conv.i4359 = zext i1 %cmp4149 to i64 + %or.i.i4360 = or disjoint i64 %conv.i4359, -1407374883553280 %op14152 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %992 = load i8, ptr %op14152, align 1 %idxprom4153 = zext i8 %992 to i64 %arrayidx4154 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4153 - store i64 %or.i.i4362, ptr %arrayidx4154, align 8 + store i64 %or.i.i4360, ptr %arrayidx4154, align 8 %add.ptr4156 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 4 br label %indirectgoto.backedge @@ -8288,23 +8284,23 @@ if.end4160: ; preds = %case_Greater, %land %arrayidx4169 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4168 %call4174 = call i32 @_ZN6hermes2vm13greaterOp_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES5_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx4165, ptr %arrayidx4169) #10 %995 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i43695170.mask = and i32 %call4174, 255 - %cmp.i4370 = icmp eq i32 %bf.cast.i.i43695170.mask, 0 - br i1 %cmp.i4370, label %exceptionthread-pre-split.loopexit5518, label %if.end4178 + %bf.cast.i.i43675168.mask = and i32 %call4174, 255 + %cmp.i4368 = icmp eq i32 %bf.cast.i.i43675168.mask, 0 + br i1 %cmp.i4368, label %exceptionthread-pre-split.loopexit5516, label %if.end4178 if.end4178: ; preds = %if.end4160 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 %996 = lshr i32 %call4174, 8 - %.lobit5171 = and i32 %996, 1 - %conv.i4379 = zext nneg i32 %.lobit5171 to i64 - %or.i.i4380 = or disjoint i64 %conv.i4379, -1407374883553280 + %.lobit5169 = and i32 %996, 1 + %conv.i4377 = zext nneg i32 %.lobit5169 to i64 + %or.i.i4378 = or disjoint i64 %conv.i4377, -1407374883553280 %op14183 = getelementptr inbounds i8, ptr %995, i64 1 %997 = load i8, ptr %op14183, align 1 %idxprom4184 = zext i8 %997 to i64 %arrayidx4185 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4184 - store i64 %or.i.i4380, ptr %arrayidx4185, align 8 + store i64 %or.i.i4378, ptr %arrayidx4185, align 8 %add.ptr4187 = getelementptr inbounds i8, ptr %995, i64 4 br label %indirectgoto.backedge @@ -8314,9 +8310,9 @@ case_GreaterEq: ; preds = %indirectgoto %idxprom4192 = zext i8 %998 to i64 %arrayidx4193 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4192 %999 = load i64, ptr %arrayidx4193, align 8 - %cmp.i.i4382 = icmp ult i64 %999, -1970324836974592 + %cmp.i.i4380 = icmp ult i64 %999, -1970324836974592 %1000 = bitcast i64 %999 to double - br i1 %cmp.i.i4382, label %land.rhs4195, label %if.end4223 + br i1 %cmp.i.i4380, label %land.rhs4195, label %if.end4223 land.rhs4195: ; preds = %case_GreaterEq %op34196 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 @@ -8324,19 +8320,19 @@ land.rhs4195: ; preds = %case_GreaterEq %idxprom4197 = zext i8 %1001 to i64 %arrayidx4198 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4197 %1002 = load i64, ptr %arrayidx4198, align 8 - %cmp.i.i4383 = icmp ult i64 %1002, -1970324836974592 - br i1 %cmp.i.i4383, label %if.then4202, label %if.end4223 + %cmp.i.i4381 = icmp ult i64 %1002, -1970324836974592 + br i1 %cmp.i.i4381, label %if.then4202, label %if.end4223 if.then4202: ; preds = %land.rhs4195 %1003 = bitcast i64 %1002 to double %cmp4212 = fcmp oge double %1000, %1003 - %conv.i4384 = zext i1 %cmp4212 to i64 - %or.i.i4385 = or disjoint i64 %conv.i4384, -1407374883553280 + %conv.i4382 = zext i1 %cmp4212 to i64 + %or.i.i4383 = or disjoint i64 %conv.i4382, -1407374883553280 %op14215 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 1 %1004 = load i8, ptr %op14215, align 1 %idxprom4216 = zext i8 %1004 to i64 %arrayidx4217 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4216 - store i64 %or.i.i4385, ptr %arrayidx4217, align 8 + store i64 %or.i.i4383, ptr %arrayidx4217, align 8 %add.ptr4219 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 4 br label %indirectgoto.backedge @@ -8351,23 +8347,23 @@ if.end4223: ; preds = %case_GreaterEq, %la %arrayidx4232 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4231 %call4237 = call i32 @_ZN6hermes2vm18greaterEqualOp_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES5_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx4228, ptr %arrayidx4232) #10 %1007 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i43925168.mask = and i32 %call4237, 255 - %cmp.i4393 = icmp eq i32 %bf.cast.i.i43925168.mask, 0 - br i1 %cmp.i4393, label %exceptionthread-pre-split.loopexit5518, label %if.end4241 + %bf.cast.i.i43905166.mask = and i32 %call4237, 255 + %cmp.i4391 = icmp eq i32 %bf.cast.i.i43905166.mask, 0 + br i1 %cmp.i4391, label %exceptionthread-pre-split.loopexit5516, label %if.end4241 if.end4241: ; preds = %if.end4223 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 %1008 = lshr i32 %call4237, 8 - %.lobit5169 = and i32 %1008, 1 - %conv.i4402 = zext nneg i32 %.lobit5169 to i64 - %or.i.i4403 = or disjoint i64 %conv.i4402, -1407374883553280 + %.lobit5167 = and i32 %1008, 1 + %conv.i4400 = zext nneg i32 %.lobit5167 to i64 + %or.i.i4401 = or disjoint i64 %conv.i4400, -1407374883553280 %op14246 = getelementptr inbounds i8, ptr %1007, i64 1 %1009 = load i8, ptr %op14246, align 1 %idxprom4247 = zext i8 %1009 to i64 %arrayidx4248 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4247 - store i64 %or.i.i4403, ptr %arrayidx4248, align 8 + store i64 %or.i.i4401, ptr %arrayidx4248, align 8 %add.ptr4250 = getelementptr inbounds i8, ptr %1007, i64 4 br label %indirectgoto.backedge @@ -8377,8 +8373,8 @@ case_JLess: ; preds = %indirectgoto %idxprom4255 = zext i8 %1010 to i64 %arrayidx4256 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4255 %1011 = load i64, ptr %arrayidx4256, align 8 - %cmp.i.i4405 = icmp ult i64 %1011, -1970324836974592 - br i1 %cmp.i.i4405, label %land.rhs4258, label %if.end4288 + %cmp.i.i4403 = icmp ult i64 %1011, -1970324836974592 + br i1 %cmp.i.i4403, label %land.rhs4258, label %if.end4288 land.rhs4258: ; preds = %case_JLess %op34259 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 @@ -8386,8 +8382,8 @@ land.rhs4258: ; preds = %case_JLess %idxprom4260 = zext i8 %1012 to i64 %arrayidx4261 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4260 %1013 = load i64, ptr %arrayidx4261, align 8 - %cmp.i.i4406 = icmp ult i64 %1013, -1970324836974592 - br i1 %cmp.i.i4406, label %case_JLessN, label %if.end4288 + %cmp.i.i4404 = icmp ult i64 %1013, -1970324836974592 + br i1 %cmp.i.i4404, label %case_JLessN, label %if.end4288 case_JLessN: ; preds = %land.rhs4258, %indirectgoto %op24266 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 2 @@ -8425,17 +8421,17 @@ if.end4288: ; preds = %case_JLess, %land.r %arrayidx4297 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4296 %call4302 = call i32 @_ZN6hermes2vm10lessOp_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES5_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx4293, ptr %arrayidx4297) #10 %1021 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i44125148.mask = and i32 %call4302, 255 - %cmp.i4413 = icmp eq i32 %bf.cast.i.i44125148.mask, 0 - br i1 %cmp.i4413, label %exceptionthread-pre-split.loopexit5518, label %if.end4306 + %bf.cast.i.i44105146.mask = and i32 %call4302, 255 + %cmp.i4411 = icmp eq i32 %bf.cast.i.i44105146.mask, 0 + br i1 %cmp.i4411, label %exceptionthread-pre-split.loopexit5516, label %if.end4306 if.end4306: ; preds = %if.end4288 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 %1022 = and i32 %call4302, 256 - %bf.cast.i4421.not = icmp eq i32 %1022, 0 - br i1 %bf.cast.i4421.not, label %if.end4316, label %if.then4308 + %bf.cast.i4419.not = icmp eq i32 %1022, 0 + br i1 %bf.cast.i4419.not, label %if.end4316, label %if.then4308 if.then4308: ; preds = %if.end4306 %op14309 = getelementptr inbounds i8, ptr %1021, i64 1 @@ -8454,8 +8450,8 @@ case_JLessLong: ; preds = %indirectgoto %idxprom4322 = zext i8 %1024 to i64 %arrayidx4323 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4322 %1025 = load i64, ptr %arrayidx4323, align 8 - %cmp.i.i4422 = icmp ult i64 %1025, -1970324836974592 - br i1 %cmp.i.i4422, label %land.rhs4325, label %if.end4354 + %cmp.i.i4420 = icmp ult i64 %1025, -1970324836974592 + br i1 %cmp.i.i4420, label %land.rhs4325, label %if.end4354 land.rhs4325: ; preds = %case_JLessLong %op34326 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 6 @@ -8463,8 +8459,8 @@ land.rhs4325: ; preds = %case_JLessLong %idxprom4327 = zext i8 %1026 to i64 %arrayidx4328 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4327 %1027 = load i64, ptr %arrayidx4328, align 8 - %cmp.i.i4423 = icmp ult i64 %1027, -1970324836974592 - br i1 %cmp.i.i4423, label %case_JLessNLong, label %if.end4354 + %cmp.i.i4421 = icmp ult i64 %1027, -1970324836974592 + br i1 %cmp.i.i4421, label %case_JLessNLong, label %if.end4354 case_JLessNLong: ; preds = %land.rhs4325, %indirectgoto %op24333 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 5 @@ -8502,17 +8498,17 @@ if.end4354: ; preds = %case_JLessLong, %la %arrayidx4363 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4362 %call4368 = call i32 @_ZN6hermes2vm10lessOp_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES5_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx4359, ptr %arrayidx4363) #10 %1035 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i44295147.mask = and i32 %call4368, 255 - %cmp.i4430 = icmp eq i32 %bf.cast.i.i44295147.mask, 0 - br i1 %cmp.i4430, label %exceptionthread-pre-split.loopexit5518, label %if.end4372 + %bf.cast.i.i44275145.mask = and i32 %call4368, 255 + %cmp.i4428 = icmp eq i32 %bf.cast.i.i44275145.mask, 0 + br i1 %cmp.i4428, label %exceptionthread-pre-split.loopexit5516, label %if.end4372 if.end4372: ; preds = %if.end4354 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 %1036 = and i32 %call4368, 256 - %bf.cast.i4438.not = icmp eq i32 %1036, 0 - br i1 %bf.cast.i4438.not, label %if.end4381, label %if.then4374 + %bf.cast.i4436.not = icmp eq i32 %1036, 0 + br i1 %bf.cast.i4436.not, label %if.end4381, label %if.then4374 if.then4374: ; preds = %if.end4372 %op14375 = getelementptr inbounds i8, ptr %1035, i64 1 @@ -8531,8 +8527,8 @@ case_JNotLess: ; preds = %indirectgoto %idxprom4387 = zext i8 %1038 to i64 %arrayidx4388 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4387 %1039 = load i64, ptr %arrayidx4388, align 8 - %cmp.i.i4439 = icmp ult i64 %1039, -1970324836974592 - br i1 %cmp.i.i4439, label %land.rhs4390, label %if.end4420 + %cmp.i.i4437 = icmp ult i64 %1039, -1970324836974592 + br i1 %cmp.i.i4437, label %land.rhs4390, label %if.end4420 land.rhs4390: ; preds = %case_JNotLess %op34391 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 @@ -8540,8 +8536,8 @@ land.rhs4390: ; preds = %case_JNotLess %idxprom4392 = zext i8 %1040 to i64 %arrayidx4393 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4392 %1041 = load i64, ptr %arrayidx4393, align 8 - %cmp.i.i4440 = icmp ult i64 %1041, -1970324836974592 - br i1 %cmp.i.i4440, label %case_JNotLessN, label %if.end4420 + %cmp.i.i4438 = icmp ult i64 %1041, -1970324836974592 + br i1 %cmp.i.i4438, label %case_JNotLessN, label %if.end4420 case_JNotLessN: ; preds = %land.rhs4390, %indirectgoto %op24398 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 2 @@ -8579,17 +8575,17 @@ if.end4420: ; preds = %case_JNotLess, %lan %arrayidx4429 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4428 %call4434 = call i32 @_ZN6hermes2vm10lessOp_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES5_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx4425, ptr %arrayidx4429) #10 %1049 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i44465146.mask = and i32 %call4434, 255 - %cmp.i4447 = icmp eq i32 %bf.cast.i.i44465146.mask, 0 - br i1 %cmp.i4447, label %exceptionthread-pre-split.loopexit5518, label %if.end4438 + %bf.cast.i.i44445144.mask = and i32 %call4434, 255 + %cmp.i4445 = icmp eq i32 %bf.cast.i.i44445144.mask, 0 + br i1 %cmp.i4445, label %exceptionthread-pre-split.loopexit5516, label %if.end4438 if.end4438: ; preds = %if.end4420 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 %1050 = and i32 %call4434, 256 - %bf.cast.i4455.not = icmp eq i32 %1050, 0 - br i1 %bf.cast.i4455.not, label %if.end4445, label %if.then4440 + %bf.cast.i4453.not = icmp eq i32 %1050, 0 + br i1 %bf.cast.i4453.not, label %if.end4445, label %if.then4440 if.then4440: ; preds = %if.end4438 %add.ptr4441 = getelementptr inbounds i8, ptr %1049, i64 4 @@ -8608,8 +8604,8 @@ case_JNotLessLong: ; preds = %indirectgoto %idxprom4454 = zext i8 %1052 to i64 %arrayidx4455 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4454 %1053 = load i64, ptr %arrayidx4455, align 8 - %cmp.i.i4456 = icmp ult i64 %1053, -1970324836974592 - br i1 %cmp.i.i4456, label %land.rhs4457, label %if.end4486 + %cmp.i.i4454 = icmp ult i64 %1053, -1970324836974592 + br i1 %cmp.i.i4454, label %land.rhs4457, label %if.end4486 land.rhs4457: ; preds = %case_JNotLessLong %op34458 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 6 @@ -8617,8 +8613,8 @@ land.rhs4457: ; preds = %case_JNotLessLong %idxprom4459 = zext i8 %1054 to i64 %arrayidx4460 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4459 %1055 = load i64, ptr %arrayidx4460, align 8 - %cmp.i.i4457 = icmp ult i64 %1055, -1970324836974592 - br i1 %cmp.i.i4457, label %case_JNotLessNLong, label %if.end4486 + %cmp.i.i4455 = icmp ult i64 %1055, -1970324836974592 + br i1 %cmp.i.i4455, label %case_JNotLessNLong, label %if.end4486 case_JNotLessNLong: ; preds = %land.rhs4457, %indirectgoto %op24465 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 5 @@ -8656,17 +8652,17 @@ if.end4486: ; preds = %case_JNotLessLong, %arrayidx4495 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4494 %call4500 = call i32 @_ZN6hermes2vm10lessOp_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES5_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx4491, ptr %arrayidx4495) #10 %1063 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i44635145.mask = and i32 %call4500, 255 - %cmp.i4464 = icmp eq i32 %bf.cast.i.i44635145.mask, 0 - br i1 %cmp.i4464, label %exceptionthread-pre-split.loopexit5518, label %if.end4504 + %bf.cast.i.i44615143.mask = and i32 %call4500, 255 + %cmp.i4462 = icmp eq i32 %bf.cast.i.i44615143.mask, 0 + br i1 %cmp.i4462, label %exceptionthread-pre-split.loopexit5516, label %if.end4504 if.end4504: ; preds = %if.end4486 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 %1064 = and i32 %call4500, 256 - %bf.cast.i4472.not = icmp eq i32 %1064, 0 - br i1 %bf.cast.i4472.not, label %if.end4511, label %if.then4506 + %bf.cast.i4470.not = icmp eq i32 %1064, 0 + br i1 %bf.cast.i4470.not, label %if.end4511, label %if.then4506 if.then4506: ; preds = %if.end4504 %add.ptr4507 = getelementptr inbounds i8, ptr %1063, i64 7 @@ -8685,8 +8681,8 @@ case_JLessEqual: ; preds = %indirectgoto %idxprom4519 = zext i8 %1066 to i64 %arrayidx4520 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4519 %1067 = load i64, ptr %arrayidx4520, align 8 - %cmp.i.i4473 = icmp ult i64 %1067, -1970324836974592 - br i1 %cmp.i.i4473, label %land.rhs4522, label %if.end4552 + %cmp.i.i4471 = icmp ult i64 %1067, -1970324836974592 + br i1 %cmp.i.i4471, label %land.rhs4522, label %if.end4552 land.rhs4522: ; preds = %case_JLessEqual %op34523 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 @@ -8694,8 +8690,8 @@ land.rhs4522: ; preds = %case_JLessEqual %idxprom4524 = zext i8 %1068 to i64 %arrayidx4525 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4524 %1069 = load i64, ptr %arrayidx4525, align 8 - %cmp.i.i4474 = icmp ult i64 %1069, -1970324836974592 - br i1 %cmp.i.i4474, label %case_JLessEqualN, label %if.end4552 + %cmp.i.i4472 = icmp ult i64 %1069, -1970324836974592 + br i1 %cmp.i.i4472, label %case_JLessEqualN, label %if.end4552 case_JLessEqualN: ; preds = %land.rhs4522, %indirectgoto %op24530 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 2 @@ -8733,17 +8729,17 @@ if.end4552: ; preds = %case_JLessEqual, %l %arrayidx4561 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4560 %call4566 = call i32 @_ZN6hermes2vm15lessEqualOp_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES5_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx4557, ptr %arrayidx4561) #10 %1077 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i44805144.mask = and i32 %call4566, 255 - %cmp.i4481 = icmp eq i32 %bf.cast.i.i44805144.mask, 0 - br i1 %cmp.i4481, label %exceptionthread-pre-split.loopexit5518, label %if.end4570 + %bf.cast.i.i44785142.mask = and i32 %call4566, 255 + %cmp.i4479 = icmp eq i32 %bf.cast.i.i44785142.mask, 0 + br i1 %cmp.i4479, label %exceptionthread-pre-split.loopexit5516, label %if.end4570 if.end4570: ; preds = %if.end4552 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 %1078 = and i32 %call4566, 256 - %bf.cast.i4489.not = icmp eq i32 %1078, 0 - br i1 %bf.cast.i4489.not, label %if.end4580, label %if.then4572 + %bf.cast.i4487.not = icmp eq i32 %1078, 0 + br i1 %bf.cast.i4487.not, label %if.end4580, label %if.then4572 if.then4572: ; preds = %if.end4570 %op14573 = getelementptr inbounds i8, ptr %1077, i64 1 @@ -8762,8 +8758,8 @@ case_JLessEqualLong: ; preds = %indirectgoto %idxprom4586 = zext i8 %1080 to i64 %arrayidx4587 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4586 %1081 = load i64, ptr %arrayidx4587, align 8 - %cmp.i.i4490 = icmp ult i64 %1081, -1970324836974592 - br i1 %cmp.i.i4490, label %land.rhs4589, label %if.end4618 + %cmp.i.i4488 = icmp ult i64 %1081, -1970324836974592 + br i1 %cmp.i.i4488, label %land.rhs4589, label %if.end4618 land.rhs4589: ; preds = %case_JLessEqualLong %op34590 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 6 @@ -8771,8 +8767,8 @@ land.rhs4589: ; preds = %case_JLessEqualLong %idxprom4591 = zext i8 %1082 to i64 %arrayidx4592 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4591 %1083 = load i64, ptr %arrayidx4592, align 8 - %cmp.i.i4491 = icmp ult i64 %1083, -1970324836974592 - br i1 %cmp.i.i4491, label %case_JLessEqualNLong, label %if.end4618 + %cmp.i.i4489 = icmp ult i64 %1083, -1970324836974592 + br i1 %cmp.i.i4489, label %case_JLessEqualNLong, label %if.end4618 case_JLessEqualNLong: ; preds = %land.rhs4589, %indirectgoto %op24597 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 5 @@ -8810,17 +8806,17 @@ if.end4618: ; preds = %case_JLessEqualLong %arrayidx4627 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4626 %call4632 = call i32 @_ZN6hermes2vm15lessEqualOp_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES5_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx4623, ptr %arrayidx4627) #10 %1091 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i44975143.mask = and i32 %call4632, 255 - %cmp.i4498 = icmp eq i32 %bf.cast.i.i44975143.mask, 0 - br i1 %cmp.i4498, label %exceptionthread-pre-split.loopexit5518, label %if.end4636 + %bf.cast.i.i44955141.mask = and i32 %call4632, 255 + %cmp.i4496 = icmp eq i32 %bf.cast.i.i44955141.mask, 0 + br i1 %cmp.i4496, label %exceptionthread-pre-split.loopexit5516, label %if.end4636 if.end4636: ; preds = %if.end4618 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 %1092 = and i32 %call4632, 256 - %bf.cast.i4506.not = icmp eq i32 %1092, 0 - br i1 %bf.cast.i4506.not, label %if.end4645, label %if.then4638 + %bf.cast.i4504.not = icmp eq i32 %1092, 0 + br i1 %bf.cast.i4504.not, label %if.end4645, label %if.then4638 if.then4638: ; preds = %if.end4636 %op14639 = getelementptr inbounds i8, ptr %1091, i64 1 @@ -8839,8 +8835,8 @@ case_JNotLessEqual: ; preds = %indirectgoto %idxprom4651 = zext i8 %1094 to i64 %arrayidx4652 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4651 %1095 = load i64, ptr %arrayidx4652, align 8 - %cmp.i.i4507 = icmp ult i64 %1095, -1970324836974592 - br i1 %cmp.i.i4507, label %land.rhs4654, label %if.end4684 + %cmp.i.i4505 = icmp ult i64 %1095, -1970324836974592 + br i1 %cmp.i.i4505, label %land.rhs4654, label %if.end4684 land.rhs4654: ; preds = %case_JNotLessEqual %op34655 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 @@ -8848,8 +8844,8 @@ land.rhs4654: ; preds = %case_JNotLessEqual %idxprom4656 = zext i8 %1096 to i64 %arrayidx4657 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4656 %1097 = load i64, ptr %arrayidx4657, align 8 - %cmp.i.i4508 = icmp ult i64 %1097, -1970324836974592 - br i1 %cmp.i.i4508, label %case_JNotLessEqualN, label %if.end4684 + %cmp.i.i4506 = icmp ult i64 %1097, -1970324836974592 + br i1 %cmp.i.i4506, label %case_JNotLessEqualN, label %if.end4684 case_JNotLessEqualN: ; preds = %land.rhs4654, %indirectgoto %op24662 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 2 @@ -8887,17 +8883,17 @@ if.end4684: ; preds = %case_JNotLessEqual, %arrayidx4693 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4692 %call4698 = call i32 @_ZN6hermes2vm15lessEqualOp_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES5_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx4689, ptr %arrayidx4693) #10 %1105 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i45145142.mask = and i32 %call4698, 255 - %cmp.i4515 = icmp eq i32 %bf.cast.i.i45145142.mask, 0 - br i1 %cmp.i4515, label %exceptionthread-pre-split.loopexit5518, label %if.end4702 + %bf.cast.i.i45125140.mask = and i32 %call4698, 255 + %cmp.i4513 = icmp eq i32 %bf.cast.i.i45125140.mask, 0 + br i1 %cmp.i4513, label %exceptionthread-pre-split.loopexit5516, label %if.end4702 if.end4702: ; preds = %if.end4684 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 %1106 = and i32 %call4698, 256 - %bf.cast.i4523.not = icmp eq i32 %1106, 0 - br i1 %bf.cast.i4523.not, label %if.end4709, label %if.then4704 + %bf.cast.i4521.not = icmp eq i32 %1106, 0 + br i1 %bf.cast.i4521.not, label %if.end4709, label %if.then4704 if.then4704: ; preds = %if.end4702 %add.ptr4705 = getelementptr inbounds i8, ptr %1105, i64 4 @@ -8916,8 +8912,8 @@ case_JNotLessEqualLong: ; preds = %indirectgoto %idxprom4718 = zext i8 %1108 to i64 %arrayidx4719 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4718 %1109 = load i64, ptr %arrayidx4719, align 8 - %cmp.i.i4524 = icmp ult i64 %1109, -1970324836974592 - br i1 %cmp.i.i4524, label %land.rhs4721, label %if.end4750 + %cmp.i.i4522 = icmp ult i64 %1109, -1970324836974592 + br i1 %cmp.i.i4522, label %land.rhs4721, label %if.end4750 land.rhs4721: ; preds = %case_JNotLessEqualLong %op34722 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 6 @@ -8925,8 +8921,8 @@ land.rhs4721: ; preds = %case_JNotLessEqualL %idxprom4723 = zext i8 %1110 to i64 %arrayidx4724 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4723 %1111 = load i64, ptr %arrayidx4724, align 8 - %cmp.i.i4525 = icmp ult i64 %1111, -1970324836974592 - br i1 %cmp.i.i4525, label %case_JNotLessEqualNLong, label %if.end4750 + %cmp.i.i4523 = icmp ult i64 %1111, -1970324836974592 + br i1 %cmp.i.i4523, label %case_JNotLessEqualNLong, label %if.end4750 case_JNotLessEqualNLong: ; preds = %land.rhs4721, %indirectgoto %op24729 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 5 @@ -8964,17 +8960,17 @@ if.end4750: ; preds = %case_JNotLessEqualL %arrayidx4759 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4758 %call4764 = call i32 @_ZN6hermes2vm15lessEqualOp_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES5_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx4755, ptr %arrayidx4759) #10 %1119 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i45315141.mask = and i32 %call4764, 255 - %cmp.i4532 = icmp eq i32 %bf.cast.i.i45315141.mask, 0 - br i1 %cmp.i4532, label %exceptionthread-pre-split.loopexit5518, label %if.end4768 + %bf.cast.i.i45295139.mask = and i32 %call4764, 255 + %cmp.i4530 = icmp eq i32 %bf.cast.i.i45295139.mask, 0 + br i1 %cmp.i4530, label %exceptionthread-pre-split.loopexit5516, label %if.end4768 if.end4768: ; preds = %if.end4750 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 %1120 = and i32 %call4764, 256 - %bf.cast.i4540.not = icmp eq i32 %1120, 0 - br i1 %bf.cast.i4540.not, label %if.end4775, label %if.then4770 + %bf.cast.i4538.not = icmp eq i32 %1120, 0 + br i1 %bf.cast.i4538.not, label %if.end4775, label %if.then4770 if.then4770: ; preds = %if.end4768 %add.ptr4771 = getelementptr inbounds i8, ptr %1119, i64 7 @@ -8993,8 +8989,8 @@ case_JGreater: ; preds = %indirectgoto %idxprom4783 = zext i8 %1122 to i64 %arrayidx4784 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4783 %1123 = load i64, ptr %arrayidx4784, align 8 - %cmp.i.i4541 = icmp ult i64 %1123, -1970324836974592 - br i1 %cmp.i.i4541, label %land.rhs4786, label %if.end4816 + %cmp.i.i4539 = icmp ult i64 %1123, -1970324836974592 + br i1 %cmp.i.i4539, label %land.rhs4786, label %if.end4816 land.rhs4786: ; preds = %case_JGreater %op34787 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 @@ -9002,8 +8998,8 @@ land.rhs4786: ; preds = %case_JGreater %idxprom4788 = zext i8 %1124 to i64 %arrayidx4789 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4788 %1125 = load i64, ptr %arrayidx4789, align 8 - %cmp.i.i4542 = icmp ult i64 %1125, -1970324836974592 - br i1 %cmp.i.i4542, label %case_JGreaterN, label %if.end4816 + %cmp.i.i4540 = icmp ult i64 %1125, -1970324836974592 + br i1 %cmp.i.i4540, label %case_JGreaterN, label %if.end4816 case_JGreaterN: ; preds = %land.rhs4786, %indirectgoto %op24794 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 2 @@ -9041,17 +9037,17 @@ if.end4816: ; preds = %case_JGreater, %lan %arrayidx4825 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4824 %call4830 = call i32 @_ZN6hermes2vm13greaterOp_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES5_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx4821, ptr %arrayidx4825) #10 %1133 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i45485140.mask = and i32 %call4830, 255 - %cmp.i4549 = icmp eq i32 %bf.cast.i.i45485140.mask, 0 - br i1 %cmp.i4549, label %exceptionthread-pre-split.loopexit5518, label %if.end4834 + %bf.cast.i.i45465138.mask = and i32 %call4830, 255 + %cmp.i4547 = icmp eq i32 %bf.cast.i.i45465138.mask, 0 + br i1 %cmp.i4547, label %exceptionthread-pre-split.loopexit5516, label %if.end4834 if.end4834: ; preds = %if.end4816 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 %1134 = and i32 %call4830, 256 - %bf.cast.i4557.not = icmp eq i32 %1134, 0 - br i1 %bf.cast.i4557.not, label %if.end4844, label %if.then4836 + %bf.cast.i4555.not = icmp eq i32 %1134, 0 + br i1 %bf.cast.i4555.not, label %if.end4844, label %if.then4836 if.then4836: ; preds = %if.end4834 %op14837 = getelementptr inbounds i8, ptr %1133, i64 1 @@ -9070,8 +9066,8 @@ case_JGreaterLong: ; preds = %indirectgoto %idxprom4850 = zext i8 %1136 to i64 %arrayidx4851 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4850 %1137 = load i64, ptr %arrayidx4851, align 8 - %cmp.i.i4558 = icmp ult i64 %1137, -1970324836974592 - br i1 %cmp.i.i4558, label %land.rhs4853, label %if.end4882 + %cmp.i.i4556 = icmp ult i64 %1137, -1970324836974592 + br i1 %cmp.i.i4556, label %land.rhs4853, label %if.end4882 land.rhs4853: ; preds = %case_JGreaterLong %op34854 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 6 @@ -9079,8 +9075,8 @@ land.rhs4853: ; preds = %case_JGreaterLong %idxprom4855 = zext i8 %1138 to i64 %arrayidx4856 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4855 %1139 = load i64, ptr %arrayidx4856, align 8 - %cmp.i.i4559 = icmp ult i64 %1139, -1970324836974592 - br i1 %cmp.i.i4559, label %case_JGreaterNLong, label %if.end4882 + %cmp.i.i4557 = icmp ult i64 %1139, -1970324836974592 + br i1 %cmp.i.i4557, label %case_JGreaterNLong, label %if.end4882 case_JGreaterNLong: ; preds = %land.rhs4853, %indirectgoto %op24861 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 5 @@ -9118,17 +9114,17 @@ if.end4882: ; preds = %case_JGreaterLong, %arrayidx4891 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4890 %call4896 = call i32 @_ZN6hermes2vm13greaterOp_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES5_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx4887, ptr %arrayidx4891) #10 %1147 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i45655139.mask = and i32 %call4896, 255 - %cmp.i4566 = icmp eq i32 %bf.cast.i.i45655139.mask, 0 - br i1 %cmp.i4566, label %exceptionthread-pre-split.loopexit5518, label %if.end4900 + %bf.cast.i.i45635137.mask = and i32 %call4896, 255 + %cmp.i4564 = icmp eq i32 %bf.cast.i.i45635137.mask, 0 + br i1 %cmp.i4564, label %exceptionthread-pre-split.loopexit5516, label %if.end4900 if.end4900: ; preds = %if.end4882 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 %1148 = and i32 %call4896, 256 - %bf.cast.i4574.not = icmp eq i32 %1148, 0 - br i1 %bf.cast.i4574.not, label %if.end4909, label %if.then4902 + %bf.cast.i4572.not = icmp eq i32 %1148, 0 + br i1 %bf.cast.i4572.not, label %if.end4909, label %if.then4902 if.then4902: ; preds = %if.end4900 %op14903 = getelementptr inbounds i8, ptr %1147, i64 1 @@ -9147,8 +9143,8 @@ case_JNotGreater: ; preds = %indirectgoto %idxprom4915 = zext i8 %1150 to i64 %arrayidx4916 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4915 %1151 = load i64, ptr %arrayidx4916, align 8 - %cmp.i.i4575 = icmp ult i64 %1151, -1970324836974592 - br i1 %cmp.i.i4575, label %land.rhs4918, label %if.end4948 + %cmp.i.i4573 = icmp ult i64 %1151, -1970324836974592 + br i1 %cmp.i.i4573, label %land.rhs4918, label %if.end4948 land.rhs4918: ; preds = %case_JNotGreater %op34919 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 @@ -9156,8 +9152,8 @@ land.rhs4918: ; preds = %case_JNotGreater %idxprom4920 = zext i8 %1152 to i64 %arrayidx4921 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4920 %1153 = load i64, ptr %arrayidx4921, align 8 - %cmp.i.i4576 = icmp ult i64 %1153, -1970324836974592 - br i1 %cmp.i.i4576, label %case_JNotGreaterN, label %if.end4948 + %cmp.i.i4574 = icmp ult i64 %1153, -1970324836974592 + br i1 %cmp.i.i4574, label %case_JNotGreaterN, label %if.end4948 case_JNotGreaterN: ; preds = %land.rhs4918, %indirectgoto %op24926 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 2 @@ -9195,17 +9191,17 @@ if.end4948: ; preds = %case_JNotGreater, % %arrayidx4957 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4956 %call4962 = call i32 @_ZN6hermes2vm13greaterOp_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES5_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx4953, ptr %arrayidx4957) #10 %1161 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i45825138.mask = and i32 %call4962, 255 - %cmp.i4583 = icmp eq i32 %bf.cast.i.i45825138.mask, 0 - br i1 %cmp.i4583, label %exceptionthread-pre-split.loopexit5518, label %if.end4966 + %bf.cast.i.i45805136.mask = and i32 %call4962, 255 + %cmp.i4581 = icmp eq i32 %bf.cast.i.i45805136.mask, 0 + br i1 %cmp.i4581, label %exceptionthread-pre-split.loopexit5516, label %if.end4966 if.end4966: ; preds = %if.end4948 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 %1162 = and i32 %call4962, 256 - %bf.cast.i4591.not = icmp eq i32 %1162, 0 - br i1 %bf.cast.i4591.not, label %if.end4973, label %if.then4968 + %bf.cast.i4589.not = icmp eq i32 %1162, 0 + br i1 %bf.cast.i4589.not, label %if.end4973, label %if.then4968 if.then4968: ; preds = %if.end4966 %add.ptr4969 = getelementptr inbounds i8, ptr %1161, i64 4 @@ -9224,8 +9220,8 @@ case_JNotGreaterLong: ; preds = %indirectgoto %idxprom4982 = zext i8 %1164 to i64 %arrayidx4983 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4982 %1165 = load i64, ptr %arrayidx4983, align 8 - %cmp.i.i4592 = icmp ult i64 %1165, -1970324836974592 - br i1 %cmp.i.i4592, label %land.rhs4985, label %if.end5014 + %cmp.i.i4590 = icmp ult i64 %1165, -1970324836974592 + br i1 %cmp.i.i4590, label %land.rhs4985, label %if.end5014 land.rhs4985: ; preds = %case_JNotGreaterLong %op34986 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 6 @@ -9233,8 +9229,8 @@ land.rhs4985: ; preds = %case_JNotGreaterLon %idxprom4987 = zext i8 %1166 to i64 %arrayidx4988 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom4987 %1167 = load i64, ptr %arrayidx4988, align 8 - %cmp.i.i4593 = icmp ult i64 %1167, -1970324836974592 - br i1 %cmp.i.i4593, label %case_JNotGreaterNLong, label %if.end5014 + %cmp.i.i4591 = icmp ult i64 %1167, -1970324836974592 + br i1 %cmp.i.i4591, label %case_JNotGreaterNLong, label %if.end5014 case_JNotGreaterNLong: ; preds = %land.rhs4985, %indirectgoto %op24993 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 5 @@ -9272,17 +9268,17 @@ if.end5014: ; preds = %case_JNotGreaterLon %arrayidx5023 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom5022 %call5028 = call i32 @_ZN6hermes2vm13greaterOp_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES5_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx5019, ptr %arrayidx5023) #10 %1175 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i45995137.mask = and i32 %call5028, 255 - %cmp.i4600 = icmp eq i32 %bf.cast.i.i45995137.mask, 0 - br i1 %cmp.i4600, label %exceptionthread-pre-split.loopexit5518, label %if.end5032 + %bf.cast.i.i45975135.mask = and i32 %call5028, 255 + %cmp.i4598 = icmp eq i32 %bf.cast.i.i45975135.mask, 0 + br i1 %cmp.i4598, label %exceptionthread-pre-split.loopexit5516, label %if.end5032 if.end5032: ; preds = %if.end5014 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 %1176 = and i32 %call5028, 256 - %bf.cast.i4608.not = icmp eq i32 %1176, 0 - br i1 %bf.cast.i4608.not, label %if.end5039, label %if.then5034 + %bf.cast.i4606.not = icmp eq i32 %1176, 0 + br i1 %bf.cast.i4606.not, label %if.end5039, label %if.then5034 if.then5034: ; preds = %if.end5032 %add.ptr5035 = getelementptr inbounds i8, ptr %1175, i64 7 @@ -9301,8 +9297,8 @@ case_JGreaterEqual: ; preds = %indirectgoto %idxprom5047 = zext i8 %1178 to i64 %arrayidx5048 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom5047 %1179 = load i64, ptr %arrayidx5048, align 8 - %cmp.i.i4609 = icmp ult i64 %1179, -1970324836974592 - br i1 %cmp.i.i4609, label %land.rhs5050, label %if.end5080 + %cmp.i.i4607 = icmp ult i64 %1179, -1970324836974592 + br i1 %cmp.i.i4607, label %land.rhs5050, label %if.end5080 land.rhs5050: ; preds = %case_JGreaterEqual %op35051 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 @@ -9310,8 +9306,8 @@ land.rhs5050: ; preds = %case_JGreaterEqual %idxprom5052 = zext i8 %1180 to i64 %arrayidx5053 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom5052 %1181 = load i64, ptr %arrayidx5053, align 8 - %cmp.i.i4610 = icmp ult i64 %1181, -1970324836974592 - br i1 %cmp.i.i4610, label %case_JGreaterEqualN, label %if.end5080 + %cmp.i.i4608 = icmp ult i64 %1181, -1970324836974592 + br i1 %cmp.i.i4608, label %case_JGreaterEqualN, label %if.end5080 case_JGreaterEqualN: ; preds = %land.rhs5050, %indirectgoto %op25058 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 2 @@ -9349,17 +9345,17 @@ if.end5080: ; preds = %case_JGreaterEqual, %arrayidx5089 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom5088 %call5094 = call i32 @_ZN6hermes2vm18greaterEqualOp_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES5_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx5085, ptr %arrayidx5089) #10 %1189 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i46165136.mask = and i32 %call5094, 255 - %cmp.i4617 = icmp eq i32 %bf.cast.i.i46165136.mask, 0 - br i1 %cmp.i4617, label %exceptionthread-pre-split.loopexit5518, label %if.end5098 + %bf.cast.i.i46145134.mask = and i32 %call5094, 255 + %cmp.i4615 = icmp eq i32 %bf.cast.i.i46145134.mask, 0 + br i1 %cmp.i4615, label %exceptionthread-pre-split.loopexit5516, label %if.end5098 if.end5098: ; preds = %if.end5080 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 %1190 = and i32 %call5094, 256 - %bf.cast.i4625.not = icmp eq i32 %1190, 0 - br i1 %bf.cast.i4625.not, label %if.end5108, label %if.then5100 + %bf.cast.i4623.not = icmp eq i32 %1190, 0 + br i1 %bf.cast.i4623.not, label %if.end5108, label %if.then5100 if.then5100: ; preds = %if.end5098 %op15101 = getelementptr inbounds i8, ptr %1189, i64 1 @@ -9378,8 +9374,8 @@ case_JGreaterEqualLong: ; preds = %indirectgoto %idxprom5114 = zext i8 %1192 to i64 %arrayidx5115 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom5114 %1193 = load i64, ptr %arrayidx5115, align 8 - %cmp.i.i4626 = icmp ult i64 %1193, -1970324836974592 - br i1 %cmp.i.i4626, label %land.rhs5117, label %if.end5146 + %cmp.i.i4624 = icmp ult i64 %1193, -1970324836974592 + br i1 %cmp.i.i4624, label %land.rhs5117, label %if.end5146 land.rhs5117: ; preds = %case_JGreaterEqualLong %op35118 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 6 @@ -9387,8 +9383,8 @@ land.rhs5117: ; preds = %case_JGreaterEqualL %idxprom5119 = zext i8 %1194 to i64 %arrayidx5120 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom5119 %1195 = load i64, ptr %arrayidx5120, align 8 - %cmp.i.i4627 = icmp ult i64 %1195, -1970324836974592 - br i1 %cmp.i.i4627, label %case_JGreaterEqualNLong, label %if.end5146 + %cmp.i.i4625 = icmp ult i64 %1195, -1970324836974592 + br i1 %cmp.i.i4625, label %case_JGreaterEqualNLong, label %if.end5146 case_JGreaterEqualNLong: ; preds = %land.rhs5117, %indirectgoto %op25125 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 5 @@ -9426,17 +9422,17 @@ if.end5146: ; preds = %case_JGreaterEqualL %arrayidx5155 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom5154 %call5160 = call i32 @_ZN6hermes2vm18greaterEqualOp_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES5_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx5151, ptr %arrayidx5155) #10 %1203 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i46335135.mask = and i32 %call5160, 255 - %cmp.i4634 = icmp eq i32 %bf.cast.i.i46335135.mask, 0 - br i1 %cmp.i4634, label %exceptionthread-pre-split.loopexit5518, label %if.end5164 + %bf.cast.i.i46315133.mask = and i32 %call5160, 255 + %cmp.i4632 = icmp eq i32 %bf.cast.i.i46315133.mask, 0 + br i1 %cmp.i4632, label %exceptionthread-pre-split.loopexit5516, label %if.end5164 if.end5164: ; preds = %if.end5146 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 %1204 = and i32 %call5160, 256 - %bf.cast.i4642.not = icmp eq i32 %1204, 0 - br i1 %bf.cast.i4642.not, label %if.end5173, label %if.then5166 + %bf.cast.i4640.not = icmp eq i32 %1204, 0 + br i1 %bf.cast.i4640.not, label %if.end5173, label %if.then5166 if.then5166: ; preds = %if.end5164 %op15167 = getelementptr inbounds i8, ptr %1203, i64 1 @@ -9455,8 +9451,8 @@ case_JNotGreaterEqual: ; preds = %indirectgoto %idxprom5179 = zext i8 %1206 to i64 %arrayidx5180 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom5179 %1207 = load i64, ptr %arrayidx5180, align 8 - %cmp.i.i4643 = icmp ult i64 %1207, -1970324836974592 - br i1 %cmp.i.i4643, label %land.rhs5182, label %if.end5212 + %cmp.i.i4641 = icmp ult i64 %1207, -1970324836974592 + br i1 %cmp.i.i4641, label %land.rhs5182, label %if.end5212 land.rhs5182: ; preds = %case_JNotGreaterEqual %op35183 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 3 @@ -9464,8 +9460,8 @@ land.rhs5182: ; preds = %case_JNotGreaterEqu %idxprom5184 = zext i8 %1208 to i64 %arrayidx5185 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom5184 %1209 = load i64, ptr %arrayidx5185, align 8 - %cmp.i.i4644 = icmp ult i64 %1209, -1970324836974592 - br i1 %cmp.i.i4644, label %case_JNotGreaterEqualN, label %if.end5212 + %cmp.i.i4642 = icmp ult i64 %1209, -1970324836974592 + br i1 %cmp.i.i4642, label %case_JNotGreaterEqualN, label %if.end5212 case_JNotGreaterEqualN: ; preds = %land.rhs5182, %indirectgoto %op25190 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 2 @@ -9503,17 +9499,17 @@ if.end5212: ; preds = %case_JNotGreaterEqu %arrayidx5221 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom5220 %call5226 = call i32 @_ZN6hermes2vm18greaterEqualOp_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES5_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx5217, ptr %arrayidx5221) #10 %1217 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i46505134.mask = and i32 %call5226, 255 - %cmp.i4651 = icmp eq i32 %bf.cast.i.i46505134.mask, 0 - br i1 %cmp.i4651, label %exceptionthread-pre-split.loopexit5518, label %if.end5230 + %bf.cast.i.i46485132.mask = and i32 %call5226, 255 + %cmp.i4649 = icmp eq i32 %bf.cast.i.i46485132.mask, 0 + br i1 %cmp.i4649, label %exceptionthread-pre-split.loopexit5516, label %if.end5230 if.end5230: ; preds = %if.end5212 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 %1218 = and i32 %call5226, 256 - %bf.cast.i4659.not = icmp eq i32 %1218, 0 - br i1 %bf.cast.i4659.not, label %if.end5237, label %if.then5232 + %bf.cast.i4657.not = icmp eq i32 %1218, 0 + br i1 %bf.cast.i4657.not, label %if.end5237, label %if.then5232 if.then5232: ; preds = %if.end5230 %add.ptr5233 = getelementptr inbounds i8, ptr %1217, i64 4 @@ -9532,8 +9528,8 @@ case_JNotGreaterEqualLong: ; preds = %indirectgoto %idxprom5246 = zext i8 %1220 to i64 %arrayidx5247 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom5246 %1221 = load i64, ptr %arrayidx5247, align 8 - %cmp.i.i4660 = icmp ult i64 %1221, -1970324836974592 - br i1 %cmp.i.i4660, label %land.rhs5249, label %if.end5278 + %cmp.i.i4658 = icmp ult i64 %1221, -1970324836974592 + br i1 %cmp.i.i4658, label %land.rhs5249, label %if.end5278 land.rhs5249: ; preds = %case_JNotGreaterEqualLong %op35250 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 6 @@ -9541,8 +9537,8 @@ land.rhs5249: ; preds = %case_JNotGreaterEqu %idxprom5251 = zext i8 %1222 to i64 %arrayidx5252 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom5251 %1223 = load i64, ptr %arrayidx5252, align 8 - %cmp.i.i4661 = icmp ult i64 %1223, -1970324836974592 - br i1 %cmp.i.i4661, label %case_JNotGreaterEqualNLong, label %if.end5278 + %cmp.i.i4659 = icmp ult i64 %1223, -1970324836974592 + br i1 %cmp.i.i4659, label %case_JNotGreaterEqualNLong, label %if.end5278 case_JNotGreaterEqualNLong: ; preds = %land.rhs5249, %indirectgoto %op25257 = getelementptr inbounds i8, ptr %add.ptr.sink.sink, i64 5 @@ -9580,17 +9576,17 @@ if.end5278: ; preds = %case_JNotGreaterEqu %arrayidx5287 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom5286 %call5292 = call i32 @_ZN6hermes2vm18greaterEqualOp_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES5_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx5283, ptr %arrayidx5287) #10 %1231 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i46675133.mask = and i32 %call5292, 255 - %cmp.i4668 = icmp eq i32 %bf.cast.i.i46675133.mask, 0 - br i1 %cmp.i4668, label %exceptionthread-pre-split.loopexit5518, label %if.end5296 + %bf.cast.i.i46655131.mask = and i32 %call5292, 255 + %cmp.i4666 = icmp eq i32 %bf.cast.i.i46655131.mask, 0 + br i1 %cmp.i4666, label %exceptionthread-pre-split.loopexit5516, label %if.end5296 if.end5296: ; preds = %if.end5278 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 %1232 = and i32 %call5292, 256 - %bf.cast.i4676.not = icmp eq i32 %1232, 0 - br i1 %bf.cast.i4676.not, label %if.end5303, label %if.then5298 + %bf.cast.i4674.not = icmp eq i32 %1232, 0 + br i1 %bf.cast.i4674.not, label %if.end5303, label %if.then5298 if.then5298: ; preds = %if.end5296 %add.ptr5299 = getelementptr inbounds i8, ptr %1231, i64 7 @@ -9715,17 +9711,17 @@ case_JEqual: ; preds = %indirectgoto %arrayidx5412 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom5411 %call5417 = call i32 @_ZN6hermes2vm24abstractEqualityTest_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES5_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx5408, ptr %arrayidx5412) #10 %1248 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i46825132.mask = and i32 %call5417, 255 - %cmp.i4683 = icmp eq i32 %bf.cast.i.i46825132.mask, 0 - br i1 %cmp.i4683, label %exceptionthread-pre-split.loopexit5518, label %if.end5421 + %bf.cast.i.i46805130.mask = and i32 %call5417, 255 + %cmp.i4681 = icmp eq i32 %bf.cast.i.i46805130.mask, 0 + br i1 %cmp.i4681, label %exceptionthread-pre-split.loopexit5516, label %if.end5421 if.end5421: ; preds = %case_JEqual store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 %1249 = and i32 %call5417, 256 - %bf.cast.i.i4691.not = icmp eq i32 %1249, 0 - br i1 %bf.cast.i.i4691.not, label %if.end5431, label %if.then5423 + %bf.cast.i.i4689.not = icmp eq i32 %1249, 0 + br i1 %bf.cast.i.i4689.not, label %if.end5431, label %if.then5423 if.then5423: ; preds = %if.end5421 %op15424 = getelementptr inbounds i8, ptr %1248, i64 1 @@ -9750,17 +9746,17 @@ case_JEqualLong: ; preds = %indirectgoto %arrayidx5444 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom5443 %call5449 = call i32 @_ZN6hermes2vm24abstractEqualityTest_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES5_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx5440, ptr %arrayidx5444) #10 %1253 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i46975131.mask = and i32 %call5449, 255 - %cmp.i4698 = icmp eq i32 %bf.cast.i.i46975131.mask, 0 - br i1 %cmp.i4698, label %exceptionthread-pre-split.loopexit5518, label %if.end5453 + %bf.cast.i.i46955129.mask = and i32 %call5449, 255 + %cmp.i4696 = icmp eq i32 %bf.cast.i.i46955129.mask, 0 + br i1 %cmp.i4696, label %exceptionthread-pre-split.loopexit5516, label %if.end5453 if.end5453: ; preds = %case_JEqualLong store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 %1254 = and i32 %call5449, 256 - %bf.cast.i.i4706.not = icmp eq i32 %1254, 0 - br i1 %bf.cast.i.i4706.not, label %if.end5462, label %if.then5455 + %bf.cast.i.i4704.not = icmp eq i32 %1254, 0 + br i1 %bf.cast.i.i4704.not, label %if.end5462, label %if.then5455 if.then5455: ; preds = %if.end5453 %op15456 = getelementptr inbounds i8, ptr %1253, i64 1 @@ -9785,17 +9781,17 @@ case_JNotEqual: ; preds = %indirectgoto %arrayidx5475 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom5474 %call5480 = call i32 @_ZN6hermes2vm24abstractEqualityTest_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES5_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx5471, ptr %arrayidx5475) #10 %1258 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i47125130.mask = and i32 %call5480, 255 - %cmp.i4713 = icmp eq i32 %bf.cast.i.i47125130.mask, 0 - br i1 %cmp.i4713, label %exceptionthread-pre-split.loopexit5518, label %if.end5484 + %bf.cast.i.i47105128.mask = and i32 %call5480, 255 + %cmp.i4711 = icmp eq i32 %bf.cast.i.i47105128.mask, 0 + br i1 %cmp.i4711, label %exceptionthread-pre-split.loopexit5516, label %if.end5484 if.end5484: ; preds = %case_JNotEqual store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 %1259 = and i32 %call5480, 256 - %bf.cast.i.i4721.not = icmp eq i32 %1259, 0 - br i1 %bf.cast.i.i4721.not, label %if.end5491, label %if.then5486 + %bf.cast.i.i4719.not = icmp eq i32 %1259, 0 + br i1 %bf.cast.i.i4719.not, label %if.end5491, label %if.then5486 if.then5486: ; preds = %if.end5484 %add.ptr5487 = getelementptr inbounds i8, ptr %1258, i64 4 @@ -9820,17 +9816,17 @@ case_JNotEqualLong: ; preds = %indirectgoto %arrayidx5507 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom5506 %call5512 = call i32 @_ZN6hermes2vm24abstractEqualityTest_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES5_(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr %arrayidx5503, ptr %arrayidx5507) #10 %1263 = load ptr, ptr %currentIP_.i.i, align 8 - %bf.cast.i.i47275129.mask = and i32 %call5512, 255 - %cmp.i4728 = icmp eq i32 %bf.cast.i.i47275129.mask, 0 - br i1 %cmp.i4728, label %exceptionthread-pre-split.loopexit5518, label %if.end5516 + %bf.cast.i.i47255127.mask = and i32 %call5512, 255 + %cmp.i4726 = icmp eq i32 %bf.cast.i.i47255127.mask, 0 + br i1 %cmp.i4726, label %exceptionthread-pre-split.loopexit5516, label %if.end5516 if.end5516: ; preds = %case_JNotEqualLong store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 %1264 = and i32 %call5512, 256 - %bf.cast.i.i4736.not = icmp eq i32 %1264, 0 - br i1 %bf.cast.i.i4736.not, label %if.end5523, label %if.then5518 + %bf.cast.i.i4734.not = icmp eq i32 %1264, 0 + br i1 %bf.cast.i.i4734.not, label %if.end5523, label %if.then5518 if.then5518: ; preds = %if.end5516 %add.ptr5519 = getelementptr inbounds i8, ptr %1263, i64 7 @@ -9848,7 +9844,7 @@ case_PutOwnByVal: ; preds = %indirectgoto %call5531 = call noundef i32 @_ZN6hermes2vm11Interpreter15casePutOwnByValERNS0_7RuntimeEPNS0_17PinnedHermesValueEPKNS_4inst4InstE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr noundef %frameRegs.3, ptr noundef nonnull %add.ptr.sink.sink) #10 %1266 = load ptr, ptr %currentIP_.i.i, align 8 %cmp5533 = icmp eq i32 %call5531, 0 - br i1 %cmp5533, label %exceptionthread-pre-split.loopexit5518, label %if.end5536 + br i1 %cmp5533, label %exceptionthread-pre-split.loopexit5516, label %if.end5536 if.end5536: ; preds = %case_PutOwnByVal store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 @@ -9862,7 +9858,7 @@ case_PutOwnGetterSetterByVal: ; preds = %indirectgoto %call5542 = call noundef i32 @_ZN6hermes2vm11Interpreter27casePutOwnGetterSetterByValERNS0_7RuntimeEPNS0_17PinnedHermesValueEPKNS_4inst4InstE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr noundef %frameRegs.3, ptr noundef nonnull %add.ptr.sink.sink) #10 %1267 = load ptr, ptr %currentIP_.i.i, align 8 %cmp5544 = icmp eq i32 %call5542, 0 - br i1 %cmp5544, label %exceptionthread-pre-split.loopexit5518, label %if.end5547 + br i1 %cmp5544, label %exceptionthread-pre-split.loopexit5516, label %if.end5547 if.end5547: ; preds = %case_PutOwnGetterSetterByVal store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 @@ -9876,7 +9872,7 @@ case_DirectEval: ; preds = %indirectgoto %call5553 = call noundef i32 @_ZN6hermes2vm11Interpreter14caseDirectEvalERNS0_7RuntimeEPNS0_17PinnedHermesValueEPKNS_4inst4InstE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr noundef %frameRegs.3, ptr noundef nonnull %add.ptr.sink.sink) #10 %1268 = load ptr, ptr %currentIP_.i.i, align 8 %cmp5555 = icmp eq i32 %call5553, 0 - br i1 %cmp5555, label %exceptionthread-pre-split.loopexit5518, label %if.end5558 + br i1 %cmp5555, label %exceptionthread-pre-split.loopexit5516, label %if.end5558 if.end5558: ; preds = %case_DirectEval store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 @@ -9890,7 +9886,7 @@ case_IteratorBegin: ; preds = %indirectgoto %call5564 = call noundef i32 @_ZN6hermes2vm11Interpreter17caseIteratorBeginERNS0_7RuntimeEPNS0_17PinnedHermesValueEPKNS_4inst4InstE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr noundef %frameRegs.3, ptr noundef nonnull %add.ptr.sink.sink) #10 %1269 = load ptr, ptr %currentIP_.i.i, align 8 %cmp5566 = icmp eq i32 %call5564, 0 - br i1 %cmp5566, label %exceptionthread-pre-split.loopexit5518, label %if.end5569 + br i1 %cmp5566, label %exceptionthread-pre-split.loopexit5516, label %if.end5569 if.end5569: ; preds = %case_IteratorBegin store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 @@ -9904,7 +9900,7 @@ case_IteratorNext: ; preds = %indirectgoto %call5575 = call noundef i32 @_ZN6hermes2vm11Interpreter16caseIteratorNextERNS0_7RuntimeEPNS0_17PinnedHermesValueEPKNS_4inst4InstE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr noundef %frameRegs.3, ptr noundef nonnull %add.ptr.sink.sink) #10 %1270 = load ptr, ptr %currentIP_.i.i, align 8 %cmp5577 = icmp eq i32 %call5575, 0 - br i1 %cmp5577, label %exceptionthread-pre-split.loopexit5518, label %if.end5580 + br i1 %cmp5577, label %exceptionthread-pre-split.loopexit5516, label %if.end5580 if.end5580: ; preds = %case_IteratorNext store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 @@ -9919,8 +9915,8 @@ case_IteratorClose: ; preds = %indirectgoto %idxprom5586 = zext i8 %1271 to i64 %arrayidx5587 = getelementptr inbounds %"class.hermes::vm::PinnedHermesValue", ptr %frameRegs.3, i64 %idxprom5586 %1272 = load i64, ptr %arrayidx5587, align 8 - %cmp.i4777 = icmp ugt i64 %1272, -281474976710657 - br i1 %cmp.i4777, label %if.then5590, label %if.end5623 + %cmp.i4775 = icmp ugt i64 %1272, -281474976710657 + br i1 %cmp.i4775, label %if.then5590, label %if.end5623 if.then5590: ; preds = %case_IteratorClose store ptr %add.ptr.sink.sink, ptr %currentIP_.i.i, align 8 @@ -9936,12 +9932,12 @@ if.then5611: ; preds = %if.then5590 %op25612 = getelementptr inbounds i8, ptr %1274, i64 2 %1275 = load i8, ptr %op25612, align 1 %tobool5613.not = icmp eq i8 %1275, 0 - br i1 %tobool5613.not, label %exceptionthread-pre-split.loopexit5518, label %land.lhs.true5614 + br i1 %tobool5613.not, label %exceptionthread-pre-split.loopexit5516, label %land.lhs.true5614 land.lhs.true5614: ; preds = %if.then5611 %agg.tmp5615.sroa.0.0.copyload = load i64, ptr %thrownValue_5647, align 8 %call5618 = call noundef zeroext i1 @_ZN6hermes2vm18isUncatchableErrorENS0_11HermesValueE(i64 %agg.tmp5615.sroa.0.0.copyload) #10 - br i1 %call5618, label %exceptionthread-pre-split.loopexit5518, label %if.then5619 + br i1 %call5618, label %exceptionthread-pre-split.loopexit5516, label %if.then5619 if.then5619: ; preds = %land.lhs.true5614 store i64 -1970324836974592, ptr %thrownValue_5647, align 8 @@ -9968,53 +9964,53 @@ stackOverflow: ; preds = %_ZNK6hermes2vm9Code br label %handleExceptionInParent handleExceptionInParent: ; preds = %if.then24, %if.else, %stackOverflow - %arrayidx.i.i4789 = getelementptr inbounds i8, ptr %17, i64 -24 - %1276 = load i64, ptr %arrayidx.i.i4789, align 8 + %arrayidx.i.i4787 = getelementptr inbounds i8, ptr %17, i64 -24 + %1276 = load i64, ptr %arrayidx.i.i4787, align 8 %1277 = inttoptr i64 %1276 to ptr %1278 = load i64, ptr %arrayidx.i.i, align 8 %1279 = inttoptr i64 %1278 to ptr store ptr %17, ptr %stackPointer_.i, align 8 - %arrayidx.i.i.i.i4792 = getelementptr inbounds i8, ptr %17, i64 -8 - %1280 = load i64, ptr %arrayidx.i.i.i.i4792, align 8 + %arrayidx.i.i.i.i4790 = getelementptr inbounds i8, ptr %17, i64 -8 + %1280 = load i64, ptr %arrayidx.i.i.i.i4790, align 8 %1281 = inttoptr i64 %1280 to ptr store ptr %1281, ptr %currentFrame_.i, align 8 %arrayidx.i5855 = getelementptr inbounds i8, ptr %1281, i64 8 %tobool5643.not = icmp eq i64 %1276, 0 br i1 %tobool5643.not, label %cleanup, label %exceptionthread-pre-split -exceptionthread-pre-split.loopexit5518: ; preds = %land.lhs.true5614, %if.then5611, %coerceThisSlowPath, %_ZN6hermes2vm11Interpreter18handleCallSlowPathERNS0_7RuntimeEPNS0_17PinnedHermesValueE.exit, %case_CallBuiltin, %case_CallBuiltinLong, %if.then651, %case_CreateGenerator, %case_CreateGeneratorLongIndex, %case_DeclareGlobalVar, %case_ThrowIfHasRestrictedGlobalProperty, %if.end1230, %_ZN6hermes2vm11Interpreter20getByIdTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEENS0_8SymbolIDE.exit, %if.end1405, %if.else1437, %if.then1471, %_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit, %if.then1532, %_ZN6hermes2vm11Interpreter21putByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_S6_b.exit, %case_GetPNameList, %if.else1759, %if.else1797, %case_ToInt32, %if.else1858, %if.end1872, %if.end2031, %if.end2077, %if.end2133, %if.end2184, %if.end2226, %if.end2293, %if.end2336, %case_NewObjectWithBuffer, %case_NewObjectWithBufferLong, %case_NewArray, %case_NewArrayWithBuffer, %case_NewArrayWithBufferLong, %if.end2560, %case_Neq, %if.end2750, %if.end2823, %case_InstanceOf, %if.end2893, %putOwnById, %if.then2990, %if.end3050, %if.then3092, %if.else3125, %if.end3139, %doLoadConstBigInt, %if.end3461, %if.end3522, %if.end3583, %if.end3646, %if.end3710, %if.end3774, %if.end3838, %if.end3905, %if.end3972, %if.end4034, %if.end4097, %if.end4160, %if.end4223, %if.end4288, %if.end4354, %if.end4420, %if.end4486, %if.end4552, %if.end4618, %if.end4684, %if.end4750, %if.end4816, %if.end4882, %if.end4948, %if.end5014, %if.end5080, %if.end5146, %if.end5212, %if.end5278, %case_JEqual, %case_JEqualLong, %case_JNotEqual, %case_JNotEqualLong, %case_PutOwnByVal, %case_PutOwnGetterSetterByVal, %case_DirectEval, %case_IteratorBegin, %case_IteratorNext - %ip.22.ph5356.ph = phi ptr [ %1270, %case_IteratorNext ], [ %1269, %case_IteratorBegin ], [ %1268, %case_DirectEval ], [ %1267, %case_PutOwnGetterSetterByVal ], [ %1266, %case_PutOwnByVal ], [ %1263, %case_JNotEqualLong ], [ %1258, %case_JNotEqual ], [ %1253, %case_JEqualLong ], [ %1248, %case_JEqual ], [ %1231, %if.end5278 ], [ %1217, %if.end5212 ], [ %1203, %if.end5146 ], [ %1189, %if.end5080 ], [ %1175, %if.end5014 ], [ %1161, %if.end4948 ], [ %1147, %if.end4882 ], [ %1133, %if.end4816 ], [ %1119, %if.end4750 ], [ %1105, %if.end4684 ], [ %1091, %if.end4618 ], [ %1077, %if.end4552 ], [ %1063, %if.end4486 ], [ %1049, %if.end4420 ], [ %1035, %if.end4354 ], [ %1021, %if.end4288 ], [ %1007, %if.end4223 ], [ %995, %if.end4160 ], [ %983, %if.end4097 ], [ %971, %if.end4034 ], [ %959, %if.end3972 ], [ %945, %if.end3905 ], [ %931, %if.end3838 ], [ %917, %if.end3774 ], [ %903, %if.end3710 ], [ %889, %if.end3646 ], [ %875, %if.end3583 ], [ %860, %if.end3522 ], [ %845, %if.end3461 ], [ %830, %doLoadConstBigInt ], [ %764, %if.end3139 ], [ %761, %if.else3125 ], [ %759, %if.then3092 ], [ %752, %if.end3050 ], [ %740, %if.then2990 ], [ %732, %putOwnById ], [ %721, %if.end2893 ], [ %713, %case_InstanceOf ], [ %708, %if.end2823 ], [ %690, %if.end2750 ], [ %670, %case_Neq ], [ %662, %if.end2560 ], [ %648, %case_NewArrayWithBufferLong ], [ %641, %case_NewArrayWithBuffer ], [ %635, %case_NewArray ], [ %631, %case_NewObjectWithBufferLong ], [ %624, %case_NewObjectWithBuffer ], [ %610, %if.end2336 ], [ %605, %if.end2293 ], [ %593, %if.end2226 ], [ %584, %if.end2184 ], [ %575, %if.end2133 ], [ %560, %if.end2077 ], [ %551, %if.end2031 ], [ %526, %if.end1872 ], [ %524, %if.else1858 ], [ %517, %case_ToInt32 ], [ %512, %if.else1797 ], [ %505, %if.else1759 ], [ %474, %case_GetPNameList ], [ %469, %_ZN6hermes2vm11Interpreter21putByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_S6_b.exit ], [ %465, %if.then1532 ], [ %458, %_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit ], [ %448, %if.then1471 ], [ %441, %if.else1437 ], [ %436, %if.end1405 ], [ %381, %_ZN6hermes2vm11Interpreter20getByIdTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEENS0_8SymbolIDE.exit ], [ %371, %if.end1230 ], [ %309, %case_ThrowIfHasRestrictedGlobalProperty ], [ %308, %case_DeclareGlobalVar ], [ %230, %case_CreateGeneratorLongIndex ], [ %223, %case_CreateGenerator ], [ %170, %if.then651 ], [ %119, %case_CallBuiltinLong ], [ %117, %case_CallBuiltin ], [ %95, %_ZN6hermes2vm11Interpreter18handleCallSlowPathERNS0_7RuntimeEPNS0_17PinnedHermesValueE.exit ], [ %50, %coerceThisSlowPath ], [ %1274, %if.then5611 ], [ %1274, %land.lhs.true5614 ] +exceptionthread-pre-split.loopexit5516: ; preds = %land.lhs.true5614, %if.then5611, %coerceThisSlowPath, %_ZN6hermes2vm11Interpreter18handleCallSlowPathERNS0_7RuntimeEPNS0_17PinnedHermesValueE.exit, %case_CallBuiltin, %case_CallBuiltinLong, %if.then651, %case_CreateGenerator, %case_CreateGeneratorLongIndex, %case_DeclareGlobalVar, %case_ThrowIfHasRestrictedGlobalProperty, %if.end1230, %_ZN6hermes2vm11Interpreter20getByIdTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEENS0_8SymbolIDE.exit, %if.end1405, %if.else1437, %if.then1471, %_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit, %if.then1532, %_ZN6hermes2vm11Interpreter21putByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_S6_b.exit, %case_GetPNameList, %if.else1759, %if.else1797, %case_ToInt32, %if.else1858, %if.end1872, %if.end2031, %if.end2077, %if.end2133, %if.end2184, %if.end2226, %if.end2293, %if.end2336, %case_NewObjectWithBuffer, %case_NewObjectWithBufferLong, %case_NewArray, %case_NewArrayWithBuffer, %case_NewArrayWithBufferLong, %if.end2560, %case_Neq, %if.end2750, %if.end2823, %case_InstanceOf, %if.end2893, %putOwnById, %if.then2990, %if.end3050, %if.then3092, %if.else3125, %if.end3139, %doLoadConstBigInt, %if.end3461, %if.end3522, %if.end3583, %if.end3646, %if.end3710, %if.end3774, %if.end3838, %if.end3905, %if.end3972, %if.end4034, %if.end4097, %if.end4160, %if.end4223, %if.end4288, %if.end4354, %if.end4420, %if.end4486, %if.end4552, %if.end4618, %if.end4684, %if.end4750, %if.end4816, %if.end4882, %if.end4948, %if.end5014, %if.end5080, %if.end5146, %if.end5212, %if.end5278, %case_JEqual, %case_JEqualLong, %case_JNotEqual, %case_JNotEqualLong, %case_PutOwnByVal, %case_PutOwnGetterSetterByVal, %case_DirectEval, %case_IteratorBegin, %case_IteratorNext + %ip.22.ph5354.ph = phi ptr [ %1270, %case_IteratorNext ], [ %1269, %case_IteratorBegin ], [ %1268, %case_DirectEval ], [ %1267, %case_PutOwnGetterSetterByVal ], [ %1266, %case_PutOwnByVal ], [ %1263, %case_JNotEqualLong ], [ %1258, %case_JNotEqual ], [ %1253, %case_JEqualLong ], [ %1248, %case_JEqual ], [ %1231, %if.end5278 ], [ %1217, %if.end5212 ], [ %1203, %if.end5146 ], [ %1189, %if.end5080 ], [ %1175, %if.end5014 ], [ %1161, %if.end4948 ], [ %1147, %if.end4882 ], [ %1133, %if.end4816 ], [ %1119, %if.end4750 ], [ %1105, %if.end4684 ], [ %1091, %if.end4618 ], [ %1077, %if.end4552 ], [ %1063, %if.end4486 ], [ %1049, %if.end4420 ], [ %1035, %if.end4354 ], [ %1021, %if.end4288 ], [ %1007, %if.end4223 ], [ %995, %if.end4160 ], [ %983, %if.end4097 ], [ %971, %if.end4034 ], [ %959, %if.end3972 ], [ %945, %if.end3905 ], [ %931, %if.end3838 ], [ %917, %if.end3774 ], [ %903, %if.end3710 ], [ %889, %if.end3646 ], [ %875, %if.end3583 ], [ %860, %if.end3522 ], [ %845, %if.end3461 ], [ %830, %doLoadConstBigInt ], [ %764, %if.end3139 ], [ %761, %if.else3125 ], [ %759, %if.then3092 ], [ %752, %if.end3050 ], [ %740, %if.then2990 ], [ %732, %putOwnById ], [ %721, %if.end2893 ], [ %713, %case_InstanceOf ], [ %708, %if.end2823 ], [ %690, %if.end2750 ], [ %670, %case_Neq ], [ %662, %if.end2560 ], [ %648, %case_NewArrayWithBufferLong ], [ %641, %case_NewArrayWithBuffer ], [ %635, %case_NewArray ], [ %631, %case_NewObjectWithBufferLong ], [ %624, %case_NewObjectWithBuffer ], [ %610, %if.end2336 ], [ %605, %if.end2293 ], [ %593, %if.end2226 ], [ %584, %if.end2184 ], [ %575, %if.end2133 ], [ %560, %if.end2077 ], [ %551, %if.end2031 ], [ %526, %if.end1872 ], [ %524, %if.else1858 ], [ %517, %case_ToInt32 ], [ %512, %if.else1797 ], [ %505, %if.else1759 ], [ %474, %case_GetPNameList ], [ %469, %_ZN6hermes2vm11Interpreter21putByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_S6_b.exit ], [ %465, %if.then1532 ], [ %458, %_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit ], [ %448, %if.then1471 ], [ %441, %if.else1437 ], [ %436, %if.end1405 ], [ %381, %_ZN6hermes2vm11Interpreter20getByIdTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEENS0_8SymbolIDE.exit ], [ %371, %if.end1230 ], [ %309, %case_ThrowIfHasRestrictedGlobalProperty ], [ %308, %case_DeclareGlobalVar ], [ %230, %case_CreateGeneratorLongIndex ], [ %223, %case_CreateGenerator ], [ %170, %if.then651 ], [ %119, %case_CallBuiltinLong ], [ %117, %case_CallBuiltin ], [ %95, %_ZN6hermes2vm11Interpreter18handleCallSlowPathERNS0_7RuntimeEPNS0_17PinnedHermesValueE.exit ], [ %50, %coerceThisSlowPath ], [ %1274, %if.then5611 ], [ %1274, %land.lhs.true5614 ] br label %exceptionthread-pre-split -exceptionthread-pre-split: ; preds = %_ZNK6hermes2vm18SegmentedArrayBaseINS0_11HermesValueEE2atILNS3_6InlineE0EEES2_RNS0_11PointerBaseEj.exit, %exceptionthread-pre-split.loopexit5518, %_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit.thread5350, %_ZN6hermes2vm11Interpreter21putByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_S6_b.exit.thread, %do.end624, %if.then2556, %if.then2889, %if.then3035, %handleExceptionInParent - %frameRegs.1.ph = phi ptr [ %frameRegs.3, %if.then2889 ], [ %frameRegs.3, %if.then3035 ], [ %frameRegs.3, %do.end624 ], [ %frameRegs.3, %if.then2556 ], [ %arrayidx.i5855, %handleExceptionInParent ], [ %frameRegs.3, %_ZN6hermes2vm11Interpreter21putByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_S6_b.exit.thread ], [ %frameRegs.3, %_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit.thread5350 ], [ %frameRegs.3, %exceptionthread-pre-split.loopexit5518 ], [ %frameRegs.3, %_ZNK6hermes2vm18SegmentedArrayBaseINS0_11HermesValueEE2atILNS3_6InlineE0EEES2_RNS0_11PointerBaseEj.exit ] - %ip.22.ph5356 = phi ptr [ %718, %if.then2889 ], [ %748, %if.then3035 ], [ %165, %do.end624 ], [ %655, %if.then2556 ], [ %1279, %handleExceptionInParent ], [ %468, %_ZN6hermes2vm11Interpreter21putByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_S6_b.exit.thread ], [ %451, %_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit.thread5350 ], [ %ip.22.ph5356.ph, %exceptionthread-pre-split.loopexit5518 ], [ %491, %_ZNK6hermes2vm18SegmentedArrayBaseINS0_11HermesValueEE2atILNS3_6InlineE0EEES2_RNS0_11PointerBaseEj.exit ] - %curCodeBlock.2.ph = phi ptr [ %curCodeBlock.4, %if.then2889 ], [ %curCodeBlock.4, %if.then3035 ], [ %curCodeBlock.4, %do.end624 ], [ %curCodeBlock.4, %if.then2556 ], [ %1277, %handleExceptionInParent ], [ %curCodeBlock.4, %_ZN6hermes2vm11Interpreter21putByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_S6_b.exit.thread ], [ %curCodeBlock.4, %_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit.thread5350 ], [ %curCodeBlock.4, %exceptionthread-pre-split.loopexit5518 ], [ %curCodeBlock.4, %_ZNK6hermes2vm18SegmentedArrayBaseINS0_11HermesValueEE2atILNS3_6InlineE0EEES2_RNS0_11PointerBaseEj.exit ] +exceptionthread-pre-split: ; preds = %_ZNK6hermes2vm18SegmentedArrayBaseINS0_11HermesValueEE2atILNS3_6InlineE0EEES2_RNS0_11PointerBaseEj.exit, %exceptionthread-pre-split.loopexit5516, %_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit.thread5348, %_ZN6hermes2vm11Interpreter21putByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_S6_b.exit.thread, %do.end624, %if.then2556, %if.then2889, %if.then3035, %handleExceptionInParent + %frameRegs.1.ph = phi ptr [ %frameRegs.3, %if.then2889 ], [ %frameRegs.3, %if.then3035 ], [ %frameRegs.3, %do.end624 ], [ %frameRegs.3, %if.then2556 ], [ %arrayidx.i5855, %handleExceptionInParent ], [ %frameRegs.3, %_ZN6hermes2vm11Interpreter21putByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_S6_b.exit.thread ], [ %frameRegs.3, %_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit.thread5348 ], [ %frameRegs.3, %exceptionthread-pre-split.loopexit5516 ], [ %frameRegs.3, %_ZNK6hermes2vm18SegmentedArrayBaseINS0_11HermesValueEE2atILNS3_6InlineE0EEES2_RNS0_11PointerBaseEj.exit ] + %ip.22.ph5354 = phi ptr [ %718, %if.then2889 ], [ %748, %if.then3035 ], [ %165, %do.end624 ], [ %655, %if.then2556 ], [ %1279, %handleExceptionInParent ], [ %468, %_ZN6hermes2vm11Interpreter21putByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_S6_b.exit.thread ], [ %451, %_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit.thread5348 ], [ %ip.22.ph5354.ph, %exceptionthread-pre-split.loopexit5516 ], [ %491, %_ZNK6hermes2vm18SegmentedArrayBaseINS0_11HermesValueEE2atILNS3_6InlineE0EEES2_RNS0_11PointerBaseEj.exit ] + %curCodeBlock.2.ph = phi ptr [ %curCodeBlock.4, %if.then2889 ], [ %curCodeBlock.4, %if.then3035 ], [ %curCodeBlock.4, %do.end624 ], [ %curCodeBlock.4, %if.then2556 ], [ %1277, %handleExceptionInParent ], [ %curCodeBlock.4, %_ZN6hermes2vm11Interpreter21putByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_S6_b.exit.thread ], [ %curCodeBlock.4, %_ZN6hermes2vm11Interpreter21getByValTransient_RJSERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEES6_.exit.thread5348 ], [ %curCodeBlock.4, %exceptionthread-pre-split.loopexit5516 ], [ %curCodeBlock.4, %_ZNK6hermes2vm18SegmentedArrayBaseINS0_11HermesValueEE2atILNS3_6InlineE0EEES2_RNS0_11PointerBaseEj.exit ] %agg.tmp5646.sroa.0.0.copyload.pr = load i64, ptr %thrownValue_5647, align 8 br label %exception exception: ; preds = %exceptionthread-pre-split, %case_Throw, %if.then537 %agg.tmp5646.sroa.0.0.copyload = phi i64 [ %agg.tmp5646.sroa.0.0.copyload.pr, %exceptionthread-pre-split ], [ %agg.tmp.sroa.0.0.copyload.i2589, %case_Throw ], [ %agg.tmp538.sroa.0.0.copyload, %if.then537 ] %frameRegs.1 = phi ptr [ %frameRegs.1.ph, %exceptionthread-pre-split ], [ %frameRegs.3, %case_Throw ], [ %frameRegs.3, %if.then537 ] - %ip.22 = phi ptr [ %ip.22.ph5356, %exceptionthread-pre-split ], [ %add.ptr.sink.sink, %case_Throw ], [ %add.ptr.sink.sink, %if.then537 ] + %ip.22 = phi ptr [ %ip.22.ph5354, %exceptionthread-pre-split ], [ %add.ptr.sink.sink, %case_Throw ], [ %add.ptr.sink.sink, %if.then537 ] %curCodeBlock.2 = phi ptr [ %curCodeBlock.2.ph, %exceptionthread-pre-split ], [ %curCodeBlock.4, %case_Throw ], [ %curCodeBlock.4, %if.then537 ] - %cmp.i.i4794 = icmp ugt i64 %agg.tmp5646.sroa.0.0.copyload, -844424930131969 - br i1 %cmp.i.i4794, label %cond.true.i4796, label %if.end5676.thread - -cond.true.i4796: ; preds = %exception - %and.i.i4797 = and i64 %agg.tmp5646.sroa.0.0.copyload, 281474976710655 - %1282 = inttoptr i64 %and.i.i4797 to ptr - %bf.load.i.i.i.i.i.i.i.i.i.i.i4798 = load i32, ptr %1282, align 4 - %bf.lshr.i.i.mask.i.i.i.i.i.i.i.i.i = and i32 %bf.load.i.i.i.i.i.i.i.i.i.i.i4798, -16777216 - %cmp.i.i.i.i.i.i.i.i.i4799 = icmp eq i32 %bf.lshr.i.i.mask.i.i.i.i.i.i.i.i.i, 486539264 - br i1 %cmp.i.i.i.i.i.i.i.i.i4799, label %if.then5651, label %if.end5676.thread - -if.then5651: ; preds = %cond.true.i4796 + %cmp.i.i4792 = icmp ugt i64 %agg.tmp5646.sroa.0.0.copyload, -844424930131969 + br i1 %cmp.i.i4792, label %cond.true.i4794, label %if.end5676.thread + +cond.true.i4794: ; preds = %exception + %and.i.i4795 = and i64 %agg.tmp5646.sroa.0.0.copyload, 281474976710655 + %1282 = inttoptr i64 %and.i.i4795 to ptr + %bf.load.i.i.i.i.i.i.i.i.i.i.i4796 = load i32, ptr %1282, align 4 + %bf.lshr.i.i.mask.i.i.i.i.i.i.i.i.i = and i32 %bf.load.i.i.i.i.i.i.i.i.i.i.i4796, -16777216 + %cmp.i.i.i.i.i.i.i.i.i4797 = icmp eq i32 %bf.lshr.i.i.mask.i.i.i.i.i.i.i.i.i, 486539264 + br i1 %cmp.i.i.i.i.i.i.i.i.i4797, label %if.then5651, label %if.end5676.thread + +if.then5651: ; preds = %cond.true.i4794 %catchable_.i = getelementptr inbounds i8, ptr %1282, i64 48 %1283 = load i8, ptr %catchable_.i, align 8 - %.fr5457 = freeze i8 %1283 - %1284 = and i8 %.fr5457, 1 - %tobool.i4801.not = icmp eq i8 %1284, 0 + %.fr5455 = freeze i8 %1283 + %1284 = and i8 %.fr5455, 1 + %tobool.i4799.not = icmp eq i8 %1284, 0 %stacktrace_.i = getelementptr inbounds i8, ptr %1282, i64 24 %1285 = load ptr, ptr %stacktrace_.i, align 8 %tobool5655.not = icmp eq ptr %1285, null @@ -10022,40 +10018,40 @@ if.then5651: ; preds = %cond.true.i4796 if.then5656: ; preds = %if.then5651 store ptr %ip.22, ptr %currentIP_.i.i, align 8 - %or.i.i.i.i.i4804 = or i64 %agg.tmp5646.sroa.0.0.copyload, -281474976710656 + %or.i.i.i.i.i4802 = or i64 %agg.tmp5646.sroa.0.0.copyload, -281474976710656 %1286 = load ptr, ptr %topGCScope_.i, align 8 - %next_.i.i.i.i.i.i.i4806 = getelementptr inbounds i8, ptr %1286, i64 192 - %1287 = load ptr, ptr %next_.i.i.i.i.i.i.i4806, align 8 - %curChunkEnd_.i.i.i.i.i.i4807 = getelementptr inbounds i8, ptr %1286, i64 200 - %1288 = load ptr, ptr %curChunkEnd_.i.i.i.i.i.i4807, align 8 - %cmp.i.i.i.i.i.i4808 = icmp ult ptr %1287, %1288 - br i1 %cmp.i.i.i.i.i.i4808, label %if.then.i.i.i.i.i.i4812, label %if.end.i.i.i.i.i.i4809 - -if.then.i.i.i.i.i.i4812: ; preds = %if.then5656 - %incdec.ptr.i.i.i.i.i.i4813 = getelementptr inbounds i8, ptr %1287, i64 8 - store ptr %incdec.ptr.i.i.i.i.i.i4813, ptr %next_.i.i.i.i.i.i.i4806, align 8 - store i64 %or.i.i.i.i.i4804, ptr %1287, align 8 + %next_.i.i.i.i.i.i.i4804 = getelementptr inbounds i8, ptr %1286, i64 192 + %1287 = load ptr, ptr %next_.i.i.i.i.i.i.i4804, align 8 + %curChunkEnd_.i.i.i.i.i.i4805 = getelementptr inbounds i8, ptr %1286, i64 200 + %1288 = load ptr, ptr %curChunkEnd_.i.i.i.i.i.i4805, align 8 + %cmp.i.i.i.i.i.i4806 = icmp ult ptr %1287, %1288 + br i1 %cmp.i.i.i.i.i.i4806, label %if.then.i.i.i.i.i.i4810, label %if.end.i.i.i.i.i.i4807 + +if.then.i.i.i.i.i.i4810: ; preds = %if.then5656 + %incdec.ptr.i.i.i.i.i.i4811 = getelementptr inbounds i8, ptr %1287, i64 8 + store ptr %incdec.ptr.i.i.i.i.i.i4811, ptr %next_.i.i.i.i.i.i.i4804, align 8 + store i64 %or.i.i.i.i.i4802, ptr %1287, align 8 br label %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_7JSErrorEEENS0_6HandleIT_EEPS5_.exit -if.end.i.i.i.i.i.i4809: ; preds = %if.then5656 - %call7.i.i.i.i.i.i4810 = call noundef ptr @_ZN6hermes2vm7GCScope15_newChunkAndPHVENS0_11HermesValueE(ptr noundef nonnull align 8 dereferenceable(212) %1286, i64 %or.i.i.i.i.i4804) #10 +if.end.i.i.i.i.i.i4807: ; preds = %if.then5656 + %call7.i.i.i.i.i.i4808 = call noundef ptr @_ZN6hermes2vm7GCScope15_newChunkAndPHVENS0_11HermesValueE(ptr noundef nonnull align 8 dereferenceable(212) %1286, i64 %or.i.i.i.i.i4802) #10 br label %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_7JSErrorEEENS0_6HandleIT_EEPS5_.exit -_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_7JSErrorEEENS0_6HandleIT_EEPS5_.exit: ; preds = %if.then.i.i.i.i.i.i4812, %if.end.i.i.i.i.i.i4809 - %retval.0.i.i.i.i.i.i4811 = phi ptr [ %1287, %if.then.i.i.i.i.i.i4812 ], [ %call7.i.i.i.i.i.i4810, %if.end.i.i.i.i.i.i4809 ] +_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_7JSErrorEEENS0_6HandleIT_EEPS5_.exit: ; preds = %if.then.i.i.i.i.i.i4810, %if.end.i.i.i.i.i.i4807 + %retval.0.i.i.i.i.i.i4809 = phi ptr [ %1287, %if.then.i.i.i.i.i.i4810 ], [ %call7.i.i.i.i.i.i4808, %if.end.i.i.i.i.i.i4807 ] %1289 = load ptr, ptr %currentIP_.i.i, align 8 store i64 -1970324836974592, ptr %thrownValue_5647, align 8 - %call5668 = call noundef i32 @_ZN6hermes2vm7JSError16recordStackTraceENS0_6HandleIS1_EERNS0_7RuntimeEbPNS0_9CodeBlockEPKNS_4inst4InstE(ptr %retval.0.i.i.i.i.i.i4811, ptr noundef nonnull align 8 dereferenceable(9832) %runtime, i1 noundef zeroext false, ptr noundef %curCodeBlock.2, ptr noundef %1289) #10 + %call5668 = call noundef i32 @_ZN6hermes2vm7JSError16recordStackTraceENS0_6HandleIS1_EERNS0_7RuntimeEbPNS0_9CodeBlockEPKNS_4inst4InstE(ptr %retval.0.i.i.i.i.i.i4809, ptr noundef nonnull align 8 dereferenceable(9832) %runtime, i1 noundef zeroext false, ptr noundef %curCodeBlock.2, ptr noundef %1289) #10 %1290 = load ptr, ptr %currentIP_.i.i, align 8 - %retval.sroa.0.0.copyload.i4818 = load i64, ptr %retval.0.i.i.i.i.i.i4811, align 8 - store i64 %retval.sroa.0.0.copyload.i4818, ptr %thrownValue_5647, align 8 + %retval.sroa.0.0.copyload.i4816 = load i64, ptr %retval.0.i.i.i.i.i.i4809, align 8 + store i64 %retval.sroa.0.0.copyload.i4816, ptr %thrownValue_5647, align 8 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 store i64 -1688849860263936, ptr %inlineStorage_.i, align 8 - br i1 %tobool.i4801.not, label %if.end5676.split.us, label %while.cond5677.preheader + br i1 %tobool.i4799.not, label %if.end5676.split.us, label %while.cond5677.preheader -if.end5676.thread: ; preds = %cond.true.i4796, %exception +if.end5676.thread: ; preds = %cond.true.i4794, %exception store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i, align 8 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 @@ -10067,36 +10063,36 @@ if.end5676: ; preds = %if.then5651 store ptr %chunks_.i, ptr %curChunkEnd_.i, align 8 store i32 0, ptr %curChunkIndex_.i, align 8 store i64 -1688849860263936, ptr %inlineStorage_.i, align 8 - br i1 %tobool.i4801.not, label %if.end5676.split.us, label %while.cond5677.preheader + br i1 %tobool.i4799.not, label %if.end5676.split.us, label %while.cond5677.preheader while.cond5677.preheader: ; preds = %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_7JSErrorEEENS0_6HandleIT_EEPS5_.exit, %if.end5676.thread, %if.end5676 %ip.24.ph = phi ptr [ %ip.22, %if.end5676 ], [ %ip.22, %if.end5676.thread ], [ %1290, %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_7JSErrorEEENS0_6HandleIT_EEPS5_.exit ] br label %while.cond5677 if.end5676.split.us: ; preds = %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_7JSErrorEEENS0_6HandleIT_EEPS5_.exit, %if.end5676 - %ip.235362 = phi ptr [ %1290, %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_7JSErrorEEENS0_6HandleIT_EEPS5_.exit ], [ %ip.22, %if.end5676 ] - %1291 = ptrtoint ptr %ip.235362 to i64 + %ip.235360 = phi ptr [ %1290, %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_7JSErrorEEENS0_6HandleIT_EEPS5_.exit ], [ %ip.22, %if.end5676 ] + %1291 = ptrtoint ptr %ip.235360 to i64 br label %while.cond5677.us while.cond5677.us: ; preds = %while.cond5677.us, %if.end5676.split.us %frameRegs.2.us = phi ptr [ %frameRegs.1, %if.end5676.split.us ], [ %arrayidx.i5852.us, %while.cond5677.us ] %ip.24.us = phi i64 [ %1291, %if.end5676.split.us ], [ %1295, %while.cond5677.us ] %curCodeBlock.3.us = phi ptr [ %curCodeBlock.2, %if.end5676.split.us ], [ %1294, %while.cond5677.us ] - %bytecode_.i4826.us = getelementptr inbounds i8, ptr %curCodeBlock.3.us, i64 16 - %1292 = load ptr, ptr %bytecode_.i4826.us, align 8 + %bytecode_.i4824.us = getelementptr inbounds i8, ptr %curCodeBlock.3.us, i64 16 + %1292 = load ptr, ptr %bytecode_.i4824.us, align 8 %sub.ptr.rhs.cast.us = ptrtoint ptr %1292 to i64 %sub.ptr.sub.us = sub i64 %ip.24.us, %sub.ptr.rhs.cast.us %conv5679.us = trunc i64 %sub.ptr.sub.us to i32 %call5680.us = call noundef i32 @_ZN6hermes2vm9CodeBlock21findCatchTargetOffsetEj(ptr noundef nonnull align 8 dereferenceable(40) %curCodeBlock.3.us, i32 noundef %conv5679.us) #10 %add.ptr5688.us = getelementptr inbounds i8, ptr %frameRegs.2.us, i64 -8 - %arrayidx.i.i4827.us = getelementptr inbounds i8, ptr %frameRegs.2.us, i64 -32 - %1293 = load i64, ptr %arrayidx.i.i4827.us, align 8 + %arrayidx.i.i4825.us = getelementptr inbounds i8, ptr %frameRegs.2.us, i64 -32 + %1293 = load i64, ptr %arrayidx.i.i4825.us, align 8 %1294 = inttoptr i64 %1293 to ptr - %arrayidx.i.i4828.us = getelementptr inbounds i8, ptr %frameRegs.2.us, i64 -24 - %1295 = load i64, ptr %arrayidx.i.i4828.us, align 8 + %arrayidx.i.i4826.us = getelementptr inbounds i8, ptr %frameRegs.2.us, i64 -24 + %1295 = load i64, ptr %arrayidx.i.i4826.us, align 8 store ptr %add.ptr5688.us, ptr %stackPointer_.i, align 8 - %arrayidx.i.i.i.i4830.us = getelementptr inbounds i8, ptr %frameRegs.2.us, i64 -16 - %1296 = load i64, ptr %arrayidx.i.i.i.i4830.us, align 8 + %arrayidx.i.i.i.i4828.us = getelementptr inbounds i8, ptr %frameRegs.2.us, i64 -16 + %1296 = load i64, ptr %arrayidx.i.i.i.i4828.us, align 8 %1297 = inttoptr i64 %1296 to ptr store ptr %1297, ptr %currentFrame_.i, align 8 %arrayidx.i5852.us = getelementptr inbounds i8, ptr %1297, i64 8 @@ -10107,8 +10103,8 @@ while.cond5677: ; preds = %while.cond5677.preh %frameRegs.2 = phi ptr [ %arrayidx.i5852, %while.body5686 ], [ %frameRegs.1, %while.cond5677.preheader ] %ip.24 = phi ptr [ %1302, %while.body5686 ], [ %ip.24.ph, %while.cond5677.preheader ] %curCodeBlock.3 = phi ptr [ %1300, %while.body5686 ], [ %curCodeBlock.2, %while.cond5677.preheader ] - %bytecode_.i4826 = getelementptr inbounds i8, ptr %curCodeBlock.3, i64 16 - %1298 = load ptr, ptr %bytecode_.i4826, align 8 + %bytecode_.i4824 = getelementptr inbounds i8, ptr %curCodeBlock.3, i64 16 + %1298 = load ptr, ptr %bytecode_.i4824, align 8 %sub.ptr.lhs.cast = ptrtoint ptr %ip.24 to i64 %sub.ptr.rhs.cast = ptrtoint ptr %1298 to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast @@ -10119,15 +10115,15 @@ while.cond5677: ; preds = %while.cond5677.preh while.body5686: ; preds = %while.cond5677 %add.ptr5688 = getelementptr inbounds i8, ptr %frameRegs.2, i64 -8 - %arrayidx.i.i4827 = getelementptr inbounds i8, ptr %frameRegs.2, i64 -32 - %1299 = load i64, ptr %arrayidx.i.i4827, align 8 + %arrayidx.i.i4825 = getelementptr inbounds i8, ptr %frameRegs.2, i64 -32 + %1299 = load i64, ptr %arrayidx.i.i4825, align 8 %1300 = inttoptr i64 %1299 to ptr - %arrayidx.i.i4828 = getelementptr inbounds i8, ptr %frameRegs.2, i64 -24 - %1301 = load i64, ptr %arrayidx.i.i4828, align 8 + %arrayidx.i.i4826 = getelementptr inbounds i8, ptr %frameRegs.2, i64 -24 + %1301 = load i64, ptr %arrayidx.i.i4826, align 8 %1302 = inttoptr i64 %1301 to ptr store ptr %add.ptr5688, ptr %stackPointer_.i, align 8 - %arrayidx.i.i.i.i4830 = getelementptr inbounds i8, ptr %frameRegs.2, i64 -16 - %1303 = load i64, ptr %arrayidx.i.i.i.i4830, align 8 + %arrayidx.i.i.i.i4828 = getelementptr inbounds i8, ptr %frameRegs.2, i64 -16 + %1303 = load i64, ptr %arrayidx.i.i.i.i4828, align 8 %1304 = inttoptr i64 %1303 to ptr store ptr %1304, ptr %currentFrame_.i, align 8 %arrayidx.i5852 = getelementptr inbounds i8, ptr %1304, i64 8 @@ -10135,17 +10131,17 @@ while.body5686: ; preds = %while.cond5677 br i1 %tobool5703.not, label %cleanup, label %while.cond5677, !llvm.loop !74 do.body5710: ; preds = %while.cond5677 - %bytecode_.i4826.le = getelementptr inbounds i8, ptr %curCodeBlock.3, i64 16 - %functionHeader_.i4832 = getelementptr inbounds i8, ptr %curCodeBlock.3, i64 8 - %1305 = load ptr, ptr %functionHeader_.i4832, align 8 + %bytecode_.i4824.le = getelementptr inbounds i8, ptr %curCodeBlock.3, i64 16 + %functionHeader_.i4830 = getelementptr inbounds i8, ptr %curCodeBlock.3, i64 8 + %1305 = load ptr, ptr %functionHeader_.i4830, align 8 %1306 = ptrtoint ptr %1305 to i64 - %and.i.i.i4833 = and i64 %1306, 1 - %tobool.i.not.i.i4834 = icmp eq i64 %and.i.i.i4833, 0 - %retval.sroa.0.0.in.v.i.i4835 = select i1 %tobool.i.not.i.i4834, i64 15, i64 29 - %retval.sroa.0.0.in.i.i4836 = getelementptr inbounds i8, ptr %1305, i64 %retval.sroa.0.0.in.v.i.i4835 - %retval.sroa.0.0.i.i4837 = load i8, ptr %retval.sroa.0.0.in.i.i4836, align 1 + %and.i.i.i4831 = and i64 %1306, 1 + %tobool.i.not.i.i4832 = icmp eq i64 %and.i.i.i4831, 0 + %retval.sroa.0.0.in.v.i.i4833 = select i1 %tobool.i.not.i.i4832, i64 15, i64 29 + %retval.sroa.0.0.in.i.i4834 = getelementptr inbounds i8, ptr %1305, i64 %retval.sroa.0.0.in.v.i.i4833 + %retval.sroa.0.0.i.i4835 = load i8, ptr %retval.sroa.0.0.in.i.i4834, align 1 %conv5723 = sext i32 %call5680 to i64 - %1307 = load ptr, ptr %bytecode_.i4826.le, align 8 + %1307 = load ptr, ptr %bytecode_.i4824.le, align 8 %sub.ptr.rhs.cast5726 = ptrtoint ptr %1307 to i64 %sub.ptr.sub5727.neg = sub i64 %conv5723, %sub.ptr.lhs.cast %sub5728 = add i64 %sub.ptr.sub5727.neg, %sub.ptr.rhs.cast5726 diff --git a/bench/hermes/optimized/dtoa.c.ll b/bench/hermes/optimized/dtoa.c.ll index 4ac47079773..79258a8f8f3 100644 --- a/bench/hermes/optimized/dtoa.c.ll +++ b/bench/hermes/optimized/dtoa.c.ll @@ -3039,8 +3039,8 @@ cond.end: ; preds = %cond.false, %cond.t %cond = phi i32 [ %or35, %cond.true ], [ %shl38, %cond.false ] %conv = uitofp i32 %cond to double %27 = bitcast double %conv to i64 - %28 = and i64 %27, -4294967296 - %d2.sroa.0.4.insert.shift79 = add i64 %28, -139611588448485376 + %28 = and i64 %27, 9223372032559808512 + %d2.sroa.0.4.insert.shift79 = add nsw i64 %28, -139611588448485376 %d2.sroa.0.4.insert.mask80 = and i64 %27, 4294967295 %d2.sroa.0.4.insert.insert81 = or disjoint i64 %d2.sroa.0.4.insert.shift79, %d2.sroa.0.4.insert.mask80 %sub41 = add nsw i32 %add, -1 @@ -6361,8 +6361,8 @@ cond.end: ; preds = %cond.false, %cond.t %cond = phi i32 [ %or35, %cond.true ], [ %shl38, %cond.false ] %conv = uitofp i32 %cond to double %27 = bitcast double %conv to i64 - %28 = and i64 %27, -4294967296 - %d2.sroa.0.4.insert.shift76 = add i64 %28, -139611588448485376 + %28 = and i64 %27, 9223372032559808512 + %d2.sroa.0.4.insert.shift76 = add nsw i64 %28, -139611588448485376 %d2.sroa.0.4.insert.mask77 = and i64 %27, 4294967295 %d2.sroa.0.4.insert.insert78 = or disjoint i64 %d2.sroa.0.4.insert.shift76, %d2.sroa.0.4.insert.mask77 %sub41 = add nsw i32 %add, -1 diff --git a/bench/icu/optimized/putil.ll b/bench/icu/optimized/putil.ll index a3f0772a35a..7d388af57c0 100644 --- a/bench/icu/optimized/putil.ll +++ b/bench/icu/optimized/putil.ll @@ -722,7 +722,7 @@ define noundef signext i8 @uprv_isNaN_75(double noundef %number) local_unnamed_a entry: %0 = tail call double @llvm.fabs.f64(double %number) %and = bitcast double %0 to i64 - %cmp = icmp sgt i64 %and, 9218868437227405312 + %cmp = icmp ugt i64 %and, 9218868437227405312 %conv = zext i1 %cmp to i8 ret i8 %conv } @@ -845,13 +845,13 @@ define noundef double @uprv_fmax_75(double noundef %x, double noundef %y) local_ entry: %0 = tail call double @llvm.fabs.f64(double %x) %and.i = bitcast double %0 to i64 - %cmp.i = icmp slt i64 %and.i, 9218868437227405313 + %cmp.i = icmp ult i64 %and.i, 9218868437227405313 br i1 %cmp.i, label %lor.lhs.false, label %return lor.lhs.false: ; preds = %entry %1 = tail call double @llvm.fabs.f64(double %y) %and.i9 = bitcast double %1 to i64 - %cmp.i10 = icmp slt i64 %and.i9, 9218868437227405313 + %cmp.i10 = icmp ult i64 %and.i9, 9218868437227405313 br i1 %cmp.i10, label %if.end, label %return if.end: ; preds = %lor.lhs.false @@ -878,13 +878,13 @@ define noundef double @uprv_fmin_75(double noundef %x, double noundef %y) local_ entry: %0 = tail call double @llvm.fabs.f64(double %x) %and.i = bitcast double %0 to i64 - %cmp.i = icmp slt i64 %and.i, 9218868437227405313 + %cmp.i = icmp ult i64 %and.i, 9218868437227405313 br i1 %cmp.i, label %lor.lhs.false, label %return lor.lhs.false: ; preds = %entry %1 = tail call double @llvm.fabs.f64(double %y) %and.i9 = bitcast double %1 to i64 - %cmp.i10 = icmp slt i64 %and.i9, 9218868437227405313 + %cmp.i10 = icmp ult i64 %and.i9, 9218868437227405313 br i1 %cmp.i10, label %if.end, label %return if.end: ; preds = %lor.lhs.false @@ -936,7 +936,7 @@ define noundef double @uprv_trunc_75(double noundef %d) local_unnamed_addr #8 { entry: %0 = tail call double @llvm.fabs.f64(double %d) %and.i = bitcast double %0 to i64 - %cmp.i = icmp slt i64 %and.i, 9218868437227405313 + %cmp.i = icmp ult i64 %and.i, 9218868437227405313 br i1 %cmp.i, label %if.end, label %return if.end: ; preds = %entry diff --git a/bench/jq/optimized/jv_dtoa.ll b/bench/jq/optimized/jv_dtoa.ll index 0fae6b1e4e6..2721696d094 100644 --- a/bench/jq/optimized/jv_dtoa.ll +++ b/bench/jq/optimized/jv_dtoa.ll @@ -3726,8 +3726,8 @@ rv_alloc.exit.i608: ; preds = %57, %55 %95 = phi i32 [ %88, %82 ], [ %92, %89 ] %96 = uitofp i32 %95 to double %97 = bitcast double %96 to i64 - %98 = and i64 %97, -4294967296 - %.sroa.085.4.insert.shift100 = add i64 %98, -139611588448485376 + %98 = and i64 %97, 9223372032559808512 + %.sroa.085.4.insert.shift100 = add nsw i64 %98, -139611588448485376 %.sroa.085.4.insert.mask101 = and i64 %97, 4294967295 %.sroa.085.4.insert.insert102 = or disjoint i64 %.sroa.085.4.insert.shift100, %.sroa.085.4.insert.mask101 %99 = add nsw i32 %80, -1 diff --git a/bench/libquic/optimized/dtoa.cc.ll b/bench/libquic/optimized/dtoa.cc.ll index c4c70ae07e4..2627971ab94 100644 --- a/bench/libquic/optimized/dtoa.cc.ll +++ b/bench/libquic/optimized/dtoa.cc.ll @@ -3911,8 +3911,8 @@ cond.end: ; preds = %cond.false, %cond.t %cond = phi i32 [ %or38, %cond.true ], [ %shl41, %cond.false ] %conv = uitofp i32 %cond to double %27 = bitcast double %conv to i64 - %28 = and i64 %27, -4294967296 - %d2.sroa.0.4.insert.shift74 = add i64 %28, -139611588448485376 + %28 = and i64 %27, 9223372032559808512 + %d2.sroa.0.4.insert.shift74 = add nsw i64 %28, -139611588448485376 %d2.sroa.0.4.insert.mask75 = and i64 %27, 4294967295 %d2.sroa.0.4.insert.insert76 = or disjoint i64 %d2.sroa.0.4.insert.shift74, %d2.sroa.0.4.insert.mask75 %sub44 = add nsw i32 %add, -1 diff --git a/bench/meshlab/optimized/matching.cpp.ll b/bench/meshlab/optimized/matching.cpp.ll index f0e4e14e7df..d657292d551 100644 --- a/bench/meshlab/optimized/matching.cpp.ll +++ b/bench/meshlab/optimized/matching.cpp.ll @@ -6063,7 +6063,7 @@ define linkonce_odr void @_ZNK5Eigen11EigenSolverINS_6MatrixIdLi2ELi2ELi0ELi2ELi %.sroa.0.8.vec.insert.i = insertelement <2 x double> %34, double 0.000000e+00, i64 1 %35 = bitcast <2 x double> %.sroa.0.8.vec.insert.i to <2 x i64> %36 = load <4 x i32>, ptr %23, align 16 - %37 = xor <2 x i64> %35, + %37 = or disjoint <2 x i64> %35, %38 = bitcast <2 x i64> %37 to <2 x double> %39 = bitcast <4 x i32> %36 to <2 x double> %40 = shufflevector <2 x double> %39, <2 x double> poison, <2 x i32> zeroinitializer @@ -6128,7 +6128,7 @@ define linkonce_odr void @_ZNK5Eigen11EigenSolverINS_6MatrixIdLi2ELi2ELi0ELi2ELi %.sroa.0.8.vec.insert.i28 = insertelement <2 x double> %83, double 0.000000e+00, i64 1 %84 = bitcast <2 x double> %.sroa.0.8.vec.insert.i28 to <2 x i64> %85 = load <4 x i32>, ptr %20, align 16 - %86 = xor <2 x i64> %84, + %86 = or disjoint <2 x i64> %84, %87 = bitcast <2 x i64> %86 to <2 x double> %88 = bitcast <4 x i32> %85 to <2 x double> %89 = shufflevector <2 x double> %88, <2 x double> poison, <2 x i32> zeroinitializer @@ -6188,7 +6188,7 @@ _ZN5Eigen10MatrixBaseINS_5BlockINS_6MatrixISt7complexIdELi2ELi2ELi0ELi2ELi2EEELi %.sroa.0.8.vec.insert.i31 = insertelement <2 x double> %134, double 0.000000e+00, i64 1 %135 = bitcast <2 x double> %.sroa.0.8.vec.insert.i31 to <2 x i64> %136 = load <4 x i32>, ptr %21, align 16 - %137 = xor <2 x i64> %135, + %137 = or disjoint <2 x i64> %135, %138 = bitcast <2 x i64> %137 to <2 x double> %139 = bitcast <4 x i32> %136 to <2 x double> %140 = shufflevector <2 x double> %139, <2 x double> poison, <2 x i32> zeroinitializer diff --git a/bench/meshoptimizer/optimized/quantization.cpp.ll b/bench/meshoptimizer/optimized/quantization.cpp.ll index 77a72039d7a..275f37b33ff 100644 --- a/bench/meshoptimizer/optimized/quantization.cpp.ll +++ b/bench/meshoptimizer/optimized/quantization.cpp.ll @@ -3,7 +3,7 @@ source_filename = "bench/meshoptimizer/original/quantization.cpp.ll" target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none) uwtable +; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable define dso_local noundef zeroext i16 @_Z20meshopt_quantizeHalff(float noundef %v) local_unnamed_addr #0 { entry: %0 = bitcast float %v to i32 @@ -13,11 +13,11 @@ entry: %and1 = bitcast float %1 to i32 %add = add nsw i32 %and1, -939520000 %shr2 = lshr i32 %add, 13 - %cmp = icmp slt i32 %and1, 947912704 + %cmp = icmp ult i32 %and1, 947912704 %cond = select i1 %cmp, i32 947912704, i32 %shr2 - %cmp3 = icmp sgt i32 %and1, 1199570943 + %cmp3 = icmp ugt i32 %and1, 1199570943 %cond7 = select i1 %cmp3, i32 31744, i32 %cond - %cmp8 = icmp sgt i32 %and1, 2139095040 + %cmp8 = icmp ugt i32 %and1, 2139095040 %cond12 = select i1 %cmp8, i32 32256, i32 %cond7 %or = or i32 %cond12, %and %conv = trunc i32 %or to i16 @@ -25,7 +25,7 @@ entry: } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable -define dso_local noundef float @_Z21meshopt_quantizeFloatfi(float noundef %v, i32 noundef %N) local_unnamed_addr #1 { +define dso_local noundef float @_Z21meshopt_quantizeFloatfi(float noundef %v, i32 noundef %N) local_unnamed_addr #0 { entry: %0 = bitcast float %v to i32 %sub = sub nsw i32 23, %N @@ -44,7 +44,7 @@ entry: } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable -define dso_local noundef float @_Z22meshopt_dequantizeHalft(i16 noundef zeroext %h) local_unnamed_addr #1 { +define dso_local noundef float @_Z22meshopt_dequantizeHalft(i16 noundef zeroext %h) local_unnamed_addr #0 { entry: %h.signext = sext i16 %h to i32 %shl = and i32 %h.signext, -2147483648 @@ -63,11 +63,10 @@ entry: } ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare float @llvm.fabs.f32(float) #2 +declare float @llvm.fabs.f32(float) #1 -attributes #0 = { mustprogress nofree nosync nounwind willreturn memory(none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #1 = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #2 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #0 = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } !llvm.module.flags = !{!0, !1, !2, !3, !4} diff --git a/bench/oiio/optimized/color_ocio.cpp.ll b/bench/oiio/optimized/color_ocio.cpp.ll index 4fe6ea600ef..40563881221 100644 --- a/bench/oiio/optimized/color_ocio.cpp.ll +++ b/bench/oiio/optimized/color_ocio.cpp.ll @@ -56681,7 +56681,7 @@ invoke.cont127: ; preds = %for.cond121.prehead br i1 %cmp.i.i.i, label %if.then.i.i.i, label %if.else.i.i.i if.then.i.i.i: ; preds = %invoke.cont127 - %shr.i.i.i = lshr i32 %97, 16 + %shr.i.i.i = lshr exact i32 %97, 16 %conv.i.i.i = trunc i32 %shr.i.i.i to i16 br label %for.inc131 @@ -56898,12 +56898,7 @@ invoke.cont166: ; preds = %invoke.cont166.preh %conv164 = fadd float %mul161, 5.000000e-01 %153 = bitcast float %conv164 to i32 %cmp.i.i.i153 = fcmp oeq float %conv164, 0.000000e+00 - br i1 %cmp.i.i.i153, label %if.then.i.i.i169, label %if.else.i.i.i154 - -if.then.i.i.i169: ; preds = %invoke.cont166 - %shr.i.i.i170 = lshr i32 %153, 16 - %conv.i.i.i171 = trunc i32 %shr.i.i.i170 to i16 - br label %for.inc171 + br i1 %cmp.i.i.i153, label %for.inc171, label %if.else.i.i.i154 if.else.i.i.i154: ; preds = %invoke.cont166 %shr2.i.i.i155 = lshr i32 %153, 23 @@ -56928,8 +56923,8 @@ if.else13.i.i.i168: ; preds = %if.else.i.i.i154 %call.i.i.i173 = invoke noundef signext i16 @_ZN4half7convertEi(i32 noundef %153) to label %for.inc171 unwind label %lpad33.loopexit -for.inc171: ; preds = %if.then4.i.i.i159, %if.then.i.i.i169, %if.else13.i.i.i168 - %conv11.sink.i.i.i167 = phi i16 [ %conv11.i.i.i166, %if.then4.i.i.i159 ], [ %conv.i.i.i171, %if.then.i.i.i169 ], [ %call.i.i.i173, %if.else13.i.i.i168 ] +for.inc171: ; preds = %invoke.cont166, %if.then4.i.i.i159, %if.else13.i.i.i168 + %conv11.sink.i.i.i167 = phi i16 [ %conv11.i.i.i166, %if.then4.i.i.i159 ], [ %call.i.i.i173, %if.else13.i.i.i168 ], [ 0, %invoke.cont166 ] store i16 %conv11.sink.i.i.i167, ptr %arrayidx.i.i152, align 2 %indvars.iv.next463 = add nsw i64 %indvars.iv462, 1 %156 = load i32, ptr %chend, align 4 @@ -69418,7 +69413,7 @@ invoke.cont127: ; preds = %for.cond121.prehead br i1 %cmp.i.i.i, label %if.then.i.i.i, label %if.else.i.i.i if.then.i.i.i: ; preds = %invoke.cont127 - %shr.i.i.i = lshr i32 %95, 16 + %shr.i.i.i = lshr exact i32 %95, 16 %conv.i.i.i = trunc i32 %shr.i.i.i to i16 br label %for.inc131 @@ -69632,12 +69627,7 @@ invoke.cont166: ; preds = %invoke.cont166.preh %conv164 = fadd float %mul161, 5.000000e-01 %150 = bitcast float %conv164 to i32 %cmp.i.i.i151 = fcmp oeq float %conv164, 0.000000e+00 - br i1 %cmp.i.i.i151, label %if.then.i.i.i167, label %if.else.i.i.i152 - -if.then.i.i.i167: ; preds = %invoke.cont166 - %shr.i.i.i168 = lshr i32 %150, 16 - %conv.i.i.i169 = trunc i32 %shr.i.i.i168 to i16 - br label %for.inc171 + br i1 %cmp.i.i.i151, label %for.inc171, label %if.else.i.i.i152 if.else.i.i.i152: ; preds = %invoke.cont166 %shr2.i.i.i153 = lshr i32 %150, 23 @@ -69662,8 +69652,8 @@ if.else13.i.i.i166: ; preds = %if.else.i.i.i152 %call.i.i.i171 = invoke noundef signext i16 @_ZN4half7convertEi(i32 noundef %150) to label %for.inc171 unwind label %lpad33.loopexit -for.inc171: ; preds = %if.then4.i.i.i157, %if.then.i.i.i167, %if.else13.i.i.i166 - %conv11.sink.i.i.i165 = phi i16 [ %conv11.i.i.i164, %if.then4.i.i.i157 ], [ %conv.i.i.i169, %if.then.i.i.i167 ], [ %call.i.i.i171, %if.else13.i.i.i166 ] +for.inc171: ; preds = %invoke.cont166, %if.then4.i.i.i157, %if.else13.i.i.i166 + %conv11.sink.i.i.i165 = phi i16 [ %conv11.i.i.i164, %if.then4.i.i.i157 ], [ %call.i.i.i171, %if.else13.i.i.i166 ], [ 0, %invoke.cont166 ] store i16 %conv11.sink.i.i.i165, ptr %arrayidx.i.i150, align 2 %indvars.iv.next457 = add nsw i64 %indvars.iv456, 1 %153 = load i32, ptr %chend, align 4 @@ -70535,7 +70525,7 @@ invoke.cont127: ; preds = %for.cond121.prehead br i1 %cmp.i.i.i, label %if.then.i.i.i, label %if.else.i.i.i if.then.i.i.i: ; preds = %invoke.cont127 - %shr.i.i.i = lshr i32 %96, 16 + %shr.i.i.i = lshr exact i32 %96, 16 %conv.i.i.i = trunc i32 %shr.i.i.i to i16 br label %for.inc131 @@ -70751,12 +70741,7 @@ invoke.cont166: ; preds = %invoke.cont166.preh %conv164 = fadd float %mul161, 5.000000e-01 %151 = bitcast float %conv164 to i32 %cmp.i.i.i153 = fcmp oeq float %conv164, 0.000000e+00 - br i1 %cmp.i.i.i153, label %if.then.i.i.i169, label %if.else.i.i.i154 - -if.then.i.i.i169: ; preds = %invoke.cont166 - %shr.i.i.i170 = lshr i32 %151, 16 - %conv.i.i.i171 = trunc i32 %shr.i.i.i170 to i16 - br label %for.inc171 + br i1 %cmp.i.i.i153, label %for.inc171, label %if.else.i.i.i154 if.else.i.i.i154: ; preds = %invoke.cont166 %shr2.i.i.i155 = lshr i32 %151, 23 @@ -70781,8 +70766,8 @@ if.else13.i.i.i168: ; preds = %if.else.i.i.i154 %call.i.i.i173 = invoke noundef signext i16 @_ZN4half7convertEi(i32 noundef %151) to label %for.inc171 unwind label %lpad33.loopexit -for.inc171: ; preds = %if.then4.i.i.i159, %if.then.i.i.i169, %if.else13.i.i.i168 - %conv11.sink.i.i.i167 = phi i16 [ %conv11.i.i.i166, %if.then4.i.i.i159 ], [ %conv.i.i.i171, %if.then.i.i.i169 ], [ %call.i.i.i173, %if.else13.i.i.i168 ] +for.inc171: ; preds = %invoke.cont166, %if.then4.i.i.i159, %if.else13.i.i.i168 + %conv11.sink.i.i.i167 = phi i16 [ %conv11.i.i.i166, %if.then4.i.i.i159 ], [ %call.i.i.i173, %if.else13.i.i.i168 ], [ 0, %invoke.cont166 ] store i16 %conv11.sink.i.i.i167, ptr %arrayidx.i.i152, align 2 %indvars.iv.next463 = add nsw i64 %indvars.iv462, 1 %154 = load i32, ptr %chend, align 4 @@ -71654,7 +71639,7 @@ invoke.cont127: ; preds = %for.cond121.prehead br i1 %cmp.i.i.i, label %if.then.i.i.i, label %if.else.i.i.i if.then.i.i.i: ; preds = %invoke.cont127 - %shr.i.i.i = lshr i32 %96, 16 + %shr.i.i.i = lshr exact i32 %96, 16 %conv.i.i.i = trunc i32 %shr.i.i.i to i16 br label %for.inc131 @@ -71870,12 +71855,7 @@ invoke.cont166: ; preds = %invoke.cont166.preh %conv164 = fadd float %mul161, 5.000000e-01 %151 = bitcast float %conv164 to i32 %cmp.i.i.i153 = fcmp oeq float %conv164, 0.000000e+00 - br i1 %cmp.i.i.i153, label %if.then.i.i.i169, label %if.else.i.i.i154 - -if.then.i.i.i169: ; preds = %invoke.cont166 - %shr.i.i.i170 = lshr i32 %151, 16 - %conv.i.i.i171 = trunc i32 %shr.i.i.i170 to i16 - br label %for.inc171 + br i1 %cmp.i.i.i153, label %for.inc171, label %if.else.i.i.i154 if.else.i.i.i154: ; preds = %invoke.cont166 %shr2.i.i.i155 = lshr i32 %151, 23 @@ -71900,8 +71880,8 @@ if.else13.i.i.i168: ; preds = %if.else.i.i.i154 %call.i.i.i173 = invoke noundef signext i16 @_ZN4half7convertEi(i32 noundef %151) to label %for.inc171 unwind label %lpad33.loopexit -for.inc171: ; preds = %if.then4.i.i.i159, %if.then.i.i.i169, %if.else13.i.i.i168 - %conv11.sink.i.i.i167 = phi i16 [ %conv11.i.i.i166, %if.then4.i.i.i159 ], [ %conv.i.i.i171, %if.then.i.i.i169 ], [ %call.i.i.i173, %if.else13.i.i.i168 ] +for.inc171: ; preds = %invoke.cont166, %if.then4.i.i.i159, %if.else13.i.i.i168 + %conv11.sink.i.i.i167 = phi i16 [ %conv11.i.i.i166, %if.then4.i.i.i159 ], [ %call.i.i.i173, %if.else13.i.i.i168 ], [ 0, %invoke.cont166 ] store i16 %conv11.sink.i.i.i167, ptr %arrayidx.i.i152, align 2 %indvars.iv.next463 = add nsw i64 %indvars.iv462, 1 %154 = load i32, ptr %chend, align 4 diff --git a/bench/oiio/optimized/imagebufalgo_pixelmath.cpp.ll b/bench/oiio/optimized/imagebufalgo_pixelmath.cpp.ll index 6ccc80dfedc..3d7787f40da 100644 --- a/bench/oiio/optimized/imagebufalgo_pixelmath.cpp.ll +++ b/bench/oiio/optimized/imagebufalgo_pixelmath.cpp.ll @@ -112971,7 +112971,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %23, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %23, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -117555,7 +117555,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %21, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %21, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -119978,7 +119978,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %21, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %21, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -122406,7 +122406,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %22, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %22, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -124832,7 +124832,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %21, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %21, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -127257,7 +127257,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %21, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %21, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -129086,7 +129086,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %21, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %21, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -131518,7 +131518,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %22, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %22, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -133948,7 +133948,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %21, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %21, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -136374,7 +136374,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %22, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %22, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -138809,7 +138809,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %22, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %22, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -143049,7 +143049,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %22, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %22, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -145477,7 +145477,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %21, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %21, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -147904,7 +147904,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %21, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %21, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -150336,7 +150336,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %22, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %22, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -152772,7 +152772,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %27, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %27, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -154688,7 +154688,7 @@ invoke.cont10.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont10.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %22, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %22, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -159966,7 +159966,7 @@ invoke.cont10.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont10.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %21, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %21, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -160440,7 +160440,7 @@ invoke.cont10.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont10.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %21, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %21, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -160914,7 +160914,7 @@ invoke.cont10.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont10.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %21, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %21, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -164526,7 +164526,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %23, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %23, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -168760,7 +168760,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %21, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %21, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -171183,7 +171183,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %21, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %21, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -173611,7 +173611,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %22, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %22, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -176037,7 +176037,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %21, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %21, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -178462,7 +178462,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %21, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %21, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -180291,7 +180291,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %21, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %21, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -182723,7 +182723,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %22, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %22, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -185153,7 +185153,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %21, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %21, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -187579,7 +187579,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %22, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %22, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -190014,7 +190014,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %22, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %22, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -194254,7 +194254,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %22, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %22, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -196682,7 +196682,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %21, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %21, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -199109,7 +199109,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %21, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %21, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -201541,7 +201541,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %22, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %22, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -203977,7 +203977,7 @@ invoke.cont14.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont14.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %27, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %27, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -205893,7 +205893,7 @@ invoke.cont10.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont10.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %22, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %22, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -211171,7 +211171,7 @@ invoke.cont10.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont10.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %21, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %21, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -211645,7 +211645,7 @@ invoke.cont10.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont10.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %21, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %21, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -212119,7 +212119,7 @@ invoke.cont10.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont10.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %21, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %21, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -215756,7 +215756,7 @@ invoke.cont11.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont11.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %31, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %31, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -216113,7 +216113,7 @@ invoke.cont45.i.i.i: ; preds = %_ZNK18OpenImageIO_v br i1 %cmp.i.i.i97.i.i.i, label %if.then.i.i.i113.i.i.i, label %if.else.i.i.i98.i.i.i if.then.i.i.i113.i.i.i: ; preds = %invoke.cont45.i.i.i - %shr.i.i.i114.i.i.i = lshr i32 %114, 16 + %shr.i.i.i114.i.i.i = lshr exact i32 %114, 16 %conv.i.i.i115.i.i.i = trunc i32 %shr.i.i.i114.i.i.i to i16 br label %for.inc50.i.i.i @@ -223084,7 +223084,7 @@ invoke.cont11.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont11.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %30, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %30, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -223441,7 +223441,7 @@ invoke.cont45.i.i.i: ; preds = %_ZNK18OpenImageIO_v br i1 %cmp.i.i.i97.i.i.i, label %if.then.i.i.i113.i.i.i, label %if.else.i.i.i98.i.i.i if.then.i.i.i113.i.i.i: ; preds = %invoke.cont45.i.i.i - %shr.i.i.i114.i.i.i = lshr i32 %113, 16 + %shr.i.i.i114.i.i.i = lshr exact i32 %113, 16 %conv.i.i.i115.i.i.i = trunc i32 %shr.i.i.i114.i.i.i to i16 br label %for.inc50.i.i.i @@ -223758,7 +223758,7 @@ invoke.cont11.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont11.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %30, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %30, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -224115,7 +224115,7 @@ invoke.cont45.i.i.i: ; preds = %_ZNK18OpenImageIO_v br i1 %cmp.i.i.i97.i.i.i, label %if.then.i.i.i113.i.i.i, label %if.else.i.i.i98.i.i.i if.then.i.i.i113.i.i.i: ; preds = %invoke.cont45.i.i.i - %shr.i.i.i114.i.i.i = lshr i32 %113, 16 + %shr.i.i.i114.i.i.i = lshr exact i32 %113, 16 %conv.i.i.i115.i.i.i = trunc i32 %shr.i.i.i114.i.i.i to i16 br label %for.inc50.i.i.i @@ -224432,7 +224432,7 @@ invoke.cont11.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont11.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %30, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %30, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -224789,7 +224789,7 @@ invoke.cont45.i.i.i: ; preds = %_ZNK18OpenImageIO_v br i1 %cmp.i.i.i97.i.i.i, label %if.then.i.i.i113.i.i.i, label %if.else.i.i.i98.i.i.i if.then.i.i.i113.i.i.i: ; preds = %invoke.cont45.i.i.i - %shr.i.i.i114.i.i.i = lshr i32 %113, 16 + %shr.i.i.i114.i.i.i = lshr exact i32 %113, 16 %conv.i.i.i115.i.i.i = trunc i32 %shr.i.i.i114.i.i.i to i16 br label %for.inc50.i.i.i @@ -228721,12 +228721,7 @@ invoke.cont12.i.i.i: ; preds = %for.inc.i.i.i, %inv %arrayidx.i.i15.i.i.i = getelementptr inbounds %class.half, ptr %23, i64 %indvars.iv.i.i.i %24 = bitcast float %22 to i32 %cmp.i.i.i.i.i.i = fcmp oeq float %sub.i.i.i, 0.000000e+00 - br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i - -if.then.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %24, 16 - %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 - br label %for.inc.i.i.i + br i1 %cmp.i.i.i.i.i.i, label %for.inc.i.i.i, label %if.else.i.i.i.i.i.i if.else.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i %shr2.i.i.i.i.i.i = lshr i32 %24, 23 @@ -228751,8 +228746,8 @@ if.else13.i.i.i.i.i.i: ; preds = %if.else.i.i.i.i.i.i %call.i.i.i16.i.i.i = invoke noundef signext i16 @_ZN4half7convertEi(i32 noundef %24) to label %for.inc.i.i.i unwind label %lpad6.loopexit.i.i.i -for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %if.then.i.i.i.i.i.i - %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %conv.i.i.i.i.i.i, %if.then.i.i.i.i.i.i ], [ %call.i.i.i16.i.i.i, %if.else13.i.i.i.i.i.i ] +for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %invoke.cont12.i.i.i + %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %call.i.i.i16.i.i.i, %if.else13.i.i.i.i.i.i ], [ 0, %invoke.cont12.i.i.i ] store i16 %conv11.sink.i.i.i.i.i.i, ptr %arrayidx.i.i15.i.i.i, align 2 %indvars.iv.next.i.i.i = add nsw i64 %indvars.iv.i.i.i, 1 %27 = load i32, ptr %chend.i.i.i, align 4 @@ -232959,12 +232954,7 @@ invoke.cont12.i.i.i: ; preds = %for.inc.i.i.i, %inv %arrayidx.i.i13.i.i.i = getelementptr inbounds %class.half, ptr %21, i64 %indvars.iv.i.i.i %22 = bitcast float %20 to i32 %cmp.i.i.i.i.i.i = fcmp oeq float %sub.i.i.i, 0.000000e+00 - br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i - -if.then.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %22, 16 - %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 - br label %for.inc.i.i.i + br i1 %cmp.i.i.i.i.i.i, label %for.inc.i.i.i, label %if.else.i.i.i.i.i.i if.else.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i %shr2.i.i.i.i.i.i = lshr i32 %22, 23 @@ -232989,8 +232979,8 @@ if.else13.i.i.i.i.i.i: ; preds = %if.else.i.i.i.i.i.i %call.i.i.i14.i.i.i = invoke noundef signext i16 @_ZN4half7convertEi(i32 noundef %22) to label %for.inc.i.i.i unwind label %lpad6.loopexit.i.i.i -for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %if.then.i.i.i.i.i.i - %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %conv.i.i.i.i.i.i, %if.then.i.i.i.i.i.i ], [ %call.i.i.i14.i.i.i, %if.else13.i.i.i.i.i.i ] +for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %invoke.cont12.i.i.i + %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %call.i.i.i14.i.i.i, %if.else13.i.i.i.i.i.i ], [ 0, %invoke.cont12.i.i.i ] store i16 %conv11.sink.i.i.i.i.i.i, ptr %arrayidx.i.i13.i.i.i, align 2 %indvars.iv.next.i.i.i = add nsw i64 %indvars.iv.i.i.i, 1 %25 = load i32, ptr %chend.i.i.i, align 4 @@ -235382,12 +235372,7 @@ invoke.cont12.i.i.i: ; preds = %for.inc.i.i.i, %inv %arrayidx.i.i12.i.i.i = getelementptr inbounds %class.half, ptr %21, i64 %indvars.iv.i.i.i %22 = bitcast float %20 to i32 %cmp.i.i.i.i.i.i = fcmp oeq float %sub.i.i.i, 0.000000e+00 - br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i - -if.then.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %22, 16 - %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 - br label %for.inc.i.i.i + br i1 %cmp.i.i.i.i.i.i, label %for.inc.i.i.i, label %if.else.i.i.i.i.i.i if.else.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i %shr2.i.i.i.i.i.i = lshr i32 %22, 23 @@ -235412,8 +235397,8 @@ if.else13.i.i.i.i.i.i: ; preds = %if.else.i.i.i.i.i.i %call.i.i.i13.i.i.i = invoke noundef signext i16 @_ZN4half7convertEi(i32 noundef %22) to label %for.inc.i.i.i unwind label %lpad6.loopexit.i.i.i -for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %if.then.i.i.i.i.i.i - %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %conv.i.i.i.i.i.i, %if.then.i.i.i.i.i.i ], [ %call.i.i.i13.i.i.i, %if.else13.i.i.i.i.i.i ] +for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %invoke.cont12.i.i.i + %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %call.i.i.i13.i.i.i, %if.else13.i.i.i.i.i.i ], [ 0, %invoke.cont12.i.i.i ] store i16 %conv11.sink.i.i.i.i.i.i, ptr %arrayidx.i.i12.i.i.i, align 2 %indvars.iv.next.i.i.i = add nsw i64 %indvars.iv.i.i.i, 1 %25 = load i32, ptr %chend.i.i.i, align 4 @@ -237810,12 +237795,7 @@ invoke.cont12.i.i.i: ; preds = %for.inc.i.i.i, %inv %arrayidx.i.i12.i.i.i = getelementptr inbounds %class.half, ptr %22, i64 %indvars.iv.i.i.i %23 = bitcast float %21 to i32 %cmp.i.i.i.i.i.i = fcmp oeq float %sub.i.i.i, 0.000000e+00 - br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i - -if.then.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %23, 16 - %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 - br label %for.inc.i.i.i + br i1 %cmp.i.i.i.i.i.i, label %for.inc.i.i.i, label %if.else.i.i.i.i.i.i if.else.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i %shr2.i.i.i.i.i.i = lshr i32 %23, 23 @@ -237840,8 +237820,8 @@ if.else13.i.i.i.i.i.i: ; preds = %if.else.i.i.i.i.i.i %call.i.i.i13.i.i.i = invoke noundef signext i16 @_ZN4half7convertEi(i32 noundef %23) to label %for.inc.i.i.i unwind label %lpad6.loopexit.i.i.i -for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %if.then.i.i.i.i.i.i - %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %conv.i.i.i.i.i.i, %if.then.i.i.i.i.i.i ], [ %call.i.i.i13.i.i.i, %if.else13.i.i.i.i.i.i ] +for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %invoke.cont12.i.i.i + %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %call.i.i.i13.i.i.i, %if.else13.i.i.i.i.i.i ], [ 0, %invoke.cont12.i.i.i ] store i16 %conv11.sink.i.i.i.i.i.i, ptr %arrayidx.i.i12.i.i.i, align 2 %indvars.iv.next.i.i.i = add nsw i64 %indvars.iv.i.i.i, 1 %26 = load i32, ptr %chend.i.i.i, align 4 @@ -240236,12 +240216,7 @@ invoke.cont12.i.i.i: ; preds = %for.inc.i.i.i, %inv %arrayidx.i.i12.i.i.i = getelementptr inbounds %class.half, ptr %21, i64 %indvars.iv.i.i.i %22 = bitcast float %20 to i32 %cmp.i.i.i.i.i.i = fcmp oeq float %sub.i.i.i, 0.000000e+00 - br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i - -if.then.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %22, 16 - %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 - br label %for.inc.i.i.i + br i1 %cmp.i.i.i.i.i.i, label %for.inc.i.i.i, label %if.else.i.i.i.i.i.i if.else.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i %shr2.i.i.i.i.i.i = lshr i32 %22, 23 @@ -240266,8 +240241,8 @@ if.else13.i.i.i.i.i.i: ; preds = %if.else.i.i.i.i.i.i %call.i.i.i13.i.i.i = invoke noundef signext i16 @_ZN4half7convertEi(i32 noundef %22) to label %for.inc.i.i.i unwind label %lpad6.loopexit.i.i.i -for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %if.then.i.i.i.i.i.i - %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %conv.i.i.i.i.i.i, %if.then.i.i.i.i.i.i ], [ %call.i.i.i13.i.i.i, %if.else13.i.i.i.i.i.i ] +for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %invoke.cont12.i.i.i + %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %call.i.i.i13.i.i.i, %if.else13.i.i.i.i.i.i ], [ 0, %invoke.cont12.i.i.i ] store i16 %conv11.sink.i.i.i.i.i.i, ptr %arrayidx.i.i12.i.i.i, align 2 %indvars.iv.next.i.i.i = add nsw i64 %indvars.iv.i.i.i, 1 %25 = load i32, ptr %chend.i.i.i, align 4 @@ -242661,12 +242636,7 @@ invoke.cont12.i.i.i: ; preds = %for.inc.i.i.i, %inv %arrayidx.i.i12.i.i.i = getelementptr inbounds %class.half, ptr %21, i64 %indvars.iv.i.i.i %22 = bitcast float %20 to i32 %cmp.i.i.i.i.i.i = fcmp oeq float %sub.i.i.i, 0.000000e+00 - br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i - -if.then.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %22, 16 - %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 - br label %for.inc.i.i.i + br i1 %cmp.i.i.i.i.i.i, label %for.inc.i.i.i, label %if.else.i.i.i.i.i.i if.else.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i %shr2.i.i.i.i.i.i = lshr i32 %22, 23 @@ -242691,8 +242661,8 @@ if.else13.i.i.i.i.i.i: ; preds = %if.else.i.i.i.i.i.i %call.i.i.i13.i.i.i = invoke noundef signext i16 @_ZN4half7convertEi(i32 noundef %22) to label %for.inc.i.i.i unwind label %lpad6.loopexit.i.i.i -for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %if.then.i.i.i.i.i.i - %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %conv.i.i.i.i.i.i, %if.then.i.i.i.i.i.i ], [ %call.i.i.i13.i.i.i, %if.else13.i.i.i.i.i.i ] +for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %invoke.cont12.i.i.i + %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %call.i.i.i13.i.i.i, %if.else13.i.i.i.i.i.i ], [ 0, %invoke.cont12.i.i.i ] store i16 %conv11.sink.i.i.i.i.i.i, ptr %arrayidx.i.i12.i.i.i, align 2 %indvars.iv.next.i.i.i = add nsw i64 %indvars.iv.i.i.i, 1 %25 = load i32, ptr %chend.i.i.i, align 4 @@ -244490,12 +244460,7 @@ invoke.cont12.i.i.i: ; preds = %for.inc.i.i.i, %inv %arrayidx.i.i15.i.i.i = getelementptr inbounds %class.half, ptr %21, i64 %indvars.iv.i.i.i %22 = bitcast float %20 to i32 %cmp.i.i.i.i.i.i = fcmp oeq float %sub.i.i.i, 0.000000e+00 - br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i - -if.then.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %22, 16 - %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 - br label %for.inc.i.i.i + br i1 %cmp.i.i.i.i.i.i, label %for.inc.i.i.i, label %if.else.i.i.i.i.i.i if.else.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i %shr2.i.i.i.i.i.i = lshr i32 %22, 23 @@ -244520,8 +244485,8 @@ if.else13.i.i.i.i.i.i: ; preds = %if.else.i.i.i.i.i.i %call.i.i.i16.i.i.i = invoke noundef signext i16 @_ZN4half7convertEi(i32 noundef %22) to label %for.inc.i.i.i unwind label %lpad6.loopexit.i.i.i -for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %if.then.i.i.i.i.i.i - %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %conv.i.i.i.i.i.i, %if.then.i.i.i.i.i.i ], [ %call.i.i.i16.i.i.i, %if.else13.i.i.i.i.i.i ] +for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %invoke.cont12.i.i.i + %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %call.i.i.i16.i.i.i, %if.else13.i.i.i.i.i.i ], [ 0, %invoke.cont12.i.i.i ] store i16 %conv11.sink.i.i.i.i.i.i, ptr %arrayidx.i.i15.i.i.i, align 2 %indvars.iv.next.i.i.i = add nsw i64 %indvars.iv.i.i.i, 1 %25 = load i32, ptr %chend.i.i.i, align 4 @@ -246926,12 +246891,7 @@ invoke.cont12.i.i.i: ; preds = %for.inc.i.i.i, %inv %arrayidx.i.i12.i.i.i = getelementptr inbounds %class.half, ptr %22, i64 %indvars.iv.i.i.i %23 = bitcast float %21 to i32 %cmp.i.i.i.i.i.i = fcmp oeq float %sub.i.i.i, 0.000000e+00 - br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i - -if.then.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %23, 16 - %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 - br label %for.inc.i.i.i + br i1 %cmp.i.i.i.i.i.i, label %for.inc.i.i.i, label %if.else.i.i.i.i.i.i if.else.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i %shr2.i.i.i.i.i.i = lshr i32 %23, 23 @@ -246956,8 +246916,8 @@ if.else13.i.i.i.i.i.i: ; preds = %if.else.i.i.i.i.i.i %call.i.i.i13.i.i.i = invoke noundef signext i16 @_ZN4half7convertEi(i32 noundef %23) to label %for.inc.i.i.i unwind label %lpad6.loopexit.i.i.i -for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %if.then.i.i.i.i.i.i - %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %conv.i.i.i.i.i.i, %if.then.i.i.i.i.i.i ], [ %call.i.i.i13.i.i.i, %if.else13.i.i.i.i.i.i ] +for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %invoke.cont12.i.i.i + %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %call.i.i.i13.i.i.i, %if.else13.i.i.i.i.i.i ], [ 0, %invoke.cont12.i.i.i ] store i16 %conv11.sink.i.i.i.i.i.i, ptr %arrayidx.i.i12.i.i.i, align 2 %indvars.iv.next.i.i.i = add nsw i64 %indvars.iv.i.i.i, 1 %26 = load i32, ptr %chend.i.i.i, align 4 @@ -249360,12 +249320,7 @@ invoke.cont12.i.i.i: ; preds = %for.inc.i.i.i, %inv %arrayidx.i.i14.i.i.i = getelementptr inbounds %class.half, ptr %21, i64 %indvars.iv.i.i.i %22 = bitcast float %20 to i32 %cmp.i.i.i.i.i.i = fcmp oeq float %sub.i.i.i, 0.000000e+00 - br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i - -if.then.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %22, 16 - %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 - br label %for.inc.i.i.i + br i1 %cmp.i.i.i.i.i.i, label %for.inc.i.i.i, label %if.else.i.i.i.i.i.i if.else.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i %shr2.i.i.i.i.i.i = lshr i32 %22, 23 @@ -249390,8 +249345,8 @@ if.else13.i.i.i.i.i.i: ; preds = %if.else.i.i.i.i.i.i %call.i.i.i15.i.i.i = invoke noundef signext i16 @_ZN4half7convertEi(i32 noundef %22) to label %for.inc.i.i.i unwind label %lpad6.loopexit.i.i.i -for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %if.then.i.i.i.i.i.i - %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %conv.i.i.i.i.i.i, %if.then.i.i.i.i.i.i ], [ %call.i.i.i15.i.i.i, %if.else13.i.i.i.i.i.i ] +for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %invoke.cont12.i.i.i + %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %call.i.i.i15.i.i.i, %if.else13.i.i.i.i.i.i ], [ 0, %invoke.cont12.i.i.i ] store i16 %conv11.sink.i.i.i.i.i.i, ptr %arrayidx.i.i14.i.i.i, align 2 %indvars.iv.next.i.i.i = add nsw i64 %indvars.iv.i.i.i, 1 %25 = load i32, ptr %chend.i.i.i, align 4 @@ -251790,12 +251745,7 @@ invoke.cont12.i.i.i: ; preds = %for.inc.i.i.i, %inv %arrayidx.i.i12.i.i.i = getelementptr inbounds %class.half, ptr %22, i64 %indvars.iv.i.i.i %23 = bitcast float %21 to i32 %cmp.i.i.i.i.i.i = fcmp oeq float %sub.i.i.i, 0.000000e+00 - br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i - -if.then.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %23, 16 - %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 - br label %for.inc.i.i.i + br i1 %cmp.i.i.i.i.i.i, label %for.inc.i.i.i, label %if.else.i.i.i.i.i.i if.else.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i %shr2.i.i.i.i.i.i = lshr i32 %23, 23 @@ -251820,8 +251770,8 @@ if.else13.i.i.i.i.i.i: ; preds = %if.else.i.i.i.i.i.i %call.i.i.i13.i.i.i = invoke noundef signext i16 @_ZN4half7convertEi(i32 noundef %23) to label %for.inc.i.i.i unwind label %lpad6.loopexit.i.i.i -for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %if.then.i.i.i.i.i.i - %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %conv.i.i.i.i.i.i, %if.then.i.i.i.i.i.i ], [ %call.i.i.i13.i.i.i, %if.else13.i.i.i.i.i.i ] +for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %invoke.cont12.i.i.i + %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %call.i.i.i13.i.i.i, %if.else13.i.i.i.i.i.i ], [ 0, %invoke.cont12.i.i.i ] store i16 %conv11.sink.i.i.i.i.i.i, ptr %arrayidx.i.i12.i.i.i, align 2 %indvars.iv.next.i.i.i = add nsw i64 %indvars.iv.i.i.i, 1 %26 = load i32, ptr %chend.i.i.i, align 4 @@ -254225,12 +254175,7 @@ invoke.cont12.i.i.i: ; preds = %for.inc.i.i.i, %inv %arrayidx.i.i12.i.i.i = getelementptr inbounds %class.half, ptr %22, i64 %indvars.iv.i.i.i %23 = bitcast float %21 to i32 %cmp.i.i.i.i.i.i = fcmp oeq float %sub.i.i.i, 0.000000e+00 - br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i - -if.then.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %23, 16 - %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 - br label %for.inc.i.i.i + br i1 %cmp.i.i.i.i.i.i, label %for.inc.i.i.i, label %if.else.i.i.i.i.i.i if.else.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i %shr2.i.i.i.i.i.i = lshr i32 %23, 23 @@ -254255,8 +254200,8 @@ if.else13.i.i.i.i.i.i: ; preds = %if.else.i.i.i.i.i.i %call.i.i.i13.i.i.i = invoke noundef signext i16 @_ZN4half7convertEi(i32 noundef %23) to label %for.inc.i.i.i unwind label %lpad6.loopexit.i.i.i -for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %if.then.i.i.i.i.i.i - %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %conv.i.i.i.i.i.i, %if.then.i.i.i.i.i.i ], [ %call.i.i.i13.i.i.i, %if.else13.i.i.i.i.i.i ] +for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %invoke.cont12.i.i.i + %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %call.i.i.i13.i.i.i, %if.else13.i.i.i.i.i.i ], [ 0, %invoke.cont12.i.i.i ] store i16 %conv11.sink.i.i.i.i.i.i, ptr %arrayidx.i.i12.i.i.i, align 2 %indvars.iv.next.i.i.i = add nsw i64 %indvars.iv.i.i.i, 1 %26 = load i32, ptr %chend.i.i.i, align 4 @@ -258465,12 +258410,7 @@ invoke.cont12.i.i.i: ; preds = %for.inc.i.i.i, %inv %arrayidx.i.i12.i.i.i = getelementptr inbounds %class.half, ptr %22, i64 %indvars.iv.i.i.i %23 = bitcast float %21 to i32 %cmp.i.i.i.i.i.i = fcmp oeq float %sub.i.i.i, 0.000000e+00 - br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i - -if.then.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %23, 16 - %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 - br label %for.inc.i.i.i + br i1 %cmp.i.i.i.i.i.i, label %for.inc.i.i.i, label %if.else.i.i.i.i.i.i if.else.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i %shr2.i.i.i.i.i.i = lshr i32 %23, 23 @@ -258495,8 +258435,8 @@ if.else13.i.i.i.i.i.i: ; preds = %if.else.i.i.i.i.i.i %call.i.i.i13.i.i.i = invoke noundef signext i16 @_ZN4half7convertEi(i32 noundef %23) to label %for.inc.i.i.i unwind label %lpad6.loopexit.i.i.i -for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %if.then.i.i.i.i.i.i - %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %conv.i.i.i.i.i.i, %if.then.i.i.i.i.i.i ], [ %call.i.i.i13.i.i.i, %if.else13.i.i.i.i.i.i ] +for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %invoke.cont12.i.i.i + %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %call.i.i.i13.i.i.i, %if.else13.i.i.i.i.i.i ], [ 0, %invoke.cont12.i.i.i ] store i16 %conv11.sink.i.i.i.i.i.i, ptr %arrayidx.i.i12.i.i.i, align 2 %indvars.iv.next.i.i.i = add nsw i64 %indvars.iv.i.i.i, 1 %26 = load i32, ptr %chend.i.i.i, align 4 @@ -260893,12 +260833,7 @@ invoke.cont12.i.i.i: ; preds = %for.inc.i.i.i, %inv %arrayidx.i.i12.i.i.i = getelementptr inbounds %class.half, ptr %21, i64 %indvars.iv.i.i.i %22 = bitcast float %20 to i32 %cmp.i.i.i.i.i.i = fcmp oeq float %sub.i.i.i, 0.000000e+00 - br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i - -if.then.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %22, 16 - %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 - br label %for.inc.i.i.i + br i1 %cmp.i.i.i.i.i.i, label %for.inc.i.i.i, label %if.else.i.i.i.i.i.i if.else.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i %shr2.i.i.i.i.i.i = lshr i32 %22, 23 @@ -260923,8 +260858,8 @@ if.else13.i.i.i.i.i.i: ; preds = %if.else.i.i.i.i.i.i %call.i.i.i13.i.i.i = invoke noundef signext i16 @_ZN4half7convertEi(i32 noundef %22) to label %for.inc.i.i.i unwind label %lpad6.loopexit.i.i.i -for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %if.then.i.i.i.i.i.i - %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %conv.i.i.i.i.i.i, %if.then.i.i.i.i.i.i ], [ %call.i.i.i13.i.i.i, %if.else13.i.i.i.i.i.i ] +for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %invoke.cont12.i.i.i + %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %call.i.i.i13.i.i.i, %if.else13.i.i.i.i.i.i ], [ 0, %invoke.cont12.i.i.i ] store i16 %conv11.sink.i.i.i.i.i.i, ptr %arrayidx.i.i12.i.i.i, align 2 %indvars.iv.next.i.i.i = add nsw i64 %indvars.iv.i.i.i, 1 %25 = load i32, ptr %chend.i.i.i, align 4 @@ -263324,12 +263259,7 @@ invoke.cont12.i.i.i: ; preds = %for.inc.i.i.i, %inv %arrayidx.i.i14.i.i.i = getelementptr inbounds %class.half, ptr %21, i64 %indvars.iv.i.i.i %22 = bitcast float %20 to i32 %cmp.i.i.i.i.i.i = fcmp oeq float %sub.i.i.i, 0.000000e+00 - br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i - -if.then.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %22, 16 - %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 - br label %for.inc.i.i.i + br i1 %cmp.i.i.i.i.i.i, label %for.inc.i.i.i, label %if.else.i.i.i.i.i.i if.else.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i %shr2.i.i.i.i.i.i = lshr i32 %22, 23 @@ -263354,8 +263284,8 @@ if.else13.i.i.i.i.i.i: ; preds = %if.else.i.i.i.i.i.i %call.i.i.i15.i.i.i = invoke noundef signext i16 @_ZN4half7convertEi(i32 noundef %22) to label %for.inc.i.i.i unwind label %lpad6.loopexit.i.i.i -for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %if.then.i.i.i.i.i.i - %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %conv.i.i.i.i.i.i, %if.then.i.i.i.i.i.i ], [ %call.i.i.i15.i.i.i, %if.else13.i.i.i.i.i.i ] +for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %invoke.cont12.i.i.i + %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %call.i.i.i15.i.i.i, %if.else13.i.i.i.i.i.i ], [ 0, %invoke.cont12.i.i.i ] store i16 %conv11.sink.i.i.i.i.i.i, ptr %arrayidx.i.i14.i.i.i, align 2 %indvars.iv.next.i.i.i = add nsw i64 %indvars.iv.i.i.i, 1 %25 = load i32, ptr %chend.i.i.i, align 4 @@ -265760,12 +265690,7 @@ invoke.cont12.i.i.i: ; preds = %for.inc.i.i.i, %inv %arrayidx.i.i12.i.i.i = getelementptr inbounds %class.half, ptr %22, i64 %indvars.iv.i.i.i %23 = bitcast float %21 to i32 %cmp.i.i.i.i.i.i = fcmp oeq float %sub.i.i.i, 0.000000e+00 - br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i - -if.then.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %23, 16 - %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 - br label %for.inc.i.i.i + br i1 %cmp.i.i.i.i.i.i, label %for.inc.i.i.i, label %if.else.i.i.i.i.i.i if.else.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i %shr2.i.i.i.i.i.i = lshr i32 %23, 23 @@ -265790,8 +265715,8 @@ if.else13.i.i.i.i.i.i: ; preds = %if.else.i.i.i.i.i.i %call.i.i.i13.i.i.i = invoke noundef signext i16 @_ZN4half7convertEi(i32 noundef %23) to label %for.inc.i.i.i unwind label %lpad6.loopexit.i.i.i -for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %if.then.i.i.i.i.i.i - %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %conv.i.i.i.i.i.i, %if.then.i.i.i.i.i.i ], [ %call.i.i.i13.i.i.i, %if.else13.i.i.i.i.i.i ] +for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %invoke.cont12.i.i.i + %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %call.i.i.i13.i.i.i, %if.else13.i.i.i.i.i.i ], [ 0, %invoke.cont12.i.i.i ] store i16 %conv11.sink.i.i.i.i.i.i, ptr %arrayidx.i.i12.i.i.i, align 2 %indvars.iv.next.i.i.i = add nsw i64 %indvars.iv.i.i.i, 1 %26 = load i32, ptr %chend.i.i.i, align 4 @@ -268200,12 +268125,7 @@ invoke.cont12.i.i.i: ; preds = %for.inc.i.i.i, %inv %arrayidx.i.i15.i.i.i = getelementptr inbounds %class.half, ptr %26, i64 %indvars.iv.i.i.i %27 = bitcast float %25 to i32 %cmp.i.i.i.i.i.i = fcmp oeq float %sub.i.i.i, 0.000000e+00 - br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i - -if.then.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %27, 16 - %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 - br label %for.inc.i.i.i + br i1 %cmp.i.i.i.i.i.i, label %for.inc.i.i.i, label %if.else.i.i.i.i.i.i if.else.i.i.i.i.i.i: ; preds = %invoke.cont12.i.i.i %shr2.i.i.i.i.i.i = lshr i32 %27, 23 @@ -268230,8 +268150,8 @@ if.else13.i.i.i.i.i.i: ; preds = %if.else.i.i.i.i.i.i %call.i.i.i16.i.i.i = invoke noundef signext i16 @_ZN4half7convertEi(i32 noundef %27) to label %for.inc.i.i.i unwind label %lpad6.loopexit.i.i.i -for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %if.then.i.i.i.i.i.i - %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %conv.i.i.i.i.i.i, %if.then.i.i.i.i.i.i ], [ %call.i.i.i16.i.i.i, %if.else13.i.i.i.i.i.i ] +for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %invoke.cont12.i.i.i + %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %call.i.i.i16.i.i.i, %if.else13.i.i.i.i.i.i ], [ 0, %invoke.cont12.i.i.i ] store i16 %conv11.sink.i.i.i.i.i.i, ptr %arrayidx.i.i15.i.i.i, align 2 %indvars.iv.next.i.i.i = add nsw i64 %indvars.iv.i.i.i, 1 %30 = load i32, ptr %chend.i.i.i, align 4 @@ -270116,12 +270036,7 @@ invoke.cont9.i.i.i: ; preds = %for.inc.i.i.i, %inv %arrayidx.i.i8.i.i.i = getelementptr inbounds %class.half, ptr %22, i64 %indvars.iv.i.i.i %23 = bitcast float %21 to i32 %cmp.i.i.i.i.i.i = fcmp oeq float %sub.i.i.i, 0.000000e+00 - br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i - -if.then.i.i.i.i.i.i: ; preds = %invoke.cont9.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %23, 16 - %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 - br label %for.inc.i.i.i + br i1 %cmp.i.i.i.i.i.i, label %for.inc.i.i.i, label %if.else.i.i.i.i.i.i if.else.i.i.i.i.i.i: ; preds = %invoke.cont9.i.i.i %shr2.i.i.i.i.i.i = lshr i32 %23, 23 @@ -270146,8 +270061,8 @@ if.else13.i.i.i.i.i.i: ; preds = %if.else.i.i.i.i.i.i %call.i.i.i9.i.i.i = invoke noundef signext i16 @_ZN4half7convertEi(i32 noundef %23) to label %for.inc.i.i.i unwind label %lpad4.loopexit.i.i.i -for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %if.then.i.i.i.i.i.i - %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %conv.i.i.i.i.i.i, %if.then.i.i.i.i.i.i ], [ %call.i.i.i9.i.i.i, %if.else13.i.i.i.i.i.i ] +for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %invoke.cont9.i.i.i + %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %call.i.i.i9.i.i.i, %if.else13.i.i.i.i.i.i ], [ 0, %invoke.cont9.i.i.i ] store i16 %conv11.sink.i.i.i.i.i.i, ptr %arrayidx.i.i8.i.i.i, align 2 %indvars.iv.next.i.i.i = add nsw i64 %indvars.iv.i.i.i, 1 %26 = load i32, ptr %chend.i.i.i, align 4 @@ -275394,12 +275309,7 @@ invoke.cont9.i.i.i: ; preds = %for.inc.i.i.i, %inv %arrayidx.i.i8.i.i.i = getelementptr inbounds %class.half, ptr %21, i64 %indvars.iv.i.i.i %22 = bitcast float %20 to i32 %cmp.i.i.i.i.i.i = fcmp oeq float %sub.i.i.i, 0.000000e+00 - br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i - -if.then.i.i.i.i.i.i: ; preds = %invoke.cont9.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %22, 16 - %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 - br label %for.inc.i.i.i + br i1 %cmp.i.i.i.i.i.i, label %for.inc.i.i.i, label %if.else.i.i.i.i.i.i if.else.i.i.i.i.i.i: ; preds = %invoke.cont9.i.i.i %shr2.i.i.i.i.i.i = lshr i32 %22, 23 @@ -275424,8 +275334,8 @@ if.else13.i.i.i.i.i.i: ; preds = %if.else.i.i.i.i.i.i %call.i.i.i9.i.i.i = invoke noundef signext i16 @_ZN4half7convertEi(i32 noundef %22) to label %for.inc.i.i.i unwind label %lpad4.loopexit.i.i.i -for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %if.then.i.i.i.i.i.i - %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %conv.i.i.i.i.i.i, %if.then.i.i.i.i.i.i ], [ %call.i.i.i9.i.i.i, %if.else13.i.i.i.i.i.i ] +for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %invoke.cont9.i.i.i + %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %call.i.i.i9.i.i.i, %if.else13.i.i.i.i.i.i ], [ 0, %invoke.cont9.i.i.i ] store i16 %conv11.sink.i.i.i.i.i.i, ptr %arrayidx.i.i8.i.i.i, align 2 %indvars.iv.next.i.i.i = add nsw i64 %indvars.iv.i.i.i, 1 %25 = load i32, ptr %chend.i.i.i, align 4 @@ -275868,12 +275778,7 @@ invoke.cont9.i.i.i: ; preds = %for.inc.i.i.i, %inv %arrayidx.i.i8.i.i.i = getelementptr inbounds %class.half, ptr %21, i64 %indvars.iv.i.i.i %22 = bitcast float %20 to i32 %cmp.i.i.i.i.i.i = fcmp oeq float %sub.i.i.i, 0.000000e+00 - br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i - -if.then.i.i.i.i.i.i: ; preds = %invoke.cont9.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %22, 16 - %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 - br label %for.inc.i.i.i + br i1 %cmp.i.i.i.i.i.i, label %for.inc.i.i.i, label %if.else.i.i.i.i.i.i if.else.i.i.i.i.i.i: ; preds = %invoke.cont9.i.i.i %shr2.i.i.i.i.i.i = lshr i32 %22, 23 @@ -275898,8 +275803,8 @@ if.else13.i.i.i.i.i.i: ; preds = %if.else.i.i.i.i.i.i %call.i.i.i9.i.i.i = invoke noundef signext i16 @_ZN4half7convertEi(i32 noundef %22) to label %for.inc.i.i.i unwind label %lpad4.loopexit.i.i.i -for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %if.then.i.i.i.i.i.i - %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %conv.i.i.i.i.i.i, %if.then.i.i.i.i.i.i ], [ %call.i.i.i9.i.i.i, %if.else13.i.i.i.i.i.i ] +for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %invoke.cont9.i.i.i + %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %call.i.i.i9.i.i.i, %if.else13.i.i.i.i.i.i ], [ 0, %invoke.cont9.i.i.i ] store i16 %conv11.sink.i.i.i.i.i.i, ptr %arrayidx.i.i8.i.i.i, align 2 %indvars.iv.next.i.i.i = add nsw i64 %indvars.iv.i.i.i, 1 %25 = load i32, ptr %chend.i.i.i, align 4 @@ -276342,12 +276247,7 @@ invoke.cont9.i.i.i: ; preds = %for.inc.i.i.i, %inv %arrayidx.i.i8.i.i.i = getelementptr inbounds %class.half, ptr %21, i64 %indvars.iv.i.i.i %22 = bitcast float %20 to i32 %cmp.i.i.i.i.i.i = fcmp oeq float %sub.i.i.i, 0.000000e+00 - br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i - -if.then.i.i.i.i.i.i: ; preds = %invoke.cont9.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %22, 16 - %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 - br label %for.inc.i.i.i + br i1 %cmp.i.i.i.i.i.i, label %for.inc.i.i.i, label %if.else.i.i.i.i.i.i if.else.i.i.i.i.i.i: ; preds = %invoke.cont9.i.i.i %shr2.i.i.i.i.i.i = lshr i32 %22, 23 @@ -276372,8 +276272,8 @@ if.else13.i.i.i.i.i.i: ; preds = %if.else.i.i.i.i.i.i %call.i.i.i9.i.i.i = invoke noundef signext i16 @_ZN4half7convertEi(i32 noundef %22) to label %for.inc.i.i.i unwind label %lpad4.loopexit.i.i.i -for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %if.then.i.i.i.i.i.i - %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %conv.i.i.i.i.i.i, %if.then.i.i.i.i.i.i ], [ %call.i.i.i9.i.i.i, %if.else13.i.i.i.i.i.i ] +for.inc.i.i.i: ; preds = %if.else13.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i, %invoke.cont9.i.i.i + %conv11.sink.i.i.i.i.i.i = phi i16 [ %conv11.i.i.i.i.i.i, %if.then4.i.i.i.i.i.i ], [ %call.i.i.i9.i.i.i, %if.else13.i.i.i.i.i.i ], [ 0, %invoke.cont9.i.i.i ] store i16 %conv11.sink.i.i.i.i.i.i, ptr %arrayidx.i.i8.i.i.i, align 2 %indvars.iv.next.i.i.i = add nsw i64 %indvars.iv.i.i.i, 1 %25 = load i32, ptr %chend.i.i.i, align 4 @@ -279496,7 +279396,7 @@ invoke.cont11.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont11.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %30, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %30, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -284798,7 +284698,7 @@ invoke.cont11.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont11.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %29, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %29, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -285274,7 +285174,7 @@ invoke.cont11.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont11.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %29, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %29, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -285750,7 +285650,7 @@ invoke.cont11.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont11.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %29, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %29, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -288534,7 +288434,7 @@ invoke.cont13.i.i.i: ; preds = %cond.true.i.i.i, %i br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont13.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %39, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %39, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %invoke.cont18.i.i.i @@ -288574,7 +288474,7 @@ invoke.cont18.i.i.i: ; preds = %if.else13.i.i.i.i.i br i1 %cmp.i.i.i26.i.i.i, label %if.then.i.i.i42.i.i.i, label %if.else.i.i.i27.i.i.i if.then.i.i.i42.i.i.i: ; preds = %invoke.cont18.i.i.i - %shr.i.i.i43.i.i.i = lshr i32 %46, 16 + %shr.i.i.i43.i.i.i = lshr exact i32 %46, 16 %conv.i.i.i44.i.i.i = trunc i32 %shr.i.i.i43.i.i.i to i16 br label %invoke.cont24.i.i.i @@ -288614,7 +288514,7 @@ invoke.cont24.i.i.i: ; preds = %if.else13.i.i.i41.i br i1 %cmp.i.i.i50.i.i.i, label %if.then.i.i.i66.i.i.i, label %if.else.i.i.i51.i.i.i if.then.i.i.i66.i.i.i: ; preds = %invoke.cont24.i.i.i - %shr.i.i.i67.i.i.i = lshr i32 %53, 16 + %shr.i.i.i67.i.i.i = lshr exact i32 %53, 16 %conv.i.i.i68.i.i.i = trunc i32 %shr.i.i.i67.i.i.i to i16 br label %invoke.cont27.i.i.i @@ -288668,7 +288568,7 @@ invoke.cont35.i.i.i: ; preds = %invoke.cont29.i.i.i br i1 %cmp.i.i.i78.i.i.i, label %if.then.i.i.i94.i.i.i, label %if.else.i.i.i79.i.i.i if.then.i.i.i94.i.i.i: ; preds = %invoke.cont35.i.i.i - %shr.i.i.i95.i.i.i = lshr i32 %62, 16 + %shr.i.i.i95.i.i.i = lshr exact i32 %62, 16 %conv.i.i.i96.i.i.i = trunc i32 %shr.i.i.i95.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit99.i.i.i @@ -290923,7 +290823,7 @@ invoke.cont8.i.i.i: ; preds = %invoke.cont5.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont8.i.i.i, %invoke.cont8.thread.i.i.i %27 = phi i32 [ 0, %invoke.cont8.thread.i.i.i ], [ %26, %invoke.cont8.i.i.i ] %28 = phi ptr [ %14, %invoke.cont8.thread.i.i.i ], [ %25, %invoke.cont8.i.i.i ] - %shr.i.i.i.i.i.i = lshr i32 %27, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %27, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc12.i.i.i @@ -296186,7 +296086,7 @@ invoke.cont8.i.i.i: ; preds = %invoke.cont5.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont8.i.i.i, %invoke.cont8.thread.i.i.i %26 = phi i32 [ 0, %invoke.cont8.thread.i.i.i ], [ %25, %invoke.cont8.i.i.i ] %27 = phi ptr [ %14, %invoke.cont8.thread.i.i.i ], [ %24, %invoke.cont8.i.i.i ] - %shr.i.i.i.i.i.i = lshr i32 %26, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %26, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc12.i.i.i @@ -296656,7 +296556,7 @@ invoke.cont8.i.i.i: ; preds = %invoke.cont5.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont8.i.i.i, %invoke.cont8.thread.i.i.i %26 = phi i32 [ 0, %invoke.cont8.thread.i.i.i ], [ %25, %invoke.cont8.i.i.i ] %27 = phi ptr [ %14, %invoke.cont8.thread.i.i.i ], [ %24, %invoke.cont8.i.i.i ] - %shr.i.i.i.i.i.i = lshr i32 %26, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %26, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc12.i.i.i @@ -297126,7 +297026,7 @@ invoke.cont8.i.i.i: ; preds = %invoke.cont5.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont8.i.i.i, %invoke.cont8.thread.i.i.i %26 = phi i32 [ 0, %invoke.cont8.thread.i.i.i ], [ %25, %invoke.cont8.i.i.i ] %27 = phi ptr [ %14, %invoke.cont8.thread.i.i.i ], [ %24, %invoke.cont8.i.i.i ] - %shr.i.i.i.i.i.i = lshr i32 %26, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %26, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc12.i.i.i @@ -301141,7 +301041,7 @@ invoke.cont58.i.i.i: ; preds = %for.body45.i.i.i br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont58.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %47, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %47, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit.i.i.i @@ -301224,7 +301124,7 @@ invoke.cont82.i.i.i: ; preds = %if.end.i84.i.i.i, % br i1 %cmp.i.i.i89.i.i.i, label %if.then.i.i.i105.i.i.i, label %if.else.i.i.i90.i.i.i if.then.i.i.i105.i.i.i: ; preds = %invoke.cont82.i.i.i - %shr.i.i.i106.i.i.i = lshr i32 %66, 16 + %shr.i.i.i106.i.i.i = lshr exact i32 %66, 16 %conv.i.i.i107.i.i.i = trunc i32 %shr.i.i.i106.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit110.i.i.i @@ -301494,7 +301394,7 @@ invoke.cont142.i.i.i: ; preds = %for.body134.i.i.i br i1 %cmp.i.i.i170.i.i.i, label %if.then.i.i.i186.i.i.i, label %if.else.i.i.i171.i.i.i if.then.i.i.i186.i.i.i: ; preds = %invoke.cont142.i.i.i - %shr.i.i.i187.i.i.i = lshr i32 %125, 16 + %shr.i.i.i187.i.i.i = lshr exact i32 %125, 16 %conv.i.i.i188.i.i.i = trunc i32 %shr.i.i.i187.i.i.i to i16 br label %for.inc158.i.i.i @@ -301544,7 +301444,7 @@ invoke.cont152.i.i.i: ; preds = %for.body134.i.i.i br i1 %cmp.i.i.i200.i.i.i, label %if.then.i.i.i216.i.i.i, label %if.else.i.i.i201.i.i.i if.then.i.i.i216.i.i.i: ; preds = %invoke.cont152.i.i.i - %shr.i.i.i217.i.i.i = lshr i32 %128, 16 + %shr.i.i.i217.i.i.i = lshr exact i32 %128, 16 %conv.i.i.i218.i.i.i = trunc i32 %shr.i.i.i217.i.i.i to i16 br label %for.inc158.i.i.i @@ -301611,7 +301511,7 @@ invoke.cont175.i.i.i: ; preds = %for.body167.i.i.i br i1 %cmp.i.i.i230.i.i.i, label %if.then.i.i.i246.i.i.i, label %if.else.i.i.i231.i.i.i if.then.i.i.i246.i.i.i: ; preds = %invoke.cont175.i.i.i - %shr.i.i.i247.i.i.i = lshr i32 %143, 16 + %shr.i.i.i247.i.i.i = lshr exact i32 %143, 16 %conv.i.i.i248.i.i.i = trunc i32 %shr.i.i.i247.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit251.i.i.i @@ -301665,7 +301565,7 @@ invoke.cont185.i.i.i: ; preds = %if.end.i259.i.i.i, br i1 %cmp.i.i.i264.i.i.i, label %if.then.i.i.i280.i.i.i, label %if.else.i.i.i265.i.i.i if.then.i.i.i280.i.i.i: ; preds = %invoke.cont185.i.i.i - %shr.i.i.i281.i.i.i = lshr i32 %153, 16 + %shr.i.i.i281.i.i.i = lshr exact i32 %153, 16 %conv.i.i.i282.i.i.i = trunc i32 %shr.i.i.i281.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit285.i.i.i @@ -309916,7 +309816,7 @@ invoke.cont58.i.i.i: ; preds = %for.body45.i.i.i br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont58.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %47, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %47, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit.i.i.i @@ -309999,7 +309899,7 @@ invoke.cont82.i.i.i: ; preds = %if.end.i84.i.i.i, % br i1 %cmp.i.i.i89.i.i.i, label %if.then.i.i.i105.i.i.i, label %if.else.i.i.i90.i.i.i if.then.i.i.i105.i.i.i: ; preds = %invoke.cont82.i.i.i - %shr.i.i.i106.i.i.i = lshr i32 %66, 16 + %shr.i.i.i106.i.i.i = lshr exact i32 %66, 16 %conv.i.i.i107.i.i.i = trunc i32 %shr.i.i.i106.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit110.i.i.i @@ -310257,7 +310157,7 @@ invoke.cont142.i.i.i: ; preds = %for.body134.i.i.i br i1 %cmp.i.i.i164.i.i.i, label %if.then.i.i.i180.i.i.i, label %if.else.i.i.i165.i.i.i if.then.i.i.i180.i.i.i: ; preds = %invoke.cont142.i.i.i - %shr.i.i.i181.i.i.i = lshr i32 %121, 16 + %shr.i.i.i181.i.i.i = lshr exact i32 %121, 16 %conv.i.i.i182.i.i.i = trunc i32 %shr.i.i.i181.i.i.i to i16 br label %for.inc158.i.i.i @@ -310307,7 +310207,7 @@ invoke.cont152.i.i.i: ; preds = %for.body134.i.i.i br i1 %cmp.i.i.i192.i.i.i, label %if.then.i.i.i208.i.i.i, label %if.else.i.i.i193.i.i.i if.then.i.i.i208.i.i.i: ; preds = %invoke.cont152.i.i.i - %shr.i.i.i209.i.i.i = lshr i32 %124, 16 + %shr.i.i.i209.i.i.i = lshr exact i32 %124, 16 %conv.i.i.i210.i.i.i = trunc i32 %shr.i.i.i209.i.i.i to i16 br label %for.inc158.i.i.i @@ -310371,7 +310271,7 @@ invoke.cont175.i.i.i: ; preds = %for.body167.i.i.i br i1 %cmp.i.i.i220.i.i.i, label %if.then.i.i.i236.i.i.i, label %if.else.i.i.i221.i.i.i if.then.i.i.i236.i.i.i: ; preds = %invoke.cont175.i.i.i - %shr.i.i.i237.i.i.i = lshr i32 %138, 16 + %shr.i.i.i237.i.i.i = lshr exact i32 %138, 16 %conv.i.i.i238.i.i.i = trunc i32 %shr.i.i.i237.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit241.i.i.i @@ -310425,7 +310325,7 @@ invoke.cont185.i.i.i: ; preds = %if.end.i247.i.i.i, br i1 %cmp.i.i.i252.i.i.i, label %if.then.i.i.i268.i.i.i, label %if.else.i.i.i253.i.i.i if.then.i.i.i268.i.i.i: ; preds = %invoke.cont185.i.i.i - %shr.i.i.i269.i.i.i = lshr i32 %148, 16 + %shr.i.i.i269.i.i.i = lshr exact i32 %148, 16 %conv.i.i.i270.i.i.i = trunc i32 %shr.i.i.i269.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit273.i.i.i @@ -310839,7 +310739,7 @@ invoke.cont58.i.i.i: ; preds = %for.body45.i.i.i br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont58.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %47, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %47, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit.i.i.i @@ -310922,7 +310822,7 @@ invoke.cont82.i.i.i: ; preds = %if.end.i84.i.i.i, % br i1 %cmp.i.i.i89.i.i.i, label %if.then.i.i.i105.i.i.i, label %if.else.i.i.i90.i.i.i if.then.i.i.i105.i.i.i: ; preds = %invoke.cont82.i.i.i - %shr.i.i.i106.i.i.i = lshr i32 %66, 16 + %shr.i.i.i106.i.i.i = lshr exact i32 %66, 16 %conv.i.i.i107.i.i.i = trunc i32 %shr.i.i.i106.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit110.i.i.i @@ -311188,7 +311088,7 @@ invoke.cont142.i.i.i: ; preds = %for.body134.i.i.i br i1 %cmp.i.i.i170.i.i.i, label %if.then.i.i.i186.i.i.i, label %if.else.i.i.i171.i.i.i if.then.i.i.i186.i.i.i: ; preds = %invoke.cont142.i.i.i - %shr.i.i.i187.i.i.i = lshr i32 %121, 16 + %shr.i.i.i187.i.i.i = lshr exact i32 %121, 16 %conv.i.i.i188.i.i.i = trunc i32 %shr.i.i.i187.i.i.i to i16 br label %for.inc158.i.i.i @@ -311238,7 +311138,7 @@ invoke.cont152.i.i.i: ; preds = %for.body134.i.i.i br i1 %cmp.i.i.i200.i.i.i, label %if.then.i.i.i216.i.i.i, label %if.else.i.i.i201.i.i.i if.then.i.i.i216.i.i.i: ; preds = %invoke.cont152.i.i.i - %shr.i.i.i217.i.i.i = lshr i32 %124, 16 + %shr.i.i.i217.i.i.i = lshr exact i32 %124, 16 %conv.i.i.i218.i.i.i = trunc i32 %shr.i.i.i217.i.i.i to i16 br label %for.inc158.i.i.i @@ -311304,7 +311204,7 @@ invoke.cont175.i.i.i: ; preds = %for.body167.i.i.i br i1 %cmp.i.i.i230.i.i.i, label %if.then.i.i.i246.i.i.i, label %if.else.i.i.i231.i.i.i if.then.i.i.i246.i.i.i: ; preds = %invoke.cont175.i.i.i - %shr.i.i.i247.i.i.i = lshr i32 %138, 16 + %shr.i.i.i247.i.i.i = lshr exact i32 %138, 16 %conv.i.i.i248.i.i.i = trunc i32 %shr.i.i.i247.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit251.i.i.i @@ -311357,7 +311257,7 @@ invoke.cont185.i.i.i: ; preds = %if.end.i259.i.i.i, br i1 %cmp.i.i.i264.i.i.i, label %if.then.i.i.i280.i.i.i, label %if.else.i.i.i265.i.i.i if.then.i.i.i280.i.i.i: ; preds = %invoke.cont185.i.i.i - %shr.i.i.i281.i.i.i = lshr i32 %147, 16 + %shr.i.i.i281.i.i.i = lshr exact i32 %147, 16 %conv.i.i.i282.i.i.i = trunc i32 %shr.i.i.i281.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit285.i.i.i @@ -311771,7 +311671,7 @@ invoke.cont58.i.i.i: ; preds = %for.body45.i.i.i br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont58.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %47, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %47, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit.i.i.i @@ -311854,7 +311754,7 @@ invoke.cont82.i.i.i: ; preds = %if.end.i84.i.i.i, % br i1 %cmp.i.i.i89.i.i.i, label %if.then.i.i.i105.i.i.i, label %if.else.i.i.i90.i.i.i if.then.i.i.i105.i.i.i: ; preds = %invoke.cont82.i.i.i - %shr.i.i.i106.i.i.i = lshr i32 %66, 16 + %shr.i.i.i106.i.i.i = lshr exact i32 %66, 16 %conv.i.i.i107.i.i.i = trunc i32 %shr.i.i.i106.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit110.i.i.i @@ -312120,7 +312020,7 @@ invoke.cont142.i.i.i: ; preds = %for.body134.i.i.i br i1 %cmp.i.i.i170.i.i.i, label %if.then.i.i.i186.i.i.i, label %if.else.i.i.i171.i.i.i if.then.i.i.i186.i.i.i: ; preds = %invoke.cont142.i.i.i - %shr.i.i.i187.i.i.i = lshr i32 %121, 16 + %shr.i.i.i187.i.i.i = lshr exact i32 %121, 16 %conv.i.i.i188.i.i.i = trunc i32 %shr.i.i.i187.i.i.i to i16 br label %for.inc158.i.i.i @@ -312170,7 +312070,7 @@ invoke.cont152.i.i.i: ; preds = %for.body134.i.i.i br i1 %cmp.i.i.i200.i.i.i, label %if.then.i.i.i216.i.i.i, label %if.else.i.i.i201.i.i.i if.then.i.i.i216.i.i.i: ; preds = %invoke.cont152.i.i.i - %shr.i.i.i217.i.i.i = lshr i32 %124, 16 + %shr.i.i.i217.i.i.i = lshr exact i32 %124, 16 %conv.i.i.i218.i.i.i = trunc i32 %shr.i.i.i217.i.i.i to i16 br label %for.inc158.i.i.i @@ -312236,7 +312136,7 @@ invoke.cont175.i.i.i: ; preds = %for.body167.i.i.i br i1 %cmp.i.i.i230.i.i.i, label %if.then.i.i.i246.i.i.i, label %if.else.i.i.i231.i.i.i if.then.i.i.i246.i.i.i: ; preds = %invoke.cont175.i.i.i - %shr.i.i.i247.i.i.i = lshr i32 %138, 16 + %shr.i.i.i247.i.i.i = lshr exact i32 %138, 16 %conv.i.i.i248.i.i.i = trunc i32 %shr.i.i.i247.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit251.i.i.i @@ -312289,7 +312189,7 @@ invoke.cont185.i.i.i: ; preds = %if.end.i259.i.i.i, br i1 %cmp.i.i.i264.i.i.i, label %if.then.i.i.i280.i.i.i, label %if.else.i.i.i265.i.i.i if.then.i.i.i280.i.i.i: ; preds = %invoke.cont185.i.i.i - %shr.i.i.i281.i.i.i = lshr i32 %147, 16 + %shr.i.i.i281.i.i.i = lshr exact i32 %147, 16 %conv.i.i.i282.i.i.i = trunc i32 %shr.i.i.i281.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit285.i.i.i @@ -317127,7 +317027,7 @@ invoke.cont58.i.i.i: ; preds = %for.body45.i.i.i br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont58.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %44, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %44, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit.i.i.i @@ -317218,7 +317118,7 @@ invoke.cont82.i.i.i: ; preds = %if.end.i85.i.i.i, % br i1 %cmp.i.i.i101.i.i.i, label %if.then.i.i.i117.i.i.i, label %if.else.i.i.i102.i.i.i if.then.i.i.i117.i.i.i: ; preds = %invoke.cont82.i.i.i - %shr.i.i.i118.i.i.i = lshr i32 %60, 16 + %shr.i.i.i118.i.i.i = lshr exact i32 %60, 16 %conv.i.i.i119.i.i.i = trunc i32 %shr.i.i.i118.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit122.i.i.i @@ -317493,7 +317393,7 @@ invoke.cont142.i.i.i: ; preds = %for.body134.i.i.i br i1 %cmp.i.i.i193.i.i.i, label %if.then.i.i.i209.i.i.i, label %if.else.i.i.i194.i.i.i if.then.i.i.i209.i.i.i: ; preds = %invoke.cont142.i.i.i - %shr.i.i.i210.i.i.i = lshr i32 %116, 16 + %shr.i.i.i210.i.i.i = lshr exact i32 %116, 16 %conv.i.i.i211.i.i.i = trunc i32 %shr.i.i.i210.i.i.i to i16 br label %for.inc158.i.i.i @@ -317543,7 +317443,7 @@ invoke.cont152.i.i.i: ; preds = %for.body134.i.i.i br i1 %cmp.i.i.i223.i.i.i, label %if.then.i.i.i239.i.i.i, label %if.else.i.i.i224.i.i.i if.then.i.i.i239.i.i.i: ; preds = %invoke.cont152.i.i.i - %shr.i.i.i240.i.i.i = lshr i32 %119, 16 + %shr.i.i.i240.i.i.i = lshr exact i32 %119, 16 %conv.i.i.i241.i.i.i = trunc i32 %shr.i.i.i240.i.i.i to i16 br label %for.inc158.i.i.i @@ -317610,7 +317510,7 @@ invoke.cont175.i.i.i: ; preds = %for.body167.i.i.i br i1 %cmp.i.i.i253.i.i.i, label %if.then.i.i.i269.i.i.i, label %if.else.i.i.i254.i.i.i if.then.i.i.i269.i.i.i: ; preds = %invoke.cont175.i.i.i - %shr.i.i.i270.i.i.i = lshr i32 %134, 16 + %shr.i.i.i270.i.i.i = lshr exact i32 %134, 16 %conv.i.i.i271.i.i.i = trunc i32 %shr.i.i.i270.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit274.i.i.i @@ -317672,7 +317572,7 @@ invoke.cont185.i.i.i: ; preds = %if.end.i282.i.i.i, br i1 %cmp.i.i.i298.i.i.i, label %if.then.i.i.i314.i.i.i, label %if.else.i.i.i299.i.i.i if.then.i.i.i314.i.i.i: ; preds = %invoke.cont185.i.i.i - %shr.i.i.i315.i.i.i = lshr i32 %141, 16 + %shr.i.i.i315.i.i.i = lshr exact i32 %141, 16 %conv.i.i.i316.i.i.i = trunc i32 %shr.i.i.i315.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit319.i.i.i @@ -326190,7 +326090,7 @@ invoke.cont58.i.i.i: ; preds = %for.body45.i.i.i br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont58.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %44, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %44, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit.i.i.i @@ -326281,7 +326181,7 @@ invoke.cont82.i.i.i: ; preds = %if.end.i85.i.i.i, % br i1 %cmp.i.i.i101.i.i.i, label %if.then.i.i.i117.i.i.i, label %if.else.i.i.i102.i.i.i if.then.i.i.i117.i.i.i: ; preds = %invoke.cont82.i.i.i - %shr.i.i.i118.i.i.i = lshr i32 %60, 16 + %shr.i.i.i118.i.i.i = lshr exact i32 %60, 16 %conv.i.i.i119.i.i.i = trunc i32 %shr.i.i.i118.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit122.i.i.i @@ -326544,7 +326444,7 @@ invoke.cont142.i.i.i: ; preds = %for.body134.i.i.i br i1 %cmp.i.i.i187.i.i.i, label %if.then.i.i.i203.i.i.i, label %if.else.i.i.i188.i.i.i if.then.i.i.i203.i.i.i: ; preds = %invoke.cont142.i.i.i - %shr.i.i.i204.i.i.i = lshr i32 %112, 16 + %shr.i.i.i204.i.i.i = lshr exact i32 %112, 16 %conv.i.i.i205.i.i.i = trunc i32 %shr.i.i.i204.i.i.i to i16 br label %for.inc158.i.i.i @@ -326594,7 +326494,7 @@ invoke.cont152.i.i.i: ; preds = %for.body134.i.i.i br i1 %cmp.i.i.i215.i.i.i, label %if.then.i.i.i231.i.i.i, label %if.else.i.i.i216.i.i.i if.then.i.i.i231.i.i.i: ; preds = %invoke.cont152.i.i.i - %shr.i.i.i232.i.i.i = lshr i32 %115, 16 + %shr.i.i.i232.i.i.i = lshr exact i32 %115, 16 %conv.i.i.i233.i.i.i = trunc i32 %shr.i.i.i232.i.i.i to i16 br label %for.inc158.i.i.i @@ -326658,7 +326558,7 @@ invoke.cont175.i.i.i: ; preds = %for.body167.i.i.i br i1 %cmp.i.i.i243.i.i.i, label %if.then.i.i.i259.i.i.i, label %if.else.i.i.i244.i.i.i if.then.i.i.i259.i.i.i: ; preds = %invoke.cont175.i.i.i - %shr.i.i.i260.i.i.i = lshr i32 %129, 16 + %shr.i.i.i260.i.i.i = lshr exact i32 %129, 16 %conv.i.i.i261.i.i.i = trunc i32 %shr.i.i.i260.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit264.i.i.i @@ -326720,7 +326620,7 @@ invoke.cont185.i.i.i: ; preds = %if.end.i270.i.i.i, br i1 %cmp.i.i.i286.i.i.i, label %if.then.i.i.i302.i.i.i, label %if.else.i.i.i287.i.i.i if.then.i.i.i302.i.i.i: ; preds = %invoke.cont185.i.i.i - %shr.i.i.i303.i.i.i = lshr i32 %136, 16 + %shr.i.i.i303.i.i.i = lshr exact i32 %136, 16 %conv.i.i.i304.i.i.i = trunc i32 %shr.i.i.i303.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit307.i.i.i @@ -327139,7 +327039,7 @@ invoke.cont58.i.i.i: ; preds = %for.body45.i.i.i br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont58.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %44, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %44, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit.i.i.i @@ -327230,7 +327130,7 @@ invoke.cont82.i.i.i: ; preds = %if.end.i85.i.i.i, % br i1 %cmp.i.i.i101.i.i.i, label %if.then.i.i.i117.i.i.i, label %if.else.i.i.i102.i.i.i if.then.i.i.i117.i.i.i: ; preds = %invoke.cont82.i.i.i - %shr.i.i.i118.i.i.i = lshr i32 %60, 16 + %shr.i.i.i118.i.i.i = lshr exact i32 %60, 16 %conv.i.i.i119.i.i.i = trunc i32 %shr.i.i.i118.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit122.i.i.i @@ -327501,7 +327401,7 @@ invoke.cont142.i.i.i: ; preds = %for.body134.i.i.i br i1 %cmp.i.i.i193.i.i.i, label %if.then.i.i.i209.i.i.i, label %if.else.i.i.i194.i.i.i if.then.i.i.i209.i.i.i: ; preds = %invoke.cont142.i.i.i - %shr.i.i.i210.i.i.i = lshr i32 %112, 16 + %shr.i.i.i210.i.i.i = lshr exact i32 %112, 16 %conv.i.i.i211.i.i.i = trunc i32 %shr.i.i.i210.i.i.i to i16 br label %for.inc158.i.i.i @@ -327551,7 +327451,7 @@ invoke.cont152.i.i.i: ; preds = %for.body134.i.i.i br i1 %cmp.i.i.i223.i.i.i, label %if.then.i.i.i239.i.i.i, label %if.else.i.i.i224.i.i.i if.then.i.i.i239.i.i.i: ; preds = %invoke.cont152.i.i.i - %shr.i.i.i240.i.i.i = lshr i32 %115, 16 + %shr.i.i.i240.i.i.i = lshr exact i32 %115, 16 %conv.i.i.i241.i.i.i = trunc i32 %shr.i.i.i240.i.i.i to i16 br label %for.inc158.i.i.i @@ -327617,7 +327517,7 @@ invoke.cont175.i.i.i: ; preds = %for.body167.i.i.i br i1 %cmp.i.i.i253.i.i.i, label %if.then.i.i.i269.i.i.i, label %if.else.i.i.i254.i.i.i if.then.i.i.i269.i.i.i: ; preds = %invoke.cont175.i.i.i - %shr.i.i.i270.i.i.i = lshr i32 %129, 16 + %shr.i.i.i270.i.i.i = lshr exact i32 %129, 16 %conv.i.i.i271.i.i.i = trunc i32 %shr.i.i.i270.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit274.i.i.i @@ -327675,7 +327575,7 @@ invoke.cont185.i.i.i: ; preds = %if.end.i282.i.i.i, br i1 %cmp.i.i.i298.i.i.i, label %if.then.i.i.i314.i.i.i, label %if.else.i.i.i299.i.i.i if.then.i.i.i314.i.i.i: ; preds = %invoke.cont185.i.i.i - %shr.i.i.i315.i.i.i = lshr i32 %135, 16 + %shr.i.i.i315.i.i.i = lshr exact i32 %135, 16 %conv.i.i.i316.i.i.i = trunc i32 %shr.i.i.i315.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit319.i.i.i @@ -328094,7 +327994,7 @@ invoke.cont58.i.i.i: ; preds = %for.body45.i.i.i br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont58.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %44, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %44, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit.i.i.i @@ -328185,7 +328085,7 @@ invoke.cont82.i.i.i: ; preds = %if.end.i85.i.i.i, % br i1 %cmp.i.i.i101.i.i.i, label %if.then.i.i.i117.i.i.i, label %if.else.i.i.i102.i.i.i if.then.i.i.i117.i.i.i: ; preds = %invoke.cont82.i.i.i - %shr.i.i.i118.i.i.i = lshr i32 %60, 16 + %shr.i.i.i118.i.i.i = lshr exact i32 %60, 16 %conv.i.i.i119.i.i.i = trunc i32 %shr.i.i.i118.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit122.i.i.i @@ -328456,7 +328356,7 @@ invoke.cont142.i.i.i: ; preds = %for.body134.i.i.i br i1 %cmp.i.i.i193.i.i.i, label %if.then.i.i.i209.i.i.i, label %if.else.i.i.i194.i.i.i if.then.i.i.i209.i.i.i: ; preds = %invoke.cont142.i.i.i - %shr.i.i.i210.i.i.i = lshr i32 %112, 16 + %shr.i.i.i210.i.i.i = lshr exact i32 %112, 16 %conv.i.i.i211.i.i.i = trunc i32 %shr.i.i.i210.i.i.i to i16 br label %for.inc158.i.i.i @@ -328506,7 +328406,7 @@ invoke.cont152.i.i.i: ; preds = %for.body134.i.i.i br i1 %cmp.i.i.i223.i.i.i, label %if.then.i.i.i239.i.i.i, label %if.else.i.i.i224.i.i.i if.then.i.i.i239.i.i.i: ; preds = %invoke.cont152.i.i.i - %shr.i.i.i240.i.i.i = lshr i32 %115, 16 + %shr.i.i.i240.i.i.i = lshr exact i32 %115, 16 %conv.i.i.i241.i.i.i = trunc i32 %shr.i.i.i240.i.i.i to i16 br label %for.inc158.i.i.i @@ -328572,7 +328472,7 @@ invoke.cont175.i.i.i: ; preds = %for.body167.i.i.i br i1 %cmp.i.i.i253.i.i.i, label %if.then.i.i.i269.i.i.i, label %if.else.i.i.i254.i.i.i if.then.i.i.i269.i.i.i: ; preds = %invoke.cont175.i.i.i - %shr.i.i.i270.i.i.i = lshr i32 %129, 16 + %shr.i.i.i270.i.i.i = lshr exact i32 %129, 16 %conv.i.i.i271.i.i.i = trunc i32 %shr.i.i.i270.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit274.i.i.i @@ -328630,7 +328530,7 @@ invoke.cont185.i.i.i: ; preds = %if.end.i282.i.i.i, br i1 %cmp.i.i.i298.i.i.i, label %if.then.i.i.i314.i.i.i, label %if.else.i.i.i299.i.i.i if.then.i.i.i314.i.i.i: ; preds = %invoke.cont185.i.i.i - %shr.i.i.i315.i.i.i = lshr i32 %135, 16 + %shr.i.i.i315.i.i.i = lshr exact i32 %135, 16 %conv.i.i.i316.i.i.i = trunc i32 %shr.i.i.i315.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit319.i.i.i @@ -332846,7 +332746,7 @@ invoke.cont25.i.i.i: ; preds = %for.body14.i.i.i br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont25.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %30, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %30, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit.i.i.i @@ -333078,7 +332978,7 @@ invoke.cont59.i.i.i: ; preds = %for.inc64.i.i.i, %i br i1 %cmp.i.i.i87.i.i.i, label %if.then.i.i.i103.i.i.i, label %if.else.i.i.i88.i.i.i if.then.i.i.i103.i.i.i: ; preds = %invoke.cont59.i.i.i - %shr.i.i.i104.i.i.i = lshr i32 %73, 16 + %shr.i.i.i104.i.i.i = lshr exact i32 %73, 16 %conv.i.i.i105.i.i.i = trunc i32 %shr.i.i.i104.i.i.i to i16 br label %for.inc64.i.i.i @@ -333163,7 +333063,7 @@ invoke.cont82.i.i.i: ; preds = %for.body73.i.i.i br i1 %cmp.i.i.i117.i.i.i, label %if.then.i.i.i133.i.i.i, label %if.else.i.i.i118.i.i.i if.then.i.i.i133.i.i.i: ; preds = %invoke.cont82.i.i.i - %shr.i.i.i134.i.i.i = lshr i32 %85, 16 + %shr.i.i.i134.i.i.i = lshr exact i32 %85, 16 %conv.i.i.i135.i.i.i = trunc i32 %shr.i.i.i134.i.i.i to i16 br label %for.inc97.i.i.i @@ -333192,7 +333092,7 @@ invoke.cont91.i.i.i: ; preds = %for.body73.i.i.i br i1 %cmp.i.i.i147.i.i.i, label %if.then.i.i.i163.i.i.i, label %if.else.i.i.i148.i.i.i if.then.i.i.i163.i.i.i: ; preds = %invoke.cont91.i.i.i - %shr.i.i.i164.i.i.i = lshr i32 %88, 16 + %shr.i.i.i164.i.i.i = lshr exact i32 %88, 16 %conv.i.i.i165.i.i.i = trunc i32 %shr.i.i.i164.i.i.i to i16 br label %for.inc97.i.i.i @@ -339420,7 +339320,7 @@ invoke.cont25.i.i.i: ; preds = %for.body14.i.i.i br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont25.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %30, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %30, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit.i.i.i @@ -339646,7 +339546,7 @@ invoke.cont59.i.i.i: ; preds = %for.inc64.i.i.i, %i br i1 %cmp.i.i.i85.i.i.i, label %if.then.i.i.i101.i.i.i, label %if.else.i.i.i86.i.i.i if.then.i.i.i101.i.i.i: ; preds = %invoke.cont59.i.i.i - %shr.i.i.i102.i.i.i = lshr i32 %71, 16 + %shr.i.i.i102.i.i.i = lshr exact i32 %71, 16 %conv.i.i.i103.i.i.i = trunc i32 %shr.i.i.i102.i.i.i to i16 br label %for.inc64.i.i.i @@ -339728,7 +339628,7 @@ invoke.cont82.i.i.i: ; preds = %for.body73.i.i.i br i1 %cmp.i.i.i113.i.i.i, label %if.then.i.i.i129.i.i.i, label %if.else.i.i.i114.i.i.i if.then.i.i.i129.i.i.i: ; preds = %invoke.cont82.i.i.i - %shr.i.i.i130.i.i.i = lshr i32 %82, 16 + %shr.i.i.i130.i.i.i = lshr exact i32 %82, 16 %conv.i.i.i131.i.i.i = trunc i32 %shr.i.i.i130.i.i.i to i16 br label %for.inc97.i.i.i @@ -339757,7 +339657,7 @@ invoke.cont91.i.i.i: ; preds = %for.body73.i.i.i br i1 %cmp.i.i.i141.i.i.i, label %if.then.i.i.i157.i.i.i, label %if.else.i.i.i142.i.i.i if.then.i.i.i157.i.i.i: ; preds = %invoke.cont91.i.i.i - %shr.i.i.i158.i.i.i = lshr i32 %85, 16 + %shr.i.i.i158.i.i.i = lshr exact i32 %85, 16 %conv.i.i.i159.i.i.i = trunc i32 %shr.i.i.i158.i.i.i to i16 br label %for.inc97.i.i.i @@ -340091,7 +339991,7 @@ invoke.cont25.i.i.i: ; preds = %for.body14.i.i.i br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont25.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %30, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %30, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit.i.i.i @@ -340321,7 +340221,7 @@ invoke.cont59.i.i.i: ; preds = %for.inc64.i.i.i, %i br i1 %cmp.i.i.i87.i.i.i, label %if.then.i.i.i103.i.i.i, label %if.else.i.i.i88.i.i.i if.then.i.i.i103.i.i.i: ; preds = %invoke.cont59.i.i.i - %shr.i.i.i104.i.i.i = lshr i32 %71, 16 + %shr.i.i.i104.i.i.i = lshr exact i32 %71, 16 %conv.i.i.i105.i.i.i = trunc i32 %shr.i.i.i104.i.i.i to i16 br label %for.inc64.i.i.i @@ -340405,7 +340305,7 @@ invoke.cont82.i.i.i: ; preds = %for.body73.i.i.i br i1 %cmp.i.i.i117.i.i.i, label %if.then.i.i.i133.i.i.i, label %if.else.i.i.i118.i.i.i if.then.i.i.i133.i.i.i: ; preds = %invoke.cont82.i.i.i - %shr.i.i.i134.i.i.i = lshr i32 %82, 16 + %shr.i.i.i134.i.i.i = lshr exact i32 %82, 16 %conv.i.i.i135.i.i.i = trunc i32 %shr.i.i.i134.i.i.i to i16 br label %for.inc97.i.i.i @@ -340434,7 +340334,7 @@ invoke.cont91.i.i.i: ; preds = %for.body73.i.i.i br i1 %cmp.i.i.i147.i.i.i, label %if.then.i.i.i163.i.i.i, label %if.else.i.i.i148.i.i.i if.then.i.i.i163.i.i.i: ; preds = %invoke.cont91.i.i.i - %shr.i.i.i164.i.i.i = lshr i32 %85, 16 + %shr.i.i.i164.i.i.i = lshr exact i32 %85, 16 %conv.i.i.i165.i.i.i = trunc i32 %shr.i.i.i164.i.i.i to i16 br label %for.inc97.i.i.i @@ -340768,7 +340668,7 @@ invoke.cont25.i.i.i: ; preds = %for.body14.i.i.i br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont25.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %30, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %30, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit.i.i.i @@ -340998,7 +340898,7 @@ invoke.cont59.i.i.i: ; preds = %for.inc64.i.i.i, %i br i1 %cmp.i.i.i87.i.i.i, label %if.then.i.i.i103.i.i.i, label %if.else.i.i.i88.i.i.i if.then.i.i.i103.i.i.i: ; preds = %invoke.cont59.i.i.i - %shr.i.i.i104.i.i.i = lshr i32 %71, 16 + %shr.i.i.i104.i.i.i = lshr exact i32 %71, 16 %conv.i.i.i105.i.i.i = trunc i32 %shr.i.i.i104.i.i.i to i16 br label %for.inc64.i.i.i @@ -341082,7 +340982,7 @@ invoke.cont82.i.i.i: ; preds = %for.body73.i.i.i br i1 %cmp.i.i.i117.i.i.i, label %if.then.i.i.i133.i.i.i, label %if.else.i.i.i118.i.i.i if.then.i.i.i133.i.i.i: ; preds = %invoke.cont82.i.i.i - %shr.i.i.i134.i.i.i = lshr i32 %82, 16 + %shr.i.i.i134.i.i.i = lshr exact i32 %82, 16 %conv.i.i.i135.i.i.i = trunc i32 %shr.i.i.i134.i.i.i to i16 br label %for.inc97.i.i.i @@ -341111,7 +341011,7 @@ invoke.cont91.i.i.i: ; preds = %for.body73.i.i.i br i1 %cmp.i.i.i147.i.i.i, label %if.then.i.i.i163.i.i.i, label %if.else.i.i.i148.i.i.i if.then.i.i.i163.i.i.i: ; preds = %invoke.cont91.i.i.i - %shr.i.i.i164.i.i.i = lshr i32 %85, 16 + %shr.i.i.i164.i.i.i = lshr exact i32 %85, 16 %conv.i.i.i165.i.i.i = trunc i32 %shr.i.i.i164.i.i.i to i16 br label %for.inc97.i.i.i @@ -344822,7 +344722,7 @@ invoke.cont26.i.i.i: ; preds = %for.body14.i.i.i br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont26.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %34, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %34, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit.i.i.i @@ -345069,7 +344969,7 @@ invoke.cont61.i.i.i: ; preds = %for.inc66.i.i.i, %i br i1 %cmp.i.i.i86.i.i.i, label %if.then.i.i.i102.i.i.i, label %if.else.i.i.i87.i.i.i if.then.i.i.i102.i.i.i: ; preds = %invoke.cont61.i.i.i - %shr.i.i.i103.i.i.i = lshr i32 %82, 16 + %shr.i.i.i103.i.i.i = lshr exact i32 %82, 16 %conv.i.i.i104.i.i.i = trunc i32 %shr.i.i.i103.i.i.i to i16 br label %for.inc66.i.i.i @@ -345155,7 +345055,7 @@ invoke.cont84.i.i.i: ; preds = %for.body75.i.i.i br i1 %cmp.i.i.i116.i.i.i, label %if.then.i.i.i132.i.i.i, label %if.else.i.i.i117.i.i.i if.then.i.i.i132.i.i.i: ; preds = %invoke.cont84.i.i.i - %shr.i.i.i133.i.i.i = lshr i32 %94, 16 + %shr.i.i.i133.i.i.i = lshr exact i32 %94, 16 %conv.i.i.i134.i.i.i = trunc i32 %shr.i.i.i133.i.i.i to i16 br label %for.inc99.i.i.i @@ -345184,7 +345084,7 @@ invoke.cont93.i.i.i: ; preds = %for.body75.i.i.i br i1 %cmp.i.i.i146.i.i.i, label %if.then.i.i.i162.i.i.i, label %if.else.i.i.i147.i.i.i if.then.i.i.i162.i.i.i: ; preds = %invoke.cont93.i.i.i - %shr.i.i.i163.i.i.i = lshr i32 %97, 16 + %shr.i.i.i163.i.i.i = lshr exact i32 %97, 16 %conv.i.i.i164.i.i.i = trunc i32 %shr.i.i.i163.i.i.i to i16 br label %for.inc99.i.i.i @@ -351864,7 +351764,7 @@ invoke.cont26.i.i.i: ; preds = %for.body14.i.i.i br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont26.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %34, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %34, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit.i.i.i @@ -352105,7 +352005,7 @@ invoke.cont61.i.i.i: ; preds = %for.inc66.i.i.i, %i br i1 %cmp.i.i.i84.i.i.i, label %if.then.i.i.i100.i.i.i, label %if.else.i.i.i85.i.i.i if.then.i.i.i100.i.i.i: ; preds = %invoke.cont61.i.i.i - %shr.i.i.i101.i.i.i = lshr i32 %80, 16 + %shr.i.i.i101.i.i.i = lshr exact i32 %80, 16 %conv.i.i.i102.i.i.i = trunc i32 %shr.i.i.i101.i.i.i to i16 br label %for.inc66.i.i.i @@ -352188,7 +352088,7 @@ invoke.cont84.i.i.i: ; preds = %for.body75.i.i.i br i1 %cmp.i.i.i112.i.i.i, label %if.then.i.i.i128.i.i.i, label %if.else.i.i.i113.i.i.i if.then.i.i.i128.i.i.i: ; preds = %invoke.cont84.i.i.i - %shr.i.i.i129.i.i.i = lshr i32 %91, 16 + %shr.i.i.i129.i.i.i = lshr exact i32 %91, 16 %conv.i.i.i130.i.i.i = trunc i32 %shr.i.i.i129.i.i.i to i16 br label %for.inc99.i.i.i @@ -352217,7 +352117,7 @@ invoke.cont93.i.i.i: ; preds = %for.body75.i.i.i br i1 %cmp.i.i.i140.i.i.i, label %if.then.i.i.i156.i.i.i, label %if.else.i.i.i141.i.i.i if.then.i.i.i156.i.i.i: ; preds = %invoke.cont93.i.i.i - %shr.i.i.i157.i.i.i = lshr i32 %94, 16 + %shr.i.i.i157.i.i.i = lshr exact i32 %94, 16 %conv.i.i.i158.i.i.i = trunc i32 %shr.i.i.i157.i.i.i to i16 br label %for.inc99.i.i.i @@ -352574,7 +352474,7 @@ invoke.cont26.i.i.i: ; preds = %for.body14.i.i.i br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont26.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %34, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %34, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit.i.i.i @@ -352819,7 +352719,7 @@ invoke.cont61.i.i.i: ; preds = %for.inc66.i.i.i, %i br i1 %cmp.i.i.i86.i.i.i, label %if.then.i.i.i102.i.i.i, label %if.else.i.i.i87.i.i.i if.then.i.i.i102.i.i.i: ; preds = %invoke.cont61.i.i.i - %shr.i.i.i103.i.i.i = lshr i32 %80, 16 + %shr.i.i.i103.i.i.i = lshr exact i32 %80, 16 %conv.i.i.i104.i.i.i = trunc i32 %shr.i.i.i103.i.i.i to i16 br label %for.inc66.i.i.i @@ -352904,7 +352804,7 @@ invoke.cont84.i.i.i: ; preds = %for.body75.i.i.i br i1 %cmp.i.i.i116.i.i.i, label %if.then.i.i.i132.i.i.i, label %if.else.i.i.i117.i.i.i if.then.i.i.i132.i.i.i: ; preds = %invoke.cont84.i.i.i - %shr.i.i.i133.i.i.i = lshr i32 %91, 16 + %shr.i.i.i133.i.i.i = lshr exact i32 %91, 16 %conv.i.i.i134.i.i.i = trunc i32 %shr.i.i.i133.i.i.i to i16 br label %for.inc99.i.i.i @@ -352933,7 +352833,7 @@ invoke.cont93.i.i.i: ; preds = %for.body75.i.i.i br i1 %cmp.i.i.i146.i.i.i, label %if.then.i.i.i162.i.i.i, label %if.else.i.i.i147.i.i.i if.then.i.i.i162.i.i.i: ; preds = %invoke.cont93.i.i.i - %shr.i.i.i163.i.i.i = lshr i32 %94, 16 + %shr.i.i.i163.i.i.i = lshr exact i32 %94, 16 %conv.i.i.i164.i.i.i = trunc i32 %shr.i.i.i163.i.i.i to i16 br label %for.inc99.i.i.i @@ -353290,7 +353190,7 @@ invoke.cont26.i.i.i: ; preds = %for.body14.i.i.i br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont26.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %34, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %34, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit.i.i.i @@ -353535,7 +353435,7 @@ invoke.cont61.i.i.i: ; preds = %for.inc66.i.i.i, %i br i1 %cmp.i.i.i86.i.i.i, label %if.then.i.i.i102.i.i.i, label %if.else.i.i.i87.i.i.i if.then.i.i.i102.i.i.i: ; preds = %invoke.cont61.i.i.i - %shr.i.i.i103.i.i.i = lshr i32 %80, 16 + %shr.i.i.i103.i.i.i = lshr exact i32 %80, 16 %conv.i.i.i104.i.i.i = trunc i32 %shr.i.i.i103.i.i.i to i16 br label %for.inc66.i.i.i @@ -353620,7 +353520,7 @@ invoke.cont84.i.i.i: ; preds = %for.body75.i.i.i br i1 %cmp.i.i.i116.i.i.i, label %if.then.i.i.i132.i.i.i, label %if.else.i.i.i117.i.i.i if.then.i.i.i132.i.i.i: ; preds = %invoke.cont84.i.i.i - %shr.i.i.i133.i.i.i = lshr i32 %91, 16 + %shr.i.i.i133.i.i.i = lshr exact i32 %91, 16 %conv.i.i.i134.i.i.i = trunc i32 %shr.i.i.i133.i.i.i to i16 br label %for.inc99.i.i.i @@ -353649,7 +353549,7 @@ invoke.cont93.i.i.i: ; preds = %for.body75.i.i.i br i1 %cmp.i.i.i146.i.i.i, label %if.then.i.i.i162.i.i.i, label %if.else.i.i.i147.i.i.i if.then.i.i.i162.i.i.i: ; preds = %invoke.cont93.i.i.i - %shr.i.i.i163.i.i.i = lshr i32 %94, 16 + %shr.i.i.i163.i.i.i = lshr exact i32 %94, 16 %conv.i.i.i164.i.i.i = trunc i32 %shr.i.i.i163.i.i.i to i16 br label %for.inc99.i.i.i @@ -358079,7 +357979,7 @@ invoke.cont5: ; preds = %invoke.cont5.prehea br i1 %cmp.i.i.i, label %if.then.i.i.i, label %if.else.i.i.i if.then.i.i.i: ; preds = %invoke.cont5 - %shr.i.i.i = lshr i32 %33, 16 + %shr.i.i.i = lshr exact i32 %33, 16 %conv.i.i.i = trunc i32 %shr.i.i.i to i16 br label %for.inc @@ -358556,7 +358456,7 @@ invoke.cont162: ; preds = %invoke.cont162.preh br i1 %cmp.i.i.i143, label %if.then.i.i.i159, label %if.else.i.i.i144 if.then.i.i.i159: ; preds = %invoke.cont162 - %shr.i.i.i160 = lshr i32 %144, 16 + %shr.i.i.i160 = lshr exact i32 %144, 16 %conv.i.i.i161 = trunc i32 %shr.i.i.i160 to i16 br label %for.inc167 @@ -367246,7 +367146,7 @@ invoke.cont5: ; preds = %invoke.cont5.prehea br i1 %cmp.i.i.i, label %if.then.i.i.i, label %if.else.i.i.i if.then.i.i.i: ; preds = %invoke.cont5 - %shr.i.i.i = lshr i32 %32, 16 + %shr.i.i.i = lshr exact i32 %32, 16 %conv.i.i.i = trunc i32 %shr.i.i.i to i16 br label %for.inc @@ -367720,7 +367620,7 @@ invoke.cont162: ; preds = %invoke.cont162.preh br i1 %cmp.i.i.i141, label %if.then.i.i.i157, label %if.else.i.i.i142 if.then.i.i.i157: ; preds = %invoke.cont162 - %shr.i.i.i158 = lshr i32 %142, 16 + %shr.i.i.i158 = lshr exact i32 %142, 16 %conv.i.i.i159 = trunc i32 %shr.i.i.i158 to i16 br label %for.inc167 @@ -368076,7 +367976,7 @@ invoke.cont5: ; preds = %invoke.cont5.prehea br i1 %cmp.i.i.i, label %if.then.i.i.i, label %if.else.i.i.i if.then.i.i.i: ; preds = %invoke.cont5 - %shr.i.i.i = lshr i32 %32, 16 + %shr.i.i.i = lshr exact i32 %32, 16 %conv.i.i.i = trunc i32 %shr.i.i.i to i16 br label %for.inc @@ -368552,7 +368452,7 @@ invoke.cont162: ; preds = %invoke.cont162.preh br i1 %cmp.i.i.i143, label %if.then.i.i.i159, label %if.else.i.i.i144 if.then.i.i.i159: ; preds = %invoke.cont162 - %shr.i.i.i160 = lshr i32 %142, 16 + %shr.i.i.i160 = lshr exact i32 %142, 16 %conv.i.i.i161 = trunc i32 %shr.i.i.i160 to i16 br label %for.inc167 @@ -368908,7 +368808,7 @@ invoke.cont5: ; preds = %invoke.cont5.prehea br i1 %cmp.i.i.i, label %if.then.i.i.i, label %if.else.i.i.i if.then.i.i.i: ; preds = %invoke.cont5 - %shr.i.i.i = lshr i32 %32, 16 + %shr.i.i.i = lshr exact i32 %32, 16 %conv.i.i.i = trunc i32 %shr.i.i.i to i16 br label %for.inc @@ -369384,7 +369284,7 @@ invoke.cont162: ; preds = %invoke.cont162.preh br i1 %cmp.i.i.i143, label %if.then.i.i.i159, label %if.else.i.i.i144 if.then.i.i.i159: ; preds = %invoke.cont162 - %shr.i.i.i160 = lshr i32 %142, 16 + %shr.i.i.i160 = lshr exact i32 %142, 16 %conv.i.i.i161 = trunc i32 %shr.i.i.i160 to i16 br label %for.inc167 @@ -373576,7 +373476,7 @@ invoke.cont7.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont7.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %28, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %28, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -373677,7 +373577,7 @@ invoke.cont26.i.i.i: ; preds = %for.inc.i.i.i, %for br i1 %cmp.i.i.i44.i.i.i, label %if.then.i.i.i60.i.i.i, label %if.else.i.i.i45.i.i.i if.then.i.i.i60.i.i.i: ; preds = %invoke.cont26.i.i.i - %shr.i.i.i61.i.i.i = lshr i32 %48, 16 + %shr.i.i.i61.i.i.i = lshr exact i32 %48, 16 %conv.i.i.i62.i.i.i = trunc i32 %shr.i.i.i61.i.i.i to i16 br label %invoke.cont34.i.i.i @@ -373719,7 +373619,7 @@ invoke.cont34.i.i.i: ; preds = %if.else13.i.i.i59.i br i1 %cmp.i.i.i69.i.i.i, label %if.then.i.i.i85.i.i.i, label %if.else.i.i.i70.i.i.i if.then.i.i.i85.i.i.i: ; preds = %invoke.cont34.i.i.i - %shr.i.i.i86.i.i.i = lshr i32 %56, 16 + %shr.i.i.i86.i.i.i = lshr exact i32 %56, 16 %conv.i.i.i87.i.i.i = trunc i32 %shr.i.i.i86.i.i.i to i16 br label %invoke.cont42.i.i.i @@ -373761,7 +373661,7 @@ invoke.cont42.i.i.i: ; preds = %if.else13.i.i.i84.i br i1 %cmp.i.i.i94.i.i.i, label %if.then.i.i.i110.i.i.i, label %if.else.i.i.i95.i.i.i if.then.i.i.i110.i.i.i: ; preds = %invoke.cont42.i.i.i - %shr.i.i.i111.i.i.i = lshr i32 %64, 16 + %shr.i.i.i111.i.i.i = lshr exact i32 %64, 16 %conv.i.i.i112.i.i.i = trunc i32 %shr.i.i.i111.i.i.i to i16 br label %invoke.cont45.i.i.i @@ -373818,7 +373718,7 @@ invoke.cont55.i.i.i: ; preds = %for.inc60.i.i.i, %i br i1 %cmp.i.i.i124.i.i.i, label %if.then.i.i.i140.i.i.i, label %if.else.i.i.i125.i.i.i if.then.i.i.i140.i.i.i: ; preds = %invoke.cont55.i.i.i - %shr.i.i.i141.i.i.i = lshr i32 %76, 16 + %shr.i.i.i141.i.i.i = lshr exact i32 %76, 16 %conv.i.i.i142.i.i.i = trunc i32 %shr.i.i.i141.i.i.i to i16 br label %for.inc60.i.i.i @@ -380164,7 +380064,7 @@ invoke.cont7.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont7.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %27, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %27, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -380254,7 +380154,7 @@ invoke.cont26.i.i.i: ; preds = %for.inc.i.i.i, %for br i1 %cmp.i.i.i38.i.i.i, label %if.then.i.i.i54.i.i.i, label %if.else.i.i.i39.i.i.i if.then.i.i.i54.i.i.i: ; preds = %invoke.cont26.i.i.i - %shr.i.i.i55.i.i.i = lshr i32 %43, 16 + %shr.i.i.i55.i.i.i = lshr exact i32 %43, 16 %conv.i.i.i56.i.i.i = trunc i32 %shr.i.i.i55.i.i.i to i16 br label %invoke.cont34.i.i.i @@ -380296,7 +380196,7 @@ invoke.cont34.i.i.i: ; preds = %if.else13.i.i.i53.i br i1 %cmp.i.i.i63.i.i.i, label %if.then.i.i.i79.i.i.i, label %if.else.i.i.i64.i.i.i if.then.i.i.i79.i.i.i: ; preds = %invoke.cont34.i.i.i - %shr.i.i.i80.i.i.i = lshr i32 %51, 16 + %shr.i.i.i80.i.i.i = lshr exact i32 %51, 16 %conv.i.i.i81.i.i.i = trunc i32 %shr.i.i.i80.i.i.i to i16 br label %invoke.cont42.i.i.i @@ -380338,7 +380238,7 @@ invoke.cont42.i.i.i: ; preds = %if.else13.i.i.i78.i br i1 %cmp.i.i.i88.i.i.i, label %if.then.i.i.i104.i.i.i, label %if.else.i.i.i89.i.i.i if.then.i.i.i104.i.i.i: ; preds = %invoke.cont42.i.i.i - %shr.i.i.i105.i.i.i = lshr i32 %59, 16 + %shr.i.i.i105.i.i.i = lshr exact i32 %59, 16 %conv.i.i.i106.i.i.i = trunc i32 %shr.i.i.i105.i.i.i to i16 br label %invoke.cont45.i.i.i @@ -380392,7 +380292,7 @@ invoke.cont55.i.i.i: ; preds = %for.inc60.i.i.i, %i br i1 %cmp.i.i.i116.i.i.i, label %if.then.i.i.i132.i.i.i, label %if.else.i.i.i117.i.i.i if.then.i.i.i132.i.i.i: ; preds = %invoke.cont55.i.i.i - %shr.i.i.i133.i.i.i = lshr i32 %70, 16 + %shr.i.i.i133.i.i.i = lshr exact i32 %70, 16 %conv.i.i.i134.i.i.i = trunc i32 %shr.i.i.i133.i.i.i to i16 br label %for.inc60.i.i.i @@ -380851,7 +380751,7 @@ invoke.cont7.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont7.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %27, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %27, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -380945,7 +380845,7 @@ invoke.cont26.i.i.i: ; preds = %for.inc.i.i.i, %for br i1 %cmp.i.i.i44.i.i.i, label %if.then.i.i.i60.i.i.i, label %if.else.i.i.i45.i.i.i if.then.i.i.i60.i.i.i: ; preds = %invoke.cont26.i.i.i - %shr.i.i.i61.i.i.i = lshr i32 %45, 16 + %shr.i.i.i61.i.i.i = lshr exact i32 %45, 16 %conv.i.i.i62.i.i.i = trunc i32 %shr.i.i.i61.i.i.i to i16 br label %invoke.cont34.i.i.i @@ -380987,7 +380887,7 @@ invoke.cont34.i.i.i: ; preds = %if.else13.i.i.i59.i br i1 %cmp.i.i.i69.i.i.i, label %if.then.i.i.i85.i.i.i, label %if.else.i.i.i70.i.i.i if.then.i.i.i85.i.i.i: ; preds = %invoke.cont34.i.i.i - %shr.i.i.i86.i.i.i = lshr i32 %53, 16 + %shr.i.i.i86.i.i.i = lshr exact i32 %53, 16 %conv.i.i.i87.i.i.i = trunc i32 %shr.i.i.i86.i.i.i to i16 br label %invoke.cont42.i.i.i @@ -381029,7 +380929,7 @@ invoke.cont42.i.i.i: ; preds = %if.else13.i.i.i84.i br i1 %cmp.i.i.i94.i.i.i, label %if.then.i.i.i110.i.i.i, label %if.else.i.i.i95.i.i.i if.then.i.i.i110.i.i.i: ; preds = %invoke.cont42.i.i.i - %shr.i.i.i111.i.i.i = lshr i32 %61, 16 + %shr.i.i.i111.i.i.i = lshr exact i32 %61, 16 %conv.i.i.i112.i.i.i = trunc i32 %shr.i.i.i111.i.i.i to i16 br label %invoke.cont45.i.i.i @@ -381085,7 +380985,7 @@ invoke.cont55.i.i.i: ; preds = %for.inc60.i.i.i, %i br i1 %cmp.i.i.i124.i.i.i, label %if.then.i.i.i140.i.i.i, label %if.else.i.i.i125.i.i.i if.then.i.i.i140.i.i.i: ; preds = %invoke.cont55.i.i.i - %shr.i.i.i141.i.i.i = lshr i32 %72, 16 + %shr.i.i.i141.i.i.i = lshr exact i32 %72, 16 %conv.i.i.i142.i.i.i = trunc i32 %shr.i.i.i141.i.i.i to i16 br label %for.inc60.i.i.i @@ -381544,7 +381444,7 @@ invoke.cont7.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont7.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %27, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %27, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -381638,7 +381538,7 @@ invoke.cont26.i.i.i: ; preds = %for.inc.i.i.i, %for br i1 %cmp.i.i.i44.i.i.i, label %if.then.i.i.i60.i.i.i, label %if.else.i.i.i45.i.i.i if.then.i.i.i60.i.i.i: ; preds = %invoke.cont26.i.i.i - %shr.i.i.i61.i.i.i = lshr i32 %45, 16 + %shr.i.i.i61.i.i.i = lshr exact i32 %45, 16 %conv.i.i.i62.i.i.i = trunc i32 %shr.i.i.i61.i.i.i to i16 br label %invoke.cont34.i.i.i @@ -381680,7 +381580,7 @@ invoke.cont34.i.i.i: ; preds = %if.else13.i.i.i59.i br i1 %cmp.i.i.i69.i.i.i, label %if.then.i.i.i85.i.i.i, label %if.else.i.i.i70.i.i.i if.then.i.i.i85.i.i.i: ; preds = %invoke.cont34.i.i.i - %shr.i.i.i86.i.i.i = lshr i32 %53, 16 + %shr.i.i.i86.i.i.i = lshr exact i32 %53, 16 %conv.i.i.i87.i.i.i = trunc i32 %shr.i.i.i86.i.i.i to i16 br label %invoke.cont42.i.i.i @@ -381722,7 +381622,7 @@ invoke.cont42.i.i.i: ; preds = %if.else13.i.i.i84.i br i1 %cmp.i.i.i94.i.i.i, label %if.then.i.i.i110.i.i.i, label %if.else.i.i.i95.i.i.i if.then.i.i.i110.i.i.i: ; preds = %invoke.cont42.i.i.i - %shr.i.i.i111.i.i.i = lshr i32 %61, 16 + %shr.i.i.i111.i.i.i = lshr exact i32 %61, 16 %conv.i.i.i112.i.i.i = trunc i32 %shr.i.i.i111.i.i.i to i16 br label %invoke.cont45.i.i.i @@ -381778,7 +381678,7 @@ invoke.cont55.i.i.i: ; preds = %for.inc60.i.i.i, %i br i1 %cmp.i.i.i124.i.i.i, label %if.then.i.i.i140.i.i.i, label %if.else.i.i.i125.i.i.i if.then.i.i.i140.i.i.i: ; preds = %invoke.cont55.i.i.i - %shr.i.i.i141.i.i.i = lshr i32 %72, 16 + %shr.i.i.i141.i.i.i = lshr exact i32 %72, 16 %conv.i.i.i142.i.i.i = trunc i32 %shr.i.i.i141.i.i.i to i16 br label %for.inc60.i.i.i @@ -385469,7 +385369,7 @@ invoke.cont27.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont27.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %51, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %51, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -391686,7 +391586,7 @@ invoke.cont27.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont27.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %47, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %47, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -392239,7 +392139,7 @@ invoke.cont27.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont27.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %47, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %47, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -392792,7 +392692,7 @@ invoke.cont27.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont27.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %47, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %47, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -397941,7 +397841,7 @@ if.then127.i.i.i: ; preds = %invoke.cont125.i.i. br i1 %cmp.i.i150.i.i.i, label %if.then.i.i152.i.i.i, label %if.else.i.i.i.i.i if.then.i.i152.i.i.i: ; preds = %if.then127.i.i.i - %shr.i.i.i.i.i = lshr i32 %122, 16 + %shr.i.i.i.i.i = lshr exact i32 %122, 16 %conv.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i to i16 br label %invoke.cont130.i.i.i @@ -398112,7 +398012,7 @@ cond.true.i.i.i: ; preds = %_ZN18OpenImageIO_v2 br i1 %cmp.i184.i.i.i, label %if.then.i190.i.i.i, label %if.else.i185.i.i.i if.then.i190.i.i.i: ; preds = %cond.true.i.i.i - %shr.i.i.i.i = lshr i32 %158, 16 + %shr.i.i.i.i = lshr exact i32 %158, 16 %conv.i.i.i.i = trunc i32 %shr.i.i.i.i to i16 br label %invoke.cont143.i.i.i @@ -401694,7 +401594,7 @@ invoke.cont36.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont36.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %47, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %47, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -401755,7 +401655,7 @@ if.then41.i.i.i: ; preds = %for.end.i.i.i br i1 %cmp.i.i.i65.i.i.i, label %if.then.i.i.i81.i.i.i, label %if.else.i.i.i66.i.i.i if.then.i.i.i81.i.i.i: ; preds = %if.then41.i.i.i - %shr.i.i.i82.i.i.i = lshr i32 %58, 16 + %shr.i.i.i82.i.i.i = lshr exact i32 %58, 16 %conv.i.i.i83.i.i.i = trunc i32 %shr.i.i.i82.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit86.i.i.i @@ -401831,7 +401731,7 @@ invoke.cont74.i.i.i: ; preds = %for.inc79.i.i.i, %i br i1 %cmp.i.i.i105.i.i.i, label %if.then.i.i.i121.i.i.i, label %if.else.i.i.i106.i.i.i if.then.i.i.i121.i.i.i: ; preds = %invoke.cont74.i.i.i - %shr.i.i.i122.i.i.i = lshr i32 %75, 16 + %shr.i.i.i122.i.i.i = lshr exact i32 %75, 16 %conv.i.i.i123.i.i.i = trunc i32 %shr.i.i.i122.i.i.i to i16 br label %for.inc79.i.i.i @@ -401892,7 +401792,7 @@ for.end81.i.i.i: ; preds = %for.end81.loopexit. br i1 %cmp.i.i.i140.i.i.i, label %if.then.i.i.i156.i.i.i, label %if.else.i.i.i141.i.i.i if.then.i.i.i156.i.i.i: ; preds = %for.end81.i.i.i - %shr.i.i.i157.i.i.i = lshr i32 %83, 16 + %shr.i.i.i157.i.i.i = lshr exact i32 %83, 16 %conv.i.i.i158.i.i.i = trunc i32 %shr.i.i.i157.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit161.i.i.i @@ -407157,7 +407057,7 @@ invoke.cont36.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont36.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %42, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %42, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -407215,7 +407115,7 @@ if.then41.i.i.i: ; preds = %for.end.i.i.i br i1 %cmp.i.i.i53.i.i.i, label %if.then.i.i.i69.i.i.i, label %if.else.i.i.i54.i.i.i if.then.i.i.i69.i.i.i: ; preds = %if.then41.i.i.i - %shr.i.i.i70.i.i.i = lshr i32 %53, 16 + %shr.i.i.i70.i.i.i = lshr exact i32 %53, 16 %conv.i.i.i71.i.i.i = trunc i32 %shr.i.i.i70.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit74.i.i.i @@ -407282,7 +407182,7 @@ invoke.cont74.i.i.i: ; preds = %for.inc79.i.i.i, %i br i1 %cmp.i.i.i87.i.i.i, label %if.then.i.i.i103.i.i.i, label %if.else.i.i.i88.i.i.i if.then.i.i.i103.i.i.i: ; preds = %invoke.cont74.i.i.i - %shr.i.i.i104.i.i.i = lshr i32 %67, 16 + %shr.i.i.i104.i.i.i = lshr exact i32 %67, 16 %conv.i.i.i105.i.i.i = trunc i32 %shr.i.i.i104.i.i.i to i16 br label %for.inc79.i.i.i @@ -407340,7 +407240,7 @@ for.end81.i.i.i: ; preds = %for.end81.loopexit. br i1 %cmp.i.i.i118.i.i.i, label %if.then.i.i.i134.i.i.i, label %if.else.i.i.i119.i.i.i if.then.i.i.i134.i.i.i: ; preds = %for.end81.i.i.i - %shr.i.i.i135.i.i.i = lshr i32 %75, 16 + %shr.i.i.i135.i.i.i = lshr exact i32 %75, 16 %conv.i.i.i136.i.i.i = trunc i32 %shr.i.i.i135.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit139.i.i.i @@ -410314,7 +410214,7 @@ invoke.cont36.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont36.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %42, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %42, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -410385,7 +410285,7 @@ invoke.cont48.i.i.i: ; preds = %cond.false.i.i.i, % br i1 %cmp.i.i.i57.i.i.i, label %if.then.i.i.i73.i.i.i, label %if.else.i.i.i58.i.i.i if.then.i.i.i73.i.i.i: ; preds = %invoke.cont48.i.i.i - %shr.i.i.i74.i.i.i = lshr i32 %55, 16 + %shr.i.i.i74.i.i.i = lshr exact i32 %55, 16 %conv.i.i.i75.i.i.i = trunc i32 %shr.i.i.i74.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit78.i.i.i @@ -410454,7 +410354,7 @@ invoke.cont74.i.i.i: ; preds = %for.inc79.i.i.i, %i br i1 %cmp.i.i.i95.i.i.i, label %if.then.i.i.i111.i.i.i, label %if.else.i.i.i96.i.i.i if.then.i.i.i111.i.i.i: ; preds = %invoke.cont74.i.i.i - %shr.i.i.i112.i.i.i = lshr i32 %69, 16 + %shr.i.i.i112.i.i.i = lshr exact i32 %69, 16 %conv.i.i.i113.i.i.i = trunc i32 %shr.i.i.i112.i.i.i to i16 br label %for.inc79.i.i.i @@ -410523,7 +410423,7 @@ invoke.cont93.i.i.i: ; preds = %cond.false87.i.i.i, br i1 %cmp.i.i.i128.i.i.i, label %if.then.i.i.i144.i.i.i, label %if.else.i.i.i129.i.i.i if.then.i.i.i144.i.i.i: ; preds = %invoke.cont93.i.i.i - %shr.i.i.i145.i.i.i = lshr i32 %79, 16 + %shr.i.i.i145.i.i.i = lshr exact i32 %79, 16 %conv.i.i.i146.i.i.i = trunc i32 %shr.i.i.i145.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit149.i.i.i @@ -413532,7 +413432,7 @@ invoke.cont36.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont36.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %44, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %44, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -413603,7 +413503,7 @@ invoke.cont48.i.i.i: ; preds = %cond.false.i.i.i, % br i1 %cmp.i.i.i57.i.i.i, label %if.then.i.i.i73.i.i.i, label %if.else.i.i.i58.i.i.i if.then.i.i.i73.i.i.i: ; preds = %invoke.cont48.i.i.i - %shr.i.i.i74.i.i.i = lshr i32 %56, 16 + %shr.i.i.i74.i.i.i = lshr exact i32 %56, 16 %conv.i.i.i75.i.i.i = trunc i32 %shr.i.i.i74.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit78.i.i.i @@ -413676,7 +413576,7 @@ invoke.cont74.i.i.i: ; preds = %for.inc79.i.i.i, %i br i1 %cmp.i.i.i95.i.i.i, label %if.then.i.i.i111.i.i.i, label %if.else.i.i.i96.i.i.i if.then.i.i.i111.i.i.i: ; preds = %invoke.cont74.i.i.i - %shr.i.i.i112.i.i.i = lshr i32 %72, 16 + %shr.i.i.i112.i.i.i = lshr exact i32 %72, 16 %conv.i.i.i113.i.i.i = trunc i32 %shr.i.i.i112.i.i.i to i16 br label %for.inc79.i.i.i @@ -413745,7 +413645,7 @@ invoke.cont93.i.i.i: ; preds = %cond.false87.i.i.i, br i1 %cmp.i.i.i128.i.i.i, label %if.then.i.i.i144.i.i.i, label %if.else.i.i.i129.i.i.i if.then.i.i.i144.i.i.i: ; preds = %invoke.cont93.i.i.i - %shr.i.i.i145.i.i.i = lshr i32 %81, 16 + %shr.i.i.i145.i.i.i = lshr exact i32 %81, 16 %conv.i.i.i146.i.i.i = trunc i32 %shr.i.i.i145.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit149.i.i.i @@ -416747,7 +416647,7 @@ invoke.cont36.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont36.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %42, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %42, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -416818,7 +416718,7 @@ invoke.cont48.i.i.i: ; preds = %cond.false.i.i.i, % br i1 %cmp.i.i.i57.i.i.i, label %if.then.i.i.i73.i.i.i, label %if.else.i.i.i58.i.i.i if.then.i.i.i73.i.i.i: ; preds = %invoke.cont48.i.i.i - %shr.i.i.i74.i.i.i = lshr i32 %55, 16 + %shr.i.i.i74.i.i.i = lshr exact i32 %55, 16 %conv.i.i.i75.i.i.i = trunc i32 %shr.i.i.i74.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit78.i.i.i @@ -416887,7 +416787,7 @@ invoke.cont74.i.i.i: ; preds = %for.inc79.i.i.i, %i br i1 %cmp.i.i.i95.i.i.i, label %if.then.i.i.i111.i.i.i, label %if.else.i.i.i96.i.i.i if.then.i.i.i111.i.i.i: ; preds = %invoke.cont74.i.i.i - %shr.i.i.i112.i.i.i = lshr i32 %69, 16 + %shr.i.i.i112.i.i.i = lshr exact i32 %69, 16 %conv.i.i.i113.i.i.i = trunc i32 %shr.i.i.i112.i.i.i to i16 br label %for.inc79.i.i.i @@ -416956,7 +416856,7 @@ invoke.cont93.i.i.i: ; preds = %cond.false87.i.i.i, br i1 %cmp.i.i.i128.i.i.i, label %if.then.i.i.i144.i.i.i, label %if.else.i.i.i129.i.i.i if.then.i.i.i144.i.i.i: ; preds = %invoke.cont93.i.i.i - %shr.i.i.i145.i.i.i = lshr i32 %79, 16 + %shr.i.i.i145.i.i.i = lshr exact i32 %79, 16 %conv.i.i.i146.i.i.i = trunc i32 %shr.i.i.i145.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit149.i.i.i @@ -419953,7 +419853,7 @@ invoke.cont36.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont36.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %42, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %42, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -420024,7 +419924,7 @@ invoke.cont48.i.i.i: ; preds = %cond.false.i.i.i, % br i1 %cmp.i.i.i59.i.i.i, label %if.then.i.i.i75.i.i.i, label %if.else.i.i.i60.i.i.i if.then.i.i.i75.i.i.i: ; preds = %invoke.cont48.i.i.i - %shr.i.i.i76.i.i.i = lshr i32 %55, 16 + %shr.i.i.i76.i.i.i = lshr exact i32 %55, 16 %conv.i.i.i77.i.i.i = trunc i32 %shr.i.i.i76.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit80.i.i.i @@ -420093,7 +419993,7 @@ invoke.cont74.i.i.i: ; preds = %for.inc79.i.i.i, %i br i1 %cmp.i.i.i95.i.i.i, label %if.then.i.i.i111.i.i.i, label %if.else.i.i.i96.i.i.i if.then.i.i.i111.i.i.i: ; preds = %invoke.cont74.i.i.i - %shr.i.i.i112.i.i.i = lshr i32 %69, 16 + %shr.i.i.i112.i.i.i = lshr exact i32 %69, 16 %conv.i.i.i113.i.i.i = trunc i32 %shr.i.i.i112.i.i.i to i16 br label %for.inc79.i.i.i @@ -420162,7 +420062,7 @@ invoke.cont93.i.i.i: ; preds = %cond.false87.i.i.i, br i1 %cmp.i.i.i128.i.i.i, label %if.then.i.i.i144.i.i.i, label %if.else.i.i.i129.i.i.i if.then.i.i.i144.i.i.i: ; preds = %invoke.cont93.i.i.i - %shr.i.i.i145.i.i.i = lshr i32 %79, 16 + %shr.i.i.i145.i.i.i = lshr exact i32 %79, 16 %conv.i.i.i146.i.i.i = trunc i32 %shr.i.i.i145.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit149.i.i.i @@ -422378,7 +422278,7 @@ invoke.cont36.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont36.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %42, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %42, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -422438,7 +422338,7 @@ if.then41.i.i.i: ; preds = %for.end.i.i.i br i1 %cmp.i.i.i65.i.i.i, label %if.then.i.i.i81.i.i.i, label %if.else.i.i.i66.i.i.i if.then.i.i.i81.i.i.i: ; preds = %if.then41.i.i.i - %shr.i.i.i82.i.i.i = lshr i32 %53, 16 + %shr.i.i.i82.i.i.i = lshr exact i32 %53, 16 %conv.i.i.i83.i.i.i = trunc i32 %shr.i.i.i82.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit86.i.i.i @@ -422509,7 +422409,7 @@ invoke.cont74.i.i.i: ; preds = %for.inc79.i.i.i, %i br i1 %cmp.i.i.i105.i.i.i, label %if.then.i.i.i121.i.i.i, label %if.else.i.i.i106.i.i.i if.then.i.i.i121.i.i.i: ; preds = %invoke.cont74.i.i.i - %shr.i.i.i122.i.i.i = lshr i32 %67, 16 + %shr.i.i.i122.i.i.i = lshr exact i32 %67, 16 %conv.i.i.i123.i.i.i = trunc i32 %shr.i.i.i122.i.i.i to i16 br label %for.inc79.i.i.i @@ -422569,7 +422469,7 @@ for.end81.i.i.i: ; preds = %for.end81.loopexit. br i1 %cmp.i.i.i140.i.i.i, label %if.then.i.i.i156.i.i.i, label %if.else.i.i.i141.i.i.i if.then.i.i.i156.i.i.i: ; preds = %for.end81.i.i.i - %shr.i.i.i157.i.i.i = lshr i32 %75, 16 + %shr.i.i.i157.i.i.i = lshr exact i32 %75, 16 %conv.i.i.i158.i.i.i = trunc i32 %shr.i.i.i157.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit161.i.i.i @@ -425595,7 +425495,7 @@ invoke.cont36.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont36.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %44, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %44, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -425669,7 +425569,7 @@ invoke.cont48.i.i.i: ; preds = %cond.false.i.i.i, % br i1 %cmp.i.i.i63.i.i.i, label %if.then.i.i.i79.i.i.i, label %if.else.i.i.i64.i.i.i if.then.i.i.i79.i.i.i: ; preds = %invoke.cont48.i.i.i - %shr.i.i.i80.i.i.i = lshr i32 %58, 16 + %shr.i.i.i80.i.i.i = lshr exact i32 %58, 16 %conv.i.i.i81.i.i.i = trunc i32 %shr.i.i.i80.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit84.i.i.i @@ -425744,7 +425644,7 @@ invoke.cont74.i.i.i: ; preds = %for.inc79.i.i.i, %i br i1 %cmp.i.i.i103.i.i.i, label %if.then.i.i.i119.i.i.i, label %if.else.i.i.i104.i.i.i if.then.i.i.i119.i.i.i: ; preds = %invoke.cont74.i.i.i - %shr.i.i.i120.i.i.i = lshr i32 %74, 16 + %shr.i.i.i120.i.i.i = lshr exact i32 %74, 16 %conv.i.i.i121.i.i.i = trunc i32 %shr.i.i.i120.i.i.i to i16 br label %for.inc79.i.i.i @@ -425816,7 +425716,7 @@ invoke.cont93.i.i.i: ; preds = %cond.false87.i.i.i, br i1 %cmp.i.i.i138.i.i.i, label %if.then.i.i.i154.i.i.i, label %if.else.i.i.i139.i.i.i if.then.i.i.i154.i.i.i: ; preds = %invoke.cont93.i.i.i - %shr.i.i.i155.i.i.i = lshr i32 %85, 16 + %shr.i.i.i155.i.i.i = lshr exact i32 %85, 16 %conv.i.i.i156.i.i.i = trunc i32 %shr.i.i.i155.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit159.i.i.i @@ -428851,7 +428751,7 @@ invoke.cont36.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont36.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %42, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %42, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -428924,7 +428824,7 @@ invoke.cont48.i.i.i: ; preds = %cond.false.i.i.i, % br i1 %cmp.i.i.i65.i.i.i, label %if.then.i.i.i81.i.i.i, label %if.else.i.i.i66.i.i.i if.then.i.i.i81.i.i.i: ; preds = %invoke.cont48.i.i.i - %shr.i.i.i82.i.i.i = lshr i32 %55, 16 + %shr.i.i.i82.i.i.i = lshr exact i32 %55, 16 %conv.i.i.i83.i.i.i = trunc i32 %shr.i.i.i82.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit86.i.i.i @@ -428995,7 +428895,7 @@ invoke.cont74.i.i.i: ; preds = %for.inc79.i.i.i, %i br i1 %cmp.i.i.i105.i.i.i, label %if.then.i.i.i121.i.i.i, label %if.else.i.i.i106.i.i.i if.then.i.i.i121.i.i.i: ; preds = %invoke.cont74.i.i.i - %shr.i.i.i122.i.i.i = lshr i32 %69, 16 + %shr.i.i.i122.i.i.i = lshr exact i32 %69, 16 %conv.i.i.i123.i.i.i = trunc i32 %shr.i.i.i122.i.i.i to i16 br label %for.inc79.i.i.i @@ -429066,7 +428966,7 @@ invoke.cont93.i.i.i: ; preds = %cond.false87.i.i.i, br i1 %cmp.i.i.i140.i.i.i, label %if.then.i.i.i156.i.i.i, label %if.else.i.i.i141.i.i.i if.then.i.i.i156.i.i.i: ; preds = %invoke.cont93.i.i.i - %shr.i.i.i157.i.i.i = lshr i32 %79, 16 + %shr.i.i.i157.i.i.i = lshr exact i32 %79, 16 %conv.i.i.i158.i.i.i = trunc i32 %shr.i.i.i157.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit161.i.i.i @@ -432084,7 +431984,7 @@ invoke.cont36.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont36.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %45, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %45, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -432155,7 +432055,7 @@ invoke.cont48.i.i.i: ; preds = %cond.false.i.i.i, % br i1 %cmp.i.i.i59.i.i.i, label %if.then.i.i.i75.i.i.i, label %if.else.i.i.i60.i.i.i if.then.i.i.i75.i.i.i: ; preds = %invoke.cont48.i.i.i - %shr.i.i.i76.i.i.i = lshr i32 %57, 16 + %shr.i.i.i76.i.i.i = lshr exact i32 %57, 16 %conv.i.i.i77.i.i.i = trunc i32 %shr.i.i.i76.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit80.i.i.i @@ -432225,7 +432125,7 @@ invoke.cont74.i.i.i: ; preds = %for.inc79.i.i.i, %i br i1 %cmp.i.i.i95.i.i.i, label %if.then.i.i.i111.i.i.i, label %if.else.i.i.i96.i.i.i if.then.i.i.i111.i.i.i: ; preds = %invoke.cont74.i.i.i - %shr.i.i.i112.i.i.i = lshr i32 %72, 16 + %shr.i.i.i112.i.i.i = lshr exact i32 %72, 16 %conv.i.i.i113.i.i.i = trunc i32 %shr.i.i.i112.i.i.i to i16 br label %for.inc79.i.i.i @@ -432294,7 +432194,7 @@ invoke.cont93.i.i.i: ; preds = %cond.false87.i.i.i, br i1 %cmp.i.i.i128.i.i.i, label %if.then.i.i.i144.i.i.i, label %if.else.i.i.i129.i.i.i if.then.i.i.i144.i.i.i: ; preds = %invoke.cont93.i.i.i - %shr.i.i.i145.i.i.i = lshr i32 %81, 16 + %shr.i.i.i145.i.i.i = lshr exact i32 %81, 16 %conv.i.i.i146.i.i.i = trunc i32 %shr.i.i.i145.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit149.i.i.i @@ -435341,7 +435241,7 @@ invoke.cont36.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont36.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %45, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %45, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -435415,7 +435315,7 @@ invoke.cont48.i.i.i: ; preds = %cond.false.i.i.i, % br i1 %cmp.i.i.i63.i.i.i, label %if.then.i.i.i79.i.i.i, label %if.else.i.i.i64.i.i.i if.then.i.i.i79.i.i.i: ; preds = %invoke.cont48.i.i.i - %shr.i.i.i80.i.i.i = lshr i32 %59, 16 + %shr.i.i.i80.i.i.i = lshr exact i32 %59, 16 %conv.i.i.i81.i.i.i = trunc i32 %shr.i.i.i80.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit84.i.i.i @@ -435487,7 +435387,7 @@ invoke.cont74.i.i.i: ; preds = %for.inc79.i.i.i, %i br i1 %cmp.i.i.i103.i.i.i, label %if.then.i.i.i119.i.i.i, label %if.else.i.i.i104.i.i.i if.then.i.i.i119.i.i.i: ; preds = %invoke.cont74.i.i.i - %shr.i.i.i120.i.i.i = lshr i32 %74, 16 + %shr.i.i.i120.i.i.i = lshr exact i32 %74, 16 %conv.i.i.i121.i.i.i = trunc i32 %shr.i.i.i120.i.i.i to i16 br label %for.inc79.i.i.i @@ -435559,7 +435459,7 @@ invoke.cont93.i.i.i: ; preds = %cond.false87.i.i.i, br i1 %cmp.i.i.i138.i.i.i, label %if.then.i.i.i154.i.i.i, label %if.else.i.i.i139.i.i.i if.then.i.i.i154.i.i.i: ; preds = %invoke.cont93.i.i.i - %shr.i.i.i155.i.i.i = lshr i32 %85, 16 + %shr.i.i.i155.i.i.i = lshr exact i32 %85, 16 %conv.i.i.i156.i.i.i = trunc i32 %shr.i.i.i155.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit159.i.i.i @@ -440932,7 +440832,7 @@ invoke.cont36.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont36.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %45, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %45, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -441006,7 +440906,7 @@ invoke.cont48.i.i.i: ; preds = %cond.false.i.i.i, % br i1 %cmp.i.i.i63.i.i.i, label %if.then.i.i.i79.i.i.i, label %if.else.i.i.i64.i.i.i if.then.i.i.i79.i.i.i: ; preds = %invoke.cont48.i.i.i - %shr.i.i.i80.i.i.i = lshr i32 %59, 16 + %shr.i.i.i80.i.i.i = lshr exact i32 %59, 16 %conv.i.i.i81.i.i.i = trunc i32 %shr.i.i.i80.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit84.i.i.i @@ -441078,7 +440978,7 @@ invoke.cont74.i.i.i: ; preds = %for.inc79.i.i.i, %i br i1 %cmp.i.i.i103.i.i.i, label %if.then.i.i.i119.i.i.i, label %if.else.i.i.i104.i.i.i if.then.i.i.i119.i.i.i: ; preds = %invoke.cont74.i.i.i - %shr.i.i.i120.i.i.i = lshr i32 %74, 16 + %shr.i.i.i120.i.i.i = lshr exact i32 %74, 16 %conv.i.i.i121.i.i.i = trunc i32 %shr.i.i.i120.i.i.i to i16 br label %for.inc79.i.i.i @@ -441150,7 +441050,7 @@ invoke.cont93.i.i.i: ; preds = %cond.false87.i.i.i, br i1 %cmp.i.i.i138.i.i.i, label %if.then.i.i.i154.i.i.i, label %if.else.i.i.i139.i.i.i if.then.i.i.i154.i.i.i: ; preds = %invoke.cont93.i.i.i - %shr.i.i.i155.i.i.i = lshr i32 %85, 16 + %shr.i.i.i155.i.i.i = lshr exact i32 %85, 16 %conv.i.i.i156.i.i.i = trunc i32 %shr.i.i.i155.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit159.i.i.i @@ -444165,7 +444065,7 @@ invoke.cont36.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont36.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %42, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %42, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -444236,7 +444136,7 @@ invoke.cont48.i.i.i: ; preds = %cond.false.i.i.i, % br i1 %cmp.i.i.i59.i.i.i, label %if.then.i.i.i75.i.i.i, label %if.else.i.i.i60.i.i.i if.then.i.i.i75.i.i.i: ; preds = %invoke.cont48.i.i.i - %shr.i.i.i76.i.i.i = lshr i32 %55, 16 + %shr.i.i.i76.i.i.i = lshr exact i32 %55, 16 %conv.i.i.i77.i.i.i = trunc i32 %shr.i.i.i76.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit80.i.i.i @@ -444305,7 +444205,7 @@ invoke.cont74.i.i.i: ; preds = %for.inc79.i.i.i, %i br i1 %cmp.i.i.i95.i.i.i, label %if.then.i.i.i111.i.i.i, label %if.else.i.i.i96.i.i.i if.then.i.i.i111.i.i.i: ; preds = %invoke.cont74.i.i.i - %shr.i.i.i112.i.i.i = lshr i32 %69, 16 + %shr.i.i.i112.i.i.i = lshr exact i32 %69, 16 %conv.i.i.i113.i.i.i = trunc i32 %shr.i.i.i112.i.i.i to i16 br label %for.inc79.i.i.i @@ -444374,7 +444274,7 @@ invoke.cont93.i.i.i: ; preds = %cond.false87.i.i.i, br i1 %cmp.i.i.i128.i.i.i, label %if.then.i.i.i144.i.i.i, label %if.else.i.i.i129.i.i.i if.then.i.i.i144.i.i.i: ; preds = %invoke.cont93.i.i.i - %shr.i.i.i145.i.i.i = lshr i32 %79, 16 + %shr.i.i.i145.i.i.i = lshr exact i32 %79, 16 %conv.i.i.i146.i.i.i = trunc i32 %shr.i.i.i145.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit149.i.i.i @@ -447391,7 +447291,7 @@ invoke.cont36.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont36.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %42, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %42, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -447464,7 +447364,7 @@ invoke.cont48.i.i.i: ; preds = %cond.false.i.i.i, % br i1 %cmp.i.i.i65.i.i.i, label %if.then.i.i.i81.i.i.i, label %if.else.i.i.i66.i.i.i if.then.i.i.i81.i.i.i: ; preds = %invoke.cont48.i.i.i - %shr.i.i.i82.i.i.i = lshr i32 %55, 16 + %shr.i.i.i82.i.i.i = lshr exact i32 %55, 16 %conv.i.i.i83.i.i.i = trunc i32 %shr.i.i.i82.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit86.i.i.i @@ -447535,7 +447435,7 @@ invoke.cont74.i.i.i: ; preds = %for.inc79.i.i.i, %i br i1 %cmp.i.i.i105.i.i.i, label %if.then.i.i.i121.i.i.i, label %if.else.i.i.i106.i.i.i if.then.i.i.i121.i.i.i: ; preds = %invoke.cont74.i.i.i - %shr.i.i.i122.i.i.i = lshr i32 %69, 16 + %shr.i.i.i122.i.i.i = lshr exact i32 %69, 16 %conv.i.i.i123.i.i.i = trunc i32 %shr.i.i.i122.i.i.i to i16 br label %for.inc79.i.i.i @@ -447606,7 +447506,7 @@ invoke.cont93.i.i.i: ; preds = %cond.false87.i.i.i, br i1 %cmp.i.i.i140.i.i.i, label %if.then.i.i.i156.i.i.i, label %if.else.i.i.i141.i.i.i if.then.i.i.i156.i.i.i: ; preds = %invoke.cont93.i.i.i - %shr.i.i.i157.i.i.i = lshr i32 %79, 16 + %shr.i.i.i157.i.i.i = lshr exact i32 %79, 16 %conv.i.i.i158.i.i.i = trunc i32 %shr.i.i.i157.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit161.i.i.i @@ -450651,7 +450551,7 @@ invoke.cont36.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont36.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %44, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %44, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -450725,7 +450625,7 @@ invoke.cont48.i.i.i: ; preds = %cond.false.i.i.i, % br i1 %cmp.i.i.i63.i.i.i, label %if.then.i.i.i79.i.i.i, label %if.else.i.i.i64.i.i.i if.then.i.i.i79.i.i.i: ; preds = %invoke.cont48.i.i.i - %shr.i.i.i80.i.i.i = lshr i32 %58, 16 + %shr.i.i.i80.i.i.i = lshr exact i32 %58, 16 %conv.i.i.i81.i.i.i = trunc i32 %shr.i.i.i80.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit84.i.i.i @@ -450800,7 +450700,7 @@ invoke.cont74.i.i.i: ; preds = %for.inc79.i.i.i, %i br i1 %cmp.i.i.i103.i.i.i, label %if.then.i.i.i119.i.i.i, label %if.else.i.i.i104.i.i.i if.then.i.i.i119.i.i.i: ; preds = %invoke.cont74.i.i.i - %shr.i.i.i120.i.i.i = lshr i32 %74, 16 + %shr.i.i.i120.i.i.i = lshr exact i32 %74, 16 %conv.i.i.i121.i.i.i = trunc i32 %shr.i.i.i120.i.i.i to i16 br label %for.inc79.i.i.i @@ -450872,7 +450772,7 @@ invoke.cont93.i.i.i: ; preds = %cond.false87.i.i.i, br i1 %cmp.i.i.i138.i.i.i, label %if.then.i.i.i154.i.i.i, label %if.else.i.i.i139.i.i.i if.then.i.i.i154.i.i.i: ; preds = %invoke.cont93.i.i.i - %shr.i.i.i155.i.i.i = lshr i32 %85, 16 + %shr.i.i.i155.i.i.i = lshr exact i32 %85, 16 %conv.i.i.i156.i.i.i = trunc i32 %shr.i.i.i155.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit159.i.i.i @@ -453869,7 +453769,7 @@ invoke.cont36.i.i.i: ; preds = %for.inc.i.i.i, %inv br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %invoke.cont36.i.i.i - %shr.i.i.i.i.i.i = lshr i32 %42, 16 + %shr.i.i.i.i.i.i = lshr exact i32 %42, 16 %conv.i.i.i.i.i.i = trunc i32 %shr.i.i.i.i.i.i to i16 br label %for.inc.i.i.i @@ -453929,7 +453829,7 @@ if.then41.i.i.i: ; preds = %for.end.i.i.i br i1 %cmp.i.i.i65.i.i.i, label %if.then.i.i.i81.i.i.i, label %if.else.i.i.i66.i.i.i if.then.i.i.i81.i.i.i: ; preds = %if.then41.i.i.i - %shr.i.i.i82.i.i.i = lshr i32 %53, 16 + %shr.i.i.i82.i.i.i = lshr exact i32 %53, 16 %conv.i.i.i83.i.i.i = trunc i32 %shr.i.i.i82.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit86.i.i.i @@ -454000,7 +453900,7 @@ invoke.cont74.i.i.i: ; preds = %for.inc79.i.i.i, %i br i1 %cmp.i.i.i105.i.i.i, label %if.then.i.i.i121.i.i.i, label %if.else.i.i.i106.i.i.i if.then.i.i.i121.i.i.i: ; preds = %invoke.cont74.i.i.i - %shr.i.i.i122.i.i.i = lshr i32 %67, 16 + %shr.i.i.i122.i.i.i = lshr exact i32 %67, 16 %conv.i.i.i123.i.i.i = trunc i32 %shr.i.i.i122.i.i.i to i16 br label %for.inc79.i.i.i @@ -454060,7 +453960,7 @@ for.end81.i.i.i: ; preds = %for.end81.loopexit. br i1 %cmp.i.i.i140.i.i.i, label %if.then.i.i.i156.i.i.i, label %if.else.i.i.i141.i.i.i if.then.i.i.i156.i.i.i: ; preds = %for.end81.i.i.i - %shr.i.i.i157.i.i.i = lshr i32 %75, 16 + %shr.i.i.i157.i.i.i = lshr exact i32 %75, 16 %conv.i.i.i158.i.i.i = trunc i32 %shr.i.i.i157.i.i.i to i16 br label %_ZN18OpenImageIO_v2_6_09DataProxyI4halffEaSEf.exit161.i.i.i diff --git a/bench/oiio/optimized/imagebufalgo_yee.cpp.ll b/bench/oiio/optimized/imagebufalgo_yee.cpp.ll index 42e39c1d58e..ae915eeec8a 100644 --- a/bench/oiio/optimized/imagebufalgo_yee.cpp.ll +++ b/bench/oiio/optimized/imagebufalgo_yee.cpp.ll @@ -2011,8 +2011,8 @@ for.body.i.i.i.i: ; preds = %for.inc.i.i.i.i, %i if.then.i.i.i.i: ; preds = %for.body.i.i.i.i %16 = bitcast float %15 to i32 - %div.i.i.i.i.i = sdiv i32 %16, 3 - %add.i.i.i.i.i = add nsw i32 %div.i.i.i.i.i, 709965728 + %div.i.i.i.i.i = udiv i32 %16, 3 + %add.i.i.i.i.i = add nuw nsw i32 %div.i.i.i.i.i, 709965728 %17 = bitcast i32 %add.i.i.i.i.i to float %mul2.i.i.i.i.i = fmul float %17, %17 %div3.i.i.i.i.i = fdiv float %15, %mul2.i.i.i.i.i diff --git a/bench/oiio/optimized/strutil.cpp.ll b/bench/oiio/optimized/strutil.cpp.ll index c2f5a35da58..2b559747e76 100644 --- a/bench/oiio/optimized/strutil.cpp.ll +++ b/bench/oiio/optimized/strutil.cpp.ll @@ -3875,7 +3875,7 @@ if.then.i: ; preds = %cond.end25 %2 = load double, ptr %arrayidx.i, align 8 %mul.i = fmul double %d.0, %2 %3 = bitcast double %d.0 to i64 - %and.i = and i64 %3, -134217728 + %and.i = and i64 %3, 9223372036720558080 %4 = bitcast i64 %and.i to double %5 = bitcast double %2 to i64 %and31.i = and i64 %5, -134217728 @@ -3910,7 +3910,7 @@ if.then61.i: ; preds = %if.then60.i %12 = load double, ptr %arrayidx68.i, align 8 %mul69.i = fmul double %d.0, %12 %13 = bitcast double %d.0 to i64 - %and81.i = and i64 %13, -134217728 + %and81.i = and i64 %13, 9223372036720558080 %14 = bitcast i64 %and81.i to double %15 = bitcast double %12 to i64 %and107.i = and i64 %15, -134217728 @@ -3972,7 +3972,7 @@ if.then211.i: ; preds = %if.else209.i %34 = load double, ptr %arrayidx222.i, align 8 %mul223.i = fmul double %d.0, %34 %35 = bitcast double %d.0 to i64 - %and235.i = and i64 %35, -134217728 + %and235.i = and i64 %35, 9223372036720558080 %36 = bitcast i64 %and235.i to double %37 = bitcast double %34 to i64 %and261.i = and i64 %37, -134217728 diff --git a/bench/openexr/optimized/ImfConvert.cpp.ll b/bench/openexr/optimized/ImfConvert.cpp.ll index 0cadf9121b1..73bddf3551d 100644 --- a/bench/openexr/optimized/ImfConvert.cpp.ll +++ b/bench/openexr/optimized/ImfConvert.cpp.ll @@ -54,8 +54,8 @@ return: ; preds = %if.end, %entry, %lo define noundef i32 @_ZN7Imf_3_211floatToUintEf(float noundef %f) local_unnamed_addr #4 { entry: %0 = bitcast float %f to i32 - %or.cond7 = icmp ugt i32 %0, 2139095040 - br i1 %or.cond7, label %return, label %if.end + %cmp.i5 = icmp ugt i32 %0, 2139095040 + br i1 %cmp.i5, label %return, label %if.end if.end: ; preds = %entry %cmp.i6 = fcmp oeq float %f, 0x7FF0000000000000 @@ -82,9 +82,6 @@ entry: if.end: ; preds = %entry %2 = bitcast float %conv to i32 - %shr.i.i = lshr i32 %2, 16 - %3 = trunc i32 %shr.i.i to i16 - %conv.i.i = and i16 %3, -32768 %cmp.i.i = icmp ugt i32 %2, 947912703 br i1 %cmp.i.i, label %if.then.i.i, label %if.end37.i.i @@ -93,7 +90,6 @@ if.then.i.i: ; preds = %if.end br i1 %cmp2.i.i, label %if.then4.i.i, label %if.end20.i.i if.then4.i.i: ; preds = %if.then.i.i - %conv6.i.i = or disjoint i16 %conv.i.i, 31744 %cmp7.i.i = icmp eq i32 %2, 2139095040 br i1 %cmp7.i.i, label %return, label %if.end.i.i @@ -101,10 +97,10 @@ if.end.i.i: ; preds = %if.then4.i.i %and9.i.i = lshr i32 %2, 13 %shr10.i.i = and i32 %and9.i.i, 1023 %cmp15.i.i = icmp eq i32 %shr10.i.i, 0 - %4 = zext i1 %cmp15.i.i to i16 - %5 = trunc i32 %shr10.i.i to i16 - %6 = or i16 %4, %5 - %conv19.i.i = or disjoint i16 %6, %conv6.i.i + %3 = zext i1 %cmp15.i.i to i16 + %4 = trunc i32 %shr10.i.i to i16 + %5 = or i16 %4, %3 + %conv19.i.i = or disjoint i16 %5, 31744 br label %return if.end20.i.i: ; preds = %if.then.i.i @@ -148,7 +144,7 @@ if.then55.i.i: ; preds = %lor.lhs.false.i.i, br label %return return: ; preds = %if.end20.i.i, %if.then55.i.i, %lor.lhs.false.i.i, %if.end37.i.i, %if.end27.i.i, %if.end.i.i, %if.then4.i.i, %entry - %retval.sroa.0.0 = phi i16 [ 31744, %entry ], [ %conv19.i.i, %if.end.i.i ], [ %conv36.i.i, %if.end27.i.i ], [ %conv6.i.i, %if.then4.i.i ], [ %conv.i.i, %if.end37.i.i ], [ %inc.i.i, %if.then55.i.i ], [ %conv49.i.i, %lor.lhs.false.i.i ], [ 31744, %if.end20.i.i ] + %retval.sroa.0.0 = phi i16 [ 31744, %entry ], [ %conv19.i.i, %if.end.i.i ], [ %conv36.i.i, %if.end27.i.i ], [ 31744, %if.then4.i.i ], [ 0, %if.end37.i.i ], [ %inc.i.i, %if.then55.i.i ], [ %conv49.i.i, %lor.lhs.false.i.i ], [ 31744, %if.end20.i.i ] ret i16 %retval.sroa.0.0 } diff --git a/bench/openexr/optimized/pack.c.ll b/bench/openexr/optimized/pack.c.ll index db5f4e12870..585ecefb306 100644 --- a/bench/openexr/optimized/pack.c.ll +++ b/bench/openexr/optimized/pack.c.ll @@ -25,8 +25,8 @@ define internal noundef i32 @default_pack(ptr nocapture noundef %encode) #1 { entry: %height = getelementptr inbounds i8, ptr %encode, i64 36 %0 = load i32, ptr %height, align 4 - %cmp175 = icmp sgt i32 %0, 0 - br i1 %cmp175, label %for.body.lr.ph, label %for.end173 + %cmp173 = icmp sgt i32 %0, 0 + br i1 %cmp173, label %for.body.lr.ph, label %for.end173 for.body.lr.ph: ; preds = %entry %packed_buffer = getelementptr inbounds i8, ptr %encode, i64 96 @@ -37,23 +37,23 @@ for.body.lr.ph: ; preds = %entry br label %for.body for.body: ; preds = %for.body.lr.ph, %for.inc171 - %2 = phi i32 [ %0, %for.body.lr.ph ], [ %50, %for.inc171 ] - %3 = phi i16 [ %.pre, %for.body.lr.ph ], [ %51, %for.inc171 ] - %4 = phi i16 [ %.pre, %for.body.lr.ph ], [ %52, %for.inc171 ] - %indvars.iv197 = phi i64 [ 0, %for.body.lr.ph ], [ %indvars.iv.next198, %for.inc171 ] - %dstbuffer.0178 = phi ptr [ %1, %for.body.lr.ph ], [ %dstbuffer.1.lcssa, %for.inc171 ] - %packed_bytes.0177 = phi i64 [ 0, %for.body.lr.ph ], [ %packed_bytes.1.lcssa, %for.inc171 ] + %2 = phi i32 [ %0, %for.body.lr.ph ], [ %49, %for.inc171 ] + %3 = phi i16 [ %.pre, %for.body.lr.ph ], [ %50, %for.inc171 ] + %4 = phi i16 [ %.pre, %for.body.lr.ph ], [ %51, %for.inc171 ] + %indvars.iv195 = phi i64 [ 0, %for.body.lr.ph ], [ %indvars.iv.next196, %for.inc171 ] + %dstbuffer.0176 = phi ptr [ %1, %for.body.lr.ph ], [ %dstbuffer.1.lcssa, %for.inc171 ] + %packed_bytes.0175 = phi i64 [ 0, %for.body.lr.ph ], [ %packed_bytes.1.lcssa, %for.inc171 ] %5 = load i32, ptr %start_y, align 8 - %6 = trunc i64 %indvars.iv197 to i32 + %6 = trunc i64 %indvars.iv195 to i32 %add = add nsw i32 %5, %6 - %cmp3169 = icmp sgt i16 %4, 0 - br i1 %cmp3169, label %for.body5, label %for.inc171 + %cmp3167 = icmp sgt i16 %4, 0 + br i1 %cmp3167, label %for.body5, label %for.inc171 for.body5: ; preds = %for.body, %for.inc168 - %7 = phi i16 [ %48, %for.inc168 ], [ %3, %for.body ] + %7 = phi i16 [ %47, %for.inc168 ], [ %3, %for.body ] %indvars.iv = phi i64 [ %indvars.iv.next, %for.inc168 ], [ 0, %for.body ] - %dstbuffer.1172 = phi ptr [ %dstbuffer.2, %for.inc168 ], [ %dstbuffer.0178, %for.body ] - %packed_bytes.1171 = phi i64 [ %packed_bytes.2, %for.inc168 ], [ %packed_bytes.0177, %for.body ] + %dstbuffer.1170 = phi ptr [ %dstbuffer.2, %for.inc168 ], [ %dstbuffer.0176, %for.body ] + %packed_bytes.1169 = phi i64 [ %packed_bytes.2, %for.inc168 ], [ %packed_bytes.0175, %for.body ] %8 = load ptr, ptr %encode, align 8 %add.ptr = getelementptr inbounds %struct.exr_coding_channel_info_t, ptr %8, i64 %indvars.iv %height6 = getelementptr inbounds i8, ptr %add.ptr, i64 8 @@ -101,7 +101,7 @@ if.else: ; preds = %if.end if.end32.sink.split: ; preds = %if.else, %if.then20 %conv22.sink = phi i64 [ %conv22, %if.then20 ], [ %conv29, %if.else ] - %conv23.sink = phi i64 [ %conv23, %if.then20 ], [ %indvars.iv197, %if.else ] + %conv23.sink = phi i64 [ %conv23, %if.then20 ], [ %indvars.iv195, %if.else ] %mul24 = mul nsw i64 %conv23.sink, %conv22.sink %add.ptr25 = getelementptr inbounds i8, ptr %11, i64 %mul24 br label %if.end32 @@ -128,46 +128,46 @@ sw.bb: ; preds = %if.end32 ] for.cond58.preheader: ; preds = %sw.bb - %cmp59156 = icmp sgt i32 %12, 0 - br i1 %cmp59156, label %for.body61.lr.ph, label %sw.epilog165 + %cmp59154 = icmp sgt i32 %12, 0 + br i1 %cmp59154, label %for.body61.lr.ph, label %sw.epilog165 for.body61.lr.ph: ; preds = %for.cond58.preheader %idx.ext65 = sext i32 %17 to i64 br label %for.body61 for.cond45.preheader: ; preds = %sw.bb - %cmp46160 = icmp sgt i32 %12, 0 - br i1 %cmp46160, label %for.body48.lr.ph, label %sw.epilog165 + %cmp46158 = icmp sgt i32 %12, 0 + br i1 %cmp46158, label %for.body48.lr.ph, label %sw.epilog165 for.body48.lr.ph: ; preds = %for.cond45.preheader %idx.ext50 = sext i32 %17 to i64 br label %for.body48 for.cond36.preheader: ; preds = %sw.bb - %cmp37164 = icmp sgt i32 %12, 0 - br i1 %cmp37164, label %for.body39.lr.ph, label %sw.epilog165 + %cmp37162 = icmp sgt i32 %12, 0 + br i1 %cmp37162, label %for.body39.lr.ph, label %sw.epilog165 for.body39.lr.ph: ; preds = %for.cond36.preheader %idx.ext40 = sext i32 %17 to i64 br label %for.body39 for.body39: ; preds = %for.body39.lr.ph, %for.body39 - %cdata.1167 = phi ptr [ %cdata.0, %for.body39.lr.ph ], [ %add.ptr41, %for.body39 ] - %x.0166 = phi i32 [ 0, %for.body39.lr.ph ], [ %inc, %for.body39 ] - %dst.0165 = phi ptr [ %dstbuffer.1172, %for.body39.lr.ph ], [ %incdec.ptr, %for.body39 ] - %20 = load i16, ptr %cdata.1167, align 2 - store i16 %20, ptr %dst.0165, align 1 - %incdec.ptr = getelementptr inbounds i8, ptr %dst.0165, i64 2 - %add.ptr41 = getelementptr inbounds i8, ptr %cdata.1167, i64 %idx.ext40 - %inc = add nuw nsw i32 %x.0166, 1 - %exitcond195.not = icmp eq i32 %inc, %12 - br i1 %exitcond195.not, label %sw.epilog165, label %for.body39, !llvm.loop !4 + %cdata.1165 = phi ptr [ %cdata.0, %for.body39.lr.ph ], [ %add.ptr41, %for.body39 ] + %x.0164 = phi i32 [ 0, %for.body39.lr.ph ], [ %inc, %for.body39 ] + %dst.0163 = phi ptr [ %dstbuffer.1170, %for.body39.lr.ph ], [ %incdec.ptr, %for.body39 ] + %20 = load i16, ptr %cdata.1165, align 2 + store i16 %20, ptr %dst.0163, align 1 + %incdec.ptr = getelementptr inbounds i8, ptr %dst.0163, i64 2 + %add.ptr41 = getelementptr inbounds i8, ptr %cdata.1165, i64 %idx.ext40 + %inc = add nuw nsw i32 %x.0164, 1 + %exitcond193.not = icmp eq i32 %inc, %12 + br i1 %exitcond193.not, label %sw.epilog165, label %for.body39, !llvm.loop !4 for.body48: ; preds = %for.body48.lr.ph, %float_to_half.exit - %cdata.2163 = phi ptr [ %cdata.0, %for.body48.lr.ph ], [ %add.ptr51, %float_to_half.exit ] - %x44.0162 = phi i32 [ 0, %for.body48.lr.ph ], [ %inc53, %float_to_half.exit ] - %dst43.0161 = phi ptr [ %dstbuffer.1172, %for.body48.lr.ph ], [ %incdec.ptr49, %float_to_half.exit ] - %21 = load float, ptr %cdata.2163, align 4 + %cdata.2161 = phi ptr [ %cdata.0, %for.body48.lr.ph ], [ %add.ptr51, %float_to_half.exit ] + %x44.0160 = phi i32 [ 0, %for.body48.lr.ph ], [ %inc53, %float_to_half.exit ] + %dst43.0159 = phi ptr [ %dstbuffer.1170, %for.body48.lr.ph ], [ %incdec.ptr49, %float_to_half.exit ] + %21 = load float, ptr %cdata.2161, align 4 %22 = bitcast float %21 to i32 %23 = tail call float @llvm.fabs.f32(float %21) %and.i.i = bitcast float %23 to i32 @@ -246,27 +246,24 @@ if.then65.i.i: ; preds = %lor.lhs.false.i.i, float_to_half.exit: ; preds = %if.then6.i.i, %if.end.i.i, %if.then29.i.i, %if.end33.i.i, %if.end43.i.i, %lor.lhs.false.i.i, %if.then65.i.i %retval.0.i.i = phi i16 [ %conv23.i.i, %if.end.i.i ], [ %conv32.i.i, %if.then29.i.i ], [ %conv42.i.i, %if.end33.i.i ], [ %conv8.i.i, %if.then6.i.i ], [ %conv.i.i, %if.end43.i.i ], [ %inc.i.i, %if.then65.i.i ], [ %conv56.i.i, %lor.lhs.false.i.i ] - store i16 %retval.0.i.i, ptr %dst43.0161, align 1 - %incdec.ptr49 = getelementptr inbounds i8, ptr %dst43.0161, i64 2 - %add.ptr51 = getelementptr inbounds i8, ptr %cdata.2163, i64 %idx.ext50 - %inc53 = add nuw nsw i32 %x44.0162, 1 - %exitcond194.not = icmp eq i32 %inc53, %12 - br i1 %exitcond194.not, label %sw.epilog165, label %for.body48, !llvm.loop !6 + store i16 %retval.0.i.i, ptr %dst43.0159, align 1 + %incdec.ptr49 = getelementptr inbounds i8, ptr %dst43.0159, i64 2 + %add.ptr51 = getelementptr inbounds i8, ptr %cdata.2161, i64 %idx.ext50 + %inc53 = add nuw nsw i32 %x44.0160, 1 + %exitcond192.not = icmp eq i32 %inc53, %12 + br i1 %exitcond192.not, label %sw.epilog165, label %for.body48, !llvm.loop !6 for.body61: ; preds = %for.body61.lr.ph, %uint_to_half.exit - %cdata.3159 = phi ptr [ %cdata.0, %for.body61.lr.ph ], [ %add.ptr66, %uint_to_half.exit ] - %x57.0158 = phi i32 [ 0, %for.body61.lr.ph ], [ %inc68, %uint_to_half.exit ] - %dst56.0157 = phi ptr [ %dstbuffer.1172, %for.body61.lr.ph ], [ %incdec.ptr64, %uint_to_half.exit ] - %28 = load i32, ptr %cdata.3159, align 4 + %cdata.3157 = phi ptr [ %cdata.0, %for.body61.lr.ph ], [ %add.ptr66, %uint_to_half.exit ] + %x57.0156 = phi i32 [ 0, %for.body61.lr.ph ], [ %inc68, %uint_to_half.exit ] + %dst56.0155 = phi ptr [ %dstbuffer.1170, %for.body61.lr.ph ], [ %incdec.ptr64, %uint_to_half.exit ] + %28 = load i32, ptr %cdata.3157, align 4 %cmp.i = icmp ugt i32 %28, 65504 br i1 %cmp.i, label %uint_to_half.exit, label %if.end.i if.end.i: ; preds = %for.body61 %conv.i = uitofp i32 %28 to float %29 = bitcast float %conv.i to i32 - %shr.i.i.i = lshr i32 %29, 16 - %30 = trunc i32 %shr.i.i.i to i16 - %conv.i.i.i = and i16 %30, -32768 %cmp.i.i.i = icmp ugt i32 %29, 947912703 br i1 %cmp.i.i.i, label %if.then.i.i.i, label %if.end43.i.i.i @@ -275,7 +272,6 @@ if.then.i.i.i: ; preds = %if.end.i br i1 %cmp3.i.i.i, label %if.then6.i.i.i, label %if.end24.i.i.i if.then6.i.i.i: ; preds = %if.then.i.i.i - %conv8.i.i.i = or disjoint i16 %conv.i.i.i, 31744 %cmp9.i.i.i = icmp eq i32 %29, 2139095040 br i1 %cmp9.i.i.i, label %uint_to_half.exit, label %if.end.i.i.i @@ -283,10 +279,10 @@ if.end.i.i.i: ; preds = %if.then6.i.i.i %and12.i.i.i = lshr i32 %29, 13 %shr13.i.i.i = and i32 %and12.i.i.i, 1023 %cmp18.i.i.i = icmp eq i32 %shr13.i.i.i, 0 - %31 = zext i1 %cmp18.i.i.i to i16 - %32 = trunc i32 %shr13.i.i.i to i16 - %33 = or i16 %31, %32 - %conv23.i.i.i = or disjoint i16 %33, %conv8.i.i.i + %30 = zext i1 %cmp18.i.i.i to i16 + %31 = trunc i32 %shr13.i.i.i to i16 + %32 = or i16 %31, %30 + %conv23.i.i.i = or disjoint i16 %32, 31744 br label %uint_to_half.exit if.end24.i.i.i: ; preds = %if.then.i.i.i @@ -330,81 +326,81 @@ if.then65.i.i.i: ; preds = %lor.lhs.false.i.i.i br label %uint_to_half.exit uint_to_half.exit: ; preds = %for.body61, %if.then6.i.i.i, %if.end.i.i.i, %if.end24.i.i.i, %if.end33.i.i.i, %if.end43.i.i.i, %lor.lhs.false.i.i.i, %if.then65.i.i.i - %retval.0.i = phi i16 [ 31744, %for.body61 ], [ %conv23.i.i.i, %if.end.i.i.i ], [ %conv42.i.i.i, %if.end33.i.i.i ], [ %conv8.i.i.i, %if.then6.i.i.i ], [ %conv.i.i.i, %if.end43.i.i.i ], [ %inc.i.i.i, %if.then65.i.i.i ], [ %conv56.i.i.i, %lor.lhs.false.i.i.i ], [ 31744, %if.end24.i.i.i ] - store i16 %retval.0.i, ptr %dst56.0157, align 1 - %incdec.ptr64 = getelementptr inbounds i8, ptr %dst56.0157, i64 2 - %add.ptr66 = getelementptr inbounds i8, ptr %cdata.3159, i64 %idx.ext65 - %inc68 = add nuw nsw i32 %x57.0158, 1 - %exitcond193.not = icmp eq i32 %inc68, %12 - br i1 %exitcond193.not, label %sw.epilog165, label %for.body61, !llvm.loop !7 + %retval.0.i = phi i16 [ 31744, %for.body61 ], [ %conv23.i.i.i, %if.end.i.i.i ], [ %conv42.i.i.i, %if.end33.i.i.i ], [ 31744, %if.then6.i.i.i ], [ 0, %if.end43.i.i.i ], [ %inc.i.i.i, %if.then65.i.i.i ], [ %conv56.i.i.i, %lor.lhs.false.i.i.i ], [ 31744, %if.end24.i.i.i ] + store i16 %retval.0.i, ptr %dst56.0155, align 1 + %incdec.ptr64 = getelementptr inbounds i8, ptr %dst56.0155, i64 2 + %add.ptr66 = getelementptr inbounds i8, ptr %cdata.3157, i64 %idx.ext65 + %inc68 = add nuw nsw i32 %x57.0156, 1 + %exitcond191.not = icmp eq i32 %inc68, %12 + br i1 %exitcond191.not, label %sw.epilog165, label %for.body61, !llvm.loop !7 sw.bb70: ; preds = %if.end32 %user_data_type71 = getelementptr inbounds i8, ptr %add.ptr, i64 30 - %34 = load i16, ptr %user_data_type71, align 2 - switch i16 %34, label %return [ + %33 = load i16, ptr %user_data_type71, align 2 + switch i16 %33, label %return [ i16 1, label %for.cond76.preheader i16 2, label %for.cond90.preheader i16 0, label %for.cond103.preheader ] for.cond103.preheader: ; preds = %sw.bb70 - %cmp104144 = icmp sgt i32 %12, 0 - br i1 %cmp104144, label %for.body106.lr.ph, label %sw.epilog165 + %cmp104142 = icmp sgt i32 %12, 0 + br i1 %cmp104142, label %for.body106.lr.ph, label %sw.epilog165 for.body106.lr.ph: ; preds = %for.cond103.preheader %idx.ext110 = sext i32 %17 to i64 br label %for.body106 for.cond90.preheader: ; preds = %sw.bb70 - %cmp91148 = icmp sgt i32 %12, 0 - br i1 %cmp91148, label %for.body93.lr.ph, label %sw.epilog165 + %cmp91146 = icmp sgt i32 %12, 0 + br i1 %cmp91146, label %for.body93.lr.ph, label %sw.epilog165 for.body93.lr.ph: ; preds = %for.cond90.preheader %idx.ext95 = sext i32 %17 to i64 br label %for.body93 for.cond76.preheader: ; preds = %sw.bb70 - %cmp77152 = icmp sgt i32 %12, 0 - br i1 %cmp77152, label %for.body79.lr.ph, label %sw.epilog165 + %cmp77150 = icmp sgt i32 %12, 0 + br i1 %cmp77150, label %for.body79.lr.ph, label %sw.epilog165 for.body79.lr.ph: ; preds = %for.cond76.preheader %idx.ext82 = sext i32 %17 to i64 br label %for.body79 for.body79: ; preds = %for.body79.lr.ph, %half_to_float_int.exit - %cdata.4155 = phi ptr [ %cdata.0, %for.body79.lr.ph ], [ %add.ptr83, %half_to_float_int.exit ] - %x75.0154 = phi i32 [ 0, %for.body79.lr.ph ], [ %inc85, %half_to_float_int.exit ] - %dst74.0153 = phi ptr [ %dstbuffer.1172, %for.body79.lr.ph ], [ %incdec.ptr81, %half_to_float_int.exit ] - %35 = load i16, ptr %cdata.4155, align 2 - %conv.i.i.i92 = zext i16 %35 to i32 - %36 = shl nuw nsw i32 %conv.i.i.i92, 13 - %shr.i.i.i93 = and i32 %36, 268427264 - %h.signext.i.i.i = sext i16 %35 to i32 + %cdata.4153 = phi ptr [ %cdata.0, %for.body79.lr.ph ], [ %add.ptr83, %half_to_float_int.exit ] + %x75.0152 = phi i32 [ 0, %for.body79.lr.ph ], [ %inc85, %half_to_float_int.exit ] + %dst74.0151 = phi ptr [ %dstbuffer.1170, %for.body79.lr.ph ], [ %incdec.ptr81, %half_to_float_int.exit ] + %34 = load i16, ptr %cdata.4153, align 2 + %conv.i.i.i = zext i16 %34 to i32 + %35 = shl nuw nsw i32 %conv.i.i.i, 13 + %shr.i.i.i = and i32 %35, 268427264 + %h.signext.i.i.i = sext i16 %34 to i32 %shl3.i.i.i = and i32 %h.signext.i.i.i, -2147483648 - %cmp.i.i.i94 = icmp ugt i32 %shr.i.i.i93, 8388607 - br i1 %cmp.i.i.i94, label %if.then.i.i.i95, label %if.else12.i.i.i + %cmp.i.i.i92 = icmp ugt i32 %shr.i.i.i, 8388607 + br i1 %cmp.i.i.i92, label %if.then.i.i.i93, label %if.else12.i.i.i -if.then.i.i.i95: ; preds = %for.body79 - %or.i.i.i = or disjoint i32 %shr.i.i.i93, %shl3.i.i.i - %cmp6.i.i.i = icmp ult i32 %shr.i.i.i93, 260046848 +if.then.i.i.i93: ; preds = %for.body79 + %or.i.i.i = or disjoint i32 %shr.i.i.i, %shl3.i.i.i + %cmp6.i.i.i = icmp ult i32 %shr.i.i.i, 260046848 br i1 %cmp6.i.i.i, label %if.then10.i.i.i, label %if.else.i.i.i -if.then10.i.i.i: ; preds = %if.then.i.i.i95 - %add.i.i.i96 = add nuw nsw i32 %or.i.i.i, 939524096 +if.then10.i.i.i: ; preds = %if.then.i.i.i93 + %add.i.i.i94 = add nuw nsw i32 %or.i.i.i, 939524096 br label %half_to_float_int.exit -if.else.i.i.i: ; preds = %if.then.i.i.i95 +if.else.i.i.i: ; preds = %if.then.i.i.i93 %or11.i.i.i = or i32 %or.i.i.i, 2139095040 br label %half_to_float_int.exit if.else12.i.i.i: ; preds = %for.body79 - %cmp13.not.i.i.i = icmp eq i32 %shr.i.i.i93, 0 + %cmp13.not.i.i.i = icmp eq i32 %shr.i.i.i, 0 br i1 %cmp13.not.i.i.i, label %half_to_float_int.exit, label %if.then15.i.i.i if.then15.i.i.i: ; preds = %if.else12.i.i.i - %37 = tail call i32 @llvm.ctlz.i32(i32 %shr.i.i.i93, i1 true), !range !8 - %sub.i.i.i = add nsw i32 %37, -8 - %shl17.i.i.i = shl i32 %shr.i.i.i93, %sub.i.i.i + %36 = tail call i32 @llvm.ctlz.i32(i32 %shr.i.i.i, i1 true), !range !8 + %sub.i.i.i = add nsw i32 %36, -8 + %shl17.i.i.i = shl i32 %shr.i.i.i, %sub.i.i.i %or16.i.i.i = or i32 %shl3.i.i.i, %shl17.i.i.i %or18.i.i.i = or i32 %or16.i.i.i, 947912704 %shl19.i.i.i = shl nuw nsw i32 %sub.i.i.i, 23 @@ -412,203 +408,203 @@ if.then15.i.i.i: ; preds = %if.else12.i.i.i br label %half_to_float_int.exit half_to_float_int.exit: ; preds = %if.then10.i.i.i, %if.else.i.i.i, %if.else12.i.i.i, %if.then15.i.i.i - %v.sroa.0.0.i.i.i = phi i32 [ %add.i.i.i96, %if.then10.i.i.i ], [ %or11.i.i.i, %if.else.i.i.i ], [ %sub20.i.i.i, %if.then15.i.i.i ], [ %shl3.i.i.i, %if.else12.i.i.i ] - store i32 %v.sroa.0.0.i.i.i, ptr %dst74.0153, align 1 - %incdec.ptr81 = getelementptr inbounds i8, ptr %dst74.0153, i64 4 - %add.ptr83 = getelementptr inbounds i8, ptr %cdata.4155, i64 %idx.ext82 - %inc85 = add nuw nsw i32 %x75.0154, 1 - %exitcond192.not = icmp eq i32 %inc85, %12 - br i1 %exitcond192.not, label %sw.epilog165, label %for.body79, !llvm.loop !9 + %v.sroa.0.0.i.i.i = phi i32 [ %add.i.i.i94, %if.then10.i.i.i ], [ %or11.i.i.i, %if.else.i.i.i ], [ %sub20.i.i.i, %if.then15.i.i.i ], [ %shl3.i.i.i, %if.else12.i.i.i ] + store i32 %v.sroa.0.0.i.i.i, ptr %dst74.0151, align 1 + %incdec.ptr81 = getelementptr inbounds i8, ptr %dst74.0151, i64 4 + %add.ptr83 = getelementptr inbounds i8, ptr %cdata.4153, i64 %idx.ext82 + %inc85 = add nuw nsw i32 %x75.0152, 1 + %exitcond190.not = icmp eq i32 %inc85, %12 + br i1 %exitcond190.not, label %sw.epilog165, label %for.body79, !llvm.loop !9 for.body93: ; preds = %for.body93.lr.ph, %for.body93 - %cdata.5151 = phi ptr [ %cdata.0, %for.body93.lr.ph ], [ %add.ptr96, %for.body93 ] - %x89.0150 = phi i32 [ 0, %for.body93.lr.ph ], [ %inc98, %for.body93 ] - %dst88.0149 = phi ptr [ %dstbuffer.1172, %for.body93.lr.ph ], [ %incdec.ptr94, %for.body93 ] - %38 = load i32, ptr %cdata.5151, align 4 - store i32 %38, ptr %dst88.0149, align 1 - %incdec.ptr94 = getelementptr inbounds i8, ptr %dst88.0149, i64 4 - %add.ptr96 = getelementptr inbounds i8, ptr %cdata.5151, i64 %idx.ext95 - %inc98 = add nuw nsw i32 %x89.0150, 1 - %exitcond191.not = icmp eq i32 %inc98, %12 - br i1 %exitcond191.not, label %sw.epilog165, label %for.body93, !llvm.loop !10 + %cdata.5149 = phi ptr [ %cdata.0, %for.body93.lr.ph ], [ %add.ptr96, %for.body93 ] + %x89.0148 = phi i32 [ 0, %for.body93.lr.ph ], [ %inc98, %for.body93 ] + %dst88.0147 = phi ptr [ %dstbuffer.1170, %for.body93.lr.ph ], [ %incdec.ptr94, %for.body93 ] + %37 = load i32, ptr %cdata.5149, align 4 + store i32 %37, ptr %dst88.0147, align 1 + %incdec.ptr94 = getelementptr inbounds i8, ptr %dst88.0147, i64 4 + %add.ptr96 = getelementptr inbounds i8, ptr %cdata.5149, i64 %idx.ext95 + %inc98 = add nuw nsw i32 %x89.0148, 1 + %exitcond189.not = icmp eq i32 %inc98, %12 + br i1 %exitcond189.not, label %sw.epilog165, label %for.body93, !llvm.loop !10 for.body106: ; preds = %for.body106.lr.ph, %for.body106 - %cdata.6147 = phi ptr [ %cdata.0, %for.body106.lr.ph ], [ %add.ptr111, %for.body106 ] - %x102.0146 = phi i32 [ 0, %for.body106.lr.ph ], [ %inc113, %for.body106 ] - %dst101.0145 = phi ptr [ %dstbuffer.1172, %for.body106.lr.ph ], [ %incdec.ptr109, %for.body106 ] - %39 = load i32, ptr %cdata.6147, align 4 - %conv.i.i97 = uitofp i32 %39 to float - store float %conv.i.i97, ptr %dst101.0145, align 1 - %incdec.ptr109 = getelementptr inbounds i8, ptr %dst101.0145, i64 4 - %add.ptr111 = getelementptr inbounds i8, ptr %cdata.6147, i64 %idx.ext110 - %inc113 = add nuw nsw i32 %x102.0146, 1 - %exitcond190.not = icmp eq i32 %inc113, %12 - br i1 %exitcond190.not, label %sw.epilog165, label %for.body106, !llvm.loop !11 + %cdata.6145 = phi ptr [ %cdata.0, %for.body106.lr.ph ], [ %add.ptr111, %for.body106 ] + %x102.0144 = phi i32 [ 0, %for.body106.lr.ph ], [ %inc113, %for.body106 ] + %dst101.0143 = phi ptr [ %dstbuffer.1170, %for.body106.lr.ph ], [ %incdec.ptr109, %for.body106 ] + %38 = load i32, ptr %cdata.6145, align 4 + %conv.i.i95 = uitofp i32 %38 to float + store float %conv.i.i95, ptr %dst101.0143, align 1 + %incdec.ptr109 = getelementptr inbounds i8, ptr %dst101.0143, i64 4 + %add.ptr111 = getelementptr inbounds i8, ptr %cdata.6145, i64 %idx.ext110 + %inc113 = add nuw nsw i32 %x102.0144, 1 + %exitcond188.not = icmp eq i32 %inc113, %12 + br i1 %exitcond188.not, label %sw.epilog165, label %for.body106, !llvm.loop !11 sw.bb117: ; preds = %if.end32 %user_data_type118 = getelementptr inbounds i8, ptr %add.ptr, i64 30 - %40 = load i16, ptr %user_data_type118, align 2 - switch i16 %40, label %return [ + %39 = load i16, ptr %user_data_type118, align 2 + switch i16 %39, label %return [ i16 1, label %for.cond123.preheader i16 2, label %for.cond137.preheader i16 0, label %for.cond152.preheader ] for.cond152.preheader: ; preds = %sw.bb117 - %cmp153132 = icmp sgt i32 %12, 0 - br i1 %cmp153132, label %for.body155.lr.ph, label %sw.epilog165 + %cmp153130 = icmp sgt i32 %12, 0 + br i1 %cmp153130, label %for.body155.lr.ph, label %sw.epilog165 for.body155.lr.ph: ; preds = %for.cond152.preheader %idx.ext157 = sext i32 %17 to i64 br label %for.body155 for.cond137.preheader: ; preds = %sw.bb117 - %cmp138136 = icmp sgt i32 %12, 0 - br i1 %cmp138136, label %for.body140.lr.ph, label %sw.epilog165 + %cmp138134 = icmp sgt i32 %12, 0 + br i1 %cmp138134, label %for.body140.lr.ph, label %sw.epilog165 for.body140.lr.ph: ; preds = %for.cond137.preheader %idx.ext144 = sext i32 %17 to i64 br label %for.body140 for.cond123.preheader: ; preds = %sw.bb117 - %cmp124140 = icmp sgt i32 %12, 0 - br i1 %cmp124140, label %for.body126.lr.ph, label %sw.epilog165 + %cmp124138 = icmp sgt i32 %12, 0 + br i1 %cmp124138, label %for.body126.lr.ph, label %sw.epilog165 for.body126.lr.ph: ; preds = %for.cond123.preheader %idx.ext129 = sext i32 %17 to i64 br label %for.body126 for.body126: ; preds = %for.body126.lr.ph, %half_to_uint.exit - %x122.0143 = phi i32 [ 0, %for.body126.lr.ph ], [ %inc132, %half_to_uint.exit ] - %dst121.0142 = phi ptr [ %dstbuffer.1172, %for.body126.lr.ph ], [ %incdec.ptr128, %half_to_uint.exit ] - %cdata.7141 = phi ptr [ %cdata.0, %for.body126.lr.ph ], [ %add.ptr130, %half_to_uint.exit ] - %41 = load i16, ptr %cdata.7141, align 2 - %conv.i98 = zext i16 %41 to i32 - %tobool.not.i = icmp sgt i16 %41, -1 - br i1 %tobool.not.i, label %if.end.i100, label %half_to_uint.exit - -if.end.i100: ; preds = %for.body126 - %and2.i = and i32 %conv.i98, 31744 - %cmp.i101 = icmp eq i32 %and2.i, 31744 - br i1 %cmp.i101, label %if.then4.i, label %if.end11.i - -if.then4.i: ; preds = %if.end.i100 - %and6.i = and i32 %conv.i98, 1023 + %x122.0141 = phi i32 [ 0, %for.body126.lr.ph ], [ %inc132, %half_to_uint.exit ] + %dst121.0140 = phi ptr [ %dstbuffer.1170, %for.body126.lr.ph ], [ %incdec.ptr128, %half_to_uint.exit ] + %cdata.7139 = phi ptr [ %cdata.0, %for.body126.lr.ph ], [ %add.ptr130, %half_to_uint.exit ] + %40 = load i16, ptr %cdata.7139, align 2 + %conv.i96 = zext i16 %40 to i32 + %tobool.not.i = icmp sgt i16 %40, -1 + br i1 %tobool.not.i, label %if.end.i98, label %half_to_uint.exit + +if.end.i98: ; preds = %for.body126 + %and2.i = and i32 %conv.i96, 31744 + %cmp.i99 = icmp eq i32 %and2.i, 31744 + br i1 %cmp.i99, label %if.then4.i, label %if.end11.i + +if.then4.i: ; preds = %if.end.i98 + %and6.i = and i32 %conv.i96, 1023 %cmp7.not.i = icmp eq i32 %and6.i, 0 %..i = sext i1 %cmp7.not.i to i32 br label %half_to_uint.exit -if.end11.i: ; preds = %if.end.i100 - %42 = shl nuw nsw i32 %conv.i98, 13 - %cmp.i.i.i102 = icmp ugt i16 %41, 1023 - br i1 %cmp.i.i.i102, label %if.then.i.i.i112, label %if.else12.i.i.i103 +if.end11.i: ; preds = %if.end.i98 + %41 = shl nuw nsw i32 %conv.i96, 13 + %cmp.i.i.i100 = icmp ugt i16 %40, 1023 + br i1 %cmp.i.i.i100, label %if.then.i.i.i110, label %if.else12.i.i.i101 -if.then.i.i.i112: ; preds = %if.end11.i - %cmp6.i.i.i113 = icmp ult i16 %41, 31744 - br i1 %cmp6.i.i.i113, label %if.then10.i.i.i116, label %if.else.i.i.i114 +if.then.i.i.i110: ; preds = %if.end11.i + %cmp6.i.i.i111 = icmp ult i16 %40, 31744 + br i1 %cmp6.i.i.i111, label %if.then10.i.i.i114, label %if.else.i.i.i112 -if.then10.i.i.i116: ; preds = %if.then.i.i.i112 - %add.i.i.i117 = add nuw nsw i32 %42, 939524096 +if.then10.i.i.i114: ; preds = %if.then.i.i.i110 + %add.i.i.i115 = add nuw nsw i32 %41, 939524096 br label %half_to_float.exit.i -if.else.i.i.i114: ; preds = %if.then.i.i.i112 - %or11.i.i.i115 = or i32 %42, 2139095040 +if.else.i.i.i112: ; preds = %if.then.i.i.i110 + %or11.i.i.i113 = or i32 %41, 2139095040 br label %half_to_float.exit.i -if.else12.i.i.i103: ; preds = %if.end11.i - %cmp13.not.i.i.i104 = icmp eq i16 %41, 0 - br i1 %cmp13.not.i.i.i104, label %half_to_float.exit.i, label %if.then15.i.i.i105 - -if.then15.i.i.i105: ; preds = %if.else12.i.i.i103 - %43 = tail call i32 @llvm.ctlz.i32(i32 %42, i1 true), !range !8 - %sub.i.i.i106 = add nsw i32 %43, -8 - %shl17.i.i.i107 = shl i32 %42, %sub.i.i.i106 - %or18.i.i.i108 = or i32 %shl17.i.i.i107, 947912704 - %shl19.i.i.i109 = shl nuw nsw i32 %sub.i.i.i106, 23 - %sub20.i.i.i110 = sub nuw i32 %or18.i.i.i108, %shl19.i.i.i109 +if.else12.i.i.i101: ; preds = %if.end11.i + %cmp13.not.i.i.i102 = icmp eq i16 %40, 0 + br i1 %cmp13.not.i.i.i102, label %half_to_float.exit.i, label %if.then15.i.i.i103 + +if.then15.i.i.i103: ; preds = %if.else12.i.i.i101 + %42 = tail call i32 @llvm.ctlz.i32(i32 %41, i1 true), !range !8 + %sub.i.i.i104 = add nsw i32 %42, -8 + %shl17.i.i.i105 = shl i32 %41, %sub.i.i.i104 + %or18.i.i.i106 = or i32 %shl17.i.i.i105, 947912704 + %shl19.i.i.i107 = shl nuw nsw i32 %sub.i.i.i104, 23 + %sub20.i.i.i108 = sub nuw i32 %or18.i.i.i106, %shl19.i.i.i107 br label %half_to_float.exit.i -half_to_float.exit.i: ; preds = %if.then15.i.i.i105, %if.else12.i.i.i103, %if.else.i.i.i114, %if.then10.i.i.i116 - %v.sroa.0.0.i.i.i111 = phi i32 [ %add.i.i.i117, %if.then10.i.i.i116 ], [ %or11.i.i.i115, %if.else.i.i.i114 ], [ %sub20.i.i.i110, %if.then15.i.i.i105 ], [ 0, %if.else12.i.i.i103 ] - %44 = bitcast i32 %v.sroa.0.0.i.i.i111 to float - %conv12.i = fptoui float %44 to i32 +half_to_float.exit.i: ; preds = %if.then15.i.i.i103, %if.else12.i.i.i101, %if.else.i.i.i112, %if.then10.i.i.i114 + %v.sroa.0.0.i.i.i109 = phi i32 [ %add.i.i.i115, %if.then10.i.i.i114 ], [ %or11.i.i.i113, %if.else.i.i.i112 ], [ %sub20.i.i.i108, %if.then15.i.i.i103 ], [ 0, %if.else12.i.i.i101 ] + %43 = bitcast i32 %v.sroa.0.0.i.i.i109 to float + %conv12.i = fptoui float %43 to i32 br label %half_to_uint.exit half_to_uint.exit: ; preds = %for.body126, %if.then4.i, %half_to_float.exit.i - %retval.0.i99 = phi i32 [ %conv12.i, %half_to_float.exit.i ], [ 0, %for.body126 ], [ %..i, %if.then4.i ] - store i32 %retval.0.i99, ptr %dst121.0142, align 1 - %incdec.ptr128 = getelementptr inbounds i8, ptr %dst121.0142, i64 4 - %add.ptr130 = getelementptr inbounds i8, ptr %cdata.7141, i64 %idx.ext129 - %inc132 = add nuw nsw i32 %x122.0143, 1 - %exitcond189.not = icmp eq i32 %inc132, %12 - br i1 %exitcond189.not, label %sw.epilog165, label %for.body126, !llvm.loop !12 + %retval.0.i97 = phi i32 [ %conv12.i, %half_to_float.exit.i ], [ 0, %for.body126 ], [ %..i, %if.then4.i ] + store i32 %retval.0.i97, ptr %dst121.0140, align 1 + %incdec.ptr128 = getelementptr inbounds i8, ptr %dst121.0140, i64 4 + %add.ptr130 = getelementptr inbounds i8, ptr %cdata.7139, i64 %idx.ext129 + %inc132 = add nuw nsw i32 %x122.0141, 1 + %exitcond187.not = icmp eq i32 %inc132, %12 + br i1 %exitcond187.not, label %sw.epilog165, label %for.body126, !llvm.loop !12 for.body140: ; preds = %for.body140.lr.ph, %float_to_uint.exit - %x136.0139 = phi i32 [ 0, %for.body140.lr.ph ], [ %inc147, %float_to_uint.exit ] - %dst135.0138 = phi ptr [ %dstbuffer.1172, %for.body140.lr.ph ], [ %incdec.ptr143, %float_to_uint.exit ] - %cdata.8137 = phi ptr [ %cdata.0, %for.body140.lr.ph ], [ %add.ptr145, %float_to_uint.exit ] - %45 = load float, ptr %cdata.8137, align 4 - %or.cond5.i = fcmp ult float %45, 0.000000e+00 - br i1 %or.cond5.i, label %float_to_uint.exit, label %if.end.i118 - -if.end.i118: ; preds = %for.body140 - %46 = tail call float @llvm.fabs.f32(float %45) #3 - %isinf.i = fcmp oeq float %46, 0x7FF0000000000000 - %cmp2.i = fcmp ogt float %45, 0x41F0000000000000 + %x136.0137 = phi i32 [ 0, %for.body140.lr.ph ], [ %inc147, %float_to_uint.exit ] + %dst135.0136 = phi ptr [ %dstbuffer.1170, %for.body140.lr.ph ], [ %incdec.ptr143, %float_to_uint.exit ] + %cdata.8135 = phi ptr [ %cdata.0, %for.body140.lr.ph ], [ %add.ptr145, %float_to_uint.exit ] + %44 = load float, ptr %cdata.8135, align 4 + %or.cond5.i = fcmp ult float %44, 0.000000e+00 + br i1 %or.cond5.i, label %float_to_uint.exit, label %if.end.i116 + +if.end.i116: ; preds = %for.body140 + %45 = tail call float @llvm.fabs.f32(float %44) #3 + %isinf.i = fcmp oeq float %45, 0x7FF0000000000000 + %cmp2.i = fcmp ogt float %44, 0x41F0000000000000 %or.cond.i = or i1 %cmp2.i, %isinf.i - %conv.i119 = fptoui float %45 to i32 - %spec.select.i = select i1 %or.cond.i, i32 -1, i32 %conv.i119 + %conv.i117 = fptoui float %44 to i32 + %spec.select.i = select i1 %or.cond.i, i32 -1, i32 %conv.i117 br label %float_to_uint.exit -float_to_uint.exit: ; preds = %for.body140, %if.end.i118 - %retval.0.i120 = phi i32 [ 0, %for.body140 ], [ %spec.select.i, %if.end.i118 ] - store i32 %retval.0.i120, ptr %dst135.0138, align 1 - %incdec.ptr143 = getelementptr inbounds i8, ptr %dst135.0138, i64 4 - %add.ptr145 = getelementptr inbounds i8, ptr %cdata.8137, i64 %idx.ext144 - %inc147 = add nuw nsw i32 %x136.0139, 1 - %exitcond188.not = icmp eq i32 %inc147, %12 - br i1 %exitcond188.not, label %sw.epilog165, label %for.body140, !llvm.loop !13 +float_to_uint.exit: ; preds = %for.body140, %if.end.i116 + %retval.0.i118 = phi i32 [ 0, %for.body140 ], [ %spec.select.i, %if.end.i116 ] + store i32 %retval.0.i118, ptr %dst135.0136, align 1 + %incdec.ptr143 = getelementptr inbounds i8, ptr %dst135.0136, i64 4 + %add.ptr145 = getelementptr inbounds i8, ptr %cdata.8135, i64 %idx.ext144 + %inc147 = add nuw nsw i32 %x136.0137, 1 + %exitcond186.not = icmp eq i32 %inc147, %12 + br i1 %exitcond186.not, label %sw.epilog165, label %for.body140, !llvm.loop !13 for.body155: ; preds = %for.body155.lr.ph, %for.body155 - %x151.0135 = phi i32 [ 0, %for.body155.lr.ph ], [ %inc160, %for.body155 ] - %dst150.0134 = phi ptr [ %dstbuffer.1172, %for.body155.lr.ph ], [ %incdec.ptr156, %for.body155 ] - %cdata.9133 = phi ptr [ %cdata.0, %for.body155.lr.ph ], [ %add.ptr158, %for.body155 ] - %47 = load i32, ptr %cdata.9133, align 4 - store i32 %47, ptr %dst150.0134, align 1 - %incdec.ptr156 = getelementptr inbounds i8, ptr %dst150.0134, i64 4 - %add.ptr158 = getelementptr inbounds i8, ptr %cdata.9133, i64 %idx.ext157 - %inc160 = add nuw nsw i32 %x151.0135, 1 + %x151.0133 = phi i32 [ 0, %for.body155.lr.ph ], [ %inc160, %for.body155 ] + %dst150.0132 = phi ptr [ %dstbuffer.1170, %for.body155.lr.ph ], [ %incdec.ptr156, %for.body155 ] + %cdata.9131 = phi ptr [ %cdata.0, %for.body155.lr.ph ], [ %add.ptr158, %for.body155 ] + %46 = load i32, ptr %cdata.9131, align 4 + store i32 %46, ptr %dst150.0132, align 1 + %incdec.ptr156 = getelementptr inbounds i8, ptr %dst150.0132, i64 4 + %add.ptr158 = getelementptr inbounds i8, ptr %cdata.9131, i64 %idx.ext157 + %inc160 = add nuw nsw i32 %x151.0133, 1 %exitcond.not = icmp eq i32 %inc160, %12 br i1 %exitcond.not, label %sw.epilog165, label %for.body155, !llvm.loop !14 sw.epilog165: ; preds = %for.body155, %float_to_uint.exit, %half_to_uint.exit, %for.body106, %for.body93, %half_to_float_int.exit, %uint_to_half.exit, %float_to_half.exit, %for.body39, %for.cond152.preheader, %for.cond137.preheader, %for.cond123.preheader, %for.cond103.preheader, %for.cond90.preheader, %for.cond76.preheader, %for.cond58.preheader, %for.cond45.preheader, %for.cond36.preheader - %add.ptr166 = getelementptr inbounds i8, ptr %dstbuffer.1172, i64 %mul - %add167 = add i64 %mul, %packed_bytes.1171 - %.pre200 = load i16, ptr %channel_count, align 8 + %add.ptr166 = getelementptr inbounds i8, ptr %dstbuffer.1170, i64 %mul + %add167 = add i64 %mul, %packed_bytes.1169 + %.pre198 = load i16, ptr %channel_count, align 8 br label %for.inc168 for.inc168: ; preds = %if.then14, %for.body5, %sw.epilog165 - %48 = phi i16 [ %7, %for.body5 ], [ %7, %if.then14 ], [ %.pre200, %sw.epilog165 ] - %packed_bytes.2 = phi i64 [ %packed_bytes.1171, %for.body5 ], [ %packed_bytes.1171, %if.then14 ], [ %add167, %sw.epilog165 ] - %dstbuffer.2 = phi ptr [ %dstbuffer.1172, %for.body5 ], [ %dstbuffer.1172, %if.then14 ], [ %add.ptr166, %sw.epilog165 ] + %47 = phi i16 [ %7, %for.body5 ], [ %7, %if.then14 ], [ %.pre198, %sw.epilog165 ] + %packed_bytes.2 = phi i64 [ %packed_bytes.1169, %for.body5 ], [ %packed_bytes.1169, %if.then14 ], [ %add167, %sw.epilog165 ] + %dstbuffer.2 = phi ptr [ %dstbuffer.1170, %for.body5 ], [ %dstbuffer.1170, %if.then14 ], [ %add.ptr166, %sw.epilog165 ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %49 = sext i16 %48 to i64 - %cmp3 = icmp slt i64 %indvars.iv.next, %49 + %48 = sext i16 %47 to i64 + %cmp3 = icmp slt i64 %indvars.iv.next, %48 br i1 %cmp3, label %for.body5, label %for.inc171.loopexit, !llvm.loop !15 for.inc171.loopexit: ; preds = %for.inc168 - %.pre201 = load i32, ptr %height, align 4 + %.pre199 = load i32, ptr %height, align 4 br label %for.inc171 for.inc171: ; preds = %for.inc171.loopexit, %for.body - %50 = phi i32 [ %2, %for.body ], [ %.pre201, %for.inc171.loopexit ] - %51 = phi i16 [ %3, %for.body ], [ %48, %for.inc171.loopexit ] - %52 = phi i16 [ %4, %for.body ], [ %48, %for.inc171.loopexit ] - %packed_bytes.1.lcssa = phi i64 [ %packed_bytes.0177, %for.body ], [ %packed_bytes.2, %for.inc171.loopexit ] - %dstbuffer.1.lcssa = phi ptr [ %dstbuffer.0178, %for.body ], [ %dstbuffer.2, %for.inc171.loopexit ] - %indvars.iv.next198 = add nuw nsw i64 %indvars.iv197, 1 - %53 = sext i32 %50 to i64 - %cmp = icmp slt i64 %indvars.iv.next198, %53 + %49 = phi i32 [ %2, %for.body ], [ %.pre199, %for.inc171.loopexit ] + %50 = phi i16 [ %3, %for.body ], [ %47, %for.inc171.loopexit ] + %51 = phi i16 [ %4, %for.body ], [ %47, %for.inc171.loopexit ] + %packed_bytes.1.lcssa = phi i64 [ %packed_bytes.0175, %for.body ], [ %packed_bytes.2, %for.inc171.loopexit ] + %dstbuffer.1.lcssa = phi ptr [ %dstbuffer.0176, %for.body ], [ %dstbuffer.2, %for.inc171.loopexit ] + %indvars.iv.next196 = add nuw nsw i64 %indvars.iv195, 1 + %52 = sext i32 %49 to i64 + %cmp = icmp slt i64 %indvars.iv.next196, %52 br i1 %cmp, label %for.body, label %for.end173, !llvm.loop !16 for.end173: ; preds = %for.inc171, %entry diff --git a/bench/openexr/optimized/unpack.c.ll b/bench/openexr/optimized/unpack.c.ll index 2cda2ada9de..8c9db1c3642 100644 --- a/bench/openexr/optimized/unpack.c.ll +++ b/bench/openexr/optimized/unpack.c.ll @@ -170,53 +170,53 @@ entry: %.fr = freeze i32 %2 %height = getelementptr inbounds i8, ptr %decode, i64 36 %3 = load i32, ptr %height, align 4 - %cmp255 = icmp sgt i32 %3, 0 - br i1 %cmp255, label %for.cond2.preheader.lr.ph, label %return + %cmp252 = icmp sgt i32 %3, 0 + br i1 %cmp252, label %for.cond2.preheader.lr.ph, label %return for.cond2.preheader.lr.ph: ; preds = %entry %channel_count = getelementptr inbounds i8, ptr %decode, i64 8 - %cmp29203 = icmp sgt i32 %.fr, 0 + %cmp29200 = icmp sgt i32 %.fr, 0 %decode_flags34 = getelementptr inbounds i8, ptr %decode, i64 10 %sub = add nsw i32 %.fr, -1 %idxprom15 = sext i32 %sub to i64 %idx.ext201 = sext i32 %.fr to i64 - br i1 %cmp29203, label %for.cond2.preheader.us.preheader, label %return + br i1 %cmp29200, label %for.cond2.preheader.us.preheader, label %return for.cond2.preheader.us.preheader: ; preds = %for.cond2.preheader.lr.ph - %wide.trip.count316 = zext nneg i32 %3 to i64 + %wide.trip.count313 = zext nneg i32 %3 to i64 %.pre = load i16, ptr %channel_count, align 8 %wide.trip.count = zext nneg i32 %.fr to i64 - %wide.trip.count308 = zext nneg i32 %.fr to i64 + %wide.trip.count305 = zext nneg i32 %.fr to i64 br label %for.cond2.preheader.us for.cond2.preheader.us: ; preds = %for.cond2.preheader.us.preheader, %for.end200.us %4 = phi i16 [ %.pre, %for.cond2.preheader.us.preheader ], [ %6, %for.end200.us ] %5 = phi i16 [ %.pre, %for.cond2.preheader.us.preheader ], [ %7, %for.end200.us ] - %indvars.iv313 = phi i64 [ 0, %for.cond2.preheader.us.preheader ], [ %indvars.iv.next314, %for.end200.us ] - %srcbuffer.0260.us = phi ptr [ %0, %for.cond2.preheader.us.preheader ], [ %srcbuffer.1.lcssa.us, %for.end200.us ] - %sampbuffer.0257.us = phi ptr [ %1, %for.cond2.preheader.us.preheader ], [ %add.ptr202.us, %for.end200.us ] - %cmp3214.us = icmp sgt i16 %5, 0 - br i1 %cmp3214.us, label %for.body5.lr.ph.us, label %for.end200.us + %indvars.iv310 = phi i64 [ 0, %for.cond2.preheader.us.preheader ], [ %indvars.iv.next311, %for.end200.us ] + %srcbuffer.0257.us = phi ptr [ %0, %for.cond2.preheader.us.preheader ], [ %srcbuffer.1.lcssa.us, %for.end200.us ] + %sampbuffer.0254.us = phi ptr [ %1, %for.cond2.preheader.us.preheader ], [ %add.ptr202.us, %for.end200.us ] + %cmp3211.us = icmp sgt i16 %5, 0 + br i1 %cmp3211.us, label %for.body5.lr.ph.us, label %for.end200.us for.end200.us: ; preds = %for.inc198.us.us, %for.cond2.preheader.us - %6 = phi i16 [ %4, %for.cond2.preheader.us ], [ %45, %for.inc198.us.us ] - %7 = phi i16 [ %5, %for.cond2.preheader.us ], [ %45, %for.inc198.us.us ] - %srcbuffer.1.lcssa.us = phi ptr [ %srcbuffer.0260.us, %for.cond2.preheader.us ], [ %srcbuffer.3.us.us, %for.inc198.us.us ] - %add.ptr202.us = getelementptr inbounds i32, ptr %sampbuffer.0257.us, i64 %idx.ext201 - %indvars.iv.next314 = add nuw nsw i64 %indvars.iv313, 1 - %exitcond317.not = icmp eq i64 %indvars.iv.next314, %wide.trip.count316 - br i1 %exitcond317.not, label %return, label %for.cond2.preheader.us, !llvm.loop !4 + %6 = phi i16 [ %4, %for.cond2.preheader.us ], [ %44, %for.inc198.us.us ] + %7 = phi i16 [ %5, %for.cond2.preheader.us ], [ %44, %for.inc198.us.us ] + %srcbuffer.1.lcssa.us = phi ptr [ %srcbuffer.0257.us, %for.cond2.preheader.us ], [ %srcbuffer.3.us.us, %for.inc198.us.us ] + %add.ptr202.us = getelementptr inbounds i32, ptr %sampbuffer.0254.us, i64 %idx.ext201 + %indvars.iv.next311 = add nuw nsw i64 %indvars.iv310, 1 + %exitcond314.not = icmp eq i64 %indvars.iv.next311, %wide.trip.count313 + br i1 %exitcond314.not, label %return, label %for.cond2.preheader.us, !llvm.loop !4 for.body5.lr.ph.us: ; preds = %for.cond2.preheader.us - %arrayidx16.us = getelementptr inbounds i32, ptr %sampbuffer.0257.us, i64 %idxprom15 + %arrayidx16.us = getelementptr inbounds i32, ptr %sampbuffer.0254.us, i64 %idxprom15 br label %for.body5.us.us for.body5.us.us: ; preds = %for.inc198.us.us, %for.body5.lr.ph.us - %8 = phi i16 [ %45, %for.inc198.us.us ], [ %4, %for.body5.lr.ph.us ] - %indvars.iv310 = phi i64 [ %indvars.iv.next311, %for.inc198.us.us ], [ 0, %for.body5.lr.ph.us ] - %srcbuffer.1216.us.us = phi ptr [ %srcbuffer.3.us.us, %for.inc198.us.us ], [ %srcbuffer.0260.us, %for.body5.lr.ph.us ] + %8 = phi i16 [ %44, %for.inc198.us.us ], [ %4, %for.body5.lr.ph.us ] + %indvars.iv307 = phi i64 [ %indvars.iv.next308, %for.inc198.us.us ], [ 0, %for.body5.lr.ph.us ] + %srcbuffer.1213.us.us = phi ptr [ %srcbuffer.3.us.us, %for.inc198.us.us ], [ %srcbuffer.0257.us, %for.body5.lr.ph.us ] %9 = load ptr, ptr %decode, align 8 - %add.ptr.us.us = getelementptr inbounds %struct.exr_coding_channel_info_t, ptr %9, i64 %indvars.iv310 + %add.ptr.us.us = getelementptr inbounds %struct.exr_coding_channel_info_t, ptr %9, i64 %indvars.iv307 %bytes_per_element.us.us = getelementptr inbounds i8, ptr %add.ptr.us.us, i64 25 %10 = load i8, ptr %bytes_per_element.us.us, align 1 %conv6.us.us = sext i8 %10 to i32 @@ -232,7 +232,7 @@ if.end20.us.us: ; preds = %for.body5.us.us %14 = load i32, ptr %user_line_stride.us.us, align 4 %conv22.us.us = sext i32 %14 to i64 %div102.us.us = lshr i64 %conv22.us.us, 3 - %mul23.us.us = mul i64 %div102.us.us, %indvars.iv313 + %mul23.us.us = mul i64 %div102.us.us, %indvars.iv310 %add.ptr24.us.us = getelementptr inbounds ptr, ptr %12, i64 %mul23.us.us %user_pixel_stride.us.us = getelementptr inbounds i8, ptr %add.ptr.us.us, i64 32 %15 = load i32, ptr %user_pixel_stride.us.us, align 8 @@ -245,19 +245,19 @@ if.end20.us.us: ; preds = %for.body5.us.us for.body31.us.us: ; preds = %if.end191.us.us, %if.end20.us.us %indvars.iv = phi i64 [ %indvars.iv.next, %if.end191.us.us ], [ 0, %if.end20.us.us ] - %srcbuffer.2207.us.us = phi ptr [ %add.ptr194.us.us, %if.end191.us.us ], [ %srcbuffer.1216.us.us, %if.end20.us.us ] - %pdata.0206.us.us = phi ptr [ %add.ptr42.us.us, %if.end191.us.us ], [ %add.ptr24.us.us, %if.end20.us.us ] - %prevsamps.2205.us.us = phi i32 [ %spec.select104.us.us, %if.end191.us.us ], [ 0, %if.end20.us.us ] - %16 = load ptr, ptr %pdata.0206.us.us, align 8 - %arrayidx33.us.us = getelementptr inbounds i32, ptr %sampbuffer.0257.us, i64 %indvars.iv + %srcbuffer.2204.us.us = phi ptr [ %add.ptr194.us.us, %if.end191.us.us ], [ %srcbuffer.1213.us.us, %if.end20.us.us ] + %pdata.0203.us.us = phi ptr [ %add.ptr42.us.us, %if.end191.us.us ], [ %add.ptr24.us.us, %if.end20.us.us ] + %prevsamps.2202.us.us = phi i32 [ %spec.select104.us.us, %if.end191.us.us ], [ 0, %if.end20.us.us ] + %16 = load ptr, ptr %pdata.0203.us.us, align 8 + %arrayidx33.us.us = getelementptr inbounds i32, ptr %sampbuffer.0254.us, i64 %indvars.iv %17 = load i32, ptr %arrayidx33.us.us, align 4 %18 = load i16, ptr %decode_flags34, align 2 %19 = and i16 %18, 1 %cmp37.us.us = icmp eq i16 %19, 0 - %sub40.us.us = select i1 %cmp37.us.us, i32 %prevsamps.2205.us.us, i32 0 + %sub40.us.us = select i1 %cmp37.us.us, i32 %prevsamps.2202.us.us, i32 0 %spec.select.us.us = sub i32 %17, %sub40.us.us - %spec.select104.us.us = select i1 %cmp37.us.us, i32 %17, i32 %prevsamps.2205.us.us - %add.ptr42.us.us = getelementptr inbounds ptr, ptr %pdata.0206.us.us, i64 %div26103.us.us + %spec.select104.us.us = select i1 %cmp37.us.us, i32 %17, i32 %prevsamps.2202.us.us + %add.ptr42.us.us = getelementptr inbounds ptr, ptr %pdata.0203.us.us, i64 %div26103.us.us %tobool43.not.us.us = icmp eq ptr %16, null br i1 %tobool43.not.us.us, label %if.end191.us.us, label %if.then44.us.us @@ -278,173 +278,169 @@ sw.bb138.us.us: ; preds = %if.then44.us.us ] for.body179.us.us: ; preds = %for.cond176.preheader.us.us, %for.body179.us.us - %s175.0170.us.us = phi i32 [ %inc185.us.us, %for.body179.us.us ], [ 0, %for.cond176.preheader.us.us ] - %src174.0169.us.us = phi ptr [ %incdec.ptr181.us.us, %for.body179.us.us ], [ %srcbuffer.2207.us.us, %for.cond176.preheader.us.us ] - %cdata.8168.us.us = phi ptr [ %add.ptr183.us.us, %for.body179.us.us ], [ %16, %for.cond176.preheader.us.us ] - %src174.0.val.us.us = load i32, ptr %src174.0169.us.us, align 1 - store i32 %src174.0.val.us.us, ptr %cdata.8168.us.us, align 4 - %incdec.ptr181.us.us = getelementptr inbounds i8, ptr %src174.0169.us.us, i64 4 - %add.ptr183.us.us = getelementptr inbounds i8, ptr %cdata.8168.us.us, i64 %idx.ext182.us.us - %inc185.us.us = add nuw nsw i32 %s175.0170.us.us, 1 + %s175.0167.us.us = phi i32 [ %inc185.us.us, %for.body179.us.us ], [ 0, %for.cond176.preheader.us.us ] + %src174.0166.us.us = phi ptr [ %incdec.ptr181.us.us, %for.body179.us.us ], [ %srcbuffer.2204.us.us, %for.cond176.preheader.us.us ] + %cdata.8165.us.us = phi ptr [ %add.ptr183.us.us, %for.body179.us.us ], [ %16, %for.cond176.preheader.us.us ] + %src174.0.val.us.us = load i32, ptr %src174.0166.us.us, align 1 + store i32 %src174.0.val.us.us, ptr %cdata.8165.us.us, align 4 + %incdec.ptr181.us.us = getelementptr inbounds i8, ptr %src174.0166.us.us, i64 4 + %add.ptr183.us.us = getelementptr inbounds i8, ptr %cdata.8165.us.us, i64 %idx.ext182.us.us + %inc185.us.us = add nuw nsw i32 %s175.0167.us.us, 1 %exitcond.not = icmp eq i32 %inc185.us.us, %spec.select.us.us br i1 %exitcond.not, label %if.end191.us.us, label %for.body179.us.us, !llvm.loop !6 for.body163.us.us: ; preds = %for.cond160.preheader.us.us, %for.body163.us.us - %s159.0174.us.us = phi i32 [ %inc171.us.us, %for.body163.us.us ], [ 0, %for.cond160.preheader.us.us ] - %src158.0173.us.us = phi ptr [ %incdec.ptr166.us.us, %for.body163.us.us ], [ %srcbuffer.2207.us.us, %for.cond160.preheader.us.us ] - %cdata.7172.us.us = phi ptr [ %add.ptr169.us.us, %for.body163.us.us ], [ %16, %for.cond160.preheader.us.us ] - %src158.0.val.us.us = load i32, ptr %src158.0173.us.us, align 1 - %incdec.ptr166.us.us = getelementptr inbounds i8, ptr %src158.0173.us.us, i64 4 - %conv.i154.us.us = uitofp i32 %src158.0.val.us.us to float - store float %conv.i154.us.us, ptr %cdata.7172.us.us, align 4 - %add.ptr169.us.us = getelementptr inbounds i8, ptr %cdata.7172.us.us, i64 %idx.ext182.us.us - %inc171.us.us = add nuw nsw i32 %s159.0174.us.us, 1 - %exitcond295.not = icmp eq i32 %inc171.us.us, %spec.select.us.us - br i1 %exitcond295.not, label %if.end191.us.us, label %for.body163.us.us, !llvm.loop !7 + %s159.0171.us.us = phi i32 [ %inc171.us.us, %for.body163.us.us ], [ 0, %for.cond160.preheader.us.us ] + %src158.0170.us.us = phi ptr [ %incdec.ptr166.us.us, %for.body163.us.us ], [ %srcbuffer.2204.us.us, %for.cond160.preheader.us.us ] + %cdata.7169.us.us = phi ptr [ %add.ptr169.us.us, %for.body163.us.us ], [ %16, %for.cond160.preheader.us.us ] + %src158.0.val.us.us = load i32, ptr %src158.0170.us.us, align 1 + %incdec.ptr166.us.us = getelementptr inbounds i8, ptr %src158.0170.us.us, i64 4 + %conv.i151.us.us = uitofp i32 %src158.0.val.us.us to float + store float %conv.i151.us.us, ptr %cdata.7169.us.us, align 4 + %add.ptr169.us.us = getelementptr inbounds i8, ptr %cdata.7169.us.us, i64 %idx.ext182.us.us + %inc171.us.us = add nuw nsw i32 %s159.0171.us.us, 1 + %exitcond292.not = icmp eq i32 %inc171.us.us, %spec.select.us.us + br i1 %exitcond292.not, label %if.end191.us.us, label %for.body163.us.us, !llvm.loop !7 for.body147.us.us: ; preds = %for.cond144.preheader.us.us, %uint_to_half.exit.us.us - %s143.0178.us.us = phi i32 [ %inc155.us.us, %uint_to_half.exit.us.us ], [ 0, %for.cond144.preheader.us.us ] - %src142.0177.us.us = phi ptr [ %incdec.ptr150.us.us, %uint_to_half.exit.us.us ], [ %srcbuffer.2207.us.us, %for.cond144.preheader.us.us ] - %cdata.6176.us.us = phi ptr [ %add.ptr153.us.us, %uint_to_half.exit.us.us ], [ %16, %for.cond144.preheader.us.us ] - %src142.0.val.us.us = load i32, ptr %src142.0177.us.us, align 1 - %incdec.ptr150.us.us = getelementptr inbounds i8, ptr %src142.0177.us.us, i64 4 + %s143.0175.us.us = phi i32 [ %inc155.us.us, %uint_to_half.exit.us.us ], [ 0, %for.cond144.preheader.us.us ] + %src142.0174.us.us = phi ptr [ %incdec.ptr150.us.us, %uint_to_half.exit.us.us ], [ %srcbuffer.2204.us.us, %for.cond144.preheader.us.us ] + %cdata.6173.us.us = phi ptr [ %add.ptr153.us.us, %uint_to_half.exit.us.us ], [ %16, %for.cond144.preheader.us.us ] + %src142.0.val.us.us = load i32, ptr %src142.0174.us.us, align 1 + %incdec.ptr150.us.us = getelementptr inbounds i8, ptr %src142.0174.us.us, i64 4 %cmp.i109.us.us = icmp ugt i32 %src142.0.val.us.us, 65504 br i1 %cmp.i109.us.us, label %uint_to_half.exit.us.us, label %if.end.i110.us.us if.end.i110.us.us: ; preds = %for.body147.us.us %conv.i111.us.us = uitofp i32 %src142.0.val.us.us to float %22 = bitcast float %conv.i111.us.us to i32 - %shr.i.i.i112.us.us = lshr i32 %22, 16 - %23 = trunc i32 %shr.i.i.i112.us.us to i16 - %conv.i.i.i113.us.us = and i16 %23, -32768 - %cmp.i.i.i114.us.us = icmp ugt i32 %22, 947912703 - br i1 %cmp.i.i.i114.us.us, label %if.then.i.i.i135.us.us, label %if.end43.i.i.i115.us.us - -if.end43.i.i.i115.us.us: ; preds = %if.end.i110.us.us - %cmp44.i.i.i116.us.us = icmp ult i32 %22, 855638017 - br i1 %cmp44.i.i.i116.us.us, label %uint_to_half.exit.us.us, label %if.end47.i.i.i117.us.us - -if.end47.i.i.i117.us.us: ; preds = %if.end43.i.i.i115.us.us - %shr48.i.i.i118.us.us = lshr i32 %22, 23 - %sub49.i.i.i119.us.us = sub nuw nsw i32 126, %shr48.i.i.i118.us.us - %and50.i.i.i120.us.us = and i32 %22, 8388607 - %or51.i.i.i121.us.us = or disjoint i32 %and50.i.i.i120.us.us, 8388608 - %sub52.i.i.i122.us.us = add nsw i32 %shr48.i.i.i118.us.us, -94 - %shl.i.i.i123.us.us = shl i32 %or51.i.i.i121.us.us, %sub52.i.i.i122.us.us - %shr53.i.i.i124.us.us = lshr i32 %or51.i.i.i121.us.us, %sub49.i.i.i119.us.us - %conv56.i.i.i125.us.us = trunc i32 %shr53.i.i.i124.us.us to i16 - %cmp57.i.i.i126.us.us = icmp ugt i32 %shl.i.i.i123.us.us, -2147483648 - br i1 %cmp57.i.i.i126.us.us, label %if.then65.i.i.i132.us.us, label %lor.lhs.false.i.i.i127.us.us - -lor.lhs.false.i.i.i127.us.us: ; preds = %if.end47.i.i.i117.us.us - %cmp59.i.i.i128.us.us = icmp ne i32 %shl.i.i.i123.us.us, -2147483648 - %and62.i.i.i129.us.us = and i32 %shr53.i.i.i124.us.us, 1 - %cmp63.not.i.i.i130.us.us = icmp eq i32 %and62.i.i.i129.us.us, 0 - %or.cond.i.i.i131.us.us = select i1 %cmp59.i.i.i128.us.us, i1 true, i1 %cmp63.not.i.i.i130.us.us - br i1 %or.cond.i.i.i131.us.us, label %uint_to_half.exit.us.us, label %if.then65.i.i.i132.us.us - -if.then65.i.i.i132.us.us: ; preds = %lor.lhs.false.i.i.i127.us.us, %if.end47.i.i.i117.us.us - %inc.i.i.i133.us.us = add nuw nsw i16 %conv56.i.i.i125.us.us, 1 + %cmp.i.i.i112.us.us = icmp ugt i32 %22, 947912703 + br i1 %cmp.i.i.i112.us.us, label %if.then.i.i.i133.us.us, label %if.end43.i.i.i113.us.us + +if.end43.i.i.i113.us.us: ; preds = %if.end.i110.us.us + %cmp44.i.i.i114.us.us = icmp ult i32 %22, 855638017 + br i1 %cmp44.i.i.i114.us.us, label %uint_to_half.exit.us.us, label %if.end47.i.i.i115.us.us + +if.end47.i.i.i115.us.us: ; preds = %if.end43.i.i.i113.us.us + %shr48.i.i.i116.us.us = lshr i32 %22, 23 + %sub49.i.i.i117.us.us = sub nuw nsw i32 126, %shr48.i.i.i116.us.us + %and50.i.i.i118.us.us = and i32 %22, 8388607 + %or51.i.i.i119.us.us = or disjoint i32 %and50.i.i.i118.us.us, 8388608 + %sub52.i.i.i120.us.us = add nsw i32 %shr48.i.i.i116.us.us, -94 + %shl.i.i.i121.us.us = shl i32 %or51.i.i.i119.us.us, %sub52.i.i.i120.us.us + %shr53.i.i.i122.us.us = lshr i32 %or51.i.i.i119.us.us, %sub49.i.i.i117.us.us + %conv56.i.i.i123.us.us = trunc i32 %shr53.i.i.i122.us.us to i16 + %cmp57.i.i.i124.us.us = icmp ugt i32 %shl.i.i.i121.us.us, -2147483648 + br i1 %cmp57.i.i.i124.us.us, label %if.then65.i.i.i130.us.us, label %lor.lhs.false.i.i.i125.us.us + +lor.lhs.false.i.i.i125.us.us: ; preds = %if.end47.i.i.i115.us.us + %cmp59.i.i.i126.us.us = icmp ne i32 %shl.i.i.i121.us.us, -2147483648 + %and62.i.i.i127.us.us = and i32 %shr53.i.i.i122.us.us, 1 + %cmp63.not.i.i.i128.us.us = icmp eq i32 %and62.i.i.i127.us.us, 0 + %or.cond.i.i.i129.us.us = select i1 %cmp59.i.i.i126.us.us, i1 true, i1 %cmp63.not.i.i.i128.us.us + br i1 %or.cond.i.i.i129.us.us, label %uint_to_half.exit.us.us, label %if.then65.i.i.i130.us.us + +if.then65.i.i.i130.us.us: ; preds = %lor.lhs.false.i.i.i125.us.us, %if.end47.i.i.i115.us.us + %inc.i.i.i131.us.us = add nuw nsw i16 %conv56.i.i.i123.us.us, 1 br label %uint_to_half.exit.us.us -if.then.i.i.i135.us.us: ; preds = %if.end.i110.us.us - %cmp3.i.i.i136.us.us = icmp ugt i32 %22, 2139095039 - br i1 %cmp3.i.i.i136.us.us, label %if.then6.i.i.i146.us.us, label %if.end24.i.i.i137.us.us - -if.end24.i.i.i137.us.us: ; preds = %if.then.i.i.i135.us.us - %cmp25.i.i.i138.us.us = icmp ugt i32 %22, 1199566847 - br i1 %cmp25.i.i.i138.us.us, label %uint_to_half.exit.us.us, label %if.end33.i.i.i139.us.us - -if.end33.i.i.i139.us.us: ; preds = %if.end24.i.i.i137.us.us - %add.i.i.i140.us.us = add nuw nsw i32 %22, 134221823 - %shr34.i.i.i141.us.us = lshr i32 %22, 13 - %and35.i.i.i142.us.us = and i32 %shr34.i.i.i141.us.us, 1 - %add36.i.i.i143.us.us = add nuw nsw i32 %add.i.i.i140.us.us, %and35.i.i.i142.us.us - %shr37.i.i.i144.us.us = lshr i32 %add36.i.i.i143.us.us, 13 - %conv42.i.i.i145.us.us = trunc i32 %shr37.i.i.i144.us.us to i16 +if.then.i.i.i133.us.us: ; preds = %if.end.i110.us.us + %cmp3.i.i.i134.us.us = icmp ugt i32 %22, 2139095039 + br i1 %cmp3.i.i.i134.us.us, label %if.then6.i.i.i144.us.us, label %if.end24.i.i.i135.us.us + +if.end24.i.i.i135.us.us: ; preds = %if.then.i.i.i133.us.us + %cmp25.i.i.i136.us.us = icmp ugt i32 %22, 1199566847 + br i1 %cmp25.i.i.i136.us.us, label %uint_to_half.exit.us.us, label %if.end33.i.i.i137.us.us + +if.end33.i.i.i137.us.us: ; preds = %if.end24.i.i.i135.us.us + %add.i.i.i138.us.us = add nuw nsw i32 %22, 134221823 + %shr34.i.i.i139.us.us = lshr i32 %22, 13 + %and35.i.i.i140.us.us = and i32 %shr34.i.i.i139.us.us, 1 + %add36.i.i.i141.us.us = add nuw nsw i32 %add.i.i.i138.us.us, %and35.i.i.i140.us.us + %shr37.i.i.i142.us.us = lshr i32 %add36.i.i.i141.us.us, 13 + %conv42.i.i.i143.us.us = trunc i32 %shr37.i.i.i142.us.us to i16 br label %uint_to_half.exit.us.us -if.then6.i.i.i146.us.us: ; preds = %if.then.i.i.i135.us.us - %conv8.i.i.i147.us.us = or disjoint i16 %conv.i.i.i113.us.us, 31744 - %cmp9.i.i.i148.us.us = icmp eq i32 %22, 2139095040 - br i1 %cmp9.i.i.i148.us.us, label %uint_to_half.exit.us.us, label %if.end.i.i.i149.us.us - -if.end.i.i.i149.us.us: ; preds = %if.then6.i.i.i146.us.us - %and12.i.i.i150.us.us = lshr i32 %22, 13 - %shr13.i.i.i151.us.us = and i32 %and12.i.i.i150.us.us, 1023 - %cmp18.i.i.i152.us.us = icmp eq i32 %shr13.i.i.i151.us.us, 0 - %24 = zext i1 %cmp18.i.i.i152.us.us to i16 - %25 = trunc i32 %shr13.i.i.i151.us.us to i16 - %26 = or i16 %24, %25 - %conv23.i.i.i153.us.us = or disjoint i16 %26, %conv8.i.i.i147.us.us +if.then6.i.i.i144.us.us: ; preds = %if.then.i.i.i133.us.us + %cmp9.i.i.i145.us.us = icmp eq i32 %22, 2139095040 + br i1 %cmp9.i.i.i145.us.us, label %uint_to_half.exit.us.us, label %if.end.i.i.i146.us.us + +if.end.i.i.i146.us.us: ; preds = %if.then6.i.i.i144.us.us + %and12.i.i.i147.us.us = lshr i32 %22, 13 + %shr13.i.i.i148.us.us = and i32 %and12.i.i.i147.us.us, 1023 + %cmp18.i.i.i149.us.us = icmp eq i32 %shr13.i.i.i148.us.us, 0 + %23 = zext i1 %cmp18.i.i.i149.us.us to i16 + %24 = trunc i32 %shr13.i.i.i148.us.us to i16 + %25 = or i16 %24, %23 + %conv23.i.i.i150.us.us = or disjoint i16 %25, 31744 br label %uint_to_half.exit.us.us -uint_to_half.exit.us.us: ; preds = %if.end.i.i.i149.us.us, %if.then6.i.i.i146.us.us, %if.end33.i.i.i139.us.us, %if.end24.i.i.i137.us.us, %if.then65.i.i.i132.us.us, %lor.lhs.false.i.i.i127.us.us, %if.end43.i.i.i115.us.us, %for.body147.us.us - %retval.0.i134.us.us = phi i16 [ 31744, %for.body147.us.us ], [ %conv23.i.i.i153.us.us, %if.end.i.i.i149.us.us ], [ %conv42.i.i.i145.us.us, %if.end33.i.i.i139.us.us ], [ %conv8.i.i.i147.us.us, %if.then6.i.i.i146.us.us ], [ %conv.i.i.i113.us.us, %if.end43.i.i.i115.us.us ], [ %inc.i.i.i133.us.us, %if.then65.i.i.i132.us.us ], [ %conv56.i.i.i125.us.us, %lor.lhs.false.i.i.i127.us.us ], [ 31744, %if.end24.i.i.i137.us.us ] - store i16 %retval.0.i134.us.us, ptr %cdata.6176.us.us, align 2 - %add.ptr153.us.us = getelementptr inbounds i8, ptr %cdata.6176.us.us, i64 %idx.ext182.us.us - %inc155.us.us = add nuw nsw i32 %s143.0178.us.us, 1 - %exitcond296.not = icmp eq i32 %inc155.us.us, %spec.select.us.us - br i1 %exitcond296.not, label %if.end191.us.us, label %for.body147.us.us, !llvm.loop !8 +uint_to_half.exit.us.us: ; preds = %if.end.i.i.i146.us.us, %if.then6.i.i.i144.us.us, %if.end33.i.i.i137.us.us, %if.end24.i.i.i135.us.us, %if.then65.i.i.i130.us.us, %lor.lhs.false.i.i.i125.us.us, %if.end43.i.i.i113.us.us, %for.body147.us.us + %retval.0.i132.us.us = phi i16 [ 31744, %for.body147.us.us ], [ %conv23.i.i.i150.us.us, %if.end.i.i.i146.us.us ], [ %conv42.i.i.i143.us.us, %if.end33.i.i.i137.us.us ], [ 31744, %if.then6.i.i.i144.us.us ], [ 0, %if.end43.i.i.i113.us.us ], [ %inc.i.i.i131.us.us, %if.then65.i.i.i130.us.us ], [ %conv56.i.i.i123.us.us, %lor.lhs.false.i.i.i125.us.us ], [ 31744, %if.end24.i.i.i135.us.us ] + store i16 %retval.0.i132.us.us, ptr %cdata.6173.us.us, align 2 + %add.ptr153.us.us = getelementptr inbounds i8, ptr %cdata.6173.us.us, i64 %idx.ext182.us.us + %inc155.us.us = add nuw nsw i32 %s143.0175.us.us, 1 + %exitcond293.not = icmp eq i32 %inc155.us.us, %spec.select.us.us + br i1 %exitcond293.not, label %if.end191.us.us, label %for.body147.us.us, !llvm.loop !8 sw.bb88.us.us: ; preds = %if.then44.us.us - %27 = load i16, ptr %user_data_type139.us.us, align 2 - switch i16 %27, label %return [ + %26 = load i16, ptr %user_data_type139.us.us, align 2 + switch i16 %26, label %return [ i16 1, label %for.cond94.preheader.us.us i16 2, label %for.cond109.preheader.us.us i16 0, label %for.cond123.preheader.us.us ] for.body126.us.us: ; preds = %for.cond123.preheader.us.us, %float_to_uint_int.exit.us.us - %s122.0182.us.us = phi i32 [ %inc134.us.us, %float_to_uint_int.exit.us.us ], [ 0, %for.cond123.preheader.us.us ] - %src121.0181.us.us = phi ptr [ %incdec.ptr129.us.us, %float_to_uint_int.exit.us.us ], [ %srcbuffer.2207.us.us, %for.cond123.preheader.us.us ] - %cdata.5180.us.us = phi ptr [ %add.ptr132.us.us, %float_to_uint_int.exit.us.us ], [ %16, %for.cond123.preheader.us.us ] - %src121.0.val155.us.us = load float, ptr %src121.0181.us.us, align 1 - %incdec.ptr129.us.us = getelementptr inbounds i8, ptr %src121.0181.us.us, i64 4 - %or.cond5.i.i.us.us = fcmp ult float %src121.0.val155.us.us, 0.000000e+00 + %s122.0179.us.us = phi i32 [ %inc134.us.us, %float_to_uint_int.exit.us.us ], [ 0, %for.cond123.preheader.us.us ] + %src121.0178.us.us = phi ptr [ %incdec.ptr129.us.us, %float_to_uint_int.exit.us.us ], [ %srcbuffer.2204.us.us, %for.cond123.preheader.us.us ] + %cdata.5177.us.us = phi ptr [ %add.ptr132.us.us, %float_to_uint_int.exit.us.us ], [ %16, %for.cond123.preheader.us.us ] + %src121.0.val152.us.us = load float, ptr %src121.0178.us.us, align 1 + %incdec.ptr129.us.us = getelementptr inbounds i8, ptr %src121.0178.us.us, i64 4 + %or.cond5.i.i.us.us = fcmp ult float %src121.0.val152.us.us, 0.000000e+00 br i1 %or.cond5.i.i.us.us, label %float_to_uint_int.exit.us.us, label %if.end.i.i.us.us if.end.i.i.us.us: ; preds = %for.body126.us.us - %28 = tail call float @llvm.fabs.f32(float %src121.0.val155.us.us) #5 - %isinf.i.i.us.us = fcmp oeq float %28, 0x7FF0000000000000 - %cmp2.i.i.us.us = fcmp ogt float %src121.0.val155.us.us, 0x41F0000000000000 + %27 = tail call float @llvm.fabs.f32(float %src121.0.val152.us.us) #5 + %isinf.i.i.us.us = fcmp oeq float %27, 0x7FF0000000000000 + %cmp2.i.i.us.us = fcmp ogt float %src121.0.val152.us.us, 0x41F0000000000000 %or.cond.i.i.us.us = or i1 %cmp2.i.i.us.us, %isinf.i.i.us.us - %conv.i.i108.us.us = fptoui float %src121.0.val155.us.us to i32 + %conv.i.i108.us.us = fptoui float %src121.0.val152.us.us to i32 %spec.select.i.i.us.us = select i1 %or.cond.i.i.us.us, i32 -1, i32 %conv.i.i108.us.us br label %float_to_uint_int.exit.us.us float_to_uint_int.exit.us.us: ; preds = %if.end.i.i.us.us, %for.body126.us.us %retval.0.i.i.us.us = phi i32 [ 0, %for.body126.us.us ], [ %spec.select.i.i.us.us, %if.end.i.i.us.us ] - store i32 %retval.0.i.i.us.us, ptr %cdata.5180.us.us, align 4 - %add.ptr132.us.us = getelementptr inbounds i8, ptr %cdata.5180.us.us, i64 %idx.ext182.us.us - %inc134.us.us = add nuw nsw i32 %s122.0182.us.us, 1 - %exitcond297.not = icmp eq i32 %inc134.us.us, %spec.select.us.us - br i1 %exitcond297.not, label %if.end191.us.us, label %for.body126.us.us, !llvm.loop !9 + store i32 %retval.0.i.i.us.us, ptr %cdata.5177.us.us, align 4 + %add.ptr132.us.us = getelementptr inbounds i8, ptr %cdata.5177.us.us, i64 %idx.ext182.us.us + %inc134.us.us = add nuw nsw i32 %s122.0179.us.us, 1 + %exitcond294.not = icmp eq i32 %inc134.us.us, %spec.select.us.us + br i1 %exitcond294.not, label %if.end191.us.us, label %for.body126.us.us, !llvm.loop !9 for.body112.us.us: ; preds = %for.cond109.preheader.us.us, %for.body112.us.us - %s108.0186.us.us = phi i32 [ %inc118.us.us, %for.body112.us.us ], [ 0, %for.cond109.preheader.us.us ] - %src107.0185.us.us = phi ptr [ %incdec.ptr114.us.us, %for.body112.us.us ], [ %srcbuffer.2207.us.us, %for.cond109.preheader.us.us ] - %cdata.4184.us.us = phi ptr [ %add.ptr116.us.us, %for.body112.us.us ], [ %16, %for.cond109.preheader.us.us ] - %src107.0.val.us.us = load i32, ptr %src107.0185.us.us, align 1 - store i32 %src107.0.val.us.us, ptr %cdata.4184.us.us, align 4 - %incdec.ptr114.us.us = getelementptr inbounds i8, ptr %src107.0185.us.us, i64 4 - %add.ptr116.us.us = getelementptr inbounds i8, ptr %cdata.4184.us.us, i64 %idx.ext182.us.us - %inc118.us.us = add nuw nsw i32 %s108.0186.us.us, 1 - %exitcond298.not = icmp eq i32 %inc118.us.us, %spec.select.us.us - br i1 %exitcond298.not, label %if.end191.us.us, label %for.body112.us.us, !llvm.loop !10 + %s108.0183.us.us = phi i32 [ %inc118.us.us, %for.body112.us.us ], [ 0, %for.cond109.preheader.us.us ] + %src107.0182.us.us = phi ptr [ %incdec.ptr114.us.us, %for.body112.us.us ], [ %srcbuffer.2204.us.us, %for.cond109.preheader.us.us ] + %cdata.4181.us.us = phi ptr [ %add.ptr116.us.us, %for.body112.us.us ], [ %16, %for.cond109.preheader.us.us ] + %src107.0.val.us.us = load i32, ptr %src107.0182.us.us, align 1 + store i32 %src107.0.val.us.us, ptr %cdata.4181.us.us, align 4 + %incdec.ptr114.us.us = getelementptr inbounds i8, ptr %src107.0182.us.us, i64 4 + %add.ptr116.us.us = getelementptr inbounds i8, ptr %cdata.4181.us.us, i64 %idx.ext182.us.us + %inc118.us.us = add nuw nsw i32 %s108.0183.us.us, 1 + %exitcond295.not = icmp eq i32 %inc118.us.us, %spec.select.us.us + br i1 %exitcond295.not, label %if.end191.us.us, label %for.body112.us.us, !llvm.loop !10 for.body97.us.us: ; preds = %for.cond94.preheader.us.us, %float_to_half_int.exit.us.us - %s93.0190.us.us = phi i32 [ %inc104.us.us, %float_to_half_int.exit.us.us ], [ 0, %for.cond94.preheader.us.us ] - %src92.0189.us.us = phi ptr [ %incdec.ptr99.us.us, %float_to_half_int.exit.us.us ], [ %srcbuffer.2207.us.us, %for.cond94.preheader.us.us ] - %cdata.3188.us.us = phi ptr [ %add.ptr102.us.us, %float_to_half_int.exit.us.us ], [ %16, %for.cond94.preheader.us.us ] - %src92.0.val.us.us = load i32, ptr %src92.0189.us.us, align 1 - %incdec.ptr99.us.us = getelementptr inbounds i8, ptr %src92.0189.us.us, i64 4 - %29 = bitcast i32 %src92.0.val.us.us to float - %30 = tail call float @llvm.fabs.f32(float %29) - %and.i.i.i.us.us = bitcast float %30 to i32 + %s93.0187.us.us = phi i32 [ %inc104.us.us, %float_to_half_int.exit.us.us ], [ 0, %for.cond94.preheader.us.us ] + %src92.0186.us.us = phi ptr [ %incdec.ptr99.us.us, %float_to_half_int.exit.us.us ], [ %srcbuffer.2204.us.us, %for.cond94.preheader.us.us ] + %cdata.3185.us.us = phi ptr [ %add.ptr102.us.us, %float_to_half_int.exit.us.us ], [ %16, %for.cond94.preheader.us.us ] + %src92.0.val.us.us = load i32, ptr %src92.0186.us.us, align 1 + %incdec.ptr99.us.us = getelementptr inbounds i8, ptr %src92.0186.us.us, i64 4 + %28 = bitcast i32 %src92.0.val.us.us to float + %29 = tail call float @llvm.fabs.f32(float %28) + %and.i.i.i.us.us = bitcast float %29 to i32 %shr.i.i.i.us.us = lshr i32 %src92.0.val.us.us, 16 - %31 = trunc i32 %shr.i.i.i.us.us to i16 - %conv.i.i.i.us.us = and i16 %31, -32768 + %30 = trunc i32 %shr.i.i.i.us.us to i16 + %conv.i.i.i.us.us = and i16 %30, -32768 %cmp.i.i.i105.us.us = icmp ugt i32 %and.i.i.i.us.us, 947912703 br i1 %cmp.i.i.i105.us.us, label %if.then.i.i.i106.us.us, label %if.end43.i.i.i.us.us @@ -509,34 +505,34 @@ if.end.i.i.i.us.us: ; preds = %if.then6.i.i.i.us.u %and12.i.i.i.us.us = lshr i32 %and.i.i.i.us.us, 13 %shr13.i.i.i.us.us = and i32 %and12.i.i.i.us.us, 1023 %cmp18.i.i.i.us.us = icmp eq i32 %shr13.i.i.i.us.us, 0 - %32 = zext i1 %cmp18.i.i.i.us.us to i16 - %33 = trunc i32 %shr13.i.i.i.us.us to i16 - %34 = or i16 %33, %32 - %conv23.i.i.i.us.us = or disjoint i16 %34, %conv8.i.i.i.us.us + %31 = zext i1 %cmp18.i.i.i.us.us to i16 + %32 = trunc i32 %shr13.i.i.i.us.us to i16 + %33 = or i16 %32, %31 + %conv23.i.i.i.us.us = or disjoint i16 %33, %conv8.i.i.i.us.us br label %float_to_half_int.exit.us.us float_to_half_int.exit.us.us: ; preds = %if.end.i.i.i.us.us, %if.then6.i.i.i.us.us, %if.then29.i.i.i.us.us, %if.end33.i.i.i.us.us, %if.then65.i.i.i.us.us, %lor.lhs.false.i.i.i.us.us, %if.end43.i.i.i.us.us %retval.0.i.i.i.us.us = phi i16 [ %conv23.i.i.i.us.us, %if.end.i.i.i.us.us ], [ %conv32.i.i.i.us.us, %if.then29.i.i.i.us.us ], [ %conv42.i.i.i.us.us, %if.end33.i.i.i.us.us ], [ %conv8.i.i.i.us.us, %if.then6.i.i.i.us.us ], [ %conv.i.i.i.us.us, %if.end43.i.i.i.us.us ], [ %inc.i.i.i.us.us, %if.then65.i.i.i.us.us ], [ %conv56.i.i.i.us.us, %lor.lhs.false.i.i.i.us.us ] - store i16 %retval.0.i.i.i.us.us, ptr %cdata.3188.us.us, align 2 - %add.ptr102.us.us = getelementptr inbounds i8, ptr %cdata.3188.us.us, i64 %idx.ext182.us.us - %inc104.us.us = add nuw nsw i32 %s93.0190.us.us, 1 - %exitcond299.not = icmp eq i32 %inc104.us.us, %spec.select.us.us - br i1 %exitcond299.not, label %if.end191.us.us, label %for.body97.us.us, !llvm.loop !11 + store i16 %retval.0.i.i.i.us.us, ptr %cdata.3185.us.us, align 2 + %add.ptr102.us.us = getelementptr inbounds i8, ptr %cdata.3185.us.us, i64 %idx.ext182.us.us + %inc104.us.us = add nuw nsw i32 %s93.0187.us.us, 1 + %exitcond296.not = icmp eq i32 %inc104.us.us, %spec.select.us.us + br i1 %exitcond296.not, label %if.end191.us.us, label %for.body97.us.us, !llvm.loop !11 sw.bb.us.us: ; preds = %if.then44.us.us - %35 = load i16, ptr %user_data_type139.us.us, align 2 - switch i16 %35, label %return [ + %34 = load i16, ptr %user_data_type139.us.us, align 2 + switch i16 %34, label %return [ i16 1, label %for.cond48.preheader.us.us i16 2, label %for.cond60.preheader.us.us i16 0, label %for.cond75.preheader.us.us ] for.body78.us.us: ; preds = %for.cond75.preheader.us.us, %half_to_uint.exit.us.us - %s74.0194.us.us = phi i32 [ %inc86.us.us, %half_to_uint.exit.us.us ], [ 0, %for.cond75.preheader.us.us ] - %src73.0193.us.us = phi ptr [ %incdec.ptr81.us.us, %half_to_uint.exit.us.us ], [ %srcbuffer.2207.us.us, %for.cond75.preheader.us.us ] - %cdata.2192.us.us = phi ptr [ %add.ptr84.us.us, %half_to_uint.exit.us.us ], [ %16, %for.cond75.preheader.us.us ] - %src73.0.val.us.us = load i16, ptr %src73.0193.us.us, align 1 - %incdec.ptr81.us.us = getelementptr inbounds i8, ptr %src73.0193.us.us, i64 2 + %s74.0191.us.us = phi i32 [ %inc86.us.us, %half_to_uint.exit.us.us ], [ 0, %for.cond75.preheader.us.us ] + %src73.0190.us.us = phi ptr [ %incdec.ptr81.us.us, %half_to_uint.exit.us.us ], [ %srcbuffer.2204.us.us, %for.cond75.preheader.us.us ] + %cdata.2189.us.us = phi ptr [ %add.ptr84.us.us, %half_to_uint.exit.us.us ], [ %16, %for.cond75.preheader.us.us ] + %src73.0.val.us.us = load i16, ptr %src73.0190.us.us, align 1 + %incdec.ptr81.us.us = getelementptr inbounds i8, ptr %src73.0190.us.us, i64 2 %conv.i.us.us = zext i16 %src73.0.val.us.us to i32 %tobool.not.i.us.us = icmp sgt i16 %src73.0.val.us.us, -1 br i1 %tobool.not.i.us.us, label %if.end.i.us.us, label %half_to_uint.exit.us.us @@ -547,7 +543,7 @@ if.end.i.us.us: ; preds = %for.body78.us.us br i1 %cmp.i.us.us, label %if.then4.i.us.us, label %if.end11.i.us.us if.end11.i.us.us: ; preds = %if.end.i.us.us - %36 = shl nuw nsw i32 %conv.i.us.us, 13 + %35 = shl nuw nsw i32 %conv.i.us.us, 13 %cmp.i.i.i.us.us = icmp ugt i16 %src73.0.val.us.us, 1023 br i1 %cmp.i.i.i.us.us, label %if.then.i.i.i.us.us, label %if.else12.i.i.i.us.us @@ -556,9 +552,9 @@ if.else12.i.i.i.us.us: ; preds = %if.end11.i.us.us br i1 %cmp13.not.i.i.i.us.us, label %half_to_float.exit.i.us.us, label %if.then15.i.i.i.us.us if.then15.i.i.i.us.us: ; preds = %if.else12.i.i.i.us.us - %37 = tail call i32 @llvm.ctlz.i32(i32 %36, i1 true), !range !12 - %sub.i.i.i.us.us = add nsw i32 %37, -8 - %shl17.i.i.i.us.us = shl i32 %36, %sub.i.i.i.us.us + %36 = tail call i32 @llvm.ctlz.i32(i32 %35, i1 true), !range !12 + %sub.i.i.i.us.us = add nsw i32 %36, -8 + %shl17.i.i.i.us.us = shl i32 %35, %sub.i.i.i.us.us %or18.i.i.i.us.us = or i32 %shl17.i.i.i.us.us, 947912704 %shl19.i.i.i.us.us = shl nuw nsw i32 %sub.i.i.i.us.us, 23 %sub20.i.i.i.us.us = sub nuw i32 %or18.i.i.i.us.us, %shl19.i.i.i.us.us @@ -569,17 +565,17 @@ if.then.i.i.i.us.us: ; preds = %if.end11.i.us.us br i1 %cmp6.i.i.i.us.us, label %if.then10.i.i.i.us.us, label %if.else.i.i.i.us.us if.else.i.i.i.us.us: ; preds = %if.then.i.i.i.us.us - %or11.i.i.i.us.us = or i32 %36, 2139095040 + %or11.i.i.i.us.us = or i32 %35, 2139095040 br label %half_to_float.exit.i.us.us if.then10.i.i.i.us.us: ; preds = %if.then.i.i.i.us.us - %add.i.i.i.us.us = add nuw nsw i32 %36, 939524096 + %add.i.i.i.us.us = add nuw nsw i32 %35, 939524096 br label %half_to_float.exit.i.us.us half_to_float.exit.i.us.us: ; preds = %if.then10.i.i.i.us.us, %if.else.i.i.i.us.us, %if.then15.i.i.i.us.us, %if.else12.i.i.i.us.us %v.sroa.0.0.i.i.i.us.us = phi i32 [ %add.i.i.i.us.us, %if.then10.i.i.i.us.us ], [ %or11.i.i.i.us.us, %if.else.i.i.i.us.us ], [ %sub20.i.i.i.us.us, %if.then15.i.i.i.us.us ], [ 0, %if.else12.i.i.i.us.us ] - %38 = bitcast i32 %v.sroa.0.0.i.i.i.us.us to float - %conv12.i.us.us = fptoui float %38 to i32 + %37 = bitcast i32 %v.sroa.0.0.i.i.i.us.us to float + %conv12.i.us.us = fptoui float %37 to i32 br label %half_to_uint.exit.us.us if.then4.i.us.us: ; preds = %if.end.i.us.us @@ -590,21 +586,21 @@ if.then4.i.us.us: ; preds = %if.end.i.us.us half_to_uint.exit.us.us: ; preds = %if.then4.i.us.us, %half_to_float.exit.i.us.us, %for.body78.us.us %retval.0.i.us.us = phi i32 [ %conv12.i.us.us, %half_to_float.exit.i.us.us ], [ 0, %for.body78.us.us ], [ %..i.us.us, %if.then4.i.us.us ] - store i32 %retval.0.i.us.us, ptr %cdata.2192.us.us, align 4 - %add.ptr84.us.us = getelementptr inbounds i8, ptr %cdata.2192.us.us, i64 %idx.ext182.us.us - %inc86.us.us = add nuw nsw i32 %s74.0194.us.us, 1 - %exitcond300.not = icmp eq i32 %inc86.us.us, %spec.select.us.us - br i1 %exitcond300.not, label %if.end191.us.us, label %for.body78.us.us, !llvm.loop !13 + store i32 %retval.0.i.us.us, ptr %cdata.2189.us.us, align 4 + %add.ptr84.us.us = getelementptr inbounds i8, ptr %cdata.2189.us.us, i64 %idx.ext182.us.us + %inc86.us.us = add nuw nsw i32 %s74.0191.us.us, 1 + %exitcond297.not = icmp eq i32 %inc86.us.us, %spec.select.us.us + br i1 %exitcond297.not, label %if.end191.us.us, label %for.body78.us.us, !llvm.loop !13 for.body63.us.us: ; preds = %for.cond60.preheader.us.us, %half_to_float.exit.us.us - %s59.0198.us.us = phi i32 [ %inc70.us.us, %half_to_float.exit.us.us ], [ 0, %for.cond60.preheader.us.us ] - %src58.0197.us.us = phi ptr [ %incdec.ptr65.us.us, %half_to_float.exit.us.us ], [ %srcbuffer.2207.us.us, %for.cond60.preheader.us.us ] - %cdata.1196.us.us = phi ptr [ %add.ptr68.us.us, %half_to_float.exit.us.us ], [ %16, %for.cond60.preheader.us.us ] - %src58.0.val.us.us = load i16, ptr %src58.0197.us.us, align 1 - %incdec.ptr65.us.us = getelementptr inbounds i8, ptr %src58.0197.us.us, i64 2 + %s59.0195.us.us = phi i32 [ %inc70.us.us, %half_to_float.exit.us.us ], [ 0, %for.cond60.preheader.us.us ] + %src58.0194.us.us = phi ptr [ %incdec.ptr65.us.us, %half_to_float.exit.us.us ], [ %srcbuffer.2204.us.us, %for.cond60.preheader.us.us ] + %cdata.1193.us.us = phi ptr [ %add.ptr68.us.us, %half_to_float.exit.us.us ], [ %16, %for.cond60.preheader.us.us ] + %src58.0.val.us.us = load i16, ptr %src58.0194.us.us, align 1 + %incdec.ptr65.us.us = getelementptr inbounds i8, ptr %src58.0194.us.us, i64 2 %conv.i.i.us.us = zext i16 %src58.0.val.us.us to i32 - %39 = shl nuw nsw i32 %conv.i.i.us.us, 13 - %shr.i.i.us.us = and i32 %39, 268427264 + %38 = shl nuw nsw i32 %conv.i.i.us.us, 13 + %shr.i.i.us.us = and i32 %38, 268427264 %h.signext.i.i.us.us = sext i16 %src58.0.val.us.us to i32 %shl3.i.i.us.us = and i32 %h.signext.i.i.us.us, -2147483648 %cmp.i.i.us.us = icmp ugt i32 %shr.i.i.us.us, 8388607 @@ -615,8 +611,8 @@ if.else12.i.i.us.us: ; preds = %for.body63.us.us br i1 %cmp13.not.i.i.us.us, label %half_to_float.exit.us.us, label %if.then15.i.i.us.us if.then15.i.i.us.us: ; preds = %if.else12.i.i.us.us - %40 = tail call i32 @llvm.ctlz.i32(i32 %shr.i.i.us.us, i1 true), !range !12 - %sub.i.i.us.us = add nsw i32 %40, -8 + %39 = tail call i32 @llvm.ctlz.i32(i32 %shr.i.i.us.us, i1 true), !range !12 + %sub.i.i.us.us = add nsw i32 %39, -8 %shl17.i.i.us.us = shl i32 %shr.i.i.us.us, %sub.i.i.us.us %or16.i.i.us.us = or i32 %shl3.i.i.us.us, %shl17.i.i.us.us %or18.i.i.us.us = or i32 %or16.i.i.us.us, 947912704 @@ -639,107 +635,107 @@ if.then10.i.i.us.us: ; preds = %if.then.i.i.us.us half_to_float.exit.us.us: ; preds = %if.then10.i.i.us.us, %if.else.i.i.us.us, %if.then15.i.i.us.us, %if.else12.i.i.us.us %v.sroa.0.0.i.i.us.us = phi i32 [ %add.i.i.us.us, %if.then10.i.i.us.us ], [ %or11.i.i.us.us, %if.else.i.i.us.us ], [ %sub20.i.i.us.us, %if.then15.i.i.us.us ], [ %shl3.i.i.us.us, %if.else12.i.i.us.us ] - store i32 %v.sroa.0.0.i.i.us.us, ptr %cdata.1196.us.us, align 4 - %add.ptr68.us.us = getelementptr inbounds i8, ptr %cdata.1196.us.us, i64 %idx.ext182.us.us - %inc70.us.us = add nuw nsw i32 %s59.0198.us.us, 1 - %exitcond301.not = icmp eq i32 %inc70.us.us, %spec.select.us.us - br i1 %exitcond301.not, label %if.end191.us.us, label %for.body63.us.us, !llvm.loop !14 + store i32 %v.sroa.0.0.i.i.us.us, ptr %cdata.1193.us.us, align 4 + %add.ptr68.us.us = getelementptr inbounds i8, ptr %cdata.1193.us.us, i64 %idx.ext182.us.us + %inc70.us.us = add nuw nsw i32 %s59.0195.us.us, 1 + %exitcond298.not = icmp eq i32 %inc70.us.us, %spec.select.us.us + br i1 %exitcond298.not, label %if.end191.us.us, label %for.body63.us.us, !llvm.loop !14 for.body51.us.us: ; preds = %for.cond48.preheader.us.us, %for.body51.us.us - %s.0202.us.us = phi i32 [ %inc55.us.us, %for.body51.us.us ], [ 0, %for.cond48.preheader.us.us ] - %src.0201.us.us = phi ptr [ %incdec.ptr.us.us, %for.body51.us.us ], [ %srcbuffer.2207.us.us, %for.cond48.preheader.us.us ] - %cdata.0200.us.us = phi ptr [ %add.ptr53.us.us, %for.body51.us.us ], [ %16, %for.cond48.preheader.us.us ] - %src.0.val.us.us = load i16, ptr %src.0201.us.us, align 1 - store i16 %src.0.val.us.us, ptr %cdata.0200.us.us, align 2 - %incdec.ptr.us.us = getelementptr inbounds i8, ptr %src.0201.us.us, i64 2 - %add.ptr53.us.us = getelementptr inbounds i8, ptr %cdata.0200.us.us, i64 %idx.ext182.us.us - %inc55.us.us = add nuw nsw i32 %s.0202.us.us, 1 - %exitcond302.not = icmp eq i32 %inc55.us.us, %spec.select.us.us - br i1 %exitcond302.not, label %if.end191.us.us, label %for.body51.us.us, !llvm.loop !15 + %s.0199.us.us = phi i32 [ %inc55.us.us, %for.body51.us.us ], [ 0, %for.cond48.preheader.us.us ] + %src.0198.us.us = phi ptr [ %incdec.ptr.us.us, %for.body51.us.us ], [ %srcbuffer.2204.us.us, %for.cond48.preheader.us.us ] + %cdata.0197.us.us = phi ptr [ %add.ptr53.us.us, %for.body51.us.us ], [ %16, %for.cond48.preheader.us.us ] + %src.0.val.us.us = load i16, ptr %src.0198.us.us, align 1 + store i16 %src.0.val.us.us, ptr %cdata.0197.us.us, align 2 + %incdec.ptr.us.us = getelementptr inbounds i8, ptr %src.0198.us.us, i64 2 + %add.ptr53.us.us = getelementptr inbounds i8, ptr %cdata.0197.us.us, i64 %idx.ext182.us.us + %inc55.us.us = add nuw nsw i32 %s.0199.us.us, 1 + %exitcond299.not = icmp eq i32 %inc55.us.us, %spec.select.us.us + br i1 %exitcond299.not, label %if.end191.us.us, label %for.body51.us.us, !llvm.loop !15 if.end191.us.us: ; preds = %for.body179.us.us, %for.body163.us.us, %uint_to_half.exit.us.us, %float_to_uint_int.exit.us.us, %for.body112.us.us, %float_to_half_int.exit.us.us, %half_to_uint.exit.us.us, %half_to_float.exit.us.us, %for.body51.us.us, %for.cond176.preheader.us.us, %for.cond160.preheader.us.us, %for.cond144.preheader.us.us, %for.cond123.preheader.us.us, %for.cond109.preheader.us.us, %for.cond94.preheader.us.us, %for.cond75.preheader.us.us, %for.cond60.preheader.us.us, %for.cond48.preheader.us.us, %for.body31.us.us %mul192.us.us = mul nsw i32 %spec.select.us.us, %conv6.us.us %idx.ext193.us.us = sext i32 %mul192.us.us to i64 - %add.ptr194.us.us = getelementptr inbounds i8, ptr %srcbuffer.2207.us.us, i64 %idx.ext193.us.us + %add.ptr194.us.us = getelementptr inbounds i8, ptr %srcbuffer.2204.us.us, i64 %idx.ext193.us.us %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %exitcond304.not = icmp eq i64 %indvars.iv.next, %wide.trip.count - br i1 %exitcond304.not, label %for.inc198.us.us.loopexit, label %for.body31.us.us, !llvm.loop !16 + %exitcond301.not = icmp eq i64 %indvars.iv.next, %wide.trip.count + br i1 %exitcond301.not, label %for.inc198.us.us.loopexit, label %for.body31.us.us, !llvm.loop !16 if.then.us.us: ; preds = %for.body5.us.us - %41 = load i16, ptr %decode_flags34, align 2 - %42 = and i16 %41, 1 - %tobool9.not.us.us = icmp eq i16 %42, 0 + %40 = load i16, ptr %decode_flags34, align 2 + %41 = and i16 %40, 1 + %tobool9.not.us.us = icmp eq i16 %41, 0 br i1 %tobool9.not.us.us, label %if.else.us.us, label %for.body14.us.us for.body14.us.us: ; preds = %if.then.us.us, %for.body14.us.us - %indvars.iv305 = phi i64 [ %indvars.iv.next306, %for.body14.us.us ], [ 0, %if.then.us.us ] - %prevsamps.0211.us.us = phi i32 [ %add.us.us, %for.body14.us.us ], [ 0, %if.then.us.us ] - %arrayidx.us.us = getelementptr inbounds i32, ptr %sampbuffer.0257.us, i64 %indvars.iv305 - %43 = load i32, ptr %arrayidx.us.us, align 4 - %add.us.us = add nsw i32 %43, %prevsamps.0211.us.us - %indvars.iv.next306 = add nuw nsw i64 %indvars.iv305, 1 - %exitcond309.not = icmp eq i64 %indvars.iv.next306, %wide.trip.count308 - br i1 %exitcond309.not, label %if.end.us.us, label %for.body14.us.us, !llvm.loop !17 + %indvars.iv302 = phi i64 [ %indvars.iv.next303, %for.body14.us.us ], [ 0, %if.then.us.us ] + %prevsamps.0208.us.us = phi i32 [ %add.us.us, %for.body14.us.us ], [ 0, %if.then.us.us ] + %arrayidx.us.us = getelementptr inbounds i32, ptr %sampbuffer.0254.us, i64 %indvars.iv302 + %42 = load i32, ptr %arrayidx.us.us, align 4 + %add.us.us = add nsw i32 %42, %prevsamps.0208.us.us + %indvars.iv.next303 = add nuw nsw i64 %indvars.iv302, 1 + %exitcond306.not = icmp eq i64 %indvars.iv.next303, %wide.trip.count305 + br i1 %exitcond306.not, label %if.end.us.us, label %for.body14.us.us, !llvm.loop !17 if.else.us.us: ; preds = %if.then.us.us - %44 = load i32, ptr %arrayidx16.us, align 4 + %43 = load i32, ptr %arrayidx16.us, align 4 br label %if.end.us.us if.end.us.us: ; preds = %for.body14.us.us, %if.else.us.us - %prevsamps.1.us.us = phi i32 [ %44, %if.else.us.us ], [ %add.us.us, %for.body14.us.us ] + %prevsamps.1.us.us = phi i32 [ %43, %if.else.us.us ], [ %add.us.us, %for.body14.us.us ] %conv17.us.us = sext i8 %10 to i64 %conv18.us.us = sext i32 %prevsamps.1.us.us to i64 %mul.us.us = mul nsw i64 %conv18.us.us, %conv17.us.us - %add.ptr19.us.us = getelementptr inbounds i8, ptr %srcbuffer.1216.us.us, i64 %mul.us.us + %add.ptr19.us.us = getelementptr inbounds i8, ptr %srcbuffer.1213.us.us, i64 %mul.us.us br label %for.inc198.us.us for.inc198.us.us.loopexit: ; preds = %if.end191.us.us - %.pre318 = load i16, ptr %channel_count, align 8 + %.pre315 = load i16, ptr %channel_count, align 8 br label %for.inc198.us.us for.inc198.us.us: ; preds = %for.inc198.us.us.loopexit, %if.end.us.us - %45 = phi i16 [ %8, %if.end.us.us ], [ %.pre318, %for.inc198.us.us.loopexit ] + %44 = phi i16 [ %8, %if.end.us.us ], [ %.pre315, %for.inc198.us.us.loopexit ] %srcbuffer.3.us.us = phi ptr [ %add.ptr19.us.us, %if.end.us.us ], [ %add.ptr194.us.us, %for.inc198.us.us.loopexit ] - %indvars.iv.next311 = add nuw nsw i64 %indvars.iv310, 1 - %46 = sext i16 %45 to i64 - %cmp3.us.us = icmp slt i64 %indvars.iv.next311, %46 + %indvars.iv.next308 = add nuw nsw i64 %indvars.iv307, 1 + %45 = sext i16 %44 to i64 + %cmp3.us.us = icmp slt i64 %indvars.iv.next308, %45 br i1 %cmp3.us.us, label %for.body5.us.us, label %for.end200.us, !llvm.loop !18 for.cond48.preheader.us.us: ; preds = %sw.bb.us.us - %cmp49199.us.us = icmp sgt i32 %spec.select.us.us, 0 - br i1 %cmp49199.us.us, label %for.body51.us.us, label %if.end191.us.us + %cmp49196.us.us = icmp sgt i32 %spec.select.us.us, 0 + br i1 %cmp49196.us.us, label %for.body51.us.us, label %if.end191.us.us for.cond60.preheader.us.us: ; preds = %sw.bb.us.us - %cmp61195.us.us = icmp sgt i32 %spec.select.us.us, 0 - br i1 %cmp61195.us.us, label %for.body63.us.us, label %if.end191.us.us + %cmp61192.us.us = icmp sgt i32 %spec.select.us.us, 0 + br i1 %cmp61192.us.us, label %for.body63.us.us, label %if.end191.us.us for.cond75.preheader.us.us: ; preds = %sw.bb.us.us - %cmp76191.us.us = icmp sgt i32 %spec.select.us.us, 0 - br i1 %cmp76191.us.us, label %for.body78.us.us, label %if.end191.us.us + %cmp76188.us.us = icmp sgt i32 %spec.select.us.us, 0 + br i1 %cmp76188.us.us, label %for.body78.us.us, label %if.end191.us.us for.cond94.preheader.us.us: ; preds = %sw.bb88.us.us - %cmp95187.us.us = icmp sgt i32 %spec.select.us.us, 0 - br i1 %cmp95187.us.us, label %for.body97.us.us, label %if.end191.us.us + %cmp95184.us.us = icmp sgt i32 %spec.select.us.us, 0 + br i1 %cmp95184.us.us, label %for.body97.us.us, label %if.end191.us.us for.cond109.preheader.us.us: ; preds = %sw.bb88.us.us - %cmp110183.us.us = icmp sgt i32 %spec.select.us.us, 0 - br i1 %cmp110183.us.us, label %for.body112.us.us, label %if.end191.us.us + %cmp110180.us.us = icmp sgt i32 %spec.select.us.us, 0 + br i1 %cmp110180.us.us, label %for.body112.us.us, label %if.end191.us.us for.cond123.preheader.us.us: ; preds = %sw.bb88.us.us - %cmp124179.us.us = icmp sgt i32 %spec.select.us.us, 0 - br i1 %cmp124179.us.us, label %for.body126.us.us, label %if.end191.us.us + %cmp124176.us.us = icmp sgt i32 %spec.select.us.us, 0 + br i1 %cmp124176.us.us, label %for.body126.us.us, label %if.end191.us.us for.cond144.preheader.us.us: ; preds = %sw.bb138.us.us - %cmp145175.us.us = icmp sgt i32 %spec.select.us.us, 0 - br i1 %cmp145175.us.us, label %for.body147.us.us, label %if.end191.us.us + %cmp145172.us.us = icmp sgt i32 %spec.select.us.us, 0 + br i1 %cmp145172.us.us, label %for.body147.us.us, label %if.end191.us.us for.cond160.preheader.us.us: ; preds = %sw.bb138.us.us - %cmp161171.us.us = icmp sgt i32 %spec.select.us.us, 0 - br i1 %cmp161171.us.us, label %for.body163.us.us, label %if.end191.us.us + %cmp161168.us.us = icmp sgt i32 %spec.select.us.us, 0 + br i1 %cmp161168.us.us, label %for.body163.us.us, label %if.end191.us.us for.cond176.preheader.us.us: ; preds = %sw.bb138.us.us - %cmp177167.us.us = icmp sgt i32 %spec.select.us.us, 0 - br i1 %cmp177167.us.us, label %for.body179.us.us, label %if.end191.us.us + %cmp177164.us.us = icmp sgt i32 %spec.select.us.us, 0 + br i1 %cmp177164.us.us, label %for.body179.us.us, label %if.end191.us.us return: ; preds = %for.end200.us, %if.then44.us.us, %sw.bb138.us.us, %sw.bb88.us.us, %sw.bb.us.us, %for.cond2.preheader.lr.ph, %entry %retval.0 = phi i32 [ 0, %entry ], [ 0, %for.cond2.preheader.lr.ph ], [ 3, %sw.bb.us.us ], [ 3, %sw.bb88.us.us ], [ 3, %sw.bb138.us.us ], [ 3, %if.then44.us.us ], [ 0, %for.end200.us ] @@ -758,60 +754,60 @@ entry: %.fr = freeze i32 %2 %height = getelementptr inbounds i8, ptr %decode, i64 36 %3 = load i32, ptr %height, align 4 - %cmp281 = icmp sgt i32 %3, 0 - br i1 %cmp281, label %for.cond2.preheader.lr.ph, label %return + %cmp278 = icmp sgt i32 %3, 0 + br i1 %cmp278, label %for.cond2.preheader.lr.ph, label %return for.cond2.preheader.lr.ph: ; preds = %entry %channel_count = getelementptr inbounds i8, ptr %decode, i64 8 - %cmp36214 = icmp sgt i32 %.fr, 0 + %cmp36211 = icmp sgt i32 %.fr, 0 %decode_flags41 = getelementptr inbounds i8, ptr %decode, i64 10 %sub = add nsw i32 %.fr, -1 %idxprom20 = sext i32 %sub to i64 %idx.ext209 = sext i32 %.fr to i64 - br i1 %cmp36214, label %for.cond2.preheader.us.preheader, label %return + br i1 %cmp36211, label %for.cond2.preheader.us.preheader, label %return for.cond2.preheader.us.preheader: ; preds = %for.cond2.preheader.lr.ph %.pre = load i16, ptr %channel_count, align 8 %wide.trip.count = zext nneg i32 %.fr to i64 - %wide.trip.count337 = zext nneg i32 %.fr to i64 + %wide.trip.count334 = zext nneg i32 %.fr to i64 br label %for.cond2.preheader.us for.cond2.preheader.us: ; preds = %for.cond2.preheader.us.preheader, %for.end208.us %4 = phi i16 [ %6, %for.end208.us ], [ %.pre, %for.cond2.preheader.us.preheader ] %5 = phi i16 [ %7, %for.end208.us ], [ %.pre, %for.cond2.preheader.us.preheader ] - %srcbuffer.0287.us = phi ptr [ %srcbuffer.1.lcssa.us, %for.end208.us ], [ %0, %for.cond2.preheader.us.preheader ] - %sampbuffer.0284.us = phi ptr [ %add.ptr210.us, %for.end208.us ], [ %1, %for.cond2.preheader.us.preheader ] - %totsamps.0283.us = phi i64 [ %totsamps.1.lcssa.us, %for.end208.us ], [ 0, %for.cond2.preheader.us.preheader ] - %y.0282.us = phi i32 [ %inc212.us, %for.end208.us ], [ 0, %for.cond2.preheader.us.preheader ] - %cmp3228.us = icmp sgt i16 %5, 0 - br i1 %cmp3228.us, label %for.body5.lr.ph.us, label %for.end208.us + %srcbuffer.0284.us = phi ptr [ %srcbuffer.1.lcssa.us, %for.end208.us ], [ %0, %for.cond2.preheader.us.preheader ] + %sampbuffer.0281.us = phi ptr [ %add.ptr210.us, %for.end208.us ], [ %1, %for.cond2.preheader.us.preheader ] + %totsamps.0280.us = phi i64 [ %totsamps.1.lcssa.us, %for.end208.us ], [ 0, %for.cond2.preheader.us.preheader ] + %y.0279.us = phi i32 [ %inc212.us, %for.end208.us ], [ 0, %for.cond2.preheader.us.preheader ] + %cmp3225.us = icmp sgt i16 %5, 0 + br i1 %cmp3225.us, label %for.body5.lr.ph.us, label %for.end208.us for.end208.us: ; preds = %for.inc206.us.us, %for.cond2.preheader.us - %6 = phi i16 [ %4, %for.cond2.preheader.us ], [ %44, %for.inc206.us.us ] - %7 = phi i16 [ %5, %for.cond2.preheader.us ], [ %44, %for.inc206.us.us ] - %totsamps.1.lcssa.us = phi i64 [ %totsamps.0283.us, %for.cond2.preheader.us ], [ %totsamps.4.us.us, %for.inc206.us.us ] - %srcbuffer.1.lcssa.us = phi ptr [ %srcbuffer.0287.us, %for.cond2.preheader.us ], [ %srcbuffer.3.us.us, %for.inc206.us.us ] - %add.ptr210.us = getelementptr inbounds i32, ptr %sampbuffer.0284.us, i64 %idx.ext209 - %inc212.us = add nuw nsw i32 %y.0282.us, 1 - %exitcond342.not = icmp eq i32 %inc212.us, %3 - br i1 %exitcond342.not, label %return, label %for.cond2.preheader.us, !llvm.loop !19 + %6 = phi i16 [ %4, %for.cond2.preheader.us ], [ %43, %for.inc206.us.us ] + %7 = phi i16 [ %5, %for.cond2.preheader.us ], [ %43, %for.inc206.us.us ] + %totsamps.1.lcssa.us = phi i64 [ %totsamps.0280.us, %for.cond2.preheader.us ], [ %totsamps.4.us.us, %for.inc206.us.us ] + %srcbuffer.1.lcssa.us = phi ptr [ %srcbuffer.0284.us, %for.cond2.preheader.us ], [ %srcbuffer.3.us.us, %for.inc206.us.us ] + %add.ptr210.us = getelementptr inbounds i32, ptr %sampbuffer.0281.us, i64 %idx.ext209 + %inc212.us = add nuw nsw i32 %y.0279.us, 1 + %exitcond339.not = icmp eq i32 %inc212.us, %3 + br i1 %exitcond339.not, label %return, label %for.cond2.preheader.us, !llvm.loop !19 for.body5.lr.ph.us: ; preds = %for.cond2.preheader.us - %conv227.us = zext nneg i16 %5 to i64 - %arrayidx21.us = getelementptr inbounds i32, ptr %sampbuffer.0284.us, i64 %idxprom20 + %conv224.us = zext nneg i16 %5 to i64 + %arrayidx21.us = getelementptr inbounds i32, ptr %sampbuffer.0281.us, i64 %idxprom20 br label %for.body5.us.us for.body5.us.us: ; preds = %for.inc206.us.us, %for.body5.lr.ph.us - %8 = phi i16 [ %44, %for.inc206.us.us ], [ %4, %for.body5.lr.ph.us ] - %indvars.iv339 = phi i64 [ %indvars.iv.next340, %for.inc206.us.us ], [ 0, %for.body5.lr.ph.us ] - %conv232.us.us = phi i64 [ %conv.us.us, %for.inc206.us.us ], [ %conv227.us, %for.body5.lr.ph.us ] - %srcbuffer.1231.us.us = phi ptr [ %srcbuffer.3.us.us, %for.inc206.us.us ], [ %srcbuffer.0287.us, %for.body5.lr.ph.us ] - %totsamps.1230.us.us = phi i64 [ %totsamps.4.us.us, %for.inc206.us.us ], [ %totsamps.0283.us, %for.body5.lr.ph.us ] + %8 = phi i16 [ %43, %for.inc206.us.us ], [ %4, %for.body5.lr.ph.us ] + %indvars.iv336 = phi i64 [ %indvars.iv.next337, %for.inc206.us.us ], [ 0, %for.body5.lr.ph.us ] + %conv229.us.us = phi i64 [ %conv.us.us, %for.inc206.us.us ], [ %conv224.us, %for.body5.lr.ph.us ] + %srcbuffer.1228.us.us = phi ptr [ %srcbuffer.3.us.us, %for.inc206.us.us ], [ %srcbuffer.0284.us, %for.body5.lr.ph.us ] + %totsamps.1227.us.us = phi i64 [ %totsamps.4.us.us, %for.inc206.us.us ], [ %totsamps.0280.us, %for.body5.lr.ph.us ] %9 = load ptr, ptr %decode, align 8 - %add.ptr.us.us = getelementptr inbounds %struct.exr_coding_channel_info_t, ptr %9, i64 %indvars.iv339 - %indvars.iv.next340 = add nuw nsw i64 %indvars.iv339, 1 - %10 = and i64 %conv232.us.us, 4294967295 - %cmp8.us.us = icmp eq i64 %indvars.iv.next340, %10 + %add.ptr.us.us = getelementptr inbounds %struct.exr_coding_channel_info_t, ptr %9, i64 %indvars.iv336 + %indvars.iv.next337 = add nuw nsw i64 %indvars.iv336, 1 + %10 = and i64 %conv229.us.us, 4294967295 + %cmp8.us.us = icmp eq i64 %indvars.iv.next337, %10 %bytes_per_element.us.us = getelementptr inbounds i8, ptr %add.ptr.us.us, i64 25 %11 = load i8, ptr %bytes_per_element.us.us, align 1 %conv10.us.us = sext i8 %11 to i32 @@ -824,7 +820,7 @@ if.end30.us.us: ; preds = %for.body5.us.us %user_bytes_per_element.us.us = getelementptr inbounds i8, ptr %add.ptr.us.us, i64 28 %14 = load i16, ptr %user_bytes_per_element.us.us, align 4 %conv31.us.us = sext i16 %14 to i64 - %mul32.us.us = mul i64 %totsamps.1230.us.us, %conv31.us.us + %mul32.us.us = mul i64 %totsamps.1227.us.us, %conv31.us.us %add.ptr33.us.us = getelementptr inbounds i8, ptr %13, i64 %mul32.us.us %data_type.us.us = getelementptr inbounds i8, ptr %add.ptr.us.us, i64 26 %user_data_type143.us.us = getelementptr inbounds i8, ptr %add.ptr.us.us, i64 30 @@ -832,17 +828,17 @@ if.end30.us.us: ; preds = %for.body5.us.us for.body38.us.us: ; preds = %sw.epilog194.us.us, %if.end30.us.us %indvars.iv = phi i64 [ %indvars.iv.next, %sw.epilog194.us.us ], [ 0, %if.end30.us.us ] - %srcbuffer.2219.us.us = phi ptr [ %add.ptr197.us.us, %sw.epilog194.us.us ], [ %srcbuffer.1231.us.us, %if.end30.us.us ] - %cdata.0218.us.us = phi ptr [ %cdata.10.us.us, %sw.epilog194.us.us ], [ %add.ptr33.us.us, %if.end30.us.us ] - %totsamps.2217.us.us = phi i64 [ %totsamps.3.us.us, %sw.epilog194.us.us ], [ %totsamps.1230.us.us, %if.end30.us.us ] - %prevsamps.2215.us.us = phi i32 [ %spec.select104.us.us, %sw.epilog194.us.us ], [ 0, %if.end30.us.us ] - %arrayidx40.us.us = getelementptr inbounds i32, ptr %sampbuffer.0284.us, i64 %indvars.iv + %srcbuffer.2216.us.us = phi ptr [ %add.ptr197.us.us, %sw.epilog194.us.us ], [ %srcbuffer.1228.us.us, %if.end30.us.us ] + %cdata.0215.us.us = phi ptr [ %cdata.10.us.us, %sw.epilog194.us.us ], [ %add.ptr33.us.us, %if.end30.us.us ] + %totsamps.2214.us.us = phi i64 [ %totsamps.3.us.us, %sw.epilog194.us.us ], [ %totsamps.1227.us.us, %if.end30.us.us ] + %prevsamps.2212.us.us = phi i32 [ %spec.select104.us.us, %sw.epilog194.us.us ], [ 0, %if.end30.us.us ] + %arrayidx40.us.us = getelementptr inbounds i32, ptr %sampbuffer.0281.us, i64 %indvars.iv %15 = load i32, ptr %arrayidx40.us.us, align 4 %16 = load i16, ptr %decode_flags41, align 2 %17 = and i16 %16, 1 %cmp44.us.us = icmp eq i16 %17, 0 - %spec.select104.us.us = select i1 %cmp44.us.us, i32 %15, i32 %prevsamps.2215.us.us - %sub47.us.us = select i1 %cmp44.us.us, i32 %prevsamps.2215.us.us, i32 0 + %spec.select104.us.us = select i1 %cmp44.us.us, i32 %15, i32 %prevsamps.2212.us.us + %sub47.us.us = select i1 %cmp44.us.us, i32 %prevsamps.2212.us.us, i32 0 %spec.select105.us.us = sub i32 %15, %sub47.us.us %18 = load i16, ptr %data_type.us.us, align 2 switch i16 %18, label %return [ @@ -860,173 +856,169 @@ sw.bb142.us.us: ; preds = %for.body38.us.us ] for.body183.us.us: ; preds = %for.cond180.preheader.us.us, %for.body183.us.us - %s179.0173.us.us = phi i32 [ %inc189.us.us, %for.body183.us.us ], [ 0, %for.cond180.preheader.us.us ] - %src178.0172.us.us = phi ptr [ %incdec.ptr185.us.us, %for.body183.us.us ], [ %srcbuffer.2219.us.us, %for.cond180.preheader.us.us ] - %cdata.9171.us.us = phi ptr [ %add.ptr187.us.us, %for.body183.us.us ], [ %cdata.0218.us.us, %for.cond180.preheader.us.us ] - %src178.0.val.us.us = load i32, ptr %src178.0172.us.us, align 1 - store i32 %src178.0.val.us.us, ptr %cdata.9171.us.us, align 4 - %incdec.ptr185.us.us = getelementptr inbounds i8, ptr %src178.0172.us.us, i64 4 - %add.ptr187.us.us = getelementptr inbounds i8, ptr %cdata.9171.us.us, i64 %conv31.us.us - %inc189.us.us = add nuw nsw i32 %s179.0173.us.us, 1 + %s179.0170.us.us = phi i32 [ %inc189.us.us, %for.body183.us.us ], [ 0, %for.cond180.preheader.us.us ] + %src178.0169.us.us = phi ptr [ %incdec.ptr185.us.us, %for.body183.us.us ], [ %srcbuffer.2216.us.us, %for.cond180.preheader.us.us ] + %cdata.9168.us.us = phi ptr [ %add.ptr187.us.us, %for.body183.us.us ], [ %cdata.0215.us.us, %for.cond180.preheader.us.us ] + %src178.0.val.us.us = load i32, ptr %src178.0169.us.us, align 1 + store i32 %src178.0.val.us.us, ptr %cdata.9168.us.us, align 4 + %incdec.ptr185.us.us = getelementptr inbounds i8, ptr %src178.0169.us.us, i64 4 + %add.ptr187.us.us = getelementptr inbounds i8, ptr %cdata.9168.us.us, i64 %conv31.us.us + %inc189.us.us = add nuw nsw i32 %s179.0170.us.us, 1 %exitcond.not = icmp eq i32 %inc189.us.us, %spec.select105.us.us br i1 %exitcond.not, label %sw.epilog194.us.us, label %for.body183.us.us, !llvm.loop !20 for.body167.us.us: ; preds = %for.cond164.preheader.us.us, %for.body167.us.us - %s163.0177.us.us = phi i32 [ %inc175.us.us, %for.body167.us.us ], [ 0, %for.cond164.preheader.us.us ] - %src162.0176.us.us = phi ptr [ %incdec.ptr170.us.us, %for.body167.us.us ], [ %srcbuffer.2219.us.us, %for.cond164.preheader.us.us ] - %cdata.8175.us.us = phi ptr [ %add.ptr173.us.us, %for.body167.us.us ], [ %cdata.0218.us.us, %for.cond164.preheader.us.us ] - %src162.0.val.us.us = load i32, ptr %src162.0176.us.us, align 1 - %incdec.ptr170.us.us = getelementptr inbounds i8, ptr %src162.0176.us.us, i64 4 - %conv.i155.us.us = uitofp i32 %src162.0.val.us.us to float - store float %conv.i155.us.us, ptr %cdata.8175.us.us, align 4 - %add.ptr173.us.us = getelementptr inbounds i8, ptr %cdata.8175.us.us, i64 %conv31.us.us - %inc175.us.us = add nuw nsw i32 %s163.0177.us.us, 1 - %exitcond324.not = icmp eq i32 %inc175.us.us, %spec.select105.us.us - br i1 %exitcond324.not, label %sw.epilog194.us.us, label %for.body167.us.us, !llvm.loop !21 + %s163.0174.us.us = phi i32 [ %inc175.us.us, %for.body167.us.us ], [ 0, %for.cond164.preheader.us.us ] + %src162.0173.us.us = phi ptr [ %incdec.ptr170.us.us, %for.body167.us.us ], [ %srcbuffer.2216.us.us, %for.cond164.preheader.us.us ] + %cdata.8172.us.us = phi ptr [ %add.ptr173.us.us, %for.body167.us.us ], [ %cdata.0215.us.us, %for.cond164.preheader.us.us ] + %src162.0.val.us.us = load i32, ptr %src162.0173.us.us, align 1 + %incdec.ptr170.us.us = getelementptr inbounds i8, ptr %src162.0173.us.us, i64 4 + %conv.i152.us.us = uitofp i32 %src162.0.val.us.us to float + store float %conv.i152.us.us, ptr %cdata.8172.us.us, align 4 + %add.ptr173.us.us = getelementptr inbounds i8, ptr %cdata.8172.us.us, i64 %conv31.us.us + %inc175.us.us = add nuw nsw i32 %s163.0174.us.us, 1 + %exitcond321.not = icmp eq i32 %inc175.us.us, %spec.select105.us.us + br i1 %exitcond321.not, label %sw.epilog194.us.us, label %for.body167.us.us, !llvm.loop !21 for.body151.us.us: ; preds = %for.cond148.preheader.us.us, %uint_to_half.exit.us.us - %s147.0182.us.us = phi i32 [ %inc159.us.us, %uint_to_half.exit.us.us ], [ 0, %for.cond148.preheader.us.us ] - %src146.0181.us.us = phi ptr [ %incdec.ptr154.us.us, %uint_to_half.exit.us.us ], [ %srcbuffer.2219.us.us, %for.cond148.preheader.us.us ] - %cdata.7180.us.us = phi ptr [ %add.ptr157.us.us, %uint_to_half.exit.us.us ], [ %cdata.0218.us.us, %for.cond148.preheader.us.us ] - %src146.0.val.us.us = load i32, ptr %src146.0181.us.us, align 1 - %incdec.ptr154.us.us = getelementptr inbounds i8, ptr %src146.0181.us.us, i64 4 + %s147.0179.us.us = phi i32 [ %inc159.us.us, %uint_to_half.exit.us.us ], [ 0, %for.cond148.preheader.us.us ] + %src146.0178.us.us = phi ptr [ %incdec.ptr154.us.us, %uint_to_half.exit.us.us ], [ %srcbuffer.2216.us.us, %for.cond148.preheader.us.us ] + %cdata.7177.us.us = phi ptr [ %add.ptr157.us.us, %uint_to_half.exit.us.us ], [ %cdata.0215.us.us, %for.cond148.preheader.us.us ] + %src146.0.val.us.us = load i32, ptr %src146.0178.us.us, align 1 + %incdec.ptr154.us.us = getelementptr inbounds i8, ptr %src146.0178.us.us, i64 4 %cmp.i110.us.us = icmp ugt i32 %src146.0.val.us.us, 65504 br i1 %cmp.i110.us.us, label %uint_to_half.exit.us.us, label %if.end.i111.us.us if.end.i111.us.us: ; preds = %for.body151.us.us %conv.i112.us.us = uitofp i32 %src146.0.val.us.us to float %20 = bitcast float %conv.i112.us.us to i32 - %shr.i.i.i113.us.us = lshr i32 %20, 16 - %21 = trunc i32 %shr.i.i.i113.us.us to i16 - %conv.i.i.i114.us.us = and i16 %21, -32768 - %cmp.i.i.i115.us.us = icmp ugt i32 %20, 947912703 - br i1 %cmp.i.i.i115.us.us, label %if.then.i.i.i136.us.us, label %if.end43.i.i.i116.us.us - -if.end43.i.i.i116.us.us: ; preds = %if.end.i111.us.us - %cmp44.i.i.i117.us.us = icmp ult i32 %20, 855638017 - br i1 %cmp44.i.i.i117.us.us, label %uint_to_half.exit.us.us, label %if.end47.i.i.i118.us.us - -if.end47.i.i.i118.us.us: ; preds = %if.end43.i.i.i116.us.us - %shr48.i.i.i119.us.us = lshr i32 %20, 23 - %sub49.i.i.i120.us.us = sub nuw nsw i32 126, %shr48.i.i.i119.us.us - %and50.i.i.i121.us.us = and i32 %20, 8388607 - %or51.i.i.i122.us.us = or disjoint i32 %and50.i.i.i121.us.us, 8388608 - %sub52.i.i.i123.us.us = add nsw i32 %shr48.i.i.i119.us.us, -94 - %shl.i.i.i124.us.us = shl i32 %or51.i.i.i122.us.us, %sub52.i.i.i123.us.us - %shr53.i.i.i125.us.us = lshr i32 %or51.i.i.i122.us.us, %sub49.i.i.i120.us.us - %conv56.i.i.i126.us.us = trunc i32 %shr53.i.i.i125.us.us to i16 - %cmp57.i.i.i127.us.us = icmp ugt i32 %shl.i.i.i124.us.us, -2147483648 - br i1 %cmp57.i.i.i127.us.us, label %if.then65.i.i.i133.us.us, label %lor.lhs.false.i.i.i128.us.us - -lor.lhs.false.i.i.i128.us.us: ; preds = %if.end47.i.i.i118.us.us - %cmp59.i.i.i129.us.us = icmp ne i32 %shl.i.i.i124.us.us, -2147483648 - %and62.i.i.i130.us.us = and i32 %shr53.i.i.i125.us.us, 1 - %cmp63.not.i.i.i131.us.us = icmp eq i32 %and62.i.i.i130.us.us, 0 - %or.cond.i.i.i132.us.us = select i1 %cmp59.i.i.i129.us.us, i1 true, i1 %cmp63.not.i.i.i131.us.us - br i1 %or.cond.i.i.i132.us.us, label %uint_to_half.exit.us.us, label %if.then65.i.i.i133.us.us - -if.then65.i.i.i133.us.us: ; preds = %lor.lhs.false.i.i.i128.us.us, %if.end47.i.i.i118.us.us - %inc.i.i.i134.us.us = add nuw nsw i16 %conv56.i.i.i126.us.us, 1 + %cmp.i.i.i113.us.us = icmp ugt i32 %20, 947912703 + br i1 %cmp.i.i.i113.us.us, label %if.then.i.i.i134.us.us, label %if.end43.i.i.i114.us.us + +if.end43.i.i.i114.us.us: ; preds = %if.end.i111.us.us + %cmp44.i.i.i115.us.us = icmp ult i32 %20, 855638017 + br i1 %cmp44.i.i.i115.us.us, label %uint_to_half.exit.us.us, label %if.end47.i.i.i116.us.us + +if.end47.i.i.i116.us.us: ; preds = %if.end43.i.i.i114.us.us + %shr48.i.i.i117.us.us = lshr i32 %20, 23 + %sub49.i.i.i118.us.us = sub nuw nsw i32 126, %shr48.i.i.i117.us.us + %and50.i.i.i119.us.us = and i32 %20, 8388607 + %or51.i.i.i120.us.us = or disjoint i32 %and50.i.i.i119.us.us, 8388608 + %sub52.i.i.i121.us.us = add nsw i32 %shr48.i.i.i117.us.us, -94 + %shl.i.i.i122.us.us = shl i32 %or51.i.i.i120.us.us, %sub52.i.i.i121.us.us + %shr53.i.i.i123.us.us = lshr i32 %or51.i.i.i120.us.us, %sub49.i.i.i118.us.us + %conv56.i.i.i124.us.us = trunc i32 %shr53.i.i.i123.us.us to i16 + %cmp57.i.i.i125.us.us = icmp ugt i32 %shl.i.i.i122.us.us, -2147483648 + br i1 %cmp57.i.i.i125.us.us, label %if.then65.i.i.i131.us.us, label %lor.lhs.false.i.i.i126.us.us + +lor.lhs.false.i.i.i126.us.us: ; preds = %if.end47.i.i.i116.us.us + %cmp59.i.i.i127.us.us = icmp ne i32 %shl.i.i.i122.us.us, -2147483648 + %and62.i.i.i128.us.us = and i32 %shr53.i.i.i123.us.us, 1 + %cmp63.not.i.i.i129.us.us = icmp eq i32 %and62.i.i.i128.us.us, 0 + %or.cond.i.i.i130.us.us = select i1 %cmp59.i.i.i127.us.us, i1 true, i1 %cmp63.not.i.i.i129.us.us + br i1 %or.cond.i.i.i130.us.us, label %uint_to_half.exit.us.us, label %if.then65.i.i.i131.us.us + +if.then65.i.i.i131.us.us: ; preds = %lor.lhs.false.i.i.i126.us.us, %if.end47.i.i.i116.us.us + %inc.i.i.i132.us.us = add nuw nsw i16 %conv56.i.i.i124.us.us, 1 br label %uint_to_half.exit.us.us -if.then.i.i.i136.us.us: ; preds = %if.end.i111.us.us - %cmp3.i.i.i137.us.us = icmp ugt i32 %20, 2139095039 - br i1 %cmp3.i.i.i137.us.us, label %if.then6.i.i.i147.us.us, label %if.end24.i.i.i138.us.us - -if.end24.i.i.i138.us.us: ; preds = %if.then.i.i.i136.us.us - %cmp25.i.i.i139.us.us = icmp ugt i32 %20, 1199566847 - br i1 %cmp25.i.i.i139.us.us, label %uint_to_half.exit.us.us, label %if.end33.i.i.i140.us.us - -if.end33.i.i.i140.us.us: ; preds = %if.end24.i.i.i138.us.us - %add.i.i.i141.us.us = add nuw nsw i32 %20, 134221823 - %shr34.i.i.i142.us.us = lshr i32 %20, 13 - %and35.i.i.i143.us.us = and i32 %shr34.i.i.i142.us.us, 1 - %add36.i.i.i144.us.us = add nuw nsw i32 %add.i.i.i141.us.us, %and35.i.i.i143.us.us - %shr37.i.i.i145.us.us = lshr i32 %add36.i.i.i144.us.us, 13 - %conv42.i.i.i146.us.us = trunc i32 %shr37.i.i.i145.us.us to i16 +if.then.i.i.i134.us.us: ; preds = %if.end.i111.us.us + %cmp3.i.i.i135.us.us = icmp ugt i32 %20, 2139095039 + br i1 %cmp3.i.i.i135.us.us, label %if.then6.i.i.i145.us.us, label %if.end24.i.i.i136.us.us + +if.end24.i.i.i136.us.us: ; preds = %if.then.i.i.i134.us.us + %cmp25.i.i.i137.us.us = icmp ugt i32 %20, 1199566847 + br i1 %cmp25.i.i.i137.us.us, label %uint_to_half.exit.us.us, label %if.end33.i.i.i138.us.us + +if.end33.i.i.i138.us.us: ; preds = %if.end24.i.i.i136.us.us + %add.i.i.i139.us.us = add nuw nsw i32 %20, 134221823 + %shr34.i.i.i140.us.us = lshr i32 %20, 13 + %and35.i.i.i141.us.us = and i32 %shr34.i.i.i140.us.us, 1 + %add36.i.i.i142.us.us = add nuw nsw i32 %add.i.i.i139.us.us, %and35.i.i.i141.us.us + %shr37.i.i.i143.us.us = lshr i32 %add36.i.i.i142.us.us, 13 + %conv42.i.i.i144.us.us = trunc i32 %shr37.i.i.i143.us.us to i16 br label %uint_to_half.exit.us.us -if.then6.i.i.i147.us.us: ; preds = %if.then.i.i.i136.us.us - %conv8.i.i.i148.us.us = or disjoint i16 %conv.i.i.i114.us.us, 31744 - %cmp9.i.i.i149.us.us = icmp eq i32 %20, 2139095040 - br i1 %cmp9.i.i.i149.us.us, label %uint_to_half.exit.us.us, label %if.end.i.i.i150.us.us - -if.end.i.i.i150.us.us: ; preds = %if.then6.i.i.i147.us.us - %and12.i.i.i151.us.us = lshr i32 %20, 13 - %shr13.i.i.i152.us.us = and i32 %and12.i.i.i151.us.us, 1023 - %cmp18.i.i.i153.us.us = icmp eq i32 %shr13.i.i.i152.us.us, 0 - %22 = zext i1 %cmp18.i.i.i153.us.us to i16 - %23 = trunc i32 %shr13.i.i.i152.us.us to i16 - %24 = or i16 %22, %23 - %conv23.i.i.i154.us.us = or disjoint i16 %24, %conv8.i.i.i148.us.us +if.then6.i.i.i145.us.us: ; preds = %if.then.i.i.i134.us.us + %cmp9.i.i.i146.us.us = icmp eq i32 %20, 2139095040 + br i1 %cmp9.i.i.i146.us.us, label %uint_to_half.exit.us.us, label %if.end.i.i.i147.us.us + +if.end.i.i.i147.us.us: ; preds = %if.then6.i.i.i145.us.us + %and12.i.i.i148.us.us = lshr i32 %20, 13 + %shr13.i.i.i149.us.us = and i32 %and12.i.i.i148.us.us, 1023 + %cmp18.i.i.i150.us.us = icmp eq i32 %shr13.i.i.i149.us.us, 0 + %21 = zext i1 %cmp18.i.i.i150.us.us to i16 + %22 = trunc i32 %shr13.i.i.i149.us.us to i16 + %23 = or i16 %22, %21 + %conv23.i.i.i151.us.us = or disjoint i16 %23, 31744 br label %uint_to_half.exit.us.us -uint_to_half.exit.us.us: ; preds = %if.end.i.i.i150.us.us, %if.then6.i.i.i147.us.us, %if.end33.i.i.i140.us.us, %if.end24.i.i.i138.us.us, %if.then65.i.i.i133.us.us, %lor.lhs.false.i.i.i128.us.us, %if.end43.i.i.i116.us.us, %for.body151.us.us - %retval.0.i135.us.us = phi i16 [ 31744, %for.body151.us.us ], [ %conv23.i.i.i154.us.us, %if.end.i.i.i150.us.us ], [ %conv42.i.i.i146.us.us, %if.end33.i.i.i140.us.us ], [ %conv8.i.i.i148.us.us, %if.then6.i.i.i147.us.us ], [ %conv.i.i.i114.us.us, %if.end43.i.i.i116.us.us ], [ %inc.i.i.i134.us.us, %if.then65.i.i.i133.us.us ], [ %conv56.i.i.i126.us.us, %lor.lhs.false.i.i.i128.us.us ], [ 31744, %if.end24.i.i.i138.us.us ] - store i16 %retval.0.i135.us.us, ptr %cdata.7180.us.us, align 2 - %add.ptr157.us.us = getelementptr inbounds i8, ptr %cdata.7180.us.us, i64 %conv31.us.us - %inc159.us.us = add nuw nsw i32 %s147.0182.us.us, 1 - %exitcond325.not = icmp eq i32 %inc159.us.us, %spec.select105.us.us - br i1 %exitcond325.not, label %sw.epilog194.us.us, label %for.body151.us.us, !llvm.loop !22 +uint_to_half.exit.us.us: ; preds = %if.end.i.i.i147.us.us, %if.then6.i.i.i145.us.us, %if.end33.i.i.i138.us.us, %if.end24.i.i.i136.us.us, %if.then65.i.i.i131.us.us, %lor.lhs.false.i.i.i126.us.us, %if.end43.i.i.i114.us.us, %for.body151.us.us + %retval.0.i133.us.us = phi i16 [ 31744, %for.body151.us.us ], [ %conv23.i.i.i151.us.us, %if.end.i.i.i147.us.us ], [ %conv42.i.i.i144.us.us, %if.end33.i.i.i138.us.us ], [ 31744, %if.then6.i.i.i145.us.us ], [ 0, %if.end43.i.i.i114.us.us ], [ %inc.i.i.i132.us.us, %if.then65.i.i.i131.us.us ], [ %conv56.i.i.i124.us.us, %lor.lhs.false.i.i.i126.us.us ], [ 31744, %if.end24.i.i.i136.us.us ] + store i16 %retval.0.i133.us.us, ptr %cdata.7177.us.us, align 2 + %add.ptr157.us.us = getelementptr inbounds i8, ptr %cdata.7177.us.us, i64 %conv31.us.us + %inc159.us.us = add nuw nsw i32 %s147.0179.us.us, 1 + %exitcond322.not = icmp eq i32 %inc159.us.us, %spec.select105.us.us + br i1 %exitcond322.not, label %sw.epilog194.us.us, label %for.body151.us.us, !llvm.loop !22 sw.bb92.us.us: ; preds = %for.body38.us.us - %25 = load i16, ptr %user_data_type143.us.us, align 2 - switch i16 %25, label %return [ + %24 = load i16, ptr %user_data_type143.us.us, align 2 + switch i16 %24, label %return [ i16 1, label %for.cond98.preheader.us.us i16 2, label %for.cond113.preheader.us.us i16 0, label %for.cond127.preheader.us.us ] for.body130.us.us: ; preds = %for.cond127.preheader.us.us, %float_to_uint_int.exit.us.us - %s126.0187.us.us = phi i32 [ %inc138.us.us, %float_to_uint_int.exit.us.us ], [ 0, %for.cond127.preheader.us.us ] - %src125.0186.us.us = phi ptr [ %incdec.ptr133.us.us, %float_to_uint_int.exit.us.us ], [ %srcbuffer.2219.us.us, %for.cond127.preheader.us.us ] - %cdata.6185.us.us = phi ptr [ %add.ptr136.us.us, %float_to_uint_int.exit.us.us ], [ %cdata.0218.us.us, %for.cond127.preheader.us.us ] - %src125.0.val156.us.us = load float, ptr %src125.0186.us.us, align 1 - %incdec.ptr133.us.us = getelementptr inbounds i8, ptr %src125.0186.us.us, i64 4 - %or.cond5.i.i.us.us = fcmp ult float %src125.0.val156.us.us, 0.000000e+00 + %s126.0184.us.us = phi i32 [ %inc138.us.us, %float_to_uint_int.exit.us.us ], [ 0, %for.cond127.preheader.us.us ] + %src125.0183.us.us = phi ptr [ %incdec.ptr133.us.us, %float_to_uint_int.exit.us.us ], [ %srcbuffer.2216.us.us, %for.cond127.preheader.us.us ] + %cdata.6182.us.us = phi ptr [ %add.ptr136.us.us, %float_to_uint_int.exit.us.us ], [ %cdata.0215.us.us, %for.cond127.preheader.us.us ] + %src125.0.val153.us.us = load float, ptr %src125.0183.us.us, align 1 + %incdec.ptr133.us.us = getelementptr inbounds i8, ptr %src125.0183.us.us, i64 4 + %or.cond5.i.i.us.us = fcmp ult float %src125.0.val153.us.us, 0.000000e+00 br i1 %or.cond5.i.i.us.us, label %float_to_uint_int.exit.us.us, label %if.end.i.i.us.us if.end.i.i.us.us: ; preds = %for.body130.us.us - %26 = tail call float @llvm.fabs.f32(float %src125.0.val156.us.us) #5 - %isinf.i.i.us.us = fcmp oeq float %26, 0x7FF0000000000000 - %cmp2.i.i.us.us = fcmp ogt float %src125.0.val156.us.us, 0x41F0000000000000 + %25 = tail call float @llvm.fabs.f32(float %src125.0.val153.us.us) #5 + %isinf.i.i.us.us = fcmp oeq float %25, 0x7FF0000000000000 + %cmp2.i.i.us.us = fcmp ogt float %src125.0.val153.us.us, 0x41F0000000000000 %or.cond.i.i.us.us = or i1 %cmp2.i.i.us.us, %isinf.i.i.us.us - %conv.i.i109.us.us = fptoui float %src125.0.val156.us.us to i32 + %conv.i.i109.us.us = fptoui float %src125.0.val153.us.us to i32 %spec.select.i.i.us.us = select i1 %or.cond.i.i.us.us, i32 -1, i32 %conv.i.i109.us.us br label %float_to_uint_int.exit.us.us float_to_uint_int.exit.us.us: ; preds = %if.end.i.i.us.us, %for.body130.us.us %retval.0.i.i.us.us = phi i32 [ 0, %for.body130.us.us ], [ %spec.select.i.i.us.us, %if.end.i.i.us.us ] - store i32 %retval.0.i.i.us.us, ptr %cdata.6185.us.us, align 4 - %add.ptr136.us.us = getelementptr inbounds i8, ptr %cdata.6185.us.us, i64 %conv31.us.us - %inc138.us.us = add nuw nsw i32 %s126.0187.us.us, 1 - %exitcond326.not = icmp eq i32 %inc138.us.us, %spec.select105.us.us - br i1 %exitcond326.not, label %sw.epilog194.us.us, label %for.body130.us.us, !llvm.loop !23 + store i32 %retval.0.i.i.us.us, ptr %cdata.6182.us.us, align 4 + %add.ptr136.us.us = getelementptr inbounds i8, ptr %cdata.6182.us.us, i64 %conv31.us.us + %inc138.us.us = add nuw nsw i32 %s126.0184.us.us, 1 + %exitcond323.not = icmp eq i32 %inc138.us.us, %spec.select105.us.us + br i1 %exitcond323.not, label %sw.epilog194.us.us, label %for.body130.us.us, !llvm.loop !23 for.body116.us.us: ; preds = %for.cond113.preheader.us.us, %for.body116.us.us - %s112.0192.us.us = phi i32 [ %inc122.us.us, %for.body116.us.us ], [ 0, %for.cond113.preheader.us.us ] - %src111.0191.us.us = phi ptr [ %incdec.ptr118.us.us, %for.body116.us.us ], [ %srcbuffer.2219.us.us, %for.cond113.preheader.us.us ] - %cdata.5190.us.us = phi ptr [ %add.ptr120.us.us, %for.body116.us.us ], [ %cdata.0218.us.us, %for.cond113.preheader.us.us ] - %src111.0.val.us.us = load i32, ptr %src111.0191.us.us, align 1 - store i32 %src111.0.val.us.us, ptr %cdata.5190.us.us, align 4 - %incdec.ptr118.us.us = getelementptr inbounds i8, ptr %src111.0191.us.us, i64 4 - %add.ptr120.us.us = getelementptr inbounds i8, ptr %cdata.5190.us.us, i64 %conv31.us.us - %inc122.us.us = add nuw nsw i32 %s112.0192.us.us, 1 - %exitcond327.not = icmp eq i32 %inc122.us.us, %spec.select105.us.us - br i1 %exitcond327.not, label %sw.epilog194.us.us, label %for.body116.us.us, !llvm.loop !24 + %s112.0189.us.us = phi i32 [ %inc122.us.us, %for.body116.us.us ], [ 0, %for.cond113.preheader.us.us ] + %src111.0188.us.us = phi ptr [ %incdec.ptr118.us.us, %for.body116.us.us ], [ %srcbuffer.2216.us.us, %for.cond113.preheader.us.us ] + %cdata.5187.us.us = phi ptr [ %add.ptr120.us.us, %for.body116.us.us ], [ %cdata.0215.us.us, %for.cond113.preheader.us.us ] + %src111.0.val.us.us = load i32, ptr %src111.0188.us.us, align 1 + store i32 %src111.0.val.us.us, ptr %cdata.5187.us.us, align 4 + %incdec.ptr118.us.us = getelementptr inbounds i8, ptr %src111.0188.us.us, i64 4 + %add.ptr120.us.us = getelementptr inbounds i8, ptr %cdata.5187.us.us, i64 %conv31.us.us + %inc122.us.us = add nuw nsw i32 %s112.0189.us.us, 1 + %exitcond324.not = icmp eq i32 %inc122.us.us, %spec.select105.us.us + br i1 %exitcond324.not, label %sw.epilog194.us.us, label %for.body116.us.us, !llvm.loop !24 for.body101.us.us: ; preds = %for.cond98.preheader.us.us, %float_to_half_int.exit.us.us - %cdata.4197.us.us = phi ptr [ %add.ptr106.us.us, %float_to_half_int.exit.us.us ], [ %cdata.0218.us.us, %for.cond98.preheader.us.us ] - %s97.0196.us.us = phi i32 [ %inc108.us.us, %float_to_half_int.exit.us.us ], [ 0, %for.cond98.preheader.us.us ] - %src96.0195.us.us = phi ptr [ %incdec.ptr103.us.us, %float_to_half_int.exit.us.us ], [ %srcbuffer.2219.us.us, %for.cond98.preheader.us.us ] - %src96.0.val.us.us = load i32, ptr %src96.0195.us.us, align 1 - %incdec.ptr103.us.us = getelementptr inbounds i8, ptr %src96.0195.us.us, i64 4 - %27 = bitcast i32 %src96.0.val.us.us to float - %28 = tail call float @llvm.fabs.f32(float %27) - %and.i.i.i.us.us = bitcast float %28 to i32 + %cdata.4194.us.us = phi ptr [ %add.ptr106.us.us, %float_to_half_int.exit.us.us ], [ %cdata.0215.us.us, %for.cond98.preheader.us.us ] + %s97.0193.us.us = phi i32 [ %inc108.us.us, %float_to_half_int.exit.us.us ], [ 0, %for.cond98.preheader.us.us ] + %src96.0192.us.us = phi ptr [ %incdec.ptr103.us.us, %float_to_half_int.exit.us.us ], [ %srcbuffer.2216.us.us, %for.cond98.preheader.us.us ] + %src96.0.val.us.us = load i32, ptr %src96.0192.us.us, align 1 + %incdec.ptr103.us.us = getelementptr inbounds i8, ptr %src96.0192.us.us, i64 4 + %26 = bitcast i32 %src96.0.val.us.us to float + %27 = tail call float @llvm.fabs.f32(float %26) + %and.i.i.i.us.us = bitcast float %27 to i32 %shr.i.i.i.us.us = lshr i32 %src96.0.val.us.us, 16 - %29 = trunc i32 %shr.i.i.i.us.us to i16 - %conv.i.i.i.us.us = and i16 %29, -32768 + %28 = trunc i32 %shr.i.i.i.us.us to i16 + %conv.i.i.i.us.us = and i16 %28, -32768 %cmp.i.i.i106.us.us = icmp ugt i32 %and.i.i.i.us.us, 947912703 br i1 %cmp.i.i.i106.us.us, label %if.then.i.i.i107.us.us, label %if.end43.i.i.i.us.us @@ -1091,34 +1083,34 @@ if.end.i.i.i.us.us: ; preds = %if.then6.i.i.i.us.u %and12.i.i.i.us.us = lshr i32 %and.i.i.i.us.us, 13 %shr13.i.i.i.us.us = and i32 %and12.i.i.i.us.us, 1023 %cmp18.i.i.i.us.us = icmp eq i32 %shr13.i.i.i.us.us, 0 - %30 = zext i1 %cmp18.i.i.i.us.us to i16 - %31 = trunc i32 %shr13.i.i.i.us.us to i16 - %32 = or i16 %31, %30 - %conv23.i.i.i.us.us = or disjoint i16 %32, %conv8.i.i.i.us.us + %29 = zext i1 %cmp18.i.i.i.us.us to i16 + %30 = trunc i32 %shr13.i.i.i.us.us to i16 + %31 = or i16 %30, %29 + %conv23.i.i.i.us.us = or disjoint i16 %31, %conv8.i.i.i.us.us br label %float_to_half_int.exit.us.us float_to_half_int.exit.us.us: ; preds = %if.end.i.i.i.us.us, %if.then6.i.i.i.us.us, %if.then29.i.i.i.us.us, %if.end33.i.i.i.us.us, %if.then65.i.i.i.us.us, %lor.lhs.false.i.i.i.us.us, %if.end43.i.i.i.us.us %retval.0.i.i.i.us.us = phi i16 [ %conv23.i.i.i.us.us, %if.end.i.i.i.us.us ], [ %conv32.i.i.i.us.us, %if.then29.i.i.i.us.us ], [ %conv42.i.i.i.us.us, %if.end33.i.i.i.us.us ], [ %conv8.i.i.i.us.us, %if.then6.i.i.i.us.us ], [ %conv.i.i.i.us.us, %if.end43.i.i.i.us.us ], [ %inc.i.i.i.us.us, %if.then65.i.i.i.us.us ], [ %conv56.i.i.i.us.us, %lor.lhs.false.i.i.i.us.us ] - store i16 %retval.0.i.i.i.us.us, ptr %cdata.4197.us.us, align 2 - %add.ptr106.us.us = getelementptr inbounds i8, ptr %cdata.4197.us.us, i64 %conv31.us.us - %inc108.us.us = add nuw nsw i32 %s97.0196.us.us, 1 - %exitcond328.not = icmp eq i32 %inc108.us.us, %spec.select105.us.us - br i1 %exitcond328.not, label %sw.epilog194.us.us, label %for.body101.us.us, !llvm.loop !25 + store i16 %retval.0.i.i.i.us.us, ptr %cdata.4194.us.us, align 2 + %add.ptr106.us.us = getelementptr inbounds i8, ptr %cdata.4194.us.us, i64 %conv31.us.us + %inc108.us.us = add nuw nsw i32 %s97.0193.us.us, 1 + %exitcond325.not = icmp eq i32 %inc108.us.us, %spec.select105.us.us + br i1 %exitcond325.not, label %sw.epilog194.us.us, label %for.body101.us.us, !llvm.loop !25 sw.bb.us.us: ; preds = %for.body38.us.us - %33 = load i16, ptr %user_data_type143.us.us, align 2 - switch i16 %33, label %return [ + %32 = load i16, ptr %user_data_type143.us.us, align 2 + switch i16 %32, label %return [ i16 1, label %for.cond52.preheader.us.us i16 2, label %for.cond64.preheader.us.us i16 0, label %for.cond79.preheader.us.us ] for.body82.us.us: ; preds = %for.cond79.preheader.us.us, %half_to_uint.exit.us.us - %cdata.3202.us.us = phi ptr [ %add.ptr88.us.us, %half_to_uint.exit.us.us ], [ %cdata.0218.us.us, %for.cond79.preheader.us.us ] - %s78.0201.us.us = phi i32 [ %inc90.us.us, %half_to_uint.exit.us.us ], [ 0, %for.cond79.preheader.us.us ] - %src77.0200.us.us = phi ptr [ %incdec.ptr85.us.us, %half_to_uint.exit.us.us ], [ %srcbuffer.2219.us.us, %for.cond79.preheader.us.us ] - %src77.0.val.us.us = load i16, ptr %src77.0200.us.us, align 1 - %incdec.ptr85.us.us = getelementptr inbounds i8, ptr %src77.0200.us.us, i64 2 + %cdata.3199.us.us = phi ptr [ %add.ptr88.us.us, %half_to_uint.exit.us.us ], [ %cdata.0215.us.us, %for.cond79.preheader.us.us ] + %s78.0198.us.us = phi i32 [ %inc90.us.us, %half_to_uint.exit.us.us ], [ 0, %for.cond79.preheader.us.us ] + %src77.0197.us.us = phi ptr [ %incdec.ptr85.us.us, %half_to_uint.exit.us.us ], [ %srcbuffer.2216.us.us, %for.cond79.preheader.us.us ] + %src77.0.val.us.us = load i16, ptr %src77.0197.us.us, align 1 + %incdec.ptr85.us.us = getelementptr inbounds i8, ptr %src77.0197.us.us, i64 2 %conv.i.us.us = zext i16 %src77.0.val.us.us to i32 %tobool.not.i.us.us = icmp sgt i16 %src77.0.val.us.us, -1 br i1 %tobool.not.i.us.us, label %if.end.i.us.us, label %half_to_uint.exit.us.us @@ -1129,7 +1121,7 @@ if.end.i.us.us: ; preds = %for.body82.us.us br i1 %cmp.i.us.us, label %if.then4.i.us.us, label %if.end11.i.us.us if.end11.i.us.us: ; preds = %if.end.i.us.us - %34 = shl nuw nsw i32 %conv.i.us.us, 13 + %33 = shl nuw nsw i32 %conv.i.us.us, 13 %cmp.i.i.i.us.us = icmp ugt i16 %src77.0.val.us.us, 1023 br i1 %cmp.i.i.i.us.us, label %if.then.i.i.i.us.us, label %if.else12.i.i.i.us.us @@ -1138,9 +1130,9 @@ if.else12.i.i.i.us.us: ; preds = %if.end11.i.us.us br i1 %cmp13.not.i.i.i.us.us, label %half_to_float.exit.i.us.us, label %if.then15.i.i.i.us.us if.then15.i.i.i.us.us: ; preds = %if.else12.i.i.i.us.us - %35 = tail call i32 @llvm.ctlz.i32(i32 %34, i1 true), !range !12 - %sub.i.i.i.us.us = add nsw i32 %35, -8 - %shl17.i.i.i.us.us = shl i32 %34, %sub.i.i.i.us.us + %34 = tail call i32 @llvm.ctlz.i32(i32 %33, i1 true), !range !12 + %sub.i.i.i.us.us = add nsw i32 %34, -8 + %shl17.i.i.i.us.us = shl i32 %33, %sub.i.i.i.us.us %or18.i.i.i.us.us = or i32 %shl17.i.i.i.us.us, 947912704 %shl19.i.i.i.us.us = shl nuw nsw i32 %sub.i.i.i.us.us, 23 %sub20.i.i.i.us.us = sub nuw i32 %or18.i.i.i.us.us, %shl19.i.i.i.us.us @@ -1151,17 +1143,17 @@ if.then.i.i.i.us.us: ; preds = %if.end11.i.us.us br i1 %cmp6.i.i.i.us.us, label %if.then10.i.i.i.us.us, label %if.else.i.i.i.us.us if.else.i.i.i.us.us: ; preds = %if.then.i.i.i.us.us - %or11.i.i.i.us.us = or i32 %34, 2139095040 + %or11.i.i.i.us.us = or i32 %33, 2139095040 br label %half_to_float.exit.i.us.us if.then10.i.i.i.us.us: ; preds = %if.then.i.i.i.us.us - %add.i.i.i.us.us = add nuw nsw i32 %34, 939524096 + %add.i.i.i.us.us = add nuw nsw i32 %33, 939524096 br label %half_to_float.exit.i.us.us half_to_float.exit.i.us.us: ; preds = %if.then10.i.i.i.us.us, %if.else.i.i.i.us.us, %if.then15.i.i.i.us.us, %if.else12.i.i.i.us.us %v.sroa.0.0.i.i.i.us.us = phi i32 [ %add.i.i.i.us.us, %if.then10.i.i.i.us.us ], [ %or11.i.i.i.us.us, %if.else.i.i.i.us.us ], [ %sub20.i.i.i.us.us, %if.then15.i.i.i.us.us ], [ 0, %if.else12.i.i.i.us.us ] - %36 = bitcast i32 %v.sroa.0.0.i.i.i.us.us to float - %conv12.i.us.us = fptoui float %36 to i32 + %35 = bitcast i32 %v.sroa.0.0.i.i.i.us.us to float + %conv12.i.us.us = fptoui float %35 to i32 br label %half_to_uint.exit.us.us if.then4.i.us.us: ; preds = %if.end.i.us.us @@ -1172,21 +1164,21 @@ if.then4.i.us.us: ; preds = %if.end.i.us.us half_to_uint.exit.us.us: ; preds = %if.then4.i.us.us, %half_to_float.exit.i.us.us, %for.body82.us.us %retval.0.i.us.us = phi i32 [ %conv12.i.us.us, %half_to_float.exit.i.us.us ], [ 0, %for.body82.us.us ], [ %..i.us.us, %if.then4.i.us.us ] - store i32 %retval.0.i.us.us, ptr %cdata.3202.us.us, align 4 - %add.ptr88.us.us = getelementptr inbounds i8, ptr %cdata.3202.us.us, i64 %conv31.us.us - %inc90.us.us = add nuw nsw i32 %s78.0201.us.us, 1 - %exitcond329.not = icmp eq i32 %inc90.us.us, %spec.select105.us.us - br i1 %exitcond329.not, label %sw.epilog194.us.us, label %for.body82.us.us, !llvm.loop !26 + store i32 %retval.0.i.us.us, ptr %cdata.3199.us.us, align 4 + %add.ptr88.us.us = getelementptr inbounds i8, ptr %cdata.3199.us.us, i64 %conv31.us.us + %inc90.us.us = add nuw nsw i32 %s78.0198.us.us, 1 + %exitcond326.not = icmp eq i32 %inc90.us.us, %spec.select105.us.us + br i1 %exitcond326.not, label %sw.epilog194.us.us, label %for.body82.us.us, !llvm.loop !26 for.body67.us.us: ; preds = %for.cond64.preheader.us.us, %half_to_float.exit.us.us - %cdata.2207.us.us = phi ptr [ %add.ptr72.us.us, %half_to_float.exit.us.us ], [ %cdata.0218.us.us, %for.cond64.preheader.us.us ] - %s63.0206.us.us = phi i32 [ %inc74.us.us, %half_to_float.exit.us.us ], [ 0, %for.cond64.preheader.us.us ] - %src62.0205.us.us = phi ptr [ %incdec.ptr69.us.us, %half_to_float.exit.us.us ], [ %srcbuffer.2219.us.us, %for.cond64.preheader.us.us ] - %src62.0.val.us.us = load i16, ptr %src62.0205.us.us, align 1 - %incdec.ptr69.us.us = getelementptr inbounds i8, ptr %src62.0205.us.us, i64 2 + %cdata.2204.us.us = phi ptr [ %add.ptr72.us.us, %half_to_float.exit.us.us ], [ %cdata.0215.us.us, %for.cond64.preheader.us.us ] + %s63.0203.us.us = phi i32 [ %inc74.us.us, %half_to_float.exit.us.us ], [ 0, %for.cond64.preheader.us.us ] + %src62.0202.us.us = phi ptr [ %incdec.ptr69.us.us, %half_to_float.exit.us.us ], [ %srcbuffer.2216.us.us, %for.cond64.preheader.us.us ] + %src62.0.val.us.us = load i16, ptr %src62.0202.us.us, align 1 + %incdec.ptr69.us.us = getelementptr inbounds i8, ptr %src62.0202.us.us, i64 2 %conv.i.i.us.us = zext i16 %src62.0.val.us.us to i32 - %37 = shl nuw nsw i32 %conv.i.i.us.us, 13 - %shr.i.i.us.us = and i32 %37, 268427264 + %36 = shl nuw nsw i32 %conv.i.i.us.us, 13 + %shr.i.i.us.us = and i32 %36, 268427264 %h.signext.i.i.us.us = sext i16 %src62.0.val.us.us to i32 %shl3.i.i.us.us = and i32 %h.signext.i.i.us.us, -2147483648 %cmp.i.i.us.us = icmp ugt i32 %shr.i.i.us.us, 8388607 @@ -1197,8 +1189,8 @@ if.else12.i.i.us.us: ; preds = %for.body67.us.us br i1 %cmp13.not.i.i.us.us, label %half_to_float.exit.us.us, label %if.then15.i.i.us.us if.then15.i.i.us.us: ; preds = %if.else12.i.i.us.us - %38 = tail call i32 @llvm.ctlz.i32(i32 %shr.i.i.us.us, i1 true), !range !12 - %sub.i.i.us.us = add nsw i32 %38, -8 + %37 = tail call i32 @llvm.ctlz.i32(i32 %shr.i.i.us.us, i1 true), !range !12 + %sub.i.i.us.us = add nsw i32 %37, -8 %shl17.i.i.us.us = shl i32 %shr.i.i.us.us, %sub.i.i.us.us %or16.i.i.us.us = or i32 %shl3.i.i.us.us, %shl17.i.i.us.us %or18.i.i.us.us = or i32 %or16.i.i.us.us, 947912704 @@ -1221,114 +1213,114 @@ if.then10.i.i.us.us: ; preds = %if.then.i.i.us.us half_to_float.exit.us.us: ; preds = %if.then10.i.i.us.us, %if.else.i.i.us.us, %if.then15.i.i.us.us, %if.else12.i.i.us.us %v.sroa.0.0.i.i.us.us = phi i32 [ %add.i.i.us.us, %if.then10.i.i.us.us ], [ %or11.i.i.us.us, %if.else.i.i.us.us ], [ %sub20.i.i.us.us, %if.then15.i.i.us.us ], [ %shl3.i.i.us.us, %if.else12.i.i.us.us ] - store i32 %v.sroa.0.0.i.i.us.us, ptr %cdata.2207.us.us, align 4 - %add.ptr72.us.us = getelementptr inbounds i8, ptr %cdata.2207.us.us, i64 %conv31.us.us - %inc74.us.us = add nuw nsw i32 %s63.0206.us.us, 1 - %exitcond330.not = icmp eq i32 %inc74.us.us, %spec.select105.us.us - br i1 %exitcond330.not, label %sw.epilog194.us.us, label %for.body67.us.us, !llvm.loop !27 + store i32 %v.sroa.0.0.i.i.us.us, ptr %cdata.2204.us.us, align 4 + %add.ptr72.us.us = getelementptr inbounds i8, ptr %cdata.2204.us.us, i64 %conv31.us.us + %inc74.us.us = add nuw nsw i32 %s63.0203.us.us, 1 + %exitcond327.not = icmp eq i32 %inc74.us.us, %spec.select105.us.us + br i1 %exitcond327.not, label %sw.epilog194.us.us, label %for.body67.us.us, !llvm.loop !27 sw.epilog194.us.us: ; preds = %for.body183.us.us, %for.body167.us.us, %uint_to_half.exit.us.us, %float_to_uint_int.exit.us.us, %for.body116.us.us, %float_to_half_int.exit.us.us, %half_to_uint.exit.us.us, %half_to_float.exit.us.us, %for.body55.us.us, %for.cond180.preheader.us.us, %for.cond164.preheader.us.us, %for.cond148.preheader.us.us, %for.cond127.preheader.us.us, %for.cond113.preheader.us.us, %for.cond98.preheader.us.us, %for.cond79.preheader.us.us, %for.cond64.preheader.us.us, %for.cond52.preheader.us.us - %cdata.10.us.us = phi ptr [ %cdata.0218.us.us, %for.cond52.preheader.us.us ], [ %cdata.0218.us.us, %for.cond64.preheader.us.us ], [ %cdata.0218.us.us, %for.cond79.preheader.us.us ], [ %cdata.0218.us.us, %for.cond98.preheader.us.us ], [ %cdata.0218.us.us, %for.cond113.preheader.us.us ], [ %cdata.0218.us.us, %for.cond127.preheader.us.us ], [ %cdata.0218.us.us, %for.cond148.preheader.us.us ], [ %cdata.0218.us.us, %for.cond164.preheader.us.us ], [ %cdata.0218.us.us, %for.cond180.preheader.us.us ], [ %add.ptr57.us.us, %for.body55.us.us ], [ %add.ptr72.us.us, %half_to_float.exit.us.us ], [ %add.ptr88.us.us, %half_to_uint.exit.us.us ], [ %add.ptr106.us.us, %float_to_half_int.exit.us.us ], [ %add.ptr120.us.us, %for.body116.us.us ], [ %add.ptr136.us.us, %float_to_uint_int.exit.us.us ], [ %add.ptr157.us.us, %uint_to_half.exit.us.us ], [ %add.ptr173.us.us, %for.body167.us.us ], [ %add.ptr187.us.us, %for.body183.us.us ] + %cdata.10.us.us = phi ptr [ %cdata.0215.us.us, %for.cond52.preheader.us.us ], [ %cdata.0215.us.us, %for.cond64.preheader.us.us ], [ %cdata.0215.us.us, %for.cond79.preheader.us.us ], [ %cdata.0215.us.us, %for.cond98.preheader.us.us ], [ %cdata.0215.us.us, %for.cond113.preheader.us.us ], [ %cdata.0215.us.us, %for.cond127.preheader.us.us ], [ %cdata.0215.us.us, %for.cond148.preheader.us.us ], [ %cdata.0215.us.us, %for.cond164.preheader.us.us ], [ %cdata.0215.us.us, %for.cond180.preheader.us.us ], [ %add.ptr57.us.us, %for.body55.us.us ], [ %add.ptr72.us.us, %half_to_float.exit.us.us ], [ %add.ptr88.us.us, %half_to_uint.exit.us.us ], [ %add.ptr106.us.us, %float_to_half_int.exit.us.us ], [ %add.ptr120.us.us, %for.body116.us.us ], [ %add.ptr136.us.us, %float_to_uint_int.exit.us.us ], [ %add.ptr157.us.us, %uint_to_half.exit.us.us ], [ %add.ptr173.us.us, %for.body167.us.us ], [ %add.ptr187.us.us, %for.body183.us.us ] %mul195.us.us = mul nsw i32 %spec.select105.us.us, %conv10.us.us %idx.ext196.us.us = sext i32 %mul195.us.us to i64 - %add.ptr197.us.us = getelementptr inbounds i8, ptr %srcbuffer.2219.us.us, i64 %idx.ext196.us.us - %39 = sext i32 %spec.select105.us.us to i64 - %add201.us.us = select i1 %cmp8.us.us, i64 %39, i64 0 - %totsamps.3.us.us = add i64 %totsamps.2217.us.us, %add201.us.us + %add.ptr197.us.us = getelementptr inbounds i8, ptr %srcbuffer.2216.us.us, i64 %idx.ext196.us.us + %38 = sext i32 %spec.select105.us.us to i64 + %add201.us.us = select i1 %cmp8.us.us, i64 %38, i64 0 + %totsamps.3.us.us = add i64 %totsamps.2214.us.us, %add201.us.us %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %exitcond333.not = icmp eq i64 %indvars.iv.next, %wide.trip.count - br i1 %exitcond333.not, label %for.inc206.us.us.loopexit, label %for.body38.us.us, !llvm.loop !28 + %exitcond330.not = icmp eq i64 %indvars.iv.next, %wide.trip.count + br i1 %exitcond330.not, label %for.inc206.us.us.loopexit, label %for.body38.us.us, !llvm.loop !28 for.body55.us.us: ; preds = %for.cond52.preheader.us.us, %for.body55.us.us - %cdata.1212.us.us = phi ptr [ %add.ptr57.us.us, %for.body55.us.us ], [ %cdata.0218.us.us, %for.cond52.preheader.us.us ] - %s.0211.us.us = phi i32 [ %inc59.us.us, %for.body55.us.us ], [ 0, %for.cond52.preheader.us.us ] - %src.0210.us.us = phi ptr [ %incdec.ptr.us.us, %for.body55.us.us ], [ %srcbuffer.2219.us.us, %for.cond52.preheader.us.us ] - %src.0.val.us.us = load i16, ptr %src.0210.us.us, align 1 - store i16 %src.0.val.us.us, ptr %cdata.1212.us.us, align 2 - %incdec.ptr.us.us = getelementptr inbounds i8, ptr %src.0210.us.us, i64 2 - %add.ptr57.us.us = getelementptr inbounds i8, ptr %cdata.1212.us.us, i64 %conv31.us.us - %inc59.us.us = add nuw nsw i32 %s.0211.us.us, 1 - %exitcond331.not = icmp eq i32 %inc59.us.us, %spec.select105.us.us - br i1 %exitcond331.not, label %sw.epilog194.us.us, label %for.body55.us.us, !llvm.loop !29 + %cdata.1209.us.us = phi ptr [ %add.ptr57.us.us, %for.body55.us.us ], [ %cdata.0215.us.us, %for.cond52.preheader.us.us ] + %s.0208.us.us = phi i32 [ %inc59.us.us, %for.body55.us.us ], [ 0, %for.cond52.preheader.us.us ] + %src.0207.us.us = phi ptr [ %incdec.ptr.us.us, %for.body55.us.us ], [ %srcbuffer.2216.us.us, %for.cond52.preheader.us.us ] + %src.0.val.us.us = load i16, ptr %src.0207.us.us, align 1 + store i16 %src.0.val.us.us, ptr %cdata.1209.us.us, align 2 + %incdec.ptr.us.us = getelementptr inbounds i8, ptr %src.0207.us.us, i64 2 + %add.ptr57.us.us = getelementptr inbounds i8, ptr %cdata.1209.us.us, i64 %conv31.us.us + %inc59.us.us = add nuw nsw i32 %s.0208.us.us, 1 + %exitcond328.not = icmp eq i32 %inc59.us.us, %spec.select105.us.us + br i1 %exitcond328.not, label %sw.epilog194.us.us, label %for.body55.us.us, !llvm.loop !29 if.then.us.us: ; preds = %for.body5.us.us - %40 = load i16, ptr %decode_flags41, align 2 - %41 = and i16 %40, 1 - %tobool13.not.us.us = icmp eq i16 %41, 0 + %39 = load i16, ptr %decode_flags41, align 2 + %40 = and i16 %39, 1 + %tobool13.not.us.us = icmp eq i16 %40, 0 br i1 %tobool13.not.us.us, label %if.else.us.us, label %for.body18.us.us for.body18.us.us: ; preds = %if.then.us.us, %for.body18.us.us - %indvars.iv334 = phi i64 [ %indvars.iv.next335, %for.body18.us.us ], [ 0, %if.then.us.us ] - %prevsamps.0224.us.us = phi i32 [ %add19.us.us, %for.body18.us.us ], [ 0, %if.then.us.us ] - %arrayidx.us.us = getelementptr inbounds i32, ptr %sampbuffer.0284.us, i64 %indvars.iv334 - %42 = load i32, ptr %arrayidx.us.us, align 4 - %add19.us.us = add nsw i32 %42, %prevsamps.0224.us.us - %indvars.iv.next335 = add nuw nsw i64 %indvars.iv334, 1 - %exitcond338.not = icmp eq i64 %indvars.iv.next335, %wide.trip.count337 - br i1 %exitcond338.not, label %if.end.us.us, label %for.body18.us.us, !llvm.loop !30 + %indvars.iv331 = phi i64 [ %indvars.iv.next332, %for.body18.us.us ], [ 0, %if.then.us.us ] + %prevsamps.0221.us.us = phi i32 [ %add19.us.us, %for.body18.us.us ], [ 0, %if.then.us.us ] + %arrayidx.us.us = getelementptr inbounds i32, ptr %sampbuffer.0281.us, i64 %indvars.iv331 + %41 = load i32, ptr %arrayidx.us.us, align 4 + %add19.us.us = add nsw i32 %41, %prevsamps.0221.us.us + %indvars.iv.next332 = add nuw nsw i64 %indvars.iv331, 1 + %exitcond335.not = icmp eq i64 %indvars.iv.next332, %wide.trip.count334 + br i1 %exitcond335.not, label %if.end.us.us, label %for.body18.us.us, !llvm.loop !30 if.else.us.us: ; preds = %if.then.us.us - %43 = load i32, ptr %arrayidx21.us, align 4 + %42 = load i32, ptr %arrayidx21.us, align 4 br label %if.end.us.us if.end.us.us: ; preds = %for.body18.us.us, %if.else.us.us - %prevsamps.1.us.us = phi i32 [ %43, %if.else.us.us ], [ %add19.us.us, %for.body18.us.us ] + %prevsamps.1.us.us = phi i32 [ %42, %if.else.us.us ], [ %add19.us.us, %for.body18.us.us ] %conv22.us.us = sext i8 %11 to i64 %conv23.us.us = sext i32 %prevsamps.1.us.us to i64 %mul.us.us = mul nsw i64 %conv23.us.us, %conv22.us.us - %add.ptr24.us.us = getelementptr inbounds i8, ptr %srcbuffer.1231.us.us, i64 %mul.us.us + %add.ptr24.us.us = getelementptr inbounds i8, ptr %srcbuffer.1228.us.us, i64 %mul.us.us %add28.us.us = select i1 %cmp8.us.us, i64 %conv23.us.us, i64 0 - %spec.select.us.us = add i64 %add28.us.us, %totsamps.1230.us.us + %spec.select.us.us = add i64 %add28.us.us, %totsamps.1227.us.us br label %for.inc206.us.us for.inc206.us.us.loopexit: ; preds = %sw.epilog194.us.us - %.pre343 = load i16, ptr %channel_count, align 8 + %.pre340 = load i16, ptr %channel_count, align 8 br label %for.inc206.us.us for.inc206.us.us: ; preds = %for.inc206.us.us.loopexit, %if.end.us.us - %44 = phi i16 [ %8, %if.end.us.us ], [ %.pre343, %for.inc206.us.us.loopexit ] + %43 = phi i16 [ %8, %if.end.us.us ], [ %.pre340, %for.inc206.us.us.loopexit ] %totsamps.4.us.us = phi i64 [ %spec.select.us.us, %if.end.us.us ], [ %totsamps.3.us.us, %for.inc206.us.us.loopexit ] %srcbuffer.3.us.us = phi ptr [ %add.ptr24.us.us, %if.end.us.us ], [ %add.ptr197.us.us, %for.inc206.us.us.loopexit ] - %conv.us.us = sext i16 %44 to i64 - %45 = sext i16 %44 to i64 - %cmp3.us.us = icmp slt i64 %indvars.iv.next340, %45 + %conv.us.us = sext i16 %43 to i64 + %44 = sext i16 %43 to i64 + %cmp3.us.us = icmp slt i64 %indvars.iv.next337, %44 br i1 %cmp3.us.us, label %for.body5.us.us, label %for.end208.us, !llvm.loop !31 for.cond52.preheader.us.us: ; preds = %sw.bb.us.us - %cmp53209.us.us = icmp sgt i32 %spec.select105.us.us, 0 - br i1 %cmp53209.us.us, label %for.body55.us.us, label %sw.epilog194.us.us + %cmp53206.us.us = icmp sgt i32 %spec.select105.us.us, 0 + br i1 %cmp53206.us.us, label %for.body55.us.us, label %sw.epilog194.us.us for.cond64.preheader.us.us: ; preds = %sw.bb.us.us - %cmp65204.us.us = icmp sgt i32 %spec.select105.us.us, 0 - br i1 %cmp65204.us.us, label %for.body67.us.us, label %sw.epilog194.us.us + %cmp65201.us.us = icmp sgt i32 %spec.select105.us.us, 0 + br i1 %cmp65201.us.us, label %for.body67.us.us, label %sw.epilog194.us.us for.cond79.preheader.us.us: ; preds = %sw.bb.us.us - %cmp80199.us.us = icmp sgt i32 %spec.select105.us.us, 0 - br i1 %cmp80199.us.us, label %for.body82.us.us, label %sw.epilog194.us.us + %cmp80196.us.us = icmp sgt i32 %spec.select105.us.us, 0 + br i1 %cmp80196.us.us, label %for.body82.us.us, label %sw.epilog194.us.us for.cond98.preheader.us.us: ; preds = %sw.bb92.us.us - %cmp99194.us.us = icmp sgt i32 %spec.select105.us.us, 0 - br i1 %cmp99194.us.us, label %for.body101.us.us, label %sw.epilog194.us.us + %cmp99191.us.us = icmp sgt i32 %spec.select105.us.us, 0 + br i1 %cmp99191.us.us, label %for.body101.us.us, label %sw.epilog194.us.us for.cond113.preheader.us.us: ; preds = %sw.bb92.us.us - %cmp114189.us.us = icmp sgt i32 %spec.select105.us.us, 0 - br i1 %cmp114189.us.us, label %for.body116.us.us, label %sw.epilog194.us.us + %cmp114186.us.us = icmp sgt i32 %spec.select105.us.us, 0 + br i1 %cmp114186.us.us, label %for.body116.us.us, label %sw.epilog194.us.us for.cond127.preheader.us.us: ; preds = %sw.bb92.us.us - %cmp128184.us.us = icmp sgt i32 %spec.select105.us.us, 0 - br i1 %cmp128184.us.us, label %for.body130.us.us, label %sw.epilog194.us.us + %cmp128181.us.us = icmp sgt i32 %spec.select105.us.us, 0 + br i1 %cmp128181.us.us, label %for.body130.us.us, label %sw.epilog194.us.us for.cond148.preheader.us.us: ; preds = %sw.bb142.us.us - %cmp149179.us.us = icmp sgt i32 %spec.select105.us.us, 0 - br i1 %cmp149179.us.us, label %for.body151.us.us, label %sw.epilog194.us.us + %cmp149176.us.us = icmp sgt i32 %spec.select105.us.us, 0 + br i1 %cmp149176.us.us, label %for.body151.us.us, label %sw.epilog194.us.us for.cond164.preheader.us.us: ; preds = %sw.bb142.us.us - %cmp165174.us.us = icmp sgt i32 %spec.select105.us.us, 0 - br i1 %cmp165174.us.us, label %for.body167.us.us, label %sw.epilog194.us.us + %cmp165171.us.us = icmp sgt i32 %spec.select105.us.us, 0 + br i1 %cmp165171.us.us, label %for.body167.us.us, label %sw.epilog194.us.us for.cond180.preheader.us.us: ; preds = %sw.bb142.us.us - %cmp181170.us.us = icmp sgt i32 %spec.select105.us.us, 0 - br i1 %cmp181170.us.us, label %for.body183.us.us, label %sw.epilog194.us.us + %cmp181167.us.us = icmp sgt i32 %spec.select105.us.us, 0 + br i1 %cmp181167.us.us, label %for.body183.us.us, label %sw.epilog194.us.us return: ; preds = %for.end208.us, %for.body38.us.us, %sw.bb142.us.us, %sw.bb92.us.us, %sw.bb.us.us, %for.cond2.preheader.lr.ph, %entry %retval.0 = phi i32 [ 0, %entry ], [ 0, %for.cond2.preheader.lr.ph ], [ 3, %sw.bb.us.us ], [ 3, %sw.bb92.us.us ], [ 3, %sw.bb142.us.us ], [ 3, %for.body38.us.us ], [ 0, %for.end208.us ] @@ -2259,8 +2251,8 @@ define internal noundef i32 @generic_unpack(ptr nocapture noundef readonly %deco entry: %height = getelementptr inbounds i8, ptr %decode, i64 36 %0 = load i32, ptr %height, align 4 - %cmp197 = icmp sgt i32 %0, 0 - br i1 %cmp197, label %for.body.lr.ph, label %return + %cmp194 = icmp sgt i32 %0, 0 + br i1 %cmp194, label %for.body.lr.ph, label %return for.body.lr.ph: ; preds = %entry %unpacked_buffer = getelementptr inbounds i8, ptr %decode, i64 112 @@ -2271,21 +2263,21 @@ for.body.lr.ph: ; preds = %entry br label %for.body for.body: ; preds = %for.body.lr.ph, %for.inc185 - %2 = phi i32 [ %0, %for.body.lr.ph ], [ %40, %for.inc185 ] - %3 = phi i16 [ %.pre, %for.body.lr.ph ], [ %41, %for.inc185 ] - %4 = phi i16 [ %.pre, %for.body.lr.ph ], [ %42, %for.inc185 ] - %indvars.iv218 = phi i64 [ 0, %for.body.lr.ph ], [ %indvars.iv.next219, %for.inc185 ] - %srcbuffer.0199 = phi ptr [ %1, %for.body.lr.ph ], [ %srcbuffer.1.lcssa, %for.inc185 ] + %2 = phi i32 [ %0, %for.body.lr.ph ], [ %39, %for.inc185 ] + %3 = phi i16 [ %.pre, %for.body.lr.ph ], [ %40, %for.inc185 ] + %4 = phi i16 [ %.pre, %for.body.lr.ph ], [ %41, %for.inc185 ] + %indvars.iv215 = phi i64 [ 0, %for.body.lr.ph ], [ %indvars.iv.next216, %for.inc185 ] + %srcbuffer.0196 = phi ptr [ %1, %for.body.lr.ph ], [ %srcbuffer.1.lcssa, %for.inc185 ] %5 = load i32, ptr %start_y, align 8 - %6 = trunc i64 %indvars.iv218 to i32 + %6 = trunc i64 %indvars.iv215 to i32 %add = add nsw i32 %5, %6 - %cmp3193 = icmp sgt i16 %4, 0 - br i1 %cmp3193, label %for.body5, label %for.inc185 + %cmp3190 = icmp sgt i16 %4, 0 + br i1 %cmp3190, label %for.body5, label %for.inc185 for.body5: ; preds = %for.body, %for.inc182 - %7 = phi i16 [ %38, %for.inc182 ], [ %3, %for.body ] + %7 = phi i16 [ %37, %for.inc182 ], [ %3, %for.body ] %indvars.iv = phi i64 [ %indvars.iv.next, %for.inc182 ], [ 0, %for.body ] - %srcbuffer.1195 = phi ptr [ %srcbuffer.2, %for.inc182 ], [ %srcbuffer.0199, %for.body ] + %srcbuffer.1192 = phi ptr [ %srcbuffer.2, %for.inc182 ], [ %srcbuffer.0196, %for.body ] %8 = load ptr, ptr %decode, align 8 %add.ptr = getelementptr inbounds %struct.exr_coding_channel_info_t, ptr %8, i64 %indvars.iv %9 = getelementptr inbounds i8, ptr %add.ptr, i64 40 @@ -2322,7 +2314,7 @@ if.then13: ; preds = %if.end if.else: ; preds = %if.end %mul18 = mul nsw i32 %11, %conv6 %idx.ext19 = sext i32 %mul18 to i64 - %add.ptr20 = getelementptr inbounds i8, ptr %srcbuffer.1195, i64 %idx.ext19 + %add.ptr20 = getelementptr inbounds i8, ptr %srcbuffer.1192, i64 %idx.ext19 br label %for.inc182 if.else22: ; preds = %for.body5 @@ -2338,13 +2330,13 @@ if.then24: ; preds = %if.else22 if.else30: ; preds = %if.else22 %mul31 = mul nsw i32 %11, %conv6 %idx.ext32 = sext i32 %mul31 to i64 - %add.ptr33 = getelementptr inbounds i8, ptr %srcbuffer.1195, i64 %idx.ext32 + %add.ptr33 = getelementptr inbounds i8, ptr %srcbuffer.1192, i64 %idx.ext32 br label %for.inc182 if.end35: ; preds = %if.then24, %if.then13 %conv27.sink = phi i64 [ %conv27, %if.then24 ], [ %conv15, %if.then13 ] - %indvars.iv218.sink = phi i64 [ %indvars.iv218, %if.then24 ], [ %conv16, %if.then13 ] - %mul28 = mul nsw i64 %indvars.iv218.sink, %conv27.sink + %indvars.iv215.sink = phi i64 [ %indvars.iv215, %if.then24 ], [ %conv16, %if.then13 ] + %mul28 = mul nsw i64 %indvars.iv215.sink, %conv27.sink %cdata.0 = getelementptr inbounds i8, ptr %10, i64 %mul28 %data_type = getelementptr inbounds i8, ptr %add.ptr, i64 26 %17 = load i16, ptr %data_type, align 2 @@ -2364,47 +2356,47 @@ sw.bb: ; preds = %if.end35 ] for.cond63.preheader: ; preds = %sw.bb - %cmp64180 = icmp sgt i32 %11, 0 - br i1 %cmp64180, label %for.body66.lr.ph, label %sw.epilog178 + %cmp64177 = icmp sgt i32 %11, 0 + br i1 %cmp64177, label %for.body66.lr.ph, label %sw.epilog178 for.body66.lr.ph: ; preds = %for.cond63.preheader %idx.ext71 = sext i32 %13 to i64 br label %for.body66 for.cond48.preheader: ; preds = %sw.bb - %cmp49184 = icmp sgt i32 %11, 0 - br i1 %cmp49184, label %for.body51.lr.ph, label %sw.epilog178 + %cmp49181 = icmp sgt i32 %11, 0 + br i1 %cmp49181, label %for.body51.lr.ph, label %sw.epilog178 for.body51.lr.ph: ; preds = %for.cond48.preheader %idx.ext55 = sext i32 %13 to i64 br label %for.body51 for.cond39.preheader: ; preds = %sw.bb - %cmp40188 = icmp sgt i32 %11, 0 - br i1 %cmp40188, label %for.body42.lr.ph, label %sw.epilog178 + %cmp40185 = icmp sgt i32 %11, 0 + br i1 %cmp40185, label %for.body42.lr.ph, label %sw.epilog178 for.body42.lr.ph: ; preds = %for.cond39.preheader %idx.ext43 = sext i32 %13 to i64 br label %for.body42 for.body42: ; preds = %for.body42.lr.ph, %for.body42 - %cdata.1191 = phi ptr [ %cdata.0, %for.body42.lr.ph ], [ %add.ptr44, %for.body42 ] - %src.0190 = phi ptr [ %srcbuffer.1195, %for.body42.lr.ph ], [ %incdec.ptr, %for.body42 ] - %s.0189 = phi i32 [ 0, %for.body42.lr.ph ], [ %inc, %for.body42 ] - %src.0.val = load i16, ptr %src.0190, align 1 - store i16 %src.0.val, ptr %cdata.1191, align 2 - %incdec.ptr = getelementptr inbounds i8, ptr %src.0190, i64 2 - %add.ptr44 = getelementptr inbounds i8, ptr %cdata.1191, i64 %idx.ext43 - %inc = add nuw nsw i32 %s.0189, 1 - %exitcond216.not = icmp eq i32 %inc, %11 - br i1 %exitcond216.not, label %sw.epilog178, label %for.body42, !llvm.loop !42 + %cdata.1188 = phi ptr [ %cdata.0, %for.body42.lr.ph ], [ %add.ptr44, %for.body42 ] + %src.0187 = phi ptr [ %srcbuffer.1192, %for.body42.lr.ph ], [ %incdec.ptr, %for.body42 ] + %s.0186 = phi i32 [ 0, %for.body42.lr.ph ], [ %inc, %for.body42 ] + %src.0.val = load i16, ptr %src.0187, align 1 + store i16 %src.0.val, ptr %cdata.1188, align 2 + %incdec.ptr = getelementptr inbounds i8, ptr %src.0187, i64 2 + %add.ptr44 = getelementptr inbounds i8, ptr %cdata.1188, i64 %idx.ext43 + %inc = add nuw nsw i32 %s.0186, 1 + %exitcond213.not = icmp eq i32 %inc, %11 + br i1 %exitcond213.not, label %sw.epilog178, label %for.body42, !llvm.loop !42 for.body51: ; preds = %for.body51.lr.ph, %half_to_float.exit - %cdata.2187 = phi ptr [ %cdata.0, %for.body51.lr.ph ], [ %add.ptr56, %half_to_float.exit ] - %s47.0186 = phi i32 [ 0, %for.body51.lr.ph ], [ %inc58, %half_to_float.exit ] - %src46.0185 = phi ptr [ %srcbuffer.1195, %for.body51.lr.ph ], [ %incdec.ptr53, %half_to_float.exit ] - %src46.0.val = load i16, ptr %src46.0185, align 1 - %incdec.ptr53 = getelementptr inbounds i8, ptr %src46.0185, i64 2 + %cdata.2184 = phi ptr [ %cdata.0, %for.body51.lr.ph ], [ %add.ptr56, %half_to_float.exit ] + %s47.0183 = phi i32 [ 0, %for.body51.lr.ph ], [ %inc58, %half_to_float.exit ] + %src46.0182 = phi ptr [ %srcbuffer.1192, %for.body51.lr.ph ], [ %incdec.ptr53, %half_to_float.exit ] + %src46.0.val = load i16, ptr %src46.0182, align 1 + %incdec.ptr53 = getelementptr inbounds i8, ptr %src46.0182, i64 2 %conv.i.i = zext i16 %src46.0.val to i32 %19 = shl nuw nsw i32 %conv.i.i, 13 %shr.i.i = and i32 %19, 268427264 @@ -2442,18 +2434,18 @@ if.then15.i.i: ; preds = %if.else12.i.i half_to_float.exit: ; preds = %if.then10.i.i, %if.else.i.i, %if.else12.i.i, %if.then15.i.i %v.sroa.0.0.i.i = phi i32 [ %add.i.i, %if.then10.i.i ], [ %or11.i.i, %if.else.i.i ], [ %sub20.i.i, %if.then15.i.i ], [ %shl3.i.i, %if.else12.i.i ] - store i32 %v.sroa.0.0.i.i, ptr %cdata.2187, align 4 - %add.ptr56 = getelementptr inbounds i8, ptr %cdata.2187, i64 %idx.ext55 - %inc58 = add nuw nsw i32 %s47.0186, 1 - %exitcond215.not = icmp eq i32 %inc58, %11 - br i1 %exitcond215.not, label %sw.epilog178, label %for.body51, !llvm.loop !43 + store i32 %v.sroa.0.0.i.i, ptr %cdata.2184, align 4 + %add.ptr56 = getelementptr inbounds i8, ptr %cdata.2184, i64 %idx.ext55 + %inc58 = add nuw nsw i32 %s47.0183, 1 + %exitcond212.not = icmp eq i32 %inc58, %11 + br i1 %exitcond212.not, label %sw.epilog178, label %for.body51, !llvm.loop !43 for.body66: ; preds = %for.body66.lr.ph, %half_to_uint.exit - %cdata.3183 = phi ptr [ %cdata.0, %for.body66.lr.ph ], [ %add.ptr72, %half_to_uint.exit ] - %s62.0182 = phi i32 [ 0, %for.body66.lr.ph ], [ %inc74, %half_to_uint.exit ] - %src61.0181 = phi ptr [ %srcbuffer.1195, %for.body66.lr.ph ], [ %incdec.ptr69, %half_to_uint.exit ] - %src61.0.val = load i16, ptr %src61.0181, align 1 - %incdec.ptr69 = getelementptr inbounds i8, ptr %src61.0181, i64 2 + %cdata.3180 = phi ptr [ %cdata.0, %for.body66.lr.ph ], [ %add.ptr72, %half_to_uint.exit ] + %s62.0179 = phi i32 [ 0, %for.body66.lr.ph ], [ %inc74, %half_to_uint.exit ] + %src61.0178 = phi ptr [ %srcbuffer.1192, %for.body66.lr.ph ], [ %incdec.ptr69, %half_to_uint.exit ] + %src61.0.val = load i16, ptr %src61.0178, align 1 + %incdec.ptr69 = getelementptr inbounds i8, ptr %src61.0178, i64 2 %conv.i = zext i16 %src61.0.val to i32 %tobool.not.i = icmp sgt i16 %src61.0.val, -1 br i1 %tobool.not.i, label %if.end.i, label %half_to_uint.exit @@ -2507,11 +2499,11 @@ half_to_float.exit.i: ; preds = %if.then15.i.i.i, %i half_to_uint.exit: ; preds = %for.body66, %if.then4.i, %half_to_float.exit.i %retval.0.i = phi i32 [ %conv12.i, %half_to_float.exit.i ], [ 0, %for.body66 ], [ %..i, %if.then4.i ] - store i32 %retval.0.i, ptr %cdata.3183, align 4 - %add.ptr72 = getelementptr inbounds i8, ptr %cdata.3183, i64 %idx.ext71 - %inc74 = add nuw nsw i32 %s62.0182, 1 - %exitcond214.not = icmp eq i32 %inc74, %11 - br i1 %exitcond214.not, label %sw.epilog178, label %for.body66, !llvm.loop !44 + store i32 %retval.0.i, ptr %cdata.3180, align 4 + %add.ptr72 = getelementptr inbounds i8, ptr %cdata.3180, i64 %idx.ext71 + %inc74 = add nuw nsw i32 %s62.0179, 1 + %exitcond211.not = icmp eq i32 %inc74, %11 + br i1 %exitcond211.not, label %sw.epilog178, label %for.body66, !llvm.loop !44 sw.bb76: ; preds = %if.end35 %user_data_type77 = getelementptr inbounds i8, ptr %add.ptr, i64 30 @@ -2523,35 +2515,35 @@ sw.bb76: ; preds = %if.end35 ] for.cond111.preheader: ; preds = %sw.bb76 - %cmp112168 = icmp sgt i32 %11, 0 - br i1 %cmp112168, label %for.body114.lr.ph, label %sw.epilog178 + %cmp112165 = icmp sgt i32 %11, 0 + br i1 %cmp112165, label %for.body114.lr.ph, label %sw.epilog178 for.body114.lr.ph: ; preds = %for.cond111.preheader %idx.ext119 = sext i32 %13 to i64 br label %for.body114 for.cond97.preheader: ; preds = %sw.bb76 - %cmp98172 = icmp sgt i32 %11, 0 - br i1 %cmp98172, label %for.body100.lr.ph, label %sw.epilog178 + %cmp98169 = icmp sgt i32 %11, 0 + br i1 %cmp98169, label %for.body100.lr.ph, label %sw.epilog178 for.body100.lr.ph: ; preds = %for.cond97.preheader %idx.ext103 = sext i32 %13 to i64 br label %for.body100 for.cond82.preheader: ; preds = %sw.bb76 - %cmp83176 = icmp sgt i32 %11, 0 - br i1 %cmp83176, label %for.body85.lr.ph, label %sw.epilog178 + %cmp83173 = icmp sgt i32 %11, 0 + br i1 %cmp83173, label %for.body85.lr.ph, label %sw.epilog178 for.body85.lr.ph: ; preds = %for.cond82.preheader %idx.ext89 = sext i32 %13 to i64 br label %for.body85 for.body85: ; preds = %for.body85.lr.ph, %float_to_half_int.exit - %cdata.4179 = phi ptr [ %cdata.0, %for.body85.lr.ph ], [ %add.ptr90, %float_to_half_int.exit ] - %s81.0178 = phi i32 [ 0, %for.body85.lr.ph ], [ %inc92, %float_to_half_int.exit ] - %src80.0177 = phi ptr [ %srcbuffer.1195, %for.body85.lr.ph ], [ %incdec.ptr87, %float_to_half_int.exit ] - %src80.0.val = load i32, ptr %src80.0177, align 1 - %incdec.ptr87 = getelementptr inbounds i8, ptr %src80.0177, i64 4 + %cdata.4176 = phi ptr [ %cdata.0, %for.body85.lr.ph ], [ %add.ptr90, %float_to_half_int.exit ] + %s81.0175 = phi i32 [ 0, %for.body85.lr.ph ], [ %inc92, %float_to_half_int.exit ] + %src80.0174 = phi ptr [ %srcbuffer.1192, %for.body85.lr.ph ], [ %incdec.ptr87, %float_to_half_int.exit ] + %src80.0.val = load i32, ptr %src80.0174, align 1 + %incdec.ptr87 = getelementptr inbounds i8, ptr %src80.0174, i64 4 %25 = bitcast i32 %src80.0.val to float %26 = tail call float @llvm.fabs.f32(float %25) %and.i.i.i = bitcast float %26 to i32 @@ -2630,49 +2622,49 @@ if.then65.i.i.i: ; preds = %lor.lhs.false.i.i.i float_to_half_int.exit: ; preds = %if.then6.i.i.i, %if.end.i.i.i, %if.then29.i.i.i, %if.end33.i.i.i, %if.end43.i.i.i, %lor.lhs.false.i.i.i, %if.then65.i.i.i %retval.0.i.i.i = phi i16 [ %conv23.i.i.i, %if.end.i.i.i ], [ %conv32.i.i.i, %if.then29.i.i.i ], [ %conv42.i.i.i, %if.end33.i.i.i ], [ %conv8.i.i.i, %if.then6.i.i.i ], [ %conv.i.i.i, %if.end43.i.i.i ], [ %inc.i.i.i, %if.then65.i.i.i ], [ %conv56.i.i.i, %lor.lhs.false.i.i.i ] - store i16 %retval.0.i.i.i, ptr %cdata.4179, align 2 - %add.ptr90 = getelementptr inbounds i8, ptr %cdata.4179, i64 %idx.ext89 - %inc92 = add nuw nsw i32 %s81.0178, 1 - %exitcond213.not = icmp eq i32 %inc92, %11 - br i1 %exitcond213.not, label %sw.epilog178, label %for.body85, !llvm.loop !45 + store i16 %retval.0.i.i.i, ptr %cdata.4176, align 2 + %add.ptr90 = getelementptr inbounds i8, ptr %cdata.4176, i64 %idx.ext89 + %inc92 = add nuw nsw i32 %s81.0175, 1 + %exitcond210.not = icmp eq i32 %inc92, %11 + br i1 %exitcond210.not, label %sw.epilog178, label %for.body85, !llvm.loop !45 for.body100: ; preds = %for.body100.lr.ph, %for.body100 - %cdata.5175 = phi ptr [ %cdata.0, %for.body100.lr.ph ], [ %add.ptr104, %for.body100 ] - %s96.0174 = phi i32 [ 0, %for.body100.lr.ph ], [ %inc106, %for.body100 ] - %src95.0173 = phi ptr [ %srcbuffer.1195, %for.body100.lr.ph ], [ %incdec.ptr102, %for.body100 ] - %src95.0.val = load i32, ptr %src95.0173, align 1 - store i32 %src95.0.val, ptr %cdata.5175, align 4 - %incdec.ptr102 = getelementptr inbounds i8, ptr %src95.0173, i64 4 - %add.ptr104 = getelementptr inbounds i8, ptr %cdata.5175, i64 %idx.ext103 - %inc106 = add nuw nsw i32 %s96.0174, 1 - %exitcond212.not = icmp eq i32 %inc106, %11 - br i1 %exitcond212.not, label %sw.epilog178, label %for.body100, !llvm.loop !46 + %cdata.5172 = phi ptr [ %cdata.0, %for.body100.lr.ph ], [ %add.ptr104, %for.body100 ] + %s96.0171 = phi i32 [ 0, %for.body100.lr.ph ], [ %inc106, %for.body100 ] + %src95.0170 = phi ptr [ %srcbuffer.1192, %for.body100.lr.ph ], [ %incdec.ptr102, %for.body100 ] + %src95.0.val = load i32, ptr %src95.0170, align 1 + store i32 %src95.0.val, ptr %cdata.5172, align 4 + %incdec.ptr102 = getelementptr inbounds i8, ptr %src95.0170, i64 4 + %add.ptr104 = getelementptr inbounds i8, ptr %cdata.5172, i64 %idx.ext103 + %inc106 = add nuw nsw i32 %s96.0171, 1 + %exitcond209.not = icmp eq i32 %inc106, %11 + br i1 %exitcond209.not, label %sw.epilog178, label %for.body100, !llvm.loop !46 for.body114: ; preds = %for.body114.lr.ph, %float_to_uint_int.exit - %cdata.6171 = phi ptr [ %cdata.0, %for.body114.lr.ph ], [ %add.ptr120, %float_to_uint_int.exit ] - %s110.0170 = phi i32 [ 0, %for.body114.lr.ph ], [ %inc122, %float_to_uint_int.exit ] - %src109.0169 = phi ptr [ %srcbuffer.1195, %for.body114.lr.ph ], [ %incdec.ptr117, %float_to_uint_int.exit ] - %src109.0.val145 = load float, ptr %src109.0169, align 1 - %incdec.ptr117 = getelementptr inbounds i8, ptr %src109.0169, i64 4 - %or.cond5.i.i = fcmp ult float %src109.0.val145, 0.000000e+00 + %cdata.6168 = phi ptr [ %cdata.0, %for.body114.lr.ph ], [ %add.ptr120, %float_to_uint_int.exit ] + %s110.0167 = phi i32 [ 0, %for.body114.lr.ph ], [ %inc122, %float_to_uint_int.exit ] + %src109.0166 = phi ptr [ %srcbuffer.1192, %for.body114.lr.ph ], [ %incdec.ptr117, %float_to_uint_int.exit ] + %src109.0.val142 = load float, ptr %src109.0166, align 1 + %incdec.ptr117 = getelementptr inbounds i8, ptr %src109.0166, i64 4 + %or.cond5.i.i = fcmp ult float %src109.0.val142, 0.000000e+00 br i1 %or.cond5.i.i, label %float_to_uint_int.exit, label %if.end.i.i if.end.i.i: ; preds = %for.body114 - %31 = tail call float @llvm.fabs.f32(float %src109.0.val145) #5 + %31 = tail call float @llvm.fabs.f32(float %src109.0.val142) #5 %isinf.i.i = fcmp oeq float %31, 0x7FF0000000000000 - %cmp2.i.i = fcmp ogt float %src109.0.val145, 0x41F0000000000000 + %cmp2.i.i = fcmp ogt float %src109.0.val142, 0x41F0000000000000 %or.cond.i.i = or i1 %cmp2.i.i, %isinf.i.i - %conv.i.i98 = fptoui float %src109.0.val145 to i32 + %conv.i.i98 = fptoui float %src109.0.val142 to i32 %spec.select.i.i = select i1 %or.cond.i.i, i32 -1, i32 %conv.i.i98 br label %float_to_uint_int.exit float_to_uint_int.exit: ; preds = %for.body114, %if.end.i.i %retval.0.i.i = phi i32 [ 0, %for.body114 ], [ %spec.select.i.i, %if.end.i.i ] - store i32 %retval.0.i.i, ptr %cdata.6171, align 4 - %add.ptr120 = getelementptr inbounds i8, ptr %cdata.6171, i64 %idx.ext119 - %inc122 = add nuw nsw i32 %s110.0170, 1 - %exitcond211.not = icmp eq i32 %inc122, %11 - br i1 %exitcond211.not, label %sw.epilog178, label %for.body114, !llvm.loop !47 + store i32 %retval.0.i.i, ptr %cdata.6168, align 4 + %add.ptr120 = getelementptr inbounds i8, ptr %cdata.6168, i64 %idx.ext119 + %inc122 = add nuw nsw i32 %s110.0167, 1 + %exitcond208.not = icmp eq i32 %inc122, %11 + br i1 %exitcond208.not, label %sw.epilog178, label %for.body114, !llvm.loop !47 sw.bb126: ; preds = %if.end35 %user_data_type127 = getelementptr inbounds i8, ptr %add.ptr, i64 30 @@ -2684,166 +2676,162 @@ sw.bb126: ; preds = %if.end35 ] for.cond164.preheader: ; preds = %sw.bb126 - %cmp165156 = icmp sgt i32 %11, 0 - br i1 %cmp165156, label %for.body167.lr.ph, label %sw.epilog178 + %cmp165153 = icmp sgt i32 %11, 0 + br i1 %cmp165153, label %for.body167.lr.ph, label %sw.epilog178 for.body167.lr.ph: ; preds = %for.cond164.preheader %idx.ext170 = sext i32 %13 to i64 br label %for.body167 for.cond148.preheader: ; preds = %sw.bb126 - %cmp149160 = icmp sgt i32 %11, 0 - br i1 %cmp149160, label %for.body151.lr.ph, label %sw.epilog178 + %cmp149157 = icmp sgt i32 %11, 0 + br i1 %cmp149157, label %for.body151.lr.ph, label %sw.epilog178 for.body151.lr.ph: ; preds = %for.cond148.preheader %idx.ext156 = sext i32 %13 to i64 br label %for.body151 for.cond132.preheader: ; preds = %sw.bb126 - %cmp133164 = icmp sgt i32 %11, 0 - br i1 %cmp133164, label %for.body135.lr.ph, label %sw.epilog178 + %cmp133161 = icmp sgt i32 %11, 0 + br i1 %cmp133161, label %for.body135.lr.ph, label %sw.epilog178 for.body135.lr.ph: ; preds = %for.cond132.preheader %idx.ext140 = sext i32 %13 to i64 br label %for.body135 for.body135: ; preds = %for.body135.lr.ph, %uint_to_half.exit - %s131.0167 = phi i32 [ 0, %for.body135.lr.ph ], [ %inc143, %uint_to_half.exit ] - %src130.0166 = phi ptr [ %srcbuffer.1195, %for.body135.lr.ph ], [ %incdec.ptr138, %uint_to_half.exit ] - %cdata.7165 = phi ptr [ %cdata.0, %for.body135.lr.ph ], [ %add.ptr141, %uint_to_half.exit ] - %src130.0.val = load i32, ptr %src130.0166, align 1 - %incdec.ptr138 = getelementptr inbounds i8, ptr %src130.0166, i64 4 + %s131.0164 = phi i32 [ 0, %for.body135.lr.ph ], [ %inc143, %uint_to_half.exit ] + %src130.0163 = phi ptr [ %srcbuffer.1192, %for.body135.lr.ph ], [ %incdec.ptr138, %uint_to_half.exit ] + %cdata.7162 = phi ptr [ %cdata.0, %for.body135.lr.ph ], [ %add.ptr141, %uint_to_half.exit ] + %src130.0.val = load i32, ptr %src130.0163, align 1 + %incdec.ptr138 = getelementptr inbounds i8, ptr %src130.0163, i64 4 %cmp.i99 = icmp ugt i32 %src130.0.val, 65504 br i1 %cmp.i99, label %uint_to_half.exit, label %if.end.i100 if.end.i100: ; preds = %for.body135 %conv.i101 = uitofp i32 %src130.0.val to float %33 = bitcast float %conv.i101 to i32 - %shr.i.i.i102 = lshr i32 %33, 16 - %34 = trunc i32 %shr.i.i.i102 to i16 - %conv.i.i.i103 = and i16 %34, -32768 - %cmp.i.i.i104 = icmp ugt i32 %33, 947912703 - br i1 %cmp.i.i.i104, label %if.then.i.i.i125, label %if.end43.i.i.i105 - -if.then.i.i.i125: ; preds = %if.end.i100 - %cmp3.i.i.i126 = icmp ugt i32 %33, 2139095039 - br i1 %cmp3.i.i.i126, label %if.then6.i.i.i136, label %if.end24.i.i.i127 - -if.then6.i.i.i136: ; preds = %if.then.i.i.i125 - %conv8.i.i.i137 = or disjoint i16 %conv.i.i.i103, 31744 - %cmp9.i.i.i138 = icmp eq i32 %33, 2139095040 - br i1 %cmp9.i.i.i138, label %uint_to_half.exit, label %if.end.i.i.i139 - -if.end.i.i.i139: ; preds = %if.then6.i.i.i136 - %and12.i.i.i140 = lshr i32 %33, 13 - %shr13.i.i.i141 = and i32 %and12.i.i.i140, 1023 - %cmp18.i.i.i142 = icmp eq i32 %shr13.i.i.i141, 0 - %35 = zext i1 %cmp18.i.i.i142 to i16 - %36 = trunc i32 %shr13.i.i.i141 to i16 - %37 = or i16 %35, %36 - %conv23.i.i.i143 = or disjoint i16 %37, %conv8.i.i.i137 + %cmp.i.i.i102 = icmp ugt i32 %33, 947912703 + br i1 %cmp.i.i.i102, label %if.then.i.i.i123, label %if.end43.i.i.i103 + +if.then.i.i.i123: ; preds = %if.end.i100 + %cmp3.i.i.i124 = icmp ugt i32 %33, 2139095039 + br i1 %cmp3.i.i.i124, label %if.then6.i.i.i134, label %if.end24.i.i.i125 + +if.then6.i.i.i134: ; preds = %if.then.i.i.i123 + %cmp9.i.i.i135 = icmp eq i32 %33, 2139095040 + br i1 %cmp9.i.i.i135, label %uint_to_half.exit, label %if.end.i.i.i136 + +if.end.i.i.i136: ; preds = %if.then6.i.i.i134 + %and12.i.i.i137 = lshr i32 %33, 13 + %shr13.i.i.i138 = and i32 %and12.i.i.i137, 1023 + %cmp18.i.i.i139 = icmp eq i32 %shr13.i.i.i138, 0 + %34 = zext i1 %cmp18.i.i.i139 to i16 + %35 = trunc i32 %shr13.i.i.i138 to i16 + %36 = or i16 %35, %34 + %conv23.i.i.i140 = or disjoint i16 %36, 31744 br label %uint_to_half.exit -if.end24.i.i.i127: ; preds = %if.then.i.i.i125 - %cmp25.i.i.i128 = icmp ugt i32 %33, 1199566847 - br i1 %cmp25.i.i.i128, label %uint_to_half.exit, label %if.end33.i.i.i129 - -if.end33.i.i.i129: ; preds = %if.end24.i.i.i127 - %add.i.i.i130 = add nuw nsw i32 %33, 134221823 - %shr34.i.i.i131 = lshr i32 %33, 13 - %and35.i.i.i132 = and i32 %shr34.i.i.i131, 1 - %add36.i.i.i133 = add nuw nsw i32 %add.i.i.i130, %and35.i.i.i132 - %shr37.i.i.i134 = lshr i32 %add36.i.i.i133, 13 - %conv42.i.i.i135 = trunc i32 %shr37.i.i.i134 to i16 +if.end24.i.i.i125: ; preds = %if.then.i.i.i123 + %cmp25.i.i.i126 = icmp ugt i32 %33, 1199566847 + br i1 %cmp25.i.i.i126, label %uint_to_half.exit, label %if.end33.i.i.i127 + +if.end33.i.i.i127: ; preds = %if.end24.i.i.i125 + %add.i.i.i128 = add nuw nsw i32 %33, 134221823 + %shr34.i.i.i129 = lshr i32 %33, 13 + %and35.i.i.i130 = and i32 %shr34.i.i.i129, 1 + %add36.i.i.i131 = add nuw nsw i32 %add.i.i.i128, %and35.i.i.i130 + %shr37.i.i.i132 = lshr i32 %add36.i.i.i131, 13 + %conv42.i.i.i133 = trunc i32 %shr37.i.i.i132 to i16 br label %uint_to_half.exit -if.end43.i.i.i105: ; preds = %if.end.i100 - %cmp44.i.i.i106 = icmp ult i32 %33, 855638017 - br i1 %cmp44.i.i.i106, label %uint_to_half.exit, label %if.end47.i.i.i107 - -if.end47.i.i.i107: ; preds = %if.end43.i.i.i105 - %shr48.i.i.i108 = lshr i32 %33, 23 - %sub49.i.i.i109 = sub nuw nsw i32 126, %shr48.i.i.i108 - %and50.i.i.i110 = and i32 %33, 8388607 - %or51.i.i.i111 = or disjoint i32 %and50.i.i.i110, 8388608 - %sub52.i.i.i112 = add nsw i32 %shr48.i.i.i108, -94 - %shl.i.i.i113 = shl i32 %or51.i.i.i111, %sub52.i.i.i112 - %shr53.i.i.i114 = lshr i32 %or51.i.i.i111, %sub49.i.i.i109 - %conv56.i.i.i115 = trunc i32 %shr53.i.i.i114 to i16 - %cmp57.i.i.i116 = icmp ugt i32 %shl.i.i.i113, -2147483648 - br i1 %cmp57.i.i.i116, label %if.then65.i.i.i122, label %lor.lhs.false.i.i.i117 - -lor.lhs.false.i.i.i117: ; preds = %if.end47.i.i.i107 - %cmp59.i.i.i118 = icmp ne i32 %shl.i.i.i113, -2147483648 - %and62.i.i.i119 = and i32 %shr53.i.i.i114, 1 - %cmp63.not.i.i.i120 = icmp eq i32 %and62.i.i.i119, 0 - %or.cond.i.i.i121 = select i1 %cmp59.i.i.i118, i1 true, i1 %cmp63.not.i.i.i120 - br i1 %or.cond.i.i.i121, label %uint_to_half.exit, label %if.then65.i.i.i122 - -if.then65.i.i.i122: ; preds = %lor.lhs.false.i.i.i117, %if.end47.i.i.i107 - %inc.i.i.i123 = add nuw nsw i16 %conv56.i.i.i115, 1 +if.end43.i.i.i103: ; preds = %if.end.i100 + %cmp44.i.i.i104 = icmp ult i32 %33, 855638017 + br i1 %cmp44.i.i.i104, label %uint_to_half.exit, label %if.end47.i.i.i105 + +if.end47.i.i.i105: ; preds = %if.end43.i.i.i103 + %shr48.i.i.i106 = lshr i32 %33, 23 + %sub49.i.i.i107 = sub nuw nsw i32 126, %shr48.i.i.i106 + %and50.i.i.i108 = and i32 %33, 8388607 + %or51.i.i.i109 = or disjoint i32 %and50.i.i.i108, 8388608 + %sub52.i.i.i110 = add nsw i32 %shr48.i.i.i106, -94 + %shl.i.i.i111 = shl i32 %or51.i.i.i109, %sub52.i.i.i110 + %shr53.i.i.i112 = lshr i32 %or51.i.i.i109, %sub49.i.i.i107 + %conv56.i.i.i113 = trunc i32 %shr53.i.i.i112 to i16 + %cmp57.i.i.i114 = icmp ugt i32 %shl.i.i.i111, -2147483648 + br i1 %cmp57.i.i.i114, label %if.then65.i.i.i120, label %lor.lhs.false.i.i.i115 + +lor.lhs.false.i.i.i115: ; preds = %if.end47.i.i.i105 + %cmp59.i.i.i116 = icmp ne i32 %shl.i.i.i111, -2147483648 + %and62.i.i.i117 = and i32 %shr53.i.i.i112, 1 + %cmp63.not.i.i.i118 = icmp eq i32 %and62.i.i.i117, 0 + %or.cond.i.i.i119 = select i1 %cmp59.i.i.i116, i1 true, i1 %cmp63.not.i.i.i118 + br i1 %or.cond.i.i.i119, label %uint_to_half.exit, label %if.then65.i.i.i120 + +if.then65.i.i.i120: ; preds = %lor.lhs.false.i.i.i115, %if.end47.i.i.i105 + %inc.i.i.i121 = add nuw nsw i16 %conv56.i.i.i113, 1 br label %uint_to_half.exit -uint_to_half.exit: ; preds = %for.body135, %if.then6.i.i.i136, %if.end.i.i.i139, %if.end24.i.i.i127, %if.end33.i.i.i129, %if.end43.i.i.i105, %lor.lhs.false.i.i.i117, %if.then65.i.i.i122 - %retval.0.i124 = phi i16 [ 31744, %for.body135 ], [ %conv23.i.i.i143, %if.end.i.i.i139 ], [ %conv42.i.i.i135, %if.end33.i.i.i129 ], [ %conv8.i.i.i137, %if.then6.i.i.i136 ], [ %conv.i.i.i103, %if.end43.i.i.i105 ], [ %inc.i.i.i123, %if.then65.i.i.i122 ], [ %conv56.i.i.i115, %lor.lhs.false.i.i.i117 ], [ 31744, %if.end24.i.i.i127 ] - store i16 %retval.0.i124, ptr %cdata.7165, align 2 - %add.ptr141 = getelementptr inbounds i8, ptr %cdata.7165, i64 %idx.ext140 - %inc143 = add nuw nsw i32 %s131.0167, 1 - %exitcond210.not = icmp eq i32 %inc143, %11 - br i1 %exitcond210.not, label %sw.epilog178, label %for.body135, !llvm.loop !48 +uint_to_half.exit: ; preds = %for.body135, %if.then6.i.i.i134, %if.end.i.i.i136, %if.end24.i.i.i125, %if.end33.i.i.i127, %if.end43.i.i.i103, %lor.lhs.false.i.i.i115, %if.then65.i.i.i120 + %retval.0.i122 = phi i16 [ 31744, %for.body135 ], [ %conv23.i.i.i140, %if.end.i.i.i136 ], [ %conv42.i.i.i133, %if.end33.i.i.i127 ], [ 31744, %if.then6.i.i.i134 ], [ 0, %if.end43.i.i.i103 ], [ %inc.i.i.i121, %if.then65.i.i.i120 ], [ %conv56.i.i.i113, %lor.lhs.false.i.i.i115 ], [ 31744, %if.end24.i.i.i125 ] + store i16 %retval.0.i122, ptr %cdata.7162, align 2 + %add.ptr141 = getelementptr inbounds i8, ptr %cdata.7162, i64 %idx.ext140 + %inc143 = add nuw nsw i32 %s131.0164, 1 + %exitcond207.not = icmp eq i32 %inc143, %11 + br i1 %exitcond207.not, label %sw.epilog178, label %for.body135, !llvm.loop !48 for.body151: ; preds = %for.body151.lr.ph, %for.body151 - %s147.0163 = phi i32 [ 0, %for.body151.lr.ph ], [ %inc159, %for.body151 ] - %src146.0162 = phi ptr [ %srcbuffer.1195, %for.body151.lr.ph ], [ %incdec.ptr154, %for.body151 ] - %cdata.8161 = phi ptr [ %cdata.0, %for.body151.lr.ph ], [ %add.ptr157, %for.body151 ] - %src146.0.val = load i32, ptr %src146.0162, align 1 - %incdec.ptr154 = getelementptr inbounds i8, ptr %src146.0162, i64 4 - %conv.i144 = uitofp i32 %src146.0.val to float - store float %conv.i144, ptr %cdata.8161, align 4 - %add.ptr157 = getelementptr inbounds i8, ptr %cdata.8161, i64 %idx.ext156 - %inc159 = add nuw nsw i32 %s147.0163, 1 - %exitcond209.not = icmp eq i32 %inc159, %11 - br i1 %exitcond209.not, label %sw.epilog178, label %for.body151, !llvm.loop !49 + %s147.0160 = phi i32 [ 0, %for.body151.lr.ph ], [ %inc159, %for.body151 ] + %src146.0159 = phi ptr [ %srcbuffer.1192, %for.body151.lr.ph ], [ %incdec.ptr154, %for.body151 ] + %cdata.8158 = phi ptr [ %cdata.0, %for.body151.lr.ph ], [ %add.ptr157, %for.body151 ] + %src146.0.val = load i32, ptr %src146.0159, align 1 + %incdec.ptr154 = getelementptr inbounds i8, ptr %src146.0159, i64 4 + %conv.i141 = uitofp i32 %src146.0.val to float + store float %conv.i141, ptr %cdata.8158, align 4 + %add.ptr157 = getelementptr inbounds i8, ptr %cdata.8158, i64 %idx.ext156 + %inc159 = add nuw nsw i32 %s147.0160, 1 + %exitcond206.not = icmp eq i32 %inc159, %11 + br i1 %exitcond206.not, label %sw.epilog178, label %for.body151, !llvm.loop !49 for.body167: ; preds = %for.body167.lr.ph, %for.body167 - %s163.0159 = phi i32 [ 0, %for.body167.lr.ph ], [ %inc173, %for.body167 ] - %src162.0158 = phi ptr [ %srcbuffer.1195, %for.body167.lr.ph ], [ %incdec.ptr169, %for.body167 ] - %cdata.9157 = phi ptr [ %cdata.0, %for.body167.lr.ph ], [ %add.ptr171, %for.body167 ] - %src162.0.val = load i32, ptr %src162.0158, align 1 - store i32 %src162.0.val, ptr %cdata.9157, align 4 - %incdec.ptr169 = getelementptr inbounds i8, ptr %src162.0158, i64 4 - %add.ptr171 = getelementptr inbounds i8, ptr %cdata.9157, i64 %idx.ext170 - %inc173 = add nuw nsw i32 %s163.0159, 1 + %s163.0156 = phi i32 [ 0, %for.body167.lr.ph ], [ %inc173, %for.body167 ] + %src162.0155 = phi ptr [ %srcbuffer.1192, %for.body167.lr.ph ], [ %incdec.ptr169, %for.body167 ] + %cdata.9154 = phi ptr [ %cdata.0, %for.body167.lr.ph ], [ %add.ptr171, %for.body167 ] + %src162.0.val = load i32, ptr %src162.0155, align 1 + store i32 %src162.0.val, ptr %cdata.9154, align 4 + %incdec.ptr169 = getelementptr inbounds i8, ptr %src162.0155, i64 4 + %add.ptr171 = getelementptr inbounds i8, ptr %cdata.9154, i64 %idx.ext170 + %inc173 = add nuw nsw i32 %s163.0156, 1 %exitcond.not = icmp eq i32 %inc173, %11 br i1 %exitcond.not, label %sw.epilog178, label %for.body167, !llvm.loop !50 sw.epilog178: ; preds = %for.body167, %for.body151, %uint_to_half.exit, %float_to_uint_int.exit, %for.body100, %float_to_half_int.exit, %half_to_uint.exit, %half_to_float.exit, %for.body42, %for.cond164.preheader, %for.cond148.preheader, %for.cond132.preheader, %for.cond111.preheader, %for.cond97.preheader, %for.cond82.preheader, %for.cond63.preheader, %for.cond48.preheader, %for.cond39.preheader %mul179 = mul nsw i32 %11, %conv6 %idx.ext180 = sext i32 %mul179 to i64 - %add.ptr181 = getelementptr inbounds i8, ptr %srcbuffer.1195, i64 %idx.ext180 - %.pre221 = load i16, ptr %channel_count, align 8 + %add.ptr181 = getelementptr inbounds i8, ptr %srcbuffer.1192, i64 %idx.ext180 + %.pre218 = load i16, ptr %channel_count, align 8 br label %for.inc182 for.inc182: ; preds = %if.then, %sw.epilog178, %if.else30, %if.else - %38 = phi i16 [ %7, %if.then ], [ %.pre221, %sw.epilog178 ], [ %7, %if.else ], [ %7, %if.else30 ] - %srcbuffer.2 = phi ptr [ %srcbuffer.1195, %if.then ], [ %add.ptr181, %sw.epilog178 ], [ %add.ptr20, %if.else ], [ %add.ptr33, %if.else30 ] + %37 = phi i16 [ %7, %if.then ], [ %.pre218, %sw.epilog178 ], [ %7, %if.else ], [ %7, %if.else30 ] + %srcbuffer.2 = phi ptr [ %srcbuffer.1192, %if.then ], [ %add.ptr181, %sw.epilog178 ], [ %add.ptr20, %if.else ], [ %add.ptr33, %if.else30 ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %39 = sext i16 %38 to i64 - %cmp3 = icmp slt i64 %indvars.iv.next, %39 + %38 = sext i16 %37 to i64 + %cmp3 = icmp slt i64 %indvars.iv.next, %38 br i1 %cmp3, label %for.body5, label %for.inc185.loopexit, !llvm.loop !51 for.inc185.loopexit: ; preds = %for.inc182 - %.pre222 = load i32, ptr %height, align 4 + %.pre219 = load i32, ptr %height, align 4 br label %for.inc185 for.inc185: ; preds = %for.inc185.loopexit, %for.body - %40 = phi i32 [ %2, %for.body ], [ %.pre222, %for.inc185.loopexit ] - %41 = phi i16 [ %3, %for.body ], [ %38, %for.inc185.loopexit ] - %42 = phi i16 [ %4, %for.body ], [ %38, %for.inc185.loopexit ] - %srcbuffer.1.lcssa = phi ptr [ %srcbuffer.0199, %for.body ], [ %srcbuffer.2, %for.inc185.loopexit ] - %indvars.iv.next219 = add nuw nsw i64 %indvars.iv218, 1 - %43 = sext i32 %40 to i64 - %cmp = icmp slt i64 %indvars.iv.next219, %43 + %39 = phi i32 [ %2, %for.body ], [ %.pre219, %for.inc185.loopexit ] + %40 = phi i16 [ %3, %for.body ], [ %37, %for.inc185.loopexit ] + %41 = phi i16 [ %4, %for.body ], [ %37, %for.inc185.loopexit ] + %srcbuffer.1.lcssa = phi ptr [ %srcbuffer.0196, %for.body ], [ %srcbuffer.2, %for.inc185.loopexit ] + %indvars.iv.next216 = add nuw nsw i64 %indvars.iv215, 1 + %42 = sext i32 %39 to i64 + %cmp = icmp slt i64 %indvars.iv.next216, %42 br i1 %cmp, label %for.body, label %return, !llvm.loop !52 return: ; preds = %for.inc185, %if.end35, %sw.bb126, %sw.bb76, %sw.bb, %entry diff --git a/bench/php/optimized/zend_strtod.ll b/bench/php/optimized/zend_strtod.ll index 4c0c8c6e105..7c8a66d9397 100644 --- a/bench/php/optimized/zend_strtod.ll +++ b/bench/php/optimized/zend_strtod.ll @@ -3804,8 +3804,8 @@ rv_alloc.exit.i568: ; preds = %77, %72 %114 = phi i32 [ %107, %101 ], [ %111, %108 ] %115 = uitofp i32 %114 to double %116 = bitcast double %115 to i64 - %117 = and i64 %116, -4294967296 - %.sroa.085.4.insert.shift100 = add i64 %117, -139611588448485376 + %117 = and i64 %116, 9223372032559808512 + %.sroa.085.4.insert.shift100 = add nsw i64 %117, -139611588448485376 %.sroa.085.4.insert.mask101 = and i64 %116, 4294967295 %.sroa.085.4.insert.insert102 = or disjoint i64 %.sroa.085.4.insert.shift100, %.sroa.085.4.insert.mask101 %118 = add nsw i32 %99, -1 diff --git a/bench/postgres/optimized/float.ll b/bench/postgres/optimized/float.ll index 6ed69755dda..f331c557380 100644 --- a/bench/postgres/optimized/float.ll +++ b/bench/postgres/optimized/float.ll @@ -771,7 +771,7 @@ define dso_local i64 @float4abs(ptr nocapture noundef readonly %0) local_unnamed %5 = bitcast i32 %4 to float %6 = tail call float @llvm.fabs.f32(float %5) %7 = bitcast float %6 to i32 - %8 = sext i32 %7 to i64 + %8 = zext nneg i32 %7 to i64 ret i64 %8 } diff --git a/bench/quickjs/optimized/quickjs.ll b/bench/quickjs/optimized/quickjs.ll index d84f3eba96f..f31c44302cd 100644 --- a/bench/quickjs/optimized/quickjs.ll +++ b/bench/quickjs/optimized/quickjs.ll @@ -22755,7 +22755,7 @@ JS_DupValue.exit: ; preds = %18, %28 %.sroa.0178.0 = select i1 %90, i64 %.sroa.0183.0.insert.ext, i64 %92 %.sroa.3179.0 = select i1 %90, i64 0, i64 7 %.sroa.086.0.extract.trunc92 = trunc i64 %.sroa.0178.0 to i32 - %.sroa.14.0.extract.shift108 = and i64 %.sroa.0178.0, -4294967296 + %.sroa.14.0.extract.shift108 = and i64 %.sroa.0178.0, 9223372032559808512 br label %212 93: ; preds = %12 @@ -91776,7 +91776,7 @@ JS_FreeValue.exit: ; preds = %53, %58, %63 %75 = bitcast double %74 to i64 %.sroa.093.0 = select i1 %73, i64 %.sroa.098.0.insert.ext, i64 %75 %.sroa.394.0 = select i1 %73, i64 0, i64 7 - %.sroa.7.0.extract.shift = and i64 %.sroa.093.0, -4294967296 + %.sroa.7.0.extract.shift = and i64 %.sroa.093.0, 9223372032559808512 br label %105 76: ; preds = %67 @@ -215734,7 +215734,7 @@ JS_ToBool.exit: ; preds = %46, %53 %.sroa.0143.0 = select i1 %102, i64 %.sroa.0147.0.insert.ext, i64 %104 %.sroa.3.0 = select i1 %102, i64 0, i64 7 %.sroa.060.0.extract.trunc67 = trunc i64 %.sroa.0143.0 to i32 - %.sroa.15.0.extract.shift84 = and i64 %.sroa.0143.0, -4294967296 + %.sroa.15.0.extract.shift84 = and i64 %.sroa.0143.0, 9223372032559808512 br label %123 105: ; preds = %76 diff --git a/bench/raylib/optimized/rtextures.c.ll b/bench/raylib/optimized/rtextures.c.ll index 201102a2e75..89ccdcdf086 100644 --- a/bench/raylib/optimized/rtextures.c.ll +++ b/bench/raylib/optimized/rtextures.c.ll @@ -12919,8 +12919,8 @@ define noundef ptr @LoadImageColors(ptr nocapture noundef readonly byval(%struct %186 = or disjoint i32 %185, %181 %187 = icmp ne i32 %177, 0 %188 = and i1 %.not.i, %187 - %189 = and i32 %179, -8388608 - %190 = add i32 %189, -310378496 + %189 = and i32 %179, 2139095040 + %190 = add nsw i32 %189, -310378496 %191 = sub nsw i32 150, %180 %192 = shl i32 %176, %191 %193 = and i32 %192, 8380416 @@ -12962,8 +12962,8 @@ define noundef ptr @LoadImageColors(ptr nocapture noundef readonly byval(%struct %221 = or disjoint i32 %220, %216 %222 = icmp ne i32 %212, 0 %223 = and i1 %.not.i179, %222 - %224 = and i32 %214, -8388608 - %225 = add i32 %224, -310378496 + %224 = and i32 %214, 2139095040 + %225 = add nsw i32 %224, -310378496 %226 = sub nsw i32 150, %215 %227 = shl i32 %211, %226 %228 = and i32 %227, 8380416 @@ -12995,8 +12995,8 @@ define noundef ptr @LoadImageColors(ptr nocapture noundef readonly byval(%struct %251 = or disjoint i32 %250, %246 %252 = icmp ne i32 %242, 0 %253 = and i1 %.not.i181, %252 - %254 = and i32 %244, -8388608 - %255 = add i32 %254, -310378496 + %254 = and i32 %244, 2139095040 + %255 = add nsw i32 %254, -310378496 %256 = sub nsw i32 150, %245 %257 = shl i32 %241, %256 %258 = and i32 %257, 8380416 @@ -13028,8 +13028,8 @@ define noundef ptr @LoadImageColors(ptr nocapture noundef readonly byval(%struct %281 = or disjoint i32 %280, %276 %282 = icmp ne i32 %272, 0 %283 = and i1 %.not.i183, %282 - %284 = and i32 %274, -8388608 - %285 = add i32 %284, -310378496 + %284 = and i32 %274, 2139095040 + %285 = add nsw i32 %284, -310378496 %286 = sub nsw i32 150, %275 %287 = shl i32 %271, %286 %288 = and i32 %287, 8380416 @@ -13068,8 +13068,8 @@ define noundef ptr @LoadImageColors(ptr nocapture noundef readonly byval(%struct %315 = or disjoint i32 %314, %310 %316 = icmp ne i32 %306, 0 %317 = and i1 %.not.i185, %316 - %318 = and i32 %308, -8388608 - %319 = add i32 %318, -310378496 + %318 = and i32 %308, 2139095040 + %319 = add nsw i32 %318, -310378496 %320 = sub nsw i32 150, %309 %321 = shl i32 %305, %320 %322 = and i32 %321, 8380416 @@ -13100,8 +13100,8 @@ define noundef ptr @LoadImageColors(ptr nocapture noundef readonly byval(%struct %344 = or disjoint i32 %343, %339 %345 = icmp ne i32 %335, 0 %346 = and i1 %.not.i187, %345 - %347 = and i32 %337, -8388608 - %348 = add i32 %347, -310378496 + %347 = and i32 %337, 2139095040 + %348 = add nsw i32 %347, -310378496 %349 = sub nsw i32 150, %338 %350 = shl i32 %334, %349 %351 = and i32 %350, 8380416 @@ -13132,8 +13132,8 @@ define noundef ptr @LoadImageColors(ptr nocapture noundef readonly byval(%struct %373 = or disjoint i32 %372, %368 %374 = icmp ne i32 %364, 0 %375 = and i1 %.not.i189, %374 - %376 = and i32 %366, -8388608 - %377 = add i32 %376, -310378496 + %376 = and i32 %366, 2139095040 + %377 = add nsw i32 %376, -310378496 %378 = sub nsw i32 150, %367 %379 = shl i32 %363, %378 %380 = and i32 %379, 8380416 @@ -13164,8 +13164,8 @@ define noundef ptr @LoadImageColors(ptr nocapture noundef readonly byval(%struct %402 = or disjoint i32 %401, %397 %403 = icmp ne i32 %393, 0 %404 = and i1 %.not.i191, %403 - %405 = and i32 %395, -8388608 - %406 = add i32 %405, -310378496 + %405 = and i32 %395, 2139095040 + %406 = add nsw i32 %405, -310378496 %407 = sub nsw i32 150, %396 %408 = shl i32 %392, %407 %409 = and i32 %408, 8380416 @@ -15197,8 +15197,8 @@ define void @ImageFormat(ptr noundef %0, i32 noundef %1) local_unnamed_addr #4 { %214 = or disjoint i32 %213, %209 %215 = icmp ne i32 %205, 0 %216 = and i1 %.not.i.i, %215 - %217 = and i32 %207, -8388608 - %218 = add i32 %217, -310378496 + %217 = and i32 %207, 2139095040 + %218 = add nsw i32 %217, -310378496 %219 = sub nsw i32 150, %208 %220 = shl i32 %204, %219 %221 = and i32 %220, 8380416 @@ -15235,8 +15235,8 @@ define void @ImageFormat(ptr noundef %0, i32 noundef %1) local_unnamed_addr #4 { %245 = or disjoint i32 %244, %240 %246 = icmp ne i32 %236, 0 %247 = and i1 %.not.i159.i, %246 - %248 = and i32 %238, -8388608 - %249 = add i32 %248, -310378496 + %248 = and i32 %238, 2139095040 + %249 = add nsw i32 %248, -310378496 %250 = sub nsw i32 150, %239 %251 = shl i32 %235, %250 %252 = and i32 %251, 8380416 @@ -15265,8 +15265,8 @@ define void @ImageFormat(ptr noundef %0, i32 noundef %1) local_unnamed_addr #4 { %272 = or disjoint i32 %271, %267 %273 = icmp ne i32 %263, 0 %274 = and i1 %.not.i161.i, %273 - %275 = and i32 %265, -8388608 - %276 = add i32 %275, -310378496 + %275 = and i32 %265, 2139095040 + %276 = add nsw i32 %275, -310378496 %277 = sub nsw i32 150, %266 %278 = shl i32 %262, %277 %279 = and i32 %278, 8380416 @@ -15295,8 +15295,8 @@ define void @ImageFormat(ptr noundef %0, i32 noundef %1) local_unnamed_addr #4 { %299 = or disjoint i32 %298, %294 %300 = icmp ne i32 %290, 0 %301 = and i1 %.not.i163.i, %300 - %302 = and i32 %292, -8388608 - %303 = add i32 %302, -310378496 + %302 = and i32 %292, 2139095040 + %303 = add nsw i32 %302, -310378496 %304 = sub nsw i32 150, %293 %305 = shl i32 %289, %304 %306 = and i32 %305, 8380416 @@ -15332,8 +15332,8 @@ define void @ImageFormat(ptr noundef %0, i32 noundef %1) local_unnamed_addr #4 { %330 = or disjoint i32 %329, %325 %331 = icmp ne i32 %321, 0 %332 = and i1 %.not.i165.i, %331 - %333 = and i32 %323, -8388608 - %334 = add i32 %333, -310378496 + %333 = and i32 %323, 2139095040 + %334 = add nsw i32 %333, -310378496 %335 = sub nsw i32 150, %324 %336 = shl i32 %320, %335 %337 = and i32 %336, 8380416 @@ -15362,8 +15362,8 @@ define void @ImageFormat(ptr noundef %0, i32 noundef %1) local_unnamed_addr #4 { %357 = or disjoint i32 %356, %352 %358 = icmp ne i32 %348, 0 %359 = and i1 %.not.i167.i, %358 - %360 = and i32 %350, -8388608 - %361 = add i32 %360, -310378496 + %360 = and i32 %350, 2139095040 + %361 = add nsw i32 %360, -310378496 %362 = sub nsw i32 150, %351 %363 = shl i32 %347, %362 %364 = and i32 %363, 8380416 @@ -15392,8 +15392,8 @@ define void @ImageFormat(ptr noundef %0, i32 noundef %1) local_unnamed_addr #4 { %384 = or disjoint i32 %383, %379 %385 = icmp ne i32 %375, 0 %386 = and i1 %.not.i169.i, %385 - %387 = and i32 %377, -8388608 - %388 = add i32 %387, -310378496 + %387 = and i32 %377, 2139095040 + %388 = add nsw i32 %387, -310378496 %389 = sub nsw i32 150, %378 %390 = shl i32 %374, %389 %391 = and i32 %390, 8380416 @@ -15422,8 +15422,8 @@ define void @ImageFormat(ptr noundef %0, i32 noundef %1) local_unnamed_addr #4 { %411 = or disjoint i32 %410, %406 %412 = icmp ne i32 %402, 0 %413 = and i1 %.not.i171.i, %412 - %414 = and i32 %404, -8388608 - %415 = add i32 %414, -310378496 + %414 = and i32 %404, 2139095040 + %415 = add nsw i32 %414, -310378496 %416 = sub nsw i32 150, %405 %417 = shl i32 %401, %416 %418 = and i32 %417, 8380416 @@ -18229,7 +18229,7 @@ define void @ImageAlphaClear(ptr nocapture noundef readonly %0, i32 %1, float no %35 = uitofp <4 x i8> %8 to <4 x float> %36 = fdiv <4 x float> %35, %37 = bitcast <4 x float> %36 to <4 x i32> - %38 = add <4 x i32> %37, + %38 = add nuw <4 x i32> %37, %39 = extractelement <4 x i32> %38, i64 3 %40 = and i32 %39, 8388607 %41 = lshr i32 %39, 16 @@ -18657,8 +18657,8 @@ define void @ImageAlphaClear(ptr nocapture noundef readonly %0, i32 %1, float no %363 = or disjoint i32 %362, %358 %364 = icmp ne i32 %354, 0 %365 = and i1 %.not.i, %364 - %366 = and i32 %356, -8388608 - %367 = add i32 %366, -310378496 + %366 = and i32 %356, 2139095040 + %367 = add nsw i32 %366, -310378496 %368 = sub nsw i32 150, %357 %369 = shl i32 %353, %368 %370 = and i32 %369, 8380416 @@ -21642,8 +21642,8 @@ define i32 @GetImageColor(ptr nocapture noundef readonly byval(%struct.Image) al %174 = or disjoint i32 %173, %169 %175 = icmp ne i32 %165, 0 %176 = and i1 %.not.i, %175 - %177 = and i32 %167, -8388608 - %178 = add i32 %177, -310378496 + %177 = and i32 %167, 2139095040 + %178 = add nsw i32 %177, -310378496 %179 = sub nsw i32 150, %168 %180 = shl i32 %164, %179 %181 = and i32 %180, 8380416 @@ -21681,8 +21681,8 @@ define i32 @GetImageColor(ptr nocapture noundef readonly byval(%struct.Image) al %209 = or disjoint i32 %208, %204 %210 = icmp ne i32 %200, 0 %211 = and i1 %.not.i91, %210 - %212 = and i32 %202, -8388608 - %213 = add i32 %212, -310378496 + %212 = and i32 %202, 2139095040 + %213 = add nsw i32 %212, -310378496 %214 = sub nsw i32 150, %203 %215 = shl i32 %199, %214 %216 = and i32 %215, 8380416 @@ -21712,8 +21712,8 @@ define i32 @GetImageColor(ptr nocapture noundef readonly byval(%struct.Image) al %238 = or disjoint i32 %237, %233 %239 = icmp ne i32 %229, 0 %240 = and i1 %.not.i93, %239 - %241 = and i32 %231, -8388608 - %242 = add i32 %241, -310378496 + %241 = and i32 %231, 2139095040 + %242 = add nsw i32 %241, -310378496 %243 = sub nsw i32 150, %232 %244 = shl i32 %228, %243 %245 = and i32 %244, 8380416 @@ -21743,8 +21743,8 @@ define i32 @GetImageColor(ptr nocapture noundef readonly byval(%struct.Image) al %267 = or disjoint i32 %266, %262 %268 = icmp ne i32 %258, 0 %269 = and i1 %.not.i95, %268 - %270 = and i32 %260, -8388608 - %271 = add i32 %270, -310378496 + %270 = and i32 %260, 2139095040 + %271 = add nsw i32 %270, -310378496 %272 = sub nsw i32 150, %261 %273 = shl i32 %257, %272 %274 = and i32 %273, 8380416 @@ -21782,8 +21782,8 @@ define i32 @GetImageColor(ptr nocapture noundef readonly byval(%struct.Image) al %302 = or disjoint i32 %301, %297 %303 = icmp ne i32 %293, 0 %304 = and i1 %.not.i97, %303 - %305 = and i32 %295, -8388608 - %306 = add i32 %305, -310378496 + %305 = and i32 %295, 2139095040 + %306 = add nsw i32 %305, -310378496 %307 = sub nsw i32 150, %296 %308 = shl i32 %292, %307 %309 = and i32 %308, 8380416 @@ -23078,8 +23078,8 @@ define i32 @GetPixelColor(ptr nocapture noundef readonly %0, i32 noundef %1) loc %109 = or disjoint i32 %108, %104 %110 = icmp ne i32 %100, 0 %111 = and i1 %.not.i, %110 - %112 = and i32 %102, -8388608 - %113 = add i32 %112, -310378496 + %112 = and i32 %102, 2139095040 + %113 = add nsw i32 %112, -310378496 %114 = sub nsw i32 150, %103 %115 = shl i32 %99, %114 %116 = and i32 %115, 8380416 @@ -23113,8 +23113,8 @@ define i32 @GetPixelColor(ptr nocapture noundef readonly %0, i32 noundef %1) loc %140 = or disjoint i32 %139, %135 %141 = icmp ne i32 %131, 0 %142 = and i1 %.not.i63, %141 - %143 = and i32 %133, -8388608 - %144 = add i32 %143, -310378496 + %143 = and i32 %133, 2139095040 + %144 = add nsw i32 %143, -310378496 %145 = sub nsw i32 150, %134 %146 = shl i32 %130, %145 %147 = and i32 %146, 8380416 @@ -23144,8 +23144,8 @@ define i32 @GetPixelColor(ptr nocapture noundef readonly %0, i32 noundef %1) loc %171 = or disjoint <2 x i32> %170, %165 %172 = icmp ne <2 x i32> %158, zeroinitializer %173 = and <2 x i1> %166, %172 - %174 = and <2 x i32> %162, - %175 = add <2 x i32> %174, + %174 = and <2 x i32> %162, + %175 = add nsw <2 x i32> %174, %176 = sub nsw <2 x i32> , %163 %177 = shl <2 x i32> %157, %176 %178 = and <2 x i32> %177, @@ -23180,8 +23180,8 @@ define i32 @GetPixelColor(ptr nocapture noundef readonly %0, i32 noundef %1) loc %205 = or disjoint <4 x i32> %204, %199 %206 = icmp ne <4 x i32> %192, zeroinitializer %207 = and <4 x i1> %200, %206 - %208 = and <4 x i32> %196, - %209 = add <4 x i32> %208, + %208 = and <4 x i32> %196, + %209 = add nsw <4 x i32> %208, %210 = sub nsw <4 x i32> , %197 %211 = shl <4 x i32> %191, %210 %212 = and <4 x i32> %211, @@ -47688,7 +47688,7 @@ define internal void @stbir__encode_uint8_srgb(ptr noundef writeonly %0, i32 nou 134: ; preds = %132 %135 = bitcast float %130 to i32 - %136 = add i32 %135, -956301312 + %136 = add nsw i32 %135, -956301312 %137 = lshr i32 %136, 20 %138 = zext nneg i32 %137 to i64 %139 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %138 @@ -47718,7 +47718,7 @@ stbir__linear_to_srgb_uchar.exit: ; preds = %.lr.ph, %132, %134 155: ; preds = %153 %156 = bitcast float %151 to i32 - %157 = add i32 %156, -956301312 + %157 = add nsw i32 %156, -956301312 %158 = lshr i32 %157, 20 %159 = zext nneg i32 %158 to i64 %160 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %159 @@ -47749,7 +47749,7 @@ stbir__linear_to_srgb_uchar.exit280: ; preds = %stbir__linear_to_sr 177: ; preds = %175 %178 = bitcast float %173 to i32 - %179 = add i32 %178, -956301312 + %179 = add nsw i32 %178, -956301312 %180 = lshr i32 %179, 20 %181 = zext nneg i32 %180 to i64 %182 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %181 @@ -47780,7 +47780,7 @@ stbir__linear_to_srgb_uchar.exit282: ; preds = %stbir__linear_to_sr 199: ; preds = %197 %200 = bitcast float %195 to i32 - %201 = add i32 %200, -956301312 + %201 = add nsw i32 %200, -956301312 %202 = lshr i32 %201, 20 %203 = zext nneg i32 %202 to i64 %204 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %203 @@ -47819,7 +47819,7 @@ stbir__linear_to_srgb_uchar.exit284: ; preds = %stbir__linear_to_sr 221: ; preds = %219 %222 = bitcast float %217 to i32 - %223 = add i32 %222, -956301312 + %223 = add nsw i32 %222, -956301312 %224 = lshr i32 %223, 20 %225 = zext nneg i32 %224 to i64 %226 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %225 @@ -48346,7 +48346,7 @@ define internal void @stbir__encode_uint8_srgb4_linearalpha(ptr noundef writeonl 115: ; preds = %113 %116 = bitcast float %111 to i32 - %117 = add i32 %116, -956301312 + %117 = add nsw i32 %116, -956301312 %118 = lshr i32 %117, 20 %119 = zext nneg i32 %118 to i64 %120 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %119 @@ -48376,7 +48376,7 @@ stbir__linear_to_srgb_uchar.exit: ; preds = %.preheader, %113, % 136: ; preds = %134 %137 = bitcast float %132 to i32 - %138 = add i32 %137, -956301312 + %138 = add nsw i32 %137, -956301312 %139 = lshr i32 %138, 20 %140 = zext nneg i32 %139 to i64 %141 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %140 @@ -48407,7 +48407,7 @@ stbir__linear_to_srgb_uchar.exit248: ; preds = %stbir__linear_to_sr 158: ; preds = %156 %159 = bitcast float %154 to i32 - %160 = add i32 %159, -956301312 + %160 = add nsw i32 %159, -956301312 %161 = lshr i32 %160, 20 %162 = zext nneg i32 %161 to i64 %163 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %162 @@ -48613,7 +48613,7 @@ define internal void @stbir__encode_uint8_srgb4_linearalpha_BGRA(ptr noundef wri 115: ; preds = %113 %116 = bitcast float %111 to i32 - %117 = add i32 %116, -956301312 + %117 = add nsw i32 %116, -956301312 %118 = lshr i32 %117, 20 %119 = zext nneg i32 %118 to i64 %120 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %119 @@ -48644,7 +48644,7 @@ stbir__linear_to_srgb_uchar.exit: ; preds = %.preheader, %113, % 137: ; preds = %135 %138 = bitcast float %133 to i32 - %139 = add i32 %138, -956301312 + %139 = add nsw i32 %138, -956301312 %140 = lshr i32 %139, 20 %141 = zext nneg i32 %140 to i64 %142 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %141 @@ -48675,7 +48675,7 @@ stbir__linear_to_srgb_uchar.exit248: ; preds = %stbir__linear_to_sr 159: ; preds = %157 %160 = bitcast float %155 to i32 - %161 = add i32 %160, -956301312 + %161 = add nsw i32 %160, -956301312 %162 = lshr i32 %161, 20 %163 = zext nneg i32 %162 to i64 %164 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %163 @@ -48916,7 +48916,7 @@ define internal void @stbir__encode_uint8_srgb_BGRA(ptr noundef writeonly %0, i3 134: ; preds = %132 %135 = bitcast float %130 to i32 - %136 = add i32 %135, -956301312 + %136 = add nsw i32 %135, -956301312 %137 = lshr i32 %136, 20 %138 = zext nneg i32 %137 to i64 %139 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %138 @@ -48946,7 +48946,7 @@ stbir__linear_to_srgb_uchar.exit: ; preds = %.lr.ph, %132, %134 155: ; preds = %153 %156 = bitcast float %151 to i32 - %157 = add i32 %156, -956301312 + %157 = add nsw i32 %156, -956301312 %158 = lshr i32 %157, 20 %159 = zext nneg i32 %158 to i64 %160 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %159 @@ -48976,7 +48976,7 @@ stbir__linear_to_srgb_uchar.exit271: ; preds = %stbir__linear_to_sr 176: ; preds = %174 %177 = bitcast float %172 to i32 - %178 = add i32 %177, -956301312 + %178 = add nsw i32 %177, -956301312 %179 = lshr i32 %178, 20 %180 = zext nneg i32 %179 to i64 %181 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %180 @@ -49007,7 +49007,7 @@ stbir__linear_to_srgb_uchar.exit273: ; preds = %stbir__linear_to_sr 198: ; preds = %196 %199 = bitcast float %194 to i32 - %200 = add i32 %199, -956301312 + %200 = add nsw i32 %199, -956301312 %201 = lshr i32 %200, 20 %202 = zext nneg i32 %201 to i64 %203 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %202 @@ -49536,7 +49536,7 @@ define internal void @stbir__encode_uint8_srgb4_linearalpha_ARGB(ptr noundef wri 115: ; preds = %113 %116 = bitcast float %111 to i32 - %117 = add i32 %116, -956301312 + %117 = add nsw i32 %116, -956301312 %118 = lshr i32 %117, 20 %119 = zext nneg i32 %118 to i64 %120 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %119 @@ -49567,7 +49567,7 @@ stbir__linear_to_srgb_uchar.exit: ; preds = %.preheader, %113, % 137: ; preds = %135 %138 = bitcast float %133 to i32 - %139 = add i32 %138, -956301312 + %139 = add nsw i32 %138, -956301312 %140 = lshr i32 %139, 20 %141 = zext nneg i32 %140 to i64 %142 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %141 @@ -49598,7 +49598,7 @@ stbir__linear_to_srgb_uchar.exit248: ; preds = %stbir__linear_to_sr 159: ; preds = %157 %160 = bitcast float %155 to i32 - %161 = add i32 %160, -956301312 + %161 = add nsw i32 %160, -956301312 %162 = lshr i32 %161, 20 %163 = zext nneg i32 %162 to i64 %164 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %163 @@ -49839,7 +49839,7 @@ define internal void @stbir__encode_uint8_srgb_ARGB(ptr noundef writeonly %0, i3 134: ; preds = %132 %135 = bitcast float %130 to i32 - %136 = add i32 %135, -956301312 + %136 = add nsw i32 %135, -956301312 %137 = lshr i32 %136, 20 %138 = zext nneg i32 %137 to i64 %139 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %138 @@ -49868,7 +49868,7 @@ stbir__linear_to_srgb_uchar.exit: ; preds = %.lr.ph, %132, %134 154: ; preds = %152 %155 = bitcast float %150 to i32 - %156 = add i32 %155, -956301312 + %156 = add nsw i32 %155, -956301312 %157 = lshr i32 %156, 20 %158 = zext nneg i32 %157 to i64 %159 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %158 @@ -49899,7 +49899,7 @@ stbir__linear_to_srgb_uchar.exit271: ; preds = %stbir__linear_to_sr 176: ; preds = %174 %177 = bitcast float %172 to i32 - %178 = add i32 %177, -956301312 + %178 = add nsw i32 %177, -956301312 %179 = lshr i32 %178, 20 %180 = zext nneg i32 %179 to i64 %181 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %180 @@ -49930,7 +49930,7 @@ stbir__linear_to_srgb_uchar.exit273: ; preds = %stbir__linear_to_sr 198: ; preds = %196 %199 = bitcast float %194 to i32 - %200 = add i32 %199, -956301312 + %200 = add nsw i32 %199, -956301312 %201 = lshr i32 %200, 20 %202 = zext nneg i32 %201 to i64 %203 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %202 @@ -50459,7 +50459,7 @@ define internal void @stbir__encode_uint8_srgb4_linearalpha_ABGR(ptr noundef wri 115: ; preds = %113 %116 = bitcast float %111 to i32 - %117 = add i32 %116, -956301312 + %117 = add nsw i32 %116, -956301312 %118 = lshr i32 %117, 20 %119 = zext nneg i32 %118 to i64 %120 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %119 @@ -50490,7 +50490,7 @@ stbir__linear_to_srgb_uchar.exit: ; preds = %.preheader, %113, % 137: ; preds = %135 %138 = bitcast float %133 to i32 - %139 = add i32 %138, -956301312 + %139 = add nsw i32 %138, -956301312 %140 = lshr i32 %139, 20 %141 = zext nneg i32 %140 to i64 %142 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %141 @@ -50521,7 +50521,7 @@ stbir__linear_to_srgb_uchar.exit248: ; preds = %stbir__linear_to_sr 159: ; preds = %157 %160 = bitcast float %155 to i32 - %161 = add i32 %160, -956301312 + %161 = add nsw i32 %160, -956301312 %162 = lshr i32 %161, 20 %163 = zext nneg i32 %162 to i64 %164 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %163 @@ -50762,7 +50762,7 @@ define internal void @stbir__encode_uint8_srgb_ABGR(ptr noundef writeonly %0, i3 134: ; preds = %132 %135 = bitcast float %130 to i32 - %136 = add i32 %135, -956301312 + %136 = add nsw i32 %135, -956301312 %137 = lshr i32 %136, 20 %138 = zext nneg i32 %137 to i64 %139 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %138 @@ -50792,7 +50792,7 @@ stbir__linear_to_srgb_uchar.exit: ; preds = %.lr.ph, %132, %134 155: ; preds = %153 %156 = bitcast float %151 to i32 - %157 = add i32 %156, -956301312 + %157 = add nsw i32 %156, -956301312 %158 = lshr i32 %157, 20 %159 = zext nneg i32 %158 to i64 %160 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %159 @@ -50823,7 +50823,7 @@ stbir__linear_to_srgb_uchar.exit271: ; preds = %stbir__linear_to_sr 177: ; preds = %175 %178 = bitcast float %173 to i32 - %179 = add i32 %178, -956301312 + %179 = add nsw i32 %178, -956301312 %180 = lshr i32 %179, 20 %181 = zext nneg i32 %180 to i64 %182 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %181 @@ -50853,7 +50853,7 @@ stbir__linear_to_srgb_uchar.exit273: ; preds = %stbir__linear_to_sr 198: ; preds = %196 %199 = bitcast float %194 to i32 - %200 = add i32 %199, -956301312 + %200 = add nsw i32 %199, -956301312 %201 = lshr i32 %200, 20 %202 = zext nneg i32 %201 to i64 %203 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %202 @@ -51356,7 +51356,7 @@ define internal void @stbir__encode_uint8_srgb2_linearalpha(ptr noundef writeonl 97: ; preds = %95 %98 = bitcast float %93 to i32 - %99 = add i32 %98, -956301312 + %99 = add nsw i32 %98, -956301312 %100 = lshr i32 %99, 20 %101 = zext nneg i32 %100 to i64 %102 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %101 @@ -51535,7 +51535,7 @@ define internal void @stbir__encode_uint8_srgb2_linearalpha_AR(ptr noundef write 97: ; preds = %95 %98 = bitcast float %93 to i32 - %99 = add i32 %98, -956301312 + %99 = add nsw i32 %98, -956301312 %100 = lshr i32 %99, 20 %101 = zext nneg i32 %100 to i64 %102 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %101 @@ -51782,7 +51782,7 @@ define internal void @stbir__encode_uint8_srgb_AR(ptr noundef writeonly %0, i32 135: ; preds = %133 %136 = bitcast float %131 to i32 - %137 = add i32 %136, -956301312 + %137 = add nsw i32 %136, -956301312 %138 = lshr i32 %137, 20 %139 = zext nneg i32 %138 to i64 %140 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %139 @@ -51811,7 +51811,7 @@ stbir__linear_to_srgb_uchar.exit: ; preds = %.lr.ph, %133, %135 155: ; preds = %153 %156 = bitcast float %151 to i32 - %157 = add i32 %156, -956301312 + %157 = add nsw i32 %156, -956301312 %158 = lshr i32 %157, 20 %159 = zext nneg i32 %158 to i64 %160 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %159 @@ -51842,7 +51842,7 @@ stbir__linear_to_srgb_uchar.exit282: ; preds = %stbir__linear_to_sr 177: ; preds = %175 %178 = bitcast float %173 to i32 - %179 = add i32 %178, -956301312 + %179 = add nsw i32 %178, -956301312 %180 = lshr i32 %179, 20 %181 = zext nneg i32 %180 to i64 %182 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %181 @@ -51873,7 +51873,7 @@ stbir__linear_to_srgb_uchar.exit284: ; preds = %stbir__linear_to_sr 199: ; preds = %197 %200 = bitcast float %195 to i32 - %201 = add i32 %200, -956301312 + %201 = add nsw i32 %200, -956301312 %202 = lshr i32 %201, 20 %203 = zext nneg i32 %202 to i64 %204 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %203 @@ -51913,7 +51913,7 @@ stbir__linear_to_srgb_uchar.exit286: ; preds = %stbir__linear_to_sr 222: ; preds = %220 %223 = bitcast float %218 to i32 - %224 = add i32 %223, -956301312 + %224 = add nsw i32 %223, -956301312 %225 = lshr i32 %224, 20 %226 = zext nneg i32 %225 to i64 %227 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %226 @@ -51942,7 +51942,7 @@ stbir__linear_to_srgb_uchar.exit288: ; preds = %.lr.ph301, %220, %2 242: ; preds = %240 %243 = bitcast float %238 to i32 - %244 = add i32 %243, -956301312 + %244 = add nsw i32 %243, -956301312 %245 = lshr i32 %244, 20 %246 = zext nneg i32 %245 to i64 %247 = getelementptr inbounds [104 x i32], ptr @fp32_to_srgb8_tab4, i64 0, i64 %246 diff --git a/bench/ruby/optimized/enumerator.ll b/bench/ruby/optimized/enumerator.ll index f0a3b95a8af..b02848ed8fa 100644 --- a/bench/ruby/optimized/enumerator.ll +++ b/bench/ruby/optimized/enumerator.ll @@ -5183,100 +5183,77 @@ RB_FLOAT_TYPE_P.exit.thread: ; preds = %RB_FLOAT_TYPE_P.exi %54 = tail call double @ruby_float_step_size(double noundef %52, double noundef %.036, double noundef %53, i32 noundef %12) #17 %55 = tail call double @llvm.fabs.f64(double %54) #21 %56 = fcmp oeq double %55, 0x7FF0000000000000 - br i1 %56, label %57, label %72 + br i1 %56, label %57, label %59 57: ; preds = %51 - %58 = bitcast double %54 to i64 - %cond.i = icmp eq i64 %58, 3458764513820540928 - br i1 %cond.i, label %70, label %59 - -59: ; preds = %57 - %60 = lshr i64 %58, 60 - %61 = trunc i64 %60 to i32 - %62 = and i32 %61, 7 - %63 = add nsw i32 %62, -3 - %.not7.i = icmp ult i32 %63, 2 - br i1 %.not7.i, label %64, label %68 - -64: ; preds = %59 - %65 = tail call noundef i64 @llvm.fshl.i64(i64 %58, i64 %58, i64 3) - %66 = and i64 %65, -4 - %67 = or disjoint i64 %66, 2 + %58 = tail call i64 @rb_float_new_in_heap(double noundef %54) #17 br label %rb_float_new_inline.exit -68: ; preds = %59 - %69 = icmp eq i64 %58, 0 - br i1 %69, label %rb_float_new_inline.exit, label %70 +59: ; preds = %51 + %60 = fcmp olt double %54, 0x43D0000000000000 + br i1 %60, label %61, label %65 -70: ; preds = %68, %57 - %71 = tail call i64 @rb_float_new_in_heap(double noundef %54) #17 +61: ; preds = %59 + %62 = fptosi double %54 to i64 + %63 = shl i64 %62, 1 + %64 = or disjoint i64 %63, 1 br label %rb_float_new_inline.exit -72: ; preds = %51 - %73 = fcmp olt double %54, 0x43D0000000000000 - br i1 %73, label %74, label %78 - -74: ; preds = %72 - %75 = fptosi double %54 to i64 - %76 = shl i64 %75, 1 - %77 = or disjoint i64 %76, 1 - br label %rb_float_new_inline.exit - -78: ; preds = %72 - %79 = tail call i64 @rb_dbl2big(double noundef %54) #17 +65: ; preds = %59 + %66 = tail call i64 @rb_dbl2big(double noundef %54) #17 br label %rb_float_new_inline.exit RB_FLOAT_TYPE_P.exit48.thread59: ; preds = %37, %RB_FLOAT_TYPE_P.exit48 - %80 = icmp eq i64 %5, 4 - br i1 %80, label %81, label %83 + %67 = icmp eq i64 %5, 4 + br i1 %67, label %68, label %70 -81: ; preds = %RB_FLOAT_TYPE_P.exit48.thread59 - %82 = tail call i64 @rb_float_new_in_heap(double noundef 0x7FF0000000000000) #17 +68: ; preds = %RB_FLOAT_TYPE_P.exit48.thread59 + %69 = tail call i64 @rb_float_new_in_heap(double noundef 0x7FF0000000000000) #17 br label %rb_float_new_inline.exit -83: ; preds = %RB_FLOAT_TYPE_P.exit48.thread59 - %84 = load i64, ptr @rb_cNumeric, align 8 - %85 = tail call i64 @rb_obj_is_kind_of(i64 noundef %7, i64 noundef %84) #17 - %.not = icmp eq i64 %85, 0 - br i1 %.not, label %86, label %88 +70: ; preds = %RB_FLOAT_TYPE_P.exit48.thread59 + %71 = load i64, ptr @rb_cNumeric, align 8 + %72 = tail call i64 @rb_obj_is_kind_of(i64 noundef %7, i64 noundef %71) #17 + %.not = icmp eq i64 %72, 0 + br i1 %.not, label %73, label %75 -86: ; preds = %83 - %87 = tail call i64 @rb_to_int(i64 noundef %7) #17 - br label %88 +73: ; preds = %70 + %74 = tail call i64 @rb_to_int(i64 noundef %7) #17 + br label %75 -88: ; preds = %86, %83 - %.037 = phi i64 [ %7, %83 ], [ %87, %86 ] - %89 = tail call i64 @rb_equal(i64 noundef %.037, i64 noundef 1) #17 - %.not40 = icmp eq i64 %89, 0 - br i1 %.not40, label %92, label %90 +75: ; preds = %73, %70 + %.037 = phi i64 [ %7, %70 ], [ %74, %73 ] + %76 = tail call i64 @rb_equal(i64 noundef %.037, i64 noundef 1) #17 + %.not40 = icmp eq i64 %76, 0 + br i1 %.not40, label %79, label %77 -90: ; preds = %88 - %91 = tail call i64 @rb_float_new_in_heap(double noundef 0x7FF0000000000000) #17 +77: ; preds = %75 + %78 = tail call i64 @rb_float_new_in_heap(double noundef 0x7FF0000000000000) #17 br label %rb_float_new_inline.exit -92: ; preds = %88 - %93 = tail call i64 @rb_int_minus(i64 noundef %5, i64 noundef %3) #17 - %94 = tail call i64 @rb_int_idiv(i64 noundef %93, i64 noundef %.037) #17 - %95 = tail call fastcc i32 @rb_num_negative_int_p(i64 noundef %94), !range !7 - %.not41 = icmp eq i32 %95, 0 - br i1 %.not41, label %96, label %rb_float_new_inline.exit - -96: ; preds = %92 - %97 = tail call i64 @rb_int_mul(i64 noundef %.037, i64 noundef %94) #17 - %98 = tail call i64 @rb_int_plus(i64 noundef %3, i64 noundef %97) #17 - br i1 %11, label %99, label %101 - -99: ; preds = %96 - %100 = tail call i64 @rb_equal(i64 noundef %98, i64 noundef %5) #17 - %.not43 = icmp eq i64 %100, 0 - br i1 %.not43, label %101, label %rb_float_new_inline.exit - -101: ; preds = %99, %96 - %102 = tail call i64 @rb_int_plus(i64 noundef %94, i64 noundef 3) #17 +79: ; preds = %75 + %80 = tail call i64 @rb_int_minus(i64 noundef %5, i64 noundef %3) #17 + %81 = tail call i64 @rb_int_idiv(i64 noundef %80, i64 noundef %.037) #17 + %82 = tail call fastcc i32 @rb_num_negative_int_p(i64 noundef %81), !range !7 + %.not41 = icmp eq i32 %82, 0 + br i1 %.not41, label %83, label %rb_float_new_inline.exit + +83: ; preds = %79 + %84 = tail call i64 @rb_int_mul(i64 noundef %.037, i64 noundef %81) #17 + %85 = tail call i64 @rb_int_plus(i64 noundef %3, i64 noundef %84) #17 + br i1 %11, label %86, label %88 + +86: ; preds = %83 + %87 = tail call i64 @rb_equal(i64 noundef %85, i64 noundef %5) #17 + %.not43 = icmp eq i64 %87, 0 + br i1 %.not43, label %88, label %rb_float_new_inline.exit + +88: ; preds = %86, %83 + %89 = tail call i64 @rb_int_plus(i64 noundef %81, i64 noundef 3) #17 br label %rb_float_new_inline.exit -rb_float_new_inline.exit: ; preds = %70, %68, %64, %101, %99, %92, %90, %81, %78, %74 - %.0 = phi i64 [ %77, %74 ], [ %79, %78 ], [ %82, %81 ], [ %91, %90 ], [ 1, %92 ], [ %102, %101 ], [ %94, %99 ], [ %71, %70 ], [ %67, %64 ], [ -9223372036854775806, %68 ] +rb_float_new_inline.exit: ; preds = %57, %88, %86, %79, %77, %68, %65, %61 + %.0 = phi i64 [ %64, %61 ], [ %66, %65 ], [ %69, %68 ], [ %78, %77 ], [ 1, %79 ], [ %89, %88 ], [ %81, %86 ], [ %58, %57 ] ret i64 %.0 } diff --git a/bench/ruby/optimized/numeric.ll b/bench/ruby/optimized/numeric.ll index 383dc4fa802..3baca68ea85 100644 --- a/bench/ruby/optimized/numeric.ll +++ b/bench/ruby/optimized/numeric.ll @@ -2899,39 +2899,37 @@ rb_float_value_inline.exit: ; preds = %4, %5, %11 %15 = tail call double @llvm.fabs.f64(double %.0.i) %16 = bitcast double %15 to i64 %cond.i = icmp eq i64 %16, 3458764513820540928 - br i1 %cond.i, label %28, label %17 + br i1 %cond.i, label %26, label %17 17: ; preds = %rb_float_value_inline.exit %18 = lshr i64 %16, 60 %19 = trunc i64 %18 to i32 - %20 = and i32 %19, 7 - %21 = add nsw i32 %20, -3 - %.not7.i = icmp ult i32 %21, 2 - br i1 %.not7.i, label %22, label %26 + %20 = add nsw i32 %19, -3 + %.not7.i = icmp ult i32 %20, 2 + br i1 %.not7.i, label %21, label %24 -22: ; preds = %17 - %23 = tail call noundef i64 @llvm.fshl.i64(i64 %16, i64 %16, i64 3) - %24 = and i64 %23, -4 - %25 = or disjoint i64 %24, 2 +21: ; preds = %17 + %22 = shl i64 %16, 3 + %23 = or disjoint i64 %22, 2 br label %rb_float_new_inline.exit -26: ; preds = %17 - %27 = icmp eq i64 %16, 0 - br i1 %27, label %rb_float_new_inline.exit, label %28 +24: ; preds = %17 + %25 = icmp eq i64 %16, 0 + br i1 %25, label %rb_float_new_inline.exit, label %26 -28: ; preds = %26, %rb_float_value_inline.exit - %29 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @ruby_current_ec) - %30 = load ptr, ptr %29, align 8 - %31 = load i64, ptr @rb_cFloat, align 8 - %32 = tail call i64 @rb_wb_protected_newobj_of(ptr noundef %30, i64 noundef %31, i64 noundef 4, i64 noundef 24) #23 - %33 = inttoptr i64 %32 to ptr - %34 = getelementptr inbounds i8, ptr %33, i64 16 - store double %15, ptr %34, align 8 - tail call void @rb_obj_freeze_inline(i64 noundef %32) #23 +26: ; preds = %24, %rb_float_value_inline.exit + %27 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @ruby_current_ec) + %28 = load ptr, ptr %27, align 8 + %29 = load i64, ptr @rb_cFloat, align 8 + %30 = tail call i64 @rb_wb_protected_newobj_of(ptr noundef %28, i64 noundef %29, i64 noundef 4, i64 noundef 24) #23 + %31 = inttoptr i64 %30 to ptr + %32 = getelementptr inbounds i8, ptr %31, i64 16 + store double %15, ptr %32, align 8 + tail call void @rb_obj_freeze_inline(i64 noundef %30) #23 br label %rb_float_new_inline.exit -rb_float_new_inline.exit: ; preds = %22, %26, %28 - %.0.i1 = phi i64 [ %32, %28 ], [ %25, %22 ], [ -9223372036854775806, %26 ] +rb_float_new_inline.exit: ; preds = %21, %24, %26 + %.0.i1 = phi i64 [ %30, %26 ], [ %23, %21 ], [ -9223372036854775806, %24 ] ret i64 %.0.i1 } @@ -14143,39 +14141,37 @@ rb_float_value_inline.exit.i: ; preds = %12, %6, %5 %16 = tail call double @llvm.fabs.f64(double %.0.i.i) %17 = bitcast double %16 to i64 %cond.i.i = icmp eq i64 %17, 3458764513820540928 - br i1 %cond.i.i, label %29, label %18 + br i1 %cond.i.i, label %27, label %18 18: ; preds = %rb_float_value_inline.exit.i %19 = lshr i64 %17, 60 %20 = trunc i64 %19 to i32 - %21 = and i32 %20, 7 - %22 = add nsw i32 %21, -3 - %.not7.i.i = icmp ult i32 %22, 2 - br i1 %.not7.i.i, label %23, label %27 + %21 = add nsw i32 %20, -3 + %.not7.i.i = icmp ult i32 %21, 2 + br i1 %.not7.i.i, label %22, label %25 -23: ; preds = %18 - %24 = tail call noundef i64 @llvm.fshl.i64(i64 %17, i64 %17, i64 3) - %25 = and i64 %24, -4 - %26 = or disjoint i64 %25, 2 +22: ; preds = %18 + %23 = shl i64 %17, 3 + %24 = or disjoint i64 %23, 2 br label %rb_float_abs.exit -27: ; preds = %18 - %28 = icmp eq i64 %17, 0 - br i1 %28, label %rb_float_abs.exit, label %29 - -29: ; preds = %27, %rb_float_value_inline.exit.i - %30 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @ruby_current_ec) - %31 = load ptr, ptr %30, align 8 - %32 = load i64, ptr @rb_cFloat, align 8 - %33 = tail call i64 @rb_wb_protected_newobj_of(ptr noundef %31, i64 noundef %32, i64 noundef 4, i64 noundef 24) #23 - %34 = inttoptr i64 %33 to ptr - %35 = getelementptr inbounds i8, ptr %34, i64 16 - store double %16, ptr %35, align 8 - tail call void @rb_obj_freeze_inline(i64 noundef %33) #23 +25: ; preds = %18 + %26 = icmp eq i64 %17, 0 + br i1 %26, label %rb_float_abs.exit, label %27 + +27: ; preds = %25, %rb_float_value_inline.exit.i + %28 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @ruby_current_ec) + %29 = load ptr, ptr %28, align 8 + %30 = load i64, ptr @rb_cFloat, align 8 + %31 = tail call i64 @rb_wb_protected_newobj_of(ptr noundef %29, i64 noundef %30, i64 noundef 4, i64 noundef 24) #23 + %32 = inttoptr i64 %31 to ptr + %33 = getelementptr inbounds i8, ptr %32, i64 16 + store double %16, ptr %33, align 8 + tail call void @rb_obj_freeze_inline(i64 noundef %31) #23 br label %rb_float_abs.exit -rb_float_abs.exit: ; preds = %23, %27, %29 - %.0.i1.i = phi i64 [ %33, %29 ], [ %26, %23 ], [ -9223372036854775806, %27 ] +rb_float_abs.exit: ; preds = %22, %25, %27 + %.0.i1.i = phi i64 [ %31, %27 ], [ %24, %22 ], [ -9223372036854775806, %25 ] ret i64 %.0.i1.i } @@ -14209,39 +14205,37 @@ rb_float_value_inline.exit.i: ; preds = %12, %6, %5 %16 = tail call double @llvm.fabs.f64(double %.0.i.i) %17 = bitcast double %16 to i64 %cond.i.i = icmp eq i64 %17, 3458764513820540928 - br i1 %cond.i.i, label %29, label %18 + br i1 %cond.i.i, label %27, label %18 18: ; preds = %rb_float_value_inline.exit.i %19 = lshr i64 %17, 60 %20 = trunc i64 %19 to i32 - %21 = and i32 %20, 7 - %22 = add nsw i32 %21, -3 - %.not7.i.i = icmp ult i32 %22, 2 - br i1 %.not7.i.i, label %23, label %27 + %21 = add nsw i32 %20, -3 + %.not7.i.i = icmp ult i32 %21, 2 + br i1 %.not7.i.i, label %22, label %25 -23: ; preds = %18 - %24 = tail call noundef i64 @llvm.fshl.i64(i64 %17, i64 %17, i64 3) - %25 = and i64 %24, -4 - %26 = or disjoint i64 %25, 2 +22: ; preds = %18 + %23 = shl i64 %17, 3 + %24 = or disjoint i64 %23, 2 br label %rb_float_abs.exit -27: ; preds = %18 - %28 = icmp eq i64 %17, 0 - br i1 %28, label %rb_float_abs.exit, label %29 - -29: ; preds = %27, %rb_float_value_inline.exit.i - %30 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @ruby_current_ec) - %31 = load ptr, ptr %30, align 8 - %32 = load i64, ptr @rb_cFloat, align 8 - %33 = tail call i64 @rb_wb_protected_newobj_of(ptr noundef %31, i64 noundef %32, i64 noundef 4, i64 noundef 24) #23 - %34 = inttoptr i64 %33 to ptr - %35 = getelementptr inbounds i8, ptr %34, i64 16 - store double %16, ptr %35, align 8 - tail call void @rb_obj_freeze_inline(i64 noundef %33) #23 +25: ; preds = %18 + %26 = icmp eq i64 %17, 0 + br i1 %26, label %rb_float_abs.exit, label %27 + +27: ; preds = %25, %rb_float_value_inline.exit.i + %28 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @ruby_current_ec) + %29 = load ptr, ptr %28, align 8 + %30 = load i64, ptr @rb_cFloat, align 8 + %31 = tail call i64 @rb_wb_protected_newobj_of(ptr noundef %29, i64 noundef %30, i64 noundef 4, i64 noundef 24) #23 + %32 = inttoptr i64 %31 to ptr + %33 = getelementptr inbounds i8, ptr %32, i64 16 + store double %16, ptr %33, align 8 + tail call void @rb_obj_freeze_inline(i64 noundef %31) #23 br label %rb_float_abs.exit -rb_float_abs.exit: ; preds = %23, %27, %29 - %.0.i1.i = phi i64 [ %33, %29 ], [ %26, %23 ], [ -9223372036854775806, %27 ] +rb_float_abs.exit: ; preds = %22, %25, %27 + %.0.i1.i = phi i64 [ %31, %27 ], [ %24, %22 ], [ -9223372036854775806, %25 ] ret i64 %.0.i1.i } diff --git a/bench/ruby/optimized/rational.ll b/bench/ruby/optimized/rational.ll index 6b80a996693..6028639b9bb 100644 --- a/bench/ruby/optimized/rational.ll +++ b/bench/ruby/optimized/rational.ll @@ -8827,74 +8827,72 @@ rb_float_value_inline.exit: ; preds = %7, %13 %19 = fneg double %.0.i %20 = bitcast double %19 to i64 %cond.i = icmp eq i64 %20, 3458764513820540928 - br i1 %cond.i, label %32, label %21 + br i1 %cond.i, label %30, label %21 21: ; preds = %18 %22 = lshr i64 %20, 60 %23 = trunc i64 %22 to i32 - %24 = and i32 %23, 7 - %25 = add nsw i32 %24, -3 - %.not7.i = icmp ult i32 %25, 2 - br i1 %.not7.i, label %26, label %30 + %24 = add nsw i32 %23, -3 + %.not7.i = icmp ult i32 %24, 2 + br i1 %.not7.i, label %25, label %28 -26: ; preds = %21 - %27 = tail call noundef i64 @llvm.fshl.i64(i64 %20, i64 %20, i64 3) - %28 = and i64 %27, -4 - %29 = or disjoint i64 %28, 2 +25: ; preds = %21 + %26 = shl i64 %20, 3 + %27 = or disjoint i64 %26, 2 br label %rb_float_new_inline.exit -30: ; preds = %21 - %31 = icmp eq i64 %20, 0 - br i1 %31, label %rb_float_new_inline.exit, label %32 +28: ; preds = %21 + %29 = icmp eq i64 %20, 0 + br i1 %29, label %rb_float_new_inline.exit, label %30 -32: ; preds = %30, %18 - %33 = tail call i64 @rb_float_new_in_heap(double noundef %19) #16 +30: ; preds = %28, %18 + %31 = tail call i64 @rb_float_new_in_heap(double noundef %19) #16 br label %rb_float_new_inline.exit -rb_float_new_inline.exit: ; preds = %6, %32, %30, %26, %rb_float_value_inline.exit - %34 = phi i1 [ false, %rb_float_value_inline.exit ], [ true, %26 ], [ true, %30 ], [ true, %32 ], [ false, %6 ] - %.0 = phi i64 [ %2, %rb_float_value_inline.exit ], [ %29, %26 ], [ -9223372036854775806, %30 ], [ %33, %32 ], [ -9223372036854775806, %6 ] +rb_float_new_inline.exit: ; preds = %6, %30, %28, %25, %rb_float_value_inline.exit + %32 = phi i1 [ false, %rb_float_value_inline.exit ], [ true, %25 ], [ true, %28 ], [ true, %30 ], [ false, %6 ] + %.0 = phi i64 [ %2, %rb_float_value_inline.exit ], [ %27, %25 ], [ -9223372036854775806, %28 ], [ %31, %30 ], [ -9223372036854775806, %6 ] %or.cond.i = icmp ugt i32 %0, 1 - br i1 %or.cond.i, label %35, label %rb_check_arity.exit + br i1 %or.cond.i, label %33, label %rb_check_arity.exit -35: ; preds = %rb_float_new_inline.exit +33: ; preds = %rb_float_new_inline.exit tail call void @rb_error_arity(i32 noundef %0, i32 noundef 0, i32 noundef 1) #21 unreachable rb_check_arity.exit: ; preds = %rb_float_new_inline.exit %.not = icmp eq i32 %0, 0 - br i1 %.not, label %39, label %36 + br i1 %.not, label %37, label %34 -36: ; preds = %rb_check_arity.exit - %37 = load i64, ptr %1, align 8 - %38 = tail call i64 @rb_flt_rationalize_with_prec(i64 noundef %.0, i64 noundef %37) - br label %41 +34: ; preds = %rb_check_arity.exit + %35 = load i64, ptr %1, align 8 + %36 = tail call i64 @rb_flt_rationalize_with_prec(i64 noundef %.0, i64 noundef %35) + br label %39 -39: ; preds = %rb_check_arity.exit - %40 = tail call i64 @rb_flt_rationalize(i64 noundef %.0) - br label %41 +37: ; preds = %rb_check_arity.exit + %38 = tail call i64 @rb_flt_rationalize(i64 noundef %.0) + br label %39 -41: ; preds = %39, %36 - %.011 = phi i64 [ %38, %36 ], [ %40, %39 ] - br i1 %34, label %42, label %RATIONAL_SET_NUM.exit +39: ; preds = %37, %34 + %.011 = phi i64 [ %36, %34 ], [ %38, %37 ] + br i1 %32, label %40, label %RATIONAL_SET_NUM.exit -42: ; preds = %41 - %43 = inttoptr i64 %.011 to ptr - %44 = getelementptr inbounds i8, ptr %43, i64 16 - %45 = load i64, ptr %44, align 8 - %46 = tail call i64 @rb_int_uminus(i64 noundef %45) #16 - store i64 %46, ptr %44, align 8 - %47 = and i64 %46, 7 - %48 = icmp ne i64 %47, 0 - %49 = icmp eq i64 %46, 0 - %50 = or i1 %49, %48 - br i1 %50, label %RATIONAL_SET_NUM.exit, label %51 +40: ; preds = %39 + %41 = inttoptr i64 %.011 to ptr + %42 = getelementptr inbounds i8, ptr %41, i64 16 + %43 = load i64, ptr %42, align 8 + %44 = tail call i64 @rb_int_uminus(i64 noundef %43) #16 + store i64 %44, ptr %42, align 8 + %45 = and i64 %44, 7 + %46 = icmp ne i64 %45, 0 + %47 = icmp eq i64 %44, 0 + %48 = or i1 %47, %46 + br i1 %48, label %RATIONAL_SET_NUM.exit, label %49 -51: ; preds = %42 - tail call void @rb_gc_writebarrier(i64 noundef %.011, i64 noundef %46) #16 +49: ; preds = %40 + tail call void @rb_gc_writebarrier(i64 noundef %.011, i64 noundef %44) #16 br label %RATIONAL_SET_NUM.exit -RATIONAL_SET_NUM.exit: ; preds = %51, %42, %41 +RATIONAL_SET_NUM.exit: ; preds = %49, %40, %39 ret i64 %.011 } diff --git a/bench/ruby/optimized/util.ll b/bench/ruby/optimized/util.ll index 946c9471e73..9032e1917a8 100644 --- a/bench/ruby/optimized/util.ll +++ b/bench/ruby/optimized/util.ll @@ -4220,8 +4220,8 @@ define hidden noundef ptr @ruby_dtoa(double noundef %0, i32 noundef %1, i32 noun %47 = phi i32 [ %42, %37 ], [ %45, %43 ] %48 = uitofp i32 %47 to double %49 = bitcast double %48 to i64 - %50 = and i64 %49, -4294967296 - %.sroa.070.4.insert.shift85 = add i64 %50, -139611588448485376 + %50 = and i64 %49, 9223372032559808512 + %.sroa.070.4.insert.shift85 = add nsw i64 %50, -139611588448485376 %.sroa.070.4.insert.mask86 = and i64 %49, 4294967295 %.sroa.070.4.insert.insert87 = or disjoint i64 %.sroa.070.4.insert.shift85, %.sroa.070.4.insert.mask86 %51 = add i32 %34, -1 @@ -4939,951 +4939,950 @@ i2b.exit656: ; preds = %365, %386 %398 = or i32 %397, %.sroa.088.0.extract.trunc131 %399 = icmp ne i32 %398, 0 %or.cond624.not754 = or i1 %399, %or.cond20.not592 - %400 = and i32 %.sroa.088.4.extract.trunc137, 2145386496 - %.not594 = icmp eq i32 %400, 0 + %.not594 = icmp ult i32 %.sroa.088.4.extract.trunc137, 2097152 %or.cond625 = or i1 %.not594, %or.cond624.not754 %not.or.cond625 = xor i1 %or.cond625, true - %401 = zext i1 %not.or.cond625 to i32 - %.4502 = add i32 %.3501, %401 - %.4490 = add i32 %.3489, %401 + %400 = zext i1 %not.or.cond625 to i32 + %.4502 = add i32 %.3501, %400 + %.4490 = add i32 %.3489, %400 %.not595 = icmp eq i32 %.0497, 0 - br i1 %.not595, label %419, label %402 - -402: ; preds = %395 - %403 = getelementptr inbounds i8, ptr %.0441, i64 24 - %404 = getelementptr inbounds i8, ptr %.0441, i64 20 - %405 = load i32, ptr %404, align 4 - %406 = add i32 %405, -1 - %407 = sext i32 %406 to i64 - %408 = getelementptr [1 x i32], ptr %403, i64 0, i64 %407 - %409 = load i32, ptr %408, align 4 - %.not.i657 = icmp ult i32 %409, 65536 - %410 = shl nuw i32 %409, 16 - %spec.select.i = select i1 %.not.i657, i32 %410, i32 %409 + br i1 %.not595, label %418, label %401 + +401: ; preds = %395 + %402 = getelementptr inbounds i8, ptr %.0441, i64 24 + %403 = getelementptr inbounds i8, ptr %.0441, i64 20 + %404 = load i32, ptr %403, align 4 + %405 = add i32 %404, -1 + %406 = sext i32 %405 to i64 + %407 = getelementptr [1 x i32], ptr %402, i64 0, i64 %406 + %408 = load i32, ptr %407, align 4 + %.not.i657 = icmp ult i32 %408, 65536 + %409 = shl nuw i32 %408, 16 + %spec.select.i = select i1 %.not.i657, i32 %409, i32 %408 %spec.select26.i = select i1 %.not.i657, i32 16, i32 0 %.not21.i = icmp ult i32 %spec.select.i, 16777216 - %411 = or disjoint i32 %spec.select26.i, 8 - %412 = shl nuw i32 %spec.select.i, 8 - %.117.i = select i1 %.not21.i, i32 %412, i32 %spec.select.i - %.1.i = select i1 %.not21.i, i32 %411, i32 %spec.select26.i + %410 = or disjoint i32 %spec.select26.i, 8 + %411 = shl nuw i32 %spec.select.i, 8 + %.117.i = select i1 %.not21.i, i32 %411, i32 %spec.select.i + %.1.i = select i1 %.not21.i, i32 %410, i32 %spec.select26.i %.not22.i = icmp ult i32 %.117.i, 268435456 - %413 = or disjoint i32 %.1.i, 4 - %414 = shl nuw i32 %.117.i, 4 - %.218.i = select i1 %.not22.i, i32 %414, i32 %.117.i - %.2.i = select i1 %.not22.i, i32 %413, i32 %.1.i + %412 = or disjoint i32 %.1.i, 4 + %413 = shl nuw i32 %.117.i, 4 + %.218.i = select i1 %.not22.i, i32 %413, i32 %.117.i + %.2.i = select i1 %.not22.i, i32 %412, i32 %.1.i %.not23.i = icmp ult i32 %.218.i, 1073741824 - %415 = or disjoint i32 %.2.i, 2 - %416 = shl nuw i32 %.218.i, 2 - %.319.i = select i1 %.not23.i, i32 %416, i32 %.218.i - %.3.i = select i1 %.not23.i, i32 %415, i32 %.2.i - %417 = add nuw nsw i32 %.3.i, 1 + %414 = or disjoint i32 %.2.i, 2 + %415 = shl nuw i32 %.218.i, 2 + %.319.i = select i1 %.not23.i, i32 %415, i32 %.218.i + %.3.i = select i1 %.not23.i, i32 %414, i32 %.2.i + %416 = add nuw nsw i32 %.3.i, 1 %.not25.i = icmp ult i32 %.319.i, 1073741824 - %spec.select27.i = select i1 %.not25.i, i32 32, i32 %417 + %spec.select27.i = select i1 %.not25.i, i32 32, i32 %416 %.not2428.i = icmp slt i32 %.319.i, 0 %.020.i = select i1 %.not2428.i, i32 %.3.i, i32 %spec.select27.i - %418 = sub nuw nsw i32 32, %.020.i - br label %419 - -419: ; preds = %395, %402 - %420 = phi i32 [ %418, %402 ], [ 1, %395 ] - %421 = add i32 %420, %.4502 - %422 = and i32 %421, 31 - %.not596 = icmp eq i32 %422, 0 - %423 = sub nuw nsw i32 32, %422 - %spec.select626 = select i1 %.not596, i32 0, i32 %423 - %424 = icmp ugt i32 %spec.select626, 4 - br i1 %424, label %425, label %430 - -425: ; preds = %419 - %426 = add nsw i32 %spec.select626, -4 - %427 = add i32 %426, %.4490 - %428 = add i32 %426, %.0505 - %429 = add i32 %426, %.4502 - br label %436 - -430: ; preds = %419 - %.not597 = icmp eq i32 %spec.select626, 4 - br i1 %.not597, label %436, label %431 - -431: ; preds = %430 - %432 = add nuw nsw i32 %spec.select626, 28 - %433 = add i32 %432, %.4490 - %434 = add i32 %432, %.0505 - %435 = add i32 %432, %.4502 - br label %436 - -436: ; preds = %430, %431, %425 - %.1506 = phi i32 [ %428, %425 ], [ %434, %431 ], [ %.0505, %430 ] - %.5503 = phi i32 [ %429, %425 ], [ %435, %431 ], [ %.4502, %430 ] - %.5491 = phi i32 [ %427, %425 ], [ %433, %431 ], [ %.4490, %430 ] - %437 = icmp sgt i32 %.5491, 0 - br i1 %437, label %438, label %440 - -438: ; preds = %436 - %439 = tail call fastcc ptr @lshift(ptr noundef %.1472, i32 noundef %.5491) - br label %440 - -440: ; preds = %438, %436 - %.2473 = phi ptr [ %439, %438 ], [ %.1472, %436 ] - %441 = icmp sgt i32 %.5503, 0 - br i1 %441, label %442, label %444 - -442: ; preds = %440 - %443 = tail call fastcc ptr @lshift(ptr noundef %.0441, i32 noundef %.5503) - br label %444 - -444: ; preds = %442, %440 - %.1442 = phi ptr [ %443, %442 ], [ %.0441, %440 ] - br i1 %or.cond, label %445, label %cmp.exit.thread - -445: ; preds = %444 - %446 = getelementptr inbounds i8, ptr %.2473, i64 20 - %447 = load i32, ptr %446, align 4 - %448 = getelementptr inbounds i8, ptr %.1442, i64 20 - %449 = load i32, ptr %448, align 4 - %.not.i658 = icmp eq i32 %447, %449 - br i1 %.not.i658, label %450, label %cmp.exit - -450: ; preds = %445 - %451 = getelementptr inbounds i8, ptr %.2473, i64 24 - %452 = sext i32 %447 to i64 - %453 = getelementptr i32, ptr %451, i64 %452 - %454 = getelementptr inbounds i8, ptr %.1442, i64 24 - %455 = getelementptr i32, ptr %454, i64 %452 - br label %456 + %417 = sub nuw nsw i32 32, %.020.i + br label %418 -456: ; preds = %463, %450 - %.018.i = phi ptr [ %455, %450 ], [ %459, %463 ] - %.017.i = phi ptr [ %453, %450 ], [ %457, %463 ] - %457 = getelementptr i8, ptr %.017.i, i64 -4 - %458 = load i32, ptr %457, align 4 - %459 = getelementptr i8, ptr %.018.i, i64 -4 - %460 = load i32, ptr %459, align 4 - %.not23.i659 = icmp eq i32 %458, %460 - br i1 %.not23.i659, label %463, label %461 - -461: ; preds = %456 - %462 = icmp ult i32 %458, %460 - br i1 %462, label %cmp.exit.thread730, label %cmp.exit.thread - -463: ; preds = %456 - %.not24.i = icmp ugt ptr %457, %451 - br i1 %.not24.i, label %456, label %cmp.exit.thread - -cmp.exit: ; preds = %445 - %464 = sub i32 %447, %449 - %465 = icmp slt i32 %464, 0 - br i1 %465, label %cmp.exit.thread730, label %cmp.exit.thread - -cmp.exit.thread730: ; preds = %461, %cmp.exit - %466 = add i32 %.2516, -1 - %467 = tail call fastcc ptr @multadd(ptr noundef %.2473, i32 noundef 10, i32 noundef 0) - br i1 %274, label %cmp.exit.thread, label %468 - -468: ; preds = %cmp.exit.thread730 - %469 = tail call fastcc ptr @multadd(ptr noundef %.4450, i32 noundef 10, i32 noundef 0) +418: ; preds = %395, %401 + %419 = phi i32 [ %417, %401 ], [ 1, %395 ] + %420 = add i32 %419, %.4502 + %421 = and i32 %420, 31 + %.not596 = icmp eq i32 %421, 0 + %422 = sub nuw nsw i32 32, %421 + %spec.select626 = select i1 %.not596, i32 0, i32 %422 + %423 = icmp ugt i32 %spec.select626, 4 + br i1 %423, label %424, label %429 + +424: ; preds = %418 + %425 = add nsw i32 %spec.select626, -4 + %426 = add i32 %425, %.4490 + %427 = add i32 %425, %.0505 + %428 = add i32 %425, %.4502 + br label %435 + +429: ; preds = %418 + %.not597 = icmp eq i32 %spec.select626, 4 + br i1 %.not597, label %435, label %430 + +430: ; preds = %429 + %431 = add nuw nsw i32 %spec.select626, 28 + %432 = add i32 %431, %.4490 + %433 = add i32 %431, %.0505 + %434 = add i32 %431, %.4502 + br label %435 + +435: ; preds = %429, %430, %424 + %.1506 = phi i32 [ %427, %424 ], [ %433, %430 ], [ %.0505, %429 ] + %.5503 = phi i32 [ %428, %424 ], [ %434, %430 ], [ %.4502, %429 ] + %.5491 = phi i32 [ %426, %424 ], [ %432, %430 ], [ %.4490, %429 ] + %436 = icmp sgt i32 %.5491, 0 + br i1 %436, label %437, label %439 + +437: ; preds = %435 + %438 = tail call fastcc ptr @lshift(ptr noundef %.1472, i32 noundef %.5491) + br label %439 + +439: ; preds = %437, %435 + %.2473 = phi ptr [ %438, %437 ], [ %.1472, %435 ] + %440 = icmp sgt i32 %.5503, 0 + br i1 %440, label %441, label %443 + +441: ; preds = %439 + %442 = tail call fastcc ptr @lshift(ptr noundef %.0441, i32 noundef %.5503) + br label %443 + +443: ; preds = %441, %439 + %.1442 = phi ptr [ %442, %441 ], [ %.0441, %439 ] + br i1 %or.cond, label %444, label %cmp.exit.thread + +444: ; preds = %443 + %445 = getelementptr inbounds i8, ptr %.2473, i64 20 + %446 = load i32, ptr %445, align 4 + %447 = getelementptr inbounds i8, ptr %.1442, i64 20 + %448 = load i32, ptr %447, align 4 + %.not.i658 = icmp eq i32 %446, %448 + br i1 %.not.i658, label %449, label %cmp.exit + +449: ; preds = %444 + %450 = getelementptr inbounds i8, ptr %.2473, i64 24 + %451 = sext i32 %446 to i64 + %452 = getelementptr i32, ptr %450, i64 %451 + %453 = getelementptr inbounds i8, ptr %.1442, i64 24 + %454 = getelementptr i32, ptr %453, i64 %451 + br label %455 + +455: ; preds = %462, %449 + %.018.i = phi ptr [ %454, %449 ], [ %458, %462 ] + %.017.i = phi ptr [ %452, %449 ], [ %456, %462 ] + %456 = getelementptr i8, ptr %.017.i, i64 -4 + %457 = load i32, ptr %456, align 4 + %458 = getelementptr i8, ptr %.018.i, i64 -4 + %459 = load i32, ptr %458, align 4 + %.not23.i659 = icmp eq i32 %457, %459 + br i1 %.not23.i659, label %462, label %460 + +460: ; preds = %455 + %461 = icmp ult i32 %457, %459 + br i1 %461, label %cmp.exit.thread730, label %cmp.exit.thread + +462: ; preds = %455 + %.not24.i = icmp ugt ptr %456, %450 + br i1 %.not24.i, label %455, label %cmp.exit.thread + +cmp.exit: ; preds = %444 + %463 = sub i32 %446, %448 + %464 = icmp slt i32 %463, 0 + br i1 %464, label %cmp.exit.thread730, label %cmp.exit.thread + +cmp.exit.thread730: ; preds = %460, %cmp.exit + %465 = add i32 %.2516, -1 + %466 = tail call fastcc ptr @multadd(ptr noundef %.2473, i32 noundef 10, i32 noundef 0) + br i1 %274, label %cmp.exit.thread, label %467 + +467: ; preds = %cmp.exit.thread730 + %468 = tail call fastcc ptr @multadd(ptr noundef %.4450, i32 noundef 10, i32 noundef 0) br label %cmp.exit.thread -cmp.exit.thread: ; preds = %463, %461, %cmp.exit.thread730, %468, %cmp.exit, %444 - %.5544 = phi i32 [ %.0539, %cmp.exit ], [ %.0539, %444 ], [ %.0528, %468 ], [ %.0528, %cmp.exit.thread730 ], [ %.0539, %461 ], [ %.0539, %463 ] - %.7521 = phi i32 [ %.2516, %cmp.exit ], [ %.2516, %444 ], [ %466, %468 ], [ %466, %cmp.exit.thread730 ], [ %.2516, %461 ], [ %.2516, %463 ] - %.3474 = phi ptr [ %.2473, %cmp.exit ], [ %.2473, %444 ], [ %467, %468 ], [ %467, %cmp.exit.thread730 ], [ %.2473, %461 ], [ %.2473, %463 ] - %.6452 = phi ptr [ %.4450, %cmp.exit ], [ %.4450, %444 ], [ %469, %468 ], [ %.4450, %cmp.exit.thread730 ], [ %.4450, %461 ], [ %.4450, %463 ] - %470 = icmp slt i32 %.5544, 1 - br i1 %470, label %471, label %499 - -471: ; preds = %cmp.exit.thread - switch i32 %spec.select, label %499 [ - i32 5, label %472 - i32 3, label %472 +cmp.exit.thread: ; preds = %462, %460, %cmp.exit.thread730, %467, %cmp.exit, %443 + %.5544 = phi i32 [ %.0539, %cmp.exit ], [ %.0539, %443 ], [ %.0528, %467 ], [ %.0528, %cmp.exit.thread730 ], [ %.0539, %460 ], [ %.0539, %462 ] + %.7521 = phi i32 [ %.2516, %cmp.exit ], [ %.2516, %443 ], [ %465, %467 ], [ %465, %cmp.exit.thread730 ], [ %.2516, %460 ], [ %.2516, %462 ] + %.3474 = phi ptr [ %.2473, %cmp.exit ], [ %.2473, %443 ], [ %466, %467 ], [ %466, %cmp.exit.thread730 ], [ %.2473, %460 ], [ %.2473, %462 ] + %.6452 = phi ptr [ %.4450, %cmp.exit ], [ %.4450, %443 ], [ %468, %467 ], [ %.4450, %cmp.exit.thread730 ], [ %.4450, %460 ], [ %.4450, %462 ] + %469 = icmp slt i32 %.5544, 1 + br i1 %469, label %470, label %498 + +470: ; preds = %cmp.exit.thread + switch i32 %spec.select, label %498 [ + i32 5, label %471 + i32 3, label %471 ] -472: ; preds = %471, %471 - %473 = icmp slt i32 %.5544, 0 - br i1 %473, label %cmp.exit666.thread, label %474 - -474: ; preds = %472 - %475 = tail call fastcc ptr @multadd(ptr noundef %.1442, i32 noundef 5, i32 noundef 0) - %476 = getelementptr inbounds i8, ptr %.3474, i64 20 - %477 = load i32, ptr %476, align 4 - %478 = getelementptr inbounds i8, ptr %475, i64 20 - %479 = load i32, ptr %478, align 4 - %.not.i660 = icmp eq i32 %477, %479 - br i1 %.not.i660, label %480, label %cmp.exit666 - -480: ; preds = %474 - %481 = getelementptr inbounds i8, ptr %.3474, i64 24 - %482 = sext i32 %477 to i64 - %483 = getelementptr i32, ptr %481, i64 %482 - %484 = getelementptr inbounds i8, ptr %475, i64 24 - %485 = getelementptr i32, ptr %484, i64 %482 - br label %486 - -486: ; preds = %493, %480 - %.018.i662 = phi ptr [ %485, %480 ], [ %489, %493 ] - %.017.i663 = phi ptr [ %483, %480 ], [ %487, %493 ] - %487 = getelementptr i8, ptr %.017.i663, i64 -4 - %488 = load i32, ptr %487, align 4 - %489 = getelementptr i8, ptr %.018.i662, i64 -4 - %490 = load i32, ptr %489, align 4 - %.not23.i664 = icmp eq i32 %488, %490 - br i1 %.not23.i664, label %493, label %491 - -491: ; preds = %486 - %492 = icmp ult i32 %488, %490 - br i1 %492, label %cmp.exit666.thread, label %cmp.exit666.thread734 - -493: ; preds = %486 - %.not24.i665 = icmp ugt ptr %487, %481 - br i1 %.not24.i665, label %486, label %cmp.exit666.thread - -cmp.exit666: ; preds = %474 - %494 = sub i32 %477, %479 - %495 = icmp slt i32 %494, 1 - br i1 %495, label %cmp.exit666.thread, label %cmp.exit666.thread734 - -cmp.exit666.thread: ; preds = %493, %491, %472, %cmp.exit666, %238, %152 - %.4475 = phi ptr [ %25, %238 ], [ %.3474, %472 ], [ %.3474, %cmp.exit666 ], [ %25, %152 ], [ %.3474, %491 ], [ %.3474, %493 ] - %.7453 = phi ptr [ null, %238 ], [ %.6452, %472 ], [ %.6452, %cmp.exit666 ], [ null, %152 ], [ %.6452, %491 ], [ %.6452, %493 ] - %.2443 = phi ptr [ null, %238 ], [ %.1442, %472 ], [ %475, %cmp.exit666 ], [ null, %152 ], [ %475, %491 ], [ %475, %493 ] - %496 = xor i32 %.0470, -1 +471: ; preds = %470, %470 + %472 = icmp slt i32 %.5544, 0 + br i1 %472, label %cmp.exit666.thread, label %473 + +473: ; preds = %471 + %474 = tail call fastcc ptr @multadd(ptr noundef %.1442, i32 noundef 5, i32 noundef 0) + %475 = getelementptr inbounds i8, ptr %.3474, i64 20 + %476 = load i32, ptr %475, align 4 + %477 = getelementptr inbounds i8, ptr %474, i64 20 + %478 = load i32, ptr %477, align 4 + %.not.i660 = icmp eq i32 %476, %478 + br i1 %.not.i660, label %479, label %cmp.exit666 + +479: ; preds = %473 + %480 = getelementptr inbounds i8, ptr %.3474, i64 24 + %481 = sext i32 %476 to i64 + %482 = getelementptr i32, ptr %480, i64 %481 + %483 = getelementptr inbounds i8, ptr %474, i64 24 + %484 = getelementptr i32, ptr %483, i64 %481 + br label %485 + +485: ; preds = %492, %479 + %.018.i662 = phi ptr [ %484, %479 ], [ %488, %492 ] + %.017.i663 = phi ptr [ %482, %479 ], [ %486, %492 ] + %486 = getelementptr i8, ptr %.017.i663, i64 -4 + %487 = load i32, ptr %486, align 4 + %488 = getelementptr i8, ptr %.018.i662, i64 -4 + %489 = load i32, ptr %488, align 4 + %.not23.i664 = icmp eq i32 %487, %489 + br i1 %.not23.i664, label %492, label %490 + +490: ; preds = %485 + %491 = icmp ult i32 %487, %489 + br i1 %491, label %cmp.exit666.thread, label %cmp.exit666.thread734 + +492: ; preds = %485 + %.not24.i665 = icmp ugt ptr %486, %480 + br i1 %.not24.i665, label %485, label %cmp.exit666.thread + +cmp.exit666: ; preds = %473 + %493 = sub i32 %476, %478 + %494 = icmp slt i32 %493, 1 + br i1 %494, label %cmp.exit666.thread, label %cmp.exit666.thread734 + +cmp.exit666.thread: ; preds = %492, %490, %471, %cmp.exit666, %238, %152 + %.4475 = phi ptr [ %25, %238 ], [ %.3474, %471 ], [ %.3474, %cmp.exit666 ], [ %25, %152 ], [ %.3474, %490 ], [ %.3474, %492 ] + %.7453 = phi ptr [ null, %238 ], [ %.6452, %471 ], [ %.6452, %cmp.exit666 ], [ null, %152 ], [ %.6452, %490 ], [ %.6452, %492 ] + %.2443 = phi ptr [ null, %238 ], [ %.1442, %471 ], [ %474, %cmp.exit666 ], [ null, %152 ], [ %474, %490 ], [ %474, %492 ] + %495 = xor i32 %.0470, -1 br label %.loopexit758 -cmp.exit666.thread734: ; preds = %491, %238, %cmp.exit666, %149 - %.8522 = phi i32 [ %.7521, %cmp.exit666 ], [ %.3517, %149 ], [ %.2516, %238 ], [ %.7521, %491 ] - %.5476 = phi ptr [ %.3474, %cmp.exit666 ], [ %25, %149 ], [ %25, %238 ], [ %.3474, %491 ] - %.8454 = phi ptr [ %.6452, %cmp.exit666 ], [ null, %149 ], [ null, %238 ], [ %.6452, %491 ] - %.3444 = phi ptr [ %475, %cmp.exit666 ], [ null, %149 ], [ null, %238 ], [ %475, %491 ] - %497 = getelementptr i8, ptr %93, i64 1 +cmp.exit666.thread734: ; preds = %490, %238, %cmp.exit666, %149 + %.8522 = phi i32 [ %.7521, %cmp.exit666 ], [ %.3517, %149 ], [ %.2516, %238 ], [ %.7521, %490 ] + %.5476 = phi ptr [ %.3474, %cmp.exit666 ], [ %25, %149 ], [ %25, %238 ], [ %.3474, %490 ] + %.8454 = phi ptr [ %.6452, %cmp.exit666 ], [ null, %149 ], [ null, %238 ], [ %.6452, %490 ] + %.3444 = phi ptr [ %474, %cmp.exit666 ], [ null, %149 ], [ null, %238 ], [ %474, %490 ] + %496 = getelementptr i8, ptr %93, i64 1 store i8 49, ptr %93, align 1 - %498 = add i32 %.8522, 1 + %497 = add i32 %.8522, 1 br label %.loopexit758 -499: ; preds = %471, %cmp.exit.thread - br i1 %274, label %.preheader759.preheader, label %500 +498: ; preds = %470, %cmp.exit.thread + br i1 %274, label %.preheader759.preheader, label %499 -.preheader759.preheader: ; preds = %499 +.preheader759.preheader: ; preds = %498 %smax1024 = tail call i32 @llvm.smax.i32(i32 %.5544, i32 1) br label %.preheader759 -500: ; preds = %499 - %501 = icmp sgt i32 %.1506, 0 - br i1 %501, label %502, label %504 - -502: ; preds = %500 - %503 = tail call fastcc ptr @lshift(ptr noundef %.6452, i32 noundef %.1506) - br label %504 - -504: ; preds = %502, %500 - %.9455 = phi ptr [ %503, %502 ], [ %.6452, %500 ] - br i1 %or.cond625, label %571, label %505 - -505: ; preds = %504 - %506 = getelementptr inbounds i8, ptr %.9455, i64 8 - %507 = load i32, ptr %506, align 8 - %508 = icmp slt i32 %507, 16 - br i1 %508, label %514, label %.thread.thread.i - -.thread.thread.i: ; preds = %505 - %509 = shl nuw i32 1, %507 - %510 = add i32 %509, -1 - %511 = sext i32 %510 to i64 - %512 = shl nsw i64 %511, 2 - %513 = add nsw i64 %512, 39 +499: ; preds = %498 + %500 = icmp sgt i32 %.1506, 0 + br i1 %500, label %501, label %503 + +501: ; preds = %499 + %502 = tail call fastcc ptr @lshift(ptr noundef %.6452, i32 noundef %.1506) + br label %503 + +503: ; preds = %501, %499 + %.9455 = phi ptr [ %502, %501 ], [ %.6452, %499 ] + br i1 %or.cond625, label %570, label %504 + +504: ; preds = %503 + %505 = getelementptr inbounds i8, ptr %.9455, i64 8 + %506 = load i32, ptr %505, align 8 + %507 = icmp slt i32 %506, 16 + br i1 %507, label %513, label %.thread.thread.i + +.thread.thread.i: ; preds = %504 + %508 = shl nuw i32 1, %506 + %509 = add i32 %508, -1 + %510 = sext i32 %509 to i64 + %511 = shl nsw i64 %510, 2 + %512 = add nsw i64 %511, 39 br label %.loopexit.i -514: ; preds = %505 - %515 = sext i32 %507 to i64 - %516 = getelementptr [16 x ptr], ptr @freelist, i64 0, i64 %515 - %517 = load ptr, ptr %516, align 8 - br label %518 +513: ; preds = %504 + %514 = sext i32 %506 to i64 + %515 = getelementptr [16 x ptr], ptr @freelist, i64 0, i64 %514 + %516 = load ptr, ptr %515, align 8 + br label %517 -518: ; preds = %519, %514 - %.0.i668 = phi ptr [ %517, %514 ], [ %523, %519 ] +517: ; preds = %518, %513 + %.0.i668 = phi ptr [ %516, %513 ], [ %522, %518 ] %.not.i669 = icmp eq ptr %.0.i668, null - br i1 %.not.i669, label %.thread.i, label %519 - -519: ; preds = %518 - %520 = ptrtoint ptr %.0.i668 to i64 - %521 = cmpxchg volatile ptr %516, i64 %520, i64 -1 seq_cst seq_cst, align 8 - %522 = extractvalue { i64, i1 } %521, 0 - %523 = inttoptr i64 %522 to ptr - %524 = icmp ne ptr %523, inttoptr (i64 -1 to ptr) - %525 = icmp eq ptr %.0.i668, %523 - %526 = and i1 %524, %525 - br i1 %526, label %527, label %518, !llvm.loop !29 - -527: ; preds = %519 - %528 = load ptr, ptr %.0.i668, align 8 - %529 = ptrtoint ptr %528 to i64 - %530 = cmpxchg volatile ptr %516, i64 -1, i64 %529 seq_cst seq_cst, align 8 + br i1 %.not.i669, label %.thread.i, label %518 + +518: ; preds = %517 + %519 = ptrtoint ptr %.0.i668 to i64 + %520 = cmpxchg volatile ptr %515, i64 %519, i64 -1 seq_cst seq_cst, align 8 + %521 = extractvalue { i64, i1 } %520, 0 + %522 = inttoptr i64 %521 to ptr + %523 = icmp ne ptr %522, inttoptr (i64 -1 to ptr) + %524 = icmp eq ptr %.0.i668, %522 + %525 = and i1 %523, %524 + br i1 %525, label %526, label %517, !llvm.loop !29 + +526: ; preds = %518 + %527 = load ptr, ptr %.0.i668, align 8 + %528 = ptrtoint ptr %527 to i64 + %529 = cmpxchg volatile ptr %515, i64 -1, i64 %528 seq_cst seq_cst, align 8 br label %Balloc.exit -.thread.i: ; preds = %518 - %531 = shl nuw i32 1, %507 - %532 = add i32 %531, -1 - %533 = sext i32 %532 to i64 - %534 = shl nsw i64 %533, 2 - %535 = add nsw i64 %534, 39 - %536 = lshr i64 %535, 3 - %537 = load ptr, ptr @pmem_next, align 8 - br label %538 - -538: ; preds = %544, %.thread.i - %.034.i = phi ptr [ %537, %.thread.i ], [ %549, %544 ] - %539 = ptrtoint ptr %.034.i to i64 - %540 = sub i64 %539, ptrtoint (ptr @private_mem to i64) - %541 = ashr exact i64 %540, 3 - %542 = add nsw i64 %541, %536 - %543 = icmp ult i64 %542, 289 - br i1 %543, label %544, label %.loopexit.i - -544: ; preds = %538 - %545 = getelementptr double, ptr %.034.i, i64 %536 - %546 = ptrtoint ptr %545 to i64 - %547 = cmpxchg volatile ptr @pmem_next, i64 %539, i64 %546 seq_cst seq_cst, align 8 - %548 = extractvalue { i64, i1 } %547, 0 - %549 = inttoptr i64 %548 to ptr - %550 = icmp eq ptr %.034.i, %549 - br i1 %550, label %551, label %538, !llvm.loop !30 - -551: ; preds = %544 - %552 = icmp ne i64 %548, 0 - tail call void @llvm.assume(i1 %552) - br label %557 - -.loopexit.i: ; preds = %538, %.thread.thread.i - %553 = phi i64 [ %513, %.thread.thread.i ], [ %535, %538 ] - %554 = phi i32 [ %509, %.thread.thread.i ], [ %531, %538 ] - %555 = and i64 %553, -8 - %556 = tail call noalias ptr @malloc(i64 noundef %555) #22 - br label %557 - -557: ; preds = %.loopexit.i, %551 - %558 = phi i32 [ %531, %551 ], [ %554, %.loopexit.i ] - %.3.i667 = phi ptr [ %.034.i, %551 ], [ %556, %.loopexit.i ] - %559 = getelementptr inbounds i8, ptr %.3.i667, i64 8 - store i32 %507, ptr %559, align 8 - %560 = getelementptr inbounds i8, ptr %.3.i667, i64 12 - store i32 %558, ptr %560, align 4 +.thread.i: ; preds = %517 + %530 = shl nuw i32 1, %506 + %531 = add i32 %530, -1 + %532 = sext i32 %531 to i64 + %533 = shl nsw i64 %532, 2 + %534 = add nsw i64 %533, 39 + %535 = lshr i64 %534, 3 + %536 = load ptr, ptr @pmem_next, align 8 + br label %537 + +537: ; preds = %543, %.thread.i + %.034.i = phi ptr [ %536, %.thread.i ], [ %548, %543 ] + %538 = ptrtoint ptr %.034.i to i64 + %539 = sub i64 %538, ptrtoint (ptr @private_mem to i64) + %540 = ashr exact i64 %539, 3 + %541 = add nsw i64 %540, %535 + %542 = icmp ult i64 %541, 289 + br i1 %542, label %543, label %.loopexit.i + +543: ; preds = %537 + %544 = getelementptr double, ptr %.034.i, i64 %535 + %545 = ptrtoint ptr %544 to i64 + %546 = cmpxchg volatile ptr @pmem_next, i64 %538, i64 %545 seq_cst seq_cst, align 8 + %547 = extractvalue { i64, i1 } %546, 0 + %548 = inttoptr i64 %547 to ptr + %549 = icmp eq ptr %.034.i, %548 + br i1 %549, label %550, label %537, !llvm.loop !30 + +550: ; preds = %543 + %551 = icmp ne i64 %547, 0 + tail call void @llvm.assume(i1 %551) + br label %556 + +.loopexit.i: ; preds = %537, %.thread.thread.i + %552 = phi i64 [ %512, %.thread.thread.i ], [ %534, %537 ] + %553 = phi i32 [ %508, %.thread.thread.i ], [ %530, %537 ] + %554 = and i64 %552, -8 + %555 = tail call noalias ptr @malloc(i64 noundef %554) #22 + br label %556 + +556: ; preds = %.loopexit.i, %550 + %557 = phi i32 [ %530, %550 ], [ %553, %.loopexit.i ] + %.3.i667 = phi ptr [ %.034.i, %550 ], [ %555, %.loopexit.i ] + %558 = getelementptr inbounds i8, ptr %.3.i667, i64 8 + store i32 %506, ptr %558, align 8 + %559 = getelementptr inbounds i8, ptr %.3.i667, i64 12 + store i32 %557, ptr %559, align 4 br label %Balloc.exit -Balloc.exit: ; preds = %527, %557 - %.4.i = phi ptr [ %.0.i668, %527 ], [ %.3.i667, %557 ] - %561 = getelementptr inbounds i8, ptr %.4.i, i64 20 - store i32 0, ptr %561, align 4 - %562 = getelementptr inbounds i8, ptr %.4.i, i64 16 - store i32 0, ptr %562, align 8 - %563 = getelementptr inbounds i8, ptr %.9455, i64 20 - %564 = load i32, ptr %563, align 4 - %565 = sext i32 %564 to i64 - %566 = shl nsw i64 %565, 2 - %567 = add nsw i64 %566, 8 - %.not.i670 = icmp eq i64 %567, 0 - br i1 %.not.i670, label %ruby_nonempty_memcpy.exit, label %568 - -568: ; preds = %Balloc.exit - %569 = getelementptr inbounds i8, ptr %.9455, i64 16 - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %562, ptr nonnull align 1 %569, i64 %567, i1 false) +Balloc.exit: ; preds = %526, %556 + %.4.i = phi ptr [ %.0.i668, %526 ], [ %.3.i667, %556 ] + %560 = getelementptr inbounds i8, ptr %.4.i, i64 20 + store i32 0, ptr %560, align 4 + %561 = getelementptr inbounds i8, ptr %.4.i, i64 16 + store i32 0, ptr %561, align 8 + %562 = getelementptr inbounds i8, ptr %.9455, i64 20 + %563 = load i32, ptr %562, align 4 + %564 = sext i32 %563 to i64 + %565 = shl nsw i64 %564, 2 + %566 = add nsw i64 %565, 8 + %.not.i670 = icmp eq i64 %566, 0 + br i1 %.not.i670, label %ruby_nonempty_memcpy.exit, label %567 + +567: ; preds = %Balloc.exit + %568 = getelementptr inbounds i8, ptr %.9455, i64 16 + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %561, ptr nonnull align 1 %568, i64 %566, i1 false) br label %ruby_nonempty_memcpy.exit -ruby_nonempty_memcpy.exit: ; preds = %Balloc.exit, %568 - %570 = tail call fastcc ptr @lshift(ptr noundef nonnull %.4.i, i32 noundef 1) - br label %571 - -571: ; preds = %ruby_nonempty_memcpy.exit, %504 - %.10456 = phi ptr [ %570, %ruby_nonempty_memcpy.exit ], [ %.9455, %504 ] - %572 = icmp ne i32 %spec.select, 1 - %573 = and i32 %.sroa.088.0.extract.trunc131, 1 - br label %574 - -574: ; preds = %713, %571 - %.8537 = phi i32 [ 1, %571 ], [ %714, %713 ] - %.6477 = phi ptr [ %.3474, %571 ], [ %708, %713 ] - %.0463 = phi ptr [ %.9455, %571 ], [ %710, %713 ] - %.11457 = phi ptr [ %.10456, %571 ], [ %.12458, %713 ] - %.9 = phi ptr [ %93, %571 ], [ %705, %713 ] - %575 = tail call fastcc i32 @quorem(ptr noundef %.6477, ptr noundef %.1442) - %576 = add i32 %575, 48 - %577 = getelementptr inbounds i8, ptr %.6477, i64 20 - %578 = load i32, ptr %577, align 4 - %579 = getelementptr inbounds i8, ptr %.0463, i64 20 - %580 = load i32, ptr %579, align 4 - %581 = sub i32 %578, %580 - %.not.i671 = icmp eq i32 %581, 0 - br i1 %.not.i671, label %582, label %cmp.exit678 - -582: ; preds = %574 - %583 = getelementptr inbounds i8, ptr %.6477, i64 24 - %584 = sext i32 %580 to i64 - %585 = getelementptr i32, ptr %583, i64 %584 - %586 = getelementptr inbounds i8, ptr %.0463, i64 24 - %587 = getelementptr i32, ptr %586, i64 %584 - br label %588 - -588: ; preds = %596, %582 - %.018.i674 = phi ptr [ %587, %582 ], [ %591, %596 ] - %.017.i675 = phi ptr [ %585, %582 ], [ %589, %596 ] - %589 = getelementptr i8, ptr %.017.i675, i64 -4 - %590 = load i32, ptr %589, align 4 - %591 = getelementptr i8, ptr %.018.i674, i64 -4 - %592 = load i32, ptr %591, align 4 - %.not23.i676 = icmp eq i32 %590, %592 - br i1 %.not23.i676, label %596, label %593 - -593: ; preds = %588 - %594 = icmp ult i32 %590, %592 - %595 = select i1 %594, i32 -1, i32 1 - br label %cmp.exit678 +ruby_nonempty_memcpy.exit: ; preds = %Balloc.exit, %567 + %569 = tail call fastcc ptr @lshift(ptr noundef nonnull %.4.i, i32 noundef 1) + br label %570 + +570: ; preds = %ruby_nonempty_memcpy.exit, %503 + %.10456 = phi ptr [ %569, %ruby_nonempty_memcpy.exit ], [ %.9455, %503 ] + %571 = icmp ne i32 %spec.select, 1 + %572 = and i32 %.sroa.088.0.extract.trunc131, 1 + br label %573 + +573: ; preds = %712, %570 + %.8537 = phi i32 [ 1, %570 ], [ %713, %712 ] + %.6477 = phi ptr [ %.3474, %570 ], [ %707, %712 ] + %.0463 = phi ptr [ %.9455, %570 ], [ %709, %712 ] + %.11457 = phi ptr [ %.10456, %570 ], [ %.12458, %712 ] + %.9 = phi ptr [ %93, %570 ], [ %704, %712 ] + %574 = tail call fastcc i32 @quorem(ptr noundef %.6477, ptr noundef %.1442) + %575 = add i32 %574, 48 + %576 = getelementptr inbounds i8, ptr %.6477, i64 20 + %577 = load i32, ptr %576, align 4 + %578 = getelementptr inbounds i8, ptr %.0463, i64 20 + %579 = load i32, ptr %578, align 4 + %580 = sub i32 %577, %579 + %.not.i671 = icmp eq i32 %580, 0 + br i1 %.not.i671, label %581, label %cmp.exit678 + +581: ; preds = %573 + %582 = getelementptr inbounds i8, ptr %.6477, i64 24 + %583 = sext i32 %579 to i64 + %584 = getelementptr i32, ptr %582, i64 %583 + %585 = getelementptr inbounds i8, ptr %.0463, i64 24 + %586 = getelementptr i32, ptr %585, i64 %583 + br label %587 -596: ; preds = %588 - %.not24.i677 = icmp ugt ptr %589, %583 - br i1 %.not24.i677, label %588, label %cmp.exit678 - -cmp.exit678: ; preds = %596, %574, %593 - %.0.i673 = phi i32 [ %595, %593 ], [ %581, %574 ], [ 0, %596 ] - %597 = tail call fastcc ptr @diff(ptr noundef %.1442, ptr noundef %.11457) - %598 = getelementptr inbounds i8, ptr %597, i64 16 - %599 = load i32, ptr %598, align 8 - %.not602 = icmp eq i32 %599, 0 - br i1 %.not602, label %600, label %cmp.exit686.thread - -600: ; preds = %cmp.exit678 - %601 = load i32, ptr %577, align 4 - %602 = getelementptr inbounds i8, ptr %597, i64 20 - %603 = load i32, ptr %602, align 4 - %604 = sub i32 %601, %603 - %.not.i679 = icmp eq i32 %604, 0 - br i1 %.not.i679, label %605, label %cmp.exit686.thread - -605: ; preds = %600 - %606 = getelementptr inbounds i8, ptr %.6477, i64 24 - %607 = sext i32 %603 to i64 - %608 = getelementptr i32, ptr %606, i64 %607 - %609 = getelementptr inbounds i8, ptr %597, i64 24 - %610 = getelementptr i32, ptr %609, i64 %607 - br label %611 - -611: ; preds = %619, %605 - %.018.i682 = phi ptr [ %610, %605 ], [ %614, %619 ] - %.017.i683 = phi ptr [ %608, %605 ], [ %612, %619 ] - %612 = getelementptr i8, ptr %.017.i683, i64 -4 - %613 = load i32, ptr %612, align 4 - %614 = getelementptr i8, ptr %.018.i682, i64 -4 - %615 = load i32, ptr %614, align 4 - %.not23.i684 = icmp eq i32 %613, %615 - br i1 %.not23.i684, label %619, label %616 +587: ; preds = %595, %581 + %.018.i674 = phi ptr [ %586, %581 ], [ %590, %595 ] + %.017.i675 = phi ptr [ %584, %581 ], [ %588, %595 ] + %588 = getelementptr i8, ptr %.017.i675, i64 -4 + %589 = load i32, ptr %588, align 4 + %590 = getelementptr i8, ptr %.018.i674, i64 -4 + %591 = load i32, ptr %590, align 4 + %.not23.i676 = icmp eq i32 %589, %591 + br i1 %.not23.i676, label %595, label %592 + +592: ; preds = %587 + %593 = icmp ult i32 %589, %591 + %594 = select i1 %593, i32 -1, i32 1 + br label %cmp.exit678 -616: ; preds = %611 - %617 = icmp ult i32 %613, %615 - %618 = select i1 %617, i32 -1, i32 1 +595: ; preds = %587 + %.not24.i677 = icmp ugt ptr %588, %582 + br i1 %.not24.i677, label %587, label %cmp.exit678 + +cmp.exit678: ; preds = %595, %573, %592 + %.0.i673 = phi i32 [ %594, %592 ], [ %580, %573 ], [ 0, %595 ] + %596 = tail call fastcc ptr @diff(ptr noundef %.1442, ptr noundef %.11457) + %597 = getelementptr inbounds i8, ptr %596, i64 16 + %598 = load i32, ptr %597, align 8 + %.not602 = icmp eq i32 %598, 0 + br i1 %.not602, label %599, label %cmp.exit686.thread + +599: ; preds = %cmp.exit678 + %600 = load i32, ptr %576, align 4 + %601 = getelementptr inbounds i8, ptr %596, i64 20 + %602 = load i32, ptr %601, align 4 + %603 = sub i32 %600, %602 + %.not.i679 = icmp eq i32 %603, 0 + br i1 %.not.i679, label %604, label %cmp.exit686.thread + +604: ; preds = %599 + %605 = getelementptr inbounds i8, ptr %.6477, i64 24 + %606 = sext i32 %602 to i64 + %607 = getelementptr i32, ptr %605, i64 %606 + %608 = getelementptr inbounds i8, ptr %596, i64 24 + %609 = getelementptr i32, ptr %608, i64 %606 + br label %610 + +610: ; preds = %618, %604 + %.018.i682 = phi ptr [ %609, %604 ], [ %613, %618 ] + %.017.i683 = phi ptr [ %607, %604 ], [ %611, %618 ] + %611 = getelementptr i8, ptr %.017.i683, i64 -4 + %612 = load i32, ptr %611, align 4 + %613 = getelementptr i8, ptr %.018.i682, i64 -4 + %614 = load i32, ptr %613, align 4 + %.not23.i684 = icmp eq i32 %612, %614 + br i1 %.not23.i684, label %618, label %615 + +615: ; preds = %610 + %616 = icmp ult i32 %612, %614 + %617 = select i1 %616, i32 -1, i32 1 br label %cmp.exit686 -619: ; preds = %611 - %.not24.i685 = icmp ugt ptr %612, %606 - br i1 %.not24.i685, label %611, label %cmp.exit686 +618: ; preds = %610 + %.not24.i685 = icmp ugt ptr %611, %605 + br i1 %.not24.i685, label %610, label %cmp.exit686 -cmp.exit686: ; preds = %619, %616 - %620 = phi i32 [ %618, %616 ], [ 0, %619 ] - %.not.i687 = icmp eq ptr %597, null +cmp.exit686: ; preds = %618, %615 + %619 = phi i32 [ %617, %615 ], [ 0, %618 ] + %.not.i687 = icmp eq ptr %596, null br i1 %.not.i687, label %Bfree.exit691, label %cmp.exit686.thread -cmp.exit686.thread: ; preds = %cmp.exit678, %600, %cmp.exit686 - %621 = phi i32 [ %620, %cmp.exit686 ], [ %604, %600 ], [ 1, %cmp.exit678 ] - %622 = getelementptr inbounds i8, ptr %597, i64 8 - %623 = load i32, ptr %622, align 8 - %624 = icmp sgt i32 %623, 15 - br i1 %624, label %626, label %.preheader.i688 +cmp.exit686.thread: ; preds = %cmp.exit678, %599, %cmp.exit686 + %620 = phi i32 [ %619, %cmp.exit686 ], [ %603, %599 ], [ 1, %cmp.exit678 ] + %621 = getelementptr inbounds i8, ptr %596, i64 8 + %622 = load i32, ptr %621, align 8 + %623 = icmp sgt i32 %622, 15 + br i1 %623, label %625, label %.preheader.i688 .preheader.i688: ; preds = %cmp.exit686.thread - %625 = ptrtoint ptr %597 to i64 - br label %627 + %624 = ptrtoint ptr %596 to i64 + br label %626 -626: ; preds = %cmp.exit686.thread - tail call void @free(ptr noundef nonnull %597) #20 +625: ; preds = %cmp.exit686.thread + tail call void @free(ptr noundef nonnull %596) #20 br label %Bfree.exit691 -627: ; preds = %.backedge1302, %.preheader.i688 - %628 = load i32, ptr %622, align 8 - %629 = sext i32 %628 to i64 - %630 = getelementptr [16 x ptr], ptr @freelist, i64 0, i64 %629 - %631 = cmpxchg volatile ptr %630, i64 0, i64 0 seq_cst seq_cst, align 8 - %632 = extractvalue { i64, i1 } %631, 0 - %633 = inttoptr i64 %632 to ptr - %634 = icmp eq ptr %633, inttoptr (i64 -1 to ptr) - br i1 %634, label %.backedge1302, label %635 - -.backedge1302: ; preds = %627, %635 - br label %627, !llvm.loop !33 - -635: ; preds = %627 - store ptr %633, ptr %597, align 8 - %636 = load i32, ptr %622, align 8 - %637 = sext i32 %636 to i64 - %638 = getelementptr [16 x ptr], ptr @freelist, i64 0, i64 %637 - %639 = cmpxchg volatile ptr %638, i64 %632, i64 %625 seq_cst seq_cst, align 8 - %640 = extractvalue { i64, i1 } %639, 0 - %641 = inttoptr i64 %640 to ptr - %.not12.i689 = icmp eq ptr %641, %633 +626: ; preds = %.backedge1302, %.preheader.i688 + %627 = load i32, ptr %621, align 8 + %628 = sext i32 %627 to i64 + %629 = getelementptr [16 x ptr], ptr @freelist, i64 0, i64 %628 + %630 = cmpxchg volatile ptr %629, i64 0, i64 0 seq_cst seq_cst, align 8 + %631 = extractvalue { i64, i1 } %630, 0 + %632 = inttoptr i64 %631 to ptr + %633 = icmp eq ptr %632, inttoptr (i64 -1 to ptr) + br i1 %633, label %.backedge1302, label %634 + +.backedge1302: ; preds = %626, %634 + br label %626, !llvm.loop !33 + +634: ; preds = %626 + store ptr %632, ptr %596, align 8 + %635 = load i32, ptr %621, align 8 + %636 = sext i32 %635 to i64 + %637 = getelementptr [16 x ptr], ptr @freelist, i64 0, i64 %636 + %638 = cmpxchg volatile ptr %637, i64 %631, i64 %624 seq_cst seq_cst, align 8 + %639 = extractvalue { i64, i1 } %638, 0 + %640 = inttoptr i64 %639 to ptr + %.not12.i689 = icmp eq ptr %640, %632 br i1 %.not12.i689, label %Bfree.exit691, label %.backedge1302 -Bfree.exit691: ; preds = %635, %cmp.exit686, %626 - %642 = phi i32 [ %620, %cmp.exit686 ], [ %621, %626 ], [ %621, %635 ] - %643 = or i32 %642, %573 - %644 = icmp eq i32 %643, 0 - %or.cond627 = and i1 %572, %644 - br i1 %or.cond627, label %645, label %652 - -645: ; preds = %Bfree.exit691 - %646 = icmp eq i32 %576, 57 - br i1 %646, label %697, label %647 - -647: ; preds = %645 - %648 = icmp sgt i32 %.0.i673, 0 - %649 = add i32 %575, 49 - %spec.select628 = select i1 %648, i32 %649, i32 %576 - %650 = trunc i32 %spec.select628 to i8 - %651 = getelementptr i8, ptr %.9, i64 1 - store i8 %650, ptr %.9, align 1 +Bfree.exit691: ; preds = %634, %cmp.exit686, %625 + %641 = phi i32 [ %619, %cmp.exit686 ], [ %620, %625 ], [ %620, %634 ] + %642 = or i32 %641, %572 + %643 = icmp eq i32 %642, 0 + %or.cond627 = and i1 %571, %643 + br i1 %or.cond627, label %644, label %651 + +644: ; preds = %Bfree.exit691 + %645 = icmp eq i32 %575, 57 + br i1 %645, label %696, label %646 + +646: ; preds = %644 + %647 = icmp sgt i32 %.0.i673, 0 + %648 = add i32 %574, 49 + %spec.select628 = select i1 %647, i32 %648, i32 %575 + %649 = trunc i32 %spec.select628 to i8 + %650 = getelementptr i8, ptr %.9, i64 1 + store i8 %649, ptr %.9, align 1 br label %.loopexit758 -652: ; preds = %Bfree.exit691 - %653 = icmp slt i32 %.0.i673, 0 - br i1 %653, label %657, label %654 - -654: ; preds = %652 - %655 = or i32 %.0.i673, %573 - %656 = icmp eq i32 %655, 0 - %or.cond629 = and i1 %572, %656 - br i1 %or.cond629, label %657, label %693 - -657: ; preds = %654, %652 - %658 = getelementptr inbounds i8, ptr %.6477, i64 24 - %659 = load i32, ptr %658, align 8 - %.not606 = icmp eq i32 %659, 0 - br i1 %.not606, label %660, label %664 - -660: ; preds = %657 - %661 = load i32, ptr %577, align 4 - %662 = icmp sgt i32 %661, 1 - %663 = icmp sgt i32 %642, 0 - %or.cond32 = and i1 %663, %662 - br i1 %or.cond32, label %665, label %.thread745 - -664: ; preds = %657 - %.old31 = icmp sgt i32 %642, 0 - br i1 %.old31, label %665, label %.thread745 - -665: ; preds = %660, %664 - %666 = tail call fastcc ptr @lshift(ptr noundef nonnull %.6477, i32 noundef 1) - %667 = getelementptr inbounds i8, ptr %666, i64 20 - %668 = load i32, ptr %667, align 4 - %669 = getelementptr inbounds i8, ptr %.1442, i64 20 - %670 = load i32, ptr %669, align 4 - %.not.i692 = icmp eq i32 %668, %670 - br i1 %.not.i692, label %671, label %cmp.exit699 - -671: ; preds = %665 - %672 = getelementptr inbounds i8, ptr %666, i64 24 - %673 = sext i32 %668 to i64 - %674 = getelementptr i32, ptr %672, i64 %673 - %675 = getelementptr inbounds i8, ptr %.1442, i64 24 - %676 = getelementptr i32, ptr %675, i64 %673 - br label %677 - -677: ; preds = %684, %671 - %.018.i695 = phi ptr [ %676, %671 ], [ %680, %684 ] - %.017.i696 = phi ptr [ %674, %671 ], [ %678, %684 ] - %678 = getelementptr i8, ptr %.017.i696, i64 -4 - %679 = load i32, ptr %678, align 4 - %680 = getelementptr i8, ptr %.018.i695, i64 -4 - %681 = load i32, ptr %680, align 4 - %.not23.i697 = icmp eq i32 %679, %681 - br i1 %.not23.i697, label %684, label %682 - -682: ; preds = %677 - %683 = icmp ult i32 %679, %681 - br i1 %683, label %.thread745, label %cmp.exit699.thread740 - -684: ; preds = %677 - %.not24.i698 = icmp ugt ptr %678, %672 - br i1 %.not24.i698, label %677, label %687 - -cmp.exit699: ; preds = %665 - %685 = sub i32 %668, %670 - %686 = icmp sgt i32 %685, 0 - br i1 %686, label %cmp.exit699.thread740, label %.thread745 - -687: ; preds = %684 - %688 = and i32 %575, 1 - %.not607 = icmp eq i32 %688, 0 +651: ; preds = %Bfree.exit691 + %652 = icmp slt i32 %.0.i673, 0 + br i1 %652, label %656, label %653 + +653: ; preds = %651 + %654 = or i32 %.0.i673, %572 + %655 = icmp eq i32 %654, 0 + %or.cond629 = and i1 %571, %655 + br i1 %or.cond629, label %656, label %692 + +656: ; preds = %653, %651 + %657 = getelementptr inbounds i8, ptr %.6477, i64 24 + %658 = load i32, ptr %657, align 8 + %.not606 = icmp eq i32 %658, 0 + br i1 %.not606, label %659, label %663 + +659: ; preds = %656 + %660 = load i32, ptr %576, align 4 + %661 = icmp sgt i32 %660, 1 + %662 = icmp sgt i32 %641, 0 + %or.cond32 = and i1 %662, %661 + br i1 %or.cond32, label %664, label %.thread745 + +663: ; preds = %656 + %.old31 = icmp sgt i32 %641, 0 + br i1 %.old31, label %664, label %.thread745 + +664: ; preds = %659, %663 + %665 = tail call fastcc ptr @lshift(ptr noundef nonnull %.6477, i32 noundef 1) + %666 = getelementptr inbounds i8, ptr %665, i64 20 + %667 = load i32, ptr %666, align 4 + %668 = getelementptr inbounds i8, ptr %.1442, i64 20 + %669 = load i32, ptr %668, align 4 + %.not.i692 = icmp eq i32 %667, %669 + br i1 %.not.i692, label %670, label %cmp.exit699 + +670: ; preds = %664 + %671 = getelementptr inbounds i8, ptr %665, i64 24 + %672 = sext i32 %667 to i64 + %673 = getelementptr i32, ptr %671, i64 %672 + %674 = getelementptr inbounds i8, ptr %.1442, i64 24 + %675 = getelementptr i32, ptr %674, i64 %672 + br label %676 + +676: ; preds = %683, %670 + %.018.i695 = phi ptr [ %675, %670 ], [ %679, %683 ] + %.017.i696 = phi ptr [ %673, %670 ], [ %677, %683 ] + %677 = getelementptr i8, ptr %.017.i696, i64 -4 + %678 = load i32, ptr %677, align 4 + %679 = getelementptr i8, ptr %.018.i695, i64 -4 + %680 = load i32, ptr %679, align 4 + %.not23.i697 = icmp eq i32 %678, %680 + br i1 %.not23.i697, label %683, label %681 + +681: ; preds = %676 + %682 = icmp ult i32 %678, %680 + br i1 %682, label %.thread745, label %cmp.exit699.thread740 + +683: ; preds = %676 + %.not24.i698 = icmp ugt ptr %677, %671 + br i1 %.not24.i698, label %676, label %686 + +cmp.exit699: ; preds = %664 + %684 = sub i32 %667, %669 + %685 = icmp sgt i32 %684, 0 + br i1 %685, label %cmp.exit699.thread740, label %.thread745 + +686: ; preds = %683 + %687 = and i32 %574, 1 + %.not607 = icmp eq i32 %687, 0 br i1 %.not607, label %.thread745, label %cmp.exit699.thread740 -cmp.exit699.thread740: ; preds = %682, %687, %cmp.exit699 - %689 = add i32 %575, 49 - %690 = icmp eq i32 %576, 57 - br i1 %690, label %697, label %.thread745 - -.thread745: ; preds = %cmp.exit699, %682, %664, %cmp.exit699.thread740, %687, %660 - %.1512 = phi i32 [ %689, %cmp.exit699.thread740 ], [ %576, %687 ], [ %576, %664 ], [ %576, %660 ], [ %576, %682 ], [ %576, %cmp.exit699 ] - %.7478 = phi ptr [ %666, %cmp.exit699.thread740 ], [ %666, %687 ], [ %.6477, %664 ], [ %.6477, %660 ], [ %666, %682 ], [ %666, %cmp.exit699 ] - %691 = trunc i32 %.1512 to i8 - %692 = getelementptr i8, ptr %.9, i64 1 - store i8 %691, ptr %.9, align 1 +cmp.exit699.thread740: ; preds = %681, %686, %cmp.exit699 + %688 = add i32 %574, 49 + %689 = icmp eq i32 %575, 57 + br i1 %689, label %696, label %.thread745 + +.thread745: ; preds = %cmp.exit699, %681, %663, %cmp.exit699.thread740, %686, %659 + %.1512 = phi i32 [ %688, %cmp.exit699.thread740 ], [ %575, %686 ], [ %575, %663 ], [ %575, %659 ], [ %575, %681 ], [ %575, %cmp.exit699 ] + %.7478 = phi ptr [ %665, %cmp.exit699.thread740 ], [ %665, %686 ], [ %.6477, %663 ], [ %.6477, %659 ], [ %665, %681 ], [ %665, %cmp.exit699 ] + %690 = trunc i32 %.1512 to i8 + %691 = getelementptr i8, ptr %.9, i64 1 + store i8 %690, ptr %.9, align 1 br label %.loopexit758 -693: ; preds = %654 - %694 = icmp sgt i32 %642, 0 - br i1 %694, label %695, label %703 +692: ; preds = %653 + %693 = icmp sgt i32 %641, 0 + br i1 %693, label %694, label %702 -695: ; preds = %693 - %696 = icmp eq i32 %576, 57 - br i1 %696, label %697, label %699 +694: ; preds = %692 + %695 = icmp eq i32 %575, 57 + br i1 %695, label %696, label %698 -697: ; preds = %695, %cmp.exit699.thread740, %645 - %.8479 = phi ptr [ %666, %cmp.exit699.thread740 ], [ %.6477, %695 ], [ %.6477, %645 ] - %698 = getelementptr i8, ptr %.9, i64 1 +696: ; preds = %694, %cmp.exit699.thread740, %644 + %.8479 = phi ptr [ %665, %cmp.exit699.thread740 ], [ %.6477, %694 ], [ %.6477, %644 ] + %697 = getelementptr i8, ptr %.9, i64 1 store i8 57, ptr %.9, align 1 br label %cmp.exit707.thread752 -699: ; preds = %695 - %700 = trunc i32 %575 to i8 - %701 = add i8 %700, 49 - %702 = getelementptr i8, ptr %.9, i64 1 - store i8 %701, ptr %.9, align 1 +698: ; preds = %694 + %699 = trunc i32 %574 to i8 + %700 = add i8 %699, 49 + %701 = getelementptr i8, ptr %.9, i64 1 + store i8 %700, ptr %.9, align 1 br label %.loopexit758 -703: ; preds = %693 - %704 = trunc i32 %576 to i8 - %705 = getelementptr i8, ptr %.9, i64 1 - store i8 %704, ptr %.9, align 1 - %706 = icmp eq i32 %.8537, %.5544 - br i1 %706, label %.loopexit761, label %707 - -707: ; preds = %703 - %708 = tail call fastcc ptr @multadd(ptr noundef %.6477, i32 noundef 10, i32 noundef 0) - %709 = icmp eq ptr %.0463, %.11457 - %710 = tail call fastcc ptr @multadd(ptr noundef %.0463, i32 noundef 10, i32 noundef 0) - br i1 %709, label %713, label %711 - -711: ; preds = %707 - %712 = tail call fastcc ptr @multadd(ptr noundef %.11457, i32 noundef 10, i32 noundef 0) - br label %713 - -713: ; preds = %707, %711 - %.12458 = phi ptr [ %712, %711 ], [ %710, %707 ] - %714 = add i32 %.8537, 1 - br label %574 - -.preheader759: ; preds = %.preheader759.preheader, %726 - %.9538 = phi i32 [ %728, %726 ], [ 1, %.preheader759.preheader ] - %.9480 = phi ptr [ %727, %726 ], [ %.3474, %.preheader759.preheader ] - %.10 = phi ptr [ %718, %726 ], [ %93, %.preheader759.preheader ] - %715 = tail call fastcc i32 @quorem(ptr noundef %.9480, ptr noundef %.1442) - %716 = add i32 %715, 48 - %717 = trunc i32 %716 to i8 - %718 = getelementptr i8, ptr %.10, i64 1 - store i8 %717, ptr %.10, align 1 - %719 = getelementptr inbounds i8, ptr %.9480, i64 24 - %720 = load i32, ptr %719, align 8 - %.not599 = icmp eq i32 %720, 0 - br i1 %.not599, label %721, label %725 - -721: ; preds = %.preheader759 - %722 = getelementptr inbounds i8, ptr %.9480, i64 20 - %723 = load i32, ptr %722, align 4 - %724 = icmp slt i32 %723, 2 - br i1 %724, label %.loopexit758, label %725 - -725: ; preds = %721, %.preheader759 +702: ; preds = %692 + %703 = trunc i32 %575 to i8 + %704 = getelementptr i8, ptr %.9, i64 1 + store i8 %703, ptr %.9, align 1 + %705 = icmp eq i32 %.8537, %.5544 + br i1 %705, label %.loopexit761, label %706 + +706: ; preds = %702 + %707 = tail call fastcc ptr @multadd(ptr noundef %.6477, i32 noundef 10, i32 noundef 0) + %708 = icmp eq ptr %.0463, %.11457 + %709 = tail call fastcc ptr @multadd(ptr noundef %.0463, i32 noundef 10, i32 noundef 0) + br i1 %708, label %712, label %710 + +710: ; preds = %706 + %711 = tail call fastcc ptr @multadd(ptr noundef %.11457, i32 noundef 10, i32 noundef 0) + br label %712 + +712: ; preds = %706, %710 + %.12458 = phi ptr [ %711, %710 ], [ %709, %706 ] + %713 = add i32 %.8537, 1 + br label %573 + +.preheader759: ; preds = %.preheader759.preheader, %725 + %.9538 = phi i32 [ %727, %725 ], [ 1, %.preheader759.preheader ] + %.9480 = phi ptr [ %726, %725 ], [ %.3474, %.preheader759.preheader ] + %.10 = phi ptr [ %717, %725 ], [ %93, %.preheader759.preheader ] + %714 = tail call fastcc i32 @quorem(ptr noundef %.9480, ptr noundef %.1442) + %715 = add i32 %714, 48 + %716 = trunc i32 %715 to i8 + %717 = getelementptr i8, ptr %.10, i64 1 + store i8 %716, ptr %.10, align 1 + %718 = getelementptr inbounds i8, ptr %.9480, i64 24 + %719 = load i32, ptr %718, align 8 + %.not599 = icmp eq i32 %719, 0 + br i1 %.not599, label %720, label %724 + +720: ; preds = %.preheader759 + %721 = getelementptr inbounds i8, ptr %.9480, i64 20 + %722 = load i32, ptr %721, align 4 + %723 = icmp slt i32 %722, 2 + br i1 %723, label %.loopexit758, label %724 + +724: ; preds = %720, %.preheader759 %exitcond1025.not = icmp eq i32 %.9538, %smax1024 - br i1 %exitcond1025.not, label %.loopexit761, label %726 + br i1 %exitcond1025.not, label %.loopexit761, label %725 -726: ; preds = %725 - %727 = tail call fastcc ptr @multadd(ptr noundef nonnull %.9480, i32 noundef 10, i32 noundef 0) - %728 = add nuw i32 %.9538, 1 +725: ; preds = %724 + %726 = tail call fastcc ptr @multadd(ptr noundef nonnull %.9480, i32 noundef 10, i32 noundef 0) + %727 = add nuw i32 %.9538, 1 br label %.preheader759 -.loopexit761: ; preds = %703, %725 - %.2513 = phi i32 [ %716, %725 ], [ %576, %703 ] - %.10481 = phi ptr [ %.9480, %725 ], [ %.6477, %703 ] - %.2465 = phi ptr [ null, %725 ], [ %.0463, %703 ] - %.13459 = phi ptr [ %.6452, %725 ], [ %.11457, %703 ] - %.11 = phi ptr [ %718, %725 ], [ %705, %703 ] - %729 = tail call fastcc ptr @lshift(ptr noundef %.10481, i32 noundef 1) - %730 = getelementptr inbounds i8, ptr %729, i64 20 - %731 = load i32, ptr %730, align 4 - %732 = getelementptr inbounds i8, ptr %.1442, i64 20 - %733 = load i32, ptr %732, align 4 - %.not.i700 = icmp eq i32 %731, %733 - br i1 %.not.i700, label %734, label %cmp.exit707 - -734: ; preds = %.loopexit761 - %735 = getelementptr inbounds i8, ptr %729, i64 24 - %736 = sext i32 %731 to i64 - %737 = getelementptr i32, ptr %735, i64 %736 - %738 = getelementptr inbounds i8, ptr %.1442, i64 24 - %739 = getelementptr i32, ptr %738, i64 %736 - br label %740 - -740: ; preds = %747, %734 - %.018.i703 = phi ptr [ %739, %734 ], [ %743, %747 ] - %.017.i704 = phi ptr [ %737, %734 ], [ %741, %747 ] - %741 = getelementptr i8, ptr %.017.i704, i64 -4 - %742 = load i32, ptr %741, align 4 - %743 = getelementptr i8, ptr %.018.i703, i64 -4 - %744 = load i32, ptr %743, align 4 - %.not23.i705 = icmp eq i32 %742, %744 - br i1 %.not23.i705, label %747, label %745 - -745: ; preds = %740 - %746 = icmp ult i32 %742, %744 - br i1 %746, label %.preheader757.preheader, label %cmp.exit707.thread752 - -747: ; preds = %740 - %.not24.i706 = icmp ugt ptr %741, %735 - br i1 %.not24.i706, label %740, label %cmp.exit707.thread +.loopexit761: ; preds = %702, %724 + %.2513 = phi i32 [ %715, %724 ], [ %575, %702 ] + %.10481 = phi ptr [ %.9480, %724 ], [ %.6477, %702 ] + %.2465 = phi ptr [ null, %724 ], [ %.0463, %702 ] + %.13459 = phi ptr [ %.6452, %724 ], [ %.11457, %702 ] + %.11 = phi ptr [ %717, %724 ], [ %704, %702 ] + %728 = tail call fastcc ptr @lshift(ptr noundef %.10481, i32 noundef 1) + %729 = getelementptr inbounds i8, ptr %728, i64 20 + %730 = load i32, ptr %729, align 4 + %731 = getelementptr inbounds i8, ptr %.1442, i64 20 + %732 = load i32, ptr %731, align 4 + %.not.i700 = icmp eq i32 %730, %732 + br i1 %.not.i700, label %733, label %cmp.exit707 + +733: ; preds = %.loopexit761 + %734 = getelementptr inbounds i8, ptr %728, i64 24 + %735 = sext i32 %730 to i64 + %736 = getelementptr i32, ptr %734, i64 %735 + %737 = getelementptr inbounds i8, ptr %.1442, i64 24 + %738 = getelementptr i32, ptr %737, i64 %735 + br label %739 + +739: ; preds = %746, %733 + %.018.i703 = phi ptr [ %738, %733 ], [ %742, %746 ] + %.017.i704 = phi ptr [ %736, %733 ], [ %740, %746 ] + %740 = getelementptr i8, ptr %.017.i704, i64 -4 + %741 = load i32, ptr %740, align 4 + %742 = getelementptr i8, ptr %.018.i703, i64 -4 + %743 = load i32, ptr %742, align 4 + %.not23.i705 = icmp eq i32 %741, %743 + br i1 %.not23.i705, label %746, label %744 + +744: ; preds = %739 + %745 = icmp ult i32 %741, %743 + br i1 %745, label %.preheader757.preheader, label %cmp.exit707.thread752 + +746: ; preds = %739 + %.not24.i706 = icmp ugt ptr %740, %734 + br i1 %.not24.i706, label %739, label %cmp.exit707.thread cmp.exit707: ; preds = %.loopexit761 - %748 = sub i32 %731, %733 - %749 = icmp sgt i32 %748, 0 - br i1 %749, label %cmp.exit707.thread752, label %.preheader757.preheader + %747 = sub i32 %730, %732 + %748 = icmp sgt i32 %747, 0 + br i1 %748, label %cmp.exit707.thread752, label %.preheader757.preheader -cmp.exit707.thread: ; preds = %747 - %750 = and i32 %.2513, 1 - %.not605 = icmp eq i32 %750, 0 +cmp.exit707.thread: ; preds = %746 + %749 = and i32 %.2513, 1 + %.not605 = icmp eq i32 %749, 0 br i1 %.not605, label %.preheader757.preheader, label %cmp.exit707.thread752 -.preheader757.preheader: ; preds = %745, %cmp.exit707, %cmp.exit707.thread +.preheader757.preheader: ; preds = %744, %cmp.exit707, %cmp.exit707.thread br label %.preheader757 -cmp.exit707.thread752: ; preds = %745, %cmp.exit707.thread, %cmp.exit707, %697 - %.11482 = phi ptr [ %.8479, %697 ], [ %729, %cmp.exit707 ], [ %729, %cmp.exit707.thread ], [ %729, %745 ] - %.3466 = phi ptr [ %.0463, %697 ], [ %.2465, %cmp.exit707 ], [ %.2465, %cmp.exit707.thread ], [ %.2465, %745 ] - %.14460 = phi ptr [ %.11457, %697 ], [ %.13459, %cmp.exit707 ], [ %.13459, %cmp.exit707.thread ], [ %.13459, %745 ] - %.12 = phi ptr [ %698, %697 ], [ %.11, %cmp.exit707 ], [ %.11, %cmp.exit707.thread ], [ %.11, %745 ] +cmp.exit707.thread752: ; preds = %744, %cmp.exit707.thread, %cmp.exit707, %696 + %.11482 = phi ptr [ %.8479, %696 ], [ %728, %cmp.exit707 ], [ %728, %cmp.exit707.thread ], [ %728, %744 ] + %.3466 = phi ptr [ %.0463, %696 ], [ %.2465, %cmp.exit707 ], [ %.2465, %cmp.exit707.thread ], [ %.2465, %744 ] + %.14460 = phi ptr [ %.11457, %696 ], [ %.13459, %cmp.exit707 ], [ %.13459, %cmp.exit707.thread ], [ %.13459, %744 ] + %.12 = phi ptr [ %697, %696 ], [ %.11, %cmp.exit707 ], [ %.11, %cmp.exit707.thread ], [ %.11, %744 ] %.121026 = ptrtoint ptr %.12 to i64 - %751 = sub i64 %94, %.121026 - %scevgep = getelementptr i8, ptr %.12, i64 %751 - br label %752 - -752: ; preds = %756, %cmp.exit707.thread752 - %.13 = phi ptr [ %.12, %cmp.exit707.thread752 ], [ %753, %756 ] - %753 = getelementptr i8, ptr %.13, i64 -1 - %754 = load i8, ptr %753, align 1 - %755 = icmp eq i8 %754, 57 - br i1 %755, label %756, label %760 - -756: ; preds = %752 - %757 = icmp eq ptr %753, %93 - br i1 %757, label %758, label %752, !llvm.loop !47 - -758: ; preds = %756 - %759 = add i32 %.7521, 1 + %750 = sub i64 %94, %.121026 + %scevgep = getelementptr i8, ptr %.12, i64 %750 + br label %751 + +751: ; preds = %755, %cmp.exit707.thread752 + %.13 = phi ptr [ %.12, %cmp.exit707.thread752 ], [ %752, %755 ] + %752 = getelementptr i8, ptr %.13, i64 -1 + %753 = load i8, ptr %752, align 1 + %754 = icmp eq i8 %753, 57 + br i1 %754, label %755, label %759 + +755: ; preds = %751 + %756 = icmp eq ptr %752, %93 + br i1 %756, label %757, label %751, !llvm.loop !47 + +757: ; preds = %755 + %758 = add i32 %.7521, 1 store i8 49, ptr %scevgep, align 1 br label %.loopexit758 -760: ; preds = %752 - %761 = and i8 %754, 1 - %.not609 = icmp eq i8 %761, 0 +759: ; preds = %751 + %760 = and i8 %753, 1 + %.not609 = icmp eq i8 %760, 0 %or.cond632 = and i1 %.not608, %.not609 - br i1 %or.cond632, label %.loopexit758, label %762 + br i1 %or.cond632, label %.loopexit758, label %761 -762: ; preds = %760 - %763 = add i8 %754, 1 - store i8 %763, ptr %753, align 1 +761: ; preds = %759 + %762 = add i8 %753, 1 + store i8 %762, ptr %752, align 1 br label %.loopexit758 .preheader757: ; preds = %.preheader757.preheader, %.preheader757 - %.14 = phi ptr [ %764, %.preheader757 ], [ %.11, %.preheader757.preheader ] - %764 = getelementptr i8, ptr %.14, i64 -1 - %765 = load i8, ptr %764, align 1 - %766 = icmp eq i8 %765, 48 - br i1 %766, label %.preheader757, label %.loopexit758, !llvm.loop !48 - -.loopexit758: ; preds = %721, %.preheader757, %762, %760, %758, %699, %.thread745, %647, %cmp.exit666.thread734, %cmp.exit666.thread - %.9523 = phi i32 [ %496, %cmp.exit666.thread ], [ %498, %cmp.exit666.thread734 ], [ %759, %758 ], [ %.7521, %.thread745 ], [ %.7521, %699 ], [ %.7521, %647 ], [ %.7521, %760 ], [ %.7521, %762 ], [ %.7521, %.preheader757 ], [ %.7521, %721 ] - %.13484 = phi ptr [ %.4475, %cmp.exit666.thread ], [ %.5476, %cmp.exit666.thread734 ], [ %.11482, %758 ], [ %.7478, %.thread745 ], [ %.6477, %699 ], [ %.6477, %647 ], [ %.11482, %760 ], [ %.11482, %762 ], [ %729, %.preheader757 ], [ %.9480, %721 ] - %.5468 = phi ptr [ null, %cmp.exit666.thread ], [ null, %cmp.exit666.thread734 ], [ %.3466, %758 ], [ %.0463, %.thread745 ], [ %.0463, %699 ], [ %.0463, %647 ], [ %.3466, %760 ], [ %.3466, %762 ], [ %.2465, %.preheader757 ], [ null, %721 ] - %.16462 = phi ptr [ %.7453, %cmp.exit666.thread ], [ %.8454, %cmp.exit666.thread734 ], [ %.14460, %758 ], [ %.11457, %.thread745 ], [ %.11457, %699 ], [ %.11457, %647 ], [ %.14460, %760 ], [ %.14460, %762 ], [ %.13459, %.preheader757 ], [ %.6452, %721 ] - %.4445 = phi ptr [ %.2443, %cmp.exit666.thread ], [ %.3444, %cmp.exit666.thread734 ], [ %.1442, %758 ], [ %.1442, %.thread745 ], [ %.1442, %699 ], [ %.1442, %647 ], [ %.1442, %760 ], [ %.1442, %762 ], [ %.1442, %.preheader757 ], [ %.1442, %721 ] - %.16 = phi ptr [ %93, %cmp.exit666.thread ], [ %497, %cmp.exit666.thread734 ], [ %.13, %758 ], [ %692, %.thread745 ], [ %702, %699 ], [ %651, %647 ], [ %.13, %760 ], [ %.13, %762 ], [ %.14, %.preheader757 ], [ %718, %721 ] + %.14 = phi ptr [ %763, %.preheader757 ], [ %.11, %.preheader757.preheader ] + %763 = getelementptr i8, ptr %.14, i64 -1 + %764 = load i8, ptr %763, align 1 + %765 = icmp eq i8 %764, 48 + br i1 %765, label %.preheader757, label %.loopexit758, !llvm.loop !48 + +.loopexit758: ; preds = %720, %.preheader757, %761, %759, %757, %698, %.thread745, %646, %cmp.exit666.thread734, %cmp.exit666.thread + %.9523 = phi i32 [ %495, %cmp.exit666.thread ], [ %497, %cmp.exit666.thread734 ], [ %758, %757 ], [ %.7521, %.thread745 ], [ %.7521, %698 ], [ %.7521, %646 ], [ %.7521, %759 ], [ %.7521, %761 ], [ %.7521, %.preheader757 ], [ %.7521, %720 ] + %.13484 = phi ptr [ %.4475, %cmp.exit666.thread ], [ %.5476, %cmp.exit666.thread734 ], [ %.11482, %757 ], [ %.7478, %.thread745 ], [ %.6477, %698 ], [ %.6477, %646 ], [ %.11482, %759 ], [ %.11482, %761 ], [ %728, %.preheader757 ], [ %.9480, %720 ] + %.5468 = phi ptr [ null, %cmp.exit666.thread ], [ null, %cmp.exit666.thread734 ], [ %.3466, %757 ], [ %.0463, %.thread745 ], [ %.0463, %698 ], [ %.0463, %646 ], [ %.3466, %759 ], [ %.3466, %761 ], [ %.2465, %.preheader757 ], [ null, %720 ] + %.16462 = phi ptr [ %.7453, %cmp.exit666.thread ], [ %.8454, %cmp.exit666.thread734 ], [ %.14460, %757 ], [ %.11457, %.thread745 ], [ %.11457, %698 ], [ %.11457, %646 ], [ %.14460, %759 ], [ %.14460, %761 ], [ %.13459, %.preheader757 ], [ %.6452, %720 ] + %.4445 = phi ptr [ %.2443, %cmp.exit666.thread ], [ %.3444, %cmp.exit666.thread734 ], [ %.1442, %757 ], [ %.1442, %.thread745 ], [ %.1442, %698 ], [ %.1442, %646 ], [ %.1442, %759 ], [ %.1442, %761 ], [ %.1442, %.preheader757 ], [ %.1442, %720 ] + %.16 = phi ptr [ %93, %cmp.exit666.thread ], [ %496, %cmp.exit666.thread734 ], [ %.13, %757 ], [ %691, %.thread745 ], [ %701, %698 ], [ %650, %646 ], [ %.13, %759 ], [ %.13, %761 ], [ %.14, %.preheader757 ], [ %717, %720 ] %.not.i708 = icmp eq ptr %.4445, null - br i1 %.not.i708, label %Bfree.exit712, label %767 + br i1 %.not.i708, label %Bfree.exit712, label %766 -767: ; preds = %.loopexit758 - %768 = getelementptr inbounds i8, ptr %.4445, i64 8 - %769 = load i32, ptr %768, align 8 - %770 = icmp sgt i32 %769, 15 - br i1 %770, label %772, label %.preheader.i709 +766: ; preds = %.loopexit758 + %767 = getelementptr inbounds i8, ptr %.4445, i64 8 + %768 = load i32, ptr %767, align 8 + %769 = icmp sgt i32 %768, 15 + br i1 %769, label %771, label %.preheader.i709 -.preheader.i709: ; preds = %767 - %771 = ptrtoint ptr %.4445 to i64 - br label %773 +.preheader.i709: ; preds = %766 + %770 = ptrtoint ptr %.4445 to i64 + br label %772 -772: ; preds = %767 +771: ; preds = %766 tail call void @free(ptr noundef nonnull %.4445) #20 br label %Bfree.exit712 -773: ; preds = %.backedge1270, %.preheader.i709 - %774 = load i32, ptr %768, align 8 - %775 = sext i32 %774 to i64 - %776 = getelementptr [16 x ptr], ptr @freelist, i64 0, i64 %775 - %777 = cmpxchg volatile ptr %776, i64 0, i64 0 seq_cst seq_cst, align 8 - %778 = extractvalue { i64, i1 } %777, 0 - %779 = inttoptr i64 %778 to ptr - %780 = icmp eq ptr %779, inttoptr (i64 -1 to ptr) - br i1 %780, label %.backedge1270, label %781 - -.backedge1270: ; preds = %773, %781 - br label %773, !llvm.loop !33 - -781: ; preds = %773 - store ptr %779, ptr %.4445, align 8 - %782 = load i32, ptr %768, align 8 - %783 = sext i32 %782 to i64 - %784 = getelementptr [16 x ptr], ptr @freelist, i64 0, i64 %783 - %785 = cmpxchg volatile ptr %784, i64 %778, i64 %771 seq_cst seq_cst, align 8 - %786 = extractvalue { i64, i1 } %785, 0 - %787 = inttoptr i64 %786 to ptr - %.not12.i710 = icmp eq ptr %787, %779 +772: ; preds = %.backedge1270, %.preheader.i709 + %773 = load i32, ptr %767, align 8 + %774 = sext i32 %773 to i64 + %775 = getelementptr [16 x ptr], ptr @freelist, i64 0, i64 %774 + %776 = cmpxchg volatile ptr %775, i64 0, i64 0 seq_cst seq_cst, align 8 + %777 = extractvalue { i64, i1 } %776, 0 + %778 = inttoptr i64 %777 to ptr + %779 = icmp eq ptr %778, inttoptr (i64 -1 to ptr) + br i1 %779, label %.backedge1270, label %780 + +.backedge1270: ; preds = %772, %780 + br label %772, !llvm.loop !33 + +780: ; preds = %772 + store ptr %778, ptr %.4445, align 8 + %781 = load i32, ptr %767, align 8 + %782 = sext i32 %781 to i64 + %783 = getelementptr [16 x ptr], ptr @freelist, i64 0, i64 %782 + %784 = cmpxchg volatile ptr %783, i64 %777, i64 %770 seq_cst seq_cst, align 8 + %785 = extractvalue { i64, i1 } %784, 0 + %786 = inttoptr i64 %785 to ptr + %.not12.i710 = icmp eq ptr %786, %778 br i1 %.not12.i710, label %Bfree.exit712, label %.backedge1270 -Bfree.exit712: ; preds = %781, %.loopexit758, %772 +Bfree.exit712: ; preds = %780, %.loopexit758, %771 %.not611 = icmp eq ptr %.16462, null - br i1 %.not611, label %Bfree.exit722, label %788 + br i1 %.not611, label %Bfree.exit722, label %787 -788: ; preds = %Bfree.exit712 +787: ; preds = %Bfree.exit712 %.not612 = icmp eq ptr %.5468, null %.not613 = icmp eq ptr %.5468, %.16462 %or.cond633 = select i1 %.not612, i1 true, i1 %.not613 - br i1 %or.cond633, label %Bfree.exit717, label %789 + br i1 %or.cond633, label %Bfree.exit717, label %788 -789: ; preds = %788 - %790 = getelementptr inbounds i8, ptr %.5468, i64 8 - %791 = load i32, ptr %790, align 8 - %792 = icmp sgt i32 %791, 15 - br i1 %792, label %794, label %.preheader.i714 +788: ; preds = %787 + %789 = getelementptr inbounds i8, ptr %.5468, i64 8 + %790 = load i32, ptr %789, align 8 + %791 = icmp sgt i32 %790, 15 + br i1 %791, label %793, label %.preheader.i714 -.preheader.i714: ; preds = %789 - %793 = ptrtoint ptr %.5468 to i64 - br label %795 +.preheader.i714: ; preds = %788 + %792 = ptrtoint ptr %.5468 to i64 + br label %794 -794: ; preds = %789 +793: ; preds = %788 tail call void @free(ptr noundef nonnull %.5468) #20 br label %Bfree.exit717 -795: ; preds = %.backedge1269, %.preheader.i714 - %796 = load i32, ptr %790, align 8 - %797 = sext i32 %796 to i64 - %798 = getelementptr [16 x ptr], ptr @freelist, i64 0, i64 %797 - %799 = cmpxchg volatile ptr %798, i64 0, i64 0 seq_cst seq_cst, align 8 - %800 = extractvalue { i64, i1 } %799, 0 - %801 = inttoptr i64 %800 to ptr - %802 = icmp eq ptr %801, inttoptr (i64 -1 to ptr) - br i1 %802, label %.backedge1269, label %803 - -.backedge1269: ; preds = %795, %803 - br label %795, !llvm.loop !33 - -803: ; preds = %795 - store ptr %801, ptr %.5468, align 8 - %804 = load i32, ptr %790, align 8 - %805 = sext i32 %804 to i64 - %806 = getelementptr [16 x ptr], ptr @freelist, i64 0, i64 %805 - %807 = cmpxchg volatile ptr %806, i64 %800, i64 %793 seq_cst seq_cst, align 8 - %808 = extractvalue { i64, i1 } %807, 0 - %809 = inttoptr i64 %808 to ptr - %.not12.i715 = icmp eq ptr %809, %801 +794: ; preds = %.backedge1269, %.preheader.i714 + %795 = load i32, ptr %789, align 8 + %796 = sext i32 %795 to i64 + %797 = getelementptr [16 x ptr], ptr @freelist, i64 0, i64 %796 + %798 = cmpxchg volatile ptr %797, i64 0, i64 0 seq_cst seq_cst, align 8 + %799 = extractvalue { i64, i1 } %798, 0 + %800 = inttoptr i64 %799 to ptr + %801 = icmp eq ptr %800, inttoptr (i64 -1 to ptr) + br i1 %801, label %.backedge1269, label %802 + +.backedge1269: ; preds = %794, %802 + br label %794, !llvm.loop !33 + +802: ; preds = %794 + store ptr %800, ptr %.5468, align 8 + %803 = load i32, ptr %789, align 8 + %804 = sext i32 %803 to i64 + %805 = getelementptr [16 x ptr], ptr @freelist, i64 0, i64 %804 + %806 = cmpxchg volatile ptr %805, i64 %799, i64 %792 seq_cst seq_cst, align 8 + %807 = extractvalue { i64, i1 } %806, 0 + %808 = inttoptr i64 %807 to ptr + %.not12.i715 = icmp eq ptr %808, %800 br i1 %.not12.i715, label %Bfree.exit717, label %.backedge1269 -Bfree.exit717: ; preds = %803, %788, %794 - %810 = getelementptr inbounds i8, ptr %.16462, i64 8 - %811 = load i32, ptr %810, align 8 - %812 = icmp sgt i32 %811, 15 - br i1 %812, label %814, label %.preheader.i719 +Bfree.exit717: ; preds = %802, %787, %793 + %809 = getelementptr inbounds i8, ptr %.16462, i64 8 + %810 = load i32, ptr %809, align 8 + %811 = icmp sgt i32 %810, 15 + br i1 %811, label %813, label %.preheader.i719 .preheader.i719: ; preds = %Bfree.exit717 - %813 = ptrtoint ptr %.16462 to i64 - br label %815 + %812 = ptrtoint ptr %.16462 to i64 + br label %814 -814: ; preds = %Bfree.exit717 +813: ; preds = %Bfree.exit717 tail call void @free(ptr noundef nonnull %.16462) #20 br label %Bfree.exit722 -815: ; preds = %.backedge1268, %.preheader.i719 - %816 = load i32, ptr %810, align 8 - %817 = sext i32 %816 to i64 - %818 = getelementptr [16 x ptr], ptr @freelist, i64 0, i64 %817 - %819 = cmpxchg volatile ptr %818, i64 0, i64 0 seq_cst seq_cst, align 8 - %820 = extractvalue { i64, i1 } %819, 0 - %821 = inttoptr i64 %820 to ptr - %822 = icmp eq ptr %821, inttoptr (i64 -1 to ptr) - br i1 %822, label %.backedge1268, label %823 - -.backedge1268: ; preds = %815, %823 - br label %815, !llvm.loop !33 - -823: ; preds = %815 - store ptr %821, ptr %.16462, align 8 - %824 = load i32, ptr %810, align 8 - %825 = sext i32 %824 to i64 - %826 = getelementptr [16 x ptr], ptr @freelist, i64 0, i64 %825 - %827 = cmpxchg volatile ptr %826, i64 %820, i64 %813 seq_cst seq_cst, align 8 - %828 = extractvalue { i64, i1 } %827, 0 - %829 = inttoptr i64 %828 to ptr - %.not12.i720 = icmp eq ptr %829, %821 +814: ; preds = %.backedge1268, %.preheader.i719 + %815 = load i32, ptr %809, align 8 + %816 = sext i32 %815 to i64 + %817 = getelementptr [16 x ptr], ptr @freelist, i64 0, i64 %816 + %818 = cmpxchg volatile ptr %817, i64 0, i64 0 seq_cst seq_cst, align 8 + %819 = extractvalue { i64, i1 } %818, 0 + %820 = inttoptr i64 %819 to ptr + %821 = icmp eq ptr %820, inttoptr (i64 -1 to ptr) + br i1 %821, label %.backedge1268, label %822 + +.backedge1268: ; preds = %814, %822 + br label %814, !llvm.loop !33 + +822: ; preds = %814 + store ptr %820, ptr %.16462, align 8 + %823 = load i32, ptr %809, align 8 + %824 = sext i32 %823 to i64 + %825 = getelementptr [16 x ptr], ptr @freelist, i64 0, i64 %824 + %826 = cmpxchg volatile ptr %825, i64 %819, i64 %812 seq_cst seq_cst, align 8 + %827 = extractvalue { i64, i1 } %826, 0 + %828 = inttoptr i64 %827 to ptr + %.not12.i720 = icmp eq ptr %828, %820 br i1 %.not12.i720, label %Bfree.exit722, label %.backedge1268 -Bfree.exit722: ; preds = %176, %.preheader763, %.lr.ph1265, %823, %161, %.preheader, %814, %Bfree.exit712, %.loopexit, %246 - %.10524 = phi i32 [ %.9523, %Bfree.exit712 ], [ %.6520, %.loopexit ], [ %.2516, %246 ], [ %.9523, %814 ], [ %.2516, %.preheader ], [ %.3517, %161 ], [ %.9523, %823 ], [ %.2516, %.lr.ph1265 ], [ %.3517, %.preheader763 ], [ %.3517, %176 ] - %.14485 = phi ptr [ %.13484, %Bfree.exit712 ], [ %25, %.loopexit ], [ %25, %246 ], [ %.13484, %814 ], [ %25, %.preheader ], [ %25, %161 ], [ %.13484, %823 ], [ %25, %.lr.ph1265 ], [ %25, %.preheader763 ], [ %25, %176 ] - %.17 = phi ptr [ %.16, %Bfree.exit712 ], [ %.6, %.loopexit ], [ %.lcssa1172, %246 ], [ %.16, %814 ], [ %235, %.preheader ], [ %160, %161 ], [ %.16, %823 ], [ %271, %.lr.ph1265 ], [ %.2, %.preheader763 ], [ %185, %176 ] +Bfree.exit722: ; preds = %176, %.preheader763, %.lr.ph1265, %822, %161, %.preheader, %813, %Bfree.exit712, %.loopexit, %246 + %.10524 = phi i32 [ %.9523, %Bfree.exit712 ], [ %.6520, %.loopexit ], [ %.2516, %246 ], [ %.9523, %813 ], [ %.2516, %.preheader ], [ %.3517, %161 ], [ %.9523, %822 ], [ %.2516, %.lr.ph1265 ], [ %.3517, %.preheader763 ], [ %.3517, %176 ] + %.14485 = phi ptr [ %.13484, %Bfree.exit712 ], [ %25, %.loopexit ], [ %25, %246 ], [ %.13484, %813 ], [ %25, %.preheader ], [ %25, %161 ], [ %.13484, %822 ], [ %25, %.lr.ph1265 ], [ %25, %.preheader763 ], [ %25, %176 ] + %.17 = phi ptr [ %.16, %Bfree.exit712 ], [ %.6, %.loopexit ], [ %.lcssa1172, %246 ], [ %.16, %813 ], [ %235, %.preheader ], [ %160, %161 ], [ %.16, %822 ], [ %271, %.lr.ph1265 ], [ %.2, %.preheader763 ], [ %185, %176 ] %.not.i723 = icmp eq ptr %.14485, null - br i1 %.not.i723, label %Bfree.exit727, label %830 + br i1 %.not.i723, label %Bfree.exit727, label %829 -830: ; preds = %Bfree.exit722 - %831 = getelementptr inbounds i8, ptr %.14485, i64 8 - %832 = load i32, ptr %831, align 8 - %833 = icmp sgt i32 %832, 15 - br i1 %833, label %835, label %.preheader.i724 +829: ; preds = %Bfree.exit722 + %830 = getelementptr inbounds i8, ptr %.14485, i64 8 + %831 = load i32, ptr %830, align 8 + %832 = icmp sgt i32 %831, 15 + br i1 %832, label %834, label %.preheader.i724 -.preheader.i724: ; preds = %830 - %834 = ptrtoint ptr %.14485 to i64 - br label %836 +.preheader.i724: ; preds = %829 + %833 = ptrtoint ptr %.14485 to i64 + br label %835 -835: ; preds = %830 +834: ; preds = %829 tail call void @free(ptr noundef nonnull %.14485) #20 br label %Bfree.exit727 -836: ; preds = %.backedge, %.preheader.i724 - %837 = load i32, ptr %831, align 8 - %838 = sext i32 %837 to i64 - %839 = getelementptr [16 x ptr], ptr @freelist, i64 0, i64 %838 - %840 = cmpxchg volatile ptr %839, i64 0, i64 0 seq_cst seq_cst, align 8 - %841 = extractvalue { i64, i1 } %840, 0 - %842 = inttoptr i64 %841 to ptr - %843 = icmp eq ptr %842, inttoptr (i64 -1 to ptr) - br i1 %843, label %.backedge, label %844 - -.backedge: ; preds = %836, %844 - br label %836, !llvm.loop !33 - -844: ; preds = %836 - store ptr %842, ptr %.14485, align 8 - %845 = load i32, ptr %831, align 8 - %846 = sext i32 %845 to i64 - %847 = getelementptr [16 x ptr], ptr @freelist, i64 0, i64 %846 - %848 = cmpxchg volatile ptr %847, i64 %841, i64 %834 seq_cst seq_cst, align 8 - %849 = extractvalue { i64, i1 } %848, 0 - %850 = inttoptr i64 %849 to ptr - %.not12.i725 = icmp eq ptr %850, %842 +835: ; preds = %.backedge, %.preheader.i724 + %836 = load i32, ptr %830, align 8 + %837 = sext i32 %836 to i64 + %838 = getelementptr [16 x ptr], ptr @freelist, i64 0, i64 %837 + %839 = cmpxchg volatile ptr %838, i64 0, i64 0 seq_cst seq_cst, align 8 + %840 = extractvalue { i64, i1 } %839, 0 + %841 = inttoptr i64 %840 to ptr + %842 = icmp eq ptr %841, inttoptr (i64 -1 to ptr) + br i1 %842, label %.backedge, label %843 + +.backedge: ; preds = %835, %843 + br label %835, !llvm.loop !33 + +843: ; preds = %835 + store ptr %841, ptr %.14485, align 8 + %844 = load i32, ptr %830, align 8 + %845 = sext i32 %844 to i64 + %846 = getelementptr [16 x ptr], ptr @freelist, i64 0, i64 %845 + %847 = cmpxchg volatile ptr %846, i64 %840, i64 %833 seq_cst seq_cst, align 8 + %848 = extractvalue { i64, i1 } %847, 0 + %849 = inttoptr i64 %848 to ptr + %.not12.i725 = icmp eq ptr %849, %841 br i1 %.not12.i725, label %Bfree.exit727, label %.backedge -Bfree.exit727: ; preds = %844, %Bfree.exit722, %835 +Bfree.exit727: ; preds = %843, %Bfree.exit722, %834 store i8 0, ptr %.17, align 1 - %851 = add i32 %.10524, 1 - store i32 %851, ptr %3, align 4 + %850 = add i32 %.10524, 1 + store i32 %850, ptr %3, align 4 %.not614 = icmp eq ptr %5, null br i1 %.not614, label %nrv_alloc.exit, label %nrv_alloc.exit.sink.split diff --git a/bench/sqlite/optimized/sqlite3.ll b/bench/sqlite/optimized/sqlite3.ll index 438a64c95bd..2777a11c8d6 100644 --- a/bench/sqlite/optimized/sqlite3.ll +++ b/bench/sqlite/optimized/sqlite3.ll @@ -6438,7 +6438,7 @@ getDoubleArg.exit: ; preds = %663, %661, %658, %6 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) %743 = bitcast double %.sroa.0.0..sroa.0.0.307.i to i64 - %744 = and i64 %743, -67108864 + %744 = and i64 %743, 9223372036787666944 %745 = bitcast i64 %744 to double %.sroa.0.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0.213.i = load volatile double, ptr %.sroa.0.i, align 16 %746 = fsub double %.sroa.0.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0.213.i, %745 @@ -6510,7 +6510,7 @@ getDoubleArg.exit: ; preds = %663, %661, %658, %6 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) %763 = bitcast double %.sroa.0.0..sroa.0.0.206313.i to i64 - %764 = and i64 %763, -67108864 + %764 = and i64 %763, 9223372036787666944 %765 = bitcast i64 %764 to double %.sroa.0.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0.216.i = load volatile double, ptr %.sroa.0.i, align 16 %766 = fsub double %.sroa.0.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0.216.i, %765 @@ -6575,7 +6575,7 @@ getDoubleArg.exit: ; preds = %663, %661, %658, %6 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) %782 = bitcast double %.sroa.0.0..sroa.0.0.207317.i to i64 - %783 = and i64 %782, -67108864 + %783 = and i64 %782, 9223372036787666944 %784 = bitcast i64 %783 to double %.sroa.0.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0.219.i = load volatile double, ptr %.sroa.0.i, align 16 %785 = fsub double %.sroa.0.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0.219.i, %784