Skip to content

Commit 23232d7

Browse files
authored
[ESIMD] Enable op(vector, scalar) variant of binary ext. math functions. (#5651)
Signed-off-by: Konstantin S Bobrovsky <[email protected]>
1 parent e25f97c commit 23232d7

File tree

1 file changed

+10
-5
lines changed
  • sycl/include/sycl/ext/intel/experimental/esimd

1 file changed

+10
-5
lines changed

sycl/include/sycl/ext/intel/experimental/esimd/math.hpp

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1472,7 +1472,7 @@ __ESIMD_UNARY_INTRINSIC_DEF(__ESIMD_EMATH_COND, cos, cos)
14721472
#undef __ESIMD_UNARY_INTRINSIC_DEF
14731473

14741474
#define __ESIMD_BINARY_INTRINSIC_DEF(COND, name, iname) \
1475-
/** Vector version. */ \
1475+
/** (vector, vector) version. */ \
14761476
template <class T, int N, class U, class Sat = saturation_off_tag, \
14771477
class = std::enable_if_t<COND>> \
14781478
__ESIMD_API simd<T, N> name(simd<T, N> src0, simd<U, N> src1, \
@@ -1486,13 +1486,18 @@ __ESIMD_UNARY_INTRINSIC_DEF(__ESIMD_EMATH_COND, cos, cos)
14861486
return esimd::saturate<T>(simd<T, N>(res_raw)); \
14871487
} \
14881488
\
1489-
/** Scalar version. */ \
1489+
/** (vector, scalar) version. */ \
1490+
template <class T, int N, class U, class Sat = saturation_off_tag, \
1491+
class = std::enable_if_t<COND>> \
1492+
__ESIMD_API simd<T, N> name(simd<T, N> src0, U src1, Sat sat = {}) { \
1493+
return name<T, N, U>(src0, simd<U, N>(src1), sat); \
1494+
} \
1495+
\
1496+
/** (scalar, scalar) version. */ \
14901497
template <class T, class U, class Sat = saturation_off_tag, \
14911498
class = std::enable_if_t<COND>> \
14921499
__ESIMD_API T name(T src0, U src1, Sat sat = {}) { \
1493-
simd<T, 1> src0_vec = src0; \
1494-
simd<U, 1> src1_vec = src1; \
1495-
simd<T, 1> res = name<T, 1, U>(src0_vec, src1_vec, sat); \
1500+
simd<T, 1> res = name<T, 1, U>(simd<T, 1>(src0), simd<U, 1>(src1), sat); \
14961501
return res[0]; \
14971502
}
14981503

0 commit comments

Comments
 (0)