diff options
Diffstat (limited to 'test/Transforms/InstCombine/consecutive-fences.ll')
-rw-r--r-- | test/Transforms/InstCombine/consecutive-fences.ll | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/test/Transforms/InstCombine/consecutive-fences.ll b/test/Transforms/InstCombine/consecutive-fences.ll new file mode 100644 index 000000000000..6f1c41277386 --- /dev/null +++ b/test/Transforms/InstCombine/consecutive-fences.ll @@ -0,0 +1,47 @@ +; RUN: opt -instcombine -S %s | FileCheck %s + +; Make sure we collapse the fences in this case + +; CHECK-LABEL: define void @tinkywinky +; CHECK-NEXT: fence seq_cst +; CHECK-NEXT: fence singlethread acquire +; CHECK-NEXT: ret void +; CHECK-NEXT: } + +define void @tinkywinky() { + fence seq_cst + fence seq_cst + fence seq_cst + fence singlethread acquire + fence singlethread acquire + fence singlethread acquire + ret void +} + +; CHECK-LABEL: define void @dipsy +; CHECK-NEXT: fence seq_cst +; CHECK-NEXT: fence singlethread seq_cst +; CHECK-NEXT: ret void +; CHECK-NEXT: } + +define void @dipsy() { + fence seq_cst + fence singlethread seq_cst + ret void +} + +; CHECK-LABEL: define void @patatino +; CHECK-NEXT: fence acquire +; CHECK-NEXT: fence seq_cst +; CHECK-NEXT: fence acquire +; CHECK-NEXT: fence seq_cst +; CHECK-NEXT: ret void +; CHECK-NEXT: } + +define void @patatino() { + fence acquire + fence seq_cst + fence acquire + fence seq_cst + ret void +} |