Author: Michael R. Crusoe <michael.crusoe@gmail.com>
Description: leverage the SIMD Everywhere library
Forwarded: https://github.com/TimoLassmann/kalign/pull/20
--- kalign.orig/src/alignment.c
+++ kalign/src/alignment.c
@@ -20,7 +20,8 @@
 
 */
 
-#include <xmmintrin.h>
+#define SIMDE_ENABLE_NATIVE_ALIASES
+#include <simde/x86/sse.h>
 #include "alignment.h"
 
 #include "pick_anchor.h"
--- kalign.orig/src/bisectingKmeans.c
+++ kalign/src/bisectingKmeans.c
@@ -20,7 +20,13 @@
 
 */
 
-#include <xmmintrin.h>
+#define SIMDE_ENABLE_NATIVE_ALIASES
+#include <simde/x86/sse.h>
+#if !defined(_SSE_NATIVE)
+  #include <stdlib.h>
+  #define _mm_malloc(size, align) aligned_alloc(align, size)
+  #define _mm_free free
+#endif
 
 #include "msa.h"
 
--- kalign.orig/src/bpm.c
+++ kalign/src/bpm.c
@@ -25,10 +25,9 @@
 
 #include "rng.h"
 
-
-
+#define SIMDE_ENABLE_NATIVE_ALIASES
+#include <simde/x86/avx2.h>
 #ifdef HAVE_AVX2
-#include <immintrin.h>
 
 __m256i BROADCAST_MASK[16];
 
--- kalign.orig/src/euclidean_dist.c
+++ kalign/src/euclidean_dist.c
@@ -22,8 +22,13 @@
 
 #include "euclidean_dist.h"
 #include "rng.h"
-#include <xmmintrin.h>
-#include <immintrin.h>
+#define SIMDE_ENABLE_NATIVE_ALIASES
+#include <simde/x86/avx.h>
+#if !defined(_SSE_NATIVE)
+  #include <stdlib.h>
+  #define _mm_malloc(size, align) aligned_alloc(align, size)
+  #define _mm_free free
+#endif
 #include "float.h"
 
 #include "esl_stopwatch.h"
--- kalign.orig/src/misc.c
+++ kalign/src/misc.c
@@ -20,7 +20,8 @@
 
 */
 
-#include <immintrin.h>
+#define SIMDE_ENABLE_NATIVE_ALIASES
+#include <simde/x86/avx.h>
 
 #include "misc.h"
 #include  <stdalign.h>
--- kalign.orig/src/sequence_distance.c
+++ kalign/src/sequence_distance.c
@@ -21,7 +21,13 @@
 
 */
 
-#include <xmmintrin.h>
+#define SIMDE_ENABLE_NATIVE_ALIASES
+#include <simde/x86/sse.h>
+#if !defined(_SSE_NATIVE)
+  #include <stdlib.h>
+  #define _mm_malloc(size, align) aligned_alloc(align, size)
+  #define _mm_free free
+#endif
 #include "sequence_distance.h"
 
 #include "alphabet.h"
