diff --git a/cmake/Modules/FindGccAtomic.cmake b/cmake/Modules/FindGccAtomic.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..0a0f079bfb2749afd9898d10720cdb98a1da70df
--- /dev/null
+++ b/cmake/Modules/FindGccAtomic.cmake
@@ -0,0 +1,28 @@
+# This scripts finds gcc's built-in atomic shared library (libatomic.so).
+# It is required to link against this library on gcc when using 16 byte atomics, even when running on x86_64/amd64.
+
+if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+
+  FIND_LIBRARY(GCCLIBATOMIC_LIBRARY NAMES atomic atomic.so.1 libatomic.so.1
+    HINTS
+    $ENV{HOME}/local/lib64
+    $ENV{HOME}/local/lib
+    /usr/local/lib64
+    /usr/local/lib
+    /opt/local/lib64
+    /opt/local/lib
+    /usr/lib64
+    /usr/lib
+    /lib64
+    /lib
+  )
+
+else ()
+
+  SET(GCCLIBATOMIC_LIBRARY "")
+
+endif ()
+
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(GCCLIBATOMIC DEFAULT_MSG GCCLIBATOMIC_LIBRARY)
+