8
8
9
9
// READOBJ: Section Headers
10
10
// READOBJ: .text PROGBITS {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9]+}} AX {{[0-9]+}} {{[0-9]+}} 256
11
- // READOBJ: .rodata PROGBITS {{[0-9a-f]+}} {{[0-9a-f]+}} 0000c0 {{[0-9]+}} A {{[0-9]+}} {{[0-9]+}} 64
11
+ // READOBJ: .rodata PROGBITS {{[0-9a-f]+}} {{[0-9a-f]+}} 000100 {{[0-9]+}} A {{[0-9]+}} {{[0-9]+}} 64
12
12
13
13
// READOBJ: Relocation section '.rela.rodata' at offset
14
14
// READOBJ: 0000000000000010 {{[0-9a-f]+}}00000005 R_AMDGPU_REL64 0000000000000000 .text + 10
15
15
// READOBJ: 0000000000000050 {{[0-9a-f]+}}00000005 R_AMDGPU_REL64 0000000000000000 .text + 110
16
16
// READOBJ: 0000000000000090 {{[0-9a-f]+}}00000005 R_AMDGPU_REL64 0000000000000000 .text + 210
17
+ // READOBJ: 00000000000000d0 {{[0-9a-f]+}}00000005 R_AMDGPU_REL64 0000000000000000 .text + 310
17
18
18
19
// READOBJ: Symbol table '.symtab' contains {{[0-9]+}} entries:
19
20
// READOBJ: {{[0-9]+}}: 0000000000000100 0 FUNC LOCAL PROTECTED 2 complete
20
21
// READOBJ: {{[0-9]+}}: 0000000000000040 64 OBJECT LOCAL DEFAULT 3 complete.kd
22
+ // READOBJ: {{[0-9]+}}: 0000000000000300 0 FUNC LOCAL PROTECTED 2 disabled_user_sgpr
23
+ // READOBJ: {{[0-9]+}}: 00000000000000c0 64 OBJECT LOCAL DEFAULT 3 disabled_user_sgpr.kd
21
24
// READOBJ: {{[0-9]+}}: 0000000000000000 0 FUNC LOCAL PROTECTED 2 minimal
22
25
// READOBJ: {{[0-9]+}}: 0000000000000000 64 OBJECT LOCAL DEFAULT 3 minimal.kd
23
26
// READOBJ: {{[0-9]+}}: 0000000000000200 0 FUNC LOCAL PROTECTED 2 special_sgpr
40
43
// OBJDUMP-NEXT: 0090 00000000 00000000 00000000 00000000
41
44
// OBJDUMP-NEXT: 00a0 00000000 00000000 00000000 00000000
42
45
// OBJDUMP-NEXT: 00b0 00010000 80000000 00000000 00000000
46
+ // disabled_user_sgpr
47
+ // OBJDUMP-NEXT: 00c0 00000000 00000000 00000000 00000000
48
+ // OBJDUMP-NEXT: 00d0 00000000 00000000 00000000 00000000
49
+ // OBJDUMP-NEXT: 00e0 00000000 00000000 00000000 00000000
50
+ // OBJDUMP-NEXT: 00f0 0000ac00 80000000 00000000 00000000
43
51
44
52
.text
45
53
// ASM: .text
@@ -62,6 +70,11 @@ complete:
62
70
special_sgpr:
63
71
s_endpgm
64
72
73
+ .p2align 8
74
+ .type disabled_user_sgpr,@function
75
+ disabled_user_sgpr:
76
+ s_endpgm
77
+
65
78
.rodata
66
79
// ASM: .rodata
67
80
@@ -182,6 +195,20 @@ special_sgpr:
182
195
// ASM-NEXT: .amdhsa_ieee_mode 0
183
196
// ASM: .end_amdhsa_kernel
184
197
198
+ // Test that explicitly disabling user_sgpr's does not affect the user_sgpr
199
+ // count, i.e. this should produce the same descriptor as minimal.
200
+ .p2align 6
201
+ .amdhsa_kernel disabled_user_sgpr
202
+ .amdhsa_user_sgpr_private_segment_buffer 0
203
+ .amdhsa_next_free_vgpr 0
204
+ .amdhsa_next_free_sgpr 0
205
+ .end_amdhsa_kernel
206
+
207
+ // ASM: .amdhsa_kernel disabled_user_sgpr
208
+ // ASM: .amdhsa_next_free_vgpr 0
209
+ // ASM-NEXT: .amdhsa_next_free_sgpr 0
210
+ // ASM: .end_amdhsa_kernel
211
+
185
212
.section .foo
186
213
187
214
.byte .amdgcn.gfx_generation_number
0 commit comments