diff options
author | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2015-04-13 20:37:01 +0000 |
---|---|---|
committer | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2015-04-13 20:37:01 +0000 |
commit | 2c4487de6de9fbdc7cf2ee7d9ea6f462b2f425d6 (patch) | |
tree | 31834e1a802d1377f1f171b41f19b2aa640bfcad /llvm/lib/Target/Hexagon/HexagonISelLowering.cpp | |
parent | 54700b05c7e312e41155b52a367313898904ef8a (diff) | |
download | bcm5719-llvm-2c4487de6de9fbdc7cf2ee7d9ea6f462b2f425d6.tar.gz bcm5719-llvm-2c4487de6de9fbdc7cf2ee7d9ea6f462b2f425d6.zip |
Expand ADDO/SUBO on Hexagon
llvm-svn: 234795
Diffstat (limited to 'llvm/lib/Target/Hexagon/HexagonISelLowering.cpp')
-rw-r--r-- | llvm/lib/Target/Hexagon/HexagonISelLowering.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp b/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp index 3e754900f48..63900e02042 100644 --- a/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp +++ b/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp @@ -1717,6 +1717,14 @@ HexagonTargetLowering::HexagonTargetLowering(const TargetMachine &TM, setOperationAction(ISD::SUBC, MVT::i32, Expand); setOperationAction(ISD::SUBC, MVT::i64, Expand); + // Only add and sub that detect overflow are the saturating ones. + for (MVT VT : MVT::integer_valuetypes()) { + setOperationAction(ISD::UADDO, VT, Expand); + setOperationAction(ISD::SADDO, VT, Expand); + setOperationAction(ISD::USUBO, VT, Expand); + setOperationAction(ISD::SSUBO, VT, Expand); + } + setOperationAction(ISD::CTPOP, MVT::i32, Expand); setOperationAction(ISD::CTPOP, MVT::i64, Expand); setOperationAction(ISD::CTTZ, MVT::i32, Expand); |