summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@gmail.com>2013-06-17 20:39:30 -0400
committerErik Schnetter <schnetter@gmail.com>2013-06-17 20:39:30 -0400
commit4ecbdd61a0c21cdd37f71c3e62fe2e09a1fed29e (patch)
tree9a7566fe64d04fe91c9a124196c8185f16df5270
parentdc022e369395379563d35e4bbfa2bb0469e668c0 (diff)
downloadvecmathlib-4ecbdd61a0c21cdd37f71c3e62fe2e09a1fed29e.zip
vecmathlib-4ecbdd61a0c21cdd37f71c3e62fe2e09a1fed29e.tar.gz
Support Intel compiler
-rw-r--r--vec_test.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/vec_test.h b/vec_test.h
index 6f87940..4e4a87b 100644
--- a/vec_test.h
+++ b/vec_test.h
@@ -420,7 +420,7 @@ namespace vecmathlib {
}
inline void barrier()
{
-#if defined __GNUC__ && !defined __clang__
+#if defined __GNUC__ && !defined __clang__ && !defined __ICC
// GCC crashes when +X is used as constraint
# if defined __SSE2__
for (int d=0; d<size; ++d) __asm__("": "+x" (v[d]));
@@ -433,6 +433,12 @@ namespace vecmathlib {
# endif
#elif defined __clang__
for (int d=0; d<size; ++d) __asm__("": "+X" (v[d]));
+#elif defined __ICC
+ for (int d=0; d<size; ++d) {
+ real_t tmp = v[d];
+ __asm__("": "+X" (tmp));
+ v[d] = tmp;
+ }
#elif defined __IBMCPP__
for (int d=0; d<size; ++d) __asm__("": "+f" (v[d]));
#else
OpenPOWER on IntegriCloud