   0  -live- %r0, %r1, %r2, %r3
   3  record_quasiimmut_field %r1, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.inst_itemtype>, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.mutate_itemtype>
   9  getfield_gc_r_pure %r1, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.inst_itemtype> -> %r4
  14  -live- %r0, %r1, %r2, %r3, %r4
  17  guard_class %r4 -> %i0
  20  getfield_raw_i %i0, FieldDescr<pypy.module.micronumpy.types.BaseType_vtable.cls_num> -> %i0
  25  -live- %i0, %r0, %r1, %r2, %r3
  28  goto_if_not_int_eq %i0, $17, L1
  33  new <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x00005609330b5e18> -> %r3
  37  setfield_gc_r %r3, %r1, FieldDescr<tuple2.item0>
  42  setfield_gc_r %r3, %r1, FieldDescr<tuple2.item1>
  47  ref_return %r3
  49  ---
  49  L1:
  49  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r3, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i0
  57  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r3, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i1
  65  int_or %i0, %i1 -> %i0
  69  -live- %i0, %r0, %r1, %r2, %r3
  72  goto_if_not %i0, L2
  76  ref_copy %r3 -> %r6
  79  ref_copy $<* struct rpy_string> -> %r3
  82  L3:
  82  getfield_gc_r_pure %r0, FieldDescr<pypy.module.micronumpy.ufuncs.W_Ufunc1.inst_dtypes> -> %r5
  87  int_copy $0 -> %i1
  90  L4:
  90  arraylen_gc %r5, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000056093bc36b80> -> %i0
  95  -live- %i0, %i1, %r0, %r1, %r2, %r3, %r5, %r6
  98  goto_if_not_int_ge %i1, %i0, L5
 103  getfield_gc_r_pure %r0, FieldDescr<pypy.module.micronumpy.ufuncs.W_Ufunc.inst_name> -> %r4
 108  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x000056091b7219f0> -> %r3
 112  setfield_gc_r %r3, $<* struct pypy.interpreter.baseobjspace.W_Root>, FieldDescr<pypy.interpreter.error.OperationError.inst_w_type>
 117  setfield_gc_r %r3, $<* struct tuple2>, FieldDescr<pypy.interpreter.error.OpErrFmt.inst_xstrings>
 122  setfield_gc_r %r3, %r4, FieldDescr<pypy.interpreter.error.OpErrFmt.inst_x0>
 127  assert_not_none %r3
 129  -live- %r3
 132  raise %r3
 134  ---
 134  L5:
 134  int_copy %i1 -> %i0
 137  ref_copy %r5 -> %r4
 140  int_add %i0, $1 -> %i1
 144  getarrayitem_gc_r_pure %r4, %i0, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000056093bc36b80> -> %r4
 150  getfield_gc_r_pure %r4, FieldDescr<tuple2.item0> -> %r7
 155  getfield_gc_r_pure %r4, FieldDescr<tuple2.item1> -> %r4
 160  inline_call_r_i <JitCode 'can_cast_type'>, R[%r1, %r7, %r3] -> %i0
 168  -live- %i0, %i1, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 171  goto_if_not %i0, L6
 175  -live- %i1, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 178  goto_if_not_ptr_iszero %r2, L7
 182  L8:
 182  new <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x00005609330b5e18> -> %r3
 186  setfield_gc_r %r3, %r7, FieldDescr<tuple2.item0>
 191  setfield_gc_r %r3, %r4, FieldDescr<tuple2.item1>
 196  ref_return %r3
 198  ---
 198  L7:
 198  getfield_gc_r %r2, FieldDescr<pypy.module.micronumpy.base.W_NDimArray.inst_implementation> -> %r8
 203  -live- %i1, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r8
 206  record_quasiimmut_field %r8, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_dtype>, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.mutate_dtype>
 212  getfield_gc_r_pure %r8, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_dtype> -> %r8
 217  inline_call_r_i <JitCode 'can_cast_type'>, R[%r4, %r8, %r6] -> %i0
 225  -live- %i0, %i1, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 228  goto_if_not %i0, L9
 232  goto L8
 235  ---
 235  L9:
 235  goto L4
 238  ---
 238  L6:
 238  goto L4
 241  ---
 241  L2:
 241  ref_copy %r3 -> %r6
 244  goto L3
