   0  -live- %r0, %r1, %r2, %r3
   0  record_quasiimmut_field %r1, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.inst_itemtype>, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.mutate_itemtype>
   6  getfield_gc_r_pure %r1, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.inst_itemtype> -> %r4
  11  -live- %r0, %r1, %r2, %r3, %r4
  11  guard_class %r4 -> %i0
  14  getfield_raw_i %i0, FieldDescr<pypy.module.micronumpy.types.BaseType_vtable.cls_num> -> %i0
  19  -live- %i0, %r0, %r1, %r2, %r3
  19  goto_if_not_int_eq %i0, $17, L1
  24  new <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x000000018bf58db0> -> %r3
  28  setfield_gc_r %r3, %r1, FieldDescr<tuple2.item0>
  33  setfield_gc_r %r3, %r1, FieldDescr<tuple2.item1>
  38  ref_return %r3
  40  ---
  40  L1:
  40  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r3, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i0
  48  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r3, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i1
  56  int_or %i0, %i1 -> %i0
  60  -live- %i0, %r0, %r1, %r2, %r3
  60  goto_if_not %i0, L2
  64  ref_copy %r3 -> %r6
  67  ref_copy $<* struct rpy_string> -> %r3
  70  L3:
  70  getfield_gc_r_pure %r0, FieldDescr<pypy.module.micronumpy.ufuncs.W_Ufunc1.inst_dtypes> -> %r5
  75  int_copy $0 -> %i1
  78  L4:
  78  arraylen_gc %r5, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000000018c0e4f70> -> %i0
  83  -live- %i0, %i1, %r0, %r1, %r2, %r3, %r5, %r6
  83  goto_if_not_int_ge %i1, %i0, L5
  88  getfield_gc_r_pure %r0, FieldDescr<pypy.module.micronumpy.ufuncs.W_Ufunc.inst_name> -> %r4
  93  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x00000001a83a82c0> -> %r3
  97  setfield_gc_r %r3, $<* struct pypy.interpreter.baseobjspace.W_Root>, FieldDescr<pypy.interpreter.error.OperationError.inst_w_type>
 102  setfield_gc_r %r3, $<* struct tuple2>, FieldDescr<pypy.interpreter.error.OpErrFmt.inst_xstrings>
 107  setfield_gc_r %r3, %r4, FieldDescr<pypy.interpreter.error.OpErrFmt.inst_x0>
 112  assert_not_none %r3
 114  -live- %r3
 114  guard_class %r3 -> %i0
 117  -live- %r3
 117  raise %r3
 119  ---
 119  L5:
 119  int_copy %i1 -> %i0
 122  ref_copy %r5 -> %r4
 125  int_add %i0, $1 -> %i1
 129  getarrayitem_gc_r_pure %r4, %i0, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000000018c0e4f70> -> %r4
 135  getfield_gc_r_pure %r4, FieldDescr<tuple2.item0> -> %r7
 140  getfield_gc_r_pure %r4, FieldDescr<tuple2.item1> -> %r4
 145  inline_call_r_i <JitCode 'can_cast_type'>, R[%r1, %r7, %r3] -> %i0
 153  -live- %i0, %i1, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 153  -live- %i0, %i1, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 153  goto_if_not %i0, L6
 157  -live- %i1, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 157  goto_if_not_ptr_iszero %r2, L7
 161  L8:
 161  new <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x000000018bf58db0> -> %r3
 165  setfield_gc_r %r3, %r7, FieldDescr<tuple2.item0>
 170  setfield_gc_r %r3, %r4, FieldDescr<tuple2.item1>
 175  ref_return %r3
 177  ---
 177  L7:
 177  getfield_gc_r %r2, FieldDescr<pypy.module.micronumpy.base.W_NDimArray.inst_implementation> -> %r8
 182  -live- %i1, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r8
 182  record_quasiimmut_field %r8, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_dtype>, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.mutate_dtype>
 188  getfield_gc_r_pure %r8, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_dtype> -> %r8
 193  inline_call_r_i <JitCode 'can_cast_type'>, R[%r4, %r8, %r6] -> %i0
 201  -live- %i0, %i1, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 201  -live- %i0, %i1, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 201  goto_if_not %i0, L9
 205  goto L8
 208  ---
 208  L9:
 208  goto L4
 211  ---
 211  L6:
 211  goto L4
 214  ---
 214  L2:
 214  ref_copy %r3 -> %r6
 217  goto L3
