Skip to content

Commit 68cd020

Browse files
Add missing batch cast from rvv types
1 parent e28ef98 commit 68cd020

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

include/xsimd/types/xsimd_rvv_register.hpp

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,27 @@ namespace xsimd
143143
return __riscv_vreinterpret_i8m1(x);
144144
}
145145
template <>
146+
XSIMD_INLINE rvv_type_info<int16_t, rvv_width_m1 * 1>::type
147+
rvv_type_info<int16_t, rvv_width_m1 * 1>::bitcast<__rvv_uint8m1_t>(
148+
__rvv_uint8m1_t x) noexcept
149+
{
150+
return __riscv_vreinterpret_i16m1(x);
151+
}
152+
template <>
153+
XSIMD_INLINE rvv_type_info<int32_t, rvv_width_m1 * 1>::type
154+
rvv_type_info<int32_t, rvv_width_m1 * 1>::bitcast<__rvv_uint8m1_t>(
155+
__rvv_uint8m1_t x) noexcept
156+
{
157+
return __riscv_vreinterpret_i32m1(x);
158+
}
159+
template <>
160+
XSIMD_INLINE rvv_type_info<int64_t, rvv_width_m1 * 1>::type
161+
rvv_type_info<int64_t, rvv_width_m1 * 1>::bitcast<__rvv_uint8m1_t>(
162+
__rvv_uint8m1_t x) noexcept
163+
{
164+
return __riscv_vreinterpret_i64m1(x);
165+
}
166+
template <>
146167
XSIMD_INLINE rvv_type_info<uint16_t, rvv_width_m1 * 1>::type
147168
rvv_type_info<uint16_t, rvv_width_m1 * 1>::bitcast<__rvv_uint8m1_t>(
148169
__rvv_uint8m1_t x) noexcept
@@ -179,6 +200,25 @@ namespace xsimd
179200
return __riscv_vreinterpret_u8m1(x);
180201
}
181202

203+
template <>
204+
XSIMD_INLINE rvv_type_info<int16_t, rvv_width_m1 * 1>::byte_type
205+
rvv_type_info<int16_t, rvv_width_m1 * 1>::as_bytes<__rvv_int16m1_t>(__rvv_int16m1_t x) noexcept
206+
{
207+
return __riscv_vreinterpret_u8m1(x);
208+
}
209+
template <>
210+
XSIMD_INLINE rvv_type_info<int32_t, rvv_width_m1 * 1>::byte_type
211+
rvv_type_info<int32_t, rvv_width_m1 * 1>::as_bytes<__rvv_int32m1_t>(__rvv_int32m1_t x) noexcept
212+
{
213+
return __riscv_vreinterpret_u8m1(x);
214+
}
215+
template <>
216+
XSIMD_INLINE rvv_type_info<int64_t, rvv_width_m1 * 1>::byte_type
217+
rvv_type_info<int64_t, rvv_width_m1 * 1>::as_bytes<__rvv_int64m1_t>(__rvv_int64m1_t x) noexcept
218+
{
219+
return __riscv_vreinterpret_u8m1(x);
220+
}
221+
182222
template <>
183223
XSIMD_INLINE rvv_type_info<uint8_t, rvv_width_m1 * 1>::byte_type
184224
rvv_type_info<uint8_t, rvv_width_m1 * 1>::as_bytes<__rvv_uint8m1_t>(__rvv_uint8m1_t x) noexcept

0 commit comments

Comments
 (0)