   0  getfield_gc_r %r0, FieldDescr<pypy.module.micronumpy.base.W_NDimArray.inst_implementation> -> %r3
   5  -live- %i0, %r0, %r1, %r2, %r3
   5  guard_class %r3 -> %i1
   8  getfield_raw_i %i1, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray_vtable.cls_create_iter> -> %i1
  13  -live- %i0, %i1, %r0, %r1, %r2, %r3
  13  switch %i1, <SwitchDictDescr 0:L1, 1:L2>
  17  unreachable
  18  ---
  18  L1:
  18  -live- %i0, %r0, %r1, %r2, %r3
  18  inline_call_ir_r <JitCode 'FakeArrayImplementation.create_iter'>, I[$False], R[%r3, $<* None>] -> %r3
  27  -live- %i0, %r0, %r1, %r2, %r3
  27  L3:
  27  getfield_gc_r_pure %r3, FieldDescr<tuple2.item0> -> %r4
  32  getfield_gc_r_pure %r3, FieldDescr<tuple2.item1> -> %r5
  37  getfield_gc_r %r0, FieldDescr<pypy.module.micronumpy.base.W_NDimArray.inst_implementation> -> %r3
  42  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5
  42  record_quasiimmut_field %r3, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_dtype>, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.mutate_dtype>
  48  getfield_gc_r_pure %r3, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_dtype> -> %r3
  53  getfield_gc_i %r5, FieldDescr<pypy.module.micronumpy.iterators.IterState.inst_index> -> %i1
  58  getfield_gc_i_pure %r4, FieldDescr<pypy.module.micronumpy.iterators.ArrayIter.inst_size> -> %i2
  63  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5
  63  goto_if_not_int_ge %i1, %i2, L4
  68  ref_return %r0
  70  ---
  70  L4:
  70  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5
  70  ref_guard_value %r3
  72  recursive_call_r $94, I[], R[%r3], F[], I[%i0], R[%r4, %r5, %r2, %r0, %r1], F[] -> %r0
  88  -live- %r0
  88  ref_return %r0
  90  ---
  90  L2:
  90  -live- %i0, %r0, %r1, %r2, %r3
  90  inline_call_ir_r <JitCode 'BaseConcreteArray.create_iter'>, I[$False], R[%r3, $<* None>] -> %r3
  99  -live- %i0, %r0, %r1, %r2, %r3
  99  goto L3
