diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-01-20 19:45:18 +0000 | 
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-01-20 19:45:18 +0000 | 
| commit | 7ac79ed8f0b50640e2809b9f230f87f1b68baa53 (patch) | |
| tree | 039d5c07475f736738d88ade943dd802eea6e808 /llvm/lib | |
| parent | a5195829f636162090d8dd6ff1c530933d9dcc53 (diff) | |
| download | bcm5719-llvm-7ac79ed8f0b50640e2809b9f230f87f1b68baa53.tar.gz bcm5719-llvm-7ac79ed8f0b50640e2809b9f230f87f1b68baa53.zip  | |
AMDGPU: Legalize more bitcasts
llvm-svn: 351700
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp | 12 | 
1 files changed, 7 insertions, 5 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp index 2beed6e8903..a8e12d06c0a 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp @@ -22,6 +22,7 @@  using namespace llvm;  using namespace LegalizeActions; +using namespace LegalityPredicates;  AMDGPULegalizerInfo::AMDGPULegalizerInfo(const GCNSubtarget &ST,                                           const GCNTargetMachine &TM) { @@ -103,11 +104,12 @@ AMDGPULegalizerInfo::AMDGPULegalizerInfo(const GCNSubtarget &ST,                                 G_UADDE, G_SADDE, G_USUBE, G_SSUBE})      .legalFor({{S32, S1}}); -  setAction({G_BITCAST, V2S16}, Legal); -  setAction({G_BITCAST, 1, S32}, Legal); - -  setAction({G_BITCAST, S32}, Legal); -  setAction({G_BITCAST, 1, V2S16}, Legal); +  getActionDefinitionsBuilder(G_BITCAST) +    .legalForCartesianProduct({S32, V2S16}) +    .legalForCartesianProduct({S64, V2S32, V4S16}) +    .legalForCartesianProduct({V2S64, V4S32}) +    // Don't worry about the size constraint. +    .legalIf(all(isPointer(0), isPointer(1)));    getActionDefinitionsBuilder(G_FCONSTANT)      .legalFor({S32, S64, S16});  | 

