summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/GuardWidening/basic.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/Transforms/GuardWidening/basic.ll')
-rw-r--r--llvm/test/Transforms/GuardWidening/basic.ll26
1 files changed, 26 insertions, 0 deletions
diff --git a/llvm/test/Transforms/GuardWidening/basic.ll b/llvm/test/Transforms/GuardWidening/basic.ll
index 5b746a5d7dd..ab18ed7362a 100644
--- a/llvm/test/Transforms/GuardWidening/basic.ll
+++ b/llvm/test/Transforms/GuardWidening/basic.ll
@@ -379,3 +379,29 @@ left:
right:
ret void
}
+
+; Make sure we do not widen guard by trivial true conditions into something.
+define void @f_15(i1 %cond_0, i1 %cond_1) {
+; CHECK-LABEL: @f_15(
+entry:
+; CHECK: call void (i1, ...) @llvm.experimental.guard(i1 %cond_0) [ "deopt"() ]
+; CHECK: call void (i1, ...) @llvm.experimental.guard(i1 true) [ "deopt"() ]
+; CHECK: ret void
+
+ call void(i1, ...) @llvm.experimental.guard(i1 %cond_0) [ "deopt"() ]
+ call void(i1, ...) @llvm.experimental.guard(i1 true) [ "deopt"() ]
+ ret void
+}
+
+; Make sure we do not widen guard by trivial false conditions into something.
+define void @f_16(i1 %cond_0, i1 %cond_1) {
+; CHECK-LABEL: @f_16(
+entry:
+; CHECK: call void (i1, ...) @llvm.experimental.guard(i1 %cond_0) [ "deopt"() ]
+; CHECK: call void (i1, ...) @llvm.experimental.guard(i1 false) [ "deopt"() ]
+; CHECK: ret void
+
+ call void(i1, ...) @llvm.experimental.guard(i1 %cond_0) [ "deopt"() ]
+ call void(i1, ...) @llvm.experimental.guard(i1 false) [ "deopt"() ]
+ ret void
+}
OpenPOWER on IntegriCloud