   0  -live- %i0, %i1, %i2, %r0
   3  goto_if_not_int_is_zero %i2, L1
   7  ref_return $<* struct rpy_string>
   9  ---
   9  L1:
   9  -live- %i0, %i1, %i2, %r0
  12  goto_if_not_int_eq %i1, $1, L2
  17  -live- %i0, %i2, %r0
  20  goto_if_not_int_is_zero %i0, L3
  24  getfield_gc_r_pure %r0, FieldDescr<rpython.rlib.buffer.StringBuffer.inst_value> -> %r1
  29  strlen %r1 -> %i1
  32  -live- %i0, %i1, %i2, %r0, %r1
  35  goto_if_not_int_eq %i2, %i1, L4
  40  ref_return %r1
  42  ---
  42  L4:
  42  L5:
  42  getfield_gc_r_pure %r0, FieldDescr<rpython.rlib.buffer.StringBuffer.inst_value> -> %r0
  47  int_add %i0, %i2 -> %i2
  51  strlen %r0 -> %i1
  54  -live- %i0, %i1, %i2, %r0
  57  goto_if_not_int_gt %i2, %i1, L6
  62  strlen %r0 -> %i2
  65  L7:
  65  residual_call_ir_r $<* fn _ll_stringslice__rpy_stringPtr_Signed_Signed>, I[%i0, %i2], R[%r0], <CallDescr(rii) EF=3 OS_STR_SLICE> -> %r1
  75  -live- %r1
  78  ref_return %r1
  80  ---
  80  L6:
  80  goto L7
  83  ---
  83  L3:
  83  goto L5
  86  ---
  86  L2:
  86  residual_call_ir_r $<* fn Buffer.getslice>, I[%i0, %i1, %i2], R[%r0], <CallDescr(riii) EF=7> -> %r1
  97  -live- %r1
 100  ref_return %r1
