From 0f72225433d46561b9b4764970536c7b9c9c7055 Mon Sep 17 00:00:00 2001 From: Stanislav Mekhanoshin Date: Tue, 6 Mar 2018 18:33:55 +0000 Subject: [PATCH] [AMDGPU] Add default ISA version targets In case if -mattr used to modify feature set bits in llvm-mc call getIsaVersion can fail to identify specific ISA due to test mismatch. Adding default fallback tests which will always correctly report at least major version. Differential Revision: https://reviews.llvm.org/D44163 llvm-svn: 326825 --- llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp | 6 ++++++ llvm/test/MC/AMDGPU/hsa_isa_version_attrs.s | 6 ++++++ 2 files changed, 12 insertions(+) create mode 100644 llvm/test/MC/AMDGPU/hsa_isa_version_attrs.s diff --git a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp index 7848a29..69572b8 100644 --- a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp +++ b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp @@ -206,6 +206,8 @@ IsaVersion getIsaVersion(const FeatureBitset &Features) { return {7, 0, 3}; if (Features.test(FeatureISAVersion7_0_4)) return {7, 0, 4}; + if (Features.test(FeatureSeaIslands)) + return {7, 0, 0}; // GCN GFX8 (Volcanic Islands (VI)). if (Features.test(FeatureISAVersion8_0_1)) @@ -216,12 +218,16 @@ IsaVersion getIsaVersion(const FeatureBitset &Features) { return {8, 0, 3}; if (Features.test(FeatureISAVersion8_1_0)) return {8, 1, 0}; + if (Features.test(FeatureVolcanicIslands)) + return {8, 0, 0}; // GCN GFX9. if (Features.test(FeatureISAVersion9_0_0)) return {9, 0, 0}; if (Features.test(FeatureISAVersion9_0_2)) return {9, 0, 2}; + if (Features.test(FeatureGFX9)) + return {9, 0, 0}; if (!Features.test(FeatureGCN) || Features.test(FeatureSouthernIslands)) return {0, 0, 0}; diff --git a/llvm/test/MC/AMDGPU/hsa_isa_version_attrs.s b/llvm/test/MC/AMDGPU/hsa_isa_version_attrs.s new file mode 100644 index 0000000..0ee85c9 --- /dev/null +++ b/llvm/test/MC/AMDGPU/hsa_isa_version_attrs.s @@ -0,0 +1,6 @@ +// RUN: llvm-mc -arch=amdgcn -mcpu=gfx801 -mattr=-fast-fmaf -show-encoding %s | FileCheck --check-prefix=GFX8 %s +// RUN: llvm-mc -arch=amdgcn -mcpu=gfx900 -mattr=-mad-mix-insts -show-encoding %s | FileCheck --check-prefix=GFX9 %s + +.hsa_code_object_isa +// GFX8: .hsa_code_object_isa 8,0,0,"AMD","AMDGPU" +// GFX9: .hsa_code_object_isa 9,0,0,"AMD","AMDGPU" -- 2.7.4