diff options
author | Eric Christopher <echristo@gmail.com> | 2019-04-17 04:52:47 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gmail.com> | 2019-04-17 04:52:47 +0000 |
commit | cee313d288a4faf0355d76fb6e0e927e211d08a5 (patch) | |
tree | d386075318d761197779a96e5d8fc0dc7b06342b /llvm/test/Transforms/CorrelatedValuePropagation/pointer.ll | |
parent | c3d6a929fdd92fd06d4304675ade8d7210ee711a (diff) | |
download | bcm5719-llvm-cee313d288a4faf0355d76fb6e0e927e211d08a5.tar.gz bcm5719-llvm-cee313d288a4faf0355d76fb6e0e927e211d08a5.zip |
Revert "Temporarily Revert "Add basic loop fusion pass.""
The reversion apparently deleted the test/Transforms directory.
Will be re-reverting again.
llvm-svn: 358552
Diffstat (limited to 'llvm/test/Transforms/CorrelatedValuePropagation/pointer.ll')
-rw-r--r-- | llvm/test/Transforms/CorrelatedValuePropagation/pointer.ll | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/llvm/test/Transforms/CorrelatedValuePropagation/pointer.ll b/llvm/test/Transforms/CorrelatedValuePropagation/pointer.ll new file mode 100644 index 00000000000..9242d7b8aff --- /dev/null +++ b/llvm/test/Transforms/CorrelatedValuePropagation/pointer.ll @@ -0,0 +1,35 @@ +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py +; RUN: opt -correlated-propagation -S -o - %s | FileCheck %s + +; Testcase that checks that we don't end in a neverending recursion resulting in +; a segmentation fault. The checks below verify that nothing is changed. + +declare dso_local i16* @f2(i16* readnone returned) local_unnamed_addr + +define dso_local void @f3() local_unnamed_addr { +; CHECK-LABEL: @f3( +; CHECK-NEXT: entry: +; CHECK-NEXT: br label [[FOR_COND:%.*]] +; CHECK: for.end: +; CHECK-NEXT: [[CALL6:%.*]] = call i16* @f2(i16* [[CALL6]]) +; CHECK-NEXT: br i1 false, label [[FOR_COND]], label [[FOR_COND3:%.*]] +; CHECK: for.cond: +; CHECK-NEXT: [[C_0:%.*]] = phi i16* [ undef, [[ENTRY:%.*]] ], [ [[CALL6]], [[FOR_END:%.*]] ] +; CHECK-NEXT: br label [[FOR_COND3]] +; CHECK: for.cond3: +; CHECK-NEXT: ret void +; +entry: + br label %for.cond + +for.end: + %call6 = call i16* @f2(i16* %call6) + br i1 false, label %for.cond, label %for.cond3 + +for.cond: + %c.0 = phi i16* [ undef, %entry ], [ %call6, %for.end ] + br label %for.cond3 + +for.cond3: + ret void +} |