   0  L1:
   0  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5
   0  int_guard_value %i0
   2  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5
   2  int_guard_value %i1
   4  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5
   4  int_guard_value %i2
   6  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5
   6  ref_guard_value %r0
   8  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5
   8  jit_merge_point $45, I[%i0, %i1, %i2], R[%r0], F[], I[], R[%r1, %r2, %r3, %r4, %r5], F[]
  25  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5
  25  inline_call_ir_r <JitCode 'll_alloc_and_set__GcArray_Ptr_GcStruct_objectLlT_Signed_objectPtr'>, I[%i1], R[$<* struct object>] -> %r7
  33  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r7
  33  int_copy %i1 -> %i3
  36  int_copy %i2 -> %i4
  39  int_copy $0 -> %i6
  42  L2:
  42  -live- %i0, %i1, %i3, %i4, %i6, %r0, %r1, %r2, %r3, %r4, %r5, %r7
  42  goto_if_not_int_ge %i6, %i3, L3
  47  arraylen_gc %r2, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x7f3f4990> -> %i2
  52  -live- %i0, %i1, %i2, %i4, %r0, %r1, %r2, %r3, %r4, %r5, %r7
  52  goto_if_not_int_gt %i4, %i2, L4
  57  int_push %i4
  59  int_copy %i2 -> %i4
  62  int_pop -> %i2
  64  L5:
  64  int_sub %i4, $0 -> %i5
  68  new_array_clear %i5, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x7f3f4990> -> %r6
  73  residual_call_ir_v $<* fn ll_arraycopy__arrayPtr_arrayPtr_Signed_Signed_Signed>, I[$0, $0, %i5], R[%r2, %r6], <CallDescr(rriii) EF=2 OS_ARRAYCOPY>
  84  inline_call_ir_r <JitCode 'PureShapeIter.get_index'>, I[%i0], R[%r5] -> %r8
  92  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r8
  92  inline_call_r_r <JitCode 'll_concat__GcArray_Ptr_GcStruct_objectLlT_arrayPtr_arrayPtr'>, R[%r6, %r8] -> %r6
  99  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
  99  inline_call_r_r <JitCode 'makespecialisedtuple'>, R[%r6] -> %r8
 105  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r8
 105  catch_exception L6
 108  L7:
 108  getfield_gc_r %r4, FieldDescr<pypy.module.micronumpy.base.W_NDimArray.inst_implementation> -> %r6
 113  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r8
 113  guard_class %r6 -> %i5
 116  getfield_raw_i %i5, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray_vtable.cls_get_shape> -> %i5
 121  -live- %i0, %i1, %i2, %i5, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r8
 121  switch %i5, <SwitchDictDescr 0:L8, 1:L9>
 125  unreachable
 126  ---
 126  L8:
 126  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r8
 126  getfield_gc_r_pure %r6, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_shape> -> %r6
 131  arraylen_gc %r6, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x6f1fb910> -> %i5
 136  -live- %i0, %i1, %i2, %i5, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r8
 136  int_guard_value %i5
 138  L10:
 138  arraylen_gc %r6, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x6f1fb910> -> %i5
 143  -live- %i0, %i1, %i2, %i5, %r0, %r1, %r2, %r3, %r4, %r5, %r7, %r8
 143  goto_if_not_int_is_zero %i5, L11
 147  inline_call_r_r <JitCode 'W_NDimArray.get_scalar_value'>, R[%r4] -> %r6
 153  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 153  L12:
 153  inline_call_r_r <JitCode 'makespecialisedtuple'>, R[%r7] -> %r8
 159  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r8
 159  catch_exception L13
 162  L14:
 162  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r8
 162  guard_class %r1 -> %i5
 165  getfield_raw_i %i5, FieldDescr<pypy.module.micronumpy.base.W_NDimArray_vtable.cls_descr_setitem> -> %i5
 170  -live- %i0, %i1, %i2, %i5, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r8
 170  switch %i5, <SwitchDictDescr 0:L15, 1:L16>
 174  unreachable
 175  ---
 175  L15:
 175  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r8
 175  inline_call_r_r <JitCode 'W_FlatIterator.descr_setitem'>, R[%r1, %r8, %r6] -> %r6
 183  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5
 183  L17:
 183  inline_call_r_v <JitCode 'PureShapeIter.next'>, R[%r5]
 188  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5
 188  getfield_gc_i %r5, FieldDescr<pypy.module.micronumpy.iterators.PureShapeIter.inst__done> -> %i5
 193  -live- %i0, %i1, %i2, %i5, %r0, %r1, %r2, %r3, %r4, %r5
 193  goto_if_not %i5, L18
 197  void_return
 198  ---
 198  L18:
 198  goto L1
 201  ---
 201  L16:
 201  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r8
 201  inline_call_r_r <JitCode 'W_NDimArray.descr_setitem'>, R[%r1, %r8, %r6] -> %r6
 209  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5
 209  goto L17
 212  ---
 212  L13:
 212  goto_if_exception_mismatch $<* struct object_vtable>, L19
 216  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x52ae6c50> -> %r8
 220  setfield_gc_r %r8, %r7, FieldDescr<pypy.objspace.std.tupleobject.W_TupleObject.inst_wrappeditems>
 225  goto L14
 228  ---
 228  L19:
 228  reraise
 229  ---
 229  L11:
 229  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r7, %r8
 229  guard_class %r4 -> %i5
 232  getfield_raw_i %i5, FieldDescr<pypy.module.micronumpy.base.W_NDimArray_vtable.cls_descr_getitem> -> %i5
 237  -live- %i0, %i1, %i2, %i5, %r0, %r1, %r2, %r3, %r4, %r5, %r7, %r8
 237  switch %i5, <SwitchDictDescr 0:L20, 1:L21>
 241  unreachable
 242  ---
 242  L20:
 242  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r7, %r8
 242  inline_call_r_r <JitCode 'W_NDimArray.descr_getitem'>, R[%r4, %r8] -> %r6
 249  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 249  goto L12
 252  ---
 252  L21:
 252  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r7, %r8
 252  inline_call_r_r <JitCode 'W_FlatIterator.descr_getitem'>, R[%r4, %r8] -> %r6
 259  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 259  goto L12
 262  ---
 262  L9:
 262  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r8
 262  getfield_gc_r_pure %r6, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_shape> -> %r6
 267  goto L10
 270  ---
 270  L6:
 270  goto_if_exception_mismatch $<* struct object_vtable>, L22
 274  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x52ae6c50> -> %r8
 278  setfield_gc_r %r8, %r6, FieldDescr<pypy.objspace.std.tupleobject.W_TupleObject.inst_wrappeditems>
 283  goto L7
 286  ---
 286  L22:
 286  reraise
 287  ---
 287  L4:
 287  int_copy %i4 -> %i2
 290  goto L5
 293  ---
 293  L3:
 293  int_copy %i6 -> %i2
 296  int_add %i2, $1 -> %i6
 300  getfield_gc_r %r5, FieldDescr<pypy.module.micronumpy.iterators.PureShapeIter.inst_idx_w_i> -> %r6
 305  getarrayitem_gc_r %r6, %i2, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x7f3f4990> -> %r6
 311  -live- %i0, %i1, %i2, %i3, %i4, %i6, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 311  goto_if_not_ptr_iszero %r6, L23
 315  getarrayitem_gc_r %r3, %i2, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x7f3f4990> -> %r6
 321  setarrayitem_gc_r %r7, %i2, %r6, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x7f3f4990>
 327  goto L2
 330  ---
 330  L23:
 330  getfield_gc_r %r5, FieldDescr<pypy.module.micronumpy.iterators.PureShapeIter.inst_idx_w_i> -> %r6
 335  getarrayitem_gc_r %r6, %i2, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x7f3f4990> -> %r6
 341  getfield_gc_r %r5, FieldDescr<pypy.module.micronumpy.iterators.PureShapeIter.inst_idx_w_s> -> %r8
 346  getarrayitem_gc_r %r8, %i2, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x7f3f4990> -> %r8
 352  -live- %i0, %i1, %i2, %i3, %i4, %i6, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r8
 352  guard_class %r6 -> %i5
 355  getfield_raw_i %i5, FieldDescr<pypy.module.micronumpy.iterators.ArrayIter_vtable.cls_getitem> -> %i5
 360  -live- %i0, %i1, %i2, %i3, %i4, %i5, %i6, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r8
 360  switch %i5, <SwitchDictDescr 0:L24, 1:L25>
 364  unreachable
 365  ---
 365  L24:
 365  -live-
 365  raise $<* struct object>
 367  ---
 367  L25:
 367  -live- %i0, %i1, %i2, %i3, %i4, %i6, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r8
 367  getfield_gc_r_pure %r6, FieldDescr<pypy.module.micronumpy.iterators.ArrayIter.inst_array> -> %r6
 372  getfield_gc_i %r8, FieldDescr<pypy.module.micronumpy.iterators.IterState.inst_offset> -> %i5
 377  -live- %i0, %i1, %i2, %i3, %i4, %i5, %i6, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 377  record_quasiimmut_field %r6, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_dtype>, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.mutate_dtype>
 383  getfield_gc_r_pure %r6, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_dtype> -> %r8
 388  -live- %i0, %i1, %i2, %i3, %i4, %i5, %i6, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r8
 388  record_quasiimmut_field %r8, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.inst_itemtype>, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.mutate_itemtype>
 394  getfield_gc_r_pure %r8, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.inst_itemtype> -> %r9
 399  -live- %i0, %i1, %i2, %i3, %i4, %i5, %i6, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r8, %r9
 399  guard_class %r9 -> %i7
 402  getfield_raw_i %i7, FieldDescr<pypy.module.micronumpy.types.BaseType_vtable.cls_read> -> %i7
 407  -live- %i0, %i1, %i2, %i3, %i4, %i5, %i6, %i7, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r8, %r9
 407  int_guard_value %i7
 409  residual_call_ir_r %i7, <IndirectCallTargets>, I[%i5, $0], R[%r9, %r6, %r8], <CallDescr(rriir) EF=5> -> %r6
 421  -live- %i0, %i1, %i2, %i3, %i4, %i6, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 421  setarrayitem_gc_r %r7, %i2, %r6, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x7f3f4990>
 427  goto L2
