| Index: test/Transforms/NaCl/resolve-pnacl-intrinsics.ll
|
| diff --git a/test/Transforms/NaCl/resolve-pnacl-intrinsics.ll b/test/Transforms/NaCl/resolve-pnacl-intrinsics.ll
|
| index 737561ee1d1b13dd2b5834a5691273faccf54089..0a297057fe26eb9dc5c99b123c36604704044e54 100644
|
| --- a/test/Transforms/NaCl/resolve-pnacl-intrinsics.ll
|
| +++ b/test/Transforms/NaCl/resolve-pnacl-intrinsics.ll
|
| @@ -29,6 +29,7 @@ declare i16 @llvm.nacl.atomic.cmpxchg.i16(i16*, i16, i16, i32, i32)
|
| declare i32 @llvm.nacl.atomic.cmpxchg.i32(i32*, i32, i32, i32, i32)
|
| declare i64 @llvm.nacl.atomic.cmpxchg.i64(i64*, i64, i64, i32, i32)
|
| declare void @llvm.nacl.atomic.fence(i32)
|
| +declare void @llvm.nacl.atomic.fence.all()
|
| declare i1 @llvm.nacl.atomic.is.lock.free(i32, i8*)
|
|
|
| ; These declarations must be here because the function pass expects
|
| @@ -93,10 +94,19 @@ define i32 @test_val_compare_and_swap_i32(i32* %ptr, i32 %oldval, i32 %newval) {
|
| ret i32 %1
|
| }
|
|
|
| +; CHECK: @test_c11_fence
|
| +define void @test_c11_fence() {
|
| + ; CHECK: fence seq_cst
|
| + call void @llvm.nacl.atomic.fence(i32 6)
|
| + ret void
|
| +}
|
| +
|
| ; CHECK: @test_synchronize
|
| define void @test_synchronize() {
|
| + ; CHECK: call void asm sideeffect "", "~{memory}"()
|
| ; CHECK: fence seq_cst
|
| - call void @llvm.nacl.atomic.fence(i32 6)
|
| + ; CHECK: call void asm sideeffect "", "~{memory}"()
|
| + call void @llvm.nacl.atomic.fence.all()
|
| ret void
|
| }
|
|
|
|
|