|
1 |
| -// RUN: llvm-mc -triple amdgcn-amd-amdhsa -mcpu=gfx1250 --amdhsa-code-object-version=4 < %s | FileCheck --check-prefixes=ASM %s |
| 1 | +// RUN: llvm-mc -triple amdgcn-amd-amdhsa -mcpu=gfx1250 --amdhsa-code-object-version=4 < %s | FileCheck --check-prefixes=ASM,W32 %s |
2 | 2 | // RUN: llvm-mc -triple amdgcn-amd-amdhsa -mcpu=gfx1250 --amdhsa-code-object-version=4 -filetype=obj < %s > %t
|
3 | 3 | // RUN: llvm-readelf -S -r -s %t | FileCheck --check-prefix=READOBJ %s
|
4 | 4 | // RUN: llvm-objdump -s -j .rodata %t | FileCheck --check-prefix=OBJDUMP %s
|
| 5 | +// RUN: not llvm-mc -triple amdgcn-amd-amdhsa -mcpu=gfx1250 -mattr=+wavefrontsize64,-wavefrontsize32 --amdhsa-code-object-version=4 < %s 2>&1 | FileCheck --check-prefix=W64-ERR %s |
5 | 6 |
|
6 | 7 | // READOBJ: Section Headers
|
7 | 8 | // READOBJ: .text PROGBITS {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9]+}} AX {{[0-9]+}} {{[0-9]+}} 256
|
8 |
| -// READOBJ: .rodata PROGBITS {{[0-9a-f]+}} 000540 {{[0-9a-f]+}} {{[0-9]+}} A {{[0-9]+}} {{[0-9]+}} 64 |
| 9 | +// READOBJ: .rodata PROGBITS {{[0-9a-f]+}} 000640 {{[0-9a-f]+}} {{[0-9]+}} A {{[0-9]+}} {{[0-9]+}} 64 |
9 | 10 |
|
10 | 11 | // READOBJ: Relocation section '.rela.rodata' at offset
|
11 | 12 | // READOBJ: 0000000000000010 {{[0-9a-f]+}}00000005 R_AMDGPU_REL64 0000000000000000 .text + 10
|
|
20 | 21 | // READOBJ-NEXT: 0000000000000200 0 FUNC LOCAL PROTECTED 2 special_sgpr
|
21 | 22 | // READOBJ-NEXT: 0000000000000300 0 FUNC LOCAL PROTECTED 2 disabled_user_sgpr
|
22 | 23 | // READOBJ-NEXT: 0000000000000400 0 FUNC LOCAL PROTECTED 2 max_lds_size
|
| 24 | +// READOBJ-NEXT: 0000000000000500 0 FUNC LOCAL PROTECTED 2 max_vgprs |
23 | 25 | // READOBJ-NEXT: 0000000000000000 64 OBJECT LOCAL DEFAULT 3 minimal.kd
|
24 | 26 | // READOBJ-NEXT: 0000000000000040 64 OBJECT LOCAL DEFAULT 3 complete.kd
|
25 | 27 | // READOBJ-NEXT: 0000000000000080 64 OBJECT LOCAL DEFAULT 3 special_sgpr.kd
|
26 | 28 | // READOBJ-NEXT: 00000000000000c0 64 OBJECT LOCAL DEFAULT 3 disabled_user_sgpr.kd
|
27 | 29 | // READOBJ-NEXT: 0000000000000100 64 OBJECT LOCAL DEFAULT 3 max_lds_size.kd
|
| 30 | +// READOBJ-NEXT: 0000000000000140 64 OBJECT LOCAL DEFAULT 3 max_vgprs.kd |
28 | 31 |
|
29 | 32 | // OBJDUMP: Contents of section .rodata
|
30 | 33 | // Note, relocation for KERNEL_CODE_ENTRY_BYTE_OFFSET is not resolved here.
|
|
37 | 40 | // OBJDUMP-NEXT: 0040 01000000 01000000 0c000000 00000000
|
38 | 41 | // OBJDUMP-NEXT: 0050 00000000 00000000 00000000 00000000
|
39 | 42 | // OBJDUMP-NEXT: 0060 00000000 00000000 00000000 00c00000
|
40 |
| -// OBJDUMP-NEXT: 0070 015021c4 410f007f 5e068200 00000000 |
| 43 | +// OBJDUMP-NEXT: 0070 005021c4 410f007f 5e068200 00000000 |
41 | 44 | // special_sgpr
|
42 | 45 | // OBJDUMP-NEXT: 0080 00000000 00000000 00000000 00000000
|
43 | 46 | // OBJDUMP-NEXT: 0090 00000000 00000000 00000000 00000000
|
|
53 | 56 | // OBJDUMP-NEXT: 0110 00000000 00000000 00000000 00000000
|
54 | 57 | // OBJDUMP-NEXT: 0120 00000000 00000000 00000000 00000000
|
55 | 58 | // OBJDUMP-NEXT: 0130 00000cc0 80000000 00040000 00000000
|
| 59 | +// max_vgprs |
| 60 | +// OBJDUMP-NEXT: 0140 00000000 00000000 00000000 00000000 |
| 61 | +// OBJDUMP-NEXT: 0150 00000000 00000000 00000000 00000000 |
| 62 | +// OBJDUMP-NEXT: 0160 00000000 00000000 00000000 00000000 |
| 63 | +// OBJDUMP-NEXT: 0170 3f000cc0 80000000 00040000 00000000 |
56 | 64 |
|
57 | 65 | .text
|
58 | 66 |
|
@@ -84,6 +92,11 @@ disabled_user_sgpr:
|
84 | 92 | max_lds_size:
|
85 | 93 | s_endpgm
|
86 | 94 |
|
| 95 | +.p2align 8 |
| 96 | +.type max_vgprs,@function |
| 97 | +max_vgprs: |
| 98 | + s_endpgm |
| 99 | + |
87 | 100 | .rodata
|
88 | 101 | // ASM: .rodata
|
89 | 102 |
|
@@ -228,6 +241,18 @@ max_lds_size:
|
228 | 241 | // ASM: .amdhsa_group_segment_fixed_size 393216
|
229 | 242 | // ASM: .end_amdhsa_kernel
|
230 | 243 |
|
| 244 | +// Test maximum VGPR allocation |
| 245 | + |
| 246 | +// ASM: .amdhsa_kernel max_vgprs |
| 247 | +// W32: .amdhsa_next_free_vgpr 1024 |
| 248 | +// W64-ERR: error: value out of range |
| 249 | +// ASM: .end_amdhsa_kernel |
| 250 | +.p2align 6 |
| 251 | +.amdhsa_kernel max_vgprs |
| 252 | + .amdhsa_next_free_vgpr 1024 |
| 253 | + .amdhsa_next_free_sgpr 1 |
| 254 | +.end_amdhsa_kernel |
| 255 | + |
231 | 256 | .section .foo
|
232 | 257 |
|
233 | 258 | .byte .amdgcn.gfx_generation_number
|
|
0 commit comments