Skip to content

Commit 4e2e995

Browse files
committed
Polynomial types are signed on ARM
1 parent 1ba1b0d commit 4e2e995

File tree

1 file changed

+15
-0
lines changed
  • crates/core_arch/src/arm_shared/neon

1 file changed

+15
-0
lines changed

crates/core_arch/src/arm_shared/neon/mod.rs

+15
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,25 @@ use crate::{
1111
#[cfg(test)]
1212
use stdarch_test::assert_instr;
1313

14+
// Polynomial types are signed on ARM and unsigned on AArch64. However the
15+
// situation for poly64_t on ARM is less clear: it is signed in Clang but
16+
// unsigned in GCC. We follow Clang here for now.
17+
#[cfg(target_arch = "aarch64")]
1418
pub(crate) type p8 = u8;
19+
#[cfg(target_arch = "aarch64")]
1520
pub(crate) type p16 = u16;
21+
#[cfg(target_arch = "aarch64")]
1622
pub(crate) type p64 = u64;
23+
#[cfg(target_arch = "aarch64")]
1724
pub(crate) type p128 = u128;
25+
#[cfg(target_arch = "arm")]
26+
pub(crate) type p8 = i8;
27+
#[cfg(target_arch = "arm")]
28+
pub(crate) type p16 = i16;
29+
#[cfg(target_arch = "arm")]
30+
pub(crate) type p64 = i64;
31+
#[cfg(target_arch = "arm")]
32+
pub(crate) type p128 = i128;
1833

1934
types! {
2035
/// ARM-specific 64-bit wide vector of eight packed `i8`.

0 commit comments

Comments
 (0)