; Induction variable pass is doing bad things with pointer induction vars, ; trying to do arithmetic on them directly. ; ; RUN: llvm-upgrade < %s | llvm-as | opt -indvars ; void %test(int %A, uint %S, sbyte* %S) { br label %Loop Loop: %PIV = phi sbyte* [%S, %0], [%PIVNext, %Loop] %PIV = cast sbyte* %PIV to ulong %PIVNext = add ulong %PIV, 8 %PIVNext = cast ulong %PIVNext to sbyte* br label %Loop }