Skip to content

Commit 8a0889c

Browse files
gnzlbgalexcrichton
authored andcommitted
add llvm bug for reductions on aarch64 (rust-lang#385)
1 parent ca770fd commit 8a0889c

File tree

4 files changed

+12
-0
lines changed

4 files changed

+12
-0
lines changed

coresimd/ppsv/api/arithmetic_reductions.rs

+2
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ macro_rules! impl_arithmetic_reductions {
2626
#[inline]
2727
pub fn sum(self) -> $elem_ty {
2828
// FIXME: broken on AArch64
29+
// https://bugs.llvm.org/show_bug.cgi?id=36796
2930
let mut x = self.extract(0) as $elem_ty;
3031
for i in 1..$id::lanes() {
3132
x += self.extract(i) as $elem_ty;
@@ -55,6 +56,7 @@ macro_rules! impl_arithmetic_reductions {
5556
#[inline]
5657
pub fn product(self) -> $elem_ty {
5758
// FIXME: broken on AArch64
59+
// https://bugs.llvm.org/show_bug.cgi?id=36796
5860
let mut x = self.extract(0) as $elem_ty;
5961
for i in 1..$id::lanes() {
6062
x *= self.extract(i) as $elem_ty;

coresimd/ppsv/api/bitwise_reductions.rs

+6
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ macro_rules! impl_bitwise_reductions {
1818
#[inline]
1919
pub fn and(self) -> $elem_ty {
2020
// FIXME: broken on aarch64
21+
// https://bugs.llvm.org/show_bug.cgi?id=36796
2122
let mut x = self.extract(0) as $elem_ty;
2223
for i in 1..$id::lanes() {
2324
x &= self.extract(i) as $elem_ty;
@@ -39,6 +40,7 @@ macro_rules! impl_bitwise_reductions {
3940
#[inline]
4041
pub fn or(self) -> $elem_ty {
4142
// FIXME: broken on aarch64
43+
// https://bugs.llvm.org/show_bug.cgi?id=36796
4244
let mut x = self.extract(0) as $elem_ty;
4345
for i in 1..$id::lanes() {
4446
x |= self.extract(i) as $elem_ty;
@@ -60,6 +62,7 @@ macro_rules! impl_bitwise_reductions {
6062
#[inline]
6163
pub fn xor(self) -> $elem_ty {
6264
// FIXME: broken on aarch64
65+
// https://bugs.llvm.org/show_bug.cgi?id=36796
6366
let mut x = self.extract(0) as $elem_ty;
6467
for i in 1..$id::lanes() {
6568
x ^= self.extract(i) as $elem_ty;
@@ -88,6 +91,7 @@ macro_rules! impl_bool_bitwise_reductions {
8891
#[inline]
8992
pub fn and(self) -> $elem_ty {
9093
// FIXME: broken on aarch64
94+
// https://bugs.llvm.org/show_bug.cgi?id=36796
9195
let mut x = self.extract(0) as $elem_ty;
9296
for i in 1..$id::lanes() {
9397
x &= self.extract(i) as $elem_ty;
@@ -110,6 +114,7 @@ macro_rules! impl_bool_bitwise_reductions {
110114
#[inline]
111115
pub fn or(self) -> $elem_ty {
112116
// FIXME: broken on aarch64
117+
// https://bugs.llvm.org/show_bug.cgi?id=36796
113118
let mut x = self.extract(0) as $elem_ty;
114119
for i in 1..$id::lanes() {
115120
x |= self.extract(i) as $elem_ty;
@@ -132,6 +137,7 @@ macro_rules! impl_bool_bitwise_reductions {
132137
#[inline]
133138
pub fn xor(self) -> $elem_ty {
134139
// FIXME: broken on aarch64
140+
// https://bugs.llvm.org/show_bug.cgi?id=36796
135141
let mut x = self.extract(0) as $elem_ty;
136142
for i in 1..$id::lanes() {
137143
x ^= self.extract(i) as $elem_ty;

coresimd/ppsv/api/boolean_reductions.rs

+2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ macro_rules! impl_bool_reductions {
1818
#[inline]
1919
pub fn all(self) -> bool {
2020
// FIXME: Broken on AArch64
21+
// https://bugs.llvm.org/show_bug.cgi?id=36796
2122
self.and()
2223
}
2324

@@ -35,6 +36,7 @@ macro_rules! impl_bool_reductions {
3536
#[inline]
3637
pub fn any(self) -> bool {
3738
// FIXME: Broken on AArch64
39+
// https://bugs.llvm.org/show_bug.cgi?id=36796
3840
self.or()
3941
}
4042

coresimd/ppsv/api/minmax_reductions.rs

+2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ macro_rules! impl_minmax_reductions {
2323
#[inline]
2424
pub fn max(self) -> $elem_ty {
2525
// FIXME: broken on AArch64
26+
// https://bugs.llvm.org/show_bug.cgi?id=36796
2627
use ::num::Float;
2728
use ::cmp::Ord;
2829
let mut x = self.extract(0);
@@ -51,6 +52,7 @@ macro_rules! impl_minmax_reductions {
5152
#[inline]
5253
pub fn min(self) -> $elem_ty {
5354
// FIXME: broken on AArch64
55+
// https://bugs.llvm.org/show_bug.cgi?id=36796
5456
use ::num::Float;
5557
use ::cmp::Ord;
5658
let mut x = self.extract(0);

0 commit comments

Comments
 (0)