aboutsummaryrefslogtreecommitdiff
path: root/pixman/test/utils-prng.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2012-12-12 08:35:50 +0100
committermarha <marha@users.sourceforge.net>2012-12-12 08:35:50 +0100
commitb395c3c85251d4e8761704d8e3a3c9f9fa5b45cc (patch)
tree9e522597a3553d72c66f4c9c57fc15c6c4df345c /pixman/test/utils-prng.c
parent0328076efb5ff6e62152c09e38d0d11f7931d07b (diff)
downloadvcxsrv-b395c3c85251d4e8761704d8e3a3c9f9fa5b45cc.tar.gz
vcxsrv-b395c3c85251d4e8761704d8e3a3c9f9fa5b45cc.tar.bz2
vcxsrv-b395c3c85251d4e8761704d8e3a3c9f9fa5b45cc.zip
fontconfig mesa pixman xkeyboard-config git update 12 dev 2012
fontconfig: 9ce36f4bbebc702a35d0cd9f1a59d5b828549bc6 mesa: 621259b3de1f15c879620bbf17764fd8a27ae6f5 pixman: fdab3c1b6cd9c5e197ec3f6bc0a03da32880e317 xkeyboard-config: 378597a9d525f069c049fdd6d04ff628123f82c7
Diffstat (limited to 'pixman/test/utils-prng.c')
-rw-r--r--pixman/test/utils-prng.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/pixman/test/utils-prng.c b/pixman/test/utils-prng.c
index 7c2dd6a9a..967b8989a 100644
--- a/pixman/test/utils-prng.c
+++ b/pixman/test/utils-prng.c
@@ -27,6 +27,10 @@
#include "utils.h"
#include "utils-prng.h"
+#if defined(GCC_VECTOR_EXTENSIONS_SUPPORTED) && defined(__SSE2__)
+#include <xmmintrin.h>
+#endif
+
void smallprng_srand_r (smallprng_t *x, uint32_t seed)
{
uint32_t i;
@@ -77,6 +81,14 @@ store_rand_128_data (void *addr, prng_rand_128_data_t *d, int aligned)
*(uint8x16 *)addr = d->vb;
return;
}
+ else
+ {
+#ifdef __SSE2__
+ /* workaround for http://gcc.gnu.org/PR55614 */
+ _mm_storeu_si128 (addr, _mm_loadu_si128 ((__m128i *)d));
+ return;
+#endif
+ }
#endif
/* we could try something better for unaligned writes (packed attribute),
* but GCC is not very reliable: http://gcc.gnu.org/PR55454 */