Skip to content

Commit 1e3a3ef

Browse files
committed
[SYCL] fix tests
1 parent 7957b00 commit 1e3a3ef

File tree

3 files changed

+48
-93
lines changed

3 files changed

+48
-93
lines changed

clang/test/SemaSYCL/reqd-sub-group-size.cpp

Lines changed: 37 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// RUN: %clang_cc1 -fsycl-is-device -internal-isystem %S/Inputs -fsyntax-only -verify -pedantic %s
22

3-
// The test checks functionality of [[intel::reqd_sub_group_size()]] attribute on SYCL kernel and [[intel::reqd_sub_group_size()]] is deprecated.
3+
// The test checks functionality of [[sycl::reqd_sub_group_size()]] attribute on SYCL kernel and [[intel::reqd_sub_group_size()]] is deprecated.
44

55

66
#include "sycl.hpp" //clang/test/SemaSYCL/Inputs/sycl.hpp
@@ -32,87 +32,62 @@ int main() {
3232
});
3333
return 0;
3434
}
35-
// expected-note@+2 {{did you mean to use 'sycl::reqd_sub_group_size' instead?}}
36-
// expected-warning@+1{{attribute 'intel::reqd_sub_group_size' is deprecated}}
37-
[[intel::reqd_sub_group_size(16)]] SYCL_EXTERNAL void B();
38-
// expected-note@+2 {{did you mean to use 'sycl::reqd_sub_group_size' instead?}}
39-
// expected-warning@+1{{attribute 'intel::reqd_sub_group_size' is deprecated}}
40-
[[intel::reqd_sub_group_size(16)]] void A() // expected-warning {{'reqd_sub_group_size' attribute can only be applied to a SYCL kernel function}}
35+
36+
[[sycl::reqd_sub_group_size(16)]] SYCL_EXTERNAL void B();
37+
[[sycl::reqd_sub_group_size(16)]] void A() // expected-warning {{'reqd_sub_group_size' attribute can only be applied to a SYCL kernel function}}
4138
{
4239
}
4340

44-
// expected-note@+2 {{did you mean to use 'sycl::reqd_sub_group_size' instead?}}
45-
// expected-warning@+1{{attribute 'intel::reqd_sub_group_size' is deprecated}}
46-
[[intel::reqd_sub_group_size(16)]] SYCL_EXTERNAL void B();
47-
48-
// expected-note@+2 {{did you mean to use 'sycl::reqd_sub_group_size' instead?}}
49-
// expected-warning@+1{{attribute 'intel::reqd_sub_group_size' is deprecated}}
50-
[[intel::reqd_sub_group_size(16)]] SYCL_EXTERNAL void B() { // expected-warning {{'reqd_sub_group_size' attribute can only be applied to a SYCL kernel function}}
41+
[[sycl::reqd_sub_group_size(16)]] SYCL_EXTERNAL void B();
42+
[[sycl::reqd_sub_group_size(16)]] SYCL_EXTERNAL void B() { // expected-warning {{'reqd_sub_group_size' attribute can only be applied to a SYCL kernel function}}
5143
A();
5244
}
53-
// expected-note@+3 {{did you mean to use 'sycl::reqd_sub_group_size' instead?}}
54-
// expected-warning@+2{{attribute 'intel::reqd_sub_group_size' is deprecated}}
45+
5546
// expected-note@+1 {{conflicting attribute is here}}
56-
[[intel::reqd_sub_group_size(2)]] void sg_size2() {} // expected-warning {{'reqd_sub_group_size' attribute can only be applied to a SYCL kernel function}}
47+
[[sycl::reqd_sub_group_size(2)]] void sg_size2() {} // expected-warning {{'reqd_sub_group_size' attribute can only be applied to a SYCL kernel function}}
5748

58-
// expected-note@+5 {{conflicting attribute is here}}
59-
// expected-error@+4 {{conflicting attributes applied to a SYCL kernel}}
60-
// expected-warning@+3 {{'reqd_sub_group_size' attribute can only be applied to a SYCL kernel function}}
61-
// expected-note@+2 {{did you mean to use 'sycl::reqd_sub_group_size' instead?}}
62-
// expected-warning@+1{{attribute 'intel::reqd_sub_group_size' is deprecated}}
63-
[[intel::reqd_sub_group_size(4)]] __attribute__((sycl_device)) void sg_size4() {
49+
// expected-note@+3 {{conflicting attribute is here}}
50+
// expected-error@+2 {{conflicting attributes applied to a SYCL kernel}}
51+
// expected-warning@+1 {{'reqd_sub_group_size' attribute can only be applied to a SYCL kernel function}}
52+
[[sycl::reqd_sub_group_size(4)]] __attribute__((sycl_device)) void sg_size4() {
6453
sg_size2();
6554
}
6655

6756
// Test that checks support and functionality of reqd_sub_group_size attribute support on function.
6857

6958
// Tests for incorrect argument values for Intel reqd_sub_group_size attribute.
70-
[[intel::reqd_sub_group_size]] void one() {} // expected-error {{'reqd_sub_group_size' attribute takes one argument}}
71-
[[intel::reqd_sub_group_size(5)]] int a; // expected-error{{'reqd_sub_group_size' attribute only applies to functions}}
72-
// expected-note@+2 {{did you mean to use 'sycl::reqd_sub_group_size' instead?}}
73-
// expected-warning@+1{{attribute 'intel::reqd_sub_group_size' is deprecated}}
74-
[[intel::reqd_sub_group_size("foo")]] void func() {} // expected-error{{integral constant expression must have integral or unscoped enumeration type, not 'const char[4]'}}
75-
// expected-note@+2 {{did you mean to use 'sycl::reqd_sub_group_size' instead?}}
76-
// expected-warning@+1{{attribute 'intel::reqd_sub_group_size' is deprecated}}
77-
[[intel::reqd_sub_group_size(-1)]] void func1() {} // expected-error{{'reqd_sub_group_size' attribute requires a positive integral compile time constant expression}}
78-
[[intel::reqd_sub_group_size(0, 1)]] void arg() {} // expected-error{{'reqd_sub_group_size' attribute takes one argument}}
59+
[[sycl::reqd_sub_group_size]] void one() {} // expected-error {{'reqd_sub_group_size' attribute takes one argument}}
60+
[[sycl::reqd_sub_group_size(5)]] int a; // expected-error{{'reqd_sub_group_size' attribute only applies to functions}}
61+
[[sycl::reqd_sub_group_size("foo")]] void func() {} // expected-error{{integral constant expression must have integral or unscoped enumeration type, not 'const char[4]'}}
62+
[[sycl::reqd_sub_group_size(-1)]] void func1() {} // expected-error{{'reqd_sub_group_size' attribute requires a positive integral compile time constant expression}}
63+
[[sycl::reqd_sub_group_size(0, 1)]] void arg() {} // expected-error{{'reqd_sub_group_size' attribute takes one argument}}
7964

8065
// Diagnostic is emitted because the arguments mismatch.
81-
// expected-note@+2 {{did you mean to use 'sycl::reqd_sub_group_size' instead?}}
82-
// expected-warning@+1{{attribute 'intel::reqd_sub_group_size' is deprecated}}
83-
[[intel::reqd_sub_group_size(12)]] void quux(); // expected-note {{previous attribute is here}}
84-
// expected-note@+2 {{did you mean to use 'sycl::reqd_sub_group_size' instead?}}
85-
// expected-warning@+1{{attribute 'intel::reqd_sub_group_size' is deprecated}}
86-
[[intel::reqd_sub_group_size(100)]] void quux(); // expected-warning {{attribute 'reqd_sub_group_size' is already applied with different arguments}} expected-note {{previous attribute is here}}
87-
// expected-note@+2 {{did you mean to use 'sycl::reqd_sub_group_size' instead?}}
88-
// expected-warning@+1{{attribute 'intel::reqd_sub_group_size' is deprecated}}
89-
[[intel::reqd_sub_group_size(200)]] void quux(); // expected-warning {{attribute 'reqd_sub_group_size' is already applied with different arguments}}
66+
[[sycl::reqd_sub_group_size(12)]] void quux(); // expected-note {{previous attribute is here}}
67+
[[sycl::reqd_sub_group_size(100)]] void quux(); // expected-warning {{attribute 'reqd_sub_group_size' is already applied with different arguments}} expected-note {{previous attribute is here}}
68+
[[sycl::reqd_sub_group_size(200)]] void quux(); // expected-warning {{attribute 'reqd_sub_group_size' is already applied with different arguments}}
9069

9170
// Make sure there's at least one argument passed.
92-
[[intel::reqd_sub_group_size]] void quibble(); // expected-error {{'reqd_sub_group_size' attribute takes one argument}}
71+
[[sycl::reqd_sub_group_size]] void quibble(); // expected-error {{'reqd_sub_group_size' attribute takes one argument}}
9372

9473
// No diagnostic is emitted because the arguments match.
74+
[[sycl::reqd_sub_group_size(12)]] void same();
75+
[[sycl::reqd_sub_group_size(12)]] void same() {} // expected-warning {{'reqd_sub_group_size' attribute can only be applied to a SYCL kernel function}}
76+
9577
// expected-note@+2 {{did you mean to use 'sycl::reqd_sub_group_size' instead?}}
9678
// expected-warning@+1{{attribute 'intel::reqd_sub_group_size' is deprecated}}
9779
[[intel::reqd_sub_group_size(12)]] void same();
98-
// expected-note@+2 {{did you mean to use 'sycl::reqd_sub_group_size' instead?}}
99-
// expected-warning@+1{{attribute 'intel::reqd_sub_group_size' is deprecated}}
100-
[[intel::reqd_sub_group_size(12)]] void same() {} // expected-warning {{'reqd_sub_group_size' attribute can only be applied to a SYCL kernel function}}
10180

10281
// No diagnostic because the attributes are synonyms with identical behavior.
103-
// expected-note@+2 {{did you mean to use 'sycl::reqd_sub_group_size' instead?}}
104-
// expected-warning@+1{{attribute 'intel::reqd_sub_group_size' is deprecated}}
105-
[[intel::reqd_sub_group_size(12)]] void same(); // OK
82+
[[sycl::reqd_sub_group_size(12)]] void same(); // OK
10683

10784
// Test that checks wrong function template instantiation and ensures that the type
10885
// is checked properly when instantiating from the template definition.
10986
template <typename Ty>
110-
// expected-error@+5{{'reqd_sub_group_size' attribute requires a positive integral compile time constant expression}}
111-
// expected-error@+4 {{integral constant expression must have integral or unscoped enumeration type, not 'S'}}
112-
// expected-error@+3 {{integral constant expression must have integral or unscoped enumeration type, not 'float'}}
113-
// expected-note@+2 {{did you mean to use 'sycl::reqd_sub_group_size' instead?}}
114-
// expected-warning@+1{{attribute 'intel::reqd_sub_group_size' is deprecated}}
115-
[[intel::reqd_sub_group_size(Ty{})]] void func() {}
87+
// expected-error@+3{{'reqd_sub_group_size' attribute requires a positive integral compile time constant expression}}
88+
// expected-error@+2 {{integral constant expression must have integral or unscoped enumeration type, not 'S'}}
89+
// expected-error@+1 {{integral constant expression must have integral or unscoped enumeration type, not 'float'}}
90+
[[sycl::reqd_sub_group_size(Ty{})]] void func() {}
11691

11792
struct S {};
11893
void test() {
@@ -127,26 +102,20 @@ void test() {
127102
// Test that checks expression is not a constant expression.
128103
// expected-note@+1{{declared here}}
129104
int foo1();
130-
// expected-error@+4{{expression is not an integral constant expression}}
131-
// expected-note@+3{{non-constexpr function 'foo1' cannot be used in a constant expression}}
132-
// expected-note@+2 {{did you mean to use 'sycl::reqd_sub_group_size' instead?}}
133-
// expected-warning@+1{{attribute 'intel::reqd_sub_group_size' is deprecated}}
134-
[[intel::reqd_sub_group_size(foo1() + 12)]] void func1();
105+
// expected-error@+2{{expression is not an integral constant expression}}
106+
// expected-note@+1{{non-constexpr function 'foo1' cannot be used in a constant expression}}
107+
[[sycl::reqd_sub_group_size(foo1() + 12)]] void func1();
135108

136109
// Test that checks expression is a constant expression.
137110
constexpr int bar1() { return 0; }
138-
// expected-note@+2 {{did you mean to use 'sycl::reqd_sub_group_size' instead?}}
139-
// expected-warning@+1{{attribute 'intel::reqd_sub_group_size' is deprecated}}
140-
[[intel::reqd_sub_group_size(bar1() + 12)]] void func2(); // OK
111+
[[sycl::reqd_sub_group_size(bar1() + 12)]] void func2(); // OK
141112

142113
// Test that checks template parameter support on member function of class template.
143114
template <int SIZE>
144115
class KernelFunctor {
145116
public:
146-
// expected-note@+3 {{did you mean to use 'sycl::reqd_sub_group_size' instead?}}
147-
// expected-warning@+2{{attribute 'intel::reqd_sub_group_size' is deprecated}}
148117
// expected-error@+1{{'reqd_sub_group_size' attribute requires a positive integral compile time constant expression}}
149-
[[intel::reqd_sub_group_size(SIZE)]] void operator()() {}
118+
[[sycl::reqd_sub_group_size(SIZE)]] void operator()() {}
150119
};
151120

152121
int check() {
@@ -157,22 +126,16 @@ int check() {
157126

158127
// Test that checks template parameter support on function.
159128
template <int N>
160-
// expected-note@+4 {{did you mean to use 'sycl::reqd_sub_group_size' instead?}}
161-
// expected-warning@+3{{attribute 'intel::reqd_sub_group_size' is deprecated}}
162129
// expected-error@+2{{'reqd_sub_group_size' attribute requires a positive integral compile time constant expression}}
163130
// expected-warning@+1 {{'reqd_sub_group_size' attribute can only be applied to a SYCL kernel function}}
164-
[[intel::reqd_sub_group_size(N)]] void func3() {}
131+
[[sycl::reqd_sub_group_size(N)]] void func3() {}
165132

166133
template <int N>
167-
// expected-note@+3 {{did you mean to use 'sycl::reqd_sub_group_size' instead?}}
168-
// expected-warning@+2{{attribute 'intel::reqd_sub_group_size' is deprecated}}
169134
// expected-warning@+1 {{'reqd_sub_group_size' attribute can only be applied to a SYCL kernel function}}
170-
[[intel::reqd_sub_group_size(4)]] void func4(); // expected-note {{previous attribute is here}}
135+
[[sycl::reqd_sub_group_size(4)]] void func4(); // expected-note {{previous attribute is here}}
171136

172137
template <int N>
173-
// expected-note@+2{{did you mean to use 'sycl::reqd_sub_group_size' instead?}}
174-
// expected-warning@+1{{attribute 'intel::reqd_sub_group_size' is deprecated}}
175-
[[intel::reqd_sub_group_size(N)]] void func4() {} // expected-warning {{attribute 'reqd_sub_group_size' is already applied with different arguments}}
138+
[[sycl::reqd_sub_group_size(N)]] void func4() {} // expected-warning {{attribute 'reqd_sub_group_size' is already applied with different arguments}}
176139

177140
int check1() {
178141
// no error expected

clang/test/SemaSYCL/sub-group-size.cpp

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,35 +3,29 @@
33
// RUN: %clang_cc1 -internal-isystem %S/Inputs -fsycl-is-device -fsycl-default-sub-group-size=10 -sycl-std=2020 -internal-isystem %S/Inputs -fsyntax-only -verify=expected,primary %s
44

55
// Validate the semantic analysis checks for the interaction betwen the
6-
// named_sub_group_size and sub_group_size attributes. These are not able to be
6+
// named_sub_group_size and reqd_sub_group_size attributes. These are not able to be
77
// combined, and require that they only be applied to non-sycl-kernel/
88
// non-sycl-device functions if they match the kernel they are being called
99
// from.
1010

1111
#include "Inputs/sycl.hpp"
1212

13-
// expected-note@+4 {{did you mean to use 'sycl::reqd_sub_group_size' instead?}}
14-
// expected-warning@+3 {{attribute 'intel::sub_group_size' is deprecated}}
15-
// expected-error@+2 {{'named_sub_group_size' and 'sub_group_size' attributes are not compatible}}
13+
// expected-error@+2 {{'named_sub_group_size' and 'reqd_sub_group_size' attributes are not compatible}}
1614
// expected-note@+1 {{conflicting attribute is here}}
17-
[[intel::sub_group_size(1)]] [[intel::named_sub_group_size(automatic)]] void f1();
18-
// expected-error@+2 {{'sub_group_size' and 'named_sub_group_size' attributes are not compatible}}
15+
[[sycl::reqd_sub_group_size(1)]] [[intel::named_sub_group_size(automatic)]] void f1();
16+
// expected-error@+2 {{'reqd_sub_group_size' and 'named_sub_group_size' attributes are not compatible}}
1917
// expected-note@+1 {{conflicting attribute is here}}
20-
[[intel::named_sub_group_size(primary)]] [[intel::sub_group_size(1)]] void f2();
18+
[[intel::named_sub_group_size(primary)]] [[sycl::reqd_sub_group_size(1)]] void f2();
2119

22-
// expected-note@+3 {{did you mean to use 'sycl::reqd_sub_group_size' instead?}}
23-
// expected-warning@+2 {{attribute 'intel::sub_group_size' is deprecated}}
2420
// expected-note@+1 {{conflicting attribute is here}}
25-
[[intel::sub_group_size(1)]] void f3();
26-
// expected-error@+1 {{'named_sub_group_size' and 'sub_group_size' attributes are not compatible}}
21+
[[sycl::reqd_sub_group_size(1)]] void f3();
22+
// expected-error@+1 {{'named_sub_group_size' and 'reqd_sub_group_size' attributes are not compatible}}
2723
[[intel::named_sub_group_size(primary)]] void f3();
2824

2925
// expected-note@+1 {{conflicting attribute is here}}
3026
[[intel::named_sub_group_size(primary)]] void f4();
31-
// expected-note@+3 {{did you mean to use 'sycl::reqd_sub_group_size' instead?}}
32-
// expected-warning@+2 {{attribute 'intel::sub_group_size' is deprecated}}
33-
// expected-error@+1 {{'sub_group_size' and 'named_sub_group_size' attributes are not compatible}}
34-
[[intel::sub_group_size(1)]] void f4();
27+
// expected-error@+1 {{'reqd_sub_group_size' and 'named_sub_group_size' attributes are not compatible}}
28+
[[sycl::reqd_sub_group_size(1)]] void f4();
3529

3630
// expected-note@+1 {{previous attribute is here}}
3731
[[intel::named_sub_group_size(automatic)]] void f5();
@@ -165,9 +159,7 @@ void calls_kernel_5() {
165159

166160
// Don't diag with the old sub-group-size.
167161
void calls_kernel_6() {
168-
// expected-note@+2 {{did you mean to use 'sycl::reqd_sub_group_size' instead?}}
169-
// expected-warning@+1{{attribute 'intel::reqd_sub_group_size' is deprecated}}
170-
sycl::kernel_single_task<class Kernel6>([]() [[intel::reqd_sub_group_size(10)]] { // #Kernel6
162+
sycl::kernel_single_task<class Kernel6>([]() [[sycl::reqd_sub_group_size(10)]] { // #Kernel6
171163
NoAttrExternalNotDefined();
172164
});
173165
}

clang/test/SemaSYCL/sycl-attr-warn-non-kernel.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %clang_cc1 -fsycl-is-device -Wno-error=deprecated-declarations -internal-isystem %S/Inputs -fsyntax-only -verify -pedantic %s
1+
// RUN: %clang_cc1 -fsycl-is-device -internal-isystem %S/Inputs -fsyntax-only -verify -pedantic %s
22

33
// The test check issuing diagnostics for attributes that can not be applied to a non SYCL kernel function
44

0 commit comments

Comments
 (0)