   0  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6
   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> -> %r7
  14  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
  17  guard_class %r7 -> %i0
  20  getfield_raw_i %i0, FieldDescr<pypy.module.micronumpy.types.BaseType_vtable.cls_num> -> %i0
  25  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6
  28  goto_if_not_int_eq %i0, $17, L1
  33  ref_return $<* struct tuple2>
  35  ---
  35  L1:
  35  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6
  38  record_quasiimmut_field %r2, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.inst_itemtype>, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.mutate_itemtype>
  44  getfield_gc_r_pure %r2, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.inst_itemtype> -> %r7
  49  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
  52  guard_class %r7 -> %i0
  55  getfield_raw_i %i0, FieldDescr<pypy.module.micronumpy.types.BaseType_vtable.cls_num> -> %i0
  60  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6
  63  goto_if_not_int_eq %i0, $17, L2
  68  ref_return $<* struct tuple2>
  70  ---
  70  L2:
  70  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6
  73  goto_if_not_ptr_iszero %r5, L3
  77  int_copy $False -> %i0
  80  L4:
  80  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r4, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i1
  88  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r4, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i2
  96  int_or %i1, %i2 -> %i1
 100  -live- %i0, %i1, %r0, %r1, %r2, %r3, %r4, %r5, %r6
 103  goto_if_not %i1, L5
 107  ref_copy %r4 -> %r9
 110  ref_copy $<* struct rpy_string> -> %r4
 113  L6:
 113  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r9
 116  goto_if_not %i0, L7
 120  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r9
 123  goto_if_not_ptr_nonzero %r5, L8
 127  ref_copy %r5 -> %r7
 130  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r9
 133  guard_class %r7 -> %i0
 136  getfield_raw_i %i0, FieldDescr<object_vtable.subclassrange_min> -> %i0
 141  int_between $TotalOrderSymbolic('compute_fn'), %i0, $TotalOrderSymbolic('compute_fn') -> %i0
 146  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r9
 149  goto_if_not %i0, L9
 153  L10:
 153  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r9
 156  goto_if_not_ptr_nonzero %r6, L11
 160  ref_copy %r6 -> %r7
 163  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r9
 166  guard_class %r7 -> %i0
 169  getfield_raw_i %i0, FieldDescr<object_vtable.subclassrange_min> -> %i0
 174  int_between $TotalOrderSymbolic('compute_fn'), %i0, $TotalOrderSymbolic('compute_fn') -> %i0
 179  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r9
 182  goto_if_not %i0, L12
 186  int_copy $True -> %i1
 189  L13:
 189  getfield_gc_r_pure %r0, FieldDescr<pypy.module.micronumpy.ufuncs.W_Ufunc2.inst_dtypes> -> %r8
 194  int_copy $0 -> %i2
 197  L14:
 197  arraylen_gc %r8, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x0000aaab153484b8> -> %i0
 202  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r8, %r9
 205  goto_if_not_int_ge %i2, %i0, L15
 210  getfield_gc_r_pure %r0, FieldDescr<pypy.module.micronumpy.ufuncs.W_Ufunc.inst_name> -> %r7
 215  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x0000aaab068bacd0> -> %r6
 219  setfield_gc_r %r6, $<* struct pypy.interpreter.baseobjspace.W_Root>, FieldDescr<pypy.interpreter.error.OperationError.inst_w_type>
 224  setfield_gc_r %r6, $<* struct tuple2>, FieldDescr<pypy.interpreter.error.OpErrFmt.inst_xstrings>
 229  setfield_gc_r %r6, %r7, FieldDescr<pypy.interpreter.error.OpErrFmt.inst_x0>
 234  assert_not_none %r6
 236  -live- %r6
 239  raise %r6
 241  ---
 241  L15:
 241  int_copy %i2 -> %i0
 244  ref_copy %r8 -> %r7
 247  int_add %i0, $1 -> %i2
 251  getarrayitem_gc_r_pure %r7, %i0, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x0000aaab153484b8> -> %r7
 257  getfield_gc_r_pure %r7, FieldDescr<tuple2.item0> -> %r10
 262  getfield_gc_r_pure %r7, FieldDescr<tuple2.item1> -> %r11
 267  -live- %i1, %i2, %r0, %r1, %r10, %r11, %r2, %r3, %r4, %r5, %r6, %r8, %r9
 270  goto_if_not %i1, L16
 274  inline_call_r_i <JitCode 'can_cast_array'>, R[%r5, %r10, %r4] -> %i0
 282  -live- %i0, %i2, %r0, %r1, %r10, %r11, %r2, %r3, %r4, %r5, %r6, %r8, %r9
 285  goto_if_not %i0, L17
 289  inline_call_r_i <JitCode 'can_cast_array'>, R[%r6, %r10, %r4] -> %i0
 297  -live- %i0, %i2, %r0, %r1, %r10, %r11, %r2, %r3, %r4, %r5, %r6, %r8, %r9
 300  goto_if_not %i0, L18
 304  int_copy $True -> %i1
 307  L19:
 307  -live- %i1, %i2, %r0, %r1, %r10, %r11, %r2, %r3, %r4, %r5, %r6, %r8, %r9
 310  goto_if_not_ptr_iszero %r3, L20
 314  L21:
 314  new <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x0000aaab0c729ad0> -> %r7
 318  setfield_gc_r %r7, %r10, FieldDescr<tuple2.item0>
 323  setfield_gc_r %r7, %r11, FieldDescr<tuple2.item1>
 328  ref_return %r7
 330  ---
 330  L20:
 330  getfield_gc_r %r3, FieldDescr<pypy.module.micronumpy.base.W_NDimArray.inst_implementation> -> %r7
 335  -live- %i1, %i2, %r0, %r1, %r10, %r11, %r2, %r3, %r4, %r5, %r6, %r7, %r8, %r9
 338  record_quasiimmut_field %r7, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_dtype>, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.mutate_dtype>
 344  getfield_gc_r_pure %r7, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_dtype> -> %r7
 349  inline_call_r_i <JitCode 'can_cast_type'>, R[%r11, %r7, %r9] -> %i0
 357  -live- %i0, %i1, %i2, %r0, %r1, %r10, %r11, %r2, %r3, %r4, %r5, %r6, %r8, %r9
 360  goto_if_not %i0, L22
 364  goto L21
 367  ---
 367  L22:
 367  goto L14
 370  ---
 370  L18:
 370  int_copy $True -> %i1
 373  goto L14
 376  ---
 376  L17:
 376  int_copy $True -> %i1
 379  goto L14
 382  ---
 382  L16:
 382  inline_call_r_i <JitCode 'can_cast_type'>, R[%r1, %r10, %r4] -> %i0
 390  -live- %i0, %i2, %r0, %r1, %r10, %r11, %r2, %r3, %r4, %r5, %r6, %r8, %r9
 393  goto_if_not %i0, L23
 397  inline_call_r_i <JitCode 'can_cast_type'>, R[%r2, %r10, %r4] -> %i0
 405  -live- %i0, %i2, %r0, %r1, %r10, %r11, %r2, %r3, %r4, %r5, %r6, %r8, %r9
 408  goto_if_not %i0, L24
 412  int_copy $False -> %i1
 415  goto L19
 418  ---
 418  L24:
 418  int_copy $False -> %i1
 421  goto L14
 424  ---
 424  L23:
 424  int_copy $False -> %i1
 427  goto L14
 430  ---
 430  L12:
 430  L25:
 430  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
 442  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r9
 445  int_copy $True -> %i1
 448  goto L13
 451  ---
 451  L11:
 451  goto L25
 454  ---
 454  L9:
 454  L26:
 454  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
 466  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r9
 469  goto L10
 472  ---
 472  L8:
 472  goto L26
 475  ---
 475  L7:
 475  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r4, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i0
 483  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r9
 486  goto_if_not %i0, L27
 490  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r9
 493  record_quasiimmut_field %r1, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.inst_itemtype>, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.mutate_itemtype>
 499  getfield_gc_r_pure %r1, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.inst_itemtype> -> %r7
 504  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r9
 507  guard_class %r7 -> %i0
 510  getfield_raw_i %i0, FieldDescr<pypy.module.micronumpy.types.BaseType_vtable.cls_num> -> %i0
 515  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r9
 518  goto_if_not_int_eq %i0, $7, L28
 523  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r9
 526  record_quasiimmut_field %r2, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.inst_itemtype>, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.mutate_itemtype>
 532  getfield_gc_r_pure %r2, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.inst_itemtype> -> %r7
 537  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7, %r9
 540  guard_class %r7 -> %i0
 543  getfield_raw_i %i0, FieldDescr<pypy.module.micronumpy.types.BaseType_vtable.cls_num> -> %i0
 548  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r9
 551  goto_if_not_int_eq %i0, $7, L29
 556  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r9
 559  goto_if_not_ptr_iszero %r3, L30
 563  getfield_gc_i_pure %r0, FieldDescr<pypy.module.micronumpy.ufuncs.W_Ufunc2.inst_promote_to_float> -> %i0
 568  -live- %i0, %r0, %r1, %r2, %r4, %r5, %r6, %r9
 571  goto_if_not %i0, L31
 575  int_copy $False -> %i1
 578  ref_copy $<* struct pypy.module.micronumpy.base.W_NDimArray> -> %r3
 581  goto L13
 584  ---
 584  L31:
 584  new <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x0000aaab0c729ad0> -> %r7
 588  setfield_gc_r %r7, %r1, FieldDescr<tuple2.item0>
 593  setfield_gc_r %r7, %r1, FieldDescr<tuple2.item1>
 598  ref_return %r7
 600  ---
 600  L30:
 600  int_copy $False -> %i1
 603  goto L13
 606  ---
 606  L29:
 606  int_copy $False -> %i1
 609  goto L13
 612  ---
 612  L28:
 612  int_copy $False -> %i1
 615  goto L13
 618  ---
 618  L27:
 618  int_copy $False -> %i1
 621  goto L13
 624  ---
 624  L5:
 624  ref_copy %r4 -> %r9
 627  goto L6
 630  ---
 630  L3:
 630  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6
 633  goto_if_not_ptr_iszero %r6, L32
 637  int_copy $False -> %i0
 640  goto L4
 643  ---
 643  L32:
 643  getfield_gc_r %r5, FieldDescr<pypy.module.micronumpy.base.W_NDimArray.inst_implementation> -> %r7
 648  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 651  guard_class %r7 -> %i0
 654  getfield_raw_i %i0, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray_vtable.cls_get_shape> -> %i0
 659  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 662  switch %i0, <SwitchDictDescr 0:L33, 1:L34>
 666  unreachable
 667  ---
 667  L33:
 667  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 670  getfield_gc_r_pure %r7, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_shape> -> %r7
 675  L35:
 675  arraylen_gc %r7, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x0000aaab0d404e20> -> %i0
 680  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6
 683  goto_if_not_int_is_zero %i0, L36
 687  getfield_gc_r %r6, FieldDescr<pypy.module.micronumpy.base.W_NDimArray.inst_implementation> -> %r7
 692  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 695  guard_class %r7 -> %i0
 698  getfield_raw_i %i0, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray_vtable.cls_get_shape> -> %i0
 703  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 706  switch %i0, <SwitchDictDescr 0:L37, 1:L38>
 710  unreachable
 711  ---
 711  L37:
 711  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 714  getfield_gc_r_pure %r7, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_shape> -> %r7
 719  L39:
 719  arraylen_gc %r7, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x0000aaab0d404e20> -> %i0
 724  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6
 727  goto_if_not_int_is_zero %i0, L40
 731  L41:
 731  getfield_gc_r %r5, FieldDescr<pypy.module.micronumpy.base.W_NDimArray.inst_implementation> -> %r7
 736  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 739  guard_class %r7 -> %i0
 742  getfield_raw_i %i0, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray_vtable.cls_get_shape> -> %i0
 747  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 750  switch %i0, <SwitchDictDescr 0:L42, 1:L43>
 754  unreachable
 755  ---
 755  L42:
 755  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 758  getfield_gc_r_pure %r7, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_shape> -> %r7
 763  L44:
 763  arraylen_gc %r7, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x0000aaab0d404e20> -> %i0
 768  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6
 771  goto_if_not_int_is_zero %i0, L45
 775  int_copy $False -> %i0
 778  goto L4
 781  ---
 781  L45:
 781  getfield_gc_r %r6, FieldDescr<pypy.module.micronumpy.base.W_NDimArray.inst_implementation> -> %r7
 786  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 789  guard_class %r7 -> %i0
 792  getfield_raw_i %i0, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray_vtable.cls_get_shape> -> %i0
 797  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 800  switch %i0, <SwitchDictDescr 0:L46, 1:L47>
 804  unreachable
 805  ---
 805  L46:
 805  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 808  getfield_gc_r_pure %r7, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_shape> -> %r7
 813  L48:
 813  arraylen_gc %r7, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x0000aaab0d404e20> -> %i0
 818  int_is_zero %i0 -> %i0
 821  goto L4
 824  ---
 824  L47:
 824  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 827  getfield_gc_r_pure %r7, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_shape> -> %r7
 832  arraylen_gc %r7, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x0000aaab0d404e20> -> %i0
 837  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 840  int_guard_value %i0
 842  goto L48
 845  ---
 845  L43:
 845  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 848  getfield_gc_r_pure %r7, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_shape> -> %r7
 853  arraylen_gc %r7, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x0000aaab0d404e20> -> %i0
 858  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 861  int_guard_value %i0
 863  goto L44
 866  ---
 866  L40:
 866  int_copy $True -> %i0
 869  goto L4
 872  ---
 872  L38:
 872  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 875  getfield_gc_r_pure %r7, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_shape> -> %r7
 880  arraylen_gc %r7, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x0000aaab0d404e20> -> %i0
 885  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 888  int_guard_value %i0
 890  goto L39
 893  ---
 893  L36:
 893  goto L41
 896  ---
 896  L34:
 896  -live- %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 899  getfield_gc_r_pure %r7, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_shape> -> %r7
 904  arraylen_gc %r7, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x0000aaab0d404e20> -> %i0
 909  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5, %r6, %r7
 912  int_guard_value %i0
 914  goto L35
