From 7d6415c29102043a53b1f2e02d36767d6c450480 Mon Sep 17 00:00:00 2001 From: Jubilee Young Date: Tue, 22 Mar 2022 14:24:59 -0700 Subject: [PATCH] Test NEON compiles Required by https://github.com/rust-lang/rust/issues/95002 --- .../ui/target-feature/aarch64-neon-works.rs | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/test/ui/target-feature/aarch64-neon-works.rs diff --git a/src/test/ui/target-feature/aarch64-neon-works.rs b/src/test/ui/target-feature/aarch64-neon-works.rs new file mode 100644 index 0000000000000..7ddcfe7b29065 --- /dev/null +++ b/src/test/ui/target-feature/aarch64-neon-works.rs @@ -0,0 +1,24 @@ +// only-aarch64 +// run-pass +use std::arch::aarch64::*; + +// Smoke test to verify aarch64 code that enables NEON compiles. +fn main() { + let zero = if is_aarch64_feature_detected!("neon") { + unsafe { + let zeros = zero_vector(); + vget_lane_u8::<1>(1) + } + } else { + 0 + }; + if cfg!(target feature = "neon") { + assert_eq!(zero, 0) + }; +} + + +#[target_feature(enable = "neon")] +unsafe fn zero_vector() -> uint8x16_t { + vmovq_n_u8(0) +}