   0  getfield_gc_r %r0, FieldDescr<pypy.module.micronumpy.base.W_NDimArray.inst_implementation> -> %r3
   5  -live- %r0, %r1, %r2, %r3
   5  record_quasiimmut_field %r3, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_dtype>, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.mutate_dtype>
  11  getfield_gc_r_pure %r3, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_dtype> -> %r4
  16  -live- %r0, %r1, %r2, %r3, %r4
  16  guard_class %r3 -> %i0
  19  getfield_raw_i %i0, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray_vtable.cls_get_shape> -> %i0
  24  -live- %i0, %r0, %r1, %r2, %r3, %r4
  24  switch %i0, <SwitchDictDescr 0:L1, 1:L2>
  28  unreachable
  29  ---
  29  L1:
  29  -live- %r0, %r1, %r2, %r3, %r4
  29  getfield_gc_r_pure %r3, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_shape> -> %r3
  34  arraylen_gc %r3, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x6f1fb910> -> %i0
  39  -live- %i0, %r0, %r1, %r2, %r3, %r4
  39  int_guard_value %i0
  41  L3:
  41  arraylen_gc %r3, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x6f1fb910> -> %i0
  46  -live- %i0, %r0, %r1, %r2, %r4
  46  goto_if_not_int_is_zero %i0, L4
  50  inline_call_r_r <JitCode 'W_NDimArray.get_scalar_value'>, R[%r0] -> %r3
  56  -live- %r1, %r2, %r3, %r4
  56  inline_call_r_i <JitCode 'can_cast_scalar'>, R[%r4, %r3, %r1, %r2] -> %i0
  65  -live- %i0
  65  int_return %i0
  67  ---
  67  L4:
  67  inline_call_r_i <JitCode 'can_cast_type'>, R[%r4, %r1, %r2] -> %i0
  75  -live- %i0
  75  int_return %i0
  77  ---
  77  L2:
  77  -live- %r0, %r1, %r2, %r3, %r4
  77  getfield_gc_r_pure %r3, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_shape> -> %r3
  82  goto L3
