   0  int_copy $0 -> %i1
   3  L1:
   3  arraylen_gc %r0, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x0000aaab153484b8> -> %i0
   8  -live- %i0, %i1, %r0, %r1
  11  goto_if_not_int_ge %i1, %i0, L2
  16  ref_return %r1
  18  ---
  18  L2:
  18  int_copy %i1 -> %i0
  21  ref_copy %r0 -> %r2
  24  int_add %i0, $1 -> %i1
  28  getarrayitem_gc_r %r2, %i0, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x0000aaab153484b8> -> %r2
  34  -live- %i1, %r0, %r1, %r2
  37  goto_if_not_ptr_iszero %r2, L3
  41  goto L1
  44  ---
  44  L3:
  44  ref_copy %r2 -> %r3
  47  inline_call_r_i <JitCode 'W_Root.is_w'>, R[$<* struct pypy.interpreter.baseobjspace.W_Root>, %r2] -> %i0
  54  -live- %i0, %i1, %r0, %r1, %r3
  57  goto_if_not %i0, L4
  61  goto L1
  64  ---
  64  L4:
  64  -live- %i1, %r0, %r1, %r3
  67  goto_if_not_ptr_iszero %r1, L5
  71  getfield_gc_r %r3, FieldDescr<pypy.module.micronumpy.base.W_NDimArray.inst_implementation> -> %r2
  76  -live- %i1, %r0, %r2
  79  guard_class %r2 -> %i0
  82  getfield_raw_i %i0, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray_vtable.cls_get_shape> -> %i0
  87  -live- %i0, %i1, %r0, %r2
  90  switch %i0, <SwitchDictDescr 0:L6, 1:L7>
  94  unreachable
  95  ---
  95  L6:
  95  -live- %i1, %r0, %r2
  98  getfield_gc_r_pure %r2, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_shape> -> %r1
 103  goto L1
 106  ---
 106  L7:
 106  -live- %i1, %r0, %r2
 109  getfield_gc_r_pure %r2, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_shape> -> %r1
 114  arraylen_gc %r1, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x0000aaab0d404e20> -> %i0
 119  -live- %i0, %i1, %r0, %r1
 122  int_guard_value %i0
 124  goto L1
 127  ---
 127  L5:
 127  inline_call_ir_r <JitCode 'shape_agreement'>, I[$True], R[%r1, %r3] -> %r1
 136  -live- %i1, %r0, %r1
 139  goto L1
