Commit 3d4512c4 authored by Hidayat Khan's avatar Hidayat Khan Committed by Michael R. Crusoe

sse: added NEON impl for mm_shuffle_ps

parent c78ae2f5
...@@ -3579,6 +3579,22 @@ HEDLEY_DIAGNOSTIC_POP ...@@ -3579,6 +3579,22 @@ HEDLEY_DIAGNOSTIC_POP
#if defined(SIMDE_X86_SSE_NATIVE) && !defined(__PGI) #if defined(SIMDE_X86_SSE_NATIVE) && !defined(__PGI)
# define simde_mm_shuffle_ps(a, b, imm8) _mm_shuffle_ps(a, b, imm8) # define simde_mm_shuffle_ps(a, b, imm8) _mm_shuffle_ps(a, b, imm8)
#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
#define simde_mm_shuffle_ps(a, b, imm8) \
__extension__({ \
float32x4_t ret; \
ret = vmovq_n_f32( \
vgetq_lane_f32(a, (imm8) & (0x3))); \
ret = vsetq_lane_f32( \
vgetq_lane_f32(a, ((imm8) >> 2) & 0x3), \
ret, 1); \
ret = vsetq_lane_f32( \
vgetq_lane_f32(b, ((imm8) >> 4) & 0x3), \
ret, 2); \
ret = vsetq_lane_f32( \
vgetq_lane_f32(b, ((imm8) >> 6) & 0x3), \
ret, 3); \
})
#elif defined(SIMDE_SHUFFLE_VECTOR_) #elif defined(SIMDE_SHUFFLE_VECTOR_)
# define simde_mm_shuffle_ps(a, b, imm8) (__extension__ ({ \ # define simde_mm_shuffle_ps(a, b, imm8) (__extension__ ({ \
simde__m128_from_private((simde__m128_private) { .f32 = \ simde__m128_from_private((simde__m128_private) { .f32 = \
......
...@@ -5097,7 +5097,7 @@ simde_mm_shuffle_epi32 (simde__m128i a, const int imm8) ...@@ -5097,7 +5097,7 @@ simde_mm_shuffle_epi32 (simde__m128i a, const int imm8)
#if defined(SIMDE_X86_SSE2_NATIVE) #if defined(SIMDE_X86_SSE2_NATIVE)
#define simde_mm_shuffle_epi32(a, imm8) _mm_shuffle_epi32((a), (imm8)) #define simde_mm_shuffle_epi32(a, imm8) _mm_shuffle_epi32((a), (imm8))
#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE)
#define _mm_shuffle_epi32(a, imm8) \ #define simde_mm_shuffle_epi32(a, imm8) \
__extension__({ \ __extension__({ \
int32x4_t ret; \ int32x4_t ret; \
ret = vmovq_n_s32( \ ret = vmovq_n_s32( \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment