Skip to content

Commit 664f30e

Browse files
[SYCL] Fix SYCLBIN for CUDA and HIP targets (#19269)
This commit makes the following changes to make SYCLBINs work for CUDA and HIP: * Fixes kernel detection when generating kernel name property sets for PTX and AMDGPU IR binaries. * Adds target triple to the metadata for native device code images. * Generates target triple for IR modules, as required by the property set metadata design. * Adds detection of target spec in native device code images based on the new target information. This allows us to enable most SYCLBIN tests on HIP and CUDA. --------- Signed-off-by: Larsen, Steffen <steffen.larsen@intel.com>
1 parent b42de17 commit 664f30e

File tree

21 files changed

+300
-64
lines changed

21 files changed

+300
-64
lines changed

clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2143,6 +2143,8 @@ Expected<SmallVector<StringRef>> linkAndWrapDeviceFiles(
21432143
if (OutputSYCLBIN) {
21442144
SYCLBIN::SYCLBINModuleDesc MD;
21452145
MD.ArchString = LinkerArgs.getLastArgValue(OPT_arch_EQ);
2146+
MD.TargetTriple =
2147+
llvm::Triple{LinkerArgs.getLastArgValue(OPT_triple_EQ)};
21462148
MD.SplitModules = std::move(SplitModules);
21472149
std::scoped_lock<std::mutex> Guard(SYCLBINModulesMtx);
21482150
SYCLBINModules.emplace_back(std::move(MD));

llvm/include/llvm/Object/SYCLBIN.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ class SYCLBIN {
3636

3737
struct SYCLBINModuleDesc {
3838
std::string ArchString;
39+
llvm::Triple TargetTriple;
3940
std::vector<module_split::SplitModule> SplitModules;
4041
};
4142

llvm/lib/Object/SYCLBIN.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,9 @@ SYCLBIN::SYCLBINDesc::SYCLBINDesc(BundleState State,
118118
IRMMetadata.add(
119119
llvm::util::PropertySetRegistry::SYCLBIN_IR_MODULE_METADATA, "type",
120120
/*SPIR-V*/ 0);
121+
IRMMetadata.add(
122+
llvm::util::PropertySetRegistry::SYCLBIN_IR_MODULE_METADATA,
123+
"target", MD.TargetTriple.str());
121124
IRMMetadata.write(IDMetadataOS);
122125
AMD.IRModuleDescs.emplace_back(std::move(ID));
123126
} else {
@@ -126,6 +129,9 @@ SYCLBIN::SYCLBINDesc::SYCLBINDesc(BundleState State,
126129
NDCIMetadata.add(llvm::util::PropertySetRegistry::
127130
SYCLBIN_NATIVE_DEVICE_CODE_IMAGE_METADATA,
128131
"arch", MD.ArchString);
132+
NDCIMetadata.add(llvm::util::PropertySetRegistry::
133+
SYCLBIN_NATIVE_DEVICE_CODE_IMAGE_METADATA,
134+
"target", MD.TargetTriple.str());
129135
NDCIMetadata.write(IDMetadataOS);
130136
AMD.NativeDeviceCodeImageDescs.emplace_back(std::move(ID));
131137
}

llvm/lib/SYCLPostLink/ComputeModuleRuntimeInfo.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,9 @@ PropSetRegTy computeModuleProperties(const Module &M,
273273
}
274274
if (GlobProps.EmitKernelNames) {
275275
for (const auto *F : EntryPoints) {
276-
if (F->getCallingConv() == CallingConv::SPIR_KERNEL) {
276+
if (F->getCallingConv() == CallingConv::SPIR_KERNEL ||
277+
F->getCallingConv() == CallingConv::PTX_Kernel ||
278+
F->getCallingConv() == CallingConv::AMDGPU_KERNEL) {
277279
PropSet.add(PropSetRegTy::SYCL_KERNEL_NAMES, F->getName(),
278280
/*PropVal=*/true);
279281
}

llvm/test/tools/sycl-post-link/emit_kernel_names.ll

Lines changed: 201 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
;
33
; Global scope
44
; RUN: sycl-post-link -properties -symbols -emit-kernel-names -S < %s -o %t.global.files.table
5-
; RUN: FileCheck %s -input-file=%t.global.files_0.prop --implicit-check-not="SpirFunc" --check-prefix=CHECK-GLOBAL-PROP
5+
; RUN: FileCheck %s -input-file=%t.global.files_0.prop --implicit-check-not="SpirFunc" --implicit-check-not="PtxFunc" --implicit-check-not="AmdgpuFunc" --check-prefix=CHECK-GLOBAL-PROP
66
;
77
; Per-module split
88
; RUN: sycl-post-link -properties -symbols -split=source -emit-kernel-names -S < %s -o %t.per_module.files.table
@@ -12,12 +12,24 @@
1212
;
1313
; Per-kernel split
1414
; RUN: sycl-post-link -properties -symbols -split=kernel -emit-kernel-names -S < %s -o %t.per_kernel.files.table
15-
; RUN: FileCheck %s -input-file=%t.per_kernel.files_0.prop --implicit-check-not="SpirFunc" --check-prefix=CHECK-PERKERNEL-0-PROP
16-
; RUN: FileCheck %s -input-file=%t.per_kernel.files_1.prop --implicit-check-not="SpirFunc" --check-prefix=CHECK-PERKERNEL-1-PROP
17-
; RUN: FileCheck %s -input-file=%t.per_kernel.files_2.prop --implicit-check-not="SpirFunc" --check-prefix=CHECK-PERKERNEL-2-PROP
18-
; RUN: FileCheck %s -input-file=%t.per_kernel.files_3.prop --implicit-check-not="SpirFunc" --check-prefix=CHECK-KERNELLESS-PROP
19-
; RUN: FileCheck %s -input-file=%t.per_kernel.files_4.prop --implicit-check-not="SpirFunc" --check-prefix=CHECK-KERNELLESS-PROP
20-
; RUN: FileCheck %s -input-file=%t.per_kernel.files_5.prop --implicit-check-not="SpirFunc" --check-prefix=CHECK-KERNELLESS-PROP
15+
; RUN: FileCheck %s -input-file=%t.per_kernel.files_0.prop --implicit-check-not="SpirFunc" --implicit-check-not="PtxFunc" --implicit-check-not="AmdgpuFunc" --check-prefix=CHECK-PERKERNEL-0-PROP
16+
; RUN: FileCheck %s -input-file=%t.per_kernel.files_1.prop --implicit-check-not="SpirFunc" --implicit-check-not="PtxFunc" --implicit-check-not="AmdgpuFunc" --check-prefix=CHECK-PERKERNEL-1-PROP
17+
; RUN: FileCheck %s -input-file=%t.per_kernel.files_2.prop --implicit-check-not="SpirFunc" --implicit-check-not="PtxFunc" --implicit-check-not="AmdgpuFunc" --check-prefix=CHECK-PERKERNEL-2-PROP
18+
; RUN: FileCheck %s -input-file=%t.per_kernel.files_3.prop --implicit-check-not="SpirFunc" --implicit-check-not="PtxFunc" --implicit-check-not="AmdgpuFunc" --check-prefix=CHECK-KERNELLESS-PROP
19+
; RUN: FileCheck %s -input-file=%t.per_kernel.files_4.prop --implicit-check-not="SpirFunc" --implicit-check-not="PtxFunc" --implicit-check-not="AmdgpuFunc" --check-prefix=CHECK-KERNELLESS-PROP
20+
; RUN: FileCheck %s -input-file=%t.per_kernel.files_5.prop --implicit-check-not="SpirFunc" --implicit-check-not="PtxFunc" --implicit-check-not="AmdgpuFunc" --check-prefix=CHECK-KERNELLESS-PROP
21+
; RUN: FileCheck %s -input-file=%t.per_kernel.files_6.prop --implicit-check-not="SpirFunc" --implicit-check-not="PtxFunc" --implicit-check-not="AmdgpuFunc" --check-prefix=CHECK-PERKERNEL-6-PROP
22+
; RUN: FileCheck %s -input-file=%t.per_kernel.files_7.prop --implicit-check-not="SpirFunc" --implicit-check-not="PtxFunc" --implicit-check-not="AmdgpuFunc" --check-prefix=CHECK-PERKERNEL-7-PROP
23+
; RUN: FileCheck %s -input-file=%t.per_kernel.files_8.prop --implicit-check-not="SpirFunc" --implicit-check-not="PtxFunc" --implicit-check-not="AmdgpuFunc" --check-prefix=CHECK-PERKERNEL-8-PROP
24+
; RUN: FileCheck %s -input-file=%t.per_kernel.files_9.prop --implicit-check-not="SpirFunc" --implicit-check-not="PtxFunc" --implicit-check-not="AmdgpuFunc" --check-prefix=CHECK-KERNELLESS-PROP
25+
; RUN: FileCheck %s -input-file=%t.per_kernel.files_10.prop --implicit-check-not="SpirFunc" --implicit-check-not="PtxFunc" --implicit-check-not="AmdgpuFunc" --check-prefix=CHECK-KERNELLESS-PROP
26+
; RUN: FileCheck %s -input-file=%t.per_kernel.files_11.prop --implicit-check-not="SpirFunc" --implicit-check-not="PtxFunc" --implicit-check-not="AmdgpuFunc" --check-prefix=CHECK-KERNELLESS-PROP
27+
; RUN: FileCheck %s -input-file=%t.per_kernel.files_12.prop --implicit-check-not="SpirFunc" --implicit-check-not="PtxFunc" --implicit-check-not="AmdgpuFunc" --check-prefix=CHECK-PERKERNEL-12-PROP
28+
; RUN: FileCheck %s -input-file=%t.per_kernel.files_13.prop --implicit-check-not="SpirFunc" --implicit-check-not="PtxFunc" --implicit-check-not="AmdgpuFunc" --check-prefix=CHECK-PERKERNEL-13-PROP
29+
; RUN: FileCheck %s -input-file=%t.per_kernel.files_14.prop --implicit-check-not="SpirFunc" --implicit-check-not="PtxFunc" --implicit-check-not="AmdgpuFunc" --check-prefix=CHECK-PERKERNEL-14-PROP
30+
; RUN: FileCheck %s -input-file=%t.per_kernel.files_15.prop --implicit-check-not="SpirFunc" --implicit-check-not="PtxFunc" --implicit-check-not="AmdgpuFunc" --check-prefix=CHECK-KERNELLESS-PROP
31+
; RUN: FileCheck %s -input-file=%t.per_kernel.files_16.prop --implicit-check-not="SpirFunc" --implicit-check-not="PtxFunc" --implicit-check-not="AmdgpuFunc" --check-prefix=CHECK-KERNELLESS-PROP
32+
; RUN: FileCheck %s -input-file=%t.per_kernel.files_17.prop --implicit-check-not="SpirFunc" --implicit-check-not="PtxFunc" --implicit-check-not="AmdgpuFunc" --check-prefix=CHECK-KERNELLESS-PROP
2133

2234
target triple = "spir64-unknown-unknown"
2335

@@ -26,75 +38,253 @@ entry:
2638
ret void
2739
}
2840

41+
define dso_local ptx_kernel void @PtxKernel1(float %arg1) #2 {
42+
entry:
43+
ret void
44+
}
45+
46+
define dso_local amdgpu_kernel void @AmdgpuKernel1(float %arg1) #2 {
47+
entry:
48+
ret void
49+
}
50+
2951
define dso_local spir_kernel void @SpirKernel2(float %arg1) #1 {
3052
entry:
3153
ret void
3254
}
3355

56+
define dso_local ptx_kernel void @PtxKernel2(float %arg1) #1 {
57+
entry:
58+
ret void
59+
}
60+
61+
define dso_local amdgpu_kernel void @AmdgpuKernel2(float %arg1) #1 {
62+
entry:
63+
ret void
64+
}
65+
3466
define dso_local spir_kernel void @SpirKernel3(float %arg1) #2 {
3567
entry:
3668
ret void
3769
}
3870

71+
define dso_local ptx_kernel void @PtxKernel3(float %arg1) #2 {
72+
entry:
73+
ret void
74+
}
75+
76+
define dso_local amdgpu_kernel void @AmdgpuKernel3(float %arg1) #2 {
77+
entry:
78+
ret void
79+
}
80+
3981
define dso_local spir_func void @SpirFunc1(float %arg1) #0 {
4082
entry:
4183
ret void
4284
}
4385

86+
define dso_local ptx_device void @PtxFunc1(float %arg1) #0 {
87+
entry:
88+
ret void
89+
}
90+
91+
define dso_local amdgpu_cs void @AmdgpuFunc1(float %arg1) #0 {
92+
entry:
93+
ret void
94+
}
95+
4496
define dso_local spir_func void @SpirFunc2(i32 %arg1, i32 %arg2) #1 {
4597
entry:
4698
ret void
4799
}
48100

101+
define dso_local ptx_device void @PtxFunc2(i32 %arg1, i32 %arg2) #1 {
102+
entry:
103+
ret void
104+
}
105+
106+
define dso_local amdgpu_cs void @AmdgpuFunc2(i32 %arg1, i32 %arg2) #1 {
107+
entry:
108+
ret void
109+
}
110+
49111
define dso_local spir_func void @SpirFunc3(float %arg1) #0 {
50112
entry:
51113
ret void
52114
}
53115

116+
define dso_local ptx_device void @PtxFunc3(float %arg1) #0 {
117+
entry:
118+
ret void
119+
}
120+
121+
define dso_local amdgpu_cs void @AmdgpuFunc3(float %arg1) #0 {
122+
entry:
123+
ret void
124+
}
125+
54126
define dso_local spir_func void @SpirFunc4(float %arg1) {
55127
entry:
56128
ret void
57129
}
58130

131+
define dso_local ptx_device void @PtxFunc4(float %arg1) {
132+
entry:
133+
ret void
134+
}
135+
136+
define dso_local amdgpu_cs void @AmdgpuFunc4(float %arg1) {
137+
entry:
138+
ret void
139+
}
140+
59141
attributes #0 = { "sycl-module-id"="a.cpp" }
60142
attributes #1 = { "sycl-module-id"="b.cpp" }
61143
attributes #2 = { "sycl-module-id"="c.cpp" }
62144

63145
; Global scope
64146
; CHECK-GLOBAL-PROP: [SYCL/kernel names]
65147
; CHECK-GLOBAL-PROP-NEXT: SpirKernel1
148+
; CHECK-GLOBAL-PROP-NEXT: PtxKernel1
149+
; CHECK-GLOBAL-PROP-NEXT: AmdgpuKernel1
66150
; CHECK-GLOBAL-PROP-NEXT: SpirKernel2
151+
; CHECK-GLOBAL-PROP-NEXT: PtxKernel2
152+
; CHECK-GLOBAL-PROP-NEXT: AmdgpuKernel2
67153
; CHECK-GLOBAL-PROP-NEXT: SpirKernel3
154+
; CHECK-GLOBAL-PROP-NEXT: PtxKernel3
155+
; CHECK-GLOBAL-PROP-NEXT: AmdgpuKernel3
68156

69157
; Per-module split
70158
; CHECK-PERMODULE-0-PROP: [SYCL/kernel names]
71159
; CHECK-PERMODULE-0-PROP-NEXT: SpirKernel1
160+
; CHECK-PERMODULE-0-PROP-NEXT: PtxKernel1
161+
; CHECK-PERMODULE-0-PROP-NEXT: AmdgpuKernel1
72162
; CHECK-PERMODULE-0-PROP-NEXT: SpirKernel3
163+
; CHECK-PERMODULE-0-PROP-NEXT: PtxKernel3
164+
; CHECK-PERMODULE-0-PROP-NEXT: AmdgpuKernel3
73165
; CHECK-PERMODULE-0-PROP-NOT: SpirKernel2
166+
; CHECK-PERMODULE-0-PROP-NOT: PtxKernel2
167+
; CHECK-PERMODULE-0-PROP-NOT: AmdgpuKernel2
74168

75169
; CHECK-PERMODULE-1-PROP: [SYCL/kernel names]
76170
; CHECK-PERMODULE-1-PROP-NEXT: SpirKernel2
171+
; CHECK-PERMODULE-1-PROP-NEXT: PtxKernel2
172+
; CHECK-PERMODULE-1-PROP-NEXT: AmdgpuKernel2
77173
; CHECK-PERMODULE-1-PROP-NOT: SpirKernel1
174+
; CHECK-PERMODULE-1-PROP-NOT: PtxKernel1
175+
; CHECK-PERMODULE-1-PROP-NOT: AmdgpuKernel1
78176
; CHECK-PERMODULE-1-PROP-NOT: SpirKernel3
177+
; CHECK-PERMODULE-1-PROP-NOT: PtxKernel3
178+
; CHECK-PERMODULE-1-PROP-NOT: AmdgpuKernel3
79179

80180
; Per-kernel split
81181
; CHECK-PERKERNEL-0-PROP: [SYCL/kernel names]
82182
; CHECK-PERKERNEL-0-PROP-NEXT: SpirKernel3
83-
; CHECK-PERKERNEL-0-PROP-NOT: SpirKernel1
84183
; CHECK-PERKERNEL-0-PROP-NOT: SpirKernel2
184+
; CHECK-PERKERNEL-0-PROP-NOT: SpirKernel1
185+
; CHECK-PERKERNEL-0-PROP-NOT: PtxKernel3
186+
; CHECK-PERKERNEL-0-PROP-NOT: PtxKernel2
187+
; CHECK-PERKERNEL-0-PROP-NOT: PtxKernel1
188+
; CHECK-PERKERNEL-0-PROP-NOT: AmdgpuKernel3
189+
; CHECK-PERKERNEL-0-PROP-NOT: AmdgpuKernel2
190+
; CHECK-PERKERNEL-0-PROP-NOT: AmdgpuKernel1
85191

86192
; CHECK-PERKERNEL-1-PROP: [SYCL/kernel names]
193+
; CHECK-PERKERNEL-1-PROP-NOT: SpirKernel3
87194
; CHECK-PERKERNEL-1-PROP-NEXT: SpirKernel2
88195
; CHECK-PERKERNEL-1-PROP-NOT: SpirKernel1
89-
; CHECK-PERKERNEL-1-PROP-NOT: SpirKernel3
196+
; CHECK-PERKERNEL-1-PROP-NOT: PtxKernel3
197+
; CHECK-PERKERNEL-1-PROP-NOT: PtxKernel2
198+
; CHECK-PERKERNEL-1-PROP-NOT: PtxKernel1
199+
; CHECK-PERKERNEL-1-PROP-NOT: AmdgpuKernel3
200+
; CHECK-PERKERNEL-1-PROP-NOT: AmdgpuKernel2
201+
; CHECK-PERKERNEL-1-PROP-NOT: AmdgpuKernel1
90202

91203
; CHECK-PERKERNEL-2-PROP: [SYCL/kernel names]
92-
; CHECK-PERKERNEL-2-PROP-NEXT: SpirKernel1
93-
; CHECK-PERKERNEL-2-PROP-NOT: SpirKernel2
94204
; CHECK-PERKERNEL-2-PROP-NOT: SpirKernel3
205+
; CHECK-PERKERNEL-2-PROP-NOT: SpirKernel2
206+
; CHECK-PERKERNEL-2-PROP-NEXT: SpirKernel1
207+
; CHECK-PERKERNEL-2-PROP-NOT: PtxKernel3
208+
; CHECK-PERKERNEL-2-PROP-NOT: PtxKernel2
209+
; CHECK-PERKERNEL-2-PROP-NOT: PtxKernel1
210+
; CHECK-PERKERNEL-2-PROP-NOT: AmdgpuKernel3
211+
; CHECK-PERKERNEL-2-PROP-NOT: AmdgpuKernel2
212+
; CHECK-PERKERNEL-2-PROP-NOT: AmdgpuKernel1
213+
214+
; CHECK-PERKERNEL-6-PROP: [SYCL/kernel names]
215+
; CHECK-PERKERNEL-6-PROP-NOT: SpirKernel3
216+
; CHECK-PERKERNEL-6-PROP-NOT: SpirKernel2
217+
; CHECK-PERKERNEL-6-PROP-NOT: SpirKernel1
218+
; CHECK-PERKERNEL-6-PROP-NEXT: PtxKernel3
219+
; CHECK-PERKERNEL-6-PROP-NOT: PtxKernel2
220+
; CHECK-PERKERNEL-6-PROP-NOT: PtxKernel1
221+
; CHECK-PERKERNEL-6-PROP-NOT: AmdgpuKernel3
222+
; CHECK-PERKERNEL-6-PROP-NOT: AmdgpuKernel2
223+
; CHECK-PERKERNEL-6-PROP-NOT: AmdgpuKernel1
224+
225+
; CHECK-PERKERNEL-7-PROP: [SYCL/kernel names]
226+
; CHECK-PERKERNEL-7-PROP-NOT: SpirKernel3
227+
; CHECK-PERKERNEL-7-PROP-NOT: SpirKernel2
228+
; CHECK-PERKERNEL-7-PROP-NOT: SpirKernel1
229+
; CHECK-PERKERNEL-7-PROP-NOT: PtxKernel3
230+
; CHECK-PERKERNEL-7-PROP-NEXT: PtxKernel2
231+
; CHECK-PERKERNEL-7-PROP-NOT: PtxKernel1
232+
; CHECK-PERKERNEL-7-PROP-NOT: AmdgpuKernel3
233+
; CHECK-PERKERNEL-7-PROP-NOT: AmdgpuKernel2
234+
; CHECK-PERKERNEL-7-PROP-NOT: AmdgpuKernel1
235+
236+
; CHECK-PERKERNEL-8-PROP: [SYCL/kernel names]
237+
; CHECK-PERKERNEL-8-PROP-NOT: SpirKernel3
238+
; CHECK-PERKERNEL-8-PROP-NOT: SpirKernel2
239+
; CHECK-PERKERNEL-8-PROP-NOT: SpirKernel1
240+
; CHECK-PERKERNEL-8-PROP-NOT: PtxKernel3
241+
; CHECK-PERKERNEL-8-PROP-NOT: PtxKernel2
242+
; CHECK-PERKERNEL-8-PROP-NEXT: PtxKernel1
243+
; CHECK-PERKERNEL-8-PROP-NOT: AmdgpuKernel3
244+
; CHECK-PERKERNEL-8-PROP-NOT: AmdgpuKernel2
245+
; CHECK-PERKERNEL-8-PROP-NOT: AmdgpuKernel1
246+
247+
; CHECK-PERKERNEL-12-PROP: [SYCL/kernel names]
248+
; CHECK-PERKERNEL-12-PROP-NOT: SpirKernel3
249+
; CHECK-PERKERNEL-12-PROP-NOT: SpirKernel2
250+
; CHECK-PERKERNEL-12-PROP-NOT: SpirKernel1
251+
; CHECK-PERKERNEL-12-PROP-NOT: PtxKernel3
252+
; CHECK-PERKERNEL-12-PROP-NOT: PtxKernel2
253+
; CHECK-PERKERNEL-12-PROP-NOT: PtxKernel1
254+
; CHECK-PERKERNEL-12-PROP-NEXT: AmdgpuKernel3
255+
; CHECK-PERKERNEL-12-PROP-NOT: AmdgpuKernel2
256+
; CHECK-PERKERNEL-12-PROP-NOT: AmdgpuKernel1
257+
258+
; CHECK-PERKERNEL-13-PROP: [SYCL/kernel names]
259+
; CHECK-PERKERNEL-13-PROP-NOT: SpirKernel3
260+
; CHECK-PERKERNEL-13-PROP-NOT: SpirKernel2
261+
; CHECK-PERKERNEL-13-PROP-NOT: SpirKernel1
262+
; CHECK-PERKERNEL-13-PROP-NOT: PtxKernel3
263+
; CHECK-PERKERNEL-13-PROP-NOT: PtxKernel2
264+
; CHECK-PERKERNEL-13-PROP-NOT: PtxKernel1
265+
; CHECK-PERKERNEL-13-PROP-NOT: AmdgpuKernel3
266+
; CHECK-PERKERNEL-13-PROP-NEXT: AmdgpuKernel2
267+
; CHECK-PERKERNEL-13-PROP-NOT: AmdgpuKernel1
268+
269+
; CHECK-PERKERNEL-14-PROP: [SYCL/kernel names]
270+
; CHECK-PERKERNEL-14-PROP-NOT: SpirKernel3
271+
; CHECK-PERKERNEL-14-PROP-NOT: SpirKernel2
272+
; CHECK-PERKERNEL-14-PROP-NOT: SpirKernel1
273+
; CHECK-PERKERNEL-14-PROP-NOT: PtxKernel3
274+
; CHECK-PERKERNEL-14-PROP-NOT: PtxKernel2
275+
; CHECK-PERKERNEL-14-PROP-NOT: PtxKernel1
276+
; CHECK-PERKERNEL-14-PROP-NOT: AmdgpuKernel3
277+
; CHECK-PERKERNEL-14-PROP-NOT: AmdgpuKernel2
278+
; CHECK-PERKERNEL-14-PROP-NEXT: AmdgpuKernel1
95279

96280
; Kernel-less generated modules should have no kernel names
97281
; CHECK-KERNELLESS-PROP-NOT: [SYCL/kernel names]
98282
; CHECK-KERNELLESS-PROP-NOT: SpirKernel1
283+
; CHECK-KERNELLESS-PROP-NOT: PtxKernel1
284+
; CHECK-KERNELLESS-PROP-NOT: AmdgpuKernel1
99285
; CHECK-KERNELLESS-PROP-NOT: SpirKernel2
286+
; CHECK-KERNELLESS-PROP-NOT: PtxKernel2
287+
; CHECK-KERNELLESS-PROP-NOT: AmdgpuKernel2
100288
; CHECK-KERNELLESS-PROP-NOT: SpirKernel3
289+
; CHECK-KERNELLESS-PROP-NOT: PtxKernel3
290+
; CHECK-KERNELLESS-PROP-NOT: AmdgpuKernel3

0 commit comments

Comments
 (0)