gcc/libstdc++-v3/config
Ricardo Jesus cc33531df0
aarch64: libstdc++: Use shufflevector instead of shuffle in opt_random.h
This patch modifies the implementation of the vectorized mersenne
twister random number generator to use __builtin_shufflevector instead
of __builtin_shuffle. This makes it (almost) compatible with Clang.

To make the implementation fully compatible with Clang, Clang will need
to support internal Neon types like __Uint8x16_t and __Uint32x4_t, which
currently it does not. This looks like an oversight in Clang and so will
be addressed separately.

I see no codegen change with this patch.

Bootstrapped and tested on aarch64-none-linux-gnu.

libstdc++-v3/ChangeLog:

	* config/cpu/aarch64/opt/ext/opt_random.h (__VEXT): Replace uses
	of __builtin_shuffle with __builtin_shufflevector.
	(__aarch64_lsl_128): Move shift amount to a template parameter.
	(__aarch64_lsr_128): Move shift amount to a template parameter.
	(__aarch64_recursion): Update call sites of __aarch64_lsl_128
	and __aarch64_lsr_128.

Signed-off-by: Ricardo Jesus <rjj@nvidia.com>
2024-10-24 15:01:23 +01:00
..
abi
allocator
cpu aarch64: libstdc++: Use shufflevector instead of shuffle in opt_random.h 2024-10-24 15:01:23 +01:00
io
locale libstdc++: Populate generic std::time_get's wide %c format [PR117135] 2024-10-14 16:48:49 +01:00
os libstdc++-v3: Fix signed-overflow warning for newlib/ctype_base.h, PR116895 2024-10-01 02:14:10 +02:00