Custom lower the memory barrier instructions and add support
[oota-llvm.git] / test / CodeGen / X86 / barrier-sse.ll
1 ; RUN: llc < %s -march=x86 -mattr=+sse2 | not grep sfence
2 ; RUN: llc < %s -march=x86 -mattr=+sse2 | not grep lfence
3 ; RUN: llc < %s -march=x86 -mattr=+sse2 | not grep mfence
4 ; RUN: llc < %s -march=x86 -mattr=+sse2 | grep MEMBARRIER
5
6
7 declare void @llvm.memory.barrier( i1 , i1 , i1 , i1 , i1)
8
9 define void @test() {
10         call void @llvm.memory.barrier( i1 true, i1 true,  i1 false, i1 false, i1 false)
11         call void @llvm.memory.barrier( i1 true, i1 false, i1 true,  i1 false, i1 false)
12         call void @llvm.memory.barrier( i1 true, i1 false, i1 false, i1 true,  i1 false)
13
14         call void @llvm.memory.barrier( i1 true, i1 true,  i1 true,  i1 false, i1 false)
15         call void @llvm.memory.barrier( i1 true, i1 true,  i1 false, i1 true,  i1 false)
16         call void @llvm.memory.barrier( i1 true, i1 false, i1 true,  i1 true,  i1 false)
17
18         call void @llvm.memory.barrier( i1 true, i1 true, i1 true, i1 true , i1 false)
19         call void @llvm.memory.barrier( i1 false, i1 false, i1 false, i1 false , i1 false)
20         ret void
21 }