   0  -live- %i0, %i1, %i2
   3  goto_if_not_int_le %i1, $0, L1
   8  -live- %i1, %i2
  11  goto_if_not_int_is_zero %i1, L2
  15  residual_call_ir_i $<* fn ll_int_py_mod__Signed_Signed>, I[$1, %i2], R[], <CallDescr(ii) EF=0 OS_INT_PY_MOD> -> %i5
  24  int_return %i5
  26  ---
  26  L2:
  26  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x0000aaab00389e50> -> %r0
  30  setfield_gc_r %r0, $<* struct rpy_string>, FieldDescr<pypy.interpreter.error.OpErrFmtNoArgs.inst__value>
  35  setfield_gc_r %r0, $<* struct pypy.interpreter.baseobjspace.W_Root>, FieldDescr<pypy.interpreter.error.OperationError.inst_w_type>
  40  assert_not_none %r0
  42  -live- %r0
  45  raise %r0
  47  ---
  47  L1:
  47  -live- %i0, %i1, %i2
  50  goto_if_not_int_lt %i2, $0, L3
  55  -live- %i0, %i1, %i2
  58  int_sub_jump_if_ovf L4, $0, %i2 -> %i2
  64  int_copy $True -> %i3
  67  int_copy $1 -> %i5
  70  L5:
  70  int_and %i1, $1 -> %i4
  74  -live- %i0, %i1, %i2, %i3, %i4, %i5
  77  goto_if_not_int_is_true %i4, L6
  81  residual_call_ir_i $<* fn mulmod>, I[%i5, %i0, %i2], R[], <CallDescr(iii) EF=5> -> %i5
  91  L7:
  91  -live- %i0, %i1, %i2, %i3, %i5
  94  int_rshift %i1, $1 -> %i1
  98  -live- %i0, %i1, %i2, %i3, %i5
 101  goto_if_not_int_is_zero %i1, L8
 105  -live- %i2, %i3, %i5
 108  goto_if_not %i3, L9
 112  -live- %i2, %i5
 115  goto_if_not_int_gt %i5, $0, L10
 120  int_sub %i5, %i2 -> %i5
 124  int_return %i5
 126  ---
 126  L10:
 126  int_return %i5
 128  ---
 128  L9:
 128  int_return %i5
 130  ---
 130  L8:
 130  residual_call_ir_i $<* fn mulmod>, I[%i0, %i0, %i2], R[], <CallDescr(iii) EF=5> -> %i0
 140  -live- %i0, %i1, %i2, %i3, %i5
 143  goto L5
 146  ---
 146  L6:
 146  goto L7
 149  ---
 149  L4:
 149  raise $<* struct object>
 151  ---
 151  L3:
 151  int_copy $False -> %i3
 154  int_copy $1 -> %i5
 157  goto L5
