1; RUN: llc -mtriple=amdgcn-amd-unknown -mcpu=gfx802 --amdhsa-code-object-version=2 < %s | FileCheck --check-prefix=GCN --check-prefix=OSABI-UNK --check-prefix=GFX802 %s
2; RUN: llc -mtriple=amdgcn-amd-unknown -mcpu=iceland --amdhsa-code-object-version=2 < %s | FileCheck --check-prefix=GCN --check-prefix=OSABI-UNK --check-prefix=GFX802 %s
3; RUN: llc -mtriple=amdgcn-amd-unknown -mcpu=gfx802 -filetype=obj --amdhsa-code-object-version=2 < %s | llvm-readelf --notes  - | FileCheck --check-prefix=GCN --check-prefix=OSABI-UNK-ELF --check-prefix=GFX802 %s
4; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx802 --amdhsa-code-object-version=2 < %s | FileCheck --check-prefix=GCN --check-prefix=OSABI-HSA --check-prefix=GFX802 %s
5; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=iceland --amdhsa-code-object-version=2 < %s | FileCheck --check-prefix=GCN --check-prefix=OSABI-HSA --check-prefix=GFX802 %s
6; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx802 -filetype=obj --amdhsa-code-object-version=2 < %s | llvm-readelf --notes  - | FileCheck --check-prefix=GCN --check-prefix=OSABI-HSA-ELF --check-prefix=GFX802 %s
7; RUN: llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx802 --amdhsa-code-object-version=2 < %s | FileCheck --check-prefix=GCN --check-prefix=OSABI-PAL --check-prefix=GFX802 %s
8; RUN: llc -mtriple=amdgcn-amd-amdpal -mcpu=iceland --amdhsa-code-object-version=2 < %s | FileCheck --check-prefix=GCN --check-prefix=OSABI-PAL --check-prefix=GFX802 %s
9; RUN: llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx802 -filetype=obj --amdhsa-code-object-version=2 < %s | llvm-readelf --notes  - | FileCheck --check-prefix=GCN --check-prefix=OSABI-PAL-ELF --check-prefix=GFX802 %s
10; RUN: llc -march=r600 < %s | FileCheck --check-prefix=R600 %s
11
12; OSABI-UNK-NOT: .hsa_code_object_version
13; OSABI-UNK-NOT: .hsa_code_object_isa
14; OSABI-UNK: .amd_amdgpu_isa "amdgcn-amd-unknown--gfx802"
15; OSABI-UNK-NOT: .amd_amdgpu_hsa_metadata
16; OSABI-UNK-NOT: .amd_amdgpu_pal_metadata
17
18; OSABI-UNK-ELF-NOT: Unknown note type
19; OSABI-UNK-ELF: NT_AMD_AMDGPU_ISA (ISA Version)
20; OSABI-UNK-ELF: ISA Version:
21; OSABI-UNK-ELF: amdgcn-amd-unknown--gfx802
22; OSABI-UNK-ELF-NOT: Unknown note type
23; OSABI-UNK-ELF-NOT: NT_AMD_AMDGPU_HSA_METADATA (HSA Metadata)
24; OSABI-UNK-ELF-NOT: Unknown note type
25; OSABI-UNK-ELF-NOT: NT_AMD_AMDGPU_PAL_METADATA (PAL Metadata)
26; OSABI-UNK-ELF-NOT: Unknown note type
27
28; OSABI-HSA: .hsa_code_object_version
29; OSABI-HSA: .hsa_code_object_isa
30; OSABI-HSA: .amd_amdgpu_isa "amdgcn-amd-amdhsa--gfx802"
31; OSABI-HSA: .amd_amdgpu_hsa_metadata
32; OSABI-HSA-NOT: .amd_amdgpu_pal_metadata
33
34; OSABI-HSA-ELF: Unknown note type: (0x00000001)
35; OSABI-HSA-ELF: Unknown note type: (0x00000003)
36; OSABI-HSA-ELF: NT_AMD_AMDGPU_ISA (ISA Version)
37; OSABI-HSA-ELF: ISA Version:
38; OSABI-HSA-ELF: amdgcn-amd-amdhsa--gfx802
39; OSABI-HSA-ELF: NT_AMD_AMDGPU_HSA_METADATA (HSA Metadata)
40; OSABI-HSA-ELF: HSA Metadata:
41; OSABI-HSA-ELF: ---
42; OSABI-HSA-ELF: Version: [ 1, 0 ]
43; OSABI-HSA-ELF: Kernels:
44; OSABI-HSA-ELF:   - Name:       elf_notes
45; OSABI-HSA-ELF:     SymbolName: 'elf_notes@kd'
46; OSABI-HSA-ELF:     CodeProps:
47; OSABI-HSA-ELF:       KernargSegmentSize: 0
48; OSABI-HSA-ELF:       GroupSegmentFixedSize: 0
49; OSABI-HSA-ELF:       PrivateSegmentFixedSize: 0
50; OSABI-HSA-ELF:       KernargSegmentAlign: 4
51; OSABI-HSA-ELF:       WavefrontSize:   64
52; OSABI-HSA-ELF:       NumSGPRs:        96
53; OSABI-HSA-ELF: ...
54; OSABI-HSA-ELF-NOT: NT_AMD_AMDGPU_PAL_METADATA (PAL Metadata)
55
56; OSABI-PAL-NOT: .hsa_code_object_version
57; OSABI-PAL: .hsa_code_object_isa
58; OSABI-PAL: .amd_amdgpu_isa "amdgcn-amd-amdpal--gfx802"
59; OSABI-PAL-NOT: .amd_amdgpu_hsa_metadata
60; OSABI-PAL: .amd_amdgpu_pal_metadata
61
62; OSABI-PAL-ELF: Unknown note type: (0x00000003)
63; OSABI-PAL-ELF: NT_AMD_AMDGPU_ISA (ISA Version)
64; OSABI-PAL-ELF: ISA Version:
65; OSABI-PAL-ELF: amdgcn-amd-amdpal--gfx802
66; OSABI-PAL-ELF-NOT: NT_AMD_AMDGPU_HSA_METADATA (HSA Metadata)
67; OSABI-PAL-ELF: NT_AMD_AMDGPU_PAL_METADATA (PAL Metadata)
68; TODO: readobj can no longer dump PAL metadata pending resolution of D52821
69; OSABI-PAL-ELF-XXX: PAL Metadata:
70; TODO: Following check line fails on mips:
71; OSABI-PAL-ELF-XXX: 0x2e12,0xac02c0,0x2e13,0x80,0x1000001b,0x1,0x10000022,0x60,0x1000003e,0x0
72
73; R600-NOT: .hsa_code_object_version
74; R600-NOT: .hsa_code_object_isa
75; R600-NOT: .amd_amdgpu_isa
76; R600-NOT: .amd_amdgpu_hsa_metadata
77; R600-NOT: .amd_amdgpu_pal_metadata
78
79define amdgpu_kernel void @elf_notes() {
80  ret void
81}
82