diff options
| author | Wei Ding <wei.ding2@amd.com> | 2017-02-24 23:00:29 +0000 |
|---|---|---|
| committer | Wei Ding <wei.ding2@amd.com> | 2017-02-24 23:00:29 +0000 |
| commit | 4d3d4ca1b37a5f236185dca599bfb32562958dd3 (patch) | |
| tree | 118022d3dce242e9ef03457eff32e4912957f992 /llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp | |
| parent | 9ea0817c5ac5fa59bb56dc78eb335f074e33a2c8 (diff) | |
| download | bcm5719-llvm-4d3d4ca1b37a5f236185dca599bfb32562958dd3.tar.gz bcm5719-llvm-4d3d4ca1b37a5f236185dca599bfb32562958dd3.zip | |
AMDGPU : Replace FMAD with FMA when denormals are enabled.
Differential Revision: http://reviews.llvm.org/D29958
llvm-svn: 296186
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp')
| -rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp b/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp index 9fa690bf8a0..f28afa89bd2 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp @@ -1290,7 +1290,10 @@ SDValue AMDGPUTargetLowering::LowerDIVREM24(SDValue Op, SelectionDAG &DAG, SDValue fqneg = DAG.getNode(ISD::FNEG, DL, FltVT, fq); // float fr = mad(fqneg, fb, fa); - SDValue fr = DAG.getNode(ISD::FMAD, DL, FltVT, fqneg, fb, fa); + unsigned OpCode = Subtarget->hasFP32Denormals() ? + (unsigned)AMDGPUISD::FMAD_FTZ : + (unsigned)ISD::FMAD; + SDValue fr = DAG.getNode(OpCode, DL, FltVT, fqneg, fb, fa); // int iq = (int)fq; SDValue iq = DAG.getNode(ToInt, DL, IntVT, fq); @@ -3416,6 +3419,7 @@ const char* AMDGPUTargetLowering::getTargetNodeName(unsigned Opcode) const { NODE_NAME_CASE(DIV_SCALE) NODE_NAME_CASE(DIV_FMAS) NODE_NAME_CASE(DIV_FIXUP) + NODE_NAME_CASE(FMAD_FTZ) NODE_NAME_CASE(TRIG_PREOP) NODE_NAME_CASE(RCP) NODE_NAME_CASE(RSQ) |

