[llvm] 16b6826 - [MergeFuncs] Add tests for D144682 (NFC)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 23 09:05:22 PDT 2023
Author: Ding Xiang Fei
Date: 2023-03-23T17:05:10+01:00
New Revision: 16b6826bdd6e5cc02844c10bd1f9af388a6ffed8
URL: https://github.com/llvm/llvm-project/commit/16b6826bdd6e5cc02844c10bd1f9af388a6ffed8
DIFF: https://github.com/llvm/llvm-project/commit/16b6826bdd6e5cc02844c10bd1f9af388a6ffed8.diff
LOG: [MergeFuncs] Add tests for D144682 (NFC)
I forgot to git add this test when committing the change.
Added:
llvm/test/Transforms/MergeFunc/mergefunc-preserve-nonnull.ll
Modified:
Removed:
################################################################################
diff --git a/llvm/test/Transforms/MergeFunc/mergefunc-preserve-nonnull.ll b/llvm/test/Transforms/MergeFunc/mergefunc-preserve-nonnull.ll
new file mode 100644
index 0000000000000..12bb0e8b38425
--- /dev/null
+++ b/llvm/test/Transforms/MergeFunc/mergefunc-preserve-nonnull.ll
@@ -0,0 +1,53 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
+; RUN: opt -passes=mergefunc -S < %s | FileCheck %s
+
+; This test makes sure that the mergefunc pass does not merge functions
+; that have
diff erent nonnull assertions.
+
+%1 = type ptr
+
+define void @f1(ptr %0, ptr %1) {
+; CHECK-LABEL: @f1(
+; CHECK-NEXT: [[TMP3:%.*]] = load ptr, ptr [[TMP1:%.*]], align 8, !nonnull !0
+; CHECK-NEXT: store ptr [[TMP3]], ptr [[TMP0:%.*]], align 8
+; CHECK-NEXT: ret void
+;
+ %3 = load ptr, ptr %1, align 8, !nonnull !0
+ store ptr %3, ptr %0, align 8
+ ret void
+}
+
+define void @f2(ptr %0, ptr %1) {
+; CHECK-LABEL: @f2(
+; CHECK-NEXT: [[TMP3:%.*]] = load ptr, ptr [[TMP1:%.*]], align 8
+; CHECK-NEXT: store ptr [[TMP3]], ptr [[TMP0:%.*]], align 8
+; CHECK-NEXT: ret void
+;
+ %3 = load ptr, ptr %1, align 8
+ store ptr %3, ptr %0, align 8
+ ret void
+}
+
+define void @f3(ptr %0, ptr %1) {
+; CHECK-LABEL: @f3(
+; CHECK-NEXT: [[TMP3:%.*]] = load ptr, ptr [[TMP1:%.*]], align 8, !noundef !0
+; CHECK-NEXT: store ptr [[TMP3]], ptr [[TMP0:%.*]], align 8
+; CHECK-NEXT: ret void
+;
+ %3 = load ptr, ptr %1, align 8, !noundef !0
+ store ptr %3, ptr %0, align 8
+ ret void
+}
+
+define void @f4(ptr %0, ptr %1) {
+; CHECK-LABEL: @f4(
+; CHECK-NEXT: tail call void @f3(ptr [[TMP0:%.*]], ptr [[TMP1:%.*]])
+; CHECK-NEXT: ret void
+;
+ %3 = load ptr, ptr %1, align 8, !noundef !0, !dbg !1
+ store ptr %3, ptr %0, align 8
+ ret void
+}
+
+!0 = !{}
+!1 = !{}
More information about the llvm-commits
mailing list