Integers which can fit in an INT_TYPE are stored as such, not as bignums. This applies also to results of computations involving bignums. Smaller integer types are not used, as there would be no point; it would not save any memory because they are put in a svalue which has a fixed size, and it would generate slower code on most systems. (In strings smaller integer types are used as appropriate, because there it actually saves memory.)