diff options
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.h')
| -rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.h b/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.h index bddfb8dd1913..7243d75aa830 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.h +++ b/llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.h @@ -15,6 +15,7 @@ namespace llvm { +class LLT; class MachineRegisterInfo; class MachineInstr; class GCNSubtarget; @@ -26,6 +27,9 @@ using MachineUniformityInfo = GenericUniformityInfo<MachineSSAContext>; namespace AMDGPU { +/// \returns true if \p Ty is a pointer type with size \p Width. +bool isAnyPtr(LLT Ty, unsigned Width); + // IDs used to build predicate for RegBankLegalizeRule. Predicate can have one // or more IDs and each represents a check for 'uniform or divergent' + LLT or // just LLT on register operand. @@ -39,16 +43,19 @@ enum UniformityLLTOpPredicateID { S16, S32, S64, + S128, UniS1, UniS16, UniS32, UniS64, + UniS128, DivS1, DivS16, DivS32, DivS64, + DivS128, // pointers P0, @@ -56,18 +63,27 @@ enum UniformityLLTOpPredicateID { P3, P4, P5, + Ptr32, + Ptr64, + Ptr128, UniP0, UniP1, UniP3, UniP4, UniP5, + UniPtr32, + UniPtr64, + UniPtr128, DivP0, DivP1, DivP3, DivP4, DivP5, + DivPtr32, + DivPtr64, + DivPtr128, // vectors V2S16, @@ -117,10 +133,14 @@ enum RegBankLLTMappingApplyID { Sgpr16, Sgpr32, Sgpr64, + Sgpr128, SgprP1, SgprP3, SgprP4, SgprP5, + SgprPtr32, + SgprPtr64, + SgprPtr128, SgprV2S16, SgprV4S32, SgprV2S32, @@ -135,11 +155,15 @@ enum RegBankLLTMappingApplyID { Vgpr16, Vgpr32, Vgpr64, + Vgpr128, VgprP0, VgprP1, VgprP3, VgprP4, VgprP5, + VgprPtr32, + VgprPtr64, + VgprPtr128, VgprV2S16, VgprV2S32, VgprB32, |
