aboutsummaryrefslogtreecommitdiffstats
path: root/test/Transforms/IndVarsSimplify/2002-09-09-PointerIndVar.ll
blob: 4c80e4851f41f780fb04fb9f8e496bfe2538b636 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
; 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
}