Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -228,8 +228,8 @@ jobs:
run: |
git clone https://github.com/emscripten-core/emsdk.git /opt/emsdk
cd /opt/emsdk
./emsdk install tot
./emsdk activate tot
./emsdk install latest # FIXME, revert to tot
./emsdk activate latest # FIXME, revert to tot
source emsdk_env.sh
- name: Install v8
run: |
Expand Down
70 changes: 70 additions & 0 deletions simde/x86/avx512/abs.h
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,76 @@ simde_mm256_mask_abs_epi8(simde__m256i src, simde__mmask32 k, simde__m256i a) {
#define _mm256_mask_abs_epi8(src, k, a) simde_mm256_mask_abs_epi8(src, k, a)
#endif

SIMDE_FUNCTION_ATTRIBUTES
simde__m256i
simde_mm256_maskz_abs_epi8(simde__mmask32 k, simde__m256i a) {
#if defined(SIMDE_X86_AVX512BW_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
return _mm256_maskz_abs_epi8(k, a);
#else
return simde_mm256_maskz_mov_epi8(k, simde_mm256_abs_epi8(a));
#endif
}
#if defined(SIMDE_X86_AVX512BW_ENABLE_NATIVE_ALIASES) && defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
#undef _mm256_maskz_abs_epi8
#define _mm256_maskz_abs_epi8(k, a) simde_mm256_maskz_abs_epi8(k, a)
#endif

SIMDE_FUNCTION_ATTRIBUTES
simde__m256i
simde_mm256_mask_abs_epi16(simde__m256i src, simde__mmask16 k, simde__m256i a) {
#if defined(SIMDE_X86_AVX512BW_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
return _mm256_mask_abs_epi16(src, k, a);
#else
return simde_mm256_mask_mov_epi16(src, k, simde_mm256_abs_epi16(a));
#endif
}
#if defined(SIMDE_X86_AVX512BW_ENABLE_NATIVE_ALIASES) && defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
#undef _mm256_mask_abs_epi16
#define _mm256_mask_abs_epi16(src, k, a) simde_mm256_mask_abs_epi16(src, k, a)
#endif

SIMDE_FUNCTION_ATTRIBUTES
simde__m256i
simde_mm256_maskz_abs_epi16(simde__mmask16 k, simde__m256i a) {
#if defined(SIMDE_X86_AVX512BW_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
return _mm256_maskz_abs_epi16(k, a);
#else
return simde_mm256_maskz_mov_epi16(k, simde_mm256_abs_epi16(a));
#endif
}
#if defined(SIMDE_X86_AVX512BW_ENABLE_NATIVE_ALIASES) && defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
#undef _mm256_maskz_abs_epi16
#define _mm256_maskz_abs_epi16(k, a) simde_mm256_maskz_abs_epi16(k, a)
#endif

SIMDE_FUNCTION_ATTRIBUTES
simde__m256i
simde_mm256_mask_abs_epi32(simde__m256i src, simde__mmask8 k, simde__m256i a) {
#if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
return _mm256_mask_abs_epi32(src, k, a);
#else
return simde_mm256_mask_mov_epi32(src, k, simde_mm256_abs_epi32(a));
#endif
}
#if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) && defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
#undef _mm256_mask_abs_epi32
#define _mm256_mask_abs_epi32(src, k, a) simde_mm256_mask_abs_epi32(src, k, a)
#endif

SIMDE_FUNCTION_ATTRIBUTES
simde__m256i
simde_mm256_maskz_abs_epi32(simde__mmask8 k, simde__m256i a) {
#if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
return _mm256_maskz_abs_epi32(k, a);
#else
return simde_mm256_maskz_mov_epi32(k, simde_mm256_abs_epi32(a));
#endif
}
#if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) && defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
#undef _mm256_maskz_abs_epi32
#define _mm256_maskz_abs_epi32(k, a) simde_mm256_maskz_abs_epi32(k, a)
#endif

SIMDE_FUNCTION_ATTRIBUTES
simde__m256i
simde_mm256_abs_epi64(simde__m256i a) {
Expand Down
44 changes: 44 additions & 0 deletions simde/x86/avx512/insert.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,32 @@ HEDLEY_DIAGNOSTIC_PUSH
SIMDE_DISABLE_UNWANTED_DIAGNOSTICS
SIMDE_BEGIN_DECLS_


SIMDE_FUNCTION_ATTRIBUTES
simde__m256
simde_mm256_insertf32x4 (simde__m256 a, simde__m128 b, int imm8)
SIMDE_REQUIRE_CONSTANT_RANGE(imm8, 0, 1) {
#if defined(SIMDE_X86_AVX512F_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
simde__m256 r;
switch(imm8) {
case 0: r = _mm256_insertf32x4(a, b, 0); break;
case 1: r = _mm256_insertf32x4(a, b, 1); break;
default: HEDLEY_UNREACHABLE(); r = simde_mm256_setzero_ps(); break;
}
return r;
#else
simde__m256_private a_ = simde__m256_to_private(a);

a_.m128[imm8 & 1] = b;

return simde__m256_from_private(a_);
#endif
}
#if defined(SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES) && defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
#undef _mm256_insertf32x4
#define _mm256_insertf32x4(a, b, imm8) simde_mm256_insertf32x4(a, b, imm8)
#endif

SIMDE_FUNCTION_ATTRIBUTES
simde__m256d
simde_mm256_insertf64x2 (simde__m256d a, simde__m128d b, int imm8)
Expand Down Expand Up @@ -79,6 +105,24 @@ simde_mm256_inserti32x4 (simde__m256i a, simde__m128i b, int imm8)
#define _mm256_inserti32x4(a, b, imm8) simde_mm256_inserti32x4(a, b, imm8)
#endif

SIMDE_FUNCTION_ATTRIBUTES
simde__m256i
simde_mm256_inserti64x2 (simde__m256i a, simde__m128i b, int imm8)
SIMDE_REQUIRE_CONSTANT_RANGE(imm8, 0, 1) {
simde__m256i_private a_ = simde__m256i_to_private(a);

a_.m128i[imm8 & 1] = b;

return simde__m256i_from_private(a_);
}
#if defined(SIMDE_X86_AVX512DQ_NATIVE) && defined(SIMDE_X86_AVX512VL_NATIVE)
#define simde_mm256_inserti64x2(a, b, imm8) _mm256_inserti64x2(a, b, imm8)
#endif
#if defined(SIMDE_X86_AVX512DQ_ENABLE_NATIVE_ALIASES) && defined(SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES)
#undef _mm256_inserti64x2
#define _mm256_inserti64x2(a, b, imm8) simde_mm256_inserti64x2(a, b, imm8)
#endif

SIMDE_FUNCTION_ATTRIBUTES
simde__m512
simde_mm512_insertf32x4 (simde__m512 a, simde__m128 b, int imm8)
Expand Down
Loading
Loading