summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2019-01-20 19:10:31 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2019-01-20 19:10:31 +0000
commit745fd9f547e08fe93fcce7c997b7c1b50a22a08d (patch)
tree445d5f1d5f3dd4b6e534a9963115b5df5231cb43 /llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
parentcfd9e7f594dd944427631be19bd6ef5dbe8ee161 (diff)
downloadbcm5719-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.cpp14
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);
OpenPOWER on IntegriCloud