[SelectionDAG] Add a signed integer absolute ISD node

Description

[SelectionDAG] Add a signed integer absolute ISD node

Reduced version of D26357 - based on the discussion on llvm-dev about canonicalization of UMIN/UMAX/SMIN/SMAX as well as ABS I've reduced that patch to just the ABS ISD node (with x86/sse support) to improve basic combines and lowering.

ARM/AArch64, Hexagon, PowerPC and NVPTX all have similar instructions allowing us to make this a generic opcode and move away from the hard coded tablegen patterns which makes it tricky to match more complex patterns.

At the moment this patch doesn't attempt legalization as we only create an ABS node if its legal/custom.

Differential Revision: https://reviews.llvm.org/D29639

Details

Committed
RKSimonMar 14 2017, 2:26 PM
Differential Revision
D29639: [SelectionDAG] Add a signed integer absolute ISD node
Parents
rL297779: [clangd] Fix not being able to attach a debugger on macOS
Branches
Unknown
Tags
Unknown