   0  -live- %i0, %i1, %i2, %i3, %r0
   0  goto_if_not_int_is_zero %i3, L1
   4  ref_return $<* struct rpy_string>
   6  ---
   6  L1:
   6  -live- %i0, %i1, %i2, %i3, %r0
   6  goto_if_not_int_eq %i2, $1, L2
  11  -live- %i0, %i1, %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 -> %i3
  23  -live- %i0, %i1, %i3, %r0, %r1
  23  goto_if_not_int_eq %i1, %i3, 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  strlen %r0 -> %i3
  38  -live- %i0, %i1, %i3, %r0
  38  goto_if_not_int_gt %i1, %i3, L6
  43  strlen %r0 -> %i1
  46  L7:
  46  residual_call_ir_r $<* fn _ll_stringslice__rpy_stringPtr_Signed_Signed>, I[%i0, %i1], R[%r0], <CallDescr(rii) EF=3 OS_STR_SLICE> -> %r1
  56  -live- %r1
  56  ref_return %r1
  58  ---
  58  L6:
  58  goto L7
  61  ---
  61  L3:
  61  goto L5
  64  ---
  64  L2:
  64  residual_call_ir_r $<* fn Buffer.getslice>, I[%i0, %i1, %i2, %i3], R[%r0], <CallDescr(riiii) EF=7> -> %r1
  76  -live- %r1
  76  ref_return %r1
