X86 has its own copy of integer absolute pattern matching to combine directly to a SUB+CMOV.
This patch replaces the combine with custom lowering to permit more ISD::ABS combines.
Test cases are mostly covered by iabs.ll (rL315706 and rL315711). I can try to add further scalar ISD::ABS combine tests to combine-abs.ll if you think it useful.