We already do this for min/max (see the blob above the diff), so we should do the same for abs/nabs.
Compare with 0 and having the original argument as the true value of the select feels the most natural to me, but if someone prefers a different flavor, we could do that too.
This might solve the motivating cases for D47037 and D47041, but I think those patches still make sense. We can't guarantee this canonicalization if the icmp has more than one use.
I adjusted the shifty abs transform to the pattern here to make that transform more efficient.