From: Matt Arsenault Date: Fri, 6 Sep 2019 00:36:10 +0000 (+0000) Subject: AMDGPU/GlobalISel: Avoid repeating 32-bit type lists X-Git-Tag: llvmorg-11-init~9881 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ee093ba5c9b535d526b6d4e8f81099794598207e;p=platform%2Fupstream%2Fllvm.git AMDGPU/GlobalISel: Avoid repeating 32-bit type lists llvm-svn: 371156 --- diff --git a/llvm/lib/Target/AMDGPU/BUFInstructions.td b/llvm/lib/Target/AMDGPU/BUFInstructions.td index 5008949..1af1272 100644 --- a/llvm/lib/Target/AMDGPU/BUFInstructions.td +++ b/llvm/lib/Target/AMDGPU/BUFInstructions.td @@ -1535,7 +1535,7 @@ defm : MUBUFScratchLoadPat ; defm : MUBUFScratchLoadPat ; -foreach vt = [i32, f32, v2i16, v2f16, p2, p3, p5, p6] in { +foreach vt = Reg32Types.types in { defm : MUBUFScratchLoadPat ; } defm : MUBUFScratchLoadPat ; @@ -1613,7 +1613,7 @@ defm : MUBUFScratchStorePat ; defm : MUBUFScratchStorePat ; -foreach vt = [i32, f32, v2i16, v2f16, p2, p3, p5, p6] in { +foreach vt = Reg32Types.types in { defm : MUBUFScratchStorePat ; } diff --git a/llvm/lib/Target/AMDGPU/DSInstructions.td b/llvm/lib/Target/AMDGPU/DSInstructions.td index 53e567a..6960727 100644 --- a/llvm/lib/Target/AMDGPU/DSInstructions.td +++ b/llvm/lib/Target/AMDGPU/DSInstructions.td @@ -640,7 +640,7 @@ defm : DSReadPat_mc ; defm : DSReadPat_mc ; defm : DSReadPat_mc ; -foreach vt = [i32, f32, v2i16, v2f16, p2, p3, p5, p6] in { +foreach vt = Reg32Types.types in { defm : DSReadPat_mc ; } diff --git a/llvm/lib/Target/AMDGPU/FLATInstructions.td b/llvm/lib/Target/AMDGPU/FLATInstructions.td index 0268852..b76552d 100644 --- a/llvm/lib/Target/AMDGPU/FLATInstructions.td +++ b/llvm/lib/Target/AMDGPU/FLATInstructions.td @@ -786,7 +786,7 @@ def : FlatLoadAtomicPat ; def : FlatStorePat ; def : FlatStorePat ; -foreach vt = [i32, f32, v2i16, v2f16, p2, p3, p5, p6] in { +foreach vt = Reg32Types.types in { def : FlatLoadPat ; def : FlatStorePat ; } @@ -867,7 +867,7 @@ def : FlatLoadSignedPat ; def : FlatLoadSignedPat ; def : FlatLoadSignedPat ; -foreach vt = [i32, f32, v2i16, v2f16, p2, p3, p5, p6] in { +foreach vt = Reg32Types.types in { def : FlatLoadSignedPat ; def : FlatStoreSignedPat ; } diff --git a/llvm/lib/Target/AMDGPU/SIRegisterInfo.td b/llvm/lib/Target/AMDGPU/SIRegisterInfo.td index 108e802..4a6da28 100644 --- a/llvm/lib/Target/AMDGPU/SIRegisterInfo.td +++ b/llvm/lib/Target/AMDGPU/SIRegisterInfo.td @@ -350,9 +350,17 @@ def TTMP0_TTMP1_TTMP2_TTMP3_TTMP4_TTMP5_TTMP6_TTMP7_TTMP8_TTMP9_TTMP10_TTMP11_TT TTMP8_gfx9_gfx10, TTMP9_gfx9_gfx10, TTMP10_gfx9_gfx10, TTMP11_gfx9_gfx10, TTMP12_gfx9_gfx10, TTMP13_gfx9_gfx10, TTMP14_gfx9_gfx10, TTMP15_gfx9_gfx10]>; +class RegisterTypes reg_types> { + list types = reg_types; +} + +def Reg16Types : RegisterTypes<[i16, f16]>; +def Reg32Types : RegisterTypes<[i32, f32, v2i16, v2f16, p2, p3, p5, p6]>; + + // VGPR 32-bit registers // i16/f16 only on VI+ -def VGPR_32 : RegisterClass<"AMDGPU", [i32, f32, i16, f16, v2i16, v2f16, p2, p3, p5, p6], 32, +def VGPR_32 : RegisterClass<"AMDGPU", !listconcat(Reg32Types.types, Reg16Types.types), 32, (add (sequence "VGPR%u", 0, 255))> { let AllocationPriority = 1; let Size = 32;