@@ -80,6 +80,50 @@ __esimd_raw_sends2(uint8_t modifier, uint8_t execSize,
80
80
}
81
81
#endif // __SYCL_DEVICE_ONLY__
82
82
83
+ // \brief Raw sends.
84
+ //
85
+ // @tparam modifier the send message flags (Bit-0: isSendc, Bit-1: isEOT).
86
+ //
87
+ // @tparam execSize the execution size.
88
+ //
89
+ // @tparam numSrc0 the number of GRFs for source-0.
90
+ //
91
+ // @tparam numSrc1 the number of GRFs for source-1.
92
+ //
93
+ // @tparam numDst the number of GRFs for destination.
94
+ //
95
+ // @tparam sfid the shared function ID.
96
+ //
97
+ // @param pred the predicate to specify enabled channels.
98
+ //
99
+ // @param exDesc the extended message descriptor.
100
+ //
101
+ // @param msgDesc the message descriptor.
102
+ //
103
+ // @param msgSrc0 the first source operand of send message.
104
+ //
105
+ // @param msgSrc1 the second source operand of send message.
106
+ //
107
+ // @param msgDst the destination operand of send message.
108
+ //
109
+ // Returns a simd vector of type Ty1 and size N1.
110
+ template <uint8_t modifier, uint8_t execSize, uint8_t numSrc0, uint8_t numSrc1,
111
+ uint8_t numDst, uint8_t sfid, typename Ty1, int N1, typename Ty2,
112
+ int N2, typename Ty3, int N3, int N = 16 >
113
+ __ESIMD_INTRIN __ESIMD_DNS::vector_type_t <Ty1, N1>
114
+ __esimd_raw_sends2_constexpr (__ESIMD_DNS::simd_mask_storage_t <N> pred,
115
+ uint32_t exDesc, uint32_t msgDesc,
116
+ __ESIMD_DNS::vector_type_t <Ty2, N2> msgSrc0,
117
+ __ESIMD_DNS::vector_type_t <Ty3, N3> msgSrc1,
118
+ __ESIMD_DNS::vector_type_t <Ty1, N1> msgDst)
119
+ #ifdef __SYCL_DEVICE_ONLY__
120
+ ;
121
+ #else
122
+ {
123
+ __ESIMD_UNSUPPORTED_ON_HOST;
124
+ }
125
+ #endif // __SYCL_DEVICE_ONLY__
126
+
83
127
// \brief Raw send.
84
128
//
85
129
// @param modifier the send message flags (Bit-0: isSendc, Bit-1: isEOT).
@@ -121,6 +165,45 @@ __esimd_raw_send2(uint8_t modifier, uint8_t execSize,
121
165
}
122
166
#endif // __SYCL_DEVICE_ONLY__
123
167
168
+ // \brief Raw send.
169
+ //
170
+ // @tparam modifier the send message flags (Bit-0: isSendc, Bit-1: isEOT).
171
+ //
172
+ // @tparam execSize the execution size.
173
+ //
174
+ // @tparam numSrc0 the number of GRFs for source-0.
175
+ //
176
+ // @tparam numDst the number of GRFs for destination.
177
+ //
178
+ // @tparam sfid the shared function ID.
179
+ //
180
+ // @param pred the predicate to specify enabled channels.
181
+ //
182
+ // @param exDesc the extended message descriptor.
183
+ //
184
+ // @param msgDesc the message descriptor.
185
+ //
186
+ // @param msgSrc0 the first source operand of send message.
187
+ //
188
+ // @param msgDst the destination operand of send message.
189
+ //
190
+ // Returns a simd vector of type Ty1 and size N1.
191
+ //
192
+ template <uint8_t modifier, uint8_t execSize, uint8_t numSrc0, uint8_t numDst,
193
+ uint8_t sfid, typename Ty1, int N1, typename Ty2, int N2, int N = 16 >
194
+ __ESIMD_INTRIN __ESIMD_DNS::vector_type_t <Ty1, N1>
195
+ __esimd_raw_send2_constexpr (__ESIMD_DNS::simd_mask_storage_t <N> pred,
196
+ uint32_t exDesc, uint32_t msgDesc,
197
+ __ESIMD_DNS::vector_type_t <Ty2, N2> msgSrc0,
198
+ __ESIMD_DNS::vector_type_t <Ty1, N1> msgDst)
199
+ #ifdef __SYCL_DEVICE_ONLY__
200
+ ;
201
+ #else
202
+ {
203
+ __ESIMD_UNSUPPORTED_ON_HOST;
204
+ }
205
+ #endif // __SYCL_DEVICE_ONLY__
206
+
124
207
// \brief Raw sends.
125
208
//
126
209
// @param modifier the send message flags (Bit-0: isSendc, Bit-1: isEOT).
@@ -161,6 +244,42 @@ __esimd_raw_sends2_noresult(uint8_t modifier, uint8_t execSize,
161
244
}
162
245
#endif // __SYCL_DEVICE_ONLY__
163
246
247
+ // \brief Raw sends.
248
+ //
249
+ // @tparam modifier the send message flags (Bit-0: isSendc, Bit-1: isEOT).
250
+ //
251
+ // @tparam execSize the execution size.
252
+ //
253
+ // @tparam numSrc0 the number of GRFs for source-0.
254
+ //
255
+ // @tparam numSrc1 the number of GRFs for source-1.
256
+ //
257
+ // @tparam sfid the shared function ID.
258
+ //
259
+ // @param pred the predicate to specify enabled channels.
260
+ //
261
+ // @param exDesc the extended message descriptor.
262
+ //
263
+ // @param msgDesc the message descriptor.
264
+ //
265
+ // @param msgSrc0 the first source operand of send message.
266
+ //
267
+ // @param msgSrc1 the second source operand of send message.
268
+ //
269
+ template <uint8_t modifier, uint8_t execSize, uint8_t numSrc0, uint8_t numSrc1,
270
+ uint8_t sfid, typename Ty1, int N1, typename Ty2, int N2, int N = 16 >
271
+ __ESIMD_INTRIN void __esimd_raw_sends2_noresult_constexpr (
272
+ __ESIMD_DNS::simd_mask_storage_t <N> pred, uint32_t exDesc, uint32_t msgDesc,
273
+ __ESIMD_DNS::vector_type_t <Ty1, N1> msgSrc0,
274
+ __ESIMD_DNS::vector_type_t <Ty2, N2> msgSrc1)
275
+ #ifdef __SYCL_DEVICE_ONLY__
276
+ ;
277
+ #else
278
+ {
279
+ __ESIMD_UNSUPPORTED_ON_HOST;
280
+ }
281
+ #endif // __SYCL_DEVICE_ONLY__
282
+
164
283
// \brief Raw send.
165
284
//
166
285
// @param modifier the send message flags (Bit-0: isSendc, Bit-1: isEOT).
@@ -195,6 +314,37 @@ __esimd_raw_send2_noresult(uint8_t modifier, uint8_t execSize,
195
314
}
196
315
#endif // __SYCL_DEVICE_ONLY__
197
316
317
+ // \brief Raw send.
318
+ //
319
+ // @tparam modifier the send message flags (Bit-0: isSendc, Bit-1: isEOT).
320
+ //
321
+ // @tparam execSize the execution size.
322
+ //
323
+ // @tparam numSrc0 the number of GRFs for source-0.
324
+ //
325
+ // @tparam sfid the shared function ID.
326
+ //
327
+ // @param pred the predicate to specify enabled channels.
328
+ //
329
+ // @param exDesc the extended message descriptor.
330
+ //
331
+ // @param msgDesc the message descriptor.
332
+ //
333
+ // @param msgSrc0 the first source operand of send message.
334
+ //
335
+ template <uint8_t modifier, uint8_t execSize, uint8_t numSrc0, uint8_t sfid,
336
+ typename Ty1, int N1, int N = 16 >
337
+ __ESIMD_INTRIN void __esimd_raw_send2_noresult_constexpr (
338
+ __ESIMD_DNS::simd_mask_storage_t <N> pred, uint32_t exDesc, uint32_t msgDesc,
339
+ __ESIMD_DNS::vector_type_t <Ty1, N1> msgSrc0)
340
+ #ifdef __SYCL_DEVICE_ONLY__
341
+ ;
342
+ #else
343
+ {
344
+ __ESIMD_UNSUPPORTED_ON_HOST;
345
+ }
346
+ #endif // __SYCL_DEVICE_ONLY__
347
+
198
348
// / Represents named barrier synchronization for a subgroup of threads.
199
349
// / Available only on PVC
200
350
// /
0 commit comments