   0  -live- %i0, %i1, %i2
   0  goto_if_not_int_le %i1, $0, L1
   5  -live- %i1, %i2
   5  goto_if_not_int_is_zero %i1, L2
   9  residual_call_ir_i $<* fn ll_int_py_mod__Signed_Signed>, I[$1, %i2], R[], <CallDescr(ii) EF=0 OS_INT_PY_MOD> -> %i5
  18  int_return %i5
  20  ---
  20  L2:
  20  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x000000018e6b98a0> -> %r0
  24  setfield_gc_r %r0, $<* struct rpy_string>, FieldDescr<pypy.interpreter.error.OpErrFmtNoArgs.inst__value>
  29  setfield_gc_r %r0, $<* struct pypy.interpreter.baseobjspace.W_Root>, FieldDescr<pypy.interpreter.error.OperationError.inst_w_type>
  34  assert_not_none %r0
  36  -live- %r0
  36  guard_class %r0 -> %i4
  39  -live- %r0
  39  raise %r0
  41  ---
  41  L1:
  41  -live- %i0, %i1, %i2
  41  goto_if_not_int_lt %i2, $0, L3
  46  -live- %i0, %i1, %i2
  46  int_sub_jump_if_ovf L4, $0, %i2 -> %i2
  52  int_copy $True -> %i3
  55  int_copy $1 -> %i5
  58  L5:
  58  int_and %i1, $1 -> %i4
  62  -live- %i0, %i1, %i2, %i3, %i4, %i5
  62  goto_if_not_int_is_true %i4, L6
  66  residual_call_ir_i $<* fn mulmod>, I[%i5, %i0, %i2], R[], <CallDescr(iii) EF=5> -> %i5
  76  -live- %i0, %i1, %i2, %i3, %i5
  76  L7:
  76  int_rshift %i1, $1 -> %i1
  80  -live- %i0, %i1, %i2, %i3, %i5
  80  goto_if_not_int_is_zero %i1, L8
  84  -live- %i2, %i3, %i5
  84  goto_if_not %i3, L9
  88  -live- %i2, %i5
  88  goto_if_not_int_gt %i5, $0, L10
  93  int_sub %i5, %i2 -> %i5
  97  int_return %i5
  99  ---
  99  L10:
  99  int_return %i5
 101  ---
 101  L9:
 101  int_return %i5
 103  ---
 103  L8:
 103  residual_call_ir_i $<* fn mulmod>, I[%i0, %i0, %i2], R[], <CallDescr(iii) EF=5> -> %i0
 113  -live- %i0, %i1, %i2, %i3, %i5
 113  goto L5
 116  ---
 116  L6:
 116  goto L7
 119  ---
 119  L4:
 119  raise $<* struct object>
 121  ---
 121  L3:
 121  int_copy $False -> %i3
 124  int_copy $1 -> %i5
 127  goto L5
