1 // REQUIRES
: amdgpu-registered-target
2 // RUN
: %clang -cl-std
=CL2.0 -emit-llvm -g -O0 -S -nogpulib -target amdgcn-amd-amdhsa -mcpu
=fiji -o - %s | FileCheck %s
3 // RUN
: %clang -cl-std
=CL2.0 -emit-llvm -g -O0 -S -nogpulib -target amdgcn-amd-amdhsa-opencl -mcpu
=fiji -o - %s | FileCheck %s
5 // CHECK-DAG
: ![[DWARF_ADDRESS_SPACE_NONE
:[0-
9]+]] = !DIDerivedType
(tag: DW_TAG_pointer_type
, baseType
: !{{[0-
9]+}}, size
: {{[0-
9]+}})
6 // CHECK-DAG
: ![[DWARF_ADDRESS_SPACE_LOCAL
:[0-
9]+]] = !DIDerivedType
(tag: DW_TAG_pointer_type
, baseType
: !{{[0-
9]+}}, size
: {{[0-
9]+}}, dwarfAddressSpace
: 2)
7 // CHECK-DAG
: ![[DWARF_ADDRESS_SPACE_PRIVATE
:[0-
9]+]] = !DIDerivedType
(tag: DW_TAG_pointer_type
, baseType
: !{{[0-
9]+}}, size
: {{[0-
9]+}}, dwarfAddressSpace
: 1)
9 // CHECK-DAG
: distinct
!DIGlobalVariable
(name: "FileVar0", scope
: !{{[0-
9]+}}, file
: !{{[0-
9]+}}, line
: {{[0-
9]+}}, type
: ![[DWARF_ADDRESS_SPACE_NONE]], isLocal: false, isDefinition: true)
11 // CHECK-DAG: distinct !DIGlobalVariable(name: "FileVar1", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_NONE]], isLocal
: false
, isDefinition
: true
)
12 constant int
*FileVar1
;
13 // CHECK-DAG
: distinct
!DIGlobalVariable
(name: "FileVar2", scope
: !{{[0-
9]+}}, file
: !{{[0-
9]+}}, line
: {{[0-
9]+}}, type
: ![[DWARF_ADDRESS_SPACE_LOCAL]], isLocal: false, isDefinition: true)
15 // CHECK-DAG: distinct !DIGlobalVariable(name: "FileVar3", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_PRIVATE]], isLocal: false, isDefinition: true)
16 private int *FileVar3;
17 // CHECK-DAG: distinct !DIGlobalVariable(name: "FileVar4", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_NONE]], isLocal: false, isDefinition: true)
20 // CHECK-DAG: distinct !DIGlobalVariable(name: "FileVar5", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_NONE]], isLocal: false, isDefinition: true)
21 global int *global FileVar5;
22 // CHECK-DAG: distinct !DIGlobalVariable(name: "FileVar6", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_NONE]], isLocal: false, isDefinition: true)
23 constant int *global FileVar6;
24 // CHECK-DAG: distinct !DIGlobalVariable(name: "FileVar7", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_LOCAL]], isLocal
: false
, isDefinition
: true
)
25 local int
*global FileVar7
;
26 // CHECK-DAG
: distinct
!DIGlobalVariable
(name: "FileVar8", scope
: !{{[0-
9]+}}, file
: !{{[0-
9]+}}, line
: {{[0-
9]+}}, type
: ![[DWARF_ADDRESS_SPACE_PRIVATE]], isLocal: false, isDefinition: true)
27 private int *global FileVar8;
28 // CHECK-DAG: distinct !DIGlobalVariable(name: "FileVar9", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_NONE]], isLocal: false, isDefinition: true)
31 // CHECK-DAG: distinct !DIGlobalVariable(name: "FileVar10", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_NONE]], isLocal: false, isDefinition: true)
32 global int *constant FileVar10 = 0;
33 // CHECK-DAG: distinct !DIGlobalVariable(name: "FileVar11", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_NONE]], isLocal: false, isDefinition: true)
34 constant int *constant FileVar11 = 0;
35 // CHECK-DAG: distinct !DIGlobalVariable(name: "FileVar12", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_LOCAL]], isLocal: false, isDefinition: true)
36 local int *constant FileVar12 = 0;
37 // CHECK-DAG: distinct !DIGlobalVariable(name: "FileVar13", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_PRIVATE]], isLocal
: false
, isDefinition
: true
)
38 private int
*constant FileVar13
= 0;
39 // CHECK-DAG
: distinct
!DIGlobalVariable
(name: "FileVar14", scope
: !{{[0-
9]+}}, file
: !{{[0-
9]+}}, line
: {{[0-
9]+}}, type
: ![[DWARF_ADDRESS_SPACE_NONE]], isLocal: false, isDefinition: true)
40 int *constant FileVar14 = 0;
43 // CHECK-DAG: !DILocalVariable(name: "KernelArg0", arg: {{[0-9]+}}, scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_NONE]])
44 global int
*KernelArg0
,
45 // CHECK-DAG
: !DILocalVariable
(name: "KernelArg1", arg
: {{[0-
9]+}}, scope
: !{{[0-
9]+}}, file
: !{{[0-
9]+}}, line
: {{[0-
9]+}}, type
: ![[DWARF_ADDRESS_SPACE_NONE]])
46 constant int *KernelArg1,
47 // CHECK-DAG: !DILocalVariable(name: "KernelArg2", arg: {{[0-9]+}}, scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_LOCAL]])
48 local int *KernelArg2) {
52 // CHECK-DAG: !DILocalVariable(name: "FuncVar0", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_NONE]])
53 global int
*FuncVar0
= KernelArg0
;
54 // CHECK-DAG
: !DILocalVariable
(name: "FuncVar1", scope
: !{{[0-
9]+}}, file
: !{{[0-
9]+}}, line
: {{[0-
9]+}}, type
: ![[DWARF_ADDRESS_SPACE_NONE]])
55 constant int *FuncVar1 = KernelArg1;
56 // CHECK-DAG: !DILocalVariable(name: "FuncVar2", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_LOCAL]])
57 local int *FuncVar2 = KernelArg2;
58 // CHECK-DAG: !DILocalVariable(name: "FuncVar3", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_PRIVATE]])
59 private int *FuncVar3 = Tmp0;
60 // CHECK-DAG: !DILocalVariable(name: "FuncVar4", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_NONE]])
63 // CHECK-DAG
: distinct
!DIGlobalVariable
(name: "FuncVar5", scope
: !{{[0-
9]+}}, file
: !{{[0-
9]+}}, line
: {{[0-
9]+}}, type
: ![[DWARF_ADDRESS_SPACE_NONE]], isLocal: true, isDefinition: true)
64 global int *constant FuncVar5 = 0;
65 // CHECK-DAG: distinct !DIGlobalVariable(name: "FuncVar6", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_NONE]], isLocal
: true
, isDefinition
: true
)
66 constant int
*constant FuncVar6
= 0;
67 // CHECK-DAG
: distinct
!DIGlobalVariable
(name: "FuncVar7", scope
: !{{[0-
9]+}}, file
: !{{[0-
9]+}}, line
: {{[0-
9]+}}, type
: ![[DWARF_ADDRESS_SPACE_LOCAL]], isLocal: true, isDefinition: true)
68 local int *constant FuncVar7 = 0;
69 // CHECK-DAG: distinct !DIGlobalVariable(name: "FuncVar8", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_PRIVATE]], isLocal: true, isDefinition: true)
70 private int *constant FuncVar8 = 0;
71 // CHECK-DAG: distinct !DIGlobalVariable(name: "FuncVar9", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_NONE]], isLocal: true, isDefinition: true)
72 int *constant FuncVar9 = 0;
74 // CHECK-DAG: distinct !DIGlobalVariable(name: "FuncVar10", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_NONE]], isLocal: true, isDefinition: true)
75 global int *local FuncVar10; FuncVar10 = KernelArg0;
76 // CHECK-DAG: distinct !DIGlobalVariable(name: "FuncVar11", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_NONE]], isLocal: true, isDefinition: true)
77 constant int *local FuncVar11; FuncVar11 = KernelArg1;
78 // CHECK-DAG: distinct !DIGlobalVariable(name: "FuncVar12", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_LOCAL]], isLocal
: true
, isDefinition
: true
)
79 local int
*local FuncVar12
; FuncVar12 = KernelArg2;
80 // CHECK-DAG
: distinct
!DIGlobalVariable
(name: "FuncVar13", scope
: !{{[0-
9]+}}, file
: !{{[0-
9]+}}, line
: {{[0-
9]+}}, type
: ![[DWARF_ADDRESS_SPACE_PRIVATE]], isLocal: true, isDefinition: true)
81 private int *local FuncVar13; FuncVar13 = Tmp0;
82 // CHECK-DAG: distinct !DIGlobalVariable(name: "FuncVar14", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_NONE]], isLocal: true, isDefinition: true)
83 int *local FuncVar14; FuncVar14 = Tmp1;
85 // CHECK-DAG: !DILocalVariable(name: "FuncVar15", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_NONE]])
86 global int *private FuncVar15 = KernelArg0;
87 // CHECK-DAG: !DILocalVariable(name: "FuncVar16", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_NONE]])
88 constant int *private FuncVar16 = KernelArg1;
89 // CHECK-DAG: !DILocalVariable(name: "FuncVar17", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_LOCAL]])
90 local int *private FuncVar17 = KernelArg2;
91 // CHECK-DAG: !DILocalVariable(name: "FuncVar18", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, type: ![[DWARF_ADDRESS_SPACE_PRIVATE]])
92 private int
*private FuncVar18
= Tmp0
;
93 // CHECK-DAG
: !DILocalVariable
(name: "FuncVar19", scope
: !{{[0-
9]+}}, file
: !{{[0-
9]+}}, line
: {{[0-
9]+}}, type
: ![[DWARF_ADDRESS_SPACE_NONE]])
94 int *private FuncVar19 = Tmp1;
98 // CHECK-DAG: !DIDerivedType(tag: DW_TAG_member, name: "StructMem0", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, baseType: ![[DWARF_ADDRESS_SPACE_NONE]], size
: {{[0-
9]+}})
99 global int
*StructMem0
;
100 // CHECK-DAG
: !DIDerivedType
(tag: DW_TAG_member
, name
: "StructMem1", scope
: !{{[0-
9]+}}, file
: !{{[0-
9]+}}, line
: {{[0-
9]+}}, baseType
: ![[DWARF_ADDRESS_SPACE_NONE]], size: {{[0-9]+}}, offset: {{[0-9]+}})
101 constant int *StructMem1;
102 // CHECK-DAG: !DIDerivedType(tag: DW_TAG_member, name: "StructMem2", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, baseType: ![[DWARF_ADDRESS_SPACE_LOCAL]], size: {{[0-9]+}}, offset: {{[0-9]+}})
103 local int *StructMem2;
104 // CHECK-DAG: !DIDerivedType(tag: DW_TAG_member, name: "StructMem3", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, baseType: ![[DWARF_ADDRESS_SPACE_PRIVATE]], size: {{[0-9]+}}, offset: {{[0-9]+}})
105 private int *StructMem3;
106 // CHECK-DAG: !DIDerivedType(tag: DW_TAG_member, name: "StructMem4", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, baseType: ![[DWARF_ADDRESS_SPACE_NONE]], size
: {{[0-
9]+}}, offset
: {{[0-
9]+}})
112 // CHECK-DAG
: !DIDerivedType
(tag: DW_TAG_member
, name
: "UnionMem0", scope
: !{{[0-
9]+}}, file
: !{{[0-
9]+}}, line
: {{[0-
9]+}}, baseType
: ![[DWARF_ADDRESS_SPACE_NONE]], size: {{[0-9]+}})
113 global int *UnionMem0;
114 // CHECK-DAG: !DIDerivedType(tag: DW_TAG_member, name: "UnionMem1", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, baseType: ![[DWARF_ADDRESS_SPACE_NONE]], size
: {{[0-
9]+}})
115 constant int
*UnionMem1
;
116 // CHECK-DAG
: !DIDerivedType
(tag: DW_TAG_member
, name
: "UnionMem2", scope
: !{{[0-
9]+}}, file
: !{{[0-
9]+}}, line
: {{[0-
9]+}}, baseType
: ![[DWARF_ADDRESS_SPACE_LOCAL]], size: {{[0-9]+}})
117 local int *UnionMem2;
118 // CHECK-DAG: !DIDerivedType(tag: DW_TAG_member, name: "UnionMem3", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, baseType: ![[DWARF_ADDRESS_SPACE_PRIVATE]], size: {{[0-9]+}})
119 private int *UnionMem3;
120 // CHECK-DAG: !DIDerivedType(tag: DW_TAG_member, name: "UnionMem4", scope: !{{[0-9]+}}, file: !{{[0-9]+}}, line: {{[0-9]+}}, baseType: ![[DWARF_ADDRESS_SPACE_NONE]], size: {{[0-9]+}})
126 kernel void kernel2(global struct FileStruct0 *Kernel2Arg0,
127 global struct FileStruct1 *Kernel2Arg1) {}