   0  -live- %i0, %i1, %i2, %r0
   0  goto_if_not_int_is_zero %i2, L1
   4  ref_return $<* struct rpy_string>
   6  ---
   6  L1:
   6  -live- %i0, %i1, %i2, %r0
   6  goto_if_not_int_eq %i1, $1, L2
  11  -live- %i0, %i2, %r0
  11  goto_if_not_int_is_zero %i0, L3
  15  getfield_gc_r_pure %r0, FieldDescr<rpython.rlib.buffer.StringBuffer.inst_value> -> %r1
  20  strlen %r1 -> %i1
  23  -live- %i0, %i1, %i2, %r0, %r1
  23  goto_if_not_int_eq %i2, %i1, L4
  28  ref_return %r1
  30  ---
  30  L4:
  30  L5:
  30  getfield_gc_r_pure %r0, FieldDescr<rpython.rlib.buffer.StringBuffer.inst_value> -> %r0
  35  int_add %i0, %i2 -> %i2
  39  strlen %r0 -> %i1
  42  -live- %i0, %i1, %i2, %r0
  42  goto_if_not_int_gt %i2, %i1, L6
  47  strlen %r0 -> %i2
  50  L7:
  50  residual_call_ir_r $<* fn _ll_stringslice__rpy_stringPtr_Signed_Signed>, I[%i0, %i2], R[%r0], <CallDescr(rii) EF=3 OS_STR_SLICE> -> %r1
  60  -live- %r1
  60  ref_return %r1
  62  ---
  62  L6:
  62  goto L7
  65  ---
  65  L3:
  65  goto L5
  68  ---
  68  L2:
  68  residual_call_ir_r $<* fn Buffer.getslice>, I[%i0, %i1, %i2], R[%r0], <CallDescr(riii) EF=7> -> %r1
  79  -live- %r1
  79  ref_return %r1
