negative right-shift could be trouble for smallint.