In type.[ch]pp, to TypeInt and TypeLong, add bitwise constant information.
Specifically, in addition to arithmetic upper and lower bounds _hi and _lo, add bitwise upper and lower bounds, _up and _dn.
Push this information through TypePtr offsets, to track alignment information.
Use this information to help decide if ALU operations can be strength reduced.
The bit equations can be derived with some thought. A working Java prototype is attached (creation date is 4/18/2007, by jrose).