diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-04-03 21:59:22 +0200 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-04-03 21:59:22 +0200 |
commit | 4518486a771055e633aa050141d9721353d542d7 (patch) | |
tree | 0916e82f7229068dd492c9552c248d9d94137920 /test/monniaux/bitsliced-tea | |
parent | 104681e5db184659a36762e0776cef133d70455b (diff) | |
download | compcert-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.h | 12 | ||||
-rw-r--r-- | test/monniaux/bitsliced-tea/bstea_wordsize.h | 2 |
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 |