diff options
author | Michael Collison <michael.collison@arm.com> | 2017-07-23 22:46:34 +0000 |
---|---|---|
committer | Michael Collison <collison@gcc.gnu.org> | 2017-07-23 22:46:34 +0000 |
commit | 5bbf7664c3e26292702d9d7b37d6a1f872f8b5ea (patch) | |
tree | 602f85aa3eb7f63722540c741e95cafc2137af74 /libstdc++-v3/include/ext/random | |
parent | c5014982bac1ec109d90e422f9a10039c21a5aa0 (diff) | |
download | gcc-5bbf7664c3e26292702d9d7b37d6a1f872f8b5ea.zip gcc-5bbf7664c3e26292702d9d7b37d6a1f872f8b5ea.tar.gz gcc-5bbf7664c3e26292702d9d7b37d6a1f872f8b5ea.tar.bz2 |
Add optimized implementation of mersenne twister for aarch64
2017-07-23 Michael Collison <michael.collison@arm.com>
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
Diffstat (limited to 'libstdc++-v3/include/ext/random')
-rw-r--r-- | libstdc++-v3/include/ext/random | 5 |
1 files changed, 5 insertions, 0 deletions
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))); |