[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