1 //===--- amdgpu/impl/get_elf_mach_gfx_name.cpp -------------------- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 #include "get_elf_mach_gfx_name.h"
9 
10 // This header conflicts with the system elf.h (macros vs enums of the same
11 // identifier) and contains more up to date values for the enum checked here.
12 // rtl.cpp uses the system elf.h.
13 #include "llvm/BinaryFormat/ELF.h"
14 
get_elf_mach_gfx_name(uint32_t EFlags)15 const char *get_elf_mach_gfx_name(uint32_t EFlags) {
16   using namespace llvm::ELF;
17   uint32_t Gfx = (EFlags & EF_AMDGPU_MACH);
18   switch (Gfx) {
19   case EF_AMDGPU_MACH_AMDGCN_GFX801:
20     return "gfx801";
21   case EF_AMDGPU_MACH_AMDGCN_GFX802:
22     return "gfx802";
23   case EF_AMDGPU_MACH_AMDGCN_GFX803:
24     return "gfx803";
25   case EF_AMDGPU_MACH_AMDGCN_GFX805:
26     return "gfx805";
27   case EF_AMDGPU_MACH_AMDGCN_GFX810:
28     return "gfx810";
29   case EF_AMDGPU_MACH_AMDGCN_GFX900:
30     return "gfx900";
31   case EF_AMDGPU_MACH_AMDGCN_GFX902:
32     return "gfx902";
33   case EF_AMDGPU_MACH_AMDGCN_GFX904:
34     return "gfx904";
35   case EF_AMDGPU_MACH_AMDGCN_GFX906:
36     return "gfx906";
37   case EF_AMDGPU_MACH_AMDGCN_GFX908:
38     return "gfx908";
39   case EF_AMDGPU_MACH_AMDGCN_GFX909:
40     return "gfx909";
41   case EF_AMDGPU_MACH_AMDGCN_GFX90A:
42     return "gfx90a";
43   case EF_AMDGPU_MACH_AMDGCN_GFX90C:
44     return "gfx90c";
45   case EF_AMDGPU_MACH_AMDGCN_GFX940:
46     return "gfx940";
47   case EF_AMDGPU_MACH_AMDGCN_GFX1010:
48     return "gfx1010";
49   case EF_AMDGPU_MACH_AMDGCN_GFX1011:
50     return "gfx1011";
51   case EF_AMDGPU_MACH_AMDGCN_GFX1012:
52     return "gfx1012";
53   case EF_AMDGPU_MACH_AMDGCN_GFX1013:
54     return "gfx1013";
55   case EF_AMDGPU_MACH_AMDGCN_GFX1030:
56     return "gfx1030";
57   case EF_AMDGPU_MACH_AMDGCN_GFX1031:
58     return "gfx1031";
59   case EF_AMDGPU_MACH_AMDGCN_GFX1032:
60     return "gfx1032";
61   case EF_AMDGPU_MACH_AMDGCN_GFX1033:
62     return "gfx1033";
63   case EF_AMDGPU_MACH_AMDGCN_GFX1034:
64     return "gfx1034";
65   case EF_AMDGPU_MACH_AMDGCN_GFX1035:
66     return "gfx1035";
67   case EF_AMDGPU_MACH_AMDGCN_GFX1036:
68     return "gfx1036";
69   default:
70     return "--unknown gfx";
71   }
72 }
73