Files
clang-p2996/polly/test/Isl/CodeGen/ptrtoint_as_parameter.ll
Tobias Grosser 423642a597 Recommit: "Look through IntToPtr & PtrToInt instructions"
IntToPtr and PtrToInt instructions are basically no-ops that we can handle as
such. In order to generate them properly as parameters we had to improve the
ScopExpander, though the change is the first in the direction of a more
aggressive scalar synthetization.

This patch was originally contributed by Johannes Doerfert in r271888, but was
in conflict with the revert in r272483. This is a recommit with some minor
adjustment to the test cases to take care of differing instruction names.

llvm-svn: 272485
2016-06-11 19:26:08 +00:00

35 lines
1.2 KiB
LLVM

; RUN: opt %loadPolly -polly-codegen -S < %s | FileCheck %s
;
; CHECK: polly.split_new_and_old:
; CHECK-NEXT: %pollysub.ptr.lhs.cast263 = ptrtoint i8* inttoptr (i64 1 to i8*) to i64
;
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
; Function Attrs: nounwind uwtable
define void @XS_MIME__QuotedPrint_encode_qp() {
entry:
%Perl_sv_len = alloca i64, align 8
br label %if.end
if.end: ; preds = %entry
br label %while.cond
while.cond: ; preds = %cond.true270, %if.then260, %if.end
%p.0 = phi i8* [ null, %if.end ], [ %p.4, %if.then260 ], [ %p.4, %cond.true270 ]
br i1 undef, label %if.then260, label %while.body210
while.body210: ; preds = %while.cond
unreachable
if.then260: ; preds = %while.cond
%p.4 = getelementptr inbounds i8, i8* null, i64 1
%sub.ptr.lhs.cast263 = ptrtoint i8* %p.4 to i64
%sub.ptr.sub265 = sub i64 %sub.ptr.lhs.cast263, 0
%div = udiv i64 0, %sub.ptr.sub265
%cmp268 = icmp ult i64 0, %div
br i1 %cmp268, label %cond.true270, label %while.cond
cond.true270: ; preds = %if.then260
br label %while.cond
}