Go to file
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
.forgejo top-level: Add pull request template for Forgejo 2024-10-23 19:45:09 +01:00
.github
INSTALL
c++tools
config
contrib Daily bump. 2024-10-10 00:19:03 +00:00
fixincludes
gcc Record nonzero bits in the irange_bitmask of POLY_INT_CSTs 2024-10-24 14:22:34 +01:00
gnattools
gotools
include Daily bump. 2024-10-08 00:19:04 +00:00
libada
libatomic
libbacktrace Daily bump. 2024-10-19 00:19:43 +00:00
libcc1 Daily bump. 2024-09-21 00:16:55 +00:00
libcody
libcpp Daily bump. 2024-10-24 00:20:23 +00:00
libdecnumber
libffi libffi: LoongArch: Fix soft-float builds of libffi 2024-10-24 12:00:50 +08:00
libgcc Daily bump. 2024-10-19 00:19:43 +00:00
libgfortran Daily bump. 2024-10-08 00:19:04 +00:00
libgm2
libgo runtime/testdata: fix for C23 nullptr keyword 2024-10-18 20:18:31 -07:00
libgomp Daily bump. 2024-10-23 00:19:43 +00:00
libgrust
libiberty Daily bump. 2024-10-11 00:17:48 +00:00
libitm Daily bump. 2024-09-24 00:18:14 +00:00
libobjc Daily bump. 2024-09-24 00:18:14 +00:00
libphobos
libquadmath
libsanitizer
libssp
libstdc++-v3 aarch64: libstdc++: Use shufflevector instead of shuffle in opt_random.h 2024-10-24 15:01:23 +01:00
libvtv
lto-plugin
maintainer-scripts
zlib
.b4-config
.dir-locals.el
.gitattributes
.gitignore
ABOUT-NLS
COPYING
COPYING.LIB
COPYING.RUNTIME
COPYING3
COPYING3.LIB
ChangeLog Daily bump. 2024-10-24 00:20:23 +00:00
ChangeLog.jit
ChangeLog.tree-ssa
MAINTAINERS MAINTAINERS: Add myself as pair fusion and aarch64 ldp/stp maintainer 2024-10-18 11:09:53 +01:00
Makefile.def
Makefile.in
Makefile.tpl
README
SECURITY.txt
ar-lib
compile
config-ml.in
config.guess
config.rpath
config.sub
configure [PATCH] configure: fix typos 2024-09-18 11:51:45 -06:00
configure.ac [PATCH] configure: fix typos 2024-09-18 11:51:45 -06:00
depcomp
install-sh
libtool-ldflags
libtool.m4
ltgcc.m4
ltmain.sh ltmain.sh: allow more flags at link-time 2024-09-25 19:05:24 +01:00
ltoptions.m4
ltsugar.m4
ltversion.m4
lt~obsolete.m4
missing
mkdep
mkinstalldirs
move-if-change
multilib.am
symlink-tree
test-driver
ylwrap

README

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the files whose
names start with COPYING for copying permission.  The manuals, and
some of the runtime libraries, are under different terms; see the
individual source files for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs/ for how to report bugs usefully.

Copyright years on GCC source files may be listed using range
notation, e.g., 1987-2012, indicating that every year in the range,
inclusive, is a copyrightable year that could otherwise be listed
individually.