• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; Induction variable pass is doing bad things with pointer induction vars,
2; trying to do arithmetic on them directly.
3;
4; RUN: opt < %s -indvars
5;
6define void @test(i32 %A, i32 %S, i8* %S.upgrd.1) {
7; <label>:0
8        br label %Loop
9
10Loop:           ; preds = %Loop, %0
11        %PIV = phi i8* [ %S.upgrd.1, %0 ], [ %PIVNext.upgrd.3, %Loop ]          ; <i8*> [#uses=1]
12        %PIV.upgrd.2 = ptrtoint i8* %PIV to i64         ; <i64> [#uses=1]
13        %PIVNext = add i64 %PIV.upgrd.2, 8              ; <i64> [#uses=1]
14        %PIVNext.upgrd.3 = inttoptr i64 %PIVNext to i8*         ; <i8*> [#uses=1]
15        br label %Loop
16}
17
18