summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
diff options
context:
space:
mode:
authorKrzysztof Parzyszek <kparzysz@codeaurora.org>2015-04-13 20:37:01 +0000
committerKrzysztof Parzyszek <kparzysz@codeaurora.org>2015-04-13 20:37:01 +0000
commit2c4487de6de9fbdc7cf2ee7d9ea6f462b2f425d6 (patch)
tree31834e1a802d1377f1f171b41f19b2aa640bfcad /llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
parent54700b05c7e312e41155b52a367313898904ef8a (diff)
downloadbcm5719-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.cpp8
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);
OpenPOWER on IntegriCloud