about summary refs log tree commit diff
path: root/src/test/incremental/thinlto
diff options
context:
space:
mode:
authorkennytm <kennytm@gmail.com>2018-03-17 17:20:43 +0800
committerGitHub <noreply@github.com>2018-03-17 17:20:43 +0800
commitb724c6937462d19cb4e45431c2875f4ee051f6d3 (patch)
tree9e3886ece108b6ffb1e23001f047b543811f6060 /src/test/incremental/thinlto
parentc9d06a4a4e07e59c9d5099325a66242321f7c392 (diff)
parent06148cb4b0f83ecec70148de8b589644b618e66f (diff)
downloadrust-b724c6937462d19cb4e45431c2875f4ee051f6d3.tar.gz
rust-b724c6937462d19cb4e45431c2875f4ee051f6d3.zip
Rollup merge of #48983 - gnzlbg:red, r=alexcrichton
add intrinsics for portable packed simd vector reductions

Adds the following portable vector reduction intrinsics:

* fn simd_reduce_add<T, U>(x: T) -> U;
* fn simd_reduce_mul<T, U>(x: T) -> U;
* fn simd_reduce_min<T, U>(x: T) -> U;
* fn simd_reduce_max<T, U>(x: T) -> U;
* fn simd_reduce_and<T, U>(x: T) -> U;
* fn simd_reduce_or<T, U>(x: T) -> U;
* fn simd_reduce_xor<T, U>(x: T) -> U;

I've also added:

* fn simd_reduce_all<T>(x: T) -> bool;
* fn simd_reduce_any<T>(x: T) -> bool;

These produce better code that what we are currently producing in `stdsimd`, but the code is still not optimal due to this LLVM bug:  https://bugs.llvm.org/show_bug.cgi?id=36702

r? @alexcrichton
Diffstat (limited to 'src/test/incremental/thinlto')
0 files changed, 0 insertions, 0 deletions