diff options
| author | Sanjay Patel <spatel@rotateright.com> | 2019-03-23 15:00:52 +0000 |
|---|---|---|
| committer | Sanjay Patel <spatel@rotateright.com> | 2019-03-23 15:00:52 +0000 |
| commit | 2e92846d365a95b1379ed12c351582b681ce3d99 (patch) | |
| tree | c90fc9366a667040fa7a79a0f6f77deae3214d65 /llvm/lib | |
| parent | f5e52738fe9d991e065233b5b239ba491d76fe3b (diff) | |
| download | bcm5719-llvm-2e92846d365a95b1379ed12c351582b681ce3d99.tar.gz bcm5719-llvm-2e92846d365a95b1379ed12c351582b681ce3d99.zip | |
[x86] reduce code duplication; NFC
llvm-svn: 356836
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index beaf9b4e0d1..fe7f1a9e6a7 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -23926,17 +23926,19 @@ static SDValue lowerAddSub(SDValue Op, SelectionDAG &DAG, static SDValue LowerADDSAT_SUBSAT(SDValue Op, SelectionDAG &DAG) { MVT VT = Op.getSimpleValueType(); + SDValue X = Op.getOperand(0), Y = Op.getOperand(1); if (VT.getScalarType() == MVT::i1) { SDLoc dl(Op); switch (Op.getOpcode()) { default: llvm_unreachable("Expected saturated arithmetic opcode"); case ISD::UADDSAT: case ISD::SADDSAT: - return DAG.getNode(ISD::OR, dl, VT, Op.getOperand(0), Op.getOperand(1)); + // *addsat i1 X, Y --> X | Y + return DAG.getNode(ISD::OR, dl, VT, X, Y); case ISD::USUBSAT: case ISD::SSUBSAT: - return DAG.getNode(ISD::AND, dl, VT, Op.getOperand(0), - DAG.getNOT(dl, Op.getOperand(1), VT)); + // *subsat i1 X, Y --> X & ~Y + return DAG.getNode(ISD::AND, dl, VT, X, DAG.getNOT(dl, Y, VT)); } } |

