aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/include/ext
diff options
context:
space:
mode:
authorMichael Collison <michael.collison@arm.com>2017-07-23 22:46:34 +0000
committerMichael Collison <collison@gcc.gnu.org>2017-07-23 22:46:34 +0000
commit5bbf7664c3e26292702d9d7b37d6a1f872f8b5ea (patch)
tree602f85aa3eb7f63722540c741e95cafc2137af74 /libstdc++-v3/include/ext
parentc5014982bac1ec109d90e422f9a10039c21a5aa0 (diff)
downloadgcc-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')
-rw-r--r--libstdc++-v3/include/ext/random5
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)));