Use libsimde, inspired by guix patches from Efraim Flashner:

  https://git.savannah.gnu.org/cgit/guix.git/commit/?id=0f6dc5478063e0f48bfc58fe4db99f17e495991d

Index: lcsync/src/mld.h
===================================================================
--- lcsync.orig/src/mld.h
+++ lcsync/src/mld.h
@@ -8,7 +8,8 @@
 #include <limits.h>
 #include <netdb.h>
 #include <netinet/in.h>
-#include <immintrin.h>
+#include <simde/simde-features.h>
+#include <simde/x86/ssse3.h>
 #include "vec.h"
 
 #define BLOOM_SZ 16777216
Index: lcsync/src/vec.h
===================================================================
--- lcsync.orig/src/vec.h
+++ lcsync/src/vec.h
@@ -5,14 +5,15 @@
 #define _VEC_H 1
 
 #include <limits.h>
-#include <immintrin.h>
+#include <simde/simde-features.h>
+#include <simde/x86/ssse3.h>
 #include <stdint.h>
 
 #define VECTOR_SZ 16
 #define VECTOR_BITS VECTOR_SZ * CHAR_BIT
 
 typedef unsigned char u8x16 __attribute__ ((vector_size (VECTOR_SZ)));
-typedef union { __m128i v; u8x16 u8; } vec_t;
+typedef union { simde__m128i v; u8x16 u8; } vec_t;
 
 void    vec_inc_epi8(vec_t *v, size_t idx);
 void    vec_dec_epi8(vec_t *v, size_t idx);
