Commit ecc46929 authored by Michael R. Crusoe's avatar Michael R. Crusoe Committed by Michael R. Crusoe

avx512 set: add simde_x_mm512_set_m256{,d}

add tests for all `simde_mm512_set_*` functions
parent 70f70262
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include "types.h" #include "types.h"
#include "../avx2.h" #include "../avx2.h"
#include "extract.h"
HEDLEY_DIAGNOSTIC_PUSH HEDLEY_DIAGNOSTIC_PUSH
SIMDE_DISABLE_UNWANTED_DIAGNOSTICS SIMDE_DISABLE_UNWANTED_DIAGNOSTICS
......
...@@ -415,11 +415,27 @@ simde_x_mm512_set_m128i (simde__m128i a, simde__m128i b, simde__m128i c, simde__ ...@@ -415,11 +415,27 @@ simde_x_mm512_set_m128i (simde__m128i a, simde__m128i b, simde__m128i c, simde__
#endif #endif
} }
SIMDE_FUNCTION_ATTRIBUTES
simde__m512
simde_x_mm512_set_m256 (simde__m256 a, simde__m256 b) {
#if defined(SIMDE_X86_AVX512F_NATIVE)
SIMDE_ALIGN_TO_64 simde__m256 v[] = { b, a };
return simde_mm512_load_ps(HEDLEY_STATIC_CAST(__m512 *, HEDLEY_STATIC_CAST(void *, v)));
#else
simde__m512_private r_;
r_.m256[0] = b;
r_.m256[1] = a;
return simde__m512_from_private(r_);
#endif
}
SIMDE_FUNCTION_ATTRIBUTES SIMDE_FUNCTION_ATTRIBUTES
simde__m512i simde__m512i
simde_x_mm512_set_m256i (simde__m256i a, simde__m256i b) { simde_x_mm512_set_m256i (simde__m256i a, simde__m256i b) {
#if defined(SIMDE_X86_AVX512F_NATIVE) #if defined(SIMDE_X86_AVX512F_NATIVE)
SIMDE_ALIGN_LIKE_32(simde__m256i) simde__m256i v[] = { b, a }; SIMDE_ALIGN_TO_64 simde__m256i v[] = { b, a };
return simde_mm512_load_si512(HEDLEY_STATIC_CAST(__m512i *, HEDLEY_STATIC_CAST(void *, v))); return simde_mm512_load_si512(HEDLEY_STATIC_CAST(__m512i *, HEDLEY_STATIC_CAST(void *, v)));
#else #else
simde__m512i_private r_; simde__m512i_private r_;
...@@ -431,6 +447,22 @@ simde_x_mm512_set_m256i (simde__m256i a, simde__m256i b) { ...@@ -431,6 +447,22 @@ simde_x_mm512_set_m256i (simde__m256i a, simde__m256i b) {
#endif #endif
} }
SIMDE_FUNCTION_ATTRIBUTES
simde__m512d
simde_x_mm512_set_m256d (simde__m256d a, simde__m256d b) {
#if defined(SIMDE_X86_AVX512F_NATIVE)
SIMDE_ALIGN_TO_64 simde__m256d v[] = { b, a };
return simde_mm512_load_pd(HEDLEY_STATIC_CAST(__m512d *, HEDLEY_STATIC_CAST(void *, v)));
#else
simde__m512d_private r_;
r_.m256d[0] = b;
r_.m256d[1] = a;
return simde__m512d_from_private(r_);
#endif
}
SIMDE_FUNCTION_ATTRIBUTES SIMDE_FUNCTION_ATTRIBUTES
simde__m512 simde__m512
simde_mm512_set_ps (simde_float32 e15, simde_float32 e14, simde_float32 e13, simde_float32 e12, simde_mm512_set_ps (simde_float32 e15, simde_float32 e14, simde_float32 e13, simde_float32 e12,
......
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