blob: 51cef25a874e1193ccd2cdf5ca93e3fa6524f595 [file] [edit]
// RUN: split-file %s %t
// RUN: llvm-tblgen -gen-amdgpu-target-def -I %t -I %p/../../include -I %p/../../lib/Target/AMDGPU %t/valid.td \
// RUN: | FileCheck %t/valid.td
// RUN: not llvm-tblgen -gen-amdgpu-target-def -I %t -I %p/../../include -I %p/../../lib/Target/AMDGPU %t/missing-bug.td 2>&1 \
// RUN: | FileCheck %t/missing-generic.td -DDIR=%t -DFEATURE=user-sgpr-init16-bug --implicit-check-not="error:"
// RUN: not llvm-tblgen -gen-amdgpu-target-def -I %t -I %p/../../include -I %p/../../lib/Target/AMDGPU %t/missing-priority.td 2>&1 \
// RUN: | FileCheck %t/missing-generic.td -DDIR=%t -DFEATURE=required-export-priority --implicit-check-not="error:"
// RUN: not llvm-tblgen -gen-amdgpu-target-def -I %t -I %p/../../include -I %p/../../lib/Target/AMDGPU %t/missing-timing.td 2>&1 \
// RUN: | FileCheck %t/missing-generic.td -DDIR=%t -DFEATURE=gfx125x-lowest-rate-wmma --implicit-check-not="error:"
// RUN: not llvm-tblgen -gen-amdgpu-target-def -I %t -I %p/../../include -I %p/../../lib/Target/AMDGPU %t/missing-banks.td 2>&1 \
// RUN: | FileCheck %t/missing-generic.td -DDIR=%t -DFEATURE=ldsbankcount32 --implicit-check-not="error:"
// RUN: not llvm-tblgen -gen-amdgpu-target-def -I %t -I %p/../../include -I %p/../../lib/Target/AMDGPU %t/missing-lds-size.td 2>&1 \
// RUN: | FileCheck %t/missing-generic.td -DDIR=%t -DFEATURE=addressablelocalmemorysize65536 --implicit-check-not="error:"
// RUN: not llvm-tblgen -gen-amdgpu-target-def -I %t -I %p/../../include -I %p/../../lib/Target/AMDGPU %t/capability.td 2>&1 \
// RUN: | FileCheck %t/capability.td -DFILE=%t/capability.td --implicit-check-not="error:"
//--- common.td
include "AMDGPU.td"
def EmptyGPU : AMDGPUProcessorModel<"gfx999", NoSchedModel, [], [9, 9, 9]>;
//--- valid.td
include "common.td"
// Check the real generic targets, including gfx11's combined workarounds,
// gfx12-5's fixup and WMMA timing, and gfx9-4's LDS size and bank count.
// CHECK: GK_GFX9_4_GENERIC
// CHECK: GK_GFX11_GENERIC
// CHECK: GK_GFX12_5_GENERIC
//--- missing-bug.td
include "common.td"
defvar CheckedFeature = FeatureUserSGPRInit16Bug;
include "missing-generic.td"
//--- missing-priority.td
include "common.td"
defvar CheckedFeature = FeatureRequiredExportPriority;
include "missing-generic.td"
//--- missing-timing.td
include "common.td"
defvar CheckedFeature = FeatureGFX125xLowestRateWMMA;
include "missing-generic.td"
//--- missing-banks.td
include "common.td"
defvar CheckedFeature = FeatureLDSBankCount32;
include "missing-generic.td"
//--- missing-lds-size.td
include "common.td"
defvar CheckedFeature = FeatureAddressableLocalMemorySize65536;
include "missing-generic.td"
//--- missing-generic.td
// Classified backend-only features still need support from a covered GPU.
// Included files use the native path separator after the include directory.
// CHECK: [[DIR]]{{[/\\]}}missing-generic.td:[[#@LINE+1]]:1: error: generic target 'gfx9-9-generic' exposes feature '[[FEATURE]]' not supported by any covered GPU
def : AMDGPUProcessorModel<"gfx9-9-generic", NoSchedModel, [CheckedFeature], [9, 9, 0]> {
let CoveredGPUs = [EmptyGPU];
}
//--- capability.td
include "common.td"
def WMMAGPU : AMDGPUProcessorModel<"gfx998", NoSchedModel,
[FeatureWMMA256bInsts], [9, 9, 8]>;
// Instruction support keeps the default all-covered-GPUs rule.
// CHECK: [[FILE]]:[[#@LINE+1]]:1: error: generic target 'gfx9-9-generic' exposes feature 'wmma-256b-insts' not supported by covered GPU 'gfx999'
def : AMDGPUProcessorModel<"gfx9-9-generic", NoSchedModel, [FeatureWMMA256bInsts], [9, 9, 0]> {
let CoveredGPUs = [WMMAGPU, EmptyGPU];
}