summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms
diff options
context:
space:
mode:
authorDavide Italiano <davide@freebsd.org>2017-01-31 18:09:05 +0000
committerDavide Italiano <davide@freebsd.org>2017-01-31 18:09:05 +0000
commitaec4617dc8a8174c43dcf31c161a100f29b50d1e (patch)
tree1f2f4153e83ff2080a333081359183687bdd49e8 /llvm/test/Transforms
parentc0eeee7a7820e0d62c0269c69a3dfd9fb6fb5448 (diff)
downloadbcm5719-llvm-aec4617dc8a8174c43dcf31c161a100f29b50d1e.tar.gz
bcm5719-llvm-aec4617dc8a8174c43dcf31c161a100f29b50d1e.zip
[Instcombine] Combine consecutive identical fences
Differential Revision: https://reviews.llvm.org/D29314 llvm-svn: 293661
Diffstat (limited to 'llvm/test/Transforms')
-rw-r--r--llvm/test/Transforms/InstCombine/consecutive-fences.ll47
1 files changed, 47 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstCombine/consecutive-fences.ll b/llvm/test/Transforms/InstCombine/consecutive-fences.ll
new file mode 100644
index 00000000000..6f1c4127738
--- /dev/null
+++ b/llvm/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
+}
OpenPOWER on IntegriCloud