   0  getfield_gc_i %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__length> -> %i2
   5  getfield_gc_r_pure %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__utf8> -> %r1
  10  strlen %r1 -> %i1
  13  -live- %i0, %i1, %i2, %r0
  13  goto_if_not_int_eq %i2, %i1, L1
  18  L2:
  18  -live- %i0, %r0
  18  goto_if_not_int_lt %i0, $0, L3
  23  getfield_gc_i %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__length> -> %i2
  28  int_add %i0, %i2 -> %i0
  32  L4:
  32  -live- %i0, %r0
  32  goto_if_not_int_lt %i0, $0, L5
  37  L6:
  37  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x000002aabbb1b8a0> -> %r1
  41  setfield_gc_r %r1, $<* struct rpy_string>, FieldDescr<pypy.interpreter.error.OpErrFmtNoArgs.inst__value>
  46  setfield_gc_r %r1, $<* struct pypy.interpreter.baseobjspace.W_Root>, FieldDescr<pypy.interpreter.error.OperationError.inst_w_type>
  51  assert_not_none %r1
  53  -live- %r1
  53  guard_class %r1 -> %i2
  56  -live- %r1
  56  raise %r1
  58  ---
  58  L5:
  58  getfield_gc_i %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__length> -> %i2
  63  -live- %i0, %i2, %r0
  63  goto_if_not_int_ge %i0, %i2, L7
  68  goto L6
  71  ---
  71  L7:
  71  getfield_gc_r_pure %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__utf8> -> %r2
  76  strlen %r2 -> %i1
  79  -live- %i0, %i1, %i2, %r0, %r2
  79  goto_if_not_int_eq %i2, %i1, L8
  84  ref_copy %r0 -> %r3
  87  L9:
  87  getfield_gc_i %r3, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__length> -> %i2
  92  getfield_gc_r_pure %r3, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__utf8> -> %r1
  97  strlen %r1 -> %i1
 100  -live- %i0, %i1, %i2, %r1, %r3
 100  goto_if_not_int_eq %i2, %i1, L10
 105  int_add %i0, $1 -> %i1
 109  L11:
 109  getfield_gc_r_pure %r3, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__utf8> -> %r1
 114  strlen %r1 -> %i2
 117  -live- %i0, %i1, %i2, %r1
 117  goto_if_not_int_gt %i1, %i2, L12
 122  strlen %r1 -> %i1
 125  L13:
 125  residual_call_ir_r $<* fn _ll_stringslice__rpy_stringPtr_Signed_Signed>, I[%i0, %i1], R[%r1], <CallDescr(rii) EF=3 OS_STR_SLICE> -> %r1
 135  -live- %r1
 135  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x000002aac551d398> -> %r0
 139  setfield_gc_r %r0, %r1, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__utf8>
 144  setfield_gc_i %r0, $1, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__length>
 149  setfield_gc_r %r0, $<* None>, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__index_storage>
 154  ref_return %r0
 156  ---
 156  L12:
 156  goto L13
 159  ---
 159  L10:
 159  residual_call_ir_i $<* fn next_codepoint_pos_dont_look_inside>, I[%i0], R[%r1], <CallDescr(ri) EF=0> -> %i1
 168  goto L11
 171  ---
 171  L8:
 171  getfield_gc_r %r0, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__index_storage> -> %r1
 176  ref_copy %r0 -> %r3
 179  conditional_call_value_ir_r %r1, $<* fn W_UnicodeObject._compute_index_storage>, I[], R[%r0], <CallDescr(r) EF=5> -> %r1
 188  -live- %i0, %r1, %r2, %r3
 188  residual_call_ir_i $<* fn codepoint_position_at_index>, I[%i0], R[%r2, %r1], <CallDescr(rri) EF=4> -> %i0
 198  -live- %i0, %r3
 198  goto L9
 201  ---
 201  L3:
 201  goto L4
 204  ---
 204  L1:
 204  int_isconstant %i0 -> %i2
 207  -live- %i0, %i2, %r0
 207  goto_if_not %i2, L14
 211  -live- %i0, %r0
 211  goto_if_not_int_ge %i0, $-4, L15
 216  -live- %i0, %r0
 216  goto_if_not_int_le %i0, $4, L16
 221  inline_call_ir_r <JitCode 'W_UnicodeObject._getitem_result_constant_index_jit'>, I[%i0], R[%r0] -> %r0
 229  -live- %r0
 229  ref_return %r0
 231  ---
 231  L16:
 231  goto L2
 234  ---
 234  L15:
 234  goto L2
 237  ---
 237  L14:
 237  goto L2
