diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2017-01-09 21:23:09 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2017-01-09 21:23:09 +0000 | 
| commit | 909545a822eef491158f831688066f0ec2866938 (patch) | |
| tree | 5b0bf0e81294007a9b462b21031b3df272c655c3 /lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp | |
| parent | 7e7b6700743285c0af506ac6299ddf82ebd434b9 (diff) | |
Diffstat (limited to 'lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp')
| -rw-r--r-- | lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp | 4 | 
1 files changed, 4 insertions, 0 deletions
| diff --git a/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp b/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp index ef3b44f7c211..2b4fc5397b18 100644 --- a/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp +++ b/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp @@ -608,6 +608,10 @@ bool AMDGPUDAGToDAGISel::SelectADDRIndirect(SDValue Addr, SDValue &Base,    if ((C = dyn_cast<ConstantSDNode>(Addr))) {      Base = CurDAG->getRegister(AMDGPU::INDIRECT_BASE_ADDR, MVT::i32);      Offset = CurDAG->getTargetConstant(C->getZExtValue(), DL, MVT::i32); +  } else if ((Addr.getOpcode() == AMDGPUISD::DWORDADDR) && +             (C = dyn_cast<ConstantSDNode>(Addr.getOperand(0)))) { +    Base = CurDAG->getRegister(AMDGPU::INDIRECT_BASE_ADDR, MVT::i32); +    Offset = CurDAG->getTargetConstant(C->getZExtValue(), DL, MVT::i32);    } else if ((Addr.getOpcode() == ISD::ADD || Addr.getOpcode() == ISD::OR) &&              (C = dyn_cast<ConstantSDNode>(Addr.getOperand(1)))) {      Base = Addr.getOperand(0); | 
