fix range over different sized numbers in sh/dx