aboutsummaryrefslogtreecommitdiffstats
path: root/test/CodeGen/ARM
diff options
context:
space:
mode:
authorJoey Gouly <joey.gouly@arm.com>2013-09-05 15:35:24 +0000
committerJoey Gouly <joey.gouly@arm.com>2013-09-05 15:35:24 +0000
commit4897151df698197f0eb5c4085545312dbb20c94d (patch)
treec01a96e1254455cb74d6ebcdf1993bdee36c7a31 /test/CodeGen/ARM
parentb5523ce1bb50e86942ad5273e3a89872c4d26b73 (diff)
downloadexternal_llvm-4897151df698197f0eb5c4085545312dbb20c94d.zip
external_llvm-4897151df698197f0eb5c4085545312dbb20c94d.tar.gz
external_llvm-4897151df698197f0eb5c4085545312dbb20c94d.tar.bz2
[ARMv8] Implement the new DMB/DSB operands.
This removes the custom ISD Node: MEMBARRIER and replaces it with an intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190055 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/ARM')
-rw-r--r--test/CodeGen/ARM/intrinsics-v8.ll16
1 files changed, 16 insertions, 0 deletions
diff --git a/test/CodeGen/ARM/intrinsics-v8.ll b/test/CodeGen/ARM/intrinsics-v8.ll
new file mode 100644
index 0000000..a6a4545
--- /dev/null
+++ b/test/CodeGen/ARM/intrinsics-v8.ll
@@ -0,0 +1,16 @@
+; RUN: llc < %s -mtriple=armv8 -mattr=+db | FileCheck %s
+
+define void @test() {
+ ; CHECK: dmb sy
+ call void @llvm.arm.dmb(i32 15)
+ ; CHECK: dmb osh
+ call void @llvm.arm.dmb(i32 3)
+ ; CHECK: dsb sy
+ call void @llvm.arm.dsb(i32 15)
+ ; CHECK: dsb ishld
+ call void @llvm.arm.dsb(i32 9)
+ ret void
+}
+
+declare void @llvm.arm.dmb(i32)
+declare void @llvm.arm.dsb(i32)