Commit ecfce0b8 by Paolo Carlini Committed by Paolo Carlini

re PR libstdc++/54612 (Many failures in ext/random testsuite)

2012-09-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/54612
	* include/ext/random.tcc (operator==
	(const __gnu_cxx::simd_fast_mersenne_twister_engine<>&,
	const __gnu_cxx::simd_fast_mersenne_twister_engine<>&)): Fix
	state_size use.
	* config/cpu/i486/opt/ext/opt_random.h: Guard with __SSE2__.

From-SVN: r191424
parent 1d61ee42
2012-09-18 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/54612
* include/ext/random.tcc (operator==
(const __gnu_cxx::simd_fast_mersenne_twister_engine<>&,
const __gnu_cxx::simd_fast_mersenne_twister_engine<>&)): Fix
state_size use.
* config/cpu/i486/opt/ext/opt_random.h: Guard with __SSE2__.
2012-09-17 Ulrich Drepper <drepper@gmail.com> 2012-09-17 Ulrich Drepper <drepper@gmail.com>
* configure.ac: Substitute CPU_OPT_EXT_RANDOM. * configure.ac: Substitute CPU_OPT_EXT_RANDOM.
......
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
#pragma GCC system_header #pragma GCC system_header
#ifdef __SSE2__
namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
{ {
...@@ -130,5 +131,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -130,5 +131,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION _GLIBCXX_END_NAMESPACE_VERSION
} // namespace } // namespace
#endif // __SSE2__
#endif // _EXT_OPT_RANDOM_H #endif // _EXT_OPT_RANDOM_H
...@@ -328,7 +328,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -328,7 +328,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
__msk1, __msk2, __msk3, __msk4, __msk1, __msk2, __msk3, __msk4,
__parity1, __parity2, __parity3, __parity4>& __rhs) __parity1, __parity2, __parity3, __parity4>& __rhs)
{ {
return (std::equal(__lhs._M_stateT, __lhs._M_stateT + state_size, typedef __gnu_cxx::simd_fast_mersenne_twister_engine<_UIntType,
__m, __pos1, __sl1, __sl2, __sr1, __sr2,
__msk1, __msk2, __msk3, __msk4,
__parity1, __parity2, __parity3, __parity4> __engine;
return (std::equal(__lhs._M_stateT,
__lhs._M_stateT + __engine::state_size,
__rhs._M_stateT) __rhs._M_stateT)
&& __lhs._M_pos == __rhs._M_pos); && __lhs._M_pos == __rhs._M_pos);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment