diff options
author | Eric Christopher <echristo@apple.com> | 2010-07-22 02:48:34 +0000 |
---|---|---|
committer | Eric Christopher <echristo@apple.com> | 2010-07-22 02:48:34 +0000 |
commit | 9a9d275dc7897dfba7f41ce1b3770ca27ac149e8 (patch) | |
tree | d3475c9fc9cbc431bb8ab9e0cb43f8ef07049254 /test/CodeGen/X86/barrier-sse.ll | |
parent | b1c857bb7b3d7bc187de4e97439eb212a8604bf0 (diff) | |
download | external_llvm-9a9d275dc7897dfba7f41ce1b3770ca27ac149e8.zip external_llvm-9a9d275dc7897dfba7f41ce1b3770ca27ac149e8.tar.gz external_llvm-9a9d275dc7897dfba7f41ce1b3770ca27ac149e8.tar.bz2 |
Custom lower the memory barrier instructions and add support
for lowering without sse2. Add a couple of new testcases.
Fixes a few libgomp tests and latent bugs. Remove a few todos.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109078 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/X86/barrier-sse.ll')
-rw-r--r-- | test/CodeGen/X86/barrier-sse.ll | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/test/CodeGen/X86/barrier-sse.ll b/test/CodeGen/X86/barrier-sse.ll new file mode 100644 index 0000000..6190c36 --- /dev/null +++ b/test/CodeGen/X86/barrier-sse.ll @@ -0,0 +1,21 @@ +; RUN: llc < %s -march=x86 -mattr=+sse2 | not grep sfence +; RUN: llc < %s -march=x86 -mattr=+sse2 | not grep lfence +; RUN: llc < %s -march=x86 -mattr=+sse2 | not grep mfence +; RUN: llc < %s -march=x86 -mattr=+sse2 | grep MEMBARRIER + + +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 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 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 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 +} |