xref: /llvm-project/llvm/test/Analysis/IVUsers/zext-fold-cache-invalidation.ll (revision a564048899a1a1de526a02cfd1a5d691ec31bafd)
1*a5640488SFlorian Hahn; RUN: opt -verify-scev -passes='print<iv-users>' -disable-output %s 2>&1 | FileCheck %s
271ed8904SFlorian Hahn
371ed8904SFlorian Hahntarget datalayout = "n16"
471ed8904SFlorian Hahn
571ed8904SFlorian Hahndefine i16 @zext_cache_invalidation_1(i1 %c) {
6*a5640488SFlorian Hahn; CHECK:      IV Users for loop %loop with backedge-taken count 13:
7*a5640488SFlorian Hahn; CHECK-NEXT:   %iv = {-3,+,4}<nuw><nsw><%loop> in    %iv.ext = zext i16 %iv to i32
8*a5640488SFlorian Hahn;
971ed8904SFlorian Hahnentry:
1071ed8904SFlorian Hahn  br i1 false, label %loop, label %exit
1171ed8904SFlorian Hahn
1271ed8904SFlorian Hahnloop:
1371ed8904SFlorian Hahn  %iv = phi i16 [ -3, %entry ], [ %iv.next, %loop ]
1471ed8904SFlorian Hahn  %iv.ext = zext i16 %iv to i32
1571ed8904SFlorian Hahn  %iv.inc = add i32 %iv.ext, 4
1671ed8904SFlorian Hahn  %iv.next = trunc i32 %iv.inc to i16
1771ed8904SFlorian Hahn  %cond = icmp ult i16 %iv.next, 51
1871ed8904SFlorian Hahn  br i1 %cond, label %loop, label %exit
1971ed8904SFlorian Hahn
2071ed8904SFlorian Hahnexit:
2171ed8904SFlorian Hahn  ret i16 0
2271ed8904SFlorian Hahn}
23