From 5bbf7664c3e26292702d9d7b37d6a1f872f8b5ea Mon Sep 17 00:00:00 2001 From: Michael Collison Date: Sun, 23 Jul 2017 22:46:34 +0000 Subject: Add optimized implementation of mersenne twister for aarch64 2017-07-23 Michael Collison Add optimized implementation of mersenne twister for aarch64 * config/cpu/aarch64/opt/ext/opt_random.h: New file. (__arch64_recursion): New function. (__aarch64_lsr_128): New function. (__aarch64_lsl_128): New function. (operator==): New function. (simd_fast_mersenne_twister_engine): Implement method _M_gen_rand. * config/cpu/aarch64/opt/bits/opt_random.h: New file. * include/ext/random: (simd_fast_mersenne_twister_engine): add _M_state private array. From-SVN: r250464 --- libstdc++-v3/include/ext/random | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'libstdc++-v3/include') diff --git a/libstdc++-v3/include/ext/random b/libstdc++-v3/include/ext/random index c991345..3665b28 100644 --- a/libstdc++-v3/include/ext/random +++ b/libstdc++-v3/include/ext/random @@ -184,6 +184,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION #ifdef __SSE2__ __m128i _M_state[_M_nstate]; #endif +#ifdef __ARM_NEON +#ifdef __aarch64__ + __Uint32x4_t _M_state[_M_nstate]; +#endif +#endif uint32_t _M_state32[_M_nstate32]; result_type _M_stateT[state_size]; } __attribute__ ((__aligned__ (16))); -- cgit v1.1