diff --git a/src/Control/Concurrent/Chan/Unagi/Bounded.hs b/src/Control/Concurrent/Chan/Unagi/Bounded.hs
--- a/src/Control/Concurrent/Chan/Unagi/Bounded.hs
+++ b/src/Control/Concurrent/Chan/Unagi/Bounded.hs
@@ -1,7 +1,7 @@
 {-# LANGUAGE CPP #-}
 module Control.Concurrent.Chan.Unagi.Bounded
-#ifdef NOT_x86
-    {-# WARNING "This library is unlikely to perform well on architectures without a fetch-and-add instruction" #-}
+#ifdef NOT_optimised
+    {-# WARNING "This library is unlikely to perform well on architectures other than i386/x64/aarch64" #-}
 #endif
 #if __GLASGOW_HASKELL__ < 708
     {-# WARNING "Waking up blocked writers may be slower than desired in GHC<7.8 which makes readMVar non-blocking on full MVars. Nextidering upgrading." #-}
diff --git a/src/Control/Concurrent/Chan/Unagi/Internal.hs b/src/Control/Concurrent/Chan/Unagi/Internal.hs
--- a/src/Control/Concurrent/Chan/Unagi/Internal.hs
+++ b/src/Control/Concurrent/Chan/Unagi/Internal.hs
@@ -1,7 +1,7 @@
 {-# LANGUAGE BangPatterns , DeriveDataTypeable, CPP #-}
 module Control.Concurrent.Chan.Unagi.Internal
-#ifdef NOT_x86
-    {-# WARNING "This library is unlikely to perform well on architectures without a fetch-and-add instruction" #-}
+#ifdef NOT_optimised
+    {-# WARNING "This library is unlikely to perform well on architectures other than i386/x64/aarch64" #-}
 #endif
     (sEGMENT_LENGTH
     , InChan(..), OutChan(..), ChanEnd(..), StreamSegment, Cell(..), Stream(..)
diff --git a/src/Control/Concurrent/Chan/Unagi/NoBlocking/Internal.hs b/src/Control/Concurrent/Chan/Unagi/NoBlocking/Internal.hs
--- a/src/Control/Concurrent/Chan/Unagi/NoBlocking/Internal.hs
+++ b/src/Control/Concurrent/Chan/Unagi/NoBlocking/Internal.hs
@@ -1,7 +1,7 @@
 {-# LANGUAGE BangPatterns , DeriveDataTypeable, CPP #-}
 module Control.Concurrent.Chan.Unagi.NoBlocking.Internal
-#ifdef NOT_x86
-    {-# WARNING "This library is unlikely to perform well on architectures without a fetch-and-add instruction" #-}
+#ifdef NOT_optimised
+    {-# WARNING "This library is unlikely to perform well on architectures other than i386/x64/aarch64" #-}
 #endif
     (sEGMENT_LENGTH
     , InChan(..), OutChan(..), ChanEnd(..), StreamSegment, Cell, Stream(..)
diff --git a/src/Control/Concurrent/Chan/Unagi/NoBlocking/Unboxed/Internal.hs b/src/Control/Concurrent/Chan/Unagi/NoBlocking/Unboxed/Internal.hs
--- a/src/Control/Concurrent/Chan/Unagi/NoBlocking/Unboxed/Internal.hs
+++ b/src/Control/Concurrent/Chan/Unagi/NoBlocking/Unboxed/Internal.hs
@@ -1,7 +1,7 @@
 {-# LANGUAGE BangPatterns , DeriveDataTypeable, CPP #-}
 module Control.Concurrent.Chan.Unagi.NoBlocking.Unboxed.Internal
-#ifdef NOT_x86
-    {-# WARNING "This library is unlikely to perform well on architectures without a fetch-and-add instruction" #-}
+#ifdef NOT_optimised
+    {-# WARNING "This library is unlikely to perform well on architectures other than i386/x64/aarch64" #-}
 #endif
     (sEGMENT_LENGTH
     , InChan(..), OutChan(..), ChanEnd(..), Cell, Stream(..)
diff --git a/src/Control/Concurrent/Chan/Unagi/Unboxed/Internal.hs b/src/Control/Concurrent/Chan/Unagi/Unboxed/Internal.hs
--- a/src/Control/Concurrent/Chan/Unagi/Unboxed/Internal.hs
+++ b/src/Control/Concurrent/Chan/Unagi/Unboxed/Internal.hs
@@ -1,8 +1,8 @@
 {-# LANGUAGE BangPatterns , DeriveDataTypeable, CPP , ScopedTypeVariables #-}
 {-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}
 module Control.Concurrent.Chan.Unagi.Unboxed.Internal
-#ifdef NOT_x86
-    {-# WARNING "This library is unlikely to perform well on architectures without a fetch-and-add instruction" #-}
+#ifdef NOT_optimised
+    {-# WARNING "This library is unlikely to perform well on architectures other than i386/x64/aarch64" #-}
 #endif
     (sEGMENT_LENGTH
     , UnagiPrim(..)
diff --git a/unagi-chan.cabal b/unagi-chan.cabal
--- a/unagi-chan.cabal
+++ b/unagi-chan.cabal
@@ -1,5 +1,5 @@
 name:                unagi-chan
-version:             0.4.1.3
+version:             0.4.1.4
 
 synopsis:            Fast concurrent queues with a Chan-like API, and more
 
@@ -54,7 +54,7 @@
 --extra-doc-files:     images/*.png
 --cabal-version:       >=1.18
 extra-source-files: CHANGELOG.markdown
-Tested-With: GHC ==7.8.4 || ==7.10.3 || ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.4 || ==8.8.1
+Tested-With: GHC ==7.8.4 || ==7.10.3 || ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.4 || ==8.8.1 || ==8.10.7
 
 source-repository head   
     type:     git
@@ -86,10 +86,10 @@
                      , ghc-prim
   default-language:    Haskell2010
   
-  if !arch(i386) && !arch(x86_64)
-    cpp-options: -DNOT_x86
+  if !arch(i386) && !arch(x86_64) && !arch(aarch64)
+    cpp-options: -DNOT_optimised
   -- TODO: more complete list of 64-bit archs:
-  if arch(x86_64)
+  if arch(x86_64) || arch(aarch64)
     cpp-options: -DIS_64_BIT
 
   -- tryReadMVar is only available and non-broken on ghc >= 7.8.3
@@ -153,9 +153,9 @@
   default-language:    Haskell2010
   
   -- These have to be copied from 'library' section too!
-  if !arch(i386) && !arch(x86_64)
-    cpp-options: -DNOT_x86
-  if arch(x86_64)
+  if !arch(i386) && !arch(x86_64) && !arch(aarch64)
+    cpp-options: -DNOT_optimised
+  if arch(x86_64) || arch(aarch64)
     cpp-options: -DIS_64_BIT
  
   if impl(ghc >= 7.8.3)
