summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2019-07-09 14:10:43 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2019-07-09 14:10:43 +0000
commit8b8eee5904ca677bf5336da01160ee9bd3f98444 (patch)
treedef85f4015eaf8464c1653ba284c31f2d4c56d77 /llvm/lib/Target/AMDGPU
parente509af3cd6c92fd9607415fa40d158254fe93fec (diff)
downloadbcm5719-llvm-8b8eee5904ca677bf5336da01160ee9bd3f98444.tar.gz
bcm5719-llvm-8b8eee5904ca677bf5336da01160ee9bd3f98444.zip
AMDGPU/GlobalISel: Make s16 G_ICMP legal
llvm-svn: 365486
Diffstat (limited to 'llvm/lib/Target/AMDGPU')
-rw-r--r--llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
index 368cf3e0041..e65e56dc7e6 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
@@ -337,10 +337,16 @@ AMDGPULegalizerInfo::AMDGPULegalizerInfo(const GCNSubtarget &ST_,
setAction({G_BLOCK_ADDR, CodePtr}, Legal);
- getActionDefinitionsBuilder(G_ICMP)
+ auto &CmpBuilder =
+ getActionDefinitionsBuilder(G_ICMP)
.legalForCartesianProduct(
{S1}, {S32, S64, GlobalPtr, LocalPtr, ConstantPtr, PrivatePtr, FlatPtr})
- .legalFor({{S1, S32}, {S1, S64}})
+ .legalFor({{S1, S32}, {S1, S64}});
+ if (ST.has16BitInsts()) {
+ CmpBuilder.legalFor({{S1, S16}});
+ }
+
+ CmpBuilder
.widenScalarToNextPow2(1)
.clampScalar(1, S32, S64)
.scalarize(0)
OpenPOWER on IntegriCloud