Changeset View
Changeset View
Standalone View
Standalone View
llvm/trunk/test/CodeGen/AArch64/aarch64-loop-gep-opt.ll
Show All 13 Lines | ; CHECK: br label %do.body.i | ||||
%tPos = getelementptr inbounds %typeD, %typeD* %s, i64 0, i32 0 | %tPos = getelementptr inbounds %typeD, %typeD* %s, i64 0, i32 0 | ||||
%k0 = getelementptr inbounds %typeD, %typeD* %s, i64 0, i32 1 | %k0 = getelementptr inbounds %typeD, %typeD* %s, i64 0, i32 1 | ||||
%.pre = load i32, i32* %tPos, align 4 | %.pre = load i32, i32* %tPos, align 4 | ||||
br label %do.body.i | br label %do.body.i | ||||
do.body.i: | do.body.i: | ||||
; CHECK-LABEL: do.body.i: | ; CHECK-LABEL: do.body.i: | ||||
; CHECK: %uglygep2 = getelementptr i8, i8* %uglygep, i64 %3 | ; CHECK: %uglygep1 = getelementptr i8, i8* %uglygep, i64 %3 | ||||
; CHECK-NEXT: %4 = bitcast i8* %uglygep2 to i32* | ; CHECK-NEXT: %4 = bitcast i8* %uglygep1 to i32* | ||||
; CHECK-NOT: %uglygep2 = getelementptr i8, i8* %uglygep, i64 1032 | ; CHECK-NOT: %uglygep1 = getelementptr i8, i8* %uglygep, i64 1032 | ||||
%0 = phi i32 [ 256, %entry ], [ %.be, %do.body.i.backedge ] | %0 = phi i32 [ 256, %entry ], [ %.be, %do.body.i.backedge ] | ||||
%1 = phi i32 [ 0, %entry ], [ %.be6, %do.body.i.backedge ] | %1 = phi i32 [ 0, %entry ], [ %.be6, %do.body.i.backedge ] | ||||
%add.i = add nsw i32 %1, %0 | %add.i = add nsw i32 %1, %0 | ||||
%shr.i = ashr i32 %add.i, 1 | %shr.i = ashr i32 %add.i, 1 | ||||
%idxprom.i = sext i32 %shr.i to i64 | %idxprom.i = sext i32 %shr.i to i64 | ||||
%arrayidx.i = getelementptr inbounds %typeD, %typeD* %s, i64 0, i32 3, i64 %idxprom.i | %arrayidx.i = getelementptr inbounds %typeD, %typeD* %s, i64 0, i32 3, i64 %idxprom.i | ||||
Show All 18 Lines |