| ; Induction variable pass is doing bad things with pointer induction vars, | |
| ; trying to do arithmetic on them directly. | |
| ; | |
| ; RUN: llvm-as < %s | 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 | |
| } |