@@ -113,7 +113,8 @@ ESIMD_NODEBUG ESIMD_INLINE
113
113
std::is_integral<U>::value,
114
114
simd<T0, SZ>>
115
115
esimd_shl (simd<T1, SZ> src0, U src1, int flag = GENX_NOSAT) {
116
- typedef typename computation_type<decltype (src0), U>::type ComputationTy;
116
+ typedef
117
+ typename detail::computation_type<decltype (src0), U>::type ComputationTy;
117
118
typename detail::simd_type<ComputationTy>::type Src0 = src0;
118
119
typename detail::simd_type<ComputationTy>::type Src1 = src1;
119
120
@@ -151,7 +152,7 @@ ESIMD_NODEBUG ESIMD_INLINE typename sycl::detail::enable_if_t<
151
152
std::is_integral<T1>::value && std::is_integral<T2>::value,
152
153
typename sycl::detail::remove_const_t <T0>>
153
154
esimd_shl (T1 src0, T2 src1, int flag = GENX_NOSAT) {
154
- typedef typename computation_type<T1, T2>::type ComputationTy;
155
+ typedef typename detail:: computation_type<T1, T2>::type ComputationTy;
155
156
typename detail::simd_type<ComputationTy>::type Src0 = src0;
156
157
typename detail::simd_type<ComputationTy>::type Src1 = src1;
157
158
simd<T0, 1 > Result = esimd_shl<T0>(Src0, Src1, flag);
@@ -166,7 +167,8 @@ ESIMD_NODEBUG ESIMD_INLINE
166
167
std::is_integral<U>::value,
167
168
simd<T0, SZ>>
168
169
esimd_shr (simd<T1, SZ> src0, U src1, int flag = GENX_NOSAT) {
169
- typedef typename computation_type<decltype (src0), U>::type ComputationTy;
170
+ typedef
171
+ typename detail::computation_type<decltype (src0), U>::type ComputationTy;
170
172
typename detail::simd_type<ComputationTy>::type Src0 = src0;
171
173
typename detail::simd_type<ComputationTy>::type Src1 = src1;
172
174
typename detail::simd_type<ComputationTy>::type Result =
@@ -185,7 +187,7 @@ ESIMD_NODEBUG ESIMD_INLINE typename sycl::detail::enable_if_t<
185
187
std::is_integral<T1>::value && std::is_integral<T2>::value,
186
188
typename sycl::detail::remove_const_t <T0>>
187
189
esimd_shr (T1 src0, T2 src1, int flag = GENX_NOSAT) {
188
- typedef typename computation_type<T1, T2>::type ComputationTy;
190
+ typedef typename detail:: computation_type<T1, T2>::type ComputationTy;
189
191
typename detail::simd_type<ComputationTy>::type Src0 = src0;
190
192
typename detail::simd_type<ComputationTy>::type Src1 = src1;
191
193
simd<T0, 1 > Result = esimd_shr<T0>(Src0, Src1, flag);
@@ -207,7 +209,8 @@ ESIMD_NODEBUG ESIMD_INLINE
207
209
std::is_integral<U>::value,
208
210
simd<T0, SZ>>
209
211
esimd_rol (simd<T1, SZ> src0, U src1) {
210
- typedef typename computation_type<decltype (src0), U>::type ComputationTy;
212
+ typedef
213
+ typename detail::computation_type<decltype (src0), U>::type ComputationTy;
211
214
typename detail::simd_type<ComputationTy>::type Src0 = src0;
212
215
typename detail::simd_type<ComputationTy>::type Src1 = src1;
213
216
return __esimd_rol<T0>(Src0.data (), Src1.data ());
@@ -220,7 +223,7 @@ ESIMD_NODEBUG ESIMD_INLINE typename sycl::detail::enable_if_t<
220
223
std::is_integral<T1>::value && std::is_integral<T2>::value,
221
224
typename sycl::detail::remove_const_t <T0>>
222
225
esimd_rol (T1 src0, T2 src1) {
223
- typedef typename computation_type<T1, T2>::type ComputationTy;
226
+ typedef typename detail:: computation_type<T1, T2>::type ComputationTy;
224
227
typename detail::simd_type<ComputationTy>::type Src0 = src0;
225
228
typename detail::simd_type<ComputationTy>::type Src1 = src1;
226
229
simd<T0, 1 > Result = esimd_rol<T0>(Src0, Src1);
@@ -242,7 +245,8 @@ ESIMD_NODEBUG ESIMD_INLINE
242
245
std::is_integral<U>::value,
243
246
simd<T0, SZ>>
244
247
esimd_ror (simd<T1, SZ> src0, U src1) {
245
- typedef typename computation_type<decltype (src0), U>::type ComputationTy;
248
+ typedef
249
+ typename detail::computation_type<decltype (src0), U>::type ComputationTy;
246
250
typename detail::simd_type<ComputationTy>::type Src0 = src0;
247
251
typename detail::simd_type<ComputationTy>::type Src1 = src1;
248
252
return __esimd_ror<T0>(Src0.data (), Src1.data ());
@@ -255,7 +259,7 @@ ESIMD_NODEBUG ESIMD_INLINE typename sycl::detail::enable_if_t<
255
259
std::is_integral<T1>::value && std::is_integral<T2>::value,
256
260
typename sycl::detail::remove_const_t <T0>>
257
261
esimd_ror (T1 src0, T2 src1) {
258
- typedef typename computation_type<T1, T2>::type ComputationTy;
262
+ typedef typename detail:: computation_type<T1, T2>::type ComputationTy;
259
263
typename detail::simd_type<ComputationTy>::type Src0 = src0;
260
264
typename detail::simd_type<ComputationTy>::type Src1 = src1;
261
265
simd<T0, 1 > Result = esimd_ror<T0>(Src0, Src1);
@@ -270,7 +274,7 @@ ESIMD_NODEBUG ESIMD_INLINE
270
274
std::is_integral<U>::value,
271
275
simd<T0, SZ>>
272
276
esimd_lsr (simd<T1, SZ> src0, U src1, int flag = GENX_NOSAT) {
273
- typedef typename computation_type<T1, T1>::type IntermedTy;
277
+ typedef typename detail:: computation_type<T1, T1>::type IntermedTy;
274
278
typedef typename std::make_unsigned<IntermedTy>::type ComputationTy;
275
279
simd<ComputationTy, SZ> Src0 = src0;
276
280
simd<ComputationTy, SZ> Result = Src0.data () >> src1.data ();
@@ -288,7 +292,7 @@ ESIMD_NODEBUG ESIMD_INLINE typename sycl::detail::enable_if_t<
288
292
std::is_integral<T1>::value && std::is_integral<T2>::value,
289
293
typename sycl::detail::remove_const_t <T0>>
290
294
esimd_lsr (T1 src0, T2 src1, int flag = GENX_NOSAT) {
291
- typedef typename computation_type<T1, T2>::type ComputationTy;
295
+ typedef typename detail:: computation_type<T1, T2>::type ComputationTy;
292
296
typename detail::simd_type<ComputationTy>::type Src0 = src0;
293
297
typename detail::simd_type<ComputationTy>::type Src1 = src1;
294
298
simd<T0, 1 > Result = esimd_lsr<T0>(Src0, Src1, flag);
@@ -313,7 +317,7 @@ ESIMD_NODEBUG ESIMD_INLINE
313
317
std::is_integral<U>::value,
314
318
simd<T0, SZ>>
315
319
esimd_asr (simd<T1, SZ> src0, U src1, int flag = GENX_NOSAT) {
316
- typedef typename computation_type<T1, T1>::type IntermedTy;
320
+ typedef typename detail:: computation_type<T1, T1>::type IntermedTy;
317
321
typedef typename std::make_signed<IntermedTy>::type ComputationTy;
318
322
simd<ComputationTy, SZ> Src0 = src0;
319
323
simd<ComputationTy, SZ> Result = Src0 >> src1;
@@ -331,7 +335,7 @@ ESIMD_NODEBUG ESIMD_INLINE typename sycl::detail::enable_if_t<
331
335
std::is_integral<T1>::value && std::is_integral<T2>::value,
332
336
typename sycl::detail::remove_const_t <T0>>
333
337
esimd_asr (T1 src0, T2 src1, int flag = GENX_NOSAT) {
334
- typedef typename computation_type<T1, T2>::type ComputationTy;
338
+ typedef typename detail:: computation_type<T1, T2>::type ComputationTy;
335
339
typename detail::simd_type<ComputationTy>::type Src0 = src0;
336
340
typename detail::simd_type<ComputationTy>::type Src1 = src1;
337
341
simd<T0, 1 > Result = esimd_asr<T0>(Src0, Src1, flag);
@@ -358,7 +362,8 @@ ESIMD_NODEBUG ESIMD_INLINE
358
362
detail::is_dword_type<U>::value,
359
363
simd<T0, SZ>>
360
364
esimd_imul (simd<T0, SZ> &rmd, simd<T1, SZ> src0, U src1) {
361
- typedef typename computation_type<decltype (src0), U>::type ComputationTy;
365
+ typedef
366
+ typename detail::computation_type<decltype (src0), U>::type ComputationTy;
362
367
typename detail::simd_type<ComputationTy>::type Src0 = src0;
363
368
typename detail::simd_type<ComputationTy>::type Src1 = src1;
364
369
rmd = Src0 * Src1;
@@ -378,8 +383,8 @@ ESIMD_NODEBUG ESIMD_INLINE typename sycl::detail::enable_if_t<
378
383
detail::is_dword_type<U>::value && SZ == 1 ,
379
384
simd<T0, SZ>>
380
385
esimd_imul (simd<T0, SZ> &rmd, simd<T1, SZ> src0, U src1) {
381
- typedef
382
- typename computation_type< decltype (rmd), long long >::type ComputationTy;
386
+ typedef typename detail::computation_type< decltype (rmd), long long >::type
387
+ ComputationTy;
383
388
ComputationTy Product = convert<long long >(src0);
384
389
Product *= src1;
385
390
rmd = Product.format <T0>().select <1 , 1 >[0 ];
@@ -392,8 +397,8 @@ ESIMD_NODEBUG ESIMD_INLINE typename sycl::detail::enable_if_t<
392
397
detail::is_dword_type<U>::value && SZ != 1 ,
393
398
simd<T0, SZ>>
394
399
esimd_imul (simd<T0, SZ> &rmd, simd<T1, SZ> src0, U src1) {
395
- typedef
396
- typename computation_type< decltype (rmd), long long >::type ComputationTy;
400
+ typedef typename detail::computation_type< decltype (rmd), long long >::type
401
+ ComputationTy;
397
402
ComputationTy Product = convert<long long >(src0);
398
403
Product *= src1;
399
404
rmd = Product.format <T0>().select <SZ, 2 >(0 );
@@ -1964,11 +1969,11 @@ ESIMD_INLINE ESIMD_NODEBUG T0 hmin(simd<T1, SZ> v) {
1964
1969
1965
1970
template <typename T0, typename T1, int SZ, typename BinaryOperation>
1966
1971
ESIMD_INLINE ESIMD_NODEBUG T0 reduce (simd<T1, SZ> v, BinaryOperation op) {
1967
- if constexpr (std::is_same<remove_cvref_t <BinaryOperation>,
1972
+ if constexpr (std::is_same<detail:: remove_cvref_t <BinaryOperation>,
1968
1973
std::plus<>>::value) {
1969
1974
T0 retv = detail::esimd_sum<T0>(v);
1970
1975
return retv;
1971
- } else if constexpr (std::is_same<remove_cvref_t <BinaryOperation>,
1976
+ } else if constexpr (std::is_same<detail:: remove_cvref_t <BinaryOperation>,
1972
1977
std::multiplies<>>::value) {
1973
1978
T0 retv = detail::esimd_prod<T0>(v);
1974
1979
return retv;
0 commit comments