19 #define __ESIMD_raw_vec_t(T, SZ) \
20 sycl::ext::intel::esimd::detail::vector_type_t< \
21 sycl::ext::intel::esimd::detail::__raw_t<T>, SZ>
22 #define __ESIMD_cpp_vec_t(T, SZ) \
23 sycl::ext::intel::esimd::detail::vector_type_t< \
24 sycl::ext::intel::esimd::detail::__cpp_t<T>, SZ>
26 template <
typename T0,
typename T1,
int SZ>
27 __ESIMD_INTRIN __ESIMD_raw_vec_t(T0,
SZ)
28 __esimd_ssshl(__ESIMD_raw_vec_t(T1,
SZ)
src0,
29 __ESIMD_raw_vec_t(T1,
SZ)
src1) __ESIMD_INTRIN_END;
30 template <
typename T0,
typename T1,
int SZ>
31 __ESIMD_INTRIN __ESIMD_raw_vec_t(T0,
SZ)
32 __esimd_sushl(__ESIMD_raw_vec_t(T1,
SZ)
src0,
33 __ESIMD_raw_vec_t(T1,
SZ)
src1) __ESIMD_INTRIN_END;
34 template <
typename T0,
typename T1,
int SZ>
35 __ESIMD_INTRIN __ESIMD_raw_vec_t(T0,
SZ)
36 __esimd_usshl(__ESIMD_raw_vec_t(T1,
SZ)
src0,
37 __ESIMD_raw_vec_t(T1,
SZ)
src1) __ESIMD_INTRIN_END;
38 template <
typename T0,
typename T1,
int SZ>
39 __ESIMD_INTRIN __ESIMD_raw_vec_t(T0,
SZ)
40 __esimd_uushl(__ESIMD_raw_vec_t(T1,
SZ)
src0,
41 __ESIMD_raw_vec_t(T1,
SZ)
src1) __ESIMD_INTRIN_END;
42 template <
typename T0,
typename T1,
int SZ>
43 __ESIMD_INTRIN __ESIMD_raw_vec_t(T0,
SZ)
44 __esimd_ssshl_sat(__ESIMD_raw_vec_t(T1,
SZ)
src0,
45 __ESIMD_raw_vec_t(T1,
SZ)
src1) __ESIMD_INTRIN_END;
46 template <
typename T0,
typename T1,
int SZ>
47 __ESIMD_INTRIN __ESIMD_raw_vec_t(T0,
SZ)
48 __esimd_sushl_sat(__ESIMD_raw_vec_t(T1,
SZ)
src0,
49 __ESIMD_raw_vec_t(T1,
SZ)
src1) __ESIMD_INTRIN_END;
50 template <
typename T0,
typename T1,
int SZ>
51 __ESIMD_INTRIN __ESIMD_raw_vec_t(T0,
SZ)
52 __esimd_usshl_sat(__ESIMD_raw_vec_t(T1,
SZ)
src0,
53 __ESIMD_raw_vec_t(T1,
SZ)
src1) __ESIMD_INTRIN_END;
54 template <
typename T0,
typename T1,
int SZ>
55 __ESIMD_INTRIN __ESIMD_raw_vec_t(T0,
SZ)
56 __esimd_uushl_sat(__ESIMD_raw_vec_t(T1,
SZ)
src0,
57 __ESIMD_raw_vec_t(T1,
SZ)
src1) __ESIMD_INTRIN_END;
59 template <
typename T0,
typename T1,
int SZ>
60 __ESIMD_INTRIN __ESIMD_raw_vec_t(T0,
SZ)
61 __esimd_rol(__ESIMD_raw_vec_t(T1,
SZ)
src0,
62 __ESIMD_raw_vec_t(T1,
SZ)
src1) __ESIMD_INTRIN_END;
63 template <
typename T0,
typename T1,
int SZ>
64 __ESIMD_INTRIN __ESIMD_raw_vec_t(T0,
SZ)
65 __esimd_ror(__ESIMD_raw_vec_t(T1,
SZ)
src0,
66 __ESIMD_raw_vec_t(T1,
SZ)
src1) __ESIMD_INTRIN_END;
68 template <
typename T,
int SZ>
69 __ESIMD_INTRIN __ESIMD_raw_vec_t(T,
SZ)
70 __esimd_umulh(__ESIMD_raw_vec_t(T,
SZ)
src0,
71 __ESIMD_raw_vec_t(T,
SZ)
src1) __ESIMD_INTRIN_END;
72 template <
typename T,
int SZ>
73 __ESIMD_INTRIN __ESIMD_raw_vec_t(T,
SZ)
74 __esimd_smulh(__ESIMD_raw_vec_t(T,
SZ)
src0,
75 __ESIMD_raw_vec_t(T,
SZ)
src1) __ESIMD_INTRIN_END;
78 __ESIMD_INTRIN __ESIMD_DNS::vector_type_t<float, SZ>
79 __esimd_frc(__ESIMD_DNS::vector_type_t<float, SZ>
src0) __ESIMD_INTRIN_END;
81 template <
typename T,
int SZ>
82 __ESIMD_INTRIN __ESIMD_raw_vec_t(T,
SZ)
83 __esimd_lzd(__ESIMD_raw_vec_t(T,
SZ)
src0) __ESIMD_INTRIN_END;
85 template <
typename T0,
typename T1,
int SZ>
86 __ESIMD_INTRIN __ESIMD_raw_vec_t(T0,
SZ)
87 __esimd_bfrev(__ESIMD_raw_vec_t(T1,
SZ)
src0) __ESIMD_INTRIN_END;
89 template <
typename T0,
int SZ>
90 __ESIMD_INTRIN __ESIMD_raw_vec_t(T0,
SZ)
91 __esimd_bfi(__ESIMD_raw_vec_t(T0,
SZ)
src0, __ESIMD_raw_vec_t(T0,
SZ)
src1,
92 __ESIMD_raw_vec_t(T0,
SZ) src2,
93 __ESIMD_raw_vec_t(T0,
SZ) src3) __ESIMD_INTRIN_END;
95 template <
typename T0,
int SZ>
96 __ESIMD_INTRIN __ESIMD_raw_vec_t(T0,
SZ)
97 __esimd_sbfe(__ESIMD_raw_vec_t(T0,
SZ)
src0, __ESIMD_raw_vec_t(T0,
SZ)
src1,
98 __ESIMD_raw_vec_t(T0,
SZ) src2) __ESIMD_INTRIN_END;
100 template <
typename T,
int N>
101 __ESIMD_INTRIN __ESIMD_raw_vec_t(T, N)
102 __esimd_dp4(__ESIMD_raw_vec_t(T, N) v1,
103 __ESIMD_raw_vec_t(T, N) v2) __ESIMD_INTRIN_END;
107 int repeat_count,
typename T,
typename T0,
typename T1,
typename T2,
108 int N,
int N1,
int N2,
int res_sign = std::is_signed_v<T>,
109 int acc_sign = std::is_signed_v<T0>>
110 __ESIMD_INTRIN __ESIMD_DNS::vector_type_t<T, N>
111 __esimd_dpas2(__ESIMD_DNS::vector_type_t<T0, N>
src0,
112 __ESIMD_DNS::vector_type_t<T1, N1>
src1,
113 __ESIMD_DNS::vector_type_t<T2, N2> src2) __ESIMD_INTRIN_END;
115 template <
int Info,
typename T,
typename T1,
typename T2,
int N,
int N1,
int N2>
116 __ESIMD_INTRIN __ESIMD_DNS::vector_type_t<T, N>
117 __esimd_dpas_nosrc0(__ESIMD_DNS::vector_type_t<T1, N1>
src1,
118 __ESIMD_DNS::vector_type_t<T2, N2> src2) __ESIMD_INTRIN_END;
120 template <
int Info,
typename T,
typename T1,
typename T2,
int N,
int N1,
int N2>
121 __ESIMD_INTRIN __ESIMD_DNS::vector_type_t<T, N>
122 __esimd_dpasw(__ESIMD_DNS::vector_type_t<T, N>
src0,
123 __ESIMD_DNS::vector_type_t<T1, N1>
src1,
124 __ESIMD_DNS::vector_type_t<T2, N2> src2) __ESIMD_INTRIN_END;
126 template <
int Info,
typename T,
typename T1,
typename T2,
int N,
int N1,
int N2>
127 __ESIMD_INTRIN __ESIMD_DNS::vector_type_t<T, N> __esimd_dpasw_nosrc0(
128 __ESIMD_DNS::vector_type_t<T1, N1>
src1,
129 __ESIMD_DNS::vector_type_t<T2, N2> src2) __ESIMD_INTRIN_END;
131 template <
typename T,
int N>
132 __ESIMD_INTRIN std::pair<__ESIMD_DNS::vector_type_t<T, N>,
133 __ESIMD_DNS::vector_type_t<T, N>>
134 __esimd_addc(__ESIMD_DNS::vector_type_t<T, N>
src0,
135 __ESIMD_DNS::vector_type_t<T, N>
src1) __ESIMD_INTRIN_END;
137 template <
typename T,
int N>
138 __ESIMD_INTRIN std::pair<__ESIMD_DNS::vector_type_t<T, N>,
139 __ESIMD_DNS::vector_type_t<T, N>>
140 __esimd_subb(__ESIMD_DNS::vector_type_t<T, N>
src0,
141 __ESIMD_DNS::vector_type_t<T, N>
src1) __ESIMD_INTRIN_END;
143 template <u
int8_t FuncControl,
typename T,
int N>
144 __ESIMD_INTRIN __ESIMD_raw_vec_t(T, N)
145 __esimd_bfn(__ESIMD_raw_vec_t(T, N)
src0, __ESIMD_raw_vec_t(T, N)
src1,
146 __ESIMD_raw_vec_t(T, N) src2) __ESIMD_INTRIN_END;
149 __ESIMD_INTRIN __ESIMD_raw_vec_t(
sycl::half, N)
150 __esimd_srnd(__ESIMD_DNS::vector_type_t<float, N>
src1,
151 __ESIMD_DNS::vector_type_t<uint16_t, N> src2)
154 __ESIMD_INTRIN __ESIMD_raw_vec_t(uint32_t, 4)
155 __esimd_timestamp() __ESIMD_INTRIN_END;
157 #undef __ESIMD_raw_vec_t
158 #undef __ESIMD_cpp_vec_t
__ESIMD_API SZ simd< T, SZ > src1
__ESIMD_API SZ simd< T, SZ > Sat int SZ
dpas_argument_type
Describes the element types in the input matrices.