gcc/libstdc++-v3/include
yaozhongxiao 5988765741 libstdc++: Improve "find_first/last_set" for NEON
The find_first_set and find_last_set method is not optimal for neon, it
needs to be improved by synthesized with horizontal adds(vaddv) which
will reduce the generated assembly code. In the following cases,
vaddvq_s16 will generate 2 instructions but vpadd_s16 will generate 4
instructions:

 # vaddvq_s16
    vaddvq_s16(__asint);
    //  addv    h0, v1.8h
    //  smov    w1, v0.h[0]
 # vpadd_s16
    vpaddq_s16(vpaddq_s16(vpaddq_s16(__asint, __zero), __zero), __zero)[0]
    // addp v1.8h,v1.8h,v2.8h
    // addp v1.8h,v1.8h,v2.8h
    // addp v1.8h,v1.8h,v2.8h
    // smov    w1, v1.h[0]
 #

libstdc++-v3/ChangeLog:

	* include/experimental/bits/simd_neon.h: Replace repeated vpadd
	calls with a single vaddv for aarch64.
2021-02-03 15:49:30 +00:00
..
backward Update copyright years. 2021-01-04 10:26:59 +01:00
bits libstdc++: Make deque iterator operator- usable with value-init iterators 2021-02-01 19:19:53 +01:00
c Update copyright years. 2021-01-04 10:26:59 +01:00
c_compatibility Update copyright years. 2021-01-04 10:26:59 +01:00
c_global Update copyright years. 2021-01-04 10:26:59 +01:00
c_std Update copyright years. 2021-01-04 10:26:59 +01:00
debug libstdc++: Implement N3644 for _GLIBCXX_DEBUG iterators 2021-01-14 19:23:54 +01:00
decimal Update copyright years. 2021-01-04 10:26:59 +01:00
experimental libstdc++: Improve "find_first/last_set" for NEON 2021-02-03 15:49:30 +00:00
ext Update copyright years. 2021-01-04 10:26:59 +01:00
parallel Update copyright years. 2021-01-04 10:26:59 +01:00
precompiled libstdc++: Add support for C++20 barriers 2021-01-07 12:52:37 -08:00
pstl libstdc++: Rebase include/pstl to current upstream 2020-10-21 06:11:28 -07:00
std libstdc++: Add string contains member functions for C++2b 2021-01-27 12:37:36 +00:00
tr1 Update copyright years. 2021-01-04 10:26:59 +01:00
tr2 Update copyright years. 2021-01-04 10:26:59 +01:00
Makefile.am libstdc++: Add std::experimental::simd from the Parallelism TS 2 2021-01-27 16:37:26 +00:00
Makefile.in libstdc++: Add std::experimental::simd from the Parallelism TS 2 2021-01-27 16:37:26 +00:00