This is done by the middle end generally so probably rarely applied,
but was brought up in D142345 and if it is hit, does some good.
Alive2:
https://alive2.llvm.org/ce/z/KgyhbS
https://alive2.llvm.org/ce/z/HLhHLe
https://alive2.llvm.org/ce/z/8FtEZ4
https://alive2.llvm.org/ce/z/h_NDHa
https://alive2.llvm.org/ce/z/v7DotM
https://alive2.llvm.org/ce/z/G29gj4
https://alive2.llvm.org/ce/z/yZWEzu
https://alive2.llvm.org/ce/z/RFs4iC
Isn't ISD::ABS always one operand? We don't have the INT_MIN handling in the DAG node: