[llvm] 60e12a2 - [NFC][Loads] Add a testcase for TBAA aware FindAvailableLoadedValue

Thomas Preud'homme via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 24 10:06:17 PDT 2021


Author: Thomas Preud'homme
Date: 2021-03-24T17:03:19Z
New Revision: 60e12a2279b63058b63cd186910ea23298e1b757

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

LOG: [NFC][Loads] Add a testcase for TBAA aware FindAvailableLoadedValue
(D99206)

Added: 
    llvm/test/Transforms/InstCombine/load-no-aliasing.ll

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/InstCombine/load-no-aliasing.ll b/llvm/test/Transforms/InstCombine/load-no-aliasing.ll
new file mode 100644
index 0000000000000..41473207ecde2
--- /dev/null
+++ b/llvm/test/Transforms/InstCombine/load-no-aliasing.ll
@@ -0,0 +1,25 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
+; RUN: opt -tbaa -evaluate-aa-metadata -instcombine -S < %s | FileCheck %s
+
+; Check that load to load forwarding works with non aliasing store inbetween.
+define i32 @test_load_store_load_combine(i32*, float*) {
+; CHECK-LABEL: @test_load_store_load_combine(
+; CHECK-NEXT:    [[A:%.*]] = load i32, i32* [[TMP0:%.*]], align 4, !tbaa [[TBAA0:![0-9]+]]
+; CHECK-NEXT:    [[F:%.*]] = sitofp i32 [[A]] to float
+; CHECK-NEXT:    store float [[F]], float* [[TMP1:%.*]], align 4, !tbaa [[TBAA4:![0-9]+]]
+; CHECK-NEXT:    [[B:%.*]] = load i32, i32* [[TMP0]], align 4, !tbaa [[TBAA0]]
+; CHECK-NEXT:    ret i32 [[B]]
+;
+  %a = load i32, i32* %0, align 4, !tbaa !0
+  %f = sitofp i32 %a to float
+  store float %f, float* %1, align 4, !tbaa !4
+  %b = load i32, i32* %0, align 4, !tbaa !0
+  ret i32 %b
+}
+
+!0 = !{!1, !1, i64 0}
+!1 = !{!"int", !2, i64 0}
+!2 = !{!"omnipotent char", !3, i64 0}
+!3 = !{!"Simple C++ TBAA"}
+!4 = !{!5, !5, i64 0}
+!5 = !{!"float", !2, i64 0}


        


More information about the llvm-commits mailing list