18
18
#include < assert.h>
19
19
#include < cstdint>
20
20
21
- #define __SIGD sycl::INTEL::gpu::detail
21
+ #define __SEIEED sycl::ext::intel::experimental::esimd::detail
22
+ #define __SEIEE sycl::ext::intel::experimental::esimd
22
23
23
24
// \brief __esimd_rdregion: region access intrinsic.
24
25
//
64
65
//
65
66
template <typename T, int N, int M, int VStride, int Width, int Stride,
66
67
int ParentWidth = 0 >
67
- SYCL_EXTERNAL SYCL_ESIMD_FUNCTION __SIGD ::vector_type_t <T, M>
68
- __esimd_rdregion (__SIGD ::vector_type_t <T, N> Input, uint16_t Offset);
68
+ SYCL_EXTERNAL SYCL_ESIMD_FUNCTION __SEIEED ::vector_type_t <T, M>
69
+ __esimd_rdregion (__SEIEED ::vector_type_t <T, N> Input, uint16_t Offset);
69
70
70
71
template <typename T, int N, int M, int ParentWidth = 0 >
71
- SYCL_EXTERNAL SYCL_ESIMD_FUNCTION __SIGD ::vector_type_t <T, M>
72
- __esimd_rdindirect (__SIGD ::vector_type_t <T, N> Input,
73
- __SIGD ::vector_type_t <uint16_t , M> Offset);
72
+ SYCL_EXTERNAL SYCL_ESIMD_FUNCTION __SEIEED ::vector_type_t <T, M>
73
+ __esimd_rdindirect (__SEIEED ::vector_type_t <T, N> Input,
74
+ __SEIEED ::vector_type_t <uint16_t , M> Offset);
74
75
75
76
// __esimd_wrregion returns the updated vector with the region updated.
76
77
//
@@ -121,28 +122,30 @@ __esimd_rdindirect(__SIGD::vector_type_t<T, N> Input,
121
122
//
122
123
template <typename T, int N, int M, int VStride, int Width, int Stride,
123
124
int ParentWidth = 0 >
124
- SYCL_EXTERNAL SYCL_ESIMD_FUNCTION __SIGD ::vector_type_t <T, N>
125
- __esimd_wrregion (__SIGD ::vector_type_t <T, N> OldVal,
126
- __SIGD ::vector_type_t <T, M> NewVal, uint16_t Offset,
127
- sycl::INTEL::gpu ::mask_type_t <M> Mask = 1 );
125
+ SYCL_EXTERNAL SYCL_ESIMD_FUNCTION __SEIEED ::vector_type_t <T, N>
126
+ __esimd_wrregion (__SEIEED ::vector_type_t <T, N> OldVal,
127
+ __SEIEED ::vector_type_t <T, M> NewVal, uint16_t Offset,
128
+ __SEIEE ::mask_type_t <M> Mask = 1 );
128
129
129
130
template <typename T, int N, int M, int ParentWidth = 0 >
130
- SYCL_EXTERNAL SYCL_ESIMD_FUNCTION __SIGD ::vector_type_t <T, N>
131
- __esimd_wrindirect (__SIGD ::vector_type_t <T, N> OldVal,
132
- __SIGD ::vector_type_t <T, M> NewVal,
133
- __SIGD ::vector_type_t <uint16_t , M> Offset,
134
- sycl::INTEL::gpu ::mask_type_t <M> Mask = 1 );
131
+ SYCL_EXTERNAL SYCL_ESIMD_FUNCTION __SEIEED ::vector_type_t <T, N>
132
+ __esimd_wrindirect (__SEIEED ::vector_type_t <T, N> OldVal,
133
+ __SEIEED ::vector_type_t <T, M> NewVal,
134
+ __SEIEED ::vector_type_t <uint16_t , M> Offset,
135
+ __SEIEE ::mask_type_t <M> Mask = 1 );
135
136
136
137
__SYCL_INLINE_NAMESPACE (cl) {
137
138
namespace sycl {
138
- namespace INTEL {
139
- namespace gpu {
139
+ namespace ext {
140
+ namespace intel {
141
+ namespace experimental {
142
+ namespace esimd {
140
143
namespace detail {
141
144
142
145
// / read from a basic region of a vector, return a vector
143
146
template <typename BT, int BN, typename RTy>
144
- __SIGD ::vector_type_t <typename RTy::element_type, RTy::length> ESIMD_INLINE
145
- readRegion (const __SIGD ::vector_type_t <BT, BN> &Base, RTy Region) {
147
+ __SEIEED ::vector_type_t <typename RTy::element_type, RTy::length> ESIMD_INLINE
148
+ readRegion (const __SEIEED ::vector_type_t <BT, BN> &Base, RTy Region) {
146
149
using ElemTy = typename RTy::element_type;
147
150
auto Base1 = bitcast<ElemTy, BT, BN>(Base);
148
151
constexpr int Bytes = BN * sizeof (BT);
@@ -163,8 +166,9 @@ readRegion(const __SIGD::vector_type_t<BT, BN> &Base, RTy Region) {
163
166
164
167
// / read from a nested region of a vector, return a vector
165
168
template <typename BT, int BN, typename T, typename U>
166
- ESIMD_INLINE __SIGD::vector_type_t <typename T::element_type, T::length>
167
- readRegion (const __SIGD::vector_type_t <BT, BN> &Base, std::pair<T, U> Region) {
169
+ ESIMD_INLINE __SEIEED::vector_type_t <typename T::element_type, T::length>
170
+ readRegion (const __SEIEED::vector_type_t <BT, BN> &Base,
171
+ std::pair<T, U> Region) {
168
172
// parent-region type
169
173
using PaTy = typename shape_type<U>::type;
170
174
constexpr int BN1 = PaTy::length;
@@ -206,8 +210,11 @@ readRegion(const __SIGD::vector_type_t<BT, BN> &Base, std::pair<T, U> Region) {
206
210
}
207
211
208
212
} // namespace detail
209
- } // namespace gpu
210
- } // namespace INTEL
213
+
214
+ } // namespace esimd
215
+ } // namespace experimental
216
+ } // namespace intel
217
+ } // namespace ext
211
218
} // namespace sycl
212
219
} // __SYCL_INLINE_NAMESPACE(cl)
213
220
@@ -217,40 +224,40 @@ readRegion(const __SIGD::vector_type_t<BT, BN> &Base, std::pair<T, U> Region) {
217
224
// optimization on simd object
218
225
//
219
226
template <typename T, int N>
220
- SYCL_EXTERNAL SYCL_ESIMD_FUNCTION __SIGD ::vector_type_t <T, N>
221
- __esimd_vload (const __SIGD ::vector_type_t <T, N> *ptr);
227
+ SYCL_EXTERNAL SYCL_ESIMD_FUNCTION __SEIEED ::vector_type_t <T, N>
228
+ __esimd_vload (const __SEIEED ::vector_type_t <T, N> *ptr);
222
229
223
230
// vstore
224
231
//
225
232
// map to the backend vstore intrinsic, used by compiler to control
226
233
// optimization on simd object
227
234
template <typename T, int N>
228
235
SYCL_EXTERNAL SYCL_ESIMD_FUNCTION void
229
- __esimd_vstore (__SIGD ::vector_type_t <T, N> *ptr,
230
- __SIGD ::vector_type_t <T, N> vals);
236
+ __esimd_vstore (__SEIEED ::vector_type_t <T, N> *ptr,
237
+ __SEIEED ::vector_type_t <T, N> vals);
231
238
232
239
template <typename T, int N>
233
240
SYCL_EXTERNAL SYCL_ESIMD_FUNCTION uint16_t
234
- __esimd_any (__SIGD ::vector_type_t <T, N> src);
241
+ __esimd_any (__SEIEED ::vector_type_t <T, N> src);
235
242
236
243
template <typename T, int N>
237
244
SYCL_EXTERNAL SYCL_ESIMD_FUNCTION uint16_t
238
- __esimd_all (__SIGD ::vector_type_t <T, N> src);
245
+ __esimd_all (__SEIEED ::vector_type_t <T, N> src);
239
246
240
247
#ifndef __SYCL_DEVICE_ONLY__
241
248
242
249
// Implementations of ESIMD intrinsics for the SYCL host device
243
250
template <typename T, int N, int M, int VStride, int Width, int Stride,
244
251
int ParentWidth>
245
- SYCL_EXTERNAL SYCL_ESIMD_FUNCTION __SIGD ::vector_type_t <T, M>
246
- __esimd_rdregion (__SIGD ::vector_type_t <T, N> Input, uint16_t Offset) {
252
+ SYCL_EXTERNAL SYCL_ESIMD_FUNCTION __SEIEED ::vector_type_t <T, M>
253
+ __esimd_rdregion (__SEIEED ::vector_type_t <T, N> Input, uint16_t Offset) {
247
254
uint16_t EltOffset = Offset / sizeof (T);
248
255
assert (Offset % sizeof (T) == 0 );
249
256
250
257
int NumRows = M / Width;
251
258
assert (M % Width == 0 );
252
259
253
- __SIGD ::vector_type_t <T, M> Result;
260
+ __SEIEED ::vector_type_t <T, M> Result;
254
261
int Index = 0 ;
255
262
for (int i = 0 ; i < NumRows; ++i) {
256
263
for (int j = 0 ; j < Width; ++j) {
@@ -261,10 +268,10 @@ __esimd_rdregion(__SIGD::vector_type_t<T, N> Input, uint16_t Offset) {
261
268
}
262
269
263
270
template <typename T, int N, int M, int ParentWidth>
264
- SYCL_EXTERNAL SYCL_ESIMD_FUNCTION __SIGD ::vector_type_t <T, M>
265
- __esimd_rdindirect (__SIGD ::vector_type_t <T, N> Input,
266
- __SIGD ::vector_type_t <uint16_t , M> Offset) {
267
- __SIGD ::vector_type_t <T, M> Result;
271
+ SYCL_EXTERNAL SYCL_ESIMD_FUNCTION __SEIEED ::vector_type_t <T, M>
272
+ __esimd_rdindirect (__SEIEED ::vector_type_t <T, N> Input,
273
+ __SEIEED ::vector_type_t <uint16_t , M> Offset) {
274
+ __SEIEED ::vector_type_t <T, M> Result;
268
275
for (int i = 0 ; i < M; ++i) {
269
276
uint16_t EltOffset = Offset[i] / sizeof (T);
270
277
assert (Offset[i] % sizeof (T) == 0 );
@@ -276,17 +283,17 @@ __esimd_rdindirect(__SIGD::vector_type_t<T, N> Input,
276
283
277
284
template <typename T, int N, int M, int VStride, int Width, int Stride,
278
285
int ParentWidth>
279
- SYCL_EXTERNAL SYCL_ESIMD_FUNCTION __SIGD ::vector_type_t <T, N>
280
- __esimd_wrregion (__SIGD ::vector_type_t <T, N> OldVal,
281
- __SIGD ::vector_type_t <T, M> NewVal, uint16_t Offset,
282
- sycl::INTEL::gpu ::mask_type_t <M> Mask) {
286
+ SYCL_EXTERNAL SYCL_ESIMD_FUNCTION __SEIEED ::vector_type_t <T, N>
287
+ __esimd_wrregion (__SEIEED ::vector_type_t <T, N> OldVal,
288
+ __SEIEED ::vector_type_t <T, M> NewVal, uint16_t Offset,
289
+ __SEIEE ::mask_type_t <M> Mask) {
283
290
uint16_t EltOffset = Offset / sizeof (T);
284
291
assert (Offset % sizeof (T) == 0 );
285
292
286
293
int NumRows = M / Width;
287
294
assert (M % Width == 0 );
288
295
289
- __SIGD ::vector_type_t <T, N> Result = OldVal;
296
+ __SEIEED ::vector_type_t <T, N> Result = OldVal;
290
297
int Index = 0 ;
291
298
for (int i = 0 ; i < NumRows; ++i) {
292
299
for (int j = 0 ; j < Width; ++j) {
@@ -299,12 +306,12 @@ __esimd_wrregion(__SIGD::vector_type_t<T, N> OldVal,
299
306
}
300
307
301
308
template <typename T, int N, int M, int ParentWidth>
302
- SYCL_EXTERNAL SYCL_ESIMD_FUNCTION __SIGD ::vector_type_t <T, N>
303
- __esimd_wrindirect (__SIGD ::vector_type_t <T, N> OldVal,
304
- __SIGD ::vector_type_t <T, M> NewVal,
305
- __SIGD ::vector_type_t <uint16_t , M> Offset,
306
- sycl::INTEL::gpu ::mask_type_t <M> Mask) {
307
- __SIGD ::vector_type_t <T, N> Result = OldVal;
309
+ SYCL_EXTERNAL SYCL_ESIMD_FUNCTION __SEIEED ::vector_type_t <T, N>
310
+ __esimd_wrindirect (__SEIEED ::vector_type_t <T, N> OldVal,
311
+ __SEIEED ::vector_type_t <T, M> NewVal,
312
+ __SEIEED ::vector_type_t <uint16_t , M> Offset,
313
+ __SEIEE ::mask_type_t <M> Mask) {
314
+ __SEIEED ::vector_type_t <T, N> Result = OldVal;
308
315
for (int i = 0 ; i < M; ++i) {
309
316
if (Mask[i]) {
310
317
uint16_t EltOffset = Offset[i] / sizeof (T);
@@ -318,4 +325,5 @@ __esimd_wrindirect(__SIGD::vector_type_t<T, N> OldVal,
318
325
319
326
#endif // __SYCL_DEVICE_ONLY__
320
327
321
- #undef __SIGD
328
+ #undef __SEIEE
329
+ #undef __SEIEED
0 commit comments