diff options
author | Marat Dukhan <maratek@gmail.com> | 2017-02-22 09:21:10 -0500 |
---|---|---|
committer | Marat Dukhan <maratek@gmail.com> | 2017-02-22 09:21:10 -0500 |
commit | 691384841fd2f3858207dc3afa260a206b0c3d9a (patch) | |
tree | 66ea6fa3d411b74e31f54a54d59e0129d939928f /include | |
parent | c81e1a8f4dd39abc2c6689e3d26ce5b7d3c95615 (diff) | |
download | psimd-691384841fd2f3858207dc3afa260a206b0c3d9a.tar.gz |
Swap intrinsic
Diffstat (limited to 'include')
-rw-r--r-- | include/psimd.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/include/psimd.h b/include/psimd.h index 1c94b82..f257801 100644 --- a/include/psimd.h +++ b/include/psimd.h @@ -122,6 +122,56 @@ return (psimd_u32x2) { .lo = (psimd_u32) v.lo, .hi = (psimd_u32) v.hi }; } + /* Swap */ + PSIMD_INTRINSIC void psimd_swap_s8(psimd_s8 a[1], psimd_s8 b[1]) { + const psimd_s8 new_a = *b; + const psimd_s8 new_b = *a; + *a = new_a; + *b = new_b; + } + + PSIMD_INTRINSIC void psimd_swap_u8(psimd_u8 a[1], psimd_u8 b[1]) { + const psimd_u8 new_a = *b; + const psimd_u8 new_b = *a; + *a = new_a; + *b = new_b; + } + + PSIMD_INTRINSIC void psimd_swap_s16(psimd_s16 a[1], psimd_s16 b[1]) { + const psimd_s16 new_a = *b; + const psimd_s16 new_b = *a; + *a = new_a; + *b = new_b; + } + + PSIMD_INTRINSIC void psimd_swap_u16(psimd_u16 a[1], psimd_u16 b[1]) { + const psimd_u16 new_a = *b; + const psimd_u16 new_b = *a; + *a = new_a; + *b = new_b; + } + + PSIMD_INTRINSIC void psimd_swap_s32(psimd_s32 a[1], psimd_s32 b[1]) { + const psimd_s32 new_a = *b; + const psimd_s32 new_b = *a; + *a = new_a; + *b = new_b; + } + + PSIMD_INTRINSIC void psimd_swap_u32(psimd_u32 a[1], psimd_u32 b[1]) { + const psimd_u32 new_a = *b; + const psimd_u32 new_b = *a; + *a = new_a; + *b = new_b; + } + + PSIMD_INTRINSIC void psimd_swap_f32(psimd_f32 a[1], psimd_f32 b[1]) { + const psimd_f32 new_a = *b; + const psimd_f32 new_b = *a; + *a = new_a; + *b = new_b; + } + /* Zero-initialization */ PSIMD_INTRINSIC psimd_s8 psimd_zero_s8(void) { return (psimd_s8) { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; |