[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