[llvm] f076a70 - [LoopDeletion] Add cache verification failure test case.

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 26 14:00:01 PDT 2022


Author: Florian Hahn
Date: 2022-09-26T21:59:41+01:00
New Revision: f076a7097999da8a399b47a9a406d1922e17ed9d

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

LOG: [LoopDeletion] Add cache verification failure test case.

Extra test coverage for D134613.

Added: 
    

Modified: 
    llvm/test/Transforms/LoopDeletion/pr57837-invalidate-scev-after-hoisting.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/LoopDeletion/pr57837-invalidate-scev-after-hoisting.ll b/llvm/test/Transforms/LoopDeletion/pr57837-invalidate-scev-after-hoisting.ll
index 0635540a8eea0..ad04c42c79355 100644
--- a/llvm/test/Transforms/LoopDeletion/pr57837-invalidate-scev-after-hoisting.ll
+++ b/llvm/test/Transforms/LoopDeletion/pr57837-invalidate-scev-after-hoisting.ll
@@ -1,6 +1,8 @@
 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
 ; RUN: opt -passes='loop(indvars,loop-deletion),verify<scalar-evolution>,print<scalar-evolution>' -S %s 2>&1| FileCheck %s
 
+; XFAIL: *
+
 ; Make sure the SCEV for %invar is invalidated properly when the instruction is
 ; moved by LoopDeletion.
 
@@ -73,3 +75,34 @@ exit:
 }
 
 declare void @use(i32)
+
+
+define i32 @scev_invalidation_after_deleting(ptr %src) {
+entry:
+  br label %outer.header
+
+outer.header:
+  %outer.iv = phi i32 [ 0, %entry ], [ %outer.iv.next, %outer.latch ]
+  br label %inner.1
+
+inner.1:
+  %c.1 = icmp eq i32 0, %outer.iv
+  br i1 %c.1, label %inner.2, label %inner.1
+
+inner.2:
+  %iv.2 = phi i64 [ 0, %inner.1 ], [ %iv.2.next, %inner.2 ]
+  %iv.2.next = add nuw i64 %iv.2, 1
+  br i1 true, label %inner.3.ph, label %inner.2
+
+inner.3.ph:
+  %trunc = trunc i64 %iv.2 to i32
+  br label %inner.3
+
+inner.3:
+  %l = load i32, ptr %src, align 4
+  br i1 false, label %outer.latch, label %inner.3
+
+outer.latch:
+  %outer.iv.next = add nsw i32 %l, %trunc
+  br label %outer.header
+}


        


More information about the llvm-commits mailing list