summaryrefslogtreecommitdiff
path: root/lib/Target/R600/R600ISelLowering.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2014-06-23 18:00:49 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2014-06-23 18:00:49 +0000
commit9ad2c7ef924e4e3c782d0c6267ca39e424911df7 (patch)
treefb51859c697f2146c314e25f8de5dfe408952424 /lib/Target/R600/R600ISelLowering.cpp
parent5f607c0b392efa72d3dcb6486a2f164528f48ebe (diff)
downloadllvm-9ad2c7ef924e4e3c782d0c6267ca39e424911df7.tar.gz
llvm-9ad2c7ef924e4e3c782d0c6267ca39e424911df7.tar.bz2
llvm-9ad2c7ef924e4e3c782d0c6267ca39e424911df7.tar.xz
R600: Move add/sub with overflow out of AMDILISelLowering
Add more tests for these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211517 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/R600/R600ISelLowering.cpp')
-rw-r--r--lib/Target/R600/R600ISelLowering.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/Target/R600/R600ISelLowering.cpp b/lib/Target/R600/R600ISelLowering.cpp
index 8c083262f9..612268a58b 100644
--- a/lib/Target/R600/R600ISelLowering.cpp
+++ b/lib/Target/R600/R600ISelLowering.cpp
@@ -169,6 +169,14 @@ R600TargetLowering::R600TargetLowering(TargetMachine &TM) :
setOperationAction(ISD::GlobalAddress, MVT::i32, Custom);
+ const MVT ScalarIntVTs[] = { MVT::i32, MVT::i64 };
+ for (MVT VT : ScalarIntVTs) {
+ setOperationAction(ISD::ADDC, VT, Expand);
+ setOperationAction(ISD::SUBC, VT, Expand);
+ setOperationAction(ISD::ADDE, VT, Expand);
+ setOperationAction(ISD::SUBE, VT, Expand);
+ }
+
setBooleanContents(ZeroOrNegativeOneBooleanContent);
setBooleanVectorContents(ZeroOrNegativeOneBooleanContent);
setSchedulingPreference(Sched::Source);