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

Generated by: LCOV version 1.10