   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 $75, 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 -> %i5
  42  L2:
  42  -live- %i0, %i1, %i3, %i4, %i5, %r0, %r1, %r2, %r3, %r4, %r5, %r7
  42  goto_if_not_int_ge %i5, %i3, L3
  47  arraylen_gc %r4, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x1009f2142d0> -> %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 -> %i6
  68  new_array_clear %i6, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x1009f2142d0> -> %r6
  73  residual_call_ir_v $<* fn ll_arraycopy__arrayPtr_arrayPtr_Signed_Signed_Signed>, I[$0, $0, %i6], R[%r4, %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 %r3, 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 -> %i6
 116  getfield_raw_i %i6, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray_vtable.cls_get_shape> -> %i6
 121  -live- %i0, %i1, %i2, %i6, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r8
 121  switch %i6, <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  L10:
 131  arraylen_gc %r6, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x1009280d710> -> %i6
 136  -live- %i0, %i1, %i2, %i6, %r0, %r1, %r2, %r3, %r4, %r5, %r7, %r8
 136  goto_if_not_int_is_zero %i6, L11
 140  inline_call_r_r <JitCode 'W_NDimArray.get_scalar_value'>, R[%r3] -> %r6
 146  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 146  L12:
 146  inline_call_r_r <JitCode 'makespecialisedtuple'>, R[%r7] -> %r8
 152  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r8
 152  catch_exception L13
 155  L14:
 155  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r8
 155  guard_class %r1 -> %i6
 158  getfield_raw_i %i6, FieldDescr<pypy.module.micronumpy.base.W_NDimArray_vtable.cls_descr_setitem> -> %i6
 163  -live- %i0, %i1, %i2, %i6, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r8
 163  switch %i6, <SwitchDictDescr 0:L15, 1:L16>
 167  unreachable
 168  ---
 168  L15:
 168  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r8
 168  inline_call_r_r <JitCode 'W_FlatIterator.descr_setitem'>, R[%r1, %r8, %r6] -> %r6
 176  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5
 176  L17:
 176  inline_call_r_v <JitCode 'PureShapeIter.next'>, R[%r5]
 181  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5
 181  getfield_gc_i %r5, FieldDescr<pypy.module.micronumpy.iterators.PureShapeIter.inst__done> -> %i6
 186  -live- %i0, %i1, %i2, %i6, %r0, %r1, %r2, %r3, %r4, %r5
 186  goto_if_not %i6, L18
 190  void_return
 191  ---
 191  L18:
 191  goto L1
 194  ---
 194  L16:
 194  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r8
 194  inline_call_r_r <JitCode 'W_NDimArray.descr_setitem'>, R[%r1, %r8, %r6] -> %r6
 202  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5
 202  goto L17
 205  ---
 205  L13:
 205  goto_if_exception_mismatch $<* struct object_vtable>, L19
 209  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x10097e0b390> -> %r8
 213  setfield_gc_r %r8, %r7, FieldDescr<pypy.objspace.std.tupleobject.W_TupleObject.inst_wrappeditems>
 218  goto L14
 221  ---
 221  L19:
 221  reraise
 222  ---
 222  L11:
 222  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r7, %r8
 222  guard_class %r3 -> %i6
 225  getfield_raw_i %i6, FieldDescr<pypy.module.micronumpy.base.W_NDimArray_vtable.cls_descr_getitem> -> %i6
 230  -live- %i0, %i1, %i2, %i6, %r0, %r1, %r2, %r3, %r4, %r5, %r7, %r8
 230  switch %i6, <SwitchDictDescr 0:L20, 1:L21>
 234  unreachable
 235  ---
 235  L20:
 235  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r7, %r8
 235  inline_call_r_r <JitCode 'W_FlatIterator.descr_getitem'>, R[%r3, %r8] -> %r6
 242  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 242  goto L12
 245  ---
 245  L21:
 245  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r7, %r8
 245  inline_call_r_r <JitCode 'W_NDimArray.descr_getitem'>, R[%r3, %r8] -> %r6
 252  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 252  goto L12
 255  ---
 255  L9:
 255  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r8
 255  getfield_gc_r_pure %r6, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_shape> -> %r6
 260  arraylen_gc %r6, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x1009280d710> -> %i6
 265  -live- %i0, %i1, %i2, %i6, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r8
 265  int_guard_value %i6
 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 0x10097e0b390> -> %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 %i5 -> %i2
 296  int_add %i2, $1 -> %i5
 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 0x1009f2142d0> -> %r6
 311  -live- %i0, %i1, %i2, %i3, %i4, %i5, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 311  goto_if_not_ptr_iszero %r6, L23
 315  getarrayitem_gc_r %r2, %i2, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x1009f2142d0> -> %r6
 321  setarrayitem_gc_r %r7, %i2, %r6, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x1009f2142d0>
 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 0x1009f2142d0> -> %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 0x1009f2142d0> -> %r8
 352  -live- %i0, %i1, %i2, %i3, %i4, %i5, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r8
 352  guard_class %r6 -> %i6
 355  getfield_raw_i %i6, FieldDescr<pypy.module.micronumpy.iterators.ArrayIter_vtable.cls_getitem> -> %i6
 360  -live- %i0, %i1, %i2, %i3, %i4, %i5, %i6, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r8
 360  switch %i6, <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, %i5, %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> -> %i6
 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[%i6, $0], R[%r9, %r6, %r8], <CallDescr(rriir) EF=5> -> %r6
 421  -live- %i0, %i1, %i2, %i3, %i4, %i5, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 421  setarrayitem_gc_r %r7, %i2, %r6, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x1009f2142d0>
 427  goto L2
