diff options
| -rw-r--r-- | llvm/test/Transforms/GVN/convergent.ll | 27 | ||||
| -rw-r--r-- | llvm/test/Transforms/NewGVN/convergent.ll | 27 |
2 files changed, 54 insertions, 0 deletions
diff --git a/llvm/test/Transforms/GVN/convergent.ll b/llvm/test/Transforms/GVN/convergent.ll new file mode 100644 index 0000000..e44e77c --- /dev/null +++ b/llvm/test/Transforms/GVN/convergent.ll @@ -0,0 +1,27 @@ +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py +; RUN: opt -S -passes=gvn -o - %s | FileCheck %s + +define i32 @foo(i1 %cond) { +; CHECK-LABEL: @foo( +; CHECK-NEXT: entry: +; CHECK-NEXT: [[V0:%.*]] = call i32 @llvm.convergent() +; CHECK-NEXT: br i1 [[COND:%.*]], label [[BODY:%.*]], label [[END:%.*]] +; CHECK: body: +; CHECK-NEXT: br label [[END]] +; CHECK: end: +; CHECK-NEXT: ret i32 [[V0]] +; +entry: + %v0 = call i32 @llvm.convergent() + br i1 %cond, label %body, label %end + +body: + %v1 = call i32 @llvm.convergent() + br label %end + +end: + %ret = phi i32 [ %v0, %entry ], [ %v1, %body ] + ret i32 %ret +} + +declare i32 @llvm.convergent() convergent nounwind readnone willreturn diff --git a/llvm/test/Transforms/NewGVN/convergent.ll b/llvm/test/Transforms/NewGVN/convergent.ll new file mode 100644 index 0000000..c087e86 --- /dev/null +++ b/llvm/test/Transforms/NewGVN/convergent.ll @@ -0,0 +1,27 @@ +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py +; RUN: opt -S -passes=newgvn -o - %s | FileCheck %s + +define i32 @foo(i1 %cond) { +; CHECK-LABEL: @foo( +; CHECK-NEXT: entry: +; CHECK-NEXT: [[V0:%.*]] = call i32 @llvm.convergent() +; CHECK-NEXT: br i1 [[COND:%.*]], label [[BODY:%.*]], label [[END:%.*]] +; CHECK: body: +; CHECK-NEXT: br label [[END]] +; CHECK: end: +; CHECK-NEXT: ret i32 [[V0]] +; +entry: + %v0 = call i32 @llvm.convergent() + br i1 %cond, label %body, label %end + +body: + %v1 = call i32 @llvm.convergent() + br label %end + +end: + %ret = phi i32 [ %v0, %entry ], [ %v1, %body ] + ret i32 %ret +} + +declare i32 @llvm.convergent() convergent nounwind readnone willreturn |
