Skip to content

Commit 6288fb2

Browse files
authored
Merge pull request #506 from astrohawk/feature/bitwise-cast-complete
Add remaining bitwise_cast permutations
2 parents 0abd6d9 + 4eda144 commit 6288fb2

File tree

6 files changed

+556
-339
lines changed

6 files changed

+556
-339
lines changed

include/xsimd/types/xsimd_avx512_conversion.hpp

Lines changed: 100 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -242,45 +242,106 @@ namespace xsimd
242242
* bitwise cast functions implementation *
243243
*****************************************/
244244

245-
XSIMD_BITWISE_CAST_INTRINSIC(float, 16,
246-
double, 8,
247-
_mm512_castps_pd)
248-
249-
XSIMD_BITWISE_CAST_INTRINSIC(float, 16,
250-
int32_t, 16,
251-
_mm512_castps_si512)
252-
253-
XSIMD_BITWISE_CAST_INTRINSIC(float, 16,
254-
int64_t, 8,
255-
_mm512_castps_si512)
256-
257-
XSIMD_BITWISE_CAST_INTRINSIC(double, 8,
258-
float, 16,
259-
_mm512_castpd_ps)
260-
261-
XSIMD_BITWISE_CAST_INTRINSIC(double, 8,
262-
int32_t, 16,
263-
_mm512_castpd_si512)
264-
265-
XSIMD_BITWISE_CAST_INTRINSIC(double, 8,
266-
int64_t, 8,
267-
_mm512_castpd_si512)
268-
269-
XSIMD_BITWISE_CAST_INTRINSIC(int32_t, 16,
270-
float, 16,
271-
_mm512_castsi512_ps)
272-
273-
XSIMD_BITWISE_CAST_INTRINSIC(int32_t, 16,
274-
double, 8,
275-
_mm512_castsi512_pd)
276-
277-
XSIMD_BITWISE_CAST_INTRINSIC(int64_t, 8,
278-
float, 16,
279-
_mm512_castsi512_ps)
280-
281-
XSIMD_BITWISE_CAST_INTRINSIC(int64_t, 8,
282-
double, 8,
283-
_mm512_castsi512_pd)
245+
XSIMD_BITWISE_CAST_IMPLICIT(int8_t, 64, int8_t, 64)
246+
XSIMD_BITWISE_CAST_IMPLICIT(int8_t, 64, uint8_t, 64)
247+
XSIMD_BITWISE_CAST_IMPLICIT(int8_t, 64, int16_t, 32)
248+
XSIMD_BITWISE_CAST_IMPLICIT(int8_t, 64, uint16_t, 32)
249+
XSIMD_BITWISE_CAST_IMPLICIT(int8_t, 64, int32_t, 16)
250+
XSIMD_BITWISE_CAST_IMPLICIT(int8_t, 64, uint32_t, 16)
251+
XSIMD_BITWISE_CAST_IMPLICIT(int8_t, 64, int64_t, 8)
252+
XSIMD_BITWISE_CAST_IMPLICIT(int8_t, 64, uint64_t, 8)
253+
XSIMD_BITWISE_CAST_INTRINSIC(int8_t, 64, float, 16, _mm512_castsi512_ps)
254+
XSIMD_BITWISE_CAST_INTRINSIC(int8_t, 64, double, 8, _mm512_castsi512_pd)
255+
XSIMD_BITWISE_CAST_IMPLICIT(uint8_t, 64, int8_t, 64)
256+
XSIMD_BITWISE_CAST_IMPLICIT(uint8_t, 64, uint8_t, 64)
257+
XSIMD_BITWISE_CAST_IMPLICIT(uint8_t, 64, int16_t, 32)
258+
XSIMD_BITWISE_CAST_IMPLICIT(uint8_t, 64, uint16_t, 32)
259+
XSIMD_BITWISE_CAST_IMPLICIT(uint8_t, 64, int32_t, 16)
260+
XSIMD_BITWISE_CAST_IMPLICIT(uint8_t, 64, uint32_t, 16)
261+
XSIMD_BITWISE_CAST_IMPLICIT(uint8_t, 64, int64_t, 8)
262+
XSIMD_BITWISE_CAST_IMPLICIT(uint8_t, 64, uint64_t, 8)
263+
XSIMD_BITWISE_CAST_INTRINSIC(uint8_t, 64, float, 16, _mm512_castsi512_ps)
264+
XSIMD_BITWISE_CAST_INTRINSIC(uint8_t, 64, double, 8, _mm512_castsi512_pd)
265+
XSIMD_BITWISE_CAST_IMPLICIT(int16_t, 32, int8_t, 64)
266+
XSIMD_BITWISE_CAST_IMPLICIT(int16_t, 32, uint8_t, 64)
267+
XSIMD_BITWISE_CAST_IMPLICIT(int16_t, 32, int16_t, 32)
268+
XSIMD_BITWISE_CAST_IMPLICIT(int16_t, 32, uint16_t, 32)
269+
XSIMD_BITWISE_CAST_IMPLICIT(int16_t, 32, int32_t, 16)
270+
XSIMD_BITWISE_CAST_IMPLICIT(int16_t, 32, uint32_t, 16)
271+
XSIMD_BITWISE_CAST_IMPLICIT(int16_t, 32, int64_t, 8)
272+
XSIMD_BITWISE_CAST_IMPLICIT(int16_t, 32, uint64_t, 8)
273+
XSIMD_BITWISE_CAST_INTRINSIC(int16_t, 32, float, 16, _mm512_castsi512_ps)
274+
XSIMD_BITWISE_CAST_INTRINSIC(int16_t, 32, double, 8, _mm512_castsi512_pd)
275+
XSIMD_BITWISE_CAST_IMPLICIT(uint16_t, 32, int8_t, 64)
276+
XSIMD_BITWISE_CAST_IMPLICIT(uint16_t, 32, uint8_t, 64)
277+
XSIMD_BITWISE_CAST_IMPLICIT(uint16_t, 32, int16_t, 32)
278+
XSIMD_BITWISE_CAST_IMPLICIT(uint16_t, 32, uint16_t, 32)
279+
XSIMD_BITWISE_CAST_IMPLICIT(uint16_t, 32, int32_t, 16)
280+
XSIMD_BITWISE_CAST_IMPLICIT(uint16_t, 32, uint32_t, 16)
281+
XSIMD_BITWISE_CAST_IMPLICIT(uint16_t, 32, int64_t, 8)
282+
XSIMD_BITWISE_CAST_IMPLICIT(uint16_t, 32, uint64_t, 8)
283+
XSIMD_BITWISE_CAST_INTRINSIC(uint16_t, 32, float, 16, _mm512_castsi512_ps)
284+
XSIMD_BITWISE_CAST_INTRINSIC(uint16_t, 32, double, 8, _mm512_castsi512_pd)
285+
XSIMD_BITWISE_CAST_IMPLICIT(int32_t, 16, int8_t, 64)
286+
XSIMD_BITWISE_CAST_IMPLICIT(int32_t, 16, uint8_t, 64)
287+
XSIMD_BITWISE_CAST_IMPLICIT(int32_t, 16, int16_t, 32)
288+
XSIMD_BITWISE_CAST_IMPLICIT(int32_t, 16, uint16_t, 32)
289+
XSIMD_BITWISE_CAST_IMPLICIT(int32_t, 16, int32_t, 16)
290+
XSIMD_BITWISE_CAST_IMPLICIT(int32_t, 16, uint32_t, 16)
291+
XSIMD_BITWISE_CAST_IMPLICIT(int32_t, 16, int64_t, 8)
292+
XSIMD_BITWISE_CAST_IMPLICIT(int32_t, 16, uint64_t, 8)
293+
XSIMD_BITWISE_CAST_INTRINSIC(int32_t, 16, float, 16, _mm512_castsi512_ps)
294+
XSIMD_BITWISE_CAST_INTRINSIC(int32_t, 16, double, 8, _mm512_castsi512_pd)
295+
XSIMD_BITWISE_CAST_IMPLICIT(uint32_t, 16, int8_t, 64)
296+
XSIMD_BITWISE_CAST_IMPLICIT(uint32_t, 16, uint8_t, 64)
297+
XSIMD_BITWISE_CAST_IMPLICIT(uint32_t, 16, int16_t, 32)
298+
XSIMD_BITWISE_CAST_IMPLICIT(uint32_t, 16, uint16_t, 32)
299+
XSIMD_BITWISE_CAST_IMPLICIT(uint32_t, 16, int32_t, 16)
300+
XSIMD_BITWISE_CAST_IMPLICIT(uint32_t, 16, uint32_t, 16)
301+
XSIMD_BITWISE_CAST_IMPLICIT(uint32_t, 16, int64_t, 8)
302+
XSIMD_BITWISE_CAST_IMPLICIT(uint32_t, 16, uint64_t, 8)
303+
XSIMD_BITWISE_CAST_INTRINSIC(uint32_t, 16, float, 16, _mm512_castsi512_ps)
304+
XSIMD_BITWISE_CAST_INTRINSIC(uint32_t, 16, double, 8, _mm512_castsi512_pd)
305+
XSIMD_BITWISE_CAST_IMPLICIT(int64_t, 8, int8_t, 64)
306+
XSIMD_BITWISE_CAST_IMPLICIT(int64_t, 8, uint8_t, 64)
307+
XSIMD_BITWISE_CAST_IMPLICIT(int64_t, 8, int16_t, 32)
308+
XSIMD_BITWISE_CAST_IMPLICIT(int64_t, 8, uint16_t, 32)
309+
XSIMD_BITWISE_CAST_IMPLICIT(int64_t, 8, int32_t, 16)
310+
XSIMD_BITWISE_CAST_IMPLICIT(int64_t, 8, uint32_t, 16)
311+
XSIMD_BITWISE_CAST_IMPLICIT(int64_t, 8, int64_t, 8)
312+
XSIMD_BITWISE_CAST_IMPLICIT(int64_t, 8, uint64_t, 8)
313+
XSIMD_BITWISE_CAST_INTRINSIC(int64_t, 8, float, 16, _mm512_castsi512_ps)
314+
XSIMD_BITWISE_CAST_INTRINSIC(int64_t, 8, double, 8, _mm512_castsi512_pd)
315+
XSIMD_BITWISE_CAST_IMPLICIT(uint64_t, 8, int8_t, 64)
316+
XSIMD_BITWISE_CAST_IMPLICIT(uint64_t, 8, uint8_t, 64)
317+
XSIMD_BITWISE_CAST_IMPLICIT(uint64_t, 8, int16_t, 32)
318+
XSIMD_BITWISE_CAST_IMPLICIT(uint64_t, 8, uint16_t, 32)
319+
XSIMD_BITWISE_CAST_IMPLICIT(uint64_t, 8, int32_t, 16)
320+
XSIMD_BITWISE_CAST_IMPLICIT(uint64_t, 8, uint32_t, 16)
321+
XSIMD_BITWISE_CAST_IMPLICIT(uint64_t, 8, int64_t, 8)
322+
XSIMD_BITWISE_CAST_IMPLICIT(uint64_t, 8, uint64_t, 8)
323+
XSIMD_BITWISE_CAST_INTRINSIC(uint64_t, 8, float, 16, _mm512_castsi512_ps)
324+
XSIMD_BITWISE_CAST_INTRINSIC(uint64_t, 8, double, 8, _mm512_castsi512_pd)
325+
XSIMD_BITWISE_CAST_INTRINSIC(float, 16, int8_t, 64, _mm512_castps_si512)
326+
XSIMD_BITWISE_CAST_INTRINSIC(float, 16, uint8_t, 64, _mm512_castps_si512)
327+
XSIMD_BITWISE_CAST_INTRINSIC(float, 16, int16_t, 32, _mm512_castps_si512)
328+
XSIMD_BITWISE_CAST_INTRINSIC(float, 16, uint16_t, 32, _mm512_castps_si512)
329+
XSIMD_BITWISE_CAST_INTRINSIC(float, 16, int32_t, 16, _mm512_castps_si512)
330+
XSIMD_BITWISE_CAST_INTRINSIC(float, 16, uint32_t, 16, _mm512_castps_si512)
331+
XSIMD_BITWISE_CAST_INTRINSIC(float, 16, int64_t, 8, _mm512_castps_si512)
332+
XSIMD_BITWISE_CAST_INTRINSIC(float, 16, uint64_t, 8, _mm512_castps_si512)
333+
XSIMD_BITWISE_CAST_IMPLICIT(float, 16, float, 16)
334+
XSIMD_BITWISE_CAST_INTRINSIC(float, 16, double, 8, _mm512_castps_pd)
335+
XSIMD_BITWISE_CAST_INTRINSIC(double, 8, int8_t, 64, _mm512_castpd_si512)
336+
XSIMD_BITWISE_CAST_INTRINSIC(double, 8, uint8_t, 64, _mm512_castpd_si512)
337+
XSIMD_BITWISE_CAST_INTRINSIC(double, 8, int16_t, 32, _mm512_castpd_si512)
338+
XSIMD_BITWISE_CAST_INTRINSIC(double, 8, uint16_t, 32, _mm512_castpd_si512)
339+
XSIMD_BITWISE_CAST_INTRINSIC(double, 8, int32_t, 16, _mm512_castpd_si512)
340+
XSIMD_BITWISE_CAST_INTRINSIC(double, 8, uint32_t, 16, _mm512_castpd_si512)
341+
XSIMD_BITWISE_CAST_INTRINSIC(double, 8, int64_t, 8, _mm512_castpd_si512)
342+
XSIMD_BITWISE_CAST_INTRINSIC(double, 8, uint64_t, 8, _mm512_castpd_si512)
343+
XSIMD_BITWISE_CAST_INTRINSIC(double, 8, float, 16, _mm512_castpd_ps)
344+
XSIMD_BITWISE_CAST_IMPLICIT(double, 8, double, 8)
284345
}
285346

286347
#endif

include/xsimd/types/xsimd_avx_conversion.hpp

Lines changed: 100 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -218,45 +218,106 @@ namespace xsimd
218218
* bitwise cast functions implementation *
219219
*****************************************/
220220

221-
XSIMD_BITWISE_CAST_INTRINSIC(float, 8,
222-
double, 4,
223-
_mm256_castps_pd)
224-
225-
XSIMD_BITWISE_CAST_INTRINSIC(float, 8,
226-
int32_t, 8,
227-
_mm256_castps_si256)
228-
229-
XSIMD_BITWISE_CAST_INTRINSIC(float, 8,
230-
int64_t, 4,
231-
_mm256_castps_si256)
232-
233-
XSIMD_BITWISE_CAST_INTRINSIC(double, 4,
234-
float, 8,
235-
_mm256_castpd_ps)
236-
237-
XSIMD_BITWISE_CAST_INTRINSIC(double, 4,
238-
int32_t, 8,
239-
_mm256_castpd_si256)
240-
241-
XSIMD_BITWISE_CAST_INTRINSIC(double, 4,
242-
int64_t, 4,
243-
_mm256_castpd_si256)
244-
245-
XSIMD_BITWISE_CAST_INTRINSIC(int32_t, 8,
246-
float, 8,
247-
_mm256_castsi256_ps)
248-
249-
XSIMD_BITWISE_CAST_INTRINSIC(int32_t, 8,
250-
double, 4,
251-
_mm256_castsi256_pd)
252-
253-
XSIMD_BITWISE_CAST_INTRINSIC(int64_t, 4,
254-
float, 8,
255-
_mm256_castsi256_ps)
256-
257-
XSIMD_BITWISE_CAST_INTRINSIC(int64_t, 4,
258-
double, 4,
259-
_mm256_castsi256_pd)
221+
XSIMD_BITWISE_CAST_IMPLICIT(int8_t, 32, int8_t, 32)
222+
XSIMD_BITWISE_CAST_IMPLICIT(int8_t, 32, uint8_t, 32)
223+
XSIMD_BITWISE_CAST_IMPLICIT(int8_t, 32, int16_t, 16)
224+
XSIMD_BITWISE_CAST_IMPLICIT(int8_t, 32, uint16_t, 16)
225+
XSIMD_BITWISE_CAST_IMPLICIT(int8_t, 32, int32_t, 8)
226+
XSIMD_BITWISE_CAST_IMPLICIT(int8_t, 32, uint32_t, 8)
227+
XSIMD_BITWISE_CAST_IMPLICIT(int8_t, 32, int64_t, 4)
228+
XSIMD_BITWISE_CAST_IMPLICIT(int8_t, 32, uint64_t, 4)
229+
XSIMD_BITWISE_CAST_INTRINSIC(int8_t, 32, float, 8, _mm256_castsi256_ps)
230+
XSIMD_BITWISE_CAST_INTRINSIC(int8_t, 32, double, 4, _mm256_castsi256_pd)
231+
XSIMD_BITWISE_CAST_IMPLICIT(uint8_t, 32, int8_t, 32)
232+
XSIMD_BITWISE_CAST_IMPLICIT(uint8_t, 32, uint8_t, 32)
233+
XSIMD_BITWISE_CAST_IMPLICIT(uint8_t, 32, int16_t, 16)
234+
XSIMD_BITWISE_CAST_IMPLICIT(uint8_t, 32, uint16_t, 16)
235+
XSIMD_BITWISE_CAST_IMPLICIT(uint8_t, 32, int32_t, 8)
236+
XSIMD_BITWISE_CAST_IMPLICIT(uint8_t, 32, uint32_t, 8)
237+
XSIMD_BITWISE_CAST_IMPLICIT(uint8_t, 32, int64_t, 4)
238+
XSIMD_BITWISE_CAST_IMPLICIT(uint8_t, 32, uint64_t, 4)
239+
XSIMD_BITWISE_CAST_INTRINSIC(uint8_t, 32, float, 8, _mm256_castsi256_ps)
240+
XSIMD_BITWISE_CAST_INTRINSIC(uint8_t, 32, double, 4, _mm256_castsi256_pd)
241+
XSIMD_BITWISE_CAST_IMPLICIT(int16_t, 16, int8_t, 32)
242+
XSIMD_BITWISE_CAST_IMPLICIT(int16_t, 16, uint8_t, 32)
243+
XSIMD_BITWISE_CAST_IMPLICIT(int16_t, 16, int16_t, 16)
244+
XSIMD_BITWISE_CAST_IMPLICIT(int16_t, 16, uint16_t, 16)
245+
XSIMD_BITWISE_CAST_IMPLICIT(int16_t, 16, int32_t, 8)
246+
XSIMD_BITWISE_CAST_IMPLICIT(int16_t, 16, uint32_t, 8)
247+
XSIMD_BITWISE_CAST_IMPLICIT(int16_t, 16, int64_t, 4)
248+
XSIMD_BITWISE_CAST_IMPLICIT(int16_t, 16, uint64_t, 4)
249+
XSIMD_BITWISE_CAST_INTRINSIC(int16_t, 16, float, 8, _mm256_castsi256_ps)
250+
XSIMD_BITWISE_CAST_INTRINSIC(int16_t, 16, double, 4, _mm256_castsi256_pd)
251+
XSIMD_BITWISE_CAST_IMPLICIT(uint16_t, 16, int8_t, 32)
252+
XSIMD_BITWISE_CAST_IMPLICIT(uint16_t, 16, uint8_t, 32)
253+
XSIMD_BITWISE_CAST_IMPLICIT(uint16_t, 16, int16_t, 16)
254+
XSIMD_BITWISE_CAST_IMPLICIT(uint16_t, 16, uint16_t, 16)
255+
XSIMD_BITWISE_CAST_IMPLICIT(uint16_t, 16, int32_t, 8)
256+
XSIMD_BITWISE_CAST_IMPLICIT(uint16_t, 16, uint32_t, 8)
257+
XSIMD_BITWISE_CAST_IMPLICIT(uint16_t, 16, int64_t, 4)
258+
XSIMD_BITWISE_CAST_IMPLICIT(uint16_t, 16, uint64_t, 4)
259+
XSIMD_BITWISE_CAST_INTRINSIC(uint16_t, 16, float, 8, _mm256_castsi256_ps)
260+
XSIMD_BITWISE_CAST_INTRINSIC(uint16_t, 16, double, 4, _mm256_castsi256_pd)
261+
XSIMD_BITWISE_CAST_IMPLICIT(int32_t, 8, int8_t, 32)
262+
XSIMD_BITWISE_CAST_IMPLICIT(int32_t, 8, uint8_t, 32)
263+
XSIMD_BITWISE_CAST_IMPLICIT(int32_t, 8, int16_t, 16)
264+
XSIMD_BITWISE_CAST_IMPLICIT(int32_t, 8, uint16_t, 16)
265+
XSIMD_BITWISE_CAST_IMPLICIT(int32_t, 8, int32_t, 8)
266+
XSIMD_BITWISE_CAST_IMPLICIT(int32_t, 8, uint32_t, 8)
267+
XSIMD_BITWISE_CAST_IMPLICIT(int32_t, 8, int64_t, 4)
268+
XSIMD_BITWISE_CAST_IMPLICIT(int32_t, 8, uint64_t, 4)
269+
XSIMD_BITWISE_CAST_INTRINSIC(int32_t, 8, float, 8, _mm256_castsi256_ps)
270+
XSIMD_BITWISE_CAST_INTRINSIC(int32_t, 8, double, 4, _mm256_castsi256_pd)
271+
XSIMD_BITWISE_CAST_IMPLICIT(uint32_t, 8, int8_t, 32)
272+
XSIMD_BITWISE_CAST_IMPLICIT(uint32_t, 8, uint8_t, 32)
273+
XSIMD_BITWISE_CAST_IMPLICIT(uint32_t, 8, int16_t, 16)
274+
XSIMD_BITWISE_CAST_IMPLICIT(uint32_t, 8, uint16_t, 16)
275+
XSIMD_BITWISE_CAST_IMPLICIT(uint32_t, 8, int32_t, 8)
276+
XSIMD_BITWISE_CAST_IMPLICIT(uint32_t, 8, uint32_t, 8)
277+
XSIMD_BITWISE_CAST_IMPLICIT(uint32_t, 8, int64_t, 4)
278+
XSIMD_BITWISE_CAST_IMPLICIT(uint32_t, 8, uint64_t, 4)
279+
XSIMD_BITWISE_CAST_INTRINSIC(uint32_t, 8, float, 8, _mm256_castsi256_ps)
280+
XSIMD_BITWISE_CAST_INTRINSIC(uint32_t, 8, double, 4, _mm256_castsi256_pd)
281+
XSIMD_BITWISE_CAST_IMPLICIT(int64_t, 4, int8_t, 32)
282+
XSIMD_BITWISE_CAST_IMPLICIT(int64_t, 4, uint8_t, 32)
283+
XSIMD_BITWISE_CAST_IMPLICIT(int64_t, 4, int16_t, 16)
284+
XSIMD_BITWISE_CAST_IMPLICIT(int64_t, 4, uint16_t, 16)
285+
XSIMD_BITWISE_CAST_IMPLICIT(int64_t, 4, int32_t, 8)
286+
XSIMD_BITWISE_CAST_IMPLICIT(int64_t, 4, uint32_t, 8)
287+
XSIMD_BITWISE_CAST_IMPLICIT(int64_t, 4, int64_t, 4)
288+
XSIMD_BITWISE_CAST_IMPLICIT(int64_t, 4, uint64_t, 4)
289+
XSIMD_BITWISE_CAST_INTRINSIC(int64_t, 4, float, 8, _mm256_castsi256_ps)
290+
XSIMD_BITWISE_CAST_INTRINSIC(int64_t, 4, double, 4, _mm256_castsi256_pd)
291+
XSIMD_BITWISE_CAST_IMPLICIT(uint64_t, 4, int8_t, 32)
292+
XSIMD_BITWISE_CAST_IMPLICIT(uint64_t, 4, uint8_t, 32)
293+
XSIMD_BITWISE_CAST_IMPLICIT(uint64_t, 4, int16_t, 16)
294+
XSIMD_BITWISE_CAST_IMPLICIT(uint64_t, 4, uint16_t, 16)
295+
XSIMD_BITWISE_CAST_IMPLICIT(uint64_t, 4, int32_t, 8)
296+
XSIMD_BITWISE_CAST_IMPLICIT(uint64_t, 4, uint32_t, 8)
297+
XSIMD_BITWISE_CAST_IMPLICIT(uint64_t, 4, int64_t, 4)
298+
XSIMD_BITWISE_CAST_IMPLICIT(uint64_t, 4, uint64_t, 4)
299+
XSIMD_BITWISE_CAST_INTRINSIC(uint64_t, 4, float, 8, _mm256_castsi256_ps)
300+
XSIMD_BITWISE_CAST_INTRINSIC(uint64_t, 4, double, 4, _mm256_castsi256_pd)
301+
XSIMD_BITWISE_CAST_INTRINSIC(float, 8, int8_t, 32, _mm256_castps_si256)
302+
XSIMD_BITWISE_CAST_INTRINSIC(float, 8, uint8_t, 32, _mm256_castps_si256)
303+
XSIMD_BITWISE_CAST_INTRINSIC(float, 8, int16_t, 16, _mm256_castps_si256)
304+
XSIMD_BITWISE_CAST_INTRINSIC(float, 8, uint16_t, 16, _mm256_castps_si256)
305+
XSIMD_BITWISE_CAST_INTRINSIC(float, 8, int32_t, 8, _mm256_castps_si256)
306+
XSIMD_BITWISE_CAST_INTRINSIC(float, 8, uint32_t, 8, _mm256_castps_si256)
307+
XSIMD_BITWISE_CAST_INTRINSIC(float, 8, int64_t, 4, _mm256_castps_si256)
308+
XSIMD_BITWISE_CAST_INTRINSIC(float, 8, uint64_t, 4, _mm256_castps_si256)
309+
XSIMD_BITWISE_CAST_IMPLICIT(float, 8, float, 8)
310+
XSIMD_BITWISE_CAST_INTRINSIC(float, 8, double, 4, _mm256_castps_pd)
311+
XSIMD_BITWISE_CAST_INTRINSIC(double, 4, int8_t, 32, _mm256_castpd_si256)
312+
XSIMD_BITWISE_CAST_INTRINSIC(double, 4, uint8_t, 32, _mm256_castpd_si256)
313+
XSIMD_BITWISE_CAST_INTRINSIC(double, 4, int16_t, 16, _mm256_castpd_si256)
314+
XSIMD_BITWISE_CAST_INTRINSIC(double, 4, uint16_t, 16, _mm256_castpd_si256)
315+
XSIMD_BITWISE_CAST_INTRINSIC(double, 4, int32_t, 8, _mm256_castpd_si256)
316+
XSIMD_BITWISE_CAST_INTRINSIC(double, 4, uint32_t, 8, _mm256_castpd_si256)
317+
XSIMD_BITWISE_CAST_INTRINSIC(double, 4, int64_t, 4, _mm256_castpd_si256)
318+
XSIMD_BITWISE_CAST_INTRINSIC(double, 4, uint64_t, 4, _mm256_castpd_si256)
319+
XSIMD_BITWISE_CAST_INTRINSIC(double, 4, float, 8, _mm256_castpd_ps)
320+
XSIMD_BITWISE_CAST_IMPLICIT(double, 4, double, 4)
260321
}
261322

262323
#endif

0 commit comments

Comments
 (0)