summaryrefslogtreecommitdiffstats
path: root/llvm/test/Object
diff options
context:
space:
mode:
authorKonstantin Zhuravlyov <kzhuravl_dev@outlook.com>2018-02-16 22:33:59 +0000
committerKonstantin Zhuravlyov <kzhuravl_dev@outlook.com>2018-02-16 22:33:59 +0000
commit9122a631437fa5a2e10e867910b4e2b1b317e55c (patch)
tree6be65e8b1b562a23d88c59fd8044e532de80e062 /llvm/test/Object
parent08868e494e38ecd10248f7a05957a9b5f6dc3df8 (diff)
downloadbcm5719-llvm-9122a631437fa5a2e10e867910b4e2b1b317e55c.tar.gz
bcm5719-llvm-9122a631437fa5a2e10e867910b4e2b1b317e55c.zip
AMDGPU: Bring elf flags in sync with the spec
- Add MACH flags - Add XNACK flag - Add reserved flags - Minor cleanups in docs Differential Revision: https://reviews.llvm.org/D43356 llvm-svn: 325399
Diffstat (limited to 'llvm/test/Object')
-rw-r--r--llvm/test/Object/AMDGPU/elf-header-flags-mach.yaml468
-rw-r--r--llvm/test/Object/AMDGPU/elf-header-flags-xnack.yaml37
-rw-r--r--llvm/test/Object/AMDGPU/elf-header-osabi.yaml50
-rw-r--r--llvm/test/Object/AMDGPU/elf32-r600-definitions.yaml34
-rw-r--r--llvm/test/Object/AMDGPU/elf64-amdgcn-amdhsa-definitions.yaml34
-rw-r--r--llvm/test/Object/AMDGPU/elf64-amdgcn-amdpal-definitions.yaml34
-rw-r--r--llvm/test/Object/AMDGPU/elf64-amdgcn-mesa3d-definitions.yaml34
7 files changed, 555 insertions, 136 deletions
diff --git a/llvm/test/Object/AMDGPU/elf-header-flags-mach.yaml b/llvm/test/Object/AMDGPU/elf-header-flags-mach.yaml
new file mode 100644
index 00000000000..585364b1cc2
--- /dev/null
+++ b/llvm/test/Object/AMDGPU/elf-header-flags-mach.yaml
@@ -0,0 +1,468 @@
+# RUN: yaml2obj -docnum=1 %s > %t.o.1
+# RUN: llvm-readobj -s -file-headers %t.o.1 | FileCheck --check-prefixes=ELF-ALL,ELF-R600 %s
+# RUN: obj2yaml %t.o.1 | FileCheck --check-prefixes=YAML-R600 %s
+# RUN: yaml2obj -docnum=2 %s > %t.o.2
+# RUN: llvm-readobj -s -file-headers %t.o.2 | FileCheck --check-prefixes=ELF-ALL,ELF-R630 %s
+# RUN: obj2yaml %t.o.2 | FileCheck --check-prefixes=YAML-R630 %s
+# RUN: yaml2obj -docnum=3 %s > %t.o.3
+# RUN: llvm-readobj -s -file-headers %t.o.3 | FileCheck --check-prefixes=ELF-ALL,ELF-RS880 %s
+# RUN: obj2yaml %t.o.3 | FileCheck --check-prefixes=YAML-RS880 %s
+# RUN: yaml2obj -docnum=4 %s > %t.o.4
+# RUN: llvm-readobj -s -file-headers %t.o.4 | FileCheck --check-prefixes=ELF-ALL,ELF-RV670 %s
+# RUN: obj2yaml %t.o.4 | FileCheck --check-prefixes=YAML-RV670 %s
+# RUN: yaml2obj -docnum=5 %s > %t.o.5
+# RUN: llvm-readobj -s -file-headers %t.o.5 | FileCheck --check-prefixes=ELF-ALL,ELF-RV710 %s
+# RUN: obj2yaml %t.o.5 | FileCheck --check-prefixes=YAML-RV710 %s
+# RUN: yaml2obj -docnum=6 %s > %t.o.6
+# RUN: llvm-readobj -s -file-headers %t.o.6 | FileCheck --check-prefixes=ELF-ALL,ELF-RV730 %s
+# RUN: obj2yaml %t.o.6 | FileCheck --check-prefixes=YAML-RV730 %s
+# RUN: yaml2obj -docnum=7 %s > %t.o.7
+# RUN: llvm-readobj -s -file-headers %t.o.7 | FileCheck --check-prefixes=ELF-ALL,ELF-RV770 %s
+# RUN: obj2yaml %t.o.7 | FileCheck --check-prefixes=YAML-RV770 %s
+# RUN: yaml2obj -docnum=8 %s > %t.o.8
+# RUN: llvm-readobj -s -file-headers %t.o.8 | FileCheck --check-prefixes=ELF-ALL,ELF-CEDAR %s
+# RUN: obj2yaml %t.o.8 | FileCheck --check-prefixes=YAML-CEDAR %s
+# RUN: yaml2obj -docnum=9 %s > %t.o.9
+# RUN: llvm-readobj -s -file-headers %t.o.9 | FileCheck --check-prefixes=ELF-ALL,ELF-CYPRESS %s
+# RUN: obj2yaml %t.o.9 | FileCheck --check-prefixes=YAML-CYPRESS %s
+# RUN: yaml2obj -docnum=10 %s > %t.o.10
+# RUN: llvm-readobj -s -file-headers %t.o.10 | FileCheck --check-prefixes=ELF-ALL,ELF-JUNIPER %s
+# RUN: obj2yaml %t.o.10 | FileCheck --check-prefixes=YAML-JUNIPER %s
+# RUN: yaml2obj -docnum=11 %s > %t.o.11
+# RUN: llvm-readobj -s -file-headers %t.o.11 | FileCheck --check-prefixes=ELF-ALL,ELF-REDWOOD %s
+# RUN: obj2yaml %t.o.11 | FileCheck --check-prefixes=YAML-REDWOOD %s
+# RUN: yaml2obj -docnum=12 %s > %t.o.12
+# RUN: llvm-readobj -s -file-headers %t.o.12 | FileCheck --check-prefixes=ELF-ALL,ELF-SUMO %s
+# RUN: obj2yaml %t.o.12 | FileCheck --check-prefixes=YAML-SUMO %s
+# RUN: yaml2obj -docnum=13 %s > %t.o.13
+# RUN: llvm-readobj -s -file-headers %t.o.13 | FileCheck --check-prefixes=ELF-ALL,ELF-BARTS %s
+# RUN: obj2yaml %t.o.13 | FileCheck --check-prefixes=YAML-BARTS %s
+# RUN: yaml2obj -docnum=14 %s > %t.o.14
+# RUN: llvm-readobj -s -file-headers %t.o.14 | FileCheck --check-prefixes=ELF-ALL,ELF-CAICOS %s
+# RUN: obj2yaml %t.o.14 | FileCheck --check-prefixes=YAML-CAICOS %s
+# RUN: yaml2obj -docnum=15 %s > %t.o.15
+# RUN: llvm-readobj -s -file-headers %t.o.15 | FileCheck --check-prefixes=ELF-ALL,ELF-CAYMAN %s
+# RUN: obj2yaml %t.o.15 | FileCheck --check-prefixes=YAML-CAYMAN %s
+# RUN: yaml2obj -docnum=16 %s > %t.o.16
+# RUN: llvm-readobj -s -file-headers %t.o.16 | FileCheck --check-prefixes=ELF-ALL,ELF-TURKS %s
+# RUN: obj2yaml %t.o.16 | FileCheck --check-prefixes=YAML-TURKS %s
+# RUN: yaml2obj -docnum=17 %s > %t.o.17
+# RUN: llvm-readobj -s -file-headers %t.o.17 | FileCheck --check-prefixes=ELF-ALL,ELF-GFX600 %s
+# RUN: obj2yaml %t.o.17 | FileCheck --check-prefixes=YAML-GFX600 %s
+# RUN: yaml2obj -docnum=18 %s > %t.o.18
+# RUN: llvm-readobj -s -file-headers %t.o.18 | FileCheck --check-prefixes=ELF-ALL,ELF-GFX601 %s
+# RUN: obj2yaml %t.o.18 | FileCheck --check-prefixes=YAML-GFX601 %s
+# RUN: yaml2obj -docnum=19 %s > %t.o.19
+# RUN: llvm-readobj -s -file-headers %t.o.19 | FileCheck --check-prefixes=ELF-ALL,ELF-GFX700 %s
+# RUN: obj2yaml %t.o.19 | FileCheck --check-prefixes=YAML-GFX700 %s
+# RUN: yaml2obj -docnum=20 %s > %t.o.20
+# RUN: llvm-readobj -s -file-headers %t.o.20 | FileCheck --check-prefixes=ELF-ALL,ELF-GFX701 %s
+# RUN: obj2yaml %t.o.20 | FileCheck --check-prefixes=YAML-GFX701 %s
+# RUN: yaml2obj -docnum=21 %s > %t.o.21
+# RUN: llvm-readobj -s -file-headers %t.o.21 | FileCheck --check-prefixes=ELF-ALL,ELF-GFX702 %s
+# RUN: obj2yaml %t.o.21 | FileCheck --check-prefixes=YAML-GFX702 %s
+# RUN: yaml2obj -docnum=22 %s > %t.o.22
+# RUN: llvm-readobj -s -file-headers %t.o.22 | FileCheck --check-prefixes=ELF-ALL,ELF-GFX703 %s
+# RUN: obj2yaml %t.o.22 | FileCheck --check-prefixes=YAML-GFX703 %s
+# RUN: yaml2obj -docnum=23 %s > %t.o.23
+# RUN: llvm-readobj -s -file-headers %t.o.23 | FileCheck --check-prefixes=ELF-ALL,ELF-GFX704 %s
+# RUN: obj2yaml %t.o.23 | FileCheck --check-prefixes=YAML-GFX704 %s
+# RUN: yaml2obj -docnum=24 %s > %t.o.24
+# RUN: llvm-readobj -s -file-headers %t.o.24 | FileCheck --check-prefixes=ELF-ALL,ELF-GFX801 %s
+# RUN: obj2yaml %t.o.24 | FileCheck --check-prefixes=YAML-GFX801 %s
+# RUN: yaml2obj -docnum=25 %s > %t.o.25
+# RUN: llvm-readobj -s -file-headers %t.o.25 | FileCheck --check-prefixes=ELF-ALL,ELF-GFX802 %s
+# RUN: obj2yaml %t.o.25 | FileCheck --check-prefixes=YAML-GFX802 %s
+# RUN: yaml2obj -docnum=26 %s > %t.o.26
+# RUN: llvm-readobj -s -file-headers %t.o.26 | FileCheck --check-prefixes=ELF-ALL,ELF-GFX803 %s
+# RUN: obj2yaml %t.o.26 | FileCheck --check-prefixes=YAML-GFX803 %s
+# RUN: yaml2obj -docnum=27 %s > %t.o.27
+# RUN: llvm-readobj -s -file-headers %t.o.27 | FileCheck --check-prefixes=ELF-ALL,ELF-GFX810 %s
+# RUN: obj2yaml %t.o.27 | FileCheck --check-prefixes=YAML-GFX810 %s
+# RUN: yaml2obj -docnum=28 %s > %t.o.28
+# RUN: llvm-readobj -s -file-headers %t.o.28 | FileCheck --check-prefixes=ELF-ALL,ELF-GFX900 %s
+# RUN: obj2yaml %t.o.28 | FileCheck --check-prefixes=YAML-GFX900 %s
+# RUN: yaml2obj -docnum=29 %s > %t.o.29
+# RUN: llvm-readobj -s -file-headers %t.o.29 | FileCheck --check-prefixes=ELF-ALL,ELF-GFX902 %s
+# RUN: obj2yaml %t.o.29 | FileCheck --check-prefixes=YAML-GFX902 %s
+
+# ELF-ALL: Flags [
+# ELF-R600: EF_AMDGPU_MACH_R600_R600 (0x1)
+# ELF-R630: EF_AMDGPU_MACH_R600_R630 (0x2)
+# ELF-RS880: EF_AMDGPU_MACH_R600_RS880 (0x3)
+# ELF-RV670: EF_AMDGPU_MACH_R600_RV670 (0x4)
+# ELF-RV710: EF_AMDGPU_MACH_R600_RV710 (0x5)
+# ELF-RV730: EF_AMDGPU_MACH_R600_RV730 (0x6)
+# ELF-RV770: EF_AMDGPU_MACH_R600_RV770 (0x7)
+# ELF-CEDAR: EF_AMDGPU_MACH_R600_CEDAR (0x8)
+# ELF-CYPRESS: EF_AMDGPU_MACH_R600_CYPRESS (0x9)
+# ELF-JUNIPER: EF_AMDGPU_MACH_R600_JUNIPER (0xA)
+# ELF-REDWOOD: EF_AMDGPU_MACH_R600_REDWOOD (0xB)
+# ELF-SUMO: EF_AMDGPU_MACH_R600_SUMO (0xC)
+# ELF-BARTS: EF_AMDGPU_MACH_R600_BARTS (0xD)
+# ELF-CAICOS: EF_AMDGPU_MACH_R600_CAICOS (0xE)
+# ELF-CAYMAN: EF_AMDGPU_MACH_R600_CAYMAN (0xF)
+# ELF-TURKS: EF_AMDGPU_MACH_R600_TURKS (0x10)
+# ELF-GFX600: EF_AMDGPU_MACH_AMDGCN_GFX600 (0x20)
+# ELF-GFX601: EF_AMDGPU_MACH_AMDGCN_GFX601 (0x21)
+# ELF-GFX700: EF_AMDGPU_MACH_AMDGCN_GFX700 (0x22)
+# ELF-GFX701: EF_AMDGPU_MACH_AMDGCN_GFX701 (0x23)
+# ELF-GFX702: EF_AMDGPU_MACH_AMDGCN_GFX702 (0x24)
+# ELF-GFX703: EF_AMDGPU_MACH_AMDGCN_GFX703 (0x25)
+# ELF-GFX704: EF_AMDGPU_MACH_AMDGCN_GFX704 (0x26)
+# ELF-GFX801: EF_AMDGPU_MACH_AMDGCN_GFX801 (0x28)
+# ELF-GFX802: EF_AMDGPU_MACH_AMDGCN_GFX802 (0x29)
+# ELF-GFX803: EF_AMDGPU_MACH_AMDGCN_GFX803 (0x2A)
+# ELF-GFX810: EF_AMDGPU_MACH_AMDGCN_GFX810 (0x2B)
+# ELF-GFX900: EF_AMDGPU_MACH_AMDGCN_GFX900 (0x2C)
+# ELF-GFX902: EF_AMDGPU_MACH_AMDGCN_GFX902 (0x2D)
+# ELF-ALL: ]
+
+# YAML-R600: Flags: [ EF_AMDGPU_MACH_R600_R600 ]
+# YAML-R630: Flags: [ EF_AMDGPU_MACH_R600_R630 ]
+# YAML-RS880: Flags: [ EF_AMDGPU_MACH_R600_RS880 ]
+# YAML-RV670: Flags: [ EF_AMDGPU_MACH_R600_RV670 ]
+# YAML-RV710: Flags: [ EF_AMDGPU_MACH_R600_RV710 ]
+# YAML-RV730: Flags: [ EF_AMDGPU_MACH_R600_RV730 ]
+# YAML-RV770: Flags: [ EF_AMDGPU_MACH_R600_RV770 ]
+# YAML-CEDAR: Flags: [ EF_AMDGPU_MACH_R600_CEDAR ]
+# YAML-CYPRESS: Flags: [ EF_AMDGPU_MACH_R600_CYPRESS ]
+# YAML-JUNIPER: Flags: [ EF_AMDGPU_MACH_R600_JUNIPER ]
+# YAML-REDWOOD: Flags: [ EF_AMDGPU_MACH_R600_REDWOOD ]
+# YAML-SUMO: Flags: [ EF_AMDGPU_MACH_R600_SUMO ]
+# YAML-BARTS: Flags: [ EF_AMDGPU_MACH_R600_BARTS ]
+# YAML-CAICOS: Flags: [ EF_AMDGPU_MACH_R600_CAICOS ]
+# YAML-CAYMAN: Flags: [ EF_AMDGPU_MACH_R600_CAYMAN ]
+# YAML-TURKS: Flags: [ EF_AMDGPU_MACH_R600_TURKS ]
+# YAML-GFX600: Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX600 ]
+# YAML-GFX601: Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX601 ]
+# YAML-GFX700: Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX700 ]
+# YAML-GFX701: Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX701 ]
+# YAML-GFX702: Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX702 ]
+# YAML-GFX703: Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX703 ]
+# YAML-GFX704: Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX704 ]
+# YAML-GFX801: Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX801 ]
+# YAML-GFX802: Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX802 ]
+# YAML-GFX803: Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX803 ]
+# YAML-GFX810: Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX810 ]
+# YAML-GFX900: Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX900 ]
+# YAML-GFX902: Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX902 ]
+
+# Doc1
+--- !ELF
+FileHeader:
+ Class: ELFCLASS32
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_R600_R600 ]
+...
+
+# Doc2
+--- !ELF
+FileHeader:
+ Class: ELFCLASS32
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_R600_R630 ]
+...
+
+# Doc3
+--- !ELF
+FileHeader:
+ Class: ELFCLASS32
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_R600_RS880 ]
+...
+
+# Doc4
+--- !ELF
+FileHeader:
+ Class: ELFCLASS32
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_R600_RV670 ]
+...
+
+# Doc5
+--- !ELF
+FileHeader:
+ Class: ELFCLASS32
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_R600_RV710 ]
+...
+
+# Doc6
+--- !ELF
+FileHeader:
+ Class: ELFCLASS32
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_R600_RV730 ]
+...
+
+# Doc7
+--- !ELF
+FileHeader:
+ Class: ELFCLASS32
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_R600_RV770 ]
+...
+
+# Doc8
+--- !ELF
+FileHeader:
+ Class: ELFCLASS32
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_R600_CEDAR ]
+...
+
+# Doc9
+--- !ELF
+FileHeader:
+ Class: ELFCLASS32
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_R600_CYPRESS ]
+...
+
+# Doc10
+--- !ELF
+FileHeader:
+ Class: ELFCLASS32
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_R600_JUNIPER ]
+...
+
+# Doc11
+--- !ELF
+FileHeader:
+ Class: ELFCLASS32
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_R600_REDWOOD ]
+...
+
+# Doc12
+--- !ELF
+FileHeader:
+ Class: ELFCLASS32
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_R600_SUMO ]
+...
+
+# Doc13
+--- !ELF
+FileHeader:
+ Class: ELFCLASS32
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_R600_BARTS ]
+...
+
+# Doc14
+--- !ELF
+FileHeader:
+ Class: ELFCLASS32
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_R600_CAICOS ]
+...
+
+# Doc15
+--- !ELF
+FileHeader:
+ Class: ELFCLASS32
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_R600_CAYMAN ]
+...
+
+# Doc16
+--- !ELF
+FileHeader:
+ Class: ELFCLASS32
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_R600_TURKS ]
+...
+
+# Doc17
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX600 ]
+...
+
+# Doc18
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX601 ]
+...
+
+# Doc19
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX700 ]
+...
+
+# Doc20
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX701 ]
+...
+
+# Doc21
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX702 ]
+...
+
+# Doc22
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX703 ]
+...
+
+# Doc23
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX704 ]
+...
+
+# Doc24
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX801 ]
+...
+
+# Doc25
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX802 ]
+...
+
+# Doc26
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX803 ]
+...
+
+# Doc27
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX810 ]
+...
+
+# Doc28
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX900 ]
+...
+
+# Doc29
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX902 ]
+...
diff --git a/llvm/test/Object/AMDGPU/elf-header-flags-xnack.yaml b/llvm/test/Object/AMDGPU/elf-header-flags-xnack.yaml
new file mode 100644
index 00000000000..1514a5d654b
--- /dev/null
+++ b/llvm/test/Object/AMDGPU/elf-header-flags-xnack.yaml
@@ -0,0 +1,37 @@
+# RUN: yaml2obj -docnum=1 %s > %t.o.1
+# RUN: llvm-readobj -s -file-headers %t.o.1 | FileCheck --check-prefixes=ELF-ALL,ELF-XNACK-NONE %s
+# RUN: obj2yaml %t.o.1 | FileCheck --check-prefixes=YAML-XNACK-NONE %s
+# RUN: yaml2obj -docnum=2 %s > %t.o.2
+# RUN: llvm-readobj -s -file-headers %t.o.2 | FileCheck --check-prefixes=ELF-ALL,ELF-XNACK-GFX801 %s
+# RUN: obj2yaml %t.o.2 | FileCheck --check-prefixes=YAML-XNACK-GFX801 %s
+
+# ELF-ALL: Flags [
+# ELF-XNACK-NONE: EF_AMDGPU_XNACK (0x100)
+# ELF-XNACK-GFX801: EF_AMDGPU_MACH_AMDGCN_GFX801 (0x28)
+# ELF-XNACK-GFX801: EF_AMDGPU_XNACK (0x100)
+# ELF-ALL: ]
+
+# YAML-XNACK-NONE: Flags: [ EF_AMDGPU_MACH_NONE, EF_AMDGPU_XNACK ]
+# YAML-XNACK-GFX801: Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX801, EF_AMDGPU_XNACK ]
+
+# Doc1
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_XNACK ]
+...
+
+# Doc2
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_NONE
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ EF_AMDGPU_MACH_AMDGCN_GFX801, EF_AMDGPU_XNACK ]
+...
diff --git a/llvm/test/Object/AMDGPU/elf-header-osabi.yaml b/llvm/test/Object/AMDGPU/elf-header-osabi.yaml
new file mode 100644
index 00000000000..942515c2c13
--- /dev/null
+++ b/llvm/test/Object/AMDGPU/elf-header-osabi.yaml
@@ -0,0 +1,50 @@
+# RUN: yaml2obj -docnum=1 %s > %t.o.1
+# RUN: llvm-readobj -s -file-headers %t.o.1 | FileCheck --check-prefixes=ELF-HSA %s
+# RUN: obj2yaml %t.o.1 | FileCheck --check-prefixes=YAML-HSA %s
+# RUN: yaml2obj -docnum=2 %s > %t.o.2
+# RUN: llvm-readobj -s -file-headers %t.o.2 | FileCheck --check-prefixes=ELF-PAL %s
+# RUN: obj2yaml %t.o.2 | FileCheck --check-prefixes=YAML-PAL %s
+# RUN: yaml2obj -docnum=3 %s > %t.o.3
+# RUN: llvm-readobj -s -file-headers %t.o.3 | FileCheck --check-prefixes=ELF-MESA3D %s
+# RUN: obj2yaml %t.o.3 | FileCheck --check-prefixes=YAML-MESA3D %s
+
+# ELF-HSA: OS/ABI: AMDGPU_HSA (0x40)
+# ELF-PAL: OS/ABI: AMDGPU_PAL (0x41)
+# ELF-MESA3D: OS/ABI: AMDGPU_MESA3D (0x42)
+
+# YAML-HSA: OSABI: ELFOSABI_AMDGPU_HSA
+# YAML-PAL: OSABI: ELFOSABI_AMDGPU_PAL
+# YAML-MESA3D: OSABI: ELFOSABI_AMDGPU_MESA3D
+
+# Doc1
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_AMDGPU_HSA
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ ]
+...
+
+# Doc2
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_AMDGPU_PAL
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ ]
+...
+
+# Doc3
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ OSABI: ELFOSABI_AMDGPU_MESA3D
+ Type: ET_REL
+ Machine: EM_AMDGPU
+ Flags: [ ]
+...
diff --git a/llvm/test/Object/AMDGPU/elf32-r600-definitions.yaml b/llvm/test/Object/AMDGPU/elf32-r600-definitions.yaml
deleted file mode 100644
index 56c5f29b79f..00000000000
--- a/llvm/test/Object/AMDGPU/elf32-r600-definitions.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-# RUN: yaml2obj %s > %t.o
-# RUN: llvm-readobj -s -file-headers %t.o | FileCheck --check-prefix=ELF %s
-# RUN: obj2yaml %t.o | FileCheck --check-prefix=YAML %s
-
-# ELF: Format: ELF32-amdgpu
-# ELF: Arch: r600
-# ELF: ElfHeader {
-# ELF: Ident {
-# ELF: OS/ABI: AMDGPU_HSA (0x40)
-# ELF: ABIVersion: 0
-# ELF: }
-# ELF: Machine: EM_AMDGPU (0xE0)
-# ELF: Flags [ (0x1)
-# ELF: EF_AMDGPU_ARCH_R600 (0x1)
-# ELF: ]
-# ELF: }
-
-# YAML: FileHeader
-# YAML: Class: ELFCLASS32
-# YAML: Data: ELFDATA2LSB
-# YAML: OSABI: ELFOSABI_AMDGPU_HSA
-# YAML: Type: ET_REL
-# YAML: Machine: EM_AMDGPU
-# YAML: Flags: [ EF_AMDGPU_ARCH_R600 ]
-
---- !ELF
-FileHeader:
- Class: ELFCLASS32
- Data: ELFDATA2LSB
- OSABI: ELFOSABI_AMDGPU_HSA
- Type: ET_REL
- Machine: EM_AMDGPU
- Flags: [ EF_AMDGPU_ARCH_R600 ]
-...
diff --git a/llvm/test/Object/AMDGPU/elf64-amdgcn-amdhsa-definitions.yaml b/llvm/test/Object/AMDGPU/elf64-amdgcn-amdhsa-definitions.yaml
deleted file mode 100644
index 1ffea244d3f..00000000000
--- a/llvm/test/Object/AMDGPU/elf64-amdgcn-amdhsa-definitions.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-# RUN: yaml2obj %s > %t.o
-# RUN: llvm-readobj -s -file-headers %t.o | FileCheck --check-prefix=ELF %s
-# RUN: obj2yaml %t.o | FileCheck --check-prefix=YAML %s
-
-# ELF: Format: ELF64-amdgpu
-# ELF: Arch: amdgcn
-# ELF: ElfHeader {
-# ELF: Ident {
-# ELF: OS/ABI: AMDGPU_HSA (0x40)
-# ELF: ABIVersion: 0
-# ELF: }
-# ELF: Machine: EM_AMDGPU (0xE0)
-# ELF: Flags [ (0x2)
-# ELF: EF_AMDGPU_ARCH_GCN (0x2)
-# ELF: ]
-# ELF: }
-
-# YAML: FileHeader
-# YAML: Class: ELFCLASS64
-# YAML: Data: ELFDATA2LSB
-# YAML: OSABI: ELFOSABI_AMDGPU_HSA
-# YAML: Type: ET_REL
-# YAML: Machine: EM_AMDGPU
-# YAML: Flags: [ EF_AMDGPU_ARCH_GCN ]
-
---- !ELF
-FileHeader:
- Class: ELFCLASS64
- Data: ELFDATA2LSB
- OSABI: ELFOSABI_AMDGPU_HSA
- Type: ET_REL
- Machine: EM_AMDGPU
- Flags: [ EF_AMDGPU_ARCH_GCN ]
-...
diff --git a/llvm/test/Object/AMDGPU/elf64-amdgcn-amdpal-definitions.yaml b/llvm/test/Object/AMDGPU/elf64-amdgcn-amdpal-definitions.yaml
deleted file mode 100644
index 3ec5fe51083..00000000000
--- a/llvm/test/Object/AMDGPU/elf64-amdgcn-amdpal-definitions.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-# RUN: yaml2obj %s > %t.o
-# RUN: llvm-readobj -s -file-headers %t.o | FileCheck --check-prefix=ELF %s
-# RUN: obj2yaml %t.o | FileCheck --check-prefix=YAML %s
-
-# ELF: Format: ELF64-amdgpu
-# ELF: Arch: amdgcn
-# ELF: ElfHeader {
-# ELF: Ident {
-# ELF: OS/ABI: AMDGPU_PAL (0x41)
-# ELF: ABIVersion: 0
-# ELF: }
-# ELF: Machine: EM_AMDGPU (0xE0)
-# ELF: Flags [ (0x2)
-# ELF: EF_AMDGPU_ARCH_GCN (0x2)
-# ELF: ]
-# ELF: }
-
-# YAML: FileHeader
-# YAML: Class: ELFCLASS64
-# YAML: Data: ELFDATA2LSB
-# YAML: OSABI: ELFOSABI_AMDGPU_PAL
-# YAML: Type: ET_REL
-# YAML: Machine: EM_AMDGPU
-# YAML: Flags: [ EF_AMDGPU_ARCH_GCN ]
-
---- !ELF
-FileHeader:
- Class: ELFCLASS64
- Data: ELFDATA2LSB
- OSABI: ELFOSABI_AMDGPU_PAL
- Type: ET_REL
- Machine: EM_AMDGPU
- Flags: [ EF_AMDGPU_ARCH_GCN ]
-...
diff --git a/llvm/test/Object/AMDGPU/elf64-amdgcn-mesa3d-definitions.yaml b/llvm/test/Object/AMDGPU/elf64-amdgcn-mesa3d-definitions.yaml
deleted file mode 100644
index 258bb122ca9..00000000000
--- a/llvm/test/Object/AMDGPU/elf64-amdgcn-mesa3d-definitions.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-# RUN: yaml2obj %s > %t.o
-# RUN: llvm-readobj -s -file-headers %t.o | FileCheck --check-prefix=ELF %s
-# RUN: obj2yaml %t.o | FileCheck --check-prefix=YAML %s
-
-# ELF: Format: ELF64-amdgpu
-# ELF: Arch: amdgcn
-# ELF: ElfHeader {
-# ELF: Ident {
-# ELF: OS/ABI: AMDGPU_MESA3D (0x42)
-# ELF: ABIVersion: 0
-# ELF: }
-# ELF: Machine: EM_AMDGPU (0xE0)
-# ELF: Flags [ (0x2)
-# ELF: EF_AMDGPU_ARCH_GCN (0x2)
-# ELF: ]
-# ELF: }
-
-# YAML: FileHeader
-# YAML: Class: ELFCLASS64
-# YAML: Data: ELFDATA2LSB
-# YAML: OSABI: ELFOSABI_AMDGPU_MESA3D
-# YAML: Type: ET_REL
-# YAML: Machine: EM_AMDGPU
-# YAML: Flags: [ EF_AMDGPU_ARCH_GCN ]
-
---- !ELF
-FileHeader:
- Class: ELFCLASS64
- Data: ELFDATA2LSB
- OSABI: ELFOSABI_AMDGPU_MESA3D
- Type: ET_REL
- Machine: EM_AMDGPU
- Flags: [ EF_AMDGPU_ARCH_GCN ]
-...
OpenPOWER on IntegriCloud