1; RUN: opt %loadPolly -polly-print-ast -disable-output < %s | FileCheck %s 2; RUN: opt %loadPolly -polly-codegen -S < %s | FileCheck %s -check-prefix=CODEGEN 3target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" 4 5define void @foo(i8* %start, i8* %end) { 6entry: 7 %A = alloca i32 8 br label %body 9 10body: 11 %ptr = phi i8* [ %start, %entry ], [ %ptr2, %body ] 12 %ptr2 = getelementptr inbounds i8, i8* %ptr, i64 1 13 %cmp = icmp eq i8* %ptr2, %end 14 store i32 42, i32* %A 15 br i1 %cmp, label %exit, label %body 16 17exit: 18 ret void 19} 20 21; CHECK: for (int c0 = 0; c0 < -start + end; c0 += 1) 22; CHECK: Stmt_body(c0); 23 24; CODEGEN-LABEL: polly.start: 25; CODEGEN-NEXT: %[[r0:[._a-zA-Z0-9]*]] = ptrtoint i8* %start to i64 26; CODEGEN-NEXT: %[[r1:[._a-zA-Z0-9]*]] = sub nsw i64 0, %[[r0]] 27; CODEGEN-NEXT: %[[r2:[._a-zA-Z0-9]*]] = ptrtoint i8* %end to i64 28; CODEGEN-NEXT: %[[r4:[._a-zA-Z0-9]*]] = add nsw i64 %[[r1]], %[[r2]] 29 30