Files
clang-p2996/polly/test/ScopInfo/simple_loop_unsigned_3.ll
Johannes Doerfert 792374b941 Allow unsigned comparisons
With this patch we will optimistically assume that the result of an unsigned
  comparison is the same as the result of the same comparison interpreted as
  signed.

llvm-svn: 267559
2016-04-26 14:33:12 +00:00

27 lines
900 B
LLVM

; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
; CHECK: Assumed Context:
; CHECK-NEXT: [N] -> { : }
;
; CHECK: Domain :=
; CHECK-NEXT: [N] -> { Stmt_bb[i0] : 0 < i0 <= 1000 - N; Stmt_bb[0] };
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
define void @f(i64* nocapture %a, i64 %N) nounwind {
entry:
br label %bb
bb: ; preds = %bb, %entry
%i = phi i64 [ 1000, %entry ], [ %i.dec, %bb ]
%scevgep = getelementptr inbounds i64, i64* %a, i64 %i
store i64 %i, i64* %scevgep
%i.dec = add nsw i64 %i, -1
%sub = sub nsw i64 %N, %i
%exitcond = icmp ult i64 %sub, 0
br i1 %exitcond, label %bb, label %return
return: ; preds = %bb, %entry
ret void
}