Skip to content

Commit 6997465

Browse files
authored
[AMDGPU] Initial support for gfx1250 target. (#144965)
This is just a stub for now.
1 parent 64fe323 commit 6997465

File tree

25 files changed

+149
-5
lines changed

25 files changed

+149
-5
lines changed

clang/include/clang/Basic/OffloadArch.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ enum class OffloadArch {
9898
GFX12_GENERIC,
9999
GFX1200,
100100
GFX1201,
101+
GFX1250,
101102
AMDGCNSPIRV,
102103
Generic, // A processor model named 'generic' if the target backend defines a
103104
// public one.

clang/lib/Basic/OffloadArch.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ static const OffloadArchToStringMap ArchNames[] = {
8686
{OffloadArch::GFX12_GENERIC, "gfx12-generic", "compute_amdgcn"},
8787
GFX(1200), // gfx1200
8888
GFX(1201), // gfx1201
89+
GFX(1250), // gfx1250
8990
{OffloadArch::AMDGCNSPIRV, "amdgcnspirv", "compute_amdgcn"},
9091
// Intel CPUs
9192
{OffloadArch::GRANITERAPIDS, "graniterapids", ""},

clang/lib/Basic/Targets/NVPTX.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,7 @@ void NVPTXTargetInfo::getTargetDefines(const LangOptions &Opts,
238238
case OffloadArch::GFX12_GENERIC:
239239
case OffloadArch::GFX1200:
240240
case OffloadArch::GFX1201:
241+
case OffloadArch::GFX1250:
241242
case OffloadArch::AMDGCNSPIRV:
242243
case OffloadArch::Generic:
243244
case OffloadArch::GRANITERAPIDS:

clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2331,6 +2331,7 @@ void CGOpenMPRuntimeGPU::processRequiresDirective(const OMPRequiresDecl *D) {
23312331
case OffloadArch::GFX12_GENERIC:
23322332
case OffloadArch::GFX1200:
23332333
case OffloadArch::GFX1201:
2334+
case OffloadArch::GFX1250:
23342335
case OffloadArch::AMDGCNSPIRV:
23352336
case OffloadArch::Generic:
23362337
case OffloadArch::GRANITERAPIDS:

clang/test/CodeGenOpenCL/amdgpu-features.cl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
// RUN: %clang_cc1 -triple amdgcn -target-cpu gfx1153 -emit-llvm -o - %s | FileCheck --check-prefix=GFX1153 %s
5353
// RUN: %clang_cc1 -triple amdgcn -target-cpu gfx1200 -emit-llvm -o - %s | FileCheck --check-prefix=GFX1200 %s
5454
// RUN: %clang_cc1 -triple amdgcn -target-cpu gfx1201 -emit-llvm -o - %s | FileCheck --check-prefix=GFX1201 %s
55+
// RUN: %clang_cc1 -triple amdgcn -target-cpu gfx1250 -emit-llvm -o - %s | FileCheck --check-prefix=GFX1250 %s
5556

5657
// RUN: %clang_cc1 -triple amdgcn -target-cpu gfx1103 -target-feature +wavefrontsize64 -emit-llvm -o - %s | FileCheck --check-prefix=GFX1103-W64 %s
5758

@@ -107,6 +108,7 @@
107108
// GFX1153: "target-features"="+16-bit-insts,+atomic-fadd-rtn-insts,+ci-insts,+dl-insts,+dot10-insts,+dot12-insts,+dot5-insts,+dot7-insts,+dot8-insts,+dot9-insts,+dpp,+gfx10-3-insts,+gfx10-insts,+gfx11-insts,+gfx8-insts,+gfx9-insts,+wavefrontsize32"
108109
// GFX1200: "target-features"="+16-bit-insts,+atomic-buffer-global-pk-add-f16-insts,+atomic-buffer-pk-add-bf16-inst,+atomic-ds-pk-add-16-insts,+atomic-fadd-rtn-insts,+atomic-flat-pk-add-16-insts,+atomic-global-pk-add-bf16-inst,+ci-insts,+dl-insts,+dot10-insts,+dot11-insts,+dot12-insts,+dot7-insts,+dot8-insts,+dot9-insts,+dpp,+fp8-conversion-insts,+gfx10-3-insts,+gfx10-insts,+gfx11-insts,+gfx12-insts,+gfx8-insts,+gfx9-insts,+wavefrontsize32"
109110
// GFX1201: "target-features"="+16-bit-insts,+atomic-buffer-global-pk-add-f16-insts,+atomic-buffer-pk-add-bf16-inst,+atomic-ds-pk-add-16-insts,+atomic-fadd-rtn-insts,+atomic-flat-pk-add-16-insts,+atomic-global-pk-add-bf16-inst,+ci-insts,+dl-insts,+dot10-insts,+dot11-insts,+dot12-insts,+dot7-insts,+dot8-insts,+dot9-insts,+dpp,+fp8-conversion-insts,+gfx10-3-insts,+gfx10-insts,+gfx11-insts,+gfx12-insts,+gfx8-insts,+gfx9-insts,+wavefrontsize32"
111+
// GFX1250: "target-features"="+16-bit-insts,+ashr-pk-insts,+atomic-buffer-global-pk-add-f16-insts,+atomic-buffer-pk-add-bf16-inst,+atomic-ds-pk-add-16-insts,+atomic-fadd-rtn-insts,+atomic-flat-pk-add-16-insts,+atomic-global-pk-add-bf16-inst,+bitop3-insts,+ci-insts,+dl-insts,+dot7-insts,+dot8-insts,+dpp,+fp8-conversion-insts,+gfx10-3-insts,+gfx10-insts,+gfx11-insts,+gfx12-insts,+gfx1250-insts,+gfx8-insts,+gfx9-insts,+permlane16-swap,+prng-inst,+setprio-inc-wg-inst,+wavefrontsize32"
110112

111113
// GFX1103-W64: "target-features"="+16-bit-insts,+atomic-fadd-rtn-insts,+ci-insts,+dl-insts,+dot10-insts,+dot12-insts,+dot5-insts,+dot7-insts,+dot8-insts,+dot9-insts,+dpp,+gfx10-3-insts,+gfx10-insts,+gfx11-insts,+gfx8-insts,+gfx9-insts,+wavefrontsize64"
112114

clang/test/Driver/amdgpu-macros.cl

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@
130130
// RUN: %clang -E -dM -target amdgcn -mcpu=gfx1153 %s 2>&1 | FileCheck --check-prefixes=ARCH-GCN,FAST_FMAF %s -DWAVEFRONT_SIZE=32 -DCPU=gfx1153 -DFAMILY=GFX11
131131
// RUN: %clang -E -dM -target amdgcn -mcpu=gfx1200 %s 2>&1 | FileCheck --check-prefixes=ARCH-GCN,FAST_FMAF %s -DWAVEFRONT_SIZE=32 -DCPU=gfx1200 -DFAMILY=GFX12
132132
// RUN: %clang -E -dM -target amdgcn -mcpu=gfx1201 %s 2>&1 | FileCheck --check-prefixes=ARCH-GCN,FAST_FMAF %s -DWAVEFRONT_SIZE=32 -DCPU=gfx1201 -DFAMILY=GFX12
133+
// RUN: %clang -E -dM -target amdgcn -mcpu=gfx1250 %s 2>&1 | FileCheck --check-prefixes=ARCH-GCN,FAST_FMAF %s -DWAVEFRONT_SIZE=32 -DCPU=gfx1250 -DFAMILY=GFX12
133134

134135
// RUN: %clang -E -dM -target amdgcn -mcpu=gfx9-generic %s 2>&1 | FileCheck --check-prefixes=ARCH-GCN,FAST_FMAF %s -DWAVEFRONT_SIZE=64 -DCPU=gfx9_generic -DFAMILY=GFX9
135136
// RUN: %clang -E -dM -target amdgcn -mcpu=gfx9-4-generic %s 2>&1 | FileCheck --check-prefixes=ARCH-GCN,FAST_FMAF %s -DWAVEFRONT_SIZE=64 -DCPU=gfx9_4_generic -DFAMILY=GFX9
@@ -177,13 +178,19 @@
177178
// RUN: %clang -E -dM -target amdgcn -mcpu=gfx906 -mcumode \
178179
// RUN: %s 2>&1 | FileCheck --check-prefix=CUMODE-ON %s
179180
// RUN: %clang -E -dM -target amdgcn -mcpu=gfx906 -mno-cumode \
180-
// RUN: %s 2>&1 | FileCheck --check-prefixes=CUMODE-ON,WARN-CUMODE %s
181+
// RUN: %s 2>&1 | FileCheck -DMCPU=gfx906 --check-prefixes=CUMODE-ON,WARN-CUMODE %s
181182
// RUN: %clang -E -dM -target amdgcn -mcpu=gfx1030 \
182183
// RUN: %s 2>&1 | FileCheck --check-prefix=CUMODE-OFF %s
183184
// RUN: %clang -E -dM -target amdgcn -mcpu=gfx1030 -mcumode \
184185
// RUN: %s 2>&1 | FileCheck --check-prefix=CUMODE-ON %s
185186
// RUN: %clang -E -dM -target amdgcn -mcpu=gfx1030 -mno-cumode \
186187
// RUN: %s 2>&1 | FileCheck --check-prefix=CUMODE-OFF %s
187-
// WARN-CUMODE-DAG: warning: ignoring '-mno-cumode' option as it is not currently supported for processor 'gfx906' [-Woption-ignored]
188+
// RUN: %clang -E -dM -target amdgcn -mcpu=gfx1250 \
189+
// RUN: %s 2>&1 | FileCheck --check-prefix=CUMODE-ON %s
190+
// RUN: %clang -E -dM -target amdgcn -mcpu=gfx1250 -mcumode \
191+
// RUN: %s 2>&1 | FileCheck --check-prefix=CUMODE-ON %s
192+
// RUN: %clang -E -dM -target amdgcn -mcpu=gfx1250 -mno-cumode \
193+
// RUN: %s 2>&1 | FileCheck -DMCPU=gfx1250 --check-prefixes=CUMODE-ON,WARN-CUMODE %s
194+
// WARN-CUMODE-DAG: warning: ignoring '-mno-cumode' option as it is not currently supported for processor '[[MCPU]]' [-Woption-ignored]
188195
// CUMODE-ON-DAG: #define __AMDGCN_CUMODE__ 1
189196
// CUMODE-OFF-DAG: #define __AMDGCN_CUMODE__ 0

clang/test/Driver/amdgpu-mcpu.cl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@
115115
// RUN: %clang -### -target amdgcn -mcpu=gfx1153 %s 2>&1 | FileCheck --check-prefix=GFX1153 %s
116116
// RUN: %clang -### -target amdgcn -mcpu=gfx1200 %s 2>&1 | FileCheck --check-prefix=GFX1200 %s
117117
// RUN: %clang -### -target amdgcn -mcpu=gfx1201 %s 2>&1 | FileCheck --check-prefix=GFX1201 %s
118+
// RUN: %clang -### -target amdgcn -mcpu=gfx1250 %s 2>&1 | FileCheck --check-prefix=GFX1250 %s
118119

119120
// RUN: %clang -### -target amdgcn -mcpu=gfx9-generic %s 2>&1 | FileCheck --check-prefix=GFX9_GENERIC %s
120121
// RUN: %clang -### -target amdgcn -mcpu=gfx9-4-generic %s 2>&1 | FileCheck --check-prefix=GFX9_4_GENERIC %s
@@ -169,6 +170,7 @@
169170
// GFX1153: "-target-cpu" "gfx1153"
170171
// GFX1200: "-target-cpu" "gfx1200"
171172
// GFX1201: "-target-cpu" "gfx1201"
173+
// GFX1250: "-target-cpu" "gfx1250"
172174

173175
// GFX9_GENERIC: "-target-cpu" "gfx9-generic"
174176
// GFX9_4_GENERIC: "-target-cpu" "gfx9-4-generic"

clang/test/Misc/target-invalid-cpu-note/amdgcn.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
// CHECK-SAME: {{^}}, gfx1153
6969
// CHECK-SAME: {{^}}, gfx1200
7070
// CHECK-SAME: {{^}}, gfx1201
71+
// CHECK-SAME: {{^}}, gfx1250
7172
// CHECK-SAME: {{^}}, gfx9-generic
7273
// CHECK-SAME: {{^}}, gfx10-1-generic
7374
// CHECK-SAME: {{^}}, gfx10-3-generic

clang/test/Misc/target-invalid-cpu-note/nvptx.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,5 +83,6 @@
8383
// CHECK-SAME: {{^}}, gfx12-generic
8484
// CHECK-SAME: {{^}}, gfx1200
8585
// CHECK-SAME: {{^}}, gfx1201
86+
// CHECK-SAME: {{^}}, gfx1250
8687
// CHECK-SAME: {{^}}, amdgcnspirv
8788
// CHECK-SAME: {{$}}

llvm/docs/AMDGPUUsage.rst

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -531,6 +531,13 @@ Every processor supports every OS ABI (see :ref:`amdgpu-os`) with the following
531531
work-item Add product
532532
IDs names.
533533

534+
``gfx1250`` ``amdgcn`` APU - Architected *TBA*
535+
flat
536+
scratch .. TODO::
537+
- Packed
538+
work-item Add product
539+
IDs names.
540+
534541
=========== =============== ============ ===== ================= =============== =============== ======================
535542

536543
Generic processors allow execution of a single code object on any of the processors that
@@ -2265,7 +2272,7 @@ The AMDGPU backend uses the following ELF header:
22652272
``EF_AMDGPU_MACH_AMDGCN_GFX1101`` 0x046 ``gfx1101``
22662273
``EF_AMDGPU_MACH_AMDGCN_GFX1102`` 0x047 ``gfx1102``
22672274
``EF_AMDGPU_MACH_AMDGCN_GFX1200`` 0x048 ``gfx1200``
2268-
*reserved* 0x049 Reserved.
2275+
``EF_AMDGPU_MACH_AMDGCN_GFX1250`` 0x049 ``gfx1250``
22692276
``EF_AMDGPU_MACH_AMDGCN_GFX1151`` 0x04a ``gfx1151``
22702277
*reserved* 0x04b Reserved.
22712278
``EF_AMDGPU_MACH_AMDGCN_GFX942`` 0x04c ``gfx942``

llvm/include/llvm/BinaryFormat/ELF.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -835,7 +835,7 @@ enum : unsigned {
835835
EF_AMDGPU_MACH_AMDGCN_GFX1101 = 0x046,
836836
EF_AMDGPU_MACH_AMDGCN_GFX1102 = 0x047,
837837
EF_AMDGPU_MACH_AMDGCN_GFX1200 = 0x048,
838-
EF_AMDGPU_MACH_AMDGCN_RESERVED_0X49 = 0x049,
838+
EF_AMDGPU_MACH_AMDGCN_GFX1250 = 0x049,
839839
EF_AMDGPU_MACH_AMDGCN_GFX1151 = 0x04a,
840840
EF_AMDGPU_MACH_AMDGCN_RESERVED_0X4B = 0x04b,
841841
EF_AMDGPU_MACH_AMDGCN_GFX942 = 0x04c,

llvm/include/llvm/TargetParser/TargetParser.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,10 @@ enum GPUKind : uint32_t {
112112

113113
GK_GFX1200 = 100,
114114
GK_GFX1201 = 101,
115+
GK_GFX1250 = 102,
115116

116117
GK_AMDGCN_FIRST = GK_GFX600,
117-
GK_AMDGCN_LAST = GK_GFX1201,
118+
GK_AMDGCN_LAST = GK_GFX1250,
118119

119120
GK_GFX9_GENERIC = 192,
120121
GK_GFX10_1_GENERIC = 193,

llvm/lib/Object/ELFObjectFile.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -597,6 +597,8 @@ StringRef ELFObjectFileBase::getAMDGPUCPUName() const {
597597
return "gfx1200";
598598
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1201:
599599
return "gfx1201";
600+
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1250:
601+
return "gfx1250";
600602

601603
// Generic AMDGCN targets
602604
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX9_GENERIC:

llvm/lib/ObjectYAML/ELFYAML.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -632,6 +632,7 @@ void ScalarBitSetTraits<ELFYAML::ELF_EF>::bitset(IO &IO,
632632
BCaseMask(EF_AMDGPU_MACH_AMDGCN_GFX1153, EF_AMDGPU_MACH);
633633
BCaseMask(EF_AMDGPU_MACH_AMDGCN_GFX1200, EF_AMDGPU_MACH);
634634
BCaseMask(EF_AMDGPU_MACH_AMDGCN_GFX1201, EF_AMDGPU_MACH);
635+
BCaseMask(EF_AMDGPU_MACH_AMDGCN_GFX1250, EF_AMDGPU_MACH);
635636
BCaseMask(EF_AMDGPU_MACH_AMDGCN_GFX9_GENERIC, EF_AMDGPU_MACH);
636637
BCaseMask(EF_AMDGPU_MACH_AMDGCN_GFX9_4_GENERIC, EF_AMDGPU_MACH);
637638
BCaseMask(EF_AMDGPU_MACH_AMDGCN_GFX10_1_GENERIC, EF_AMDGPU_MACH);

llvm/lib/Target/AMDGPU/AMDGPU.td

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -487,6 +487,12 @@ def FeatureGFX12Insts : SubtargetFeature<"gfx12-insts",
487487
"Additional instructions for GFX12+"
488488
>;
489489

490+
def FeatureGFX1250Insts : SubtargetFeature<"gfx1250-insts",
491+
"GFX1250Insts",
492+
"true",
493+
"Additional instructions for GFX1250+"
494+
>;
495+
490496
def FeatureGFX10_3Insts : SubtargetFeature<"gfx10-3-insts",
491497
"GFX10_3Insts",
492498
"true",
@@ -1882,6 +1888,53 @@ def FeatureISAVersion12 : FeatureSet<
18821888
FeatureBVHDualAndBVH8Insts
18831889
]>;
18841890

1891+
def FeatureISAVersion12_50 : FeatureSet<
1892+
[FeatureGFX12,
1893+
FeatureGFX1250Insts,
1894+
FeatureCuMode,
1895+
FeatureLDSBankCount32,
1896+
FeatureDLInsts,
1897+
FeatureFmacF64Inst,
1898+
FeaturePackedFP32Ops,
1899+
FeatureDot7Insts,
1900+
FeatureDot8Insts,
1901+
FeatureWavefrontSize32,
1902+
FeatureShaderCyclesHiLoRegisters,
1903+
FeatureArchitectedFlatScratch,
1904+
FeatureArchitectedSGPRs,
1905+
FeatureAtomicFaddRtnInsts,
1906+
FeatureAtomicFaddNoRtnInsts,
1907+
FeatureAtomicDsPkAdd16Insts,
1908+
FeatureAtomicFlatPkAdd16Insts,
1909+
FeatureAtomicBufferGlobalPkAddF16Insts,
1910+
FeatureAtomicGlobalPkAddBF16Inst,
1911+
FeatureAtomicBufferPkAddBF16Inst,
1912+
FeatureFlatAtomicFaddF32Inst,
1913+
FeatureFP8ConversionInsts,
1914+
FeaturePackedTID,
1915+
FeatureVcmpxPermlaneHazard,
1916+
FeatureSALUFloatInsts,
1917+
FeaturePseudoScalarTrans,
1918+
FeatureHasRestrictedSOffset,
1919+
FeatureScalarDwordx3Loads,
1920+
FeatureDPPSrc1SGPR,
1921+
FeatureBitOp3Insts,
1922+
FeatureBF16ConversionInsts,
1923+
FeatureCvtPkF16F32Inst,
1924+
FeatureMinimum3Maximum3PKF16,
1925+
FeaturePrngInst,
1926+
FeaturePermlane16Swap,
1927+
FeatureAshrPkInsts,
1928+
FeatureSupportsSRAMECC,
1929+
FeatureMaxHardClauseLength63,
1930+
FeatureAtomicFMinFMaxF64GlobalInsts,
1931+
FeatureAtomicFMinFMaxF64FlatInsts,
1932+
FeatureFlatBufferGlobalAtomicFaddF64Inst,
1933+
FeatureMemoryAtomicFAddF32DenormalSupport,
1934+
FeatureKernargPreload,
1935+
FeatureLshlAddU64Inst,
1936+
]>;
1937+
18851938
def FeatureISAVersion12_Generic: FeatureSet<
18861939
!listconcat(FeatureISAVersion12.Features,
18871940
[FeatureRequiresCOV6])>;

llvm/lib/Target/AMDGPU/GCNProcessors.td

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,3 +325,7 @@ def : ProcessorModel<"gfx1201", GFX12SpeedModel,
325325
def : ProcessorModel<"gfx12-generic", GFX12SpeedModel,
326326
FeatureISAVersion12_Generic.Features
327327
>;
328+
329+
def : ProcessorModel<"gfx1250", GFX12SpeedModel,
330+
FeatureISAVersion12_50.Features
331+
>;

llvm/lib/Target/AMDGPU/GCNSubtarget.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ class GCNSubtarget final : public AMDGPUGenSubtargetInfo,
113113
bool GFX10Insts = false;
114114
bool GFX11Insts = false;
115115
bool GFX12Insts = false;
116+
bool GFX1250Insts = false;
116117
bool GFX10_3Insts = false;
117118
bool GFX7GFX8GFX9Insts = false;
118119
bool SGPRInitBug = false;

llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ StringRef AMDGPUTargetStreamer::getArchNameFromElfMach(unsigned ElfMach) {
117117
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1153: AK = GK_GFX1153; break;
118118
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1200: AK = GK_GFX1200; break;
119119
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1201: AK = GK_GFX1201; break;
120+
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX1250: AK = GK_GFX1250; break;
120121
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX9_GENERIC: AK = GK_GFX9_GENERIC; break;
121122
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX9_4_GENERIC: AK = GK_GFX9_4_GENERIC; break;
122123
case ELF::EF_AMDGPU_MACH_AMDGCN_GFX10_1_GENERIC: AK = GK_GFX10_1_GENERIC; break;
@@ -202,6 +203,7 @@ unsigned AMDGPUTargetStreamer::getElfMach(StringRef GPU) {
202203
case GK_GFX1153: return ELF::EF_AMDGPU_MACH_AMDGCN_GFX1153;
203204
case GK_GFX1200: return ELF::EF_AMDGPU_MACH_AMDGCN_GFX1200;
204205
case GK_GFX1201: return ELF::EF_AMDGPU_MACH_AMDGCN_GFX1201;
206+
case GK_GFX1250: return ELF::EF_AMDGPU_MACH_AMDGCN_GFX1250;
205207
case GK_GFX9_GENERIC: return ELF::EF_AMDGPU_MACH_AMDGCN_GFX9_GENERIC;
206208
case GK_GFX9_4_GENERIC: return ELF::EF_AMDGPU_MACH_AMDGCN_GFX9_4_GENERIC;
207209
case GK_GFX10_1_GENERIC: return ELF::EF_AMDGPU_MACH_AMDGCN_GFX10_1_GENERIC;

llvm/lib/TargetParser/TargetParser.cpp

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ constexpr GPUInfo AMDGCNGPUs[] = {
174174
{{"gfx1153"}, {"gfx1153"}, GK_GFX1153, FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP},
175175
{{"gfx1200"}, {"gfx1200"}, GK_GFX1200, FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP},
176176
{{"gfx1201"}, {"gfx1201"}, GK_GFX1201, FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP},
177+
{{"gfx1250"}, {"gfx1250"}, GK_GFX1250, FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32},
177178

178179
{{"gfx9-generic"}, {"gfx9-generic"}, GK_GFX9_GENERIC, FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_XNACK},
179180
{{"gfx10-1-generic"}, {"gfx10-1-generic"}, GK_GFX10_1_GENERIC, FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_XNACK|FEATURE_WGP},
@@ -328,6 +329,7 @@ AMDGPU::IsaVersion AMDGPU::getIsaVersion(StringRef GPU) {
328329
case GK_GFX1153: return {11, 5, 3};
329330
case GK_GFX1200: return {12, 0, 0};
330331
case GK_GFX1201: return {12, 0, 1};
332+
case GK_GFX1250: return {12, 5, 0};
331333

332334
// Generic targets return the lowest common denominator
333335
// within their family. That is, the ISA that is the most
@@ -425,6 +427,33 @@ void AMDGPU::fillAMDGPUFeatureMap(StringRef GPU, const Triple &T,
425427
} else if (T.isAMDGCN()) {
426428
AMDGPU::GPUKind Kind = parseArchAMDGCN(GPU);
427429
switch (Kind) {
430+
case GK_GFX1250:
431+
Features["ci-insts"] = true;
432+
Features["dot7-insts"] = true;
433+
Features["dot8-insts"] = true;
434+
Features["dl-insts"] = true;
435+
Features["16-bit-insts"] = true;
436+
Features["dpp"] = true;
437+
Features["gfx8-insts"] = true;
438+
Features["gfx9-insts"] = true;
439+
Features["gfx10-insts"] = true;
440+
Features["gfx10-3-insts"] = true;
441+
Features["gfx11-insts"] = true;
442+
Features["gfx12-insts"] = true;
443+
Features["gfx1250-insts"] = true;
444+
Features["bitop3-insts"] = true;
445+
Features["prng-inst"] = true;
446+
Features["fp8-conversion-insts"] = true;
447+
Features["permlane16-swap"] = true;
448+
Features["ashr-pk-insts"] = true;
449+
Features["atomic-buffer-pk-add-bf16-inst"] = true;
450+
Features["atomic-fadd-rtn-insts"] = true;
451+
Features["atomic-buffer-global-pk-add-f16-insts"] = true;
452+
Features["atomic-flat-pk-add-16-insts"] = true;
453+
Features["atomic-global-pk-add-bf16-inst"] = true;
454+
Features["atomic-ds-pk-add-16-insts"] = true;
455+
Features["setprio-inc-wg-inst"] = true;
456+
break;
428457
case GK_GFX1201:
429458
case GK_GFX1200:
430459
case GK_GFX12_GENERIC:
@@ -678,6 +707,7 @@ static bool isWave32Capable(StringRef GPU, const Triple &T) {
678707
// XXX - What does the member GPU mean if device name string passed here?
679708
if (T.isAMDGCN()) {
680709
switch (parseArchAMDGCN(GPU)) {
710+
case GK_GFX1250:
681711
case GK_GFX1201:
682712
case GK_GFX1200:
683713
case GK_GFX1153:

llvm/test/CodeGen/AMDGPU/directive-amdgcn-target.ll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@
106106
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1153 < %s | FileCheck --check-prefixes=GFX1153 %s
107107
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1200 < %s | FileCheck --check-prefixes=GFX1200 %s
108108
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1201 < %s | FileCheck --check-prefixes=GFX1201 %s
109+
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1250 < %s | FileCheck --check-prefixes=GFX1250 %s
109110

110111
; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx9-generic -mattr=-xnack < %s | FileCheck --check-prefixes=GFX9_GENERIC_NOXNACK %s
111112
; RUN: llc --amdhsa-code-object-version=6 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx9-generic -mattr=+xnack < %s | FileCheck --check-prefixes=GFX9_GENERIC_XNACK %s
@@ -203,6 +204,7 @@
203204
; GFX1153: .amdgcn_target "amdgcn-amd-amdhsa--gfx1153"
204205
; GFX1200: .amdgcn_target "amdgcn-amd-amdhsa--gfx1200"
205206
; GFX1201: .amdgcn_target "amdgcn-amd-amdhsa--gfx1201"
207+
; GFX1250: .amdgcn_target "amdgcn-amd-amdhsa--gfx1250"
206208

207209
; GFX9_GENERIC_NOXNACK: .amdgcn_target "amdgcn-amd-amdhsa--gfx9-generic:xnack-"
208210
; GFX9_GENERIC_XNACK: .amdgcn_target "amdgcn-amd-amdhsa--gfx9-generic:xnack+"

llvm/test/CodeGen/AMDGPU/elf-header-flags-mach.ll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@
7777
; RUN: llc -filetype=obj -mtriple=amdgcn -mcpu=gfx1153 < %s | llvm-readobj --file-header - | FileCheck --check-prefixes=ALL,ARCH-GCN,GFX1153 %s
7878
; RUN: llc -filetype=obj -mtriple=amdgcn -mcpu=gfx1200 < %s | llvm-readobj --file-header - | FileCheck --check-prefixes=ALL,ARCH-GCN,GFX1200 %s
7979
; RUN: llc -filetype=obj -mtriple=amdgcn -mcpu=gfx1201 < %s | llvm-readobj --file-header - | FileCheck --check-prefixes=ALL,ARCH-GCN,GFX1201 %s
80+
; RUN: llc -filetype=obj -mtriple=amdgcn -mcpu=gfx1250 < %s | llvm-readobj --file-header - | FileCheck --check-prefixes=ALL,ARCH-GCN,GFX1250 %s
8081

8182
; RUN: llc -filetype=obj --amdhsa-code-object-version=6 -mtriple=amdgcn -mcpu=gfx9-generic < %s | llvm-readobj --file-header - | FileCheck --check-prefixes=ALL,ARCH-GCN,GFX9_GENERIC %s
8283
; RUN: llc -filetype=obj --amdhsa-code-object-version=6 -mtriple=amdgcn -mcpu=gfx9-4-generic < %s | llvm-readobj --file-header - | FileCheck --check-prefixes=ALL,ARCH-GCN,GFX9_4_GENERIC %s
@@ -158,6 +159,7 @@
158159
; GFX1153: EF_AMDGPU_MACH_AMDGCN_GFX1153 (0x58)
159160
; GFX1200: EF_AMDGPU_MACH_AMDGCN_GFX1200 (0x48)
160161
; GFX1201: EF_AMDGPU_MACH_AMDGCN_GFX1201 (0x4E)
162+
; GFX1250: EF_AMDGPU_MACH_AMDGCN_GFX1250 (0x49)
161163

162164
; GFX9_GENERIC: EF_AMDGPU_MACH_AMDGCN_GFX9_GENERIC (0x51)
163165
; GFX9_4_GENERIC: EF_AMDGPU_MACH_AMDGCN_GFX9_4_GENERIC (0x5F)

0 commit comments

Comments
 (0)