diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-01-20 19:10:31 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-01-20 19:10:31 +0000 |
commit | 745fd9f547e08fe93fcce7c997b7c1b50a22a08d (patch) | |
tree | 445d5f1d5f3dd4b6e534a9963115b5df5231cb43 /llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp | |
parent | cfd9e7f594dd944427631be19bd6ef5dbe8ee161 (diff) | |
download | bcm5719-llvm-745fd9f547e08fe93fcce7c997b7c1b50a22a08d.tar.gz bcm5719-llvm-745fd9f547e08fe93fcce7c997b7c1b50a22a08d.zip |
GlobalISel: Implement widenScalar for basic FP ops
llvm-svn: 351696
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp')
-rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp index 61d344a3170..200840e93b2 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp @@ -136,7 +136,8 @@ AMDGPULegalizerInfo::AMDGPULegalizerInfo(const GCNSubtarget &ST, getActionDefinitionsBuilder( { G_FADD, G_FMUL, G_FNEG, G_FABS, G_FMA}) - .legalFor({S32, S64}); + .legalFor({S32, S64}) + .clampScalar(0, S32, S64); getActionDefinitionsBuilder(G_FPTRUNC) .legalFor({{S32, S64}, {S16, S32}}); @@ -145,11 +146,12 @@ AMDGPULegalizerInfo::AMDGPULegalizerInfo(const GCNSubtarget &ST, .legalFor({{S64, S32}, {S32, S16}}) .lowerFor({{S64, S16}}); // FIXME: Implement - // Use actual fsub instruction - setAction({G_FSUB, S32}, Legal); - - // Must use fadd + fneg - setAction({G_FSUB, S64}, Lower); + getActionDefinitionsBuilder(G_FSUB) + // Use actual fsub instruction + .legalFor({S32}) + // Must use fadd + fneg + .lowerFor({S64, S16}) + .clampScalar(0, S32, S64); setAction({G_FCMP, S1}, Legal); setAction({G_FCMP, 1, S32}, Legal); |