[Sink] Add a single successor test
authorFangrui Song <i@maskray.me>
Thu, 17 Nov 2022 08:12:42 +0000 (00:12 -0800)
committerFangrui Song <i@maskray.me>
Thu, 17 Nov 2022 08:12:42 +0000 (00:12 -0800)
llvm/test/Transforms/Sink/single-succ.ll [new file with mode: 0644]

diff --git a/llvm/test/Transforms/Sink/single-succ.ll b/llvm/test/Transforms/Sink/single-succ.ll
new file mode 100644 (file)
index 0000000..c347318
--- /dev/null
@@ -0,0 +1,25 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
+; RUN: opt -S < %s -passes=sink | FileCheck %s
+
+define i32 @single_succ(i1 %b, ptr %a) {
+; CHECK-LABEL: @single_succ(
+; CHECK-NEXT:  entry:
+; CHECK-NEXT:    [[L:%.*]] = load i32, ptr [[A:%.*]], align 4
+; CHECK-NEXT:    br label [[IF:%.*]]
+; CHECK:       if:
+; CHECK-NEXT:    br i1 [[B:%.*]], label [[THEN:%.*]], label [[ELSE:%.*]]
+; CHECK:       then:
+; CHECK-NEXT:    ret i32 42
+; CHECK:       else:
+; CHECK-NEXT:    ret i32 [[L]]
+;
+entry:
+  %l = load i32, ptr %a, align 4
+  br label %if
+if:
+  br i1 %b, label %then, label %else
+then:
+  ret i32 42
+else:
+  ret i32 %l
+}