Correctly handle unsigned and float operations