   0  int_copy $0 -> %i1
   3  L1:
   3  arraylen_gc %r0, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x1009f2142d0> -> %i0
   8  -live- %i0, %i1, %r0, %r1
   8  goto_if_not_int_ge %i1, %i0, L2
  13  ref_return %r1
  15  ---
  15  L2:
  15  int_copy %i1 -> %i0
  18  ref_copy %r0 -> %r2
  21  int_add %i0, $1 -> %i1
  25  getarrayitem_gc_r %r2, %i0, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x1009f2142d0> -> %r2
  31  -live- %i1, %r0, %r1, %r2
  31  goto_if_not_ptr_iszero %r2, L3
  35  goto L1
  38  ---
  38  L3:
  38  ref_copy %r2 -> %r3
  41  inline_call_r_i <JitCode 'W_Root.is_w'>, R[$<* struct pypy.interpreter.baseobjspace.W_Root>, %r2] -> %i0
  48  -live- %i0, %i1, %r0, %r1, %r3
  48  -live- %i0, %i1, %r0, %r1, %r3
  48  goto_if_not %i0, L4
  52  goto L1
  55  ---
  55  L4:
  55  -live- %i1, %r0, %r1, %r3
  55  goto_if_not_ptr_iszero %r1, L5
  59  getfield_gc_r %r3, FieldDescr<pypy.module.micronumpy.base.W_NDimArray.inst_implementation> -> %r2
  64  -live- %i1, %r0, %r2
  64  guard_class %r2 -> %i0
  67  getfield_raw_i %i0, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray_vtable.cls_get_shape> -> %i0
  72  -live- %i0, %i1, %r0, %r2
  72  switch %i0, <SwitchDictDescr 0:L6, 1:L7>
  76  unreachable
  77  ---
  77  L6:
  77  -live- %i1, %r0, %r2
  77  getfield_gc_r_pure %r2, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_shape> -> %r1
  82  goto L1
  85  ---
  85  L7:
  85  -live- %i1, %r0, %r2
  85  getfield_gc_r_pure %r2, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_shape> -> %r1
  90  arraylen_gc %r1, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x1009280d710> -> %i0
  95  -live- %i0, %i1, %r0, %r1
  95  int_guard_value %i0
  97  goto L1
 100  ---
 100  L5:
 100  inline_call_ir_r <JitCode 'shape_agreement'>, I[$True], R[%r1, %r3] -> %r1
 109  -live- %i1, %r0, %r1
 109  goto L1
