summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2019-02-07 18:14:39 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2019-02-07 18:14:39 +0000
commitc0f7569aab704435ba3517b9326b3f20432b1ae2 (patch)
tree464a19c5e53b004c8382782c6523153e72ee42fa /llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
parent04cbd988f9452c24dcb0353d674f859761952d21 (diff)
downloadbcm5719-llvm-c0f7569aab704435ba3517b9326b3f20432b1ae2.tar.gz
bcm5719-llvm-c0f7569aab704435ba3517b9326b3f20432b1ae2.zip
AMDGPU/GlobalISel: Legalize fsqrt
llvm-svn: 353438
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp')
-rw-r--r--llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
index 3a157235bdd..419e7112316 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
@@ -161,6 +161,18 @@ AMDGPULegalizerInfo::AMDGPULegalizerInfo(const GCNSubtarget &ST,
.scalarize(0)
.clampScalar(0, ST.has16BitInsts() ? S16 : S32, S64);
+ if (ST.has16BitInsts()) {
+ getActionDefinitionsBuilder(G_FSQRT)
+ .legalFor({S32, S64, S16})
+ .scalarize(0)
+ .clampScalar(0, S16, S64);
+ } else {
+ getActionDefinitionsBuilder(G_FSQRT)
+ .legalFor({S32, S64})
+ .scalarize(0)
+ .clampScalar(0, S32, S64);
+ }
+
getActionDefinitionsBuilder(G_FPTRUNC)
.legalFor({{S32, S64}, {S16, S32}})
.scalarize(0);
OpenPOWER on IntegriCloud