diff --git a/cbits/debug.h b/cbits/debug.h
--- a/cbits/debug.h
+++ b/cbits/debug.h
@@ -1,8 +1,8 @@
-#include <immintrin.h>
-#include <mmintrin.h>
 #include <stdint.h>
 #include <stdio.h>
 
+#include "intrinsics.h"
+
 #if defined __AVX2__
 inline void hw_simd_json_fprint256_num(FILE *file, __m256i var) {
   uint8_t *val = (uint8_t*)&var;
@@ -76,15 +76,9 @@
 
 #if defined __AVX2__
 inline void hw_simd_json_print_bits_128(__m128i v) {
-  int i = 0;
-
-  for (i = 0; i < 2; ++i) {
-    if (i > 0) {
-      printf("-");
-    }
-
-    hw_simd_json_print_bits_64(_mm_extract_epi64(v, i));
-  }
+  hw_simd_json_print_bits_64(_mm_extract_epi64(v, 0));
+  printf("-");
+  hw_simd_json_print_bits_64(_mm_extract_epi64(v, 1));
 }
 #endif//__AVX2__
 
diff --git a/cbits/intrinsics.h b/cbits/intrinsics.h
new file mode 100644
--- /dev/null
+++ b/cbits/intrinsics.h
@@ -0,0 +1,7 @@
+#ifndef intrinsics_h___
+#define intrinsics_h___
+
+#include <immintrin.h>
+#include <mmintrin.h>
+
+#endif//intrinsics_h___
diff --git a/cbits/simd-phi-table-32.c b/cbits/simd-phi-table-32.c
--- a/cbits/simd-phi-table-32.c
+++ b/cbits/simd-phi-table-32.c
@@ -1,5 +1,6 @@
+#include "intrinsics.h"
+
 #include <stdint.h>
-#include <immintrin.h>
 
 uint32_t hw_json_simd_phi_table_32[] =
   { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
diff --git a/cbits/simd-spliced.c b/cbits/simd-spliced.c
--- a/cbits/simd-spliced.c
+++ b/cbits/simd-spliced.c
@@ -1,8 +1,8 @@
+#include "intrinsics.h"
+
 #include <stdlib.h>
 #include <string.h>
 #include <stdio.h>
-#include <immintrin.h>
-#include <mmintrin.h>
 
 #include "simd.h"
 
diff --git a/cbits/simd-state.c b/cbits/simd-state.c
--- a/cbits/simd-state.c
+++ b/cbits/simd-state.c
@@ -1,12 +1,11 @@
+#include "debug.h"
+#include "intrinsics.h"
+#include "simd.h"
+
 #include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <immintrin.h>
-
-#include "debug.h"
-
-#include "simd.h"
 
 void
 hw_json_simd_sm_process_chunk(
diff --git a/cbits/simd-transition-table-32.c b/cbits/simd-transition-table-32.c
--- a/cbits/simd-transition-table-32.c
+++ b/cbits/simd-transition-table-32.c
@@ -1,5 +1,6 @@
+#include "intrinsics.h"
+
 #include <stdint.h>
-#include <immintrin.h>
 
 uint32_t hw_json_simd_transition_table_32[] =
   { 0x00010100, 0x00010100, 0x00010100, 0x00010100, 0x00010100, 0x00010100, 0x00010100, 0x00010100
diff --git a/cbits/simd.h b/cbits/simd.h
--- a/cbits/simd.h
+++ b/cbits/simd.h
@@ -1,5 +1,5 @@
-#include <immintrin.h>
-#include <mmintrin.h>
+#include "intrinsics.h"
+
 #include <stdint.h>
 #include <stdio.h>
 
diff --git a/hw-json-simd.cabal b/hw-json-simd.cabal
--- a/hw-json-simd.cabal
+++ b/hw-json-simd.cabal
@@ -1,7 +1,7 @@
 cabal-version:  2.2
 
 name:           hw-json-simd
-version:        0.1.0.1
+version:        0.1.0.2
 synopsis:       SIMD-based JSON semi-indexer
 description:    Please see the README on GitHub at <https://github.com/haskell-works/hw-json-simd#readme>
 category:       Data
@@ -13,10 +13,11 @@
 license:        BSD-3-Clause
 license-file:   LICENSE
 build-type:     Simple
-tested-with:    GHC == 8.6.1, GHC == 8.4.3, GHC == 8.2.2, GHC == 7.10.3, GHC == 8.0.2
+tested-with:    GHC == 8.6.3, GHC == 8.4.4, GHC == 8.2.2, GHC == 8.0.2
 extra-source-files:
     cbits/debug.h
     cbits/simd.h
+    cbits/intrinsics.h
     cbits/simd.c
     cbits/simd-spliced.c
     cbits/simd-state.c
