[IVUsers] Precommit test for zext SCEV invalidation issue.
authorFlorian Hahn <flo@fhahn.com>
Tue, 27 Dec 2022 23:24:21 +0000 (23:24 +0000)
committerFlorian Hahn <flo@fhahn.com>
Tue, 27 Dec 2022 23:24:21 +0000 (23:24 +0000)
Test case for issue reported by @uabelho and #59721

llvm/test/Analysis/IVUsers/zext-fold-cache-invalidation.ll [new file with mode: 0644]

diff --git a/llvm/test/Analysis/IVUsers/zext-fold-cache-invalidation.ll b/llvm/test/Analysis/IVUsers/zext-fold-cache-invalidation.ll
new file mode 100644 (file)
index 0000000..4e71f8c
--- /dev/null
@@ -0,0 +1,21 @@
+; RUN: opt -verify-scev -passes='print<iv-users>' -disable-output %s | FileCheck %s
+
+; XFAIL: *
+
+target datalayout = "n16"
+
+define i16 @zext_cache_invalidation_1(i1 %c) {
+entry:
+  br i1 false, label %loop, label %exit
+
+loop:
+  %iv = phi i16 [ -3, %entry ], [ %iv.next, %loop ]
+  %iv.ext = zext i16 %iv to i32
+  %iv.inc = add i32 %iv.ext, 4
+  %iv.next = trunc i32 %iv.inc to i16
+  %cond = icmp ult i16 %iv.next, 51
+  br i1 %cond, label %loop, label %exit
+
+exit:
+  ret i16 0
+}