[test] Precommit test for D145210
authorArthur Eubanks <aeubanks@google.com>
Fri, 3 Mar 2023 17:43:53 +0000 (09:43 -0800)
committerArthur Eubanks <aeubanks@google.com>
Fri, 3 Mar 2023 19:22:32 +0000 (11:22 -0800)
llvm/test/Transforms/PhaseOrdering/func-attrs.ll [new file with mode: 0644]

diff --git a/llvm/test/Transforms/PhaseOrdering/func-attrs.ll b/llvm/test/Transforms/PhaseOrdering/func-attrs.ll
new file mode 100644 (file)
index 0000000..64b33e7
--- /dev/null
@@ -0,0 +1,33 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-attributes
+; RUN: opt -O2 -S < %s | FileCheck %s
+
+declare void @g()
+
+define internal i32 @h1(i32 %a, i32 %b) {
+  %c = add i32 %a, %b
+  %c2 = add i32 2, %c
+  ret i32 %c2
+}
+
+define internal i32 @h2(i32 %a, i32 %b) {
+  %c = add i32 %a, %b
+  %c2 = add i32 2, %c
+  ret i32 %c2
+}
+
+define void @f(i32 %a, i32 %b) noinline {
+; CHECK: Function Attrs: noinline
+; CHECK-LABEL: @f(
+; CHECK-NEXT:  end:
+; CHECK-NEXT:    ret void
+;
+  %c = call i32 @h1(i32 %a, i32 %b)
+  %d = call i32 @h2(i32 %a, i32 %b)
+  %i = icmp eq i32 %c, %d
+  br i1 %i, label %end, label %dead
+dead:
+  call void @g()
+  br label %end
+end:
+  ret void
+}