Commit 24be11d0 authored by Michael R. Crusoe's avatar Michael R. Crusoe Committed by Michael R. Crusoe

gh-actions: test mips64el using qemu on gcc12/clang16

parent f0bd155c
......@@ -37,16 +37,15 @@ SIMDE_FUNCTION_ATTRIBUTES
simde_v16i8
simde_msa_ld_b(const void * rs, const int s10)
SIMDE_REQUIRE_CONSTANT_RANGE(s10, 0, 1023) {
#if defined(SIMDE_MIPS_MSA_NATIVE)
return __msa_ld_b(rs, s10);
#else
simde_v16i8 r;
simde_v16i8 r;
simde_memcpy(&r, &(HEDLEY_REINTERPRET_CAST(const int8_t*, rs)[s10]), sizeof(r));
simde_memcpy(&r, &(HEDLEY_REINTERPRET_CAST(const int8_t*, rs)[s10]), sizeof(r));
return r;
#endif
return r;
}
#if defined(SIMDE_MIPS_MSA_NATIVE)
#define simde_msa_ld_b(rs, s10) __msa_ld_b((rs), (s10))
#endif
#if defined(SIMDE_MIPS_MSA_ENABLE_NATIVE_ALIASES)
#undef __msa_ld_b
#define __msa_ld_b(rs, s10) simde_msa_ld_b((rs), (s10))
......@@ -57,16 +56,15 @@ simde_v8i16
simde_msa_ld_h(const void * rs, const int s10)
SIMDE_REQUIRE_CONSTANT_RANGE(s10, 0, 1023)
HEDLEY_REQUIRE_MSG((s10 % sizeof(int16_t)) == 0, "`s10' must be a multiple of sizeof(int16_t)") {
#if defined(SIMDE_MIPS_MSA_NATIVE)
return __msa_ld_h(rs, s10);
#else
simde_v8i16 r;
simde_v8i16 r;
simde_memcpy(&r, &(HEDLEY_REINTERPRET_CAST(const int8_t*, rs)[s10]), sizeof(r));
simde_memcpy(&r, &(HEDLEY_REINTERPRET_CAST(const int8_t*, rs)[s10]), sizeof(r));
return r;
#endif
return r;
}
#if defined(SIMDE_MIPS_MSA_NATIVE)
#define simde_msa_ld_h(rs, s10) __msa_ld_h((rs), (s10))
#endif
#if defined(SIMDE_MIPS_MSA_ENABLE_NATIVE_ALIASES)
#undef __msa_ld_h
#define __msa_ld_h(rs, s10) simde_msa_ld_h((rs), (s10))
......@@ -77,16 +75,15 @@ simde_v4i32
simde_msa_ld_w(const void * rs, const int s10)
SIMDE_REQUIRE_CONSTANT_RANGE(s10, 0, 1023)
HEDLEY_REQUIRE_MSG((s10 % sizeof(int32_t)) == 0, "`s10' must be a multiple of sizeof(int32_t)") {
#if defined(SIMDE_MIPS_MSA_NATIVE)
return __msa_ld_w(rs, s10);
#else
simde_v4i32 r;
simde_v4i32 r;
simde_memcpy(&r, &(HEDLEY_REINTERPRET_CAST(const int8_t*, rs)[s10]), sizeof(r));
simde_memcpy(&r, &(HEDLEY_REINTERPRET_CAST(const int8_t*, rs)[s10]), sizeof(r));
return r;
#endif
return r;
}
#if defined(SIMDE_MIPS_MSA_NATIVE)
#define simde_msa_ld_w(rs, s10) __msa_ld_w((rs), (s10))
#endif
#if defined(SIMDE_MIPS_MSA_ENABLE_NATIVE_ALIASES)
#undef __msa_ld_w
#define __msa_ld_w(rs, s10) simde_msa_ld_w((rs), (s10))
......@@ -97,16 +94,15 @@ simde_v2i64
simde_msa_ld_d(const void * rs, const int s10)
SIMDE_REQUIRE_CONSTANT_RANGE(s10, 0, 1023)
HEDLEY_REQUIRE_MSG((s10 % sizeof(int64_t)) == 0, "`s10' must be a multiple of sizeof(int64_t)") {
#if defined(SIMDE_MIPS_MSA_NATIVE)
return __msa_ld_d(rs, s10);
#else
simde_v2i64 r;
simde_v2i64 r;
simde_memcpy(&r, &(HEDLEY_REINTERPRET_CAST(const int8_t*, rs)[s10]), sizeof(r));
simde_memcpy(&r, &(HEDLEY_REINTERPRET_CAST(const int8_t*, rs)[s10]), sizeof(r));
return r;
#endif
return r;
}
#if defined(SIMDE_MIPS_MSA_NATIVE)
#define simde_msa_ld_d(rs, s10) __msa_ld_d((rs), (s10))
#endif
#if defined(SIMDE_MIPS_MSA_ENABLE_NATIVE_ALIASES)
#undef __msa_ld_d
#define __msa_ld_d(rs, s10) simde_msa_ld_d((rs), (s10))
......@@ -116,96 +112,90 @@ SIMDE_FUNCTION_ATTRIBUTES
simde_v16u8
simde_x_msa_ld_u_b(const void * rs, const int s10)
SIMDE_REQUIRE_CONSTANT_RANGE(s10, 0, 1023) {
#if defined(SIMDE_MIPS_MSA_NATIVE)
return HEDLEY_REINTERPRET_CAST(simde_v16u8, __msa_ld_b(rs, s10));
#else
simde_v16u8 r;
simde_v16u8 r;
simde_memcpy(&r, &(HEDLEY_REINTERPRET_CAST(const int8_t*, rs)[s10]), sizeof(r));
simde_memcpy(&r, &(HEDLEY_REINTERPRET_CAST(const int8_t*, rs)[s10]), sizeof(r));
return r;
#endif
return r;
}
#if defined(SIMDE_MIPS_MSA_NATIVE)
#define simde_x_msa_ld_u_b(rs, s10) HEDLEY_REINTERPRET_CAST(simde_v16u8, __msa_ld_b((rs), (s10)))
#endif
SIMDE_FUNCTION_ATTRIBUTES
simde_v8u16
simde_x_msa_ld_u_h(const void * rs, const int s10)
SIMDE_REQUIRE_CONSTANT_RANGE(s10, 0, 1023)
HEDLEY_REQUIRE_MSG((s10 % sizeof(int16_t)) == 0, "`s10' must be a multiple of sizeof(int16_t)") {
#if defined(SIMDE_MIPS_MSA_NATIVE)
return HEDLEY_REINTERPRET_CAST(simde_v8u16, __msa_ld_b(rs, s10));
#else
simde_v8u16 r;
simde_v8u16 r;
simde_memcpy(&r, &(HEDLEY_REINTERPRET_CAST(const int8_t*, rs)[s10]), sizeof(r));
simde_memcpy(&r, &(HEDLEY_REINTERPRET_CAST(const int8_t*, rs)[s10]), sizeof(r));
return r;
#endif
return r;
}
#if defined(SIMDE_MIPS_MSA_NATIVE)
#define simde_x_msa_ld_u_h(rs, s10) HEDLEY_REINTERPRET_CAST(simde_v8u16, __msa_ld_b((rs), (s10)))
#endif
SIMDE_FUNCTION_ATTRIBUTES
simde_v4u32
simde_x_msa_ld_u_w(const void * rs, const int s10)
SIMDE_REQUIRE_CONSTANT_RANGE(s10, 0, 1023)
HEDLEY_REQUIRE_MSG((s10 % sizeof(int32_t)) == 0, "`s10' must be a multiple of sizeof(int32_t)") {
#if defined(SIMDE_MIPS_MSA_NATIVE)
return HEDLEY_REINTERPRET_CAST(simde_v4u32, __msa_ld_b(rs, s10));
#else
simde_v4u32 r;
simde_v4u32 r;
simde_memcpy(&r, &(HEDLEY_REINTERPRET_CAST(const int8_t*, rs)[s10]), sizeof(r));
simde_memcpy(&r, &(HEDLEY_REINTERPRET_CAST(const int8_t*, rs)[s10]), sizeof(r));
return r;
#endif
return r;
}
#if defined(SIMDE_MIPS_MSA_NATIVE)
#define simde_x_msa_ld_u_w(rs, s10) HEDLEY_REINTERPRET_CAST(simde_v4u32, __msa_ld_b((rs), (s10)))
#endif
SIMDE_FUNCTION_ATTRIBUTES
simde_v2u64
simde_x_msa_ld_u_d(const void * rs, const int s10)
SIMDE_REQUIRE_CONSTANT_RANGE(s10, 0, 1023)
HEDLEY_REQUIRE_MSG((s10 % sizeof(int64_t)) == 0, "`s10' must be a multiple of sizeof(int64_t)") {
#if defined(SIMDE_MIPS_MSA_NATIVE)
return HEDLEY_REINTERPRET_CAST(simde_v2u64, __msa_ld_b(rs, s10));
#else
simde_v2u64 r;
simde_v2u64 r;
simde_memcpy(&r, &(HEDLEY_REINTERPRET_CAST(const int8_t*, rs)[s10]), sizeof(r));
simde_memcpy(&r, &(HEDLEY_REINTERPRET_CAST(const int8_t*, rs)[s10]), sizeof(r));
return r;
#endif
return r;
}
#if defined(SIMDE_MIPS_MSA_NATIVE)
#define simde_x_msa_ld_u_d(rs, s10) HEDLEY_REINTERPRET_CAST(simde_v2u64, __msa_ld_b((rs), (s10)))
#endif
SIMDE_FUNCTION_ATTRIBUTES
simde_v4f32
simde_x_msa_fld_w(const void * rs, const int s10)
SIMDE_REQUIRE_CONSTANT_RANGE(s10, 0, 1023)
HEDLEY_REQUIRE_MSG((s10 % sizeof(int32_t)) == 0, "`s10' must be a multiple of sizeof(int32_t)") {
#if defined(SIMDE_MIPS_MSA_NATIVE)
return HEDLEY_REINTERPRET_CAST(simde_v4f32, __msa_ld_b(rs, s10));
#else
simde_v4f32 r;
simde_v4f32 r;
simde_memcpy(&r, &(HEDLEY_REINTERPRET_CAST(const int8_t*, rs)[s10]), sizeof(r));
simde_memcpy(&r, &(HEDLEY_REINTERPRET_CAST(const int8_t*, rs)[s10]), sizeof(r));
return r;
#endif
return r;
}
#if defined(SIMDE_MIPS_MSA_NATIVE)
#define simde_x_msa_fld_w(rs, s10) HEDLEY_REINTERPRET_CAST(simde_v4f32, __msa_ld_b((rs), (s10)))
#endif
SIMDE_FUNCTION_ATTRIBUTES
simde_v2f64
simde_x_msa_fld_d(const void * rs, const int s10)
SIMDE_REQUIRE_CONSTANT_RANGE(s10, 0, 1023)
HEDLEY_REQUIRE_MSG((s10 % sizeof(int64_t)) == 0, "`s10' must be a multiple of sizeof(int64_t)") {
#if defined(SIMDE_MIPS_MSA_NATIVE)
return HEDLEY_REINTERPRET_CAST(simde_v2f64, __msa_ld_b(rs, s10));
#else
simde_v2f64 r;
simde_v2f64 r;
simde_memcpy(&r, &(HEDLEY_REINTERPRET_CAST(const int8_t*, rs)[s10]), sizeof(r));
simde_memcpy(&r, &(HEDLEY_REINTERPRET_CAST(const int8_t*, rs)[s10]), sizeof(r));
return r;
#endif
return r;
}
#if defined(SIMDE_MIPS_MSA_NATIVE)
#define simde_x_msa_fld_d(rs, s10) HEDLEY_REINTERPRET_CAST(simde_v2f64, __msa_ld_b((rs), (s10)))
#endif
SIMDE_END_DECLS_
HEDLEY_DIAGNOSTIC_POP
......
......@@ -37,12 +37,11 @@ SIMDE_FUNCTION_ATTRIBUTES
void
simde_msa_st_b(simde_v16i8 a, void * rs, const int s10)
SIMDE_REQUIRE_CONSTANT_RANGE(s10, 0, 1023) {
#if defined(SIMDE_MIPS_MSA_NATIVE)
return __msa_st_b(a, rs, s10);
#else
simde_memcpy(&(HEDLEY_REINTERPRET_CAST(int8_t*, rs)[s10]), &a, sizeof(a));
#endif
simde_memcpy(&(HEDLEY_REINTERPRET_CAST(int8_t*, rs)[s10]), &a, sizeof(a));
}
#if defined(SIMDE_MIPS_MSA_NATIVE)
#define simde_msa_st_b(a, rs, s10) __msa_st_b((a), (rs), (s10));
#endif
#if defined(SIMDE_MIPS_MSA_ENABLE_NATIVE_ALIASES)
#undef __msa_st_b
#define __msa_st_b(a, rs, s10) simde_msa_st_b((a), (rs), (s10))
......@@ -53,12 +52,11 @@ void
simde_msa_st_h(simde_v8i16 a, void * rs, const int s10)
SIMDE_REQUIRE_CONSTANT_RANGE(s10, 0, 1023)
HEDLEY_REQUIRE_MSG((s10 % sizeof(int16_t)) == 0, "`s10' must be a multiple of sizeof(int16_t)") {
#if defined(SIMDE_MIPS_MSA_NATIVE)
return __msa_st_h(a, rs, s10);
#else
simde_memcpy(&(HEDLEY_REINTERPRET_CAST(int8_t*, rs)[s10]), &a, sizeof(a));
#endif
simde_memcpy(&(HEDLEY_REINTERPRET_CAST(int8_t*, rs)[s10]), &a, sizeof(a));
}
#if defined(SIMDE_MIPS_MSA_NATIVE)
#define simde_msa_st_h(a, rs, s10) __msa_st_h((a), (rs), (s10));
#endif
#if defined(SIMDE_MIPS_MSA_ENABLE_NATIVE_ALIASES)
#undef __msa_st_h
#define __msa_st_h(a, rs, s10) simde_msa_st_h((a), (rs), (s10))
......@@ -69,12 +67,11 @@ void
simde_msa_st_w(simde_v4i32 a, void * rs, const int s10)
SIMDE_REQUIRE_CONSTANT_RANGE(s10, 0, 1023)
HEDLEY_REQUIRE_MSG((s10 % sizeof(int32_t)) == 0, "`s10' must be a multiple of sizeof(int32_t)") {
#if defined(SIMDE_MIPS_MSA_NATIVE)
return __msa_st_w(a, rs, s10);
#else
simde_memcpy(&(HEDLEY_REINTERPRET_CAST(int8_t*, rs)[s10]), &a, sizeof(a));
#endif
simde_memcpy(&(HEDLEY_REINTERPRET_CAST(int8_t*, rs)[s10]), &a, sizeof(a));
}
#if defined(SIMDE_MIPS_MSA_NATIVE)
#define simde_msa_st_w(a, rs, s10) __msa_st_w((a), (rs), (s10));
#endif
#if defined(SIMDE_MIPS_MSA_ENABLE_NATIVE_ALIASES)
#undef __msa_st_w
#define __msa_st_w(a, rs, s10) simde_msa_st_w((a), (rs), (s10))
......@@ -85,12 +82,11 @@ void
simde_msa_st_d(simde_v2i64 a, void * rs, const int s10)
SIMDE_REQUIRE_CONSTANT_RANGE(s10, 0, 1023)
HEDLEY_REQUIRE_MSG((s10 % sizeof(int64_t)) == 0, "`s10' must be a multiple of sizeof(int64_t)") {
#if defined(SIMDE_MIPS_MSA_NATIVE)
return __msa_st_d(a, rs, s10);
#else
simde_memcpy(&(HEDLEY_REINTERPRET_CAST(int8_t*, rs)[s10]), &a, sizeof(a));
#endif
simde_memcpy(&(HEDLEY_REINTERPRET_CAST(int8_t*, rs)[s10]), &a, sizeof(a));
}
#if defined(SIMDE_MIPS_MSA_NATIVE)
#define simde_msa_st_d(a, rs, s10) __msa_st_d((a), (rs), (s10));
#endif
#if defined(SIMDE_MIPS_MSA_ENABLE_NATIVE_ALIASES)
#undef __msa_st_d
#define __msa_st_d(a, rs, s10) simde_msa_st_d((a), (rs), (s10))
......
......@@ -69,6 +69,7 @@ SIMDE_BEGIN_DECLS_
#define SIMDE_FLOAT16_API SIMDE_FLOAT16_API_FP16
#elif !defined(__EMSCRIPTEN__) && !(defined(__clang__) && defined(SIMDE_ARCH_POWER)) && \
!(defined(HEDLEY_MSVC_VERSION) && defined(__clang__)) && \
!(defined(SIMDE_ARCH_MIPS) && defined(__clang__)) && \
!(defined(__clang__) && defined(SIMDE_ARCH_RISCV64)) && ( \
defined(SIMDE_X86_AVX512FP16_NATIVE) || \
(defined(SIMDE_ARCH_X86_SSE2) && HEDLEY_GCC_VERSION_CHECK(12,0,0)) || \
......
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