summaryrefslogtreecommitdiff
path: root/test/Transforms/LoopStrengthReduce/dont_reduce_bytes.ll
blob: 2c679800a7aeeac593f8598b777676539a6205d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
; Don't reduce the byte access to P[i], at least not on targets that 
; support an efficient 'mem[r1+r2]' addressing mode.

; RUN: llvm-upgrade < %s | llvm-as | opt -loop-reduce -disable-output

declare bool %pred(int)

void %test(sbyte* %PTR) {
	br label %Loop
Loop:
	%INDVAR = phi int [0, %0], [%INDVAR2, %Loop]

	%STRRED = getelementptr sbyte* %PTR, int %INDVAR
	store sbyte 0, sbyte* %STRRED

	%INDVAR2 = add int %INDVAR, 1
	%cond = call bool %pred(int %INDVAR2)  ;; cannot eliminate indvar
	br bool %cond, label %Loop, label %Out
Out:
	ret void
}