153 lines
10 KiB
Modula-2
153 lines
10 KiB
Modula-2
//===- AMDGPUTargetParser.def - AMDGPU target parsing defines ---*- C++ -*-===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file provides defines to build up the AMDGPU target parser's logic.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef R600_GPU
|
|
#define R600_GPU(NAME, ENUM, FEATURES)
|
|
#endif
|
|
|
|
#ifndef R600_GPU_ALIAS
|
|
#define R600_GPU_ALIAS(NAME, ENUM)
|
|
#endif
|
|
|
|
R600_GPU ("r600", GK_R600, FEATURE_NONE)
|
|
R600_GPU_ALIAS("rv630", GK_R600)
|
|
R600_GPU_ALIAS("rv635", GK_R600)
|
|
R600_GPU ("r630", GK_R630, FEATURE_NONE)
|
|
R600_GPU_ALIAS("rs780", GK_RS880)
|
|
R600_GPU ("rs880", GK_RS880, FEATURE_NONE)
|
|
R600_GPU_ALIAS("rv610", GK_RS880)
|
|
R600_GPU_ALIAS("rv620", GK_RS880)
|
|
R600_GPU ("rv670", GK_RV670, FEATURE_NONE)
|
|
R600_GPU ("rv710", GK_RV710, FEATURE_NONE)
|
|
R600_GPU ("rv730", GK_RV730, FEATURE_NONE)
|
|
R600_GPU_ALIAS("rv740", GK_RV770)
|
|
R600_GPU ("rv770", GK_RV770, FEATURE_NONE)
|
|
R600_GPU ("cedar", GK_CEDAR, FEATURE_NONE)
|
|
R600_GPU_ALIAS("palm", GK_CEDAR)
|
|
R600_GPU ("cypress", GK_CYPRESS, FEATURE_FMA)
|
|
R600_GPU_ALIAS("hemlock", GK_CYPRESS)
|
|
R600_GPU ("juniper", GK_JUNIPER, FEATURE_NONE)
|
|
R600_GPU ("redwood", GK_REDWOOD, FEATURE_NONE)
|
|
R600_GPU ("sumo", GK_SUMO, FEATURE_NONE)
|
|
R600_GPU_ALIAS("sumo2", GK_SUMO)
|
|
R600_GPU ("barts", GK_BARTS, FEATURE_NONE)
|
|
R600_GPU ("caicos", GK_CAICOS, FEATURE_NONE)
|
|
R600_GPU_ALIAS("aruba", GK_CAYMAN)
|
|
R600_GPU ("cayman", GK_CAYMAN, FEATURE_FMA)
|
|
R600_GPU ("turks", GK_TURKS, FEATURE_NONE)
|
|
|
|
#undef R600_GPU
|
|
#undef R600_GPU_ALIAS
|
|
|
|
#ifndef AMDGCN_GPU
|
|
#define AMDGCN_GPU(NAME, ENUM, ISAVERSION, FEATURES)
|
|
#endif
|
|
|
|
#ifndef AMDGCN_GPU_ALIAS
|
|
#define AMDGCN_GPU_ALIAS(NAME, ENUM)
|
|
#endif
|
|
|
|
// Don't bother listing the implicitly true features
|
|
AMDGCN_GPU ("gfx600", GK_GFX600, ( 6, 0, 0), FEATURE_FAST_FMA_F32)
|
|
AMDGCN_GPU_ALIAS("tahiti", GK_GFX600)
|
|
AMDGCN_GPU ("gfx601", GK_GFX601, ( 6, 0, 1), FEATURE_NONE)
|
|
AMDGCN_GPU_ALIAS("pitcairn", GK_GFX601)
|
|
AMDGCN_GPU_ALIAS("verde", GK_GFX601)
|
|
AMDGCN_GPU ("gfx602", GK_GFX602, ( 6, 0, 2), FEATURE_NONE)
|
|
AMDGCN_GPU_ALIAS("hainan", GK_GFX602)
|
|
AMDGCN_GPU_ALIAS("oland", GK_GFX602)
|
|
AMDGCN_GPU ("gfx700", GK_GFX700, ( 7, 0, 0), FEATURE_NONE)
|
|
AMDGCN_GPU_ALIAS("kaveri", GK_GFX700)
|
|
AMDGCN_GPU ("gfx701", GK_GFX701, ( 7, 0, 1), FEATURE_FAST_FMA_F32)
|
|
AMDGCN_GPU_ALIAS("hawaii", GK_GFX701)
|
|
AMDGCN_GPU ("gfx702", GK_GFX702, ( 7, 0, 2), FEATURE_FAST_FMA_F32)
|
|
AMDGCN_GPU ("gfx703", GK_GFX703, ( 7, 0, 3), FEATURE_NONE)
|
|
AMDGCN_GPU_ALIAS("kabini", GK_GFX703)
|
|
AMDGCN_GPU_ALIAS("mullins", GK_GFX703)
|
|
AMDGCN_GPU ("gfx704", GK_GFX704, ( 7, 0, 4), FEATURE_NONE)
|
|
AMDGCN_GPU_ALIAS("bonaire", GK_GFX704)
|
|
AMDGCN_GPU ("gfx705", GK_GFX705, ( 7, 0, 5), FEATURE_NONE)
|
|
AMDGCN_GPU ("gfx801", GK_GFX801, ( 8, 0, 1), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_XNACK)
|
|
AMDGCN_GPU_ALIAS("carrizo", GK_GFX801)
|
|
AMDGCN_GPU ("gfx802", GK_GFX802, ( 8, 0, 2), FEATURE_FAST_DENORMAL_F32)
|
|
AMDGCN_GPU_ALIAS("iceland", GK_GFX802)
|
|
AMDGCN_GPU_ALIAS("tonga", GK_GFX802)
|
|
AMDGCN_GPU ("gfx803", GK_GFX803, ( 8, 0, 3), FEATURE_FAST_DENORMAL_F32)
|
|
AMDGCN_GPU_ALIAS("fiji", GK_GFX803)
|
|
AMDGCN_GPU_ALIAS("polaris10", GK_GFX803)
|
|
AMDGCN_GPU_ALIAS("polaris11", GK_GFX803)
|
|
AMDGCN_GPU ("gfx805", GK_GFX805, ( 8, 0, 5), FEATURE_FAST_DENORMAL_F32)
|
|
AMDGCN_GPU_ALIAS("tongapro", GK_GFX805)
|
|
AMDGCN_GPU ("gfx810", GK_GFX810, ( 8, 1, 0), FEATURE_FAST_DENORMAL_F32|FEATURE_XNACK)
|
|
AMDGCN_GPU_ALIAS("stoney", GK_GFX810)
|
|
AMDGCN_GPU ("gfx900", GK_GFX900, ( 9, 0, 0), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_XNACK)
|
|
AMDGCN_GPU ("gfx902", GK_GFX902, ( 9, 0, 2), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_XNACK)
|
|
AMDGCN_GPU ("gfx904", GK_GFX904, ( 9, 0, 4), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_XNACK)
|
|
AMDGCN_GPU ("gfx906", GK_GFX906, ( 9, 0, 6), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_XNACK|FEATURE_SRAMECC)
|
|
AMDGCN_GPU ("gfx908", GK_GFX908, ( 9, 0, 8), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_XNACK|FEATURE_SRAMECC)
|
|
AMDGCN_GPU ("gfx909", GK_GFX909, ( 9, 0, 9), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_XNACK)
|
|
AMDGCN_GPU ("gfx90a", GK_GFX90A, ( 9, 0, 10), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_XNACK|FEATURE_SRAMECC)
|
|
AMDGCN_GPU ("gfx90c", GK_GFX90C, ( 9, 0, 12), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_XNACK)
|
|
AMDGCN_GPU ("gfx942", GK_GFX942, ( 9, 4, 2), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_XNACK|FEATURE_SRAMECC)
|
|
AMDGCN_GPU ("gfx950", GK_GFX950, ( 9, 5, 0), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_XNACK|FEATURE_SRAMECC)
|
|
AMDGCN_GPU ("gfx1010", GK_GFX1010, (10, 1, 0), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_XNACK|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx1011", GK_GFX1011, (10, 1, 1), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_XNACK|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx1012", GK_GFX1012, (10, 1, 2), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_XNACK|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx1013", GK_GFX1013, (10, 1, 3), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_XNACK|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx1030", GK_GFX1030, (10, 3, 0), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx1031", GK_GFX1031, (10, 3, 1), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx1032", GK_GFX1032, (10, 3, 2), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx1033", GK_GFX1033, (10, 3, 3), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx1034", GK_GFX1034, (10, 3, 4), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx1035", GK_GFX1035, (10, 3, 5), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx1036", GK_GFX1036, (10, 3, 6), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx1100", GK_GFX1100, (11, 0, 0), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx1101", GK_GFX1101, (11, 0, 1), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx1102", GK_GFX1102, (11, 0, 2), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx1103", GK_GFX1103, (11, 0, 3), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx1150", GK_GFX1150, (11, 5, 0), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx1151", GK_GFX1151, (11, 5, 1), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx1152", GK_GFX1152, (11, 5, 2), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx1153", GK_GFX1153, (11, 5, 3), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx1170", GK_GFX1170, (11, 7, 0), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx1171", GK_GFX1171, (11, 7, 1), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx1172", GK_GFX1172, (11, 7, 2), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx1200", GK_GFX1200, (12, 0, 0), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx1201", GK_GFX1201, (12, 0, 1), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx1250", GK_GFX1250, (12, 5, 0), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_XNACK_ALWAYS|FEATURE_SRAMECC)
|
|
AMDGCN_GPU ("gfx1251", GK_GFX1251, (12, 5, 1), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_XNACK_ALWAYS|FEATURE_SRAMECC)
|
|
AMDGCN_GPU ("gfx1310", GK_GFX1310, (13, 1, 0), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
|
|
|
|
// Generic targets return the lowest common denominator
|
|
// within their family. That is, the ISA that is the most
|
|
// restricted in terms of features.
|
|
//
|
|
// gfx9-generic is tricky because there is no lowest
|
|
// common denominator, so we return gfx900 which has mad-mix
|
|
// but this family doesn't have it.
|
|
//
|
|
// This API should never be used to check for a particular
|
|
// feature anyway.
|
|
//
|
|
// TODO: Split up this API depending on its caller so
|
|
// generic target handling is more obvious and less risky.
|
|
AMDGCN_GPU ("gfx9-generic", GK_GFX9_GENERIC, ( 9, 0, 0), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_XNACK)
|
|
AMDGCN_GPU ("gfx10-1-generic", GK_GFX10_1_GENERIC, (10, 1, 0), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_XNACK|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx10-3-generic", GK_GFX10_3_GENERIC, (10, 3, 0), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx11-generic", GK_GFX11_GENERIC, (11, 0, 3), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx12-generic", GK_GFX12_GENERIC, (12, 0, 0), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_WGP)
|
|
AMDGCN_GPU ("gfx9-4-generic", GK_GFX9_4_GENERIC, ( 9, 4, 0), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_XNACK|FEATURE_SRAMECC)
|
|
AMDGCN_GPU ("gfx12-5-generic", GK_GFX12_5_GENERIC, (12, 5, 0), FEATURE_FAST_FMA_F32|FEATURE_FAST_DENORMAL_F32|FEATURE_WAVE32|FEATURE_XNACK_ALWAYS)
|
|
|
|
#undef AMDGCN_GPU
|
|
#undef AMDGCN_GPU_ALIAS
|