diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2017-11-15 21:51:43 +0000 |
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2017-11-15 21:51:43 +0000 |
| commit | 301162c4fe0daa33b53f5e62c713cc9e42696800 (patch) | |
| tree | ab4a22800fb7c072c9c03166b20b366fe4e2c0ce /llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp | |
| parent | afbe849d7745811b0fc7c67e07be59330f099393 (diff) | |
| download | bcm5719-llvm-301162c4fe0daa33b53f5e62c713cc9e42696800.tar.gz bcm5719-llvm-301162c4fe0daa33b53f5e62c713cc9e42696800.zip | |
AMDGPU: Replace i64 add/sub lowering
Use VOP3 add/addc like usual.
This has some tradeoffs. Inline immediates fold
a little better, but other constants are worse off.
SIShrinkInstructions could be made smarter to handle
these cases.
This allows us to avoid selecting scalar adds where we
need to track the carry in scc and replace its users.
This makes it easier to use the carryless VALU adds.
llvm-svn: 318340
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp')
| -rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp b/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp index c9cefe3d2da..b6449b9f282 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp @@ -459,10 +459,8 @@ void AMDGPUDAGToDAGISel::Select(SDNode *N) { // We are selecting i64 ADD here instead of custom lower it during // DAG legalization, so we can fold some i64 ADDs used for address // calculation into the LOAD and STORE instructions. - case ISD::ADD: case ISD::ADDC: case ISD::ADDE: - case ISD::SUB: case ISD::SUBC: case ISD::SUBE: { if (N->getValueType(0) != MVT::i64) |

