   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  L3:
  34  arraylen_gc %r3, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x1009280d710> -> %i0
  39  -live- %i0, %r0, %r1, %r2, %r4
  39  goto_if_not_int_is_zero %i0, L4
  43  inline_call_r_r <JitCode 'W_NDimArray.get_scalar_value'>, R[%r0] -> %r3
  49  -live- %r1, %r2, %r3, %r4
  49  inline_call_r_i <JitCode 'can_cast_scalar'>, R[%r4, %r3, %r1, %r2] -> %i0
  58  -live- %i0
  58  int_return %i0
  60  ---
  60  L4:
  60  inline_call_r_i <JitCode 'can_cast_type'>, R[%r4, %r1, %r2] -> %i0
  68  -live- %i0
  68  int_return %i0
  70  ---
  70  L2:
  70  -live- %r0, %r1, %r2, %r3, %r4
  70  getfield_gc_r_pure %r3, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_shape> -> %r3
  75  arraylen_gc %r3, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x1009280d710> -> %i0
  80  -live- %i0, %r0, %r1, %r2, %r3, %r4
  80  int_guard_value %i0
  82  goto L3
