Implement si3_rest, si4_rest, c1