1 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx700 -filetype=obj -o - < %s | llvm-readobj -elf-output-style=GNU -notes | FileCheck --check-prefix=CHECK --check-prefix=GFX700 --check-prefix=NOTES %s 2 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx802 -filetype=obj -o - < %s | llvm-readobj -elf-output-style=GNU -notes | FileCheck --check-prefix=CHECK --check-prefix=GFX802 --check-prefix=NOTES %s 3 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -filetype=obj -o - < %s | llvm-readobj -elf-output-style=GNU -notes | FileCheck --check-prefix=CHECK --check-prefix=GFX900 --check-prefix=NOTES %s 4 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx700 -amdgpu-dump-hsa-metadata -amdgpu-verify-hsa-metadata -filetype=obj -o - < %s 2>&1 | FileCheck --check-prefix=PARSER %s 5 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx802 -amdgpu-dump-hsa-metadata -amdgpu-verify-hsa-metadata -filetype=obj -o - < %s 2>&1 | FileCheck --check-prefix=PARSER %s 6 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -amdgpu-dump-hsa-metadata -amdgpu-verify-hsa-metadata -filetype=obj -o - < %s 2>&1 | FileCheck --check-prefix=PARSER %s 7 8 %struct.A = type { i8, float } 9 %opencl.image1d_t = type opaque 10 %opencl.image2d_t = type opaque 11 %opencl.image3d_t = type opaque 12 %opencl.queue_t = type opaque 13 %opencl.pipe_t = type opaque 14 %struct.B = type { i32 addrspace(1)*} 15 %opencl.clk_event_t = type opaque 16 17 @__test_block_invoke_kernel_runtime_handle = external addrspace(1) externally_initialized constant i8 addrspace(1)* 18 19 ; CHECK: --- 20 ; CHECK: Version: [ 1, 0 ] 21 ; CHECK: Printf: 22 ; CHECK: - '1:1:4:%d\n' 23 ; CHECK: - '2:1:8:%g\n' 24 ; CHECK: Kernels: 25 26 ; CHECK: - Name: test_char 27 ; CHECK-NEXT: SymbolName: 'test_char@kd' 28 ; CHECK-NEXT: Language: OpenCL C 29 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 30 ; CHECK-NEXT: Args: 31 ; CHECK-NEXT: - Name: a 32 ; CHECK-NEXT: TypeName: char 33 ; CHECK-NEXT: Size: 1 34 ; CHECK-NEXT: Align: 1 35 ; CHECK-NEXT: ValueKind: ByValue 36 ; CHECK-NEXT: ValueType: I8 37 ; CHECK-NEXT: AccQual: Default 38 ; CHECK-NEXT: - Size: 8 39 ; CHECK-NEXT: Align: 8 40 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 41 ; CHECK-NEXT: ValueType: I64 42 ; CHECK-NEXT: - Size: 8 43 ; CHECK-NEXT: Align: 8 44 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 45 ; CHECK-NEXT: ValueType: I64 46 ; CHECK-NEXT: - Size: 8 47 ; CHECK-NEXT: Align: 8 48 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 49 ; CHECK-NEXT: ValueType: I64 50 ; CHECK-NEXT: - Size: 8 51 ; CHECK-NEXT: Align: 8 52 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 53 ; CHECK-NEXT: ValueType: I8 54 ; CHECK-NEXT: AddrSpaceQual: Global 55 ; CHECK-NOT: ValueKind: HiddenDefaultQueue 56 ; CHECK-NOT: ValueKind: HiddenCompletionAction 57 define amdgpu_kernel void @test_char(i8 %a) #0 58 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !9 59 !kernel_arg_base_type !9 !kernel_arg_type_qual !4 { 60 ret void 61 } 62 63 ; CHECK: - Name: test_ushort2 64 ; CHECK-NEXT: SymbolName: 'test_ushort2@kd' 65 ; CHECK-NEXT: Language: OpenCL C 66 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 67 ; CHECK-NEXT: Args: 68 ; CHECK-NEXT: - Name: a 69 ; CHECK-NEXT: TypeName: ushort2 70 ; CHECK-NEXT: Size: 4 71 ; CHECK-NEXT: Align: 4 72 ; CHECK-NEXT: ValueKind: ByValue 73 ; CHECK-NEXT: ValueType: U16 74 ; CHECK-NEXT: AccQual: Default 75 ; CHECK-NEXT: - Size: 8 76 ; CHECK-NEXT: Align: 8 77 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 78 ; CHECK-NEXT: ValueType: I64 79 ; CHECK-NEXT: - Size: 8 80 ; CHECK-NEXT: Align: 8 81 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 82 ; CHECK-NEXT: ValueType: I64 83 ; CHECK-NEXT: - Size: 8 84 ; CHECK-NEXT: Align: 8 85 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 86 ; CHECK-NEXT: ValueType: I64 87 ; CHECK-NEXT: - Size: 8 88 ; CHECK-NEXT: Align: 8 89 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 90 ; CHECK-NEXT: ValueType: I8 91 ; CHECK-NEXT: AddrSpaceQual: Global 92 define amdgpu_kernel void @test_ushort2(<2 x i16> %a) #0 93 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !10 94 !kernel_arg_base_type !10 !kernel_arg_type_qual !4 { 95 ret void 96 } 97 98 ; CHECK: - Name: test_int3 99 ; CHECK-NEXT: SymbolName: 'test_int3@kd' 100 ; CHECK-NEXT: Language: OpenCL C 101 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 102 ; CHECK-NEXT: Args: 103 ; CHECK-NEXT: - Name: a 104 ; CHECK-NEXT: TypeName: int3 105 ; CHECK-NEXT: Size: 16 106 ; CHECK-NEXT: Align: 16 107 ; CHECK-NEXT: ValueKind: ByValue 108 ; CHECK-NEXT: ValueType: I32 109 ; CHECK-NEXT: AccQual: Default 110 ; CHECK-NEXT: - Size: 8 111 ; CHECK-NEXT: Align: 8 112 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 113 ; CHECK-NEXT: ValueType: I64 114 ; CHECK-NEXT: - Size: 8 115 ; CHECK-NEXT: Align: 8 116 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 117 ; CHECK-NEXT: ValueType: I64 118 ; CHECK-NEXT: - Size: 8 119 ; CHECK-NEXT: Align: 8 120 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 121 ; CHECK-NEXT: ValueType: I64 122 ; CHECK-NEXT: - Size: 8 123 ; CHECK-NEXT: Align: 8 124 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 125 ; CHECK-NEXT: ValueType: I8 126 ; CHECK-NEXT: AddrSpaceQual: Global 127 define amdgpu_kernel void @test_int3(<3 x i32> %a) #0 128 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !11 129 !kernel_arg_base_type !11 !kernel_arg_type_qual !4 { 130 ret void 131 } 132 133 ; CHECK: - Name: test_ulong4 134 ; CHECK-NEXT: SymbolName: 'test_ulong4@kd' 135 ; CHECK-NEXT: Language: OpenCL C 136 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 137 ; CHECK-NEXT: Args: 138 ; CHECK-NEXT: - Name: a 139 ; CHECK-NEXT: TypeName: ulong4 140 ; CHECK-NEXT: Size: 32 141 ; CHECK-NEXT: Align: 32 142 ; CHECK-NEXT: ValueKind: ByValue 143 ; CHECK-NEXT: ValueType: U64 144 ; CHECK-NEXT: AccQual: Default 145 ; CHECK-NEXT: - Size: 8 146 ; CHECK-NEXT: Align: 8 147 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 148 ; CHECK-NEXT: ValueType: I64 149 ; CHECK-NEXT: - Size: 8 150 ; CHECK-NEXT: Align: 8 151 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 152 ; CHECK-NEXT: ValueType: I64 153 ; CHECK-NEXT: - Size: 8 154 ; CHECK-NEXT: Align: 8 155 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 156 ; CHECK-NEXT: ValueType: I64 157 ; CHECK-NEXT: - Size: 8 158 ; CHECK-NEXT: Align: 8 159 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 160 ; CHECK-NEXT: ValueType: I8 161 ; CHECK-NEXT: AddrSpaceQual: Global 162 define amdgpu_kernel void @test_ulong4(<4 x i64> %a) #0 163 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !12 164 !kernel_arg_base_type !12 !kernel_arg_type_qual !4 { 165 ret void 166 } 167 168 ; CHECK: - Name: test_half8 169 ; CHECK-NEXT: SymbolName: 'test_half8@kd' 170 ; CHECK-NEXT: Language: OpenCL C 171 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 172 ; CHECK-NEXT: Args: 173 ; CHECK-NEXT: - Name: a 174 ; CHECK-NEXT: TypeName: half8 175 ; CHECK-NEXT: Size: 16 176 ; CHECK-NEXT: Align: 16 177 ; CHECK-NEXT: ValueKind: ByValue 178 ; CHECK-NEXT: ValueType: F16 179 ; CHECK-NEXT: AccQual: Default 180 ; CHECK-NEXT: - Size: 8 181 ; CHECK-NEXT: Align: 8 182 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 183 ; CHECK-NEXT: ValueType: I64 184 ; CHECK-NEXT: - Size: 8 185 ; CHECK-NEXT: Align: 8 186 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 187 ; CHECK-NEXT: ValueType: I64 188 ; CHECK-NEXT: - Size: 8 189 ; CHECK-NEXT: Align: 8 190 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 191 ; CHECK-NEXT: ValueType: I64 192 ; CHECK-NEXT: - Size: 8 193 ; CHECK-NEXT: Align: 8 194 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 195 ; CHECK-NEXT: ValueType: I8 196 ; CHECK-NEXT: AddrSpaceQual: Global 197 define amdgpu_kernel void @test_half8(<8 x half> %a) #0 198 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !13 199 !kernel_arg_base_type !13 !kernel_arg_type_qual !4 { 200 ret void 201 } 202 203 ; CHECK: - Name: test_float16 204 ; CHECK-NEXT: SymbolName: 'test_float16@kd' 205 ; CHECK-NEXT: Language: OpenCL C 206 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 207 ; CHECK-NEXT: Args: 208 ; CHECK-NEXT: - Name: a 209 ; CHECK-NEXT: TypeName: float16 210 ; CHECK-NEXT: Size: 64 211 ; CHECK-NEXT: Align: 64 212 ; CHECK-NEXT: ValueKind: ByValue 213 ; CHECK-NEXT: ValueType: F32 214 ; CHECK-NEXT: AccQual: Default 215 ; CHECK-NEXT: - Size: 8 216 ; CHECK-NEXT: Align: 8 217 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 218 ; CHECK-NEXT: ValueType: I64 219 ; CHECK-NEXT: - Size: 8 220 ; CHECK-NEXT: Align: 8 221 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 222 ; CHECK-NEXT: ValueType: I64 223 ; CHECK-NEXT: - Size: 8 224 ; CHECK-NEXT: Align: 8 225 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 226 ; CHECK-NEXT: ValueType: I64 227 ; CHECK-NEXT: - Size: 8 228 ; CHECK-NEXT: Align: 8 229 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 230 ; CHECK-NEXT: ValueType: I8 231 ; CHECK-NEXT: AddrSpaceQual: Global 232 define amdgpu_kernel void @test_float16(<16 x float> %a) #0 233 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !14 234 !kernel_arg_base_type !14 !kernel_arg_type_qual !4 { 235 ret void 236 } 237 238 ; CHECK: - Name: test_double16 239 ; CHECK-NEXT: SymbolName: 'test_double16@kd' 240 ; CHECK-NEXT: Language: OpenCL C 241 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 242 ; CHECK-NEXT: Args: 243 ; CHECK-NEXT: - Name: a 244 ; CHECK-NEXT: TypeName: double16 245 ; CHECK-NEXT: Size: 128 246 ; CHECK-NEXT: Align: 128 247 ; CHECK-NEXT: ValueKind: ByValue 248 ; CHECK-NEXT: ValueType: F64 249 ; CHECK-NEXT: AccQual: Default 250 ; CHECK-NEXT: - Size: 8 251 ; CHECK-NEXT: Align: 8 252 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 253 ; CHECK-NEXT: ValueType: I64 254 ; CHECK-NEXT: - Size: 8 255 ; CHECK-NEXT: Align: 8 256 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 257 ; CHECK-NEXT: ValueType: I64 258 ; CHECK-NEXT: - Size: 8 259 ; CHECK-NEXT: Align: 8 260 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 261 ; CHECK-NEXT: ValueType: I64 262 ; CHECK-NEXT: - Size: 8 263 ; CHECK-NEXT: Align: 8 264 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 265 ; CHECK-NEXT: ValueType: I8 266 ; CHECK-NEXT: AddrSpaceQual: Global 267 define amdgpu_kernel void @test_double16(<16 x double> %a) #0 268 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !15 269 !kernel_arg_base_type !15 !kernel_arg_type_qual !4 { 270 ret void 271 } 272 273 ; CHECK: - Name: test_pointer 274 ; CHECK-NEXT: SymbolName: 'test_pointer@kd' 275 ; CHECK-NEXT: Language: OpenCL C 276 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 277 ; CHECK-NEXT: Args: 278 ; CHECK-NEXT: - Name: a 279 ; CHECK-NEXT: TypeName: 'int addrspace(5)*' 280 ; CHECK-NEXT: Size: 8 281 ; CHECK-NEXT: Align: 8 282 ; CHECK-NEXT: ValueKind: GlobalBuffer 283 ; CHECK-NEXT: ValueType: I32 284 ; CHECK-NEXT: AddrSpaceQual: Global 285 ; CHECK-NEXT: AccQual: Default 286 ; CHECK-NEXT: - Size: 8 287 ; CHECK-NEXT: Align: 8 288 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 289 ; CHECK-NEXT: ValueType: I64 290 ; CHECK-NEXT: - Size: 8 291 ; CHECK-NEXT: Align: 8 292 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 293 ; CHECK-NEXT: ValueType: I64 294 ; CHECK-NEXT: - Size: 8 295 ; CHECK-NEXT: Align: 8 296 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 297 ; CHECK-NEXT: ValueType: I64 298 ; CHECK-NEXT: - Size: 8 299 ; CHECK-NEXT: Align: 8 300 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 301 ; CHECK-NEXT: ValueType: I8 302 ; CHECK-NEXT: AddrSpaceQual: Global 303 define amdgpu_kernel void @test_pointer(i32 addrspace(1)* %a) #0 304 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !16 305 !kernel_arg_base_type !16 !kernel_arg_type_qual !4 { 306 ret void 307 } 308 309 ; CHECK: - Name: test_image 310 ; CHECK-NEXT: SymbolName: 'test_image@kd' 311 ; CHECK-NEXT: Language: OpenCL C 312 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 313 ; CHECK-NEXT: Args: 314 ; CHECK-NEXT: - Name: a 315 ; CHECK-NEXT: TypeName: image2d_t 316 ; CHECK-NEXT: Size: 8 317 ; CHECK-NEXT: Align: 8 318 ; CHECK-NEXT: ValueKind: Image 319 ; CHECK-NEXT: ValueType: Struct 320 ; CHECK-NEXT: AddrSpaceQual: Global 321 ; CHECK-NEXT: AccQual: Default 322 ; CHECK-NEXT: - Size: 8 323 ; CHECK-NEXT: Align: 8 324 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 325 ; CHECK-NEXT: ValueType: I64 326 ; CHECK-NEXT: - Size: 8 327 ; CHECK-NEXT: Align: 8 328 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 329 ; CHECK-NEXT: ValueType: I64 330 ; CHECK-NEXT: - Size: 8 331 ; CHECK-NEXT: Align: 8 332 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 333 ; CHECK-NEXT: ValueType: I64 334 ; CHECK-NEXT: - Size: 8 335 ; CHECK-NEXT: Align: 8 336 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 337 ; CHECK-NEXT: ValueType: I8 338 ; CHECK-NEXT: AddrSpaceQual: Global 339 define amdgpu_kernel void @test_image(%opencl.image2d_t addrspace(1)* %a) #0 340 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !17 341 !kernel_arg_base_type !17 !kernel_arg_type_qual !4 { 342 ret void 343 } 344 345 ; CHECK: - Name: test_sampler 346 ; CHECK-NEXT: SymbolName: 'test_sampler@kd' 347 ; CHECK-NEXT: Language: OpenCL C 348 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 349 ; CHECK-NEXT: Args: 350 ; CHECK-NEXT: - Name: a 351 ; CHECK-NEXT: TypeName: sampler_t 352 ; CHECK-NEXT: Size: 4 353 ; CHECK-NEXT: Align: 4 354 ; CHECK-NEXT: ValueKind: Sampler 355 ; CHECK-NEXT: ValueType: I32 356 ; CHECK-NEXT: AccQual: Default 357 ; CHECK-NEXT: - Size: 8 358 ; CHECK-NEXT: Align: 8 359 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 360 ; CHECK-NEXT: ValueType: I64 361 ; CHECK-NEXT: - Size: 8 362 ; CHECK-NEXT: Align: 8 363 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 364 ; CHECK-NEXT: ValueType: I64 365 ; CHECK-NEXT: - Size: 8 366 ; CHECK-NEXT: Align: 8 367 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 368 ; CHECK-NEXT: ValueType: I64 369 ; CHECK-NEXT: - Size: 8 370 ; CHECK-NEXT: Align: 8 371 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 372 ; CHECK-NEXT: ValueType: I8 373 ; CHECK-NEXT: AddrSpaceQual: Global 374 define amdgpu_kernel void @test_sampler(i32 %a) #0 375 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !18 376 !kernel_arg_base_type !18 !kernel_arg_type_qual !4 { 377 ret void 378 } 379 380 ; CHECK: - Name: test_queue 381 ; CHECK-NEXT: SymbolName: 'test_queue@kd' 382 ; CHECK-NEXT: Language: OpenCL C 383 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 384 ; CHECK-NEXT: Args: 385 ; CHECK-NEXT: - Name: a 386 ; CHECK-NEXT: TypeName: queue_t 387 ; CHECK-NEXT: Size: 8 388 ; CHECK-NEXT: Align: 8 389 ; CHECK-NEXT: ValueKind: Queue 390 ; CHECK-NEXT: ValueType: Struct 391 ; CHECK-NEXT: AddrSpaceQual: Global 392 ; CHECK-NEXT: AccQual: Default 393 ; CHECK-NEXT: - Size: 8 394 ; CHECK-NEXT: Align: 8 395 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 396 ; CHECK-NEXT: ValueType: I64 397 ; CHECK-NEXT: - Size: 8 398 ; CHECK-NEXT: Align: 8 399 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 400 ; CHECK-NEXT: ValueType: I64 401 ; CHECK-NEXT: - Size: 8 402 ; CHECK-NEXT: Align: 8 403 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 404 ; CHECK-NEXT: ValueType: I64 405 ; CHECK-NEXT: - Size: 8 406 ; CHECK-NEXT: Align: 8 407 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 408 ; CHECK-NEXT: ValueType: I8 409 ; CHECK-NEXT: AddrSpaceQual: Global 410 define amdgpu_kernel void @test_queue(%opencl.queue_t addrspace(1)* %a) #0 411 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !19 412 !kernel_arg_base_type !19 !kernel_arg_type_qual !4 { 413 ret void 414 } 415 416 ; CHECK: - Name: test_struct 417 ; CHECK-NEXT: SymbolName: 'test_struct@kd' 418 ; CHECK-NEXT: Language: OpenCL C 419 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 420 ; CHECK-NEXT: Args: 421 ; CHECK-NEXT: - Name: a 422 ; CHECK-NEXT: TypeName: struct A 423 ; CHECK-NEXT: Size: 4 424 ; CHECK-NEXT: Align: 4 425 ; CHECK-NEXT: ValueKind: GlobalBuffer 426 ; CHECK-NEXT: ValueType: Struct 427 ; CHECK-NEXT: AddrSpaceQual: Private 428 ; CHECK-NEXT: AccQual: Default 429 ; CHECK-NEXT: - Size: 8 430 ; CHECK-NEXT: Align: 8 431 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 432 ; CHECK-NEXT: ValueType: I64 433 ; CHECK-NEXT: - Size: 8 434 ; CHECK-NEXT: Align: 8 435 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 436 ; CHECK-NEXT: ValueType: I64 437 ; CHECK-NEXT: - Size: 8 438 ; CHECK-NEXT: Align: 8 439 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 440 ; CHECK-NEXT: ValueType: I64 441 ; CHECK-NEXT: - Size: 8 442 ; CHECK-NEXT: Align: 8 443 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 444 ; CHECK-NEXT: ValueType: I8 445 ; CHECK-NEXT: AddrSpaceQual: Global 446 define amdgpu_kernel void @test_struct(%struct.A addrspace(5)* byval %a) #0 447 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !20 448 !kernel_arg_base_type !20 !kernel_arg_type_qual !4 { 449 ret void 450 } 451 452 ; CHECK: - Name: test_i128 453 ; CHECK-NEXT: SymbolName: 'test_i128@kd' 454 ; CHECK-NEXT: Language: OpenCL C 455 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 456 ; CHECK-NEXT: Args: 457 ; CHECK-NEXT: - Name: a 458 ; CHECK-NEXT: TypeName: i128 459 ; CHECK-NEXT: Size: 16 460 ; CHECK-NEXT: Align: 8 461 ; CHECK-NEXT: ValueKind: ByValue 462 ; CHECK-NEXT: ValueType: Struct 463 ; CHECK-NEXT: AccQual: Default 464 ; CHECK-NEXT: - Size: 8 465 ; CHECK-NEXT: Align: 8 466 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 467 ; CHECK-NEXT: ValueType: I64 468 ; CHECK-NEXT: - Size: 8 469 ; CHECK-NEXT: Align: 8 470 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 471 ; CHECK-NEXT: ValueType: I64 472 ; CHECK-NEXT: - Size: 8 473 ; CHECK-NEXT: Align: 8 474 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 475 ; CHECK-NEXT: ValueType: I64 476 ; CHECK-NEXT: - Size: 8 477 ; CHECK-NEXT: Align: 8 478 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 479 ; CHECK-NEXT: ValueType: I8 480 ; CHECK-NEXT: AddrSpaceQual: Global 481 define amdgpu_kernel void @test_i128(i128 %a) #0 482 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !21 483 !kernel_arg_base_type !21 !kernel_arg_type_qual !4 { 484 ret void 485 } 486 487 ; CHECK: - Name: test_multi_arg 488 ; CHECK-NEXT: SymbolName: 'test_multi_arg@kd' 489 ; CHECK-NEXT: Language: OpenCL C 490 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 491 ; CHECK-NEXT: Args: 492 ; CHECK-NEXT: - Name: a 493 ; CHECK-NEXT: TypeName: int 494 ; CHECK-NEXT: Size: 4 495 ; CHECK-NEXT: Align: 4 496 ; CHECK-NEXT: ValueKind: ByValue 497 ; CHECK-NEXT: ValueType: I32 498 ; CHECK-NEXT: AccQual: Default 499 ; CHECK-NEXT: - Name: b 500 ; CHECK-NEXT: TypeName: short2 501 ; CHECK-NEXT: Size: 4 502 ; CHECK-NEXT: Align: 4 503 ; CHECK-NEXT: ValueKind: ByValue 504 ; CHECK-NEXT: ValueType: I16 505 ; CHECK-NEXT: AccQual: Default 506 ; CHECK-NEXT: - Name: c 507 ; CHECK-NEXT: TypeName: char3 508 ; CHECK-NEXT: Size: 4 509 ; CHECK-NEXT: Align: 4 510 ; CHECK-NEXT: ValueKind: ByValue 511 ; CHECK-NEXT: ValueType: I8 512 ; CHECK-NEXT: AccQual: Default 513 ; CHECK-NEXT: - Size: 8 514 ; CHECK-NEXT: Align: 8 515 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 516 ; CHECK-NEXT: ValueType: I64 517 ; CHECK-NEXT: - Size: 8 518 ; CHECK-NEXT: Align: 8 519 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 520 ; CHECK-NEXT: ValueType: I64 521 ; CHECK-NEXT: - Size: 8 522 ; CHECK-NEXT: Align: 8 523 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 524 ; CHECK-NEXT: ValueType: I64 525 ; CHECK-NEXT: - Size: 8 526 ; CHECK-NEXT: Align: 8 527 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 528 ; CHECK-NEXT: ValueType: I8 529 ; CHECK-NEXT: AddrSpaceQual: Global 530 define amdgpu_kernel void @test_multi_arg(i32 %a, <2 x i16> %b, <3 x i8> %c) #0 531 !kernel_arg_addr_space !22 !kernel_arg_access_qual !23 !kernel_arg_type !24 532 !kernel_arg_base_type !24 !kernel_arg_type_qual !25 { 533 ret void 534 } 535 536 ; CHECK: - Name: test_addr_space 537 ; CHECK-NEXT: SymbolName: 'test_addr_space@kd' 538 ; CHECK-NEXT: Language: OpenCL C 539 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 540 ; CHECK-NEXT: Args: 541 ; CHECK-NEXT: - Name: g 542 ; CHECK-NEXT: TypeName: 'int addrspace(5)*' 543 ; CHECK-NEXT: Size: 8 544 ; CHECK-NEXT: Align: 8 545 ; CHECK-NEXT: ValueKind: GlobalBuffer 546 ; CHECK-NEXT: ValueType: I32 547 ; CHECK-NEXT: AddrSpaceQual: Global 548 ; CHECK-NEXT: AccQual: Default 549 ; CHECK-NEXT: - Name: c 550 ; CHECK-NEXT: TypeName: 'int addrspace(5)*' 551 ; CHECK-NEXT: Size: 8 552 ; CHECK-NEXT: Align: 8 553 ; CHECK-NEXT: ValueKind: GlobalBuffer 554 ; CHECK-NEXT: ValueType: I32 555 ; CHECK-NEXT: AddrSpaceQual: Constant 556 ; CHECK-NEXT: AccQual: Default 557 ; CHECK-NEXT: - Name: l 558 ; CHECK-NEXT: TypeName: 'int addrspace(5)*' 559 ; CHECK-NEXT: Size: 4 560 ; CHECK-NEXT: Align: 4 561 ; CHECK-NEXT: ValueKind: DynamicSharedPointer 562 ; CHECK-NEXT: ValueType: I32 563 ; CHECK-NEXT: PointeeAlign: 4 564 ; CHECK-NEXT: AddrSpaceQual: Local 565 ; CHECK-NEXT: AccQual: Default 566 ; CHECK-NEXT: - Size: 8 567 ; CHECK-NEXT: Align: 8 568 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 569 ; CHECK-NEXT: ValueType: I64 570 ; CHECK-NEXT: - Size: 8 571 ; CHECK-NEXT: Align: 8 572 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 573 ; CHECK-NEXT: ValueType: I64 574 ; CHECK-NEXT: - Size: 8 575 ; CHECK-NEXT: Align: 8 576 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 577 ; CHECK-NEXT: ValueType: I64 578 ; CHECK-NEXT: - Size: 8 579 ; CHECK-NEXT: Align: 8 580 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 581 ; CHECK-NEXT: ValueType: I8 582 ; CHECK-NEXT: AddrSpaceQual: Global 583 define amdgpu_kernel void @test_addr_space(i32 addrspace(1)* %g, 584 i32 addrspace(4)* %c, 585 i32 addrspace(3)* %l) #0 586 !kernel_arg_addr_space !50 !kernel_arg_access_qual !23 !kernel_arg_type !51 587 !kernel_arg_base_type !51 !kernel_arg_type_qual !25 { 588 ret void 589 } 590 591 ; CHECK: - Name: test_type_qual 592 ; CHECK-NEXT: SymbolName: 'test_type_qual@kd' 593 ; CHECK-NEXT: Language: OpenCL C 594 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 595 ; CHECK-NEXT: Args: 596 ; CHECK-NEXT: - Name: a 597 ; CHECK-NEXT: TypeName: 'int addrspace(5)*' 598 ; CHECK-NEXT: Size: 8 599 ; CHECK-NEXT: Align: 8 600 ; CHECK-NEXT: ValueKind: GlobalBuffer 601 ; CHECK-NEXT: ValueType: I32 602 ; CHECK-NEXT: AddrSpaceQual: Global 603 ; CHECK-NEXT: AccQual: Default 604 ; CHECK-NEXT: IsVolatile: true 605 ; CHECK-NEXT: - Name: b 606 ; CHECK-NEXT: TypeName: 'int addrspace(5)*' 607 ; CHECK-NEXT: Size: 8 608 ; CHECK-NEXT: Align: 8 609 ; CHECK-NEXT: ValueKind: GlobalBuffer 610 ; CHECK-NEXT: ValueType: I32 611 ; CHECK-NEXT: AddrSpaceQual: Global 612 ; CHECK-NEXT: AccQual: Default 613 ; CHECK-NEXT: IsConst: true 614 ; CHECK-NEXT: IsRestrict: true 615 ; CHECK-NEXT: - Name: c 616 ; CHECK-NEXT: TypeName: 'int addrspace(5)*' 617 ; CHECK-NEXT: Size: 8 618 ; CHECK-NEXT: Align: 8 619 ; CHECK-NEXT: ValueKind: Pipe 620 ; CHECK-NEXT: ValueType: Struct 621 ; CHECK-NEXT: AddrSpaceQual: Global 622 ; CHECK-NEXT: AccQual: Default 623 ; CHECK-NEXT: IsPipe: true 624 ; CHECK-NEXT: - Size: 8 625 ; CHECK-NEXT: Align: 8 626 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 627 ; CHECK-NEXT: ValueType: I64 628 ; CHECK-NEXT: - Size: 8 629 ; CHECK-NEXT: Align: 8 630 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 631 ; CHECK-NEXT: ValueType: I64 632 ; CHECK-NEXT: - Size: 8 633 ; CHECK-NEXT: Align: 8 634 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 635 ; CHECK-NEXT: ValueType: I64 636 ; CHECK-NEXT: - Size: 8 637 ; CHECK-NEXT: Align: 8 638 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 639 ; CHECK-NEXT: ValueType: I8 640 ; CHECK-NEXT: AddrSpaceQual: Global 641 define amdgpu_kernel void @test_type_qual(i32 addrspace(1)* %a, 642 i32 addrspace(1)* %b, 643 %opencl.pipe_t addrspace(1)* %c) #0 644 !kernel_arg_addr_space !22 !kernel_arg_access_qual !23 !kernel_arg_type !51 645 !kernel_arg_base_type !51 !kernel_arg_type_qual !70 { 646 ret void 647 } 648 649 ; CHECK: - Name: test_access_qual 650 ; CHECK-NEXT: SymbolName: 'test_access_qual@kd' 651 ; CHECK-NEXT: Language: OpenCL C 652 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 653 ; CHECK-NEXT: Args: 654 ; CHECK-NEXT: - Name: ro 655 ; CHECK-NEXT: TypeName: image1d_t 656 ; CHECK-NEXT: Size: 8 657 ; CHECK-NEXT: Align: 8 658 ; CHECK-NEXT: ValueKind: Image 659 ; CHECK-NEXT: ValueType: Struct 660 ; CHECK-NEXT: AddrSpaceQual: Global 661 ; CHECK-NEXT: AccQual: ReadOnly 662 ; CHECK-NEXT: - Name: wo 663 ; CHECK-NEXT: TypeName: image2d_t 664 ; CHECK-NEXT: Size: 8 665 ; CHECK-NEXT: Align: 8 666 ; CHECK-NEXT: ValueKind: Image 667 ; CHECK-NEXT: ValueType: Struct 668 ; CHECK-NEXT: AddrSpaceQual: Global 669 ; CHECK-NEXT: AccQual: WriteOnly 670 ; CHECK-NEXT: - Name: rw 671 ; CHECK-NEXT: TypeName: image3d_t 672 ; CHECK-NEXT: Size: 8 673 ; CHECK-NEXT: Align: 8 674 ; CHECK-NEXT: ValueKind: Image 675 ; CHECK-NEXT: ValueType: Struct 676 ; CHECK-NEXT: AddrSpaceQual: Global 677 ; CHECK-NEXT: AccQual: ReadWrite 678 ; CHECK-NEXT: - Size: 8 679 ; CHECK-NEXT: Align: 8 680 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 681 ; CHECK-NEXT: ValueType: I64 682 ; CHECK-NEXT: - Size: 8 683 ; CHECK-NEXT: Align: 8 684 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 685 ; CHECK-NEXT: ValueType: I64 686 ; CHECK-NEXT: - Size: 8 687 ; CHECK-NEXT: Align: 8 688 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 689 ; CHECK-NEXT: ValueType: I64 690 ; CHECK-NEXT: - Size: 8 691 ; CHECK-NEXT: Align: 8 692 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 693 ; CHECK-NEXT: ValueType: I8 694 ; CHECK-NEXT: AddrSpaceQual: Global 695 define amdgpu_kernel void @test_access_qual(%opencl.image1d_t addrspace(1)* %ro, 696 %opencl.image2d_t addrspace(1)* %wo, 697 %opencl.image3d_t addrspace(1)* %rw) #0 698 !kernel_arg_addr_space !60 !kernel_arg_access_qual !61 !kernel_arg_type !62 699 !kernel_arg_base_type !62 !kernel_arg_type_qual !25 { 700 ret void 701 } 702 703 ; CHECK: - Name: test_vec_type_hint_half 704 ; CHECK-NEXT: SymbolName: 'test_vec_type_hint_half@kd' 705 ; CHECK-NEXT: Language: OpenCL C 706 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 707 ; CHECK-NEXT: Attrs: 708 ; CHECK-NEXT: VecTypeHint: half 709 ; CHECK-NEXT: Args: 710 ; CHECK-NEXT: - Name: a 711 ; CHECK-NEXT: TypeName: int 712 ; CHECK-NEXT: Size: 4 713 ; CHECK-NEXT: Align: 4 714 ; CHECK-NEXT: ValueKind: ByValue 715 ; CHECK-NEXT: ValueType: I32 716 ; CHECK-NEXT: AccQual: Default 717 ; CHECK-NEXT: - Size: 8 718 ; CHECK-NEXT: Align: 8 719 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 720 ; CHECK-NEXT: ValueType: I64 721 ; CHECK-NEXT: - Size: 8 722 ; CHECK-NEXT: Align: 8 723 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 724 ; CHECK-NEXT: ValueType: I64 725 ; CHECK-NEXT: - Size: 8 726 ; CHECK-NEXT: Align: 8 727 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 728 ; CHECK-NEXT: ValueType: I64 729 ; CHECK-NEXT: - Size: 8 730 ; CHECK-NEXT: Align: 8 731 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 732 ; CHECK-NEXT: ValueType: I8 733 ; CHECK-NEXT: AddrSpaceQual: Global 734 define amdgpu_kernel void @test_vec_type_hint_half(i32 %a) #0 735 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3 736 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !26 { 737 ret void 738 } 739 740 ; CHECK: - Name: test_vec_type_hint_float 741 ; CHECK-NEXT: SymbolName: 'test_vec_type_hint_float@kd' 742 ; CHECK-NEXT: Language: OpenCL C 743 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 744 ; CHECK-NEXT: Attrs: 745 ; CHECK-NEXT: VecTypeHint: float 746 ; CHECK-NEXT: Args: 747 ; CHECK-NEXT: - Name: a 748 ; CHECK-NEXT: TypeName: int 749 ; CHECK-NEXT: Size: 4 750 ; CHECK-NEXT: Align: 4 751 ; CHECK-NEXT: ValueKind: ByValue 752 ; CHECK-NEXT: ValueType: I32 753 ; CHECK-NEXT: AccQual: Default 754 ; CHECK-NEXT: - Size: 8 755 ; CHECK-NEXT: Align: 8 756 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 757 ; CHECK-NEXT: ValueType: I64 758 ; CHECK-NEXT: - Size: 8 759 ; CHECK-NEXT: Align: 8 760 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 761 ; CHECK-NEXT: ValueType: I64 762 ; CHECK-NEXT: - Size: 8 763 ; CHECK-NEXT: Align: 8 764 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 765 ; CHECK-NEXT: ValueType: I64 766 ; CHECK-NEXT: - Size: 8 767 ; CHECK-NEXT: Align: 8 768 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 769 ; CHECK-NEXT: ValueType: I8 770 ; CHECK-NEXT: AddrSpaceQual: Global 771 define amdgpu_kernel void @test_vec_type_hint_float(i32 %a) #0 772 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3 773 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !27 { 774 ret void 775 } 776 777 ; CHECK: - Name: test_vec_type_hint_double 778 ; CHECK-NEXT: SymbolName: 'test_vec_type_hint_double@kd' 779 ; CHECK-NEXT: Language: OpenCL C 780 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 781 ; CHECK-NEXT: Attrs: 782 ; CHECK-NEXT: VecTypeHint: double 783 ; CHECK-NEXT: Args: 784 ; CHECK-NEXT: - Name: a 785 ; CHECK-NEXT: TypeName: int 786 ; CHECK-NEXT: Size: 4 787 ; CHECK-NEXT: Align: 4 788 ; CHECK-NEXT: ValueKind: ByValue 789 ; CHECK-NEXT: ValueType: I32 790 ; CHECK-NEXT: AccQual: Default 791 ; CHECK-NEXT: - Size: 8 792 ; CHECK-NEXT: Align: 8 793 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 794 ; CHECK-NEXT: ValueType: I64 795 ; CHECK-NEXT: - Size: 8 796 ; CHECK-NEXT: Align: 8 797 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 798 ; CHECK-NEXT: ValueType: I64 799 ; CHECK-NEXT: - Size: 8 800 ; CHECK-NEXT: Align: 8 801 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 802 ; CHECK-NEXT: ValueType: I64 803 ; CHECK-NEXT: - Size: 8 804 ; CHECK-NEXT: Align: 8 805 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 806 ; CHECK-NEXT: ValueType: I8 807 ; CHECK-NEXT: AddrSpaceQual: Global 808 define amdgpu_kernel void @test_vec_type_hint_double(i32 %a) #0 809 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3 810 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !28 { 811 ret void 812 } 813 814 ; CHECK: - Name: test_vec_type_hint_char 815 ; CHECK-NEXT: SymbolName: 'test_vec_type_hint_char@kd' 816 ; CHECK-NEXT: Language: OpenCL C 817 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 818 ; CHECK-NEXT: Attrs: 819 ; CHECK-NEXT: VecTypeHint: char 820 ; CHECK-NEXT: Args: 821 ; CHECK-NEXT: - Name: a 822 ; CHECK-NEXT: TypeName: int 823 ; CHECK-NEXT: Size: 4 824 ; CHECK-NEXT: Align: 4 825 ; CHECK-NEXT: ValueKind: ByValue 826 ; CHECK-NEXT: ValueType: I32 827 ; CHECK-NEXT: AccQual: Default 828 ; CHECK-NEXT: - Size: 8 829 ; CHECK-NEXT: Align: 8 830 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 831 ; CHECK-NEXT: ValueType: I64 832 ; CHECK-NEXT: - Size: 8 833 ; CHECK-NEXT: Align: 8 834 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 835 ; CHECK-NEXT: ValueType: I64 836 ; CHECK-NEXT: - Size: 8 837 ; CHECK-NEXT: Align: 8 838 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 839 ; CHECK-NEXT: ValueType: I64 840 ; CHECK-NEXT: - Size: 8 841 ; CHECK-NEXT: Align: 8 842 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 843 ; CHECK-NEXT: ValueType: I8 844 ; CHECK-NEXT: AddrSpaceQual: Global 845 define amdgpu_kernel void @test_vec_type_hint_char(i32 %a) #0 846 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3 847 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !29 { 848 ret void 849 } 850 851 ; CHECK: - Name: test_vec_type_hint_short 852 ; CHECK-NEXT: SymbolName: 'test_vec_type_hint_short@kd' 853 ; CHECK-NEXT: Language: OpenCL C 854 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 855 ; CHECK-NEXT: Attrs: 856 ; CHECK-NEXT: VecTypeHint: short 857 ; CHECK-NEXT: Args: 858 ; CHECK-NEXT: - Name: a 859 ; CHECK-NEXT: TypeName: int 860 ; CHECK-NEXT: Size: 4 861 ; CHECK-NEXT: Align: 4 862 ; CHECK-NEXT: ValueKind: ByValue 863 ; CHECK-NEXT: ValueType: I32 864 ; CHECK-NEXT: AccQual: Default 865 ; CHECK-NEXT: - Size: 8 866 ; CHECK-NEXT: Align: 8 867 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 868 ; CHECK-NEXT: ValueType: I64 869 ; CHECK-NEXT: - Size: 8 870 ; CHECK-NEXT: Align: 8 871 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 872 ; CHECK-NEXT: ValueType: I64 873 ; CHECK-NEXT: - Size: 8 874 ; CHECK-NEXT: Align: 8 875 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 876 ; CHECK-NEXT: ValueType: I64 877 ; CHECK-NEXT: - Size: 8 878 ; CHECK-NEXT: Align: 8 879 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 880 ; CHECK-NEXT: ValueType: I8 881 ; CHECK-NEXT: AddrSpaceQual: Global 882 define amdgpu_kernel void @test_vec_type_hint_short(i32 %a) #0 883 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3 884 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !30 { 885 ret void 886 } 887 888 ; CHECK: - Name: test_vec_type_hint_long 889 ; CHECK-NEXT: SymbolName: 'test_vec_type_hint_long@kd' 890 ; CHECK-NEXT: Language: OpenCL C 891 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 892 ; CHECK-NEXT: Attrs: 893 ; CHECK-NEXT: VecTypeHint: long 894 ; CHECK-NEXT: Args: 895 ; CHECK-NEXT: - Name: a 896 ; CHECK-NEXT: TypeName: int 897 ; CHECK-NEXT: Size: 4 898 ; CHECK-NEXT: Align: 4 899 ; CHECK-NEXT: ValueKind: ByValue 900 ; CHECK-NEXT: ValueType: I32 901 ; CHECK-NEXT: AccQual: Default 902 ; CHECK-NEXT: - Size: 8 903 ; CHECK-NEXT: Align: 8 904 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 905 ; CHECK-NEXT: ValueType: I64 906 ; CHECK-NEXT: - Size: 8 907 ; CHECK-NEXT: Align: 8 908 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 909 ; CHECK-NEXT: ValueType: I64 910 ; CHECK-NEXT: - Size: 8 911 ; CHECK-NEXT: Align: 8 912 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 913 ; CHECK-NEXT: ValueType: I64 914 ; CHECK-NEXT: - Size: 8 915 ; CHECK-NEXT: Align: 8 916 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 917 ; CHECK-NEXT: ValueType: I8 918 ; CHECK-NEXT: AddrSpaceQual: Global 919 define amdgpu_kernel void @test_vec_type_hint_long(i32 %a) #0 920 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3 921 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !31 { 922 ret void 923 } 924 925 ; CHECK: - Name: test_vec_type_hint_unknown 926 ; CHECK-NEXT: SymbolName: 'test_vec_type_hint_unknown@kd' 927 ; CHECK-NEXT: Language: OpenCL C 928 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 929 ; CHECK-NEXT: Attrs: 930 ; CHECK-NEXT: VecTypeHint: unknown 931 ; CHECK-NEXT: Args: 932 ; CHECK-NEXT: - Name: a 933 ; CHECK-NEXT: TypeName: int 934 ; CHECK-NEXT: Size: 4 935 ; CHECK-NEXT: Align: 4 936 ; CHECK-NEXT: ValueKind: ByValue 937 ; CHECK-NEXT: ValueType: I32 938 ; CHECK-NEXT: AccQual: Default 939 ; CHECK-NEXT: - Size: 8 940 ; CHECK-NEXT: Align: 8 941 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 942 ; CHECK-NEXT: ValueType: I64 943 ; CHECK-NEXT: - Size: 8 944 ; CHECK-NEXT: Align: 8 945 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 946 ; CHECK-NEXT: ValueType: I64 947 ; CHECK-NEXT: - Size: 8 948 ; CHECK-NEXT: Align: 8 949 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 950 ; CHECK-NEXT: ValueType: I64 951 ; CHECK-NEXT: - Size: 8 952 ; CHECK-NEXT: Align: 8 953 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 954 ; CHECK-NEXT: ValueType: I8 955 ; CHECK-NEXT: AddrSpaceQual: Global 956 define amdgpu_kernel void @test_vec_type_hint_unknown(i32 %a) #0 957 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3 958 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !32 { 959 ret void 960 } 961 962 ; CHECK: - Name: test_reqd_wgs_vec_type_hint 963 ; CHECK-NEXT: SymbolName: 'test_reqd_wgs_vec_type_hint@kd' 964 ; CHECK-NEXT: Language: OpenCL C 965 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 966 ; CHECK-NEXT: Attrs: 967 ; CHECK-NEXT: ReqdWorkGroupSize: [ 1, 2, 4 ] 968 ; CHECK-NEXT: VecTypeHint: int 969 ; CHECK-NEXT: Args: 970 ; CHECK-NEXT: - Name: a 971 ; CHECK-NEXT: TypeName: int 972 ; CHECK-NEXT: Size: 4 973 ; CHECK-NEXT: Align: 4 974 ; CHECK-NEXT: ValueKind: ByValue 975 ; CHECK-NEXT: ValueType: I32 976 ; CHECK-NEXT: AccQual: Default 977 ; CHECK-NEXT: - Size: 8 978 ; CHECK-NEXT: Align: 8 979 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 980 ; CHECK-NEXT: ValueType: I64 981 ; CHECK-NEXT: - Size: 8 982 ; CHECK-NEXT: Align: 8 983 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 984 ; CHECK-NEXT: ValueType: I64 985 ; CHECK-NEXT: - Size: 8 986 ; CHECK-NEXT: Align: 8 987 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 988 ; CHECK-NEXT: ValueType: I64 989 ; CHECK-NEXT: - Size: 8 990 ; CHECK-NEXT: Align: 8 991 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 992 ; CHECK-NEXT: ValueType: I8 993 ; CHECK-NEXT: AddrSpaceQual: Global 994 define amdgpu_kernel void @test_reqd_wgs_vec_type_hint(i32 %a) #0 995 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3 996 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !5 997 !reqd_work_group_size !6 { 998 ret void 999 } 1000 1001 ; CHECK: - Name: test_wgs_hint_vec_type_hint 1002 ; CHECK-NEXT: SymbolName: 'test_wgs_hint_vec_type_hint@kd' 1003 ; CHECK-NEXT: Language: OpenCL C 1004 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 1005 ; CHECK-NEXT: Attrs: 1006 ; CHECK-NEXT: WorkGroupSizeHint: [ 8, 16, 32 ] 1007 ; CHECK-NEXT: VecTypeHint: uint4 1008 ; CHECK-NEXT: Args: 1009 ; CHECK-NEXT: - Name: a 1010 ; CHECK-NEXT: TypeName: int 1011 ; CHECK-NEXT: Size: 4 1012 ; CHECK-NEXT: Align: 4 1013 ; CHECK-NEXT: ValueKind: ByValue 1014 ; CHECK-NEXT: ValueType: I32 1015 ; CHECK-NEXT: AccQual: Default 1016 ; CHECK-NEXT: - Size: 8 1017 ; CHECK-NEXT: Align: 8 1018 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 1019 ; CHECK-NEXT: ValueType: I64 1020 ; CHECK-NEXT: - Size: 8 1021 ; CHECK-NEXT: Align: 8 1022 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 1023 ; CHECK-NEXT: ValueType: I64 1024 ; CHECK-NEXT: - Size: 8 1025 ; CHECK-NEXT: Align: 8 1026 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 1027 ; CHECK-NEXT: ValueType: I64 1028 ; CHECK-NEXT: - Size: 8 1029 ; CHECK-NEXT: Align: 8 1030 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 1031 ; CHECK-NEXT: ValueType: I8 1032 ; CHECK-NEXT: AddrSpaceQual: Global 1033 define amdgpu_kernel void @test_wgs_hint_vec_type_hint(i32 %a) #0 1034 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3 1035 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !7 1036 !work_group_size_hint !8 { 1037 ret void 1038 } 1039 1040 ; CHECK: - Name: test_arg_ptr_to_ptr 1041 ; CHECK-NEXT: SymbolName: 'test_arg_ptr_to_ptr@kd' 1042 ; CHECK-NEXT: Language: OpenCL C 1043 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 1044 ; CHECK-NEXT: Args: 1045 ; CHECK-NEXT: - Name: a 1046 ; CHECK-NEXT: TypeName: 'int addrspace(5)* addrspace(5)*' 1047 ; CHECK-NEXT: Size: 8 1048 ; CHECK-NEXT: Align: 8 1049 ; CHECK-NEXT: ValueKind: GlobalBuffer 1050 ; CHECK-NEXT: ValueType: I32 1051 ; CHECK-NEXT: AddrSpaceQual: Global 1052 ; CHECK-NEXT: AccQual: Default 1053 ; CHECK-NEXT: - Size: 8 1054 ; CHECK-NEXT: Align: 8 1055 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 1056 ; CHECK-NEXT: ValueType: I64 1057 ; CHECK-NEXT: - Size: 8 1058 ; CHECK-NEXT: Align: 8 1059 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 1060 ; CHECK-NEXT: ValueType: I64 1061 ; CHECK-NEXT: - Size: 8 1062 ; CHECK-NEXT: Align: 8 1063 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 1064 ; CHECK-NEXT: ValueType: I64 1065 ; CHECK-NEXT: - Size: 8 1066 ; CHECK-NEXT: Align: 8 1067 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 1068 ; CHECK-NEXT: ValueType: I8 1069 ; CHECK-NEXT: AddrSpaceQual: Global 1070 define amdgpu_kernel void @test_arg_ptr_to_ptr(i32 addrspace(5)* addrspace(1)* %a) #0 1071 !kernel_arg_addr_space !81 !kernel_arg_access_qual !2 !kernel_arg_type !80 1072 !kernel_arg_base_type !80 !kernel_arg_type_qual !4 { 1073 ret void 1074 } 1075 1076 ; CHECK: - Name: test_arg_struct_contains_ptr 1077 ; CHECK-NEXT: SymbolName: 'test_arg_struct_contains_ptr@kd' 1078 ; CHECK-NEXT: Language: OpenCL C 1079 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 1080 ; CHECK-NEXT: Args: 1081 ; CHECK-NEXT: - Name: a 1082 ; CHECK-NEXT: TypeName: struct B 1083 ; CHECK-NEXT: Size: 4 1084 ; CHECK-NEXT: Align: 4 1085 ; CHECK-NEXT: ValueKind: GlobalBuffer 1086 ; CHECK-NEXT: ValueType: Struct 1087 ; CHECK-NEXT: AddrSpaceQual: Private 1088 ; CHECK-NEXT: AccQual: Default 1089 ; CHECK-NEXT: - Size: 8 1090 ; CHECK-NEXT: Align: 8 1091 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 1092 ; CHECK-NEXT: ValueType: I64 1093 ; CHECK-NEXT: - Size: 8 1094 ; CHECK-NEXT: Align: 8 1095 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 1096 ; CHECK-NEXT: ValueType: I64 1097 ; CHECK-NEXT: - Size: 8 1098 ; CHECK-NEXT: Align: 8 1099 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 1100 ; CHECK-NEXT: ValueType: I64 1101 ; CHECK-NEXT: - Size: 8 1102 ; CHECK-NEXT: Align: 8 1103 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 1104 ; CHECK-NEXT: ValueType: I8 1105 ; CHECK-NEXT: AddrSpaceQual: Global 1106 define amdgpu_kernel void @test_arg_struct_contains_ptr(%struct.B addrspace(5)* byval %a) #0 1107 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !82 1108 !kernel_arg_base_type !82 !kernel_arg_type_qual !4 { 1109 ret void 1110 } 1111 1112 ; CHECK: - Name: test_arg_vector_of_ptr 1113 ; CHECK-NEXT: SymbolName: 'test_arg_vector_of_ptr@kd' 1114 ; CHECK-NEXT: Language: OpenCL C 1115 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 1116 ; CHECK-NEXT: Args: 1117 ; CHECK-NEXT: - Name: a 1118 ; CHECK-NEXT: TypeName: 'global int addrspace(5)* __attribute__((ext_vector_type(2)))' 1119 ; CHECK-NEXT: Size: 16 1120 ; CHECK-NEXT: Align: 16 1121 ; CHECK-NEXT: ValueKind: ByValue 1122 ; CHECK-NEXT: ValueType: I32 1123 ; CHECK-NEXT: AccQual: Default 1124 ; CHECK-NEXT: - Size: 8 1125 ; CHECK-NEXT: Align: 8 1126 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 1127 ; CHECK-NEXT: ValueType: I64 1128 ; CHECK-NEXT: - Size: 8 1129 ; CHECK-NEXT: Align: 8 1130 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 1131 ; CHECK-NEXT: ValueType: I64 1132 ; CHECK-NEXT: - Size: 8 1133 ; CHECK-NEXT: Align: 8 1134 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 1135 ; CHECK-NEXT: ValueType: I64 1136 ; CHECK-NEXT: - Size: 8 1137 ; CHECK-NEXT: Align: 8 1138 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 1139 ; CHECK-NEXT: ValueType: I8 1140 ; CHECK-NEXT: AddrSpaceQual: Global 1141 define amdgpu_kernel void @test_arg_vector_of_ptr(<2 x i32 addrspace(1)*> %a) #0 1142 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !83 1143 !kernel_arg_base_type !83 !kernel_arg_type_qual !4 { 1144 ret void 1145 } 1146 1147 ; CHECK: - Name: test_arg_unknown_builtin_type 1148 ; CHECK-NEXT: SymbolName: 'test_arg_unknown_builtin_type@kd' 1149 ; CHECK-NEXT: Language: OpenCL C 1150 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 1151 ; CHECK-NEXT: Args: 1152 ; CHECK-NEXT: - Name: a 1153 ; CHECK-NEXT: TypeName: clk_event_t 1154 ; CHECK-NEXT: Size: 8 1155 ; CHECK-NEXT: Align: 8 1156 ; CHECK-NEXT: ValueKind: GlobalBuffer 1157 ; CHECK-NEXT: ValueType: Struct 1158 ; CHECK-NEXT: AddrSpaceQual: Global 1159 ; CHECK-NEXT: AccQual: Default 1160 ; CHECK-NEXT: - Size: 8 1161 ; CHECK-NEXT: Align: 8 1162 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 1163 ; CHECK-NEXT: ValueType: I64 1164 ; CHECK-NEXT: - Size: 8 1165 ; CHECK-NEXT: Align: 8 1166 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 1167 ; CHECK-NEXT: ValueType: I64 1168 ; CHECK-NEXT: - Size: 8 1169 ; CHECK-NEXT: Align: 8 1170 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 1171 ; CHECK-NEXT: ValueType: I64 1172 ; CHECK-NEXT: - Size: 8 1173 ; CHECK-NEXT: Align: 8 1174 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 1175 ; CHECK-NEXT: ValueType: I8 1176 ; CHECK-NEXT: AddrSpaceQual: Global 1177 define amdgpu_kernel void @test_arg_unknown_builtin_type( 1178 %opencl.clk_event_t addrspace(1)* %a) #0 1179 !kernel_arg_addr_space !81 !kernel_arg_access_qual !2 !kernel_arg_type !84 1180 !kernel_arg_base_type !84 !kernel_arg_type_qual !4 { 1181 ret void 1182 } 1183 1184 ; CHECK: - Name: test_pointee_align 1185 ; CHECK-NEXT: SymbolName: 'test_pointee_align@kd' 1186 ; CHECK-NEXT: Language: OpenCL C 1187 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 1188 ; CHECK-NEXT: Args: 1189 ; CHECK-NEXT: - Name: a 1190 ; CHECK-NEXT: TypeName: 'long addrspace(5)*' 1191 ; CHECK-NEXT: Size: 8 1192 ; CHECK-NEXT: Align: 8 1193 ; CHECK-NEXT: ValueKind: GlobalBuffer 1194 ; CHECK-NEXT: ValueType: I64 1195 ; CHECK-NEXT: AddrSpaceQual: Global 1196 ; CHECK-NEXT: AccQual: Default 1197 ; CHECK-NEXT: - Name: b 1198 ; CHECK-NEXT: TypeName: 'char addrspace(5)*' 1199 ; CHECK-NEXT: Size: 4 1200 ; CHECK-NEXT: Align: 4 1201 ; CHECK-NEXT: ValueKind: DynamicSharedPointer 1202 ; CHECK-NEXT: ValueType: I8 1203 ; CHECK-NEXT: PointeeAlign: 1 1204 ; CHECK-NEXT: AddrSpaceQual: Local 1205 ; CHECK-NEXT: AccQual: Default 1206 ; CHECK-NEXT: - Name: c 1207 ; CHECK-NEXT: TypeName: 'char2 addrspace(5)*' 1208 ; CHECK-NEXT: Size: 4 1209 ; CHECK-NEXT: Align: 4 1210 ; CHECK-NEXT: ValueKind: DynamicSharedPointer 1211 ; CHECK-NEXT: ValueType: I8 1212 ; CHECK-NEXT: PointeeAlign: 2 1213 ; CHECK-NEXT: AddrSpaceQual: Local 1214 ; CHECK-NEXT: AccQual: Default 1215 ; CHECK-NEXT: - Name: d 1216 ; CHECK-NEXT: TypeName: 'char3 addrspace(5)*' 1217 ; CHECK-NEXT: Size: 4 1218 ; CHECK-NEXT: Align: 4 1219 ; CHECK-NEXT: ValueKind: DynamicSharedPointer 1220 ; CHECK-NEXT: ValueType: I8 1221 ; CHECK-NEXT: PointeeAlign: 4 1222 ; CHECK-NEXT: AddrSpaceQual: Local 1223 ; CHECK-NEXT: AccQual: Default 1224 ; CHECK-NEXT: - Name: e 1225 ; CHECK-NEXT: TypeName: 'char4 addrspace(5)*' 1226 ; CHECK-NEXT: Size: 4 1227 ; CHECK-NEXT: Align: 4 1228 ; CHECK-NEXT: ValueKind: DynamicSharedPointer 1229 ; CHECK-NEXT: ValueType: I8 1230 ; CHECK-NEXT: PointeeAlign: 4 1231 ; CHECK-NEXT: AddrSpaceQual: Local 1232 ; CHECK-NEXT: AccQual: Default 1233 ; CHECK-NEXT: - Name: f 1234 ; CHECK-NEXT: TypeName: 'char8 addrspace(5)*' 1235 ; CHECK-NEXT: Size: 4 1236 ; CHECK-NEXT: Align: 4 1237 ; CHECK-NEXT: ValueKind: DynamicSharedPointer 1238 ; CHECK-NEXT: ValueType: I8 1239 ; CHECK-NEXT: PointeeAlign: 8 1240 ; CHECK-NEXT: AddrSpaceQual: Local 1241 ; CHECK-NEXT: AccQual: Default 1242 ; CHECK-NEXT: - Name: g 1243 ; CHECK-NEXT: TypeName: 'char16 addrspace(5)*' 1244 ; CHECK-NEXT: Size: 4 1245 ; CHECK-NEXT: Align: 4 1246 ; CHECK-NEXT: ValueKind: DynamicSharedPointer 1247 ; CHECK-NEXT: ValueType: I8 1248 ; CHECK-NEXT: PointeeAlign: 16 1249 ; CHECK-NEXT: AddrSpaceQual: Local 1250 ; CHECK-NEXT: AccQual: Default 1251 ; CHECK-NEXT: - Name: h 1252 ; CHECK-NEXT: Size: 4 1253 ; CHECK-NEXT: Align: 4 1254 ; CHECK-NEXT: ValueKind: DynamicSharedPointer 1255 ; CHECK-NEXT: ValueType: Struct 1256 ; CHECK-NEXT: PointeeAlign: 1 1257 ; CHECK-NEXT: AddrSpaceQual: Local 1258 ; CHECK-NEXT: - Size: 8 1259 ; CHECK-NEXT: Align: 8 1260 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 1261 ; CHECK-NEXT: ValueType: I64 1262 ; CHECK-NEXT: - Size: 8 1263 ; CHECK-NEXT: Align: 8 1264 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 1265 ; CHECK-NEXT: ValueType: I64 1266 ; CHECK-NEXT: - Size: 8 1267 ; CHECK-NEXT: Align: 8 1268 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 1269 ; CHECK-NEXT: ValueType: I64 1270 ; CHECK-NEXT: - Size: 8 1271 ; CHECK-NEXT: Align: 8 1272 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 1273 ; CHECK-NEXT: ValueType: I8 1274 ; CHECK-NEXT: AddrSpaceQual: Global 1275 define amdgpu_kernel void @test_pointee_align(i64 addrspace(1)* %a, 1276 i8 addrspace(3)* %b, 1277 <2 x i8> addrspace(3)* %c, 1278 <3 x i8> addrspace(3)* %d, 1279 <4 x i8> addrspace(3)* %e, 1280 <8 x i8> addrspace(3)* %f, 1281 <16 x i8> addrspace(3)* %g, 1282 {} addrspace(3)* %h) #0 1283 !kernel_arg_addr_space !91 !kernel_arg_access_qual !92 !kernel_arg_type !93 1284 !kernel_arg_base_type !93 !kernel_arg_type_qual !94 { 1285 ret void 1286 } 1287 1288 ; CHECK: - Name: test_pointee_align_attribute 1289 ; CHECK-NEXT: SymbolName: 'test_pointee_align_attribute@kd' 1290 ; CHECK-NEXT: Language: OpenCL C 1291 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 1292 ; CHECK-NEXT: Args: 1293 ; CHECK-NEXT: - Name: a 1294 ; CHECK-NEXT: TypeName: 'long addrspace(5)*' 1295 ; CHECK-NEXT: Size: 8 1296 ; CHECK-NEXT: Align: 8 1297 ; CHECK-NEXT: ValueKind: GlobalBuffer 1298 ; CHECK-NEXT: ValueType: I64 1299 ; CHECK-NEXT: AddrSpaceQual: Global 1300 ; CHECK-NEXT: AccQual: Default 1301 ; CHECK-NEXT: - Name: b 1302 ; CHECK-NEXT: TypeName: 'char addrspace(5)*' 1303 ; CHECK-NEXT: Size: 4 1304 ; CHECK-NEXT: Align: 4 1305 ; CHECK-NEXT: ValueKind: DynamicSharedPointer 1306 ; CHECK-NEXT: ValueType: I8 1307 ; CHECK-NEXT: PointeeAlign: 8 1308 ; CHECK-NEXT: AddrSpaceQual: Local 1309 ; CHECK-NEXT: AccQual: Default 1310 ; CHECK-NEXT: - Name: c 1311 ; CHECK-NEXT: TypeName: 'char2 addrspace(5)*' 1312 ; CHECK-NEXT: Size: 4 1313 ; CHECK-NEXT: Align: 4 1314 ; CHECK-NEXT: ValueKind: DynamicSharedPointer 1315 ; CHECK-NEXT: ValueType: I8 1316 ; CHECK-NEXT: PointeeAlign: 32 1317 ; CHECK-NEXT: AddrSpaceQual: Local 1318 ; CHECK-NEXT: AccQual: Default 1319 ; CHECK-NEXT: - Name: d 1320 ; CHECK-NEXT: TypeName: 'char3 addrspace(5)*' 1321 ; CHECK-NEXT: Size: 4 1322 ; CHECK-NEXT: Align: 4 1323 ; CHECK-NEXT: ValueKind: DynamicSharedPointer 1324 ; CHECK-NEXT: ValueType: I8 1325 ; CHECK-NEXT: PointeeAlign: 64 1326 ; CHECK-NEXT: AddrSpaceQual: Local 1327 ; CHECK-NEXT: AccQual: Default 1328 ; CHECK-NEXT: - Name: e 1329 ; CHECK-NEXT: TypeName: 'char4 addrspace(5)*' 1330 ; CHECK-NEXT: Size: 4 1331 ; CHECK-NEXT: Align: 4 1332 ; CHECK-NEXT: ValueKind: DynamicSharedPointer 1333 ; CHECK-NEXT: ValueType: I8 1334 ; CHECK-NEXT: PointeeAlign: 256 1335 ; CHECK-NEXT: AddrSpaceQual: Local 1336 ; CHECK-NEXT: AccQual: Default 1337 ; CHECK-NEXT: - Name: f 1338 ; CHECK-NEXT: TypeName: 'char8 addrspace(5)*' 1339 ; CHECK-NEXT: Size: 4 1340 ; CHECK-NEXT: Align: 4 1341 ; CHECK-NEXT: ValueKind: DynamicSharedPointer 1342 ; CHECK-NEXT: ValueType: I8 1343 ; CHECK-NEXT: PointeeAlign: 128 1344 ; CHECK-NEXT: AddrSpaceQual: Local 1345 ; CHECK-NEXT: AccQual: Default 1346 ; CHECK-NEXT: - Name: g 1347 ; CHECK-NEXT: TypeName: 'char16 addrspace(5)*' 1348 ; CHECK-NEXT: Size: 4 1349 ; CHECK-NEXT: Align: 4 1350 ; CHECK-NEXT: ValueKind: DynamicSharedPointer 1351 ; CHECK-NEXT: ValueType: I8 1352 ; CHECK-NEXT: PointeeAlign: 1024 1353 ; CHECK-NEXT: AddrSpaceQual: Local 1354 ; CHECK-NEXT: AccQual: Default 1355 ; CHECK-NEXT: - Name: h 1356 ; CHECK-NEXT: Size: 4 1357 ; CHECK-NEXT: Align: 4 1358 ; CHECK-NEXT: ValueKind: DynamicSharedPointer 1359 ; CHECK-NEXT: ValueType: Struct 1360 ; CHECK-NEXT: PointeeAlign: 16 1361 ; CHECK-NEXT: AddrSpaceQual: Local 1362 ; CHECK-NEXT: - Size: 8 1363 ; CHECK-NEXT: Align: 8 1364 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 1365 ; CHECK-NEXT: ValueType: I64 1366 ; CHECK-NEXT: - Size: 8 1367 ; CHECK-NEXT: Align: 8 1368 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 1369 ; CHECK-NEXT: ValueType: I64 1370 ; CHECK-NEXT: - Size: 8 1371 ; CHECK-NEXT: Align: 8 1372 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 1373 ; CHECK-NEXT: ValueType: I64 1374 ; CHECK-NEXT: - Size: 8 1375 ; CHECK-NEXT: Align: 8 1376 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 1377 ; CHECK-NEXT: ValueType: I8 1378 ; CHECK-NEXT: AddrSpaceQual: Global 1379 define amdgpu_kernel void @test_pointee_align_attribute(i64 addrspace(1)* align 16 %a, 1380 i8 addrspace(3)* align 8 %b, 1381 <2 x i8> addrspace(3)* align 32 %c, 1382 <3 x i8> addrspace(3)* align 64 %d, 1383 <4 x i8> addrspace(3)* align 256 %e, 1384 <8 x i8> addrspace(3)* align 128 %f, 1385 <16 x i8> addrspace(3)* align 1024 %g, 1386 {} addrspace(3)* align 16 %h) #0 1387 !kernel_arg_addr_space !91 !kernel_arg_access_qual !92 !kernel_arg_type !93 1388 !kernel_arg_base_type !93 !kernel_arg_type_qual !94 { 1389 ret void 1390 } 1391 1392 1393 ; CHECK: - Name: __test_block_invoke_kernel 1394 ; CHECK-NEXT: SymbolName: '__test_block_invoke_kernel@kd' 1395 ; CHECK-NEXT: Language: OpenCL C 1396 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 1397 ; CHECK-NEXT: Attrs: 1398 ; CHECK-NEXT: RuntimeHandle: __test_block_invoke_kernel_runtime_handle 1399 ; CHECK-NEXT: Args: 1400 ; CHECK-NEXT: - Name: arg 1401 ; CHECK-NEXT: TypeName: __block_literal 1402 ; CHECK-NEXT: Size: 25 1403 ; CHECK-NEXT: Align: 1 1404 ; CHECK-NEXT: ValueKind: ByValue 1405 ; CHECK-NEXT: ValueType: Struct 1406 ; CHECK-NEXT: AccQual: Default 1407 ; CHECK-NEXT: - Size: 8 1408 ; CHECK-NEXT: Align: 8 1409 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 1410 ; CHECK-NEXT: ValueType: I64 1411 ; CHECK-NEXT: - Size: 8 1412 ; CHECK-NEXT: Align: 8 1413 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 1414 ; CHECK-NEXT: ValueType: I64 1415 ; CHECK-NEXT: - Size: 8 1416 ; CHECK-NEXT: Align: 8 1417 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 1418 ; CHECK-NEXT: ValueType: I64 1419 ; CHECK-NEXT: - Size: 8 1420 ; CHECK-NEXT: Align: 8 1421 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 1422 ; CHECK-NEXT: ValueType: I8 1423 ; CHECK-NEXT: AddrSpaceQual: Global 1424 define amdgpu_kernel void @__test_block_invoke_kernel( 1425 <{ i32, i32, i8*, i8 addrspace(1)*, i8 }> %arg) #1 1426 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !110 1427 !kernel_arg_base_type !110 !kernel_arg_type_qual !4 { 1428 ret void 1429 } 1430 1431 ; CHECK: - Name: test_enqueue_kernel_caller 1432 ; CHECK-NEXT: SymbolName: 'test_enqueue_kernel_caller@kd' 1433 ; CHECK-NEXT: Language: OpenCL C 1434 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ] 1435 ; CHECK-NEXT: Args: 1436 ; CHECK-NEXT: - Name: a 1437 ; CHECK-NEXT: TypeName: char 1438 ; CHECK-NEXT: Size: 1 1439 ; CHECK-NEXT: Align: 1 1440 ; CHECK-NEXT: ValueKind: ByValue 1441 ; CHECK-NEXT: ValueType: I8 1442 ; CHECK-NEXT: AccQual: Default 1443 ; CHECK-NEXT: - Size: 8 1444 ; CHECK-NEXT: Align: 8 1445 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX 1446 ; CHECK-NEXT: ValueType: I64 1447 ; CHECK-NEXT: - Size: 8 1448 ; CHECK-NEXT: Align: 8 1449 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY 1450 ; CHECK-NEXT: ValueType: I64 1451 ; CHECK-NEXT: - Size: 8 1452 ; CHECK-NEXT: Align: 8 1453 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ 1454 ; CHECK-NEXT: ValueType: I64 1455 ; CHECK-NEXT: - Size: 8 1456 ; CHECK-NEXT: Align: 8 1457 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer 1458 ; CHECK-NEXT: ValueType: I8 1459 ; CHECK-NEXT: AddrSpaceQual: Global 1460 ; CHECK-NEXT: - Size: 8 1461 ; CHECK-NEXT: Align: 8 1462 ; CHECK-NEXT: ValueKind: HiddenDefaultQueue 1463 ; CHECK-NEXT: ValueType: I8 1464 ; CHECK-NEXT: AddrSpaceQual: Global 1465 ; CHECK-NEXT: - Size: 8 1466 ; CHECK-NEXT: Align: 8 1467 ; CHECK-NEXT: ValueKind: HiddenCompletionAction 1468 ; CHECK-NEXT: ValueType: I8 1469 ; CHECK-NEXT: AddrSpaceQual: Global 1470 define amdgpu_kernel void @test_enqueue_kernel_caller(i8 %a) #2 1471 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !9 1472 !kernel_arg_base_type !9 !kernel_arg_type_qual !4 { 1473 ret void 1474 } 1475 1476 attributes #0 = { "amdgpu-implicitarg-num-bytes"="48" } 1477 attributes #1 = { "amdgpu-implicitarg-num-bytes"="48" "runtime-handle"="__test_block_invoke_kernel_runtime_handle" } 1478 attributes #2 = { "amdgpu-implicitarg-num-bytes"="48" "calls-enqueue-kernel" } 1479 1480 !llvm.printf.fmts = !{!100, !101} 1481 1482 !1 = !{i32 0} 1483 !2 = !{!"none"} 1484 !3 = !{!"int"} 1485 !4 = !{!""} 1486 !5 = !{i32 undef, i32 1} 1487 !6 = !{i32 1, i32 2, i32 4} 1488 !7 = !{<4 x i32> undef, i32 0} 1489 !8 = !{i32 8, i32 16, i32 32} 1490 !9 = !{!"char"} 1491 !10 = !{!"ushort2"} 1492 !11 = !{!"int3"} 1493 !12 = !{!"ulong4"} 1494 !13 = !{!"half8"} 1495 !14 = !{!"float16"} 1496 !15 = !{!"double16"} 1497 !16 = !{!"int addrspace(5)*"} 1498 !17 = !{!"image2d_t"} 1499 !18 = !{!"sampler_t"} 1500 !19 = !{!"queue_t"} 1501 !20 = !{!"struct A"} 1502 !21 = !{!"i128"} 1503 !22 = !{i32 0, i32 0, i32 0} 1504 !23 = !{!"none", !"none", !"none"} 1505 !24 = !{!"int", !"short2", !"char3"} 1506 !25 = !{!"", !"", !""} 1507 !26 = !{half undef, i32 1} 1508 !27 = !{float undef, i32 1} 1509 !28 = !{double undef, i32 1} 1510 !29 = !{i8 undef, i32 1} 1511 !30 = !{i16 undef, i32 1} 1512 !31 = !{i64 undef, i32 1} 1513 !32 = !{i32 addrspace(5)*undef, i32 1} 1514 !50 = !{i32 1, i32 2, i32 3} 1515 !51 = !{!"int addrspace(5)*", !"int addrspace(5)*", !"int addrspace(5)*"} 1516 !60 = !{i32 1, i32 1, i32 1} 1517 !61 = !{!"read_only", !"write_only", !"read_write"} 1518 !62 = !{!"image1d_t", !"image2d_t", !"image3d_t"} 1519 !70 = !{!"volatile", !"const restrict", !"pipe"} 1520 !80 = !{!"int addrspace(5)* addrspace(5)*"} 1521 !81 = !{i32 1} 1522 !82 = !{!"struct B"} 1523 !83 = !{!"global int addrspace(5)* __attribute__((ext_vector_type(2)))"} 1524 !84 = !{!"clk_event_t"} 1525 !opencl.ocl.version = !{!90} 1526 !90 = !{i32 2, i32 0} 1527 !91 = !{i32 0, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3} 1528 !92 = !{!"none", !"none", !"none", !"none", !"none", !"none", !"none"} 1529 !93 = !{!"long addrspace(5)*", !"char addrspace(5)*", !"char2 addrspace(5)*", !"char3 addrspace(5)*", !"char4 addrspace(5)*", !"char8 addrspace(5)*", !"char16 addrspace(5)*"} 1530 !94 = !{!"", !"", !"", !"", !"", !"", !""} 1531 !100 = !{!"1:1:4:%d\5Cn"} 1532 !101 = !{!"2:1:8:%g\5Cn"} 1533 !110 = !{!"__block_literal"} 1534 1535 ; PARSER: AMDGPU HSA Metadata Parser Test: PASS 1536