This attempts to optimise negative values used in load/store operands
a little. We currently try to selct them as rr, materialising the
negative constant using a MOV/MVN pair. This instead selects ri with
an immediate of 0, forcing the add node to become a simpler sub.
The ldrsb and ldrsh tests here are not really better, but not worse either.
It will depend upon whether the constant or the add havee multiple uses.
It appears to be fairly common for an address to be used, and stored
somewhere at the same time.