   0  -live- %i0, %i1, %r0, %r1, %r2
   3  guard_class %r2 -> %i2
   6  getfield_raw_i %i2, FieldDescr<object_vtable.subclassrange_min> -> %i2
  11  int_between $TotalOrderSymbolic('compute_fn'), %i2, $TotalOrderSymbolic('compute_fn') -> %i2
  16  -live- %i0, %i1, %i2, %r0, %r1, %r2
  19  goto_if_not %i2, L1
  23  L2:
  23  inline_call_r_r <JitCode 'unicode_from_encoded_object'>, R[%r0, $<* struct rpy_string>, $<* struct rpy_string>] -> %r3
  31  -live- %i0, %i1, %r2, %r3
  34  getfield_gc_r_pure %r3, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__utf8> -> %r3
  39  inline_call_r_r <JitCode 'convert_arg_to_w_unicode'>, R[%r2, $<* struct rpy_string>] -> %r2
  46  -live- %i0, %i1, %r2, %r3
  49  getfield_gc_r_pure %r2, FieldDescr<pypy.objspace.std.unicodeobject.W_UnicodeObject.inst__utf8> -> %r2
  54  strlen %r2 -> %i2
  57  -live- %i0, %i1, %i2, %r2, %r3
  60  goto_if_not_int_is_zero %i2, L3
  64  int_return $True
  66  ---
  66  L3:
  66  residual_call_ir_i $<* fn endswith__str_str>, I[%i0, %i1], R[%r3, %r2], <CallDescr(rrii) EF=4> -> %i2
  77  -live- %i2
  80  int_return %i2
  82  ---
  82  L1:
  82  -live- %i0, %i1, %r0, %r1, %r2
  85  guard_class %r2 -> %i2
  88  -live- %i0, %i1, %i2, %r0, %r1, %r2
  91  int_guard_value %i2
  93  -live- %i0, %i1, %r0, %r1, %r2
  96  guard_class %r2 -> %i2
  99  getfield_raw_i %i2, FieldDescr<pypy.interpreter.baseobjspace.W_Root_vtable.cls_getclass> -> %i2
 104  -live- %i0, %i1, %i2, %r0, %r1, %r2
 107  switch %i2, <SwitchDictDescr 0:L4, 1:L5, 2:L6, 3:L7>
 111  unreachable
 112  ---
 112  L4:
 112  -live- %i0, %i1, %r0, %r1, %r2
 115  guard_class %r2 -> %i2
 118  getfield_raw_i %i2, FieldDescr<pypy.interpreter.baseobjspace.W_Root_vtable.cls__get_mapdict_map> -> %i2
 123  -live- %i0, %i1, %i2, %r0, %r1, %r2
 126  int_guard_value %i2
 128  residual_call_r_r %i2, <IndirectCallTargets>, R[%r2], <CallDescr(r) EF=2> -> %r3
 135  -live- %i0, %i1, %r0, %r1, %r2, %r3
 138  getfield_gc_r_pure %r3, FieldDescr<pypy.objspace.std.mapdict.AbstractAttribute.inst_terminator> -> %r3
 143  getfield_gc_r_pure %r3, FieldDescr<pypy.objspace.std.mapdict.Terminator.inst_w_cls> -> %r3
 148  L8:
 148  inline_call_r_i <JitCode 'W_TypeObject.issubtype'>, R[%r3, $<* struct pypy.objspace.std.typeobject.W_TypeObject>] -> %i2
 155  -live- %i0, %i1, %i2, %r0, %r1, %r2
 158  goto_if_not %i2, L9
 162  goto L2
 165  ---
 165  L9:
 165  inline_call_r_r <JitCode '_op_val'>, R[%r2, $<* struct rpy_string>] -> %r3
 172  -live- %i0, %i1, %r1, %r3
 175  strlen %r1 -> %i2
 178  -live- %i0, %i1, %i2, %r1, %r3
 181  goto_if_not_int_gt %i0, %i2, L10
 186  int_return $False
 188  ---
 188  L10:
 188  residual_call_ir_i $<* fn endswith__str_str>, I[%i0, %i1], R[%r1, %r3], <CallDescr(rrii) EF=4> -> %i2
 199  -live- %i2
 202  int_return %i2
 204  ---
 204  L5:
 204  -live- %i0, %i1, %r0, %r1, %r2
 207  getfield_gc_r %r2, FieldDescr<pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable.inst_map> -> %r3
 212  -live- %i0, %i1, %r0, %r1, %r2, %r3
 215  ref_guard_value %r3
 217  getfield_gc_r_pure %r3, FieldDescr<pypy.objspace.std.mapdict.AbstractAttribute.inst_terminator> -> %r3
 222  getfield_gc_r_pure %r3, FieldDescr<pypy.objspace.std.mapdict.Terminator.inst_w_cls> -> %r3
 227  goto L8
 230  ---
 230  L6:
 230  -live- %i0, %i1, %r0, %r1, %r2
 233  getfield_gc_r %r2, FieldDescr<pypy.objspace.std.proxyobject.W_Transparent.inst_w_type> -> %r3
 238  goto L8
 241  ---
 241  L7:
 241  -live- %i0, %i1, %r0, %r1, %r2
 244  guard_class %r2 -> %i2
 247  getfield_raw_r %i2, FieldDescr<pypy.interpreter.baseobjspace.W_Root_vtable.pbc2internal_memofield_gettypefor_3> -> %r3
 252  goto L8
