|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT/INTEL-INTRINSICS PATCH 2/2] Fix _mm256_extract_epi64 definition on GCC
Signed-off-by: Vlad-Andrei Badoiu <vlad_andrei.badoiu@xxxxxx>
---
include/avxintrin.h | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/include/avxintrin.h b/include/avxintrin.h
index 6b9541d..9ab6de7 100644
--- a/include/avxintrin.h
+++ b/include/avxintrin.h
@@ -2035,8 +2035,17 @@ _mm256_blendv_ps(__m256 __a, __m256 __b, __m256 __c)
/// element is extracted and returned.
/// \returns A 64-bit integer containing the extracted 64 bits of extended
/// packed data.
+#ifdef __clang__
#define _mm256_extract_epi64(X, N) \
(long long)__builtin_ia32_vec_ext_v4di((__v4di)(__m256i)(X), (int)(N))
+#else
+#define _mm256_extract_epi64(X, N) \
+ (__extension__
\
+ ({
\
+ __m128i __Y = _mm256_extractf128_si256 ((X), (N) >> 1);
\
+ _mm_extract_epi64 (__Y, (N) % 2);
\
+ }))
+#endif
#endif
/// Takes a [8 x i32] vector and replaces the vector element value
--
2.20.1
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |