1
- // RUN: %clangxx -fsycl -fsycl-device-only - fsyntax-only -Xclang -verify %s
1
+ // RUN: %clangxx -fsycl -fsyntax-only -Xclang -verify %s
2
2
// expected-no-diagnostics
3
3
4
4
#include < sycl/ext/intel/experimental/esimd.hpp>
7
7
8
8
using namespace sycl ::ext::intel::experimental::esimd;
9
9
10
- bool test_simd_ctors () __attribute__((sycl_device)) {
10
+ bool test_simd_ctors () SYCL_ESIMD_FUNCTION {
11
11
simd<int , 16 > v0 = 1 ;
12
12
simd<int , 16 > v1 (v0);
13
13
simd<int , 16 > v2 (simd<int , 16 >(0 , 1 ));
14
14
const simd<int , 16 > v3{0 , 2 , 4 , 6 , 1 , 3 , 5 , 7 };
15
15
return v0[0 ] + v1[1 ] + v2[2 ] + v3[3 ] == 1 + 1 + 2 + 6 ;
16
16
}
17
17
18
- void test_conversion () __attribute__((sycl_device)) {
18
+ void test_conversion () SYCL_ESIMD_FUNCTION {
19
19
simd<int , 32 > v = 3 ;
20
20
simd<float , 32 > f = v;
21
21
simd<char , 32 > c = f;
22
22
simd<char , 16 > c1 = f.select <16 , 1 >(0 );
23
23
f = v + static_cast <simd<int , 32 >>(c);
24
24
}
25
25
26
- bool test_1d_select () __attribute__((sycl_device)) {
26
+ bool test_1d_select () SYCL_ESIMD_FUNCTION {
27
27
simd<int , 32 > v = 0 ;
28
28
v.select <8 , 1 >(0 ) = 1 ;
29
29
v.select <8 , 1 >(8 ) = 2 ;
@@ -32,7 +32,7 @@ bool test_1d_select() __attribute__((sycl_device)) {
32
32
return v[0 ] + v[8 ] + v[16 ] + v[24 ] == (1 + 2 + 3 + 4 );
33
33
}
34
34
35
- bool test_simd_format () __attribute__((sycl_device)) {
35
+ bool test_simd_format () SYCL_ESIMD_FUNCTION {
36
36
simd<int , 16 > v{0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 };
37
37
auto ref1 = v.format <short >();
38
38
auto ref2 = v.format <double >();
@@ -41,7 +41,7 @@ bool test_simd_format() __attribute__((sycl_device)) {
41
41
(decltype (ref3)::getSizeX () == 4 ) && (decltype (ref3)::getSizeY () == 8 );
42
42
}
43
43
44
- bool test_simd_select () __attribute__((sycl_device)) {
44
+ bool test_simd_select () SYCL_ESIMD_FUNCTION {
45
45
simd<int , 16 > v (0 , 1 );
46
46
auto ref0 = v.select <4 , 2 >(1 ); // r{1, 3, 5, 7}
47
47
auto ref1 = v.format <int , 4 , 4 >(); // 0,1,2,3;
@@ -53,21 +53,21 @@ bool test_simd_select() __attribute__((sycl_device)) {
53
53
decltype (ref2)::getStrideY () == 1 ;
54
54
}
55
55
56
- bool test_2d_offset () __attribute__((sycl_device)) {
56
+ bool test_2d_offset () SYCL_ESIMD_FUNCTION {
57
57
simd<int , 16 > v = 0 ;
58
58
auto ref = v.format <short , 8 , 4 >();
59
59
return ref.select <2 , 2 , 2 , 2 >(2 , 1 ).getOffsetX () == 1 &&
60
60
ref.select <2 , 2 , 2 , 2 >(2 , 1 ).getOffsetY () == 2 ;
61
61
}
62
62
63
- bool test_simd_bin_op_promotion () __attribute__((sycl_device)) {
63
+ bool test_simd_bin_op_promotion () SYCL_ESIMD_FUNCTION {
64
64
simd<short , 8 > v0 = std::numeric_limits<short >::max ();
65
65
simd<short , 8 > v1 = 1 ;
66
66
simd<int , 8 > v2 = v0 + v1;
67
67
return v2[0 ] == 32768 ;
68
68
}
69
69
70
- bool test_simd_bin_ops () __attribute__((sycl_device)) {
70
+ bool test_simd_bin_ops () SYCL_ESIMD_FUNCTION {
71
71
simd<int , 8 > v0 = 1 ;
72
72
simd<int , 8 > v1 = 2 ;
73
73
v0 += v1;
@@ -82,7 +82,7 @@ bool test_simd_bin_ops() __attribute__((sycl_device)) {
82
82
return v0[0 ] == 1 ;
83
83
}
84
84
85
- bool test_simd_unary_ops () __attribute__((sycl_device)) {
85
+ bool test_simd_unary_ops () SYCL_ESIMD_FUNCTION {
86
86
simd<int , 8 > v0 = 1 ;
87
87
simd<int , 8 > v1 = 2 ;
88
88
v0 <<= v1;
@@ -92,7 +92,7 @@ bool test_simd_unary_ops() __attribute__((sycl_device)) {
92
92
return v1[0 ] == 1 ;
93
93
}
94
94
95
- bool test_nested_1d_select () __attribute__((sycl_device)) {
95
+ bool test_nested_1d_select () SYCL_ESIMD_FUNCTION {
96
96
simd<int , 8 > r0 (0 , 1 );
97
97
98
98
auto r1 = r0.select <4 , 2 >(0 );
@@ -103,7 +103,7 @@ bool test_nested_1d_select() __attribute__((sycl_device)) {
103
103
return r0[4 ] == 37 ;
104
104
}
105
105
106
- bool test_format_1d_read () __attribute__((sycl_device)) {
106
+ bool test_format_1d_read () SYCL_ESIMD_FUNCTION {
107
107
simd<int , 8 > r = 0x0FF00F0F ;
108
108
auto rl = r.format <short >();
109
109
auto rl2 = rl.select <8 , 2 >(0 ); // 0F0F
@@ -112,7 +112,7 @@ bool test_format_1d_read() __attribute__((sycl_device)) {
112
112
return rl2[0 ] == 0x0F0F && rh2[0 ] == 0x0FF0 ;
113
113
}
114
114
115
- bool test_format_1d_write () __attribute__((sycl_device)) {
115
+ bool test_format_1d_write () SYCL_ESIMD_FUNCTION {
116
116
simd<int , 8 > r;
117
117
auto rl = r.format <short >();
118
118
auto rl2 = rl.select <8 , 2 >(0 );
@@ -122,7 +122,7 @@ bool test_format_1d_write() __attribute__((sycl_device)) {
122
122
return r[0 ] == 0x0FF0 ;
123
123
}
124
124
125
- bool test_format_1d_read_write_nested () __attribute__((sycl_device)) {
125
+ bool test_format_1d_read_write_nested () SYCL_ESIMD_FUNCTION {
126
126
simd<int , 8 > v = 0 ;
127
127
auto r1 = v.format <short >();
128
128
auto r11 = r1.select <8 , 1 >(0 );
@@ -134,39 +134,39 @@ bool test_format_1d_read_write_nested() __attribute__((sycl_device)) {
134
134
return v[0 ] == 1 && v[4 ] == 2 ;
135
135
}
136
136
137
- bool test_format_2d_read () __attribute__((sycl_device)) {
137
+ bool test_format_2d_read () SYCL_ESIMD_FUNCTION {
138
138
simd<int , 8 > v0 (0 , 1 );
139
139
auto r1 = v0.format <int , 2 , 4 >();
140
140
simd<int , 4 > v1 = r1.select <1 , 0 , 4 , 1 >(1 , 0 ).read (); // second row
141
141
return v1[0 ] == 4 ;
142
142
}
143
143
144
- bool test_format_2d_write () __attribute__((sycl_device)) {
144
+ bool test_format_2d_write () SYCL_ESIMD_FUNCTION {
145
145
simd<int , 8 > v0 (0 , 1 );
146
146
auto r1 = v0.format <int , 2 , 4 >();
147
147
r1.select <1 , 0 , 4 , 1 >(1 , 0 ) = 37 ;
148
148
return v0[4 ] == 37 ;
149
149
}
150
150
151
- bool test_select_rvalue () __attribute__((sycl_device)) {
151
+ bool test_select_rvalue () SYCL_ESIMD_FUNCTION {
152
152
simd<int , 8 > v0 (0 , 1 );
153
153
v0.select <4 , 2 >(1 ).select <2 , 2 >(0 ) = 37 ;
154
154
return v0[5 ] == 37 ;
155
155
}
156
156
157
- auto test_format_1d_write_rvalue () __attribute__((sycl_device)) {
157
+ auto test_format_1d_write_rvalue () SYCL_ESIMD_FUNCTION {
158
158
simd<int , 8 > v0 = 0x0F0F0F0F ;
159
159
v0.format <short >().select <8 , 2 >(0 ) = 0x0E0E ;
160
160
return v0[2 ] == 0x0E0E0E0E ;
161
161
}
162
162
163
- bool test_format_2d_write_rvalue () __attribute__((sycl_device)) {
163
+ bool test_format_2d_write_rvalue () SYCL_ESIMD_FUNCTION {
164
164
simd<int , 8 > v0 (0 , 1 );
165
165
v0.format <int , 2 , 4 >().select <1 , 0 , 4 , 1 >(0 , 0 ) = 37 ;
166
166
return v0[3 ] == 37 ;
167
167
}
168
168
169
- auto test_format_2d_read_rvalue () __attribute__((sycl_device)) {
169
+ auto test_format_2d_read_rvalue () SYCL_ESIMD_FUNCTION {
170
170
simd<int , 8 > v0 (0 , 1 );
171
171
auto r1 = v0.format <int , 2 , 4 >()
172
172
.select <1 , 0 , 4 , 1 >(1 , 0 )
@@ -175,7 +175,7 @@ auto test_format_2d_read_rvalue() __attribute__((sycl_device)) {
175
175
return r1[0 ] == 5 ;
176
176
}
177
177
178
- bool test_row_read_write () __attribute__((sycl_device)) {
178
+ bool test_row_read_write () SYCL_ESIMD_FUNCTION {
179
179
simd<int , 16 > v0 (0 , 1 );
180
180
auto m = v0.format <int , 4 , 4 >();
181
181
@@ -190,7 +190,7 @@ bool test_row_read_write() __attribute__((sycl_device)) {
190
190
return r0[0 ] == 8 && r1[0 ] == 16 ;
191
191
}
192
192
193
- bool test_column_read_write () __attribute__((sycl_device)) {
193
+ bool test_column_read_write () SYCL_ESIMD_FUNCTION {
194
194
simd<int , 4 > v0 (0 , 1 );
195
195
auto m = v0.format <int , 2 , 2 >();
196
196
@@ -203,35 +203,35 @@ bool test_column_read_write() __attribute__((sycl_device)) {
203
203
return v0[0 ] == 1 && v0[3 ] == 4 ;
204
204
}
205
205
206
- bool test_replicate () __attribute__((sycl_device)) {
206
+ bool test_replicate () SYCL_ESIMD_FUNCTION {
207
207
simd<int , 8 > v0 (0 , 1 );
208
208
auto v0_rep = v0.replicate <1 >();
209
209
210
210
return v0[0 ] == v0_rep[0 ] && v0[7 ] == v0_rep[7 ];
211
211
}
212
212
213
- bool test_replicate1 () __attribute__((sycl_device)) {
213
+ bool test_replicate1 () SYCL_ESIMD_FUNCTION {
214
214
simd<int , 8 > v0 (0 , 1 );
215
215
auto v0_rep = v0.replicate <4 , 2 >(2 );
216
216
217
217
return v0[2 ] == v0_rep[2 ] && v0[3 ] == v0_rep[5 ];
218
218
}
219
219
220
- bool test_replicate2 () __attribute__((sycl_device)) {
220
+ bool test_replicate2 () SYCL_ESIMD_FUNCTION {
221
221
simd<int , 8 > v0 (0 , 1 );
222
222
auto v0_rep = v0.replicate <2 , 4 , 2 >(1 );
223
223
224
224
return v0_rep[0 ] == v0[1 ] && v0_rep[1 ] == v0[2 ] && v0_rep[2 ] == v0[5 ];
225
225
}
226
226
227
- bool test_replicate3 () __attribute__((sycl_device)) {
227
+ bool test_replicate3 () SYCL_ESIMD_FUNCTION {
228
228
simd<int , 8 > v0 (0 , 1 );
229
229
auto v0_rep = v0.replicate <2 , 4 , 2 , 2 >(1 );
230
230
231
231
return v0_rep[0 ] == v0[1 ] && v0_rep[1 ] == v0[3 ] && v0_rep[2 ] == v0[5 ];
232
232
}
233
233
234
- bool test_simd_iselect () __attribute__((sycl_device)) {
234
+ bool test_simd_iselect () SYCL_ESIMD_FUNCTION {
235
235
simd<int , 16 > v (0 , 1 );
236
236
simd<ushort, 8 > a (0 , 2 );
237
237
auto data = v.iselect (a);
0 commit comments