]> git.ipfire.org Git - thirdparty/vectorscan.git/commitdiff
add missing intrinsics for SIMDe backend
authorKonstantnos Margaritis <konstantinos@vectorcamp.gr>
Thu, 23 Nov 2023 16:08:26 +0000 (16:08 +0000)
committerKonstantnos Margaritis <konstantinos@vectorcamp.gr>
Thu, 23 Nov 2023 16:08:26 +0000 (16:08 +0000)
src/util/arch/simde/simd_utils.h

index d241f87cbbce8d4ff929c9fb5e918b1497ef1120..b8e7d4a860bc4c977942e6479a87d8fb686e55bf 100644 (file)
@@ -99,14 +99,25 @@ static really_inline u32 diffrich64_128(m128 a, m128 b) {
     return ~(_mm_movemask_ps(_mm_castsi128_ps(a))) & 0x5;
 }
 
+static really_really_inline
+m128 add_2x64(m128 a, m128 b) {
+    return (m128) _mm_add_epi64(a, b);
+}
+
+static really_really_inline
+m128 sub_2x64(m128 a, m128 b) {
+    return (m128) _mm_sub_epi64(a, b);
+}
+
 static really_really_inline
 m128 lshift64_m128(m128 a, unsigned b) {
     return _mm_slli_epi64(a, b);
 }
 
 #define rshift64_m128(a, b) _mm_srli_epi64((a), (b))
-#define eq128(a, b)      _mm_cmpeq_epi8((a), (b))
-#define movemask128(a)  ((u32)_mm_movemask_epi8((a)))
+#define eq128(a, b)         _mm_cmpeq_epi8((a), (b))
+#define eq64_m128(a, b)     _mm_cmpeq_epi64((a), (b))
+#define movemask128(a)      ((u32)_mm_movemask_epi8((a)))
 
 static really_inline m128 set1_16x8(u8 c) {
     return _mm_set1_epi8(c);