LCOV - code coverage report
Current view: top level - out/Release/gen/torque-generated - builtins-array-lastindexof-from-dsl-gen.cc (source / functions) Hit Total Coverage
Test: app.info Lines: 1160 1160 100.0 %
Date: 2019-03-21 Functions: 14 14 100.0 %

          Line data    Source code
       1             : #include "src/builtins/builtins-utils-gen.h"
       2             : #include "src/builtins/builtins.h"
       3             : #include "src/code-factory.h"
       4             : #include "src/elements-kind.h"
       5             : #include "src/heap/factory-inl.h"
       6             : #include "src/objects.h"
       7             : #include "src/objects/arguments.h"
       8             : #include "src/objects/bigint.h"
       9             : #include "src/objects/js-generator.h"
      10             : #include "src/objects/js-promise.h"
      11             : #include "src/objects/js-regexp-string-iterator.h"
      12             : #include "src/objects/module.h"
      13             : #include "src/objects/stack-frame-info.h"
      14             : #include "src/builtins/builtins-array-gen.h"
      15             : #include "src/builtins/builtins-collections-gen.h"
      16             : #include "src/builtins/builtins-data-view-gen.h"
      17             : #include "src/builtins/builtins-iterator-gen.h"
      18             : #include "src/builtins/builtins-proxy-gen.h"
      19             : #include "src/builtins/builtins-regexp-gen.h"
      20             : #include "src/builtins/builtins-typed-array-gen.h"
      21             : #include "src/builtins/builtins-constructor-gen.h"
      22             : #include "src/builtins/builtins-typed-array-gen.h"
      23             : #include "src/builtins/builtins-typed-array-gen.h"
      24             : #include "src/builtins/builtins-typed-array-gen.h"
      25             : #include "src/builtins/builtins-typed-array-gen.h"
      26             : #include "src/builtins/builtins-typed-array-gen.h"
      27             : #include "src/builtins/builtins-typed-array-gen.h"
      28             : #include "src/builtins/builtins-typed-array-gen.h"
      29             : #include "src/builtins/builtins-typed-array-gen.h"
      30             : #include "torque-generated/builtins-base-from-dsl-gen.h"
      31             : #include "torque-generated/builtins-growable-fixed-array-from-dsl-gen.h"
      32             : #include "torque-generated/builtins-arguments-from-dsl-gen.h"
      33             : #include "torque-generated/builtins-array-from-dsl-gen.h"
      34             : #include "torque-generated/builtins-array-copywithin-from-dsl-gen.h"
      35             : #include "torque-generated/builtins-array-filter-from-dsl-gen.h"
      36             : #include "torque-generated/builtins-array-find-from-dsl-gen.h"
      37             : #include "torque-generated/builtins-array-findindex-from-dsl-gen.h"
      38             : #include "torque-generated/builtins-array-foreach-from-dsl-gen.h"
      39             : #include "torque-generated/builtins-array-join-from-dsl-gen.h"
      40             : #include "torque-generated/builtins-array-lastindexof-from-dsl-gen.h"
      41             : #include "torque-generated/builtins-array-of-from-dsl-gen.h"
      42             : #include "torque-generated/builtins-array-map-from-dsl-gen.h"
      43             : #include "torque-generated/builtins-array-reverse-from-dsl-gen.h"
      44             : #include "torque-generated/builtins-array-shift-from-dsl-gen.h"
      45             : #include "torque-generated/builtins-array-slice-from-dsl-gen.h"
      46             : #include "torque-generated/builtins-array-splice-from-dsl-gen.h"
      47             : #include "torque-generated/builtins-array-unshift-from-dsl-gen.h"
      48             : #include "torque-generated/builtins-collections-from-dsl-gen.h"
      49             : #include "torque-generated/builtins-data-view-from-dsl-gen.h"
      50             : #include "torque-generated/builtins-extras-utils-from-dsl-gen.h"
      51             : #include "torque-generated/builtins-iterator-from-dsl-gen.h"
      52             : #include "torque-generated/builtins-object-from-dsl-gen.h"
      53             : #include "torque-generated/builtins-proxy-from-dsl-gen.h"
      54             : #include "torque-generated/builtins-string-from-dsl-gen.h"
      55             : #include "torque-generated/builtins-string-html-from-dsl-gen.h"
      56             : #include "torque-generated/builtins-string-repeat-from-dsl-gen.h"
      57             : #include "torque-generated/builtins-typed-array-from-dsl-gen.h"
      58             : #include "torque-generated/builtins-typed-array-createtypedarray-from-dsl-gen.h"
      59             : #include "torque-generated/builtins-typed-array-every-from-dsl-gen.h"
      60             : #include "torque-generated/builtins-typed-array-filter-from-dsl-gen.h"
      61             : #include "torque-generated/builtins-typed-array-find-from-dsl-gen.h"
      62             : #include "torque-generated/builtins-typed-array-findindex-from-dsl-gen.h"
      63             : #include "torque-generated/builtins-typed-array-foreach-from-dsl-gen.h"
      64             : #include "torque-generated/builtins-typed-array-reduce-from-dsl-gen.h"
      65             : #include "torque-generated/builtins-typed-array-reduceright-from-dsl-gen.h"
      66             : #include "torque-generated/builtins-typed-array-slice-from-dsl-gen.h"
      67             : #include "torque-generated/builtins-typed-array-some-from-dsl-gen.h"
      68             : #include "torque-generated/builtins-typed-array-subarray-from-dsl-gen.h"
      69             : #include "torque-generated/builtins-test-from-dsl-gen.h"
      70             : 
      71             : namespace v8 {
      72             : namespace internal {
      73             : 
      74          56 : compiler::TNode<Object> ArrayLastindexofBuiltinsFromDSLAssembler::LoadWithHoleCheck10FixedArray(compiler::TNode<Context> p_context, compiler::TNode<FixedArrayBase> p_elements, compiler::TNode<Smi> p_index, compiler::CodeAssemblerLabel* label_IfHole) {
      75         112 :   compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
      76         112 :   compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, FixedArray, Object> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
      77         112 :   compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, FixedArray, Object> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
      78         112 :   compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Object> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
      79         112 :   compiler::CodeAssemblerParameterizedLabel<> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
      80         112 :   compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Object> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
      81          56 :     ca_.Goto(&block0, p_context, p_elements, p_index);
      82             : 
      83          56 :   if (block0.is_used()) {
      84          56 :     compiler::TNode<Context> tmp0;
      85          56 :     compiler::TNode<FixedArrayBase> tmp1;
      86          56 :     compiler::TNode<Smi> tmp2;
      87          56 :     ca_.Bind(&block0, &tmp0, &tmp1, &tmp2);
      88          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 13);
      89          56 :     compiler::TNode<FixedArray> tmp3;
      90          56 :     USE(tmp3);
      91          56 :     tmp3 = ca_.UncheckedCast<FixedArray>(BaseBuiltinsFromDSLAssembler(state_).UnsafeCast10FixedArray(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}));
      92          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 14);
      93          56 :     compiler::TNode<Object> tmp4;
      94          56 :     USE(tmp4);
      95          56 :     tmp4 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).LoadFixedArrayElement(compiler::TNode<FixedArray>{tmp3}, compiler::TNode<Smi>{tmp2}));
      96          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 15);
      97          56 :     compiler::TNode<Oddball> tmp5;
      98          56 :     USE(tmp5);
      99          56 :     tmp5 = BaseBuiltinsFromDSLAssembler(state_).Hole();
     100          56 :     compiler::TNode<BoolT> tmp6;
     101          56 :     USE(tmp6);
     102          56 :     tmp6 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<Object>{tmp4}, compiler::TNode<HeapObject>{tmp5}));
     103          56 :     ca_.Branch(tmp6, &block3, &block4, tmp0, tmp1, tmp2, tmp3, tmp4);
     104             :   }
     105             : 
     106          56 :   if (block3.is_used()) {
     107          56 :     compiler::TNode<Context> tmp7;
     108          56 :     compiler::TNode<FixedArrayBase> tmp8;
     109          56 :     compiler::TNode<Smi> tmp9;
     110          56 :     compiler::TNode<FixedArray> tmp10;
     111          56 :     compiler::TNode<Object> tmp11;
     112          56 :     ca_.Bind(&block3, &tmp7, &tmp8, &tmp9, &tmp10, &tmp11);
     113          56 :     ca_.Goto(&block1);
     114             :   }
     115             : 
     116          56 :   if (block4.is_used()) {
     117          56 :     compiler::TNode<Context> tmp12;
     118          56 :     compiler::TNode<FixedArrayBase> tmp13;
     119          56 :     compiler::TNode<Smi> tmp14;
     120          56 :     compiler::TNode<FixedArray> tmp15;
     121          56 :     compiler::TNode<Object> tmp16;
     122          56 :     ca_.Bind(&block4, &tmp12, &tmp13, &tmp14, &tmp15, &tmp16);
     123          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 16);
     124          56 :     ca_.Goto(&block2, tmp12, tmp13, tmp14, tmp16);
     125             :   }
     126             : 
     127          56 :   if (block2.is_used()) {
     128          56 :     compiler::TNode<Context> tmp17;
     129          56 :     compiler::TNode<FixedArrayBase> tmp18;
     130          56 :     compiler::TNode<Smi> tmp19;
     131          56 :     compiler::TNode<Object> tmp20;
     132          56 :     ca_.Bind(&block2, &tmp17, &tmp18, &tmp19, &tmp20);
     133          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 6);
     134          56 :     ca_.Goto(&block5, tmp17, tmp18, tmp19, tmp20);
     135             :   }
     136             : 
     137          56 :   if (block1.is_used()) {
     138          56 :     ca_.Bind(&block1);
     139          56 :     ca_.Goto(label_IfHole);
     140             :   }
     141             : 
     142          56 :     compiler::TNode<Context> tmp21;
     143          56 :     compiler::TNode<FixedArrayBase> tmp22;
     144          56 :     compiler::TNode<Smi> tmp23;
     145          56 :     compiler::TNode<Object> tmp24;
     146          56 :     ca_.Bind(&block5, &tmp21, &tmp22, &tmp23, &tmp24);
     147         112 :   return compiler::TNode<Object>{tmp24};
     148             : }
     149             : 
     150          56 : compiler::TNode<Object> ArrayLastindexofBuiltinsFromDSLAssembler::LoadWithHoleCheck16FixedDoubleArray(compiler::TNode<Context> p_context, compiler::TNode<FixedArrayBase> p_elements, compiler::TNode<Smi> p_index, compiler::CodeAssemblerLabel* label_IfHole) {
     151         112 :   compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     152         112 :   compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, FixedDoubleArray, FixedDoubleArray, Smi> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     153         112 :   compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, FixedDoubleArray, FixedDoubleArray, Smi, Float64T> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     154         112 :   compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Object> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     155         112 :   compiler::CodeAssemblerParameterizedLabel<> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     156         112 :   compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Object> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     157          56 :     ca_.Goto(&block0, p_context, p_elements, p_index);
     158             : 
     159          56 :   if (block0.is_used()) {
     160          56 :     compiler::TNode<Context> tmp0;
     161          56 :     compiler::TNode<FixedArrayBase> tmp1;
     162          56 :     compiler::TNode<Smi> tmp2;
     163          56 :     ca_.Bind(&block0, &tmp0, &tmp1, &tmp2);
     164          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 22);
     165          56 :     compiler::TNode<FixedDoubleArray> tmp3;
     166          56 :     USE(tmp3);
     167          56 :     tmp3 = ca_.UncheckedCast<FixedDoubleArray>(BaseBuiltinsFromDSLAssembler(state_).UnsafeCast16FixedDoubleArray(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}));
     168          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 23);
     169          56 :     compiler::TNode<Float64T> tmp4;
     170          56 :     USE(tmp4);
     171         112 :     compiler::CodeAssemblerLabel label0(&ca_);
     172          56 :     tmp4 = CodeStubAssembler(state_).LoadDoubleWithHoleCheck(compiler::TNode<FixedDoubleArray>{tmp3}, compiler::TNode<Smi>{tmp2}, &label0);
     173          56 :     ca_.Goto(&block3, tmp0, tmp1, tmp2, tmp3, tmp3, tmp2, tmp4);
     174          56 :     if (label0.is_used()) {
     175          56 :       ca_.Bind(&label0);
     176          56 :       ca_.Goto(&block4, tmp0, tmp1, tmp2, tmp3, tmp3, tmp2);
     177             :     }
     178             :   }
     179             : 
     180          56 :   if (block4.is_used()) {
     181          56 :     compiler::TNode<Context> tmp5;
     182          56 :     compiler::TNode<FixedArrayBase> tmp6;
     183          56 :     compiler::TNode<Smi> tmp7;
     184          56 :     compiler::TNode<FixedDoubleArray> tmp8;
     185          56 :     compiler::TNode<FixedDoubleArray> tmp9;
     186          56 :     compiler::TNode<Smi> tmp10;
     187          56 :     ca_.Bind(&block4, &tmp5, &tmp6, &tmp7, &tmp8, &tmp9, &tmp10);
     188          56 :     ca_.Goto(&block1);
     189             :   }
     190             : 
     191          56 :   if (block3.is_used()) {
     192          56 :     compiler::TNode<Context> tmp11;
     193          56 :     compiler::TNode<FixedArrayBase> tmp12;
     194          56 :     compiler::TNode<Smi> tmp13;
     195          56 :     compiler::TNode<FixedDoubleArray> tmp14;
     196          56 :     compiler::TNode<FixedDoubleArray> tmp15;
     197          56 :     compiler::TNode<Smi> tmp16;
     198          56 :     compiler::TNode<Float64T> tmp17;
     199          56 :     ca_.Bind(&block3, &tmp11, &tmp12, &tmp13, &tmp14, &tmp15, &tmp16, &tmp17);
     200          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 25);
     201          56 :     compiler::TNode<HeapNumber> tmp18;
     202          56 :     USE(tmp18);
     203          56 :     tmp18 = ca_.UncheckedCast<HeapNumber>(CodeStubAssembler(state_).AllocateHeapNumberWithValue(compiler::TNode<Float64T>{tmp17}));
     204          56 :     ca_.Goto(&block2, tmp11, tmp12, tmp13, tmp18);
     205             :   }
     206             : 
     207          56 :   if (block2.is_used()) {
     208          56 :     compiler::TNode<Context> tmp19;
     209          56 :     compiler::TNode<FixedArrayBase> tmp20;
     210          56 :     compiler::TNode<Smi> tmp21;
     211          56 :     compiler::TNode<Object> tmp22;
     212          56 :     ca_.Bind(&block2, &tmp19, &tmp20, &tmp21, &tmp22);
     213          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 6);
     214          56 :     ca_.Goto(&block5, tmp19, tmp20, tmp21, tmp22);
     215             :   }
     216             : 
     217          56 :   if (block1.is_used()) {
     218          56 :     ca_.Bind(&block1);
     219          56 :     ca_.Goto(label_IfHole);
     220             :   }
     221             : 
     222          56 :     compiler::TNode<Context> tmp23;
     223          56 :     compiler::TNode<FixedArrayBase> tmp24;
     224          56 :     compiler::TNode<Smi> tmp25;
     225          56 :     compiler::TNode<Object> tmp26;
     226          56 :     ca_.Bind(&block5, &tmp23, &tmp24, &tmp25, &tmp26);
     227         112 :   return compiler::TNode<Object>{tmp26};
     228             : }
     229             : 
     230          56 : compiler::TNode<Number> ArrayLastindexofBuiltinsFromDSLAssembler::GetFromIndex(compiler::TNode<Context> p_context, compiler::TNode<Number> p_length, CodeStubArguments* p_arguments) {
     231         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Number> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     232         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Number> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     233         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Number> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     234         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Number, Number> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     235         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Number, Number> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     236         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Number, Number, Number, Number> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     237         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Number, Number, Number, Number> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     238         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Number, Number, Number> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     239         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Number, Number, Number> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     240         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Number, Number, Number> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     241         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Number, Number> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     242         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Number, Number> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     243          56 :     ca_.Goto(&block0, p_context, p_length);
     244             : 
     245          56 :   if (block0.is_used()) {
     246          56 :     compiler::TNode<Context> tmp0;
     247          56 :     compiler::TNode<Number> tmp1;
     248          56 :     ca_.Bind(&block0, &tmp0, &tmp1);
     249          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 66);
     250          56 :     compiler::TNode<IntPtrT> tmp2;
     251          56 :     USE(tmp2);
     252          56 :     tmp2 = ca_.UncheckedCast<IntPtrT>(CodeStubAssembler(state_).GetArgumentsLength(p_arguments));
     253          56 :     compiler::TNode<IntPtrT> tmp3;
     254          56 :     USE(tmp3);
     255          56 :     tmp3 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(2));
     256          56 :     compiler::TNode<BoolT> tmp4;
     257          56 :     USE(tmp4);
     258          56 :     tmp4 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).IntPtrLessThan(compiler::TNode<IntPtrT>{tmp2}, compiler::TNode<IntPtrT>{tmp3}));
     259          56 :     ca_.Branch(tmp4, &block2, &block3, tmp0, tmp1);
     260             :   }
     261             : 
     262          56 :   if (block2.is_used()) {
     263          56 :     compiler::TNode<Context> tmp5;
     264          56 :     compiler::TNode<Number> tmp6;
     265          56 :     ca_.Bind(&block2, &tmp5, &tmp6);
     266          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 67);
     267          56 :     compiler::TNode<Number> tmp7;
     268          56 :     USE(tmp7);
     269          56 :     tmp7 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr22UT12ATHeapNumber5ATSmi17ATconstexpr_int31(1));
     270          56 :     compiler::TNode<Number> tmp8;
     271          56 :     USE(tmp8);
     272          56 :     tmp8 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberSub(compiler::TNode<Number>{tmp6}, compiler::TNode<Number>{tmp7}));
     273          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 66);
     274          56 :     ca_.Goto(&block5, tmp5, tmp6, tmp8);
     275             :   }
     276             : 
     277          56 :   if (block3.is_used()) {
     278          56 :     compiler::TNode<Context> tmp9;
     279          56 :     compiler::TNode<Number> tmp10;
     280          56 :     ca_.Bind(&block3, &tmp9, &tmp10);
     281          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 68);
     282          56 :     compiler::TNode<IntPtrT> tmp11;
     283          56 :     USE(tmp11);
     284          56 :     tmp11 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(1));
     285          56 :     compiler::TNode<Object> tmp12;
     286          56 :     USE(tmp12);
     287          56 :     tmp12 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).GetArgumentValue(p_arguments, compiler::TNode<IntPtrT>{tmp11}));
     288          56 :     compiler::TNode<Number> tmp13;
     289          56 :     USE(tmp13);
     290          56 :     tmp13 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).ToInteger_Inline(compiler::TNode<Context>{tmp9}, compiler::TNode<Object>{tmp12}, CodeStubAssembler::ToIntegerTruncationMode::kTruncateMinusZero));
     291          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 66);
     292          56 :     ca_.Goto(&block4, tmp9, tmp10, tmp13);
     293             :   }
     294             : 
     295          56 :   if (block5.is_used()) {
     296          56 :     compiler::TNode<Context> tmp14;
     297          56 :     compiler::TNode<Number> tmp15;
     298          56 :     compiler::TNode<Number> tmp16;
     299          56 :     ca_.Bind(&block5, &tmp14, &tmp15, &tmp16);
     300          56 :     ca_.Goto(&block4, tmp14, tmp15, tmp16);
     301             :   }
     302             : 
     303          56 :   if (block4.is_used()) {
     304          56 :     compiler::TNode<Context> tmp17;
     305          56 :     compiler::TNode<Number> tmp18;
     306          56 :     compiler::TNode<Number> tmp19;
     307          56 :     ca_.Bind(&block4, &tmp17, &tmp18, &tmp19);
     308          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 71);
     309          56 :     compiler::TNode<Smi> tmp20;
     310          56 :     USE(tmp20);
     311          56 :     tmp20 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiConstant(0));
     312          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 72);
     313          56 :     compiler::TNode<Number> tmp21;
     314          56 :     USE(tmp21);
     315          56 :     tmp21 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr22UT12ATHeapNumber5ATSmi17ATconstexpr_int31(0));
     316         112 :     compiler::CodeAssemblerLabel label0(&ca_);
     317         112 :     compiler::CodeAssemblerLabel label1(&ca_);
     318          56 :     CodeStubAssembler(state_).BranchIfNumberGreaterThanOrEqual(compiler::TNode<Number>{tmp19}, compiler::TNode<Number>{tmp21}, &label0, &label1);
     319          56 :     if (label0.is_used()) {
     320          56 :       ca_.Bind(&label0);
     321          56 :       ca_.Goto(&block8, tmp17, tmp18, tmp19, tmp20, tmp19);
     322             :     }
     323          56 :     if (label1.is_used()) {
     324          56 :       ca_.Bind(&label1);
     325          56 :       ca_.Goto(&block9, tmp17, tmp18, tmp19, tmp20, tmp19);
     326             :     }
     327             :   }
     328             : 
     329          56 :   if (block8.is_used()) {
     330          56 :     compiler::TNode<Context> tmp22;
     331          56 :     compiler::TNode<Number> tmp23;
     332          56 :     compiler::TNode<Number> tmp24;
     333          56 :     compiler::TNode<Number> tmp25;
     334          56 :     compiler::TNode<Number> tmp26;
     335          56 :     ca_.Bind(&block8, &tmp22, &tmp23, &tmp24, &tmp25, &tmp26);
     336          56 :     ca_.Goto(&block6, tmp22, tmp23, tmp24, tmp25);
     337             :   }
     338             : 
     339          56 :   if (block9.is_used()) {
     340          56 :     compiler::TNode<Context> tmp27;
     341          56 :     compiler::TNode<Number> tmp28;
     342          56 :     compiler::TNode<Number> tmp29;
     343          56 :     compiler::TNode<Number> tmp30;
     344          56 :     compiler::TNode<Number> tmp31;
     345          56 :     ca_.Bind(&block9, &tmp27, &tmp28, &tmp29, &tmp30, &tmp31);
     346          56 :     ca_.Goto(&block7, tmp27, tmp28, tmp29, tmp30);
     347             :   }
     348             : 
     349          56 :   if (block6.is_used()) {
     350          56 :     compiler::TNode<Context> tmp32;
     351          56 :     compiler::TNode<Number> tmp33;
     352          56 :     compiler::TNode<Number> tmp34;
     353          56 :     compiler::TNode<Number> tmp35;
     354          56 :     ca_.Bind(&block6, &tmp32, &tmp33, &tmp34, &tmp35);
     355          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 75);
     356          56 :     compiler::TNode<Number> tmp36;
     357          56 :     USE(tmp36);
     358          56 :     tmp36 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr22UT12ATHeapNumber5ATSmi17ATconstexpr_int31(1));
     359          56 :     compiler::TNode<Number> tmp37;
     360          56 :     USE(tmp37);
     361          56 :     tmp37 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberSub(compiler::TNode<Number>{tmp33}, compiler::TNode<Number>{tmp36}));
     362          56 :     compiler::TNode<Number> tmp38;
     363          56 :     USE(tmp38);
     364          56 :     tmp38 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).Min(compiler::TNode<Number>{tmp34}, compiler::TNode<Number>{tmp37}));
     365          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 72);
     366          56 :     ca_.Goto(&block10, tmp32, tmp33, tmp34, tmp38);
     367             :   }
     368             : 
     369          56 :   if (block7.is_used()) {
     370          56 :     compiler::TNode<Context> tmp39;
     371          56 :     compiler::TNode<Number> tmp40;
     372          56 :     compiler::TNode<Number> tmp41;
     373          56 :     compiler::TNode<Number> tmp42;
     374          56 :     ca_.Bind(&block7, &tmp39, &tmp40, &tmp41, &tmp42);
     375          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 78);
     376          56 :     compiler::TNode<Number> tmp43;
     377          56 :     USE(tmp43);
     378          56 :     tmp43 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberAdd(compiler::TNode<Number>{tmp40}, compiler::TNode<Number>{tmp41}));
     379          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 72);
     380          56 :     ca_.Goto(&block10, tmp39, tmp40, tmp41, tmp43);
     381             :   }
     382             : 
     383          56 :   if (block10.is_used()) {
     384          56 :     compiler::TNode<Context> tmp44;
     385          56 :     compiler::TNode<Number> tmp45;
     386          56 :     compiler::TNode<Number> tmp46;
     387          56 :     compiler::TNode<Number> tmp47;
     388          56 :     ca_.Bind(&block10, &tmp44, &tmp45, &tmp46, &tmp47);
     389          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 80);
     390          56 :     ca_.Goto(&block1, tmp44, tmp45, tmp47);
     391             :   }
     392             : 
     393          56 :   if (block1.is_used()) {
     394          56 :     compiler::TNode<Context> tmp48;
     395          56 :     compiler::TNode<Number> tmp49;
     396          56 :     compiler::TNode<Number> tmp50;
     397          56 :     ca_.Bind(&block1, &tmp48, &tmp49, &tmp50);
     398          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 61);
     399          56 :     ca_.Goto(&block11, tmp48, tmp49, tmp50);
     400             :   }
     401             : 
     402          56 :     compiler::TNode<Context> tmp51;
     403          56 :     compiler::TNode<Number> tmp52;
     404          56 :     compiler::TNode<Number> tmp53;
     405          56 :     ca_.Bind(&block11, &tmp51, &tmp52, &tmp53);
     406         112 :   return compiler::TNode<Number>{tmp53};
     407             : }
     408             : 
     409          56 : compiler::TNode<Object> ArrayLastindexofBuiltinsFromDSLAssembler::TryFastArrayLastIndexOf(compiler::TNode<Context> p_context, compiler::TNode<JSReceiver> p_receiver, compiler::TNode<Object> p_searchElement, compiler::TNode<Number> p_from, compiler::CodeAssemblerLabel* label_Slow) {
     410         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, Object, Number> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     411         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, Object, Number, JSReceiver> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     412         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, Object, Number, JSReceiver, JSArray> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     413         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, Object, Number, JSArray, Smi> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     414         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, Object, Number, JSArray, Smi> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     415         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, Object, Number, JSArray, Smi, Number> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     416         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, Object, Number, JSArray, Smi, Number, Smi> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     417         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, Object, Number, JSArray, Smi, Smi, Int32T> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     418         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, Object, Number, JSArray, Smi, Smi, Int32T> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     419         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, Object, Number, Object> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     420         112 :   compiler::CodeAssemblerParameterizedLabel<> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     421         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, Object, Number, Object> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     422          56 :     ca_.Goto(&block0, p_context, p_receiver, p_searchElement, p_from);
     423             : 
     424          56 :   if (block0.is_used()) {
     425          56 :     compiler::TNode<Context> tmp0;
     426          56 :     compiler::TNode<JSReceiver> tmp1;
     427          56 :     compiler::TNode<Object> tmp2;
     428          56 :     compiler::TNode<Number> tmp3;
     429          56 :     ca_.Bind(&block0, &tmp0, &tmp1, &tmp2, &tmp3);
     430          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 87);
     431          56 :     compiler::TNode<JSArray> tmp4;
     432          56 :     USE(tmp4);
     433         112 :     compiler::CodeAssemblerLabel label0(&ca_);
     434          56 :     tmp4 = BaseBuiltinsFromDSLAssembler(state_).Cast13ATFastJSArray(compiler::TNode<Context>{tmp0}, compiler::TNode<HeapObject>{tmp1}, &label0);
     435          56 :     ca_.Goto(&block3, tmp0, tmp1, tmp2, tmp3, tmp1, tmp4);
     436          56 :     if (label0.is_used()) {
     437          56 :       ca_.Bind(&label0);
     438          56 :       ca_.Goto(&block4, tmp0, tmp1, tmp2, tmp3, tmp1);
     439             :     }
     440             :   }
     441             : 
     442          56 :   if (block4.is_used()) {
     443          56 :     compiler::TNode<Context> tmp5;
     444          56 :     compiler::TNode<JSReceiver> tmp6;
     445          56 :     compiler::TNode<Object> tmp7;
     446          56 :     compiler::TNode<Number> tmp8;
     447          56 :     compiler::TNode<JSReceiver> tmp9;
     448          56 :     ca_.Bind(&block4, &tmp5, &tmp6, &tmp7, &tmp8, &tmp9);
     449          56 :     ca_.Goto(&block1);
     450             :   }
     451             : 
     452          56 :   if (block3.is_used()) {
     453          56 :     compiler::TNode<Context> tmp10;
     454          56 :     compiler::TNode<JSReceiver> tmp11;
     455          56 :     compiler::TNode<Object> tmp12;
     456          56 :     compiler::TNode<Number> tmp13;
     457          56 :     compiler::TNode<JSReceiver> tmp14;
     458          56 :     compiler::TNode<JSArray> tmp15;
     459          56 :     ca_.Bind(&block3, &tmp10, &tmp11, &tmp12, &tmp13, &tmp14, &tmp15);
     460          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 88);
     461          56 :     compiler::TNode<Smi> tmp16;
     462          56 :     USE(tmp16);
     463          56 :     tmp16 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).LoadFastJSArrayLength(compiler::TNode<JSArray>{tmp15}));
     464          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 89);
     465          56 :     compiler::TNode<Smi> tmp17;
     466          56 :     USE(tmp17);
     467          56 :     tmp17 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(0));
     468          56 :     compiler::TNode<BoolT> tmp18;
     469          56 :     USE(tmp18);
     470          56 :     tmp18 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiEqual(compiler::TNode<Smi>{tmp16}, compiler::TNode<Smi>{tmp17}));
     471          56 :     ca_.Branch(tmp18, &block5, &block6, tmp10, tmp11, tmp12, tmp13, tmp15, tmp16);
     472             :   }
     473             : 
     474          56 :   if (block5.is_used()) {
     475          56 :     compiler::TNode<Context> tmp19;
     476          56 :     compiler::TNode<JSReceiver> tmp20;
     477          56 :     compiler::TNode<Object> tmp21;
     478          56 :     compiler::TNode<Number> tmp22;
     479          56 :     compiler::TNode<JSArray> tmp23;
     480          56 :     compiler::TNode<Smi> tmp24;
     481          56 :     ca_.Bind(&block5, &tmp19, &tmp20, &tmp21, &tmp22, &tmp23, &tmp24);
     482          56 :     compiler::TNode<Smi> tmp25;
     483          56 :     USE(tmp25);
     484          56 :     tmp25 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiConstant(-1));
     485          56 :     ca_.Goto(&block2, tmp19, tmp20, tmp21, tmp22, tmp25);
     486             :   }
     487             : 
     488          56 :   if (block6.is_used()) {
     489          56 :     compiler::TNode<Context> tmp26;
     490          56 :     compiler::TNode<JSReceiver> tmp27;
     491          56 :     compiler::TNode<Object> tmp28;
     492          56 :     compiler::TNode<Number> tmp29;
     493          56 :     compiler::TNode<JSArray> tmp30;
     494          56 :     compiler::TNode<Smi> tmp31;
     495          56 :     ca_.Bind(&block6, &tmp26, &tmp27, &tmp28, &tmp29, &tmp30, &tmp31);
     496          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 91);
     497          56 :     compiler::TNode<Smi> tmp32;
     498          56 :     USE(tmp32);
     499         112 :     compiler::CodeAssemblerLabel label0(&ca_);
     500          56 :     tmp32 = BaseBuiltinsFromDSLAssembler(state_).Cast5ATSmi(compiler::TNode<Object>{tmp29}, &label0);
     501          56 :     ca_.Goto(&block7, tmp26, tmp27, tmp28, tmp29, tmp30, tmp31, tmp29, tmp32);
     502          56 :     if (label0.is_used()) {
     503          56 :       ca_.Bind(&label0);
     504          56 :       ca_.Goto(&block8, tmp26, tmp27, tmp28, tmp29, tmp30, tmp31, tmp29);
     505             :     }
     506             :   }
     507             : 
     508          56 :   if (block8.is_used()) {
     509          56 :     compiler::TNode<Context> tmp33;
     510          56 :     compiler::TNode<JSReceiver> tmp34;
     511          56 :     compiler::TNode<Object> tmp35;
     512          56 :     compiler::TNode<Number> tmp36;
     513          56 :     compiler::TNode<JSArray> tmp37;
     514          56 :     compiler::TNode<Smi> tmp38;
     515          56 :     compiler::TNode<Number> tmp39;
     516          56 :     ca_.Bind(&block8, &tmp33, &tmp34, &tmp35, &tmp36, &tmp37, &tmp38, &tmp39);
     517          56 :     ca_.Goto(&block1);
     518             :   }
     519             : 
     520          56 :   if (block7.is_used()) {
     521          56 :     compiler::TNode<Context> tmp40;
     522          56 :     compiler::TNode<JSReceiver> tmp41;
     523          56 :     compiler::TNode<Object> tmp42;
     524          56 :     compiler::TNode<Number> tmp43;
     525          56 :     compiler::TNode<JSArray> tmp44;
     526          56 :     compiler::TNode<Smi> tmp45;
     527          56 :     compiler::TNode<Number> tmp46;
     528          56 :     compiler::TNode<Smi> tmp47;
     529          56 :     ca_.Bind(&block7, &tmp40, &tmp41, &tmp42, &tmp43, &tmp44, &tmp45, &tmp46, &tmp47);
     530          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 92);
     531          56 :     compiler::TNode<Map> tmp48;
     532          56 :     USE(tmp48);
     533          56 :     tmp48 = ca_.UncheckedCast<Map>(BaseBuiltinsFromDSLAssembler(state_).LoadHeapObjectMap(compiler::TNode<HeapObject>{tmp44}));
     534          56 :     compiler::TNode<Int32T> tmp49;
     535          56 :     USE(tmp49);
     536          56 :     tmp49 = ca_.UncheckedCast<Int32T>(CodeStubAssembler(state_).LoadMapElementsKind(compiler::TNode<Map>{tmp48}));
     537          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 93);
     538          56 :     compiler::TNode<BoolT> tmp50;
     539          56 :     USE(tmp50);
     540          56 :     tmp50 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).IsFastSmiOrTaggedElementsKind(compiler::TNode<Int32T>{tmp49}));
     541          56 :     ca_.Branch(tmp50, &block9, &block10, tmp40, tmp41, tmp42, tmp43, tmp44, tmp45, tmp47, tmp49);
     542             :   }
     543             : 
     544          56 :   if (block9.is_used()) {
     545          56 :     compiler::TNode<Context> tmp51;
     546          56 :     compiler::TNode<JSReceiver> tmp52;
     547          56 :     compiler::TNode<Object> tmp53;
     548          56 :     compiler::TNode<Number> tmp54;
     549          56 :     compiler::TNode<JSArray> tmp55;
     550          56 :     compiler::TNode<Smi> tmp56;
     551          56 :     compiler::TNode<Smi> tmp57;
     552          56 :     compiler::TNode<Int32T> tmp58;
     553          56 :     ca_.Bind(&block9, &tmp51, &tmp52, &tmp53, &tmp54, &tmp55, &tmp56, &tmp57, &tmp58);
     554          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 95);
     555          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 94);
     556          56 :     compiler::TNode<Smi> tmp59;
     557          56 :     USE(tmp59);
     558          56 :     tmp59 = ca_.UncheckedCast<Smi>(ArrayLastindexofBuiltinsFromDSLAssembler(state_).FastArrayLastIndexOf10FixedArray(compiler::TNode<Context>{tmp51}, compiler::TNode<JSArray>{tmp55}, compiler::TNode<Smi>{tmp57}, compiler::TNode<Object>{tmp53}));
     559          56 :     ca_.Goto(&block2, tmp51, tmp52, tmp53, tmp54, tmp59);
     560             :   }
     561             : 
     562          56 :   if (block10.is_used()) {
     563          56 :     compiler::TNode<Context> tmp60;
     564          56 :     compiler::TNode<JSReceiver> tmp61;
     565          56 :     compiler::TNode<Object> tmp62;
     566          56 :     compiler::TNode<Number> tmp63;
     567          56 :     compiler::TNode<JSArray> tmp64;
     568          56 :     compiler::TNode<Smi> tmp65;
     569          56 :     compiler::TNode<Smi> tmp66;
     570          56 :     compiler::TNode<Int32T> tmp67;
     571          56 :     ca_.Bind(&block10, &tmp60, &tmp61, &tmp62, &tmp63, &tmp64, &tmp65, &tmp66, &tmp67);
     572          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 99);
     573          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 98);
     574          56 :     compiler::TNode<Smi> tmp68;
     575          56 :     USE(tmp68);
     576          56 :     tmp68 = ca_.UncheckedCast<Smi>(ArrayLastindexofBuiltinsFromDSLAssembler(state_).FastArrayLastIndexOf16FixedDoubleArray(compiler::TNode<Context>{tmp60}, compiler::TNode<JSArray>{tmp64}, compiler::TNode<Smi>{tmp66}, compiler::TNode<Object>{tmp62}));
     577          56 :     ca_.Goto(&block2, tmp60, tmp61, tmp62, tmp63, tmp68);
     578             :   }
     579             : 
     580          56 :   if (block2.is_used()) {
     581          56 :     compiler::TNode<Context> tmp69;
     582          56 :     compiler::TNode<JSReceiver> tmp70;
     583          56 :     compiler::TNode<Object> tmp71;
     584          56 :     compiler::TNode<Number> tmp72;
     585          56 :     compiler::TNode<Object> tmp73;
     586          56 :     ca_.Bind(&block2, &tmp69, &tmp70, &tmp71, &tmp72, &tmp73);
     587          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 83);
     588          56 :     ca_.Goto(&block11, tmp69, tmp70, tmp71, tmp72, tmp73);
     589             :   }
     590             : 
     591          56 :   if (block1.is_used()) {
     592          56 :     ca_.Bind(&block1);
     593          56 :     ca_.Goto(label_Slow);
     594             :   }
     595             : 
     596          56 :     compiler::TNode<Context> tmp74;
     597          56 :     compiler::TNode<JSReceiver> tmp75;
     598          56 :     compiler::TNode<Object> tmp76;
     599          56 :     compiler::TNode<Number> tmp77;
     600          56 :     compiler::TNode<Object> tmp78;
     601          56 :     ca_.Bind(&block11, &tmp74, &tmp75, &tmp76, &tmp77, &tmp78);
     602         112 :   return compiler::TNode<Object>{tmp78};
     603             : }
     604             : 
     605          56 : compiler::TNode<Object> ArrayLastindexofBuiltinsFromDSLAssembler::GenericArrayLastIndexOf(compiler::TNode<Context> p_context, compiler::TNode<JSReceiver> p_object, compiler::TNode<Object> p_searchElement, compiler::TNode<Number> p_from) {
     606         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, Object, Number> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     607         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, Object, Number, Number> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     608         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, Object, Number, Number, Number> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     609         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, Object, Number, Number, Number> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     610         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, Object, Number, Number> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     611         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, Object, Number, Number, Oddball> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     612         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, Object, Number, Number, Oddball, Object, Oddball> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     613         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, Object, Number, Number, Oddball, Object, Oddball> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     614         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, Object, Number, Number, Oddball> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     615         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, Object, Number, Number> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     616         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, Object, Number, Object> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     617         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, Object, Number, Object> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     618          56 :     ca_.Goto(&block0, p_context, p_object, p_searchElement, p_from);
     619             : 
     620          56 :   if (block0.is_used()) {
     621          56 :     compiler::TNode<Context> tmp0;
     622          56 :     compiler::TNode<JSReceiver> tmp1;
     623          56 :     compiler::TNode<Object> tmp2;
     624          56 :     compiler::TNode<Number> tmp3;
     625          56 :     ca_.Bind(&block0, &tmp0, &tmp1, &tmp2, &tmp3);
     626          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 105);
     627          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 108);
     628          56 :     ca_.Goto(&block4, tmp0, tmp1, tmp2, tmp3, tmp3);
     629             :   }
     630             : 
     631          56 :   if (block4.is_used()) {
     632          56 :     compiler::TNode<Context> tmp4;
     633          56 :     compiler::TNode<JSReceiver> tmp5;
     634          56 :     compiler::TNode<Object> tmp6;
     635          56 :     compiler::TNode<Number> tmp7;
     636          56 :     compiler::TNode<Number> tmp8;
     637          56 :     ca_.Bind(&block4, &tmp4, &tmp5, &tmp6, &tmp7, &tmp8);
     638          56 :     compiler::TNode<Number> tmp9;
     639          56 :     USE(tmp9);
     640          56 :     tmp9 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr22UT12ATHeapNumber5ATSmi17ATconstexpr_int31(0));
     641         112 :     compiler::CodeAssemblerLabel label0(&ca_);
     642         112 :     compiler::CodeAssemblerLabel label1(&ca_);
     643          56 :     CodeStubAssembler(state_).BranchIfNumberGreaterThanOrEqual(compiler::TNode<Number>{tmp8}, compiler::TNode<Number>{tmp9}, &label0, &label1);
     644          56 :     if (label0.is_used()) {
     645          56 :       ca_.Bind(&label0);
     646          56 :       ca_.Goto(&block5, tmp4, tmp5, tmp6, tmp7, tmp8, tmp8);
     647             :     }
     648          56 :     if (label1.is_used()) {
     649          56 :       ca_.Bind(&label1);
     650          56 :       ca_.Goto(&block6, tmp4, tmp5, tmp6, tmp7, tmp8, tmp8);
     651             :     }
     652             :   }
     653             : 
     654          56 :   if (block5.is_used()) {
     655          56 :     compiler::TNode<Context> tmp10;
     656          56 :     compiler::TNode<JSReceiver> tmp11;
     657          56 :     compiler::TNode<Object> tmp12;
     658          56 :     compiler::TNode<Number> tmp13;
     659          56 :     compiler::TNode<Number> tmp14;
     660          56 :     compiler::TNode<Number> tmp15;
     661          56 :     ca_.Bind(&block5, &tmp10, &tmp11, &tmp12, &tmp13, &tmp14, &tmp15);
     662          56 :     ca_.Goto(&block2, tmp10, tmp11, tmp12, tmp13, tmp14);
     663             :   }
     664             : 
     665          56 :   if (block6.is_used()) {
     666          56 :     compiler::TNode<Context> tmp16;
     667          56 :     compiler::TNode<JSReceiver> tmp17;
     668          56 :     compiler::TNode<Object> tmp18;
     669          56 :     compiler::TNode<Number> tmp19;
     670          56 :     compiler::TNode<Number> tmp20;
     671          56 :     compiler::TNode<Number> tmp21;
     672          56 :     ca_.Bind(&block6, &tmp16, &tmp17, &tmp18, &tmp19, &tmp20, &tmp21);
     673          56 :     ca_.Goto(&block3, tmp16, tmp17, tmp18, tmp19, tmp20);
     674             :   }
     675             : 
     676          56 :   if (block2.is_used()) {
     677          56 :     compiler::TNode<Context> tmp22;
     678          56 :     compiler::TNode<JSReceiver> tmp23;
     679          56 :     compiler::TNode<Object> tmp24;
     680          56 :     compiler::TNode<Number> tmp25;
     681          56 :     compiler::TNode<Number> tmp26;
     682          56 :     ca_.Bind(&block2, &tmp22, &tmp23, &tmp24, &tmp25, &tmp26);
     683          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 110);
     684          56 :     compiler::TNode<Oddball> tmp27;
     685          56 :     tmp27 = TORQUE_CAST(CodeStubAssembler(state_).CallBuiltin(Builtins::kHasProperty, tmp22, tmp23, tmp26));
     686          56 :     USE(tmp27);
     687          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 113);
     688          56 :     compiler::TNode<Oddball> tmp28;
     689          56 :     USE(tmp28);
     690          56 :     tmp28 = BaseBuiltinsFromDSLAssembler(state_).True();
     691          56 :     compiler::TNode<BoolT> tmp29;
     692          56 :     USE(tmp29);
     693          56 :     tmp29 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<HeapObject>{tmp27}, compiler::TNode<HeapObject>{tmp28}));
     694          56 :     ca_.Branch(tmp29, &block7, &block8, tmp22, tmp23, tmp24, tmp25, tmp26, tmp27);
     695             :   }
     696             : 
     697          56 :   if (block7.is_used()) {
     698          56 :     compiler::TNode<Context> tmp30;
     699          56 :     compiler::TNode<JSReceiver> tmp31;
     700          56 :     compiler::TNode<Object> tmp32;
     701          56 :     compiler::TNode<Number> tmp33;
     702          56 :     compiler::TNode<Number> tmp34;
     703          56 :     compiler::TNode<Oddball> tmp35;
     704          56 :     ca_.Bind(&block7, &tmp30, &tmp31, &tmp32, &tmp33, &tmp34, &tmp35);
     705          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 115);
     706          56 :     compiler::TNode<Object> tmp36;
     707          56 :     USE(tmp36);
     708          56 :     tmp36 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).GetProperty(compiler::TNode<Context>{tmp30}, compiler::TNode<Object>{tmp31}, compiler::TNode<Object>{tmp34}));
     709          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 119);
     710          56 :     compiler::TNode<Oddball> tmp37;
     711          56 :     USE(tmp37);
     712          56 :     tmp37 = ca_.UncheckedCast<Oddball>(CodeStubAssembler(state_).StrictEqual(compiler::TNode<Object>{tmp32}, compiler::TNode<Object>{tmp36}));
     713          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 122);
     714          56 :     compiler::TNode<Oddball> tmp38;
     715          56 :     USE(tmp38);
     716          56 :     tmp38 = BaseBuiltinsFromDSLAssembler(state_).True();
     717          56 :     compiler::TNode<BoolT> tmp39;
     718          56 :     USE(tmp39);
     719          56 :     tmp39 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<HeapObject>{tmp37}, compiler::TNode<HeapObject>{tmp38}));
     720          56 :     ca_.Branch(tmp39, &block9, &block10, tmp30, tmp31, tmp32, tmp33, tmp34, tmp35, tmp36, tmp37);
     721             :   }
     722             : 
     723          56 :   if (block9.is_used()) {
     724          56 :     compiler::TNode<Context> tmp40;
     725          56 :     compiler::TNode<JSReceiver> tmp41;
     726          56 :     compiler::TNode<Object> tmp42;
     727          56 :     compiler::TNode<Number> tmp43;
     728          56 :     compiler::TNode<Number> tmp44;
     729          56 :     compiler::TNode<Oddball> tmp45;
     730          56 :     compiler::TNode<Object> tmp46;
     731          56 :     compiler::TNode<Oddball> tmp47;
     732          56 :     ca_.Bind(&block9, &tmp40, &tmp41, &tmp42, &tmp43, &tmp44, &tmp45, &tmp46, &tmp47);
     733          56 :     ca_.Goto(&block1, tmp40, tmp41, tmp42, tmp43, tmp44);
     734             :   }
     735             : 
     736          56 :   if (block10.is_used()) {
     737          56 :     compiler::TNode<Context> tmp48;
     738          56 :     compiler::TNode<JSReceiver> tmp49;
     739          56 :     compiler::TNode<Object> tmp50;
     740          56 :     compiler::TNode<Number> tmp51;
     741          56 :     compiler::TNode<Number> tmp52;
     742          56 :     compiler::TNode<Oddball> tmp53;
     743          56 :     compiler::TNode<Object> tmp54;
     744          56 :     compiler::TNode<Oddball> tmp55;
     745          56 :     ca_.Bind(&block10, &tmp48, &tmp49, &tmp50, &tmp51, &tmp52, &tmp53, &tmp54, &tmp55);
     746          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 113);
     747          56 :     ca_.Goto(&block8, tmp48, tmp49, tmp50, tmp51, tmp52, tmp53);
     748             :   }
     749             : 
     750          56 :   if (block8.is_used()) {
     751          56 :     compiler::TNode<Context> tmp56;
     752          56 :     compiler::TNode<JSReceiver> tmp57;
     753          56 :     compiler::TNode<Object> tmp58;
     754          56 :     compiler::TNode<Number> tmp59;
     755          56 :     compiler::TNode<Number> tmp60;
     756          56 :     compiler::TNode<Oddball> tmp61;
     757          56 :     ca_.Bind(&block8, &tmp56, &tmp57, &tmp58, &tmp59, &tmp60, &tmp61);
     758          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 126);
     759          56 :     compiler::TNode<Number> tmp62;
     760          56 :     USE(tmp62);
     761          56 :     tmp62 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr22UT12ATHeapNumber5ATSmi17ATconstexpr_int31(1));
     762          56 :     compiler::TNode<Number> tmp63;
     763          56 :     USE(tmp63);
     764          56 :     tmp63 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberSub(compiler::TNode<Number>{tmp60}, compiler::TNode<Number>{tmp62}));
     765          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 108);
     766          56 :     ca_.Goto(&block4, tmp56, tmp57, tmp58, tmp59, tmp63);
     767             :   }
     768             : 
     769          56 :   if (block3.is_used()) {
     770          56 :     compiler::TNode<Context> tmp64;
     771          56 :     compiler::TNode<JSReceiver> tmp65;
     772          56 :     compiler::TNode<Object> tmp66;
     773          56 :     compiler::TNode<Number> tmp67;
     774          56 :     compiler::TNode<Number> tmp68;
     775          56 :     ca_.Bind(&block3, &tmp64, &tmp65, &tmp66, &tmp67, &tmp68);
     776          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 130);
     777          56 :     compiler::TNode<Smi> tmp69;
     778          56 :     USE(tmp69);
     779          56 :     tmp69 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiConstant(-1));
     780          56 :     ca_.Goto(&block1, tmp64, tmp65, tmp66, tmp67, tmp69);
     781             :   }
     782             : 
     783          56 :   if (block1.is_used()) {
     784          56 :     compiler::TNode<Context> tmp70;
     785          56 :     compiler::TNode<JSReceiver> tmp71;
     786          56 :     compiler::TNode<Object> tmp72;
     787          56 :     compiler::TNode<Number> tmp73;
     788          56 :     compiler::TNode<Object> tmp74;
     789          56 :     ca_.Bind(&block1, &tmp70, &tmp71, &tmp72, &tmp73, &tmp74);
     790          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 102);
     791          56 :     ca_.Goto(&block11, tmp70, tmp71, tmp72, tmp73, tmp74);
     792             :   }
     793             : 
     794          56 :     compiler::TNode<Context> tmp75;
     795          56 :     compiler::TNode<JSReceiver> tmp76;
     796          56 :     compiler::TNode<Object> tmp77;
     797          56 :     compiler::TNode<Number> tmp78;
     798          56 :     compiler::TNode<Object> tmp79;
     799          56 :     ca_.Bind(&block11, &tmp75, &tmp76, &tmp77, &tmp78, &tmp79);
     800         112 :   return compiler::TNode<Object>{tmp79};
     801             : }
     802             : 
     803         336 : TF_BUILTIN(ArrayPrototypeLastIndexOf, CodeStubAssembler) {
     804         112 :   compiler::CodeAssemblerState* state_ = state();  compiler::CodeAssembler ca_(state());
     805          56 :   TNode<Context> parameter0 = UncheckedCast<Context>(Parameter(Descriptor::kContext));
     806          56 :   USE(parameter0);
     807          56 :   Node* argc = Parameter(Descriptor::kJSActualArgumentsCount);
     808          56 :   CodeStubArguments arguments_impl(this, ChangeInt32ToIntPtr(argc));
     809          56 :   TNode<Object> parameter1 = arguments_impl.GetReceiver();
     810          56 : auto arguments = &arguments_impl;
     811          56 : USE(arguments);
     812          56 : USE(parameter1);
     813         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     814         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     815         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     816         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Number, Object, Context, JSReceiver, Object, Number> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     817         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Number, Object, Context, JSReceiver, Object, Number, Object> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     818         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Number, Object> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     819          56 :     ca_.Goto(&block0, parameter0, parameter1);
     820             : 
     821          56 :   if (block0.is_used()) {
     822          56 :     compiler::TNode<Context> tmp0;
     823          56 :     compiler::TNode<Object> tmp1;
     824          56 :     ca_.Bind(&block0, &tmp0, &tmp1);
     825          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 137);
     826          56 :     compiler::TNode<JSReceiver> tmp2;
     827          56 :     USE(tmp2);
     828          56 :     tmp2 = ca_.UncheckedCast<JSReceiver>(CodeStubAssembler(state_).ToObject_Inline(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}));
     829          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 140);
     830          56 :     compiler::TNode<Number> tmp3;
     831          56 :     USE(tmp3);
     832          56 :     tmp3 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).GetLengthProperty(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp2}));
     833          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 143);
     834          56 :     compiler::TNode<Smi> tmp4;
     835          56 :     USE(tmp4);
     836          56 :     tmp4 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiConstant(0));
     837          56 :     compiler::TNode<BoolT> tmp5;
     838          56 :     USE(tmp5);
     839          56 :     tmp5 = ca_.UncheckedCast<BoolT>(BaseBuiltinsFromDSLAssembler(state_).IsNumberEqual(compiler::TNode<Number>{tmp3}, compiler::TNode<Number>{tmp4}));
     840          56 :     ca_.Branch(tmp5, &block1, &block2, tmp0, tmp1, tmp2, tmp3);
     841             :   }
     842             : 
     843          56 :   if (block1.is_used()) {
     844          56 :     compiler::TNode<Context> tmp6;
     845          56 :     compiler::TNode<Object> tmp7;
     846          56 :     compiler::TNode<JSReceiver> tmp8;
     847          56 :     compiler::TNode<Number> tmp9;
     848          56 :     ca_.Bind(&block1, &tmp6, &tmp7, &tmp8, &tmp9);
     849          56 :     compiler::TNode<Smi> tmp10;
     850          56 :     USE(tmp10);
     851          56 :     tmp10 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiConstant(-1));
     852          56 :     arguments->PopAndReturn(tmp10);
     853             :   }
     854             : 
     855          56 :   if (block2.is_used()) {
     856          56 :     compiler::TNode<Context> tmp11;
     857          56 :     compiler::TNode<Object> tmp12;
     858          56 :     compiler::TNode<JSReceiver> tmp13;
     859          56 :     compiler::TNode<Number> tmp14;
     860          56 :     ca_.Bind(&block2, &tmp11, &tmp12, &tmp13, &tmp14);
     861          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 146);
     862          56 :     compiler::TNode<Number> tmp15;
     863          56 :     USE(tmp15);
     864          56 :     tmp15 = ca_.UncheckedCast<Number>(ArrayLastindexofBuiltinsFromDSLAssembler(state_).GetFromIndex(compiler::TNode<Context>{tmp11}, compiler::TNode<Number>{tmp14}, arguments));
     865          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 148);
     866          56 :     compiler::TNode<IntPtrT> tmp16;
     867          56 :     USE(tmp16);
     868          56 :     tmp16 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(0));
     869          56 :     compiler::TNode<Object> tmp17;
     870          56 :     USE(tmp17);
     871          56 :     tmp17 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).GetArgumentValue(arguments, compiler::TNode<IntPtrT>{tmp16}));
     872          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 151);
     873          56 :     compiler::TNode<Object> tmp18;
     874          56 :     USE(tmp18);
     875         112 :     compiler::CodeAssemblerLabel label0(&ca_);
     876          56 :     tmp18 = ArrayLastindexofBuiltinsFromDSLAssembler(state_).TryFastArrayLastIndexOf(compiler::TNode<Context>{tmp11}, compiler::TNode<JSReceiver>{tmp13}, compiler::TNode<Object>{tmp17}, compiler::TNode<Number>{tmp15}, &label0);
     877          56 :     ca_.Goto(&block5, tmp11, tmp12, tmp13, tmp14, tmp15, tmp17, tmp11, tmp13, tmp17, tmp15, tmp18);
     878          56 :     if (label0.is_used()) {
     879          56 :       ca_.Bind(&label0);
     880          56 :       ca_.Goto(&block6, tmp11, tmp12, tmp13, tmp14, tmp15, tmp17, tmp11, tmp13, tmp17, tmp15);
     881             :     }
     882             :   }
     883             : 
     884          56 :   if (block6.is_used()) {
     885          56 :     compiler::TNode<Context> tmp19;
     886          56 :     compiler::TNode<Object> tmp20;
     887          56 :     compiler::TNode<JSReceiver> tmp21;
     888          56 :     compiler::TNode<Number> tmp22;
     889          56 :     compiler::TNode<Number> tmp23;
     890          56 :     compiler::TNode<Object> tmp24;
     891          56 :     compiler::TNode<Context> tmp25;
     892          56 :     compiler::TNode<JSReceiver> tmp26;
     893          56 :     compiler::TNode<Object> tmp27;
     894          56 :     compiler::TNode<Number> tmp28;
     895          56 :     ca_.Bind(&block6, &tmp19, &tmp20, &tmp21, &tmp22, &tmp23, &tmp24, &tmp25, &tmp26, &tmp27, &tmp28);
     896          56 :     ca_.Goto(&block4, tmp19, tmp20, tmp21, tmp22, tmp23, tmp24);
     897             :   }
     898             : 
     899          56 :   if (block5.is_used()) {
     900          56 :     compiler::TNode<Context> tmp29;
     901          56 :     compiler::TNode<Object> tmp30;
     902          56 :     compiler::TNode<JSReceiver> tmp31;
     903          56 :     compiler::TNode<Number> tmp32;
     904          56 :     compiler::TNode<Number> tmp33;
     905          56 :     compiler::TNode<Object> tmp34;
     906          56 :     compiler::TNode<Context> tmp35;
     907          56 :     compiler::TNode<JSReceiver> tmp36;
     908          56 :     compiler::TNode<Object> tmp37;
     909          56 :     compiler::TNode<Number> tmp38;
     910          56 :     compiler::TNode<Object> tmp39;
     911          56 :     ca_.Bind(&block5, &tmp29, &tmp30, &tmp31, &tmp32, &tmp33, &tmp34, &tmp35, &tmp36, &tmp37, &tmp38, &tmp39);
     912          56 :     arguments->PopAndReturn(tmp39);
     913             :   }
     914             : 
     915          56 :   if (block4.is_used()) {
     916          56 :     compiler::TNode<Context> tmp40;
     917          56 :     compiler::TNode<Object> tmp41;
     918          56 :     compiler::TNode<JSReceiver> tmp42;
     919          56 :     compiler::TNode<Number> tmp43;
     920          56 :     compiler::TNode<Number> tmp44;
     921          56 :     compiler::TNode<Object> tmp45;
     922          56 :     ca_.Bind(&block4, &tmp40, &tmp41, &tmp42, &tmp43, &tmp44, &tmp45);
     923          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 155);
     924          56 :     compiler::TNode<Object> tmp46;
     925          56 :     USE(tmp46);
     926          56 :     tmp46 = ca_.UncheckedCast<Object>(ArrayLastindexofBuiltinsFromDSLAssembler(state_).GenericArrayLastIndexOf(compiler::TNode<Context>{tmp40}, compiler::TNode<JSReceiver>{tmp42}, compiler::TNode<Object>{tmp45}, compiler::TNode<Number>{tmp44}));
     927          56 :     arguments->PopAndReturn(tmp46);
     928             :   }
     929          56 : }
     930             : 
     931          56 : compiler::TNode<Smi> ArrayLastindexofBuiltinsFromDSLAssembler::FastArrayLastIndexOf10FixedArray(compiler::TNode<Context> p_context, compiler::TNode<JSArray> p_array, compiler::TNode<Smi> p_from, compiler::TNode<Object> p_searchElement) {
     932         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     933         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object, FixedArrayBase, Smi> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     934         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object, FixedArrayBase, Smi> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     935         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object, FixedArrayBase, Smi> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     936         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object, FixedArrayBase, Smi> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     937         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object, FixedArrayBase, Smi, FixedArrayBase, Smi> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     938         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object, FixedArrayBase, Smi, FixedArrayBase, Smi, Object> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     939         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object, FixedArrayBase, Smi, Object, Oddball> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     940         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object, FixedArrayBase, Smi, Object, Oddball> block12(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     941         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object, FixedArrayBase, Smi> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     942         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object, FixedArrayBase, Smi> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     943         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object, FixedArrayBase, Smi> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     944         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object, Smi> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     945         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object, Smi> block13(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     946          56 :     ca_.Goto(&block0, p_context, p_array, p_from, p_searchElement);
     947             : 
     948          56 :   if (block0.is_used()) {
     949          56 :     compiler::TNode<Context> tmp0;
     950          56 :     compiler::TNode<JSArray> tmp1;
     951          56 :     compiler::TNode<Smi> tmp2;
     952          56 :     compiler::TNode<Object> tmp3;
     953          56 :     ca_.Bind(&block0, &tmp0, &tmp1, &tmp2, &tmp3);
     954          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 30);
     955          56 :     compiler::TNode<FixedArrayBase> tmp4;
     956          56 :     USE(tmp4);
     957          56 :     tmp4 = ca_.UncheckedCast<FixedArrayBase>(BaseBuiltinsFromDSLAssembler(state_).LoadJSObjectElements(compiler::TNode<JSObject>{tmp1}));
     958          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 31);
     959          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 37);
     960          56 :     compiler::TNode<Smi> tmp5;
     961          56 :     USE(tmp5);
     962          56 :     tmp5 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).LoadFixedArrayBaseLength(compiler::TNode<FixedArrayBase>{tmp4}));
     963          56 :     compiler::TNode<BoolT> tmp6;
     964          56 :     USE(tmp6);
     965          56 :     tmp6 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiGreaterThanOrEqual(compiler::TNode<Smi>{tmp2}, compiler::TNode<Smi>{tmp5}));
     966          56 :     ca_.Branch(tmp6, &block2, &block3, tmp0, tmp1, tmp2, tmp3, tmp4, tmp2);
     967             :   }
     968             : 
     969          56 :   if (block2.is_used()) {
     970          56 :     compiler::TNode<Context> tmp7;
     971          56 :     compiler::TNode<JSArray> tmp8;
     972          56 :     compiler::TNode<Smi> tmp9;
     973          56 :     compiler::TNode<Object> tmp10;
     974          56 :     compiler::TNode<FixedArrayBase> tmp11;
     975          56 :     compiler::TNode<Smi> tmp12;
     976          56 :     ca_.Bind(&block2, &tmp7, &tmp8, &tmp9, &tmp10, &tmp11, &tmp12);
     977          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 38);
     978          56 :     compiler::TNode<Smi> tmp13;
     979          56 :     USE(tmp13);
     980          56 :     tmp13 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).LoadFixedArrayBaseLength(compiler::TNode<FixedArrayBase>{tmp11}));
     981          56 :     compiler::TNode<Smi> tmp14;
     982          56 :     USE(tmp14);
     983          56 :     tmp14 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(1));
     984          56 :     compiler::TNode<Smi> tmp15;
     985          56 :     USE(tmp15);
     986          56 :     tmp15 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiSub(compiler::TNode<Smi>{tmp13}, compiler::TNode<Smi>{tmp14}));
     987          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 37);
     988          56 :     ca_.Goto(&block3, tmp7, tmp8, tmp9, tmp10, tmp11, tmp15);
     989             :   }
     990             : 
     991          56 :   if (block3.is_used()) {
     992          56 :     compiler::TNode<Context> tmp16;
     993          56 :     compiler::TNode<JSArray> tmp17;
     994          56 :     compiler::TNode<Smi> tmp18;
     995          56 :     compiler::TNode<Object> tmp19;
     996          56 :     compiler::TNode<FixedArrayBase> tmp20;
     997          56 :     compiler::TNode<Smi> tmp21;
     998          56 :     ca_.Bind(&block3, &tmp16, &tmp17, &tmp18, &tmp19, &tmp20, &tmp21);
     999          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 41);
    1000          56 :     ca_.Goto(&block6, tmp16, tmp17, tmp18, tmp19, tmp20, tmp21);
    1001             :   }
    1002             : 
    1003          56 :   if (block6.is_used()) {
    1004          56 :     compiler::TNode<Context> tmp22;
    1005          56 :     compiler::TNode<JSArray> tmp23;
    1006          56 :     compiler::TNode<Smi> tmp24;
    1007          56 :     compiler::TNode<Object> tmp25;
    1008          56 :     compiler::TNode<FixedArrayBase> tmp26;
    1009          56 :     compiler::TNode<Smi> tmp27;
    1010          56 :     ca_.Bind(&block6, &tmp22, &tmp23, &tmp24, &tmp25, &tmp26, &tmp27);
    1011          56 :     compiler::TNode<Smi> tmp28;
    1012          56 :     USE(tmp28);
    1013          56 :     tmp28 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(0));
    1014          56 :     compiler::TNode<BoolT> tmp29;
    1015          56 :     USE(tmp29);
    1016          56 :     tmp29 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiGreaterThanOrEqual(compiler::TNode<Smi>{tmp27}, compiler::TNode<Smi>{tmp28}));
    1017          56 :     ca_.Branch(tmp29, &block4, &block5, tmp22, tmp23, tmp24, tmp25, tmp26, tmp27);
    1018             :   }
    1019             : 
    1020          56 :   if (block4.is_used()) {
    1021          56 :     compiler::TNode<Context> tmp30;
    1022          56 :     compiler::TNode<JSArray> tmp31;
    1023          56 :     compiler::TNode<Smi> tmp32;
    1024          56 :     compiler::TNode<Object> tmp33;
    1025          56 :     compiler::TNode<FixedArrayBase> tmp34;
    1026          56 :     compiler::TNode<Smi> tmp35;
    1027          56 :     ca_.Bind(&block4, &tmp30, &tmp31, &tmp32, &tmp33, &tmp34, &tmp35);
    1028          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 43);
    1029          56 :     compiler::TNode<Object> tmp36;
    1030          56 :     USE(tmp36);
    1031         112 :     compiler::CodeAssemblerLabel label0(&ca_);
    1032          56 :     tmp36 = ArrayLastindexofBuiltinsFromDSLAssembler(state_).LoadWithHoleCheck10FixedArray(compiler::TNode<Context>{tmp30}, compiler::TNode<FixedArrayBase>{tmp34}, compiler::TNode<Smi>{tmp35}, &label0);
    1033          56 :     ca_.Goto(&block9, tmp30, tmp31, tmp32, tmp33, tmp34, tmp35, tmp34, tmp35, tmp36);
    1034          56 :     if (label0.is_used()) {
    1035          56 :       ca_.Bind(&label0);
    1036          56 :       ca_.Goto(&block10, tmp30, tmp31, tmp32, tmp33, tmp34, tmp35, tmp34, tmp35);
    1037             :     }
    1038             :   }
    1039             : 
    1040          56 :   if (block10.is_used()) {
    1041          56 :     compiler::TNode<Context> tmp37;
    1042          56 :     compiler::TNode<JSArray> tmp38;
    1043          56 :     compiler::TNode<Smi> tmp39;
    1044          56 :     compiler::TNode<Object> tmp40;
    1045          56 :     compiler::TNode<FixedArrayBase> tmp41;
    1046          56 :     compiler::TNode<Smi> tmp42;
    1047          56 :     compiler::TNode<FixedArrayBase> tmp43;
    1048          56 :     compiler::TNode<Smi> tmp44;
    1049          56 :     ca_.Bind(&block10, &tmp37, &tmp38, &tmp39, &tmp40, &tmp41, &tmp42, &tmp43, &tmp44);
    1050          56 :     ca_.Goto(&block8, tmp37, tmp38, tmp39, tmp40, tmp41, tmp42);
    1051             :   }
    1052             : 
    1053          56 :   if (block9.is_used()) {
    1054          56 :     compiler::TNode<Context> tmp45;
    1055          56 :     compiler::TNode<JSArray> tmp46;
    1056          56 :     compiler::TNode<Smi> tmp47;
    1057          56 :     compiler::TNode<Object> tmp48;
    1058          56 :     compiler::TNode<FixedArrayBase> tmp49;
    1059          56 :     compiler::TNode<Smi> tmp50;
    1060          56 :     compiler::TNode<FixedArrayBase> tmp51;
    1061          56 :     compiler::TNode<Smi> tmp52;
    1062          56 :     compiler::TNode<Object> tmp53;
    1063          56 :     ca_.Bind(&block9, &tmp45, &tmp46, &tmp47, &tmp48, &tmp49, &tmp50, &tmp51, &tmp52, &tmp53);
    1064          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 46);
    1065          56 :     compiler::TNode<Oddball> tmp54;
    1066          56 :     USE(tmp54);
    1067          56 :     tmp54 = ca_.UncheckedCast<Oddball>(CodeStubAssembler(state_).StrictEqual(compiler::TNode<Object>{tmp48}, compiler::TNode<Object>{tmp53}));
    1068          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 47);
    1069          56 :     compiler::TNode<Oddball> tmp55;
    1070          56 :     USE(tmp55);
    1071          56 :     tmp55 = BaseBuiltinsFromDSLAssembler(state_).True();
    1072          56 :     compiler::TNode<BoolT> tmp56;
    1073          56 :     USE(tmp56);
    1074          56 :     tmp56 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<HeapObject>{tmp54}, compiler::TNode<HeapObject>{tmp55}));
    1075          56 :     ca_.Branch(tmp56, &block11, &block12, tmp45, tmp46, tmp47, tmp48, tmp49, tmp50, tmp53, tmp54);
    1076             :   }
    1077             : 
    1078          56 :   if (block11.is_used()) {
    1079          56 :     compiler::TNode<Context> tmp57;
    1080          56 :     compiler::TNode<JSArray> tmp58;
    1081          56 :     compiler::TNode<Smi> tmp59;
    1082          56 :     compiler::TNode<Object> tmp60;
    1083          56 :     compiler::TNode<FixedArrayBase> tmp61;
    1084          56 :     compiler::TNode<Smi> tmp62;
    1085          56 :     compiler::TNode<Object> tmp63;
    1086          56 :     compiler::TNode<Oddball> tmp64;
    1087          56 :     ca_.Bind(&block11, &tmp57, &tmp58, &tmp59, &tmp60, &tmp61, &tmp62, &tmp63, &tmp64);
    1088          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 49);
    1089          56 :     ca_.Goto(&block1, tmp57, tmp58, tmp59, tmp60, tmp62);
    1090             :   }
    1091             : 
    1092          56 :   if (block12.is_used()) {
    1093          56 :     compiler::TNode<Context> tmp65;
    1094          56 :     compiler::TNode<JSArray> tmp66;
    1095          56 :     compiler::TNode<Smi> tmp67;
    1096          56 :     compiler::TNode<Object> tmp68;
    1097          56 :     compiler::TNode<FixedArrayBase> tmp69;
    1098          56 :     compiler::TNode<Smi> tmp70;
    1099          56 :     compiler::TNode<Object> tmp71;
    1100          56 :     compiler::TNode<Oddball> tmp72;
    1101          56 :     ca_.Bind(&block12, &tmp65, &tmp66, &tmp67, &tmp68, &tmp69, &tmp70, &tmp71, &tmp72);
    1102          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 42);
    1103          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 52);
    1104          56 :     ca_.Goto(&block7, tmp65, tmp66, tmp67, tmp68, tmp69, tmp70);
    1105             :   }
    1106             : 
    1107          56 :   if (block8.is_used()) {
    1108          56 :     compiler::TNode<Context> tmp73;
    1109          56 :     compiler::TNode<JSArray> tmp74;
    1110          56 :     compiler::TNode<Smi> tmp75;
    1111          56 :     compiler::TNode<Object> tmp76;
    1112          56 :     compiler::TNode<FixedArrayBase> tmp77;
    1113          56 :     compiler::TNode<Smi> tmp78;
    1114          56 :     ca_.Bind(&block8, &tmp73, &tmp74, &tmp75, &tmp76, &tmp77, &tmp78);
    1115          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 42);
    1116          56 :     ca_.Goto(&block7, tmp73, tmp74, tmp75, tmp76, tmp77, tmp78);
    1117             :   }
    1118             : 
    1119          56 :   if (block7.is_used()) {
    1120          56 :     compiler::TNode<Context> tmp79;
    1121          56 :     compiler::TNode<JSArray> tmp80;
    1122          56 :     compiler::TNode<Smi> tmp81;
    1123          56 :     compiler::TNode<Object> tmp82;
    1124          56 :     compiler::TNode<FixedArrayBase> tmp83;
    1125          56 :     compiler::TNode<Smi> tmp84;
    1126          56 :     ca_.Bind(&block7, &tmp79, &tmp80, &tmp81, &tmp82, &tmp83, &tmp84);
    1127          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 54);
    1128          56 :     compiler::TNode<Smi> tmp85;
    1129          56 :     USE(tmp85);
    1130          56 :     tmp85 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(1));
    1131          56 :     compiler::TNode<Smi> tmp86;
    1132          56 :     USE(tmp86);
    1133          56 :     tmp86 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiSub(compiler::TNode<Smi>{tmp84}, compiler::TNode<Smi>{tmp85}));
    1134          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 41);
    1135          56 :     ca_.Goto(&block6, tmp79, tmp80, tmp81, tmp82, tmp83, tmp86);
    1136             :   }
    1137             : 
    1138          56 :   if (block5.is_used()) {
    1139          56 :     compiler::TNode<Context> tmp87;
    1140          56 :     compiler::TNode<JSArray> tmp88;
    1141          56 :     compiler::TNode<Smi> tmp89;
    1142          56 :     compiler::TNode<Object> tmp90;
    1143          56 :     compiler::TNode<FixedArrayBase> tmp91;
    1144          56 :     compiler::TNode<Smi> tmp92;
    1145          56 :     ca_.Bind(&block5, &tmp87, &tmp88, &tmp89, &tmp90, &tmp91, &tmp92);
    1146          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 58);
    1147          56 :     compiler::TNode<Smi> tmp93;
    1148          56 :     USE(tmp93);
    1149          56 :     tmp93 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(-1));
    1150          56 :     ca_.Goto(&block1, tmp87, tmp88, tmp89, tmp90, tmp93);
    1151             :   }
    1152             : 
    1153          56 :   if (block1.is_used()) {
    1154          56 :     compiler::TNode<Context> tmp94;
    1155          56 :     compiler::TNode<JSArray> tmp95;
    1156          56 :     compiler::TNode<Smi> tmp96;
    1157          56 :     compiler::TNode<Object> tmp97;
    1158          56 :     compiler::TNode<Smi> tmp98;
    1159          56 :     ca_.Bind(&block1, &tmp94, &tmp95, &tmp96, &tmp97, &tmp98);
    1160          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 28);
    1161          56 :     ca_.Goto(&block13, tmp94, tmp95, tmp96, tmp97, tmp98);
    1162             :   }
    1163             : 
    1164          56 :     compiler::TNode<Context> tmp99;
    1165          56 :     compiler::TNode<JSArray> tmp100;
    1166          56 :     compiler::TNode<Smi> tmp101;
    1167          56 :     compiler::TNode<Object> tmp102;
    1168          56 :     compiler::TNode<Smi> tmp103;
    1169          56 :     ca_.Bind(&block13, &tmp99, &tmp100, &tmp101, &tmp102, &tmp103);
    1170         112 :   return compiler::TNode<Smi>{tmp103};
    1171             : }
    1172             : 
    1173          56 : compiler::TNode<Smi> ArrayLastindexofBuiltinsFromDSLAssembler::FastArrayLastIndexOf16FixedDoubleArray(compiler::TNode<Context> p_context, compiler::TNode<JSArray> p_array, compiler::TNode<Smi> p_from, compiler::TNode<Object> p_searchElement) {
    1174         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
    1175         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object, FixedArrayBase, Smi> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
    1176         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object, FixedArrayBase, Smi> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
    1177         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object, FixedArrayBase, Smi> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
    1178         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object, FixedArrayBase, Smi> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
    1179         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object, FixedArrayBase, Smi, FixedArrayBase, Smi> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
    1180         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object, FixedArrayBase, Smi, FixedArrayBase, Smi, Object> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
    1181         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object, FixedArrayBase, Smi, Object, Oddball> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
    1182         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object, FixedArrayBase, Smi, Object, Oddball> block12(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
    1183         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object, FixedArrayBase, Smi> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
    1184         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object, FixedArrayBase, Smi> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
    1185         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object, FixedArrayBase, Smi> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
    1186         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object, Smi> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
    1187         112 :   compiler::CodeAssemblerParameterizedLabel<Context, JSArray, Smi, Object, Smi> block13(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
    1188          56 :     ca_.Goto(&block0, p_context, p_array, p_from, p_searchElement);
    1189             : 
    1190          56 :   if (block0.is_used()) {
    1191          56 :     compiler::TNode<Context> tmp0;
    1192          56 :     compiler::TNode<JSArray> tmp1;
    1193          56 :     compiler::TNode<Smi> tmp2;
    1194          56 :     compiler::TNode<Object> tmp3;
    1195          56 :     ca_.Bind(&block0, &tmp0, &tmp1, &tmp2, &tmp3);
    1196          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 30);
    1197          56 :     compiler::TNode<FixedArrayBase> tmp4;
    1198          56 :     USE(tmp4);
    1199          56 :     tmp4 = ca_.UncheckedCast<FixedArrayBase>(BaseBuiltinsFromDSLAssembler(state_).LoadJSObjectElements(compiler::TNode<JSObject>{tmp1}));
    1200          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 31);
    1201          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 37);
    1202          56 :     compiler::TNode<Smi> tmp5;
    1203          56 :     USE(tmp5);
    1204          56 :     tmp5 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).LoadFixedArrayBaseLength(compiler::TNode<FixedArrayBase>{tmp4}));
    1205          56 :     compiler::TNode<BoolT> tmp6;
    1206          56 :     USE(tmp6);
    1207          56 :     tmp6 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiGreaterThanOrEqual(compiler::TNode<Smi>{tmp2}, compiler::TNode<Smi>{tmp5}));
    1208          56 :     ca_.Branch(tmp6, &block2, &block3, tmp0, tmp1, tmp2, tmp3, tmp4, tmp2);
    1209             :   }
    1210             : 
    1211          56 :   if (block2.is_used()) {
    1212          56 :     compiler::TNode<Context> tmp7;
    1213          56 :     compiler::TNode<JSArray> tmp8;
    1214          56 :     compiler::TNode<Smi> tmp9;
    1215          56 :     compiler::TNode<Object> tmp10;
    1216          56 :     compiler::TNode<FixedArrayBase> tmp11;
    1217          56 :     compiler::TNode<Smi> tmp12;
    1218          56 :     ca_.Bind(&block2, &tmp7, &tmp8, &tmp9, &tmp10, &tmp11, &tmp12);
    1219          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 38);
    1220          56 :     compiler::TNode<Smi> tmp13;
    1221          56 :     USE(tmp13);
    1222          56 :     tmp13 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).LoadFixedArrayBaseLength(compiler::TNode<FixedArrayBase>{tmp11}));
    1223          56 :     compiler::TNode<Smi> tmp14;
    1224          56 :     USE(tmp14);
    1225          56 :     tmp14 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(1));
    1226          56 :     compiler::TNode<Smi> tmp15;
    1227          56 :     USE(tmp15);
    1228          56 :     tmp15 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiSub(compiler::TNode<Smi>{tmp13}, compiler::TNode<Smi>{tmp14}));
    1229          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 37);
    1230          56 :     ca_.Goto(&block3, tmp7, tmp8, tmp9, tmp10, tmp11, tmp15);
    1231             :   }
    1232             : 
    1233          56 :   if (block3.is_used()) {
    1234          56 :     compiler::TNode<Context> tmp16;
    1235          56 :     compiler::TNode<JSArray> tmp17;
    1236          56 :     compiler::TNode<Smi> tmp18;
    1237          56 :     compiler::TNode<Object> tmp19;
    1238          56 :     compiler::TNode<FixedArrayBase> tmp20;
    1239          56 :     compiler::TNode<Smi> tmp21;
    1240          56 :     ca_.Bind(&block3, &tmp16, &tmp17, &tmp18, &tmp19, &tmp20, &tmp21);
    1241          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 41);
    1242          56 :     ca_.Goto(&block6, tmp16, tmp17, tmp18, tmp19, tmp20, tmp21);
    1243             :   }
    1244             : 
    1245          56 :   if (block6.is_used()) {
    1246          56 :     compiler::TNode<Context> tmp22;
    1247          56 :     compiler::TNode<JSArray> tmp23;
    1248          56 :     compiler::TNode<Smi> tmp24;
    1249          56 :     compiler::TNode<Object> tmp25;
    1250          56 :     compiler::TNode<FixedArrayBase> tmp26;
    1251          56 :     compiler::TNode<Smi> tmp27;
    1252          56 :     ca_.Bind(&block6, &tmp22, &tmp23, &tmp24, &tmp25, &tmp26, &tmp27);
    1253          56 :     compiler::TNode<Smi> tmp28;
    1254          56 :     USE(tmp28);
    1255          56 :     tmp28 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(0));
    1256          56 :     compiler::TNode<BoolT> tmp29;
    1257          56 :     USE(tmp29);
    1258          56 :     tmp29 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiGreaterThanOrEqual(compiler::TNode<Smi>{tmp27}, compiler::TNode<Smi>{tmp28}));
    1259          56 :     ca_.Branch(tmp29, &block4, &block5, tmp22, tmp23, tmp24, tmp25, tmp26, tmp27);
    1260             :   }
    1261             : 
    1262          56 :   if (block4.is_used()) {
    1263          56 :     compiler::TNode<Context> tmp30;
    1264          56 :     compiler::TNode<JSArray> tmp31;
    1265          56 :     compiler::TNode<Smi> tmp32;
    1266          56 :     compiler::TNode<Object> tmp33;
    1267          56 :     compiler::TNode<FixedArrayBase> tmp34;
    1268          56 :     compiler::TNode<Smi> tmp35;
    1269          56 :     ca_.Bind(&block4, &tmp30, &tmp31, &tmp32, &tmp33, &tmp34, &tmp35);
    1270          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 43);
    1271          56 :     compiler::TNode<Object> tmp36;
    1272          56 :     USE(tmp36);
    1273         112 :     compiler::CodeAssemblerLabel label0(&ca_);
    1274          56 :     tmp36 = ArrayLastindexofBuiltinsFromDSLAssembler(state_).LoadWithHoleCheck16FixedDoubleArray(compiler::TNode<Context>{tmp30}, compiler::TNode<FixedArrayBase>{tmp34}, compiler::TNode<Smi>{tmp35}, &label0);
    1275          56 :     ca_.Goto(&block9, tmp30, tmp31, tmp32, tmp33, tmp34, tmp35, tmp34, tmp35, tmp36);
    1276          56 :     if (label0.is_used()) {
    1277          56 :       ca_.Bind(&label0);
    1278          56 :       ca_.Goto(&block10, tmp30, tmp31, tmp32, tmp33, tmp34, tmp35, tmp34, tmp35);
    1279             :     }
    1280             :   }
    1281             : 
    1282          56 :   if (block10.is_used()) {
    1283          56 :     compiler::TNode<Context> tmp37;
    1284          56 :     compiler::TNode<JSArray> tmp38;
    1285          56 :     compiler::TNode<Smi> tmp39;
    1286          56 :     compiler::TNode<Object> tmp40;
    1287          56 :     compiler::TNode<FixedArrayBase> tmp41;
    1288          56 :     compiler::TNode<Smi> tmp42;
    1289          56 :     compiler::TNode<FixedArrayBase> tmp43;
    1290          56 :     compiler::TNode<Smi> tmp44;
    1291          56 :     ca_.Bind(&block10, &tmp37, &tmp38, &tmp39, &tmp40, &tmp41, &tmp42, &tmp43, &tmp44);
    1292          56 :     ca_.Goto(&block8, tmp37, tmp38, tmp39, tmp40, tmp41, tmp42);
    1293             :   }
    1294             : 
    1295          56 :   if (block9.is_used()) {
    1296          56 :     compiler::TNode<Context> tmp45;
    1297          56 :     compiler::TNode<JSArray> tmp46;
    1298          56 :     compiler::TNode<Smi> tmp47;
    1299          56 :     compiler::TNode<Object> tmp48;
    1300          56 :     compiler::TNode<FixedArrayBase> tmp49;
    1301          56 :     compiler::TNode<Smi> tmp50;
    1302          56 :     compiler::TNode<FixedArrayBase> tmp51;
    1303          56 :     compiler::TNode<Smi> tmp52;
    1304          56 :     compiler::TNode<Object> tmp53;
    1305          56 :     ca_.Bind(&block9, &tmp45, &tmp46, &tmp47, &tmp48, &tmp49, &tmp50, &tmp51, &tmp52, &tmp53);
    1306          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 46);
    1307          56 :     compiler::TNode<Oddball> tmp54;
    1308          56 :     USE(tmp54);
    1309          56 :     tmp54 = ca_.UncheckedCast<Oddball>(CodeStubAssembler(state_).StrictEqual(compiler::TNode<Object>{tmp48}, compiler::TNode<Object>{tmp53}));
    1310          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 47);
    1311          56 :     compiler::TNode<Oddball> tmp55;
    1312          56 :     USE(tmp55);
    1313          56 :     tmp55 = BaseBuiltinsFromDSLAssembler(state_).True();
    1314          56 :     compiler::TNode<BoolT> tmp56;
    1315          56 :     USE(tmp56);
    1316          56 :     tmp56 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<HeapObject>{tmp54}, compiler::TNode<HeapObject>{tmp55}));
    1317          56 :     ca_.Branch(tmp56, &block11, &block12, tmp45, tmp46, tmp47, tmp48, tmp49, tmp50, tmp53, tmp54);
    1318             :   }
    1319             : 
    1320          56 :   if (block11.is_used()) {
    1321          56 :     compiler::TNode<Context> tmp57;
    1322          56 :     compiler::TNode<JSArray> tmp58;
    1323          56 :     compiler::TNode<Smi> tmp59;
    1324          56 :     compiler::TNode<Object> tmp60;
    1325          56 :     compiler::TNode<FixedArrayBase> tmp61;
    1326          56 :     compiler::TNode<Smi> tmp62;
    1327          56 :     compiler::TNode<Object> tmp63;
    1328          56 :     compiler::TNode<Oddball> tmp64;
    1329          56 :     ca_.Bind(&block11, &tmp57, &tmp58, &tmp59, &tmp60, &tmp61, &tmp62, &tmp63, &tmp64);
    1330          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 49);
    1331          56 :     ca_.Goto(&block1, tmp57, tmp58, tmp59, tmp60, tmp62);
    1332             :   }
    1333             : 
    1334          56 :   if (block12.is_used()) {
    1335          56 :     compiler::TNode<Context> tmp65;
    1336          56 :     compiler::TNode<JSArray> tmp66;
    1337          56 :     compiler::TNode<Smi> tmp67;
    1338          56 :     compiler::TNode<Object> tmp68;
    1339          56 :     compiler::TNode<FixedArrayBase> tmp69;
    1340          56 :     compiler::TNode<Smi> tmp70;
    1341          56 :     compiler::TNode<Object> tmp71;
    1342          56 :     compiler::TNode<Oddball> tmp72;
    1343          56 :     ca_.Bind(&block12, &tmp65, &tmp66, &tmp67, &tmp68, &tmp69, &tmp70, &tmp71, &tmp72);
    1344          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 42);
    1345          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 52);
    1346          56 :     ca_.Goto(&block7, tmp65, tmp66, tmp67, tmp68, tmp69, tmp70);
    1347             :   }
    1348             : 
    1349          56 :   if (block8.is_used()) {
    1350          56 :     compiler::TNode<Context> tmp73;
    1351          56 :     compiler::TNode<JSArray> tmp74;
    1352          56 :     compiler::TNode<Smi> tmp75;
    1353          56 :     compiler::TNode<Object> tmp76;
    1354          56 :     compiler::TNode<FixedArrayBase> tmp77;
    1355          56 :     compiler::TNode<Smi> tmp78;
    1356          56 :     ca_.Bind(&block8, &tmp73, &tmp74, &tmp75, &tmp76, &tmp77, &tmp78);
    1357          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 42);
    1358          56 :     ca_.Goto(&block7, tmp73, tmp74, tmp75, tmp76, tmp77, tmp78);
    1359             :   }
    1360             : 
    1361          56 :   if (block7.is_used()) {
    1362          56 :     compiler::TNode<Context> tmp79;
    1363          56 :     compiler::TNode<JSArray> tmp80;
    1364          56 :     compiler::TNode<Smi> tmp81;
    1365          56 :     compiler::TNode<Object> tmp82;
    1366          56 :     compiler::TNode<FixedArrayBase> tmp83;
    1367          56 :     compiler::TNode<Smi> tmp84;
    1368          56 :     ca_.Bind(&block7, &tmp79, &tmp80, &tmp81, &tmp82, &tmp83, &tmp84);
    1369          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 54);
    1370          56 :     compiler::TNode<Smi> tmp85;
    1371          56 :     USE(tmp85);
    1372          56 :     tmp85 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(1));
    1373          56 :     compiler::TNode<Smi> tmp86;
    1374          56 :     USE(tmp86);
    1375          56 :     tmp86 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiSub(compiler::TNode<Smi>{tmp84}, compiler::TNode<Smi>{tmp85}));
    1376          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 41);
    1377          56 :     ca_.Goto(&block6, tmp79, tmp80, tmp81, tmp82, tmp83, tmp86);
    1378             :   }
    1379             : 
    1380          56 :   if (block5.is_used()) {
    1381          56 :     compiler::TNode<Context> tmp87;
    1382          56 :     compiler::TNode<JSArray> tmp88;
    1383          56 :     compiler::TNode<Smi> tmp89;
    1384          56 :     compiler::TNode<Object> tmp90;
    1385          56 :     compiler::TNode<FixedArrayBase> tmp91;
    1386          56 :     compiler::TNode<Smi> tmp92;
    1387          56 :     ca_.Bind(&block5, &tmp87, &tmp88, &tmp89, &tmp90, &tmp91, &tmp92);
    1388          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 58);
    1389          56 :     compiler::TNode<Smi> tmp93;
    1390          56 :     USE(tmp93);
    1391          56 :     tmp93 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(-1));
    1392          56 :     ca_.Goto(&block1, tmp87, tmp88, tmp89, tmp90, tmp93);
    1393             :   }
    1394             : 
    1395          56 :   if (block1.is_used()) {
    1396          56 :     compiler::TNode<Context> tmp94;
    1397          56 :     compiler::TNode<JSArray> tmp95;
    1398          56 :     compiler::TNode<Smi> tmp96;
    1399          56 :     compiler::TNode<Object> tmp97;
    1400          56 :     compiler::TNode<Smi> tmp98;
    1401          56 :     ca_.Bind(&block1, &tmp94, &tmp95, &tmp96, &tmp97, &tmp98);
    1402          56 :     ca_.SetSourcePosition("../../src/builtins/array-lastindexof.tq", 28);
    1403          56 :     ca_.Goto(&block13, tmp94, tmp95, tmp96, tmp97, tmp98);
    1404             :   }
    1405             : 
    1406          56 :     compiler::TNode<Context> tmp99;
    1407          56 :     compiler::TNode<JSArray> tmp100;
    1408          56 :     compiler::TNode<Smi> tmp101;
    1409          56 :     compiler::TNode<Object> tmp102;
    1410          56 :     compiler::TNode<Smi> tmp103;
    1411          56 :     ca_.Bind(&block13, &tmp99, &tmp100, &tmp101, &tmp102, &tmp103);
    1412         112 :   return compiler::TNode<Smi>{tmp103};
    1413             : }
    1414             : 
    1415             : }  // namespace internal
    1416       87414 : }  // namespace v8
    1417             : 

Generated by: LCOV version 1.10