1- // RUN: %clang_cc1 -fsycl-is-device -internal-isystem %S/Inputs -sycl-std=2017 - triple nvptx-unknown-unknown -target-cpu sm_90 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s
1+ // RUN: %clang_cc1 -fsycl-is-device -internal-isystem %S/Inputs -triple nvptx-unknown-unknown -target-cpu sm_90 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s
22
33// Test correct handling of maximum work group size, minimum work groups per
44// compute unit and maximum work groups per multi-processor attributes, that
@@ -25,15 +25,6 @@ template <int N> class Functor {
2525 operator()() const {}
2626};
2727
28- template <int N>
29- [[intel::max_work_group_size(N, 4 , 8 ), intel::min_work_groups_per_cu(N),
30- intel::max_work_groups_per_mp (N)]] void
31- zoo() {}
32-
33- [[intel::max_work_group_size(2 , 4 , 8 ), intel::min_work_groups_per_cu(2 ),
34- intel::max_work_groups_per_mp (4 )]] void
35- bar() {}
36-
3728int main () {
3829 q.submit ([&](handler &h) {
3930 // Test attribute argument size.
@@ -49,21 +40,13 @@ int main() {
4940 // Test class template argument.
5041 Functor<6 > f;
5142 h.single_task <class kernel_name3 >(f);
52-
53- // Test attribute is propagated.
54- h.single_task <class kernel_name4 >([]() { bar (); });
55-
56- // Test function template argument.
57- h.single_task <class kernel_name5 >([]() { zoo<16 >(); });
5843 });
5944 return 0 ;
6045}
6146
6247// CHECK: define dso_local void @{{.*}}kernel_name1() #0 {{.*}} !min_work_groups_per_cu ![[MWGPC:[0-9]+]] !max_work_groups_per_mp ![[MWGPM:[0-9]+]] !max_work_group_size ![[MWGS:[0-9]+]]
6348// CHECK: define dso_local void @{{.*}}kernel_name2() #0 {{.*}} !min_work_groups_per_cu ![[MWGPC:[0-9]+]] !max_work_groups_per_mp ![[MWGPM:[0-9]+]] !max_work_group_size ![[MWGS:[0-9]+]]
6449// CHECK: define dso_local void @{{.*}}kernel_name3() #0 {{.*}} !min_work_groups_per_cu ![[MWGPC_MWGPM:[0-9]+]] !max_work_groups_per_mp ![[MWGPC_MWGPM]] !max_work_group_size ![[MWGS_2:[0-9]+]]
65- // CHECK: define dso_local void @{{.*}}kernel_name4() #0 {{.*}} !min_work_groups_per_cu ![[MWGPC:[0-9]+]] !max_work_groups_per_mp ![[MWGPM:[0-9]+]] !max_work_group_size ![[MWGS:[0-9]+]]
66- // CHECK: define dso_local void @{{.*}}kernel_name5() #0 {{.*}} !min_work_groups_per_cu ![[MWGPC_MWGPM_2:[0-9]+]] !max_work_groups_per_mp ![[MWGPC_MWGPM_2]] !max_work_group_size ![[MWGS_3:[0-9]+]]
6750
6851// CHECK: {{.*}}@{{.*}}kernel_name1, !"maxntidx", i32 8}
6952// CHECK: {{.*}}@{{.*}}kernel_name1, !"maxntidy", i32 4}
@@ -95,31 +78,9 @@ int main() {
9578// CHECK: {{.*}}@{{.*}}Functor{{.*}}, !"maxntidz", i32 6}
9679// CHECK: {{.*}}@{{.*}}Functor{{.*}}, !"minctasm", i32 6}
9780// CHECK: {{.*}}@{{.*}}Functor{{.*}}, !"maxclusterrank", i32 6}
98- // CHECK: {{.*}}@{{.*}}kernel_name4, !"maxntidx", i32 8}
99- // CHECK: {{.*}}@{{.*}}kernel_name4, !"maxntidy", i32 4}
100- // CHECK: {{.*}}@{{.*}}kernel_name4, !"maxntidz", i32 2}
101- // CHECK: {{.*}}@{{.*}}kernel_name4, !"minctasm", i32 2}
102- // CHECK: {{.*}}@{{.*}}kernel_name4, !"maxclusterrank", i32 4}
103- // CHECK: {{.*}}@{{.*}}bar{{.*}}, !"maxntidx", i32 8}
104- // CHECK: {{.*}}@{{.*}}bar{{.*}}, !"maxntidy", i32 4}
105- // CHECK: {{.*}}@{{.*}}bar{{.*}}, !"maxntidz", i32 2}
106- // CHECK: {{.*}}@{{.*}}bar{{.*}}, !"minctasm", i32 2}
107- // CHECK: {{.*}}@{{.*}}bar{{.*}}, !"maxclusterrank", i32 4}
108- // CHECK: {{.*}}@{{.*}}kernel_name5, !"maxntidx", i32 8}
109- // CHECK: {{.*}}@{{.*}}kernel_name5, !"maxntidy", i32 4}
110- // CHECK: {{.*}}@{{.*}}kernel_name5, !"maxntidz", i32 16}
111- // CHECK: {{.*}}@{{.*}}kernel_name5, !"minctasm", i32 16}
112- // CHECK: {{.*}}@{{.*}}kernel_name5, !"maxclusterrank", i32 16}
113- // CHECK: {{.*}}@{{.*}}zoo{{.*}}, !"maxntidx", i32 8}
114- // CHECK: {{.*}}@{{.*}}zoo{{.*}}, !"maxntidy", i32 4}
115- // CHECK: {{.*}}@{{.*}}zoo{{.*}}, !"maxntidz", i32 16}
116- // CHECK: {{.*}}@{{.*}}zoo{{.*}}, !"minctasm", i32 16}
117- // CHECK: {{.*}}@{{.*}}zoo{{.*}}, !"maxclusterrank", i32 16}
11881
11982// CHECK: ![[MWGPC]] = !{i32 2}
12083// CHECK: ![[MWGPM]] = !{i32 4}
12184// CHECK: ![[MWGS]] = !{i32 8, i32 4, i32 2}
12285// CHECK: ![[MWGPC_MWGPM]] = !{i32 6}
12386// CHECK: ![[MWGS_2]] = !{i32 8, i32 4, i32 6}
124- // CHECK: ![[MWGPC_MWGPM_2]] = !{i32 16}
125- // CHECK: ![[MWGS_3]] = !{i32 8, i32 4, i32 16}
0 commit comments