diff options
author | Jeffrey Walton <noloader@gmail.com> | 2018-11-11 01:14:43 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-11 01:14:43 -0500 |
commit | 6e94562c526cc2847abbb175e46ebd0b16617ce6 (patch) | |
tree | 71f5e42ba380f11c5901cf81a29a39a025a221e7 /TestPrograms | |
parent | 087f97edea44f56a0220c336a52d0a778a70983d (diff) | |
download | cryptopp-git-6e94562c526cc2847abbb175e46ebd0b16617ce6.tar.gz |
Move to feature-based availability testing in Makefile (PR #737)
Diffstat (limited to 'TestPrograms')
-rw-r--r-- | TestPrograms/test_aesni.cxx | 10 | ||||
-rw-r--r-- | TestPrograms/test_altivec.cxx | 8 | ||||
-rw-r--r-- | TestPrograms/test_asimd.cxx | 16 | ||||
-rw-r--r-- | TestPrograms/test_avx.cxx | 7 | ||||
-rw-r--r-- | TestPrograms/test_avx2.cxx | 7 | ||||
-rw-r--r-- | TestPrograms/test_clmul.cxx | 7 | ||||
-rw-r--r-- | TestPrograms/test_cpuid.cxx | 8 | ||||
-rw-r--r-- | TestPrograms/test_crc.cxx | 23 | ||||
-rw-r--r-- | TestPrograms/test_crypto_v81.cxx | 23 | ||||
-rw-r--r-- | TestPrograms/test_crypto_v84.cxx | 29 | ||||
-rw-r--r-- | TestPrograms/test_cxx.cxx | 7 | ||||
-rw-r--r-- | TestPrograms/test_neon.cxx | 13 | ||||
-rw-r--r-- | TestPrograms/test_power7.cxx | 15 | ||||
-rw-r--r-- | TestPrograms/test_power8.cxx | 19 | ||||
-rw-r--r-- | TestPrograms/test_shani.cxx | 13 | ||||
-rw-r--r-- | TestPrograms/test_sse2.cxx | 7 | ||||
-rw-r--r-- | TestPrograms/test_sse3.cxx | 7 | ||||
-rw-r--r-- | TestPrograms/test_sse41.cxx | 7 | ||||
-rw-r--r-- | TestPrograms/test_sse42.cxx | 7 | ||||
-rw-r--r-- | TestPrograms/test_ssse3.cxx | 7 |
20 files changed, 240 insertions, 0 deletions
diff --git a/TestPrograms/test_aesni.cxx b/TestPrograms/test_aesni.cxx new file mode 100644 index 00000000..c98fd487 --- /dev/null +++ b/TestPrograms/test_aesni.cxx @@ -0,0 +1,10 @@ +#include <wmmintrin.h> +int main(int argc, char* argv[]) +{ + __m128i x; + x=_mm_aesenc_si128(x,x); + x=_mm_aesenclast_si128(x,x); + x=_mm_aesdec_si128(x,x); + x=_mm_aesdeclast_si128(x,x); + return 0; +} diff --git a/TestPrograms/test_altivec.cxx b/TestPrograms/test_altivec.cxx new file mode 100644 index 00000000..3223c1c3 --- /dev/null +++ b/TestPrograms/test_altivec.cxx @@ -0,0 +1,8 @@ +#include <altivec.h> +int main(int argc, char* argv[]) +{ + __vector unsigned char x; + x=vec_ld(0, (unsigned char*)argv[0]); + x=vec_add(x,x); + return 0; +} diff --git a/TestPrograms/test_asimd.cxx b/TestPrograms/test_asimd.cxx new file mode 100644 index 00000000..2940bb4b --- /dev/null +++ b/TestPrograms/test_asimd.cxx @@ -0,0 +1,16 @@ +#include <arm_neon.h> +#include <stdint.h> + +// This is how config.h includes it. +#if defined(__aarch32__) || defined(__aarch64__) || (__ARM_ARCH >= 8) || defined(__ARM_ACLE) +# if !defined(__ANDROID__) && !defined(ANDROID) && !defined(__APPLE__) +# include <arm_acle.h> +# endif +#endif + +int main(int argc, char* argv[]) +{ + uint32x4_t x; + x=veorq_u32(x,x); + return 0; +} diff --git a/TestPrograms/test_avx.cxx b/TestPrograms/test_avx.cxx new file mode 100644 index 00000000..af64cf8d --- /dev/null +++ b/TestPrograms/test_avx.cxx @@ -0,0 +1,7 @@ +#include <immintrin.h> +int main(int argc, char* argv[]) +{ + __m256d x; + x=_mm256_addsub_pd(x,x); + return 0; +} diff --git a/TestPrograms/test_avx2.cxx b/TestPrograms/test_avx2.cxx new file mode 100644 index 00000000..611ebc34 --- /dev/null +++ b/TestPrograms/test_avx2.cxx @@ -0,0 +1,7 @@ +#include <immintrin.h> +int main(int argc, char* argv[]) +{ + __m256i x; + x=_mm256_add_epi64 (x,x); + return 0; +} diff --git a/TestPrograms/test_clmul.cxx b/TestPrograms/test_clmul.cxx new file mode 100644 index 00000000..1670abdf --- /dev/null +++ b/TestPrograms/test_clmul.cxx @@ -0,0 +1,7 @@ +#include <wmmintrin.h> +int main(int argc, char* argv[]) +{ + __m128i x; + x=_mm_clmulepi64_si128(x,x,0x11); + return 0; +} diff --git a/TestPrograms/test_cpuid.cxx b/TestPrograms/test_cpuid.cxx new file mode 100644 index 00000000..da755a0b --- /dev/null +++ b/TestPrograms/test_cpuid.cxx @@ -0,0 +1,8 @@ +#include <stdint.h> +int main(int argc, char* argv[]) +{ + uint32_t a, b, c, d; + asm volatile ( "cpuid" : "+a"(a), "=b"(b), "+c"(c), "=d"(d) ); + + return 0; +} diff --git a/TestPrograms/test_crc.cxx b/TestPrograms/test_crc.cxx new file mode 100644 index 00000000..d8629efb --- /dev/null +++ b/TestPrograms/test_crc.cxx @@ -0,0 +1,23 @@ +#include <arm_neon.h> +#include <stdint.h> + +// This is how config.h includes it. +#if defined(__aarch32__) || defined(__aarch64__) || (__ARM_ARCH >= 8) || defined(__ARM_ACLE) +# if !defined(__ANDROID__) && !defined(ANDROID) && !defined(__APPLE__) +# include <arm_acle.h> +# endif +#endif + +int main(int argc, char* argv[]) +{ + uint32_t w=0xffffffff; + + w = __crc32w(w,w); + w = __crc32h(w,w); + w = __crc32b(w,w); + w = __crc32cw(w,w); + w = __crc32ch(w,w); + w = __crc32cb(w,w); + + return 0; +} diff --git a/TestPrograms/test_crypto_v81.cxx b/TestPrograms/test_crypto_v81.cxx new file mode 100644 index 00000000..d0e440e0 --- /dev/null +++ b/TestPrograms/test_crypto_v81.cxx @@ -0,0 +1,23 @@ +#include <arm_neon.h> +#include <stdint.h> + +// This is how config.h includes it. +#if defined(__aarch32__) || defined(__aarch64__) || (__ARM_ARCH >= 8) || defined(__ARM_ACLE) +# if !defined(__ANDROID__) && !defined(ANDROID) && !defined(__APPLE__) +# include <arm_acle.h> +# endif +#endif + +int main(int argc, char* argv[]) +{ + uint8x16_t x; + x=vaeseq_u8(x,x); + x=vaesdq_u8(x,x); + + uint32x4_t y; + y=vsha1cq_u32(y,0,y); + y=vsha1mq_u32(y,1,y); + y=vsha1pq_u32(y,2,y); + + return 0; +} diff --git a/TestPrograms/test_crypto_v84.cxx b/TestPrograms/test_crypto_v84.cxx new file mode 100644 index 00000000..8ce696fc --- /dev/null +++ b/TestPrograms/test_crypto_v84.cxx @@ -0,0 +1,29 @@ +#include <arm_neon.h> +#include <stdint.h> + +// This is how config.h includes it. +#if defined(__aarch32__) || defined(__aarch64__) || (__ARM_ARCH >= 8) || defined(__ARM_ACLE) +# if !defined(__ANDROID__) && !defined(ANDROID) && !defined(__APPLE__) +# include <arm_acle.h> +# endif +#endif + +int main(int argc, char* argv[]) +{ + // SM4 block cipher + uint32x4_t x; + x=vsm4ekeyq_u32(x,x); + x=vsm4eq_u32(x,x); + + // SM3 hash + uint32x4_t y; + y=vsm3ss1q_u32(x,y,y); + y=vsm3tt1aq_u32(x,y,y,3); + y=vsm3tt1bq_u32(x,y,y,1); + y=vsm3tt2aq_u32(x,y,y,2); + y=vsm3tt2bq_u32(x,y,y,3); + y=vsm3partw1q_u32(x,y,y); + y=vsm3partw2q_u32(x,y,y); + + return 0; +} diff --git a/TestPrograms/test_cxx.cxx b/TestPrograms/test_cxx.cxx new file mode 100644 index 00000000..49795db4 --- /dev/null +++ b/TestPrograms/test_cxx.cxx @@ -0,0 +1,7 @@ +#include <string> +#include <cstdint> +int main(int argc, char* argv[]) +{ + uint32_t x=0; + return x; +} diff --git a/TestPrograms/test_neon.cxx b/TestPrograms/test_neon.cxx new file mode 100644 index 00000000..7e293633 --- /dev/null +++ b/TestPrograms/test_neon.cxx @@ -0,0 +1,13 @@ +#include <arm_neon.h> +#include <stdint.h> + +#if (CRYPTOPP_ARM_ACLE_AVAILABLE) +# include <arm_acle.h> +#endif + +int main(int argc, char* argv[]) +{ + uint32x4_t x; + x=veorq_u32(x,x); + return 0; +} diff --git a/TestPrograms/test_power7.cxx b/TestPrograms/test_power7.cxx new file mode 100644 index 00000000..54575cfd --- /dev/null +++ b/TestPrograms/test_power7.cxx @@ -0,0 +1,15 @@ +#include <altivec.h> +int main(int argc, char* argv[]) +{ + __vector unsigned int z; +#if defined(__xlc__) || defined(__xlC__) || defined(__clang__) + __vector unsigned char x; + x=vec_xl(0, (unsigned char*)argv[0]); + x=vec_add(x,x); +#else + __vector unsigned char x; + x=vec_vsx_ld(0, (unsigned char*)argv[0]); + x=vec_add(x,x); +#endif + return 0; +} diff --git a/TestPrograms/test_power8.cxx b/TestPrograms/test_power8.cxx new file mode 100644 index 00000000..9e864e10 --- /dev/null +++ b/TestPrograms/test_power8.cxx @@ -0,0 +1,19 @@ +#include <altivec.h> +int main(int argc, char* argv[]) +{ + __vector unsigned long long z; +#if defined(__xlc__) || defined(__xlC__) || defined(__clang__) + __vector unsigned char x; + x=__vcipher(x,x); + x=__vcipherlast(x,x); + x=__vncipher(x,x); + x=__vncipherlast(x,x); +#elif defined(CRYPTOPP_GCC_VERSION) + __vector unsigned long long x; + x=__builtin_crypto_vcipher(x,x); + x=__builtin_crypto_vcipherlast(x,x); + x=__builtin_crypto_vncipher(x,x); + x=__builtin_crypto_vncipherlast(x,x); +#endif + return 0; +} diff --git a/TestPrograms/test_shani.cxx b/TestPrograms/test_shani.cxx new file mode 100644 index 00000000..700d9e51 --- /dev/null +++ b/TestPrograms/test_shani.cxx @@ -0,0 +1,13 @@ +#include <immintrin.h> +int main(int argc, char* argv[]) +{ + __m128i x; + x=_mm_sha1msg1_epu32(x,x); + x=_mm_sha1msg2_epu32(x,x); + x=_mm_sha1nexte_epu32(x,x); + x=_mm_sha1rnds4_epu32(x,x,0); + x=_mm_sha256msg1_epu32(x,x); + x=_mm_sha256msg2_epu32(x,x); + x=_mm_sha256rnds2_epu32(x,x,x); + return 0; +} diff --git a/TestPrograms/test_sse2.cxx b/TestPrograms/test_sse2.cxx new file mode 100644 index 00000000..090ed445 --- /dev/null +++ b/TestPrograms/test_sse2.cxx @@ -0,0 +1,7 @@ +#include <immintrin.h> +int main(int argc, char* argv[]) +{ + __m128i x; + x=_mm_add_epi64(x,x); + return 0; +} diff --git a/TestPrograms/test_sse3.cxx b/TestPrograms/test_sse3.cxx new file mode 100644 index 00000000..6ec1f74b --- /dev/null +++ b/TestPrograms/test_sse3.cxx @@ -0,0 +1,7 @@ +#include <pmmintrin.h> +int main(int argc, char* argv[]) +{ + __m128d x; + x=_mm_addsub_pd(x,x); + return 0; +} diff --git a/TestPrograms/test_sse41.cxx b/TestPrograms/test_sse41.cxx new file mode 100644 index 00000000..771c8de8 --- /dev/null +++ b/TestPrograms/test_sse41.cxx @@ -0,0 +1,7 @@ +#include <smmintrin.h> +int main(int argc, char* argv[]) +{ + __m128i x, a, b; + x=_mm_blend_epi16(a,b,4); + return 0; +} diff --git a/TestPrograms/test_sse42.cxx b/TestPrograms/test_sse42.cxx new file mode 100644 index 00000000..1ba74eb2 --- /dev/null +++ b/TestPrograms/test_sse42.cxx @@ -0,0 +1,7 @@ +#include <nmmintrin.h> +int main(int argc, char* argv[]) +{ + unsigned int x=32; + x=_mm_crc32_u8(x,4); + return 0; +} diff --git a/TestPrograms/test_ssse3.cxx b/TestPrograms/test_ssse3.cxx new file mode 100644 index 00000000..5c437569 --- /dev/null +++ b/TestPrograms/test_ssse3.cxx @@ -0,0 +1,7 @@ +#include <tmmintrin.h> +int main(int argc, char* argv[]) +{ + __m128i x; + x=_mm_alignr_epi8(x,x,2); + return 0; +} |