diff options
author | Andrew Lenharth <andrewl@lenharth.org> | 2008-02-16 01:24:58 +0000 |
---|---|---|
committer | Andrew Lenharth <andrewl@lenharth.org> | 2008-02-16 01:24:58 +0000 |
commit | 22c5c1b2dfcb1da6a7ebfebea903401fc77d56e6 (patch) | |
tree | 2e65d654e3f499c5538ca7ef024a0c7c76f9d3f4 /test/CodeGen | |
parent | 527c250a9080a5b6cf0053a6215037c3769ff4a0 (diff) | |
download | external_llvm-22c5c1b2dfcb1da6a7ebfebea903401fc77d56e6.zip external_llvm-22c5c1b2dfcb1da6a7ebfebea903401fc77d56e6.tar.gz external_llvm-22c5c1b2dfcb1da6a7ebfebea903401fc77d56e6.tar.bz2 |
llvm.memory.barrier, and impl for x86 and alpha
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47204 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen')
-rw-r--r-- | test/CodeGen/Alpha/mb.ll | 8 | ||||
-rw-r--r-- | test/CodeGen/Alpha/wmb.ll | 8 | ||||
-rw-r--r-- | test/CodeGen/X86/lfence.ll | 8 | ||||
-rw-r--r-- | test/CodeGen/X86/mfence.ll | 20 | ||||
-rw-r--r-- | test/CodeGen/X86/nofence.ll | 27 | ||||
-rw-r--r-- | test/CodeGen/X86/sfence.ll | 8 |
6 files changed, 79 insertions, 0 deletions
diff --git a/test/CodeGen/Alpha/mb.ll b/test/CodeGen/Alpha/mb.ll new file mode 100644 index 0000000..50c245f --- /dev/null +++ b/test/CodeGen/Alpha/mb.ll @@ -0,0 +1,8 @@ +; RUN: llvm-as < %s | llc -march=alpha | grep mb + +declare void @llvm.memory.barrier( i1 , i1 , i1 , i1 , i1) + +define void @test() { + call void @llvm.memory.barrier( i1 true, i1 true, i1 true, i1 true , i1 true) + ret void +} diff --git a/test/CodeGen/Alpha/wmb.ll b/test/CodeGen/Alpha/wmb.ll new file mode 100644 index 0000000..f745cd5 --- /dev/null +++ b/test/CodeGen/Alpha/wmb.ll @@ -0,0 +1,8 @@ +; RUN: llvm-as < %s | llc -march=alpha | grep wmb + +declare void @llvm.memory.barrier( i1 , i1 , i1 , i1 , i1) + +define void @test() { + call void @llvm.memory.barrier( i1 false, i1 false, i1 false, i1 true , i1 true) + ret void +} diff --git a/test/CodeGen/X86/lfence.ll b/test/CodeGen/X86/lfence.ll new file mode 100644 index 0000000..0721d73 --- /dev/null +++ b/test/CodeGen/X86/lfence.ll @@ -0,0 +1,8 @@ +; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep lfence + +declare void @llvm.memory.barrier( i1 , i1 , i1 , i1 , i1) + +define void @test() { + call void @llvm.memory.barrier( i1 true, i1 false, i1 false, i1 false, i1 true) + ret void +} diff --git a/test/CodeGen/X86/mfence.ll b/test/CodeGen/X86/mfence.ll new file mode 100644 index 0000000..6abdbce --- /dev/null +++ b/test/CodeGen/X86/mfence.ll @@ -0,0 +1,20 @@ +; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | not grep sfence +; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | not grep lfence +; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep mfence + + +declare void @llvm.memory.barrier( i1 , i1 , i1 , i1 , i1) + +define void @test() { + call void @llvm.memory.barrier( i1 true, i1 true, i1 false, i1 false, i1 true) + call void @llvm.memory.barrier( i1 true, i1 false, i1 true, i1 false, i1 true) + call void @llvm.memory.barrier( i1 true, i1 false, i1 false, i1 true, i1 true) + + call void @llvm.memory.barrier( i1 true, i1 true, i1 true, i1 false, i1 true) + call void @llvm.memory.barrier( i1 true, i1 true, i1 false, i1 true, i1 true) + call void @llvm.memory.barrier( i1 true, i1 false, i1 true, i1 true, i1 true) + + call void @llvm.memory.barrier( i1 true, i1 true, i1 true, i1 true , i1 true) + call void @llvm.memory.barrier( i1 false, i1 false, i1 false, i1 false , i1 true) + ret void +} diff --git a/test/CodeGen/X86/nofence.ll b/test/CodeGen/X86/nofence.ll new file mode 100644 index 0000000..132ac94 --- /dev/null +++ b/test/CodeGen/X86/nofence.ll @@ -0,0 +1,27 @@ +; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | not grep fence + +declare void @llvm.memory.barrier( i1 , i1 , i1 , i1 , i1) + +define void @test() { + call void @llvm.memory.barrier( i1 true, i1 false, i1 false, i1 false, i1 false) + call void @llvm.memory.barrier( i1 false, i1 true, i1 false, i1 false, i1 false) + call void @llvm.memory.barrier( i1 false, i1 false, i1 true, i1 false, i1 false) + call void @llvm.memory.barrier( i1 false, i1 false, i1 false, i1 true, i1 false) + + call void @llvm.memory.barrier( i1 true, i1 true, i1 false, i1 false, i1 false) + call void @llvm.memory.barrier( i1 true, i1 false, i1 true, i1 false, i1 false) + call void @llvm.memory.barrier( i1 true, i1 false, i1 false, i1 true, i1 false) + call void @llvm.memory.barrier( i1 false, i1 true, i1 true, i1 false, i1 false) + call void @llvm.memory.barrier( i1 false, i1 true, i1 false, i1 true, i1 false) + call void @llvm.memory.barrier( i1 false, i1 false, i1 true, i1 true, i1 false) + + call void @llvm.memory.barrier( i1 true, i1 true, i1 true, i1 false, i1 false) + call void @llvm.memory.barrier( i1 true, i1 true, i1 false, i1 true, i1 false) + call void @llvm.memory.barrier( i1 true, i1 false, i1 true, i1 true, i1 false) + call void @llvm.memory.barrier( i1 false, i1 true, i1 true, i1 true, i1 false) + + + call void @llvm.memory.barrier( i1 true, i1 true, i1 true, i1 true , i1 false) + call void @llvm.memory.barrier( i1 false, i1 false, i1 false, i1 false , i1 false) + ret void +} diff --git a/test/CodeGen/X86/sfence.ll b/test/CodeGen/X86/sfence.ll new file mode 100644 index 0000000..fc75ccb --- /dev/null +++ b/test/CodeGen/X86/sfence.ll @@ -0,0 +1,8 @@ +; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep sfence + +declare void @llvm.memory.barrier( i1 , i1 , i1 , i1 , i1) + +define void @test() { + call void @llvm.memory.barrier( i1 false, i1 false, i1 false, i1 true, i1 true) + ret void +} |