[llvm] e7ddb4f - [InstCombine] Add tests for freeze of load with metadata (NFC)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Tue May 24 06:17:47 PDT 2022


Author: Nikita Popov
Date: 2022-05-24T15:17:39+02:00
New Revision: e7ddb4f6b4e0b580f7a6f2fdc654aff0a82cffa9

URL: https://github.com/llvm/llvm-project/commit/e7ddb4f6b4e0b580f7a6f2fdc654aff0a82cffa9
DIFF: https://github.com/llvm/llvm-project/commit/e7ddb4f6b4e0b580f7a6f2fdc654aff0a82cffa9.diff

LOG: [InstCombine] Add tests for freeze of load with metadata (NFC)

Added: 
    

Modified: 
    llvm/test/Transforms/InstCombine/freeze.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/InstCombine/freeze.ll b/llvm/test/Transforms/InstCombine/freeze.ll
index b17b32addd3b1..cda37fa633d9b 100644
--- a/llvm/test/Transforms/InstCombine/freeze.ll
+++ b/llvm/test/Transforms/InstCombine/freeze.ll
@@ -821,5 +821,37 @@ exit:                                             ; preds = %loop
   ret void
 }
 
+define i8* @freeze_load_noundef(i8** %ptr) {
+; CHECK-LABEL: @freeze_load_noundef(
+; CHECK-NEXT:    [[P:%.*]] = load i8*, i8** [[PTR:%.*]], align 8, !noundef !0
+; CHECK-NEXT:    ret i8* [[P]]
+;
+  %p = load i8*, i8** %ptr, !noundef !0
+  %p.fr = freeze i8* %p
+  ret i8* %p.fr
+}
 
+define i8* @freeze_load_dereferenceable(i8** %ptr) {
+; CHECK-LABEL: @freeze_load_dereferenceable(
+; CHECK-NEXT:    [[P:%.*]] = load i8*, i8** [[PTR:%.*]], align 8, !dereferenceable !1
+; CHECK-NEXT:    [[P_FR:%.*]] = freeze i8* [[P]]
+; CHECK-NEXT:    ret i8* [[P_FR]]
+;
+  %p = load i8*, i8** %ptr, !dereferenceable !1
+  %p.fr = freeze i8* %p
+  ret i8* %p.fr
+}
+
+define i8* @freeze_load_dereferenceable_or_null(i8** %ptr) {
+; CHECK-LABEL: @freeze_load_dereferenceable_or_null(
+; CHECK-NEXT:    [[P:%.*]] = load i8*, i8** [[PTR:%.*]], align 8, !dereferenceable_or_null !1
+; CHECK-NEXT:    [[P_FR:%.*]] = freeze i8* [[P]]
+; CHECK-NEXT:    ret i8* [[P_FR]]
+;
+  %p = load i8*, i8** %ptr, !dereferenceable_or_null !1
+  %p.fr = freeze i8* %p
+  ret i8* %p.fr
+}
 
+!0 = !{}
+!1 = !{i64 4}


        


More information about the llvm-commits mailing list