   0  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6
   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> -> %r7
  11  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
  11  guard_class %r7 -> %i0
  14  getfield_raw_i %i0, FieldDescr<pypy.module.micronumpy.types.BaseType_vtable.cls_num> -> %i0
  19  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6
  19  goto_if_not_int_eq %i0, $17, L1
  24  ref_return $<* struct tuple2>
  26  ---
  26  L1:
  26  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6
  26  record_quasiimmut_field %r2, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.inst_itemtype>, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.mutate_itemtype>
  32  getfield_gc_r_pure %r2, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.inst_itemtype> -> %r7
  37  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
  37  guard_class %r7 -> %i0
  40  getfield_raw_i %i0, FieldDescr<pypy.module.micronumpy.types.BaseType_vtable.cls_num> -> %i0
  45  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6
  45  goto_if_not_int_eq %i0, $17, L2
  50  ref_return $<* struct tuple2>
  52  ---
  52  L2:
  52  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6
  52  goto_if_not_ptr_iszero %r5, L3
  56  int_copy $False -> %i0
  59  L4:
  59  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r4, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i1
  67  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r4, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i2
  75  int_or %i1, %i2 -> %i1
  79  -live- %i0, %i1, %r0, %r1, %r2, %r3, %r4, %r5, %r6
  79  goto_if_not %i1, L5
  83  ref_copy %r4 -> %r9
  86  ref_copy $<* struct rpy_string> -> %r4
  89  L6:
  89  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r9
  89  goto_if_not %i0, L7
  93  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r9
  93  goto_if_not_ptr_nonzero %r5, L8
  97  ref_copy %r5 -> %r7
 100  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r9
 100  guard_class %r7 -> %i0
 103  getfield_raw_i %i0, FieldDescr<object_vtable.subclassrange_min> -> %i0
 108  int_between $TotalOrderSymbolic('compute_fn'), %i0, $TotalOrderSymbolic('compute_fn') -> %i0
 113  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r9
 113  goto_if_not %i0, L9
 117  L10:
 117  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r9
 117  goto_if_not_ptr_nonzero %r6, L11
 121  ref_copy %r6 -> %r7
 124  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r9
 124  guard_class %r7 -> %i0
 127  getfield_raw_i %i0, FieldDescr<object_vtable.subclassrange_min> -> %i0
 132  int_between $TotalOrderSymbolic('compute_fn'), %i0, $TotalOrderSymbolic('compute_fn') -> %i0
 137  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r9
 137  goto_if_not %i0, L12
 141  int_copy $True -> %i1
 144  L13:
 144  getfield_gc_r_pure %r0, FieldDescr<pypy.module.micronumpy.ufuncs.W_Ufunc2.inst_dtypes> -> %r8
 149  int_copy $0 -> %i2
 152  L14:
 152  arraylen_gc %r8, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000000018c0e4f70> -> %i0
 157  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r8, %r9
 157  goto_if_not_int_ge %i2, %i0, L15
 162  getfield_gc_r_pure %r0, FieldDescr<pypy.module.micronumpy.ufuncs.W_Ufunc.inst_name> -> %r7
 167  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x00000001a83a82c0> -> %r6
 171  setfield_gc_r %r6, $<* struct pypy.interpreter.baseobjspace.W_Root>, FieldDescr<pypy.interpreter.error.OperationError.inst_w_type>
 176  setfield_gc_r %r6, $<* struct tuple2>, FieldDescr<pypy.interpreter.error.OpErrFmt.inst_xstrings>
 181  setfield_gc_r %r6, %r7, FieldDescr<pypy.interpreter.error.OpErrFmt.inst_x0>
 186  assert_not_none %r6
 188  -live- %r6
 188  guard_class %r6 -> %i0
 191  -live- %r6
 191  raise %r6
 193  ---
 193  L15:
 193  int_copy %i2 -> %i0
 196  ref_copy %r8 -> %r7
 199  int_add %i0, $1 -> %i2
 203  getarrayitem_gc_r_pure %r7, %i0, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000000018c0e4f70> -> %r7
 209  getfield_gc_r_pure %r7, FieldDescr<tuple2.item0> -> %r10
 214  getfield_gc_r_pure %r7, FieldDescr<tuple2.item1> -> %r11
 219  -live- %i1, %i2, %r0, %r1, %r10, %r11, %r2, %r3, %r4, %r5, %r6, %r8, %r9
 219  goto_if_not %i1, L16
 223  inline_call_r_i <JitCode 'can_cast_array'>, R[%r5, %r10, %r4] -> %i0
 231  -live- %i0, %i2, %r0, %r1, %r10, %r11, %r2, %r3, %r4, %r5, %r6, %r8, %r9
 231  -live- %i0, %i2, %r0, %r1, %r10, %r11, %r2, %r3, %r4, %r5, %r6, %r8, %r9
 231  goto_if_not %i0, L17
 235  inline_call_r_i <JitCode 'can_cast_array'>, R[%r6, %r10, %r4] -> %i0
 243  -live- %i0, %i2, %r0, %r1, %r10, %r11, %r2, %r3, %r4, %r5, %r6, %r8, %r9
 243  -live- %i0, %i2, %r0, %r1, %r10, %r11, %r2, %r3, %r4, %r5, %r6, %r8, %r9
 243  goto_if_not %i0, L18
 247  int_copy $True -> %i1
 250  L19:
 250  -live- %i1, %i2, %r0, %r1, %r10, %r11, %r2, %r3, %r4, %r5, %r6, %r8, %r9
 250  goto_if_not_ptr_iszero %r3, L20
 254  L21:
 254  new <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x000000018bf58db0> -> %r7
 258  setfield_gc_r %r7, %r10, FieldDescr<tuple2.item0>
 263  setfield_gc_r %r7, %r11, FieldDescr<tuple2.item1>
 268  ref_return %r7
 270  ---
 270  L20:
 270  getfield_gc_r %r3, FieldDescr<pypy.module.micronumpy.base.W_NDimArray.inst_implementation> -> %r7
 275  -live- %i1, %i2, %r0, %r1, %r10, %r11, %r2, %r3, %r4, %r5, %r6, %r7, %r8, %r9
 275  record_quasiimmut_field %r7, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_dtype>, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.mutate_dtype>
 281  getfield_gc_r_pure %r7, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_dtype> -> %r7
 286  inline_call_r_i <JitCode 'can_cast_type'>, R[%r11, %r7, %r9] -> %i0
 294  -live- %i0, %i1, %i2, %r0, %r1, %r10, %r11, %r2, %r3, %r4, %r5, %r6, %r8, %r9
 294  -live- %i0, %i1, %i2, %r0, %r1, %r10, %r11, %r2, %r3, %r4, %r5, %r6, %r8, %r9
 294  goto_if_not %i0, L22
 298  goto L21
 301  ---
 301  L22:
 301  goto L14
 304  ---
 304  L18:
 304  int_copy $True -> %i1
 307  goto L14
 310  ---
 310  L17:
 310  int_copy $True -> %i1
 313  goto L14
 316  ---
 316  L16:
 316  inline_call_r_i <JitCode 'can_cast_type'>, R[%r1, %r10, %r4] -> %i0
 324  -live- %i0, %i2, %r0, %r1, %r10, %r11, %r2, %r3, %r4, %r5, %r6, %r8, %r9
 324  -live- %i0, %i2, %r0, %r1, %r10, %r11, %r2, %r3, %r4, %r5, %r6, %r8, %r9
 324  goto_if_not %i0, L23
 328  inline_call_r_i <JitCode 'can_cast_type'>, R[%r2, %r10, %r4] -> %i0
 336  -live- %i0, %i2, %r0, %r1, %r10, %r11, %r2, %r3, %r4, %r5, %r6, %r8, %r9
 336  -live- %i0, %i2, %r0, %r1, %r10, %r11, %r2, %r3, %r4, %r5, %r6, %r8, %r9
 336  goto_if_not %i0, L24
 340  int_copy $False -> %i1
 343  goto L19
 346  ---
 346  L24:
 346  int_copy $False -> %i1
 349  goto L14
 352  ---
 352  L23:
 352  int_copy $False -> %i1
 355  goto L14
 358  ---
 358  L12:
 358  L25:
 358  inline_call_ir_r <JitCode 'array'>, I[$True, $False, $0], R[%r6, $<* struct pypy.interpreter.baseobjspace.W_Root>, $<* struct pypy.interpreter.baseobjspace.W_Root>] -> %r6
 370  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r9
 370  int_copy $True -> %i1
 373  goto L13
 376  ---
 376  L11:
 376  goto L25
 379  ---
 379  L9:
 379  L26:
 379  inline_call_ir_r <JitCode 'array'>, I[$True, $False, $0], R[%r5, $<* struct pypy.interpreter.baseobjspace.W_Root>, $<* struct pypy.interpreter.baseobjspace.W_Root>] -> %r5
 391  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r9
 391  goto L10
 394  ---
 394  L8:
 394  goto L26
 397  ---
 397  L7:
 397  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r4, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i0
 405  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r9
 405  goto_if_not %i0, L27
 409  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r9
 409  record_quasiimmut_field %r1, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.inst_itemtype>, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.mutate_itemtype>
 415  getfield_gc_r_pure %r1, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.inst_itemtype> -> %r7
 420  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r9
 420  guard_class %r7 -> %i0
 423  getfield_raw_i %i0, FieldDescr<pypy.module.micronumpy.types.BaseType_vtable.cls_num> -> %i0
 428  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r9
 428  goto_if_not_int_eq %i0, $7, L28
 433  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r9
 433  record_quasiimmut_field %r2, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.inst_itemtype>, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.mutate_itemtype>
 439  getfield_gc_r_pure %r2, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.inst_itemtype> -> %r7
 444  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r9
 444  guard_class %r7 -> %i0
 447  getfield_raw_i %i0, FieldDescr<pypy.module.micronumpy.types.BaseType_vtable.cls_num> -> %i0
 452  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r9
 452  goto_if_not_int_eq %i0, $7, L29
 457  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r9
 457  goto_if_not_ptr_iszero %r3, L30
 461  getfield_gc_i_pure %r0, FieldDescr<pypy.module.micronumpy.ufuncs.W_Ufunc2.inst_promote_to_float> -> %i0
 466  -live- %i0, %r0, %r1, %r2, %r4, %r5, %r6, %r9
 466  goto_if_not %i0, L31
 470  int_copy $False -> %i1
 473  ref_copy $<* struct pypy.module.micronumpy.base.W_NDimArray> -> %r3
 476  goto L13
 479  ---
 479  L31:
 479  new <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x000000018bf58db0> -> %r7
 483  setfield_gc_r %r7, %r1, FieldDescr<tuple2.item0>
 488  setfield_gc_r %r7, %r1, FieldDescr<tuple2.item1>
 493  ref_return %r7
 495  ---
 495  L30:
 495  int_copy $False -> %i1
 498  goto L13
 501  ---
 501  L29:
 501  int_copy $False -> %i1
 504  goto L13
 507  ---
 507  L28:
 507  int_copy $False -> %i1
 510  goto L13
 513  ---
 513  L27:
 513  int_copy $False -> %i1
 516  goto L13
 519  ---
 519  L5:
 519  ref_copy %r4 -> %r9
 522  goto L6
 525  ---
 525  L3:
 525  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6
 525  goto_if_not_ptr_iszero %r6, L32
 529  int_copy $False -> %i0
 532  goto L4
 535  ---
 535  L32:
 535  getfield_gc_r %r5, FieldDescr<pypy.module.micronumpy.base.W_NDimArray.inst_implementation> -> %r7
 540  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 540  guard_class %r7 -> %i0
 543  getfield_raw_i %i0, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray_vtable.cls_get_shape> -> %i0
 548  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 548  switch %i0, <SwitchDictDescr 0:L33, 1:L34>
 552  unreachable
 553  ---
 553  L33:
 553  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 553  getfield_gc_r_pure %r7, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_shape> -> %r7
 558  L35:
 558  arraylen_gc %r7, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000000018f74afe0> -> %i0
 563  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6
 563  goto_if_not_int_is_zero %i0, L36
 567  getfield_gc_r %r6, FieldDescr<pypy.module.micronumpy.base.W_NDimArray.inst_implementation> -> %r7
 572  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 572  guard_class %r7 -> %i0
 575  getfield_raw_i %i0, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray_vtable.cls_get_shape> -> %i0
 580  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 580  switch %i0, <SwitchDictDescr 0:L37, 1:L38>
 584  unreachable
 585  ---
 585  L37:
 585  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 585  getfield_gc_r_pure %r7, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_shape> -> %r7
 590  L39:
 590  arraylen_gc %r7, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000000018f74afe0> -> %i0
 595  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6
 595  goto_if_not_int_is_zero %i0, L40
 599  L41:
 599  getfield_gc_r %r5, FieldDescr<pypy.module.micronumpy.base.W_NDimArray.inst_implementation> -> %r7
 604  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 604  guard_class %r7 -> %i0
 607  getfield_raw_i %i0, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray_vtable.cls_get_shape> -> %i0
 612  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 612  switch %i0, <SwitchDictDescr 0:L42, 1:L43>
 616  unreachable
 617  ---
 617  L42:
 617  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 617  getfield_gc_r_pure %r7, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_shape> -> %r7
 622  L44:
 622  arraylen_gc %r7, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000000018f74afe0> -> %i0
 627  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6
 627  goto_if_not_int_is_zero %i0, L45
 631  int_copy $False -> %i0
 634  goto L4
 637  ---
 637  L45:
 637  getfield_gc_r %r6, FieldDescr<pypy.module.micronumpy.base.W_NDimArray.inst_implementation> -> %r7
 642  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 642  guard_class %r7 -> %i0
 645  getfield_raw_i %i0, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray_vtable.cls_get_shape> -> %i0
 650  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 650  switch %i0, <SwitchDictDescr 0:L46, 1:L47>
 654  unreachable
 655  ---
 655  L46:
 655  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 655  getfield_gc_r_pure %r7, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_shape> -> %r7
 660  L48:
 660  arraylen_gc %r7, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000000018f74afe0> -> %i0
 665  int_is_zero %i0 -> %i0
 668  goto L4
 671  ---
 671  L47:
 671  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 671  getfield_gc_r_pure %r7, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_shape> -> %r7
 676  arraylen_gc %r7, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000000018f74afe0> -> %i0
 681  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 681  int_guard_value %i0
 683  goto L48
 686  ---
 686  L43:
 686  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 686  getfield_gc_r_pure %r7, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_shape> -> %r7
 691  arraylen_gc %r7, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000000018f74afe0> -> %i0
 696  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 696  int_guard_value %i0
 698  goto L44
 701  ---
 701  L40:
 701  int_copy $True -> %i0
 704  goto L4
 707  ---
 707  L38:
 707  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 707  getfield_gc_r_pure %r7, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_shape> -> %r7
 712  arraylen_gc %r7, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000000018f74afe0> -> %i0
 717  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 717  int_guard_value %i0
 719  goto L39
 722  ---
 722  L36:
 722  goto L41
 725  ---
 725  L34:
 725  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 725  getfield_gc_r_pure %r7, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_shape> -> %r7
 730  arraylen_gc %r7, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000000018f74afe0> -> %i0
 735  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 735  int_guard_value %i0
 737  goto L35
