Instead of matching (sra (X, size(X)-1); sub (xor (X, Y), Y))
during isel, make ISD::ABS Legal and use a regular isel pattern.
Also add new pseudo instructions for NABS to avoid creating a negate
after the ABS pseudo expansion. NABS is no longer expanded by DAGCombiner
to (sra (X, size(X)-1); sub (Y, xor (X, Y)) due to ABS being legal.
The new codegen looks like what gcc generates for NABS.
This is a followup from D119171.
clang-format not found in user’s local PATH; not linting file.