+#ifdef __SSE2__
+# define __GOST3411_HAS_SSE2__
+# if !defined(__x86_64__) && !defined(__e2k__)
+/*
+ * x86-64 bit Linux and Windows ABIs provide malloc function that returns
+ * 16-byte alignment memory buffers required by SSE load/store instructions.
+ * Other platforms require special trick for proper gost2012_hash_ctx structure
+ * allocation. It will be easier to switch to unaligned loadu/storeu memory
+ * access instructions in this case.
+ */
+# define UNALIGNED_SIMD_ACCESS
+# pragma message "Use unaligned SIMD memory access"