   0  -live- %i0, %r0
   3  goto_if_not_int_lt %i0, $0, L1
   8  getfield_gc_i_pure %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__length> -> %i1
  13  int_add %i0, %i1 -> %i2
  17  -live- %i0, %i1, %i2, %r0
  20  goto_if_not_int_lt %i2, $0, L2
  25  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x0000aaab00389e50> -> %r1
  29  setfield_gc_r %r1, $<* struct rpy_string>, FieldDescr<pypy.interpreter.error.OpErrFmtNoArgs.inst__value>
  34  setfield_gc_r %r1, $<* struct pypy.interpreter.baseobjspace.W_Root>, FieldDescr<pypy.interpreter.error.OperationError.inst_w_type>
  39  assert_not_none %r1
  41  -live- %r1
  44  raise %r1
  46  ---
  46  L2:
  46  getfield_gc_r_pure %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__utf8> -> %r1
  51  strlen %r1 -> %i2
  54  strlen %r1 -> %i3
  57  -live- %i0, %i1, %i2, %i3, %r0, %r1
  60  goto_if_not_int_eq %i1, %i3, L3
  65  int_sub %i2, $1 -> %i4
  69  L4:
  69  int_neg %i0 -> %i1
  72  int_sub %i1, $1 -> %i0
  76  int_copy $0 -> %i1
  79  L5:
  79  -live- %i0, %i1, %i2, %i4, %r0
  82  goto_if_not_int_ge %i1, %i0, L6
  87  L7:
  87  getfield_gc_r_pure %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__utf8> -> %r1
  92  strlen %r1 -> %i1
  95  -live- %i1, %i2, %i4, %r1
  98  goto_if_not_int_gt %i2, %i1, L8
 103  strlen %r1 -> %i2
 106  L9:
 106  residual_call_ir_r $<* fn _ll_stringslice__rpy_stringPtr_Signed_Signed>, I[%i4, %i2], R[%r1], <CallDescr(rii) EF=3 OS_STR_SLICE> -> %r1
 116  -live- %r1
 119  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x0000aaab01d47018> -> %r0
 123  setfield_gc_r %r0, %r1, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__utf8>
 128  setfield_gc_i %r0, $1, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__length>
 133  setfield_gc_r %r0, $<* None>, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__index_storage>
 138  ref_return %r0
 140  ---
 140  L8:
 140  goto L9
 143  ---
 143  L6:
 143  int_copy %i4 -> %i2
 146  int_add %i1, $1 -> %i1
 150  getfield_gc_i_pure %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__length> -> %i3
 155  getfield_gc_r_pure %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__utf8> -> %r1
 160  strlen %r1 -> %i4
 163  -live- %i0, %i1, %i2, %i3, %i4, %r0, %r1
 166  goto_if_not_int_eq %i3, %i4, L10
 171  int_sub %i2, $1 -> %i4
 175  goto L5
 178  ---
 178  L10:
 178  residual_call_ir_i $<* fn prev_codepoint_pos_dont_look_inside>, I[%i2], R[%r1], <CallDescr(ri) EF=0> -> %i4
 187  goto L5
 190  ---
 190  L3:
 190  residual_call_ir_i $<* fn prev_codepoint_pos_dont_look_inside>, I[%i2], R[%r1], <CallDescr(ri) EF=0> -> %i4
 199  goto L4
 202  ---
 202  L1:
 202  getfield_gc_i_pure %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__length> -> %i2
 207  -live- %i0, %i2, %r0
 210  goto_if_not_int_ge %i0, %i2, L11
 215  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x0000aaab00389e50> -> %r1
 219  setfield_gc_r %r1, $<* struct rpy_string>, FieldDescr<pypy.interpreter.error.OpErrFmtNoArgs.inst__value>
 224  setfield_gc_r %r1, $<* struct pypy.interpreter.baseobjspace.W_Root>, FieldDescr<pypy.interpreter.error.OperationError.inst_w_type>
 229  assert_not_none %r1
 231  -live- %r1
 234  raise %r1
 236  ---
 236  L11:
 236  getfield_gc_r_pure %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__utf8> -> %r1
 241  strlen %r1 -> %i1
 244  -live- %i0, %i1, %i2, %r0, %r1
 247  goto_if_not_int_eq %i2, %i1, L12
 252  int_copy $1 -> %i2
 255  int_copy $0 -> %i3
 258  int_copy $0 -> %i4
 261  L13:
 261  -live- %i0, %i2, %i3, %i4, %r0
 264  goto_if_not_int_ge %i3, %i0, L14
 269  goto L7
 272  ---
 272  L14:
 272  int_copy %i2 -> %i4
 275  int_add %i3, $1 -> %i3
 279  getfield_gc_i_pure %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__length> -> %i2
 284  getfield_gc_r_pure %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__utf8> -> %r1
 289  strlen %r1 -> %i1
 292  -live- %i0, %i1, %i2, %i3, %i4, %r0, %r1
 295  goto_if_not_int_eq %i2, %i1, L15
 300  int_add %i4, $1 -> %i2
 304  goto L13
 307  ---
 307  L15:
 307  residual_call_ir_i $<* fn next_codepoint_pos_dont_look_inside>, I[%i4], R[%r1], <CallDescr(ri) EF=0> -> %i2
 316  goto L13
 319  ---
 319  L12:
 319  residual_call_ir_i $<* fn next_codepoint_pos_dont_look_inside>, I[$0], R[%r1], <CallDescr(ri) EF=0> -> %i2
 328  int_copy $0 -> %i3
 331  int_copy $0 -> %i4
 334  goto L13
