aboutsummaryrefslogtreecommitdiffstats
path: root/test/monniaux/bitsliced-tea
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-04-03 21:59:22 +0200
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-04-03 21:59:22 +0200
commit4518486a771055e633aa050141d9721353d542d7 (patch)
tree0916e82f7229068dd492c9552c248d9d94137920 /test/monniaux/bitsliced-tea
parent104681e5db184659a36762e0776cef133d70455b (diff)
downloadcompcert-kvx-4518486a771055e633aa050141d9721353d542d7.tar.gz
compcert-kvx-4518486a771055e633aa050141d9721353d542d7.zip
ternary ops in AES and TEA
Diffstat (limited to 'test/monniaux/bitsliced-tea')
-rw-r--r--test/monniaux/bitsliced-tea/bstea.h12
-rw-r--r--test/monniaux/bitsliced-tea/bstea_wordsize.h2
2 files changed, 3 insertions, 11 deletions
diff --git a/test/monniaux/bitsliced-tea/bstea.h b/test/monniaux/bitsliced-tea/bstea.h
index fa767996..793f29ff 100644
--- a/test/monniaux/bitsliced-tea/bstea.h
+++ b/test/monniaux/bitsliced-tea/bstea.h
@@ -6,16 +6,8 @@
#include "bstea_wordsize.h"
-static inline long compcert_ternary_signedl(long x, long v0, long v1) {
- return ((-(x==0)) & v0) | ((-(x!=0)) & v1);
-}
-
-static inline uint32_t compcert_ternary(uint32_t x, uint32_t v0, uint32_t v1) {
- return compcert_ternary_signedl(x, v0, v1);
-}
-
-#if defined(__K1C__)
-#define TERNARY(x, v1, v0) compcert_ternary((x), (v0), (v1))
+#if defined(__K1C__) && defined(__COMPCERT__)
+#define TERNARY(x, v1, v0) __builtin_ternary_ulong((x)!=0, (v1), (v0))
#else
#define TERNARY(x, v1, v0) ((x) ? (v1) : (v0))
#endif
diff --git a/test/monniaux/bitsliced-tea/bstea_wordsize.h b/test/monniaux/bitsliced-tea/bstea_wordsize.h
index 5381e17c..b4e2e823 100644
--- a/test/monniaux/bitsliced-tea/bstea_wordsize.h
+++ b/test/monniaux/bitsliced-tea/bstea_wordsize.h
@@ -6,7 +6,7 @@
#if defined __x86_64__ || defined __amd64__ || defined __x86_64 || \
defined __amd64 || defined _M_X64 || defined __ia64__ || \
defined __ia64__ || defined __IA64__ || defined __ia64 || \
- defined _M_IA64
+ defined _M_IA64 || defined __K1C__
# define __BSTEA_WORDSIZE 64
#else
# define __BSTEA_WORDSIZE 32