   0  setfield_gc_r %r0, %r1, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_strides>
   5  setfield_gc_r %r0, %r2, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_backstrides>
  10  setfield_gc_r %r0, %r3, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_shape>
  15  -live- %i0, %r0, %r3, %r4, %r5, %r6
  15  goto_if_not_ptr_iszero %r6, L1
  19  -live- %i0, %r0, %r3, %r4, %r5
  19  record_quasiimmut_field %r4, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_dtype>, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.mutate_dtype>
  25  getfield_gc_r_pure %r4, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_dtype> -> %r6
  30  L2:
  30  -live- %i0, %r0, %r3, %r4, %r5, %r6
  30  goto_if_not_ptr_nonzero %r4, L3
  34  ref_copy %r4 -> %r1
  37  -live- %i0, %r0, %r1, %r3, %r4, %r5, %r6
  37  guard_class %r1 -> %i1
  40  getfield_raw_i %i1, FieldDescr<object_vtable.subclassrange_min> -> %i1
  45  int_between $TotalOrderSymbolic('compute_fn'), %i1, $TotalOrderSymbolic('compute_fn') -> %i1
  50  -live- %i0, %i1, %r0, %r3, %r4, %r5, %r6
  50  goto_if_not %i1, L4
  54  getfield_gc_r %r4, FieldDescr<pypy.module.micronumpy.concrete.SliceArray.inst_parent> -> %r4
  59  L5:
  59  setfield_gc_r %r0, %r4, FieldDescr<pypy.module.micronumpy.concrete.SliceArray.inst_parent>
  64  getfield_gc_i_pure %r4, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_storage> -> %i1
  69  setfield_gc_i %r0, %i1, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_storage>
  74  getfield_gc_r_pure %r4, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_gcstruct> -> %r1
  79  setfield_gc_r %r0, %r1, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_gcstruct>
  84  getfield_gc_i_pure %r4, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_order> -> %i1
  89  int_is_zero %i1 -> %i2
  92  int_eq %i1, $1 -> %i3
  96  int_or %i2, %i3 -> %i2
 100  -live- %i0, %i1, %i2, %r0, %r3, %r4, %r5, %r6
 100  goto_if_not %i2, L6
 104  setfield_gc_i %r0, %i1, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_order>
 109  -live- %i0, %r0, %r3, %r4, %r5, %r6
 109  jit_force_quasi_immutable %r0, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.mutate_dtype>
 113  setfield_gc_r %r0, %r6, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_dtype>
 118  inline_call_r_i <JitCode 'product_check'>, R[%r3] -> %i1
 124  -live- %i0, %i1, %r0, %r4, %r5
 124  catch_exception L7
 127  -live- %i0, %i1, %r0, %r4, %r5
 127  record_quasiimmut_field %r0, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_dtype>, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.mutate_dtype>
 133  getfield_gc_r_pure %r0, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_dtype> -> %r1
 138  -live- %i0, %i1, %r0, %r1, %r4, %r5
 138  record_quasiimmut_field %r1, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.inst_elsize>, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.mutate_elsize>
 144  getfield_gc_i_pure %r1, FieldDescr<pypy.module.micronumpy.descriptor.W_Dtype.inst_elsize> -> %i2
 149  -live- %i0, %i1, %i2, %r0, %r4, %r5
 149  int_mul_jump_if_ovf L8, %i1, %i2 -> %i1
 155  setfield_gc_i %r0, %i1, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_size>
 160  setfield_gc_i %r0, %i0, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_start>
 165  setfield_gc_r %r0, %r5, FieldDescr<pypy.module.micronumpy.concrete.SliceArray.inst_orig_arr>
 170  getfield_gc_i_pure %r4, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_flags> -> %i1
 175  int_and %i1, $256 -> %i0
 179  int_and %i1, $1024 -> %i1
 183  int_or %i0, %i1 -> %i0
 187  inline_call_r_i <JitCode 'is_c_contiguous'>, R[%r0] -> %i1
 193  -live- %i0, %i1, %r0
 193  -live- %i0, %i1, %r0
 193  goto_if_not %i1, L9
 197  int_or %i0, $1 -> %i0
 201  L10:
 201  inline_call_r_i <JitCode 'is_f_contiguous'>, R[%r0] -> %i1
 207  -live- %i0, %i1, %r0
 207  -live- %i0, %i1, %r0
 207  goto_if_not %i1, L11
 211  int_or %i0, $2 -> %i0
 215  L12:
 215  setfield_gc_i %r0, %i0, FieldDescr<pypy.module.micronumpy.concrete.BaseConcreteArray.inst_flags>
 220  void_return
 221  ---
 221  L11:
 221  goto L12
 224  ---
 224  L9:
 224  goto L10
 227  ---
 227  L8:
 227  L13:
 227  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x000000018e6b98a0> -> %r1
 231  setfield_gc_r %r1, $<* struct rpy_string>, FieldDescr<pypy.interpreter.error.OpErrFmtNoArgs.inst__value>
 236  setfield_gc_r %r1, $<* struct pypy.interpreter.baseobjspace.W_Root>, FieldDescr<pypy.interpreter.error.OperationError.inst_w_type>
 241  assert_not_none %r1
 243  -live- %r1
 243  guard_class %r1 -> %i1
 246  -live- %r1
 246  raise %r1
 248  ---
 248  L7:
 248  goto_if_exception_mismatch $<* struct object_vtable>, L14
 252  goto L13
 255  ---
 255  L14:
 255  reraise
 256  ---
 256  L6:
 256  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x00000001b2381868> -> %r1
 260  setfield_gc_r %r1, $<* struct pypy.interpreter.baseobjspace.W_Root>, FieldDescr<pypy.interpreter.error.OperationError.inst_w_type>
 265  setfield_gc_r %r1, $<* struct tuple2>, FieldDescr<pypy.interpreter.error.OpErrFmt.inst_xstrings>
 270  setfield_gc_i %r1, %i1, FieldDescr<pypy.interpreter.error.OpErrFmt.inst_x0>
 275  assert_not_none %r1
 277  -live- %r1
 277  guard_class %r1 -> %i1
 280  -live- %r1
 280  raise %r1
 282  ---
 282  L4:
 282  goto L5
 285  ---
 285  L3:
 285  goto L5
 288  ---
 288  L1:
 288  goto L2
