about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJubilee Young <workingjubilee@gmail.com>2022-03-22 14:24:59 -0700
committerJubilee Young <workingjubilee@gmail.com>2022-03-22 15:20:07 -0700
commit7d6415c29102043a53b1f2e02d36767d6c450480 (patch)
treee379d050d51e97884396e7c33bdb032b8642fb4c
parent990c297ffb86af3d6d80172effcee8fb8b83e304 (diff)
downloadrust-7d6415c29102043a53b1f2e02d36767d6c450480.tar.gz
rust-7d6415c29102043a53b1f2e02d36767d6c450480.zip
Test NEON compiles
Required by https://github.com/rust-lang/rust/issues/95002
-rw-r--r--src/test/ui/target-feature/aarch64-neon-works.rs24
1 files changed, 24 insertions, 0 deletions
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 00000000000..7ddcfe7b290
--- /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)
+}