about summary refs log tree commit diff
path: root/src/test/codegen
diff options
context:
space:
mode:
authorTeddy_Wang <wangtheo662@gmail.com>2020-07-13 00:47:09 -0400
committerTeddy_Wang <wangtheo662@gmail.com>2020-07-13 00:47:09 -0400
commit5ff7e1ad2cc438bd1ecb29f6b4414d368115ca31 (patch)
tree6a9d169c6747998e3ae5385c82e17c9174503b60 /src/test/codegen
parent9a3a31a153be84b9be33859a25b56be9cab8177d (diff)
downloadrust-5ff7e1ad2cc438bd1ecb29f6b4414d368115ca31.tar.gz
rust-5ff7e1ad2cc438bd1ecb29f6b4414d368115ca31.zip
Added ui tests for volatile and nearby intrinsics
Diffstat (limited to 'src/test/codegen')
-rw-r--r--src/test/codegen/intrinsics/volatile_order.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/test/codegen/intrinsics/volatile_order.rs b/src/test/codegen/intrinsics/volatile_order.rs
new file mode 100644
index 00000000000..29331219ba6
--- /dev/null
+++ b/src/test/codegen/intrinsics/volatile_order.rs
@@ -0,0 +1,18 @@
+#![crate_type = "lib"]
+#![feature(core_intrinsics)]
+
+use std::intrinsics::*;
+
+pub unsafe fn test_volatile_order() {
+    let mut a: Box<u8> = Box::new(0);
+    // CHECK: load volatile
+    let x = volatile_load(&*a);
+    // CHECK: load volatile
+    let x = volatile_load(&*a);
+    // CHECK: store volatile
+    volatile_store(&mut *a, 12);
+    // CHECK: store volatile
+    unaligned_volatile_store(&mut *a, 12);
+    // CHECK: llvm.memset.p0i8
+    volatile_set_memory(&mut *a, 12, 1)
+}