fix sign-extension bug, add test