summaryrefslogtreecommitdiffhomepage
path: root/compat/defs.hpp
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2023-10-04 23:10:28 +0200
committerStanislaw Halik <sthalik@misaki.pl>2023-10-05 14:14:10 +0200
commita287c06c278f88817feb435fa0f2dd53471c90b7 (patch)
tree5f4d78d39f6b622b104340c41be845a35d521bf3 /compat/defs.hpp
parentdb4e7df7a7a523a0e79ea97983ff28fb4c3ae439 (diff)
compat/defs: add unroll pragma
Diffstat (limited to 'compat/defs.hpp')
-rw-r--r--compat/defs.hpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/compat/defs.hpp b/compat/defs.hpp
index 7fa74c9f..6b80f6ea 100644
--- a/compat/defs.hpp
+++ b/compat/defs.hpp
@@ -61,3 +61,20 @@
#else
#define fm_no_unique_address no_unique_address
#endif
+
+#ifdef _MSC_VER
+#define fm_UNROLL _Pragma("loop(ivdep)")
+#define fm_UNROLL_4 fm_UNROLL
+#define fm_UNROLL_8 fm_UNROLL
+#else
+#ifndef __SIZEOF_POINTER__
+#error "missing __SIZEOF_POINTER__"
+#endif
+#define fm_UNROLL_4 _Pragma("GCC unroll 4")
+#define fm_UNROLL_8 _Pragma("GCC unroll 8")
+#if __SIZEOF_POINTER__ >= 8
+#define fm_UNROLL _Pragma("GCC unroll 8")
+#else
+#define fm_UNROLL _Pragma("GCC unroll 4")
+#endif
+#endif